From 545f5405b57b72aaaace0c255eb53e1d1274f55d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 20 Nov 2021 23:52:22 +0800 Subject: [PATCH 001/972] naiveproxy: add mirrors for profdata to workaround the build issue profdata was modified by upstream, and the new one seems to break the build. I have no idea why. Fixes: #721 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 8fc109bb51e..05e83fc6cbc 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy PKG_VERSION:=96.0.4664.45-1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? @@ -88,7 +88,9 @@ PGO_VER:=4664-1636557077-6e390f4e505916531ca2ab0c895d5903ab4d88a9 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com.cnpmjs.org/chromium-optimization-profiles/pgo_profiles \ - https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles + https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles \ + https://mirror01.download.immortalwrt.eu.org \ + https://mirror02.download.immortalwrt.eu.org URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) HASH:=8dcf5973033d40c9a7b15e571dea3832e7b67976aad9113369e22d43808c603f From d9dd5b01f80afe6994921f5182ce4e046361e678 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 21 Nov 2021 14:38:18 +0800 Subject: [PATCH 002/972] naiveproxy: apply mirrors to all chromium files Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 05e83fc6cbc..051e7bdce09 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy PKG_VERSION:=96.0.4664.45-1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? @@ -69,7 +69,9 @@ endif CLANG_VER:=14-init-5759-g02895eed-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG - URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 + URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 \ + https://sources.immortalwrt.org \ + https://sources.cdn.immortalwrt.org URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) HASH:=5c2d11236c7254d48b02535ff58897830bc64e7258434d658c7d606e8d01b179 @@ -78,7 +80,9 @@ endef GN_VER:=0153d369bbccc908f4da4993b1ba82728055926a GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL - URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ + URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ \ + https://sources.immortalwrt.org \ + https://sources.cdn.immortalwrt.org URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) HASH:=8022d1e0d6627a740847806c27a195fa9fc15c4883359a6d162944c3d5e26b44 @@ -89,8 +93,8 @@ PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com.cnpmjs.org/chromium-optimization-profiles/pgo_profiles \ https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles \ - https://mirror01.download.immortalwrt.eu.org \ - https://mirror02.download.immortalwrt.eu.org + https://sources.immortalwrt.org \ + https://sources.cdn.immortalwrt.org URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) HASH:=8dcf5973033d40c9a7b15e571dea3832e7b67976aad9113369e22d43808c603f From 09589b9df63897a86d0d3744a1b7d3ae0a0a5800 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 26 Nov 2021 19:51:34 +0800 Subject: [PATCH 003/972] luci-app-ssr-plus: allow ipt2socks to be selected separately Fixes: #716 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 417fec06325..d8a313748a1 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -7,6 +7,7 @@ PKG_RELEASE:=9 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ @@ -28,6 +29,7 @@ LUCI_DEPENDS:= \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ + +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ @@ -39,7 +41,6 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs \ +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin:v2ray-plugin \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core @@ -54,6 +55,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) default n +config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks + bool "Include ipt2socks" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default n @@ -92,6 +97,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan bool "Include Trojan" + select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks default n config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin From 90fc3beade8aa791969f64b557ef33402fd43cba Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 26 Nov 2021 20:04:45 +0800 Subject: [PATCH 004/972] luci-app-ssr-plus: add VMess ZERO encMod Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d9e77faefb5..0295dc3b007 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -109,6 +109,7 @@ local securitys = { -- vmess "auto", "none", + "zero", "aes-128-gcm", "chacha20-poly1305" } From 7aea246001899436dc1761b8f98bf6c0192ca0af Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 26 Nov 2021 21:55:18 +0800 Subject: [PATCH 005/972] shadowsocks-rust: Update to 1.12.3 Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index e2233dd41b5..472e118cebd 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.12.2 +PKG_VERSION:=1.12.3 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=46b4f59ecb01f8de585c5731c5c32a394a9f068e631d5b5987d39ededa0a0944 + PKG_HASH:=a5f94ed2e2ae245be687fc7b7fdc749440f949d5c81de29c8ddf45cb138ce5c7 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=1e26c1d55219804cae57558267beb7c2544cea8f9372ff10b7d8561c0ba7a320 + PKG_HASH:=9adff4756b7c6efa7226518102691666967c585f90ee66c6a8d1af4bf9e8946c else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=f8e2df6016f8dae4605b73eb898c34b1a0dbc20497e17bf8bd56333e273ad106 + PKG_HASH:=826835f0a230efd99de838363f5351409286b3fe6fe7accade2928a13c02869b endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=fa3b2d840e3c22b547a9471a3a43771fe21450ef22ef2802a19186a86d47b117 + PKG_HASH:=3773a35ab0ba7f56a8820eb1006ec307d32a8f0fa0d5dfbd71819cb71c22f307 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=1267ad879fbd7b60244e2bb779d2c043f41334c4097540e5e84f5f8b94a3e850 + PKG_HASH:=1843fb9a9dd68bf949794986c02f5437731a1fe67544a01d2d6283050cbbeb10 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=3e1d59fdb1b03e984f09e0b0de24e67522d41a06b4fe909e3d4de9866d5ef713 + PKG_HASH:=00d03511cfc5543e29e1209c814e798346eef2192eeb6f9f3b970d1add88c90a else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=bf13a7730780571de839440f13127590304755e7893ef40e15a34f37f2f6a275 + PKG_HASH:=121efbbb5a6299ceae6d353cf92a94756c80a5d731730dc9581b81ff2d9849d0 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From bb0b11cf30dcbb6872c7dd9706f9e9e0a9bb8535 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 28 Nov 2021 19:14:08 +0800 Subject: [PATCH 006/972] shadowsocks-rust: Update to 1.12.4 Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 472e118cebd..e4dc8f18e2b 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.12.3 +PKG_VERSION:=1.12.4 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a5f94ed2e2ae245be687fc7b7fdc749440f949d5c81de29c8ddf45cb138ce5c7 + PKG_HASH:=67b937d91021b43cb32b1ccde0c93363020e46a524eb02743f4b28cea6eddcf5 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=9adff4756b7c6efa7226518102691666967c585f90ee66c6a8d1af4bf9e8946c + PKG_HASH:=2a6d5e0ac0aec1537a56b9e7b1775fb5c7d170e281870aad61ffdcb6f4ac153b else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=826835f0a230efd99de838363f5351409286b3fe6fe7accade2928a13c02869b + PKG_HASH:=11162c725ce0dce23cad5dd496e47447539cf6cf5a76e6e6bd25659cfa328d6e endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=3773a35ab0ba7f56a8820eb1006ec307d32a8f0fa0d5dfbd71819cb71c22f307 + PKG_HASH:=7493dd11c794b694996106a625b1ea080b774ec0d28c48dc507fae6e77d87b91 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=1843fb9a9dd68bf949794986c02f5437731a1fe67544a01d2d6283050cbbeb10 + PKG_HASH:=a12f6cf45ab2d3e4b5413e55fb852e59b26f853d39379ad871e24a2c7e9af39d else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=00d03511cfc5543e29e1209c814e798346eef2192eeb6f9f3b970d1add88c90a + PKG_HASH:=f291ddf55ae26624380891e7752179f7251bac11a56a7934cdc27f062f44f7ba else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=121efbbb5a6299ceae6d353cf92a94756c80a5d731730dc9581b81ff2d9849d0 + PKG_HASH:=04e99a4644fc8669359a75dfd36810622102cec39329b45b4190216f4544dd58 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy @@ -69,7 +69,7 @@ define Package/shadowsocks-rust/Default endef endef -SHADOWSOCKS_COMPONENTS:=sslocal ssmanager ssserver ssurl +SHADOWSOCKS_COMPONENTS:=sslocal ssmanager ssserver ssurl ssservice define shadowsocks-rust/templates $(foreach component,$(SHADOWSOCKS_COMPONENTS), $(call Package/shadowsocks-rust/Default,$(component)) From 9658df295b349a32f4bb6f36379571c42234b97f Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 5 Dec 2021 18:46:12 +0800 Subject: [PATCH 007/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme Not running shows red, running shows green --- luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm index 0dab4d55024..58bf67f25c9 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/status.htm @@ -4,10 +4,10 @@ var tb = document.getElementById('shadowsocksr_status'); if (data && tb) { if (data.running) { - var links = 'ShadowsocksR Plus+ <%:RUNNING%>'; + var links = 'ShadowsocksR Plus+ <%:RUNNING%>'; tb.innerHTML = links; } else { - tb.innerHTML = 'ShadowsocksR Plus+ <%:NOT RUNNING%>'; + tb.innerHTML = 'ShadowsocksR Plus+ <%:NOT RUNNING%>'; } } } From bc334930de05207663f1113ca95852f98b79ea69 Mon Sep 17 00:00:00 2001 From: ImmortalWrt AutoUpdate Bot Date: Sun, 5 Dec 2021 19:41:39 +0000 Subject: [PATCH 008/972] v2ray-core: Update to 4.44.0 Signed-off-by: ImmortalWrt AutoUpdate Bot Signed-off-by: Tianling Shen --- v2ray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index af7a80e6b6d..ac3fe342061 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=4.43.0 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=4.44.0 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f27b8fe8e1e102b0297339ee368c8b650fde0f949e0d90e1229ff6744f99ba0f +PKG_HASH:=d9973bafd3020f60a51fa3495b24ab417b08b3c8f9539a3748d00da6c68d0103 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 013027b35a7ba59137dfa15934faca455ee991ab Mon Sep 17 00:00:00 2001 From: ImmortalWrt AutoUpdate Bot Date: Mon, 6 Dec 2021 20:20:25 +0000 Subject: [PATCH 009/972] v2ray-plugin: Update to 4.44.0 Signed-off-by: ImmortalWrt AutoUpdate Bot Signed-off-by: Tianling Shen --- v2ray-plugin/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 8532913384b..a9ce72acb90 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=4.43.0 +PKG_VERSION:=4.44.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2de15ec4b66ee401fe83e31ad78d5d4c6d9f7b242b8fe7d8af5ce4f19bdf565a +PKG_HASH:=f94e8efe879a5300871dd01faec7d6635baaef4dbd39d83f4362802f716d386e PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE @@ -40,7 +40,7 @@ config V2RAY_PLUGIN_COMPRESS_GOPROXY config V2RAY_PLUGIN_COMPRESS_UPX bool "Compress executable files with UPX" depends on !mips64 - default y + default n endef ifeq ($(CONFIG_V2RAY_PLUGIN_COMPRESS_GOPROXY),y) From 21f809797efb77f089f15266a89d2a06250d196d Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 8 Dec 2021 03:09:49 +0800 Subject: [PATCH 010/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、Status bar related services:Not running shows red, running shows green; 2、Kcptun version number of the status bar is bold。 --- .../luasrc/model/cbi/shadowsocksr/status.lua | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 571b2688784..64f9be4aa00 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -17,8 +17,9 @@ local nfip_count = 0 local Process_list = luci.sys.exec("busybox ps -w") local uci = luci.model.uci.cursor() -- html constants -font_blue = [[]] -font_off = [[]] +font_blue = [[]] +style_blue = [[]] +font_off = [[]] bold_on = [[]] bold_off = [[]] local kcptun_version = translate("Unknown") @@ -29,7 +30,7 @@ else if not nixio.fs.access(kcp_file, "rwx", "rx", "rx") then nixio.fs.chmod(kcp_file, 755) end - kcptun_version = luci.sys.exec(kcp_file .. " -v | awk '{printf $3}'") + kcptun_version = "" ..luci.sys.exec(kcp_file .. " -v | awk '{printf $3}'") .. "" if not kcptun_version or kcptun_version == "" then kcptun_version = translate("Unknown") end @@ -100,7 +101,7 @@ s.rawhtml = true if redir_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end s = m:field(DummyValue, "reudp_run", translate("Game Mode UDP Relay")) @@ -108,7 +109,7 @@ s.rawhtml = true if reudp_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') ~= '0' then @@ -117,7 +118,7 @@ if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') ~= '0' then if pdnsd_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end end @@ -126,7 +127,7 @@ s.rawhtml = true if sock5_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end s = m:field(DummyValue, "server_run", translate("Local Servers")) @@ -134,7 +135,7 @@ s.rawhtml = true if server_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end if nixio.fs.access("/usr/bin/kcptun-client") then @@ -146,7 +147,7 @@ if nixio.fs.access("/usr/bin/kcptun-client") then if kcptun_run == 1 then s.value = font_blue .. bold_on .. translate("Running") .. bold_off .. font_off else - s.value = translate("Not Running") + s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end end From 0a364542cf5568482335ee4837e31641942285bd Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 15 Dec 2021 13:19:36 +0800 Subject: [PATCH 011/972] xray-plugin: update to 1.5.0 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index f460102431a..58793db452d 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.4.5 +PKG_VERSION:=1.5.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a4483fa0e3071935da8b8bd19a9a6b349fc2c221ba2fe777ff2131915debb607 +PKG_HASH:=c7c9833f868560d8d141a9a3a73679feab754ce4a97b6622c88322a5b83caa0f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 8a30e893c4a47bdca9b1fdb8401d73521e68dda3 Mon Sep 17 00:00:00 2001 From: MyFlavor <45022747+myflavor@users.noreply.github.com> Date: Thu, 16 Dec 2021 01:09:00 +0800 Subject: [PATCH 012/972] luci-app-ssr-plus: fix parsing filter keyword --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 7812af156d2..8a9bb0188b4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -441,7 +441,7 @@ local function check_filer(result) -- 检查是否存在过滤关键词 for i, v in pairs(filter_word) do - if result.alias:find(v) then + if tostring(result.alias):find(v) then filter_result = true end end @@ -449,7 +449,7 @@ local function check_filer(result) -- 检查是否打开了保留关键词检查,并且进行过滤 if check_save == true then for i, v in pairs(save_word) do - if result.alias:find(v) then + if tostring(result.alias):find(v) then save_result = false end end From 1fc626178046bf1a0b2678b39b0ca4cc32e94fc3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 17 Dec 2021 03:32:31 +0800 Subject: [PATCH 013/972] shadowsocks-rust: Update to 1.12.5 Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index e4dc8f18e2b..d748e735acf 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.12.4 +PKG_VERSION:=1.12.5 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=67b937d91021b43cb32b1ccde0c93363020e46a524eb02743f4b28cea6eddcf5 + PKG_HASH:=e891842b714f3f23fe8cb5d3187ac702f42bf8e6847fed65d174105fafad4d49 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=2a6d5e0ac0aec1537a56b9e7b1775fb5c7d170e281870aad61ffdcb6f4ac153b + PKG_HASH:=1a26ce3c55b3fdfc1041b20cb51b909c294e77dea23d7b4a0362c2d0310a7e08 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=11162c725ce0dce23cad5dd496e47447539cf6cf5a76e6e6bd25659cfa328d6e + PKG_HASH:=6f664ee11bd5789fd1a2607e7ba5fbbbefd60079767928eef732fdbc137b401f endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=7493dd11c794b694996106a625b1ea080b774ec0d28c48dc507fae6e77d87b91 + PKG_HASH:=721d23860d26a8047ca2978ed24de35219e0439e77e6722e0f87a54e9b7e1843 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a12f6cf45ab2d3e4b5413e55fb852e59b26f853d39379ad871e24a2c7e9af39d + PKG_HASH:=2bf294ea58d0bca8ee1f47b63632db341cdb3d849d67a0438695b7c7b589c7eb else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=f291ddf55ae26624380891e7752179f7251bac11a56a7934cdc27f062f44f7ba + PKG_HASH:=19d62fbf7586939b402a65c86432410fe7612726f9840f7ee383e8a2cb6d7802 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=04e99a4644fc8669359a75dfd36810622102cec39329b45b4190216f4544dd58 + PKG_HASH:=0e8f7333e6a9baf8096bb05c41bbc7d447b5a4ba9a6eb1814a48116b18694cc3 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From fc9de590b10be0cbb3814e5af3a4090ef3ca5b9d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Dec 2021 03:20:27 +0800 Subject: [PATCH 014/972] v2ray-geodata: add new package Signed-off-by: Tianling Shen --- v2ray-geodata/Makefile | 79 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 v2ray-geodata/Makefile diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile new file mode 100644 index 00000000000..949c43e4125 --- /dev/null +++ b/v2ray-geodata/Makefile @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=v2ray-geodata +PKG_RELEASE:=1 + +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +include $(INCLUDE_DIR)/package.mk + +GEOIP_VER:=202112090029 +GEOIP_FILE:=geoip.dat.$(GEOIP_VER) +define Download/geoip + URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ + URL_FILE:=geoip.dat + FILE:=$(GEOIP_FILE) + HASH:=704c53a30531b74a2c4c51b5ee958340717fc81906335c4342fb7d6ef4243ba9 +endef + +GEOSITE_VER:=20211209100918 +GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) +define Download/geosite + URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ + URL_FILE:=dlc.dat + FILE:=$(GEOSITE_FILE) + HASH:=a39901df0d0f7477d874cda50b045057610837dd0d80f7ff4c51b7ab87d88b18 +endef + +define Package/v2ray-geodata/template + SECTION:=net + CATEGORY:=Network + SUBMENU:=IP Addresses and Names + URL:=https://www.v2fly.org + PKGARCH:=all +endef + +define Package/v2ray-geoip + $(call Package/v2ray-geodata/template) + TITLE:=GeoIP List for V2Ray + VERSION:=$(GEOIP_VER)-$(PKG_RELEASE) + LICENSE:=CC-BY-SA-4.0 +endef + +define Package/v2ray-geosite + $(call Package/v2ray-geodata/template) + TITLE:=Geosite List for V2Ray + VERSION:=$(GEOSITE_VER)-$(PKG_RELEASE) + LICENSE:=MIT +endef + +define Build/Prepare + $(call Build/Prepare/Default) +ifneq ($(CONFIG_PACKAGE_v2ray-geoip),) + $(call Download,geoip) +endif +ifneq ($(CONFIG_PACKAGE_v2ray-geosite),) + $(call Download,geosite) +endif +endef + +define Build/Compile +endef + +define Package/v2ray-geoip/install + $(INSTALL_DIR) $(1)/usr/share/v2ray + $(INSTALL_DATA) $(DL_DIR)/$(GEOIP_FILE) $(1)/usr/share/v2ray/geoip.dat +endef + +define Package/v2ray-geosite/install + $(INSTALL_DIR) $(1)/usr/share/v2ray + $(INSTALL_DATA) $(DL_DIR)/$(GEOSITE_FILE) $(1)/usr/share/v2ray/geosite.dat +endef + +$(eval $(call BuildPackage,v2ray-geoip)) +$(eval $(call BuildPackage,v2ray-geosite)) From 747c2ffdf086d361b5d51ecd6b5be70a1d5ecf0c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Dec 2021 02:55:27 +0800 Subject: [PATCH 015/972] xray-core: remove geodata package Signed-off-by: Tianling Shen --- xray-core/Makefile | 60 +++------------------------------------------- 1 file changed, 3 insertions(+), 57 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 0da6790d834..4a4f7bd4fbb 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -31,39 +31,19 @@ GO_PKG_LDFLAGS_X:= \ include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk -define Package/xray/template +define Package/xray-core TITLE:=A platform for building proxies to bypass network restrictions SECTION:=net CATEGORY:=Network URL:=https://xtls.github.io -endef - -define Package/xray-core - $(call Package/xray/template) DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -define Package/xray-geodata - $(call Package/xray/template) - TITLE+= (geodata files) - DEPENDS:=xray-core -endef - -define Package/xray/description +define Package/xray-core/description Xray, Penetrates Everything. It helps you to build your own computer network. It secures your network connections and thus protects your privacy. endef -define Package/xray-core/description - $(call Package/xray/description) -endef - -define Package/xray-geodata/description - $(call Package/xray/description) - - This includes GEO datas used for xray-core. -endef - define Package/xray-core/config menu "Xray-core Configuration" depends on PACKAGE_xray-core @@ -74,43 +54,16 @@ config XRAY_CORE_COMPRESS_GOPROXY config XRAY_CORE_COMPRESS_UPX bool "Compress executable files with UPX" + depends on !mips64 default y endmenu endef -GEOIP_VER:=202110210032 -GEOIP_FILE:=geoip.dat.$(GEOIP_VER) - -define Download/geoip - URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ - URL_FILE:=geoip.dat - FILE:=$(GEOIP_FILE) - HASH:=932cd484471f8066c040ab84a04fdd70df6c5cee99545de610e1f337bb696220 -endef - -GEOSITE_VER:=20211018134657 -GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) - -define Download/geosite - URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ - URL_FILE:=dlc.dat - FILE:=$(GEOSITE_FILE) - HASH:=60b2388b11f1f9b6e14794fbacdf3bf693e3101e3ec651ce5423d8caceda5497 -endef - ifneq ($(CONFIG_XRAY_CORE_COMPRESS_GOPROXY),) export GO111MODULE=on export GOPROXY=https://goproxy.io endif -define Build/Prepare - $(call Build/Prepare/Default) -ifneq ($(CONFIG_PACKAGE_xray-geodata),) - $(call Download,geoip) - $(call Download,geosite) -endif -endef - define Build/Compile $(call GoPackage/Build/Compile) ifneq ($(CONFIG_XRAY_CORE_COMPRESS_UPX),) @@ -124,11 +77,4 @@ define Package/xray-core/install $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/xray endef -define Package/xray-geodata/install - $(INSTALL_DIR) $(1)/usr/share/xray/ - $(INSTALL_DATA) $(DL_DIR)/$(GEOIP_FILE) $(1)/usr/share/xray/geoip.dat - $(INSTALL_DATA) $(DL_DIR)/$(GEOSITE_FILE) $(1)/usr/share/xray/geosite.dat -endef - $(eval $(call BuildPackage,xray-core)) -$(eval $(call BuildPackage,xray-geodata)) From 418b755baa698e1f5397b9514d6f80324a8cd5da Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Dec 2021 03:23:48 +0800 Subject: [PATCH 016/972] xray-core: Update to 1.5.1 Signed-off-by: Tianling Shen --- xray-core/Makefile | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 4a4f7bd4fbb..0e7346c9b1c 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=xray-core -PKG_VERSION:=1.4.5 +PKG_NAME:=Xray-core +PKG_VERSION:=1.5.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=54c6a687dd463b25afe8d8eb44d37e18b8177f58308207cd1d74f6cd04619854 +PKG_HASH:=11b01de5da7efed2a5f066b14bfe5e0299071dc8c32b7f64af5c51daf3abc6c2 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 @@ -16,7 +16,6 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_XRAY_CORE_COMPRESS_GOPROXY \ CONFIG_XRAY_CORE_COMPRESS_UPX \ -PKG_BUILD_DIR:=$(BUILD_DIR)/Xray-core-$(PKG_VERSION) PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 From ade8b81db7c9df59c8693c1da0a2c3c9f779e38e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Dec 2021 03:24:58 +0800 Subject: [PATCH 017/972] xray-plugin: Update to 1.5.1 Signed-off-by: Tianling Shen --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 58793db452d..c8e82945ef7 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.0 +PKG_VERSION:=1.5.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c7c9833f868560d8d141a9a3a73679feab754ce4a97b6622c88322a5b83caa0f +PKG_HASH:=3ebbd992fed640bed630f583a3d168da0952190c5f842e0a1278587b0cba5425 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 9db144bdb52070ca4b5574c41925c17b17a1852d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 22 Oct 2021 13:29:28 +0800 Subject: [PATCH 018/972] luci-app-ssr-plus: add xchacha20-ietf-poly1305 for *ray SS Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 0295dc3b007..50391a94148 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -76,9 +76,11 @@ local encrypt_methods_v2ray_ss = { "aes-256-gcm", "chacha20-poly1305", "chacha20-ietf-poly1305", + "xchacha20-ietf-poly1305", "aead_aes_128_gcm", "aead_aes_256_gcm", - "aead_chacha20_poly1305" + "aead_chacha20_poly1305", + "aead_xchacha20_poly1305" } local protocol = { From 61338496b8043eef273b49ba207ec995b6f0d678 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Dec 2021 06:21:16 +0800 Subject: [PATCH 019/972] v2ray-core: remove geodata package Signed-off-by: Tianling Shen --- v2ray-core/Makefile | 53 --------------------------------------------- 1 file changed, 53 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index ac3fe342061..dfa189e91d5 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -60,13 +60,6 @@ define Package/v2ray-extra PKGARCH:=all endef -define Package/v2ray-geodata - $(call Package/v2ray/template) - TITLE+= (geodata files) - DEPENDS:=v2ray-core - PKGARCH:=all -endef - define Package/v2ray/description Project V is a set of network tools that help you to build your own computer network. It secures your network connections and thus protects your privacy. @@ -88,12 +81,6 @@ define Package/v2ray-extra/description This includes extra resources for v2ray-core. endef -define Package/v2ray-geodata/description - $(call Package/v2ray/description) - - This includes GEO datas used for v2ray-core. -endef - define Package/v2ray-core/config menu "v2ray-core Configuration" depends on PACKAGE_v2ray-core @@ -122,39 +109,6 @@ config V2RAY_CTL_COMPRESS_UPX endmenu endef -GEOIP_VER:=202110210032 -GEOIP_FILE:=geoip.dat.$(GEOIP_VER) - -define Download/geoip - URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ - URL_FILE:=geoip.dat - FILE:=$(GEOIP_FILE) - HASH:=932cd484471f8066c040ab84a04fdd70df6c5cee99545de610e1f337bb696220 -endef - -GEOSITE_VER:=20211018134657 -GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) - -define Download/geosite - URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ - URL_FILE:=dlc.dat - FILE:=$(GEOSITE_FILE) - HASH:=60b2388b11f1f9b6e14794fbacdf3bf693e3101e3ec651ce5423d8caceda5497 -endef - -ifneq ($(CONFIG_V2RAY_CORE_COMPRESS_GOPROXY)$(CONFIG_V2RAY_CTL_COMPRESS_GOPROXY),) - export GO111MODULE=on - export GOPROXY=https://goproxy.io -endif - -define Build/Prepare - $(call Build/Prepare/Default) -ifneq ($(CONFIG_PACKAGE_v2ray-geodata),) - $(call Download,geoip) - $(call Download,geosite) -endif -endef - define Build/Compile $(call GoPackage/Build/Compile) mv $(GO_PKG_BUILD_BIN_DIR)/main $(GO_PKG_BUILD_BIN_DIR)/v2ray @@ -190,13 +144,6 @@ define Package/v2ray-extra/install $(CP) $(PKG_BUILD_DIR)/release/extra/* $(1)/usr/share/v2ray/ endef -define Package/v2ray-geodata/install - $(INSTALL_DIR) $(1)/usr/share/v2ray/ - $(INSTALL_DATA) $(DL_DIR)/$(GEOIP_FILE) $(1)/usr/share/v2ray/geoip.dat - $(INSTALL_DATA) $(DL_DIR)/$(GEOSITE_FILE) $(1)/usr/share/v2ray/geosite.dat -endef - $(eval $(call BuildPackage,v2ray-core)) $(eval $(call BuildPackage,v2ray-ctl)) $(eval $(call BuildPackage,v2ray-extra)) -$(eval $(call BuildPackage,v2ray-geodata)) From b29111e1579ed88a4d43fa876967d2bfc491bd5e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 20 Dec 2021 21:00:05 +0800 Subject: [PATCH 020/972] xray-core: backport upstream fixes Signed-off-by: Tianling Shen --- xray-core/Makefile | 2 +- ...ipher-method-xChaCha20-IETF-Poly1305.patch | 20 +++ ...grpc-add-initial_windows_size-option.patch | 114 ++++++++++++++++++ ...hadowsocks-xchacha-cipher-nonce-size.patch | 52 ++++++++ 4 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch create mode 100644 xray-core/patches/020-grpc-add-initial_windows_size-option.patch create mode 100644 xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index 0e7346c9b1c..12bc6554fef 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core PKG_VERSION:=1.5.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? diff --git a/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch b/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch new file mode 100644 index 00000000000..c535b4c6664 --- /dev/null +++ b/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch @@ -0,0 +1,20 @@ +From c8e2a99e68109b386c541dcc157f1f64ca8cbd17 Mon Sep 17 00:00:00 2001 +From: xqzr <34030394+xqzr@users.noreply.github.com> +Date: Fri, 17 Dec 2021 00:25:16 +0800 +Subject: [PATCH] fix unsupported cipher method: xChaCha20-IETF-Poly1305 + +--- + infra/conf/shadowsocks.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/infra/conf/shadowsocks.go ++++ b/infra/conf/shadowsocks.go +@@ -59,7 +59,7 @@ func (v *ShadowsocksServerConfig) Build( + return nil, newError("Shadowsocks password is not specified.") + } + if account.CipherType < shadowsocks.CipherType_AES_128_GCM || +- account.CipherType > shadowsocks.CipherType_CHACHA20_POLY1305 { ++ account.CipherType > shadowsocks.CipherType_XCHACHA20_POLY1305 { + return nil, newError("unsupported cipher method: ", user.Cipher) + } + config.Users = append(config.Users, &protocol.User{ diff --git a/xray-core/patches/020-grpc-add-initial_windows_size-option.patch b/xray-core/patches/020-grpc-add-initial_windows_size-option.patch new file mode 100644 index 00000000000..696bcf2599b --- /dev/null +++ b/xray-core/patches/020-grpc-add-initial_windows_size-option.patch @@ -0,0 +1,114 @@ +From 63da3a548138640f96e631f10d6e2ee1bae3ed62 Mon Sep 17 00:00:00 2001 +From: hmol233 <82594500+hmol233@users.noreply.github.com> +Date: Mon, 20 Dec 2021 00:47:21 +0800 +Subject: [PATCH] grpc: add initial_windows_size option + +--- + infra/conf/grpc.go | 7 +++++++ + transport/internet/grpc/config.pb.go | 23 +++++++++++++++++------ + transport/internet/grpc/config.proto | 1 + + transport/internet/grpc/dial.go | 4 ++++ + 4 files changed, 29 insertions(+), 6 deletions(-) + +--- a/infra/conf/grpc.go ++++ b/infra/conf/grpc.go +@@ -12,6 +12,7 @@ type GRPCConfig struct { + IdleTimeout int32 `json:"idle_timeout"` + HealthCheckTimeout int32 `json:"health_check_timeout"` + PermitWithoutStream bool `json:"permit_without_stream"` ++ InitialWindowsSize int32 `json:"initial_windows_size"` + } + + func (g *GRPCConfig) Build() (proto.Message, error) { +@@ -21,11 +22,17 @@ func (g *GRPCConfig) Build() (proto.Mess + if g.HealthCheckTimeout <= 0 { + g.HealthCheckTimeout = 0 + } ++ if g.InitialWindowsSize < 0 { ++ // default window size of gRPC-go ++ g.InitialWindowsSize = 0 ++ } ++ + return &grpc.Config{ + ServiceName: g.ServiceName, + MultiMode: g.MultiMode, + IdleTimeout: g.IdleTimeout, + HealthCheckTimeout: g.HealthCheckTimeout, + PermitWithoutStream: g.PermitWithoutStream, ++ InitialWindowsSize: g.InitialWindowsSize, + }, nil + } +--- a/transport/internet/grpc/config.pb.go ++++ b/transport/internet/grpc/config.pb.go +@@ -31,6 +31,7 @@ type Config struct { + IdleTimeout int32 `protobuf:"varint,4,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` + HealthCheckTimeout int32 `protobuf:"varint,5,opt,name=health_check_timeout,json=healthCheckTimeout,proto3" json:"health_check_timeout,omitempty"` + PermitWithoutStream bool `protobuf:"varint,6,opt,name=permit_without_stream,json=permitWithoutStream,proto3" json:"permit_without_stream,omitempty"` ++ InitialWindowsSize int32 `protobuf:"varint,7,opt,name=initial_windows_size,json=initialWindowsSize,proto3" json:"initial_windows_size,omitempty"` + } + + func (x *Config) Reset() { +@@ -107,6 +108,13 @@ func (x *Config) GetPermitWithoutStream( + return false + } + ++func (x *Config) GetInitialWindowsSize() int32 { ++ if x != nil { ++ return x.InitialWindowsSize ++ } ++ return 0 ++} ++ + var File_transport_internet_grpc_config_proto protoreflect.FileDescriptor + + var file_transport_internet_grpc_config_proto_rawDesc = []byte{ +@@ -114,7 +122,7 @@ var file_transport_internet_grpc_config_ + 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, +- 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xe7, 0x01, ++ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x99, 0x02, + 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, +@@ -129,11 +137,14 @@ var file_transport_internet_grpc_config_ + 0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, +- 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, +- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79, 0x2d, +- 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x69, +- 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, +- 0x6f, 0x74, 0x6f, 0x33, ++ 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, ++ 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, ++ 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x57, 0x69, ++ 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, ++ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, ++ 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, ++ 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, ++ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + } + + var ( +--- a/transport/internet/grpc/config.proto ++++ b/transport/internet/grpc/config.proto +@@ -10,4 +10,5 @@ message Config { + int32 idle_timeout = 4; + int32 health_check_timeout = 5; + bool permit_without_stream = 6; ++ int32 initial_windows_size = 7; + } +--- a/transport/internet/grpc/dial.go ++++ b/transport/internet/grpc/dial.go +@@ -135,6 +135,10 @@ func getGrpcClient(ctx context.Context, + })) + } + ++ if grpcSettings.InitialWindowsSize > 0 { ++ dialOptions = append(dialOptions, grpc.WithInitialWindowSize(grpcSettings.InitialWindowsSize)) ++ } ++ + var grpcDestHost string + if dest.Address.Family().IsDomain() { + grpcDestHost = dest.Address.Domain() diff --git a/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch b/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch new file mode 100644 index 00000000000..a73d0156c7e --- /dev/null +++ b/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch @@ -0,0 +1,52 @@ +From 9ea1bf7c1dfad892aafc8807b56ce398bb2eb819 Mon Sep 17 00:00:00 2001 +From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> +Date: Sat, 18 Dec 2021 23:23:09 -0500 +Subject: [PATCH] Fix shadowsocks xchacha cipher nonce size + +--- + common/crypto/auth.go | 4 ---- + proxy/shadowsocks/protocol.go | 2 +- + proxy/shadowsocks/validator.go | 6 +++--- + 3 files changed, 4 insertions(+), 8 deletions(-) + +--- a/common/crypto/auth.go ++++ b/common/crypto/auth.go +@@ -39,10 +39,6 @@ func GenerateIncreasingNonce(nonce []byt + } + } + +-func GenerateInitialAEADNonce() BytesGenerator { +- return GenerateIncreasingNonce([]byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}) +-} +- + func GenerateAEADNonceWithSize(nonceSize int) BytesGenerator { + c := make([]byte, nonceSize) + for i := 0; i < nonceSize; i++ { +--- a/proxy/shadowsocks/protocol.go ++++ b/proxy/shadowsocks/protocol.go +@@ -86,7 +86,7 @@ func ReadTCPSession(validator *Validator + if aead != nil { + auth := &crypto.AEADAuthenticator{ + AEAD: aead, +- NonceGenerator: crypto.GenerateInitialAEADNonce(), ++ NonceGenerator: crypto.GenerateAEADNonceWithSize(aead.NonceSize()), + } + r = crypto.NewAuthenticationReader(auth, &crypto.AEADChunkSizeParser{ + Auth: auth, +--- a/proxy/shadowsocks/validator.go ++++ b/proxy/shadowsocks/validator.go +@@ -93,11 +93,11 @@ func (v *Validator) Get(bs []byte, comma + var matchErr error + switch command { + case protocol.RequestCommandTCP: +- data := make([]byte, 16) +- ret, matchErr = aead.Open(data[:0], data[4:16], bs[ivLen:ivLen+18], nil) ++ data := make([]byte, 4+aead.NonceSize()) ++ ret, matchErr = aead.Open(data[:0], data[4:], bs[ivLen:ivLen+18], nil) + case protocol.RequestCommandUDP: + data := make([]byte, 8192) +- ret, matchErr = aead.Open(data[:0], data[8180:8192], bs[ivLen:], nil) ++ ret, matchErr = aead.Open(data[:0], data[8192-aead.NonceSize():8192], bs[ivLen:], nil) + } + + if matchErr == nil { From 1d4879f440478d0d472d0582f9b90f1f1ad90991 Mon Sep 17 00:00:00 2001 From: hecheng337 Date: Tue, 21 Dec 2021 01:04:23 +0800 Subject: [PATCH 021/972] Add health check for h2 & gRPC --- .../model/cbi/shadowsocksr/client-config.lua | 25 +++++++++++++++++++ .../usr/share/shadowsocksr/gen_config.lua | 9 +++++-- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 50391a94148..ab563b68dec 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -383,6 +383,31 @@ o = s:option(Value, "serviceName", translate("serviceName")) o:depends("transport", "grpc") o.rmempty = true +-- H2/gRPC健康检查 +o = s:option(Flag, "health_check", translate("H2/gRPC Health Check")) +o:depends("transport", "h2") +o:depends("transport", "grpc") +o.rmempty = true + +o = s:option(Value, "read_idle_timeout", translate("H2 Read Idle Timeout")) +o:depends({health_check = 1, transport = "h2"}) +o.default = 60 +o.rmempty = true + +o = s:option(Value, "idle_timeout", translate("gRPC Idle Timeout")) +o:depends({health_check = 1, transport = "grpc"}) +o.default = 60 +o.rmempty = true + +o = s:option(Value, "health_check_timeout", translate("Health Check Timeout")) +o:depends("health_check", 1) +o.default = 20 +o.rmempty = true + +o = s:option(Flag, "permit_without_stream", translate("Permit Without Stream")) +o:depends({health_check = 1, transport = "grpc"}) +o.rmempty = true + -- [[ QUIC部分 ]]-- o = s:option(ListValue, "quic_security", translate("QUIC Security")) o:depends("transport", "quic") diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 246ba4a0660..64ec9d0c90d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -162,7 +162,9 @@ local Xray = { httpSettings = (server.transport == "h2") and { -- h2 path = server.h2_path or "", - host = {server.h2_host} or nil + host = {server.h2_host} or nil, + read_idle_timeout = tonumber(server.read_idle_timeout) or nil, + health_check_timeout = tonumber(server.health_check_timeout) or nil } or nil, quicSettings = (server.transport == "quic") and { -- quic @@ -173,7 +175,10 @@ local Xray = { grpcSettings = (server.transport == "grpc") and { -- grpc serviceName = server.serviceName or "", - multiMode = (server.mux == "1") and true or false + multiMode = (server.mux == "1") and true or false, + idle_timeout = tonumber(server.idle_timeout) or nil, + health_check_timeout = tonumber(server.health_check_timeout) or nil, + permit_without_stream = (server.permit_without_stream == "1") and true or nil } or nil }, mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { From 8ed6a2a4e568f604434241bbbbe87812ead5371a Mon Sep 17 00:00:00 2001 From: hecheng337 Date: Tue, 21 Dec 2021 03:11:25 +0800 Subject: [PATCH 022/972] gRPC: add initial_windows_size option --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 12 +++++++++--- .../root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ab563b68dec..554c2bec48f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -383,6 +383,12 @@ o = s:option(Value, "serviceName", translate("serviceName")) o:depends("transport", "grpc") o.rmempty = true +-- gRPC初始窗口 +o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) +o:depends("transport", "grpc") +o.default = 0 +o.rmempty = true + -- H2/gRPC健康检查 o = s:option(Flag, "health_check", translate("H2/gRPC Health Check")) o:depends("transport", "h2") @@ -390,12 +396,12 @@ o:depends("transport", "grpc") o.rmempty = true o = s:option(Value, "read_idle_timeout", translate("H2 Read Idle Timeout")) -o:depends({health_check = 1, transport = "h2"}) +o:depends({health_check = true, transport = "h2"}) o.default = 60 o.rmempty = true o = s:option(Value, "idle_timeout", translate("gRPC Idle Timeout")) -o:depends({health_check = 1, transport = "grpc"}) +o:depends({health_check = true, transport = "grpc"}) o.default = 60 o.rmempty = true @@ -405,7 +411,7 @@ o.default = 20 o.rmempty = true o = s:option(Flag, "permit_without_stream", translate("Permit Without Stream")) -o:depends({health_check = 1, transport = "grpc"}) +o:depends({health_check = true, transport = "grpc"}) o.rmempty = true -- [[ QUIC部分 ]]-- diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 64ec9d0c90d..2ce2b03f231 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -178,7 +178,8 @@ local Xray = { multiMode = (server.mux == "1") and true or false, idle_timeout = tonumber(server.idle_timeout) or nil, health_check_timeout = tonumber(server.health_check_timeout) or nil, - permit_without_stream = (server.permit_without_stream == "1") and true or nil + permit_without_stream = (server.permit_without_stream == "1") and true or nil, + initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil }, mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { From 040c5cb9eb2a2366fb54703bc40da93e4309abad Mon Sep 17 00:00:00 2001 From: hecheng337 Date: Tue, 21 Dec 2021 03:16:48 +0800 Subject: [PATCH 023/972] Add bloom filter support for Shadowsocks on Xray-core --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 5 +++++ luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 554c2bec48f..07d546d503f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -256,6 +256,11 @@ end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o = s:option(Flag, "ivCheck", translate("Bloom Filter")) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o.default = "1" +o.rmempty = false + -- Shadowsocks Plugin o = s:option(Value, "plugin", translate("Obfs")) o:value("none", translate("None")) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 2ce2b03f231..7a4c687760a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -33,7 +33,8 @@ function trojan_shadowsocks() port = tonumber(server.server_port), password = server.password, method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_v2ray_ss or nil, - flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil + flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil, + ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil } } } From f12fc3a48e33343a0f1425a9e7ef4d679b553068 Mon Sep 17 00:00:00 2001 From: hecheng337 Date: Tue, 21 Dec 2021 03:58:58 +0800 Subject: [PATCH 024/972] Turn off automatically selected TLS --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 7a4c687760a..eec009bf5b8 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -118,7 +118,7 @@ local Xray = { -- 底层传输配置 streamSettings = { network = server.transport or "tcp", - security = (server.xtls == '1') and "xtls" or (server.tls == '1'or server.transport == "grpc") and "tls" or nil, + security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or nil, tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { -- tls fingerprint = server.fingerprint, From 047301f1fe6c9de648e310987a6adac9ba9dc90e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 21 Dec 2021 19:50:20 +0800 Subject: [PATCH 025/972] luci-app-ssr-plus: add missing datatype for gRPC settings Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 07d546d503f..fb8efc3a8e9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -257,9 +257,9 @@ o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o = s:option(Flag, "ivCheck", translate("Bloom Filter")) +o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o.default = "1" -o.rmempty = false -- Shadowsocks Plugin o = s:option(Value, "plugin", translate("Obfs")) @@ -390,6 +390,7 @@ o.rmempty = true -- gRPC初始窗口 o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) +o.datatype = "uinteger" o:depends("transport", "grpc") o.default = 0 o.rmempty = true @@ -401,16 +402,19 @@ o:depends("transport", "grpc") o.rmempty = true o = s:option(Value, "read_idle_timeout", translate("H2 Read Idle Timeout")) +o.datatype = "uinteger" o:depends({health_check = true, transport = "h2"}) o.default = 60 o.rmempty = true o = s:option(Value, "idle_timeout", translate("gRPC Idle Timeout")) +o.datatype = "uinteger" o:depends({health_check = true, transport = "grpc"}) o.default = 60 o.rmempty = true o = s:option(Value, "health_check_timeout", translate("Health Check Timeout")) +o.datatype = "uinteger" o:depends("health_check", 1) o.default = 20 o.rmempty = true From aedd1316fca9e274765397f9ee8ef2174a73719a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 21 Dec 2021 22:44:02 +0800 Subject: [PATCH 026/972] luci-app-ssr-plus: bump PKG_RELEASE Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index d8a313748a1..37c08e533be 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=184 -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ From a7943cec89d9ee4cf20cfd27b397ab0b3b49323a Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Wed, 22 Dec 2021 16:42:43 +0800 Subject: [PATCH 027/972] v2raya: move package --- v2raya/Makefile | 105 ++++++++++++ v2raya/files/v2raya.config | 37 +++++ v2raya/files/v2raya.init | 69 ++++++++ .../patches/010-chore-re-support-mips.patch | 154 ++++++++++++++++++ v2raya/test.sh | 3 + 5 files changed, 368 insertions(+) create mode 100644 v2raya/Makefile create mode 100644 v2raya/files/v2raya.config create mode 100755 v2raya/files/v2raya.init create mode 100644 v2raya/patches/010-chore-re-support-mips.patch create mode 100644 v2raya/test.sh diff --git a/v2raya/Makefile b/v2raya/Makefile new file mode 100644 index 00000000000..033920f505f --- /dev/null +++ b/v2raya/Makefile @@ -0,0 +1,105 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=v2rayA +PKG_VERSION:=1.5.5 +PKG_RELEASE:=$(AUTORELEASE) + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=7844cb4cddca0a4831925c38039226813a61ceaf24a19e471654d278387b8368 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service + +PKG_LICENSE:=AGPL-3.0-only +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +PKG_CONFIG_DEPENDS:= \ + CONFIG_V2RAYA_COMPRESS_GOPROXY \ + CONFIG_V2RAYA_COMPRESS_UPX \ + +PKG_BUILD_DEPENDS:=golang/host node/host node-yarn/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=github.com/v2rayA/v2rayA +GO_PKG_LDFLAGS:=-s -w +GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.Version=$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk +include ../../lang/golang/golang-package.mk + +TAR_OPTIONS+= --strip-components 1 +TAR_CMD=$(HOST_TAR) -C $(1)/.. $(TAR_OPTIONS) + +define Package/v2raya + TITLE:=A Linux web GUI client of Project V + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + DEPENDS:=$(GO_ARCH_DEPENDS) \ + +ca-bundle \ + +iptables-mod-conntrack-extra \ + +iptables-mod-extra \ + +iptables-mod-filter \ + +iptables-mod-tproxy \ + +kmod-ipt-nat6 \ + +xray-core + URL:=https://v2raya.org +endef + +define Package/v2raya/description + v2rayA is a V2Ray Linux client supporting global transparent proxy, + compatible with SS, SSR, Trojan(trojan-go), PingTunnel protocols. +endef + +define Package/v2raya/config +config V2RAYA_COMPRESS_GOPROXY + bool "Compiling with GOPROXY proxy" + default n + +config V2RAYA_COMPRESS_UPX + bool "Compress executable files with UPX" + depends on !mips64 + default n +endef + +ifneq ($(CONFIG_V2RAYA_COMPRESS_GOPROXY),) + export GO111MODULE=on + export GOPROXY=https://goproxy.baidu.com +endif + +define Package/v2raya/conffiles +/etc/v2raya/ +/etc/config/v2raya +endef + +define Build/Compile + ( \ + pushd $(PKG_BUILD_DIR)/../gui ; \ + yarn ; \ + OUTPUT_DIR=../service/server/router/web yarn build ; \ + popd ; \ + $(call GoPackage/Build/Compile) ; \ + ) +ifneq ($(CONFIG_V2RAYA_COMPRESS_UPX),) + $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/v2rayA +endif +endef + +define Package/v2raya/install + $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) + $(INSTALL_DIR) $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v2rayA $(1)/usr/bin/v2raya + + $(INSTALL_DIR) $(1)/etc/config/ + $(INSTALL_CONF) $(CURDIR)/files/v2raya.config $(1)/etc/config/v2raya + $(INSTALL_DIR) $(1)/etc/init.d/ + $(INSTALL_BIN) $(CURDIR)/files/v2raya.init $(1)/etc/init.d/v2raya +endef + +$(eval $(call GoBinPackage,v2raya)) +$(eval $(call BuildPackage,v2raya)) diff --git a/v2raya/files/v2raya.config b/v2raya/files/v2raya.config new file mode 100644 index 00000000000..841b90a2aa8 --- /dev/null +++ b/v2raya/files/v2raya.config @@ -0,0 +1,37 @@ + +config v2raya 'config' + option enabled '0' + + # Listening address + option address '0.0.0.0:2017' + + # v2rayA configuration directory + option config '/etc/v2raya' + + # Make sure your IPv6 network works fine before you turn it on. + # Optional values: auto, on, off. + option ipv6_support 'auto' + + # Optional values: trace, debug, info, warn or error + option log_level 'info' + + # The path of log file + option log_file '/tmp/v2raya.log' + + # Maximum number of days to keep log files + option log_max_days '3' + + option log_disable_color '1' + + option log_disable_timestamp '0' + + # Executable v2ray binary path. Auto-detect if put it empty + option v2ray_bin '' + + # Additional v2ray config directory, files in it will be combined with config generated by v2rayA + option v2ray_confdir '' + + # Specify the certification path instead of automatically generating a self-signed certificate. + # Example: /etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key + option vless_grpc_inbound_cert_key '' + diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init new file mode 100755 index 00000000000..cb817371110 --- /dev/null +++ b/v2raya/files/v2raya.init @@ -0,0 +1,69 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2021 Tianling Shen + +USE_PROCD=1 +START=99 + +CONF="v2raya" +PROG="/usr/bin/v2raya" + +is_enabled() { + local enabled + config_get_bool enabled "$1" "$2" "${3:-0}" + if [ "$enabled" -eq "1" ]; then + return 0 + else + return 1 + fi +} + +append_param() { + procd_append_param command "$1" $2 +} + +append_param_arg() { + local value + config_get value "$1" "$2" $3 + [ -n "$value" ] && append_param "--${2//_/-}" "$value" +} + +append_param_bool() { + is_enabled "$1" "$2" && append_param "--${2//_/-}" +} + +start_service() { + config_load "$CONF" + + is_enabled "config" "enabled" || exit 1 + + procd_open_instance "$CONF" + procd_set_param command "$PROG" + + append_param_arg "config" "address" "0.0.0.0:2017" + append_param_arg "config" "config" "/etc/v2raya" + append_param_arg "config" "ipv6_support" "auto" + append_param_arg "config" "log_level" "info" + append_param_arg "config" "log_file" "/tmp/v2raya.log" + append_param_arg "config" "log_max_days" "3" + append_param_arg "config" "v2ray_bin" + append_param_arg "config" "v2ray_confdir" + append_param_arg "config" "vless_grpc_inbound_cert_key" + append_param_bool "config" "log_disable_color" + append_param_bool "config" "log_disable_timestamp" + + procd_set_param limits core="unlimited" + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + + procd_close_instance +} + +reload_service() { + stop + start +} + +service_triggers() { + procd_add_reload_trigger "$CONF" +} diff --git a/v2raya/patches/010-chore-re-support-mips.patch b/v2raya/patches/010-chore-re-support-mips.patch new file mode 100644 index 00000000000..b94d3349d6d --- /dev/null +++ b/v2raya/patches/010-chore-re-support-mips.patch @@ -0,0 +1,154 @@ +From 366ef30071dc8cc73cd8768f6a0a58fa1b9533ff Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Fri, 10 Dec 2021 20:47:24 +0800 +Subject: [PATCH] chore: re-support mips + +--- + service/go.mod | 11 +++-------- + service/go.sum | 29 ++++++++++++++++++----------- + 2 files changed, 21 insertions(+), 19 deletions(-) + +--- a/go.mod ++++ b/go.mod +@@ -3,7 +3,6 @@ module github.com/v2rayA/v2rayA + go 1.16 + + require ( +- github.com/StackExchange/wmi v1.2.1 // indirect + github.com/beevik/ntp v0.3.0 + github.com/boltdb/bolt v1.3.1 + github.com/devfeel/mapper v0.7.5 +@@ -22,8 +21,7 @@ require ( + github.com/mzz2017/go-engine v0.0.0-20200509094339-b56921189229 + github.com/pkg/errors v0.9.1 + github.com/shadowsocks/go-shadowsocks2 v0.1.5-0.20210421162817-acdbac05f5a5 +- github.com/shirou/gopsutil v3.21.8+incompatible // indirect +- github.com/shirou/gopsutil/v3 v3.21.8 ++ github.com/shirou/gopsutil/v3 v3.21.11 + github.com/stevenroose/gonfig v0.1.5 + github.com/tidwall/gjson v1.10.2 + github.com/tidwall/sjson v1.2.3 +@@ -33,7 +31,7 @@ require ( + github.com/v2rayA/go-uci v0.0.0-20210907104827-4cf744297b41 + github.com/v2rayA/shadowsocksR v1.0.3 + golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d +- golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55 ++ golang.org/x/sys v0.0.0-20211013075003-97ac67df715c + google.golang.org/grpc v1.40.0 + gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect + ) +@@ -44,7 +42,4 @@ require ( + //replace github.com/mzz2017/go-engine => ../../go-engine + //replace github.com/v2rayA/beego/v2 => ../../beego + +-// windows/arm64 support +-replace github.com/go-ole/go-ole => github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1 +- +-replace github.com/shirou/gopsutil/v3 => github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f ++replace github.com/boltdb/bolt => github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0 +--- a/go.sum ++++ b/go.sum +@@ -23,8 +23,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod + github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= + github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= + github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= +-github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= +-github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= + github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= + github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= + github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +@@ -41,8 +39,6 @@ github.com/beorn7/perks v0.0.0-201803211 + github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= + github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= + github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +-github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= +-github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= + github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= + github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= + github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +@@ -112,12 +108,14 @@ github.com/gin-gonic/gin v1.7.1 h1:qC89G + github.com/gin-gonic/gin v1.7.1/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= + github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= + github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= ++github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0 h1:ZaoAEDzwmAhThOTX8xAsr2fqSFHjbZYAkd2/A4Ha1Sk= ++github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0/go.mod h1:rkz7AtkR0EmCCgcJRSvbsa5fW1VbxdcInaIKS7pvowU= + github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= + github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= + github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= + github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +-github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1 h1:+EOKrBM9hIMe7nPoryEuVZfSC5avyLLFgvt4up790KM= +-github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= ++github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= ++github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= + github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= + github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= + github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= +@@ -262,6 +260,8 @@ github.com/leodido/go-urn v1.2.0 h1:hpXL + github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= + github.com/lucas-clemente/quic-go v0.23.0 h1:5vFnKtZ6nHDFsc/F3uuiF4T3y/AXaQdxjUqiVw26GZE= + github.com/lucas-clemente/quic-go v0.23.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= ++github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= ++github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= + github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +@@ -352,6 +352,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:b + github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= + github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= + github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= ++github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= ++github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= + github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= + github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= + github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +@@ -381,10 +383,8 @@ github.com/shadowsocks/go-shadowsocks2 v + github.com/shadowsocks/go-shadowsocks2 v0.1.5-0.20210421162817-acdbac05f5a5/go.mod h1:AGGpIoek4HRno4xzyFiAtLHkOpcoznZEkAccaI/rplM= + github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik= + github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg= +-github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f h1:oegEiaH/bXSZaHdU8tXsVjaStvoBEvn8kpTpnbSiSA8= +-github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +-github.com/shirou/gopsutil v3.21.8+incompatible h1:sh0foI8tMRlCidUJR+KzqWYWxrkuuPIGiO6Vp+KXdCU= +-github.com/shirou/gopsutil v3.21.8+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= ++github.com/shirou/gopsutil/v3 v3.21.11 h1:d5tOAP5+bmJ8Hf2+4bxOSkQ/64+sjEbjU9nSW9nJgG0= ++github.com/shirou/gopsutil/v3 v3.21.11/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA= + github.com/shiyanhui/dht v0.0.0-20190320084728-1b3b78ecf279/go.mod h1:BFWnSWg10ADimfxHLuCo6NcJ7hu2ghgk6X7KuO6svmQ= + github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= + github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +@@ -450,6 +450,8 @@ github.com/tidwall/pretty v1.2.0/go.mod + github.com/tidwall/sjson v1.2.3 h1:5+deguEhHSEjmuICXZ21uSSsXotWMA0orU783+Z7Cp8= + github.com/tidwall/sjson v1.2.3/go.mod h1:5WdjKx3AQMvCJ4RG6/2UYT7dLrGvJUV1x4jdTAyGvZs= + github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= ++github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= ++github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= + github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= + github.com/u-root/u-root v7.0.0+incompatible/go.mod h1:RYkpo8pTHrNjW08opNd/U6p/RJE7K0D8fXO0d47+3YY= + github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +@@ -483,6 +485,8 @@ github.com/yuin/goldmark v1.1.27/go.mod + github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= + github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= + github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= ++github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= ++github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= + gitlab.com/yawning/chacha20.git v0.0.0-20190903091407-6d1cb28dc72c h1:yrfrd1u7MWIwWIulet2TZPEkeNQhQ/GcPLdPXgiEEr0= + gitlab.com/yawning/chacha20.git v0.0.0-20190903091407-6d1cb28dc72c/go.mod h1:3x6b94nWCP/a2XB/joOPMiGYUBvqbLfeY/BkHLeDs6s= + go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +@@ -640,6 +644,7 @@ golang.org/x/sys v0.0.0-20201101102859-d + golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +@@ -648,8 +653,10 @@ golang.org/x/sys v0.0.0-20210403161142-5 + golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55 h1:rw6UNGRMfarCepjI8qOepea/SXwIBVfTKjztZ5gBbq4= ++golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= ++golang.org/x/sys v0.0.0-20211013075003-97ac67df715c h1:taxlMj0D/1sOAuv/CbSD+MMDof2vbyPTqz5FNYKpXt8= ++golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/v2raya/test.sh b/v2raya/test.sh new file mode 100644 index 00000000000..2c53d5fe14f --- /dev/null +++ b/v2raya/test.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +v2raya --version | grep "$PKG_VERSION" From 956211875bcb601b9acd69528c13998323aff5f1 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 22 Dec 2021 20:35:34 +0800 Subject: [PATCH 028/972] v2raya: import upstream fixes Signed-off-by: Tianling Shen --- v2raya/Makefile | 4 +- ...-fix-when-no-addr-found-lookup-again.patch | 20 ++++ .../030-fix-incorrect-ipv6-routing.patch | 91 +++++++++++++++++++ ...DIRECT-must-work-with-port-sharing-f.patch | 26 ++++++ v2raya/test.sh | 3 - 5 files changed, 139 insertions(+), 5 deletions(-) create mode 100644 v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch create mode 100644 v2raya/patches/030-fix-incorrect-ipv6-routing.patch create mode 100644 v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch delete mode 100644 v2raya/test.sh diff --git a/v2raya/Makefile b/v2raya/Makefile index 033920f505f..18edc929379 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA PKG_VERSION:=1.5.5 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? @@ -30,7 +30,7 @@ GO_PKG_LDFLAGS:=-s -w GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.Version=$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk -include ../../lang/golang/golang-package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk TAR_OPTIONS+= --strip-components 1 TAR_CMD=$(HOST_TAR) -C $(1)/.. $(TAR_OPTIONS) diff --git a/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch b/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch new file mode 100644 index 00000000000..c563198c9a0 --- /dev/null +++ b/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch @@ -0,0 +1,20 @@ +From 0ca0898bec9c4b58a5cc6dcc062862e3573eed7d Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Sat, 11 Dec 2021 15:34:17 +0800 +Subject: [PATCH] fix: when no addr found, lookup again + +--- + service/common/resolv/resolver.go | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/common/resolv/resolver.go ++++ b/common/resolv/resolver.go +@@ -39,7 +39,7 @@ func init() { + + func LookupHost(host string) (addrs []string, err error) { + addrs, err = net.LookupHost(host) +- lookupAgain := err != nil ++ lookupAgain := len(addrs) == 0 || err != nil + if !lookupAgain { + for _, addr := range addrs { + if ip := net.ParseIP(addr); ip != nil && (ip.IsLoopback() || ip.IsUnspecified()) { diff --git a/v2raya/patches/030-fix-incorrect-ipv6-routing.patch b/v2raya/patches/030-fix-incorrect-ipv6-routing.patch new file mode 100644 index 00000000000..8dda9b25821 --- /dev/null +++ b/v2raya/patches/030-fix-incorrect-ipv6-routing.patch @@ -0,0 +1,91 @@ +From ce463911b8b480363cdf2b55518e4e7ac85ca6d7 Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Thu, 16 Dec 2021 23:44:07 +0800 +Subject: [PATCH] fix: incorrect ipv6 routing. #329 + +--- + service/core/v2ray/v2rayTmpl.go | 20 ++++++++++---------- + 1 file changed, 10 insertions(+), 10 deletions(-) + +--- a/core/v2ray/v2rayTmpl.go ++++ b/core/v2ray/v2rayTmpl.go +@@ -516,7 +516,7 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: firstOutboundTag, +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"ext:LoyalsoldierSite.dat:geolocation-!cn"}, + }) + } else { +@@ -524,7 +524,7 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: firstOutboundTag, +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"geosite:geolocation-!cn"}, + }) + } +@@ -532,19 +532,19 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: "direct", +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"geosite:cn"}, + }, + coreObj.RoutingRule{ + Type: "field", + OutboundTag: "proxy", +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + IP: []string{"geoip:hk", "geoip:mo"}, + }, + coreObj.RoutingRule{ + Type: "field", + OutboundTag: "direct", +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + IP: []string{"geoip:private", "geoip:cn"}, + }, + ) +@@ -554,13 +554,13 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: firstOutboundTag, +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"ext:LoyalsoldierSite.dat:gfw"}, + }, + coreObj.RoutingRule{ + Type: "field", + OutboundTag: firstOutboundTag, +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"ext:LoyalsoldierSite.dat:greatfire"}, + }) + } else { +@@ -568,7 +568,7 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: firstOutboundTag, +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + Domain: []string{"geosite:geolocation-!cn"}, + }) + } +@@ -576,11 +576,11 @@ func (t *Template) AppendRoutingRuleByMo + coreObj.RoutingRule{ + Type: "field", + OutboundTag: "direct", +- InboundTag: inbounds, ++ InboundTag: deepcopy.Copy(inbounds).([]string), + }, + ) + case configure.RoutingAMode: +- if err := parseRoutingA(t, inbounds); err != nil { ++ if err := parseRoutingA(t, deepcopy.Copy(inbounds).([]string)); err != nil { + return err + } + } diff --git a/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch b/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch new file mode 100644 index 00000000000..f440ed82b50 --- /dev/null +++ b/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch @@ -0,0 +1,26 @@ +From 68c28fb85cf079a678ce5334a18b9d848faa9d06 Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Sun, 19 Dec 2021 17:08:13 +0800 +Subject: [PATCH] fix: a problem that REDIRECT must work with port-sharing for + intranet + +--- + service/core/v2ray/v2rayTmpl.go | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/core/v2ray/v2rayTmpl.go ++++ b/core/v2ray/v2rayTmpl.go +@@ -878,6 +878,13 @@ func (t *Template) setDualStack() { + if !t.Setting.PortSharing { + // copy a group of ipv6 inbounds and set the tag + for i := range t.Inbounds { ++ if t.Inbounds[i].Tag == "transparent" && t.Setting.TransparentType == configure.TransparentRedirect { ++ // https://ipset.netfilter.org/iptables-extensions.man.html#lbDK ++ // REDIRECT redirects the packet to the machine itself by changing the destination IP to the primary address of the incoming interface. ++ // So we should listen at 0.0.0.0 instead of 127.0.0.1 ++ inbounds6[i].Tag = "THIS_IS_A_DROPPED_TAG" ++ continue ++ } + if t.Inbounds[i].Tag == "dns-in" { + t.Inbounds[i].Listen = "127.2.0.17" + inbounds6[i].Tag = "THIS_IS_A_DROPPED_TAG" diff --git a/v2raya/test.sh b/v2raya/test.sh deleted file mode 100644 index 2c53d5fe14f..00000000000 --- a/v2raya/test.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -v2raya --version | grep "$PKG_VERSION" From fcd289527dbb61f60dbd227afd7b4fb2d3a09b2f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 24 Dec 2021 23:22:26 +0800 Subject: [PATCH 029/972] xray-core: Update to 1.5.2 Removed upstreamed patches. Signed-off-by: Tianling Shen --- xray-core/Makefile | 6 +- ...ipher-method-xChaCha20-IETF-Poly1305.patch | 20 --- ...grpc-add-initial_windows_size-option.patch | 114 ------------------ ...hadowsocks-xchacha-cipher-nonce-size.patch | 52 -------- 4 files changed, 3 insertions(+), 189 deletions(-) delete mode 100644 xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch delete mode 100644 xray-core/patches/020-grpc-add-initial_windows_size-option.patch delete mode 100644 xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index 12bc6554fef..b3e644f0248 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.1 -PKG_RELEASE:=2 +PKG_VERSION:=1.5.2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=11b01de5da7efed2a5f066b14bfe5e0299071dc8c32b7f64af5c51daf3abc6c2 +PKG_HASH:=b687a8fd1325bee0f6352c8dc3bfb70a7ee07cd74aacaece4e36c93cf7cda417 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch b/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch deleted file mode 100644 index c535b4c6664..00000000000 --- a/xray-core/patches/010-fix-unsupported-cipher-method-xChaCha20-IETF-Poly1305.patch +++ /dev/null @@ -1,20 +0,0 @@ -From c8e2a99e68109b386c541dcc157f1f64ca8cbd17 Mon Sep 17 00:00:00 2001 -From: xqzr <34030394+xqzr@users.noreply.github.com> -Date: Fri, 17 Dec 2021 00:25:16 +0800 -Subject: [PATCH] fix unsupported cipher method: xChaCha20-IETF-Poly1305 - ---- - infra/conf/shadowsocks.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/infra/conf/shadowsocks.go -+++ b/infra/conf/shadowsocks.go -@@ -59,7 +59,7 @@ func (v *ShadowsocksServerConfig) Build( - return nil, newError("Shadowsocks password is not specified.") - } - if account.CipherType < shadowsocks.CipherType_AES_128_GCM || -- account.CipherType > shadowsocks.CipherType_CHACHA20_POLY1305 { -+ account.CipherType > shadowsocks.CipherType_XCHACHA20_POLY1305 { - return nil, newError("unsupported cipher method: ", user.Cipher) - } - config.Users = append(config.Users, &protocol.User{ diff --git a/xray-core/patches/020-grpc-add-initial_windows_size-option.patch b/xray-core/patches/020-grpc-add-initial_windows_size-option.patch deleted file mode 100644 index 696bcf2599b..00000000000 --- a/xray-core/patches/020-grpc-add-initial_windows_size-option.patch +++ /dev/null @@ -1,114 +0,0 @@ -From 63da3a548138640f96e631f10d6e2ee1bae3ed62 Mon Sep 17 00:00:00 2001 -From: hmol233 <82594500+hmol233@users.noreply.github.com> -Date: Mon, 20 Dec 2021 00:47:21 +0800 -Subject: [PATCH] grpc: add initial_windows_size option - ---- - infra/conf/grpc.go | 7 +++++++ - transport/internet/grpc/config.pb.go | 23 +++++++++++++++++------ - transport/internet/grpc/config.proto | 1 + - transport/internet/grpc/dial.go | 4 ++++ - 4 files changed, 29 insertions(+), 6 deletions(-) - ---- a/infra/conf/grpc.go -+++ b/infra/conf/grpc.go -@@ -12,6 +12,7 @@ type GRPCConfig struct { - IdleTimeout int32 `json:"idle_timeout"` - HealthCheckTimeout int32 `json:"health_check_timeout"` - PermitWithoutStream bool `json:"permit_without_stream"` -+ InitialWindowsSize int32 `json:"initial_windows_size"` - } - - func (g *GRPCConfig) Build() (proto.Message, error) { -@@ -21,11 +22,17 @@ func (g *GRPCConfig) Build() (proto.Mess - if g.HealthCheckTimeout <= 0 { - g.HealthCheckTimeout = 0 - } -+ if g.InitialWindowsSize < 0 { -+ // default window size of gRPC-go -+ g.InitialWindowsSize = 0 -+ } -+ - return &grpc.Config{ - ServiceName: g.ServiceName, - MultiMode: g.MultiMode, - IdleTimeout: g.IdleTimeout, - HealthCheckTimeout: g.HealthCheckTimeout, - PermitWithoutStream: g.PermitWithoutStream, -+ InitialWindowsSize: g.InitialWindowsSize, - }, nil - } ---- a/transport/internet/grpc/config.pb.go -+++ b/transport/internet/grpc/config.pb.go -@@ -31,6 +31,7 @@ type Config struct { - IdleTimeout int32 `protobuf:"varint,4,opt,name=idle_timeout,json=idleTimeout,proto3" json:"idle_timeout,omitempty"` - HealthCheckTimeout int32 `protobuf:"varint,5,opt,name=health_check_timeout,json=healthCheckTimeout,proto3" json:"health_check_timeout,omitempty"` - PermitWithoutStream bool `protobuf:"varint,6,opt,name=permit_without_stream,json=permitWithoutStream,proto3" json:"permit_without_stream,omitempty"` -+ InitialWindowsSize int32 `protobuf:"varint,7,opt,name=initial_windows_size,json=initialWindowsSize,proto3" json:"initial_windows_size,omitempty"` - } - - func (x *Config) Reset() { -@@ -107,6 +108,13 @@ func (x *Config) GetPermitWithoutStream( - return false - } - -+func (x *Config) GetInitialWindowsSize() int32 { -+ if x != nil { -+ return x.InitialWindowsSize -+ } -+ return 0 -+} -+ - var File_transport_internet_grpc_config_proto protoreflect.FileDescriptor - - var file_transport_internet_grpc_config_proto_rawDesc = []byte{ -@@ -114,7 +122,7 @@ var file_transport_internet_grpc_config_ - 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x25, 0x78, 0x72, 0x61, 0x79, 0x2e, 0x74, 0x72, 0x61, - 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2e, -- 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0xe7, 0x01, -+ 0x67, 0x72, 0x70, 0x63, 0x2e, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x99, 0x02, - 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, -@@ -129,11 +137,14 @@ var file_transport_internet_grpc_config_ - 0x6f, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x13, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x74, 0x57, 0x69, 0x74, 0x68, 0x6f, 0x75, -- 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, 0x68, 0x75, -- 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, 0x79, 0x2d, -- 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2f, 0x69, -- 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, -- 0x6f, 0x74, 0x6f, 0x33, -+ 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, -+ 0x61, 0x6c, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, -+ 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x57, 0x69, -+ 0x6e, 0x64, 0x6f, 0x77, 0x73, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, 0x74, -+ 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x78, 0x74, 0x6c, 0x73, 0x2f, 0x78, 0x72, 0x61, -+ 0x79, 0x2d, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, -+ 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, -+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, - } - - var ( ---- a/transport/internet/grpc/config.proto -+++ b/transport/internet/grpc/config.proto -@@ -10,4 +10,5 @@ message Config { - int32 idle_timeout = 4; - int32 health_check_timeout = 5; - bool permit_without_stream = 6; -+ int32 initial_windows_size = 7; - } ---- a/transport/internet/grpc/dial.go -+++ b/transport/internet/grpc/dial.go -@@ -135,6 +135,10 @@ func getGrpcClient(ctx context.Context, - })) - } - -+ if grpcSettings.InitialWindowsSize > 0 { -+ dialOptions = append(dialOptions, grpc.WithInitialWindowSize(grpcSettings.InitialWindowsSize)) -+ } -+ - var grpcDestHost string - if dest.Address.Family().IsDomain() { - grpcDestHost = dest.Address.Domain() diff --git a/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch b/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch deleted file mode 100644 index a73d0156c7e..00000000000 --- a/xray-core/patches/030-Fix-shadowsocks-xchacha-cipher-nonce-size.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 9ea1bf7c1dfad892aafc8807b56ce398bb2eb819 Mon Sep 17 00:00:00 2001 -From: yuhan6665 <1588741+yuhan6665@users.noreply.github.com> -Date: Sat, 18 Dec 2021 23:23:09 -0500 -Subject: [PATCH] Fix shadowsocks xchacha cipher nonce size - ---- - common/crypto/auth.go | 4 ---- - proxy/shadowsocks/protocol.go | 2 +- - proxy/shadowsocks/validator.go | 6 +++--- - 3 files changed, 4 insertions(+), 8 deletions(-) - ---- a/common/crypto/auth.go -+++ b/common/crypto/auth.go -@@ -39,10 +39,6 @@ func GenerateIncreasingNonce(nonce []byt - } - } - --func GenerateInitialAEADNonce() BytesGenerator { -- return GenerateIncreasingNonce([]byte{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF}) --} -- - func GenerateAEADNonceWithSize(nonceSize int) BytesGenerator { - c := make([]byte, nonceSize) - for i := 0; i < nonceSize; i++ { ---- a/proxy/shadowsocks/protocol.go -+++ b/proxy/shadowsocks/protocol.go -@@ -86,7 +86,7 @@ func ReadTCPSession(validator *Validator - if aead != nil { - auth := &crypto.AEADAuthenticator{ - AEAD: aead, -- NonceGenerator: crypto.GenerateInitialAEADNonce(), -+ NonceGenerator: crypto.GenerateAEADNonceWithSize(aead.NonceSize()), - } - r = crypto.NewAuthenticationReader(auth, &crypto.AEADChunkSizeParser{ - Auth: auth, ---- a/proxy/shadowsocks/validator.go -+++ b/proxy/shadowsocks/validator.go -@@ -93,11 +93,11 @@ func (v *Validator) Get(bs []byte, comma - var matchErr error - switch command { - case protocol.RequestCommandTCP: -- data := make([]byte, 16) -- ret, matchErr = aead.Open(data[:0], data[4:16], bs[ivLen:ivLen+18], nil) -+ data := make([]byte, 4+aead.NonceSize()) -+ ret, matchErr = aead.Open(data[:0], data[4:], bs[ivLen:ivLen+18], nil) - case protocol.RequestCommandUDP: - data := make([]byte, 8192) -- ret, matchErr = aead.Open(data[:0], data[8180:8192], bs[ivLen:], nil) -+ ret, matchErr = aead.Open(data[:0], data[8192-aead.NonceSize():8192], bs[ivLen:], nil) - } - - if matchErr == nil { From 3c14800d884b31f11e3593367b49f32d3e54c719 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 25 Dec 2021 18:33:33 +0800 Subject: [PATCH 030/972] xray-plugin: update to 1.5.2 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index c8e82945ef7..88f29ac135c 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.1 +PKG_VERSION:=1.5.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3ebbd992fed640bed630f583a3d168da0952190c5f842e0a1278587b0cba5425 +PKG_HASH:=4a8516b26c08f97ba41b1585fb7603ec194e510a776c8b0d26577e874665afe2 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From b292dcafd5706c9f0545dc1848b34d3b7c8be49d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 1 Jan 2022 15:18:31 +0000 Subject: [PATCH 031/972] treewide: disable UPX by default --- v2ray-core/Makefile | 6 ++++-- xray-core/Makefile | 2 +- xray-plugin/Makefile | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index dfa189e91d5..38262533a11 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -91,7 +91,8 @@ config V2RAY_CORE_COMPRESS_GOPROXY config V2RAY_CORE_COMPRESS_UPX bool "Compress executable files with UPX" - default y + depends on !mips64 + default n endmenu endef @@ -105,7 +106,8 @@ config V2RAY_CTL_COMPRESS_GOPROXY config V2RAY_CTL_COMPRESS_UPX bool "Compress executable files with UPX" - default y + depends on !mips64 + default n endmenu endef diff --git a/xray-core/Makefile b/xray-core/Makefile index b3e644f0248..4181b435505 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -54,7 +54,7 @@ config XRAY_CORE_COMPRESS_GOPROXY config XRAY_CORE_COMPRESS_UPX bool "Compress executable files with UPX" depends on !mips64 - default y + default n endmenu endef diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 88f29ac135c..1440c603630 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -38,7 +38,7 @@ config XRAY_PLUGIN_COMPRESS_GOPROXY config XRAY_PLUGIN_COMPRESS_UPX bool "Compress executable files with UPX" depends on !mips64 - default y + default n endef ifneq ($(CONFIG_XRAY_PLUGIN_COMPRESS_GOPROXY),) From cb41416363363938b78a3bc89410fdc0c8164860 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 29 Dec 2021 14:43:36 +0800 Subject: [PATCH 032/972] luci-app-ssr-plus: remove alterId config Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 7 ------- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 1 - .../root/usr/share/shadowsocksr/gen_config.lua | 1 - .../root/usr/share/shadowsocksr/subscribe.lua | 1 - 4 files changed, 10 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index fb8efc3a8e9..68a6ee9d782 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -302,13 +302,6 @@ o:depends("type", "ssr") o = s:option(Value, "obfs_param", translate("Obfs param(optional)")) o:depends("type", "ssr") --- AlterId -o = s:option(Value, "alter_id", translate("AlterId")) -o.datatype = "port" -o.default = 16 -o.rmempty = true -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) - -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index b3b49a4faf7..b9711180ccc 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -242,7 +242,6 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = ssm.ps; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm.add; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index eec009bf5b8..dce590e0f63 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -15,7 +15,6 @@ function vmess_vless() users = { { id = server.vmess_id, - alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 8a9bb0188b4..0fd7c5f1c75 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -163,7 +163,6 @@ local function processData(szType, content) result.server = info.add result.server_port = info.port result.transport = info.net - result.alter_id = info.aid result.vmess_id = info.id result.alias = info.ps -- result.mux = 1 From ebc69c89b800c2b27d4a97a69e6ba09a6f1ba3c9 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 6 Jan 2022 13:41:41 +0800 Subject: [PATCH 033/972] naiveproxy: Update to 97.0.4692.71-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 30 ++++++++++++------------------ 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 051e7bdce09..d2526981b0c 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=96.0.4664.45-1 -PKG_RELEASE:=3 +PKG_VERSION:=97.0.4692.71-1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b7ec325ac48d85063137a9efa3cbee7184052d7f4b4c469d88f4e5223235ca1f +PKG_HASH:=10535dac472243ac55d709a185434c72cde976143809c9bac213b6a4a5f521a1 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -66,38 +66,32 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=14-init-5759-g02895eed-1 +CLANG_VER:=14-init-8033-gabb2a91b-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG - URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 \ - https://sources.immortalwrt.org \ - https://sources.cdn.immortalwrt.org + URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=5c2d11236c7254d48b02535ff58897830bc64e7258434d658c7d606e8d01b179 + HASH:=720e10810f0005a4a8640728e72f06c283d4c51362f2889b513c6d6c3a136582 endef -GN_VER:=0153d369bbccc908f4da4993b1ba82728055926a +GN_VER:=90294ccdcf9334ed25a76ac9b67689468e506342 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL - URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ \ - https://sources.immortalwrt.org \ - https://sources.cdn.immortalwrt.org + URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=8022d1e0d6627a740847806c27a195fa9fc15c4883359a6d162944c3d5e26b44 + HASH:=9cbfd56953d415a88dfae616191c0c37612a41f7fb09830d2952b8b5a59c7dec endef -PGO_VER:=4664-1636557077-6e390f4e505916531ca2ab0c895d5903ab4d88a9 +PGO_VER:=4692-1640701189-f21838a98aa9a4bd13520a4261d2d77cbab9c3f3 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com.cnpmjs.org/chromium-optimization-profiles/pgo_profiles \ - https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles \ - https://sources.immortalwrt.org \ - https://sources.cdn.immortalwrt.org + https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=8dcf5973033d40c9a7b15e571dea3832e7b67976aad9113369e22d43808c603f + HASH:=8830cc810cdd1c4812a3cd009206bbf52f7c33a67b3280f62dd60cb684300e0f endef define Build/Prepare From 25f3a48cdaf53396a7ff90b8dd89d066105fe986 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 1 Feb 2022 00:30:01 +0800 Subject: [PATCH 034/972] xray-core: update to 1.5.3 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 4181b435505..8481d5dc594 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.2 +PKG_VERSION:=1.5.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b687a8fd1325bee0f6352c8dc3bfb70a7ee07cd74aacaece4e36c93cf7cda417 +PKG_HASH:=4b8d78cc20bdf2e8936c02b05d22f0a3231075155ffdc67508d8448ab8858252 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From e6317eb485d9fc60d96ddbb211e9170b81d56955 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 1 Feb 2022 00:31:42 +0800 Subject: [PATCH 035/972] xray-plugin: update to 1.5.3 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 1440c603630..ef8bae02049 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.2 +PKG_VERSION:=1.5.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4a8516b26c08f97ba41b1585fb7603ec194e510a776c8b0d26577e874665afe2 +PKG_HASH:=0280e1c7c9c87db13a456be098e42065374066df4108b87c2e1d781337740a73 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 4b6d2421e5596e2709346589c0c8624deabb8ca8 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 31 Jan 2022 16:27:43 +0000 Subject: [PATCH 036/972] shadowsocks-rust: update to 1.13.1 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index d748e735acf..e09996ba0bf 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.12.5 +PKG_VERSION:=1.13.1 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e891842b714f3f23fe8cb5d3187ac702f42bf8e6847fed65d174105fafad4d49 + PKG_HASH:=61f65c067986e322f7befebb8d330c65c0777f4bcd8938384bf1ad3e3dcdabfd else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=1a26ce3c55b3fdfc1041b20cb51b909c294e77dea23d7b4a0362c2d0310a7e08 + PKG_HASH:=f14618c10605a1422f2dfea640968393ec28017960c31d80cd658850acb2dcb0 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=6f664ee11bd5789fd1a2607e7ba5fbbbefd60079767928eef732fdbc137b401f + PKG_HASH:=f2a0c5ccce9464d9db5018f49062f584727902ae0471cfa8f9bafd5ed271f9d7 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=721d23860d26a8047ca2978ed24de35219e0439e77e6722e0f87a54e9b7e1843 + PKG_HASH:=52adb3231cfc4e0e2f92ffe862338a848ea5404026ebcdb2f95f3dc4e730553c else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=2bf294ea58d0bca8ee1f47b63632db341cdb3d849d67a0438695b7c7b589c7eb + PKG_HASH:=9df8c9f215dd2bb204172fcfec9be6c0e38eb75dbcb691392c057015b1dc82d2 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=19d62fbf7586939b402a65c86432410fe7612726f9840f7ee383e8a2cb6d7802 + PKG_HASH:=9aecb004f0b82271d295a0ba342f7bb590b6f29883ee7b417f9e0537471311f1 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=0e8f7333e6a9baf8096bb05c41bbc7d447b5a4ba9a6eb1814a48116b18694cc3 + PKG_HASH:=5d288ffaf7c58492ec5f3986c3f1edfd800dadf322289676e4ff8c8081c57cd5 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 8aacff0bb76986a267ab63023926aef4f6b9950c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 4 Feb 2022 14:57:25 +0000 Subject: [PATCH 037/972] v2ray-geodata: Update to latest version Signed-off-by: Tianling Shen --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 949c43e4125..eca27b4d29b 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202112090029 +GEOIP_VER:=202202030030 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=704c53a30531b74a2c4c51b5ee958340717fc81906335c4342fb7d6ef4243ba9 + HASH:=6250675cac06d8c032f7f5203666fd2f72476b60886b28657e10b0e12deae8bc endef -GEOSITE_VER:=20211209100918 +GEOSITE_VER:=20220201175515 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=a39901df0d0f7477d874cda50b045057610837dd0d80f7ff4c51b7ab87d88b18 + HASH:=697e78c8c0dab19f08ae17ba6aa9c7c50dcb9be566bb9a314aa9f5da29d76200 endef define Package/v2ray-geodata/template From c8525f030da6420a3c25f4d63c0a50239bb2ed79 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 4 Feb 2022 14:51:10 +0000 Subject: [PATCH 038/972] v2raya: init: convert arguments into env variables Suggested by upstream, to provide forward compatibility. Signed-off-by: Tianling Shen --- v2raya/files/v2raya.init | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index cb817371110..f1374914d42 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -17,18 +17,18 @@ is_enabled() { fi } -append_param() { - procd_append_param command "$1" $2 +append_env() { + procd_append_param env "V2RAYA_$(echo "$1" | tr "[a-z]" "[A-Z]")"="$2" } -append_param_arg() { +append_env_arg() { local value config_get value "$1" "$2" $3 - [ -n "$value" ] && append_param "--${2//_/-}" "$value" + [ -n "$value" ] && append_env "$2" "$value" } -append_param_bool() { - is_enabled "$1" "$2" && append_param "--${2//_/-}" +append_env_bool() { + is_enabled "$1" "$2" && append_env "$2" "true" } start_service() { @@ -39,17 +39,17 @@ start_service() { procd_open_instance "$CONF" procd_set_param command "$PROG" - append_param_arg "config" "address" "0.0.0.0:2017" - append_param_arg "config" "config" "/etc/v2raya" - append_param_arg "config" "ipv6_support" "auto" - append_param_arg "config" "log_level" "info" - append_param_arg "config" "log_file" "/tmp/v2raya.log" - append_param_arg "config" "log_max_days" "3" - append_param_arg "config" "v2ray_bin" - append_param_arg "config" "v2ray_confdir" - append_param_arg "config" "vless_grpc_inbound_cert_key" - append_param_bool "config" "log_disable_color" - append_param_bool "config" "log_disable_timestamp" + append_env_arg "config" "address" "0.0.0.0:2017" + append_env_arg "config" "config" "/etc/v2raya" + append_env_arg "config" "ipv6_support" "auto" + append_env_arg "config" "log_level" "info" + append_env_arg "config" "log_file" "/tmp/v2raya.log" + append_env_arg "config" "log_max_days" "3" + append_env_arg "config" "v2ray_bin" + append_env_arg "config" "v2ray_confdir" + append_env_arg "config" "vless_grpc_inbound_cert_key" + append_env_bool "config" "log_disable_color" + append_env_bool "config" "log_disable_timestamp" procd_set_param limits core="unlimited" procd_set_param respawn From a9de780d215e97dc9a18953959e9952fe7436f2b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 4 Feb 2022 14:53:53 +0000 Subject: [PATCH 039/972] v2rayA: Update to 1.5.6.2 Manually added new env variable `XDG_DATA_HOME` which won't be passed by procd by default. Removed upstreamed patch. Signed-off-by: Tianling Shen --- v2raya/Makefile | 4 +- v2raya/files/v2raya.init | 1 + .../patches/010-chore-re-support-mips.patch | 154 ------------------ ...-fix-when-no-addr-found-lookup-again.patch | 20 --- .../030-fix-incorrect-ipv6-routing.patch | 91 ----------- ...DIRECT-must-work-with-port-sharing-f.patch | 26 --- 6 files changed, 3 insertions(+), 293 deletions(-) delete mode 100644 v2raya/patches/010-chore-re-support-mips.patch delete mode 100644 v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch delete mode 100644 v2raya/patches/030-fix-incorrect-ipv6-routing.patch delete mode 100644 v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch diff --git a/v2raya/Makefile b/v2raya/Makefile index 18edc929379..f9a9e53d6c2 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=1.5.5 +PKG_VERSION:=1.5.6.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7844cb4cddca0a4831925c38039226813a61ceaf24a19e471654d278387b8368 +PKG_HASH:=d949246aa9fe80aa9cb8fb4d80cb470f508bb44d4ac23e84e28e3b9abd30b67c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index f1374914d42..826935d5c3a 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -38,6 +38,7 @@ start_service() { procd_open_instance "$CONF" procd_set_param command "$PROG" + procd_set_param env XDG_DATA_HOME="/usr/share" append_env_arg "config" "address" "0.0.0.0:2017" append_env_arg "config" "config" "/etc/v2raya" diff --git a/v2raya/patches/010-chore-re-support-mips.patch b/v2raya/patches/010-chore-re-support-mips.patch deleted file mode 100644 index b94d3349d6d..00000000000 --- a/v2raya/patches/010-chore-re-support-mips.patch +++ /dev/null @@ -1,154 +0,0 @@ -From 366ef30071dc8cc73cd8768f6a0a58fa1b9533ff Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Fri, 10 Dec 2021 20:47:24 +0800 -Subject: [PATCH] chore: re-support mips - ---- - service/go.mod | 11 +++-------- - service/go.sum | 29 ++++++++++++++++++----------- - 2 files changed, 21 insertions(+), 19 deletions(-) - ---- a/go.mod -+++ b/go.mod -@@ -3,7 +3,6 @@ module github.com/v2rayA/v2rayA - go 1.16 - - require ( -- github.com/StackExchange/wmi v1.2.1 // indirect - github.com/beevik/ntp v0.3.0 - github.com/boltdb/bolt v1.3.1 - github.com/devfeel/mapper v0.7.5 -@@ -22,8 +21,7 @@ require ( - github.com/mzz2017/go-engine v0.0.0-20200509094339-b56921189229 - github.com/pkg/errors v0.9.1 - github.com/shadowsocks/go-shadowsocks2 v0.1.5-0.20210421162817-acdbac05f5a5 -- github.com/shirou/gopsutil v3.21.8+incompatible // indirect -- github.com/shirou/gopsutil/v3 v3.21.8 -+ github.com/shirou/gopsutil/v3 v3.21.11 - github.com/stevenroose/gonfig v0.1.5 - github.com/tidwall/gjson v1.10.2 - github.com/tidwall/sjson v1.2.3 -@@ -33,7 +31,7 @@ require ( - github.com/v2rayA/go-uci v0.0.0-20210907104827-4cf744297b41 - github.com/v2rayA/shadowsocksR v1.0.3 - golang.org/x/net v0.0.0-20210813160813-60bc85c4be6d -- golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55 -+ golang.org/x/sys v0.0.0-20211013075003-97ac67df715c - google.golang.org/grpc v1.40.0 - gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect - ) -@@ -44,7 +42,4 @@ require ( - //replace github.com/mzz2017/go-engine => ../../go-engine - //replace github.com/v2rayA/beego/v2 => ../../beego - --// windows/arm64 support --replace github.com/go-ole/go-ole => github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1 -- --replace github.com/shirou/gopsutil/v3 => github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f -+replace github.com/boltdb/bolt => github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0 ---- a/go.sum -+++ b/go.sum -@@ -23,8 +23,6 @@ github.com/BurntSushi/toml v0.3.1/go.mod - github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= - github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= - github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= --github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA= --github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8= - github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da/go.mod h1:eHEWzANqSiWQsof+nXEI9bUVUyV6F53Fp89EuCh2EAA= - github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= - github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -@@ -41,8 +39,6 @@ github.com/beorn7/perks v0.0.0-201803211 - github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= - github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= - github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= --github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= --github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= - github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g= - github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= - github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -@@ -112,12 +108,14 @@ github.com/gin-gonic/gin v1.7.1 h1:qC89G - github.com/gin-gonic/gin v1.7.1/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= - github.com/gliderlabs/ssh v0.1.1/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= - github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= -+github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0 h1:ZaoAEDzwmAhThOTX8xAsr2fqSFHjbZYAkd2/A4Ha1Sk= -+github.com/go-gitea/bolt v0.0.0-20170420010917-ccd680d8c1a0/go.mod h1:rkz7AtkR0EmCCgcJRSvbsa5fW1VbxdcInaIKS7pvowU= - github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= - github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= - github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= - github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= --github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1 h1:+EOKrBM9hIMe7nPoryEuVZfSC5avyLLFgvt4up790KM= --github.com/go-ole/go-ole v0.0.0-20210915003542-8b1f7f90f6b1/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= -+github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -+github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= - github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= - github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= - github.com/go-playground/locales v0.12.1/go.mod h1:IUMDtCfWo/w/mtMfIE/IG2K+Ey3ygWanZIBtBW0W2TM= -@@ -262,6 +260,8 @@ github.com/leodido/go-urn v1.2.0 h1:hpXL - github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= - github.com/lucas-clemente/quic-go v0.23.0 h1:5vFnKtZ6nHDFsc/F3uuiF4T3y/AXaQdxjUqiVw26GZE= - github.com/lucas-clemente/quic-go v0.23.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -+github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -+github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= - github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -@@ -352,6 +352,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:b - github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= - github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= - github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -+github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -+github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= - github.com/prometheus/client_golang v0.8.0/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= - github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= - github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -@@ -381,10 +383,8 @@ github.com/shadowsocks/go-shadowsocks2 v - github.com/shadowsocks/go-shadowsocks2 v0.1.5-0.20210421162817-acdbac05f5a5/go.mod h1:AGGpIoek4HRno4xzyFiAtLHkOpcoznZEkAccaI/rplM= - github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18 h1:DAYUYH5869yV94zvCES9F51oYtN5oGlwjxJJz7ZCnik= - github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg= --github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f h1:oegEiaH/bXSZaHdU8tXsVjaStvoBEvn8kpTpnbSiSA8= --github.com/shirou/gopsutil v0.0.0-20210919144451-80d5b574053f/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= --github.com/shirou/gopsutil v3.21.8+incompatible h1:sh0foI8tMRlCidUJR+KzqWYWxrkuuPIGiO6Vp+KXdCU= --github.com/shirou/gopsutil v3.21.8+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= -+github.com/shirou/gopsutil/v3 v3.21.11 h1:d5tOAP5+bmJ8Hf2+4bxOSkQ/64+sjEbjU9nSW9nJgG0= -+github.com/shirou/gopsutil/v3 v3.21.11/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA= - github.com/shiyanhui/dht v0.0.0-20190320084728-1b3b78ecf279/go.mod h1:BFWnSWg10ADimfxHLuCo6NcJ7hu2ghgk6X7KuO6svmQ= - github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= - github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -@@ -450,6 +450,8 @@ github.com/tidwall/pretty v1.2.0/go.mod - github.com/tidwall/sjson v1.2.3 h1:5+deguEhHSEjmuICXZ21uSSsXotWMA0orU783+Z7Cp8= - github.com/tidwall/sjson v1.2.3/go.mod h1:5WdjKx3AQMvCJ4RG6/2UYT7dLrGvJUV1x4jdTAyGvZs= - github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= -+github.com/tklauser/go-sysconf v0.3.9/go.mod h1:11DU/5sG7UexIrp/O6g35hrWzu0JxlwQ3LSFUzyeuhs= -+github.com/tklauser/numcpus v0.3.0/go.mod h1:yFGUr7TUHQRAhyqBcEg0Ge34zDBAsIvJJcyE6boqnA8= - github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= - github.com/u-root/u-root v7.0.0+incompatible/go.mod h1:RYkpo8pTHrNjW08opNd/U6p/RJE7K0D8fXO0d47+3YY= - github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= -@@ -483,6 +485,8 @@ github.com/yuin/goldmark v1.1.27/go.mod - github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= - github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= - github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -+github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg= -+github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= - gitlab.com/yawning/chacha20.git v0.0.0-20190903091407-6d1cb28dc72c h1:yrfrd1u7MWIwWIulet2TZPEkeNQhQ/GcPLdPXgiEEr0= - gitlab.com/yawning/chacha20.git v0.0.0-20190903091407-6d1cb28dc72c/go.mod h1:3x6b94nWCP/a2XB/joOPMiGYUBvqbLfeY/BkHLeDs6s= - go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= -@@ -640,6 +644,7 @@ golang.org/x/sys v0.0.0-20201101102859-d - golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -+golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -@@ -648,8 +653,10 @@ golang.org/x/sys v0.0.0-20210403161142-5 - golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55 h1:rw6UNGRMfarCepjI8qOepea/SXwIBVfTKjztZ5gBbq4= -+golang.org/x/sys v0.0.0-20210816074244-15123e1e1f71/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20210820121016-41cdb8703e55/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.0.0-20211013075003-97ac67df715c h1:taxlMj0D/1sOAuv/CbSD+MMDof2vbyPTqz5FNYKpXt8= -+golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= - golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch b/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch deleted file mode 100644 index c563198c9a0..00000000000 --- a/v2raya/patches/020-fix-when-no-addr-found-lookup-again.patch +++ /dev/null @@ -1,20 +0,0 @@ -From 0ca0898bec9c4b58a5cc6dcc062862e3573eed7d Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Sat, 11 Dec 2021 15:34:17 +0800 -Subject: [PATCH] fix: when no addr found, lookup again - ---- - service/common/resolv/resolver.go | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/common/resolv/resolver.go -+++ b/common/resolv/resolver.go -@@ -39,7 +39,7 @@ func init() { - - func LookupHost(host string) (addrs []string, err error) { - addrs, err = net.LookupHost(host) -- lookupAgain := err != nil -+ lookupAgain := len(addrs) == 0 || err != nil - if !lookupAgain { - for _, addr := range addrs { - if ip := net.ParseIP(addr); ip != nil && (ip.IsLoopback() || ip.IsUnspecified()) { diff --git a/v2raya/patches/030-fix-incorrect-ipv6-routing.patch b/v2raya/patches/030-fix-incorrect-ipv6-routing.patch deleted file mode 100644 index 8dda9b25821..00000000000 --- a/v2raya/patches/030-fix-incorrect-ipv6-routing.patch +++ /dev/null @@ -1,91 +0,0 @@ -From ce463911b8b480363cdf2b55518e4e7ac85ca6d7 Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Thu, 16 Dec 2021 23:44:07 +0800 -Subject: [PATCH] fix: incorrect ipv6 routing. #329 - ---- - service/core/v2ray/v2rayTmpl.go | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - ---- a/core/v2ray/v2rayTmpl.go -+++ b/core/v2ray/v2rayTmpl.go -@@ -516,7 +516,7 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: firstOutboundTag, -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"ext:LoyalsoldierSite.dat:geolocation-!cn"}, - }) - } else { -@@ -524,7 +524,7 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: firstOutboundTag, -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"geosite:geolocation-!cn"}, - }) - } -@@ -532,19 +532,19 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: "direct", -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"geosite:cn"}, - }, - coreObj.RoutingRule{ - Type: "field", - OutboundTag: "proxy", -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - IP: []string{"geoip:hk", "geoip:mo"}, - }, - coreObj.RoutingRule{ - Type: "field", - OutboundTag: "direct", -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - IP: []string{"geoip:private", "geoip:cn"}, - }, - ) -@@ -554,13 +554,13 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: firstOutboundTag, -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"ext:LoyalsoldierSite.dat:gfw"}, - }, - coreObj.RoutingRule{ - Type: "field", - OutboundTag: firstOutboundTag, -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"ext:LoyalsoldierSite.dat:greatfire"}, - }) - } else { -@@ -568,7 +568,7 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: firstOutboundTag, -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - Domain: []string{"geosite:geolocation-!cn"}, - }) - } -@@ -576,11 +576,11 @@ func (t *Template) AppendRoutingRuleByMo - coreObj.RoutingRule{ - Type: "field", - OutboundTag: "direct", -- InboundTag: inbounds, -+ InboundTag: deepcopy.Copy(inbounds).([]string), - }, - ) - case configure.RoutingAMode: -- if err := parseRoutingA(t, inbounds); err != nil { -+ if err := parseRoutingA(t, deepcopy.Copy(inbounds).([]string)); err != nil { - return err - } - } diff --git a/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch b/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch deleted file mode 100644 index f440ed82b50..00000000000 --- a/v2raya/patches/040-fix-a-problem-that-REDIRECT-must-work-with-port-sharing-f.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 68c28fb85cf079a678ce5334a18b9d848faa9d06 Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Sun, 19 Dec 2021 17:08:13 +0800 -Subject: [PATCH] fix: a problem that REDIRECT must work with port-sharing for - intranet - ---- - service/core/v2ray/v2rayTmpl.go | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/core/v2ray/v2rayTmpl.go -+++ b/core/v2ray/v2rayTmpl.go -@@ -878,6 +878,13 @@ func (t *Template) setDualStack() { - if !t.Setting.PortSharing { - // copy a group of ipv6 inbounds and set the tag - for i := range t.Inbounds { -+ if t.Inbounds[i].Tag == "transparent" && t.Setting.TransparentType == configure.TransparentRedirect { -+ // https://ipset.netfilter.org/iptables-extensions.man.html#lbDK -+ // REDIRECT redirects the packet to the machine itself by changing the destination IP to the primary address of the incoming interface. -+ // So we should listen at 0.0.0.0 instead of 127.0.0.1 -+ inbounds6[i].Tag = "THIS_IS_A_DROPPED_TAG" -+ continue -+ } - if t.Inbounds[i].Tag == "dns-in" { - t.Inbounds[i].Listen = "127.2.0.17" - inbounds6[i].Tag = "THIS_IS_A_DROPPED_TAG" From f3f8b82282f7115657ba23bf7c17585cd98715bf Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 9 Feb 2022 23:27:30 +0800 Subject: [PATCH 040/972] naiveproxy: Update to 98.0.4758.80-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 16 ++++++++-------- naiveproxy/src/init_env.sh | 1 - 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index d2526981b0c..4643da0ebeb 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=97.0.4692.71-1 +PKG_VERSION:=98.0.4758.80-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=10535dac472243ac55d709a185434c72cde976143809c9bac213b6a4a5f521a1 +PKG_HASH:=7ea663ffc7a41162bc64d06d88788bcfa2e311e2a52e767eb579b9660b7d0747 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -66,32 +66,32 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=14-init-8033-gabb2a91b-2 +CLANG_VER:=14-init-11564-g37fbf238-3 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=720e10810f0005a4a8640728e72f06c283d4c51362f2889b513c6d6c3a136582 + HASH:=e79cb8f1e65b44b932b9fd98365b3771e913e7275d9e92e59eca4334c5689a28 endef -GN_VER:=90294ccdcf9334ed25a76ac9b67689468e506342 +GN_VER:=fc295f3ac7ca4fe7acc6cb5fb052d22909ef3a8f GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=9cbfd56953d415a88dfae616191c0c37612a41f7fb09830d2952b8b5a59c7dec + HASH:=cedac495348379e73a53d1a875cbe7eb0b07b358bdbcc9f9169866a0c7473d86 endef -PGO_VER:=4692-1640701189-f21838a98aa9a4bd13520a4261d2d77cbab9c3f3 +PGO_VER:=4758-1643195016-f5cfe4c93eff056f51290a33e603a214804dbd80 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com.cnpmjs.org/chromium-optimization-profiles/pgo_profiles \ https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=8830cc810cdd1c4812a3cd009206bbf52f7c33a67b3280f62dd60cb684300e0f + HASH:=41a0a5550852919751e885252d163b2b490a330598c64d9f721482fa928bb691 endef define Build/Prepare diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index a45d4c73e13..aa892d62f6f 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -55,7 +55,6 @@ enable_base_tracing=false use_udev=false use_aura=false use_ozone=false -use_x11=false use_gio=false use_platform_icu_alternatives=true use_glib=false From 94b7c21ad9ad8ebd2295c32729d21d0b6dd13c9f Mon Sep 17 00:00:00 2001 From: lean Date: Sat, 12 Feb 2022 21:39:20 +0800 Subject: [PATCH 041/972] Revert "luci-app-ssr-plus: remove alterId config" This reverts commit cb41416363363938b78a3bc89410fdc0c8164860. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 7 +++++++ luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 1 + .../root/usr/share/shadowsocksr/gen_config.lua | 1 + .../root/usr/share/shadowsocksr/subscribe.lua | 1 + 4 files changed, 10 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 68a6ee9d782..fb8efc3a8e9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -302,6 +302,13 @@ o:depends("type", "ssr") o = s:option(Value, "obfs_param", translate("Obfs param(optional)")) o:depends("type", "ssr") +-- AlterId +o = s:option(Value, "alter_id", translate("AlterId")) +o.datatype = "port" +o.default = 16 +o.rmempty = true +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) + -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index b9711180ccc..b3b49a4faf7 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -242,6 +242,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = ssm.ps; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm.add; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index dce590e0f63..eec009bf5b8 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -15,6 +15,7 @@ function vmess_vless() users = { { id = server.vmess_id, + alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 0fd7c5f1c75..8a9bb0188b4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -163,6 +163,7 @@ local function processData(szType, content) result.server = info.add result.server_port = info.port result.transport = info.net + result.alter_id = info.aid result.vmess_id = info.id result.alias = info.ps -- result.mux = 1 From e0181a18330e99da7d131fdff8cdeb4d395adf25 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 13 Feb 2022 13:50:00 +0800 Subject: [PATCH 042/972] shadowsocks-rust: update to 1.13.2 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index e09996ba0bf..338537aeb13 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.13.1 +PKG_VERSION:=1.13.2 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=61f65c067986e322f7befebb8d330c65c0777f4bcd8938384bf1ad3e3dcdabfd + PKG_HASH:=1e61d747d6d5ea9dd4067bd19031a44e6a174d6235de82c8d309b42eb4fe0075 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=f14618c10605a1422f2dfea640968393ec28017960c31d80cd658850acb2dcb0 + PKG_HASH:=b47b2215907fa071ae80abd0410b465dc4252e532cb343300fbd1fa88941e9c0 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=f2a0c5ccce9464d9db5018f49062f584727902ae0471cfa8f9bafd5ed271f9d7 + PKG_HASH:=92c3e631e442a71083d1bd9caedc40c0d2946e9d448a937d7e5d0961bcf62e72 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=52adb3231cfc4e0e2f92ffe862338a848ea5404026ebcdb2f95f3dc4e730553c + PKG_HASH:=78cc0444feda392a8a0b2cadac48ea358850c28bec3ebde5beb3f7e40b645b13 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=9df8c9f215dd2bb204172fcfec9be6c0e38eb75dbcb691392c057015b1dc82d2 + PKG_HASH:=11a3426646a2010ed679a10ae3d1c2d4f52c2c7d9c19127eeefd37fae51207b0 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=9aecb004f0b82271d295a0ba342f7bb590b6f29883ee7b417f9e0537471311f1 + PKG_HASH:=77315b64be6a8ebc1ff65f2def0f912b03517e6384ebad10fe17d4924760da30 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=5d288ffaf7c58492ec5f3986c3f1edfd800dadf322289676e4ff8c8081c57cd5 + PKG_HASH:=155d37398d5b595068e4faed7220e6868537866b6e948f2d7b3adb077df6b0d5 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From b4777e5f331c0f70c7e87ea3f17f1e9f3a93041a Mon Sep 17 00:00:00 2001 From: lean Date: Sat, 19 Feb 2022 01:14:16 +0800 Subject: [PATCH 043/972] luci-app-ssr-plus: add kmod-ipt-nat --- luci-app-ssr-plus/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 37c08e533be..98654ca1a9c 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=184 -PKG_RELEASE:=10 +PKG_VERSION:=185 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ @@ -25,7 +25,7 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset \ - +ip-full +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt \ + +kmod-ipt-nat +ip-full +iptables-mod-tproxy +lua +libuci-lua +microsocks \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ From b3115c3edf351c68a2c6d533df5306359ce7735f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 19 Feb 2022 22:06:54 +0800 Subject: [PATCH 044/972] Revert "Revert "luci-app-ssr-plus: remove alterId config"" Remove the deprecated & insecure option anyway. This reverts commit 94b7c21ad9ad8ebd2295c32729d21d0b6dd13c9f. Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 7 ------- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 1 - .../root/usr/share/shadowsocksr/gen_config.lua | 1 - .../root/usr/share/shadowsocksr/subscribe.lua | 1 - 4 files changed, 10 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index fb8efc3a8e9..68a6ee9d782 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -302,13 +302,6 @@ o:depends("type", "ssr") o = s:option(Value, "obfs_param", translate("Obfs param(optional)")) o:depends("type", "ssr") --- AlterId -o = s:option(Value, "alter_id", translate("AlterId")) -o.datatype = "port" -o.default = 16 -o.rmempty = true -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) - -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index b3b49a4faf7..b9711180ccc 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -242,7 +242,6 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = ssm.ps; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm.add; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index eec009bf5b8..dce590e0f63 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -15,7 +15,6 @@ function vmess_vless() users = { { id = server.vmess_id, - alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 8a9bb0188b4..0fd7c5f1c75 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -163,7 +163,6 @@ local function processData(szType, content) result.server = info.add result.server_port = info.port result.transport = info.net - result.alter_id = info.aid result.vmess_id = info.id result.alias = info.ps -- result.mux = 1 From 00681a3432b314d12b2999ee3fafe7bdab45222e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 19 Feb 2022 22:08:16 +0800 Subject: [PATCH 045/972] luci-app-ssr-plus: add missing dependency pdnsd-alt is not a part of default sets. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 98654ca1a9c..746b743a386 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -24,8 +24,8 @@ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ - +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset \ - +kmod-ipt-nat +ip-full +iptables-mod-tproxy +lua +libuci-lua +microsocks \ + +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset +kmod-ipt-nat \ + +ip-full +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ From 6db193feada3b892eda38fd4a4a4d45d509a01d3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 21 Feb 2022 01:15:43 +0800 Subject: [PATCH 046/972] shadowsocks-rust: update to 1.13.3 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 338537aeb13..41c7b914255 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.13.2 +PKG_VERSION:=1.13.3 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=1e61d747d6d5ea9dd4067bd19031a44e6a174d6235de82c8d309b42eb4fe0075 + PKG_HASH:=5dbab79191ff0cb007f4cd7e74255581c1aeda221b49e1b530a4fd5f0baa9494 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=b47b2215907fa071ae80abd0410b465dc4252e532cb343300fbd1fa88941e9c0 + PKG_HASH:=79f89e2dc5490437cc71b99275360d6dfc19de308040dc2fb37d6e87b4e4dcd8 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=92c3e631e442a71083d1bd9caedc40c0d2946e9d448a937d7e5d0961bcf62e72 + PKG_HASH:=27f8eec9f3a08da753351722678dbef93c81daf0d3864c19945bb89435866db3 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=78cc0444feda392a8a0b2cadac48ea358850c28bec3ebde5beb3f7e40b645b13 + PKG_HASH:=c508405410e256f6fc2718cb91bcc12a5797b3995bba154ba53ad8c99a68094a else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=11a3426646a2010ed679a10ae3d1c2d4f52c2c7d9c19127eeefd37fae51207b0 + PKG_HASH:=72d5579a918d7e7be23a65a5510a1f71b99d77bab00943be5c5efbfa68bc57c6 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=77315b64be6a8ebc1ff65f2def0f912b03517e6384ebad10fe17d4924760da30 + PKG_HASH:=a7cecc3b364683cd0c289a90a406277881a226b39cec64327c64d6edeeb6bd0d else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=155d37398d5b595068e4faed7220e6868537866b6e948f2d7b3adb077df6b0d5 + PKG_HASH:=ba870cc27d4e5bd885e9015a03a637f65a9a29a632fe3e24c4d3ddc6bb67dd18 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From eda8e1640b04c98c94ec71beda7f0587869eee6b Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 25 Feb 2022 13:40:08 +0800 Subject: [PATCH 047/972] naiveproxy: update to 98.0.4758.80-2 Fix QUIC auth Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 4643da0ebeb..dabeed98dc4 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=98.0.4758.80-1 +PKG_VERSION:=98.0.4758.80-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7ea663ffc7a41162bc64d06d88788bcfa2e311e2a52e767eb579b9660b7d0747 +PKG_HASH:=687a1c43f5bff61b2c1857d65031a5234af358053cf00e20911b75b073e55df4 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 788eb6e491798255e5472bba647a7facea301c7c Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 28 Feb 2022 22:31:18 +0800 Subject: [PATCH 048/972] shadowsocks-rust: update to 1.13.5 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 41c7b914255..bb520cb7d6d 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.13.3 +PKG_VERSION:=1.13.5 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=5dbab79191ff0cb007f4cd7e74255581c1aeda221b49e1b530a4fd5f0baa9494 + PKG_HASH:=78d9a789593547af91b6476e7b0877cd391e460fea30c53278de40e7a26c1211 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=79f89e2dc5490437cc71b99275360d6dfc19de308040dc2fb37d6e87b4e4dcd8 + PKG_HASH:=1a36d7477c0f76a27d4d1479c19d204a4223a9e84b3e0a434c83f7a201e3c184 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=27f8eec9f3a08da753351722678dbef93c81daf0d3864c19945bb89435866db3 + PKG_HASH:=8cafad5bd49c7bf516ede88f6d9f3bceef732bd362d007b20a37db4da6c127fa endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=c508405410e256f6fc2718cb91bcc12a5797b3995bba154ba53ad8c99a68094a + PKG_HASH:=16fcfbc7a6f47e3fd6fad9d673c53de099edfc6662c69679cab34f45ad699624 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=72d5579a918d7e7be23a65a5510a1f71b99d77bab00943be5c5efbfa68bc57c6 + PKG_HASH:=91d42452d1517b1bd36387788709c98d5deac5a346c5f0cf492c5fe3df0ff4af else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a7cecc3b364683cd0c289a90a406277881a226b39cec64327c64d6edeeb6bd0d + PKG_HASH:=285ca8088da18d4511f5834d210326c9240739f621ba167ca344d4eac8015981 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=ba870cc27d4e5bd885e9015a03a637f65a9a29a632fe3e24c4d3ddc6bb67dd18 + PKG_HASH:=5069599a33e6baefc4805065c3cff412bd108ae98553289b11132ee8da5771b4 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 7ba18c46476d4721a8a79ccf4521d563ac53c7b4 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 28 Feb 2022 14:37:11 +0000 Subject: [PATCH 049/972] treewide: update baidu goproxy url --- v2ray-plugin/Makefile | 2 +- v2raya/Makefile | 2 +- xray-core/Makefile | 2 +- xray-plugin/Makefile | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index a9ce72acb90..af4d1494abc 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -45,7 +45,7 @@ endef ifeq ($(CONFIG_V2RAY_PLUGIN_COMPRESS_GOPROXY),y) export GO111MODULE=on - export GOPROXY=https://goproxy.baidu.com + export GOPROXY=https://goproxy.bj.bcebos.com endif define Package/v2ray-plugin diff --git a/v2raya/Makefile b/v2raya/Makefile index f9a9e53d6c2..11eefaabbc8 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -69,7 +69,7 @@ endef ifneq ($(CONFIG_V2RAYA_COMPRESS_GOPROXY),) export GO111MODULE=on - export GOPROXY=https://goproxy.baidu.com + export GOPROXY=https://goproxy.bj.bcebos.com endif define Package/v2raya/conffiles diff --git a/xray-core/Makefile b/xray-core/Makefile index 8481d5dc594..9b13cd4f21c 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -60,7 +60,7 @@ endef ifneq ($(CONFIG_XRAY_CORE_COMPRESS_GOPROXY),) export GO111MODULE=on - export GOPROXY=https://goproxy.io + export GOPROXY=https://goproxy.bj.bcebos.com endif define Build/Compile diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index ef8bae02049..d5926c40d0b 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -43,7 +43,7 @@ endef ifneq ($(CONFIG_XRAY_PLUGIN_COMPRESS_GOPROXY),) export GO111MODULE=on - export GOPROXY=https://goproxy.baidu.com + export GOPROXY=https://goproxy.bj.bcebos.com endif define Package/xray-plugin From 5f0272d2d6bc8aba1540232fd9da87a97602713e Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 3 Mar 2022 23:04:28 +0800 Subject: [PATCH 050/972] naiveproxy: Update to 99.0.4844.51-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 19 +++++++-------- naiveproxy/patches/100-macros.patch | 38 +++++++++++++++++++++++++++++ naiveproxy/src/init_env.sh | 1 + 3 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 naiveproxy/patches/100-macros.patch diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index dabeed98dc4..a00e5cf28dc 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=98.0.4758.80-2 +PKG_VERSION:=99.0.4844.51-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=687a1c43f5bff61b2c1857d65031a5234af358053cf00e20911b75b073e55df4 +PKG_HASH:=e216eb250e921f2fed3445fbaf6677412637f73ed920010b6b75af39490ce438 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -66,32 +66,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=14-init-11564-g37fbf238-3 +CLANG_VER:=14-init-12719-gc4b45eeb-3 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=e79cb8f1e65b44b932b9fd98365b3771e913e7275d9e92e59eca4334c5689a28 + HASH:=f691d2e11a83cd9beed85f6792d16b9688a2dbd7e57eb9b5b6d12565f44d403f endef -GN_VER:=fc295f3ac7ca4fe7acc6cb5fb052d22909ef3a8f +GN_VER:=80a40b07305373617eba2d5878d353532af77da3 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=cedac495348379e73a53d1a875cbe7eb0b07b358bdbcc9f9169866a0c7473d86 + HASH:=46184d633a2b5e659572cbab7da2b66e82aa7642abe47290954b8e5e0d9c7443 endef -PGO_VER:=4758-1643195016-f5cfe4c93eff056f51290a33e603a214804dbd80 +PGO_VER:=4844-1645865283-f109af6d624d1eac542865359a5743a7256bac10 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF - URL:=https://storage.googleapis.com.cnpmjs.org/chromium-optimization-profiles/pgo_profiles \ - https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles + URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=41a0a5550852919751e885252d163b2b490a330598c64d9f721482fa928bb691 + HASH:=1ab36777082237f59b2b1be2f66279cd58767539393059644c0ec2968373c619 endef define Build/Prepare diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch new file mode 100644 index 00000000000..9084330fbce --- /dev/null +++ b/naiveproxy/patches/100-macros.patch @@ -0,0 +1,38 @@ +--- a/src/base/memory/tagging.cc ++++ b/src/base/memory/tagging.cc +@@ -17,22 +17,25 @@ + #define PR_GET_TAGGED_ADDR_CTRL 56 + #define PR_TAGGED_ADDR_ENABLE (1UL << 0) + +-#if BUILDFLAG(IS_LINUX) +-#include +- +-// Linux headers already provide these since v5.10. +-#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) +-#define HAS_PR_MTE_MACROS +-#endif +-#endif +- +-#ifndef HAS_PR_MTE_MACROS ++#ifndef PR_MTE_TCF_SHIFT + #define PR_MTE_TCF_SHIFT 1 ++#endif ++#ifndef PR_MTE_TCF_NONE + #define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_SYNC + #define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_ASYNC + #define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TCF_MASK + #define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) ++#endif ++#ifndef PR_MTE_TAG_SHIFT + #define PR_MTE_TAG_SHIFT 3 ++#endif ++#ifndef PR_MTE_TAG_MASK + #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) + #endif + #endif diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index aa892d62f6f..9703f2e754a 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -65,6 +65,7 @@ use_kerberos=false enable_mdns=false enable_reporting=false include_transport_security_state_preload_list=false +use_nss_certs=false target_os=\"openwrt\" target_cpu=\"${naive_arch}\" From ea7c271b632ecc4d58f71533148484348e7ad337 Mon Sep 17 00:00:00 2001 From: lean Date: Mon, 7 Mar 2022 22:54:30 +0800 Subject: [PATCH 051/972] Add DNS-CDN list workround for Bilibili and Apple domain --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/root/etc/ssrplus/white.list | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 746b743a386..0d86e6c298b 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=185 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ diff --git a/luci-app-ssr-plus/root/etc/ssrplus/white.list b/luci-app-ssr-plus/root/etc/ssrplus/white.list index e69de29bb2d..9055fcb9140 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/white.list +++ b/luci-app-ssr-plus/root/etc/ssrplus/white.list @@ -0,0 +1,7 @@ +bilibili.com +bilibili.cn +bilivideo.com +bilivideo.cn +biliapi.com +biliapi.net +apple.com \ No newline at end of file From 610f4baff80221fbb84beaf06a1dd218e787e6da Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:03:00 +0800 Subject: [PATCH 052/972] shadowsocks-rust: update to 1.14.1 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index bb520cb7d6d..5af04a42a86 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.13.5 +PKG_VERSION:=1.14.1 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=78d9a789593547af91b6476e7b0877cd391e460fea30c53278de40e7a26c1211 + PKG_HASH:=5d32ddc457e1640710b1cb0921b91dbda256c060c3b1db695f2222dd2780949c else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=1a36d7477c0f76a27d4d1479c19d204a4223a9e84b3e0a434c83f7a201e3c184 + PKG_HASH:=0fed8788c9ac66f87fe0b63c134a34e96d10748dfd9d5a9bb4ee3cbebf745f6f else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=8cafad5bd49c7bf516ede88f6d9f3bceef732bd362d007b20a37db4da6c127fa + PKG_HASH:=1906cd2c1fdc88db930067bf151e627f050175e2f7e8d23212ec80c3c3cda3ab endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=16fcfbc7a6f47e3fd6fad9d673c53de099edfc6662c69679cab34f45ad699624 + PKG_HASH:=acab77fd9a471297a3f35640ead76c160620c92a809613c4a408d6a66f1aa8c9 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=91d42452d1517b1bd36387788709c98d5deac5a346c5f0cf492c5fe3df0ff4af + PKG_HASH:=03b26dd9cc23ef21acc2023fe97b563ca4388f9e50aba528d69b0ced9244cf68 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=285ca8088da18d4511f5834d210326c9240739f621ba167ca344d4eac8015981 + PKG_HASH:=7f2d05a752309b2df0ce3f0bf1dd03c079283cad80f9f5db23204a786b32df88 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=5069599a33e6baefc4805065c3cff412bd108ae98553289b11132ee8da5771b4 + PKG_HASH:=2fe77cb42d78218eac5b3c2db346f4d58f8e11ef83aaffb087183109ee184ac7 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From bf8b5e91616a60880a230c67d5b72f56cb7222b9 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 9 Mar 2022 00:51:57 +0800 Subject: [PATCH 053/972] luci-app-ssr-plus: update url of NEO DEV HOST Fixes: immortalwrt/luci#127 Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/advanced.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 34034873841..82b53fb72d5 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -70,10 +70,10 @@ o = s:option(Flag, "adblock", translate("Enable adblock")) o.rmempty = false o = s:option(Value, "adblock_url", translate("adblock_url")) -o:value("https://raw.githubusercontent.com/neodevpro/neodevhost/master/lite_host_dnsmasq.conf", translate("NEO DEV HOST Lite")) -o:value("https://raw.githubusercontent.com/neodevpro/neodevhost/master/host_dnsmasq.conf", translate("NEO DEV HOST Full")) +o:value("https://raw.githubusercontent.com/neodevpro/neodevhost/master/lite_dnsmasq.conf", translate("NEO DEV HOST Lite")) +o:value("https://raw.githubusercontent.com/neodevpro/neodevhost/master/dnsmasq.conf", translate("NEO DEV HOST Full")) o:value("https://anti-ad.net/anti-ad-for-dnsmasq.conf", translate("anti-AD")) -o.default = "https://raw.githubusercontent.com/neodevpro/neodevhost/master/lite_host_dnsmasq.conf" +o.default = "https://raw.githubusercontent.com/neodevpro/neodevhost/master/lite_dnsmasq.conf" o:depends("adblock", "1") o.description = translate("Support AdGuardHome and DNSMASQ format list") From f1572c3062649f4c908d5069ba77d4ad2f7bc445 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 8 Mar 2022 23:04:00 +0800 Subject: [PATCH 054/972] luci-app-ssr-plus: fix v2ray shunt issue Signed-off-by: Tianling Shen Co-authored-by: Mattraks <16359027+Mattraks@users.noreply.github.com> --- .../root/etc/init.d/shadowsocksr | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index ef72038a458..3619504a344 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -409,13 +409,9 @@ start_shunt() { echolog "shunt:$(get_name $type) Started!" ;; v2ray) - if [ -n "$tmp_local_port" ]; then - local tmp_port=$tmp_local_port - else - local tmp_port=$tmp_shunt_local_port - gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port - ln_start_bin $(first_type xray v2ray) v2ray -config $shunt_config_file - fi + local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} + gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port + ln_start_bin $(first_type xray v2ray) v2ray -config $shunt_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q echolog "shunt:$($(first_type xray v2ray) -version | head -1) Started!" ;; @@ -492,8 +488,8 @@ start_local() { if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type xray v2ray) v2ray -config $local_config_file - echolog "Global_Socks5:$($(first_type "xray" "v2ray") -version | head -1) Started!" fi + echolog "Global_Socks5:$($(first_type "xray" "v2ray") -version | head -1) Started!" ;; trojan) #client gen_config_file $LOCAL_SERVER $type 4 $local_port @@ -638,6 +634,11 @@ load_config() { start_local local_enable=0 ;; + $SHUNT_SERVER) + _local="3" + local_config_file=$TMP_PATH/tcp-udp-ssr-local.json + start_local + ;; *) _local="2" local_config_file=$TMP_PATH/tcp-udp-ssr-local.json @@ -652,6 +653,12 @@ load_config() { shunt="1" SHUNT_SERVER=$GLOBAL_SERVER ;; + $LOCAL_SERVER) + shunt="$tmp_shunt_port" + shunt_config_file=$TMP_PATH/tcp-udp-ssr-local.json + shunt_dns_config_file=$TMP_PATH/shunt-dns-ssr-plus.json + start_shunt + ;; *) shunt="$tmp_shunt_port" shunt_config_file=$TMP_PATH/shunt-ssr-retcp.json From f2fc5827e8f7e1ccf64a657048fda23a4224fdf7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 9 Mar 2022 17:13:13 +0800 Subject: [PATCH 055/972] luci-app-ssr-plus: add concurrency option for NaiveProxy Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 3 ++- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 5 ++--- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 68a6ee9d782..4d4455837ed 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -557,8 +557,9 @@ o:depends({type = "v2ray", xtls = false}) o = s:option(Value, "concurrency", translate("Concurrency")) o.datatype = "uinteger" o.rmempty = true -o.default = "8" +o.default = "4" o:depends("mux", "1") +o:depends("type", "naiveproxy") -- [[ Cert ]]-- o = s:option(Flag, "certificate", translate("Self-signed Certificate")) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 3619504a344..3921e26303b 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -323,7 +323,7 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 naiveproxy) case "$3" in 1) - lua /usr/share/shadowsocksr/gen_config.lua $1 redir $4 $5 >$config_file + lua /usr/share/shadowsocksr/gen_config.lua $1 redir $4 >$config_file ;; 3) lua /usr/share/shadowsocksr/gen_config.lua $1 redir $4 >$config_file @@ -560,8 +560,7 @@ Start_Run() { echolog "Main node:$($(first_type $type) --version 2>&1 | head -1) , $threads Threads Started!" ;; naiveproxy) - [ "$(uci_get_by_type global threads 0)" == "0" ] && threads=1 - gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $threads + gen_config_file $GLOBAL_SERVER $type 1 $tcp_port ln_start_bin $(first_type naive) naive $tcp_config_file echolog "Main node:$($(first_type naive) --version 2>&1 | head -1) , $threads Threads Started!" ;; diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index dce590e0f63..e7f1a0cdd2a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -227,7 +227,7 @@ local trojan = { local naiveproxy = { proxy = (server.username and server.password and server.server and server.server_port) and "https://" .. server.username .. ":" .. server.password .. "@" .. server.server .. ":" .. server.server_port, listen = (proto == "redir") and "redir" .. "://0.0.0.0:" .. tonumber(local_port) or "socks" .. "://0.0.0.0:" .. tonumber(local_port), - ["insecure-concurrency"] = (socks_port ~= "0") and tonumber(socks_port) or "1" + ["insecure-concurrency"] = tonumber(server.concurrency) or 1 } local ss = { server = (server.kcp_enable == "1") and "127.0.0.1" or server.server, From aade6915630ade2bb70949f2d0ce0d7ac8af0efa Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 13 Mar 2022 23:31:12 +0800 Subject: [PATCH 056/972] xray-plugin: update to 1.5.4 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index d5926c40d0b..50e8d01f017 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.3 +PKG_VERSION:=1.5.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0280e1c7c9c87db13a456be098e42065374066df4108b87c2e1d781337740a73 +PKG_HASH:=b6b66ea091f6348c7f213a8f7a3be51be25cea2cdf9ea7fb5bb93e2e04077a6f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 349fbfc268c25aede9297ffc0c8dc50d8f786639 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 13 Mar 2022 23:31:53 +0800 Subject: [PATCH 057/972] xray-core: update to 1.5.4 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 9b13cd4f21c..22e3f3b4dfb 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.3 +PKG_VERSION:=1.5.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4b8d78cc20bdf2e8936c02b05d22f0a3231075155ffdc67508d8448ab8858252 +PKG_HASH:=af9b9b5b0a2d4f055d19f3580d1c2d3141bbaab9dd7824428c12ae0ced5f511e PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 4f073e9ee8ae7c7a6d4cd855c57f27658b0faa95 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 13 Mar 2022 15:33:53 +0000 Subject: [PATCH 058/972] v2ray-geodata: Update to latest version --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index eca27b4d29b..6f71db26852 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202202030030 +GEOIP_VER:=202203100039 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=6250675cac06d8c032f7f5203666fd2f72476b60886b28657e10b0e12deae8bc + HASH:=7532aadf5bda5e2bc1b9a100662022405f19d61245a27b3ace9a982ca0242bc9 endef -GEOSITE_VER:=20220201175515 +GEOSITE_VER:=20220310015105 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=697e78c8c0dab19f08ae17ba6aa9c7c50dcb9be566bb9a314aa9f5da29d76200 + HASH:=c7d9ee11e415ffbd8458e2cb9716eea7a220a3023d1db35d84e47d33b1f4cd72 endef define Package/v2ray-geodata/template From c37d34475e79e1810f277f25d845ece155315a9a Mon Sep 17 00:00:00 2001 From: antergone Date: Wed, 16 Mar 2022 22:32:14 +0800 Subject: [PATCH 059/972] luci-app-ssr-plus: fix escape character matching exception --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 0fd7c5f1c75..36741d01195 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -440,7 +440,7 @@ local function check_filer(result) -- 检查是否存在过滤关键词 for i, v in pairs(filter_word) do - if tostring(result.alias):find(v) then + if tostring(result.alias):find(v, nil, true) then filter_result = true end end @@ -448,7 +448,7 @@ local function check_filer(result) -- 检查是否打开了保留关键词检查,并且进行过滤 if check_save == true then for i, v in pairs(save_word) do - if tostring(result.alias):find(v) then + if tostring(result.alias):find(v, nil, true) then save_result = false end end From ac5e66b340c6dc69091850a5909a430156e7ee0a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 25 Mar 2022 21:51:08 +0800 Subject: [PATCH 060/972] luci-app-ssr-plus: drop vmess node with alterId > 0 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 36741d01195..ee0177d5f3d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -207,6 +207,10 @@ local function processData(szType, content) else result.tls = "0" end + -- https://www.v2fly.org/config/protocols/vmess.html#vmess-md5-认证信息-淘汰机制 + if info.aid and (tonumber(info.aid) > 0) then + result.server = nil + end elseif szType == "ss" then local idx_sp = 0 local alias = "" From 137c3193d7d99de0b6e6513d682517eefbd6b624 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 30 Mar 2022 10:01:46 +0000 Subject: [PATCH 061/972] v2raya: fix panic in go 1.18 --- .../010-fix-panic-in-go-1.18-462.patch | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 v2raya/patches/010-fix-panic-in-go-1.18-462.patch diff --git a/v2raya/patches/010-fix-panic-in-go-1.18-462.patch b/v2raya/patches/010-fix-panic-in-go-1.18-462.patch new file mode 100644 index 00000000000..3461629e902 --- /dev/null +++ b/v2raya/patches/010-fix-panic-in-go-1.18-462.patch @@ -0,0 +1,32 @@ +From eb210b5e634b65838b50387891ad837590fb2b4e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E9=AB=98=E6=B8=90=E7=A6=BB?= +Date: Tue, 22 Mar 2022 15:28:50 +0800 +Subject: [PATCH] fix: panic in go 1.18 (#462) + +--- + service/go.mod | 2 +- + service/go.sum | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +--- a/go.mod ++++ b/go.mod +@@ -50,7 +50,7 @@ require ( + github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect + github.com/mattn/go-isatty v0.0.12 // indirect + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect +- github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect ++ github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/pelletier/go-toml v1.2.0 // indirect + github.com/pires/go-proxyproto v0.6.1 // indirect + github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect +--- a/go.sum ++++ b/go.sum +@@ -145,6 +145,8 @@ github.com/modern-go/concurrent v0.0.0-2 + github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= + github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= + github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= ++github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= ++github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= + github.com/muhammadmuzzammil1998/jsonc v0.0.0-20201229145248-615b0916ca38 h1:0FrBxrkJ0hVembTb/e4EU5Ml6vLcOusAqymmYISg5Uo= From 8f0513b23fa8ab3992d1b484a1f795d36bb6b52f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 5 Apr 2022 14:16:56 +0800 Subject: [PATCH 062/972] shadowsocks-rust: update to 1.14.3 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 5af04a42a86..630c754f91d 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.14.1 +PKG_VERSION:=1.14.3 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=5d32ddc457e1640710b1cb0921b91dbda256c060c3b1db695f2222dd2780949c + PKG_HASH:=31968468017772e099e69741212520b15fce0ee67584d20706cc9654c7ce7e4c else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=0fed8788c9ac66f87fe0b63c134a34e96d10748dfd9d5a9bb4ee3cbebf745f6f + PKG_HASH:=066515d3a7ae07a44419472331866b4ad3ffb04b77a71ed8ecc8d20217abfcfb else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=1906cd2c1fdc88db930067bf151e627f050175e2f7e8d23212ec80c3c3cda3ab + PKG_HASH:=f9c336f94dc081a8e0f4aa7f398ceafedc00c5f7d1981989fdb03b63c298ac57 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=acab77fd9a471297a3f35640ead76c160620c92a809613c4a408d6a66f1aa8c9 + PKG_HASH:=1734d2870f5ebdc5475f5100f78546574a99c96d37cd2cf08aad4ef0eb65ecf4 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=03b26dd9cc23ef21acc2023fe97b563ca4388f9e50aba528d69b0ced9244cf68 + PKG_HASH:=8aa4544abf62f2cb1d3b55bbd67d5d371463da9426479fb1dde6cf2b63e267a4 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=7f2d05a752309b2df0ce3f0bf1dd03c079283cad80f9f5db23204a786b32df88 + PKG_HASH:=f89bfaf414dd4dadf5da0b909111d97c3b8194b929cdba2b781a8fd4175a48c1 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=2fe77cb42d78218eac5b3c2db346f4d58f8e11ef83aaffb087183109ee184ac7 + PKG_HASH:=515e7e5e6bc426c7e81bff3beb42e713fd1460d4664fa47df855eb4175c9b8f4 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From f5683a35e9c76b8ad61cf7df4832c0137f5f4a13 Mon Sep 17 00:00:00 2001 From: breakings Date: Tue, 5 Apr 2022 16:55:34 +0000 Subject: [PATCH 063/972] naiveproxy: update to 100.0.4896.60-1 --- naiveproxy/Makefile | 16 ++++++++-------- naiveproxy/patches/100-macros.patch | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index a00e5cf28dc..89cb7d4035b 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=99.0.4844.51-1 +PKG_VERSION:=100.0.4896.60-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e216eb250e921f2fed3445fbaf6677412637f73ed920010b6b75af39490ce438 +PKG_HASH:=bcab770b15e6c5d3f50a83992d084c8f53942aa6ebd59463c21979be668a3e61 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -66,31 +66,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=14-init-12719-gc4b45eeb-3 +CLANG_VER:=15-init-1995-g5bec1ea7-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=f691d2e11a83cd9beed85f6792d16b9688a2dbd7e57eb9b5b6d12565f44d403f + HASH:=c2ccf8e5136661eb7c25bb08ae6e78f7d667b03f0c16dabf2eb1a392b244bd5f endef -GN_VER:=80a40b07305373617eba2d5878d353532af77da3 +GN_VER:=859dde4a7f34a4383179522f8e1061dcffac8691 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=46184d633a2b5e659572cbab7da2b66e82aa7642abe47290954b8e5e0d9c7443 + HASH:=00691d4576ae52f809145ef6db5e3782e3eb63a80f04a7407168ce4b5ef83990 endef -PGO_VER:=4844-1645865283-f109af6d624d1eac542865359a5743a7256bac10 +PGO_VER:=4896-1648230561-717dc24b4ffc1663d1990243de5d49fac8001b06 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=1ab36777082237f59b2b1be2f66279cd58767539393059644c0ec2968373c619 + HASH:=66fcba3f0ca6e97713ffd72c3937230ba63116ae64e9d520c960e368df6c954e endef define Build/Prepare diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch index 9084330fbce..e6d9db2313f 100644 --- a/naiveproxy/patches/100-macros.patch +++ b/naiveproxy/patches/100-macros.patch @@ -1,6 +1,6 @@ ---- a/src/base/memory/tagging.cc -+++ b/src/base/memory/tagging.cc -@@ -17,22 +17,25 @@ +--- a/src/base/allocator/partition_allocator/tagging.cc ++++ b/src/base/allocator/partition_allocator/tagging.cc +@@ -19,22 +19,25 @@ #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) From feb77f65a1c2607f7571384fd0ea83c480fdfc53 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 00:36:26 +0800 Subject: [PATCH 064/972] v2ray-core: Update to 5.0.3 Signed-off-by: Tianling Shen --- v2ray-core/Makefile | 85 +------- ...ore-use-Go-v1.18-update-dependencies.patch | 184 ++++++++++++++++++ ...tls-modules-for-different-Go-version.patch | 136 +++++++++++++ 3 files changed, 326 insertions(+), 79 deletions(-) create mode 100644 v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch create mode 100644 v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 38262533a11..8f06590cc26 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,30 +5,23 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=4.44.0 -PKG_RELEASE:=1 +PKG_VERSION:=5.0.3 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d9973bafd3020f60a51fa3495b24ab417b08b3c8f9539a3748d00da6c68d0103 +PKG_HASH:=c0fe91f715293cfc39a5afeef71e1ff43d379ae0faa139c560fdc3ede88a458a PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -PKG_CONFIG_DEPENDS:= \ - CONFIG_V2RAY_CORE_COMPRESS_GOPROXY \ - CONFIG_V2RAY_CORE_COMPRESS_UPX \ - CONFIG_V2RAY_CTL_COMPRESS_GOPROXY \ - CONFIG_V2RAY_CTL_COMPRESS_UPX - PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 -GO_PKG:=github.com/v2fly/v2ray-core/v4 -GO_PKG_BUILD_PKG:=github.com/v2fly/v2ray-core/v4/main -GO_PKG_LDFLAGS:=-s -w +GO_PKG:=github.com/v2fly/v2ray-core/v5 +GO_PKG_BUILD_PKG:=$(GO_PKG)/main GO_PKG_LDFLAGS_X:= \ $(GO_PKG).build=OpenWrt \ $(GO_PKG).version=$(PKG_VERSION) @@ -48,11 +41,6 @@ define Package/v2ray-core DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -define Package/v2ray-ctl - $(call Package/v2ray/template) - DEPENDS:=v2ray-core -endef - define Package/v2ray-extra $(call Package/v2ray/template) TITLE+= (extra resources) @@ -69,76 +57,16 @@ define Package/v2ray-core/description $(call Package/v2ray/description) endef -define Package/v2ray-ctl/description - $(call Package/v2ray/description) - - This includes configuration tool for v2ray-core. -endef - define Package/v2ray-extra/description $(call Package/v2ray/description) This includes extra resources for v2ray-core. endef -define Package/v2ray-core/config -menu "v2ray-core Configuration" - depends on PACKAGE_v2ray-core - -config V2RAY_CORE_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config V2RAY_CORE_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endmenu -endef - -define Package/v2ray-ctl/config -menu "v2ray-ctl Configuration" - depends on PACKAGE_v2ray-ctl - -config V2RAY_CTL_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config V2RAY_CTL_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endmenu -endef - -define Build/Compile - $(call GoPackage/Build/Compile) - mv $(GO_PKG_BUILD_BIN_DIR)/main $(GO_PKG_BUILD_BIN_DIR)/v2ray -ifneq ($(CONFIG_V2RAY_CORE_COMPRESS_UPX),) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/v2ray -endif - -ifneq ($(CONFIG_PACKAGE_v2ray-ctl),) - $(eval GO_PKG_BUILD_PKG:=$(GO_PKG)/infra/control/main) - $(call GoPackage/Build/Compile) - mv $(GO_PKG_BUILD_BIN_DIR)/main $(GO_PKG_BUILD_BIN_DIR)/v2ctl -ifneq ($(CONFIG_V2RAY_CTL_COMPRESS_UPX),) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/v2ctl -endif -endif -endef - define Package/v2ray-core/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) $(INSTALL_DIR) $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v2ray $(1)/usr/bin/ -endef - -define Package/v2ray-ctl/install - $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) - - $(INSTALL_DIR) $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/v2ctl $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/v2ray endef define Package/v2ray-extra/install @@ -147,5 +75,4 @@ define Package/v2ray-extra/install endef $(eval $(call BuildPackage,v2ray-core)) -$(eval $(call BuildPackage,v2ray-ctl)) $(eval $(call BuildPackage,v2ray-extra)) diff --git a/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch b/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch new file mode 100644 index 00000000000..adffae41639 --- /dev/null +++ b/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch @@ -0,0 +1,184 @@ +From 56371d87efc0fb57eb80424e968946458945167f Mon Sep 17 00:00:00 2001 +From: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> +Date: Sun, 27 Mar 2022 01:43:02 +0800 +Subject: [PATCH] Chore: use Go v1.18 & update dependencies + +--- + .github/workflows/linter.yml | 2 +- + .github/workflows/release.yml | 4 ++-- + .github/workflows/test.yml | 2 +- + go.mod | 20 +++++++++--------- + go.sum | 38 +++++++++++++++++------------------ + 5 files changed, 32 insertions(+), 34 deletions(-) + +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/v2fly/v2ray-core/v5 + +-go 1.17 ++go 1.18 + + require ( + github.com/go-chi/chi/v5 v5.0.7 +@@ -11,23 +11,23 @@ require ( + github.com/google/go-cmp v0.5.6 + github.com/gorilla/websocket v1.4.2 + github.com/jhump/protoreflect v1.10.1 +- github.com/lucas-clemente/quic-go v0.24.0 +- github.com/marten-seemann/qtls-go1-17 v0.1.0 ++ github.com/lucas-clemente/quic-go v0.26.0 ++ github.com/marten-seemann/qtls-go1-17 v0.1.1 + github.com/miekg/dns v1.1.45 + github.com/pelletier/go-toml v1.9.4 + github.com/pires/go-proxyproto v0.6.1 +- github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c ++ github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b + github.com/stretchr/testify v1.7.0 + github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08 + github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848 + github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e +- go.starlark.net v0.0.0-20211203141949-70c0e40ae128 +- golang.org/x/crypto v0.0.0-20211202192323-5770296d904e +- golang.org/x/net v0.0.0-20211205041911-012df41ee64c ++ go.starlark.net v0.0.0-20220302181546-5411bad688d1 ++ golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 ++ golang.org/x/net v0.0.0-20220325170049-de3da57026de + golang.org/x/sync v0.0.0-20210220032951-036812b2e83c +- golang.org/x/sys v0.0.0-20211205182925-97ca703d548d ++ golang.org/x/sys v0.0.0-20220325203850-36772127a21f + google.golang.org/grpc v1.42.0 +- google.golang.org/protobuf v1.27.1 ++ google.golang.org/protobuf v1.28.0 + gopkg.in/yaml.v2 v2.4.0 + h12.io/socks v1.0.3 + inet.af/netaddr v0.0.0-20211027220019-c74959edd3b6 +@@ -44,7 +44,8 @@ require ( + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect +- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect ++ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect ++ github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect +@@ -53,7 +54,7 @@ require ( + go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect + golang.org/x/mod v0.4.2 // indirect +- golang.org/x/text v0.3.6 // indirect ++ golang.org/x/text v0.3.7 // indirect + golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 // indirect + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect +--- a/go.sum ++++ b/go.sum +@@ -209,19 +209,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2 + github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= + github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= + github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +-github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= +-github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= ++github.com/lucas-clemente/quic-go v0.26.0 h1:ALBQXr9UJ8A1LyzvceX4jd9QFsHvlI0RR6BkV16o00A= ++github.com/lucas-clemente/quic-go v0.26.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= + github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= + github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= + github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= + github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= +-github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= +-github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= +-github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= +-github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= +-github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= ++github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= ++github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= ++github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= ++github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= ++github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= ++github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= + github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= + github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= + github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +@@ -298,8 +299,8 @@ github.com/russross/blackfriday v1.5.2/g + github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= + github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= + github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +-github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c h1:pqy40B3MQWYrza7YZXOXgl0Nf0QGFqrOC0BKae1UNAA= +-github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= ++github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b h1:wHoB6ZYEnIVizebcj419LbN4Tagk7RDFiudRFKyzzmo= ++github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= + github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= + github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= + github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= +@@ -371,12 +372,11 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFv + go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= + go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= + go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +-go.starlark.net v0.0.0-20211203141949-70c0e40ae128 h1:bxH+EXOo87zEOwKDdZ8Tevgi6irRbqheRm/fr293c58= +-go.starlark.net v0.0.0-20211203141949-70c0e40ae128/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= ++go.starlark.net v0.0.0-20220302181546-5411bad688d1 h1:i0Sz4b+qJi5xwOaFZqZ+RNHkIpaKLDofei/Glt+PMNc= ++go.starlark.net v0.0.0-20220302181546-5411bad688d1/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= + go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= + go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= + go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +-go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= + go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= + go4.org/intern v0.0.0-20211027215823-ae77deb06f29 h1:UXLjNohABv4S58tHmeuIZDO6e3mHpW2Dx33gaNt03LE= + go4.org/intern v0.0.0-20211027215823-ae77deb06f29/go.mod h1:cS2ma+47FKrLPdXFpr7CuxiTW3eyJbWew4qx0qtQWDA= +@@ -395,8 +395,8 @@ golang.org/x/crypto v0.0.0-2020022123151 + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= + golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= + golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +-golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8= +-golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= ++golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s= ++golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= + golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= + golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +@@ -448,9 +448,8 @@ golang.org/x/net v0.0.0-20210226172049-e + golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= + golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= + golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +-golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +-golang.org/x/net v0.0.0-20211205041911-012df41ee64c h1:7SfqwP5fxEtl/P02w5IhKc86ziJ+A25yFrkVgoy2FT8= +-golang.org/x/net v0.0.0-20211205041911-012df41ee64c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= ++golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= ++golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= + golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= + golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +@@ -501,15 +500,16 @@ golang.org/x/sys v0.0.0-20210510120138-9 + golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E= +-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= ++golang.org/x/sys v0.0.0-20220325203850-36772127a21f h1:TrmogKRsSOxRMJbLYGrB4SBbW+LJcEllYBLME5Zk5pU= ++golang.org/x/sys v0.0.0-20220325203850-36772127a21f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= + golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= + golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +-golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= + golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= ++golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= ++golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= + golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= + golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +@@ -602,8 +602,8 @@ google.golang.org/protobuf v1.25.0/go.mo + google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= + google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= + google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +-google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +-google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= ++google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= ++google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= + gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= + gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= + gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch b/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch new file mode 100644 index 00000000000..28857717631 --- /dev/null +++ b/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch @@ -0,0 +1,136 @@ +From e0df70b16d45883d8bf1f39e90b7111b93250466 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E7=A7=8B=E3=81=AE=E3=81=8B=E3=81=88=E3=81=A7?= + +Date: Tue, 5 Apr 2022 14:17:19 +0800 +Subject: [PATCH] Feat: use different qtls modules for different Go version + +--- + common/protocol/quic/qtls_go116.go | 19 +++++++++++++++++++ + common/protocol/quic/qtls_go117.go | 19 +++++++++++++++++++ + common/protocol/quic/qtls_go118.go | 19 +++++++++++++++++++ + common/protocol/quic/sniff.go | 7 +++---- + go.mod | 4 ++-- + 5 files changed, 62 insertions(+), 6 deletions(-) + create mode 100644 common/protocol/quic/qtls_go116.go + create mode 100644 common/protocol/quic/qtls_go117.go + create mode 100644 common/protocol/quic/qtls_go118.go + +--- /dev/null ++++ b/common/protocol/quic/qtls_go116.go +@@ -0,0 +1,19 @@ ++//go:build go1.16 && !go1.17 ++// +build go1.16,!go1.17 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-16" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +--- /dev/null ++++ b/common/protocol/quic/qtls_go117.go +@@ -0,0 +1,19 @@ ++//go:build go1.17 && !go1.18 ++// +build go1.17,!go1.18 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-17" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +--- /dev/null ++++ b/common/protocol/quic/qtls_go118.go +@@ -0,0 +1,19 @@ ++//go:build go1.18 ++// +build go1.18 ++ ++package quic ++ ++import ( ++ "crypto/cipher" ++ ++ "github.com/marten-seemann/qtls-go1-18" ++) ++ ++type ( ++ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 ++ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++) ++ ++func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { ++ return qtls.AEADAESGCMTLS13(key, fixedNonce) ++} +--- a/common/protocol/quic/sniff.go ++++ b/common/protocol/quic/sniff.go +@@ -8,7 +8,6 @@ import ( + "io" + + "github.com/lucas-clemente/quic-go/quicvarint" +- "github.com/marten-seemann/qtls-go1-17" + "golang.org/x/crypto/hkdf" + + "github.com/v2fly/v2ray-core/v5/common" +@@ -37,10 +36,10 @@ const ( + var ( + quicSaltOld = []byte{0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99} + quicSalt = []byte{0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 0x4d, 0x17, 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a} +- initialSuite = &qtls.CipherSuiteTLS13{ ++ initialSuite = &CipherSuiteTLS13{ + ID: tls.TLS_AES_128_GCM_SHA256, + KeyLen: 16, +- AEAD: qtls.AEADAESGCMTLS13, ++ AEAD: AEADAESGCMTLS13, + Hash: crypto.SHA256, + } + errNotQuic = errors.New("not quic") +@@ -153,7 +152,7 @@ func SniffQUIC(b []byte) (*SniffHeader, + + key := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16) + iv := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12) +- cipher := qtls.AEADAESGCMTLS13(key, iv) ++ cipher := AEADAESGCMTLS13(key, iv) + nonce := cache.Extend(int32(cipher.NonceSize())) + binary.BigEndian.PutUint64(nonce[len(nonce)-8:], uint64(packetNumber)) + decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, b[:extHdrLen]) +--- a/go.mod ++++ b/go.mod +@@ -12,7 +12,9 @@ require ( + github.com/gorilla/websocket v1.4.2 + github.com/jhump/protoreflect v1.10.1 + github.com/lucas-clemente/quic-go v0.26.0 ++ github.com/marten-seemann/qtls-go1-16 v0.1.5 + github.com/marten-seemann/qtls-go1-17 v0.1.1 ++ github.com/marten-seemann/qtls-go1-18 v0.1.1 + github.com/miekg/dns v1.1.45 + github.com/pelletier/go-toml v1.9.4 + github.com/pires/go-proxyproto v0.6.1 +@@ -44,8 +46,6 @@ require ( + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/leodido/go-urn v1.2.1 // indirect + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect +- github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect +- github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect From bae9d9340f72e1e5dd51a5d7f8679569e171efae Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 00:40:30 +0800 Subject: [PATCH 065/972] luci-app-ssr-plus: fix compatibility for v2ray-core v5 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 3921e26303b..ab728366c70 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -361,8 +361,8 @@ start_udp() { ;; v2ray) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port - ln_start_bin $(first_type xray v2ray) v2ray -config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "xray" "v2ray") -version | head -1) Started!" + ln_start_bin $(first_type xray v2ray) v2ray run -config $udp_config_file + echolog "UDP TPROXY Relay:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; trojan) #client gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port @@ -411,9 +411,9 @@ start_shunt() { v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port - ln_start_bin $(first_type xray v2ray) v2ray -config $shunt_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -config $shunt_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q - echolog "shunt:$($(first_type xray v2ray) -version | head -1) Started!" + echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port @@ -487,9 +487,9 @@ start_local() { v2ray) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port - ln_start_bin $(first_type xray v2ray) v2ray -config $local_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -config $local_config_file fi - echolog "Global_Socks5:$($(first_type "xray" "v2ray") -version | head -1) Started!" + echolog "Global_Socks5:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; trojan) #client gen_config_file $LOCAL_SERVER $type 4 $local_port @@ -549,8 +549,8 @@ Start_Run() { ;; v2ray) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port - ln_start_bin $(first_type xray v2ray) v2ray -config $tcp_config_file - echolog "Main node:$($(first_type xray v2ray) -version | head -1) Started!" + ln_start_bin $(first_type xray v2ray) v2ray run -config $tcp_config_file + echolog "Main node:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port From 8643fbcb0d4e65764c8edc33df495f4b24e02fc0 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 8 Apr 2022 00:54:47 +0800 Subject: [PATCH 066/972] xray-core: drop `UPX` --- xray-core/Makefile | 36 ++---------------------------------- 1 file changed, 2 insertions(+), 34 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 22e3f3b4dfb..614c2d641a8 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core PKG_VERSION:=1.5.4 -PKG_RELEASE:=1 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? @@ -12,17 +12,12 @@ PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE -PKG_CONFIG_DEPENDS:= \ - CONFIG_XRAY_CORE_COMPRESS_GOPROXY \ - CONFIG_XRAY_CORE_COMPRESS_UPX \ - PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/xtls/xray-core -GO_PKG_BUILD_PKG:=github.com/xtls/xray-core/main -GO_PKG_LDFLAGS:=-s -w +GO_PKG_BUILD_PKG:=$(GO_PKG)/main GO_PKG_LDFLAGS_X:= \ $(GO_PKG)/core.build=OpenWrt \ $(GO_PKG)/core.version=$(PKG_VERSION) @@ -43,33 +38,6 @@ define Package/xray-core/description It secures your network connections and thus protects your privacy. endef -define Package/xray-core/config -menu "Xray-core Configuration" - depends on PACKAGE_xray-core - -config XRAY_CORE_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config XRAY_CORE_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endmenu -endef - -ifneq ($(CONFIG_XRAY_CORE_COMPRESS_GOPROXY),) - export GO111MODULE=on - export GOPROXY=https://goproxy.bj.bcebos.com -endif - -define Build/Compile - $(call GoPackage/Build/Compile) -ifneq ($(CONFIG_XRAY_CORE_COMPRESS_UPX),) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/main -endif -endef - define Package/xray-core/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) $(INSTALL_DIR) $(1)/usr/bin/ From eaa2a01e866132b0af9d6142f9edbba4b6a2b59f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 9 Apr 2022 00:51:16 +0800 Subject: [PATCH 067/972] treewide: get rid of UPX Signed-off-by: Tianling Shen --- README.md | 25 +------------------------ v2ray-plugin/Makefile | 28 ---------------------------- v2raya/Makefile | 24 ------------------------ xray-plugin/Makefile | 28 ---------------------------- 4 files changed, 1 insertion(+), 104 deletions(-) diff --git a/README.md b/README.md index 304559ca1f5..f5e52668376 100644 --- a/README.md +++ b/README.md @@ -72,13 +72,8 @@ ### Note -If you want to use this repo with official OpenWrt source tree, the following tools and packages need to be added manually: +If you want to use this repo with official OpenWrt source tree, the following packages need to be added manually: -tools: -- [ucl](https://github.com/coolsnowwolf/lede/tree/master/tools/ucl) -- [upx](https://github.com/coolsnowwolf/lede/tree/master/tools/upx) - -packages: - [dns2socks](https://github.com/immortalwrt/packages/tree/master/net/dns2socks) - [microsocks](https://github.com/immortalwrt/packages/tree/master/net/microsocks) - [ipt2socks](https://github.com/immortalwrt/packages/tree/master/net/ipt2socks) @@ -93,21 +88,3 @@ for i in "dns2socks" "microsocks" "ipt2socks" "pdnsd-alt" "redsocks2"; do \ svn checkout "https://github.com/immortalwrt/packages/trunk/net/$i" "package/helloworld/$i"; \ done ``` - -You should manually add the following code into tools/Makefile, make sure to add code before the compile command: - -```bash -tools-y += ucl upx -$(curdir)/upx/compile := $(curdir)/ucl/compile -``` - -e.g.: - -```bash -svn checkout https://github.com/coolsnowwolf/lede/trunk/tools/ucl tools/ucl -svn checkout https://github.com/coolsnowwolf/lede/trunk/tools/upx tools/upx - -sed -i 'N;24a\tools-y += ucl upx' tools/Makefile -sed -i 'N;40a\$(curdir)/upx/compile := $(curdir)/ucl/compile' tools/Makefile -``` -You should note that hard-coding the line number is not an ideal solution. It may destroy the structure of the original file due to the update of the openwrt source code and cause unexpected problems. diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index af4d1494abc..24f72111212 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -17,37 +17,16 @@ PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=madeye -PKG_CONFIG_DEPENDS:= \ - CONFIG_V2RAY_PLUGIN_COMPRESS_GOPROXY \ - CONFIG_V2RAY_PLUGIN_COMPRESS_UPX - PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/shadowsocks/v2ray-plugin -GO_PKG_LDFLAGS:=-s -w GO_PKG_LDFLAGS_X:=main.VERSION=v$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk -define Package/v2ray-plugin/config -config V2RAY_PLUGIN_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config V2RAY_PLUGIN_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endef - -ifeq ($(CONFIG_V2RAY_PLUGIN_COMPRESS_GOPROXY),y) - export GO111MODULE=on - export GOPROXY=https://goproxy.bj.bcebos.com -endif - define Package/v2ray-plugin SECTION:=net CATEGORY:=Network @@ -57,12 +36,5 @@ define Package/v2ray-plugin DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -define Build/Compile - $(call GoPackage/Build/Compile) -ifeq ($(CONFIG_V2RAY_PLUGIN_COMPRESS_UPX),y) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/v2ray-plugin -endif -endef - $(eval $(call GoBinPackage,v2ray-plugin)) $(eval $(call BuildPackage,v2ray-plugin)) diff --git a/v2raya/Makefile b/v2raya/Makefile index 11eefaabbc8..519c9de90c6 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -17,16 +17,11 @@ PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -PKG_CONFIG_DEPENDS:= \ - CONFIG_V2RAYA_COMPRESS_GOPROXY \ - CONFIG_V2RAYA_COMPRESS_UPX \ - PKG_BUILD_DEPENDS:=golang/host node/host node-yarn/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/v2rayA/v2rayA -GO_PKG_LDFLAGS:=-s -w GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.Version=$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk @@ -56,22 +51,6 @@ define Package/v2raya/description compatible with SS, SSR, Trojan(trojan-go), PingTunnel protocols. endef -define Package/v2raya/config -config V2RAYA_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config V2RAYA_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endef - -ifneq ($(CONFIG_V2RAYA_COMPRESS_GOPROXY),) - export GO111MODULE=on - export GOPROXY=https://goproxy.bj.bcebos.com -endif - define Package/v2raya/conffiles /etc/v2raya/ /etc/config/v2raya @@ -85,9 +64,6 @@ define Build/Compile popd ; \ $(call GoPackage/Build/Compile) ; \ ) -ifneq ($(CONFIG_V2RAYA_COMPRESS_UPX),) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/v2rayA -endif endef define Package/v2raya/install diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 50e8d01f017..bb5d3427110 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -16,36 +16,15 @@ PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -PKG_CONFIG_DEPENDS:= \ - CONFIG_XRAY_PLUGIN_COMPRESS_GOPROXY \ - CONFIG_XRAY_PLUGIN_COMPRESS_UPX - PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/teddysun/xray-plugin -GO_PKG_LDFLAGS:=-s -w include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk -define Package/xray-plugin/config -config XRAY_PLUGIN_COMPRESS_GOPROXY - bool "Compiling with GOPROXY proxy" - default n - -config XRAY_PLUGIN_COMPRESS_UPX - bool "Compress executable files with UPX" - depends on !mips64 - default n -endef - -ifneq ($(CONFIG_XRAY_PLUGIN_COMPRESS_GOPROXY),) - export GO111MODULE=on - export GOPROXY=https://goproxy.bj.bcebos.com -endif - define Package/xray-plugin SECTION:=net CATEGORY:=Network @@ -55,12 +34,5 @@ define Package/xray-plugin DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -define Build/Compile - $(call GoPackage/Build/Compile) -ifneq ($(CONFIG_XRAY_PLUGIN_COMPRESS_UPX),) - $(STAGING_DIR_HOST)/bin/upx --lzma --best $(GO_PKG_BUILD_BIN_DIR)/xray-plugin -endif -endef - $(eval $(call GoBinPackage,xray-plugin)) $(eval $(call BuildPackage,xray-plugin)) From 2eb7e8c66dac03d97f1c580e9cfe61ec81f398a1 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 9 Apr 2022 01:44:20 +0800 Subject: [PATCH 068/972] v2ray-plugin: Update to 5.0.3 Signed-off-by: Tianling Shen --- v2ray-plugin/Makefile | 4 +-- v2ray-plugin/patches/010-go-1.18.patch | 47 ++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 v2ray-plugin/patches/010-go-1.18.patch diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 24f72111212..8e21e6f9d69 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=4.44.0 +PKG_VERSION:=5.0.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f94e8efe879a5300871dd01faec7d6635baaef4dbd39d83f4362802f716d386e +PKG_HASH:=e1b71145c4bc2ff262656a3ce17ddd551f95b6975905a43edfac8154ab62b62a PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/v2ray-plugin/patches/010-go-1.18.patch b/v2ray-plugin/patches/010-go-1.18.patch new file mode 100644 index 00000000000..3dfd496b770 --- /dev/null +++ b/v2ray-plugin/patches/010-go-1.18.patch @@ -0,0 +1,47 @@ +--- a/go.mod ++++ b/go.mod +@@ -13,9 +13,10 @@ require ( + github.com/fsnotify/fsnotify v1.4.9 // indirect + github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect + github.com/gorilla/websocket v1.4.2 // indirect +- github.com/lucas-clemente/quic-go v0.24.0 // indirect +- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect +- github.com/marten-seemann/qtls-go1-17 v0.1.0 // indirect ++ github.com/lucas-clemente/quic-go v0.25.0 // indirect ++ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect ++ github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect ++ github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect + github.com/nxadm/tail v1.4.8 // indirect + github.com/onsi/ginkgo v1.16.4 // indirect + github.com/pires/go-proxyproto v0.6.1 // indirect +--- a/go.sum ++++ b/go.sum +@@ -205,8 +205,9 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv + github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= + github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= + github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +-github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= + github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= ++github.com/lucas-clemente/quic-go v0.25.0 h1:K+X9Gvd7JXsOHtU0N2icZ2Nw3rx82uBej3mP4CLgibc= ++github.com/lucas-clemente/quic-go v0.25.0/go.mod h1:YtzP8bxRVCBlO77yRanE264+fY/T2U9ZlW1AaHOsMOg= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= + github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= + github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= +@@ -214,10 +215,15 @@ github.com/magiconair/properties v1.8.1/ + github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= + github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= + github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= +-github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= + github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= +-github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= ++github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= ++github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= + github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= ++github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= ++github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= ++github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1/go.mod h1:PUhIQk19LoFt2174H4+an8TYvWOGjb/hHwphBeaDHwI= ++github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= ++github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= + github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= + github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= + github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= From 436844357fc9f2a25b9d13e313eeb6d81f3f23d8 Mon Sep 17 00:00:00 2001 From: Chikage0o0 <89348590+Chikage0o0@users.noreply.github.com> Date: Sat, 9 Apr 2022 22:55:01 +0800 Subject: [PATCH 069/972] luci-app-ssr-plus: fix subscribe bugs about grpc and sni Signed-off-by: Tianling Shen --- .../root/usr/share/shadowsocksr/subscribe.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index ee0177d5f3d..8e76f246a94 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -192,6 +192,13 @@ local function processData(szType, content) result.read_buffer_size = 2 result.write_buffer_size = 2 end + if info.net == 'grpc' then + if info.path then + result.serviceName = info.path + elseif info.serviceName then + result.serviceName = info.serviceName + end + end if info.net == 'quic' then result.quic_guise = info.type result.quic_key = info.key @@ -202,7 +209,11 @@ local function processData(szType, content) end if info.tls == "tls" or info.tls == "1" then result.tls = "1" - result.tls_host = info.host + if info.sni then + result.tls_host = info.sni + elseif info.host then + result.tls_host = info.host + end result.insecure = 1 else result.tls = "0" From dd49b31521612fa7db9d1b08e2857c3efd5651c3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 19 Apr 2022 00:56:44 +0800 Subject: [PATCH 070/972] luci-app-ssr-plus: check standard arg first Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 8e76f246a94..e1a9e1fa9fa 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -209,10 +209,10 @@ local function processData(szType, content) end if info.tls == "tls" or info.tls == "1" then result.tls = "1" - if info.sni then - result.tls_host = info.sni - elseif info.host then + if info.host then result.tls_host = info.host + elseif info.sni then + result.tls_host = info.sni end result.insecure = 1 else From ea2934e0e3e0c26a729b8b8a85327825ca1bf13a Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Wed, 20 Apr 2022 11:39:15 +0800 Subject: [PATCH 071/972] xray-core: strip binary with -ldflags --- xray-core/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/xray-core/Makefile b/xray-core/Makefile index 614c2d641a8..6d220f66ef5 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -17,6 +17,7 @@ PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/xtls/xray-core +GO_PKG_LDFLAGS:=-s -w GO_PKG_BUILD_PKG:=$(GO_PKG)/main GO_PKG_LDFLAGS_X:= \ $(GO_PKG)/core.build=OpenWrt \ From b35fb62645abb63bec5bd352b2206e1f7cb2d43d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 22 Apr 2022 11:04:54 +0000 Subject: [PATCH 072/972] v2raya: update to 1.5.7 --- v2raya/Makefile | 4 +-- v2raya/files/v2raya.config | 2 +- v2raya/files/v2raya.init | 2 +- .../010-fix-panic-in-go-1.18-462.patch | 32 ------------------- 4 files changed, 4 insertions(+), 36 deletions(-) delete mode 100644 v2raya/patches/010-fix-panic-in-go-1.18-462.patch diff --git a/v2raya/Makefile b/v2raya/Makefile index 519c9de90c6..34bc3b7143f 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=1.5.6.2 +PKG_VERSION:=1.5.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d949246aa9fe80aa9cb8fb4d80cb470f508bb44d4ac23e84e28e3b9abd30b67c +PKG_HASH:=6d203ef95ac2a48f6f1808b93fc1cd1a4f32a0419710d0c7a74169f27c38ed9c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only diff --git a/v2raya/files/v2raya.config b/v2raya/files/v2raya.config index 841b90a2aa8..fbda47431a0 100644 --- a/v2raya/files/v2raya.config +++ b/v2raya/files/v2raya.config @@ -16,7 +16,7 @@ config v2raya 'config' option log_level 'info' # The path of log file - option log_file '/tmp/v2raya.log' + option log_file '/var/log/v2raya/v2raya.log' # Maximum number of days to keep log files option log_max_days '3' diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index 826935d5c3a..5c7a0ece474 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -44,7 +44,7 @@ start_service() { append_env_arg "config" "config" "/etc/v2raya" append_env_arg "config" "ipv6_support" "auto" append_env_arg "config" "log_level" "info" - append_env_arg "config" "log_file" "/tmp/v2raya.log" + append_env_arg "config" "log_file" "/var/log/v2raya/v2raya.log" append_env_arg "config" "log_max_days" "3" append_env_arg "config" "v2ray_bin" append_env_arg "config" "v2ray_confdir" diff --git a/v2raya/patches/010-fix-panic-in-go-1.18-462.patch b/v2raya/patches/010-fix-panic-in-go-1.18-462.patch deleted file mode 100644 index 3461629e902..00000000000 --- a/v2raya/patches/010-fix-panic-in-go-1.18-462.patch +++ /dev/null @@ -1,32 +0,0 @@ -From eb210b5e634b65838b50387891ad837590fb2b4e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=E9=AB=98=E6=B8=90=E7=A6=BB?= -Date: Tue, 22 Mar 2022 15:28:50 +0800 -Subject: [PATCH] fix: panic in go 1.18 (#462) - ---- - service/go.mod | 2 +- - service/go.sum | 2 ++ - 2 files changed, 3 insertions(+), 1 deletion(-) - ---- a/go.mod -+++ b/go.mod -@@ -50,7 +50,7 @@ require ( - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect -- github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 // indirect -+ github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml v1.2.0 // indirect - github.com/pires/go-proxyproto v0.6.1 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect ---- a/go.sum -+++ b/go.sum -@@ -145,6 +145,8 @@ github.com/modern-go/concurrent v0.0.0-2 - github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= - github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742 h1:Esafd1046DLDQ0W1YjYsBW+p8U2u7vzgW2SQVmlNazg= - github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -+github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -+github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= - github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= - github.com/muhammadmuzzammil1998/jsonc v0.0.0-20201229145248-615b0916ca38 h1:0FrBxrkJ0hVembTb/e4EU5Ml6vLcOusAqymmYISg5Uo= From 9e81a55ed6f4b81b0ead736b60e78249de1ccec1 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 24 Apr 2022 08:53:08 +0800 Subject: [PATCH 073/972] xray-core: Update to 1.5.5 Signed-off-by: Tianling Shen --- xray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 6d220f66ef5..db370756dc1 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.4 +PKG_VERSION:=1.5.5 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/XTLS/xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=af9b9b5b0a2d4f055d19f3580d1c2d3141bbaab9dd7824428c12ae0ced5f511e +PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=3f8d04fef82a922c83bab43cac6c86a76386cf195eb510ccf1cc175982693893 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 7124f14c5c521f13c01cb8fc69d5df34a026221b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 24 Apr 2022 13:01:29 +0800 Subject: [PATCH 074/972] xray-plugin: update to 1.5.5 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index bb5d3427110..0f5d634a964 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.4 +PKG_VERSION:=1.5.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b6b66ea091f6348c7f213a8f7a3be51be25cea2cdf9ea7fb5bb93e2e04077a6f +PKG_HASH:=0edc575765fc3523d475f9d28d14d42facf00060fc8ef60bb50f42e0a6730496 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From addb10024c04cda7567494776df44bfd0b8aa6d6 Mon Sep 17 00:00:00 2001 From: Ren Zongjia Date: Sun, 24 Apr 2022 22:03:19 +0800 Subject: [PATCH 075/972] Add the device attribute of getting interface Signed-off-by: Ren Zongjia --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 06aa942b596..4a85173fa0d 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -191,6 +191,7 @@ ac_rule() { else for name in $Interface; do local IFNAME=$(uci -P /var/state get network.$name.ifname 2>/dev/null) + [ -z "$IFNAME" ] && IFNAME=$(uci -P /var/state get network.$name.device 2>/dev/null) [ -n "$IFNAME" ] && $IPT -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p tcp $EXT_ARGS $MATCH_SET -m comment --comment "$TAG" -j SS_SPEC_WAN_AC done fi @@ -262,6 +263,7 @@ tp_rule() { else for name in $Interface; do local IFNAME=$(uci -P /var/state get network.$name.ifname 2>/dev/null) + [ -z "$IFNAME" ] && IFNAME=$(uci -P /var/state get network.$name.device 2>/dev/null) [ -n "$IFNAME" ] && $ipt -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p udp $EXT_ARGS $MATCH_SET -m comment --comment "$TAG" -j SS_SPEC_TPROXY done fi From 9a6f3b74c748286a0894706719adf407fa7425f5 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 25 Apr 2022 14:20:00 +0800 Subject: [PATCH 076/972] v2ray-geodata: update to latest version --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 6f71db26852..9c7a05f2f40 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202203100039 +GEOIP_VER:=202204210050 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=7532aadf5bda5e2bc1b9a100662022405f19d61245a27b3ace9a982ca0242bc9 + HASH:=9414426b105894bbacd6e913d180e4d86c32bd08d468f08b8ea8d4f9ecd6674c endef -GEOSITE_VER:=20220310015105 +GEOSITE_VER:=20220425025949 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=c7d9ee11e415ffbd8458e2cb9716eea7a220a3023d1db35d84e47d33b1f4cd72 + HASH:=9065ea5d6fa20acf3e1a687b1c33f8669c48bf61b4979768ce2f50fe507053ee endef define Package/v2ray-geodata/template From d735400ffe62f186f07305efca802b9e7b5692f6 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 27 Apr 2022 10:32:18 +0800 Subject: [PATCH 077/972] CI: update SDK Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 37 +++++++++++++-------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index fb6433d2ad1..0175097fa51 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -13,21 +13,32 @@ jobs: fail-fast: false matrix: include: - - arch: aarch64_cortex-a53 - target: bcm27xx-bcm2710 - tag: sdk-bcm27xx_bcm2710 + - arch: arc_archs + target: archs38-generic + + - arch: arm_cortex-a9_vfpv3-d16 + target: mvebu-cortexa9 - - arch: arm_cortex-a7_neon-vfpv4 - target: ipq40xx-generic - tag: sdk-ipq40xx_generic + - arch: mips_24kc + target: ath79-generic - arch: mipsel_24kc - target: ramips-mt7621 - tag: sdk-ramips_mt7621 + target: mt7621 + + - arch: powerpc_464fp + target: apm821xx-nand + + - arch: powerpc_8540 + target: mpc85xx-p1010 + + - arch: aarch64_cortex-a53 + target: mvebu-cortexa53 + + - arch: arm_cortex-a15_neon-vfpv4 + target: armvirt-32 - - arch: x86_64 - target: x86-64 - tag: sdk-x86_64 + - arch: i386_pentium-mmx + target: x86-geode steps: - uses: actions/checkout@v2 @@ -64,9 +75,9 @@ jobs: echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV - name: Build - uses: immortalwrt/gh-action-sdk@v1 + uses: immortalwrt/gh-action-sdk@v2 env: - ARCH: ${{ matrix.tag }}-${{ env.BRANCH }} + ARCH: ${{ matrix.arch }}-${{ env.BRANCH }} FEEDNAME: packages_ci - name: Move created packages to project dir From 780ec1f00c582aadc51aaf8c4388134e81531fc3 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 1 May 2022 17:01:08 +0000 Subject: [PATCH 078/972] v2ray-core: update to 5.0.4 --- v2ray-core/Makefile | 4 +- ...ore-use-Go-v1.18-update-dependencies.patch | 184 ------------------ ...tls-modules-for-different-Go-version.patch | 136 ------------- 3 files changed, 2 insertions(+), 322 deletions(-) delete mode 100644 v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch delete mode 100644 v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 8f06590cc26..f13e581ea84 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.3 +PKG_VERSION:=5.0.4 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c0fe91f715293cfc39a5afeef71e1ff43d379ae0faa139c560fdc3ede88a458a +PKG_HASH:=113df7a969e3c113426c891c4dc07e24b030b1df2335d3ccff38dde5c4352c86 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch b/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch deleted file mode 100644 index adffae41639..00000000000 --- a/v2ray-core/patches/010-Chore-use-Go-v1.18-update-dependencies.patch +++ /dev/null @@ -1,184 +0,0 @@ -From 56371d87efc0fb57eb80424e968946458945167f Mon Sep 17 00:00:00 2001 -From: Loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> -Date: Sun, 27 Mar 2022 01:43:02 +0800 -Subject: [PATCH] Chore: use Go v1.18 & update dependencies - ---- - .github/workflows/linter.yml | 2 +- - .github/workflows/release.yml | 4 ++-- - .github/workflows/test.yml | 2 +- - go.mod | 20 +++++++++--------- - go.sum | 38 +++++++++++++++++------------------ - 5 files changed, 32 insertions(+), 34 deletions(-) - ---- a/go.mod -+++ b/go.mod -@@ -1,6 +1,6 @@ - module github.com/v2fly/v2ray-core/v5 - --go 1.17 -+go 1.18 - - require ( - github.com/go-chi/chi/v5 v5.0.7 -@@ -11,23 +11,23 @@ require ( - github.com/google/go-cmp v0.5.6 - github.com/gorilla/websocket v1.4.2 - github.com/jhump/protoreflect v1.10.1 -- github.com/lucas-clemente/quic-go v0.24.0 -- github.com/marten-seemann/qtls-go1-17 v0.1.0 -+ github.com/lucas-clemente/quic-go v0.26.0 -+ github.com/marten-seemann/qtls-go1-17 v0.1.1 - github.com/miekg/dns v1.1.45 - github.com/pelletier/go-toml v1.9.4 - github.com/pires/go-proxyproto v0.6.1 -- github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c -+ github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b - github.com/stretchr/testify v1.7.0 - github.com/v2fly/BrowserBridge v0.0.0-20210430233438-0570fc1d7d08 - github.com/v2fly/VSign v0.0.0-20201108000810-e2adc24bf848 - github.com/v2fly/ss-bloomring v0.0.0-20210312155135-28617310f63e -- go.starlark.net v0.0.0-20211203141949-70c0e40ae128 -- golang.org/x/crypto v0.0.0-20211202192323-5770296d904e -- golang.org/x/net v0.0.0-20211205041911-012df41ee64c -+ go.starlark.net v0.0.0-20220302181546-5411bad688d1 -+ golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 -+ golang.org/x/net v0.0.0-20220325170049-de3da57026de - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c -- golang.org/x/sys v0.0.0-20211205182925-97ca703d548d -+ golang.org/x/sys v0.0.0-20220325203850-36772127a21f - google.golang.org/grpc v1.42.0 -- google.golang.org/protobuf v1.27.1 -+ google.golang.org/protobuf v1.28.0 - gopkg.in/yaml.v2 v2.4.0 - h12.io/socks v1.0.3 - inet.af/netaddr v0.0.0-20211027220019-c74959edd3b6 -@@ -44,7 +44,8 @@ require ( - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/leodido/go-urn v1.2.1 // indirect - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect -- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect -+ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect -+ github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/onsi/ginkgo v1.16.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect -@@ -53,7 +54,7 @@ require ( - go4.org/intern v0.0.0-20211027215823-ae77deb06f29 // indirect - go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect - golang.org/x/mod v0.4.2 // indirect -- golang.org/x/text v0.3.6 // indirect -+ golang.org/x/text v0.3.7 // indirect - golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect - google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect ---- a/go.sum -+++ b/go.sum -@@ -209,19 +209,20 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2 - github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= - github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= - github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= --github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= --github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -+github.com/lucas-clemente/quic-go v0.26.0 h1:ALBQXr9UJ8A1LyzvceX4jd9QFsHvlI0RR6BkV16o00A= -+github.com/lucas-clemente/quic-go v0.26.0/go.mod h1:AzgQoPda7N+3IqMMMkywBKggIFo2KT6pfnlrQ2QieeI= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= - github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= - github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= - github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= - github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= --github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= --github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= --github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= --github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= --github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= -+github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= -+github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= -+github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= -+github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= -+github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= -+github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= - github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= - github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= - github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -@@ -298,8 +299,8 @@ github.com/russross/blackfriday v1.5.2/g - github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= - github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= - github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= --github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c h1:pqy40B3MQWYrza7YZXOXgl0Nf0QGFqrOC0BKae1UNAA= --github.com/seiflotfy/cuckoofilter v0.0.0-20201222105146-bc6005554a0c/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= -+github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b h1:wHoB6ZYEnIVizebcj419LbN4Tagk7RDFiudRFKyzzmo= -+github.com/seiflotfy/cuckoofilter v0.0.0-20220312154859-af7fbb8e765b/go.mod h1:bR6DqgcAl1zTcOX8/pE2Qkj9XO00eCNqmKb7lXP8EAg= - github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= - github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= - github.com/shurcooL/events v0.0.0-20181021180414-410e4ca65f48/go.mod h1:5u70Mqkb5O5cxEA8nxTsgrgLehJeAw6Oc4Ab1c/P1HM= -@@ -371,12 +372,11 @@ go.opencensus.io v0.18.0/go.mod h1:vKdFv - go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= - go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= - go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= --go.starlark.net v0.0.0-20211203141949-70c0e40ae128 h1:bxH+EXOo87zEOwKDdZ8Tevgi6irRbqheRm/fr293c58= --go.starlark.net v0.0.0-20211203141949-70c0e40ae128/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= -+go.starlark.net v0.0.0-20220302181546-5411bad688d1 h1:i0Sz4b+qJi5xwOaFZqZ+RNHkIpaKLDofei/Glt+PMNc= -+go.starlark.net v0.0.0-20220302181546-5411bad688d1/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= - go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= - go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= - go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= --go4.org v0.0.0-20180809161055-417644f6feb5 h1:+hE86LblG4AyDgwMCLTE6FOlM9+qjHSYS+rKqxUVdsM= - go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= - go4.org/intern v0.0.0-20211027215823-ae77deb06f29 h1:UXLjNohABv4S58tHmeuIZDO6e3mHpW2Dx33gaNt03LE= - go4.org/intern v0.0.0-20211027215823-ae77deb06f29/go.mod h1:cS2ma+47FKrLPdXFpr7CuxiTW3eyJbWew4qx0qtQWDA= -@@ -395,8 +395,8 @@ golang.org/x/crypto v0.0.0-2020022123151 - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= - golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= - golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= --golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8= --golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -+golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s= -+golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= - golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= - golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= - golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -@@ -448,9 +448,8 @@ golang.org/x/net v0.0.0-20210226172049-e - golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= - golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= - golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= --golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= --golang.org/x/net v0.0.0-20211205041911-012df41ee64c h1:7SfqwP5fxEtl/P02w5IhKc86ziJ+A25yFrkVgoy2FT8= --golang.org/x/net v0.0.0-20211205041911-012df41ee64c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -+golang.org/x/net v0.0.0-20220325170049-de3da57026de h1:pZB1TWnKi+o4bENlbzAgLrEbY4RMYmUIRobMcSmfeYc= -+golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= - golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= - golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -@@ -501,15 +500,16 @@ golang.org/x/sys v0.0.0-20210510120138-9 - golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= --golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E= --golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -+golang.org/x/sys v0.0.0-20220325203850-36772127a21f h1:TrmogKRsSOxRMJbLYGrB4SBbW+LJcEllYBLME5Zk5pU= -+golang.org/x/sys v0.0.0-20220325203850-36772127a21f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= - golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= - golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= - golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= - golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= - golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= --golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= - golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -+golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= -+golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= - golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= - golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= - golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -@@ -602,8 +602,8 @@ google.golang.org/protobuf v1.25.0/go.mo - google.golang.org/protobuf v1.25.1-0.20200805231151-a709e31e5d12/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= - google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= - google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= --google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= --google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -+google.golang.org/protobuf v1.28.0 h1:w43yiav+6bVFTBQFZX0r7ipe9JQ1QsbMgHwbBziscLw= -+google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= - gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= - gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= - gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch b/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch deleted file mode 100644 index 28857717631..00000000000 --- a/v2ray-core/patches/020-Feat-use-different-qtls-modules-for-different-Go-version.patch +++ /dev/null @@ -1,136 +0,0 @@ -From e0df70b16d45883d8bf1f39e90b7111b93250466 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=E7=A7=8B=E3=81=AE=E3=81=8B=E3=81=88=E3=81=A7?= - -Date: Tue, 5 Apr 2022 14:17:19 +0800 -Subject: [PATCH] Feat: use different qtls modules for different Go version - ---- - common/protocol/quic/qtls_go116.go | 19 +++++++++++++++++++ - common/protocol/quic/qtls_go117.go | 19 +++++++++++++++++++ - common/protocol/quic/qtls_go118.go | 19 +++++++++++++++++++ - common/protocol/quic/sniff.go | 7 +++---- - go.mod | 4 ++-- - 5 files changed, 62 insertions(+), 6 deletions(-) - create mode 100644 common/protocol/quic/qtls_go116.go - create mode 100644 common/protocol/quic/qtls_go117.go - create mode 100644 common/protocol/quic/qtls_go118.go - ---- /dev/null -+++ b/common/protocol/quic/qtls_go116.go -@@ -0,0 +1,19 @@ -+//go:build go1.16 && !go1.17 -+// +build go1.16,!go1.17 -+ -+package quic -+ -+import ( -+ "crypto/cipher" -+ -+ "github.com/marten-seemann/qtls-go1-16" -+) -+ -+type ( -+ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 -+ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 -+) -+ -+func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { -+ return qtls.AEADAESGCMTLS13(key, fixedNonce) -+} ---- /dev/null -+++ b/common/protocol/quic/qtls_go117.go -@@ -0,0 +1,19 @@ -+//go:build go1.17 && !go1.18 -+// +build go1.17,!go1.18 -+ -+package quic -+ -+import ( -+ "crypto/cipher" -+ -+ "github.com/marten-seemann/qtls-go1-17" -+) -+ -+type ( -+ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 -+ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 -+) -+ -+func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { -+ return qtls.AEADAESGCMTLS13(key, fixedNonce) -+} ---- /dev/null -+++ b/common/protocol/quic/qtls_go118.go -@@ -0,0 +1,19 @@ -+//go:build go1.18 -+// +build go1.18 -+ -+package quic -+ -+import ( -+ "crypto/cipher" -+ -+ "github.com/marten-seemann/qtls-go1-18" -+) -+ -+type ( -+ // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 -+ CipherSuiteTLS13 = qtls.CipherSuiteTLS13 -+) -+ -+func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { -+ return qtls.AEADAESGCMTLS13(key, fixedNonce) -+} ---- a/common/protocol/quic/sniff.go -+++ b/common/protocol/quic/sniff.go -@@ -8,7 +8,6 @@ import ( - "io" - - "github.com/lucas-clemente/quic-go/quicvarint" -- "github.com/marten-seemann/qtls-go1-17" - "golang.org/x/crypto/hkdf" - - "github.com/v2fly/v2ray-core/v5/common" -@@ -37,10 +36,10 @@ const ( - var ( - quicSaltOld = []byte{0xaf, 0xbf, 0xec, 0x28, 0x99, 0x93, 0xd2, 0x4c, 0x9e, 0x97, 0x86, 0xf1, 0x9c, 0x61, 0x11, 0xe0, 0x43, 0x90, 0xa8, 0x99} - quicSalt = []byte{0x38, 0x76, 0x2c, 0xf7, 0xf5, 0x59, 0x34, 0xb3, 0x4d, 0x17, 0x9a, 0xe6, 0xa4, 0xc8, 0x0c, 0xad, 0xcc, 0xbb, 0x7f, 0x0a} -- initialSuite = &qtls.CipherSuiteTLS13{ -+ initialSuite = &CipherSuiteTLS13{ - ID: tls.TLS_AES_128_GCM_SHA256, - KeyLen: 16, -- AEAD: qtls.AEADAESGCMTLS13, -+ AEAD: AEADAESGCMTLS13, - Hash: crypto.SHA256, - } - errNotQuic = errors.New("not quic") -@@ -153,7 +152,7 @@ func SniffQUIC(b []byte) (*SniffHeader, - - key := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic key", 16) - iv := hkdfExpandLabel(crypto.SHA256, secret, []byte{}, "quic iv", 12) -- cipher := qtls.AEADAESGCMTLS13(key, iv) -+ cipher := AEADAESGCMTLS13(key, iv) - nonce := cache.Extend(int32(cipher.NonceSize())) - binary.BigEndian.PutUint64(nonce[len(nonce)-8:], uint64(packetNumber)) - decrypted, err := cipher.Open(b[extHdrLen:extHdrLen], nonce, data, b[:extHdrLen]) ---- a/go.mod -+++ b/go.mod -@@ -12,7 +12,9 @@ require ( - github.com/gorilla/websocket v1.4.2 - github.com/jhump/protoreflect v1.10.1 - github.com/lucas-clemente/quic-go v0.26.0 -+ github.com/marten-seemann/qtls-go1-16 v0.1.5 - github.com/marten-seemann/qtls-go1-17 v0.1.1 -+ github.com/marten-seemann/qtls-go1-18 v0.1.1 - github.com/miekg/dns v1.1.45 - github.com/pelletier/go-toml v1.9.4 - github.com/pires/go-proxyproto v0.6.1 -@@ -44,8 +46,6 @@ require ( - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/leodido/go-urn v1.2.1 // indirect - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 // indirect -- github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect -- github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/onsi/ginkgo v1.16.4 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect From 79f7123ee03844bd0a0472bb8ef9b9c95ae271ff Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 2 May 2022 09:51:02 +0800 Subject: [PATCH 079/972] v2ray-plugin: Update to 5.0.4 Removed an upstreamed patch. Signed-off-by: Tianling Shen --- v2ray-plugin/Makefile | 4 +-- v2ray-plugin/patches/010-go-1.18.patch | 47 -------------------------- 2 files changed, 2 insertions(+), 49 deletions(-) delete mode 100644 v2ray-plugin/patches/010-go-1.18.patch diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 8e21e6f9d69..1d6adc8f9e6 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.3 +PKG_VERSION:=5.0.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e1b71145c4bc2ff262656a3ce17ddd551f95b6975905a43edfac8154ab62b62a +PKG_HASH:=ac6f1bc754ca7b1d9255230df6dc59667034a77475d05396e8ef6b1cecf5daa6 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/v2ray-plugin/patches/010-go-1.18.patch b/v2ray-plugin/patches/010-go-1.18.patch deleted file mode 100644 index 3dfd496b770..00000000000 --- a/v2ray-plugin/patches/010-go-1.18.patch +++ /dev/null @@ -1,47 +0,0 @@ ---- a/go.mod -+++ b/go.mod -@@ -13,9 +13,10 @@ require ( - github.com/fsnotify/fsnotify v1.4.9 // indirect - github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 // indirect - github.com/gorilla/websocket v1.4.2 // indirect -- github.com/lucas-clemente/quic-go v0.24.0 // indirect -- github.com/marten-seemann/qtls-go1-16 v0.1.4 // indirect -- github.com/marten-seemann/qtls-go1-17 v0.1.0 // indirect -+ github.com/lucas-clemente/quic-go v0.25.0 // indirect -+ github.com/marten-seemann/qtls-go1-16 v0.1.5 // indirect -+ github.com/marten-seemann/qtls-go1-17 v0.1.1 // indirect -+ github.com/marten-seemann/qtls-go1-18 v0.1.1 // indirect - github.com/nxadm/tail v1.4.8 // indirect - github.com/onsi/ginkgo v1.16.4 // indirect - github.com/pires/go-proxyproto v0.6.1 // indirect ---- a/go.sum -+++ b/go.sum -@@ -205,8 +205,9 @@ github.com/kr/text v0.1.0/go.mod h1:4Jbv - github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= - github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= - github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= --github.com/lucas-clemente/quic-go v0.24.0 h1:ToR7SIIEdrgOhgVTHvPgdVRJfgVy+N0wQAagH7L4d5g= - github.com/lucas-clemente/quic-go v0.24.0/go.mod h1:paZuzjXCE5mj6sikVLMvqXk8lJV2AsqtJ6bDhjEfxx0= -+github.com/lucas-clemente/quic-go v0.25.0 h1:K+X9Gvd7JXsOHtU0N2icZ2Nw3rx82uBej3mP4CLgibc= -+github.com/lucas-clemente/quic-go v0.25.0/go.mod h1:YtzP8bxRVCBlO77yRanE264+fY/T2U9ZlW1AaHOsMOg= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40 h1:EnfXoSqDfSNJv0VBNqY/88RNnhSGYkrHaO0mmFGbVsc= - github.com/lunixbochs/struc v0.0.0-20200707160740-784aaebc1d40/go.mod h1:vy1vK6wD6j7xX6O6hXe621WabdtNkou2h7uRtTfRMyg= - github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= -@@ -214,10 +215,15 @@ github.com/magiconair/properties v1.8.1/ - github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= - github.com/marten-seemann/qpack v0.2.1/go.mod h1:F7Gl5L1jIgN1D11ucXefiuJS9UMVP2opoCp2jDKb7wc= - github.com/marten-seemann/qtls-go1-15 v0.1.4/go.mod h1:GyFwywLKkRt+6mfU99csTEY1joMZz5vmB1WNZH3P81I= --github.com/marten-seemann/qtls-go1-16 v0.1.4 h1:xbHbOGGhrenVtII6Co8akhLEdrawwB2iHl5yhJRpnco= - github.com/marten-seemann/qtls-go1-16 v0.1.4/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= --github.com/marten-seemann/qtls-go1-17 v0.1.0 h1:P9ggrs5xtwiqXv/FHNwntmuLMNq3KaSIG93AtAZ48xk= -+github.com/marten-seemann/qtls-go1-16 v0.1.5 h1:o9JrYPPco/Nukd/HpOHMHZoBDXQqoNtUCmny98/1uqQ= -+github.com/marten-seemann/qtls-go1-16 v0.1.5/go.mod h1:gNpI2Ol+lRS3WwSOtIUUtRwZEQMXjYK+dQSBFbethAk= - github.com/marten-seemann/qtls-go1-17 v0.1.0/go.mod h1:fz4HIxByo+LlWcreM4CZOYNuz3taBQ8rN2X6FqvaWo8= -+github.com/marten-seemann/qtls-go1-17 v0.1.1 h1:DQjHPq+aOzUeh9/lixAGunn6rIOQyWChPSI4+hgW7jc= -+github.com/marten-seemann/qtls-go1-17 v0.1.1/go.mod h1:C2ekUKcDdz9SDWxec1N/MvcXBpaX9l3Nx67XaR84L5s= -+github.com/marten-seemann/qtls-go1-18 v0.1.0-beta.1/go.mod h1:PUhIQk19LoFt2174H4+an8TYvWOGjb/hHwphBeaDHwI= -+github.com/marten-seemann/qtls-go1-18 v0.1.1 h1:qp7p7XXUFL7fpBvSS1sWD+uSqPvzNQK43DH+/qEkj0Y= -+github.com/marten-seemann/qtls-go1-18 v0.1.1/go.mod h1:mJttiymBAByA49mhlNZZGrH5u1uXYZJ+RW28Py7f4m4= - github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= - github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= - github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= From 071b21be11cd9f2f2c37b05cfe5217fd89f2343b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 2 May 2022 23:22:32 +0800 Subject: [PATCH 080/972] v2ray-core: update to 5.0.5 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index f13e581ea84..42e49eefbf5 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.4 +PKG_VERSION:=5.0.5 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=113df7a969e3c113426c891c4dc07e24b030b1df2335d3ccff38dde5c4352c86 +PKG_HASH:=0ff0402d59cc8944da9b931343f729b27bba13403b5b1b73cce88b6bbec5b05d PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From f0e5acfe1e9d0798d465ceb7bac8bc152dd09cea Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 3 May 2022 13:46:49 +0800 Subject: [PATCH 081/972] v2ray-plugin: Update to 5.0.5 Signed-off-by: Tianling Shen --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 1d6adc8f9e6..069fdbf40fe 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.4 +PKG_VERSION:=5.0.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ac6f1bc754ca7b1d9255230df6dc59667034a77475d05396e8ef6b1cecf5daa6 +PKG_HASH:=214d32e35c36fed40126bb2f1ac75e28258af32f0e1d8d816fc742a4ac45ff9e PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 558c3a49ea197d0c18cb85dcb0b7b1c7e1ea23af Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 3 May 2022 14:10:33 +0800 Subject: [PATCH 082/972] CI: bump gh-action-sdk to v3 Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 0175097fa51..2764cc06f5d 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -75,7 +75,7 @@ jobs: echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV - name: Build - uses: immortalwrt/gh-action-sdk@v2 + uses: immortalwrt/gh-action-sdk@v3 env: ARCH: ${{ matrix.arch }}-${{ env.BRANCH }} FEEDNAME: packages_ci From 102227776208f63c883d037f92e2d32c31355c68 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 3 May 2022 14:34:43 +0800 Subject: [PATCH 083/972] luci-app-ssr-plus: add iptables as dependency Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 0d86e6c298b..7378f1982e6 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -24,9 +24,9 @@ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ - +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset +kmod-ipt-nat \ - +ip-full +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt \ - +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset +kmod-ipt-nat +ip-full \ + +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt +tcping \ + +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ From eba8e215a96b3c7a44aca5b91ef47ed4163954f1 Mon Sep 17 00:00:00 2001 From: breakings Date: Tue, 3 May 2022 14:16:26 +0800 Subject: [PATCH 084/972] naiveproxy: update to 101.0.4951.41-1 --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 89cb7d4035b..b3258b95ec5 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=100.0.4896.60-1 +PKG_VERSION:=101.0.4951.41-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=bcab770b15e6c5d3f50a83992d084c8f53942aa6ebd59463c21979be668a3e61 +PKG_HASH:=890720b00ed81eacb11388b5c1a1d00c98182db6b57e87ba0053a5300aacfd5c PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -66,31 +66,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-1995-g5bec1ea7-1 +CLANG_VER:=15-init-3677-g8133778d-4 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=c2ccf8e5136661eb7c25bb08ae6e78f7d667b03f0c16dabf2eb1a392b244bd5f + HASH:=26d8c347253528e6dca471fa040d0e5e0f8eb55e6ec9671a673b88c723330a21 endef -GN_VER:=859dde4a7f34a4383179522f8e1061dcffac8691 +GN_VER:=53ef169800760fdc09f0773bf380fe99eaeab339 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=00691d4576ae52f809145ef6db5e3782e3eb63a80f04a7407168ce4b5ef83990 + HASH:=beb261220f4195109297b1658212d041ffebef5a88b3194219659cf197840f77 endef -PGO_VER:=4896-1648230561-717dc24b4ffc1663d1990243de5d49fac8001b06 +PGO_VER:=4951-1650389737-545882ae3e5c9e7f75e0781c8dc0d1eafb667efd PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=66fcba3f0ca6e97713ffd72c3937230ba63116ae64e9d520c960e368df6c954e + HASH:=5b1490bb6176f0f70d19029701a2a2f8e26c9df01781db41b946659e3972892b endef define Build/Prepare From d6e242140808c256315f746cf142c621f0d8dd37 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 3 May 2022 22:58:03 +0800 Subject: [PATCH 085/972] v2ray-core: update to 5.0.6 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 42e49eefbf5..834e5e482d8 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.5 +PKG_VERSION:=5.0.6 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0ff0402d59cc8944da9b931343f729b27bba13403b5b1b73cce88b6bbec5b05d +PKG_HASH:=6381d4597f190e33e5f3cf9f7e4820337b3d378b1979901030fa6d437e335b16 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From dc59e7edafaa2a111e05c0e6c1b8d0d26fcb576a Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 4 May 2022 12:34:07 +0800 Subject: [PATCH 086/972] v2ray-plugin: update to 5.0.6 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 069fdbf40fe..76ed9d50d2d 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.5 +PKG_VERSION:=5.0.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=214d32e35c36fed40126bb2f1ac75e28258af32f0e1d8d816fc742a4ac45ff9e +PKG_HASH:=b7ee86a16e27a14d6ad8102a5e5eb940909b84111045d6844a1effd9ca4b701f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 87c1b9980fd22e1d840422818eab54f893ff6342 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 4 May 2022 18:49:10 +0800 Subject: [PATCH 087/972] CI: add x86_64 build Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 2764cc06f5d..852da9cb2a2 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -40,6 +40,9 @@ jobs: - arch: i386_pentium-mmx target: x86-geode + - arch: x86_64 + target: x86-64 + steps: - uses: actions/checkout@v2 with: From 35c48947414783499fcb61884aedd36431f0af68 Mon Sep 17 00:00:00 2001 From: lean Date: Tue, 10 May 2022 23:02:20 +0800 Subject: [PATCH 088/972] fix vless with tls host url import --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 7378f1982e6..53aec9189db 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=185 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index b9711180ccc..adc60031158 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -319,7 +319,7 @@ } switch (queryParam.type) { case "ws": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = queryParam.host; + //document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = queryParam.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = queryParam.path || "/"; break; case "kcp": From 024abffb64c29f85b088075ed7d37ad954234788 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 22 May 2022 20:51:30 +0800 Subject: [PATCH 089/972] naiveproxy: fix ninja build Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index b3258b95ec5..858eb8c423d 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -16,21 +16,12 @@ PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -PKG_BUILD_DEPENDS:=python3/host ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) PKG_BUILD_DEPENDS+= ninja/host endif PKG_USE_MIPS16:=0 PKG_BUILD_PARALLEL:=1 -ifeq ($(NINJA),) -NINJA = \ - MAKEFLAGS="$(MAKE_JOBSERVER)" \ - $(STAGING_DIR_HOSTPKG)/bin/ninja \ - $(if $(findstring c,$(OPENWRT_VERBOSE)),-v) \ - $(if $(MAKE_JOBSERVER),,-j1) -endif - ifneq ($(CONFIG_CPU_TYPE)," ") CPU_TYPE:=$(word 1, $(subst +," ,$(CONFIG_CPU_TYPE))) CPU_SUBTYPE:=$(word 2, $(subst +, ",$(CONFIG_CPU_TYPE))) @@ -114,7 +105,7 @@ define Build/Compile export naive_flags+=" $$$${naive_ccache_flags}" ; \ mkdir -p "out" ; \ ./gn/out/gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="$(PYTHON)" ; \ - $(NINJA) -C "$(PKG_BUILD_DIR)/src/out/Release" naive ; \ + ninja -C "out/Release" naive ; \ ) endef From bc4223f2cdcffd19926ae7e68e0cc1cd6d96758e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 16:46:49 +0800 Subject: [PATCH 090/972] xray-core: Update to 1.5.6 Signed-off-by: Tianling Shen --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index db370756dc1..a9c1563e715 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.5 +PKG_VERSION:=1.5.6 PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3f8d04fef82a922c83bab43cac6c86a76386cf195eb510ccf1cc175982693893 +PKG_HASH:=62f2f6574391cf600b6b18a6c9f0fd93c1da9775043bb2c7d81c8ce80b80f923 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From e5589b1059813856e33daa1b4ff21fb058abf2a4 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 16:48:42 +0800 Subject: [PATCH 091/972] v2ray-geodata: bump to latest version Signed-off-by: Tianling Shen --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 9c7a05f2f40..3f1d7a0061e 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202204210050 +GEOIP_VER:=202205260055 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=9414426b105894bbacd6e913d180e4d86c32bd08d468f08b8ea8d4f9ecd6674c + HASH:=c9eb7a4897a7bdafad5d4a71f966345674bd7f3f8ab487cb05599ed17b325106 endef -GEOSITE_VER:=20220425025949 +GEOSITE_VER:=20220528180904 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=9065ea5d6fa20acf3e1a687b1c33f8669c48bf61b4979768ce2f50fe507053ee + HASH:=d0c9f3cbf7925c33dfb8fb9578cdfa6733fc9f19c2ccfb4cba5a6415a14afe5c endef define Package/v2ray-geodata/template From 204701d931b17ae979ee740c384a427306def066 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 16:58:20 +0800 Subject: [PATCH 092/972] xray-plugin: bump to 1.5.6 Signed-off-by: Tianling Shen --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 0f5d634a964..0d3e73d7279 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.5 +PKG_VERSION:=1.5.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0edc575765fc3523d475f9d28d14d42facf00060fc8ef60bb50f42e0a6730496 +PKG_HASH:=c352ba07c84ea58aab6a0f41f628fa37f2e5aab0701d019d163e12678dc8c062 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From da0b69211e879149019c50491b8f666872fcfcf3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 23:32:46 +0800 Subject: [PATCH 093/972] naiveproxy: Update to 102.0.5005.61-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 57 +++++++++++++++++++++++++++++--------- naiveproxy/src/init_env.sh | 1 + 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 858eb8c423d..c98aaed9751 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=101.0.4951.41-1 +PKG_VERSION:=102.0.5005.61-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=890720b00ed81eacb11388b5c1a1d00c98182db6b57e87ba0053a5300aacfd5c +PKG_HASH:=725d4ab5898691c3c21c8116f6251a9d34ed36b11ac3a20fcb4bbd057c0a434d PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -35,13 +35,24 @@ endif include $(INCLUDE_DIR)/package.mk +define Package/naiveproxy/Default + URL:=https://github.com/klzgrad/naiveproxy + DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) +libatomic +endef + define Package/naiveproxy + $(call Package/naiveproxy/Default) SECTION:=net CATEGORY:=Network SUBMENU:=Web Servers/Proxies - URL:=https://github.com/klzgrad/naiveproxy TITLE:=Make a fortune quietly - DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) +libatomic +endef + +define Package/libcronet + $(call Package/naiveproxy/Default) + SECTION:=libs + CATEGORY:=Libraries + TITLE:=The Chromium network stack library endef define Package/naiveproxy/description @@ -50,6 +61,13 @@ define Package/naiveproxy/description ensures best practices in performance and security. endef +define Package/libcronet/description + Cronet is the Chromium network stack made available to Android apps as a library. + + Cronet takes advantage of multiple technologies that reduce the latency and + increase the throughput of the network requests that your app needs to work. +endef + ifneq ($(CONFIG_CCACHE),) export CCACHE_SLOPPINESS=time_macros export CCACHE_BASEDIR=$(PKG_BUILD_DIR)/src @@ -57,31 +75,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-3677-g8133778d-4 +CLANG_VER:=15-init-7570-gba4537b2-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=26d8c347253528e6dca471fa040d0e5e0f8eb55e6ec9671a673b88c723330a21 + HASH:=40090455226011c896ecae5770c55a06deb39849f8b6a3c167e7ced843154073 endef -GN_VER:=53ef169800760fdc09f0773bf380fe99eaeab339 +GN_VER:=fd9f2036f26d83f9fcfe93042fb952e5a7fe2167 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=beb261220f4195109297b1658212d041ffebef5a88b3194219659cf197840f77 + HASH:=8c75d5371934b9bde92f17ab41e83f9c2a7817c4c527b0093e68d609821200c4 endef -PGO_VER:=4951-1650389737-545882ae3e5c9e7f75e0781c8dc0d1eafb667efd +PGO_VER:=5005-1652783756-51c73d0c010d6007ebdf3ca8150e9544cb705cc6 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=5b1490bb6176f0f70d19029701a2a2f8e26c9df01781db41b946659e3972892b + HASH:=d85a1683a1eb53c6efd8cf5f5423e275d531fe41807fb875a60a4f93de50b45f endef define Build/Prepare @@ -98,24 +116,37 @@ define Build/Prepare ) endef -define Build/Compile +define Build/Configure ( \ - cd "$(PKG_BUILD_DIR)/src" ; \ + pushd "$(PKG_BUILD_DIR)/src" ; \ . ../init_env.sh "$(ARCH)" $(CPU_TYPE) $(CPU_SUBTYPE) "$(TOOLCHAIN_DIR)" ; \ export naive_flags+=" $$$${naive_ccache_flags}" ; \ mkdir -p "out" ; \ ./gn/out/gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="$(PYTHON)" ; \ - ninja -C "out/Release" naive ; \ + popd ; \ ) endef +define Build/Compile + $(if $(CONFIG_PACKAGE_naiveproxy), \ + ninja -C "$(PKG_BUILD_DIR)/src/out/Release" naive) + $(if $(CONFIG_PACKAGE_libcronet), \ + ninja -C "$(PKG_BUILD_DIR)/src/out/Release" cronet) +endef + define Package/naiveproxy/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/out/Release/naive $(1)/usr/bin/naive endef +define Package/libcronet/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/src/out/Release/libcronet.so $(1)/usr/lib/ +endef + $(eval $(call Download,CLANG)) $(eval $(call Download,GN_TOOL)) $(eval $(call Download,PGO_PROF)) $(eval $(call BuildPackage,naiveproxy)) +$(eval $(call BuildPackage,libcronet)) diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 9703f2e754a..8341f6770c1 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -56,6 +56,7 @@ use_udev=false use_aura=false use_ozone=false use_gio=false +use_gtk=false use_platform_icu_alternatives=true use_glib=false From 01d6e5656df9950530c5b4c1786a8442c6edfefc Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 23:19:31 +0800 Subject: [PATCH 094/972] naiveproxy: install header files for dev purpose Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index c98aaed9751..1b6119acbf3 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -134,6 +134,16 @@ define Build/Compile ninja -C "$(PKG_BUILD_DIR)/src/out/Release" cronet) endef +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) \ + $(PKG_BUILD_DIR)/src/components/grpc_support/include/bidirectional_stream_c.h \ + $(PKG_BUILD_DIR)/src/components/cronet/native/generated/cronet.idl_c.h \ + $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_c.h \ + $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_export.h \ + $(1)/usr/include/ +endef + define Package/naiveproxy/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/out/Release/naive $(1)/usr/bin/naive From 8bbbb7e6439ab3fb91c0bd75debd4f8a1c23c91c Mon Sep 17 00:00:00 2001 From: wc7086 <74053663+wc7086@users.noreply.github.com> Date: Sun, 29 May 2022 12:35:24 +0800 Subject: [PATCH 095/972] luci-app-ssr-plus: Fix the CDN links of gfwlist and nfip_url --- .../luasrc/model/cbi/shadowsocksr/advanced.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 82b53fb72d5..26e1db6e2f2 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -45,11 +45,11 @@ o:depends("enable_switch", "1") o.default = 3 o = s:option(Value, "gfwlist_url", translate("gfwlist Update url")) -o:value("https://cdn.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt", translate("v2fly/domain-list-community")) -o:value("https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/gfw.txt", translate("Loyalsoldier/v2ray-rules-dat")) -o:value("https://cdn.jsdelivr.net/gh/Loukky/gfwlist-by-loukky/gfwlist.txt", translate("Loukky/gfwlist-by-loukky")) -o:value("https://cdn.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt", translate("gfwlist/gfwlist")) -o.default = "https://cdn.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt" +o:value("https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt", translate("v2fly/domain-list-community")) +o:value("https://fastly.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/gfw.txt", translate("Loyalsoldier/v2ray-rules-dat")) +o:value("https://fastly.jsdelivr.net/gh/Loukky/gfwlist-by-loukky/gfwlist.txt", translate("Loukky/gfwlist-by-loukky")) +o:value("https://fastly.jsdelivr.net/gh/gfwlist/gfwlist/gfwlist.txt", translate("gfwlist/gfwlist")) +o.default = "https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt" o = s:option(Value, "chnroute_url", translate("Chnroute Update url")) o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang.CN")) @@ -60,9 +60,9 @@ o = s:option(Flag, "netflix_enable", translate("Enable Netflix Mode")) o.rmempty = false o = s:option(Value, "nfip_url", translate("nfip_url")) -o:value("https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt", translate("Netflix IP Only")) -o:value("https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/getflix.txt", translate("Netflix and AWS")) -o.default = "https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt" +o:value("https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt", translate("Netflix IP Only")) +o:value("https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/getflix.txt", translate("Netflix and AWS")) +o.default = "https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt" o.description = translate("Customize Netflix IP Url") o:depends("netflix_enable", "1") From 9290994c006c0af23306e2631189d817aa460f22 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 29 May 2022 23:39:33 +0800 Subject: [PATCH 096/972] luci-app-ssr-plus: use fastly cdn for jsdelivr Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index ab728366c70..a9e91ec21b2 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -904,9 +904,9 @@ reset() { set shadowsocksr.@global[0].switch_time='667' set shadowsocksr.@global[0].switch_timeout='5' set shadowsocksr.@global[0].switch_try_count='3' - set shadowsocksr.@global[0].gfwlist_url='https://cdn.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' + set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' - set shadowsocksr.@global[0].nfip_url='https://cdn.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' + set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' set shadowsocksr.@global[0].adblock_url='https://anti-ad.net/anti-ad-for-dnsmasq.conf' add shadowsocksr server_subscribe set shadowsocksr.@server_subscribe[0].proxy='0' From 9bd30570e301ee4652c2de9f84fe076c81d53750 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 31 May 2022 15:59:21 +0800 Subject: [PATCH 097/972] xray-core: fix build in go 1.17 Signed-off-by: Tianling Shen --- xray-core/Makefile | 2 +- ...0-Fix-build-in-legacy-golang-version.patch | 628 ++++++++++++++++++ 2 files changed, 629 insertions(+), 1 deletion(-) create mode 100644 xray-core/patches/010-Fix-build-in-legacy-golang-version.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index a9c1563e715..dafbc3a604f 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core PKG_VERSION:=1.5.6 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? diff --git a/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch b/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch new file mode 100644 index 00000000000..1aa5d48c400 --- /dev/null +++ b/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch @@ -0,0 +1,628 @@ +From f1d753f0693b3845ace8962bd9a34343f472631d Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= +Date: Tue, 31 May 2022 15:55:38 +0800 +Subject: [PATCH] Fix build in legacy golang version + +--- + infra/conf/shadowsocks.go | 2 + + infra/conf/shadowsocks_legacy.go | 152 +++++++++++++++ + proxy/shadowsocks_2022/inbound.go | 2 + + proxy/shadowsocks_2022/inbound_multi.go | 2 + + proxy/shadowsocks_2022/outbound.go | 2 + + proxy/shadowsocks_2022/shadowsocks_2022.go | 2 + + testing/scenarios/shadowsocks_2022_test.go | 209 +++++++++++++++++++++ + testing/scenarios/shadowsocks_test.go | 190 ------------------- + 8 files changed, 371 insertions(+), 190 deletions(-) + create mode 100644 infra/conf/shadowsocks_legacy.go + create mode 100644 testing/scenarios/shadowsocks_2022_test.go + +--- a/infra/conf/shadowsocks.go ++++ b/infra/conf/shadowsocks.go +@@ -1,3 +1,5 @@ ++//go:build go1.18 ++ + package conf + + import ( +--- /dev/null ++++ b/infra/conf/shadowsocks_legacy.go +@@ -0,0 +1,152 @@ ++//go:build !go1.18 ++package conf ++ ++import ( ++ "strings" ++ ++ "github.com/golang/protobuf/proto" ++ "github.com/xtls/xray-core/common/protocol" ++ "github.com/xtls/xray-core/common/serial" ++ "github.com/xtls/xray-core/proxy/shadowsocks" ++) ++ ++func cipherFromString(c string) shadowsocks.CipherType { ++ switch strings.ToLower(c) { ++ case "aes-128-gcm", "aead_aes_128_gcm": ++ return shadowsocks.CipherType_AES_128_GCM ++ case "aes-256-gcm", "aead_aes_256_gcm": ++ return shadowsocks.CipherType_AES_256_GCM ++ case "chacha20-poly1305", "aead_chacha20_poly1305", "chacha20-ietf-poly1305": ++ return shadowsocks.CipherType_CHACHA20_POLY1305 ++ case "xchacha20-poly1305", "aead_xchacha20_poly1305", "xchacha20-ietf-poly1305": ++ return shadowsocks.CipherType_XCHACHA20_POLY1305 ++ case "none", "plain": ++ return shadowsocks.CipherType_NONE ++ default: ++ return shadowsocks.CipherType_UNKNOWN ++ } ++} ++ ++type ShadowsocksUserConfig struct { ++ Cipher string `json:"method"` ++ Password string `json:"password"` ++ Level byte `json:"level"` ++ Email string `json:"email"` ++} ++ ++type ShadowsocksServerConfig struct { ++ Cipher string `json:"method"` ++ Password string `json:"password"` ++ Level byte `json:"level"` ++ Email string `json:"email"` ++ Users []*ShadowsocksUserConfig `json:"clients"` ++ NetworkList *NetworkList `json:"network"` ++ IVCheck bool `json:"ivCheck"` ++} ++ ++func (v *ShadowsocksServerConfig) Build() (proto.Message, error) { ++ config := new(shadowsocks.ServerConfig) ++ config.Network = v.NetworkList.Build() ++ ++ if v.Users != nil { ++ for _, user := range v.Users { ++ account := &shadowsocks.Account{ ++ Password: user.Password, ++ CipherType: cipherFromString(user.Cipher), ++ IvCheck: v.IVCheck, ++ } ++ if account.Password == "" { ++ return nil, newError("Shadowsocks password is not specified.") ++ } ++ if account.CipherType < shadowsocks.CipherType_AES_128_GCM || ++ account.CipherType > shadowsocks.CipherType_XCHACHA20_POLY1305 { ++ return nil, newError("unsupported cipher method: ", user.Cipher) ++ } ++ config.Users = append(config.Users, &protocol.User{ ++ Email: user.Email, ++ Level: uint32(user.Level), ++ Account: serial.ToTypedMessage(account), ++ }) ++ } ++ } else { ++ account := &shadowsocks.Account{ ++ Password: v.Password, ++ CipherType: cipherFromString(v.Cipher), ++ IvCheck: v.IVCheck, ++ } ++ if account.Password == "" { ++ return nil, newError("Shadowsocks password is not specified.") ++ } ++ if account.CipherType == shadowsocks.CipherType_UNKNOWN { ++ return nil, newError("unknown cipher method: ", v.Cipher) ++ } ++ config.Users = append(config.Users, &protocol.User{ ++ Email: v.Email, ++ Level: uint32(v.Level), ++ Account: serial.ToTypedMessage(account), ++ }) ++ } ++ ++ return config, nil ++} ++ ++type ShadowsocksServerTarget struct { ++ Address *Address `json:"address"` ++ Port uint16 `json:"port"` ++ Cipher string `json:"method"` ++ Password string `json:"password"` ++ Email string `json:"email"` ++ Level byte `json:"level"` ++ IVCheck bool `json:"ivCheck"` ++} ++ ++type ShadowsocksClientConfig struct { ++ Servers []*ShadowsocksServerTarget `json:"servers"` ++} ++ ++func (v *ShadowsocksClientConfig) Build() (proto.Message, error) { ++ if len(v.Servers) == 0 { ++ return nil, newError("0 Shadowsocks server configured.") ++ } ++ ++ config := new(shadowsocks.ClientConfig) ++ serverSpecs := make([]*protocol.ServerEndpoint, len(v.Servers)) ++ for idx, server := range v.Servers { ++ if server.Address == nil { ++ return nil, newError("Shadowsocks server address is not set.") ++ } ++ if server.Port == 0 { ++ return nil, newError("Invalid Shadowsocks port.") ++ } ++ if server.Password == "" { ++ return nil, newError("Shadowsocks password is not specified.") ++ } ++ account := &shadowsocks.Account{ ++ Password: server.Password, ++ } ++ account.CipherType = cipherFromString(server.Cipher) ++ if account.CipherType == shadowsocks.CipherType_UNKNOWN { ++ return nil, newError("unknown cipher method: ", server.Cipher) ++ } ++ ++ account.IvCheck = server.IVCheck ++ ++ ss := &protocol.ServerEndpoint{ ++ Address: server.Address.Build(), ++ Port: uint32(server.Port), ++ User: []*protocol.User{ ++ { ++ Level: uint32(server.Level), ++ Email: server.Email, ++ Account: serial.ToTypedMessage(account), ++ }, ++ }, ++ } ++ ++ serverSpecs[idx] = ss ++ } ++ ++ config.Server = serverSpecs ++ ++ return config, nil ++} +--- a/proxy/shadowsocks_2022/inbound.go ++++ b/proxy/shadowsocks_2022/inbound.go +@@ -1,3 +1,5 @@ ++//go:build go1.18 ++ + package shadowsocks_2022 + + import ( +--- a/proxy/shadowsocks_2022/inbound_multi.go ++++ b/proxy/shadowsocks_2022/inbound_multi.go +@@ -1,3 +1,5 @@ ++//go:build go1.18 ++ + package shadowsocks_2022 + + import ( +--- a/proxy/shadowsocks_2022/outbound.go ++++ b/proxy/shadowsocks_2022/outbound.go +@@ -1,3 +1,5 @@ ++//go:build go1.18 ++ + package shadowsocks_2022 + + import ( +--- a/proxy/shadowsocks_2022/shadowsocks_2022.go ++++ b/proxy/shadowsocks_2022/shadowsocks_2022.go +@@ -1,3 +1,5 @@ ++//go:build go1.18 ++ + package shadowsocks_2022 + + import ( +--- /dev/null ++++ b/testing/scenarios/shadowsocks_2022_test.go +@@ -0,0 +1,209 @@ ++package scenarios ++ ++import ( ++ "crypto/rand" ++ "encoding/base64" ++ "github.com/sagernet/sing-shadowsocks/shadowaead_2022" ++ "github.com/xtls/xray-core/proxy/shadowsocks_2022" ++ "testing" ++ "time" ++ ++ "github.com/xtls/xray-core/app/log" ++ "github.com/xtls/xray-core/app/proxyman" ++ "github.com/xtls/xray-core/common" ++ clog "github.com/xtls/xray-core/common/log" ++ "github.com/xtls/xray-core/common/net" ++ "github.com/xtls/xray-core/common/serial" ++ "github.com/xtls/xray-core/core" ++ "github.com/xtls/xray-core/proxy/dokodemo" ++ "github.com/xtls/xray-core/proxy/freedom" ++ "github.com/xtls/xray-core/testing/servers/tcp" ++ "github.com/xtls/xray-core/testing/servers/udp" ++ "golang.org/x/sync/errgroup" ++) ++ ++func TestShadowsocks2022Tcp(t *testing.T) { ++ for _, method := range shadowaead_2022.List { ++ password := make([]byte, 32) ++ rand.Read(password) ++ t.Run(method, func(t *testing.T) { ++ testShadowsocks2022Tcp(t, method, base64.StdEncoding.EncodeToString(password)) ++ }) ++ } ++} ++ ++func TestShadowsocks2022Udp(t *testing.T) { ++ for _, method := range shadowaead_2022.List { ++ password := make([]byte, 32) ++ rand.Read(password) ++ t.Run(method, func(t *testing.T) { ++ testShadowsocks2022Udp(t, method, base64.StdEncoding.EncodeToString(password)) ++ }) ++ } ++} ++ ++func testShadowsocks2022Tcp(t *testing.T, method string, password string) { ++ tcpServer := tcp.Server{ ++ MsgProcessor: xor, ++ } ++ dest, err := tcpServer.Start() ++ common.Must(err) ++ defer tcpServer.Close() ++ ++ serverPort := tcp.PickPort() ++ serverConfig := &core.Config{ ++ App: []*serial.TypedMessage{ ++ serial.ToTypedMessage(&log.Config{ ++ ErrorLogLevel: clog.Severity_Debug, ++ ErrorLogType: log.LogType_Console, ++ }), ++ }, ++ Inbound: []*core.InboundHandlerConfig{ ++ { ++ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ ++ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, ++ Listen: net.NewIPOrDomain(net.LocalHostIP), ++ }), ++ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ ++ Method: method, ++ Key: password, ++ Network: []net.Network{net.Network_TCP}, ++ }), ++ }, ++ }, ++ Outbound: []*core.OutboundHandlerConfig{ ++ { ++ ProxySettings: serial.ToTypedMessage(&freedom.Config{}), ++ }, ++ }, ++ } ++ ++ clientPort := tcp.PickPort() ++ clientConfig := &core.Config{ ++ App: []*serial.TypedMessage{ ++ serial.ToTypedMessage(&log.Config{ ++ ErrorLogLevel: clog.Severity_Debug, ++ ErrorLogType: log.LogType_Console, ++ }), ++ }, ++ Inbound: []*core.InboundHandlerConfig{ ++ { ++ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ ++ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}}, ++ Listen: net.NewIPOrDomain(net.LocalHostIP), ++ }), ++ ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ ++ Address: net.NewIPOrDomain(dest.Address), ++ Port: uint32(dest.Port), ++ Networks: []net.Network{net.Network_TCP}, ++ }), ++ }, ++ }, ++ Outbound: []*core.OutboundHandlerConfig{ ++ { ++ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ ++ Address: net.NewIPOrDomain(net.LocalHostIP), ++ Port: uint32(serverPort), ++ Method: method, ++ Key: password, ++ }), ++ }, ++ }, ++ } ++ ++ servers, err := InitializeServerConfigs(serverConfig, clientConfig) ++ common.Must(err) ++ defer CloseAllServers(servers) ++ ++ var errGroup errgroup.Group ++ for i := 0; i < 10; i++ { ++ errGroup.Go(testTCPConn(clientPort, 10240*1024, time.Second*20)) ++ } ++ ++ if err := errGroup.Wait(); err != nil { ++ t.Error(err) ++ } ++} ++ ++func testShadowsocks2022Udp(t *testing.T, method string, password string) { ++ udpServer := udp.Server{ ++ MsgProcessor: xor, ++ } ++ udpDest, err := udpServer.Start() ++ common.Must(err) ++ defer udpServer.Close() ++ ++ serverPort := udp.PickPort() ++ serverConfig := &core.Config{ ++ App: []*serial.TypedMessage{ ++ serial.ToTypedMessage(&log.Config{ ++ ErrorLogLevel: clog.Severity_Debug, ++ ErrorLogType: log.LogType_Console, ++ }), ++ }, ++ Inbound: []*core.InboundHandlerConfig{ ++ { ++ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ ++ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, ++ Listen: net.NewIPOrDomain(net.LocalHostIP), ++ }), ++ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ ++ Method: method, ++ Key: password, ++ Network: []net.Network{net.Network_UDP}, ++ }), ++ }, ++ }, ++ Outbound: []*core.OutboundHandlerConfig{ ++ { ++ ProxySettings: serial.ToTypedMessage(&freedom.Config{}), ++ }, ++ }, ++ } ++ ++ udpClientPort := udp.PickPort() ++ clientConfig := &core.Config{ ++ App: []*serial.TypedMessage{ ++ serial.ToTypedMessage(&log.Config{ ++ ErrorLogLevel: clog.Severity_Debug, ++ ErrorLogType: log.LogType_Console, ++ }), ++ }, ++ Inbound: []*core.InboundHandlerConfig{ ++ { ++ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ ++ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(udpClientPort)}}, ++ Listen: net.NewIPOrDomain(net.LocalHostIP), ++ }), ++ ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ ++ Address: net.NewIPOrDomain(udpDest.Address), ++ Port: uint32(udpDest.Port), ++ Networks: []net.Network{net.Network_UDP}, ++ }), ++ }, ++ }, ++ Outbound: []*core.OutboundHandlerConfig{ ++ { ++ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ ++ Address: net.NewIPOrDomain(net.LocalHostIP), ++ Port: uint32(serverPort), ++ Method: method, ++ Key: password, ++ }), ++ }, ++ }, ++ } ++ ++ servers, err := InitializeServerConfigs(serverConfig, clientConfig) ++ common.Must(err) ++ defer CloseAllServers(servers) ++ ++ var errGroup errgroup.Group ++ for i := 0; i < 10; i++ { ++ errGroup.Go(testUDPConn(udpClientPort, 1024, time.Second*5)) ++ } ++ ++ if err := errGroup.Wait(); err != nil { ++ t.Error(err) ++ } ++} +--- a/testing/scenarios/shadowsocks_test.go ++++ b/testing/scenarios/shadowsocks_test.go +@@ -1,10 +1,6 @@ + package scenarios + + import ( +- "crypto/rand" +- "encoding/base64" +- "github.com/sagernet/sing-shadowsocks/shadowaead_2022" +- "github.com/xtls/xray-core/proxy/shadowsocks_2022" + "testing" + "time" + +@@ -489,189 +485,3 @@ func TestShadowsocksNone(t *testing.T) { + t.Fatal(err) + } + } +- +-func TestShadowsocks2022Tcp(t *testing.T) { +- for _, method := range shadowaead_2022.List { +- password := make([]byte, 32) +- rand.Read(password) +- t.Run(method, func(t *testing.T) { +- testShadowsocks2022Tcp(t, method, base64.StdEncoding.EncodeToString(password)) +- }) +- } +-} +- +-func TestShadowsocks2022Udp(t *testing.T) { +- for _, method := range shadowaead_2022.List { +- password := make([]byte, 32) +- rand.Read(password) +- t.Run(method, func(t *testing.T) { +- testShadowsocks2022Udp(t, method, base64.StdEncoding.EncodeToString(password)) +- }) +- } +-} +- +-func testShadowsocks2022Tcp(t *testing.T, method string, password string) { +- tcpServer := tcp.Server{ +- MsgProcessor: xor, +- } +- dest, err := tcpServer.Start() +- common.Must(err) +- defer tcpServer.Close() +- +- serverPort := tcp.PickPort() +- serverConfig := &core.Config{ +- App: []*serial.TypedMessage{ +- serial.ToTypedMessage(&log.Config{ +- ErrorLogLevel: clog.Severity_Debug, +- ErrorLogType: log.LogType_Console, +- }), +- }, +- Inbound: []*core.InboundHandlerConfig{ +- { +- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ +- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, +- Listen: net.NewIPOrDomain(net.LocalHostIP), +- }), +- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ +- Method: method, +- Key: password, +- Network: []net.Network{net.Network_TCP}, +- }), +- }, +- }, +- Outbound: []*core.OutboundHandlerConfig{ +- { +- ProxySettings: serial.ToTypedMessage(&freedom.Config{}), +- }, +- }, +- } +- +- clientPort := tcp.PickPort() +- clientConfig := &core.Config{ +- App: []*serial.TypedMessage{ +- serial.ToTypedMessage(&log.Config{ +- ErrorLogLevel: clog.Severity_Debug, +- ErrorLogType: log.LogType_Console, +- }), +- }, +- Inbound: []*core.InboundHandlerConfig{ +- { +- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ +- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}}, +- Listen: net.NewIPOrDomain(net.LocalHostIP), +- }), +- ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ +- Address: net.NewIPOrDomain(dest.Address), +- Port: uint32(dest.Port), +- Networks: []net.Network{net.Network_TCP}, +- }), +- }, +- }, +- Outbound: []*core.OutboundHandlerConfig{ +- { +- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ +- Address: net.NewIPOrDomain(net.LocalHostIP), +- Port: uint32(serverPort), +- Method: method, +- Key: password, +- }), +- }, +- }, +- } +- +- servers, err := InitializeServerConfigs(serverConfig, clientConfig) +- common.Must(err) +- defer CloseAllServers(servers) +- +- var errGroup errgroup.Group +- for i := 0; i < 10; i++ { +- errGroup.Go(testTCPConn(clientPort, 10240*1024, time.Second*20)) +- } +- +- if err := errGroup.Wait(); err != nil { +- t.Error(err) +- } +-} +- +-func testShadowsocks2022Udp(t *testing.T, method string, password string) { +- udpServer := udp.Server{ +- MsgProcessor: xor, +- } +- udpDest, err := udpServer.Start() +- common.Must(err) +- defer udpServer.Close() +- +- serverPort := udp.PickPort() +- serverConfig := &core.Config{ +- App: []*serial.TypedMessage{ +- serial.ToTypedMessage(&log.Config{ +- ErrorLogLevel: clog.Severity_Debug, +- ErrorLogType: log.LogType_Console, +- }), +- }, +- Inbound: []*core.InboundHandlerConfig{ +- { +- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ +- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, +- Listen: net.NewIPOrDomain(net.LocalHostIP), +- }), +- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ +- Method: method, +- Key: password, +- Network: []net.Network{net.Network_UDP}, +- }), +- }, +- }, +- Outbound: []*core.OutboundHandlerConfig{ +- { +- ProxySettings: serial.ToTypedMessage(&freedom.Config{}), +- }, +- }, +- } +- +- udpClientPort := udp.PickPort() +- clientConfig := &core.Config{ +- App: []*serial.TypedMessage{ +- serial.ToTypedMessage(&log.Config{ +- ErrorLogLevel: clog.Severity_Debug, +- ErrorLogType: log.LogType_Console, +- }), +- }, +- Inbound: []*core.InboundHandlerConfig{ +- { +- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ +- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(udpClientPort)}}, +- Listen: net.NewIPOrDomain(net.LocalHostIP), +- }), +- ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ +- Address: net.NewIPOrDomain(udpDest.Address), +- Port: uint32(udpDest.Port), +- Networks: []net.Network{net.Network_UDP}, +- }), +- }, +- }, +- Outbound: []*core.OutboundHandlerConfig{ +- { +- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ +- Address: net.NewIPOrDomain(net.LocalHostIP), +- Port: uint32(serverPort), +- Method: method, +- Key: password, +- }), +- }, +- }, +- } +- +- servers, err := InitializeServerConfigs(serverConfig, clientConfig) +- common.Must(err) +- defer CloseAllServers(servers) +- +- var errGroup errgroup.Group +- for i := 0; i < 10; i++ { +- errGroup.Go(testUDPConn(udpClientPort, 1024, time.Second*5)) +- } +- +- if err := errGroup.Wait(); err != nil { +- t.Error(err) +- } +-} From 2ba43890b01c922df7f703a81d21b8c3abcb0c7c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 31 May 2022 03:03:15 +0800 Subject: [PATCH 098/972] dns2tcp: initial package Signed-off-by: Tianling Shen --- dns2tcp/Makefile | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 dns2tcp/Makefile diff --git a/dns2tcp/Makefile b/dns2tcp/Makefile new file mode 100644 index 00000000000..e65f95ed60c --- /dev/null +++ b/dns2tcp/Makefile @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2022 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=dns2tcp +PKG_VERSION:=1.1.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/zfl9/dns2tcp.git +PKG_SOURCE_DATE:=2020-05-05 +PKG_SOURCE_VERSION:=10ed687778f18d1b9c98bb51187a3a9086d3a0d9 +PKG_MIRROR_HASH:=bb40f027fef8534b0f905a827dbc3cc613fd06b705392148a12b80e1f9570a88 + +PKG_MAINTAINER:=Tianling Shen +PKG_LICENSE:=AGPL-3.0-only +PKG_LICENSE_FILES:=LICENSE + +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +include $(INCLUDE_DIR)/package.mk + +define Package/dns2tcp + SECTION:=net + CATEGORY:=Network + SUBMENU:=IP Addresses and Names + TITLE:=utility to convert dns query from udp to tcp + URL:=https://github.com/zfl9/dns2tcp +endef + +TARGET_CFLAGS+= $(FPIC) -flto +MAKE_FLAGS+= \ + CFLAGS="-std=c99 $(TARGET_CFLAGS)" \ + EVCFLAGS="$(TARGET_CFLAGS)" + +define Package/dns2tcp/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/dns2tcp $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,dns2tcp)) From 4c48ee636a2868e3abc0e9533cbbad0b93684a99 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 31 May 2022 03:14:03 +0800 Subject: [PATCH 099/972] luci-app-ssr-plus: add dns2tcp support Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 12 +++++++++--- .../luasrc/model/cbi/shadowsocksr/client.lua | 4 ++++ .../luasrc/model/cbi/shadowsocksr/status.lua | 2 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 4 ++++ luci-app-ssr-plus/root/usr/bin/ssr-monitor | 17 ++++++++++++++--- 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 53aec9189db..711267532d5 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,12 +2,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=185 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_CONFIG_DEPENDS:= \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ @@ -27,9 +28,10 @@ LUCI_DEPENDS:= \ +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset +kmod-ipt-nat +ip-full \ +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt +tcping \ +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP:dns2tcp \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ - +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ + +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ @@ -46,6 +48,10 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core define Package/$(PKG_NAME)/config +config PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP + bool "Include DNS2TCP" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 6eef9db0c6f..8f86ff64c46 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -86,6 +86,9 @@ o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use Pdnsd tcp query and cache")) o:value("2", translate("Use DNS2SOCKS query and cache")) +if nixio.fs.access('/usr/bin/dns2tcp') then + o:value("3", translate("Use DNS2TCP query")) +end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 @@ -105,6 +108,7 @@ o:value("114.114.114.114:53", translate("Oversea Mode DNS-1 (114.114.114.114)")) o:value("114.114.115.115:53", translate("Oversea Mode DNS-2 (114.114.115.115)")) o:depends("pdnsd_enable", "1") o:depends("pdnsd_enable", "2") +o:depends("pdnsd_enable", "3") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") o.datatype = "hostport" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 64f9be4aa00..6610fb2f6b1 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -88,7 +88,7 @@ if Process_list:find("ssr.server") then server_run = 1 end -if Process_list:find("ssrplus/bin/pdnsd") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then +if Process_list:find("ssrplus/bin/pdnsd") or Process_list:find("ssrplus/bin/dns2tcp") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then pdnsd_run = 1 end diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index b4f696062f1..d1b1e64c2ba 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -430,6 +430,9 @@ msgstr "使用PDNSD TCP查询并缓存" msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" +msgid "Use DNS2TCP query" +msgstr "使用 DNS2TCP 查询" + msgid "DNS Server IP:Port" msgstr "DNS服务器 IP:Port" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a9e91ec21b2..14ce639bffb 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -221,6 +221,10 @@ start_dns() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; + 3) + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + pdnsd_enable_flag=3 + ;; esac fi } diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index b84d85506b0..8517c18ea47 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -85,7 +85,7 @@ while [ "1" == "1" ]; do #死循环 #pdnsd if [ "$pdnsd_process" -eq 1 ]; then icount=$(busybox ps -w | grep $TMP_BIN_PATH/pdnsd | grep -v grep | wc -l) - if [ "$icount" -lt "$pdnsd_process" ]; then #如果进程挂掉就重启它 + if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 logger -t "$NAME" "pdnsd tunnel error.restart!" echolog "pdnsd tunnel error.restart!" if [ -f /var/run/pdnsd.pid ]; then @@ -95,9 +95,8 @@ while [ "1" == "1" ]; do #死循环 fi ln_start_bin $(first_type pdnsd) pdnsd -c $TMP_PATH/pdnsd.conf fi - fi #dns2socks - if [ "$pdnsd_process" -eq 2 ]; then + elif [ "$pdnsd_process" -eq 2 ]; then icount=$(busybox ps -w | grep -e ssrplus-dns -e "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | wc -l) if [ "$icount" -lt 2 ]; then #如果进程挂掉就重启它 logger -t "$NAME" "dns2socks $dnsstr tunnel error.restart!" @@ -110,5 +109,17 @@ while [ "1" == "1" ]; do #死循环 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q fi + #dns2tcp + elif [ "$pdnsd_process" -eq 3 ]; then + icount=$(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | wc -l) + if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 + logger -t "$NAME" "dns2tcp tunnel error.restart!" + echolog "dns2tcp tunnel error.restart!" + dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') + dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + fi fi done From 928830b72f01e7447f1dc8cb4c39b9aa361ee5a5 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 5 Jun 2022 20:42:04 +0800 Subject: [PATCH 100/972] xray-core: Update to 1.5.7 Removed upstreamed patch. Signed-off-by: Tianling Shen --- xray-core/Makefile | 6 +- ...0-Fix-build-in-legacy-golang-version.patch | 628 ------------------ 2 files changed, 3 insertions(+), 631 deletions(-) delete mode 100644 xray-core/patches/010-Fix-build-in-legacy-golang-version.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index dafbc3a604f..055fcd6f8be 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.6 -PKG_RELEASE:=2 +PKG_VERSION:=1.5.7 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=62f2f6574391cf600b6b18a6c9f0fd93c1da9775043bb2c7d81c8ce80b80f923 +PKG_HASH:=6e1761b63da7fb17da98aa6cf74d224882467cd9825c12eb0ab28eacf8d92d19 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch b/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch deleted file mode 100644 index 1aa5d48c400..00000000000 --- a/xray-core/patches/010-Fix-build-in-legacy-golang-version.patch +++ /dev/null @@ -1,628 +0,0 @@ -From f1d753f0693b3845ace8962bd9a34343f472631d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= -Date: Tue, 31 May 2022 15:55:38 +0800 -Subject: [PATCH] Fix build in legacy golang version - ---- - infra/conf/shadowsocks.go | 2 + - infra/conf/shadowsocks_legacy.go | 152 +++++++++++++++ - proxy/shadowsocks_2022/inbound.go | 2 + - proxy/shadowsocks_2022/inbound_multi.go | 2 + - proxy/shadowsocks_2022/outbound.go | 2 + - proxy/shadowsocks_2022/shadowsocks_2022.go | 2 + - testing/scenarios/shadowsocks_2022_test.go | 209 +++++++++++++++++++++ - testing/scenarios/shadowsocks_test.go | 190 ------------------- - 8 files changed, 371 insertions(+), 190 deletions(-) - create mode 100644 infra/conf/shadowsocks_legacy.go - create mode 100644 testing/scenarios/shadowsocks_2022_test.go - ---- a/infra/conf/shadowsocks.go -+++ b/infra/conf/shadowsocks.go -@@ -1,3 +1,5 @@ -+//go:build go1.18 -+ - package conf - - import ( ---- /dev/null -+++ b/infra/conf/shadowsocks_legacy.go -@@ -0,0 +1,152 @@ -+//go:build !go1.18 -+package conf -+ -+import ( -+ "strings" -+ -+ "github.com/golang/protobuf/proto" -+ "github.com/xtls/xray-core/common/protocol" -+ "github.com/xtls/xray-core/common/serial" -+ "github.com/xtls/xray-core/proxy/shadowsocks" -+) -+ -+func cipherFromString(c string) shadowsocks.CipherType { -+ switch strings.ToLower(c) { -+ case "aes-128-gcm", "aead_aes_128_gcm": -+ return shadowsocks.CipherType_AES_128_GCM -+ case "aes-256-gcm", "aead_aes_256_gcm": -+ return shadowsocks.CipherType_AES_256_GCM -+ case "chacha20-poly1305", "aead_chacha20_poly1305", "chacha20-ietf-poly1305": -+ return shadowsocks.CipherType_CHACHA20_POLY1305 -+ case "xchacha20-poly1305", "aead_xchacha20_poly1305", "xchacha20-ietf-poly1305": -+ return shadowsocks.CipherType_XCHACHA20_POLY1305 -+ case "none", "plain": -+ return shadowsocks.CipherType_NONE -+ default: -+ return shadowsocks.CipherType_UNKNOWN -+ } -+} -+ -+type ShadowsocksUserConfig struct { -+ Cipher string `json:"method"` -+ Password string `json:"password"` -+ Level byte `json:"level"` -+ Email string `json:"email"` -+} -+ -+type ShadowsocksServerConfig struct { -+ Cipher string `json:"method"` -+ Password string `json:"password"` -+ Level byte `json:"level"` -+ Email string `json:"email"` -+ Users []*ShadowsocksUserConfig `json:"clients"` -+ NetworkList *NetworkList `json:"network"` -+ IVCheck bool `json:"ivCheck"` -+} -+ -+func (v *ShadowsocksServerConfig) Build() (proto.Message, error) { -+ config := new(shadowsocks.ServerConfig) -+ config.Network = v.NetworkList.Build() -+ -+ if v.Users != nil { -+ for _, user := range v.Users { -+ account := &shadowsocks.Account{ -+ Password: user.Password, -+ CipherType: cipherFromString(user.Cipher), -+ IvCheck: v.IVCheck, -+ } -+ if account.Password == "" { -+ return nil, newError("Shadowsocks password is not specified.") -+ } -+ if account.CipherType < shadowsocks.CipherType_AES_128_GCM || -+ account.CipherType > shadowsocks.CipherType_XCHACHA20_POLY1305 { -+ return nil, newError("unsupported cipher method: ", user.Cipher) -+ } -+ config.Users = append(config.Users, &protocol.User{ -+ Email: user.Email, -+ Level: uint32(user.Level), -+ Account: serial.ToTypedMessage(account), -+ }) -+ } -+ } else { -+ account := &shadowsocks.Account{ -+ Password: v.Password, -+ CipherType: cipherFromString(v.Cipher), -+ IvCheck: v.IVCheck, -+ } -+ if account.Password == "" { -+ return nil, newError("Shadowsocks password is not specified.") -+ } -+ if account.CipherType == shadowsocks.CipherType_UNKNOWN { -+ return nil, newError("unknown cipher method: ", v.Cipher) -+ } -+ config.Users = append(config.Users, &protocol.User{ -+ Email: v.Email, -+ Level: uint32(v.Level), -+ Account: serial.ToTypedMessage(account), -+ }) -+ } -+ -+ return config, nil -+} -+ -+type ShadowsocksServerTarget struct { -+ Address *Address `json:"address"` -+ Port uint16 `json:"port"` -+ Cipher string `json:"method"` -+ Password string `json:"password"` -+ Email string `json:"email"` -+ Level byte `json:"level"` -+ IVCheck bool `json:"ivCheck"` -+} -+ -+type ShadowsocksClientConfig struct { -+ Servers []*ShadowsocksServerTarget `json:"servers"` -+} -+ -+func (v *ShadowsocksClientConfig) Build() (proto.Message, error) { -+ if len(v.Servers) == 0 { -+ return nil, newError("0 Shadowsocks server configured.") -+ } -+ -+ config := new(shadowsocks.ClientConfig) -+ serverSpecs := make([]*protocol.ServerEndpoint, len(v.Servers)) -+ for idx, server := range v.Servers { -+ if server.Address == nil { -+ return nil, newError("Shadowsocks server address is not set.") -+ } -+ if server.Port == 0 { -+ return nil, newError("Invalid Shadowsocks port.") -+ } -+ if server.Password == "" { -+ return nil, newError("Shadowsocks password is not specified.") -+ } -+ account := &shadowsocks.Account{ -+ Password: server.Password, -+ } -+ account.CipherType = cipherFromString(server.Cipher) -+ if account.CipherType == shadowsocks.CipherType_UNKNOWN { -+ return nil, newError("unknown cipher method: ", server.Cipher) -+ } -+ -+ account.IvCheck = server.IVCheck -+ -+ ss := &protocol.ServerEndpoint{ -+ Address: server.Address.Build(), -+ Port: uint32(server.Port), -+ User: []*protocol.User{ -+ { -+ Level: uint32(server.Level), -+ Email: server.Email, -+ Account: serial.ToTypedMessage(account), -+ }, -+ }, -+ } -+ -+ serverSpecs[idx] = ss -+ } -+ -+ config.Server = serverSpecs -+ -+ return config, nil -+} ---- a/proxy/shadowsocks_2022/inbound.go -+++ b/proxy/shadowsocks_2022/inbound.go -@@ -1,3 +1,5 @@ -+//go:build go1.18 -+ - package shadowsocks_2022 - - import ( ---- a/proxy/shadowsocks_2022/inbound_multi.go -+++ b/proxy/shadowsocks_2022/inbound_multi.go -@@ -1,3 +1,5 @@ -+//go:build go1.18 -+ - package shadowsocks_2022 - - import ( ---- a/proxy/shadowsocks_2022/outbound.go -+++ b/proxy/shadowsocks_2022/outbound.go -@@ -1,3 +1,5 @@ -+//go:build go1.18 -+ - package shadowsocks_2022 - - import ( ---- a/proxy/shadowsocks_2022/shadowsocks_2022.go -+++ b/proxy/shadowsocks_2022/shadowsocks_2022.go -@@ -1,3 +1,5 @@ -+//go:build go1.18 -+ - package shadowsocks_2022 - - import ( ---- /dev/null -+++ b/testing/scenarios/shadowsocks_2022_test.go -@@ -0,0 +1,209 @@ -+package scenarios -+ -+import ( -+ "crypto/rand" -+ "encoding/base64" -+ "github.com/sagernet/sing-shadowsocks/shadowaead_2022" -+ "github.com/xtls/xray-core/proxy/shadowsocks_2022" -+ "testing" -+ "time" -+ -+ "github.com/xtls/xray-core/app/log" -+ "github.com/xtls/xray-core/app/proxyman" -+ "github.com/xtls/xray-core/common" -+ clog "github.com/xtls/xray-core/common/log" -+ "github.com/xtls/xray-core/common/net" -+ "github.com/xtls/xray-core/common/serial" -+ "github.com/xtls/xray-core/core" -+ "github.com/xtls/xray-core/proxy/dokodemo" -+ "github.com/xtls/xray-core/proxy/freedom" -+ "github.com/xtls/xray-core/testing/servers/tcp" -+ "github.com/xtls/xray-core/testing/servers/udp" -+ "golang.org/x/sync/errgroup" -+) -+ -+func TestShadowsocks2022Tcp(t *testing.T) { -+ for _, method := range shadowaead_2022.List { -+ password := make([]byte, 32) -+ rand.Read(password) -+ t.Run(method, func(t *testing.T) { -+ testShadowsocks2022Tcp(t, method, base64.StdEncoding.EncodeToString(password)) -+ }) -+ } -+} -+ -+func TestShadowsocks2022Udp(t *testing.T) { -+ for _, method := range shadowaead_2022.List { -+ password := make([]byte, 32) -+ rand.Read(password) -+ t.Run(method, func(t *testing.T) { -+ testShadowsocks2022Udp(t, method, base64.StdEncoding.EncodeToString(password)) -+ }) -+ } -+} -+ -+func testShadowsocks2022Tcp(t *testing.T, method string, password string) { -+ tcpServer := tcp.Server{ -+ MsgProcessor: xor, -+ } -+ dest, err := tcpServer.Start() -+ common.Must(err) -+ defer tcpServer.Close() -+ -+ serverPort := tcp.PickPort() -+ serverConfig := &core.Config{ -+ App: []*serial.TypedMessage{ -+ serial.ToTypedMessage(&log.Config{ -+ ErrorLogLevel: clog.Severity_Debug, -+ ErrorLogType: log.LogType_Console, -+ }), -+ }, -+ Inbound: []*core.InboundHandlerConfig{ -+ { -+ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -+ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, -+ Listen: net.NewIPOrDomain(net.LocalHostIP), -+ }), -+ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ -+ Method: method, -+ Key: password, -+ Network: []net.Network{net.Network_TCP}, -+ }), -+ }, -+ }, -+ Outbound: []*core.OutboundHandlerConfig{ -+ { -+ ProxySettings: serial.ToTypedMessage(&freedom.Config{}), -+ }, -+ }, -+ } -+ -+ clientPort := tcp.PickPort() -+ clientConfig := &core.Config{ -+ App: []*serial.TypedMessage{ -+ serial.ToTypedMessage(&log.Config{ -+ ErrorLogLevel: clog.Severity_Debug, -+ ErrorLogType: log.LogType_Console, -+ }), -+ }, -+ Inbound: []*core.InboundHandlerConfig{ -+ { -+ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -+ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}}, -+ Listen: net.NewIPOrDomain(net.LocalHostIP), -+ }), -+ ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ -+ Address: net.NewIPOrDomain(dest.Address), -+ Port: uint32(dest.Port), -+ Networks: []net.Network{net.Network_TCP}, -+ }), -+ }, -+ }, -+ Outbound: []*core.OutboundHandlerConfig{ -+ { -+ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ -+ Address: net.NewIPOrDomain(net.LocalHostIP), -+ Port: uint32(serverPort), -+ Method: method, -+ Key: password, -+ }), -+ }, -+ }, -+ } -+ -+ servers, err := InitializeServerConfigs(serverConfig, clientConfig) -+ common.Must(err) -+ defer CloseAllServers(servers) -+ -+ var errGroup errgroup.Group -+ for i := 0; i < 10; i++ { -+ errGroup.Go(testTCPConn(clientPort, 10240*1024, time.Second*20)) -+ } -+ -+ if err := errGroup.Wait(); err != nil { -+ t.Error(err) -+ } -+} -+ -+func testShadowsocks2022Udp(t *testing.T, method string, password string) { -+ udpServer := udp.Server{ -+ MsgProcessor: xor, -+ } -+ udpDest, err := udpServer.Start() -+ common.Must(err) -+ defer udpServer.Close() -+ -+ serverPort := udp.PickPort() -+ serverConfig := &core.Config{ -+ App: []*serial.TypedMessage{ -+ serial.ToTypedMessage(&log.Config{ -+ ErrorLogLevel: clog.Severity_Debug, -+ ErrorLogType: log.LogType_Console, -+ }), -+ }, -+ Inbound: []*core.InboundHandlerConfig{ -+ { -+ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -+ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, -+ Listen: net.NewIPOrDomain(net.LocalHostIP), -+ }), -+ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ -+ Method: method, -+ Key: password, -+ Network: []net.Network{net.Network_UDP}, -+ }), -+ }, -+ }, -+ Outbound: []*core.OutboundHandlerConfig{ -+ { -+ ProxySettings: serial.ToTypedMessage(&freedom.Config{}), -+ }, -+ }, -+ } -+ -+ udpClientPort := udp.PickPort() -+ clientConfig := &core.Config{ -+ App: []*serial.TypedMessage{ -+ serial.ToTypedMessage(&log.Config{ -+ ErrorLogLevel: clog.Severity_Debug, -+ ErrorLogType: log.LogType_Console, -+ }), -+ }, -+ Inbound: []*core.InboundHandlerConfig{ -+ { -+ ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -+ PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(udpClientPort)}}, -+ Listen: net.NewIPOrDomain(net.LocalHostIP), -+ }), -+ ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ -+ Address: net.NewIPOrDomain(udpDest.Address), -+ Port: uint32(udpDest.Port), -+ Networks: []net.Network{net.Network_UDP}, -+ }), -+ }, -+ }, -+ Outbound: []*core.OutboundHandlerConfig{ -+ { -+ ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ -+ Address: net.NewIPOrDomain(net.LocalHostIP), -+ Port: uint32(serverPort), -+ Method: method, -+ Key: password, -+ }), -+ }, -+ }, -+ } -+ -+ servers, err := InitializeServerConfigs(serverConfig, clientConfig) -+ common.Must(err) -+ defer CloseAllServers(servers) -+ -+ var errGroup errgroup.Group -+ for i := 0; i < 10; i++ { -+ errGroup.Go(testUDPConn(udpClientPort, 1024, time.Second*5)) -+ } -+ -+ if err := errGroup.Wait(); err != nil { -+ t.Error(err) -+ } -+} ---- a/testing/scenarios/shadowsocks_test.go -+++ b/testing/scenarios/shadowsocks_test.go -@@ -1,10 +1,6 @@ - package scenarios - - import ( -- "crypto/rand" -- "encoding/base64" -- "github.com/sagernet/sing-shadowsocks/shadowaead_2022" -- "github.com/xtls/xray-core/proxy/shadowsocks_2022" - "testing" - "time" - -@@ -489,189 +485,3 @@ func TestShadowsocksNone(t *testing.T) { - t.Fatal(err) - } - } -- --func TestShadowsocks2022Tcp(t *testing.T) { -- for _, method := range shadowaead_2022.List { -- password := make([]byte, 32) -- rand.Read(password) -- t.Run(method, func(t *testing.T) { -- testShadowsocks2022Tcp(t, method, base64.StdEncoding.EncodeToString(password)) -- }) -- } --} -- --func TestShadowsocks2022Udp(t *testing.T) { -- for _, method := range shadowaead_2022.List { -- password := make([]byte, 32) -- rand.Read(password) -- t.Run(method, func(t *testing.T) { -- testShadowsocks2022Udp(t, method, base64.StdEncoding.EncodeToString(password)) -- }) -- } --} -- --func testShadowsocks2022Tcp(t *testing.T, method string, password string) { -- tcpServer := tcp.Server{ -- MsgProcessor: xor, -- } -- dest, err := tcpServer.Start() -- common.Must(err) -- defer tcpServer.Close() -- -- serverPort := tcp.PickPort() -- serverConfig := &core.Config{ -- App: []*serial.TypedMessage{ -- serial.ToTypedMessage(&log.Config{ -- ErrorLogLevel: clog.Severity_Debug, -- ErrorLogType: log.LogType_Console, -- }), -- }, -- Inbound: []*core.InboundHandlerConfig{ -- { -- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, -- Listen: net.NewIPOrDomain(net.LocalHostIP), -- }), -- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ -- Method: method, -- Key: password, -- Network: []net.Network{net.Network_TCP}, -- }), -- }, -- }, -- Outbound: []*core.OutboundHandlerConfig{ -- { -- ProxySettings: serial.ToTypedMessage(&freedom.Config{}), -- }, -- }, -- } -- -- clientPort := tcp.PickPort() -- clientConfig := &core.Config{ -- App: []*serial.TypedMessage{ -- serial.ToTypedMessage(&log.Config{ -- ErrorLogLevel: clog.Severity_Debug, -- ErrorLogType: log.LogType_Console, -- }), -- }, -- Inbound: []*core.InboundHandlerConfig{ -- { -- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(clientPort)}}, -- Listen: net.NewIPOrDomain(net.LocalHostIP), -- }), -- ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ -- Address: net.NewIPOrDomain(dest.Address), -- Port: uint32(dest.Port), -- Networks: []net.Network{net.Network_TCP}, -- }), -- }, -- }, -- Outbound: []*core.OutboundHandlerConfig{ -- { -- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ -- Address: net.NewIPOrDomain(net.LocalHostIP), -- Port: uint32(serverPort), -- Method: method, -- Key: password, -- }), -- }, -- }, -- } -- -- servers, err := InitializeServerConfigs(serverConfig, clientConfig) -- common.Must(err) -- defer CloseAllServers(servers) -- -- var errGroup errgroup.Group -- for i := 0; i < 10; i++ { -- errGroup.Go(testTCPConn(clientPort, 10240*1024, time.Second*20)) -- } -- -- if err := errGroup.Wait(); err != nil { -- t.Error(err) -- } --} -- --func testShadowsocks2022Udp(t *testing.T, method string, password string) { -- udpServer := udp.Server{ -- MsgProcessor: xor, -- } -- udpDest, err := udpServer.Start() -- common.Must(err) -- defer udpServer.Close() -- -- serverPort := udp.PickPort() -- serverConfig := &core.Config{ -- App: []*serial.TypedMessage{ -- serial.ToTypedMessage(&log.Config{ -- ErrorLogLevel: clog.Severity_Debug, -- ErrorLogType: log.LogType_Console, -- }), -- }, -- Inbound: []*core.InboundHandlerConfig{ -- { -- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(serverPort)}}, -- Listen: net.NewIPOrDomain(net.LocalHostIP), -- }), -- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ServerConfig{ -- Method: method, -- Key: password, -- Network: []net.Network{net.Network_UDP}, -- }), -- }, -- }, -- Outbound: []*core.OutboundHandlerConfig{ -- { -- ProxySettings: serial.ToTypedMessage(&freedom.Config{}), -- }, -- }, -- } -- -- udpClientPort := udp.PickPort() -- clientConfig := &core.Config{ -- App: []*serial.TypedMessage{ -- serial.ToTypedMessage(&log.Config{ -- ErrorLogLevel: clog.Severity_Debug, -- ErrorLogType: log.LogType_Console, -- }), -- }, -- Inbound: []*core.InboundHandlerConfig{ -- { -- ReceiverSettings: serial.ToTypedMessage(&proxyman.ReceiverConfig{ -- PortList: &net.PortList{Range: []*net.PortRange{net.SinglePortRange(udpClientPort)}}, -- Listen: net.NewIPOrDomain(net.LocalHostIP), -- }), -- ProxySettings: serial.ToTypedMessage(&dokodemo.Config{ -- Address: net.NewIPOrDomain(udpDest.Address), -- Port: uint32(udpDest.Port), -- Networks: []net.Network{net.Network_UDP}, -- }), -- }, -- }, -- Outbound: []*core.OutboundHandlerConfig{ -- { -- ProxySettings: serial.ToTypedMessage(&shadowsocks_2022.ClientConfig{ -- Address: net.NewIPOrDomain(net.LocalHostIP), -- Port: uint32(serverPort), -- Method: method, -- Key: password, -- }), -- }, -- }, -- } -- -- servers, err := InitializeServerConfigs(serverConfig, clientConfig) -- common.Must(err) -- defer CloseAllServers(servers) -- -- var errGroup errgroup.Group -- for i := 0; i < 10; i++ { -- errGroup.Go(testUDPConn(udpClientPort, 1024, time.Second*5)) -- } -- -- if err := errGroup.Wait(); err != nil { -- t.Error(err) -- } --} From 25cf75cdbf36c80fc6928fd457cd249a4717fb2a Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 6 Jun 2022 00:26:20 +0800 Subject: [PATCH 101/972] xray-plugin: update to 1.5.7 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 0d3e73d7279..1d0cf1f2e78 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.6 +PKG_VERSION:=1.5.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c352ba07c84ea58aab6a0f41f628fa37f2e5aab0701d019d163e12678dc8c062 +PKG_HASH:=55f72a44a4089eb211ab0e35f064723c028854243e8388d0fcc5d8524aa5fb6b PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From b4ede27bc2665208b7c5b2901abab55ea780d7b3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 5 Jun 2022 20:59:56 +0800 Subject: [PATCH 102/972] luci-app-ssr-plus: use dns2tcp by default Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 18 ++++----- .../luasrc/model/cbi/shadowsocksr/client.lua | 11 +++--- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 +-- .../root/etc/init.d/shadowsocksr | 4 +- luci-app-ssr-plus/root/usr/bin/ssr-monitor | 38 +++++++++---------- 5 files changed, 39 insertions(+), 38 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 711267532d5..e968724598f 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,13 +2,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=185 -PKG_RELEASE:=4 +PKG_RELEASE:=5 PKG_CONFIG_DEPENDS:= \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ @@ -25,13 +25,13 @@ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ - +coreutils +coreutils-base64 +dns2socks +dnsmasq-full +ipset +kmod-ipt-nat +ip-full \ - +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +pdnsd-alt +tcping \ + +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ + +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ - +PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP:dns2tcp \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ + +PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD:pdnsd-alt \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ @@ -48,10 +48,6 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core define Package/$(PKG_NAME)/config -config PACKAGE_$(PKG_NAME)_INCLUDE_DNS2TCP - bool "Include DNS2TCP" - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n @@ -65,6 +61,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include ipt2socks" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD + bool "Include PDNSD" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default n diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 8f86ff64c46..89212f32733 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -1,10 +1,11 @@ -- Copyright (C) 2017 yushi studio github.com/ywb94 -- Copyright (C) 2018 lean github.com/coolsnowwolf -- Licensed to the public under the GNU General Public License v3. -local m, s, sec, o, kcp_enable + +local m, s, sec, o local uci = luci.model.uci.cursor() -m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) +m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) m:section(SimpleSection).template = "shadowsocksr/status" local server_table = {} @@ -84,10 +85,10 @@ o:value("2", translate("Only Common Ports")) o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) -o:value("1", translate("Use Pdnsd tcp query and cache")) +o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) -if nixio.fs.access('/usr/bin/dns2tcp') then - o:value("3", translate("Use DNS2TCP query")) +if nixio.fs.access('/usr/sbin/pdnsd') then + o:value("3", translate("Use Pdnsd tcp query and cache")) end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index d1b1e64c2ba..e1ee40dd5a2 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -424,15 +424,15 @@ msgstr "访问国外域名DNS服务器" msgid "Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)" msgstr "格式为 IP:PORT (默认: 8.8.4.4:53)" +msgid "Use DNS2TCP query" +msgstr "使用 DNS2TCP 查询" + msgid "Use Pdnsd tcp query and cache" msgstr "使用PDNSD TCP查询并缓存" msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" -msgid "Use DNS2TCP query" -msgstr "使用 DNS2TCP 查询" - msgid "DNS Server IP:Port" msgstr "DNS服务器 IP:Port" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 14ce639bffb..ee78c406b11 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -213,7 +213,7 @@ start_dns() { esac case "$ssrplus_dns" in 1) - start_pdnsd $dnsserver $dnsport + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" pdnsd_enable_flag=1 ;; 2) @@ -222,7 +222,7 @@ start_dns() { pdnsd_enable_flag=2 ;; 3) - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + start_pdnsd $dnsserver $dnsport pdnsd_enable_flag=3 ;; esac diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index 8517c18ea47..6acf563ff8d 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -82,18 +82,17 @@ while [ "1" == "1" ]; do #死循环 exit 0 fi fi - #pdnsd + #dns2tcp if [ "$pdnsd_process" -eq 1 ]; then - icount=$(busybox ps -w | grep $TMP_BIN_PATH/pdnsd | grep -v grep | wc -l) + icount=$(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | wc -l) if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "pdnsd tunnel error.restart!" - echolog "pdnsd tunnel error.restart!" - if [ -f /var/run/pdnsd.pid ]; then - kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 - else - kill -9 $(ps | grep $TMP_PATH/pdnsd.conf | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - fi - ln_start_bin $(first_type pdnsd) pdnsd -c $TMP_PATH/pdnsd.conf + logger -t "$NAME" "dns2tcp tunnel error.restart!" + echolog "dns2tcp tunnel error.restart!" + dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') + dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" fi #dns2socks elif [ "$pdnsd_process" -eq 2 ]; then @@ -109,17 +108,18 @@ while [ "1" == "1" ]; do #死循环 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q fi - #dns2tcp + #pdnsd elif [ "$pdnsd_process" -eq 3 ]; then - icount=$(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | wc -l) + icount=$(busybox ps -w | grep $TMP_BIN_PATH/pdnsd | grep -v grep | wc -l) if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "dns2tcp tunnel error.restart!" - echolog "dns2tcp tunnel error.restart!" - dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') - kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + logger -t "$NAME" "pdnsd tunnel error.restart!" + echolog "pdnsd tunnel error.restart!" + if [ -f /var/run/pdnsd.pid ]; then + kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 + else + kill -9 $(ps | grep $TMP_PATH/pdnsd.conf | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + fi + ln_start_bin $(first_type pdnsd) pdnsd -c $TMP_PATH/pdnsd.conf fi fi done From 8782d81a1dfee77149cb857680086d06f624bcef Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 6 Jun 2022 18:56:06 +0800 Subject: [PATCH 103/972] sagernet-core: initial package Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 86 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sagernet-core/Makefile diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile new file mode 100644 index 00000000000..cb7e4bf45b7 --- /dev/null +++ b/sagernet-core/Makefile @@ -0,0 +1,86 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=sagernet-core +BASE_VERSION:=5.0.12 +PKG_RELEASE:=$(AUTORELEASE) + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git +PKG_SOURCE_DATE:=2022-06-05 +PKG_SOURCE_VERSION:=3853bd929f8d9acf6b2138127c7250ca217336bc +PKG_MIRROR_HASH:=7a9751e6dd362d4db9762ee93519cb5aac374348c5366e15038ef5f3dfc5fede +PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) + +PKG_LICENSE:=GPL-3.0-or-later +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=github.com/v2fly/v2ray-core/v5 +GO_PKG_BUILD_PKG:=$(GO_PKG)/main +GO_PKG_LDFLAGS_X:= \ + $(GO_PKG).build=OpenWrt \ + $(GO_PKG).version=$(BASE_VERSION) + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/sagernet/template + TITLE:=An enhanced v2ray edition for SagerNet + SECTION:=net + CATEGORY:=Network + URL:=https://sagernet.org +endef + +define Package/sagernet-core + $(call Package/sagernet/template) + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle + CONFLICTS:=v2ray-core xray-core +endef + +define Package/sagernet-extra + $(call Package/sagernet/template) + TITLE+= (extra resources) + DEPENDS:=sagernet-core + CONFLICTS:=v2ray-extra + PKGARCH:=all +endef + +define Package/sagernet/description + Project V is a set of network tools that help you to build your own computer network. + It secures your network connections and thus protects your privacy. +endef + +define Package/sagernet-core/description + $(call Package/sagernet/description) + + This is a v2ray-core fork for SagerNet. +endef + +define Package/sagernet-extra/description + $(call Package/sagernet/description) + + This includes extra resources for sagernet-core. +endef + +define Package/sagernet-core/install + $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) + $(INSTALL_DIR) $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/v2ray + $(LN) v2ray $(1)/usr/bin/xray +endef + +define Package/sagernet-extra/install + $(INSTALL_DIR) $(1)/usr/share/v2ray/ + $(CP) $(PKG_BUILD_DIR)/release/extra/* $(1)/usr/share/v2ray/ +endef + +$(eval $(call BuildPackage,sagernet-core)) +$(eval $(call BuildPackage,sagernet-extra)) From d7c88a9a34080baef6711a7c94d081caf51846e7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 02:10:06 +0800 Subject: [PATCH 104/972] luci-app-ssr-plus: switch to sagernet-core Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 18 +++++++++--------- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index e968724598f..86b4057efcb 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -10,6 +10,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client \ @@ -18,8 +19,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all @@ -33,6 +33,8 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD:pdnsd-alt \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ + +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ @@ -43,9 +45,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs \ +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \ - +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin:v2ray-plugin \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core + +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin:v2ray-plugin define Package/$(PKG_NAME)/config config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun @@ -69,6 +69,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core + bool "Include sagernet-core (An enhanced edition of v2ray-core)" + default y if aarch64||arm||i386||x86_64 + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client bool "Include Shadowsocks Libev Client" default y if i386||x86_64||arm @@ -109,10 +113,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin bool "Include Shadowsocks V2ray Plugin" default n - -config PACKAGE_$(PKG_NAME)_INCLUDE_Xray - bool "Include Xray" - default y if aarch64||arm||i386||x86_64 endef define Package/$(PKG_NAME)/conffiles diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index ee78c406b11..dff53b6fee4 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -365,8 +365,8 @@ start_udp() { ;; v2ray) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "xray" "v2ray") version | head -1) Started!" + ln_start_bin $(first_type v2ray xray) v2ray run -config $udp_config_file + echolog "UDP TPROXY Relay:$($(first_type "v2ray" "xray") version | head -1) Started!" ;; trojan) #client gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port @@ -415,9 +415,9 @@ start_shunt() { v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $shunt_config_file + ln_start_bin $(first_type v2ray xray) v2ray run -config $shunt_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q - echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" + echolog "shunt:$($(first_type v2ray xray) version | head -1) Started!" ;; trojan) gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port @@ -491,9 +491,9 @@ start_local() { v2ray) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $local_config_file + ln_start_bin $(first_type v2ray xray) v2ray run -config $local_config_file fi - echolog "Global_Socks5:$($(first_type "xray" "v2ray") version | head -1) Started!" + echolog "Global_Socks5:$($(first_type "v2ray" "xray") version | head -1) Started!" ;; trojan) #client gen_config_file $LOCAL_SERVER $type 4 $local_port @@ -553,8 +553,8 @@ Start_Run() { ;; v2ray) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $tcp_config_file - echolog "Main node:$($(first_type xray v2ray) version | head -1) Started!" + ln_start_bin $(first_type v2ray xray) v2ray run -config $tcp_config_file + echolog "Main node:$($(first_type v2ray xray) version | head -1) Started!" ;; trojan) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port From c8573ea181e0e3929c8e281ad3befc75cdf644cf Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 04:17:19 +0800 Subject: [PATCH 105/972] luci-app-ssr-plus: add Packet Encoding option Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 ++-- .../model/cbi/shadowsocksr/advanced.lua | 6 ++++++ .../model/cbi/shadowsocksr/client-config.lua | 20 ++++++++++++++++++- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++++++ .../root/etc/init.d/shadowsocksr | 1 + .../usr/share/shadowsocksr/gen_config.lua | 13 +++++++++--- .../root/usr/share/shadowsocksr/subscribe.lua | 4 ++++ 7 files changed, 48 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 86b4057efcb..891d5883c4f 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -26,8 +26,8 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ - +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ - +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua ++luci-lib-ipkg +microsocks \ + +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 26e1db6e2f2..6de68df8016 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -56,6 +56,12 @@ o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang.CN")) o:value("https://ispip.clang.cn/all_cn_cidr.txt", translate("Clang.CN.CIDR")) o.default = "https://ispip.clang.cn/all_cn.txt" +o = s:option(ListValue, "default_packet_encoding", translate("Default Packet Encoding")) +o:value("none", translate("none")) +o:value("packet", translate("packet (v2ray-core v5+)")) +o:value("xudp", translate("xudp (Xray-core)")) +o.default = "xudp" + o = s:option(Flag, "netflix_enable", translate("Enable Netflix Mode")) o.rmempty = false diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 4d4455837ed..ff45320a5a0 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -1,16 +1,23 @@ -- Copyright (C) 2017 yushi studio github.com/ywb94 -- Licensed to the public under the GNU General Public License v3. + require "nixio.fs" require "luci.sys" require "luci.http" +require "luci.model.ipkg" + local m, s, o, kcp_enable local sid = arg[1] local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid") -function is_finded(e) +local function is_finded(e) return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false end +local function is_installed(e) + return luci.model.ipkg.installed(e) +end + local server_table = {} local encrypt_methods = { -- ssr @@ -619,6 +626,17 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") +if is_installed("sagernet-core") then + o = s:option(ListValue, "packet_encoding", translate("Packet Encoding")) + o:value("none", translate("none")) + o:value("packet", translate("packet (v2ray-core v5+)")) + o:value("xudp", translate("xudp (Xray-core)")) + o.default = "xudp" + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless"}) + o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +end + o = s:option(Flag, "switch_enable", translate("Enable Auto Switch")) o.rmempty = false o.default = "1" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index e1ee40dd5a2..621c05b5d9d 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -730,6 +730,9 @@ msgstr "写入缓冲区大小" msgid "Congestion" msgstr "拥塞控制" +msgid "Packet Encoding" +msgstr "数据包编码" + msgid "Network interface to use" msgstr "使用的网络接口" @@ -757,5 +760,8 @@ msgstr "重新应用" msgid "Apply" msgstr "应用" +msgid "Default Packet Encoding" +msgstr "默认数据包编码" + msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index dff53b6fee4..a14160e0672 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -908,6 +908,7 @@ reset() { set shadowsocksr.@global[0].switch_time='667' set shadowsocksr.@global[0].switch_timeout='5' set shadowsocksr.@global[0].switch_try_count='3' + set shadowsocksr.@global[0].default_packet_encoding='xudp' set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e7f1a0cdd2a..d210a0e4dbc 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -1,11 +1,16 @@ -local ucursor = require"luci.model.uci".cursor() +#!/usr/bin/lua + +local ucursor = require "luci.model.uci".cursor() local json = require "luci.jsonc" + local server_section = arg[1] local proto = arg[2] local local_port = arg[3] or "0" local socks_port = arg[4] or "0" + local server = ucursor:get_all("shadowsocksr", server_section) local outbound_settings = nil + function vmess_vless() outbound_settings = { vnext = { @@ -21,7 +26,8 @@ function vmess_vless() } } } - } + }, + packetEncoding = server.packet_encoding or nil } end function trojan_shadowsocks() @@ -185,7 +191,8 @@ local Xray = { mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { -- mux enabled = true, - concurrency = tonumber(server.concurrency) + concurrency = tonumber(server.concurrency), + packetEncoding = (server.v2ray_protocol == "vmess" or server.v2ray_protocol == "vless") and server.packet_encoding or nil } or nil } or nil } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index e1a9e1fa9fa..7aa5579c078 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -9,6 +9,7 @@ require "nixio" require "luci.util" require "luci.sys" require "luci.jsonc" +require "luci.model.ipkg" -- these global functions are accessed all the time by the event handler -- so caching them is worth the effort local tinsert = table.insert @@ -25,6 +26,7 @@ local switch = ucic:get_first(name, 'server_subscribe', 'switch', '1') local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {}) local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期时间/剩余流量') local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') +local packet_encoding = luci.model.ipkg.installed("sagernet-core") and ucic:get_first(name, 'global', 'default_packet_encoding', 'xudp') or nil local v2_ss = luci.sys.exec('type -t -p ss-redir sslocal') ~= "" and "ss" or "v2ray" local v2_tj = luci.sys.exec('type -t -p trojan') ~= "" and "trojan" or "v2ray" local log = function(...) @@ -165,6 +167,7 @@ local function processData(szType, content) result.transport = info.net result.vmess_id = info.id result.alias = info.ps + result.packet_encoding = packet_encoding -- result.mux = 1 -- result.concurrency = 8 if info.net == 'ws' then @@ -370,6 +373,7 @@ local function processData(szType, content) result.vmess_id = uuid result.vless_encryption = params.encryption or "none" result.transport = params.type and (params.type == 'http' and 'h2' or params.type) or "tcp" + result.packet_encoding = packet_encoding if not params.type or params.type == "tcp" then if params.security == "xtls" then result.xtls = "1" From 5e534b7f316267149881ac94aa6551f5f1d965ca Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 02:13:15 +0800 Subject: [PATCH 106/972] luci-app-ssr-plus: improve v2ray ss support 1. Added ShadowSocks AEAD-2022 ciphers support 2. Added ShadowSocks SIP003 plugins support 3. Added ShadowSocks SUoT protocol support 4. Reused option `encrypt_method_ss` Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 57 ++++++++----------- .../model/cbi/shadowsocksr/server-config.lua | 6 +- .../luasrc/model/cbi/shadowsocksr/server.lua | 6 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++ .../root/etc/uci-defaults/luci-ssr-plus | 35 +++++++----- .../usr/share/shadowsocksr/gen_config.lua | 9 ++- .../root/usr/share/shadowsocksr/subscribe.lua | 30 +++++----- 7 files changed, 80 insertions(+), 69 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ff45320a5a0..f81a7c19372 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -6,7 +6,7 @@ require "luci.sys" require "luci.http" require "luci.model.ipkg" -local m, s, o, kcp_enable +local m, s, o local sid = arg[1] local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid") @@ -47,12 +47,19 @@ local encrypt_methods = { } local encrypt_methods_ss = { + -- plain + "none", + "plain", -- aead "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" + "xchacha20-ietf-poly1305", + -- aead 2022 + "2022-blake3-aes-128-gcm", + "2022-blake3-aes-256-gcm", + "2022-blake3-chacha20-poly1305" --[[ stream "none", "plain", @@ -74,22 +81,6 @@ local encrypt_methods_ss = { "chacha20-ietf" ]] } -local encrypt_methods_v2ray_ss = { - -- xray_ss - "none", - "plain", - -- aead - "aes-128-gcm", - "aes-256-gcm", - "chacha20-poly1305", - "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305", - "aead_aes_128_gcm", - "aead_aes_256_gcm", - "aead_chacha20_poly1305", - "aead_xchacha20_poly1305" -} - local protocol = { -- ssr "origin", @@ -105,7 +96,7 @@ local protocol = { "auth_chain_f" } -obfs = { +local obfs = { -- ssr "plain", "http_simple", @@ -124,7 +115,7 @@ local securitys = { } local flows = { - -- xlts + -- xtls "xtls-rprx-origin", "xtls-rprx-origin-udp443", "xtls-rprx-direct", @@ -255,13 +246,13 @@ for _, v in ipairs(encrypt_methods_ss) do end o.rmempty = true o:depends("type", "ss") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o = s:option(ListValue, "encrypt_method_v2ray_ss", translate("Encrypt Method")) -for _, v in ipairs(encrypt_methods_v2ray_ss) do - o:value(v) -end +o = s:option(Flag, "uot", translate("UDP over TCP")) +o.description = translate("Enable the SUoT protocol, requires server support.") o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o.default = "0" o = s:option(Flag, "ivCheck", translate("Bloom Filter")) o.rmempty = true @@ -274,7 +265,7 @@ o:value("none", translate("None")) if is_finded("obfs-local") then o:value("obfs-local", translate("obfs-local")) end -if is_finded("v2ray-plugin") then +if is_finded("v2ray-plugin") or is_installed("sagernet-core") then o:value("v2ray-plugin", translate("v2ray-plugin")) end if is_finded("xray-plugin") then @@ -282,12 +273,12 @@ if is_finded("xray-plugin") then end o.rmempty = true o:depends("type", "ss") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true -o:depends({type = "ss", plugin = "obfs-local"}) -o:depends({type = "ss", plugin = "v2ray-plugin"}) -o:depends({type = "ss", plugin = "xray-plugin"}) +o:depends("type", "ss") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do @@ -647,11 +638,11 @@ o.default = 1234 o.rmempty = false if is_finded("kcptun-client") then - kcp_enable = s:option(Flag, "kcp_enable", translate("KcpTun Enable")) - kcp_enable.rmempty = true - kcp_enable.default = "0" - kcp_enable:depends("type", "ssr") - kcp_enable:depends("type", "ss") + o = s:option(Flag, "kcp_enable", translate("KcpTun Enable")) + o.rmempty = true + o.default = "0" + o:depends("type", "ssr") + o:depends("type", "ss") o = s:option(Value, "kcp_port", translate("KcpTun Port")) o.datatype = "port" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua index fe3fc4b22e0..f9ac268ea9b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua @@ -38,7 +38,11 @@ local encrypt_methods_ss = { "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" + "xchacha20-ietf-poly1305", + -- aead 2022 + "2022-blake3-aes-128-gcm", + "2022-blake3-aes-256-gcm", + "2022-blake3-chacha20-poly1305" --[[ stream "table", "rc4", diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua index 9af220c5e05..6ef44c08068 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua @@ -34,7 +34,11 @@ local encrypt_methods_ss = { "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" + "xchacha20-ietf-poly1305", + -- aead 2022 + "2022-blake3-aes-128-gcm", + "2022-blake3-aes-256-gcm", + "2022-blake3-chacha20-poly1305" --[[ stream "table", "rc4", diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 621c05b5d9d..9750e59da70 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -61,6 +61,12 @@ msgstr "密码" msgid "Encrypt Method" msgstr "加密方式" +msgid "Enable the SUoT protocol, requires server support." +msgstr "启用 SUoT 协议,需要服务端支持。" + +msgid "Bloom Filter" +msgstr "布隆过滤器" + msgid "VLESS Encryption" msgstr "VLESS 加密" diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 3ff99ae4614..736c05bd46b 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -1,16 +1,19 @@ #!/bin/sh + uci -q batch <<-EOF >/dev/null -delete ucitrack.@shadowsocksr[-1] -add ucitrack shadowsocksr -set ucitrack.@shadowsocksr[-1].init=shadowsocksr -commit ucitrack -delete firewall.shadowsocksr -set firewall.shadowsocksr=include -set firewall.shadowsocksr.type=script -set firewall.shadowsocksr.path=/var/etc/shadowsocksr.include -set firewall.shadowsocksr.reload=1 -commit firewall + delete ucitrack.@shadowsocksr[-1] + add ucitrack shadowsocksr + set ucitrack.@shadowsocksr[-1].init=shadowsocksr + commit ucitrack + + delete firewall.shadowsocksr + set firewall.shadowsocksr=include + set firewall.shadowsocksr.type=script + set firewall.shadowsocksr.path=/var/etc/shadowsocksr.include + set firewall.shadowsocksr.reload=1 + commit firewall EOF + rm -rf /etc/config/shadowsocksr-opkg /etc/ssrplus/*opkg touch /etc/ssrplus/china_ssr.txt touch /etc/ssrplus/deny.list @@ -23,15 +26,17 @@ touch /etc/ssrplus/gfw_list.conf touch /etc/ssrplus/oversea_list.conf touch /etc/ssrplus/ad.conf touch /etc/config/shadowsocksr -if [ ! -s "/etc/config/shadowsocksr" ]; then -/etc/init.d/shadowsocksr reset -fi -sed -i "s/option type 'vmess'"/"option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr -sed -i "s/option type 'vless'"/"option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr +[ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset + +sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr +sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr +sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr + if [ -s "/etc/uwsgi/vassals/luci-webui.ini" ];then limit=$(cat /etc/uwsgi/vassals/luci-webui.ini | grep -Eo "limit-as.*"|grep -Eo "[0-9]+") [ $limit -lt 5000 ] && sed -i '/limit-as/c\limit-as = 5000' /etc/uwsgi/vassals/luci-webui.ini && \ /etc/init.d/uwsgi restart fi + rm -rf /tmp/luci-modulecache /tmp/luci-indexcache exit 0 diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d210a0e4dbc..9881d005945 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -32,14 +32,17 @@ function vmess_vless() end function trojan_shadowsocks() outbound_settings = { + plugin = (server.v2ray_protocol == "shadowsocks") and server.plugin ~= "none" and server.plugin or nil, + pluginOpts = (server.v2ray_protocol == "shadowsocks") and server.plugin_opts or nil, servers = { { address = server.server, port = tonumber(server.server_port), password = server.password, - method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_v2ray_ss or nil, - flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil, - ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil + method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss or nil, + uot = (server.v2ray_protocol == "shadowsocks") and server.uot or nil, + ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, + flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil } } } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 7aa5579c078..b3d6d85075d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -33,12 +33,19 @@ local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({...}, " ")) end local encrypt_methods_ss = { + -- plain + "none", + "plain", -- aead "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", - "xchacha20-ietf-poly1305" + "xchacha20-ietf-poly1305", + -- aead 2022 + "2022-blake3-aes-128-gcm", + "2022-blake3-aes-256-gcm", + "2022-blake3-chacha20-poly1305" --[[ stream "table", "rc4", @@ -240,6 +247,8 @@ local function processData(szType, content) local password = userinfo:sub(userinfo:find(":") + 1, #userinfo) result.alias = UrlDecode(alias) result.type = v2_ss + result.v2ray_protocol = (v2_ss == "v2ray") and "shadowsocks" or nil + result.encrypt_method_ss = method result.password = password result.server = host[1] if host[2]:find("/%?") then @@ -270,33 +279,27 @@ local function processData(szType, content) if not checkTabValue(encrypt_methods_ss)[method] then -- 1202 年了还不支持 SS AEAD 的屑机场 result.server = nil - elseif v2_ss == "v2ray" then - result.v2ray_protocol = "shadowsocks" - result.encrypt_method_v2ray_ss = method - else - result.encrypt_method_ss = method end elseif szType == "sip008" then result.type = v2_ss + result.v2ray_protocol = (v2_ss == "v2ray") and "shadowsocks" or nil result.server = content.server result.server_port = content.server_port result.password = content.password + result.encrypt_method_ss = content.method result.plugin = content.plugin result.plugin_opts = content.plugin_opts result.alias = content.remarks if not checkTabValue(encrypt_methods_ss)[content.method] then result.server = nil - elseif v2_ss == "v2ray" then - result.v2ray_protocol = "shadowsocks" - result.encrypt_method_v2ray_ss = content.method - else - result.encrypt_method_ss = content.method end elseif szType == "ssd" then result.type = v2_ss + result.v2ray_protocol = (v2_ss == "v2ray") and "shadowsocks" or nil result.server = content.server result.server_port = content.port result.password = content.password + result.encrypt_method_ss = content.method result.plugin_opts = content.plugin_options result.alias = "[" .. content.airport .. "] " .. content.remarks if content.plugin == "simple-obfs" then @@ -306,11 +309,6 @@ local function processData(szType, content) end if not checkTabValue(encrypt_methods_ss)[content.encryption] then result.server = nil - elseif v2_ss == "v2ray" then - result.v2ray_protocol = "shadowsocks" - result.encrypt_method_v2ray_ss = content.method - else - result.encrypt_method_ss = content.method end elseif szType == "trojan" then local idx_sp = 0 From 23bf4ea911a12373b43f3b8f234b4298128467da Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 8 Apr 2022 03:18:05 +0800 Subject: [PATCH 107/972] luci-app-ssr-plus: add v2ray wireguard outbound Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 47 +++++++++++++++++-- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 15 ++++-- .../usr/share/shadowsocksr/gen_config.lua | 14 ++++++ 3 files changed, 68 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f81a7c19372..8ceb48ceb44 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -182,6 +182,9 @@ o:value("vless", translate("VLESS")) o:value("vmess", translate("VMess")) o:value("trojan", translate("Trojan")) o:value("shadowsocks", translate("Shadowsocks")) +if is_installed("sagernet-core") then + o:value("wireguard", translate("WireGuard")) +end o:value("socks", translate("Socks")) o:value("http", translate("HTTP")) o:depends("type", "v2ray") @@ -330,7 +333,12 @@ o:value("h2", "HTTP/2") o:value("quic", "QUIC") o:value("grpc", "gRPC") o.rmempty = true -o:depends("type", "v2ray") +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) -- [[ TCP部分 ]]-- -- TCP伪装 @@ -450,7 +458,8 @@ o.rmempty = true o = s:option(Value, "mtu", translate("MTU")) o.datatype = "uinteger" o:depends("transport", "kcp") -o.default = 1350 +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +-- o.default = 1350 o.rmempty = true o = s:option(Value, "tti", translate("TTI")) @@ -491,12 +500,35 @@ o = s:option(Flag, "congestion", translate("Congestion")) o:depends("transport", "kcp") o.rmempty = true +-- [[ WireGuard 部分 ]]-- +o = s:option(DynamicList, "local_addresses", translate("Local addresses")) +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.rmempty = true + +o = s:option(Value, "private_key", translate("Private key")) +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.password = true +o.rmempty = true + +o = s:option(Value, "peer_pubkey", translate("Peer public key")) +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.rmempty = true + +o = s:option(Value, "preshared_key", translate("Pre-shared key")) +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.password = true +o.rmempty = true + -- [[ TLS ]]-- o = s:option(Flag, "tls", translate("TLS")) o.rmempty = true o.default = "0" -o:depends({type = "v2ray", xtls = false}) --- o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "trojan", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "socks", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "http", xtls = false}) o:depends("type", "trojan") -- XTLS @@ -550,7 +582,12 @@ o.description = translate("If true, allowss insecure connection at TLS client, e -- [[ Mux ]]-- o = s:option(Flag, "mux", translate("Mux")) o.rmempty = false -o:depends({type = "v2ray", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "trojan", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "socks", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "http", xtls = false}) o = s:option(Value, "concurrency", translate("Concurrency")) o.datatype = "uinteger" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 9750e59da70..a6e3a5f2ed2 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -712,9 +712,6 @@ msgstr "微信视频通话" msgid "DTLS 1.2" msgstr "DTLS 1.2 数据包" -msgid "WireGuard" -msgstr "WireGuard 数据包" - msgid "MTU" msgstr "最大传输单元" @@ -736,6 +733,18 @@ msgstr "写入缓冲区大小" msgid "Congestion" msgstr "拥塞控制" +msgid "Local addresses" +msgstr "本地地址" + +msgid "Private key" +msgstr "私钥" + +msgid "Peer public key" +msgstr "节点公钥" + +msgid "Pre-shared key" +msgstr "预共享密钥" + msgid "Packet Encoding" msgstr "数据包编码" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 9881d005945..172fe58a812 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -63,6 +63,17 @@ function socks_http() } } end +function wireguard() + outbound_settings = { + address = server.server, + port = tonumber(server.server_port), + localAddresses = server.local_addresses, + privateKey = server.private_key, + peerPublicKey = server.peer_pubkey, + preSharedKey = server.preshared_key or nil, + mtu = tonumber(server.mtu) or 1500 + } +end local outbound = {} function outbound:new(o) o = o or {} @@ -89,6 +100,9 @@ function outbound:handleIndex(index) end, http = function() socks_http() + end, + wireguard = function() + wireguard() end } if switch[index] then From 260e2b316f77292db6371e1e5df8763882845474 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 6 Jun 2022 20:14:11 +0800 Subject: [PATCH 108/972] luci-app-ssr-plus: bump PKG_VERSION Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 891d5883c4f..30a4c383336 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=185 -PKG_RELEASE:=5 +PKG_VERSION:=186 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ From 08d3455f64c584ee2492b50714ca42ada135ee81 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 00:48:37 +0800 Subject: [PATCH 109/972] luci-app-ssr-plus: fix typo error Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 30a4c383336..a43756771b6 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -26,7 +26,7 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ - +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua ++luci-lib-ipkg +microsocks \ + +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +luci-lib-ipkg +microsocks \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ @@ -75,7 +75,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client bool "Include Shadowsocks Libev Client" - default y if i386||x86_64||arm + default y if arm config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server bool "Include Shadowsocks Libev Server" From 511ed0f67a6a21e7406a747dc71ca9f844589c1f Mon Sep 17 00:00:00 2001 From: W_Y_CPP <383152993@qq.com> Date: Mon, 6 Jun 2022 23:14:03 +0800 Subject: [PATCH 110/972] shadowsocksr-libev: fix memory exception error Fixes: #873 --- shadowsocksr-libev/src/server/http_simple.c | 1 + 1 file changed, 1 insertion(+) diff --git a/shadowsocksr-libev/src/server/http_simple.c b/shadowsocksr-libev/src/server/http_simple.c index c1e34eee469..cee15c52e18 100644 --- a/shadowsocksr-libev/src/server/http_simple.c +++ b/shadowsocksr-libev/src/server/http_simple.c @@ -107,6 +107,7 @@ int get_data_from_http_header(char *data, char **outdata) { //p_line = strtok(p_line, delim); } + *outdata = buf; return outlength; } From ebd974bec119aa2850c18ff81dd784b89c4d9f46 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 01:08:39 +0800 Subject: [PATCH 111/972] CI: bump to v4 Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 852da9cb2a2..0040f3c1336 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -78,7 +78,7 @@ jobs: echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV - name: Build - uses: immortalwrt/gh-action-sdk@v3 + uses: immortalwrt/gh-action-sdk@v4 env: ARCH: ${{ matrix.arch }}-${{ env.BRANCH }} FEEDNAME: packages_ci From d514d9ebee0d126708d51e88d3ccfac8e248c62c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 01:11:36 +0800 Subject: [PATCH 112/972] shadowsocksr-libev: refresh patch Signed-off-by: Tianling Shen --- ...Add-TPROXY-support-for-TCP-ssr-redir.patch | 308 +++++++++--------- 1 file changed, 154 insertions(+), 154 deletions(-) diff --git a/shadowsocksr-libev/patches/103-Add-TPROXY-support-for-TCP-ssr-redir.patch b/shadowsocksr-libev/patches/103-Add-TPROXY-support-for-TCP-ssr-redir.patch index cac967cb487..317d819db25 100644 --- a/shadowsocksr-libev/patches/103-Add-TPROXY-support-for-TCP-ssr-redir.patch +++ b/shadowsocksr-libev/patches/103-Add-TPROXY-support-for-TCP-ssr-redir.patch @@ -1,154 +1,154 @@ ---- a/completions/bash/ss-redir -+++ b/completions/bash/ss-redir -@@ -2,7 +2,7 @@ - { - local cur prev opts ciphers - ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' -- opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --mtu --help --mptcp -l' -+ opts='-s -b -p -k -f -t -m -c -a -n -u -U -T -v -h -A --mtu --help --mptcp -l' - cur=${COMP_WORDS[COMP_CWORD]} - prev="${COMP_WORDS[COMP_CWORD-1]}" - case "$prev" in ---- a/src/jconf.c -+++ b/src/jconf.c -@@ -338,7 +338,11 @@ - check_json_value_type(value, json_boolean, - "invalid config file: option 'ipv6_first' must be a boolean"); - conf.ipv6_first = value->u.boolean; -- } -+ } else if (strcmp(name, "tcp_tproxy") == 0) { -+ check_json_value_type(value, json_boolean, -+ "invalid config file: option 'tcp_tproxy' must be a boolean"); -+ conf.tcp_tproxy = value->u.boolean; -+ } - } - } - } else { ---- a/src/jconf.h -+++ b/src/jconf.h -@@ -105,6 +105,7 @@ - int mtu; - int mptcp; - int ipv6_first; -+ int tcp_tproxy; - } jconf_t; - - jconf_t *read_jconf(const char *file); ---- a/src/redir.c -+++ b/src/redir.c -@@ -71,6 +71,14 @@ - #define IP6T_SO_ORIGINAL_DST 80 - #endif - -+#ifndef IP_TRANSPARENT -+#define IP_TRANSPARENT 19 -+#endif -+ -+#ifndef IPV6_TRANSPARENT -+#define IPV6_TRANSPARENT 75 -+#endif -+ - #include "includeobfs.h" // I don't want to modify makefile - #include "jconf.h" - -@@ -101,18 +109,28 @@ - static listen_ctx_t *current_profile; - static struct cork_dllist all_connections; - -+static int tcp_tproxy = 0; /* use tproxy instead of redirect (for tcp) */ -+ - int - getdestaddr(int fd, struct sockaddr_storage *destaddr) - { - socklen_t socklen = sizeof(*destaddr); - int error = 0; - -- error = getsockopt(fd, SOL_IPV6, IP6T_SO_ORIGINAL_DST, destaddr, &socklen); -- if (error) { // Didn't find a proper way to detect IP version. -- error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen); -- if (error) { -- return -1; -- } -+ if (tcp_tproxy) { -+ error = getsockname(fd, (void *)destaddr, &socklen); -+ } else { -+ error = getsockopt(fd, SOL_IPV6, IP6T_SO_ORIGINAL_DST, destaddr, &socklen); -+ if (error) { // Didn't find a proper way to detect IP version. -+ error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen); -+ if (error) { -+ return -1; -+ } -+ } -+ } -+ -+ if (error) { -+ return -1; - } - return 0; - } -@@ -164,6 +182,23 @@ - if (err == 0) { - LOGI("tcp port reuse enabled"); - } -+ -+ if (tcp_tproxy) { -+ int level = 0, optname = 0; -+ if (rp->ai_family == AF_INET) { -+ level = IPPROTO_IP; -+ optname = IP_TRANSPARENT; -+ } else { -+ level = IPPROTO_IPV6; -+ optname = IPV6_TRANSPARENT; -+ } -+ -+ if (setsockopt(listen_sock, level, optname, &opt, sizeof(opt)) != 0) { -+ ERROR("setsockopt IP_TRANSPARENT"); -+ exit(EXIT_FAILURE); -+ } -+ LOGI("tcp tproxy mode enabled"); -+ } - - s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); - if (s == 0) { -@@ -1094,7 +1129,7 @@ - - USE_TTY(); - -- while ((c = getopt_long(argc, argv, "f:s:p:l:k:t:m:c:b:a:n:huUvA6" -+ while ((c = getopt_long(argc, argv, "f:s:p:l:k:t:m:c:b:a:n:huUTvA6" - "O:o:G:g:", - long_options, &option_index)) != -1) { - switch (c) { -@@ -1169,6 +1204,9 @@ - case 'U': - mode = UDP_ONLY; - break; -+ case 'T': -+ tcp_tproxy = 1; -+ break; - case 'v': - verbose = 1; - break; -@@ -1255,6 +1293,9 @@ - if (mode == TCP_ONLY) { - mode = conf->mode; - } -+ if (tcp_tproxy == 0) { -+ tcp_tproxy = conf->tcp_tproxy; -+ } - if (mtu == 0) { - mtu = conf->mtu; - } ---- a/src/utils.c -+++ b/src/utils.c -@@ -342,6 +342,10 @@ - #endif - printf( - " [-U] Enable UDP relay and disable TCP relay.\n"); -+#ifdef MODULE_REDIR -+ printf( -+ " [-T] Use tproxy instead of redirect (for tcp).\n"); -+#endif - #ifdef MODULE_REMOTE - printf( - " [-6] Resovle hostname to IPv6 address first.\n"); +--- a/completions/bash/ss-redir ++++ b/completions/bash/ss-redir +@@ -2,7 +2,7 @@ _ss_redir() + { + local cur prev opts ciphers + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' +- opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --mtu --help --mptcp -l' ++ opts='-s -b -p -k -f -t -m -c -a -n -u -U -T -v -h -A --mtu --help --mptcp -l' + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in +--- a/src/jconf.c ++++ b/src/jconf.c +@@ -338,7 +338,11 @@ read_jconf(const char *file) + check_json_value_type(value, json_boolean, + "invalid config file: option 'ipv6_first' must be a boolean"); + conf.ipv6_first = value->u.boolean; +- } ++ } else if (strcmp(name, "tcp_tproxy") == 0) { ++ check_json_value_type(value, json_boolean, ++ "invalid config file: option 'tcp_tproxy' must be a boolean"); ++ conf.tcp_tproxy = value->u.boolean; ++ } + } + } + } else { +--- a/src/jconf.h ++++ b/src/jconf.h +@@ -105,6 +105,7 @@ typedef struct { + int mtu; + int mptcp; + int ipv6_first; ++ int tcp_tproxy; + } jconf_t; + + jconf_t *read_jconf(const char *file); +--- a/src/redir.c ++++ b/src/redir.c +@@ -71,6 +71,14 @@ + #define IP6T_SO_ORIGINAL_DST 80 + #endif + ++#ifndef IP_TRANSPARENT ++#define IP_TRANSPARENT 19 ++#endif ++ ++#ifndef IPV6_TRANSPARENT ++#define IPV6_TRANSPARENT 75 ++#endif ++ + #include "includeobfs.h" // I don't want to modify makefile + #include "jconf.h" + +@@ -101,18 +109,28 @@ static struct cork_dllist inactive_profi + static listen_ctx_t *current_profile; + static struct cork_dllist all_connections; + ++static int tcp_tproxy = 0; /* use tproxy instead of redirect (for tcp) */ ++ + int + getdestaddr(int fd, struct sockaddr_storage *destaddr) + { + socklen_t socklen = sizeof(*destaddr); + int error = 0; + +- error = getsockopt(fd, SOL_IPV6, IP6T_SO_ORIGINAL_DST, destaddr, &socklen); +- if (error) { // Didn't find a proper way to detect IP version. +- error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen); +- if (error) { +- return -1; +- } ++ if (tcp_tproxy) { ++ error = getsockname(fd, (void *)destaddr, &socklen); ++ } else { ++ error = getsockopt(fd, SOL_IPV6, IP6T_SO_ORIGINAL_DST, destaddr, &socklen); ++ if (error) { // Didn't find a proper way to detect IP version. ++ error = getsockopt(fd, SOL_IP, SO_ORIGINAL_DST, destaddr, &socklen); ++ if (error) { ++ return -1; ++ } ++ } ++ } ++ ++ if (error) { ++ return -1; + } + return 0; + } +@@ -164,6 +182,23 @@ create_and_bind(const char *addr, const + if (err == 0) { + LOGI("tcp port reuse enabled"); + } ++ ++ if (tcp_tproxy) { ++ int level = 0, optname = 0; ++ if (rp->ai_family == AF_INET) { ++ level = IPPROTO_IP; ++ optname = IP_TRANSPARENT; ++ } else { ++ level = IPPROTO_IPV6; ++ optname = IPV6_TRANSPARENT; ++ } ++ ++ if (setsockopt(listen_sock, level, optname, &opt, sizeof(opt)) != 0) { ++ ERROR("setsockopt IP_TRANSPARENT"); ++ exit(EXIT_FAILURE); ++ } ++ LOGI("tcp tproxy mode enabled"); ++ } + + s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); + if (s == 0) { +@@ -1094,7 +1129,7 @@ main(int argc, char **argv) + + USE_TTY(); + +- while ((c = getopt_long(argc, argv, "f:s:p:l:k:t:m:c:b:a:n:huUvA6" ++ while ((c = getopt_long(argc, argv, "f:s:p:l:k:t:m:c:b:a:n:huUTvA6" + "O:o:G:g:", + long_options, &option_index)) != -1) { + switch (c) { +@@ -1169,6 +1204,9 @@ main(int argc, char **argv) + case 'U': + mode = UDP_ONLY; + break; ++ case 'T': ++ tcp_tproxy = 1; ++ break; + case 'v': + verbose = 1; + break; +@@ -1255,6 +1293,9 @@ main(int argc, char **argv) + if (mode == TCP_ONLY) { + mode = conf->mode; + } ++ if (tcp_tproxy == 0) { ++ tcp_tproxy = conf->tcp_tproxy; ++ } + if (mtu == 0) { + mtu = conf->mtu; + } +--- a/src/utils.c ++++ b/src/utils.c +@@ -342,6 +342,10 @@ usage() + #endif + printf( + " [-U] Enable UDP relay and disable TCP relay.\n"); ++#ifdef MODULE_REDIR ++ printf( ++ " [-T] Use tproxy instead of redirect (for tcp).\n"); ++#endif + #ifdef MODULE_REMOTE + printf( + " [-6] Resovle hostname to IPv6 address first.\n"); From b528ec22b7553ad1aead61e6d38b5118a61e0b4c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 03:06:34 +0800 Subject: [PATCH 113/972] luci-app-ssr-plus: fix generate SUoT config Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 172fe58a812..131187b53c7 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -40,7 +40,7 @@ function trojan_shadowsocks() port = tonumber(server.server_port), password = server.password, method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss or nil, - uot = (server.v2ray_protocol == "shadowsocks") and server.uot or nil, + uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil } From b797fdbe1a7b2151187455252e252d382c3cec40 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 15:58:18 +0800 Subject: [PATCH 114/972] luci-app-ssr-plus: fix missing luci-lib-ipkg dependency Fixes: #891 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index a43756771b6..3512eeede37 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -26,8 +26,8 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ - +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +luci-lib-ipkg +microsocks \ - +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ + +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -48,6 +48,8 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin:v2ray-plugin define Package/$(PKG_NAME)/config +select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) + config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n From 50d7e21445e24db02e6431f8e1fb9b1872dad1ca Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 16:42:49 +0800 Subject: [PATCH 115/972] sagernet-core: bump to latest git HEAD Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index cb7e4bf45b7..13cb8dfea0a 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -6,13 +6,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sagernet-core BASE_VERSION:=5.0.12 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-05 -PKG_SOURCE_VERSION:=3853bd929f8d9acf6b2138127c7250ca217336bc -PKG_MIRROR_HASH:=7a9751e6dd362d4db9762ee93519cb5aac374348c5366e15038ef5f3dfc5fede +PKG_SOURCE_DATE:=2022-06-07 +PKG_SOURCE_VERSION:=5590c5fe71ed3f0dbc0609cc4fcc7e3d5be0bd1c +PKG_MIRROR_HASH:=36bccebbf4c07d8948d4ffa98e7d473902f891867e981ad22b67e609969c4b2a PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later From 0b43bb1411e1ec3f00d3f59b125aee2668ad42b0 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 17:37:13 +0800 Subject: [PATCH 116/972] luci-app-ssr-plus: remove pdnsd support Signed-off-by: Tianling Shen --- README.md | 1 - luci-app-ssr-plus/Makefile | 12 ++---- .../luasrc/controller/shadowsocksr.lua | 8 ---- .../luasrc/model/cbi/shadowsocksr/client.lua | 4 -- .../luasrc/model/cbi/shadowsocksr/status.lua | 7 +-- .../luasrc/view/shadowsocksr/cache.htm | 29 ------------- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 9 ---- .../root/etc/init.d/shadowsocksr | 43 +------------------ .../root/etc/uci-defaults/luci-ssr-plus | 1 + luci-app-ssr-plus/root/usr/bin/ssr-monitor | 13 ------ 10 files changed, 6 insertions(+), 121 deletions(-) delete mode 100644 luci-app-ssr-plus/luasrc/view/shadowsocksr/cache.htm diff --git a/README.md b/README.md index f5e52668376..9c6537d2a9e 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,6 @@ If you want to use this repo with official OpenWrt source tree, the following pa - [dns2socks](https://github.com/immortalwrt/packages/tree/master/net/dns2socks) - [microsocks](https://github.com/immortalwrt/packages/tree/master/net/microsocks) - [ipt2socks](https://github.com/immortalwrt/packages/tree/master/net/ipt2socks) -- [pdnsd-alt](https://github.com/immortalwrt/packages/tree/master/net/pdnsd-alt) - [redsocks2](https://github.com/immortalwrt/packages/tree/master/net/redsocks2) You may use `svn` to check them out, e.g.: diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 3512eeede37..0c9056e8357 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -8,7 +8,6 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ @@ -31,7 +30,6 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ - +PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD:pdnsd-alt \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ @@ -54,17 +52,13 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy - bool "Include NaiveProxy" - depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include ipt2socks" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_PDNSD - bool "Include PDNSD" +config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy + bool "Include NaiveProxy" + depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) default n config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 6b18d5b592a..384f28546db 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -26,7 +26,6 @@ function index() entry({"admin", "services", "shadowsocksr", "reset"}, call("act_reset")) entry({"admin", "services", "shadowsocksr", "restart"}, call("act_restart")) entry({"admin", "services", "shadowsocksr", "delete"}, call("act_delete")) - entry({"admin", "services", "shadowsocksr", "cache"}, call("act_cache")) end function subscribe() @@ -134,10 +133,3 @@ function act_delete() luci.sys.call("/etc/init.d/shadowsocksr restart &") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) end - -function act_cache() - local e = {} - e.ret = luci.sys.call("pdnsd-ctl -c /var/etc/ssrplus/pdnsd empty-cache >/dev/null") - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 89212f32733..153093011a3 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -87,9 +87,6 @@ o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) -if nixio.fs.access('/usr/sbin/pdnsd') then - o:value("3", translate("Use Pdnsd tcp query and cache")) -end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 @@ -109,7 +106,6 @@ o:value("114.114.114.114:53", translate("Oversea Mode DNS-1 (114.114.114.114)")) o:value("114.114.115.115:53", translate("Oversea Mode DNS-2 (114.114.115.115)")) o:depends("pdnsd_enable", "1") o:depends("pdnsd_enable", "2") -o:depends("pdnsd_enable", "3") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") o.datatype = "hostport" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 6610fb2f6b1..1400c91495d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -88,7 +88,7 @@ if Process_list:find("ssr.server") then server_run = 1 end -if Process_list:find("ssrplus/bin/pdnsd") or Process_list:find("ssrplus/bin/dns2tcp") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then +if Process_list:find("ssrplus/bin/dns2tcp") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then pdnsd_run = 1 end @@ -183,11 +183,6 @@ if uci:get_first("shadowsocksr", 'global', 'adblock', '0') == '1' then s.value = ad_count .. " " .. translate("Records") end -if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') == '1' then - s = m:field(DummyValue, "cache", translate("Reset pdnsd cache")) - s.template = "shadowsocksr/cache" -end - s = m:field(DummyValue, "check_port", translate("Check Server Port")) s.template = "shadowsocksr/checkport" s.value = translate("No Check") diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/cache.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/cache.htm deleted file mode 100644 index 8c162f183ee..00000000000 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/cache.htm +++ /dev/null @@ -1,29 +0,0 @@ -<%+cbi/valueheader%> - - -<%=self.value%> -<%+cbi/valuefooter%> diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index a6e3a5f2ed2..ddda4126a58 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -370,9 +370,6 @@ msgstr "DNS解析方式" msgid "Use SSR DNS Tunnel" msgstr "使用SSR-DNS隧道" -msgid "Use Pdnsd" -msgstr "使用Pdnsd" - msgid "DNS Anti-pollution" msgstr "DNS 防污染服务" @@ -433,9 +430,6 @@ msgstr "格式为 IP:PORT (默认: 8.8.4.4:53)" msgid "Use DNS2TCP query" msgstr "使用 DNS2TCP 查询" -msgid "Use Pdnsd tcp query and cache" -msgstr "使用PDNSD TCP查询并缓存" - msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" @@ -763,9 +757,6 @@ msgstr "重置完成" msgid "Reset Error" msgstr "重置错误" -msgid "Reset pdnsd cache" -msgstr "重置PDNSD缓存" - msgid "Finger Print" msgstr "指纹伪造" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a14160e0672..3d80807b209 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -167,44 +167,7 @@ start_dns() { local dnsstr="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" local dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') local dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') - start_pdnsd() { - local usr_dns="$1" - local usr_port="$2" - if [ ! -f "$TMP_PATH/pdnsd/pdnsd.cache" ]; then - mkdir -p $TMP_PATH/pdnsd - touch $TMP_PATH/pdnsd/pdnsd.cache - chown -R nobody:nogroup $TMP_PATH/pdnsd - fi - cat <<-EOF >$TMP_PATH/pdnsd.conf - global{ - perm_cache=1024; - cache_dir="$TMP_PATH/pdnsd"; - pid_file="/var/run/pdnsd.pid"; - run_as="nobody"; - server_ip=127.0.0.1; - server_port=$dns_port; - status_ctl=on; - query_method=tcp_only; - min_ttl=1h; - max_ttl=1w; - timeout=10; - neg_domain_pol=on; - proc_limit=2; - procq_limit=8; - par_queries=1; - } - server{ - label="ssr-usrdns"; - ip=$usr_dns; - port=$usr_port; - timeout=6; - uptest=none; - interval=10m; - purge_cache=off; - } - EOF - ln_start_bin $(first_type pdnsd) pdnsd -c $TMP_PATH/pdnsd.conf - } + if [ "$ssrplus_dns" != "0" ]; then case "$(uci_get_by_type global run_mode)" in gfw) ipset add gfwlist $dnsserver 2>/dev/null ;; @@ -221,10 +184,6 @@ start_dns() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; - 3) - start_pdnsd $dnsserver $dnsport - pdnsd_enable_flag=3 - ;; esac fi } diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 736c05bd46b..63b8b2bc04f 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -28,6 +28,7 @@ touch /etc/ssrplus/ad.conf touch /etc/config/shadowsocksr [ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset +sed -i "s/option pdnsd_enable '3'/option pdnsd_enable '1'/g" /etc/config/shadowsocksr sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index 6acf563ff8d..f5c55780dc6 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -108,18 +108,5 @@ while [ "1" == "1" ]; do #死循环 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q fi - #pdnsd - elif [ "$pdnsd_process" -eq 3 ]; then - icount=$(busybox ps -w | grep $TMP_BIN_PATH/pdnsd | grep -v grep | wc -l) - if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "pdnsd tunnel error.restart!" - echolog "pdnsd tunnel error.restart!" - if [ -f /var/run/pdnsd.pid ]; then - kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1 - else - kill -9 $(ps | grep $TMP_PATH/pdnsd.conf | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - fi - ln_start_bin $(first_type pdnsd) pdnsd -c $TMP_PATH/pdnsd.conf - fi fi done From 2ea8c08a59de8190bc44a3ea4d7b11904e2dc8dd Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 7 Jun 2022 15:46:05 +0000 Subject: [PATCH 117/972] v2raya: increase nofile limitation --- v2raya/files/v2raya.init | 1 + 1 file changed, 1 insertion(+) diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index 5c7a0ece474..a8295b6f450 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -53,6 +53,7 @@ start_service() { append_env_bool "config" "log_disable_timestamp" procd_set_param limits core="unlimited" + procd_set_param limits nofile="1000000 1000000" procd_set_param respawn procd_set_param stdout 1 procd_set_param stderr 1 From 1924d674b317e8e8408b94c451e06c70a011352f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 01:36:43 +0800 Subject: [PATCH 118/972] hysteria: initial package Signed-off-by: Tianling Shen --- hysteria/Makefile | 53 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 hysteria/Makefile diff --git a/hysteria/Makefile b/hysteria/Makefile new file mode 100644 index 00000000000..9b75a65abba --- /dev/null +++ b/hysteria/Makefile @@ -0,0 +1,53 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=hysteria +PKG_VERSION:=1.0.4 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=d2cb7a3f1b9ae3ac258928fb0d74e19e2066ad164492116c934b4585e0a4a94d + +PKG_LICENSE:=MIT +PKG_LICENSE_FILE:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +GO_PKG:=github.com/tobyxdd/hysteria +GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd +GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/hysteria + SECTION:=net + CATEGORY:=Network + TITLE:=A feature-packed network utility optimized for networks of poor quality + URL:=https://github.com/tobyxdd/hysteria + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +endef + +define Package/hysteria/description + Hysteria is a feature-packed network utility optimized for networks + of poor quality (e.g. satellite connections, congested public Wi-Fi, + connecting from China to servers abroad) powered by a custom version + of QUIC protocol. +endef + +define Package/hysteria/install + $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) + + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cmd $(1)/usr/bin/hysteria +endef + +$(eval $(call GoBinPackage,hysteria)) +$(eval $(call BuildPackage,hysteria)) From e40388048336d72295f14d3778a0b1029ad2aca3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 01:34:47 +0800 Subject: [PATCH 119/972] luci-app-ssr-plus: add hysteria support Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 8 ++- .../model/cbi/shadowsocksr/client-config.lua | 54 ++++++++++++++++++- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 22 +++++++- .../root/etc/init.d/shadowsocksr | 32 +++++++++++ .../usr/share/shadowsocksr/gen_config.lua | 32 +++++++++++ 5 files changed, 143 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 0c9056e8357..5432cd512f7 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,10 +2,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ @@ -28,6 +29,7 @@ LUCI_DEPENDS:= \ +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ @@ -52,6 +54,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria + bool "Include Hysteria" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include ipt2socks" default n diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 8ceb48ceb44..ce90e3b0d40 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -157,6 +157,9 @@ end if is_finded("naive") then o:value("naiveproxy", translate("NaiveProxy")) end +if is_finded("hysteria") then + o:value("hysteria", translate("Hysteria")) +end if is_finded("ipt2socks") then o:value("socks5", translate("Socks5")) end @@ -197,6 +200,7 @@ o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") +o:depends("type", "hysteria") o:depends("type", "socks5") o = s:option(Value, "server_port", translate("Server Port")) @@ -207,6 +211,7 @@ o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") +o:depends("type", "hysteria") o:depends("type", "socks5") o = s:option(Flag, "auth_enable", translate("Enable Authentication")) @@ -290,7 +295,7 @@ end o.rmempty = true o:depends("type", "ssr") -o = s:option(Value, "protocol_param", translate("Protocol param(optional)")) +o = s:option(Value, "protocol_param", translate("Protocol param (optional)")) o:depends("type", "ssr") o = s:option(ListValue, "obfs", translate("Obfs")) @@ -300,9 +305,44 @@ end o.rmempty = true o:depends("type", "ssr") -o = s:option(Value, "obfs_param", translate("Obfs param(optional)")) +o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") +-- [[ Hysteria ]]-- +o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) +o:depends("type", "hysteria") +o:value("udp", translate("udp")) +o:value("wechat-video", translate("wechat-video")) +o:value("faketcp", translate("faketcp")) +o.default = "udp" +o.rmempty = true + +o = s:option(ListValue, "auth_type", translate("Authentication type")) +o:depends("type", "hysteria") +o:value("0", translate("disabled")) +o:value("1", translate("base64")) +o:value("2", translate("string")) +o.rmempty = true + +o = s:option(Value, "auth_payload", translate("Authentication payload")) +o:depends({type = "hysteria", auth_type = "1"}) +o:depends({type = "hysteria", auth_type = "2"}) +o.rmempty = true + +o = s:option(Value, "recv_window", translate("QUIC connection receive window")) +o.datatype = "uinteger" +o:depends("type", "hysteria") +o.rmempty = true + +o = s:option(Value, "recv_window_conn", translate("QUIC stream receive window")) +o.datatype = "uinteger" +o:depends("type", "hysteria") +o.rmempty = true + +o = s:option(Flag, "disable_mtu_discovery", translate("Disable Path MTU discovery")) +o:depends("type", "hysteria") +o.rmempty = true + -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true @@ -471,12 +511,14 @@ o.rmempty = true o = s:option(Value, "uplink_capacity", translate("Uplink Capacity")) o.datatype = "uinteger" o:depends("transport", "kcp") +o:depends("type", "hysteria") o.default = 5 o.rmempty = true o = s:option(Value, "downlink_capacity", translate("Downlink Capacity")) o.datatype = "uinteger" o:depends("transport", "kcp") +o:depends("type", "hysteria") o.default = 20 o.rmempty = true @@ -494,6 +536,7 @@ o.rmempty = true o = s:option(Value, "seed", translate("Obfuscate password (optional)")) o:depends({v2ray_protocol = "vless", transport = "kcp"}) +o:depends("type", "hysteria") o.rmempty = true o = s:option(Flag, "congestion", translate("Congestion")) @@ -570,6 +613,11 @@ o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" o:depends("tls", true) o:depends("xtls", true) +o:depends("type", "hysteria") +o.rmempty = true + +o = s:option(Value, "quic_tls_alpn", translate("QUIC TLS ALPN")) +o:depends("type", "hysteria") o.rmempty = true -- [[ allowInsecure ]]-- @@ -577,6 +625,7 @@ o = s:option(Flag, "insecure", translate("allowInsecure")) o.rmempty = false o:depends("tls", true) o:depends("xtls", true) +o:depends("type", "hysteria") o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.") -- [[ Mux ]]-- @@ -600,6 +649,7 @@ o:depends("type", "naiveproxy") o = s:option(Flag, "certificate", translate("Self-signed Certificate")) o.rmempty = true o.default = "0" +o:depends({type = "hysteria", insecure = false}) o:depends({type = "trojan", tls = true, insecure = false}) o:depends({type = "v2ray", v2ray_protocol = "vmess", tls = true, insecure = false}) o:depends({type = "v2ray", v2ray_protocol = "vless", tls = true, insecure = false}) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index ddda4126a58..678dc78ffeb 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -79,6 +79,9 @@ msgstr "传输协议" msgid "Protocol" msgstr "传输协议" +msgid "TLS Host" +msgstr "TLS 主机名" + msgid "allowInsecure" msgstr "允许不安全连接" @@ -88,15 +91,30 @@ msgstr "最大并发连接数" msgid "If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates." msgstr "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" -msgid "Protocol param(optional)" +msgid "Protocol param (optional)" msgstr "传输协议参数(可选)" msgid "Obfs" msgstr "混淆插件" -msgid "Obfs param(optional)" +msgid "Obfs param (optional)" msgstr "混淆参数(可选)" +msgid "Authentication type" +msgstr "验证类型" + +msgid "Authentication payload" +msgstr "验证载荷" + +msgid "QUIC connection receive window" +msgstr "QUIC 连接接收窗口" + +msgid "QUIC stream receive window" +msgstr "QUIC 流接收窗口" + +msgid "Disable Path MTU discovery" +msgstr "禁用 MTU 探测" + msgid "Enable Tunnel(DNS)" msgstr "启用隧道(DNS)转发" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 3d80807b209..a08bdbae68f 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -297,6 +297,9 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 ;; esac ;; + hysteria) + lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 >$config_file + ;; socks5) /usr/share/shadowsocksr/genred2config.sh $config_file $2 $mode $4 \ "$(uci_get_by_name $1 server)" \ @@ -338,6 +341,11 @@ start_udp() { redir_udp=0 ARG_UDP="" ;; + hysteria) + gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port + ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file + echolog "UDP TPROXY Relay:$($(first_type "hysteria") --version | awk '{print $1,$3}') Started!" + ;; socks5) # if [ "$(uci_get_by_name $UDP_RELAY_SERVER auth_enable 0)" == "1" ]; then # local auth="-a $(uci_get_by_name $UDP_RELAY_SERVER username) -k $(uci_get_by_name $UDP_RELAY_SERVER password)" @@ -403,6 +411,18 @@ start_shunt() { echolog "shunt:$($(first_type "naive") --version 2>&1 | head -1) Started!" redir_udp=0 ;; + hysteria) + if [ -n "$tmp_local_port" ]; then + local tmp_port=$tmp_local_port + gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port + else + local tmp_port=$tmp_shunt_local_port + gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port + fi + ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + echolog "shunt:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + ;; # socks5) # if [ "$(uci_get_by_name $SHUNT_SERVER auth_enable 0)" == "1" ]; then # local auth="-a $(uci_get_by_name $SHUNT_SERVER username) -k $(uci_get_by_name $SHUNT_SERVER password)" @@ -464,6 +484,13 @@ start_local() { ln_start_bin $(first_type naive) naive --config $local_config_file echolog "Global_Socks5:$($(first_type $type) --version | head -1) Started!" ;; + hysteria) + if [ "$_local" == "2" ]; then + gen_config_file $LOCAL_SERVER $type 4 0 $local_port + ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file + echolog "Global_Socks5:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + fi + ;; *) [ -e /proc/sys/net/ipv6 ] && local listenip='-i ::' ln_start_bin $(first_type microsocks) microsocks $listenip -p $local_port tcp-udp-ssr-local @@ -527,6 +554,11 @@ Start_Run() { ln_start_bin $(first_type naive) naive $tcp_config_file echolog "Main node:$($(first_type naive) --version 2>&1 | head -1) , $threads Threads Started!" ;; + hysteria) + gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port + ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file + echolog "Main node:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + ;; socks5) if [ "$(uci_get_by_name $GLOBAL_SERVER auth_enable 0)" == "1" ]; then local auth="-a $(uci_get_by_name $GLOBAL_SERVER username) -k $(uci_get_by_name $GLOBAL_SERVER password)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 131187b53c7..03869a844fd 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -265,6 +265,35 @@ local ss = { fast_open = (server.fast_open == "1") and true or false, reuse_port = true } +local hysteria = { + server = server.server .. ":" .. server.server_port, + protocol = server.hysteria_protocol, + up_mbps = tonumber(server.uplink_capacity), + down_mbps = tonumber(server.downlink_capacity), + socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= "0") and { + listen = "0.0.0.0:" .. tonumber(socks_port), + timeout = 300, + disable_udp = false + } or nil, + redirect_tcp = (proto:find("tcp") and local_port ~= "0") and { + listen = "0.0.0.0:" .. tonumber(local_port), + timeout = 300 + } or nil, + tproxy_udp = (proto:find("udp") and local_port ~= "0") and { + listen = "0.0.0.0:" .. tonumber(local_port), + timeout = 60 + } or nil, + obfs = server.seed, + auth = (server.auth_type == "1") and server.auth_payload or nil, + auth_str = (server.auth_type == "2") and server.auth_payload or nil, + alpn = server.quic_tls_alpn, + server_name = server.tls_host, + insecure = (server.insecure == "1") and true or false, + ca = (server.certificate) and server.certpath or nil, + recv_window_conn = server.recv_window_conn, + recv_window = server.recv_window, + disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false +} local config = {} function config:new(o) o = o or {} @@ -298,6 +327,9 @@ function config:handleIndex(index) end, naiveproxy = function() print(json.stringify(naiveproxy, 1)) + end, + hysteria = function() + print(json.stringify(hysteria, 1)) end } if switch[index] then From dfd9a805c4f7b04bd4fd46bf60770e88072a1025 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 02:28:05 +0800 Subject: [PATCH 120/972] hysteria: backport upstream patch to support tcp redir Signed-off-by: Tianling Shen --- hysteria/Makefile | 2 +- ...010-feat-TCP-redirect-implementation.patch | 244 ++++++++++++++++++ .../020-fix-build-failure-on-linux-386.patch | 144 +++++++++++ 3 files changed, 389 insertions(+), 1 deletion(-) create mode 100644 hysteria/patches/010-feat-TCP-redirect-implementation.patch create mode 100644 hysteria/patches/020-fix-build-failure-on-linux-386.patch diff --git a/hysteria/Makefile b/hysteria/Makefile index 9b75a65abba..c3a02598dd8 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria PKG_VERSION:=1.0.4 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? diff --git a/hysteria/patches/010-feat-TCP-redirect-implementation.patch b/hysteria/patches/010-feat-TCP-redirect-implementation.patch new file mode 100644 index 00000000000..8ddb9ce25cd --- /dev/null +++ b/hysteria/patches/010-feat-TCP-redirect-implementation.patch @@ -0,0 +1,244 @@ +From 575de280fff4021c613522c477ff8567b782c9c8 Mon Sep 17 00:00:00 2001 +From: Toby +Date: Mon, 6 Jun 2022 18:09:34 -0700 +Subject: [PATCH] feat: TCP redirect implementation + +--- + cmd/client.go | 33 +++++++++++ + cmd/config.go | 10 +++- + pkg/redirect/tcp_linux.go | 119 ++++++++++++++++++++++++++++++++++++++ + pkg/redirect/tcp_stub.go | 23 ++++++++ + 4 files changed, 184 insertions(+), 1 deletion(-) + create mode 100644 pkg/redirect/tcp_linux.go + create mode 100644 pkg/redirect/tcp_stub.go + +--- a/cmd/client.go ++++ b/cmd/client.go +@@ -6,6 +6,7 @@ import ( + "errors" + "github.com/oschwald/geoip2-golang" + "github.com/tobyxdd/hysteria/pkg/pmtud_fix" ++ "github.com/tobyxdd/hysteria/pkg/redirect" + "github.com/yosuke-furukawa/json5/encoding/json5" + "io" + "io/ioutil" +@@ -434,6 +435,38 @@ func client(config *clientConfig) { + errChan <- rl.ListenAndServe() + }() + } ++ ++ if len(config.TCPRedirect.Listen) > 0 { ++ go func() { ++ rl, err := redirect.NewTCPRedirect(client, config.TCPRedirect.Listen, ++ time.Duration(config.TCPRedirect.Timeout)*time.Second, ++ func(addr, reqAddr net.Addr) { ++ logrus.WithFields(logrus.Fields{ ++ "src": addr.String(), ++ "dst": reqAddr.String(), ++ }).Debug("TCP Redirect request") ++ }, ++ func(addr, reqAddr net.Addr, err error) { ++ if err != io.EOF { ++ logrus.WithFields(logrus.Fields{ ++ "error": err, ++ "src": addr.String(), ++ "dst": reqAddr.String(), ++ }).Info("TCP Redirect error") ++ } else { ++ logrus.WithFields(logrus.Fields{ ++ "src": addr.String(), ++ "dst": reqAddr.String(), ++ }).Debug("TCP Redirect EOF") ++ } ++ }) ++ if err != nil { ++ logrus.WithField("error", err).Fatal("Failed to initialize TCP Redirect") ++ } ++ logrus.WithField("addr", config.TCPRedirect.Listen).Info("TCP Redirect up and running") ++ errChan <- rl.ListenAndServe() ++ }() ++ } + + err := <-errChan + logrus.WithField("error", err).Fatal("Client shutdown") +--- a/cmd/config.go ++++ b/cmd/config.go +@@ -175,6 +175,10 @@ type clientConfig struct { + Listen string `json:"listen"` + Timeout int `json:"timeout"` + } `json:"tproxy_udp"` ++ TCPRedirect struct { ++ Listen string `json:"listen"` ++ Timeout int `json:"timeout"` ++ } `json:"redirect_tcp"` + ACL string `json:"acl"` + MMDB string `json:"mmdb"` + Obfs string `json:"obfs"` +@@ -216,7 +220,8 @@ func (c *clientConfig) Check() error { + if len(c.SOCKS5.Listen) == 0 && len(c.HTTP.Listen) == 0 && len(c.TUN.Name) == 0 && + len(c.TCPRelay.Listen) == 0 && len(c.UDPRelay.Listen) == 0 && + len(c.TCPRelays) == 0 && len(c.UDPRelays) == 0 && +- len(c.TCPTProxy.Listen) == 0 && len(c.UDPTProxy.Listen) == 0 { ++ len(c.TCPTProxy.Listen) == 0 && len(c.UDPTProxy.Listen) == 0 && ++ len(c.TCPRedirect.Listen) == 0 { + return errors.New("please enable at least one mode") + } + if c.SOCKS5.Timeout != 0 && c.SOCKS5.Timeout <= 4 { +@@ -256,6 +261,9 @@ func (c *clientConfig) Check() error { + if c.UDPTProxy.Timeout != 0 && c.UDPTProxy.Timeout <= 4 { + return errors.New("invalid UDP TProxy timeout") + } ++ if c.TCPRedirect.Timeout != 0 && c.TCPRedirect.Timeout <= 4 { ++ return errors.New("invalid TCP Redirect timeout") ++ } + if len(c.Server) == 0 { + return errors.New("no server address") + } +--- /dev/null ++++ b/pkg/redirect/tcp_linux.go +@@ -0,0 +1,119 @@ ++package redirect ++ ++import ( ++ "encoding/binary" ++ "errors" ++ "github.com/tobyxdd/hysteria/pkg/core" ++ "github.com/tobyxdd/hysteria/pkg/utils" ++ "net" ++ "syscall" ++ "time" ++ "unsafe" ++) ++ ++const ( ++ SO_ORIGINAL_DST = 80 ++ IP6T_SO_ORIGINAL_DST = 80 ++) ++ ++type TCPRedirect struct { ++ HyClient *core.Client ++ ListenAddr *net.TCPAddr ++ Timeout time.Duration ++ ++ ConnFunc func(addr, reqAddr net.Addr) ++ ErrorFunc func(addr, reqAddr net.Addr, err error) ++} ++ ++func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, ++ connFunc func(addr, reqAddr net.Addr), ++ errorFunc func(addr, reqAddr net.Addr, err error)) (*TCPRedirect, error) { ++ tAddr, err := net.ResolveTCPAddr("tcp", listen) ++ if err != nil { ++ return nil, err ++ } ++ r := &TCPRedirect{ ++ HyClient: hyClient, ++ ListenAddr: tAddr, ++ Timeout: timeout, ++ ConnFunc: connFunc, ++ ErrorFunc: errorFunc, ++ } ++ return r, nil ++} ++ ++func (r *TCPRedirect) ListenAndServe() error { ++ listener, err := net.ListenTCP("tcp", r.ListenAddr) ++ if err != nil { ++ return err ++ } ++ defer listener.Close() ++ for { ++ c, err := listener.Accept() ++ if err != nil { ++ return err ++ } ++ go func() { ++ defer c.Close() ++ dest, err := getDestAddr(c.(*net.TCPConn)) ++ if err != nil || dest.IP.IsLoopback() { ++ // Silently drop the connection if we failed to get the destination address, ++ // or if it's a loopback address (not a redirected connection). ++ return ++ } ++ r.ConnFunc(c.RemoteAddr(), dest) ++ rc, err := r.HyClient.DialTCP(dest.String()) ++ if err != nil { ++ r.ErrorFunc(c.RemoteAddr(), dest, err) ++ return ++ } ++ defer rc.Close() ++ err = utils.PipePairWithTimeout(c, rc, r.Timeout) ++ r.ErrorFunc(c.RemoteAddr(), dest, err) ++ }() ++ } ++} ++ ++type sockAddr struct { ++ family uint16 ++ port [2]byte // big endian regardless of host byte order ++ data [24]byte // check sockaddr_in or sockaddr_in6 for more information ++} ++ ++func getDestAddr(conn *net.TCPConn) (*net.TCPAddr, error) { ++ rc, err := conn.SyscallConn() ++ if err != nil { ++ return nil, err ++ } ++ var addr sockAddr ++ addrSize := uint32(unsafe.Sizeof(addr)) ++ var err2 error ++ err = rc.Control(func(fd uintptr) { ++ // try IPv6 first ++ _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) ++ if err != 0 { ++ // try IPv4 ++ _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) ++ if err != 0 { ++ // failed ++ err2 = err ++ } ++ } ++ }) ++ if err != nil { ++ return nil, err ++ } ++ if err2 != nil { ++ return nil, err2 ++ } ++ switch addr.family { ++ case syscall.AF_INET: ++ return &net.TCPAddr{IP: addr.data[:4], Port: int(binary.BigEndian.Uint16(addr.port[:]))}, nil ++ case syscall.AF_INET6: ++ return &net.TCPAddr{IP: addr.data[4:20], Port: int(binary.BigEndian.Uint16(addr.port[:]))}, nil ++ default: ++ return nil, errors.New("unknown address family") ++ } ++} +--- /dev/null ++++ b/pkg/redirect/tcp_stub.go +@@ -0,0 +1,23 @@ ++//go:build !linux ++// +build !linux ++ ++package redirect ++ ++import ( ++ "errors" ++ "github.com/tobyxdd/hysteria/pkg/core" ++ "net" ++ "time" ++) ++ ++type TCPRedirect struct{} ++ ++func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, ++ connFunc func(addr, reqAddr net.Addr), ++ errorFunc func(addr, reqAddr net.Addr, err error)) (*TCPRedirect, error) { ++ return nil, errors.New("not supported on the current system") ++} ++ ++func (r *TCPRedirect) ListenAndServe() error { ++ return nil ++} diff --git a/hysteria/patches/020-fix-build-failure-on-linux-386.patch b/hysteria/patches/020-fix-build-failure-on-linux-386.patch new file mode 100644 index 00000000000..5b5caa3b1ab --- /dev/null +++ b/hysteria/patches/020-fix-build-failure-on-linux-386.patch @@ -0,0 +1,144 @@ +From 8a64099a9633f5537c41d4e12ea44870fe5d2e38 Mon Sep 17 00:00:00 2001 +From: Toby +Date: Tue, 7 Jun 2022 12:44:38 -0700 +Subject: [PATCH] fix: build failure on linux 386 + +--- + pkg/redirect/origdst_linux.go | 38 +++++++++++++++++++++++++++++++ + pkg/redirect/origdst_linux_386.go | 36 +++++++++++++++++++++++++++++ + pkg/redirect/tcp_linux.go | 28 ++--------------------- + 3 files changed, 76 insertions(+), 26 deletions(-) + create mode 100644 pkg/redirect/origdst_linux.go + create mode 100644 pkg/redirect/origdst_linux_386.go + +--- /dev/null ++++ b/pkg/redirect/origdst_linux.go +@@ -0,0 +1,38 @@ ++//go:build !386 ++// +build !386 ++ ++package redirect ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++const ( ++ SO_ORIGINAL_DST = 80 ++ IP6T_SO_ORIGINAL_DST = 80 ++) ++ ++type sockAddr struct { ++ family uint16 ++ port [2]byte // big endian regardless of host byte order ++ data [24]byte // check sockaddr_in or sockaddr_in6 for more information ++} ++ ++func getOrigDst(fd uintptr) (*sockAddr, error) { ++ var addr sockAddr ++ addrSize := uint32(unsafe.Sizeof(addr)) ++ // try IPv6 first ++ _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) ++ if err != 0 { ++ // try IPv4 ++ _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) ++ if err != 0 { ++ // failed ++ return nil, err ++ } ++ } ++ return &addr, nil ++} +--- /dev/null ++++ b/pkg/redirect/origdst_linux_386.go +@@ -0,0 +1,36 @@ ++package redirect ++ ++import ( ++ "syscall" ++ "unsafe" ++) ++ ++const ( ++ SYS_GETSOCKOPT = 15 ++ SO_ORIGINAL_DST = 80 ++ IP6T_SO_ORIGINAL_DST = 80 ++) ++ ++type sockAddr struct { ++ family uint16 ++ port [2]byte // big endian regardless of host byte order ++ data [24]byte // check sockaddr_in or sockaddr_in6 for more information ++} ++ ++func getOrigDst(fd uintptr) (*sockAddr, error) { ++ var addr sockAddr ++ addrSize := uint32(unsafe.Sizeof(addr)) ++ // try IPv6 first ++ _, _, err := syscall.Syscall6(syscall.SYS_SOCKETCALL, SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize))) ++ if err != 0 { ++ // try IPv4 ++ _, _, err = syscall.Syscall6(syscall.SYS_SOCKETCALL, SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, ++ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize))) ++ if err != 0 { ++ // failed ++ return nil, err ++ } ++ } ++ return &addr, nil ++} +--- a/pkg/redirect/tcp_linux.go ++++ b/pkg/redirect/tcp_linux.go +@@ -8,12 +8,6 @@ import ( + "net" + "syscall" + "time" +- "unsafe" +-) +- +-const ( +- SO_ORIGINAL_DST = 80 +- IP6T_SO_ORIGINAL_DST = 80 + ) + + type TCPRedirect struct { +@@ -74,33 +68,15 @@ func (r *TCPRedirect) ListenAndServe() e + } + } + +-type sockAddr struct { +- family uint16 +- port [2]byte // big endian regardless of host byte order +- data [24]byte // check sockaddr_in or sockaddr_in6 for more information +-} +- + func getDestAddr(conn *net.TCPConn) (*net.TCPAddr, error) { + rc, err := conn.SyscallConn() + if err != nil { + return nil, err + } +- var addr sockAddr +- addrSize := uint32(unsafe.Sizeof(addr)) ++ var addr *sockAddr + var err2 error + err = rc.Control(func(fd uintptr) { +- // try IPv6 first +- _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, +- uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) +- if err != 0 { +- // try IPv4 +- _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, +- uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) +- if err != 0 { +- // failed +- err2 = err +- } +- } ++ addr, err2 = getOrigDst(fd) + }) + if err != nil { + return nil, err From a2353594706808eec553fb6b31f70da7ed4031fe Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 17:59:02 +0800 Subject: [PATCH 121/972] luci-app-ssr-plus: add v2ray ws earlydata support Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 13 ++++- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 48 +++++++++++++++++++ .../usr/share/shadowsocksr/gen_config.lua | 4 +- 3 files changed, 63 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ce90e3b0d40..65f82e06ca7 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -410,6 +410,17 @@ o = s:option(Value, "ws_path", translate("WebSocket Path")) o:depends("transport", "ws") o.rmempty = true +-- WS前置数据 +o = s:option(Value, "ws_ed", translate("Max Early Data")) +o:depends("transport", "ws") +o.datatype = "uinteger" +o.rmempty = true + +-- WS前置数据标头 +o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) +o:depends("transport", "ws") +o.rmempty = true + -- [[ H2部分 ]]-- -- H2域名 @@ -423,7 +434,7 @@ o:depends("transport", "h2") o.rmempty = true -- gRPC -o = s:option(Value, "serviceName", translate("serviceName")) +o = s:option(Value, "serviceName", translate("gRPC Service Name")) o:depends("transport", "grpc") o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 678dc78ffeb..4e979db8783 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -712,6 +712,54 @@ msgstr "V2Ray/XRay 协议" msgid "Camouflage Type" msgstr "伪装类型" +msgid "HTTP Host" +msgstr "HTTP 主机名" + +msgid "HTTP Path" +msgstr "HTTP 路径" + +msgid "WebSocket Host" +msgstr "WebSocket 主机名" + +msgid "WebSocket Path" +msgstr "WebSocket 路径" + +msgid "Max Early Data" +msgstr "最大前置数据" + +msgid "Early Data Header Name" +msgstr "前置数据标头" + +msgid "HTTP/2 Host" +msgstr "HTTP/2 主机名" + +msgid "HTTP/2 Path" +msgstr "HTTP/2 路径" + +msgid "gRPC Service Name" +msgstr "gRPC 服务名称" + +msgid "Initial Windows Size" +msgstr "初始窗口大小" + +msgid "H2/gRPC Health Check" +msgstr "H2/gRPC 健康检查" + +msgid "H2 Read Idle Timeout" +msgstr "H2 读取空闲超时" + +msgid "gRPC Idle Timeout" +msgstr "gPRC 空闲超时" + +msgid "Health Check Timeout" +msgstr "健康检查超时" + +msgid "QUIC Security" +msgstr "QUIC 加密方式" + +msgid "QUIC Key" +msgstr "QUIC 密钥" + msgid "VideoCall (SRTP)" msgstr "视频通话 (SRTP)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 03869a844fd..dd0280cd387 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -180,7 +180,9 @@ local Xray = { headers = (server.ws_host or server.tls_host) and { -- headers Host = server.ws_host or server.tls_host - } or nil + } or nil, + maxEarlyData = tonumber(server.ws_ed) or nil, + earlyDataHeaderName = server.ws_ed_header or nil } or nil, httpSettings = (server.transport == "h2") and { -- h2 From 13aadf5f858e9335e2085841ab0fd50c926c7690 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 18:19:16 +0800 Subject: [PATCH 122/972] luci-app-ssr-plus: fix v2ray gPRC multi support Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 8 ++++++++ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ .../root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 65f82e06ca7..401f6d4908b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -438,6 +438,14 @@ o = s:option(Value, "serviceName", translate("gRPC Service Name")) o:depends("transport", "grpc") o.rmempty = true +-- gPRC模式 +o = s:option(ListValue, "grpc_mode", translate("gRPC Mode")) +o:depends("transport", "grpc") +o:value("gun", translate("Gun")) +o:value("multi", translate("Multi")) +o:value("raw", translate("Raw")) +o.rmempty = true + -- gRPC初始窗口 o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) o.datatype = "uinteger" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 4e979db8783..1d1b7a553c6 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -739,6 +739,9 @@ msgstr "HTTP/2 路径" msgid "gRPC Service Name" msgstr "gRPC 服务名称" +msgid "gRPC Mode" +msgstr "gRPC 模式" + msgid "Initial Windows Size" msgstr "初始窗口大小" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index dd0280cd387..afe71d8a185 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -176,11 +176,11 @@ local Xray = { } or nil, wsSettings = (server.transport == "ws") and (server.ws_path or server.ws_host or server.tls_host) and { -- ws - path = server.ws_path, headers = (server.ws_host or server.tls_host) and { -- headers Host = server.ws_host or server.tls_host } or nil, + path = server.ws_path, maxEarlyData = tonumber(server.ws_ed) or nil, earlyDataHeaderName = server.ws_ed_header or nil } or nil, @@ -200,7 +200,7 @@ local Xray = { grpcSettings = (server.transport == "grpc") and { -- grpc serviceName = server.serviceName or "", - multiMode = (server.mux == "1") and true or false, + mode = (server.grpc_mode ~= "gun") and server.grpc_mode or nil, idle_timeout = tonumber(server.idle_timeout) or nil, health_check_timeout = tonumber(server.health_check_timeout) or nil, permit_without_stream = (server.permit_without_stream == "1") and true or nil, From 5d63ffea32e07b31e5f00d98a9891ad2fb80a4e7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 27 Apr 2022 15:06:15 +0800 Subject: [PATCH 123/972] luci-app-ssr-plus: use sing protocol for original v2ray ss/trojan Do you hear people sing? Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index afe71d8a185..420e4032cb8 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -46,6 +46,11 @@ function trojan_shadowsocks() } } } + + if (not outbound_settings.plugin) and (not server.transport or server.transport == "tcp") and (not server.xtls) then + server.v2ray_protocol = server.v2ray_protocol .. "_sing" + outbound_settings = outbound_settings.servers[1] + end end function socks_http() outbound_settings = { From 016321aa2915e75ca7e88784af799b50465a2927 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 8 Jun 2022 18:28:13 +0800 Subject: [PATCH 124/972] luci-app-ssr-plus: bump PKG_RELEASE Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 2 +- sagernet-core/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 5432cd512f7..ec4b2f41136 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index 13cb8dfea0a..db0a42ca239 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -5,7 +5,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sagernet-core -BASE_VERSION:=5.0.12 +BASE_VERSION:=5.0.14 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git From 0742aa1a47e0f49e8cc83b06e3ffc09b9f0abc4e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 9 Jun 2022 00:10:50 +0800 Subject: [PATCH 125/972] luci-app-ssr-plus: fix generate v2ray sing config Signed-off-by: Tianling Shen --- .../root/usr/share/shadowsocksr/gen_config.lua | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 420e4032cb8..e0ad76af1ae 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -47,9 +47,14 @@ function trojan_shadowsocks() } } - if (not outbound_settings.plugin) and (not server.transport or server.transport == "tcp") and (not server.xtls) then - server.v2ray_protocol = server.v2ray_protocol .. "_sing" + if (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then + server.v2ray_protocol = "shadowsocks_sing" outbound_settings = outbound_settings.servers[1] + elseif (server.v2ray_protocol == "trojan") and (server.tls and server.mux ~= "1") and (not (server.transport ~= "tcp" or server.xtls)) then + server.v2ray_protocol = "trojan_sing" + outbound_settings = outbound_settings.servers[1] + outbound_settings.serverName = server.tls_host + outbound_settings.insecure = (server.insecure == "1") and true or false end end function socks_http() @@ -143,7 +148,7 @@ local Xray = { protocol = server.v2ray_protocol, settings = outbound_settings, -- 底层传输配置 - streamSettings = { + streamSettings = (server.v2ray_protocol and server.v2ray_protocol:sub(-#"_sing") ~= "_sing") and { network = server.transport or "tcp", security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or nil, tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { @@ -211,7 +216,7 @@ local Xray = { permit_without_stream = (server.permit_without_stream == "1") and true or nil, initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil - }, + } or nil, mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { -- mux enabled = true, From 3450fe1f1315e76e507925f39080a42dc654d0b7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 10 Jun 2022 00:25:38 +0800 Subject: [PATCH 126/972] luci-app-ssr-plus: add default value for v2ray ed header Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 401f6d4908b..c31a56d68dc 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -414,11 +414,13 @@ o.rmempty = true o = s:option(Value, "ws_ed", translate("Max Early Data")) o:depends("transport", "ws") o.datatype = "uinteger" +o.default = 2048 o.rmempty = true -- WS前置数据标头 o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) o:depends("transport", "ws") +o.default = "Sec-WebSocket-Protocol" o.rmempty = true -- [[ H2部分 ]]-- From 921a07f36f083e7282005dd4a5e1361b472dcb4c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 10 Jun 2022 18:27:25 +0800 Subject: [PATCH 127/972] sagernet-core: bump to latest git HEAD Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index db0a42ca239..7195e3741d2 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sagernet-core -BASE_VERSION:=5.0.14 +BASE_VERSION:=5.0.15 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-07 -PKG_SOURCE_VERSION:=5590c5fe71ed3f0dbc0609cc4fcc7e3d5be0bd1c -PKG_MIRROR_HASH:=36bccebbf4c07d8948d4ffa98e7d473902f891867e981ad22b67e609969c4b2a +PKG_SOURCE_DATE:=2022-06-10 +PKG_SOURCE_VERSION:=f55a069e73bb1d34ed8bd2a149832fb018a07820 +PKG_MIRROR_HASH:=1eade99c74edfd1b1f0103dbc67d8afedc69f186799af4d7ec99e13b883d82a5 PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later From 95fd2d087783a8e34701ee276083d1d4f3071359 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 10 Jun 2022 21:43:55 +0800 Subject: [PATCH 128/972] luci-app-ssr-plus: fix wrong datatype of hysteria config Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e0ad76af1ae..181ab62165b 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -302,8 +302,8 @@ local hysteria = { server_name = server.tls_host, insecure = (server.insecure == "1") and true or false, ca = (server.certificate) and server.certpath or nil, - recv_window_conn = server.recv_window_conn, - recv_window = server.recv_window, + recv_window_conn = tonumber(server.recv_window_conn), + recv_window = tonumber(server.recv_window), disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false } local config = {} From 175a7b232aa5014eecb81d1ca55933991f98c1c7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Jun 2022 07:51:23 +0800 Subject: [PATCH 129/972] hysteria: Update to 1.0.5 Removed upstreamed patches. Signed-off-by: Tianling Shen --- hysteria/Makefile | 6 +- ...010-feat-TCP-redirect-implementation.patch | 244 ------------------ .../020-fix-build-failure-on-linux-386.patch | 144 ----------- 3 files changed, 3 insertions(+), 391 deletions(-) delete mode 100644 hysteria/patches/010-feat-TCP-redirect-implementation.patch delete mode 100644 hysteria/patches/020-fix-build-failure-on-linux-386.patch diff --git a/hysteria/Makefile b/hysteria/Makefile index c3a02598dd8..dc90e90ad76 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.0.4 -PKG_RELEASE:=2 +PKG_VERSION:=1.0.5 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d2cb7a3f1b9ae3ac258928fb0d74e19e2066ad164492116c934b4585e0a4a94d +PKG_HASH:=ee2c765fb7e483a7c211624a62f07b6992a763f2bccbd91b3bf81bd2e82ffe63 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE diff --git a/hysteria/patches/010-feat-TCP-redirect-implementation.patch b/hysteria/patches/010-feat-TCP-redirect-implementation.patch deleted file mode 100644 index 8ddb9ce25cd..00000000000 --- a/hysteria/patches/010-feat-TCP-redirect-implementation.patch +++ /dev/null @@ -1,244 +0,0 @@ -From 575de280fff4021c613522c477ff8567b782c9c8 Mon Sep 17 00:00:00 2001 -From: Toby -Date: Mon, 6 Jun 2022 18:09:34 -0700 -Subject: [PATCH] feat: TCP redirect implementation - ---- - cmd/client.go | 33 +++++++++++ - cmd/config.go | 10 +++- - pkg/redirect/tcp_linux.go | 119 ++++++++++++++++++++++++++++++++++++++ - pkg/redirect/tcp_stub.go | 23 ++++++++ - 4 files changed, 184 insertions(+), 1 deletion(-) - create mode 100644 pkg/redirect/tcp_linux.go - create mode 100644 pkg/redirect/tcp_stub.go - ---- a/cmd/client.go -+++ b/cmd/client.go -@@ -6,6 +6,7 @@ import ( - "errors" - "github.com/oschwald/geoip2-golang" - "github.com/tobyxdd/hysteria/pkg/pmtud_fix" -+ "github.com/tobyxdd/hysteria/pkg/redirect" - "github.com/yosuke-furukawa/json5/encoding/json5" - "io" - "io/ioutil" -@@ -434,6 +435,38 @@ func client(config *clientConfig) { - errChan <- rl.ListenAndServe() - }() - } -+ -+ if len(config.TCPRedirect.Listen) > 0 { -+ go func() { -+ rl, err := redirect.NewTCPRedirect(client, config.TCPRedirect.Listen, -+ time.Duration(config.TCPRedirect.Timeout)*time.Second, -+ func(addr, reqAddr net.Addr) { -+ logrus.WithFields(logrus.Fields{ -+ "src": addr.String(), -+ "dst": reqAddr.String(), -+ }).Debug("TCP Redirect request") -+ }, -+ func(addr, reqAddr net.Addr, err error) { -+ if err != io.EOF { -+ logrus.WithFields(logrus.Fields{ -+ "error": err, -+ "src": addr.String(), -+ "dst": reqAddr.String(), -+ }).Info("TCP Redirect error") -+ } else { -+ logrus.WithFields(logrus.Fields{ -+ "src": addr.String(), -+ "dst": reqAddr.String(), -+ }).Debug("TCP Redirect EOF") -+ } -+ }) -+ if err != nil { -+ logrus.WithField("error", err).Fatal("Failed to initialize TCP Redirect") -+ } -+ logrus.WithField("addr", config.TCPRedirect.Listen).Info("TCP Redirect up and running") -+ errChan <- rl.ListenAndServe() -+ }() -+ } - - err := <-errChan - logrus.WithField("error", err).Fatal("Client shutdown") ---- a/cmd/config.go -+++ b/cmd/config.go -@@ -175,6 +175,10 @@ type clientConfig struct { - Listen string `json:"listen"` - Timeout int `json:"timeout"` - } `json:"tproxy_udp"` -+ TCPRedirect struct { -+ Listen string `json:"listen"` -+ Timeout int `json:"timeout"` -+ } `json:"redirect_tcp"` - ACL string `json:"acl"` - MMDB string `json:"mmdb"` - Obfs string `json:"obfs"` -@@ -216,7 +220,8 @@ func (c *clientConfig) Check() error { - if len(c.SOCKS5.Listen) == 0 && len(c.HTTP.Listen) == 0 && len(c.TUN.Name) == 0 && - len(c.TCPRelay.Listen) == 0 && len(c.UDPRelay.Listen) == 0 && - len(c.TCPRelays) == 0 && len(c.UDPRelays) == 0 && -- len(c.TCPTProxy.Listen) == 0 && len(c.UDPTProxy.Listen) == 0 { -+ len(c.TCPTProxy.Listen) == 0 && len(c.UDPTProxy.Listen) == 0 && -+ len(c.TCPRedirect.Listen) == 0 { - return errors.New("please enable at least one mode") - } - if c.SOCKS5.Timeout != 0 && c.SOCKS5.Timeout <= 4 { -@@ -256,6 +261,9 @@ func (c *clientConfig) Check() error { - if c.UDPTProxy.Timeout != 0 && c.UDPTProxy.Timeout <= 4 { - return errors.New("invalid UDP TProxy timeout") - } -+ if c.TCPRedirect.Timeout != 0 && c.TCPRedirect.Timeout <= 4 { -+ return errors.New("invalid TCP Redirect timeout") -+ } - if len(c.Server) == 0 { - return errors.New("no server address") - } ---- /dev/null -+++ b/pkg/redirect/tcp_linux.go -@@ -0,0 +1,119 @@ -+package redirect -+ -+import ( -+ "encoding/binary" -+ "errors" -+ "github.com/tobyxdd/hysteria/pkg/core" -+ "github.com/tobyxdd/hysteria/pkg/utils" -+ "net" -+ "syscall" -+ "time" -+ "unsafe" -+) -+ -+const ( -+ SO_ORIGINAL_DST = 80 -+ IP6T_SO_ORIGINAL_DST = 80 -+) -+ -+type TCPRedirect struct { -+ HyClient *core.Client -+ ListenAddr *net.TCPAddr -+ Timeout time.Duration -+ -+ ConnFunc func(addr, reqAddr net.Addr) -+ ErrorFunc func(addr, reqAddr net.Addr, err error) -+} -+ -+func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, -+ connFunc func(addr, reqAddr net.Addr), -+ errorFunc func(addr, reqAddr net.Addr, err error)) (*TCPRedirect, error) { -+ tAddr, err := net.ResolveTCPAddr("tcp", listen) -+ if err != nil { -+ return nil, err -+ } -+ r := &TCPRedirect{ -+ HyClient: hyClient, -+ ListenAddr: tAddr, -+ Timeout: timeout, -+ ConnFunc: connFunc, -+ ErrorFunc: errorFunc, -+ } -+ return r, nil -+} -+ -+func (r *TCPRedirect) ListenAndServe() error { -+ listener, err := net.ListenTCP("tcp", r.ListenAddr) -+ if err != nil { -+ return err -+ } -+ defer listener.Close() -+ for { -+ c, err := listener.Accept() -+ if err != nil { -+ return err -+ } -+ go func() { -+ defer c.Close() -+ dest, err := getDestAddr(c.(*net.TCPConn)) -+ if err != nil || dest.IP.IsLoopback() { -+ // Silently drop the connection if we failed to get the destination address, -+ // or if it's a loopback address (not a redirected connection). -+ return -+ } -+ r.ConnFunc(c.RemoteAddr(), dest) -+ rc, err := r.HyClient.DialTCP(dest.String()) -+ if err != nil { -+ r.ErrorFunc(c.RemoteAddr(), dest, err) -+ return -+ } -+ defer rc.Close() -+ err = utils.PipePairWithTimeout(c, rc, r.Timeout) -+ r.ErrorFunc(c.RemoteAddr(), dest, err) -+ }() -+ } -+} -+ -+type sockAddr struct { -+ family uint16 -+ port [2]byte // big endian regardless of host byte order -+ data [24]byte // check sockaddr_in or sockaddr_in6 for more information -+} -+ -+func getDestAddr(conn *net.TCPConn) (*net.TCPAddr, error) { -+ rc, err := conn.SyscallConn() -+ if err != nil { -+ return nil, err -+ } -+ var addr sockAddr -+ addrSize := uint32(unsafe.Sizeof(addr)) -+ var err2 error -+ err = rc.Control(func(fd uintptr) { -+ // try IPv6 first -+ _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -+ if err != 0 { -+ // try IPv4 -+ _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -+ if err != 0 { -+ // failed -+ err2 = err -+ } -+ } -+ }) -+ if err != nil { -+ return nil, err -+ } -+ if err2 != nil { -+ return nil, err2 -+ } -+ switch addr.family { -+ case syscall.AF_INET: -+ return &net.TCPAddr{IP: addr.data[:4], Port: int(binary.BigEndian.Uint16(addr.port[:]))}, nil -+ case syscall.AF_INET6: -+ return &net.TCPAddr{IP: addr.data[4:20], Port: int(binary.BigEndian.Uint16(addr.port[:]))}, nil -+ default: -+ return nil, errors.New("unknown address family") -+ } -+} ---- /dev/null -+++ b/pkg/redirect/tcp_stub.go -@@ -0,0 +1,23 @@ -+//go:build !linux -+// +build !linux -+ -+package redirect -+ -+import ( -+ "errors" -+ "github.com/tobyxdd/hysteria/pkg/core" -+ "net" -+ "time" -+) -+ -+type TCPRedirect struct{} -+ -+func NewTCPRedirect(hyClient *core.Client, listen string, timeout time.Duration, -+ connFunc func(addr, reqAddr net.Addr), -+ errorFunc func(addr, reqAddr net.Addr, err error)) (*TCPRedirect, error) { -+ return nil, errors.New("not supported on the current system") -+} -+ -+func (r *TCPRedirect) ListenAndServe() error { -+ return nil -+} diff --git a/hysteria/patches/020-fix-build-failure-on-linux-386.patch b/hysteria/patches/020-fix-build-failure-on-linux-386.patch deleted file mode 100644 index 5b5caa3b1ab..00000000000 --- a/hysteria/patches/020-fix-build-failure-on-linux-386.patch +++ /dev/null @@ -1,144 +0,0 @@ -From 8a64099a9633f5537c41d4e12ea44870fe5d2e38 Mon Sep 17 00:00:00 2001 -From: Toby -Date: Tue, 7 Jun 2022 12:44:38 -0700 -Subject: [PATCH] fix: build failure on linux 386 - ---- - pkg/redirect/origdst_linux.go | 38 +++++++++++++++++++++++++++++++ - pkg/redirect/origdst_linux_386.go | 36 +++++++++++++++++++++++++++++ - pkg/redirect/tcp_linux.go | 28 ++--------------------- - 3 files changed, 76 insertions(+), 26 deletions(-) - create mode 100644 pkg/redirect/origdst_linux.go - create mode 100644 pkg/redirect/origdst_linux_386.go - ---- /dev/null -+++ b/pkg/redirect/origdst_linux.go -@@ -0,0 +1,38 @@ -+//go:build !386 -+// +build !386 -+ -+package redirect -+ -+import ( -+ "syscall" -+ "unsafe" -+) -+ -+const ( -+ SO_ORIGINAL_DST = 80 -+ IP6T_SO_ORIGINAL_DST = 80 -+) -+ -+type sockAddr struct { -+ family uint16 -+ port [2]byte // big endian regardless of host byte order -+ data [24]byte // check sockaddr_in or sockaddr_in6 for more information -+} -+ -+func getOrigDst(fd uintptr) (*sockAddr, error) { -+ var addr sockAddr -+ addrSize := uint32(unsafe.Sizeof(addr)) -+ // try IPv6 first -+ _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -+ if err != 0 { -+ // try IPv4 -+ _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -+ if err != 0 { -+ // failed -+ return nil, err -+ } -+ } -+ return &addr, nil -+} ---- /dev/null -+++ b/pkg/redirect/origdst_linux_386.go -@@ -0,0 +1,36 @@ -+package redirect -+ -+import ( -+ "syscall" -+ "unsafe" -+) -+ -+const ( -+ SYS_GETSOCKOPT = 15 -+ SO_ORIGINAL_DST = 80 -+ IP6T_SO_ORIGINAL_DST = 80 -+) -+ -+type sockAddr struct { -+ family uint16 -+ port [2]byte // big endian regardless of host byte order -+ data [24]byte // check sockaddr_in or sockaddr_in6 for more information -+} -+ -+func getOrigDst(fd uintptr) (*sockAddr, error) { -+ var addr sockAddr -+ addrSize := uint32(unsafe.Sizeof(addr)) -+ // try IPv6 first -+ _, _, err := syscall.Syscall6(syscall.SYS_SOCKETCALL, SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize))) -+ if err != 0 { -+ // try IPv4 -+ _, _, err = syscall.Syscall6(syscall.SYS_SOCKETCALL, SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, -+ uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize))) -+ if err != 0 { -+ // failed -+ return nil, err -+ } -+ } -+ return &addr, nil -+} ---- a/pkg/redirect/tcp_linux.go -+++ b/pkg/redirect/tcp_linux.go -@@ -8,12 +8,6 @@ import ( - "net" - "syscall" - "time" -- "unsafe" --) -- --const ( -- SO_ORIGINAL_DST = 80 -- IP6T_SO_ORIGINAL_DST = 80 - ) - - type TCPRedirect struct { -@@ -74,33 +68,15 @@ func (r *TCPRedirect) ListenAndServe() e - } - } - --type sockAddr struct { -- family uint16 -- port [2]byte // big endian regardless of host byte order -- data [24]byte // check sockaddr_in or sockaddr_in6 for more information --} -- - func getDestAddr(conn *net.TCPConn) (*net.TCPAddr, error) { - rc, err := conn.SyscallConn() - if err != nil { - return nil, err - } -- var addr sockAddr -- addrSize := uint32(unsafe.Sizeof(addr)) -+ var addr *sockAddr - var err2 error - err = rc.Control(func(fd uintptr) { -- // try IPv6 first -- _, _, err := syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IPV6, IP6T_SO_ORIGINAL_DST, -- uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -- if err != 0 { -- // try IPv4 -- _, _, err = syscall.Syscall6(syscall.SYS_GETSOCKOPT, fd, syscall.SOL_IP, SO_ORIGINAL_DST, -- uintptr(unsafe.Pointer(&addr)), uintptr(unsafe.Pointer(&addrSize)), 0) -- if err != 0 { -- // failed -- err2 = err -- } -- } -+ addr, err2 = getOrigDst(fd) - }) - if err != nil { - return nil, err From 9b0b7dfd9910c631ef63195579eb9319df4b2776 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Jun 2022 20:27:03 +0800 Subject: [PATCH 130/972] Add License GPL-3.0-only Signed-off-by: Tianling Shen --- LICENSE | 674 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 674 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..f288702d2fa --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. From 315e8e0432e900c65f081416f57476eba1c30099 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 13 Jun 2022 10:08:01 +0000 Subject: [PATCH 131/972] v2ray-plugin: update to 5.0.7 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 76ed9d50d2d..ab2d85d329e 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.6 +PKG_VERSION:=5.0.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b7ee86a16e27a14d6ad8102a5e5eb940909b84111045d6844a1effd9ca4b701f +PKG_HASH:=b14b8e9bc5c70103255d20f623c04d53ff6bbb702d1e69b328f735f9c8378376 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From aa69ce5e9cf54afa51879e6a0443fe9af87f56ec Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 13 Jun 2022 10:05:11 +0000 Subject: [PATCH 132/972] v2ray-core: update to 5.0.7 --- v2ray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 834e5e482d8..ad1375fd1ef 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.6 -PKG_RELEASE:=$(AUTORELEASE) +PKG_VERSION:=5.0.7 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6381d4597f190e33e5f3cf9f7e4820337b3d378b1979901030fa6d437e335b16 +PKG_HASH:=67a3c5f19eb4b21dd270bb60a17220512d4ff221d2da3070e66926686f140ce3 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 7679b17177e4f1f5080da10ac40f10c668610e25 Mon Sep 17 00:00:00 2001 From: lean Date: Tue, 14 Jun 2022 12:40:53 +0800 Subject: [PATCH 133/972] luci-app-ssr-plus: add V2Ray Edition Selection choice --- luci-app-ssr-plus/Makefile | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index ec4b2f41136..f3e5531108f 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=3 +PKG_RELEASE:=5 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ @@ -35,6 +35,8 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ @@ -50,6 +52,18 @@ LUCI_DEPENDS:= \ define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) +choice + prompt "V2Ray Edition Selection" + default PACKAGE_$(PKG_NAME)_INCLUDE_Xray + + config PACKAGE_$(PKG_NAME)_INCLUDE_Xray + bool "Include Xray Core" + + config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core + bool "Include sagernet-core (An enhanced edition of v2ray-core)" + +endchoice + config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun bool "Include Kcptun" default n @@ -59,7 +73,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria default n config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks - bool "Include ipt2socks" + bool "Include Ipt2socks" default n config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy @@ -71,10 +85,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core - bool "Include sagernet-core (An enhanced edition of v2ray-core)" - default y if aarch64||arm||i386||x86_64 - config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client bool "Include Shadowsocks Libev Client" default y if arm From 3572ddbf205b0983d58e64146a948f500b02ae69 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 20:16:17 +0800 Subject: [PATCH 134/972] luci-app-ssr-plus: improve v2ray-core selection Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 37 ++++++++++++++++++++++++------------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index f3e5531108f..6151ed8db01 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -5,12 +5,15 @@ PKG_VERSION:=186 PKG_RELEASE:=5 PKG_CONFIG_DEPENDS:= \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client \ @@ -28,15 +31,17 @@ LUCI_DEPENDS:= \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:curl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray-core \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ + +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ - +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ - +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-redir \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ @@ -53,15 +58,21 @@ define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) choice - prompt "V2Ray Edition Selection" - default PACKAGE_$(PKG_NAME)_INCLUDE_Xray - + prompt "V2ray-core Selection" + default PACKAGE_$(PKG_NAME)_INCLUDE_Xray if aarch64||arm||i386||x86_64 + default PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY + + config PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY + bool "None" + + config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray + bool "Include V2ray-core" + config PACKAGE_$(PKG_NAME)_INCLUDE_Xray - bool "Include Xray Core" - + bool "Include Xray-core" + config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core - bool "Include sagernet-core (An enhanced edition of v2ray-core)" - + bool "Include SagerNet-core (An enhanced edition of v2ray-core)" endchoice config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun @@ -73,7 +84,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria default n config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks - bool "Include Ipt2socks" + bool "Include IPT2Socks" default n config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy From df1b902159b4a57c157523d08031e1f6098cdc23 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 20:34:53 +0800 Subject: [PATCH 135/972] luci-app-ssr-plus: mark v2ray core-specific features Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 128 ++++++++++-------- 1 file changed, 70 insertions(+), 58 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c31a56d68dc..c5cd2412c94 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -281,12 +281,16 @@ if is_finded("xray-plugin") then end o.rmempty = true o:depends("type", "ss") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +if is_installed("sagernet-core") then + o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +end o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true o:depends("type", "ss") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +if is_installed("sagernet-core") then + o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +end o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do @@ -410,18 +414,20 @@ o = s:option(Value, "ws_path", translate("WebSocket Path")) o:depends("transport", "ws") o.rmempty = true --- WS前置数据 -o = s:option(Value, "ws_ed", translate("Max Early Data")) -o:depends("transport", "ws") -o.datatype = "uinteger" -o.default = 2048 -o.rmempty = true +if is_finded("v2ray") then + -- WS前置数据 + o = s:option(Value, "ws_ed", translate("Max Early Data")) + o:depends("transport", "ws") + o.datatype = "uinteger" + o.default = 2048 + o.rmempty = true --- WS前置数据标头 -o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) -o:depends("transport", "ws") -o.default = "Sec-WebSocket-Protocol" -o.rmempty = true + -- WS前置数据标头 + o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) + o:depends("transport", "ws") + o.default = "Sec-WebSocket-Protocol" + o.rmempty = true +end -- [[ H2部分 ]]-- @@ -440,48 +446,52 @@ o = s:option(Value, "serviceName", translate("gRPC Service Name")) o:depends("transport", "grpc") o.rmempty = true --- gPRC模式 -o = s:option(ListValue, "grpc_mode", translate("gRPC Mode")) -o:depends("transport", "grpc") -o:value("gun", translate("Gun")) -o:value("multi", translate("Multi")) -o:value("raw", translate("Raw")) -o.rmempty = true +if is_installed("sagernet-core") then + -- gPRC模式 + o = s:option(ListValue, "grpc_mode", translate("gRPC Mode")) + o:depends("transport", "grpc") + o:value("gun", translate("Gun")) + o:value("multi", translate("Multi")) + o:value("raw", translate("Raw")) + o.rmempty = true +end --- gRPC初始窗口 -o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) -o.datatype = "uinteger" -o:depends("transport", "grpc") -o.default = 0 -o.rmempty = true +if is_finded("xray") or is_installed("sagernet-core") then + -- gRPC初始窗口 + o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) + o.datatype = "uinteger" + o:depends("transport", "grpc") + o.default = 0 + o.rmempty = true --- H2/gRPC健康检查 -o = s:option(Flag, "health_check", translate("H2/gRPC Health Check")) -o:depends("transport", "h2") -o:depends("transport", "grpc") -o.rmempty = true + -- H2/gRPC健康检查 + o = s:option(Flag, "health_check", translate("H2/gRPC Health Check")) + o:depends("transport", "h2") + o:depends("transport", "grpc") + o.rmempty = true -o = s:option(Value, "read_idle_timeout", translate("H2 Read Idle Timeout")) -o.datatype = "uinteger" -o:depends({health_check = true, transport = "h2"}) -o.default = 60 -o.rmempty = true + o = s:option(Value, "read_idle_timeout", translate("H2 Read Idle Timeout")) + o.datatype = "uinteger" + o:depends({health_check = true, transport = "h2"}) + o.default = 60 + o.rmempty = true -o = s:option(Value, "idle_timeout", translate("gRPC Idle Timeout")) -o.datatype = "uinteger" -o:depends({health_check = true, transport = "grpc"}) -o.default = 60 -o.rmempty = true + o = s:option(Value, "idle_timeout", translate("gRPC Idle Timeout")) + o.datatype = "uinteger" + o:depends({health_check = true, transport = "grpc"}) + o.default = 60 + o.rmempty = true -o = s:option(Value, "health_check_timeout", translate("Health Check Timeout")) -o.datatype = "uinteger" -o:depends("health_check", 1) -o.default = 20 -o.rmempty = true + o = s:option(Value, "health_check_timeout", translate("Health Check Timeout")) + o.datatype = "uinteger" + o:depends("health_check", 1) + o.default = 20 + o.rmempty = true -o = s:option(Flag, "permit_without_stream", translate("Permit Without Stream")) -o:depends({health_check = true, transport = "grpc"}) -o.rmempty = true + o = s:option(Flag, "permit_without_stream", translate("Permit Without Stream")) + o:depends({health_check = true, transport = "grpc"}) + o.rmempty = true +end -- [[ QUIC部分 ]]-- o = s:option(ListValue, "quic_security", translate("QUIC Security")) @@ -620,15 +630,17 @@ o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) o:depends({type = "trojan", tls = true}) o.default = "0" --- [[ uTLS ]]-- -o = s:option(ListValue, "fingerprint", translate("Finger Print")) -o:value("disable", translate("disable")) -o:value("firefox", translate("firefox")) -o:value("chrome", translate("chrome")) -o:value("safari", translate("safari")) -o:value("randomized", translate("randomized")) -o:depends({type = "v2ray", tls = true}) -o.default = "disable" +if is_finded("xray") then + -- [[ uTLS ]]-- + o = s:option(ListValue, "fingerprint", translate("Finger Print")) + o:value("disable", translate("disable")) + o:value("firefox", translate("firefox")) + o:value("chrome", translate("chrome")) + o:value("safari", translate("safari")) + o:value("randomized", translate("randomized")) + o:depends({type = "v2ray", tls = true}) + o.default = "disable" +end o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" From 14f5de8024cf4d67856ed52a8e6539856229380a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 20:39:13 +0800 Subject: [PATCH 136/972] luci-app-ssr-plus: support different socks version Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 9 +++++++++ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ .../root/usr/share/shadowsocksr/gen_config.lua | 1 + 3 files changed, 13 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c5cd2412c94..6e2dd40e1da 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -368,6 +368,15 @@ end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +-- SOCKS Version +o = s:option(ListValue, "socks_ver", translate("Socks Version")) +o:value("4", "Socks4") +o:value("4a", "Socks4A") +o:value("5", "Socks5") +o.rmempty = true +o.default = "5" +o:depends({type = "v2ray", v2ray_protocol = "socks"}) + -- 传输协议 o = s:option(ListValue, "transport", translate("Transport")) o:value("tcp", "TCP") diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 1d1b7a553c6..9be3eb183bc 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -70,6 +70,9 @@ msgstr "布隆过滤器" msgid "VLESS Encryption" msgstr "VLESS 加密" +msgid "Socks Version" +msgstr "Socks 版本" + msgid "Flow" msgstr "流控 (Flow)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 181ab62165b..d5e3a785fda 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -59,6 +59,7 @@ function trojan_shadowsocks() end function socks_http() outbound_settings = { + version = server.socks_ver or nil, servers = { { address = server.server, From 4a9a0bd8128d5e062498a889d44ccef394dc3cf4 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 20:47:54 +0800 Subject: [PATCH 137/972] luci-app-ssr-plus: fix support for socks4(a) Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6e2dd40e1da..c3d203286b0 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -237,7 +237,7 @@ o:depends("type", "trojan") o:depends("type", "naiveproxy") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) -o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) +o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) @@ -610,7 +610,7 @@ o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = false}) o:depends({type = "v2ray", v2ray_protocol = "trojan", xtls = false}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "socks", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", xtls = false}) o:depends({type = "v2ray", v2ray_protocol = "http", xtls = false}) o:depends("type", "trojan") From 5777fa748916c1dbf43c94f2768b6d61f6f55b45 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 23:22:15 +0800 Subject: [PATCH 138/972] sagernet-core: bump to latest git HEAD Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 32 +++++++++++-- sagernet-core/patches/100-obfs.patch | 68 ++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+), 3 deletions(-) create mode 100644 sagernet-core/patches/100-obfs.patch diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index 7195e3741d2..c2afe6fa6ca 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -10,9 +10,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-10 -PKG_SOURCE_VERSION:=f55a069e73bb1d34ed8bd2a149832fb018a07820 -PKG_MIRROR_HASH:=1eade99c74edfd1b1f0103dbc67d8afedc69f186799af4d7ec99e13b883d82a5 +PKG_SOURCE_DATE:=2022-06-14 +PKG_SOURCE_VERSION:=eb9f1a689e37c9577825165d50d562c2e7747f2a +PKG_MIRROR_HASH:=9cc7b4a5b2830ac72510c519f59e83e902347965fcfa57ed7cad0b43dfd80cab PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later @@ -70,6 +70,31 @@ define Package/sagernet-extra/description This includes extra resources for sagernet-core. endef +LIBCORE_NAME:=LibSagerNetCore +LIBCORE_DATE:=2022-06-10 +LIBCORE_VERSION:=9ef7ab1de7604ab959222d4de8ab6152a402e432 +LIBCORE_FILE:=$(LIBCORE_NAME)-$(LIBCORE_DATE)-$(call version_abbrev,$(LIBCORE_VERSION)).tar.xz +define Download/libcore + PROTO:=git + URL:=https://github.com/SagerNet/LibSagerNetCore.git + VERSION:=$(LIBCORE_VERSION) + FILE:=$(LIBCORE_FILE) + SUBDIR:=$(LIBCORE_NAME) + MIRROR_HASH:=9420189c45d5fbe682acee1da0b8f727cc5ea8c847ceeff5b026cd71ce60cf0f +endef + +define Build/Prepare + $(call Build/Prepare/Default) + + xzcat $(DL_DIR)/$(LIBCORE_FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + $(CP) $(PKG_BUILD_DIR)/$(LIBCORE_NAME)/{obfs,ssr}.go \ + $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/ + $(SED) '/plugin\/self/d' -e 's/self.ParsePluginOptions/ParsePluginOptions/g' \ + $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/obfs.go + $(SED) 's/package libcore/package self/g' \ + $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/{obfs,ssr}.go +endef + define Package/sagernet-core/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) $(INSTALL_DIR) $(1)/usr/bin/ @@ -82,5 +107,6 @@ define Package/sagernet-extra/install $(CP) $(PKG_BUILD_DIR)/release/extra/* $(1)/usr/share/v2ray/ endef +$(eval $(call Download,libcore)) $(eval $(call BuildPackage,sagernet-core)) $(eval $(call BuildPackage,sagernet-extra)) diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch new file mode 100644 index 00000000000..0fc3cb5fdfd --- /dev/null +++ b/sagernet-core/patches/100-obfs.patch @@ -0,0 +1,68 @@ +go get github.com/Dreamacro/clash/transport/ssr/protocol +go get github.com/Dreamacro/clash/transport/ssr/obfs +go get github.com/Dreamacro/clash/transport/simple-obfs +--- + +--- a/go.mod ++++ b/go.mod +@@ -3,6 +3,7 @@ module github.com/v2fly/v2ray-core/v5 + go 1.18 + + require ( ++ github.com/Dreamacro/clash v1.10.6 + github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da + github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d + github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb +@@ -50,6 +51,8 @@ replace gvisor.dev/gvisor => github.com/ + + //replace github.com/sagernet/sing => ../sing + ++replace github.com/Dreamacro/clash => github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded ++ + require ( + github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 // indirect + github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect +@@ -81,6 +84,7 @@ require ( + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect + github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect ++ github.com/sirupsen/logrus v1.8.1 // indirect + github.com/xtaci/smux v1.5.16 // indirect + go4.org/intern v0.0.0-20220301175310-a089fc204883 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect +--- a/go.sum ++++ b/go.sum +@@ -355,6 +355,8 @@ github.com/rogpeppe/go-internal v1.8.0/g + github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= + github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= + github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= ++github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded h1:iw6tWwLTRXgz65wOH8plV20P42q4UN0pgJyc6pQLLDk= ++github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= + github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= + github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= + github.com/sagernet/sing v0.0.0-20220614091938-64835a637bdc h1:AdNTzzSw6SCZI71GB+Am7cr+oUDUrBUaOi17FxDtNMw= +@@ -394,6 +396,8 @@ github.com/shurcooL/sanitized_anchor_nam + github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= + github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= + github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= ++github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= ++github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= + github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= + github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= + github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +@@ -451,6 +455,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go + go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM= + go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= + go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= ++go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= + go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= + go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= + go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= +@@ -566,6 +571,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 + golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= ++golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 545a7f118b9a3b08efd5059bb3f8140018682121 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Jun 2022 23:27:17 +0800 Subject: [PATCH 139/972] luci-app-ssr-plus: add v2ray ssr support Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 9 ++++++++- .../root/usr/share/shadowsocksr/gen_config.lua | 16 ++++++++++++++-- .../root/usr/share/shadowsocksr/subscribe.lua | 3 +++ 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c3d203286b0..97e4739c3a4 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -186,6 +186,7 @@ o:value("vmess", translate("VMess")) o:value("trojan", translate("Trojan")) o:value("shadowsocks", translate("Shadowsocks")) if is_installed("sagernet-core") then + o:value("shadowsocksr", translate("ShadowsocksR")) o:value("wireguard", translate("WireGuard")) end o:value("socks", translate("Socks")) @@ -239,6 +240,7 @@ o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) o = s:option(ListValue, "encrypt_method", translate("Encrypt Method")) @@ -247,6 +249,7 @@ for _, v in ipairs(encrypt_methods) do end o.rmempty = true o:depends("type", "ssr") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(ListValue, "encrypt_method_ss", translate("Encrypt Method")) for _, v in ipairs(encrypt_methods_ss) do @@ -270,7 +273,7 @@ o.default = "1" -- Shadowsocks Plugin o = s:option(Value, "plugin", translate("Obfs")) o:value("none", translate("None")) -if is_finded("obfs-local") then +if is_finded("obfs-local") or is_installed("sagernet-core") then o:value("obfs-local", translate("obfs-local")) end if is_finded("v2ray-plugin") or is_installed("sagernet-core") then @@ -298,9 +301,11 @@ for _, v in ipairs(protocol) do end o.rmempty = true o:depends("type", "ssr") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(Value, "protocol_param", translate("Protocol param (optional)")) o:depends("type", "ssr") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(ListValue, "obfs", translate("Obfs")) for _, v in ipairs(obfs) do @@ -308,9 +313,11 @@ for _, v in ipairs(obfs) do end o.rmempty = true o:depends("type", "ssr") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") +o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) -- [[ Hysteria ]]-- o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d5e3a785fda..a4b2391e46a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -32,14 +32,21 @@ function vmess_vless() end function trojan_shadowsocks() outbound_settings = { - plugin = (server.v2ray_protocol == "shadowsocks") and server.plugin ~= "none" and server.plugin or nil, + plugin = ((server.v2ray_protocol == "shadowsocks") and server.plugin ~= "none" and server.plugin) or (server.v2ray_protocol == "shadowsocksr" and "shadowsocksr") or nil, pluginOpts = (server.v2ray_protocol == "shadowsocks") and server.plugin_opts or nil, + pluginArgs = (server.v2ray_protocol == "shadowsocksr") and { + "--protocol=" .. server.protocol, + "--protocol-param=" .. (server.protocol_param or ""), + "--obfs=" .. server.obfs, + "--obfs-param=" .. (server.obfs_param or "") + } or nil, servers = { { address = server.server, port = tonumber(server.server_port), password = server.password, method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss or nil, + method = (server.v2ray_protocol == "shadowsocksr") and server.encrypt_method or nil, uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil @@ -47,7 +54,9 @@ function trojan_shadowsocks() } } - if (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then + if server.v2ray_protocol == "shadowsocksr" then + server.v2ray_protocol = "shadowsocks" + elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then server.v2ray_protocol = "shadowsocks_sing" outbound_settings = outbound_settings.servers[1] elseif (server.v2ray_protocol == "trojan") and (server.tls and server.mux ~= "1") and (not (server.transport ~= "tcp" or server.xtls)) then @@ -106,6 +115,9 @@ function outbound:handleIndex(index) shadowsocks = function() trojan_shadowsocks() end, + shadowsocksr = function() + trojan_shadowsocks() + end, socks = function() socks_http() end, diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index b3d6d85075d..9900a434fd8 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -28,6 +28,7 @@ local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', ' local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') local packet_encoding = luci.model.ipkg.installed("sagernet-core") and ucic:get_first(name, 'global', 'default_packet_encoding', 'xudp') or nil local v2_ss = luci.sys.exec('type -t -p ss-redir sslocal') ~= "" and "ss" or "v2ray" +local v2_ssr = luci.sys.exec('type -t -p ssr-redir') ~= "" and "ssr" or "v2ray" local v2_tj = luci.sys.exec('type -t -p trojan') ~= "" and "trojan" or "v2ray" local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({...}, " ")) @@ -147,6 +148,8 @@ local function processData(szType, content) if szType == 'ssr' then local dat = split(content, "/%?") local hostInfo = split(dat[1], ':') + result.type = v2_ssr + result.v2ray_protocol = (v2_ssr == "v2ray") and "shadowsocksr" or nil result.server = hostInfo[1] result.server_port = hostInfo[2] result.protocol = hostInfo[3] From 823e91ca82aa457f89721b7416e9abdacf261664 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 16 Jun 2022 23:10:55 +0800 Subject: [PATCH 140/972] luci-app-ssr-plus: fix generate v2ray ss config Fixes: #918 Fixes: #919 Signed-off-by: Tianling Shen --- .../root/usr/share/shadowsocksr/gen_config.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index a4b2391e46a..e1de85760b6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -45,8 +45,7 @@ function trojan_shadowsocks() address = server.server, port = tonumber(server.server_port), password = server.password, - method = (server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss or nil, - method = (server.v2ray_protocol == "shadowsocksr") and server.encrypt_method or nil, + method = ((server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss) or ((server.v2ray_protocol == "shadowsocksr") and server.encrypt_method) or nil, uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil @@ -56,9 +55,9 @@ function trojan_shadowsocks() if server.v2ray_protocol == "shadowsocksr" then server.v2ray_protocol = "shadowsocks" - elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then - server.v2ray_protocol = "shadowsocks_sing" - outbound_settings = outbound_settings.servers[1] + -- elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then + -- server.v2ray_protocol = "shadowsocks_sing" + -- outbound_settings = outbound_settings.servers[1] elseif (server.v2ray_protocol == "trojan") and (server.tls and server.mux ~= "1") and (not (server.transport ~= "tcp" or server.xtls)) then server.v2ray_protocol = "trojan_sing" outbound_settings = outbound_settings.servers[1] From 38b79da44a1310234222f4af1b189155b54ffa0f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 17 Jun 2022 01:50:01 +0800 Subject: [PATCH 141/972] luci-app-ssr-plus: allow set seed for vmess mkcp Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 97e4739c3a4..6c997b042ee 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -582,7 +582,7 @@ o.default = 2 o.rmempty = true o = s:option(Value, "seed", translate("Obfuscate password (optional)")) -o:depends({v2ray_protocol = "vless", transport = "kcp"}) +o:depends("transport", "kcp") o:depends("type", "hysteria") o.rmempty = true From cfd4ecaf11e59f493afff6493cb1e179e312846f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 18 Jun 2022 00:47:04 +0800 Subject: [PATCH 142/972] luci-app-ssr-plus: disable usage of sing protocol for now SN core is not ready for Fullcone NAT support. Disable it for Xray users. Signed-off-by: Tianling Shen --- .../root/usr/share/shadowsocksr/gen_config.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e1de85760b6..50243b8608d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -55,14 +55,15 @@ function trojan_shadowsocks() if server.v2ray_protocol == "shadowsocksr" then server.v2ray_protocol = "shadowsocks" - -- elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then - -- server.v2ray_protocol = "shadowsocks_sing" - -- outbound_settings = outbound_settings.servers[1] + --[[ elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then + server.v2ray_protocol = "shadowsocks_sing" + outbound_settings = outbound_settings.servers[1] elseif (server.v2ray_protocol == "trojan") and (server.tls and server.mux ~= "1") and (not (server.transport ~= "tcp" or server.xtls)) then server.v2ray_protocol = "trojan_sing" outbound_settings = outbound_settings.servers[1] outbound_settings.serverName = server.tls_host outbound_settings.insecure = (server.insecure == "1") and true or false + ]] end end function socks_http() From e5fd22cca96694773bf4617cfcf3ddfaff3a0fad Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 18 Jun 2022 14:20:41 +0000 Subject: [PATCH 143/972] sagernet-core: bump to latest git HEAD --- sagernet-core/Makefile | 6 +++--- sagernet-core/patches/100-obfs.patch | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index c2afe6fa6ca..d117a47481d 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -10,9 +10,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-14 -PKG_SOURCE_VERSION:=eb9f1a689e37c9577825165d50d562c2e7747f2a -PKG_MIRROR_HASH:=9cc7b4a5b2830ac72510c519f59e83e902347965fcfa57ed7cad0b43dfd80cab +PKG_SOURCE_DATE:=2022-06-16 +PKG_SOURCE_VERSION:=13c46a76b8fcae7b2e85a769eff153789056010e +PKG_MIRROR_HASH:=555027a6982103af6b3028d8fb99be6433ffde5781fd39907f57e244d82080b4 PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch index 0fc3cb5fdfd..87c06c38813 100644 --- a/sagernet-core/patches/100-obfs.patch +++ b/sagernet-core/patches/100-obfs.patch @@ -40,7 +40,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs +github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= - github.com/sagernet/sing v0.0.0-20220614091938-64835a637bdc h1:AdNTzzSw6SCZI71GB+Am7cr+oUDUrBUaOi17FxDtNMw= + github.com/sagernet/sing v0.0.0-20220616051325-90beb46c6d22 h1:9qQB2pN/p6jI8vrCEy/KOvjuvEgoaz6QNIX7BgPhwSw= @@ -394,6 +396,8 @@ github.com/shurcooL/sanitized_anchor_nam github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= From 39cc1b019be23a82e542d3e40fa12ce0ea233836 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 19 Jun 2022 06:10:38 +0800 Subject: [PATCH 144/972] v2raya: Update to 1.5.8.1 Signed-off-by: Tianling Shen --- v2raya/Makefile | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/v2raya/Makefile b/v2raya/Makefile index 34bc3b7143f..698cb277ccb 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,19 +5,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=1.5.7 +PKG_VERSION:=1.5.8.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6d203ef95ac2a48f6f1808b93fc1cd1a4f32a0419710d0c7a74169f27c38ed9c +PKG_HASH:=822ec4a93933d93aed1bda6f9a3c08915135c0fc33bebe5e69b293cf30fe35c2 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -PKG_BUILD_DEPENDS:=golang/host node/host node-yarn/host +PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 @@ -56,13 +56,20 @@ define Package/v2raya/conffiles /etc/config/v2raya endef -define Build/Compile +WEB_FILE:=$(PKG_NAME)-web-$(PKG_VERSION).tar.gz +define Download/v2raya-web + URL:=https://codeload.github.com/v2rayA/v2raya-web/tar.gz/v$(PKG_VERSION)? + URL_FILE:=$(WEB_FILE) + FILE:=$(WEB_FILE) + HASH:=b13beac91d75c64af4ca6d7365716968702ce1be3f0c3e94d26e01daa07f223b +endef + +define Build/Prepare + $(call Build/Prepare/Default) + ( \ - pushd $(PKG_BUILD_DIR)/../gui ; \ - yarn ; \ - OUTPUT_DIR=../service/server/router/web yarn build ; \ - popd ; \ - $(call GoPackage/Build/Compile) ; \ + mkdir -p $(PKG_BUILD_DIR)/server/router/web ; \ + gzip -dc $(DL_DIR)/$(WEB_FILE) | $(HOST_TAR) -C $(PKG_BUILD_DIR)/server/router/web $(TAR_OPTIONS) ; \ ) endef @@ -77,5 +84,6 @@ define Package/v2raya/install $(INSTALL_BIN) $(CURDIR)/files/v2raya.init $(1)/etc/init.d/v2raya endef +$(eval $(call Download,v2raya-web)) $(eval $(call GoBinPackage,v2raya)) $(eval $(call BuildPackage,v2raya)) From b210abc2811104147b98bf6c47b27e6a334e5b31 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 20 Jun 2022 20:16:44 +0800 Subject: [PATCH 145/972] xray-core: update to 1.5.8 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 055fcd6f8be..1b7412074a3 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.7 +PKG_VERSION:=1.5.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6e1761b63da7fb17da98aa6cf74d224882467cd9825c12eb0ab28eacf8d92d19 +PKG_HASH:=1d1f7f3de0596c430fde6e3027b93c45f5fa340d291c05bc48216750dc77ca8f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 58d281bea3afe8bb088d037489327bb7101f578f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 20 Jun 2022 20:20:19 +0800 Subject: [PATCH 146/972] xray-plugin: update to 1.5.8 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 1d0cf1f2e78..c46ea3db3c8 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.7 +PKG_VERSION:=1.5.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=55f72a44a4089eb211ab0e35f064723c028854243e8388d0fcc5d8524aa5fb6b +PKG_HASH:=1f20d622e684f06e5117bdd3652b2444806cd1f58ea013c9fdcb5ad7fd7982b9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 9d734ee64f9eb7d78d8189e41206c56d6ff11a3b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 21 Jun 2022 14:21:51 +0000 Subject: [PATCH 147/972] v2ray-geodata: bump to latest version --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 3f1d7a0061e..4a59f083c80 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202205260055 +GEOIP_VER:=202206160052 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=c9eb7a4897a7bdafad5d4a71f966345674bd7f3f8ab487cb05599ed17b325106 + HASH:=35b18994e541e5c3e3d64a39af0d2f81f7d88cc7c87bfba5ea5f20a51390a4c6 endef -GEOSITE_VER:=20220528180904 +GEOSITE_VER:=20220620091914 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=d0c9f3cbf7925c33dfb8fb9578cdfa6733fc9f19c2ccfb4cba5a6415a14afe5c + HASH:=10555c5a6de954b362bbaf6059a61209bbebc920e67650d6eef184bb846516f5 endef define Package/v2ray-geodata/template From 85d8e28698d268e4fb1ce0de163d4d246fcdb6eb Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 27 Jun 2022 12:57:03 +0800 Subject: [PATCH 148/972] luci-app-ssr-plus: use wget-ssl if possible Fixes: #921 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 2 +- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 2 +- luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a08bdbae68f..a277b20630c 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -76,7 +76,7 @@ get_host_ip() { if [ -z "$(echo $host | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")" ]; then if [ "$host" == "${host#*:[0-9a-fA-F]}" ]; then ip=$(resolveip -4 -t 3 $host | awk 'NR==1{print}') - [ -z "$ip" ] && ip=$(uclient-fetch -q -O- http://119.29.29.29/d?dn=$host | awk -F ';' '{print $1}') + [ -z "$ip" ] && ip=$(wget -q -O- http://119.29.29.29/d?dn=$host | awk -F ';' '{print $1}') fi fi [ -z "$ip" ] || uci_set_by_name $1 ip $ip diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 9900a434fd8..52fcd2c1595 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -439,7 +439,7 @@ local function processData(szType, content) end -- wget local function wget(url) - local stdout = luci.sys.exec('uclient-fetch -q --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" --no-check-certificate -O- "' .. url .. '"') + local stdout = luci.sys.exec('wget -q --user-agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36" --no-check-certificate -O- "' .. url .. '"') return trim(stdout) end diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 3e832712fa5..e49825efa09 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -101,7 +101,7 @@ end local function update(url, file, type, file2) local Num = 1 - local refresh_cmd = "uclient-fetch --no-check-certificate -q -O /tmp/ssr-update." .. type .. " " .. url + local refresh_cmd = "wget --no-check-certificate -q -O /tmp/ssr-update." .. type .. " " .. url local sret = luci.sys.call(refresh_cmd) if sret == 0 then if type == "gfw_data" then From 2e7e6f6c36d345959337decbcb681fd8b22df305 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 27 Jun 2022 17:49:37 +0800 Subject: [PATCH 149/972] naiveproxy: Update to 103.0.5060.53-1 Refreshed patches. Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 16 ++++++++-------- naiveproxy/patches/100-macros.patch | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 1b6119acbf3..8579c1ea071 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=102.0.5005.61-1 +PKG_VERSION:=103.0.5060.53-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=725d4ab5898691c3c21c8116f6251a9d34ed36b11ac3a20fcb4bbd057c0a434d +PKG_HASH:=ffafe4cd5bc5a79b659520f071514db3d78531b5004c441d4b3da16c9c371ff1 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -75,31 +75,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-7570-gba4537b2-1 +CLANG_VER:=15-init-10168-gc2a7904a-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=40090455226011c896ecae5770c55a06deb39849f8b6a3c167e7ced843154073 + HASH:=9b19d831249a6328f4d8e52de269cb925b9a868e628ee2e30fc4462a77be52f7 endef -GN_VER:=fd9f2036f26d83f9fcfe93042fb952e5a7fe2167 +GN_VER:=578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=8c75d5371934b9bde92f17ab41e83f9c2a7817c4c527b0093e68d609821200c4 + HASH:=9b43714dc93695deef6a7c84aec284601da9277422cf94faff46ffa278100cde endef -PGO_VER:=5005-1652783756-51c73d0c010d6007ebdf3ca8150e9544cb705cc6 +PGO_VER:=5060-1655228597-bbe06f169cac6956903f78358c30d94a01938b2e PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=d85a1683a1eb53c6efd8cf5f5423e275d531fe41807fb875a60a4f93de50b45f + HASH:=67d472fc1be1a08288d985138e8af92fc33fd60d8e253a5b04158a2b9d2d01ea endef define Build/Prepare diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch index e6d9db2313f..91299c126d5 100644 --- a/naiveproxy/patches/100-macros.patch +++ b/naiveproxy/patches/100-macros.patch @@ -1,6 +1,6 @@ --- a/src/base/allocator/partition_allocator/tagging.cc +++ b/src/base/allocator/partition_allocator/tagging.cc -@@ -19,22 +19,25 @@ +@@ -17,22 +17,25 @@ #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) From b5812081a56b87056a82095a83aade5528cc51dd Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 27 Jun 2022 19:04:46 +0800 Subject: [PATCH 150/972] sagernet-core: Update to 5.0.16 Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 8 ++++---- sagernet-core/patches/100-obfs.patch | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index d117a47481d..7c3c83988e5 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sagernet-core -BASE_VERSION:=5.0.15 +BASE_VERSION:=5.0.16 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-16 -PKG_SOURCE_VERSION:=13c46a76b8fcae7b2e85a769eff153789056010e -PKG_MIRROR_HASH:=555027a6982103af6b3028d8fb99be6433ffde5781fd39907f57e244d82080b4 +PKG_SOURCE_DATE:=2022-06-26 +PKG_SOURCE_VERSION:=b5f100d6a37a1a33d21c3f3781dc123124fba949 +PKG_MIRROR_HASH:=5b123b5db03039bb5c38bb7b70bb7097ce1ddbac650cecba8422155481e59ddf PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch index 87c06c38813..4a8662b29d5 100644 --- a/sagernet-core/patches/100-obfs.patch +++ b/sagernet-core/patches/100-obfs.patch @@ -9,7 +9,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go 1.18 require ( -+ github.com/Dreamacro/clash v1.10.6 ++ github.com/Dreamacro/clash v1.11.0 github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb @@ -29,7 +29,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs + github.com/sirupsen/logrus v1.8.1 // indirect github.com/xtaci/smux v1.5.16 // indirect go4.org/intern v0.0.0-20220301175310-a089fc204883 // indirect - go4.org/unsafe/assume-no-moving-gc v0.0.0-20211027215541-db492cf91b37 // indirect + go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect --- a/go.sum +++ b/go.sum @@ -355,6 +355,8 @@ github.com/rogpeppe/go-internal v1.8.0/g @@ -40,7 +40,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs +github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= - github.com/sagernet/sing v0.0.0-20220616051325-90beb46c6d22 h1:9qQB2pN/p6jI8vrCEy/KOvjuvEgoaz6QNIX7BgPhwSw= + github.com/sagernet/sing v0.0.0-20220620074945-99754098d119 h1:YBlJc+jgan/xl1qnmT4FIEsdfuuS2IwGfPICqJHg54o= @@ -394,6 +396,8 @@ github.com/shurcooL/sanitized_anchor_nam github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= @@ -50,7 +50,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -@@ -451,6 +455,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go +@@ -453,6 +457,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM= go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -58,7 +58,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -@@ -566,6 +571,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 +@@ -569,6 +574,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 2fea3cadda4b5e3bf1b7ccf8a3edfcdf0e77c587 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 27 Jun 2022 20:37:17 +0800 Subject: [PATCH 151/972] sagernet-core: bump to latest git HEAD Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 6 +++--- sagernet-core/patches/100-obfs.patch | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index 7c3c83988e5..945b31474be 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -10,9 +10,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-26 -PKG_SOURCE_VERSION:=b5f100d6a37a1a33d21c3f3781dc123124fba949 -PKG_MIRROR_HASH:=5b123b5db03039bb5c38bb7b70bb7097ce1ddbac650cecba8422155481e59ddf +PKG_SOURCE_DATE:=2022-06-27 +PKG_SOURCE_VERSION:=d81715258c3bc178eaeaccbd9bc19ad1dc2d971f +PKG_MIRROR_HASH:=61b522a994d0ba9f08d81bb81625b2063d5e35c62e0e13a06322e19ddc5088ad PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch index 4a8662b29d5..626c128bf57 100644 --- a/sagernet-core/patches/100-obfs.patch +++ b/sagernet-core/patches/100-obfs.patch @@ -40,7 +40,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs +github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= - github.com/sagernet/sing v0.0.0-20220620074945-99754098d119 h1:YBlJc+jgan/xl1qnmT4FIEsdfuuS2IwGfPICqJHg54o= + github.com/sagernet/sing v0.0.0-20220627092450-605697c1aec0 h1:WRc+FBhOM12FwVphxpRgPLcr9+9JmFLuDKIBtoSrvwk= @@ -394,6 +396,8 @@ github.com/shurcooL/sanitized_anchor_nam github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= From 823927d2462096eaeb554cecfe9d018da3d822b0 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 30 Jun 2022 17:20:02 +0000 Subject: [PATCH 152/972] naiveproxy: update to 103.0.5060.53-2 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 8579c1ea071..36764435a89 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=103.0.5060.53-1 +PKG_VERSION:=103.0.5060.53-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ffafe4cd5bc5a79b659520f071514db3d78531b5004c441d4b3da16c9c371ff1 +PKG_HASH:=68830ad9d363e24bf1006fe6781c22c00fe6fdafe6c6faf98fb6cbdb80810499 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From e415353fc8829b1973d75a47f474bf3584bb286d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 5 Jul 2022 13:42:03 +0800 Subject: [PATCH 153/972] luci-app-ssr-plus: fix Xray gPRC multi support Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 ++++-- .../root/usr/share/shadowsocksr/gen_config.lua | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6c997b042ee..50ee56802f7 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -462,13 +462,15 @@ o = s:option(Value, "serviceName", translate("gRPC Service Name")) o:depends("transport", "grpc") o.rmempty = true -if is_installed("sagernet-core") then +if is_finded("xray") or is_installed("sagernet-core") then -- gPRC模式 o = s:option(ListValue, "grpc_mode", translate("gRPC Mode")) o:depends("transport", "grpc") o:value("gun", translate("Gun")) o:value("multi", translate("Multi")) - o:value("raw", translate("Raw")) + if is_installed("sagernet-core") then + o:value("raw", translate("Raw")) + end o.rmempty = true end diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 50243b8608d..11e2d76217f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -224,6 +224,7 @@ local Xray = { -- grpc serviceName = server.serviceName or "", mode = (server.grpc_mode ~= "gun") and server.grpc_mode or nil, + multiMode = (server.grpc_mode == "multi") and true or false, idle_timeout = tonumber(server.idle_timeout) or nil, health_check_timeout = tonumber(server.health_check_timeout) or nil, permit_without_stream = (server.permit_without_stream == "1") and true or nil, From 4181ed67df428571e6f60ffabe5948325ff9e0e2 Mon Sep 17 00:00:00 2001 From: ImmortalWrt AutoUpdate Bot Date: Thu, 7 Jul 2022 13:03:21 +0800 Subject: [PATCH 154/972] hysteria: Update to 1.1.0 Signed-off-by: ImmortalWrt AutoUpdate Bot Signed-off-by: Tianling Shen --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index dc90e90ad76..7b8b0b20ab2 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.0.5 +PKG_VERSION:=1.1.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ee2c765fb7e483a7c211624a62f07b6992a763f2bccbd91b3bf81bd2e82ffe63 +PKG_HASH:=57ff13f50d134608c7bb001a11144f5ef7f395b3021eb6531daf486894fb4b9a PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From 266e7dd47c7fe36794302d61be33d8b16743b919 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 7 Jul 2022 13:33:50 +0800 Subject: [PATCH 155/972] naiveproxy: Update to 103.0.5060.53-3 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 36764435a89..3c98c0f2c49 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=103.0.5060.53-2 +PKG_VERSION:=103.0.5060.53-3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=68830ad9d363e24bf1006fe6781c22c00fe6fdafe6c6faf98fb6cbdb80810499 +PKG_HASH:=29ffeb8ee5354739f5445f82665d03fbc78aa34c967d4a5a1d106ae7fa23a918 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From f945d765e695637a8b71d88ad422157473259a13 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 10 Jul 2022 16:52:33 +0000 Subject: [PATCH 156/972] sagernet-core: bump to latest git HEAD --- sagernet-core/Makefile | 6 +++--- sagernet-core/patches/100-obfs.patch | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index 945b31474be..54b6cd29098 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -10,9 +10,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-06-27 -PKG_SOURCE_VERSION:=d81715258c3bc178eaeaccbd9bc19ad1dc2d971f -PKG_MIRROR_HASH:=61b522a994d0ba9f08d81bb81625b2063d5e35c62e0e13a06322e19ddc5088ad +PKG_SOURCE_DATE:=2022-07-06 +PKG_SOURCE_VERSION:=c2f8382035ea4546f1209a51b5683c510f95afcc +PKG_MIRROR_HASH:=12fafd1f631eb51278484066c47db2a4763278e4ccb6e339350676c8717f0b33 PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch index 626c128bf57..cf4d7f9dc84 100644 --- a/sagernet-core/patches/100-obfs.patch +++ b/sagernet-core/patches/100-obfs.patch @@ -22,7 +22,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs require ( github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 // indirect github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect -@@ -81,6 +84,7 @@ require ( +@@ -82,6 +85,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect @@ -32,7 +32,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect --- a/go.sum +++ b/go.sum -@@ -355,6 +355,8 @@ github.com/rogpeppe/go-internal v1.8.0/g +@@ -357,6 +357,8 @@ github.com/rogpeppe/go-internal v1.8.0/g github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= @@ -40,8 +40,8 @@ go get github.com/Dreamacro/clash/transport/simple-obfs +github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= - github.com/sagernet/sing v0.0.0-20220627092450-605697c1aec0 h1:WRc+FBhOM12FwVphxpRgPLcr9+9JmFLuDKIBtoSrvwk= -@@ -394,6 +396,8 @@ github.com/shurcooL/sanitized_anchor_nam + github.com/sagernet/sing v0.0.0-20220705090238-53c9f8d1374f h1:NEwuLgPhel2h2w2i9dZ4qgZr3v3GheL1GYx8t1/FSRU= +@@ -396,6 +398,8 @@ github.com/shurcooL/sanitized_anchor_nam github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= @@ -50,7 +50,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -@@ -453,6 +457,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go +@@ -455,6 +459,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM= go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -58,7 +58,7 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -@@ -569,6 +574,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 +@@ -572,6 +577,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 29b879e555bdaaadfe352abb877f84fb95c5e026 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 17 Jul 2022 19:54:53 +0800 Subject: [PATCH 157/972] xray-plugin: update to 1.5.9 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index c46ea3db3c8..22c8d4b95fa 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.8 +PKG_VERSION:=1.5.9 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1f20d622e684f06e5117bdd3652b2444806cd1f58ea013c9fdcb5ad7fd7982b9 +PKG_HASH:=3bf93eaebc91b70421128f93b0548746e3e870c853aaa8bdffc902a5ff3c209b PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From dc95d0c4ea14aad375bf49cb160b29bea5cb1f7d Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 17 Jul 2022 19:54:03 +0800 Subject: [PATCH 158/972] xray-core: update to 1.5.9 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 1b7412074a3..1065da2b055 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.8 +PKG_VERSION:=1.5.9 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1d1f7f3de0596c430fde6e3027b93c45f5fa340d291c05bc48216750dc77ca8f +PKG_HASH:=ef61f80a32229f583c375ec8da79a1533ba5efae0fcb011e68a0ad0c913f6a87 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 1c09660c107fff350a51af5a56abdebfcd9a1cac Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 18 Jul 2022 12:49:01 +0800 Subject: [PATCH 159/972] luci-app-ssr-plus: fix generate invalid hysteria socks config Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 11e2d76217f..dd09c7cfd4f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -296,7 +296,7 @@ local hysteria = { protocol = server.hysteria_protocol, up_mbps = tonumber(server.uplink_capacity), down_mbps = tonumber(server.downlink_capacity), - socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= "0") and { + socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and { listen = "0.0.0.0:" .. tonumber(socks_port), timeout = 300, disable_udp = false From bde00918cef54456f6e4e40b446d0653ca7871dc Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 26 Jul 2022 19:33:02 +0800 Subject: [PATCH 160/972] v2ray-geodata: bump version Signed-off-by: Tianling Shen --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 4a59f083c80..0df4e728e6d 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202206160052 +GEOIP_VER:=202207140057 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=35b18994e541e5c3e3d64a39af0d2f81f7d88cc7c87bfba5ea5f20a51390a4c6 + HASH:=1c786d10e3a1f84b6088b6d2692cefa7bd34c1b4508de07708f8ecb81ff3cc7c endef -GEOSITE_VER:=20220620091914 +GEOSITE_VER:=20220717025946 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=10555c5a6de954b362bbaf6059a61209bbebc920e67650d6eef184bb846516f5 + HASH:=f719c27f6fa0f4995702ec03a5642d6ee31a59e3d9a4fe825b6a77479a707f3e endef define Package/v2ray-geodata/template From 4a8d04b2bdf9d64ec1a8f68bd09dbd396cd1e3f4 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 26 Jul 2022 19:34:04 +0800 Subject: [PATCH 161/972] luci-app-ssr-plus: fix max open file Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a277b20630c..4c5f0a29924 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -159,6 +159,7 @@ ln_start_bin() { echolog "-----------end------------" _exit 2 } + ulimit -n 1000000 ${file_func:-echolog " - ${ln_name}"} "$@" >/dev/null 2>&1 & } @@ -847,7 +848,6 @@ start() { boot() { echolog "boot!" mkdir -p /var/run /var/lock /var/log /tmp/dnsmasq.d $TMP_BIN_PATH $TMP_DNSMASQ_PATH - ulimit -n 65535 start } From 39e8420842a3a1c350741eb034741d4fa94ddc5a Mon Sep 17 00:00:00 2001 From: HiGarfield <32226909+HiGarfield@users.noreply.github.com> Date: Wed, 27 Jul 2022 19:05:17 +0800 Subject: [PATCH 162/972] shadowsocksr-libev: fix a typo --- shadowsocksr-libev/patches/0003-Refine-Usage.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocksr-libev/patches/0003-Refine-Usage.patch b/shadowsocksr-libev/patches/0003-Refine-Usage.patch index dd44f585579..1d8d7f2931a 100644 --- a/shadowsocksr-libev/patches/0003-Refine-Usage.patch +++ b/shadowsocksr-libev/patches/0003-Refine-Usage.patch @@ -19,7 +19,7 @@ + printf( + " -g Obfs-Param of your remote server.\n"); + printf( -+ " -O Protocol of your remote server: orgin,\n"); ++ " -O Protocol of your remote server: origin,\n"); + printf( + " auth_sha1, auth_sha1_v2, auth_sha1_v4,\n"); + printf( From 74241e1bd5f0ca599441a3078d3b915e641c36a2 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 7 Aug 2022 16:07:06 +0000 Subject: [PATCH 163/972] sagernet-core: Update to latest git HEAD --- sagernet-core/Makefile | 8 +++---- sagernet-core/patches/100-obfs.patch | 35 +++++++++++----------------- 2 files changed, 17 insertions(+), 26 deletions(-) diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile index 54b6cd29098..7f1b2f05921 100644 --- a/sagernet-core/Makefile +++ b/sagernet-core/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=sagernet-core -BASE_VERSION:=5.0.16 +BASE_VERSION:=5.0.17 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-07-06 -PKG_SOURCE_VERSION:=c2f8382035ea4546f1209a51b5683c510f95afcc -PKG_MIRROR_HASH:=12fafd1f631eb51278484066c47db2a4763278e4ccb6e339350676c8717f0b33 +PKG_SOURCE_DATE:=2022-07-30 +PKG_SOURCE_VERSION:=26e36b1cb46f387cacd65c1a5900be592913f842 +PKG_MIRROR_HASH:=f8968ef7df8775f28c30f8115e2ce2e9324b1753526af6c89631edf1b1f56f8d PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) PKG_LICENSE:=GPL-3.0-or-later diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch index cf4d7f9dc84..14268dbe63a 100644 --- a/sagernet-core/patches/100-obfs.patch +++ b/sagernet-core/patches/100-obfs.patch @@ -9,20 +9,11 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go 1.18 require ( -+ github.com/Dreamacro/clash v1.11.0 ++ github.com/Dreamacro/clash v1.11.4 github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb -@@ -50,6 +51,8 @@ replace gvisor.dev/gvisor => github.com/ - - //replace github.com/sagernet/sing => ../sing - -+replace github.com/Dreamacro/clash => github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded -+ - require ( - github.com/aead/cmac v0.0.0-20160719120800-7af84192f0b1 // indirect - github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect -@@ -82,6 +85,7 @@ require ( +@@ -82,6 +83,7 @@ require ( github.com/pmezard/go-difflib v1.0.0 // indirect github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect @@ -32,15 +23,15 @@ go get github.com/Dreamacro/clash/transport/simple-obfs go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect --- a/go.sum +++ b/go.sum -@@ -357,6 +357,8 @@ github.com/rogpeppe/go-internal v1.8.0/g - github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= - github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= - github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -+github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded h1:iw6tWwLTRXgz65wOH8plV20P42q4UN0pgJyc6pQLLDk= -+github.com/sagernet/clash v1.10.7-0.20220610080510-ac56b2a05ded/go.mod h1:qrmVDeYq4Gr8SiGuxVoA4cc4xhq7TNgnLa76AANNYRA= - github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e h1:Y4avBAtZ59OWvLl6zP9sF62jtMEVRPIH78IQctq9aXQ= - github.com/sagernet/gvisor v0.0.0-20220402114650-763d12dc953e/go.mod h1:tWwEcFvJavs154OdjFCw78axNrsDlz4Zh8jvPqwcpGI= - github.com/sagernet/sing v0.0.0-20220705090238-53c9f8d1374f h1:NEwuLgPhel2h2w2i9dZ4qgZr3v3GheL1GYx8t1/FSRU= +@@ -20,6 +20,8 @@ dmitri.shuralyov.com/state v0.0.0-201802 + git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= + github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= + github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= ++github.com/Dreamacro/clash v1.11.4 h1:ZQe/7G+JclA1vvyAn8MtaEBvQK73mWR6lV3BceDaJoY= ++github.com/Dreamacro/clash v1.11.4/go.mod h1:ParIZ6P19q5GDgRE+HV/co7GunFRmvN31YFgNp4cwDw= + github.com/FlowerWrong/water v0.0.0-20180301012659-01a4eaa1f6f2/go.mod h1:xrG5L7lq7T2DLnPr2frMnL906CNEoKRwLB+VYFhPq2w= + github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= + github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= @@ -396,6 +398,8 @@ github.com/shurcooL/sanitized_anchor_nam github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= @@ -51,8 +42,8 @@ go get github.com/Dreamacro/clash/transport/simple-obfs github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -455,6 +459,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go - go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd h1:Uo/x0Ir5vQJ+683GXB9Ug+4fcjsbp7z7Ul8UaZbhsRM= - go.starlark.net v0.0.0-20220328144851-d1966c6b9fcd/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= + go.starlark.net v0.0.0-20220714194419-4cadf0a12139 h1:zMemyQYZSyEdPaUFixYICrXf/0Rfnil7+jiQRf5IBZ0= + go.starlark.net v0.0.0-20220714194419-4cadf0a12139/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= From b6e52ba63ceca70dcf89cd4b11a2153972ff7eaa Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 7 Aug 2022 16:17:29 +0000 Subject: [PATCH 164/972] naiveproxy: update to 104.0.5112.79-2 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- naiveproxy/Makefile | 16 ++++++++-------- naiveproxy/patches/100-macros.patch | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 3c98c0f2c49..4779aa4ab3b 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=103.0.5060.53-3 +PKG_VERSION:=104.0.5112.79-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=29ffeb8ee5354739f5445f82665d03fbc78aa34c967d4a5a1d106ae7fa23a918 +PKG_HASH:=1c0ef77d448eb0cb6b75bfcbda6cef09e93ddfcdf406dc88030d8ddf748639c5 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -75,31 +75,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-10168-gc2a7904a-1 +CLANG_VER:=11722-g3f3a235a-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=9b19d831249a6328f4d8e52de269cb925b9a868e628ee2e30fc4462a77be52f7 + HASH:=0a5a0fa88e0b907c5c5a9dc0f1ccc66d4d993be1cc232932a5fc1f6b362c1925 endef -GN_VER:=578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf +GN_VER:=2ecd43a10266bd091c98e6dcde507c64f6a0dad3 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=9b43714dc93695deef6a7c84aec284601da9277422cf94faff46ffa278100cde + HASH:=fe169001046d8f386aeadf690e2d711e643fb6501519eb57e7dfb64690ff2ba1 endef -PGO_VER:=5060-1655228597-bbe06f169cac6956903f78358c30d94a01938b2e +PGO_VER:=5112-1659156285-2fb52df3d3b1ae50774185b21f856f82b58a35fa PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=67d472fc1be1a08288d985138e8af92fc33fd60d8e253a5b04158a2b9d2d01ea + HASH:=791a8df3733a00e0389bc7b45c4910bab70545d900b6896fe14a329abf2f8952 endef define Build/Prepare diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch index 91299c126d5..f317ccb0708 100644 --- a/naiveproxy/patches/100-macros.patch +++ b/naiveproxy/patches/100-macros.patch @@ -1,6 +1,6 @@ --- a/src/base/allocator/partition_allocator/tagging.cc +++ b/src/base/allocator/partition_allocator/tagging.cc -@@ -17,22 +17,25 @@ +@@ -18,22 +18,25 @@ #define PR_GET_TAGGED_ADDR_CTRL 56 #define PR_TAGGED_ADDR_ENABLE (1UL << 0) From b5a0fd1f3c2624fabb92a67c608522693f4fb9c6 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 7 Aug 2022 16:22:44 +0000 Subject: [PATCH 165/972] v2raya: Update to 1.5.9.1698.1 --- v2raya/Makefile | 6 +++--- v2raya/patches/100-compat-v5.patch | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 v2raya/patches/100-compat-v5.patch diff --git a/v2raya/Makefile b/v2raya/Makefile index 698cb277ccb..2f6828a2e16 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=1.5.8.1 +PKG_VERSION:=1.5.9.1698.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=822ec4a93933d93aed1bda6f9a3c08915135c0fc33bebe5e69b293cf30fe35c2 +PKG_HASH:=247a357230c616bf48309c61d119686e4ad56939c05afef584c45051e9dc6220 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -61,7 +61,7 @@ define Download/v2raya-web URL:=https://codeload.github.com/v2rayA/v2raya-web/tar.gz/v$(PKG_VERSION)? URL_FILE:=$(WEB_FILE) FILE:=$(WEB_FILE) - HASH:=b13beac91d75c64af4ca6d7365716968702ce1be3f0c3e94d26e01daa07f223b + HASH:=149097a42c3e5fa6f5c3cd46d1bf7ec4546e79ad37c1446b759539e700bd75e2 endef define Build/Prepare diff --git a/v2raya/patches/100-compat-v5.patch b/v2raya/patches/100-compat-v5.patch new file mode 100644 index 00000000000..2bd10eeec73 --- /dev/null +++ b/v2raya/patches/100-compat-v5.patch @@ -0,0 +1,10 @@ +--- a/core/v2ray/process.go ++++ b/core/v2ray/process.go +@@ -226,6 +226,7 @@ func StartCoreProcess(ctx context.Contex + dir := path.Dir(v2rayBinPath) + var arguments = []string{ + v2rayBinPath, ++ "run", + "--config=" + asset.GetV2rayConfigPath(), + } + if confdir := asset.GetV2rayConfigDirPath(); confdir != "" { From 75cbc2cd74c581a42bd00b9320b2c3f4e1f09559 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 8 Aug 2022 01:37:30 +0800 Subject: [PATCH 166/972] naiveproxy: fix typo error --- naiveproxy/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 4779aa4ab3b..fa0d08cbe6a 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -75,7 +75,7 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=11722-g3f3a235a-2 +CLANG_VER:=15-init-11722-g3f3a235a-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 From cc64df6fe5e66e6a5cd72f9a6b9ff788ef2a2e3b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 12 Aug 2022 01:13:24 +0800 Subject: [PATCH 167/972] luci-app-ssr-plus: support import hysteria link Closes: #949 Signed-off-by: Tianling Shen --- .../luasrc/view/shadowsocksr/ssrurl.htm | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index adc60031158..4d6f5b70c21 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -93,6 +93,33 @@ var event = document.createEvent("HTMLEvents"); event.initEvent("change", true, true); switch (ssu[0]) { + case "hysteria": + try { + var url = new URL("http://" + ssu[1]); + var params = url.searchParams; + } catch(e) { + alert(e); + return false; + } + + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = ssu[0]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.hysteria_protocol')[0].value = params.get("protocol") || "udp"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_type')[0].value = params.get("auth") ? "1" : "0"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_type')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_payload')[0].value = params.get("auth") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.uplink_capacity')[0].value = params.get("upmbps") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.downlink_capacity')[0].value = params.get("downmbps") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("obfsParam") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("peer") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_tls_alpn')[0].value = params.get("alpn") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = (params.get("insecure") === "1"); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; + + s.innerHTML = "<%:Import configuration information successfully.%>"; + return false; case "ss": var url0, param = ""; var sipIndex = ssu[1].indexOf("@"); From e64cb50f571559a1f651700e189c5adcfad633ee Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 19:01:31 +0800 Subject: [PATCH 168/972] luci-app-ssr-plus: ssrurl: fix parsing VLESS url Signed-off-by: Tianling Shen --- .../luasrc/view/shadowsocksr/ssrurl.htm | 91 ++++++++----------- 1 file changed, 39 insertions(+), 52 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 4d6f5b70c21..cab26901b0f 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -306,79 +306,66 @@ s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vless": - var url0, param = ""; - var ploc = ssu[1].indexOf("#"); - if (ploc > 0) { - url0 = ssu[1].substr(0, ploc); - param = decodeURIComponent(ssu[1].substr(ploc + 1)); - } else { - url0 = ssu[1] + try { + var url = new URL("http://" + ssu[1]); + var params = url.searchParams; + } catch(e) { + alert(e) + return false; } - var sstr = url0; + + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "vless"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event); - var team = sstr.split('@'); - var uuid = team[0] - var serverPart = team[1].split(':'); - var others = serverPart[1].split('?'); - var port = others[0] - var queryParam = {} - if (others.length > 1) { - var queryParams = others[1] - var queryArray = queryParams.split('&'); - for (i = 0; i < queryArray.length; i++) { - var params = queryArray[i].split('='); - queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || ''); - } - } - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = serverPart[0]; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = uuid; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = queryParam.type ? (queryParam.type == "http" ? "h2" : queryParam.type) : "tcp"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = url.username; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : params.get("type") || "tcp"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = queryParam.encryption || "none"; - if (queryParam.security == "tls") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.sni || serverPart[0]; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; + if ([ "tls", "xtls" ].includes(params.get("security"))) { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].checked = true; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].dispatchEvent(event); + if (params.get("security") === "xtls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].value = params.get("flow") || "xtls-rprx-splice"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].dispatchEvent(event); + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; } - switch (queryParam.type) { + switch (params.get("type")) { case "ws": - //document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = queryParam.host; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = queryParam.path || "/"; + if (params.get("security") !== "tls") + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; break; case "kcp": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = queryParam.headerType || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = queryParam.seed; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; break; case "http": document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = queryParam.host || serverPart[0]; document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = queryParam.path || "/"; break; case "quic": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].value = queryParam.headerType || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_security')[0].value = queryParam.quicSecurity || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_key')[0].value = queryParam.key; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_security')[0].value = params.get("quicSecurity") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_key')[0].value = params.get("key") || ""; break; case "grpc": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.serviceName')[0].value = queryParam.serviceName; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.serviceName')[0].value = params.get("serviceName") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.grpc_mode')[0].value = params.get("mode") || "gun"; break; - default: - if (queryParam.security == "xtls") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.xtls')[0].checked = true; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.xtls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].value = queryParam.flow || "xtls-rprx-splice"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.sni || serverPart[0]; - } + case "tcp": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].dispatchEvent(event); + if (params.get("headerType") === "http") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + } break; } - if (param != undefined) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); - } s.innerHTML = "<%:Import configuration information successfully.%>"; return false; default: From f6a37fdf8bc500fb33326432665fc8b402a12931 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 20:21:32 +0800 Subject: [PATCH 169/972] lua-neturl: initial package Signed-off-by: Tianling Shen --- lua-neturl/Makefile | 44 +++++++++++++++++++++ lua-neturl/patches/010-userinfo-regex.patch | 11 ++++++ 2 files changed, 55 insertions(+) create mode 100644 lua-neturl/Makefile create mode 100644 lua-neturl/patches/010-userinfo-regex.patch diff --git a/lua-neturl/Makefile b/lua-neturl/Makefile new file mode 100644 index 00000000000..5b661bd0c49 --- /dev/null +++ b/lua-neturl/Makefile @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2022 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=neturl +PKG_VERSION:=1.1-1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/golgote/neturl/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=25f3a94ba9f435ef1395555de2bf17d6f934d789fa515ed965405919e42be27b + +PKG_MAINTAINER:=Tianling Shen +PKG_LICENSE:=MIT +PKG_LICNESE_FILES:=LICENSE.txt + +include $(INCLUDE_DIR)/package.mk + +define Package/lua-neturl + SUBMENU:=Lua + SECTION:=lang + CATEGORY:=Languages + TITLE:=URL and Query string parser, builder, normalizer for Lua + URL:=https://github.com/golgote/neturl + DEPENDS:=+lua + PKGARCH:=all +endef + +define Package/lua-neturl/description + This small Lua library provides a few functions to parse URL with + querystring and build new URL easily. +endef + +define Build/Compile +endef + +define Package/lua-neturl/install + $(INSTALL_DIR) $(1)/usr/lib/lua + $(CP) $(PKG_BUILD_DIR)/lib/net/url.lua $(1)/usr/lib/lua/ +endef + +$(eval $(call BuildPackage,lua-neturl)) diff --git a/lua-neturl/patches/010-userinfo-regex.patch b/lua-neturl/patches/010-userinfo-regex.patch new file mode 100644 index 00000000000..ad8946a9636 --- /dev/null +++ b/lua-neturl/patches/010-userinfo-regex.patch @@ -0,0 +1,11 @@ +--- a/lib/net/url.lua ++++ b/lib/net/url.lua +@@ -340,7 +340,7 @@ function M:setAuthority(authority) + self.password = v + return '' + end) +- if string.find(userinfo, "^[%w%+%.]+$") then ++ if string.find(userinfo, "^[%p%w%+%.]+$") then + self.user = userinfo + else + -- incorrect userinfo From eed48511cbc19a13cadcfb5dfeeb2783871e1447 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 20:55:30 +0800 Subject: [PATCH 170/972] luci-app-ssr-plus: subscribe: fix parsing VLESS url Fixes: #801 Fixes: #932 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 +- .../root/usr/share/shadowsocksr/subscribe.lua | 113 +++++++----------- 2 files changed, 47 insertions(+), 70 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 6151ed8db01..a373ffc4530 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -29,8 +29,8 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ - +ip-full +iptables +iptables-mod-tproxy +lua +libuci-lua +microsocks +tcping \ - +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \ + +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 52fcd2c1595..44cf2e3d744 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -16,6 +16,7 @@ local tinsert = table.insert local ssub, slen, schar, sbyte, sformat, sgsub = string.sub, string.len, string.char, string.byte, string.format, string.gsub local jsonParse, jsonStringify = luci.jsonc.parse, luci.jsonc.stringify local b64decode = nixio.bin.b64decode +local URL = require "url" local cache = {} local nodeResult = setmetatable({}, {__index = cache}) -- update result local name = 'shadowsocksr' @@ -349,75 +350,51 @@ local function processData(szType, content) end result.password = password elseif szType == "vless" then - local idx_sp = 0 - local alias = "" - if content:find("#") then - idx_sp = content:find("#") - alias = content:sub(idx_sp + 1, -1) - end - local info = content:sub(1, idx_sp - 1) - local hostInfo = split(info, "@") - local host = split(hostInfo[2], ":") - local uuid = hostInfo[1] - if host[2]:find("?") then - local query = split(host[2], "?") - local params = {} - for _, v in pairs(split(UrlDecode(query[2]), '&')) do - local t = split(v, '=') - params[t[1]] = t[2] - end - result.alias = UrlDecode(alias) - result.type = 'v2ray' - result.v2ray_protocol = 'vless' - result.server = host[1] - result.server_port = query[1] - result.vmess_id = uuid - result.vless_encryption = params.encryption or "none" - result.transport = params.type and (params.type == 'http' and 'h2' or params.type) or "tcp" - result.packet_encoding = packet_encoding - if not params.type or params.type == "tcp" then - if params.security == "xtls" then - result.xtls = "1" - result.tls_host = params.sni - result.vless_flow = params.flow - else - result.xtls = "0" - end - end - if params.type == 'ws' then - result.ws_host = params.host - result.ws_path = params.path or "/" - end - if params.type == 'http' then - result.h2_host = params.host - result.h2_path = params.path or "/" - end - if params.type == 'kcp' then - result.kcp_guise = params.headerType or "none" - result.mtu = 1350 - result.tti = 50 - result.uplink_capacity = 5 - result.downlink_capacity = 20 - result.read_buffer_size = 2 - result.write_buffer_size = 2 - result.seed = params.seed - end - if params.type == 'quic' then - result.quic_guise = params.headerType or "none" - result.quic_key = params.key - result.quic_security = params.quicSecurity or "none" - end - if params.type == 'grpc' then - result.serviceName = params.serviceName - end - if params.security == "tls" then - result.tls = "1" - result.tls_host = params.sni - else - result.tls = "0" + local url = URL.parse("http://" .. content) + local params = url.query + + result.alias = url.fragment and UrlDecode(url.fragment) or nil + result.type = "v2ray" + result.v2ray_protocol = "vless" + result.server = url.host + result.port = url.port + result.vmess_id = url.user + result.vless_encryption = params.encryption or "none" + result.transport = params.type or "tcp" + result.packet_encoding = packet_encoding + result.tls = (params.security == "tls") and "1" or "0" + result.tls_host = params.sni + result.xtls = params.security == "xtls" and "1" or nil + result.vless_flow = params.flow + if result.transport == "ws" then + result.ws_host = (result.tls ~= "1") and UrlDecode(params.host) or nil + result.ws_path = UrlDecode(params.path) or "/" + elseif result.transport == "http" then + result.transport = "h2" + result.h2_host = params.host and UrlDecode(params.host) or nil + result.h2_path = params.path and UrlDecode(params.path) or nil + elseif result.transport == "kcp" then + result.kcp_guise = params.headerType or "none" + result.seed = params.seed + result.mtu = 1350 + result.tti = 50 + result.uplink_capacity = 5 + result.downlink_capacity = 20 + result.read_buffer_size = 2 + result.write_buffer_size = 2 + elseif result.transport == "quic" then + result.quic_guise = params.headerType or "none" + result.quic_security = params.quicSecurity or "none" + result.quic_key = params.key + elseif result.transport == "grpc" then + result.serviceName = params.serviceName + result.grpc_mode = params.mode or "gun" + elseif result.transport == "tcp" then + result.tcp_guise = params.headerType or "none" + if result.tcp_guise == "http" then + result.tcp_host = params.host and UrlDecode(params.host) or nil + result.tcp_path = params.path and UrlDecode(params.path) or nil end - else - result.server_port = host[2] end end if not result.alias then From 55ba3d24e7232676aac4d9c575d3ec731981614e Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 21:01:14 +0800 Subject: [PATCH 171/972] luci-app-ssr-plus: subscribe: fix panic Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 44cf2e3d744..8c04c653d37 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -367,8 +367,8 @@ local function processData(szType, content) result.xtls = params.security == "xtls" and "1" or nil result.vless_flow = params.flow if result.transport == "ws" then - result.ws_host = (result.tls ~= "1") and UrlDecode(params.host) or nil - result.ws_path = UrlDecode(params.path) or "/" + result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.ws_path = params.path and UrlDecode(params.path) or "/" elseif result.transport == "http" then result.transport = "h2" result.h2_host = params.host and UrlDecode(params.host) or nil From 483ef9e87a24c37f2d67bb19c17fd2b1e8add0d2 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 22:50:22 +0800 Subject: [PATCH 172/972] luci-app-ssr-plus: workaround xtls bug Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index dd09c7cfd4f..45f710aba5f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -173,7 +173,8 @@ local Xray = { xtlsSettings = (server.xtls == '1' and (server.insecure == "1" or server.tls_host)) and { -- xtls allowInsecure = (server.insecure == "1") and true or nil, - serverName = server.tls_host + serverName = server.tls_host, + minVersion = "1.3" } or nil, tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { -- tcp From d458c2cd49753d7f7ba9b0acdc6b1142bfb436ba Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 13 Aug 2022 22:52:10 +0800 Subject: [PATCH 173/972] luci-app-ssr-plus: bump to 186-6 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index a373ffc4530..64626dc7ee3 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ From b28110ccd228db6a4a98c06d2b8ac369d7fc9bf1 Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Mon, 15 Aug 2022 08:59:42 +0800 Subject: [PATCH 174/972] hysteria: Update to 1.2.0 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 7b8b0b20ab2..c63b6c3e2b1 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.1.0 +PKG_VERSION:=1.2.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=57ff13f50d134608c7bb001a11144f5ef7f395b3021eb6531daf486894fb4b9a +PKG_HASH:=aeff737d81860e736cf2ce239bf8391aea0f50957315eb0b20ea40fd07f29460 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From cb7735f60f734f6c0a40ea4e6914d3c9997c9450 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 15 Aug 2022 20:20:51 +0800 Subject: [PATCH 175/972] luci-app-ssr-plus: subscribe: fix typo error `port` -> `server_port` Fixes: #963 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 8c04c653d37..66219c3e38e 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -357,7 +357,7 @@ local function processData(szType, content) result.type = "v2ray" result.v2ray_protocol = "vless" result.server = url.host - result.port = url.port + result.server_port = url.port result.vmess_id = url.user result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" From a7c51535e5e4211ca6542842f62f53029ad739ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Sun, 28 Aug 2022 14:28:46 +0800 Subject: [PATCH 176/972] v2ray-core: update to 5.0.8 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index ad1375fd1ef..dd96473f578 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.7 +PKG_VERSION:=5.0.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=67a3c5f19eb4b21dd270bb60a17220512d4ff221d2da3070e66926686f140ce3 +PKG_HASH:=19494f3d25a0ecbad4fe4aea0f89d35b8dc0fa1662577a5c747a6d2156726979 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 2b335439c90b78571667024cfca20bc7e90cc171 Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Mon, 29 Aug 2022 15:35:37 +0800 Subject: [PATCH 177/972] xray-core: update to 1.5.10 xray-core: update to 1.5.10 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 1065da2b055..c0269348e2f 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.9 +PKG_VERSION:=1.5.10 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ef61f80a32229f583c375ec8da79a1533ba5efae0fcb011e68a0ad0c913f6a87 +PKG_HASH:=0cce205187a38d7e13dc4e503e9a8667c9cf438844e091bd91989aaac8f2c411 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 8a40e28946f36bfbbba38b6620daf355e01bacaa Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Mon, 29 Aug 2022 15:37:21 +0800 Subject: [PATCH 178/972] xray-plugin: update to 1.5.10 xray-plugin: update to 1.5.10 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 22c8d4b95fa..9e687af5f8a 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.9 +PKG_VERSION:=1.5.10 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3bf93eaebc91b70421128f93b0548746e3e870c853aaa8bdffc902a5ff3c209b +PKG_HASH:=189ccd32c9f49e42a5ebf627a3b2849fe1f05fdf73dd15e7e5d7089aaff833dc PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 1f2e2b9c7cabcb6f51fc188532554bad5bc4c8be Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Mon, 29 Aug 2022 15:39:16 +0800 Subject: [PATCH 179/972] v2ray-geodata: update version v2ray-geodata: update version --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index 0df4e728e6d..dfa5b0ccbf9 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202207140057 +GEOIP_VER:=202208250104 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=1c786d10e3a1f84b6088b6d2692cefa7bd34c1b4508de07708f8ecb81ff3cc7c + HASH:=8fadefdcbb973c5294f81a2142ffcfb0d138e6f8285e643f929d2fe035096075 endef -GEOSITE_VER:=20220717025946 +GEOSITE_VER:=20220827225732 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=f719c27f6fa0f4995702ec03a5642d6ee31a59e3d9a4fe825b6a77479a707f3e + HASH:=107a52601a94baf02fe0d877f0a0f469606c87b9a0df2b7569630004dcb8f86e endef define Package/v2ray-geodata/template From 12d082fc056b5881807d7166d7d32cf7f1d124bc Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Mon, 29 Aug 2022 15:40:43 +0800 Subject: [PATCH 180/972] v2ray-plugin: update to 5.0.8 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index ab2d85d329e..f1ba3bfb13e 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.7 +PKG_VERSION:=5.0.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b14b8e9bc5c70103255d20f623c04d53ff6bbb702d1e69b328f735f9c8378376 +PKG_HASH:=59be00cd39e966815b9acc8612abfe698be94acfd29f0c14b79e2dc51c8bd7de PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 9aa290b952725a3b260fd9004934b6c2a079b6b7 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 31 Aug 2022 09:33:38 +0800 Subject: [PATCH 181/972] README: add Go version note Signed-off-by: Tianling Shen --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 9c6537d2a9e..7905c6baedc 100644 --- a/README.md +++ b/README.md @@ -72,6 +72,19 @@ ### Note +- - - +#### ⚠ For OpenWrt 21.02 or lower version +You have to manually upgrade Golang toolchain to [1.18](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang/golang) or higher to compile Xray-core. + +e.g.: + +```bash +./scripts/feeds update packages +rm -rf feeds/packages/lang/golang +svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang/golang feeds/packages/lang/golang +``` +- - - + If you want to use this repo with official OpenWrt source tree, the following packages need to be added manually: - [dns2socks](https://github.com/immortalwrt/packages/tree/master/net/dns2socks) From 6a2009270a1f99ef49ae62389c3022191fb33c3f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 31 Aug 2022 11:24:54 +0800 Subject: [PATCH 182/972] luci-app-ssr-plus: improve ss selection Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 89 +++++++++++++++++++++++--------------- 1 file changed, 53 insertions(+), 36 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 64626dc7ee3..c71ddd52aca 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -14,15 +14,17 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Server \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Simple_Obfs \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_V2ray_Plugin \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all @@ -47,16 +49,51 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client:shadowsocks-rust-sslocal \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server:shadowsocks-rust-ssserver \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Simple_Obfs:simple-obfs \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_V2ray_Plugin:v2ray-plugin \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-redir \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs:simple-obfs \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \ - +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin:v2ray-plugin + +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) +choice + prompt "Shadowsocks Client Selection" + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client if aarch64 + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client + bool "None" + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client + bool "Shadowsocks-libev" + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client + bool "Shadowsocks-rust" + depends on aarch64||arm||i386||mips||mipsel||x86_64 + depends on !(TARGET_x86_geode||TARGET_x86_legacy) +endchoice + +choice + prompt "Shadowsocks Server Selection" + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server if aarch64 + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server if i386||x86_64||arm + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_server + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Server + bool "None" + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server + bool "Shadowsocks-libev" + + config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server + bool "Shadowsocks-rust" + depends on aarch64||arm||i386||mips||mipsel||x86_64 + depends on !(TARGET_x86_geode||TARGET_x86_legacy) +endchoice + choice prompt "V2ray-core Selection" default PACKAGE_$(PKG_NAME)_INCLUDE_Xray if aarch64||arm||i386||x86_64 @@ -66,13 +103,13 @@ choice bool "None" config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray - bool "Include V2ray-core" + bool "V2ray-core" config PACKAGE_$(PKG_NAME)_INCLUDE_Xray - bool "Include Xray-core" + bool "Xray-core" config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core - bool "Include SagerNet-core (An enhanced edition of v2ray-core)" + bool "SagerNet-core (An enhanced edition of v2ray-core)" endchoice config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun @@ -96,25 +133,13 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client - bool "Include Shadowsocks Libev Client" - default y if arm - -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server - bool "Include Shadowsocks Libev Server" - default y if i386||x86_64||arm - -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client - bool "Include Shadowsocks Rust Client" - depends on aarch64||arm||i386||mips||mipsel||x86_64 - depends on !(TARGET_x86_geode||TARGET_x86_legacy) - default y if aarch64 +config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Simple_Obfs + bool "Include Shadowsocks Simple Obfs Plugin" + default y -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server - bool "Include Shadowsocks Rust Server" - depends on aarch64||arm||i386||mips||mipsel||x86_64 - depends on !(TARGET_x86_geode||TARGET_x86_legacy) - default y if aarch64 +config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_V2ray_Plugin + bool "Include Shadowsocks V2ray Plugin" + default n config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client bool "Include ShadowsocksR Libev Client" @@ -124,18 +149,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server bool "Include ShadowsocksR Libev Server" default y if i386||x86_64||arm -config PACKAGE_$(PKG_NAME)_INCLUDE_Simple_Obfs - bool "Include Shadowsocks Simple Obfs Plugin" - default y if i386||x86_64||arm - config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan bool "Include Trojan" select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks default n - -config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_Plugin - bool "Include Shadowsocks V2ray Plugin" - default n endef define Package/$(PKG_NAME)/conffiles From 360924ead99dd40073f9e1e1d7d0b5f7bbcc90e3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 31 Aug 2022 12:46:06 +0800 Subject: [PATCH 183/972] luci-app-ssr-plus: fix typo error Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index c71ddd52aca..7a820ea2508 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -80,7 +80,7 @@ choice prompt "Shadowsocks Server Selection" default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server if aarch64 default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server if i386||x86_64||arm - default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_server + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Server config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Server bool "None" From 6751a7e0e37ac282cf6649590144858d360e6b8c Mon Sep 17 00:00:00 2001 From: aueu <1732266+aueu@users.noreply.github.com> Date: Thu, 1 Sep 2022 08:07:35 +0800 Subject: [PATCH 184/972] README: fix typo error --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7905c6baedc..4bcc3482fe9 100644 --- a/README.md +++ b/README.md @@ -74,14 +74,14 @@ - - - #### ⚠ For OpenWrt 21.02 or lower version -You have to manually upgrade Golang toolchain to [1.18](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang/golang) or higher to compile Xray-core. +You have to manually upgrade Golang toolchain to [1.18](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang) or higher to compile Xray-core. e.g.: ```bash ./scripts/feeds update packages rm -rf feeds/packages/lang/golang -svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang/golang feeds/packages/lang/golang +svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang feeds/packages/lang/golang ``` - - - From 59a7703de0671a512448fe7dbe6ff65be000cf48 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 18 Aug 2022 00:18:24 +0800 Subject: [PATCH 185/972] luci-app-ssr-plus: remove sing protocol Sing protocol should be used with sing-box. Signed-off-by: Tianling Shen --- .../root/usr/share/shadowsocksr/gen_config.lua | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 45f710aba5f..eb0e6e3695a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -55,15 +55,6 @@ function trojan_shadowsocks() if server.v2ray_protocol == "shadowsocksr" then server.v2ray_protocol = "shadowsocks" - --[[ elseif (server.v2ray_protocol == "shadowsocks") and (server.mux ~= "1") and (not (outbound_settings.plugin or server.transport ~= "tcp" or server.tls or server.xtls)) then - server.v2ray_protocol = "shadowsocks_sing" - outbound_settings = outbound_settings.servers[1] - elseif (server.v2ray_protocol == "trojan") and (server.tls and server.mux ~= "1") and (not (server.transport ~= "tcp" or server.xtls)) then - server.v2ray_protocol = "trojan_sing" - outbound_settings = outbound_settings.servers[1] - outbound_settings.serverName = server.tls_host - outbound_settings.insecure = (server.insecure == "1") and true or false - ]] end end function socks_http() @@ -161,7 +152,7 @@ local Xray = { protocol = server.v2ray_protocol, settings = outbound_settings, -- 底层传输配置 - streamSettings = (server.v2ray_protocol and server.v2ray_protocol:sub(-#"_sing") ~= "_sing") and { + streamSettings = { network = server.transport or "tcp", security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or nil, tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { @@ -231,7 +222,7 @@ local Xray = { permit_without_stream = (server.permit_without_stream == "1") and true or nil, initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil - } or nil, + }, mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { -- mux enabled = true, From c13aa0a454936a714c5d2c16f384c25cdec064b7 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sun, 4 Sep 2022 19:31:02 +0800 Subject: [PATCH 186/972] naiveproxy: fix with python 2.x installed building --- naiveproxy/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index fa0d08cbe6a..2aaf623e443 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -122,7 +122,7 @@ define Build/Configure . ../init_env.sh "$(ARCH)" $(CPU_TYPE) $(CPU_SUBTYPE) "$(TOOLCHAIN_DIR)" ; \ export naive_flags+=" $$$${naive_ccache_flags}" ; \ mkdir -p "out" ; \ - ./gn/out/gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="$(PYTHON)" ; \ + ./gn/out/gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="python3" ; \ popd ; \ ) endef From 9c169bd0821775e829bc27a5405f9e1f24792e28 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 4 Sep 2022 22:05:34 +0800 Subject: [PATCH 187/972] naiveproxy: Update to 105.0.5195.52-1 --- naiveproxy/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 2aaf623e443..8b726608209 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=104.0.5112.79-2 -PKG_RELEASE:=1 +PKG_VERSION:=105.0.5195.52-1 +PKG_RELEASE:=$(AUTORELEASE) PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1c0ef77d448eb0cb6b75bfcbda6cef09e93ddfcdf406dc88030d8ddf748639c5 +PKG_HASH:=1091aee2042ea26bb295456f264bb2f8ed69590e67b3271c1a40d97d99fa2be7 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -75,31 +75,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-11722-g3f3a235a-2 +CLANG_VER:=15-init-15652-g89a99ec9-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=0a5a0fa88e0b907c5c5a9dc0f1ccc66d4d993be1cc232932a5fc1f6b362c1925 + HASH:=79e8d47cbc6897b395742d9d0680f85bd4c278107d4da64b01991d3f0e58323a endef -GN_VER:=2ecd43a10266bd091c98e6dcde507c64f6a0dad3 +GN_VER:=9ef321772ecc161937db69acb346397e0ccc484d GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=fe169001046d8f386aeadf690e2d711e643fb6501519eb57e7dfb64690ff2ba1 + HASH:=cc1a18f0624cbda2d370e790eab97805a1f9533f603371c302e016e2f3a42ff8 endef -PGO_VER:=5112-1659156285-2fb52df3d3b1ae50774185b21f856f82b58a35fa +PGO_VER:=5195-1661252531-bbb1032abc1f63f4076f207ffc254ca9175d93d6 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=791a8df3733a00e0389bc7b45c4910bab70545d900b6896fe14a329abf2f8952 + HASH:=b953ceaa2635e151fbab47d1f667e8a043d8410a6577813892552f5a51d5fa09 endef define Build/Prepare From 5a2eefbd9b4ce072a0b0c6bb5462217706004425 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 8 Sep 2022 11:16:59 +0800 Subject: [PATCH 188/972] naiveproxy: move header files to dedicated folder Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 8b726608209..d204e867fbe 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy PKG_VERSION:=105.0.5195.52-1 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? @@ -135,13 +135,13 @@ define Build/Compile endef define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include + $(INSTALL_DIR) $(1)/usr/include/libcronet $(CP) \ $(PKG_BUILD_DIR)/src/components/grpc_support/include/bidirectional_stream_c.h \ $(PKG_BUILD_DIR)/src/components/cronet/native/generated/cronet.idl_c.h \ $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_c.h \ $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_export.h \ - $(1)/usr/include/ + $(1)/usr/include/libcronet/ endef define Package/naiveproxy/install From 11af5a2ddd7079ef81fc97174d7c6d6a9d9efd94 Mon Sep 17 00:00:00 2001 From: zhusir Date: Fri, 9 Sep 2022 00:01:06 +0800 Subject: [PATCH 189/972] v2ray-core: update to 5.1.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index dd96473f578..5cf9fd0ac5e 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.0.8 +PKG_VERSION:=5.1.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=19494f3d25a0ecbad4fe4aea0f89d35b8dc0fa1662577a5c747a6d2156726979 +PKG_HASH:=b3dbd2bbee9486999b81d1968545c5a6caa7b0f4726a7259939f1bda54fcf5ea PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From d995ceed000728fb10ecff9bd11e541ede6d270d Mon Sep 17 00:00:00 2001 From: zhusir Date: Fri, 9 Sep 2022 00:01:20 +0800 Subject: [PATCH 190/972] v2ray-plugin: update to 5.1.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index f1ba3bfb13e..5b595371ada 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.0.8 +PKG_VERSION:=5.1.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=59be00cd39e966815b9acc8612abfe698be94acfd29f0c14b79e2dc51c8bd7de +PKG_HASH:=8793a4d94131271f3c48b7e2a4d9c0b97148192b96e275717fbc621d8927f7de PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From f6a9be864055fe3a0f932358384f6bcdb4537c12 Mon Sep 17 00:00:00 2001 From: zhusir Date: Fri, 9 Sep 2022 00:01:27 +0800 Subject: [PATCH 191/972] v2ray-geodata: update version --- v2ray-geodata/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index dfa5b0ccbf9..f22c1bec4b9 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202208250104 +GEOIP_VER:=202209080101 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=8fadefdcbb973c5294f81a2142ffcfb0d138e6f8285e643f929d2fe035096075 + HASH:=b46a339025de686bae5fdf5d95e40aa5301e4e8b87a53398e71cfba2213fcf99 endef -GEOSITE_VER:=20220827225732 +GEOSITE_VER:=20220908131416 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=107a52601a94baf02fe0d877f0a0f469606c87b9a0df2b7569630004dcb8f86e + HASH:=569893a101b0d28e20dc4f719f336e33c0b4ca60ace3dc70ca8060630a14db27 endef define Package/v2ray-geodata/template From 943e805d2dac431ca88b2f1fe041bdce594d655c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 10 Sep 2022 15:15:40 +0800 Subject: [PATCH 192/972] luci-app-ssr-plus: ssrurl: fix import hysteria uri Signed-off-by: Tianling Shen --- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index cab26901b0f..8a6e81abba9 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -107,7 +107,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.hysteria_protocol')[0].value = params.get("protocol") || "udp"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_type')[0].value = params.get("auth") ? "1" : "0"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_type')[0].value = params.get("auth") ? "2" : "0"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_type')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.auth_payload')[0].value = params.get("auth") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.uplink_capacity')[0].value = params.get("upmbps") || ""; @@ -115,7 +115,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("obfsParam") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("peer") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_tls_alpn')[0].value = params.get("alpn") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = (params.get("insecure") === "1"); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = params.get("insecure") ? true : false; document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; s.innerHTML = "<%:Import configuration information successfully.%>"; From 4b43ba4af7e03f75635994591191e8c81fbd8831 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 10 Sep 2022 13:58:45 +0000 Subject: [PATCH 193/972] v2raya: fix read core version --- v2raya/patches/100-compat-v5.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/v2raya/patches/100-compat-v5.patch b/v2raya/patches/100-compat-v5.patch index 2bd10eeec73..ef358c9446a 100644 --- a/v2raya/patches/100-compat-v5.patch +++ b/v2raya/patches/100-compat-v5.patch @@ -8,3 +8,14 @@ "--config=" + asset.GetV2rayConfigPath(), } if confdir := asset.GetV2rayConfigDirPath(); confdir != "" { +--- a/core/v2ray/where/where.go ++++ b/core/v2ray/where/where.go +@@ -41,7 +41,7 @@ func GetV2rayServiceVersion() (variant V + if err != nil || len(v2rayPath) <= 0 { + return Unknown, "", fmt.Errorf("cannot find v2ray executable binary") + } +- out, err := exec.Command(v2rayPath, "-version").Output() ++ out, err := exec.Command(v2rayPath, "version").Output() + var fields []string + if fields = strings.Fields(strings.TrimSpace(string(out))); len(fields) < 2 { + return Unknown, "", fmt.Errorf("cannot parse version of v2ray") From be097cb4beac437079341f995f74d0427823683c Mon Sep 17 00:00:00 2001 From: ricksuzade-maker <58425544+ricksuzade-maker@users.noreply.github.com> Date: Thu, 15 Sep 2022 09:52:57 +0800 Subject: [PATCH 194/972] hysteria: bump to 1.2.1 --- hysteria/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index c63b6c3e2b1..a80dd6d5f46 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.2.0 +PKG_VERSION:=1.2.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=aeff737d81860e736cf2ce239bf8391aea0f50957315eb0b20ea40fd07f29460 +PKG_HASH:=cdac1f149651ca5eaa77ea69ee913d0f1391a07da681ad4908a60a6603307543 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE @@ -20,7 +20,7 @@ PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 -GO_PKG:=github.com/tobyxdd/hysteria +GO_PKG:=github.com/HyNetwork/hysteria GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) From 3b17df6d5f1013242339247d2d23fc49c32c6036 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 20 Sep 2022 00:07:08 +0800 Subject: [PATCH 195/972] xray-core: update to 1.6.0 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index c0269348e2f..96adeb7e278 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.5.10 +PKG_VERSION:=1.6.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0cce205187a38d7e13dc4e503e9a8667c9cf438844e091bd91989aaac8f2c411 +PKG_HASH:=b65375090a2d48d358a582837d485bfaa9572e4d1f5a649895b9fd83d0f69e43 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 1e0727dd44e5423ec24522728ff4ab6155b14235 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 20 Sep 2022 21:53:55 +0800 Subject: [PATCH 196/972] xray-plugin: update to 1.6.0 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 9e687af5f8a..85588adf993 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.5.10 +PKG_VERSION:=1.6.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=189ccd32c9f49e42a5ebf627a3b2849fe1f05fdf73dd15e7e5d7089aaff833dc +PKG_HASH:=2c8c07e9ba7d1cf67913ec57ecea29c752893a1d01f09f1776202bd6062c74d1 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From fb0d425d7829f0943e3cd682803b1bf1579d79e8 Mon Sep 17 00:00:00 2001 From: sbwml <984419930@qq.com> Date: Wed, 21 Sep 2022 15:49:30 +0800 Subject: [PATCH 197/972] luci-app-ssr-plus: ws: add enable early data option --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 8 ++++++-- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 50ee56802f7..691f60ee7e8 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -431,16 +431,20 @@ o:depends("transport", "ws") o.rmempty = true if is_finded("v2ray") then + -- 启用WS前置数据 + o = s:option(Flag, "ws_ed_enable", translate("Enable early data")) + o:depends("transport", "ws") + -- WS前置数据 o = s:option(Value, "ws_ed", translate("Max Early Data")) - o:depends("transport", "ws") + o:depends("ws_ed_enable", true) o.datatype = "uinteger" o.default = 2048 o.rmempty = true -- WS前置数据标头 o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) - o:depends("transport", "ws") + o:depends("ws_ed_enable", true) o.default = "Sec-WebSocket-Protocol" o.rmempty = true end diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 9be3eb183bc..8bafc95fc7c 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -727,6 +727,9 @@ msgstr "WebSocket 主机名" msgid "WebSocket Path" msgstr "WebSocket 路径" +msgid "Enable early data" +msgstr "启用前置数据" + msgid "Max Early Data" msgstr "最大前置数据" From 0d85f862ff9dca4c6d346fef43ee66896ce2bb9a Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 26 May 2022 07:32:15 +0000 Subject: [PATCH 198/972] shadowsocks-rust: update to 1.15.0-alpha.8 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 630c754f91d..92a1336cc83 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.14.3 +PKG_VERSION:=1.15.0-alpha.8 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=31968468017772e099e69741212520b15fce0ee67584d20706cc9654c7ce7e4c + PKG_HASH:=52a1da389148767e1d105232ccd3f3ab64e38169ef4c5cb2281fff388004856d else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=066515d3a7ae07a44419472331866b4ad3ffb04b77a71ed8ecc8d20217abfcfb + PKG_HASH:=78dd75be5417fe5980ceb4a3df0107bf326ff67d52b9b992ae5c1fa53fcd1ff0 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=f9c336f94dc081a8e0f4aa7f398ceafedc00c5f7d1981989fdb03b63c298ac57 + PKG_HASH:=45159e87d18f6d831625a32aae4db1dc3e711c37a00da35f4110d0377391bd05 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=1734d2870f5ebdc5475f5100f78546574a99c96d37cd2cf08aad4ef0eb65ecf4 + PKG_HASH:=fe8aa1f8cde55f4e98b1990ed9988bcc1170129fbb7dae7abd293735975f9069 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=8aa4544abf62f2cb1d3b55bbd67d5d371463da9426479fb1dde6cf2b63e267a4 + PKG_HASH:=48f9a3cad7081ccc2dd2aa6af5e5861672d5b49e7f5d9f049cfac572668a37f8 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=f89bfaf414dd4dadf5da0b909111d97c3b8194b929cdba2b781a8fd4175a48c1 + PKG_HASH:=d7a0d688098e86bfaefab2c0eabcbe65792ab9cdb4447b5101781df61b13f091 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=515e7e5e6bc426c7e81bff3beb42e713fd1460d4664fa47df855eb4175c9b8f4 + PKG_HASH:=9d2c62e8e047596139ee5f54bac74bb8bf2d6bc7af43a34ba884e0193dcabf08 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 2f34117ae4092829953e2ac99f48b20c9cad58d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Wed, 5 Oct 2022 14:35:13 +0800 Subject: [PATCH 199/972] Update naiveproxy --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index d204e867fbe..aa7ee2b33f6 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=105.0.5195.52-1 +PKG_VERSION:=106.0.5249.91-1 PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1091aee2042ea26bb295456f264bb2f8ed69590e67b3271c1a40d97d99fa2be7 +PKG_HASH:=691dea8921b7ef48f5073b1a262584ae6b27c844fc28ce0474c98cd4e8ecce04 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -75,31 +75,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=15-init-15652-g89a99ec9-1 +CLANG_VER:=16-init-907-g8b740747-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=79e8d47cbc6897b395742d9d0680f85bd4c278107d4da64b01991d3f0e58323a + HASH:=fc874a199fcb217e246c70a8280f959ad1bfed5de27ab25877421e8588237194 endef -GN_VER:=9ef321772ecc161937db69acb346397e0ccc484d +GN_VER:=0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=cc1a18f0624cbda2d370e790eab97805a1f9533f603371c302e016e2f3a42ff8 + HASH:=b8bd7e136e3fefe8be27b60f8492a0c7648337a7796b538d310c0dbd0b36a82f endef -PGO_VER:=5195-1661252531-bbb1032abc1f63f4076f207ffc254ca9175d93d6 +PGO_VER:=5249-1664382991-4c3563c0a634429d8d381274051e58611ae6cfe3 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=b953ceaa2635e151fbab47d1f667e8a043d8410a6577813892552f5a51d5fa09 + HASH:=91cca2a7922040625c4fdb18db6035a2ffbf59b737bd1706966f1e4da06b468d endef define Build/Prepare From 257f0948466efb35b05b9fe3b81ed720d910afe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Sat, 8 Oct 2022 23:18:21 +0800 Subject: [PATCH 200/972] naiveproxy: update to 106.0.5249.91-2 --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index aa7ee2b33f6..7b44413bf69 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=106.0.5249.91-1 +PKG_VERSION:=106.0.5249.91-2 PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=691dea8921b7ef48f5073b1a262584ae6b27c844fc28ce0474c98cd4e8ecce04 +PKG_HASH:=beecb60b13b30e6e9fedba33604ae1e578fd56ba792f30c61179f0f02a3a9b44 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 80bc9ebd7a72c32d00d8c0f5998c074a046f5498 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Sat, 8 Oct 2022 23:26:03 +0800 Subject: [PATCH 201/972] shadowsocks-rust: update to 1.15.0-alpha.9 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 92a1336cc83..b1df2d30758 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.0-alpha.8 +PKG_VERSION:=1.15.0-alpha.9 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=52a1da389148767e1d105232ccd3f3ab64e38169ef4c5cb2281fff388004856d + PKG_HASH:=bb5a88f8732f1e804ff8533e50ad5b7e4cc72bb780240886df64c3d709413002 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=78dd75be5417fe5980ceb4a3df0107bf326ff67d52b9b992ae5c1fa53fcd1ff0 + PKG_HASH:=493577b1193c980b1471231f9e5b3d124700fc7845edfec39660719cc62d2828 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=45159e87d18f6d831625a32aae4db1dc3e711c37a00da35f4110d0377391bd05 + PKG_HASH:=076b8987dcd9ec9e3d5386469d7efc8eefd0dd1c5267d6f5694ec5f191969e47 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=fe8aa1f8cde55f4e98b1990ed9988bcc1170129fbb7dae7abd293735975f9069 + PKG_HASH:=72b96c5c0ab4eaad12f14970c3882e311f5f0e75df1bf8c8e9bb8e7825a3bb89 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=48f9a3cad7081ccc2dd2aa6af5e5861672d5b49e7f5d9f049cfac572668a37f8 + PKG_HASH:=f3ae1d678a0e5d1566542a3be30c97b8412fb07e569691c7642498333db1b1ec else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=d7a0d688098e86bfaefab2c0eabcbe65792ab9cdb4447b5101781df61b13f091 + PKG_HASH:=86bb6943a1f4bd3b61c9f43ddd7977065461915e963ee872de9edb57b2517225 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=9d2c62e8e047596139ee5f54bac74bb8bf2d6bc7af43a34ba884e0193dcabf08 + PKG_HASH:=b29f9e623bb3d74717159f5d999eed41d7f89317ca3adaed84cef5012e0f4308 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 69de6d2594714d91daccc8c55c03e22ebd789aeb Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 17 Oct 2022 11:01:23 +0800 Subject: [PATCH 202/972] luci-app-ssr-plus: use xray by default v2ray-core still has poor tproxy support. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4c5f0a29924..f9075e22b47 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -328,8 +328,8 @@ start_udp() { ;; v2ray) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port - ln_start_bin $(first_type v2ray xray) v2ray run -config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "v2ray" "xray") version | head -1) Started!" + ln_start_bin $(first_type xray v2ray) v2ray run -config $udp_config_file + echolog "UDP TPROXY Relay:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; trojan) #client gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port @@ -383,9 +383,9 @@ start_shunt() { v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port - ln_start_bin $(first_type v2ray xray) v2ray run -config $shunt_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -config $shunt_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q - echolog "shunt:$($(first_type v2ray xray) version | head -1) Started!" + echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port @@ -471,9 +471,9 @@ start_local() { v2ray) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port - ln_start_bin $(first_type v2ray xray) v2ray run -config $local_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -config $local_config_file fi - echolog "Global_Socks5:$($(first_type "v2ray" "xray") version | head -1) Started!" + echolog "Global_Socks5:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; trojan) #client gen_config_file $LOCAL_SERVER $type 4 $local_port @@ -540,8 +540,8 @@ Start_Run() { ;; v2ray) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port - ln_start_bin $(first_type v2ray xray) v2ray run -config $tcp_config_file - echolog "Main node:$($(first_type v2ray xray) version | head -1) Started!" + ln_start_bin $(first_type xray v2ray) v2ray run -config $tcp_config_file + echolog "Main node:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port From da2ead02c08da941143296460a6e978bbd6a0ac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Sun, 23 Oct 2022 19:53:51 +0800 Subject: [PATCH 203/972] v2ray-geodata: update version --- v2ray-geodata/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile index f22c1bec4b9..32302315e6d 100644 --- a/v2ray-geodata/Makefile +++ b/v2ray-geodata/Makefile @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2021-2022 ImmortalWrt.org include $(TOPDIR)/rules.mk @@ -12,22 +12,22 @@ PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk -GEOIP_VER:=202209080101 +GEOIP_VER:=202210200105 GEOIP_FILE:=geoip.dat.$(GEOIP_VER) define Download/geoip URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ URL_FILE:=geoip.dat FILE:=$(GEOIP_FILE) - HASH:=b46a339025de686bae5fdf5d95e40aa5301e4e8b87a53398e71cfba2213fcf99 + HASH:=08b8039a1a3f6fca59864b658bd0b0698588a950dc08ff76e83d3e204fc10679 endef -GEOSITE_VER:=20220908131416 +GEOSITE_VER:=20221023064040 GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) define Download/geosite URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ URL_FILE:=dlc.dat FILE:=$(GEOSITE_FILE) - HASH:=569893a101b0d28e20dc4f719f336e33c0b4ca60ace3dc70ca8060630a14db27 + HASH:=d1706f66a29795fa29093f85a6cd620854c53911c0b437ba80d81953280d7bf7 endef define Package/v2ray-geodata/template From 2c7bd3a089367ec7079e929c08394d48361ea70f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 24 Oct 2022 20:18:50 +0800 Subject: [PATCH 204/972] chinadns-ng: import package Signed-off-by: Tianling Shen --- chinadns-ng/Makefile | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 chinadns-ng/Makefile diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile new file mode 100644 index 00000000000..6208a920f52 --- /dev/null +++ b/chinadns-ng/Makefile @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=chinadns-ng +PKG_VERSION:=1.0-beta.25 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng.git +PKG_SOURCE_DATE:=2021-05-08 +PKG_SOURCE_VERSION:=14cc6348d67b09cae37d9bce554c89c2c0e0b265 +PKG_MIRROR_HASH:=3b66fc0888d9488e3b8e39df3016d51fae1b43325d292381e94aa3c7d2318282 + +PKG_LICENSE:=AGPL-3.0-only +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=pexcn + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/chinadns-ng + SECTION:=net + CATEGORY:=Network + SUBMENU:=IP Addresses and Names + TITLE:=ChinaDNS next generation, refactoring with epoll and ipset. + URL:=https://github.com/zfl9/chinadns-ng + DEPENDS:=+ipset +endef + +define Package/chinadns-ng/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/chinadns-ng $(1)/usr/bin +endef + +$(eval $(call BuildPackage,chinadns-ng)) From a967774ab184f150b506412649b6f25edb631bd3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 24 Oct 2022 20:17:53 +0800 Subject: [PATCH 205/972] luci-app-ssr-plus: add chinadns-ng support Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 18 +++++--- .../luasrc/model/cbi/shadowsocksr/client.lua | 34 +++++++++++++- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 12 +++++ .../root/etc/init.d/shadowsocksr | 46 +++++++++++++++---- luci-app-ssr-plus/root/usr/bin/ssr-monitor | 32 +++++++++---- 5 files changed, 116 insertions(+), 26 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 7a820ea2508..5f18d11b0d8 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,16 +2,17 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client \ @@ -39,9 +40,10 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ @@ -112,9 +114,9 @@ choice bool "SagerNet-core (An enhanced edition of v2ray-core)" endchoice -config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun - bool "Include Kcptun" - default n +config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + bool "Include ChinaDNS-NG" + default y config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" @@ -124,6 +126,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include IPT2Socks" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun + bool "Include Kcptun" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy bool "Include NaiveProxy" depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 153093011a3..7c6cd00a88c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -5,6 +5,11 @@ local m, s, sec, o local uci = luci.model.uci.cursor() +local validation = require "luci.cbi.datatypes" +local function is_finded(e) + return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false +end + m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) m:section(SimpleSection).template = "shadowsocksr/status" @@ -107,7 +112,34 @@ o:value("114.114.115.115:53", translate("Oversea Mode DNS-2 (114.114.115.115)")) o:depends("pdnsd_enable", "1") o:depends("pdnsd_enable", "2") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") -o.datatype = "hostport" +o.datatype = "ip4addrport" + +if is_finded("chinadns-ng") then + o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) + o:value("wan", translate("Use DNS from WAN")) + o:value("wan_114", translate("Use DNS from WAN and 114DNS")) + o:value("114.114.114.114:53", translate("Nanjing Xinfeng 114DNS (114.114.114.114)")) + o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) + o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) + o:depends({pdnsd_enable = "1", run_mode = "router"}) + o:depends({pdnsd_enable = "2", run_mode = "router"}) + o.description = translate("Custom DNS Server format as IP:PORT (default: disabled)") + o.validate = function(self, value, section) + if (section and value) then + if value == "wan" or value == "wan_114" then + return value + end + + if validation.ip4addrport(value) then + return value + end + + return nil, translate("Expecting: %s"):format(translate("valid address:port")) + end + + return value + end +end return m diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 8bafc95fc7c..95e014e2bc7 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -457,6 +457,18 @@ msgstr "使用 DNS2SOCKS 查询并缓存" msgid "DNS Server IP:Port" msgstr "DNS服务器 IP:Port" +msgid "Domestic DNS Server" +msgstr "国内DNS服务器" + +msgid "Use DNS from WAN" +msgstr "使用WAN下发的DNS" + +msgid "Use DNS from WAN and 114DNS" +msgstr "使用WAN下发的DNS和114DNS" + +msgid "Custom DNS Server format as IP:PORT (default: disabled)" +msgstr "格式为 IP:PORT (默认: 禁用)" + msgid "Update time (every day)" msgstr "更新时间 (每天)" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index f9075e22b47..226fa66c24d 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -26,6 +26,7 @@ shunt_dns_config_file= tmp_local_port= ARG_UDP= dns_port="5335" #dns port +china_dns_port="5333" #china_dns_port tmp_dns_port="300" #dns2socks temporary port tmp_udp_port="301" #udp temporary port tmp_udp_local_port="302" #udp socks temporary port @@ -165,27 +166,45 @@ ln_start_bin() { start_dns() { local ssrplus_dns="$(uci_get_by_type global pdnsd_enable 0)" - local dnsstr="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" - local dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - local dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + local dnsserver="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" + local run_mode="$(uci_get_by_type global run_mode)" if [ "$ssrplus_dns" != "0" ]; then - case "$(uci_get_by_type global run_mode)" in - gfw) ipset add gfwlist $dnsserver 2>/dev/null ;; - oversea) ipset add oversea $dnsserver 2>/dev/null ;; - *) ipset add ss_spec_wan_ac $dnsserver nomatch 2>/dev/null ;; + case "$run_mode" in + gfw) ipset add gfwlist ${dnsserver%:*} 2>/dev/null ;; + oversea) ipset add oversea ${dnsserver%:*} 2>/dev/null ;; + *) ipset add ss_spec_wan_ac ${dnsserver%:*} nomatch 2>/dev/null ;; esac case "$ssrplus_dns" in 1) - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#} pdnsd_enable_flag=1 ;; 2) ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; esac + if [ "$run_mode" = "router" ]; then + local chinadns="$(uci_get_by_type global chinadns_forward)" + if [ -n "$chinadns" ]; then + local wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" + case "$chinadns" in + "wan") chinadns="$wandns" ;; + "wan_114") chinadns="$wandns,114.114.114.114" ;; + esac + + ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r + + uci -q rename "dhcp.@dnsmasq[0].noresolv"="_orig_noresolv" + uci -q rename "dhcp.@dnsmasq[0].server"="_orig_server" + uci -q set "dhcp.@dnsmasq[0].noresolv"="1" + uci -q add_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" + uci -q set "dhcp.@dnsmasq[0]._unused_ssrp_changed"=1 + uci -q commit "dhcp" + fi + fi fi } @@ -871,6 +890,15 @@ stop() { $PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & killall -q -9 v2ray-plugin obfs-local xray-plugin rm -f /var/lock/ssr-monitor.lock + if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then + uci -q del "dhcp.@dnsmasq[0].noresolv" + uci -q del_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" + uci -q rename "dhcp.@dnsmasq[0]._orig_noresolv"="noresolv" + uci -q rename "dhcp.@dnsmasq[0]._orig_server"="server" + uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed" + uci -q commit "dhcp" + killall -9 chinadns-ng + fi if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then rm -rf /tmp/dnsmasq.d/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json /etc/init.d/dnsmasq restart >/dev/null 2>&1 diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index f5c55780dc6..fb9ed57e77d 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -88,25 +88,37 @@ while [ "1" == "1" ]; do #死循环 if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 logger -t "$NAME" "dns2tcp tunnel error.restart!" echolog "dns2tcp tunnel error.restart!" - dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "${dnsserver/:/#}" fi #dns2socks elif [ "$pdnsd_process" -eq 2 ]; then icount=$(busybox ps -w | grep -e ssrplus-dns -e "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | wc -l) if [ "$icount" -lt 2 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "dns2socks $dnsstr tunnel error.restart!" - echolog "dns2socks $dnsstr tunnel error.restart!" - dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + logger -t "$NAME" "dns2socks $dnsserver tunnel error.restart!" + echolog "dns2socks $dnsserver tunnel error.restart!" + dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) kill -9 $(busybox ps -w | grep ssrplus-dns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 kill -9 $(busybox ps -w | grep "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | awk '{print $1}') >/dev/null 2>&1 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q + fi + fi + #chinadns-ng + if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then + icount=$(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | wc -l) + if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 + logger -t "$NAME" "chinadns-ng tunnel error.restart!" + echolog "chinadns-ng tunnel error.restart!" + chinadns=$(uci_get_by_type global chinadns_forward) + wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" + case "$chinadns" in + "wan") chinadns="$wandns" ;; + ""|"wan_114") chinadns="$wandns,114.114.114.114" ;; + esac + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r fi fi done From 51dea8ef5e6ef7fb86b55d9ccfed696b8f2d1235 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 24 Oct 2022 22:48:00 +0800 Subject: [PATCH 206/972] CI: update dependencies Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 0040f3c1336..f09d8e79c51 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -44,7 +44,7 @@ jobs: target: x86-64 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: fetch-depth: 0 @@ -121,7 +121,7 @@ jobs: cat PKG-INFO - name: Store packages - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{env.ARCHIVE_NAME}}-packages path: | @@ -129,7 +129,7 @@ jobs: PKG-INFO - name: Store logs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: ${{env.ARCHIVE_NAME}}-logs path: | From 3ad78ae2790d115bdfd25ae8e241c68595648843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Tue, 25 Oct 2022 13:38:56 +0800 Subject: [PATCH 207/972] hysteria: update to 1.2.2 --- hysteria/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index a80dd6d5f46..dd479a262a7 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -1,16 +1,16 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2022 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.2.1 +PKG_VERSION:=1.2.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=cdac1f149651ca5eaa77ea69ee913d0f1391a07da681ad4908a60a6603307543 +PKG_HASH:=0073e61c4ba67e0b6638303abd8d8b5f4136e01138e1ee35ab4f502014039a88 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From 6c7984e798c33a407e68015e126681b1ba997f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Wed, 26 Oct 2022 20:13:52 +0800 Subject: [PATCH 208/972] xray-plugin: update to 1.6.1 --- xray-plugin/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 85588adf993..77d0b026826 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -1,16 +1,16 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2022 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.0 +PKG_VERSION:=1.6.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2c8c07e9ba7d1cf67913ec57ecea29c752893a1d01f09f1776202bd6062c74d1 +PKG_HASH:=5ae89aec07534c6bf39e2168ccf475ae481c88f650c4bc6dd542078952648b2a PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 294219965e61ab6108bd45789fd14da5dffb21b5 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 28 Oct 2022 00:36:00 +0800 Subject: [PATCH 209/972] Revert "luci-app-ssr-plus: add chinadns-ng support" This reverts commit a967774ab184f150b506412649b6f25edb631bd3. --- luci-app-ssr-plus/Makefile | 18 +++----- .../luasrc/model/cbi/shadowsocksr/client.lua | 34 +------------- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 12 ----- .../root/etc/init.d/shadowsocksr | 46 ++++--------------- luci-app-ssr-plus/root/usr/bin/ssr-monitor | 32 ++++--------- 5 files changed, 26 insertions(+), 116 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 5f18d11b0d8..7a820ea2508 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,17 +2,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=7 +PKG_RELEASE:=6 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client \ @@ -40,10 +39,9 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ - +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ @@ -114,9 +112,9 @@ choice bool "SagerNet-core (An enhanced edition of v2ray-core)" endchoice -config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG - bool "Include ChinaDNS-NG" - default y +config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun + bool "Include Kcptun" + default n config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" @@ -126,10 +124,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include IPT2Socks" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun - bool "Include Kcptun" - default n - config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy bool "Include NaiveProxy" depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 7c6cd00a88c..153093011a3 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -5,11 +5,6 @@ local m, s, sec, o local uci = luci.model.uci.cursor() -local validation = require "luci.cbi.datatypes" -local function is_finded(e) - return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false -end - m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) m:section(SimpleSection).template = "shadowsocksr/status" @@ -112,34 +107,7 @@ o:value("114.114.115.115:53", translate("Oversea Mode DNS-2 (114.114.115.115)")) o:depends("pdnsd_enable", "1") o:depends("pdnsd_enable", "2") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") -o.datatype = "ip4addrport" - -if is_finded("chinadns-ng") then - o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) - o:value("wan", translate("Use DNS from WAN")) - o:value("wan_114", translate("Use DNS from WAN and 114DNS")) - o:value("114.114.114.114:53", translate("Nanjing Xinfeng 114DNS (114.114.114.114)")) - o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) - o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) - o:depends({pdnsd_enable = "1", run_mode = "router"}) - o:depends({pdnsd_enable = "2", run_mode = "router"}) - o.description = translate("Custom DNS Server format as IP:PORT (default: disabled)") - o.validate = function(self, value, section) - if (section and value) then - if value == "wan" or value == "wan_114" then - return value - end - - if validation.ip4addrport(value) then - return value - end - - return nil, translate("Expecting: %s"):format(translate("valid address:port")) - end - - return value - end -end +o.datatype = "hostport" return m diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 95e014e2bc7..8bafc95fc7c 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -457,18 +457,6 @@ msgstr "使用 DNS2SOCKS 查询并缓存" msgid "DNS Server IP:Port" msgstr "DNS服务器 IP:Port" -msgid "Domestic DNS Server" -msgstr "国内DNS服务器" - -msgid "Use DNS from WAN" -msgstr "使用WAN下发的DNS" - -msgid "Use DNS from WAN and 114DNS" -msgstr "使用WAN下发的DNS和114DNS" - -msgid "Custom DNS Server format as IP:PORT (default: disabled)" -msgstr "格式为 IP:PORT (默认: 禁用)" - msgid "Update time (every day)" msgstr "更新时间 (每天)" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 226fa66c24d..f9075e22b47 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -26,7 +26,6 @@ shunt_dns_config_file= tmp_local_port= ARG_UDP= dns_port="5335" #dns port -china_dns_port="5333" #china_dns_port tmp_dns_port="300" #dns2socks temporary port tmp_udp_port="301" #udp temporary port tmp_udp_local_port="302" #udp socks temporary port @@ -166,45 +165,27 @@ ln_start_bin() { start_dns() { local ssrplus_dns="$(uci_get_by_type global pdnsd_enable 0)" - local dnsserver="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" - local run_mode="$(uci_get_by_type global run_mode)" + local dnsstr="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" + local dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') + local dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') if [ "$ssrplus_dns" != "0" ]; then - case "$run_mode" in - gfw) ipset add gfwlist ${dnsserver%:*} 2>/dev/null ;; - oversea) ipset add oversea ${dnsserver%:*} 2>/dev/null ;; - *) ipset add ss_spec_wan_ac ${dnsserver%:*} nomatch 2>/dev/null ;; + case "$(uci_get_by_type global run_mode)" in + gfw) ipset add gfwlist $dnsserver 2>/dev/null ;; + oversea) ipset add oversea $dnsserver 2>/dev/null ;; + *) ipset add ss_spec_wan_ac $dnsserver nomatch 2>/dev/null ;; esac case "$ssrplus_dns" in 1) - ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#} + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" pdnsd_enable_flag=1 ;; 2) ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; esac - if [ "$run_mode" = "router" ]; then - local chinadns="$(uci_get_by_type global chinadns_forward)" - if [ -n "$chinadns" ]; then - local wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" - case "$chinadns" in - "wan") chinadns="$wandns" ;; - "wan_114") chinadns="$wandns,114.114.114.114" ;; - esac - - ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r - - uci -q rename "dhcp.@dnsmasq[0].noresolv"="_orig_noresolv" - uci -q rename "dhcp.@dnsmasq[0].server"="_orig_server" - uci -q set "dhcp.@dnsmasq[0].noresolv"="1" - uci -q add_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" - uci -q set "dhcp.@dnsmasq[0]._unused_ssrp_changed"=1 - uci -q commit "dhcp" - fi - fi fi } @@ -890,15 +871,6 @@ stop() { $PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & killall -q -9 v2ray-plugin obfs-local xray-plugin rm -f /var/lock/ssr-monitor.lock - if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then - uci -q del "dhcp.@dnsmasq[0].noresolv" - uci -q del_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" - uci -q rename "dhcp.@dnsmasq[0]._orig_noresolv"="noresolv" - uci -q rename "dhcp.@dnsmasq[0]._orig_server"="server" - uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed" - uci -q commit "dhcp" - killall -9 chinadns-ng - fi if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then rm -rf /tmp/dnsmasq.d/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json /etc/init.d/dnsmasq restart >/dev/null 2>&1 diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index fb9ed57e77d..f5c55780dc6 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -88,37 +88,25 @@ while [ "1" == "1" ]; do #死循环 if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 logger -t "$NAME" "dns2tcp tunnel error.restart!" echolog "dns2tcp tunnel error.restart!" - dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') + dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "${dnsserver/:/#}" + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" fi #dns2socks elif [ "$pdnsd_process" -eq 2 ]; then icount=$(busybox ps -w | grep -e ssrplus-dns -e "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | wc -l) if [ "$icount" -lt 2 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "dns2socks $dnsserver tunnel error.restart!" - echolog "dns2socks $dnsserver tunnel error.restart!" - dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + logger -t "$NAME" "dns2socks $dnsstr tunnel error.restart!" + echolog "dns2socks $dnsstr tunnel error.restart!" + dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') + dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') kill -9 $(busybox ps -w | grep ssrplus-dns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 kill -9 $(busybox ps -w | grep "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | awk '{print $1}') >/dev/null 2>&1 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q - fi - fi - #chinadns-ng - if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then - icount=$(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | wc -l) - if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "chinadns-ng tunnel error.restart!" - echolog "chinadns-ng tunnel error.restart!" - chinadns=$(uci_get_by_type global chinadns_forward) - wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" - case "$chinadns" in - "wan") chinadns="$wandns" ;; - ""|"wan_114") chinadns="$wandns,114.114.114.114" ;; - esac - kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q fi fi done From 02fc827d256d022e4e8152a96d5a19d754389c00 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 28 Oct 2022 21:25:41 +0800 Subject: [PATCH 210/972] luci-app-ssr-plus: ssrurl: use standard URL scheme to parse trojan link Fixes: #1008 Signed-off-by: Tianling Shen --- .../luasrc/view/shadowsocksr/ssrurl.htm | 41 ++++++------------- 1 file changed, 12 insertions(+), 29 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 8a6e81abba9..31733a1ee42 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -215,42 +215,25 @@ s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "trojan": - var url0, param = ""; - var ploc = ssu[1].indexOf("#"); - if (ploc > 0) { - url0 = ssu[1].substr(0, ploc); - param = ssu[1].substr(ploc + 1); - } else { - url0 = ssu[1] + try { + var url = new URL("http://" + ssu[1]); + } catch(e) { + alert(e) + return false; } - var sstr = url0; + + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "trojan"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event); - var team = sstr.split('@'); - var password = team[0] - var serverPart = team[1].split(':'); - var others = serverPart[1].split('?'); - var port = parseInt(others[0]); - var queryParam = {} - if (others.length > 1) { - var queryParams = others[1] - var queryArray = queryParams.split('&'); - for (i = 0; i < queryArray.length; i++) { - var params = queryArray[i].split('='); - queryParam[decodeURIComponent(params[0])] = decodeURIComponent(params[1] || ''); - } - } - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = serverPart[0]; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port || '443'; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = password; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = decodeURIComponent(url.username); document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = queryParam.sni || ''; - if (param != undefined) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); - } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = url.searchParams.get("sni"); + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vmess": From 28ba48b242944d0094b070215ca518cf40ec35b5 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 30 Oct 2022 01:13:26 +0800 Subject: [PATCH 211/972] xray-plugin: update to 1.6.2 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 77d0b026826..f3a203e0440 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.1 +PKG_VERSION:=1.6.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=5ae89aec07534c6bf39e2168ccf475ae481c88f650c4bc6dd542078952648b2a +PKG_HASH:=6ff62f8c9701ca7679dd65e6ace4127daec1970e9a312a2d1c8b25697a8a48da PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 30aa6a64c12d743923460c882e4962deeccc6d2e Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 30 Oct 2022 01:10:45 +0800 Subject: [PATCH 212/972] xray-core: update to 1.6.1 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 96adeb7e278..9221e9ff892 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.0 +PKG_VERSION:=1.6.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b65375090a2d48d358a582837d485bfaa9572e4d1f5a649895b9fd83d0f69e43 +PKG_HASH:=8b4cc89d83b0ded75630119d9e2456764530490c7fb5e8a27de0cdf9c57fef15 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From b58beeeca7e4b66722487960d061528d53b77615 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 30 Oct 2022 01:11:43 +0800 Subject: [PATCH 213/972] xray-core: update to 1.6.2 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 9221e9ff892..60f73722661 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.1 +PKG_VERSION:=1.6.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8b4cc89d83b0ded75630119d9e2456764530490c7fb5e8a27de0cdf9c57fef15 +PKG_HASH:=bdfeea9dc321007ae4e207c4d6e3a86a6787754a0ac8cf26313b19ce5567c4e9 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 8960a920d4f056bf97444012b2878d376109187d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 26 Oct 2022 15:29:52 +0800 Subject: [PATCH 214/972] luci-app-ssr-plus: fix kill subprocesses Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index f9075e22b47..c98c29cbded 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -868,7 +868,13 @@ stop() { fi $PS -w | grep -v "grep" | grep ssr-monitor | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & $PS -w | grep -v "grep" | grep "sleep 0000" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & - $PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & + ( \ + # Graceful kill first, so programs have the chance to stop its subprocesses + $PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill >/dev/null 2>&1 ; \ + sleep 3s; \ + # Force kill hanged programs + $PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 ; \ + ) killall -q -9 v2ray-plugin obfs-local xray-plugin rm -f /var/lock/ssr-monitor.lock if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then From 912781bc3ea3a8656dae6eddfdd66e98fe61bc35 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 7 Nov 2022 12:50:36 +0800 Subject: [PATCH 215/972] xray-core: update to 1.6.3 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 60f73722661..d6142772a34 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.2 +PKG_VERSION:=1.6.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=bdfeea9dc321007ae4e207c4d6e3a86a6787754a0ac8cf26313b19ce5567c4e9 +PKG_HASH:=2eff51567046ab2046c8f50552bf1f531071f0f9f189a32f7035f243c0143b97 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 823c5c4b82b68fc54aa2cb49b21113f9bb724e5d Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 7 Nov 2022 13:03:59 +0800 Subject: [PATCH 216/972] xray-plugin: update to 1.6.3 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index f3a203e0440..19b9704f4e8 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.2 +PKG_VERSION:=1.6.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6ff62f8c9701ca7679dd65e6ace4127daec1970e9a312a2d1c8b25697a8a48da +PKG_HASH:=0e4eb348ad66d04998e615ebcf987f93f916dfd2ceeee70451d40183664de0dc PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 19ae664cd9c615a5117a78ab1c2a6ad2a289541a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 8 Nov 2022 14:20:33 +0800 Subject: [PATCH 217/972] luci-app-ssr-plus: allow custom fingerprints with XTLS Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 + luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 691f60ee7e8..ab34d268471 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -661,6 +661,7 @@ if is_finded("xray") then o:value("safari", translate("safari")) o:value("randomized", translate("randomized")) o:depends({type = "v2ray", tls = true}) + o:depends({type = "v2ray", xtls = true}) o.default = "disable" end diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index eb0e6e3695a..25ed022aae7 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -161,8 +161,9 @@ local Xray = { allowInsecure = (server.insecure == "1") and true or nil, serverName = server.tls_host } or nil, - xtlsSettings = (server.xtls == '1' and (server.insecure == "1" or server.tls_host)) and { + xtlsSettings = (server.xtls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { -- xtls + fingerprint = server.fingerprint, allowInsecure = (server.insecure == "1") and true or nil, serverName = server.tls_host, minVersion = "1.3" From 9be84f11841d8eb09e245b26621824873c8dc130 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 8 Nov 2022 14:29:50 +0800 Subject: [PATCH 218/972] luci-app-ssr-plus: support Xray TLS flow Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 14 ++++++++++++++ .../root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ab34d268471..39bbc631d77 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -124,6 +124,12 @@ local flows = { "xtls-rprx-splice-udp443" } +local tls_flows = { + -- tls + "xtls-rprx-vision", + "xtls-rprx-vision-udp443" +} + m = Map("shadowsocksr", translate("Edit ShadowSocksR Server")) m.redirect = luci.dispatcher.build_url("admin/services/shadowsocksr/servers") if m.uci:get("shadowsocksr", sid) ~= "servers" then @@ -648,6 +654,14 @@ o.default = "xtls-rprx-splice" o:depends("xtls", true) -- [[ TLS部分 ]] -- +-- Flow +o = s:option(Value, "tls_flow", translate("Flow")) +for _, v in ipairs(tls_flows) do + o:value(v, translate(v)) +end +o.rmempty = true +o:depends({type = "v2ray", v2ray_protocol = "vless", "tls" = true}) + o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) o:depends({type = "trojan", tls = true}) o.default = "0" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 25ed022aae7..b18d2492ea3 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -22,7 +22,7 @@ function vmess_vless() id = server.vmess_id, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil + flow = (server.xtls == '1') and (server.vless_flow or "xtls-rprx-splice") or (server.tls == '1') and server.tls_flow or nil } } } @@ -48,7 +48,7 @@ function trojan_shadowsocks() method = ((server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss) or ((server.v2ray_protocol == "shadowsocksr") and server.encrypt_method) or nil, uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, - flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow and server.vless_flow or "xtls-rprx-splice") or nil + flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow or "xtls-rprx-splice") or nil } } } From 5989cfbe07ef8061353929fb25ac21838e394960 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 8 Nov 2022 14:40:16 +0800 Subject: [PATCH 219/972] luci-app-ssr-plus: hide tls flow for v2ray-core Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 31 +++++++++---------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 39bbc631d77..c82255615cb 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -642,26 +642,25 @@ if is_finded("xray") then o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "kcp", tls = false}) o:depends({type = "v2ray", v2ray_protocol = "trojan", transport = "tcp", tls = false}) o:depends({type = "v2ray", v2ray_protocol = "trojan", transport = "kcp", tls = false}) -end --- Flow -o = s:option(Value, "vless_flow", translate("Flow")) -for _, v in ipairs(flows) do - o:value(v, translate(v)) -end -o.rmempty = true -o.default = "xtls-rprx-splice" -o:depends("xtls", true) + -- Flow + o = s:option(Value, "vless_flow", translate("Flow")) + for _, v in ipairs(flows) do + o:value(v, translate(v)) + end + o.rmempty = true + o.default = "xtls-rprx-splice" + o:depends("xtls", true) --- [[ TLS部分 ]] -- --- Flow -o = s:option(Value, "tls_flow", translate("Flow")) -for _, v in ipairs(tls_flows) do - o:value(v, translate(v)) + o = s:option(Value, "tls_flow", translate("Flow")) + for _, v in ipairs(tls_flows) do + o:value(v, translate(v)) + end + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless", "tls" = true}) end -o.rmempty = true -o:depends({type = "v2ray", v2ray_protocol = "vless", "tls" = true}) +-- [[ TLS部分 ]] -- o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) o:depends({type = "trojan", tls = true}) o.default = "0" From f44fc737fb6848e4618d3f4e7e55b53f486ac085 Mon Sep 17 00:00:00 2001 From: HQ Ong Date: Tue, 8 Nov 2022 17:09:47 +0800 Subject: [PATCH 220/972] Fix typo --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c82255615cb..c0498700976 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -657,7 +657,7 @@ if is_finded("xray") then o:value(v, translate(v)) end o.rmempty = true - o:depends({type = "v2ray", v2ray_protocol = "vless", "tls" = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", tls = true}) end -- [[ TLS部分 ]] -- From 498d40f6aec8917dadcb42a3f8d8453ea1f493a2 Mon Sep 17 00:00:00 2001 From: lxhao61 Date: Thu, 10 Nov 2022 20:03:29 +0800 Subject: [PATCH 221/972] hysteria: update to 1.3.0 (#1030) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index dd479a262a7..3c8b23a1eb9 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.2.2 +PKG_VERSION:=1.3.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0073e61c4ba67e0b6638303abd8d8b5f4136e01138e1ee35ab4f502014039a88 +PKG_HASH:=76137ec58245df72f9f8258bad1627bbd157f9ca5475b49e0ad897f22d7e7baf PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From f4366abc71c169a16893fa2cfbfa48453233f5b9 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 23:47:39 +0800 Subject: [PATCH 222/972] Revert "README: add Go version note" It was updated. This reverts commit 9aa290b952725a3b260fd9004934b6c2a079b6b7. Signed-off-by: Tianling Shen --- README.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/README.md b/README.md index 4bcc3482fe9..9c6537d2a9e 100644 --- a/README.md +++ b/README.md @@ -72,19 +72,6 @@ ### Note -- - - -#### ⚠ For OpenWrt 21.02 or lower version -You have to manually upgrade Golang toolchain to [1.18](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang) or higher to compile Xray-core. - -e.g.: - -```bash -./scripts/feeds update packages -rm -rf feeds/packages/lang/golang -svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang feeds/packages/lang/golang -``` -- - - - If you want to use this repo with official OpenWrt source tree, the following packages need to be added manually: - [dns2socks](https://github.com/immortalwrt/packages/tree/master/net/dns2socks) From dce451503af1004fc2d7c95e0da5669576b7005f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 12:44:56 +0000 Subject: [PATCH 223/972] v2raya: fix procd service inactive --- v2raya/files/v2raya.init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index a8295b6f450..9c207f7d947 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -34,7 +34,7 @@ append_env_bool() { start_service() { config_load "$CONF" - is_enabled "config" "enabled" || exit 1 + is_enabled "config" "enabled" || return 1 procd_open_instance "$CONF" procd_set_param command "$PROG" From 2863939087419a9ba74ddd9697464d1ef1a107f0 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 12:47:37 +0000 Subject: [PATCH 224/972] v2raya: add options to support hook scripts See https://v2raya.org/docs/manual/hook/ for details. Signed-off-by: Tianling Shen --- v2raya/files/v2raya.config | 13 +++++++++++++ v2raya/files/v2raya.init | 3 +++ 2 files changed, 16 insertions(+) diff --git a/v2raya/files/v2raya.config b/v2raya/files/v2raya.config index fbda47431a0..d9ff36581af 100644 --- a/v2raya/files/v2raya.config +++ b/v2raya/files/v2raya.config @@ -31,6 +31,19 @@ config v2raya 'config' # Additional v2ray config directory, files in it will be combined with config generated by v2rayA option v2ray_confdir '' + # The executable file to run in the transparent proxy life-cycle. + # v2rayA will pass in the --transparent-type (tproxy, redirect) + # and --stage (pre-start, post-start, pre-stop, post-stop) arguments. + option transparent_hook '' + + # The executable file to run in the v2ray-core life-cycle. + # v2rayA will pass in the --stage (pre-start, post-start, pre-stop, post-stop) argument. + option core_hook '' + + # The executable file to run in the v2ray-core life-cycle. + # v2rayA will pass in the --stage (pre-start, post-start, pre-stop, post-stop) argument. + option plugin_manager '' + # Specify the certification path instead of automatically generating a self-signed certificate. # Example: /etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key option vless_grpc_inbound_cert_key '' diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index 9c207f7d947..4120e90ffd0 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -48,6 +48,9 @@ start_service() { append_env_arg "config" "log_max_days" "3" append_env_arg "config" "v2ray_bin" append_env_arg "config" "v2ray_confdir" + append_env_arg "config" "transparent_hook" + append_env_arg "config" "core_hook" + append_env_arg "config" "plugin_manager" append_env_arg "config" "vless_grpc_inbound_cert_key" append_env_bool "config" "log_disable_color" append_env_bool "config" "log_disable_timestamp" From 54c6919665366a2890c34870df53d5ac35437cad Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 12:53:24 +0000 Subject: [PATCH 225/972] v2raya: backport upstream fixes Signed-off-by: Tianling Shen --- .../010-fixed-for-Docker-Compose.patch | 46 +++ v2raya/patches/011-cleaned-up.patch | 37 ++ v2raya/patches/012-improved.patch | 38 ++ ...-interface-ppp-to-avoid-to-break-net.patch | 38 ++ ...ad-from-vless-sharing-link-and-add-m.patch | 105 ++++++ ...that-supervisor-cannot-exit-normally.patch | 100 ++++++ ...ected-exit-does-not-apply-stop-steps.patch | 52 +++ .../017-optimize-reduce-disk-writes.patch | 336 ++++++++++++++++++ ...x-do-not-rollback-closed-transaction.patch | 27 ++ 9 files changed, 779 insertions(+) create mode 100644 v2raya/patches/010-fixed-for-Docker-Compose.patch create mode 100644 v2raya/patches/011-cleaned-up.patch create mode 100644 v2raya/patches/012-improved.patch create mode 100644 v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch create mode 100644 v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch create mode 100644 v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch create mode 100644 v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch create mode 100644 v2raya/patches/017-optimize-reduce-disk-writes.patch create mode 100644 v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch diff --git a/v2raya/patches/010-fixed-for-Docker-Compose.patch b/v2raya/patches/010-fixed-for-Docker-Compose.patch new file mode 100644 index 00000000000..8461660f7bb --- /dev/null +++ b/v2raya/patches/010-fixed-for-Docker-Compose.patch @@ -0,0 +1,46 @@ +From 78336e55a31db578c139a5bb472aa0fc219c169d Mon Sep 17 00:00:00 2001 +From: Xiaoxu Guo +Date: Thu, 4 Aug 2022 16:24:04 +0800 +Subject: [PATCH] fixed for Docker Compose + +--- + service/core/iptables/tproxy.go | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/core/iptables/tproxy.go ++++ b/core/iptables/tproxy.go +@@ -65,6 +65,7 @@ iptables -w 2 -t mangle -A TP_PRE -p udp + + iptables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark + iptables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN ++iptables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN + ` +@@ -123,6 +124,8 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud + + ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark + ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN ++ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN ++ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN + ` +@@ -156,7 +159,7 @@ ip6tables -w 2 -t mangle -A TP_MARK -j C + + func (t *tproxy) GetCleanCommands() Setter { + commands := ` +-ip rule del fwmark 0x40/0xc0 table 100 ++ip rule del fwmark 0x40/0xc0 table 100 + ip route del local 0.0.0.0/0 dev lo table 100 + + iptables -w 2 -t mangle -F TP_OUT +@@ -172,7 +175,7 @@ iptables -w 2 -t mangle -X TP_MARK + ` + if IsIPv6Supported() { + commands += ` +-ip -6 rule del fwmark 0x40/0xc0 table 100 ++ip -6 rule del fwmark 0x40/0xc0 table 100 + ip -6 route del local ::/0 dev lo table 100 + + ip6tables -w 2 -t mangle -F TP_OUT diff --git a/v2raya/patches/011-cleaned-up.patch b/v2raya/patches/011-cleaned-up.patch new file mode 100644 index 00000000000..74dc502ec4f --- /dev/null +++ b/v2raya/patches/011-cleaned-up.patch @@ -0,0 +1,37 @@ +From 0db405f50fd652d494f2066fc5e47c41666c96db Mon Sep 17 00:00:00 2001 +From: Xiaoxu Guo +Date: Thu, 4 Aug 2022 16:32:42 +0800 +Subject: [PATCH] cleaned up + +--- + service/core/iptables/tproxy.go | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +--- a/core/iptables/tproxy.go ++++ b/core/iptables/tproxy.go +@@ -124,7 +124,6 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud + + ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark + ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN +-ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN +@@ -159,7 +158,7 @@ ip6tables -w 2 -t mangle -A TP_MARK -j C + + func (t *tproxy) GetCleanCommands() Setter { + commands := ` +-ip rule del fwmark 0x40/0xc0 table 100 ++ip rule del fwmark 0x40/0xc0 table 100 + ip route del local 0.0.0.0/0 dev lo table 100 + + iptables -w 2 -t mangle -F TP_OUT +@@ -175,7 +174,7 @@ iptables -w 2 -t mangle -X TP_MARK + ` + if IsIPv6Supported() { + commands += ` +-ip -6 rule del fwmark 0x40/0xc0 table 100 ++ip -6 rule del fwmark 0x40/0xc0 table 100 + ip -6 route del local ::/0 dev lo table 100 + + ip6tables -w 2 -t mangle -F TP_OUT diff --git a/v2raya/patches/012-improved.patch b/v2raya/patches/012-improved.patch new file mode 100644 index 00000000000..1c755d01530 --- /dev/null +++ b/v2raya/patches/012-improved.patch @@ -0,0 +1,38 @@ +From 4a87a6fc9a17939cc0fc54058b2128b1f688045a Mon Sep 17 00:00:00 2001 +From: Xiaoxu Guo +Date: Thu, 4 Aug 2022 22:56:46 +0800 +Subject: [PATCH] improved + +--- + service/core/iptables/tproxy.go | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +--- a/core/iptables/tproxy.go ++++ b/core/iptables/tproxy.go +@@ -16,7 +16,7 @@ var Tproxy tproxy + func (t *tproxy) AddIPWhitelist(cidr string) { + // avoid duplication + t.RemoveIPWhitelist(cidr) +- pos := 5 ++ pos := 6 + if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { + pos += 3 + } +@@ -65,7 +65,7 @@ iptables -w 2 -t mangle -A TP_PRE -p udp + + iptables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark + iptables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN +-iptables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN ++iptables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN + ` +@@ -124,7 +124,7 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud + + ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark + ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN +-ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN ++ip6tables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN + ` diff --git a/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch b/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch new file mode 100644 index 00000000000..0ff5f6a5417 --- /dev/null +++ b/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch @@ -0,0 +1,38 @@ +From ca6a05273284daa04856a840e64f3936f700b7c3 Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Fri, 16 Sep 2022 15:13:11 +0800 +Subject: [PATCH] fix: we should skip interface ppp+ to avoid to break net + +--- + service/core/iptables/tproxy.go | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +--- a/core/iptables/tproxy.go ++++ b/core/iptables/tproxy.go +@@ -16,7 +16,7 @@ var Tproxy tproxy + func (t *tproxy) AddIPWhitelist(cidr string) { + // avoid duplication + t.RemoveIPWhitelist(cidr) +- pos := 6 ++ pos := 8 + if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { + pos += 3 + } +@@ -68,6 +68,8 @@ iptables -w 2 -t mangle -A TP_RULE -m ma + iptables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN ++iptables -w 2 -t mangle -A TP_RULE -i ppp+ -j RETURN ++iptables -w 2 -t mangle -A TP_RULE -i dn42-+ -j RETURN + ` + if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { + commands += ` +@@ -127,6 +129,8 @@ ip6tables -w 2 -t mangle -A TP_RULE -m m + ip6tables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN + ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN ++ip6tables -w 2 -t mangle -A TP_RULE -i ppp+ -j RETURN ++ip6tables -w 2 -t mangle -A TP_RULE -i dn42-+ -j RETURN + ` + if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { + commands += ` diff --git a/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch b/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch new file mode 100644 index 00000000000..ba503062445 --- /dev/null +++ b/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch @@ -0,0 +1,105 @@ +From 5db722b22b39642280572a62b149d4e1efa21ce3 Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Mon, 8 Aug 2022 22:30:36 +0800 +Subject: [PATCH] fix: seed cannot be read from vless sharing-link and add + missing sni field. #616 + +--- + service/core/serverObj/v2ray.go | 24 +++++++++++------------- + 1 file changed, 11 insertions(+), 13 deletions(-) + +--- a/core/serverObj/v2ray.go ++++ b/core/serverObj/v2ray.go +@@ -12,7 +12,6 @@ import ( + "time" + + jsoniter "github.com/json-iterator/go" +- "github.com/tidwall/gjson" + "github.com/v2rayA/v2rayA/common" + "github.com/v2rayA/v2rayA/core/coreObj" + "github.com/v2rayA/v2rayA/core/v2ray/service" +@@ -39,6 +38,7 @@ type V2Ray struct { + Net string `json:"net"` + Type string `json:"type"` + Host string `json:"host"` ++ SNI string `json:"sni"` + Path string `json:"path"` + TLS string `json:"tls"` + Flow string `json:"flow,omitempty"` +@@ -69,7 +69,8 @@ func ParseVlessURL(vless string) (data * + ID: u.User.String(), + Net: u.Query().Get("type"), + Type: u.Query().Get("headerType"), +- Host: u.Query().Get("sni"), ++ Host: u.Query().Get("host"), ++ SNI: u.Query().Get("sni"), + Path: u.Query().Get("path"), + TLS: u.Query().Get("security"), + Flow: u.Query().Get("flow"), +@@ -86,16 +87,13 @@ func ParseVlessURL(vless string) (data * + if data.Type == "" { + data.Type = "none" + } +- if data.Host == "" { +- data.Host = u.Query().Get("host") +- } + if data.TLS == "" { + data.TLS = "none" + } + if data.Flow == "" { + data.Flow = "xtls-rprx-direct" + } +- if data.Type == "mkcp" || data.Type == "kcp" { ++ if data.Net == "mkcp" || data.Net == "kcp" { + data.Path = u.Query().Get("seed") + } + return data, nil +@@ -145,6 +143,7 @@ func ParseVmessURL(vmess string) (data * + if aid == "" { + aid = q.Get("aid") + } ++ sni := q.Get("sni") + info = V2Ray{ + ID: subMatch[1], + Add: subMatch[2], +@@ -152,6 +151,7 @@ func ParseVmessURL(vmess string) (data * + Ps: ps, + Host: obfsParam, + Path: path, ++ SNI: sni, + Net: obfs, + Aid: aid, + TLS: map[string]string{"1": "tls"}[q.Get("tls")], +@@ -165,12 +165,6 @@ func ParseVmessURL(vmess string) (data * + if err != nil { + return + } +- if info.Host == "" { +- sni := gjson.Get(raw, "sni") +- if sni.Exists() { +- info.Host = sni.String() +- } +- } + } + // correct the wrong vmess as much as possible + if strings.HasPrefix(info.Host, "/") && info.Path == "" { +@@ -328,7 +322,9 @@ func (v *V2Ray) Configuration(info Prior + core.StreamSettings.TLSSettings.AllowInsecure = true + } + // SNI +- if v.Host != "" { ++ if v.SNI != "" { ++ core.StreamSettings.TLSSettings.ServerName = v.SNI ++ } else if v.Host != "" { + core.StreamSettings.TLSSettings.ServerName = v.Host + } + // Alpn +@@ -345,6 +341,8 @@ func (v *V2Ray) Configuration(info Prior + // SNI + if v.Host != "" { + core.StreamSettings.XTLSSettings.ServerName = v.Host ++ } else if v.Host != "" { ++ core.StreamSettings.TLSSettings.ServerName = v.Host + } + if v.AllowInsecure { + core.StreamSettings.XTLSSettings.AllowInsecure = true diff --git a/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch b/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch new file mode 100644 index 00000000000..5447dc0f9e9 --- /dev/null +++ b/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch @@ -0,0 +1,100 @@ +From 3f78422f81f3abc2668fc3938b31d213bfe4dfff Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Sun, 28 Aug 2022 17:54:36 +0800 +Subject: [PATCH] fix: a problem that supervisor cannot exit normally + +--- + service/core/specialMode/infra/handle.go | 11 ++++++---- + service/core/specialMode/infra/supervisor.go | 22 ++++++++------------ + 2 files changed, 16 insertions(+), 17 deletions(-) + +--- a/core/specialMode/infra/handle.go ++++ b/core/specialMode/infra/handle.go +@@ -127,10 +127,13 @@ func (interfaceHandle *handle) handleRec + return results, msg + } + +-func packetFilter(portCache *portCache, pPacket *gopacket.Packet, whitelistDnsServers *v2router.GeoIPMatcher) (m *dnsmessage.Message, pSAddr, pSPort, pDAddr, pDPort *gopacket.Endpoint) { +- packet := *pPacket +- trans := packet.TransportLayer() ++func packetFilter(portCache *portCache, packet gopacket.Packet, whitelistDnsServers *v2router.GeoIPMatcher) (m *dnsmessage.Message, pSAddr, pSPort, pDAddr, pDPort *gopacket.Endpoint) { ++ //跳过非网络层的包 ++ if packet.NetworkLayer() == nil { ++ return ++ } + //跳过非传输层的包 ++ trans := packet.TransportLayer() + if trans == nil { + return + } +@@ -180,7 +183,7 @@ func packetFilter(portCache *portCache, + } + + func (interfaceHandle *handle) handlePacket(packet gopacket.Packet, ifname string, whitelistDnsServers *v2router.GeoIPMatcher, whitelistDomains *strmatcher.MatcherGroup) { +- m, sAddr, sPort, dAddr, dPort := packetFilter(interfaceHandle.portCache, &packet, whitelistDnsServers) ++ m, sAddr, sPort, dAddr, dPort := packetFilter(interfaceHandle.portCache, packet, whitelistDnsServers) + if m == nil { + return + } +--- a/core/specialMode/infra/supervisor.go ++++ b/core/specialMode/infra/supervisor.go +@@ -9,7 +9,6 @@ import ( + v2router "github.com/v2rayA/v2ray-lib/router" + "github.com/v2rayA/v2rayA/pkg/util/log" + "sync" +- "time" + ) + + type DnsSupervisor struct { +@@ -70,7 +69,7 @@ func (d *DnsSupervisor) DeleteHandles(if + } + close(d.handles[ifname].done) + delete(d.handles, ifname) +- log.Trace("DnsSupervisor:%v closed", ifname) ++ log.Trace("DnsSupervisor:%v deleted", ifname) + return + } + +@@ -81,28 +80,24 @@ func (d *DnsSupervisor) Run(ifname strin + d.inner.Lock() + handle, ok := d.handles[ifname] + if !ok { ++ d.inner.Unlock() + return fmt.Errorf("Run: %v not exsits", ifname) + } + if handle.running { ++ d.inner.Unlock() + return fmt.Errorf("Run: %v is running", ifname) + } + handle.running = true + log.Trace("[DnsSupervisor] " + ifname + ": running") +- pkgsrc := gopacket.NewPacketSource(handle, layers.LayerTypeEthernet) ++ // we only decode UDP packets ++ pkgsrc := gopacket.NewPacketSource(handle, layers.LayerTypeDNS) + pkgsrc.NoCopy = true ++ //pkgsrc.Lazy = true + d.inner.Unlock() + packets := pkgsrc.Packets() + go func() { +- for { +- //心跳包,防止内存泄漏 +- packets <- gopacket.NewPacket(nil, layers.LinkTypeEthernet, gopacket.DecodeOptions{}) +- select { +- case <-handle.done: +- return +- default: +- time.Sleep(2 * time.Second) +- } +- } ++ <-handle.done ++ packets <- gopacket.NewPacket(nil, layers.LinkTypeEthernet, pkgsrc.DecodeOptions) + }() + out: + for packet := range packets { +@@ -113,5 +108,6 @@ out: + } + go handle.handlePacket(packet, ifname, whitelistDnsServers, whitelistDomains) + } ++ log.Trace("DnsSupervisor:%v closed", ifname) + return + } diff --git a/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch b/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch new file mode 100644 index 00000000000..a945dbdebef --- /dev/null +++ b/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch @@ -0,0 +1,52 @@ +From 153b72ed623876ad73b731c2ec2344e9057d3c35 Mon Sep 17 00:00:00 2001 +From: mzz2017 +Date: Wed, 21 Sep 2022 16:50:24 +0800 +Subject: [PATCH] fix: unexpected exit does not apply stop steps + +--- + service/core/v2ray/process.go | 4 ++-- + service/core/v2ray/processManager.go | 8 +++----- + 2 files changed, 5 insertions(+), 7 deletions(-) + +--- a/core/v2ray/process.go ++++ b/core/v2ray/process.go +@@ -35,7 +35,7 @@ type Process struct { + tag2WhichIndex map[string]int + } + +-func NewProcess(tmpl *Template, prestart func() error, poststart func() error) (process *Process, err error) { ++func NewProcess(tmpl *Template, prestart func() error, poststart func() error, stopfunc func(p *Process)) (process *Process, err error) { + process = &Process{ + template: tmpl, + } +@@ -111,7 +111,7 @@ func NewProcess(tmpl *Template, prestart + // canceled by v2rayA + return + } +- defer ProcessManager.Stop(false) ++ defer stopfunc(process) + var t []string + if p != nil { + if p.Success() { +--- a/core/v2ray/processManager.go ++++ b/core/v2ray/processManager.go +@@ -245,16 +245,14 @@ func (m *CoreProcessManager) Start(t *Te + return m.beforeStart(t) + }, func() error { + return m.afterStart(t) ++ }, func(p *Process) { ++ m.p = p ++ ProcessManager.Stop(false) + }) + if err != nil { + return err + } + m.p = process +- defer func() { +- if err != nil { +- m.stop(true) +- } +- }() + + configure.SetRunning(true) + return nil diff --git a/v2raya/patches/017-optimize-reduce-disk-writes.patch b/v2raya/patches/017-optimize-reduce-disk-writes.patch new file mode 100644 index 00000000000..5437570c93a --- /dev/null +++ b/v2raya/patches/017-optimize-reduce-disk-writes.patch @@ -0,0 +1,336 @@ +From 00366b224b2e28861b80f677e8aa604c5d08dae3 Mon Sep 17 00:00:00 2001 +From: Kelo +Date: Sat, 29 Oct 2022 16:27:26 +0800 +Subject: [PATCH] optimize: reduce disk writes + +--- + service/db/boltdb.go | 43 +++++++++++++++++++++++++++++++---- + service/db/listOp.go | 48 +++++++++++++++++++++------------------ + service/db/plainOp.go | 52 ++++++++++++++++++++++++------------------- + service/db/setOp.go | 20 +++++++++-------- + 4 files changed, 105 insertions(+), 58 deletions(-) + +--- a/db/boltdb.go ++++ b/db/boltdb.go +@@ -1,13 +1,14 @@ + package db + + import ( +- "go.etcd.io/bbolt" +- "github.com/v2rayA/v2rayA/conf" +- "github.com/v2rayA/v2rayA/pkg/util/copyfile" +- "github.com/v2rayA/v2rayA/pkg/util/log" + "os" + "path/filepath" + "sync" ++ ++ "github.com/v2rayA/v2rayA/conf" ++ "github.com/v2rayA/v2rayA/pkg/util/copyfile" ++ "github.com/v2rayA/v2rayA/pkg/util/log" ++ "go.etcd.io/bbolt" + ) + + var once sync.Once +@@ -46,3 +47,37 @@ func DB() *bbolt.DB { + once.Do(initDB) + return db + } ++ ++// The function should return a dirty flag. ++// If the dirty flag is true and there is no error then the transaction is commited. ++// Otherwise, the transaction is rolled back. ++func Transaction(db *bbolt.DB, fn func(*bbolt.Tx) (bool, error)) error { ++ tx, err := db.Begin(true) ++ if err != nil { ++ return err ++ } ++ defer tx.Rollback() ++ dirty, err := fn(tx) ++ if err != nil { ++ _ = tx.Rollback() ++ return err ++ } ++ if !dirty { ++ return nil ++ } ++ return tx.Commit() ++} ++ ++// If the bucket does not exist, the dirty flag is setted ++func CreateBucketIfNotExists(tx *bbolt.Tx, name []byte, dirty *bool) (*bbolt.Bucket, error) { ++ bkt := tx.Bucket(name) ++ if bkt != nil { ++ return bkt, nil ++ } ++ bkt, err := tx.CreateBucket(name) ++ if err != nil { ++ return nil, err ++ } ++ *dirty = true ++ return bkt, nil ++} +--- a/db/listOp.go ++++ b/db/listOp.go +@@ -2,13 +2,14 @@ package db + + import ( + "fmt" +- "go.etcd.io/bbolt" +- jsoniter "github.com/json-iterator/go" +- "github.com/tidwall/gjson" +- "github.com/tidwall/sjson" + "reflect" + "sort" + "strconv" ++ ++ jsoniter "github.com/json-iterator/go" ++ "github.com/tidwall/gjson" ++ "github.com/tidwall/sjson" ++ "go.etcd.io/bbolt" + ) + + func ListSet(bucket string, key string, index int, val interface{}) (err error) { +@@ -31,20 +32,21 @@ func ListSet(bucket string, key string, + } + + func ListGet(bucket string, key string, index int) (b []byte, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + v := bkt.Get([]byte(key)) + if v == nil { +- return fmt.Errorf("ListGet: can't get element from an empty list") ++ return dirty, fmt.Errorf("ListGet: can't get element from an empty list") + } + r := gjson.GetBytes(v, strconv.Itoa(index)) + if r.Exists() { + b = []byte(r.Raw) +- return nil ++ return dirty, nil + } else { +- return fmt.Errorf("ListGet: no such element") ++ return dirty, fmt.Errorf("ListGet: no such element") + } + } + }) +@@ -79,24 +81,25 @@ func ListAppend(bucket string, key strin + } + + func ListGetAll(bucket string, key string) (list [][]byte, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + b := bkt.Get([]byte(key)) + if b == nil { +- return nil ++ return dirty, nil + } + parsed := gjson.ParseBytes(b) + if !parsed.IsArray() { +- return fmt.Errorf("ListGetAll: is not array") ++ return dirty, fmt.Errorf("ListGetAll: is not array") + } + results := parsed.Array() + for _, r := range results { + list = append(list, []byte(r.Raw)) + } + } +- return nil ++ return dirty, nil + }) + return list, err + } +@@ -143,21 +146,22 @@ func ListRemove(bucket, key string, inde + } + + func ListLen(bucket string, key string) (length int, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + b := bkt.Get([]byte(key)) + if b == nil { +- return nil ++ return dirty, nil + } + parsed := gjson.ParseBytes(b) + if !parsed.IsArray() { +- return fmt.Errorf("ListLen: is not array") ++ return dirty, fmt.Errorf("ListLen: is not array") + } + length = len(parsed.Array()) + } +- return nil ++ return dirty, nil + }) + return length, err + } +--- a/db/plainOp.go ++++ b/db/plainOp.go +@@ -2,50 +2,54 @@ package db + + import ( + "fmt" +- "go.etcd.io/bbolt" ++ + jsoniter "github.com/json-iterator/go" + "github.com/v2rayA/v2rayA/common" + "github.com/v2rayA/v2rayA/pkg/util/log" ++ "go.etcd.io/bbolt" + ) + + func Get(bucket string, key string, val interface{}) (err error) { +- return DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ return Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + if v := bkt.Get([]byte(key)); v == nil { +- return fmt.Errorf("Get: key is not found") ++ return dirty, fmt.Errorf("Get: key is not found") + } else { +- return jsoniter.Unmarshal(v, val) ++ return dirty, jsoniter.Unmarshal(v, val) + } + } + }) + } + + func GetRaw(bucket string, key string) (b []byte, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + v := bkt.Get([]byte(key)) + if v == nil { +- return fmt.Errorf("GetRaw: key is not found") ++ return dirty, fmt.Errorf("GetRaw: key is not found") + } + b = common.BytesCopy(v) +- return nil ++ return dirty, nil + } + }) + return b, err + } + + func Exists(bucket string, key string) (exists bool) { +- if err := DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ if err := Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + v := bkt.Get([]byte(key)) + exists = v != nil +- return nil ++ return dirty, nil + } + }); err != nil { + log.Warn("%v", err) +@@ -55,23 +59,25 @@ func Exists(bucket string, key string) ( + } + + func GetBucketLen(bucket string) (length int, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + length = bkt.Stats().KeyN + } +- return nil ++ return dirty, nil + }) + return length, err + } + + func GetBucketKeys(bucket string) (keys []string, err error) { +- err = DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { +- return bkt.ForEach(func(k, v []byte) error { ++ return dirty, bkt.ForEach(func(k, v []byte) error { + keys = append(keys, string(k)) + return nil + }) +--- a/db/setOp.go ++++ b/db/setOp.go +@@ -4,8 +4,9 @@ import ( + "bytes" + "crypto/sha256" + "encoding/gob" +- "go.etcd.io/bbolt" ++ + "github.com/v2rayA/v2rayA/common" ++ "go.etcd.io/bbolt" + ) + + type set map[[32]byte]interface{} +@@ -28,26 +29,27 @@ func toSha256(val interface{}) (hash [32 + } + + func setOp(bucket string, key string, f func(m set) (readonly bool, err error)) (err error) { +- return DB().Update(func(tx *bbolt.Tx) error { +- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { +- return err ++ return Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { ++ dirty := false ++ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { ++ return dirty, err + } else { + var m set + v := bkt.Get([]byte(key)) + if v == nil { + m = make(set) + } else if err := gob.NewDecoder(bytes.NewReader(v)).Decode(&m); err != nil { +- return err ++ return dirty, err + } + if readonly, err := f(m); err != nil { +- return err ++ return dirty, err + } else if readonly { +- return nil ++ return dirty, nil + } + if b, err := common.ToBytes(m); err != nil { +- return err ++ return dirty, err + } else { +- return bkt.Put([]byte(key), b) ++ return true, bkt.Put([]byte(key), b) + } + } + }) diff --git a/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch b/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch new file mode 100644 index 00000000000..b9815f4592b --- /dev/null +++ b/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch @@ -0,0 +1,27 @@ +From 451912074ba1ba4000c66874876bc0a6b64cb5da Mon Sep 17 00:00:00 2001 +From: Kelo +Date: Sun, 30 Oct 2022 16:49:22 +0800 +Subject: [PATCH] fix: do not rollback closed transaction + +--- + service/db/boltdb.go | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/db/boltdb.go ++++ b/db/boltdb.go +@@ -56,14 +56,13 @@ func Transaction(db *bbolt.DB, fn func(* + if err != nil { + return err + } +- defer tx.Rollback() + dirty, err := fn(tx) + if err != nil { + _ = tx.Rollback() + return err + } + if !dirty { +- return nil ++ return tx.Rollback() + } + return tx.Commit() + } From 4f51416d9cba31208b7c8ef4517f8eacb68884f4 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 12:34:50 +0000 Subject: [PATCH 226/972] naiveproxy: update to 107.0.5304.87-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 65 +++++++++----------------------------- naiveproxy/src/init_env.sh | 6 ++-- 2 files changed, 18 insertions(+), 53 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 7b44413bf69..40d7ee9a521 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=106.0.5249.91-2 -PKG_RELEASE:=2 +PKG_VERSION:=107.0.5304.87-1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=beecb60b13b30e6e9fedba33604ae1e578fd56ba792f30c61179f0f02a3a9b44 +PKG_HASH:=f97f0ad880e5a784bd3fa5dd5d114434ab7e393736d90a902c0d2d3ec95e9ff0 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -35,24 +35,13 @@ endif include $(INCLUDE_DIR)/package.mk -define Package/naiveproxy/Default - URL:=https://github.com/klzgrad/naiveproxy - DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) +libatomic -endef - define Package/naiveproxy - $(call Package/naiveproxy/Default) SECTION:=net CATEGORY:=Network SUBMENU:=Web Servers/Proxies TITLE:=Make a fortune quietly -endef - -define Package/libcronet - $(call Package/naiveproxy/Default) - SECTION:=libs - CATEGORY:=Libraries - TITLE:=The Chromium network stack library + URL:=https://github.com/klzgrad/naiveproxy + DEPENDS:=@!(arc||armeb||mips||mips64||powerpc||TARGET_gemini) +libatomic endef define Package/naiveproxy/description @@ -61,13 +50,6 @@ define Package/naiveproxy/description ensures best practices in performance and security. endef -define Package/libcronet/description - Cronet is the Chromium network stack made available to Android apps as a library. - - Cronet takes advantage of multiple technologies that reduce the latency and - increase the throughput of the network requests that your app needs to work. -endef - ifneq ($(CONFIG_CCACHE),) export CCACHE_SLOPPINESS=time_macros export CCACHE_BASEDIR=$(PKG_BUILD_DIR)/src @@ -75,44 +57,46 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-907-g8b740747-1 +CLANG_VER:=16-init-4609-g025a5b22-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=fc874a199fcb217e246c70a8280f959ad1bfed5de27ab25877421e8588237194 + HASH:=bbcf6a3456cb6d8648a6bb15fca27bcb77902318090d2eee6cbc9472acc0ef69 endef -GN_VER:=0bcd37bd2b83f1a9ee17088037ebdfe6eab6d31a +GN_VER:=fff29c1b3f9703ea449f720fe70fa73575ef24e5 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=b8bd7e136e3fefe8be27b60f8492a0c7648337a7796b538d310c0dbd0b36a82f + HASH:=3fa137a6a090f5ac69593de6b19f8bfe6115e2383f15b6394509d431eea3cb5b endef -PGO_VER:=5249-1664382991-4c3563c0a634429d8d381274051e58611ae6cfe3 +PGO_VER:=5304-1666778341-6952d9583ad8c5425ae6677daa28778c2175311f PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=91cca2a7922040625c4fdb18db6035a2ffbf59b737bd1706966f1e4da06b468d + HASH:=7ac8186cec385515c6164dbfe05b05e4c6c2b25b5733e2d6b2c932670b2bd6cf endef define Build/Prepare $(call Build/Prepare/Default) ( \ - cd $(PKG_BUILD_DIR)/src ; \ + pushd $(PKG_BUILD_DIR)/src ; \ mkdir -p "chrome/build/pgo_profiles" ; \ $(CP) "$(DL_DIR)/$(PGO_FILE)" "chrome/build/pgo_profiles" ; \ mkdir -p "third_party/llvm-build/Release+Asserts" ; \ $(TAR) -xzf "$(DL_DIR)/$(CLANG_FILE)" -C "third_party/llvm-build/Release+Asserts" ; \ + echo -e "llvmorg-$(CLANG_VER)" > "third_party/llvm-build/Release+Asserts/cr_build_revision" ; \ mkdir -p "gn/out" ; \ unzip -o "$(DL_DIR)/$(GN_FILE)" -d "gn/out" ; \ + popd ; \ ) endef @@ -128,20 +112,7 @@ define Build/Configure endef define Build/Compile - $(if $(CONFIG_PACKAGE_naiveproxy), \ - ninja -C "$(PKG_BUILD_DIR)/src/out/Release" naive) - $(if $(CONFIG_PACKAGE_libcronet), \ - ninja -C "$(PKG_BUILD_DIR)/src/out/Release" cronet) -endef - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/libcronet - $(CP) \ - $(PKG_BUILD_DIR)/src/components/grpc_support/include/bidirectional_stream_c.h \ - $(PKG_BUILD_DIR)/src/components/cronet/native/generated/cronet.idl_c.h \ - $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_c.h \ - $(PKG_BUILD_DIR)/src/components/cronet/native/include/cronet_export.h \ - $(1)/usr/include/libcronet/ + +$(NINJA) -C "$(PKG_BUILD_DIR)/src/out/Release" naive endef define Package/naiveproxy/install @@ -149,14 +120,8 @@ define Package/naiveproxy/install $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/out/Release/naive $(1)/usr/bin/naive endef -define Package/libcronet/install - $(INSTALL_DIR) $(1)/usr/lib - $(CP) $(PKG_BUILD_DIR)/src/out/Release/libcronet.so $(1)/usr/lib/ -endef - $(eval $(call Download,CLANG)) $(eval $(call Download,GN_TOOL)) $(eval $(call Download,PGO_PROF)) $(eval $(call BuildPackage,naiveproxy)) -$(eval $(call BuildPackage,libcronet)) diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 8341f6770c1..89dff80019c 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -40,7 +40,7 @@ export naive_flags=" is_official_build=true exclude_unwind_tables=true enable_resource_allowlist_generation=false -symbol_level=0 +symbol_level=1 is_clang=true use_sysroot=false @@ -91,7 +91,7 @@ case "${target_arch}" in [ -n "${cpu_type}" ] && naive_flags+=" arm_cpu=\"${cpu_type}\"" ;; "mipsel"|"mips64el") - naive_flags+=" use_gold=false use_thin_lto=false use_lld=false chrome_pgo_phase=0 mips_arch_variant=\"r2\"" - [ "${target_arch}" == "mipsel" ] && naive_flags+=" mips_float_abi=\"soft\" mips_tune=\"${cpu_type}\"" + naive_flags+=" use_thin_lto=false chrome_pgo_phase=0 mips_arch_variant=\"r2\"" + [ "${target_arch}" == "mipsel" ] && naive_flags+=" mips_float_abi=\"soft\"" ;; esac From 72661a22bbd74606990a391e9dc20428bef6a515 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 10 Nov 2022 23:52:11 +0800 Subject: [PATCH 227/972] naiveproxy: fix build with openwrt-21.02 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 40d7ee9a521..206199e5203 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -112,7 +112,7 @@ define Build/Configure endef define Build/Compile - +$(NINJA) -C "$(PKG_BUILD_DIR)/src/out/Release" naive + ninja -C "$(PKG_BUILD_DIR)/src/out/Release" naive endef define Package/naiveproxy/install From bba41d838ace442b9f67f4ac78924a58e928563f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 13 Nov 2022 13:35:48 +0800 Subject: [PATCH 228/972] naiveproxy: Update to 107.0.5304.87-3 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 4 ++-- naiveproxy/src/init_env.sh | 12 +++++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 206199e5203..f281cd7ed4f 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=107.0.5304.87-1 +PKG_VERSION:=107.0.5304.87-3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f97f0ad880e5a784bd3fa5dd5d114434ab7e393736d90a902c0d2d3ec95e9ff0 +PKG_HASH:=a97787c8fff1d3569398dd9cbd263ca8688c919352db08478d2cc2668559cf23 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 89dff80019c..eb777f35874 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -44,10 +44,6 @@ symbol_level=1 is_clang=true use_sysroot=false -use_allocator=\"none\" -use_allocator_shim=false -use_partition_alloc=false - fatal_linker_warnings=false treat_warnings_as_errors=false @@ -92,6 +88,12 @@ case "${target_arch}" in ;; "mipsel"|"mips64el") naive_flags+=" use_thin_lto=false chrome_pgo_phase=0 mips_arch_variant=\"r2\"" - [ "${target_arch}" == "mipsel" ] && naive_flags+=" mips_float_abi=\"soft\"" + if [ "${target_arch}" == "mipsel" ]; then + if [ "${cpu_subtype}" == "24kf" ]; then + naive_flags+=" mips_float_abi=\"hard\"" + else + naive_flags+=" mips_float_abi=\"soft\"" + fi + fi ;; esac From 3e4d797c01a364a51766fda15305c5a2395532f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Mon, 14 Nov 2022 13:50:18 +0800 Subject: [PATCH 229/972] xray-core: update to 1.6.4 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index d6142772a34..4007e5a38ea 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.3 +PKG_VERSION:=1.6.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2eff51567046ab2046c8f50552bf1f531071f0f9f189a32f7035f243c0143b97 +PKG_HASH:=8f81aecb5c28585c98ea95e563d2f03a7d21daa333778f9c4f0aeed27afacef4 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From d0d2e1738841dc71888b48f0682effaada9753d5 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Tue, 15 Nov 2022 00:45:02 +0800 Subject: [PATCH 230/972] luci-app-ssr-plus: add dedpend CONFIG_PACKAGE_dnsmasq_full_ipset --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 7a820ea2508..d63f0e70a9c 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -30,7 +30,7 @@ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ - +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +ipset +kmod-ipt-nat \ + +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat \ +ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:curl \ From fb5bc1f1fdca74db72255ca89c67d0c7c8fc391b Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 17 Nov 2022 19:42:45 +0800 Subject: [PATCH 231/972] move dist feed pacakges --- README.md | 11 --------- dns2socks/Makefile | 53 ++++++++++++++++++++++++++++++++++++++++++++ ipt2socks/Makefile | 45 +++++++++++++++++++++++++++++++++++++ microsocks/Makefile | 43 ++++++++++++++++++++++++++++++++++++ redsocks2/Makefile | 54 +++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 195 insertions(+), 11 deletions(-) create mode 100644 dns2socks/Makefile create mode 100644 ipt2socks/Makefile create mode 100644 microsocks/Makefile create mode 100644 redsocks2/Makefile diff --git a/README.md b/README.md index 9c6537d2a9e..44732b506f8 100644 --- a/README.md +++ b/README.md @@ -70,17 +70,6 @@ ./scripts/feeds install -a ``` -### Note - -If you want to use this repo with official OpenWrt source tree, the following packages need to be added manually: - -- [dns2socks](https://github.com/immortalwrt/packages/tree/master/net/dns2socks) -- [microsocks](https://github.com/immortalwrt/packages/tree/master/net/microsocks) -- [ipt2socks](https://github.com/immortalwrt/packages/tree/master/net/ipt2socks) -- [redsocks2](https://github.com/immortalwrt/packages/tree/master/net/redsocks2) - -You may use `svn` to check them out, e.g.: - ```bash mkdir -p package/helloworld for i in "dns2socks" "microsocks" "ipt2socks" "pdnsd-alt" "redsocks2"; do \ diff --git a/dns2socks/Makefile b/dns2socks/Makefile new file mode 100644 index 00000000000..47662fa09a7 --- /dev/null +++ b/dns2socks/Makefile @@ -0,0 +1,53 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=dns2socks +PKG_VERSION:=2.1 +PKG_RELEASE:=2 + +PKG_SOURCE:=SourceCode.zip +PKG_SOURCE_URL:=@SF/dns2socks +PKG_SOURCE_DATE:=2020-02-18 +PKG_HASH:=406b5003523577d39da66767adfe54f7af9b701374363729386f32f6a3a995f4 + +PKG_MAINTAINER:=ghostmaker +PKG_LICENSE:=BSD-3-Clause +PKG_LICENSE_FILE:=LICENSE + +include $(INCLUDE_DIR)/package.mk + +UNZIP_CMD:=unzip -q -d $(PKG_BUILD_DIR) $(DL_DIR)/$(PKG_SOURCE) + +define Package/dns2socks + SECTION:=net + CATEGORY:=Network + SUBMENU:=IP Addresses and Names + TITLE:=DNS to SOCKS or HTTP proxy + URL:=http://dns2socks.sourceforge.net/ + DEPENDS:=+libpthread +endef + +define Package/dns2socks/description + This is a command line utility to resolve DNS requests via + a SOCKS tunnel like Tor or a HTTP proxy. +endef + +define Build/Compile + $(TARGET_CC) \ + $(TARGET_CFLAGS) \ + $(TARGET_CPPFLAGS) \ + $(FPIC) \ + -o $(PKG_BUILD_DIR)/DNS2SOCKS/dns2socks \ + $(PKG_BUILD_DIR)/DNS2SOCKS/DNS2SOCKS.c \ + $(TARGET_LDFLAGS) -pthread +endef + +define Package/dns2socks/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/DNS2SOCKS/dns2socks $(1)/usr/bin/dns2socks +endef + +$(eval $(call BuildPackage,dns2socks)) diff --git a/ipt2socks/Makefile b/ipt2socks/Makefile new file mode 100644 index 00000000000..39943a25210 --- /dev/null +++ b/ipt2socks/Makefile @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=ipt2socks +PKG_VERSION:=1.1.3 +PKG_RELEASE:=3 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/zfl9/ipt2socks/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=73a2498dc95934c225d358707e7f7d060b5ce81aa45260ada09cbd15207d27d1 + +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 + +PKG_LICENSE:=AGPL-3.0 +PKG_LICENSE_FILE:=LICENSE + +include $(INCLUDE_DIR)/package.mk + +define Package/ipt2socks + SECTION:=net + CATEGORY:=Network + TITLE:=Convert iptables to socks5 + URL:=https://github.com/zfl9/ipt2socks + DEPENDS:=+libpthread +endef + +define Package/ipt2socks/description + Utility for converting iptables (redirect/tproxy) to socks5. +endef + +TARGET_CFLAGS+= $(FPIC) -flto +MAKE_FLAGS+= \ + CFLAGS="-std=c99 -pthread $(TARGET_CFLAGS)" \ + EVCFLAGS="$(TARGET_CFLAGS)" + +define Package/ipt2socks/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/ipt2socks $(1)/usr/bin +endef + +$(eval $(call BuildPackage,ipt2socks)) diff --git a/microsocks/Makefile b/microsocks/Makefile new file mode 100644 index 00000000000..061a752624e --- /dev/null +++ b/microsocks/Makefile @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=microsocks +PKG_VERSION:=1.0.3 +PKG_RELEASE:=$(AUTORELEASE) + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=6801559b6f8e17240ed8eef17a36eea8643412b5a7476980fd4e24b02a021b82 + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=COPYING +PKG_MAINTAINER:=lean + +PKG_BUILD_PARALLEL:=1 +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/microsocks + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Tiny, portable SOCKS5 server + URL:=https://github.com/rofl0r/microsocks + DEPENDS:=+libpthread +endef + +define Package/microsocks/description + A SOCKS5 service that you can run on your remote boxes to tunnel connections + through them, if for some reason SSH doesn't cut it for you. +endef + +define Package/microsocks/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/local/bin/microsocks $(1)/usr/bin/microsocks +endef + +$(eval $(call BuildPackage,microsocks)) diff --git a/redsocks2/Makefile b/redsocks2/Makefile new file mode 100644 index 00000000000..f649b745b34 --- /dev/null +++ b/redsocks2/Makefile @@ -0,0 +1,54 @@ +# +# Copyright (C) 2014 OpenWrt-dist +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + + +PKG_NAME:=redsocks2 +PKG_VERSION:=0.67 +PKG_RELEASE:=4 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/semigodking/redsocks.git +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE_VERSION:=d94c245ea47859cda5b4b7373308589206b97bdc +PKG_MIRROR_HASH:=938f859d1b55a91aa5cbcda3ddff1d04ccab292f784b0434060c73acab12c457 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz +PKG_MAINTAINER:=semigodking +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)/$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk + +define Package/redsocks2 + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Redirect any TCP connection to a SOCKS or HTTPS proxy server + URL:=https://github.com/semigodking/redsocks + DEPENDS:=+libevent2 +libopenssl +endef + +define Package/redsocks2/description +This is a modified version of original redsocks. \ +The name is changed to be REDSOCKS2 since this release to distinguish with original redsocks. \ +This variant is useful for anti-GFW (Great Fire Wall). +endef + +define Package/redsocks2/conffiles +/etc/config/redsocks2 +endef + +define Build/Compile + $(call Build/Compile/Default,DISABLE_SHADOWSOCKS=true) +endef + +define Package/redsocks2/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/redsocks2 $(1)/usr/sbin +endef + +$(eval $(call BuildPackage,redsocks2)) From f1ba5c3a20adc327f54c4abee047329d8bb9ebe7 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:43:52 +0800 Subject: [PATCH 232/972] xray-plugin: update to 1.6.4 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 19b9704f4e8..093e0d44793 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.3 +PKG_VERSION:=1.6.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0e4eb348ad66d04998e615ebcf987f93f916dfd2ceeee70451d40183664de0dc +PKG_HASH:=4088dd7a22dfdcc54b73cb4b462dc9ffeb63821d0edf954da9bf33e88252e85b PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From c1a42d51dc2ed74c4a93751a5b9fe4b713a4bb6b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:57:16 +0800 Subject: [PATCH 233/972] hysteria: refresh download address because: https://github.com/apernet/hysteria/commit/7ce4bf7dbe634ea5686d2221f824614ab8d37f06 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- hysteria/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 3c8b23a1eb9..346b0dc1aeb 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -6,10 +6,10 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria PKG_VERSION:=1.3.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/HyNetwork/hysteria/tar.gz/v$(PKG_VERSION)? +PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? PKG_HASH:=76137ec58245df72f9f8258bad1627bbd157f9ca5475b49e0ad897f22d7e7baf PKG_LICENSE:=MIT @@ -31,7 +31,7 @@ define Package/hysteria SECTION:=net CATEGORY:=Network TITLE:=A feature-packed network utility optimized for networks of poor quality - URL:=https://github.com/tobyxdd/hysteria + URL:=https://github.com/apernet/hysteria DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef From eed44a7d1d1b3b01dfb3c9a10166422153e7bbf6 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sat, 26 Nov 2022 12:52:52 +0800 Subject: [PATCH 234/972] Update README.md --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index 44732b506f8..c97e0e08c0c 100644 --- a/README.md +++ b/README.md @@ -70,9 +70,3 @@ ./scripts/feeds install -a ``` -```bash -mkdir -p package/helloworld -for i in "dns2socks" "microsocks" "ipt2socks" "pdnsd-alt" "redsocks2"; do \ - svn checkout "https://github.com/immortalwrt/packages/trunk/net/$i" "package/helloworld/$i"; \ -done -``` From e0e8533c9867b2e80849dcfc42f12a41313493ad Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 27 Nov 2022 23:20:51 +0800 Subject: [PATCH 235/972] hysteria: update to version 1.3.1 --- hysteria/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 346b0dc1aeb..36eb101b353 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.0 -PKG_RELEASE:=2 +PKG_VERSION:=1.3.1 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=76137ec58245df72f9f8258bad1627bbd157f9ca5475b49e0ad897f22d7e7baf +PKG_HASH:=08509dd95b686e83d6658f3978d50c6eca96b485a468f18f939cc7de6184eda1 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE @@ -20,8 +20,8 @@ PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 -GO_PKG:=github.com/HyNetwork/hysteria -GO_PKG_BUILD_PKG:=$(GO_PKG)/cmd +GO_PKG:=github.com/apernet/hysteria +GO_PKG_BUILD_PKG:=$(GO_PKG)/app/cmd GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk From 2d9eab16c4801ea955a0d66bbc4b3842001c0755 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=8B=E6=A2=A6?= <37858783+canmengxian@users.noreply.github.com> Date: Mon, 28 Nov 2022 11:59:57 +0800 Subject: [PATCH 236/972] xray-core: update to 1.6.5 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 4007e5a38ea..28cb2b68914 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.4 +PKG_VERSION:=1.6.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8f81aecb5c28585c98ea95e563d2f03a7d21daa333778f9c4f0aeed27afacef4 +PKG_HASH:=61956d8d72d086fbf83e6a3aff191d010401aca34f30015f839f8a73bf50914c PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 82cce0f193553c4716ded78210bb78fca315f406 Mon Sep 17 00:00:00 2001 From: qianxu2001 Date: Mon, 28 Nov 2022 14:55:46 +0800 Subject: [PATCH 237/972] luci-app-ssr-plus: support Hysteria Fast Open Fast Open can shave off one RTT for every connection at the cost of the correct semantics of SOCKS5/HTTP/TUN protocols. When enabled, the client will always accept a connection immediately without confirming with the server that its destination is reachable. If the server then fails to connect or rejects the connection, the client will just close it without sending any data. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 + luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c0498700976..7bca388d956 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -772,6 +772,7 @@ o.default = "0" o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") +o:depends("type", "hysteria") if is_installed("sagernet-core") then o = s:option(ListValue, "packet_encoding", translate("Packet Encoding")) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index b18d2492ea3..17765a55b0c 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -311,7 +311,8 @@ local hysteria = { ca = (server.certificate) and server.certpath or nil, recv_window_conn = tonumber(server.recv_window_conn), recv_window = tonumber(server.recv_window), - disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false + disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false, + fast_open = (server.fast_open == "1") and true or false } local config = {} function config:new(o) From ae08dba066a1ed5e2edadd2f2e539d990d52e6e4 Mon Sep 17 00:00:00 2001 From: qianxu2001 Date: Mon, 28 Nov 2022 15:19:59 +0800 Subject: [PATCH 238/972] luci-app-ssr-plus: update Simplified Chinese translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 强迫症 --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 114 ++++++++++++------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 8bafc95fc7c..ce3e61b0939 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -26,10 +26,10 @@ msgid "Global Server" msgstr "全局服务器" msgid "ShadowSocksR SOCK5 Proxy is running" -msgstr "ShadowSocksR SOCK5代理运行中" +msgstr "ShadowSocksR SOCK5 代理运行中" msgid "UDP Relay Server" -msgstr "UDP中继服务器" +msgstr "UDP 中继服务器" msgid "Same as Global Server" msgstr "与全局服务器相同" @@ -74,7 +74,7 @@ msgid "Socks Version" msgstr "Socks 版本" msgid "Flow" -msgstr "流控 (Flow)" +msgstr "流控(Flow)" msgid "Transport" msgstr "传输协议" @@ -134,16 +134,16 @@ msgid "Interfaces - WAN" msgstr "接口 - WAN" msgid "Bypassed IP List" -msgstr "被忽略IP列表" +msgstr "被忽略 IP 列表" msgid "NULL - As Global Proxy" msgstr "留空 - 作为全局代理" msgid "Bypassed IP" -msgstr "额外被忽略IP" +msgstr "额外被忽略 IP" msgid "Forwarded IP" -msgstr "强制走代理IP" +msgstr "强制走代理 IP" msgid "Interfaces - LAN" msgstr "接口 - LAN" @@ -206,7 +206,7 @@ msgid "Server" msgstr "服务器" msgid "TCP Fast Open" -msgstr "TCP快速打开" +msgstr "TCP 快速打开" msgid "Status" msgstr "状态" @@ -218,10 +218,10 @@ msgid "Running Status" msgstr "运行状态" msgid "Global Client" -msgstr "TCP透明代理" +msgstr "TCP 透明代理" msgid "Global SSR Server" -msgstr "SSR服务端" +msgstr "SSR 服务端" msgid "DNS Tunnel" msgstr "DNS 隧道" @@ -254,10 +254,10 @@ msgid "Running Mode" msgstr "运行模式" msgid "IP Route Mode" -msgstr "绕过中国大陆IP模式" +msgstr "绕过中国大陆 IP 模式" msgid "GFW List Mode" -msgstr "GFW列表模式" +msgstr "GFW 列表模式" msgid "Global Mode" msgstr "全局模式" @@ -278,7 +278,7 @@ msgid "Forwarded Proxy" msgstr "强制走代理" msgid "UDP Relay" -msgstr "UDP中继" +msgstr "UDP 中继" msgid "Google Connectivity" msgstr "【谷歌】连通性检查" @@ -299,19 +299,19 @@ msgid "Connect Error" msgstr "连接错误" msgid "Check..." -msgstr "正在检查.." +msgstr "正在检查..." msgid "Proxy Check" msgstr "代理检查" msgid "GFW List Data" -msgstr "【GFW列表】数据库" +msgstr "【GFW 列表】数据库" msgid "China IP Data" -msgstr "【国内IP段】数据库" +msgstr "【中国大陆 IP 段】数据库" msgid "Netflix IP Data" -msgstr "【Netflix IP段】数据库" +msgstr "【Netflix IP 段】数据库" msgid "Advertising Data" msgstr "【广告屏蔽】数据库" @@ -323,7 +323,7 @@ msgid "Refresh Data" msgstr "更新数据库" msgid "Refresh..." -msgstr "正在更新,请稍候.." +msgstr "正在更新,请稍候..." msgid "Refresh OK!" msgstr "更新成功!" @@ -365,43 +365,43 @@ msgid "Enable adblock" msgstr "启用广告屏蔽" msgid "adblock_url" -msgstr "广告屏蔽更新URL" +msgstr "广告屏蔽更新 URL" msgid "gfwlist Update url" -msgstr "GFWList更新URL" +msgstr "GFW 列表更新 URL" msgid "Chnroute Update url" -msgstr "国内IP段更新URL" +msgstr "中国大陆 IP 段更新 URL" msgid "nfip_url" -msgstr "Netflix IP段更新URL" +msgstr "Netflix IP 段更新 URL" msgid "Customize Netflix IP Url" -msgstr "自定义Netflix IP更新URL(默认项目地址:https://github.com/QiuSimons/Netflix_IP)" +msgstr "自定义 Netflix IP 段更新 URL(默认项目地址:https://github.com/QiuSimons/Netflix_IP)" msgid "Enable Process Deamon" msgstr "启用进程自动守护" msgid "DNS Server IP and Port" -msgstr "DNS服务器地址和端口" +msgstr "DNS 服务器地址和端口" msgid "Resolve Dns Mode" -msgstr "DNS解析方式" +msgstr "DNS 解析方式" msgid "Use SSR DNS Tunnel" -msgstr "使用SSR-DNS隧道" +msgstr "使用 SSR DNS 隧道" msgid "DNS Anti-pollution" msgstr "DNS 防污染服务" msgid "Use Other DNS Tunnel(Need to install)" -msgstr "使用其他DNS转发(需要自己安装)" +msgstr "使用其他 DNS 转发(需要自己安装)" msgid "Import" msgstr "导入配置信息" msgid "Export SSR" -msgstr "导出ssr配置信息" +msgstr "导出 SSR 配置信息" msgid "Import configuration information successfully." msgstr "导入配置信息成功。" @@ -416,10 +416,10 @@ msgid "Paste sharing link here" msgstr "在此处粘贴分享链接" msgid "Unable to copy SSR to clipboard." -msgstr "无法复制SSR网址到剪贴板。" +msgstr "无法复制 SSR 网址到剪贴板。" msgid "Copy SSR to clipboard successfully." -msgstr "成功复制SSR网址到剪贴板。" +msgstr "成功复制 SSR 网址到剪贴板。" msgid "Servers Manage" msgstr "服务器管理" @@ -431,22 +431,22 @@ msgid "Through proxy update" msgstr "通过代理更新" msgid "GFW List" -msgstr "GFW列表" +msgstr "GFW 列表" msgid "ShadowSocksR Plus+ Settings" msgstr "ShadowSocksR Plus+ 设置" msgid "

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

" -msgstr "

支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议

" +msgstr "

支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议。

" msgid "Main Server" msgstr "主服务器" msgid "Anti-pollution DNS Server" -msgstr "访问国外域名DNS服务器" +msgstr "访问国外域名 DNS 服务器" msgid "Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)" -msgstr "格式为 IP:PORT (默认: 8.8.4.4:53)" +msgstr "格式为 IP:Port(默认:8.8.4.4:53)" msgid "Use DNS2TCP query" msgstr "使用 DNS2TCP 查询" @@ -455,16 +455,16 @@ msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" msgid "DNS Server IP:Port" -msgstr "DNS服务器 IP:Port" +msgstr "DNS 服务器 IP:Port" msgid "Update time (every day)" -msgstr "更新时间 (每天)" +msgstr "更新时间(每天)" msgid "Auto Update Server subscription, GFW list and CHN route" -msgstr "自动更新服务器订阅、GFW列表和 CHN路由表" +msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" msgid "Subscribe URL" -msgstr "SS/SSR/V2/TROJAN订阅URL" +msgstr "SS/SSR/V2/TROJAN 订阅 URL" msgid "Subscribe Filter Words" msgstr "订阅节点关键字过滤" @@ -488,19 +488,19 @@ msgid "Interface control" msgstr "接口控制" msgid "WAN IP AC" -msgstr "WAN IP访问控制" +msgstr "WAN IP 访问控制" msgid "WAN White List IP" -msgstr "不走代理的WAN IP" +msgstr "不走代理的 WAN IP" msgid "WAN Force Proxy IP" -msgstr "强制走代理的WAN IP" +msgstr "强制走代理的 WAN IP" msgid "LAN Bypassed Host List" -msgstr "不走代理的局域网LAN IP" +msgstr "不走代理的局域网 LAN IP" msgid "LAN Force Proxy Host List" -msgstr "全局代理的LAN IP" +msgstr "全局代理的 LAN IP" msgid "Router Self AC" msgstr "路由器自身代理设置" @@ -521,7 +521,7 @@ msgid "GFW Custom List" msgstr "GFW 用户自定义列表" msgid "Please refer to the following writing" -msgstr "每行一个域名,无需写前面的 HTTP(S):// ,提交后即时生效" +msgstr "每行一个域名,无需写前面的 http(s)://,提交后即时生效" msgid "Servers subscription and manage" msgstr "服务器节点订阅与管理" @@ -530,16 +530,16 @@ msgid "Through proxy update list, Not Recommended" msgstr "通过路由器自身代理更新订阅" msgid "LAN IP AC" -msgstr "LAN IP访问控制" +msgstr "LAN IP 访问控制" msgid "Game Mode UDP Server" -msgstr "游戏模式UDP中继服务器" +msgstr "游戏模式 UDP 中继服务器" msgid "Game Mode UDP Relay" -msgstr "游戏模式UDP中继" +msgstr "游戏模式 UDP 中继" msgid "Server failsafe auto swith and custom update settings" -msgstr "服务器节点故障自动切换/广告屏蔽/国内IP段数据库更新设置" +msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据库更新设置" msgid "Support AdGuardHome and DNSMASQ format list" msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表" @@ -551,7 +551,7 @@ msgid "Severs Nodes" msgstr "服务器节点" msgid "Use Local DNS Service listen port 5335" -msgstr "使用本机端口为5335的DNS服务" +msgstr "使用本机端口为 5335 的 DNS 服务" msgid "Server Node Type" msgstr "服务器节点类型" @@ -560,13 +560,13 @@ msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "输入不正确的参数组合可能会导致服务无法启动" msgid "Game Mode Host List" -msgstr "增强游戏模式客户端LAN IP" +msgstr "增强游戏模式客户端 LAN IP" msgid "Multi Threads Option" msgstr "多线程并发转发" msgid "Auto Threads" -msgstr "自动(CPU线程数)" +msgstr "自动(CPU 线程数)" msgid "1 Thread" msgstr "单线程" @@ -599,13 +599,13 @@ msgid "All Ports" msgstr "所有端口(默认)" msgid "Only Common Ports" -msgstr "仅常用端口(不走P2P流量到代理)" +msgstr "仅常用端口(不走 P2P 流量到代理)" msgid "Socket Connected" msgstr "连接测试" msgid "Ping Latency" -msgstr "Ping延迟" +msgstr "Ping 延迟" msgid "Bypass Domain List" msgstr "不走代理的域名" @@ -614,10 +614,10 @@ msgid "Black Domain List" msgstr "强制走代理的域名" msgid "Update Subscribe List" -msgstr "更新订阅URL列表" +msgstr "更新订阅 URL 列表" msgid "Update subscribe url list first" -msgstr "修改订阅URL和节点关键字后,请先点击更新" +msgstr "修改订阅 URL 和节点关键字后,请先点击更新" msgid "Update All Subscribe Severs" msgstr "更新所有订阅服务器节点" @@ -641,7 +641,7 @@ msgid "Upload" msgstr "上传" msgid "No specify upload file." -msgstr "没有上传证书" +msgstr "没有上传证书。" msgid "Current Certificate Path" msgstr "当前证书路径" @@ -770,10 +770,10 @@ msgid "QUIC Key" msgstr "QUIC 密钥" msgid "VideoCall (SRTP)" -msgstr "视频通话 (SRTP)" +msgstr "视频通话(SRTP)" msgid "BitTorrent (uTP)" -msgstr "BT下载 (uTP)" +msgstr "BT 下载(uTP)" msgid "WechatVideo" msgstr "微信视频通话" From 37eaff38068d6e8fa0c9fe6bcd9496f8a297282a Mon Sep 17 00:00:00 2001 From: hecheng337 <57560866+hecheng337@users.noreply.github.com> Date: Mon, 28 Nov 2022 09:08:53 +0800 Subject: [PATCH 239/972] luci-app-ssr-plus: limit tls_flow to tcp transport Signed-off-by: He Cheng <57560866+hecheng337@users.noreply.github.com> --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 7bca388d956..7fdb563886c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -657,7 +657,7 @@ if is_finded("xray") then o:value(v, translate(v)) end o.rmempty = true - o:depends({type = "v2ray", v2ray_protocol = "vless", tls = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) end -- [[ TLS部分 ]] -- From bcee2d5393a612e668796ab71525bae12721e9ca Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 1 Dec 2022 01:42:28 +0800 Subject: [PATCH 240/972] luci-app-ssr-plus: switch to Xray's WireGuard implementation Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 3 +++ .../root/usr/share/shadowsocksr/gen_config.lua | 17 ++++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 7fdb563886c..6478c544a92 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -193,6 +193,8 @@ o:value("trojan", translate("Trojan")) o:value("shadowsocks", translate("Shadowsocks")) if is_installed("sagernet-core") then o:value("shadowsocksr", translate("ShadowsocksR")) +end +if is_finded("xray") then o:value("wireguard", translate("WireGuard")) end o:value("socks", translate("Socks")) @@ -604,6 +606,7 @@ o.rmempty = true -- [[ WireGuard 部分 ]]-- o = s:option(DynamicList, "local_addresses", translate("Local addresses")) +o.datatype = "cidr" o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.rmempty = true diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 17765a55b0c..bcec9a05bec 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -76,13 +76,16 @@ function socks_http() end function wireguard() outbound_settings = { - address = server.server, - port = tonumber(server.server_port), - localAddresses = server.local_addresses, - privateKey = server.private_key, - peerPublicKey = server.peer_pubkey, - preSharedKey = server.preshared_key or nil, - mtu = tonumber(server.mtu) or 1500 + secretKey = server.private_key, + address = server.local_addresses, + peers = { + { + publicKey = server.peer_pubkey, + preSharedKey = server.preshared_key, + endpoint = server.server .. ":" .. server.server_port + } + }, + mtu = tonumber(server.mtu) } end local outbound = {} From 3595b876ea6f04b0fa01e949703ad3db9294acde Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 1 Dec 2022 00:59:42 +0800 Subject: [PATCH 241/972] Revert "Revert "luci-app-ssr-plus: add chinadns-ng support"" This reverts commit 294219965e61ab6108bd45789fd14da5dffb21b5. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 16 +++++-- .../luasrc/model/cbi/shadowsocksr/client.lua | 34 +++++++++++++- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 12 +++++ .../root/etc/init.d/shadowsocksr | 46 +++++++++++++++---- luci-app-ssr-plus/root/usr/bin/ssr-monitor | 32 +++++++++---- 5 files changed, 115 insertions(+), 25 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index d63f0e70a9c..ac99a7a16e9 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -9,9 +9,10 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client \ @@ -39,9 +40,10 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client:shadowsocks-libev-ss-local \ @@ -112,9 +114,9 @@ choice bool "SagerNet-core (An enhanced edition of v2ray-core)" endchoice -config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun - bool "Include Kcptun" - default n +config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + bool "Include ChinaDNS-NG" + default y config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" @@ -124,6 +126,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include IPT2Socks" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun + bool "Include Kcptun" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy bool "Include NaiveProxy" depends on !(arc||armeb||mips||mips64||powerpc||TARGET_gemini) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 153093011a3..7c6cd00a88c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -5,6 +5,11 @@ local m, s, sec, o local uci = luci.model.uci.cursor() +local validation = require "luci.cbi.datatypes" +local function is_finded(e) + return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false +end + m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) m:section(SimpleSection).template = "shadowsocksr/status" @@ -107,7 +112,34 @@ o:value("114.114.115.115:53", translate("Oversea Mode DNS-2 (114.114.115.115)")) o:depends("pdnsd_enable", "1") o:depends("pdnsd_enable", "2") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") -o.datatype = "hostport" +o.datatype = "ip4addrport" + +if is_finded("chinadns-ng") then + o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) + o:value("wan", translate("Use DNS from WAN")) + o:value("wan_114", translate("Use DNS from WAN and 114DNS")) + o:value("114.114.114.114:53", translate("Nanjing Xinfeng 114DNS (114.114.114.114)")) + o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) + o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) + o:depends({pdnsd_enable = "1", run_mode = "router"}) + o:depends({pdnsd_enable = "2", run_mode = "router"}) + o.description = translate("Custom DNS Server format as IP:PORT (default: disabled)") + o.validate = function(self, value, section) + if (section and value) then + if value == "wan" or value == "wan_114" then + return value + end + + if validation.ip4addrport(value) then + return value + end + + return nil, translate("Expecting: %s"):format(translate("valid address:port")) + end + + return value + end +end return m diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index ce3e61b0939..5690b303c9e 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -457,6 +457,18 @@ msgstr "使用 DNS2SOCKS 查询并缓存" msgid "DNS Server IP:Port" msgstr "DNS 服务器 IP:Port" +msgid "Domestic DNS Server" +msgstr "国内DNS服务器" + +msgid "Use DNS from WAN" +msgstr "使用WAN下发的DNS" + +msgid "Use DNS from WAN and 114DNS" +msgstr "使用WAN下发的DNS和114DNS" + +msgid "Custom DNS Server format as IP:PORT (default: disabled)" +msgstr "格式为 IP:PORT (默认: 禁用)" + msgid "Update time (every day)" msgstr "更新时间(每天)" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index c98c29cbded..55c11670ade 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -26,6 +26,7 @@ shunt_dns_config_file= tmp_local_port= ARG_UDP= dns_port="5335" #dns port +china_dns_port="5333" #china_dns_port tmp_dns_port="300" #dns2socks temporary port tmp_udp_port="301" #udp temporary port tmp_udp_local_port="302" #udp socks temporary port @@ -165,27 +166,45 @@ ln_start_bin() { start_dns() { local ssrplus_dns="$(uci_get_by_type global pdnsd_enable 0)" - local dnsstr="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" - local dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - local dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + local dnsserver="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" + local run_mode="$(uci_get_by_type global run_mode)" if [ "$ssrplus_dns" != "0" ]; then - case "$(uci_get_by_type global run_mode)" in - gfw) ipset add gfwlist $dnsserver 2>/dev/null ;; - oversea) ipset add oversea $dnsserver 2>/dev/null ;; - *) ipset add ss_spec_wan_ac $dnsserver nomatch 2>/dev/null ;; + case "$run_mode" in + gfw) ipset add gfwlist ${dnsserver%:*} 2>/dev/null ;; + oversea) ipset add oversea ${dnsserver%:*} 2>/dev/null ;; + *) ipset add ss_spec_wan_ac ${dnsserver%:*} nomatch 2>/dev/null ;; esac case "$ssrplus_dns" in 1) - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#} pdnsd_enable_flag=1 ;; 2) ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; esac + if [ "$run_mode" = "router" ]; then + local chinadns="$(uci_get_by_type global chinadns_forward)" + if [ -n "$chinadns" ]; then + local wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" + case "$chinadns" in + "wan") chinadns="$wandns" ;; + "wan_114") chinadns="$wandns,114.114.114.114" ;; + esac + + ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r + + uci -q rename "dhcp.@dnsmasq[0].noresolv"="_orig_noresolv" + uci -q rename "dhcp.@dnsmasq[0].server"="_orig_server" + uci -q set "dhcp.@dnsmasq[0].noresolv"="1" + uci -q add_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" + uci -q set "dhcp.@dnsmasq[0]._unused_ssrp_changed"=1 + uci -q commit "dhcp" + fi + fi fi } @@ -877,6 +896,15 @@ stop() { ) killall -q -9 v2ray-plugin obfs-local xray-plugin rm -f /var/lock/ssr-monitor.lock + if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then + uci -q del "dhcp.@dnsmasq[0].noresolv" + uci -q del_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" + uci -q rename "dhcp.@dnsmasq[0]._orig_noresolv"="noresolv" + uci -q rename "dhcp.@dnsmasq[0]._orig_server"="server" + uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed" + uci -q commit "dhcp" + killall -9 chinadns-ng + fi if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then rm -rf /tmp/dnsmasq.d/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json /etc/init.d/dnsmasq restart >/dev/null 2>&1 diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index f5c55780dc6..fb9ed57e77d 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -88,25 +88,37 @@ while [ "1" == "1" ]; do #死循环 if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 logger -t "$NAME" "dns2tcp tunnel error.restart!" echolog "dns2tcp tunnel error.restart!" - dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/dns2tcp | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "$dnsserver#$dnsport" + ln_start_bin $(first_type dns2tcp) dns2tcp -L "127.0.0.1#$dns_port" -R "${dnsserver/:/#}" fi #dns2socks elif [ "$pdnsd_process" -eq 2 ]; then icount=$(busybox ps -w | grep -e ssrplus-dns -e "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | wc -l) if [ "$icount" -lt 2 ]; then #如果进程挂掉就重启它 - logger -t "$NAME" "dns2socks $dnsstr tunnel error.restart!" - echolog "dns2socks $dnsstr tunnel error.restart!" - dnsstr=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - dnsserver=$(echo "$dnsstr" | awk -F ':' '{print $1}') - dnsport=$(echo "$dnsstr" | awk -F ':' '{print $2}') + logger -t "$NAME" "dns2socks $dnsserver tunnel error.restart!" + echolog "dns2socks $dnsserver tunnel error.restart!" + dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) kill -9 $(busybox ps -w | grep ssrplus-dns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 kill -9 $(busybox ps -w | grep "dns2socks 127.0.0.1 $tmp_dns_port" | grep -v grep | awk '{print $1}') >/dev/null 2>&1 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver:$dnsport 127.0.0.1:$dns_port -q + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q + fi + fi + #chinadns-ng + if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then + icount=$(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | wc -l) + if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 + logger -t "$NAME" "chinadns-ng tunnel error.restart!" + echolog "chinadns-ng tunnel error.restart!" + chinadns=$(uci_get_by_type global chinadns_forward) + wandns="$(ifstatus wan | jsonfilter -e '@["dns-server"][0]' || echo "119.29.29.29")" + case "$chinadns" in + "wan") chinadns="$wandns" ;; + ""|"wan_114") chinadns="$wandns,114.114.114.114" ;; + esac + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/chinadns-ng | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r fi fi done From 90cd5b6e3e3c4db2a1d28ccb7a6d905c170f6283 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 1 Dec 2022 00:59:57 +0800 Subject: [PATCH 242/972] luci-app-ssr-plus: fix resolve host when chinadns-ng is enabled Fixes: #1007 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 55c11670ade..817f2e6e969 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -81,7 +81,15 @@ get_host_ip() { fi fi [ -z "$ip" ] || uci_set_by_name $1 ip $ip - echo ${ip:="$(uci_get_by_name $1 ip "ERROR")"} + [ -n "$ip" ] || ip="$(uci_get_by_name $1 ip "ERROR")" + + local chinadns="$(uci_get_by_type global chinadns_forward)" + if [ -n "$chinadns" ] && [ "$ip" != "$host" ]; then + grep -q "$host" "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" 2>"/dev/null" || \ + echo -e "address=/$host/$ip" >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" + fi + + echo $ip } clean_log() { @@ -186,6 +194,7 @@ start_dns() { pdnsd_enable_flag=2 ;; esac + if [ "$run_mode" = "router" ]; then local chinadns="$(uci_get_by_type global chinadns_forward)" if [ -n "$chinadns" ]; then @@ -903,7 +912,6 @@ stop() { uci -q rename "dhcp.@dnsmasq[0]._orig_server"="server" uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed" uci -q commit "dhcp" - killall -9 chinadns-ng fi if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then rm -rf /tmp/dnsmasq.d/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json From c710297edeca3173d6612a3aa9af6e3f90192c1c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 2 Dec 2022 22:41:14 +0800 Subject: [PATCH 243/972] luci-app-ssr-plus: use dnsmasq options for chinadns-ng Avoid hacking uci configs. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 817f2e6e969..5d6a51e160b 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -206,12 +206,11 @@ start_dns() { ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r - uci -q rename "dhcp.@dnsmasq[0].noresolv"="_orig_noresolv" - uci -q rename "dhcp.@dnsmasq[0].server"="_orig_server" - uci -q set "dhcp.@dnsmasq[0].noresolv"="1" - uci -q add_list "dhcp.@dnsmasq[0].server"="127.0.0.1#$china_dns_port" - uci -q set "dhcp.@dnsmasq[0]._unused_ssrp_changed"=1 - uci -q commit "dhcp" + cat <<-EOF >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" + no-poll + no-resolv + server=127.0.0.1#$china_dns_port + EOF fi fi fi From fdfd572651dc21141797315d82b0d1f08efd2e85 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 2 Dec 2022 22:49:12 +0800 Subject: [PATCH 244/972] luci-app-ssr-plus: update translation Signed-off-by: Tianling Shen --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 5690b303c9e..7fea718d3f0 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -458,16 +458,16 @@ msgid "DNS Server IP:Port" msgstr "DNS 服务器 IP:Port" msgid "Domestic DNS Server" -msgstr "国内DNS服务器" +msgstr "国内 DNS 服务器" msgid "Use DNS from WAN" -msgstr "使用WAN下发的DNS" +msgstr "使用 WAN 下发的 DNS" msgid "Use DNS from WAN and 114DNS" -msgstr "使用WAN下发的DNS和114DNS" +msgstr "使用 WAN 下发的 DNS 和 114DNS" msgid "Custom DNS Server format as IP:PORT (default: disabled)" -msgstr "格式为 IP:PORT (默认: 禁用)" +msgstr "格式为 IP:PORT(默认:禁用)" msgid "Update time (every day)" msgstr "更新时间(每天)" From 947a58642c6f9e9ea61263c2ae15d25b250add32 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 4 Dec 2022 21:31:30 +0800 Subject: [PATCH 245/972] =?UTF-8?q?naiveproxy=EF=BC=9AUpdate=20to=20108.0.?= =?UTF-8?q?5359.94-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index f281cd7ed4f..fea310d3ed3 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=107.0.5304.87-3 +PKG_VERSION:=108.0.5359.94-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a97787c8fff1d3569398dd9cbd263ca8688c919352db08478d2cc2668559cf23 +PKG_HASH:=a082b1d737a42de37bda376042d42ea6c8e2a04bf06627c3435593f1d6c21d68 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -57,31 +57,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-4609-g025a5b22-2 +CLANG_VER:=16-init-6578-g0d30e92f-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=bbcf6a3456cb6d8648a6bb15fca27bcb77902318090d2eee6cbc9472acc0ef69 + HASH:=aa3a115ee2d19eead9bbee92350949c9d931f755b0b433703571e2f2154822b4 endef -GN_VER:=fff29c1b3f9703ea449f720fe70fa73575ef24e5 +GN_VER:=b9c6c19be95a3863e02f00f1fe403b2502e345b6 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=3fa137a6a090f5ac69593de6b19f8bfe6115e2383f15b6394509d431eea3cb5b + HASH:=74707aafd30bc4c725e4d251568883e46bc2f92c8e41a6ab62e99c29ac2f6778 endef -PGO_VER:=5304-1666778341-6952d9583ad8c5425ae6677daa28778c2175311f +PGO_VER:=5359-1669656947-a415d5db65dd3e05ade5e2d1d5f3750801174642 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=7ac8186cec385515c6164dbfe05b05e4c6c2b25b5733e2d6b2c932670b2bd6cf + HASH:=e71bcc45bf3acdc2624cb00557428a0922b62bfff8d68b81fe533ccd863426d5 endef define Build/Prepare From 13496190d02ea70ea1ccea5d3ce3d38d1b59f439 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 8 Dec 2022 06:31:59 +0800 Subject: [PATCH 246/972] luci-app-ssr-plus: add alpn settings Fixes: #973 Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 5 +++++ .../root/usr/share/shadowsocksr/gen_config.lua | 16 +++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6478c544a92..76c68473dc3 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -688,6 +688,11 @@ o:depends("xtls", true) o:depends("type", "hysteria") o.rmempty = true +o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) +o:depends("tls", true) +o:depends("xtls", true) +o.rmempty = true + o = s:option(Value, "quic_tls_alpn", translate("QUIC TLS ALPN")) o:depends("type", "hysteria") o.rmempty = true diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index bcec9a05bec..df4ac5897f4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -160,16 +160,26 @@ local Xray = { security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or nil, tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { -- tls + alpn = server.tls_alpn, fingerprint = server.fingerprint, allowInsecure = (server.insecure == "1") and true or nil, - serverName = server.tls_host + serverName = server.tls_host, + certificates = server.certificate and { + usage = "verify", + certificateFile = server.certpath + } or nil } or nil, xtlsSettings = (server.xtls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { -- xtls + alpn = server.tls_alpn, fingerprint = server.fingerprint, allowInsecure = (server.insecure == "1") and true or nil, serverName = server.tls_host, - minVersion = "1.3" + minVersion = "1.3", + certificates = server.certificate and { + usage = "verify", + certificateFile = server.certpath + } or nil } or nil, tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { -- tcp @@ -255,7 +265,7 @@ local trojan = { cipher = cipher, cipher_tls13 = cipher13, sni = server.tls_host, - alpn = {"h2", "http/1.1"}, + alpn = server.tls_alpn or {"h2", "http/1.1"}, curve = "", reuse_session = true, session_ticket = (server.tls_sessionTicket == "1") and true or false From bbceff7e6b012555a428171b56a3af599c849580 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 9 Dec 2022 02:08:44 +0800 Subject: [PATCH 247/972] luci-app-ssr-plus: add tuic support Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 46 +++++++++++++++++++ .../root/etc/init.d/shadowsocksr | 35 ++++++++++++++ .../usr/share/shadowsocksr/gen_config.lua | 23 ++++++++++ 3 files changed, 104 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 76c68473dc3..1203f5df165 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -166,6 +166,9 @@ end if is_finded("hysteria") then o:value("hysteria", translate("Hysteria")) end +if is_finded("tuic-client") then + o:value("tuic", translate("TUIC")) +end if is_finded("ipt2socks") then o:value("socks5", translate("Socks5")) end @@ -210,6 +213,7 @@ o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") o:depends("type", "hysteria") +o:depends("type", "tuic") o:depends("type", "socks5") o = s:option(Value, "server_port", translate("Server Port")) @@ -221,6 +225,7 @@ o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") o:depends("type", "hysteria") +o:depends("type", "tuic") o:depends("type", "socks5") o = s:option(Flag, "auth_enable", translate("Enable Authentication")) @@ -244,6 +249,7 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") o:depends("type", "naiveproxy") +o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) @@ -362,6 +368,44 @@ o = s:option(Flag, "disable_mtu_discovery", translate("Disable Path MTU discover o:depends("type", "hysteria") o.rmempty = true +-- [[ TUIC ]] +o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) +o:depends("type", "tuic") +o:value("native", translate("native")) +o:value("quic", translate("QUIC")) +o.default = "native" +o.rmempty = true + +o = s:option(ListValue, "congestion_controller", translate("Congestion control algorithm")) +o:depends("type", "tuic") +o:value("bbr", translate("BBR")) +o:value("cubic", translate("CUBIC")) +o:value("new_reno", translate("New Reno")) +o.default = "cubic" +o.rmempty = true + +o = s:option(Value, "heartbeat_interval", translate("Heartbeat interval")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "10000" +o.rmempty = true + +o = s:option(Flag, "disable_sni", translate("Disable SNI")) +o:depends("type", "tuic") +o.default = 0 +o.rmempty = true + +o = s:option(Flag, "reduce_rtt", translate("Enable 0-RTT QUIC handshake")) +o:depends("type", "tuic") +o.default = 0 +o.rmempty = true + +o = s:option(Value, "max_udp_relay_packet_size", translate("Max UDP relay packet size")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "1500" +o.rmempty = true + -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true @@ -691,6 +735,7 @@ o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) o:depends("tls", true) o:depends("xtls", true) +o:depends("type", "tuic") o.rmempty = true o = s:option(Value, "quic_tls_alpn", translate("QUIC TLS ALPN")) @@ -726,6 +771,7 @@ o:depends("type", "naiveproxy") o = s:option(Flag, "certificate", translate("Self-signed Certificate")) o.rmempty = true o.default = "0" +o:depends("type", "tuic") o:depends({type = "hysteria", insecure = false}) o:depends({type = "trojan", tls = true, insecure = false}) o:depends({type = "v2ray", v2ray_protocol = "vmess", tls = true, insecure = false}) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 5d6a51e160b..42deed02cae 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -33,6 +33,7 @@ tmp_udp_local_port="302" #udp socks temporary port tmp_shunt_port="303" #shunt temporary port tmp_shunt_local_port="304" #shunt socks temporary port tmp_shunt_dns_port="305" #shunt dns2socks temporary port +tmp_tcp_local_port="306" #tcp socks temporary port server_count=0 redir_tcp=0 redir_udp=0 @@ -328,6 +329,9 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 hysteria) lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 >$config_file ;; + tuic) + lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 >$config_file + ;; socks5) /usr/share/shadowsocksr/genred2config.sh $config_file $2 $mode $4 \ "$(uci_get_by_name $1 server)" \ @@ -374,6 +378,12 @@ start_udp() { ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file echolog "UDP TPROXY Relay:$($(first_type "hysteria") --version | awk '{print $1,$3}') Started!" ;; + tuic) + gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port + ln_start_bin $(first_type tuic-client) tuic-client --config $udp_config_file + ln_start_bin $(first_type ipt2socks) ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_udp_local_port -l $tmp_udp_port + echolog "UDP TPROXY Relay:tuic-client $($(first_type tuic-client) --version) Started!" + ;; socks5) # if [ "$(uci_get_by_name $UDP_RELAY_SERVER auth_enable 0)" == "1" ]; then # local auth="-a $(uci_get_by_name $UDP_RELAY_SERVER username) -k $(uci_get_by_name $UDP_RELAY_SERVER password)" @@ -451,6 +461,18 @@ start_shunt() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q echolog "shunt:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" ;; + tuic) + if [ -n "$tmp_local_port" ]; then + local tmp_port=$tmp_local_port + else + local tmp_port=$tmp_shunt_local_port + gen_config_file $SHUNT_SERVER $type 3 $tmp_port + ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_config_file + fi + ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_port -l $tmp_shunt_port + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + echolog "shunt:tuic-client $($(first_type tuic-client) --version) Started!" + ;; # socks5) # if [ "$(uci_get_by_name $SHUNT_SERVER auth_enable 0)" == "1" ]; then # local auth="-a $(uci_get_by_name $SHUNT_SERVER username) -k $(uci_get_by_name $SHUNT_SERVER password)" @@ -519,6 +541,13 @@ start_local() { echolog "Global_Socks5:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" fi ;; + tuic) + if [ "$_local" == "2" ]; then + gen_config_file $LOCAL_SERVER $type 4 $local_port + ln_start_bin $(first_type tuic-client) tuic-client --config $local_config_file + fi + echolog "Global_Socks5:tuic-client $($(first_type tuic-client) --version) Started!" + ;; *) [ -e /proc/sys/net/ipv6 ] && local listenip='-i ::' ln_start_bin $(first_type microsocks) microsocks $listenip -p $local_port tcp-udp-ssr-local @@ -587,6 +616,12 @@ Start_Run() { ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file echolog "Main node:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" ;; + tuic) + gen_config_file $GLOBAL_SERVER $type 1 $tmp_tcp_local_port + ln_start_bin $(first_type tuic-client) tuic-client --config $tcp_config_file + ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_tcp_local_port -l $tcp_port + echolog "Main node:tuic-client $($(first_type tuic-client) --version) Started!" + ;; socks5) if [ "$(uci_get_by_name $GLOBAL_SERVER auth_enable 0)" == "1" ]; then local auth="-a $(uci_get_by_name $GLOBAL_SERVER username) -k $(uci_get_by_name $GLOBAL_SERVER password)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index df4ac5897f4..a7ca9435cfa 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -327,6 +327,26 @@ local hysteria = { disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false, fast_open = (server.fast_open == "1") and true or false } +local tuic = { + relay = { + server = server.server, + port = tonumber(server.server_port), + token = server.password, + + certificates = server.certificate and { server.certpath } or nil, + udp_relay_mode = server.udp_relay_mode, + congestion_controller = server.congestion_controller, + heartbeat_interval = tonumber(server.heartbeat_interval), + alpn = server.tls_alpn, + disable_sni = (server.disable_sni == "1"), + reduce_rtt = (server.reduce_rtt == "1"), + max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) + }, + ["local"] = { + port = tonumber(local_port), + ip = "0.0.0.0" + } +} local config = {} function config:new(o) o = o or {} @@ -363,6 +383,9 @@ function config:handleIndex(index) end, hysteria = function() print(json.stringify(hysteria, 1)) + end, + tuic = function() + print(json.stringify(tuic, 1)) end } if switch[index] then From 916ccc1db48614af28efc4cabc7bee98943ebf1a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 9 Dec 2022 08:46:36 +0800 Subject: [PATCH 248/972] luci-app-ssr-plus: disable udp support for tuic ipt2socks cannot handle udp reply from tuic. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 42deed02cae..9ecbe60e14e 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -379,10 +379,14 @@ start_udp() { echolog "UDP TPROXY Relay:$($(first_type "hysteria") --version | awk '{print $1,$3}') Started!" ;; tuic) - gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port - ln_start_bin $(first_type tuic-client) tuic-client --config $udp_config_file - ln_start_bin $(first_type ipt2socks) ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_udp_local_port -l $tmp_udp_port - echolog "UDP TPROXY Relay:tuic-client $($(first_type tuic-client) --version) Started!" + # gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port + # ln_start_bin $(first_type tuic-client) tuic-client --config $udp_config_file + # ln_start_bin $(first_type ipt2socks) ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_udp_local_port -l $tmp_udp_port + # echolog "UDP TPROXY Relay:tuic-client $($(first_type tuic-client) --version) Started!" + # FIXME: ipt2socks cannot handle udp reply from tuic + echolog "TUIC UDP TPROXY Relay not supported!" + redir_udp=0 + ARG_UDP="" ;; socks5) # if [ "$(uci_get_by_name $UDP_RELAY_SERVER auth_enable 0)" == "1" ]; then @@ -472,6 +476,8 @@ start_shunt() { ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_port -l $tmp_shunt_port ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q echolog "shunt:tuic-client $($(first_type tuic-client) --version) Started!" + # FIXME: ipt2socks cannot handle udp reply from tuic + redir_udp=0 ;; # socks5) # if [ "$(uci_get_by_name $SHUNT_SERVER auth_enable 0)" == "1" ]; then From 2fd257d7fd60e39f67518850004ca1b118260142 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 13 Dec 2022 00:19:16 +0800 Subject: [PATCH 249/972] hysteria: update to 1.3.2 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 36eb101b353..6510350a233 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.1 +PKG_VERSION:=1.3.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=08509dd95b686e83d6658f3978d50c6eca96b485a468f18f939cc7de6184eda1 +PKG_HASH:=1014287f6cca7cb3fa0e4ad36b33cf8f28c800fb9f99d431997036baef8240fa PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From bfd90b331218783daf4d369ffbbf5a7d5c8081cc Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 13 Dec 2022 00:21:58 +0800 Subject: [PATCH 250/972] xray-plugin: update to 1.6.5 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 093e0d44793..d1820b2a0ad 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.4 +PKG_VERSION:=1.6.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4088dd7a22dfdcc54b73cb4b462dc9ffeb63821d0edf954da9bf33e88252e85b +PKG_HASH:=4ff73293d2a2752b03ca6f3e99f0df89058e5897942dd4beeeec7be9aab576b7 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 3e1dda22221b2186b7e7ed9769847e294204cb97 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 13 Dec 2022 00:22:49 +0800 Subject: [PATCH 251/972] xray-plugin: update to 1.6.6 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index d1820b2a0ad..012c0741ee1 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.5 +PKG_VERSION:=1.6.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4ff73293d2a2752b03ca6f3e99f0df89058e5897942dd4beeeec7be9aab576b7 +PKG_HASH:=a4b79f79425ed4d0b5e7e6fcd20e8d68589a96e9199811f2324dd95cab40f9af PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 33c41c17601c6e559038dc7cd7acce55f68bed9a Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 13 Dec 2022 00:20:07 +0800 Subject: [PATCH 252/972] xray-core: update to 1.6.6-2 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 28cb2b68914..a88add1d104 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.5 +PKG_VERSION:=1.6.6-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=61956d8d72d086fbf83e6a3aff191d010401aca34f30015f839f8a73bf50914c +PKG_HASH:=228fedbf5b624883ed2b0d1e3acf66842df483aa5a113995a4434314b3e755eb PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 1eeda678a1cc95d082de67140814c1cf6dc29cea Mon Sep 17 00:00:00 2001 From: w311ang <30381083+w311ang@users.noreply.github.com> Date: Tue, 20 Dec 2022 22:53:27 +0800 Subject: [PATCH 253/972] Update shadowsocksr --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 9ecbe60e14e..a30f22d020b 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -207,7 +207,7 @@ start_dns() { ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r - cat <<-EOF >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" + cat <<-EOF > "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" no-poll no-resolv server=127.0.0.1#$china_dns_port From 8b572a27ccbcdfe21d31e40a69cd94a521930988 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:22:23 +0800 Subject: [PATCH 254/972] shadowsocks-rust: update to 1.5.1 --- shadowsocks-rust/Makefile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index b1df2d30758..084db8671f6 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.0-alpha.9 +PKG_VERSION:=1.15.1 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,31 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=bb5a88f8732f1e804ff8533e50ad5b7e4cc72bb780240886df64c3d709413002 + PKG_HASH:=04e3bf9a4090dce2b51c0f3a6042cf77cea64624746cee6adc194ed66177ea19 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=493577b1193c980b1471231f9e5b3d124700fc7845edfec39660719cc62d2828 + PKG_HASH:=2924c1a7154b386b2806961dd954f104e44202de60d9b99f425138540a37db94 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=076b8987dcd9ec9e3d5386469d7efc8eefd0dd1c5267d6f5694ec5f191969e47 + PKG_HASH:=7cb067d212736908eec4cf2b5dfc39dbf7361f30e69337992e5db54b236df566 + PKG_SOURCE:=$(PKG_SOURCE_HEADER).armv7-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) + PKG_HASH:=866c7a1a4c899f3808ce6603b9aede1b84f5bcd15e5e78caf95acc70d27690fd endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=72b96c5c0ab4eaad12f14970c3882e311f5f0e75df1bf8c8e9bb8e7825a3bb89 + PKG_HASH:=a6a3b3c33a8f4e8b4613df6f0c366bb6bf6cf4452de4dc838d100a7f3780f2aa else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=f3ae1d678a0e5d1566542a3be30c97b8412fb07e569691c7642498333db1b1ec + PKG_HASH:=614788238d2a969490bbf4603fda16a9995434f1b6345916dbbc819fa75bfcec else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=86bb6943a1f4bd3b61c9f43ddd7977065461915e963ee872de9edb57b2517225 + PKG_HASH:=bf5a56319854f6c09744b32022147b65f5ee425995e16d963efaaa3d01823f97 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=b29f9e623bb3d74717159f5d999eed41d7f89317ca3adaed84cef5012e0f4308 + PKG_HASH:=c039cb9b2473456fac51d4aa55d52195f26739bbffc5c0bd4ac8148d1dc37594 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From cb46bc4105bf4e7f04c15013b648fa5ef161c3ef Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Dec 2022 23:50:28 +0800 Subject: [PATCH 255/972] =?UTF-8?q?shadowsocks-rust=EF=BC=9Afix=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shadowsocks-rust/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 084db8671f6..6333211e85b 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -23,9 +23,10 @@ else ifeq ($(ARCH),arm) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) PKG_HASH:=2924c1a7154b386b2806961dd954f104e44202de60d9b99f425138540a37db94 - else + else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=7cb067d212736908eec4cf2b5dfc39dbf7361f30e69337992e5db54b236df566 + else PKG_SOURCE:=$(PKG_SOURCE_HEADER).armv7-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=866c7a1a4c899f3808ce6603b9aede1b84f5bcd15e5e78caf95acc70d27690fd endif From e346dd63b88ae2cd98001cd3a0253dc51bfa8a16 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 21 Dec 2022 09:37:15 +0800 Subject: [PATCH 256/972] =?UTF-8?q?Revert=20"shadowsocks-rust=EF=BC=9Afix?= =?UTF-8?q?=20typo"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit cb46bc4105bf4e7f04c15013b648fa5ef161c3ef. Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 6333211e85b..084db8671f6 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -23,10 +23,9 @@ else ifeq ($(ARCH),arm) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) PKG_HASH:=2924c1a7154b386b2806961dd954f104e44202de60d9b99f425138540a37db94 - else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) + else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=7cb067d212736908eec4cf2b5dfc39dbf7361f30e69337992e5db54b236df566 - else PKG_SOURCE:=$(PKG_SOURCE_HEADER).armv7-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=866c7a1a4c899f3808ce6603b9aede1b84f5bcd15e5e78caf95acc70d27690fd endif From 9f5f4bcbec6743a81b5d467e5b21144a8bb8cb3b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 21 Dec 2022 09:38:51 +0800 Subject: [PATCH 257/972] Revert "Update shadowsocksr" This reverts commit 1eeda678a1cc95d082de67140814c1cf6dc29cea. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a30f22d020b..9ecbe60e14e 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -207,7 +207,7 @@ start_dns() { ln_start_bin $(first_type chinadns-ng) chinadns-ng -l $china_dns_port -4 china -p 3 -c ${chinadns/:/#} -t 127.0.0.1#$dns_port -N -f -r - cat <<-EOF > "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" + cat <<-EOF >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" no-poll no-resolv server=127.0.0.1#$china_dns_port From 5ec0f129543bb34d9ebbc5711130d0c157d06a6d Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 24 Dec 2022 10:28:57 +0800 Subject: [PATCH 258/972] shadowsocks-rust: remove armv7 build Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 084db8671f6..bd90b94ef92 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -26,8 +26,6 @@ else ifeq ($(ARCH),arm) else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=7cb067d212736908eec4cf2b5dfc39dbf7361f30e69337992e5db54b236df566 - PKG_SOURCE:=$(PKG_SOURCE_HEADER).armv7-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=866c7a1a4c899f3808ce6603b9aede1b84f5bcd15e5e78caf95acc70d27690fd endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) From d871138aee2523b250822550d488e6f92ffad54c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 24 Dec 2022 16:22:48 +0800 Subject: [PATCH 259/972] luci-app-ssr-plus: fix typo errors `Severs` -> `Servers`. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua | 2 +- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 4 ++-- luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm | 2 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 384f28546db..8ceaba7b07c 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -11,7 +11,7 @@ function index() page.dependent = true page.acl_depends = { "luci-app-ssr-plus" } entry({"admin", "services", "shadowsocksr", "client"}, cbi("shadowsocksr/client"), _("SSR Client"), 10).leaf = true - entry({"admin", "services", "shadowsocksr", "servers"}, arcombine(cbi("shadowsocksr/servers", {autoapply = true}), cbi("shadowsocksr/client-config")), _("Severs Nodes"), 20).leaf = true + entry({"admin", "services", "shadowsocksr", "servers"}, arcombine(cbi("shadowsocksr/servers", {autoapply = true}), cbi("shadowsocksr/client-config")), _("Servers Nodes"), 20).leaf = true entry({"admin", "services", "shadowsocksr", "control"}, cbi("shadowsocksr/control"), _("Access Control"), 30).leaf = true entry({"admin", "services", "shadowsocksr", "advanced"}, cbi("shadowsocksr/advanced"), _("Advanced Settings"), 50).leaf = true entry({"admin", "services", "shadowsocksr", "server"}, arcombine(cbi("shadowsocksr/server"), cbi("shadowsocksr/server-config")), _("SSR Server"), 60).leaf = true diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index e9734aea563..b2cb81bddee 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -54,11 +54,11 @@ o = s:option(Flag, "proxy", translate("Through proxy update")) o.rmempty = false o.description = translate("Through proxy update list, Not Recommended ") -o = s:option(Button, "subscribe", translate("Update All Subscribe Severs")) +o = s:option(Button, "subscribe", translate("Update All Subscribe Servers")) o.rawhtml = true o.template = "shadowsocksr/subscribe" -o = s:option(Button, "delete", translate("Delete All Subscribe Severs")) +o = s:option(Button, "delete", translate("Delete All Subscribe Servers")) o.inputstyle = "reset" o.description = string.format(translate("Server Count") .. ": %d", server_count) o.write = function() diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm index 47bf6ab552a..90e86dd35c6 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm @@ -13,6 +13,6 @@ return false; } //]]> - + <%+cbi/valuefooter%> diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 7fea718d3f0..864983b77e2 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -556,10 +556,10 @@ msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据 msgid "Support AdGuardHome and DNSMASQ format list" msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表" -msgid "Delete All Subscribe Severs" +msgid "Delete All Subscribe Servers" msgstr "删除所有订阅服务器节点" -msgid "Severs Nodes" +msgid "Servers Nodes" msgstr "服务器节点" msgid "Use Local DNS Service listen port 5335" @@ -631,7 +631,7 @@ msgstr "更新订阅 URL 列表" msgid "Update subscribe url list first" msgstr "修改订阅 URL 和节点关键字后,请先点击更新" -msgid "Update All Subscribe Severs" +msgid "Update All Subscribe Servers" msgstr "更新所有订阅服务器节点" msgid "Plugin" From 702ecd38f799190847b9e1195e7ec72834239a8b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 26 Dec 2022 15:41:50 +0800 Subject: [PATCH 260/972] xray-plugin: update to 1.7.0 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 012c0741ee1..f3dccd9a7d6 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.6.6 +PKG_VERSION:=1.7.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a4b79f79425ed4d0b5e7e6fcd20e8d68589a96e9199811f2324dd95cab40f9af +PKG_HASH:=5b0fc7d346361e1439eb6bf1e21393606bf1a753a2c9e07265d5933ada40b264 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From d1b70eaad80f6fc00297fc13ec618766991942b5 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 26 Dec 2022 15:40:16 +0800 Subject: [PATCH 261/972] v2ray-plugin: update to 5.2.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 5b595371ada..0cddf9eccb8 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.1.0 +PKG_VERSION:=5.2.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8793a4d94131271f3c48b7e2a4d9c0b97148192b96e275717fbc621d8927f7de +PKG_HASH:=777752cbe579d4d20fe175f11e10881d4a093398433762724b7c41284870d189 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From f304abc93c37c1415a5545127b2978fe3a826483 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 26 Dec 2022 15:37:51 +0800 Subject: [PATCH 262/972] v2ray-core: update to 5.2.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 5cf9fd0ac5e..4ab1ea296b6 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.1.0 +PKG_VERSION:=5.2.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b3dbd2bbee9486999b81d1968545c5a6caa7b0f4726a7259939f1bda54fcf5ea +PKG_HASH:=3594fcec033706cbc94ff76ecf86a44f025164baa5da9b2286dea32f2b6029f9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 616781ed5b2fda09b8b623379ff257bee13c67c2 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 26 Dec 2022 15:35:13 +0800 Subject: [PATCH 263/972] xray-core: update to 1.7.0 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index a88add1d104..7bde56a9b3c 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=1.6.6-2 +PKG_VERSION:=1.7.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=228fedbf5b624883ed2b0d1e3acf66842df483aa5a113995a4434314b3e755eb +PKG_HASH:=6dbf3d9103e62f9e72b7ac231e1d5a65e2a5c40810500a7e757a4ef71dcc32fd PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From c4c71925a795c63270de6b5a2390a228f46b40eb Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 27 Dec 2022 21:34:38 +0800 Subject: [PATCH 264/972] shadowsocks-rust: update to 1.15.2 --- shadowsocks-rust/Makefile | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index bd90b94ef92..f74358deae5 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -16,29 +16,28 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=04e3bf9a4090dce2b51c0f3a6042cf77cea64624746cee6adc194ed66177ea19 + PKG_HASH:=97850893c5a35b68ccd419b542c1785e4c0006e8c0c0b10eac8e5b8c67b12704 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=2924c1a7154b386b2806961dd954f104e44202de60d9b99f425138540a37db94 + PKG_HASH:=728f4550abe4f18679555fa00b88ce889d2f412be7fa0d96bf153d086ad0c63e else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=7cb067d212736908eec4cf2b5dfc39dbf7361f30e69337992e5db54b236df566 - endif + PKG_HASH:=f13ae6497843347c91ef8b0634cee96f5043a644b2fba30009cafd6c9e65d7df else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a6a3b3c33a8f4e8b4613df6f0c366bb6bf6cf4452de4dc838d100a7f3780f2aa + PKG_HASH:=a8558a9e898f9ba875136c3d038e968ca8d301a7dcde977f6483d5072f57695f else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=614788238d2a969490bbf4603fda16a9995434f1b6345916dbbc819fa75bfcec + PKG_HASH:=a3f99d549c9f417fef63fa323840e0c4fb4dc96a53cf8329293c2a4e485ed239 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=bf5a56319854f6c09744b32022147b65f5ee425995e16d963efaaa3d01823f97 + PKG_HASH:=47d0f10d94216376057fc4238ebab68d19e3882293d5fe76ac3d29c41458a985 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=c039cb9b2473456fac51d4aa55d52195f26739bbffc5c0bd4ac8148d1dc37594 + PKG_HASH:=69c2df2bd4e9e2ff0d70faa14b70888de2eb205ab2a49dd7066c86363e2acc50 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From ad8ed8ece480f181be138ab1a67a8d7a6a142155 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 27 Dec 2022 21:36:54 +0800 Subject: [PATCH 265/972] =?UTF-8?q?shadowsocks-rust=EF=BC=9A=20fix=20typo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shadowsocks-rust/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index f74358deae5..2f9537cee53 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -26,6 +26,7 @@ else ifeq ($(ARCH),arm) else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) PKG_HASH:=f13ae6497843347c91ef8b0634cee96f5043a644b2fba30009cafd6c9e65d7df + endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) PKG_HASH:=a8558a9e898f9ba875136c3d038e968ca8d301a7dcde977f6483d5072f57695f From 193d0d1c09cb2da7027bbbbd84b342e01187054b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 28 Dec 2022 13:16:03 +0800 Subject: [PATCH 266/972] shadowsocks-rust: bump version to 1.15.2 Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 2f9537cee53..67e53433ed5 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.1 +PKG_VERSION:=1.15.2 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) From 84517ff816508a8b19131579acb5b1a780d51bb3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 30 Dec 2022 11:32:48 +0800 Subject: [PATCH 267/972] luci-app-ssr-plus: fix parsing subscriptions from some shitty panel Fixes: #1078 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 6 ++++-- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 31733a1ee42..c6caa22d886 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -328,8 +328,10 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; break; case "http": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = queryParam.host || serverPart[0]; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = queryParam.path || "/"; + /* this is non-standard, bullshit */ + case "h2": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; break; case "quic": document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].value = params.get("headerType") || "none"; diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 66219c3e38e..bd1b5816ac5 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -369,7 +369,8 @@ local function processData(szType, content) if result.transport == "ws" then result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.ws_path = params.path and UrlDecode(params.path) or "/" - elseif result.transport == "http" then + -- make it compatible with bullshit, "h2" transport is non-existent at all + elseif result.transport == "http" or result.transport == "h2" then result.transport = "h2" result.h2_host = params.host and UrlDecode(params.host) or nil result.h2_path = params.path and UrlDecode(params.path) or nil From 9ec3e2d32753629aa9e40465611ba6e206970af5 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 30 Dec 2022 12:13:49 +0800 Subject: [PATCH 268/972] luci-app-ssr-plus: subscribe: allow underscore in domain Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index bd1b5816ac5..e2fb4a26ba9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -526,7 +526,7 @@ local execute = function() -- log(result) if result then -- 中文做地址的 也没有人拿中文域名搞,就算中文域也有Puny Code SB 机场 - if not result.server or not result.server_port or result.alias == "NULL" or check_filer(result) or result.server:match("[^0-9a-zA-Z%-%.%s]") or cache[groupHash][result.hashkey] then + if not result.server or not result.server_port or result.alias == "NULL" or check_filer(result) or result.server:match("[^0-9a-zA-Z%-_%.%s]") or cache[groupHash][result.hashkey] then log('丢弃无效节点: ' .. result.type .. ' 节点, ' .. result.alias) else -- log('成功解析: ' .. result.type ..' 节点, ' .. result.alias) From 4649b5a06db19669d19bc0deaf38b0a9c811d331 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 8 Jan 2023 11:04:35 +0800 Subject: [PATCH 269/972] xray-core: Update to 1.7.2 Signed-off-by: Tianling Shen --- xray-core/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 7bde56a9b3c..4b6f3158ac7 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,17 +1,18 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=Xray-core -PKG_VERSION:=1.7.0 +PKG_NAME:=xray-core +PKG_VERSION:=1.7.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6dbf3d9103e62f9e72b7ac231e1d5a65e2a5c40810500a7e757a4ef71dcc32fd +PKG_HASH:=e35824e19e8acc06296ce6bfa78a14a6f3ee8f42a965f7762b7056b506457a29 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 PKG_LICENSE_FILES:=LICENSE +PKG_BUILD_DIR:=$(BUILD_DIR)/Xray-core-$(PKG_VERSION) PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 From 711f745a1d3dcb3aae0d8c747e523b00b6506e91 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 11 Jan 2023 11:56:55 +0800 Subject: [PATCH 270/972] xray-plugin: Update to 1.7.2 Signed-off-by: Tianling Shen --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index f3dccd9a7d6..9cab644b258 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.7.0 +PKG_VERSION:=1.7.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=5b0fc7d346361e1439eb6bf1e21393606bf1a753a2c9e07265d5933ada40b264 +PKG_HASH:=01436a239a4f3b2d9365d77fa43292f6d89c676b2bc0d5e933635cc613b63f0f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 96ad4b92bc9f6b1402c5d243206e43ff29a15c6c Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 13 Jan 2023 23:19:52 +0800 Subject: [PATCH 271/972] naiveproxy: update to 109.0.5414.74-1 --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index fea310d3ed3..30c93a3dc65 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=108.0.5359.94-1 +PKG_VERSION:=109.0.5414.74-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a082b1d737a42de37bda376042d42ea6c8e2a04bf06627c3435593f1d6c21d68 +PKG_HASH:=eb0b7d4ee7e34aff5bd9f7ff662a707c059e3739da47cd52e6d5edfff988123a PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -57,31 +57,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-6578-g0d30e92f-2 +CLANG_VER:=16-init-8697-g60809cd2-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=aa3a115ee2d19eead9bbee92350949c9d931f755b0b433703571e2f2154822b4 + HASH:=5ae35f85e0d32136795c6b223bf64263d46678dd4a24fea4e9039e58a32670de endef -GN_VER:=b9c6c19be95a3863e02f00f1fe403b2502e345b6 +GN_VER:=1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=74707aafd30bc4c725e4d251568883e46bc2f92c8e41a6ab62e99c29ac2f6778 + HASH:=7195291488d08f3a10e85b85d8c4816e077015f1c5f196f770003a97aa42caf8 endef -PGO_VER:=5359-1669656947-a415d5db65dd3e05ade5e2d1d5f3750801174642 +PGO_VER:=5414-1672766927-26b17aa1745606599e619feccfe46371e879e7c4 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=e71bcc45bf3acdc2624cb00557428a0922b62bfff8d68b81fe533ccd863426d5 + HASH:=e9a52f7a60d46fd6e682b0e908b1363faeb6f96bc2e95d5d95095b33fa67e34a endef define Build/Prepare From 7315e2c996d0f77914fc3400ec2edea701ae34be Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 14 Jan 2023 15:14:13 +0800 Subject: [PATCH 272/972] naiveproxy: update to 109.0.5414.74-2 --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 30c93a3dc65..2bcffa5e1c7 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=109.0.5414.74-1 +PKG_VERSION:=109.0.5414.74-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=eb0b7d4ee7e34aff5bd9f7ff662a707c059e3739da47cd52e6d5edfff988123a +PKG_HASH:=3c1e9e276e4ae79c8192c25a15df2f564741602ae403712565c48aa6db9d78e7 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From efeeabb8f4d869fca82ac4b4e5e678fe59a88b1a Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 18 Jan 2023 18:22:47 +0800 Subject: [PATCH 273/972] v2ray-core: bump to 5.2.1 Signed-off-by: Tianling Shen --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 4ab1ea296b6..b27d019a5c6 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.2.0 +PKG_VERSION:=5.2.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3594fcec033706cbc94ff76ecf86a44f025164baa5da9b2286dea32f2b6029f9 +PKG_HASH:=97bc872e798fed51c23c39f8f63ee25984658e2b252b0ec2c8ec469c00a4d77a PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 9793a7f2a7ae7317e3f14d5d238a9e346902d32c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 22 Jan 2023 15:16:20 +0800 Subject: [PATCH 274/972] lua-neturl: allow unserscore in domain name Signed-off-by: Tianling Shen --- lua-neturl/Makefile | 4 ++-- lua-neturl/patches/010-userinfo-regex.patch | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lua-neturl/Makefile b/lua-neturl/Makefile index 5b661bd0c49..0985c484ba4 100644 --- a/lua-neturl/Makefile +++ b/lua-neturl/Makefile @@ -1,12 +1,12 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2022 ImmortalWrt.org +# Copyright (C) 2022-2023 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=neturl PKG_VERSION:=1.1-1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/golgote/neturl/tar.gz/v$(PKG_VERSION)? diff --git a/lua-neturl/patches/010-userinfo-regex.patch b/lua-neturl/patches/010-userinfo-regex.patch index ad8946a9636..c4b962bd871 100644 --- a/lua-neturl/patches/010-userinfo-regex.patch +++ b/lua-neturl/patches/010-userinfo-regex.patch @@ -9,3 +9,12 @@ self.user = userinfo else -- incorrect userinfo +@@ -369,7 +369,7 @@ function M.parse(url) + comp.fragment = v + return '' + end) +- url =url:gsub('^([%w][%w%+%-%.]*)%:', function(v) ++ url =url:gsub('^([%w][%p%w%+%-%.]*)%:', function(v) + comp.scheme = v:lower() + return '' + end) From 355f79d1cb77480387c5885f075b6e825d6bd7dd Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 23 Jan 2023 19:23:29 +0800 Subject: [PATCH 275/972] lua-neturl: fix regex Signed-off-by: Tianling Shen --- lua-neturl/Makefile | 2 +- lua-neturl/patches/010-userinfo-regex.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lua-neturl/Makefile b/lua-neturl/Makefile index 0985c484ba4..0f6b16f355c 100644 --- a/lua-neturl/Makefile +++ b/lua-neturl/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=neturl PKG_VERSION:=1.1-1 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/golgote/neturl/tar.gz/v$(PKG_VERSION)? diff --git a/lua-neturl/patches/010-userinfo-regex.patch b/lua-neturl/patches/010-userinfo-regex.patch index c4b962bd871..9dbd91ccfc1 100644 --- a/lua-neturl/patches/010-userinfo-regex.patch +++ b/lua-neturl/patches/010-userinfo-regex.patch @@ -14,7 +14,7 @@ return '' end) - url =url:gsub('^([%w][%w%+%-%.]*)%:', function(v) -+ url =url:gsub('^([%w][%p%w%+%-%.]*)%:', function(v) ++ url =url:gsub('^([%w][%w%+%-%_%.]*)%:', function(v) comp.scheme = v:lower() return '' end) From 1eeb359d8cd8729036c3a4155337a81c3945fb95 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 6 Feb 2023 01:12:19 +0800 Subject: [PATCH 276/972] xray-core: Update to 1.7.3 Signed-off-by: Tianling Shen --- xray-core/Makefile | 4 +- ...010-Use-go-linkname-in-qtls_go118-go.patch | 59 +++++++++++++++++++ 2 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index 4b6f3158ac7..e75b4c148e5 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.7.2 +PKG_VERSION:=1.7.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e35824e19e8acc06296ce6bfa78a14a6f3ee8f42a965f7762b7056b506457a29 +PKG_HASH:=dcca9bd46813129325dd9128d34b096475668032f919677dbf5aaeea93b6694f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch b/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch new file mode 100644 index 00000000000..0ad28999b57 --- /dev/null +++ b/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch @@ -0,0 +1,59 @@ +From 00c95761189162504ebc2c0df3266e9395c7e40d Mon Sep 17 00:00:00 2001 +From: RPRX <63339210+RPRX@users.noreply.github.com> +Date: Sat, 4 Feb 2023 21:27:13 +0800 +Subject: [PATCH] Use go:linkname in qtls_go118.go + +Once and for all, whatever +--- + common/protocol/quic/qtls_go118.go | 20 +++++++++++--------- + go.mod | 2 +- + 2 files changed, 12 insertions(+), 10 deletions(-) + +--- a/common/protocol/quic/qtls_go118.go ++++ b/common/protocol/quic/qtls_go118.go +@@ -1,16 +1,18 @@ + package quic + + import ( ++ "crypto" + "crypto/cipher" +- +- "github.com/quic-go/qtls-go1-20" +-) +- +-type ( +- // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 +- CipherSuiteTLS13 = qtls.CipherSuiteTLS13 ++ _ "crypto/tls" ++ _ "unsafe" + ) + +-func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { +- return qtls.AEADAESGCMTLS13(key, fixedNonce) ++type CipherSuiteTLS13 struct { ++ ID uint16 ++ KeyLen int ++ AEAD func(key, fixedNonce []byte) cipher.AEAD ++ Hash crypto.Hash + } ++ ++//go:linkname AEADAESGCMTLS13 crypto/tls.aeadAESGCMTLS13 ++func AEADAESGCMTLS13(key, nonceMask []byte) cipher.AEAD +--- a/go.mod ++++ b/go.mod +@@ -11,7 +11,6 @@ require ( + github.com/miekg/dns v1.1.50 + github.com/pelletier/go-toml v1.9.5 + github.com/pires/go-proxyproto v0.6.2 +- github.com/quic-go/qtls-go1-20 v0.1.0 + github.com/quic-go/quic-go v0.32.0 + github.com/refraction-networking/utls v1.2.0 + github.com/sagernet/sing v0.1.6 +@@ -46,6 +45,7 @@ require ( + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/quic-go/qtls-go1-18 v0.2.0 // indirect + github.com/quic-go/qtls-go1-19 v0.2.0 // indirect ++ github.com/quic-go/qtls-go1-20 v0.1.0 // indirect + github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect + go.uber.org/atomic v1.10.0 // indirect + golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 // indirect From 2533f3e69a7447519b75f44b88775f8511220bfe Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:35:04 +0000 Subject: [PATCH 277/972] xray-core: update to 1.7.5 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- xray-core/Makefile | 4 +- ...010-Use-go-linkname-in-qtls_go118-go.patch | 59 ------------------- 2 files changed, 2 insertions(+), 61 deletions(-) delete mode 100644 xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index e75b4c148e5..db01d6a7902 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.7.3 +PKG_VERSION:=1.7.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=dcca9bd46813129325dd9128d34b096475668032f919677dbf5aaeea93b6694f +PKG_HASH:=a5fc936136a57a463bf9a895d068fdfa895b168ae6093c58a10208e098b6b2d3 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch b/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch deleted file mode 100644 index 0ad28999b57..00000000000 --- a/xray-core/patches/010-Use-go-linkname-in-qtls_go118-go.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 00c95761189162504ebc2c0df3266e9395c7e40d Mon Sep 17 00:00:00 2001 -From: RPRX <63339210+RPRX@users.noreply.github.com> -Date: Sat, 4 Feb 2023 21:27:13 +0800 -Subject: [PATCH] Use go:linkname in qtls_go118.go - -Once and for all, whatever ---- - common/protocol/quic/qtls_go118.go | 20 +++++++++++--------- - go.mod | 2 +- - 2 files changed, 12 insertions(+), 10 deletions(-) - ---- a/common/protocol/quic/qtls_go118.go -+++ b/common/protocol/quic/qtls_go118.go -@@ -1,16 +1,18 @@ - package quic - - import ( -+ "crypto" - "crypto/cipher" -- -- "github.com/quic-go/qtls-go1-20" --) -- --type ( -- // A CipherSuiteTLS13 is a cipher suite for TLS 1.3 -- CipherSuiteTLS13 = qtls.CipherSuiteTLS13 -+ _ "crypto/tls" -+ _ "unsafe" - ) - --func AEADAESGCMTLS13(key, fixedNonce []byte) cipher.AEAD { -- return qtls.AEADAESGCMTLS13(key, fixedNonce) -+type CipherSuiteTLS13 struct { -+ ID uint16 -+ KeyLen int -+ AEAD func(key, fixedNonce []byte) cipher.AEAD -+ Hash crypto.Hash - } -+ -+//go:linkname AEADAESGCMTLS13 crypto/tls.aeadAESGCMTLS13 -+func AEADAESGCMTLS13(key, nonceMask []byte) cipher.AEAD ---- a/go.mod -+++ b/go.mod -@@ -11,7 +11,6 @@ require ( - github.com/miekg/dns v1.1.50 - github.com/pelletier/go-toml v1.9.5 - github.com/pires/go-proxyproto v0.6.2 -- github.com/quic-go/qtls-go1-20 v0.1.0 - github.com/quic-go/quic-go v0.32.0 - github.com/refraction-networking/utls v1.2.0 - github.com/sagernet/sing v0.1.6 -@@ -46,6 +45,7 @@ require ( - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/quic-go/qtls-go1-18 v0.2.0 // indirect - github.com/quic-go/qtls-go1-19 v0.2.0 // indirect -+ github.com/quic-go/qtls-go1-20 v0.1.0 // indirect - github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect - go.uber.org/atomic v1.10.0 // indirect - golang.org/x/exp v0.0.0-20230131160201-f062dba9d201 // indirect From 1789d6b7e90349c6032767a999b7613904606545 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:39:08 +0000 Subject: [PATCH 278/972] v2ray-core: update to 5.3.0 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index b27d019a5c6..84fa927aa51 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.2.1 +PKG_VERSION:=5.3.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=97bc872e798fed51c23c39f8f63ee25984658e2b252b0ec2c8ec469c00a4d77a +PKG_HASH:=8e97e2647cb1dee8aa7e71df276c56d74258b2d97bb490a362afa84bdf1b9e25 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From d2a37ef4f3c090b87cf754db5eb4b55618ff84e6 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:41:39 +0000 Subject: [PATCH 279/972] hysteria: update to 1.3.3 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 6510350a233..711cd40fea9 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.2 +PKG_VERSION:=1.3.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1014287f6cca7cb3fa0e4ad36b33cf8f28c800fb9f99d431997036baef8240fa +PKG_HASH:=11ca9df98a8a17a348dcdac92a19fef0e25dde8e536a9778705f765ac208a202 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From 9b2ddd207a3ce63852c2d9709da0a3d36726c1bb Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 8 Feb 2023 16:44:50 +0000 Subject: [PATCH 280/972] v2ray-plugin: update to 5.3.0 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 0cddf9eccb8..db5c008acb6 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.2.0 +PKG_VERSION:=5.3.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=777752cbe579d4d20fe175f11e10881d4a093398433762724b7c41284870d189 +PKG_HASH:=d8394ee4e01c8ad73f13b4cd769e02d3a5ac6a737be9bcc7587332ce92db619a PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 16021cbb9a652e83035736235300b396280ee98b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 9 Feb 2023 23:13:53 +0800 Subject: [PATCH 281/972] luci-app-ssr-plus: fix fingerprint settings Fixes: #1107 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 2 +- .../model/cbi/shadowsocksr/client-config.lua | 14 ++++++++++---- .../luasrc/view/shadowsocksr/ssrurl.htm | 1 + .../root/etc/uci-defaults/luci-ssr-plus | 1 + .../root/usr/share/shadowsocksr/subscribe.lua | 1 + 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index ac99a7a16e9..536d7c59c0a 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=186 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 1203f5df165..5040fc701f3 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -147,7 +147,7 @@ o.rawhtml = true o.template = "shadowsocksr/ssrurl" o.value = sid -o = s:option(ListValue, "type", translate("Server Node Type")) +o = s:option(Value, "type", translate("Server Node Type")) if is_finded("xray") or is_finded("v2ray") then o:value("v2ray", translate("V2Ray/XRay")) end @@ -715,14 +715,20 @@ o.default = "0" if is_finded("xray") then -- [[ uTLS ]]-- o = s:option(ListValue, "fingerprint", translate("Finger Print")) - o:value("disable", translate("disable")) - o:value("firefox", translate("firefox")) + o:value("", translate("disable")) o:value("chrome", translate("chrome")) + o:value("firefox", translate("firefox")) o:value("safari", translate("safari")) + o:value("ios", translate("ios")) + o:value("android", translate("android")) + o:value("edge", translate("edge")) + o:value("360", translate("360")) + o:value("qq", translate("qq")) + o:value("random", translate("random")) o:value("randomized", translate("randomized")) o:depends({type = "v2ray", tls = true}) o:depends({type = "v2ray", xtls = true}) - o.default = "disable" + o.default = "" end o = s:option(Value, "tls_host", translate("TLS Host")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index c6caa22d886..4e2e41484a7 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -315,6 +315,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].value = params.get("flow") || "xtls-rprx-splice"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].dispatchEvent(event); } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; } switch (params.get("type")) { diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 63b8b2bc04f..d7378d819b3 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -32,6 +32,7 @@ sed -i "s/option pdnsd_enable '3'/option pdnsd_enable '1'/g" /etc/config/shadows sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr +sed -i "/option fingerprint 'disable'/d" /etc/config/shadowsocksr if [ -s "/etc/uwsgi/vassals/luci-webui.ini" ];then limit=$(cat /etc/uwsgi/vassals/luci-webui.ini | grep -Eo "limit-as.*"|grep -Eo "[0-9]+") diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index e2fb4a26ba9..518bb987cc6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -366,6 +366,7 @@ local function processData(szType, content) result.tls_host = params.sni result.xtls = params.security == "xtls" and "1" or nil result.vless_flow = params.flow + result.fingerprint = params.fp if result.transport == "ws" then result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.ws_path = params.path and UrlDecode(params.path) or "/" From 8708c9b401547db8ce11c5f570adfb0b9d7f2cfe Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 9 Feb 2023 23:21:56 +0800 Subject: [PATCH 282/972] xray-plugin: Update to 1.7.5 Signed-off-by: Tianling Shen --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 9cab644b258..d57df6b76fc 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.7.2 +PKG_VERSION:=1.7.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=01436a239a4f3b2d9365d77fa43292f6d89c676b2bc0d5e933635cc613b63f0f +PKG_HASH:=e22aef7ce8c98a492c6fcafd182cfd0ebe27fa3c1e74c6b08d0cff8088895e04 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 29167911e51930f940465495b8e59513b72afbaf Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Feb 2023 05:28:30 +0800 Subject: [PATCH 283/972] luci-app-ssr-plus: client-config: fix typo error Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 5040fc701f3..79349b31c95 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -147,7 +147,7 @@ o.rawhtml = true o.template = "shadowsocksr/ssrurl" o.value = sid -o = s:option(Value, "type", translate("Server Node Type")) +o = s:option(ListValue, "type", translate("Server Node Type")) if is_finded("xray") or is_finded("v2ray") then o:value("v2ray", translate("V2Ray/XRay")) end @@ -714,7 +714,7 @@ o.default = "0" if is_finded("xray") then -- [[ uTLS ]]-- - o = s:option(ListValue, "fingerprint", translate("Finger Print")) + o = s:option(Value, "fingerprint", translate("Finger Print")) o:value("", translate("disable")) o:value("chrome", translate("chrome")) o:value("firefox", translate("firefox")) From f8fb1b5277ab50485b7e824906f1255e196df0fd Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Feb 2023 05:32:55 +0800 Subject: [PATCH 284/972] luci-app-ssr-plus: advanced: add china-operator-ip to chnroute list Closes: #1099 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 6de68df8016..cd18cdbd7d9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -54,6 +54,7 @@ o.default = "https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@r o = s:option(Value, "chnroute_url", translate("Chnroute Update url")) o:value("https://ispip.clang.cn/all_cn.txt", translate("Clang.CN")) o:value("https://ispip.clang.cn/all_cn_cidr.txt", translate("Clang.CN.CIDR")) +o:value("https://fastly.jsdelivr.net/gh/gaoyifan/china-operator-ip@ip-lists/china.txt", translate("china-operator-ip")) o.default = "https://ispip.clang.cn/all_cn.txt" o = s:option(ListValue, "default_packet_encoding", translate("Default Packet Encoding")) From 374ff3b011b2cf656575a7237eab3fa2471bf125 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Feb 2023 05:38:31 +0800 Subject: [PATCH 285/972] luci-app-ssr-plus: update cn&gfw lists Signed-off-by: Tianling Shen --- .../root/etc/ssrplus/china_ssr.txt | 239 +- .../root/etc/ssrplus/gfw_list.conf | 44684 ++++++++++------ .../root/etc/ssrplus/netflixip.list | 15 + 3 files changed, 28758 insertions(+), 16180 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt b/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt index 3d3bb2d7c8b..d35488334dd 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt +++ b/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt @@ -265,8 +265,10 @@ 42.244.0.0/14 42.248.0.0/13 43.136.0.0/13 -43.144.0.0/12 -43.160.0.0/11 +43.144.0.0/13 +43.176.0.0/12 +43.192.0.0/14 +43.196.0.0/15 43.224.12.0/22 43.224.24.0/22 43.224.44.0/22 @@ -290,8 +292,6 @@ 43.225.76.0/22 43.225.84.0/22 43.225.120.0/22 -43.225.124.0/22 -43.225.140.0/22 43.225.172.0/22 43.225.180.0/22 43.225.208.0/22 @@ -432,7 +432,6 @@ 43.229.48.0/22 43.229.56.0/22 43.229.96.0/22 -43.229.120.0/22 43.229.136.0/22 43.229.140.0/22 43.229.144.0/22 @@ -601,7 +600,6 @@ 43.237.184.0/22 43.237.188.0/22 43.237.192.0/22 -43.237.196.0/22 43.237.200.0/22 43.237.204.0/22 43.237.208.0/22 @@ -725,7 +723,6 @@ 43.240.212.0/22 43.240.216.0/22 43.240.220.0/22 -43.240.236.0/22 43.240.240.0/22 43.240.244.0/22 43.240.248.0/22 @@ -748,7 +745,6 @@ 43.241.176.0/22 43.241.180.0/22 43.241.184.0/22 -43.241.196.0/22 43.241.208.0/22 43.241.212.0/22 43.241.216.0/22 @@ -762,8 +758,7 @@ 43.241.252.0/22 43.242.8.0/22 43.242.12.0/22 -43.242.16.0/22 -43.242.20.0/22 +43.242.16.0/21 43.242.24.0/22 43.242.28.0/22 43.242.44.0/22 @@ -798,7 +793,6 @@ 43.243.8.0/22 43.243.12.0/22 43.243.16.0/22 -43.243.24.0/22 43.243.88.0/22 43.243.128.0/22 43.243.136.0/22 @@ -835,7 +829,6 @@ 43.246.92.0/22 43.246.96.0/22 43.246.112.0/22 -43.246.212.0/22 43.246.228.0/22 43.247.4.0/22 43.247.8.0/22 @@ -959,7 +952,6 @@ 43.251.244.0/22 43.252.48.0/22 43.252.56.0/22 -43.252.224.0/22 43.254.0.0/22 43.254.4.0/22 43.254.8.0/22 @@ -1011,9 +1003,7 @@ 43.255.76.0/22 43.255.84.0/22 43.255.96.0/22 -43.255.108.0/22 43.255.144.0/22 -43.255.168.0/22 43.255.176.0/22 43.255.184.0/22 43.255.192.0/22 @@ -1062,12 +1052,10 @@ 45.113.240.0/22 45.113.252.0/22 45.114.0.0/22 -45.114.12.0/22 45.114.32.0/22 45.114.40.0/22 45.114.52.0/22 45.114.96.0/22 -45.114.104.0/22 45.114.124.0/22 45.114.136.0/22 45.114.196.0/22 @@ -1113,7 +1101,6 @@ 45.120.100.0/22 45.120.140.0/22 45.120.164.0/22 -45.120.220.0/22 45.120.240.0/22 45.121.52.0/22 45.121.64.0/22 @@ -1221,10 +1208,8 @@ 45.124.176.0/22 45.124.208.0/22 45.124.248.0/22 -45.125.12.0/22 45.125.16.0/22 45.125.24.0/22 -45.125.28.0/22 45.125.44.0/22 45.125.52.0/22 45.125.56.0/22 @@ -1235,7 +1220,6 @@ 45.125.92.0/22 45.125.96.0/22 45.125.100.0/22 -45.125.104.0/22 45.125.136.0/22 45.126.48.0/22 45.126.52.0/22 @@ -1248,7 +1232,6 @@ 45.126.220.0/22 45.127.8.0/22 45.127.12.0/22 -45.127.96.0/22 45.127.128.0/22 45.127.144.0/22 45.127.148.0/22 @@ -1286,7 +1269,6 @@ 45.249.28.0/22 45.249.32.0/22 45.249.36.0/22 -45.249.92.0/22 45.249.112.0/22 45.249.188.0/22 45.249.192.0/22 @@ -1374,7 +1356,6 @@ 45.252.40.0/22 45.252.44.0/22 45.252.48.0/22 -45.252.60.0/22 45.252.84.0/22 45.252.88.0/22 45.252.92.0/22 @@ -1613,6 +1594,7 @@ 52.82.0.0/15 52.130.0.0/15 54.222.0.0/15 +57.176.0.0/15 58.14.0.0/15 58.16.0.0/16 58.17.0.0/17 @@ -1884,7 +1866,7 @@ 101.38.0.0/15 101.40.0.0/15 101.42.0.0/15 -101.44.0.0/14 +101.47.0.0/16 101.48.0.0/15 101.50.8.0/22 101.50.12.0/22 @@ -2026,7 +2008,6 @@ 103.9.24.0/22 103.9.108.0/22 103.9.152.0/22 -103.9.192.0/22 103.9.248.0/22 103.9.252.0/22 103.10.0.0/22 @@ -2039,6 +2020,7 @@ 103.12.32.0/22 103.12.68.0/22 103.12.92.0/22 +103.12.98.0/23 103.12.136.0/22 103.12.184.0/22 103.12.232.0/22 @@ -2048,7 +2030,6 @@ 103.13.196.0/22 103.13.220.0/22 103.13.244.0/22 -103.14.32.0/22 103.14.84.0/22 103.14.100.0/22 103.14.132.0/22 @@ -2073,13 +2054,16 @@ 103.17.160.0/22 103.17.204.0/22 103.17.228.0/22 +103.18.186.0/23 103.18.192.0/22 +103.18.206.0/23 103.18.208.0/22 103.18.212.0/22 103.18.224.0/22 103.19.12.0/22 103.19.40.0/22 103.19.44.0/22 +103.19.50.0/23 103.19.64.0/22 103.19.68.0/22 103.19.72.0/22 @@ -2147,7 +2131,6 @@ 103.24.184.0/22 103.24.220.0/22 103.24.228.0/22 -103.24.248.0/22 103.24.252.0/22 103.25.8.0/23 103.25.20.0/22 @@ -2185,11 +2168,16 @@ 103.28.204.0/22 103.28.212.0/22 103.29.16.0/22 +103.29.24.0/23 +103.29.29.0/24 103.29.128.0/22 103.29.132.0/22 103.29.136.0/22 +103.29.236.0/23 103.30.20.0/22 103.30.96.0/22 +103.30.104.0/23 +103.30.106.0/23 103.30.148.0/22 103.30.200.0/22 103.30.228.0/22 @@ -2206,6 +2194,7 @@ 103.31.168.0/22 103.31.200.0/22 103.31.236.0/22 +103.31.242.0/23 103.32.0.0/22 103.32.4.0/22 103.32.8.0/22 @@ -2414,7 +2403,6 @@ 103.35.104.0/22 103.35.116.0/22 103.35.180.0/22 -103.35.200.0/22 103.35.220.0/22 103.36.28.0/22 103.36.36.0/22 @@ -2447,7 +2435,6 @@ 103.36.236.0/22 103.36.240.0/22 103.36.244.0/22 -103.37.0.0/22 103.37.12.0/22 103.37.16.0/22 103.37.24.0/22 @@ -2457,7 +2444,6 @@ 103.37.72.0/22 103.37.100.0/22 103.37.104.0/22 -103.37.124.0/22 103.37.136.0/22 103.37.140.0/22 103.37.144.0/22 @@ -2471,8 +2457,7 @@ 103.37.188.0/22 103.37.208.0/22 103.37.212.0/22 -103.37.216.0/22 -103.37.220.0/22 +103.37.216.0/21 103.37.248.0/22 103.37.252.0/22 103.38.0.0/22 @@ -2494,7 +2479,6 @@ 103.39.88.0/22 103.39.100.0/22 103.39.104.0/22 -103.39.108.0/22 103.39.160.0/22 103.39.164.0/22 103.39.168.0/22 @@ -2523,6 +2507,7 @@ 103.40.44.0/22 103.40.88.0/22 103.40.100.0/22 +103.40.158.0/23 103.40.192.0/22 103.40.212.0/22 103.40.220.0/22 @@ -2562,6 +2547,7 @@ 103.43.100.0/22 103.43.104.0/22 103.43.124.0/22 +103.43.132.0/22 103.43.184.0/22 103.43.192.0/22 103.43.196.0/22 @@ -2571,7 +2557,6 @@ 103.43.240.0/22 103.44.56.0/22 103.44.80.0/22 -103.44.88.0/22 103.44.120.0/22 103.44.124.0/22 103.44.132.0/22 @@ -2705,7 +2690,6 @@ 103.47.212.0/22 103.48.52.0/22 103.48.92.0/22 -103.48.144.0/22 103.48.148.0/22 103.48.152.0/22 103.48.156.0/22 @@ -2722,7 +2706,6 @@ 103.49.20.0/22 103.49.72.0/22 103.49.76.0/22 -103.49.92.0/22 103.49.96.0/22 103.49.108.0/22 103.49.128.0/22 @@ -2790,17 +2773,14 @@ 103.53.204.0/22 103.53.208.0/22 103.53.212.0/22 -103.53.216.0/22 103.53.236.0/22 103.53.248.0/22 103.54.8.0/22 103.54.48.0/22 -103.54.60.0/22 103.54.160.0/22 103.54.164.0/22 103.54.212.0/22 103.54.240.0/22 -103.55.24.0/22 103.55.80.0/22 103.55.120.0/22 103.55.152.0/22 @@ -2817,6 +2797,7 @@ 103.56.60.0/22 103.56.72.0/22 103.56.76.0/22 +103.56.94.0/23 103.56.100.0/22 103.56.104.0/22 103.56.140.0/22 @@ -2839,6 +2820,7 @@ 103.59.128.0/22 103.59.148.0/22 103.59.164.0/22 +103.59.168.0/23 103.60.32.0/22 103.60.44.0/22 103.60.164.0/22 @@ -3007,6 +2989,9 @@ 103.65.164.0/22 103.65.168.0/22 103.65.172.0/22 +103.65.204.0/23 +103.65.206.0/23 +103.65.224.0/23 103.66.32.0/22 103.66.40.0/22 103.66.92.0/22 @@ -3043,19 +3028,18 @@ 103.68.128.0/22 103.68.192.0/22 103.69.16.0/22 +103.69.62.0/23 103.69.116.0/22 103.69.132.0/22 103.69.152.0/22 -103.69.212.0/22 103.70.8.0/22 +103.70.14.0/23 103.70.148.0/22 -103.70.184.0/22 103.70.220.0/22 103.70.224.0/22 103.70.236.0/22 103.70.252.0/22 103.71.0.0/22 -103.71.32.0/22 103.71.48.0/22 103.71.68.0/22 103.71.72.0/22 @@ -3086,7 +3070,6 @@ 103.72.124.0/22 103.72.128.0/22 103.72.132.0/22 -103.72.144.0/22 103.72.148.0/22 103.72.172.0/22 103.72.180.0/22 @@ -3107,8 +3090,6 @@ 103.73.24.0/22 103.73.28.0/22 103.73.48.0/22 -103.73.88.0/22 -103.73.96.0/22 103.73.116.0/22 103.73.120.0/22 103.73.128.0/22 @@ -3139,7 +3120,6 @@ 103.74.156.0/22 103.74.204.0/22 103.74.232.0/22 -103.75.16.0/22 103.75.88.0/22 103.75.92.0/22 103.75.104.0/22 @@ -3154,7 +3134,6 @@ 103.76.64.0/22 103.76.68.0/22 103.76.72.0/22 -103.76.84.0/22 103.76.92.0/22 103.76.216.0/22 103.76.220.0/22 @@ -3198,8 +3177,8 @@ 103.79.204.0/22 103.79.208.0/22 103.79.212.0/22 +103.79.228.0/23 103.79.240.0/22 -103.80.24.0/22 103.80.28.0/22 103.80.44.0/22 103.80.72.0/22 @@ -3248,8 +3227,6 @@ 103.84.48.0/22 103.84.64.0/22 103.84.72.0/22 -103.84.92.0/22 -103.84.108.0/22 103.84.136.0/22 103.85.20.0/22 103.85.24.0/22 @@ -3265,7 +3242,6 @@ 103.85.224.0/22 103.86.28.0/22 103.86.32.0/22 -103.86.44.0/22 103.86.60.0/22 103.86.80.0/22 103.86.84.0/22 @@ -3304,7 +3280,6 @@ 103.88.96.0/22 103.88.164.0/22 103.88.176.0/22 -103.88.184.0/22 103.88.188.0/22 103.88.212.0/22 103.89.28.0/22 @@ -3348,12 +3323,13 @@ 103.91.36.0/22 103.91.40.0/22 103.91.108.0/22 +103.91.112.0/23 +103.91.138.0/23 103.91.152.0/22 103.91.176.0/22 103.91.200.0/22 103.91.208.0/22 103.91.212.0/22 -103.91.219.0/24 103.91.236.0/22 103.91.252.0/22 103.92.0.0/22 @@ -3408,21 +3384,17 @@ 103.94.88.0/22 103.94.116.0/22 103.94.160.0/22 -103.94.180.0/22 103.94.200.0/22 -103.95.28.0/22 103.95.52.0/22 103.95.64.0/22 103.95.68.0/22 103.95.88.0/22 103.95.92.0/22 -103.95.116.0/22 103.95.128.0/22 103.95.136.0/22 103.95.140.0/22 103.95.144.0/22 103.95.152.0/22 -103.95.207.0/24 103.95.216.0/22 103.95.220.0/22 103.95.224.0/22 @@ -3437,7 +3409,6 @@ 103.96.124.0/22 103.96.136.0/22 103.96.140.0/24 -103.96.148.0/22 103.96.152.0/22 103.96.156.0/22 103.96.160.0/22 @@ -3477,7 +3448,6 @@ 103.97.148.0/22 103.97.188.0/22 103.97.192.0/22 -103.97.224.0/22 103.97.228.0/23 103.98.28.0/23 103.98.40.0/22 @@ -3529,7 +3499,6 @@ 103.100.68.0/22 103.100.88.0/22 103.100.116.0/22 -103.100.140.0/22 103.100.144.0/22 103.100.236.0/22 103.100.240.0/22 @@ -3544,7 +3513,6 @@ 103.101.124.0/22 103.101.144.0/22 103.101.148.0/22 -103.101.153.0/24 103.101.180.0/22 103.101.184.0/22 103.102.76.0/22 @@ -3591,7 +3559,6 @@ 103.105.12.0/22 103.105.16.0/22 103.105.23.0/24 -103.105.56.0/22 103.105.60.0/22 103.105.116.0/22 103.105.132.0/22 @@ -3610,14 +3577,12 @@ 103.106.128.0/22 103.106.132.0/22 103.106.160.0/22 -103.106.188.0/22 103.106.196.0/22 103.106.202.0/23 103.106.212.0/22 103.106.244.0/22 103.106.252.0/22 103.107.0.0/22 -103.107.8.0/24 103.107.28.0/22 103.107.32.0/22 103.107.44.0/22 @@ -3642,7 +3607,6 @@ 103.108.212.0/22 103.108.224.0/22 103.108.244.0/22 -103.108.251.0/24 103.109.20.0/22 103.109.48.0/22 103.109.88.0/22 @@ -3651,8 +3615,6 @@ 103.110.80.0/23 103.110.92.0/22 103.110.116.0/22 -103.110.127.0/24 -103.110.128.0/23 103.110.132.0/22 103.110.136.0/22 103.110.152.0/22 @@ -3674,7 +3636,6 @@ 103.112.140.0/22 103.112.172.0/22 103.112.184.0/22 -103.112.208.0/22 103.113.4.0/22 103.113.92.0/22 103.113.144.0/22 @@ -3725,11 +3686,9 @@ 103.117.16.0/22 103.117.72.0/22 103.117.88.0/22 -103.117.132.0/22 103.117.136.0/22 103.117.188.0/22 103.117.220.0/22 -103.118.19.0/24 103.118.36.0/22 103.118.52.0/22 103.118.56.0/22 @@ -3811,7 +3770,6 @@ 103.126.128.0/22 103.126.132.0/22 103.126.208.0/22 -103.126.241.0/24 103.129.52.0/22 103.130.132.0/22 103.130.152.0/24 @@ -3882,11 +3840,11 @@ 103.139.0.0/23 103.139.2.0/23 103.139.22.0/23 +103.139.92.0/23 103.139.113.0/24 103.139.134.0/23 103.139.136.0/23 103.139.172.0/23 -103.139.200.0/23 103.139.204.0/23 103.139.212.0/23 103.140.8.0/23 @@ -3897,10 +3855,8 @@ 103.140.144.0/23 103.140.152.0/23 103.140.192.0/23 -103.140.194.0/23 103.140.228.0/23 103.141.10.0/23 -103.141.36.0/23 103.141.58.0/23 103.141.128.0/23 103.141.186.0/23 @@ -3958,7 +3914,6 @@ 103.145.122.0/23 103.145.188.0/23 103.145.190.0/23 -103.146.6.0/23 103.146.72.0/23 103.146.88.0/23 103.146.90.0/23 @@ -3981,7 +3936,6 @@ 103.149.144.0/23 103.149.156.0/23 103.149.181.0/24 -103.149.190.0/23 103.149.210.0/23 103.149.214.0/23 103.149.220.0/23 @@ -4022,7 +3976,6 @@ 103.152.30.0/23 103.152.56.0/23 103.152.76.0/23 -103.152.80.0/23 103.152.98.0/23 103.152.112.0/23 103.152.120.0/23 @@ -4042,7 +3995,6 @@ 103.152.250.0/23 103.153.4.0/23 103.153.36.0/23 -103.153.98.0/23 103.153.100.0/23 103.153.114.0/23 103.153.122.0/23 @@ -4070,13 +4022,11 @@ 103.155.120.0/23 103.155.214.0/23 103.155.248.0/23 -103.156.24.0/23 103.156.28.0/23 103.156.68.0/23 103.156.78.0/23 103.156.104.0/23 103.156.158.0/23 -103.156.166.0/23 103.156.174.0/23 103.156.186.0/23 103.156.228.0/23 @@ -4088,7 +4038,6 @@ 103.157.254.0/23 103.158.0.0/23 103.158.8.0/23 -103.158.13.0/24 103.158.16.0/23 103.158.190.0/23 103.158.200.0/23 @@ -4112,7 +4061,6 @@ 103.161.254.0/23 103.162.10.0/23 103.162.32.0/23 -103.162.38.0/23 103.162.116.0/23 103.163.28.0/23 103.163.32.0/23 @@ -4126,7 +4074,6 @@ 103.164.64.0/23 103.164.76.0/23 103.164.178.0/23 -103.164.226.0/23 103.165.44.0/23 103.165.52.0/23 103.165.82.0/23 @@ -4150,6 +4097,69 @@ 103.169.202.0/23 103.169.216.0/23 103.170.4.0/23 +103.170.72.0/23 +103.170.134.0/23 +103.170.210.0/23 +103.170.212.0/23 +103.171.32.0/23 +103.171.166.0/23 +103.171.214.0/23 +103.172.32.0/23 +103.172.160.0/23 +103.172.191.0/24 +103.173.102.0/23 +103.173.182.0/23 +103.173.184.0/23 +103.174.94.0/23 +103.175.14.0/23 +103.175.98.0/23 +103.175.114.0/23 +103.175.118.0/23 +103.176.52.0/23 +103.176.222.0/23 +103.176.244.0/23 +103.177.28.0/23 +103.177.44.0/23 +103.177.70.0/23 +103.177.136.0/23 +103.177.162.0/23 +103.178.56.0/23 +103.178.240.0/23 +103.179.76.0/23 +103.179.78.0/23 +103.180.108.0/23 +103.180.226.0/23 +103.181.164.0/23 +103.181.234.0/23 +103.183.26.0/23 +103.183.66.0/23 +103.183.122.0/23 +103.183.124.0/23 +103.184.44.0/23 +103.184.46.0/23 +103.184.60.0/23 +103.185.78.0/23 +103.185.80.0/23 +103.185.228.0/23 +103.186.4.0/23 +103.186.108.0/23 +103.186.112.0/23 +103.186.136.0/23 +103.186.158.0/23 +103.186.162.0/23 +103.186.228.0/23 +103.189.92.0/23 +103.189.140.0/23 +103.189.152.0/23 +103.189.154.0/23 +103.190.20.0/23 +103.190.71.0/24 +103.190.104.0/23 +103.190.116.0/23 +103.190.118.0/23 +103.190.122.0/23 +103.191.102.0/23 +103.191.242.0/23 103.192.0.0/22 103.192.4.0/22 103.192.8.0/22 @@ -4183,9 +4193,7 @@ 103.193.40.0/22 103.193.44.0/22 103.193.120.0/22 -103.193.124.0/22 103.193.140.0/22 -103.193.144.0/22 103.193.160.0/22 103.193.188.0/22 103.193.192.0/22 @@ -4196,11 +4204,9 @@ 103.193.228.0/22 103.193.232.0/22 103.193.236.0/22 -103.193.240.0/22 103.194.16.0/22 103.195.104.0/22 103.195.112.0/22 -103.195.136.0/22 103.195.148.0/22 103.195.152.0/22 103.195.160.0/22 @@ -4234,7 +4240,6 @@ 103.199.228.0/22 103.199.248.0/22 103.199.252.0/22 -103.200.28.0/22 103.200.52.0/22 103.200.64.0/22 103.200.68.0/22 @@ -4407,6 +4412,7 @@ 103.204.148.0/22 103.204.152.0/22 103.204.196.0/22 +103.204.216.0/23 103.204.232.0/22 103.204.236.0/22 103.205.4.0/22 @@ -4431,7 +4437,6 @@ 103.206.148.0/22 103.207.48.0/22 103.207.104.0/22 -103.207.164.0/22 103.207.184.0/22 103.207.188.0/22 103.207.192.0/22 @@ -4449,14 +4454,11 @@ 103.208.40.0/22 103.208.44.0/22 103.208.48.0/22 -103.208.148.0/22 103.209.112.0/22 103.209.136.0/22 103.209.200.0/22 103.209.208.0/22 103.209.216.0/22 -103.210.0.0/22 -103.210.20.0/22 103.210.96.0/22 103.210.156.0/22 103.210.160.0/22 @@ -4481,12 +4483,10 @@ 103.212.4.0/22 103.212.8.0/22 103.212.12.0/22 -103.212.32.0/22 103.212.44.0/22 103.212.48.0/22 103.212.84.0/22 103.212.100.0/22 -103.212.104.0/22 103.212.108.0/22 103.212.148.0/22 103.212.164.0/22 @@ -4524,10 +4524,8 @@ 103.213.180.0/22 103.213.184.0/22 103.213.188.0/22 -103.213.248.0/22 103.214.48.0/22 103.214.84.0/22 -103.214.168.0/22 103.214.212.0/22 103.214.240.0/22 103.214.244.0/22 @@ -4537,7 +4535,6 @@ 103.215.44.0/22 103.215.48.0/22 103.215.100.0/22 -103.215.104.0/22 103.215.108.0/22 103.215.116.0/22 103.215.120.0/22 @@ -4587,7 +4584,6 @@ 103.217.196.0/22 103.217.200.0/22 103.217.204.0/22 -103.218.0.0/22 103.218.8.0/22 103.218.12.0/22 103.218.16.0/22 @@ -4857,7 +4853,6 @@ 103.227.228.0/22 103.228.12.0/22 103.228.88.0/22 -103.228.128.0/22 103.228.136.0/22 103.228.160.0/22 103.228.176.0/22 @@ -4902,6 +4897,7 @@ 103.233.104.0/22 103.233.128.0/22 103.233.136.0/22 +103.233.162.0/23 103.233.228.0/22 103.234.0.0/22 103.234.20.0/22 @@ -4916,6 +4912,7 @@ 103.235.60.0/22 103.235.80.0/22 103.235.84.0/22 +103.235.100.0/22 103.235.128.0/22 103.235.132.0/22 103.235.136.0/22 @@ -5029,10 +5026,8 @@ 103.239.0.0/22 103.239.44.0/22 103.239.68.0/22 -103.239.96.0/22 103.239.152.0/22 103.239.156.0/22 -103.239.176.0/22 103.239.180.0/22 103.239.184.0/22 103.239.192.0/22 @@ -5046,7 +5041,6 @@ 103.240.72.0/22 103.240.84.0/22 103.240.124.0/22 -103.240.156.0/22 103.240.172.0/22 103.240.188.0/22 103.240.244.0/22 @@ -5058,6 +5052,7 @@ 103.241.184.0/22 103.241.188.0/22 103.241.220.0/22 +103.242.12.0/22 103.242.64.0/22 103.242.128.0/22 103.242.132.0/22 @@ -5262,6 +5257,7 @@ 111.72.0.0/13 111.85.0.0/16 111.91.192.0/19 +111.92.240.0/22 111.92.248.0/22 111.92.252.0/22 111.112.0.0/15 @@ -5392,12 +5388,15 @@ 114.119.208.0/20 114.119.224.0/19 114.132.0.0/16 +114.134.184.0/22 +114.134.188.0/23 114.135.0.0/16 114.138.0.0/15 114.141.64.0/21 114.141.80.0/22 114.141.84.0/22 114.141.128.0/18 +114.142.136.0/21 114.196.0.0/15 114.198.248.0/21 114.208.0.0/14 @@ -5496,12 +5495,9 @@ 116.199.128.0/19 116.204.0.0/17 116.204.132.0/22 -116.204.168.0/22 116.204.216.0/22 116.204.232.0/22 116.205.0.0/16 -116.206.92.0/22 -116.206.176.0/22 116.207.0.0/16 116.208.0.0/14 116.212.160.0/20 @@ -5572,8 +5568,12 @@ 118.26.96.0/21 118.26.112.0/21 118.26.120.0/21 -118.26.128.0/20 -118.26.160.0/19 +118.26.128.0/22 +118.26.133.0/24 +118.26.134.0/23 +118.26.136.0/21 +118.26.160.0/20 +118.26.188.0/22 118.26.192.0/18 118.28.0.0/15 118.30.0.0/16 @@ -5595,7 +5595,6 @@ 118.103.168.0/22 118.103.172.0/22 118.103.176.0/22 -118.107.180.0/22 118.112.0.0/13 118.120.0.0/14 118.124.0.0/15 @@ -5687,7 +5686,6 @@ 119.40.128.0/17 119.41.0.0/16 119.42.0.0/19 -119.42.52.0/22 119.42.128.0/21 119.42.136.0/21 119.42.224.0/19 @@ -5802,6 +5800,7 @@ 121.76.0.0/15 121.79.128.0/18 121.89.0.0/16 +121.91.104.0/21 121.100.128.0/17 121.101.0.0/18 121.101.208.0/20 @@ -5818,7 +5817,8 @@ 122.0.64.0/18 122.0.128.0/17 122.4.0.0/14 -122.8.0.0/16 +122.8.0.0/17 +122.8.192.0/18 122.9.0.0/16 122.10.128.0/22 122.10.132.0/23 @@ -6071,7 +6071,6 @@ 139.5.160.0/22 139.5.192.0/22 139.5.204.0/22 -139.5.208.0/22 139.5.212.0/22 139.5.244.0/22 139.9.0.0/16 @@ -6109,10 +6108,10 @@ 140.255.0.0/16 142.70.0.0/16 142.86.0.0/16 +143.64.0.0/16 144.0.0.0/16 144.7.0.0/16 144.12.0.0/16 -144.48.8.0/22 144.48.64.0/22 144.48.88.0/22 144.48.156.0/22 @@ -6192,7 +6191,6 @@ 157.0.0.0/16 157.18.0.0/16 157.61.0.0/16 -157.119.0.0/22 157.119.8.0/22 157.119.12.0/22 157.119.16.0/22 @@ -6215,7 +6213,7 @@ 157.148.0.0/16 157.156.0.0/16 157.255.0.0/16 -158.60.128.0/17 +158.60.0.0/16 158.79.0.0/16 159.27.0.0/16 159.75.0.0/16 @@ -6336,7 +6334,6 @@ 175.176.156.0/22 175.176.176.0/22 175.176.188.0/22 -175.176.192.0/22 175.178.0.0/16 175.184.128.0/18 175.185.0.0/16 @@ -6422,8 +6419,6 @@ 182.239.0.0/19 182.240.0.0/13 182.254.0.0/16 -182.255.32.0/22 -182.255.36.0/22 182.255.60.0/22 183.0.0.0/10 183.64.0.0/13 @@ -6479,7 +6474,6 @@ 202.0.122.0/23 202.0.176.0/22 202.3.128.0/23 -202.3.134.0/24 202.4.128.0/19 202.4.252.0/22 202.5.208.0/22 @@ -6688,7 +6682,6 @@ 202.52.34.0/24 202.52.47.0/24 202.52.143.0/24 -202.52.144.0/24 202.53.140.0/24 202.53.143.0/24 202.57.192.0/22 @@ -6699,7 +6692,6 @@ 202.57.216.0/22 202.57.240.0/20 202.58.0.0/24 -202.58.101.0/24 202.58.104.0/22 202.58.112.0/22 202.59.0.0/24 @@ -6823,7 +6815,6 @@ 202.92.252.0/22 202.93.0.0/22 202.93.252.0/22 -202.94.68.0/24 202.94.74.0/24 202.94.81.0/24 202.94.92.0/22 @@ -8142,7 +8133,6 @@ 203.189.6.0/23 203.189.112.0/22 203.189.192.0/19 -203.189.232.0/22 203.189.240.0/22 203.190.96.0/20 203.190.249.0/24 @@ -8596,7 +8586,8 @@ 223.116.0.0/15 223.120.128.0/17 223.121.128.0/17 -223.122.0.0/15 +223.122.128.0/17 +223.123.128.0/17 223.124.0.0/14 223.128.0.0/15 223.144.0.0/12 diff --git a/luci-app-ssr-plus/root/etc/ssrplus/gfw_list.conf b/luci-app-ssr-plus/root/etc/ssrplus/gfw_list.conf index 98e17f650ab..a44d3714a7b 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/gfw_list.conf +++ b/luci-app-ssr-plus/root/etc/ssrplus/gfw_list.conf @@ -1,487 +1,379 @@ server=/samebags.com/127.0.0.1#5335 ipset=/samebags.com/gfwlist -server=/ameba.jp/127.0.0.1#5335 -ipset=/ameba.jp/gfwlist +server=/premiumhd.net/127.0.0.1#5335 +ipset=/premiumhd.net/gfwlist server=/facebool.com/127.0.0.1#5335 ipset=/facebool.com/gfwlist -server=/intel.md/127.0.0.1#5335 -ipset=/intel.md/gfwlist server=/disneystore.com/127.0.0.1#5335 ipset=/disneystore.com/gfwlist server=/lcsmerch.com/127.0.0.1#5335 ipset=/lcsmerch.com/gfwlist -server=/youtube.my/127.0.0.1#5335 -ipset=/youtube.my/gfwlist -server=/nintendo.nl/127.0.0.1#5335 -ipset=/nintendo.nl/gfwlist -server=/lasvegasbmw.com/127.0.0.1#5335 -ipset=/lasvegasbmw.com/gfwlist +server=/hentais.tube/127.0.0.1#5335 +ipset=/hentais.tube/gfwlist +server=/teenport.com/127.0.0.1#5335 +ipset=/teenport.com/gfwlist server=/zeit.sh/127.0.0.1#5335 ipset=/zeit.sh/gfwlist -server=/huffpostmaghreb.com/127.0.0.1#5335 -ipset=/huffpostmaghreb.com/gfwlist -server=/nikewear.com/127.0.0.1#5335 -ipset=/nikewear.com/gfwlist -server=/myaccountglobalcash.com/127.0.0.1#5335 -ipset=/myaccountglobalcash.com/gfwlist +server=/mrvideosdesexo.xxx/127.0.0.1#5335 +ipset=/mrvideosdesexo.xxx/gfwlist +server=/xxxindiantv.com/127.0.0.1#5335 +ipset=/xxxindiantv.com/gfwlist server=/visacheckout.org/127.0.0.1#5335 ipset=/visacheckout.org/gfwlist server=/discordapp.net/127.0.0.1#5335 ipset=/discordapp.net/gfwlist +server=/kaggle.com/127.0.0.1#5335 +ipset=/kaggle.com/gfwlist server=/bbycontent.net/127.0.0.1#5335 ipset=/bbycontent.net/gfwlist -server=/mybestbuy.com/127.0.0.1#5335 -ipset=/mybestbuy.com/gfwlist -server=/blogspot.bj/127.0.0.1#5335 -ipset=/blogspot.bj/gfwlist +server=/imagebam.com/127.0.0.1#5335 +ipset=/imagebam.com/gfwlist server=/oreillystatic.com/127.0.0.1#5335 ipset=/oreillystatic.com/gfwlist -server=/xhamsterlive.com/127.0.0.1#5335 -ipset=/xhamsterlive.com/gfwlist -server=/akamai.com/127.0.0.1#5335 -ipset=/akamai.com/gfwlist -server=/unraveltwo.com/127.0.0.1#5335 -ipset=/unraveltwo.com/gfwlist -server=/bmw.com.gt/127.0.0.1#5335 -ipset=/bmw.com.gt/gfwlist +server=/ahxxx.club/127.0.0.1#5335 +ipset=/ahxxx.club/gfwlist server=/duckduckco.com/127.0.0.1#5335 ipset=/duckduckco.com/gfwlist -server=/facebookwork.com/127.0.0.1#5335 -ipset=/facebookwork.com/gfwlist -server=/iwork.se/127.0.0.1#5335 -ipset=/iwork.se/gfwlist -server=/nurofen.hu/127.0.0.1#5335 -ipset=/nurofen.hu/gfwlist +server=/duyaoss.com/127.0.0.1#5335 +ipset=/duyaoss.com/gfwlist server=/buyitnow.org/127.0.0.1#5335 ipset=/buyitnow.org/gfwlist -server=/thinkboxsoftware.com/127.0.0.1#5335 -ipset=/thinkboxsoftware.com/gfwlist server=/paypali.net/127.0.0.1#5335 ipset=/paypali.net/gfwlist -server=/sellercommunity.com/127.0.0.1#5335 -ipset=/sellercommunity.com/gfwlist -server=/washingtonpost.com/127.0.0.1#5335 -ipset=/washingtonpost.com/gfwlist +server=/nvidia.com.tr/127.0.0.1#5335 +ipset=/nvidia.com.tr/gfwlist +server=/applepaycash.tv/127.0.0.1#5335 +ipset=/applepaycash.tv/gfwlist server=/livestream.com/127.0.0.1#5335 ipset=/livestream.com/gfwlist server=/homebrew.bintray.com/127.0.0.1#5335 ipset=/homebrew.bintray.com/gfwlist -server=/brightcove.com/127.0.0.1#5335 -ipset=/brightcove.com/gfwlist -server=/morteincam.com/127.0.0.1#5335 -ipset=/morteincam.com/gfwlist -server=/gettyimages.ae/127.0.0.1#5335 -ipset=/gettyimages.ae/gfwlist -server=/ulifestyle.com.hk/127.0.0.1#5335 -ipset=/ulifestyle.com.hk/gfwlist +server=/bustylornamorgan.com/127.0.0.1#5335 +ipset=/bustylornamorgan.com/gfwlist +server=/18acg.us/127.0.0.1#5335 +ipset=/18acg.us/gfwlist +server=/google.co.ke/127.0.0.1#5335 +ipset=/google.co.ke/gfwlist server=/itunes.mx/127.0.0.1#5335 ipset=/itunes.mx/gfwlist server=/beatssingaporeshop.com/127.0.0.1#5335 ipset=/beatssingaporeshop.com/gfwlist server=/beatsbydreuk.net/127.0.0.1#5335 ipset=/beatsbydreuk.net/gfwlist -server=/bandgirlz.com/127.0.0.1#5335 -ipset=/bandgirlz.com/gfwlist +server=/hentaiclub.net/127.0.0.1#5335 +ipset=/hentaiclub.net/gfwlist server=/cloudchoose.com/127.0.0.1#5335 ipset=/cloudchoose.com/gfwlist -server=/bmw-rrdays.com/127.0.0.1#5335 -ipset=/bmw-rrdays.com/gfwlist +server=/codeforces.com/127.0.0.1#5335 +ipset=/codeforces.com/gfwlist server=/lizol.co.in/127.0.0.1#5335 ipset=/lizol.co.in/gfwlist server=/applecomputer.com.hk/127.0.0.1#5335 ipset=/applecomputer.com.hk/gfwlist server=/bridgestonearena.com/127.0.0.1#5335 ipset=/bridgestonearena.com/gfwlist -server=/huluteam.com/127.0.0.1#5335 -ipset=/huluteam.com/gfwlist +server=/vpngate.net/127.0.0.1#5335 +ipset=/vpngate.net/gfwlist server=/developer-advisor.com/127.0.0.1#5335 ipset=/developer-advisor.com/gfwlist -server=/myhelpinglab.com/127.0.0.1#5335 -ipset=/myhelpinglab.com/gfwlist -server=/oxfordmusiconline.com/127.0.0.1#5335 -ipset=/oxfordmusiconline.com/gfwlist -server=/stripchat.com/127.0.0.1#5335 -ipset=/stripchat.com/gfwlist +server=/81jia.tv/127.0.0.1#5335 +ipset=/81jia.tv/gfwlist server=/youtube.co.uk/127.0.0.1#5335 ipset=/youtube.co.uk/gfwlist -server=/supermario3dworld.com/127.0.0.1#5335 -ipset=/supermario3dworld.com/gfwlist -server=/huffingtonpost.com.au/127.0.0.1#5335 -ipset=/huffingtonpost.com.au/gfwlist -server=/thebeatsbydre.net/127.0.0.1#5335 -ipset=/thebeatsbydre.net/gfwlist +server=/youporngay.com/127.0.0.1#5335 +ipset=/youporngay.com/gfwlist server=/alphabet.pt/127.0.0.1#5335 ipset=/alphabet.pt/gfwlist -server=/thesims4.com/127.0.0.1#5335 -ipset=/thesims4.com/gfwlist +server=/itfromtheinside.com/127.0.0.1#5335 +ipset=/itfromtheinside.com/gfwlist server=/teenchoice.com/127.0.0.1#5335 ipset=/teenchoice.com/gfwlist -server=/quicktime.cc/127.0.0.1#5335 -ipset=/quicktime.cc/gfwlist -server=/dribbble.com/127.0.0.1#5335 -ipset=/dribbble.com/gfwlist -server=/applestore.sg/127.0.0.1#5335 -ipset=/applestore.sg/gfwlist +server=/filmespornos.net/127.0.0.1#5335 +ipset=/filmespornos.net/gfwlist +server=/ftvnews.com.tw/127.0.0.1#5335 +ipset=/ftvnews.com.tw/gfwlist server=/kindle.co.jp/127.0.0.1#5335 ipset=/kindle.co.jp/gfwlist server=/terraform.io/127.0.0.1#5335 ipset=/terraform.io/gfwlist -server=/btcbox.co.jp/127.0.0.1#5335 -ipset=/btcbox.co.jp/gfwlist server=/faycbok.com/127.0.0.1#5335 ipset=/faycbok.com/gfwlist server=/scpwiki.com/127.0.0.1#5335 ipset=/scpwiki.com/gfwlist +server=/sexyandfunny.com/127.0.0.1#5335 +ipset=/sexyandfunny.com/gfwlist server=/google.vg/127.0.0.1#5335 ipset=/google.vg/gfwlist -server=/picasaweb.net/127.0.0.1#5335 -ipset=/picasaweb.net/gfwlist +server=/runporn.com/127.0.0.1#5335 +ipset=/runporn.com/gfwlist server=/alivertsm.com/127.0.0.1#5335 ipset=/alivertsm.com/gfwlist -server=/youtube.lt/127.0.0.1#5335 -ipset=/youtube.lt/gfwlist +server=/camwhores.forum/127.0.0.1#5335 +ipset=/camwhores.forum/gfwlist server=/wolfatbestbuy.net/127.0.0.1#5335 ipset=/wolfatbestbuy.net/gfwlist -server=/hptouchpointmanager.com/127.0.0.1#5335 -ipset=/hptouchpointmanager.com/gfwlist -server=/usvimosquito.com/127.0.0.1#5335 -ipset=/usvimosquito.com/gfwlist server=/legaltracker.com/127.0.0.1#5335 ipset=/legaltracker.com/gfwlist -server=/akadeem.net/127.0.0.1#5335 -ipset=/akadeem.net/gfwlist -server=/llnwd.net/127.0.0.1#5335 -ipset=/llnwd.net/gfwlist +server=/centervillage.co.jp/127.0.0.1#5335 +ipset=/centervillage.co.jp/gfwlist +server=/cshive.com/127.0.0.1#5335 +ipset=/cshive.com/gfwlist server=/fox13memphis.com/127.0.0.1#5335 ipset=/fox13memphis.com/gfwlist server=/appleone.cloud/127.0.0.1#5335 ipset=/appleone.cloud/gfwlist +server=/aiaa.org/127.0.0.1#5335 +ipset=/aiaa.org/gfwlist server=/yahoo.rw/127.0.0.1#5335 ipset=/yahoo.rw/gfwlist -server=/powerautomate.com/127.0.0.1#5335 -ipset=/powerautomate.com/gfwlist -server=/volvotrucks.pl/127.0.0.1#5335 -ipset=/volvotrucks.pl/gfwlist -server=/urduvoa.com/127.0.0.1#5335 -ipset=/urduvoa.com/gfwlist +server=/dudethrill.com/127.0.0.1#5335 +ipset=/dudethrill.com/gfwlist server=/ouplaw.com/127.0.0.1#5335 ipset=/ouplaw.com/gfwlist -server=/paypal-specialoffers.com/127.0.0.1#5335 -ipset=/paypal-specialoffers.com/gfwlist -server=/epochtimes.fr/127.0.0.1#5335 -ipset=/epochtimes.fr/gfwlist -server=/freedirecttvspecial.com/127.0.0.1#5335 -ipset=/freedirecttvspecial.com/gfwlist -server=/nurofen.com.au/127.0.0.1#5335 -ipset=/nurofen.com.au/gfwlist -server=/iina.io/127.0.0.1#5335 -ipset=/iina.io/gfwlist +server=/anthemthegame.com/127.0.0.1#5335 +ipset=/anthemthegame.com/gfwlist +server=/adobetag.com/127.0.0.1#5335 +ipset=/adobetag.com/gfwlist +server=/kingkong.com.tw/127.0.0.1#5335 +ipset=/kingkong.com.tw/gfwlist server=/appleos.tv/127.0.0.1#5335 ipset=/appleos.tv/gfwlist -server=/foxnewspolitics.com/127.0.0.1#5335 -ipset=/foxnewspolitics.com/gfwlist -server=/quicktime.net/127.0.0.1#5335 -ipset=/quicktime.net/gfwlist +server=/igayporn.tv/127.0.0.1#5335 +ipset=/igayporn.tv/gfwlist server=/beatsheadphonesonline.com/127.0.0.1#5335 ipset=/beatsheadphonesonline.com/gfwlist -server=/w3.org/127.0.0.1#5335 -ipset=/w3.org/gfwlist +server=/maturetube.com/127.0.0.1#5335 +ipset=/maturetube.com/gfwlist server=/visasoutheasteurope.com/127.0.0.1#5335 ipset=/visasoutheasteurope.com/gfwlist -server=/foxd.tv/127.0.0.1#5335 -ipset=/foxd.tv/gfwlist -server=/forthethrone.com/127.0.0.1#5335 -ipset=/forthethrone.com/gfwlist +server=/trueamateurs.com/127.0.0.1#5335 +ipset=/trueamateurs.com/gfwlist server=/telesco.pe/127.0.0.1#5335 ipset=/telesco.pe/gfwlist server=/monsterbeatsoutlet.us/127.0.0.1#5335 ipset=/monsterbeatsoutlet.us/gfwlist server=/gettyimages.it/127.0.0.1#5335 ipset=/gettyimages.it/gfwlist -server=/visualstudio.net/127.0.0.1#5335 -ipset=/visualstudio.net/gfwlist -server=/disneymovieinsiders.com/127.0.0.1#5335 -ipset=/disneymovieinsiders.com/gfwlist +server=/videodesexo.blog/127.0.0.1#5335 +ipset=/videodesexo.blog/gfwlist +server=/hpiie.org/127.0.0.1#5335 +ipset=/hpiie.org/gfwlist server=/ipadair.ie/127.0.0.1#5335 ipset=/ipadair.ie/gfwlist server=/20thcenturystudios.com.br/127.0.0.1#5335 ipset=/20thcenturystudios.com.br/gfwlist -server=/conda.io/127.0.0.1#5335 -ipset=/conda.io/gfwlist -server=/fbthirdpartypixel.net/127.0.0.1#5335 -ipset=/fbthirdpartypixel.net/gfwlist server=/beatsbydreoksale.com/127.0.0.1#5335 ipset=/beatsbydreoksale.com/gfwlist -server=/heaven-burns-red.com/127.0.0.1#5335 -ipset=/heaven-burns-red.com/gfwlist +server=/paypal-security.org/127.0.0.1#5335 +ipset=/paypal-security.org/gfwlist server=/visa.com.hk/127.0.0.1#5335 ipset=/visa.com.hk/gfwlist -server=/stackoverflow.blog/127.0.0.1#5335 -ipset=/stackoverflow.blog/gfwlist -server=/vipheadphones.com/127.0.0.1#5335 -ipset=/vipheadphones.com/gfwlist +server=/webcamtubexxx.com/127.0.0.1#5335 +ipset=/webcamtubexxx.com/gfwlist server=/hanime.tv/127.0.0.1#5335 ipset=/hanime.tv/gfwlist server=/beatsbymusic.net/127.0.0.1#5335 ipset=/beatsbymusic.net/gfwlist -server=/intel.tw/127.0.0.1#5335 -ipset=/intel.tw/gfwlist -server=/half.com/127.0.0.1#5335 -ipset=/half.com/gfwlist +server=/czechvr.com/127.0.0.1#5335 +ipset=/czechvr.com/gfwlist +server=/licdn.cn.cdn20.com/127.0.0.1#5335 +ipset=/licdn.cn.cdn20.com/gfwlist server=/sourceforge.net/127.0.0.1#5335 ipset=/sourceforge.net/gfwlist server=/amazonianblog.com/127.0.0.1#5335 ipset=/amazonianblog.com/gfwlist server=/visa.com.vn/127.0.0.1#5335 ipset=/visa.com.vn/gfwlist -server=/hcaptcha.com/127.0.0.1#5335 -ipset=/hcaptcha.com/gfwlist -server=/oculusdiving.com/127.0.0.1#5335 -ipset=/oculusdiving.com/gfwlist +server=/gaypinoyporn.com/127.0.0.1#5335 +ipset=/gaypinoyporn.com/gfwlist server=/blogspot.pt/127.0.0.1#5335 ipset=/blogspot.pt/gfwlist -server=/cbsnews.com/127.0.0.1#5335 -ipset=/cbsnews.com/gfwlist +server=/xnxxsexmovies.com/127.0.0.1#5335 +ipset=/xnxxsexmovies.com/gfwlist +server=/ultimaonline.com/127.0.0.1#5335 +ipset=/ultimaonline.com/gfwlist server=/paypal-latam.com/127.0.0.1#5335 ipset=/paypal-latam.com/gfwlist -server=/beatsdreoutletsale.com/127.0.0.1#5335 -ipset=/beatsdreoutletsale.com/gfwlist -server=/youtube.com.co/127.0.0.1#5335 -ipset=/youtube.com.co/gfwlist -server=/v.gd/127.0.0.1#5335 -ipset=/v.gd/gfwlist +server=/echichimato.com/127.0.0.1#5335 +ipset=/echichimato.com/gfwlist +server=/escort24h.net/127.0.0.1#5335 +ipset=/escort24h.net/gfwlist server=/apple.pk/127.0.0.1#5335 ipset=/apple.pk/gfwlist -server=/huluqa.com/127.0.0.1#5335 -ipset=/huluqa.com/gfwlist -server=/casquesbeatsaudio.com/127.0.0.1#5335 -ipset=/casquesbeatsaudio.com/gfwlist server=/oculus2014.com/127.0.0.1#5335 ipset=/oculus2014.com/gfwlist server=/intel.co.za/127.0.0.1#5335 ipset=/intel.co.za/gfwlist -server=/canon.at/127.0.0.1#5335 -ipset=/canon.at/gfwlist +server=/pornmegaload.com/127.0.0.1#5335 +ipset=/pornmegaload.com/gfwlist server=/facboo.com/127.0.0.1#5335 ipset=/facboo.com/gfwlist -server=/appmediagroup.com/127.0.0.1#5335 -ipset=/appmediagroup.com/gfwlist -server=/casquemonsterbeatsbydre2013.com/127.0.0.1#5335 -ipset=/casquemonsterbeatsbydre2013.com/gfwlist +server=/jtube.space/127.0.0.1#5335 +ipset=/jtube.space/gfwlist +server=/pornomovies.mobi/127.0.0.1#5335 +ipset=/pornomovies.mobi/gfwlist +server=/facebookswagemea.com/127.0.0.1#5335 +ipset=/facebookswagemea.com/gfwlist server=/mapbox.com/127.0.0.1#5335 ipset=/mapbox.com/gfwlist -server=/pvp.net/127.0.0.1#5335 -ipset=/pvp.net/gfwlist +server=/eurosexscene.com/127.0.0.1#5335 +ipset=/eurosexscene.com/gfwlist server=/kanzhongguo.com/127.0.0.1#5335 ipset=/kanzhongguo.com/gfwlist -server=/shopbydre.com/127.0.0.1#5335 -ipset=/shopbydre.com/gfwlist +server=/directtv.net/127.0.0.1#5335 +ipset=/directtv.net/gfwlist server=/swisssigngroup.ch/127.0.0.1#5335 ipset=/swisssigngroup.ch/gfwlist -server=/ebaymotors.ca/127.0.0.1#5335 -ipset=/ebaymotors.ca/gfwlist -server=/intel.nl/127.0.0.1#5335 -ipset=/intel.nl/gfwlist -server=/bingapistatistics.com/127.0.0.1#5335 -ipset=/bingapistatistics.com/gfwlist -server=/seaofsolitude.com/127.0.0.1#5335 -ipset=/seaofsolitude.com/gfwlist -server=/riotpoints.com/127.0.0.1#5335 -ipset=/riotpoints.com/gfwlist -server=/yahooapis.com/127.0.0.1#5335 -ipset=/yahooapis.com/gfwlist +server=/muycerdas.xxx/127.0.0.1#5335 +ipset=/muycerdas.xxx/gfwlist server=/facebuk.com/127.0.0.1#5335 ipset=/facebuk.com/gfwlist -server=/gosq.co/127.0.0.1#5335 -ipset=/gosq.co/gfwlist +server=/monsterbeatsau.com/127.0.0.1#5335 +ipset=/monsterbeatsau.com/gfwlist server=/yandex.com.am/127.0.0.1#5335 ipset=/yandex.com.am/gfwlist -server=/aapl.tw/127.0.0.1#5335 -ipset=/aapl.tw/gfwlist +server=/softbankbb.com/127.0.0.1#5335 +ipset=/softbankbb.com/gfwlist server=/finishinfo.nl/127.0.0.1#5335 ipset=/finishinfo.nl/gfwlist -server=/hpindigopress.com/127.0.0.1#5335 -ipset=/hpindigopress.com/gfwlist server=/webex.com.hk/127.0.0.1#5335 ipset=/webex.com.hk/gfwlist -server=/bmw.fr/127.0.0.1#5335 -ipset=/bmw.fr/gfwlist -server=/msauth.net/127.0.0.1#5335 -ipset=/msauth.net/gfwlist -server=/activelearnprimary.co.uk/127.0.0.1#5335 -ipset=/activelearnprimary.co.uk/gfwlist -server=/dell-brand.com/127.0.0.1#5335 -ipset=/dell-brand.com/gfwlist -server=/championshipseriesleague.com/127.0.0.1#5335 -ipset=/championshipseriesleague.com/gfwlist -server=/bmw.com.sv/127.0.0.1#5335 -ipset=/bmw.com.sv/gfwlist +server=/pornzone.com/127.0.0.1#5335 +ipset=/pornzone.com/gfwlist server=/microsoft.be/127.0.0.1#5335 ipset=/microsoft.be/gfwlist -server=/spankbang.com/127.0.0.1#5335 -ipset=/spankbang.com/gfwlist -server=/needforspeedundergroundeast.com/127.0.0.1#5335 -ipset=/needforspeedundergroundeast.com/gfwlist -server=/sslpaypal.org/127.0.0.1#5335 -ipset=/sslpaypal.org/gfwlist -server=/qualcomm.cn/127.0.0.1#5335 -ipset=/qualcomm.cn/gfwlist -server=/etnet.com.hk/127.0.0.1#5335 -ipset=/etnet.com.hk/gfwlist +server=/bravoporn.com/127.0.0.1#5335 +ipset=/bravoporn.com/gfwlist +server=/mitao.bar/127.0.0.1#5335 +ipset=/mitao.bar/gfwlist +server=/illusionxz.com/127.0.0.1#5335 +ipset=/illusionxz.com/gfwlist +server=/paypal-qrshopping.org/127.0.0.1#5335 +ipset=/paypal-qrshopping.org/gfwlist server=/nikeconfluence.com/127.0.0.1#5335 ipset=/nikeconfluence.com/gfwlist server=/applewatch.hk/127.0.0.1#5335 ipset=/applewatch.hk/gfwlist server=/foxfiles.com/127.0.0.1#5335 ipset=/foxfiles.com/gfwlist -server=/beatsdrenewcolorful4usale.com/127.0.0.1#5335 -ipset=/beatsdrenewcolorful4usale.com/gfwlist -server=/facebooe.com/127.0.0.1#5335 -ipset=/facebooe.com/gfwlist +server=/sony.at/127.0.0.1#5335 +ipset=/sony.at/gfwlist +server=/openamt.com/127.0.0.1#5335 +ipset=/openamt.com/gfwlist server=/applemusic.com.au/127.0.0.1#5335 ipset=/applemusic.com.au/gfwlist -server=/dkbeatsbydre.com/127.0.0.1#5335 -ipset=/dkbeatsbydre.com/gfwlist -server=/apple.net.gr/127.0.0.1#5335 -ipset=/apple.net.gr/gfwlist -server=/google.sn/127.0.0.1#5335 -ipset=/google.sn/gfwlist -server=/beats-bydrestore.com/127.0.0.1#5335 -ipset=/beats-bydrestore.com/gfwlist -server=/einstein.com/127.0.0.1#5335 -ipset=/einstein.com/gfwlist -server=/kkbox.com/127.0.0.1#5335 -ipset=/kkbox.com/gfwlist +server=/manhub.com/127.0.0.1#5335 +ipset=/manhub.com/gfwlist +server=/hentaiz.mobi/127.0.0.1#5335 +ipset=/hentaiz.mobi/gfwlist +server=/covid19-rx.org/127.0.0.1#5335 +ipset=/covid19-rx.org/gfwlist +server=/sexcartoon.biz/127.0.0.1#5335 +ipset=/sexcartoon.biz/gfwlist +server=/hentai-ani.me/127.0.0.1#5335 +ipset=/hentai-ani.me/gfwlist +server=/gandi.net/127.0.0.1#5335 +ipset=/gandi.net/gfwlist server=/ebaylisting.com/127.0.0.1#5335 ipset=/ebaylisting.com/gfwlist +server=/xxxvideoamatoriali.com/127.0.0.1#5335 +ipset=/xxxvideoamatoriali.com/gfwlist +server=/persiankitty.com/127.0.0.1#5335 +ipset=/persiankitty.com/gfwlist server=/i-book.com/127.0.0.1#5335 ipset=/i-book.com/gfwlist -server=/ads.pubmatic.com/127.0.0.1#5335 -ipset=/ads.pubmatic.com/gfwlist +server=/spiedigitallibrary.org/127.0.0.1#5335 +ipset=/spiedigitallibrary.org/gfwlist +server=/hentaicomics.life/127.0.0.1#5335 +ipset=/hentaicomics.life/gfwlist server=/icloud.ee/127.0.0.1#5335 ipset=/icloud.ee/gfwlist -server=/tail-f.com/127.0.0.1#5335 -ipset=/tail-f.com/gfwlist server=/muscdn.com/127.0.0.1#5335 ipset=/muscdn.com/gfwlist -server=/onedrive.com/127.0.0.1#5335 -ipset=/onedrive.com/gfwlist -server=/harpercollins.co.uk/127.0.0.1#5335 -ipset=/harpercollins.co.uk/gfwlist -server=/yogalayout.com/127.0.0.1#5335 -ipset=/yogalayout.com/gfwlist +server=/xn--8uq428d76d.tokyo/127.0.0.1#5335 +ipset=/xn--8uq428d76d.tokyo/gfwlist +server=/mytving.com/127.0.0.1#5335 +ipset=/mytving.com/gfwlist +server=/topfreepornvideos.com/127.0.0.1#5335 +ipset=/topfreepornvideos.com/gfwlist server=/yahoo.sh/127.0.0.1#5335 ipset=/yahoo.sh/gfwlist -server=/parstream.net/127.0.0.1#5335 -ipset=/parstream.net/gfwlist +server=/stepfamilyporn.com/127.0.0.1#5335 +ipset=/stepfamilyporn.com/gfwlist server=/vim.org/127.0.0.1#5335 ipset=/vim.org/gfwlist -server=/ebayincconnectedcommerce.net/127.0.0.1#5335 -ipset=/ebayincconnectedcommerce.net/gfwlist -server=/mini-connected.nl/127.0.0.1#5335 -ipset=/mini-connected.nl/gfwlist -server=/disney.it/127.0.0.1#5335 -ipset=/disney.it/gfwlist +server=/nvidia.no/127.0.0.1#5335 +ipset=/nvidia.no/gfwlist server=/seqingx.com/127.0.0.1#5335 ipset=/seqingx.com/gfwlist -server=/drdrebeatsbillig.com/127.0.0.1#5335 -ipset=/drdrebeatsbillig.com/gfwlist +server=/liverail.tv/127.0.0.1#5335 +ipset=/liverail.tv/gfwlist server=/espn.net/127.0.0.1#5335 ipset=/espn.net/gfwlist server=/beatsheadphones-discount.com/127.0.0.1#5335 ipset=/beatsheadphones-discount.com/gfwlist -server=/vfsco.it/127.0.0.1#5335 -ipset=/vfsco.it/gfwlist -server=/openweave.io/127.0.0.1#5335 -ipset=/openweave.io/gfwlist server=/dvdstudiopro.info/127.0.0.1#5335 ipset=/dvdstudiopro.info/gfwlist -server=/shopee.tw/127.0.0.1#5335 -ipset=/shopee.tw/gfwlist -server=/beatsbydrestorevip.com/127.0.0.1#5335 -ipset=/beatsbydrestorevip.com/gfwlist -server=/garena.com/127.0.0.1#5335 -ipset=/garena.com/gfwlist -server=/bmw.bg/127.0.0.1#5335 -ipset=/bmw.bg/gfwlist -server=/gearspop.com/127.0.0.1#5335 -ipset=/gearspop.com/gfwlist -server=/fire-emblem-heroes.com/127.0.0.1#5335 -ipset=/fire-emblem-heroes.com/gfwlist -server=/dewitwithdurex.com/127.0.0.1#5335 -ipset=/dewitwithdurex.com/gfwlist +server=/khotruyentranhx.com/127.0.0.1#5335 +ipset=/khotruyentranhx.com/gfwlist +server=/gettyimages.co.jp/127.0.0.1#5335 +ipset=/gettyimages.co.jp/gfwlist +server=/avstar9.com/127.0.0.1#5335 +ipset=/avstar9.com/gfwlist +server=/javseen.tv/127.0.0.1#5335 +ipset=/javseen.tv/gfwlist +server=/amateur-gallery-post.com/127.0.0.1#5335 +ipset=/amateur-gallery-post.com/gfwlist +server=/movefreerewards.com/127.0.0.1#5335 +ipset=/movefreerewards.com/gfwlist server=/ebayon.com/127.0.0.1#5335 ipset=/ebayon.com/gfwlist -server=/pricelesssantiago.com/127.0.0.1#5335 -ipset=/pricelesssantiago.com/gfwlist -server=/miamifintechfestival.com/127.0.0.1#5335 -ipset=/miamifintechfestival.com/gfwlist -server=/minidowntown.com/127.0.0.1#5335 -ipset=/minidowntown.com/gfwlist -server=/mini.am/127.0.0.1#5335 -ipset=/mini.am/gfwlist +server=/live.com.au/127.0.0.1#5335 +ipset=/live.com.au/gfwlist +server=/easttouch.com.hk/127.0.0.1#5335 +ipset=/easttouch.com.hk/gfwlist +server=/neuralink.com/127.0.0.1#5335 +ipset=/neuralink.com/gfwlist +server=/europornstar.com/127.0.0.1#5335 +ipset=/europornstar.com/gfwlist server=/realestatejournal.com/127.0.0.1#5335 ipset=/realestatejournal.com/gfwlist -server=/mini-connected.at/127.0.0.1#5335 -ipset=/mini-connected.at/gfwlist -server=/ebaypark.com/127.0.0.1#5335 -ipset=/ebaypark.com/gfwlist -server=/appleone.space/127.0.0.1#5335 -ipset=/appleone.space/gfwlist -server=/youlucky.com/127.0.0.1#5335 -ipset=/youlucky.com/gfwlist +server=/ero-labs.net/127.0.0.1#5335 +ipset=/ero-labs.net/gfwlist server=/qingse.one/127.0.0.1#5335 ipset=/qingse.one/gfwlist server=/oculusblog.com/127.0.0.1#5335 ipset=/oculusblog.com/gfwlist -server=/developria.com/127.0.0.1#5335 -ipset=/developria.com/gfwlist -server=/kali.org/127.0.0.1#5335 -ipset=/kali.org/gfwlist -server=/amazonlaunchpad.com/127.0.0.1#5335 -ipset=/amazonlaunchpad.com/gfwlist -server=/headphonessupply.com/127.0.0.1#5335 -ipset=/headphonessupply.com/gfwlist -server=/icloudos.de/127.0.0.1#5335 -ipset=/icloudos.de/gfwlist -server=/sony.nl/127.0.0.1#5335 -ipset=/sony.nl/gfwlist +server=/youngtube.me/127.0.0.1#5335 +ipset=/youngtube.me/gfwlist +server=/xxxlucah.com/127.0.0.1#5335 +ipset=/xxxlucah.com/gfwlist server=/bmwmotorcycleusa.com/127.0.0.1#5335 ipset=/bmwmotorcycleusa.com/gfwlist server=/vendu.com/127.0.0.1#5335 ipset=/vendu.com/gfwlist server=/facebook-newsroom.org/127.0.0.1#5335 ipset=/facebook-newsroom.org/gfwlist -server=/poweredbyintel.com/127.0.0.1#5335 -ipset=/poweredbyintel.com/gfwlist -server=/brightcove.imgix.net/127.0.0.1#5335 -ipset=/brightcove.imgix.net/gfwlist server=/disneychannelonstage.com/127.0.0.1#5335 ipset=/disneychannelonstage.com/gfwlist -server=/aerogardcn.com/127.0.0.1#5335 -ipset=/aerogardcn.com/gfwlist -server=/beatsbydrespeakers.com/127.0.0.1#5335 -ipset=/beatsbydrespeakers.com/gfwlist +server=/filmesporno.net.br/127.0.0.1#5335 +ipset=/filmesporno.net.br/gfwlist server=/iphonefc.com/127.0.0.1#5335 ipset=/iphonefc.com/gfwlist -server=/movenetworks.com/127.0.0.1#5335 -ipset=/movenetworks.com/gfwlist -server=/veryshortintroductions.com/127.0.0.1#5335 -ipset=/veryshortintroductions.com/gfwlist +server=/arabxnxx.org/127.0.0.1#5335 +ipset=/arabxnxx.org/gfwlist +server=/google.bj/127.0.0.1#5335 +ipset=/google.bj/gfwlist server=/tvbweekly.com/127.0.0.1#5335 ipset=/tvbweekly.com/gfwlist server=/avsee01.tv/127.0.0.1#5335 ipset=/avsee01.tv/gfwlist -server=/volvotrucks.co.nz/127.0.0.1#5335 -ipset=/volvotrucks.co.nz/gfwlist -server=/paypal-exchanges.com/127.0.0.1#5335 -ipset=/paypal-exchanges.com/gfwlist -server=/gooddaychicago.com/127.0.0.1#5335 -ipset=/gooddaychicago.com/gfwlist -server=/bestbuysolutions.net/127.0.0.1#5335 -ipset=/bestbuysolutions.net/gfwlist -server=/attwatchtv.com/127.0.0.1#5335 -ipset=/attwatchtv.com/gfwlist +server=/nikegadgets.com/127.0.0.1#5335 +ipset=/nikegadgets.com/gfwlist +server=/turborepo.org/127.0.0.1#5335 +ipset=/turborepo.org/gfwlist +server=/mature.nl/127.0.0.1#5335 +ipset=/mature.nl/gfwlist server=/ampproject.net/127.0.0.1#5335 ipset=/ampproject.net/gfwlist server=/tnt-ea.com/127.0.0.1#5335 @@ -492,102 +384,106 @@ server=/veet.co.nz/127.0.0.1#5335 ipset=/veet.co.nz/gfwlist server=/lovesexdurex.com/127.0.0.1#5335 ipset=/lovesexdurex.com/gfwlist -server=/shp.ee/127.0.0.1#5335 -ipset=/shp.ee/gfwlist -server=/bnetcmsus-a.akamaihd.net/127.0.0.1#5335 -ipset=/bnetcmsus-a.akamaihd.net/gfwlist +server=/paypal-status.com/127.0.0.1#5335 +ipset=/paypal-status.com/gfwlist +server=/volvotrucks.cl/127.0.0.1#5335 +ipset=/volvotrucks.cl/gfwlist server=/periscope.tv/127.0.0.1#5335 ipset=/periscope.tv/gfwlist +server=/interracial-sites.com/127.0.0.1#5335 +ipset=/interracial-sites.com/gfwlist server=/mini-connected.lv/127.0.0.1#5335 ipset=/mini-connected.lv/gfwlist -server=/bmw-pakistan.com/127.0.0.1#5335 -ipset=/bmw-pakistan.com/gfwlist -server=/developer.mozilla.org/127.0.0.1#5335 -ipset=/developer.mozilla.org/gfwlist -server=/ciscojabbervideo.net/127.0.0.1#5335 -ipset=/ciscojabbervideo.net/gfwlist +server=/vrfun18.com/127.0.0.1#5335 +ipset=/vrfun18.com/gfwlist +server=/twttr.net/127.0.0.1#5335 +ipset=/twttr.net/gfwlist +server=/yahoo.com.pa/127.0.0.1#5335 +ipset=/yahoo.com.pa/gfwlist server=/omtrdc.net/127.0.0.1#5335 ipset=/omtrdc.net/gfwlist -server=/wsjbarrons.com/127.0.0.1#5335 -ipset=/wsjbarrons.com/gfwlist +server=/pornoh.info/127.0.0.1#5335 +ipset=/pornoh.info/gfwlist +server=/paypal-luxury.com/127.0.0.1#5335 +ipset=/paypal-luxury.com/gfwlist server=/theporndude.com/127.0.0.1#5335 ipset=/theporndude.com/gfwlist -server=/mini.lu/127.0.0.1#5335 -ipset=/mini.lu/gfwlist +server=/hentaiaction.net/127.0.0.1#5335 +ipset=/hentaiaction.net/gfwlist server=/pixnet.net/127.0.0.1#5335 ipset=/pixnet.net/gfwlist -server=/qmap.pub/127.0.0.1#5335 -ipset=/qmap.pub/gfwlist server=/r18lu.com/127.0.0.1#5335 ipset=/r18lu.com/gfwlist server=/hackerfacebook.com/127.0.0.1#5335 ipset=/hackerfacebook.com/gfwlist -server=/721av.com/127.0.0.1#5335 -ipset=/721av.com/gfwlist +server=/rupress.org/127.0.0.1#5335 +ipset=/rupress.org/gfwlist +server=/eventsinfocus.org/127.0.0.1#5335 +ipset=/eventsinfocus.org/gfwlist +server=/xnxxarab.cc/127.0.0.1#5335 +ipset=/xnxxarab.cc/gfwlist +server=/chinatimes.com.tw/127.0.0.1#5335 +ipset=/chinatimes.com.tw/gfwlist server=/hbo.com/127.0.0.1#5335 ipset=/hbo.com/gfwlist -server=/apple-store.net/127.0.0.1#5335 -ipset=/apple-store.net/gfwlist -server=/theaustralian.com.au/127.0.0.1#5335 -ipset=/theaustralian.com.au/gfwlist -server=/ms-studiosmedia.com/127.0.0.1#5335 -ipset=/ms-studiosmedia.com/gfwlist +server=/shopee.es/127.0.0.1#5335 +ipset=/shopee.es/gfwlist +server=/akamaihd.com/127.0.0.1#5335 +ipset=/akamaihd.com/gfwlist +server=/hentaizap.com/127.0.0.1#5335 +ipset=/hentaizap.com/gfwlist server=/windows.net/127.0.0.1#5335 ipset=/windows.net/gfwlist +server=/machosaonatural.com.br/127.0.0.1#5335 +ipset=/machosaonatural.com.br/gfwlist server=/compresspdf.new/127.0.0.1#5335 ipset=/compresspdf.new/gfwlist server=/amazonvideo.com/127.0.0.1#5335 ipset=/amazonvideo.com/gfwlist -server=/yahoo.co.il/127.0.0.1#5335 -ipset=/yahoo.co.il/gfwlist -server=/squarecdn.com/127.0.0.1#5335 -ipset=/squarecdn.com/gfwlist -server=/pinterest.dk/127.0.0.1#5335 -ipset=/pinterest.dk/gfwlist -server=/identrust.net/127.0.0.1#5335 -ipset=/identrust.net/gfwlist +server=/fbjav.com/127.0.0.1#5335 +ipset=/fbjav.com/gfwlist +server=/docleradn.com/127.0.0.1#5335 +ipset=/docleradn.com/gfwlist +server=/airmax360.com/127.0.0.1#5335 +ipset=/airmax360.com/gfwlist server=/xn--pearsonenespaol-brb.com/127.0.0.1#5335 ipset=/xn--pearsonenespaol-brb.com/gfwlist server=/hpeventcenter.com/127.0.0.1#5335 ipset=/hpeventcenter.com/gfwlist server=/apple.co/127.0.0.1#5335 ipset=/apple.co/gfwlist -server=/appleenews.com/127.0.0.1#5335 -ipset=/appleenews.com/gfwlist -server=/google.mw/127.0.0.1#5335 -ipset=/google.mw/gfwlist -server=/baazee.com/127.0.0.1#5335 -ipset=/baazee.com/gfwlist -server=/tomonews.net/127.0.0.1#5335 -ipset=/tomonews.net/gfwlist +server=/18porno.tv/127.0.0.1#5335 +ipset=/18porno.tv/gfwlist +server=/r18.com/127.0.0.1#5335 +ipset=/r18.com/gfwlist +server=/starbucks.co.nz/127.0.0.1#5335 +ipset=/starbucks.co.nz/gfwlist +server=/justlesbianpussy.com/127.0.0.1#5335 +ipset=/justlesbianpussy.com/gfwlist +server=/noc.syosetu.com/127.0.0.1#5335 +ipset=/noc.syosetu.com/gfwlist server=/certificate-transparency.org/127.0.0.1#5335 ipset=/certificate-transparency.org/gfwlist -server=/custom-iphonecase.com/127.0.0.1#5335 -ipset=/custom-iphonecase.com/gfwlist +server=/snapads.com/127.0.0.1#5335 +ipset=/snapads.com/gfwlist server=/txdirectv.com/127.0.0.1#5335 ipset=/txdirectv.com/gfwlist +server=/youflix.is/127.0.0.1#5335 +ipset=/youflix.is/gfwlist server=/foxsports.com.co/127.0.0.1#5335 ipset=/foxsports.com.co/gfwlist server=/bmw.lv/127.0.0.1#5335 ipset=/bmw.lv/gfwlist -server=/myfoxdc.com/127.0.0.1#5335 -ipset=/myfoxdc.com/gfwlist server=/rmbl.ws/127.0.0.1#5335 ipset=/rmbl.ws/gfwlist -server=/foxnetworks.info/127.0.0.1#5335 -ipset=/foxnetworks.info/gfwlist -server=/jfengtime.com/127.0.0.1#5335 -ipset=/jfengtime.com/gfwlist +server=/myfoxla.com/127.0.0.1#5335 +ipset=/myfoxla.com/gfwlist server=/microsoftteams.com/127.0.0.1#5335 ipset=/microsoftteams.com/gfwlist +server=/harica.gr/127.0.0.1#5335 +ipset=/harica.gr/gfwlist server=/visa.com.mx/127.0.0.1#5335 ipset=/visa.com.mx/gfwlist -server=/euroipad.com/127.0.0.1#5335 -ipset=/euroipad.com/gfwlist -server=/touchid.wang/127.0.0.1#5335 -ipset=/touchid.wang/gfwlist -server=/bitly.is/127.0.0.1#5335 -ipset=/bitly.is/gfwlist server=/readthedocs.com/127.0.0.1#5335 ipset=/readthedocs.com/gfwlist server=/uug26.com/127.0.0.1#5335 @@ -596,434 +492,358 @@ server=/bmw-motorrad.pl/127.0.0.1#5335 ipset=/bmw-motorrad.pl/gfwlist server=/akamam.com/127.0.0.1#5335 ipset=/akamam.com/gfwlist -server=/ekhindi.com/127.0.0.1#5335 -ipset=/ekhindi.com/gfwlist -server=/epoch.cloud/127.0.0.1#5335 -ipset=/epoch.cloud/gfwlist -server=/friendbook.info/127.0.0.1#5335 -ipset=/friendbook.info/gfwlist -server=/thisismoney.co.uk/127.0.0.1#5335 -ipset=/thisismoney.co.uk/gfwlist -server=/google.it/127.0.0.1#5335 -ipset=/google.it/gfwlist +server=/redtube9.com/127.0.0.1#5335 +ipset=/redtube9.com/gfwlist +server=/mycardbenefits.com/127.0.0.1#5335 +ipset=/mycardbenefits.com/gfwlist server=/leecountytimes.com/127.0.0.1#5335 ipset=/leecountytimes.com/gfwlist -server=/yahoo.com.pr/127.0.0.1#5335 -ipset=/yahoo.com.pr/gfwlist +server=/sexasia.net/127.0.0.1#5335 +ipset=/sexasia.net/gfwlist server=/mcrouter.net/127.0.0.1#5335 ipset=/mcrouter.net/gfwlist -server=/awseducate.com/127.0.0.1#5335 -ipset=/awseducate.com/gfwlist -server=/directvsavings.com/127.0.0.1#5335 -ipset=/directvsavings.com/gfwlist +server=/bloomberg.tv/127.0.0.1#5335 +ipset=/bloomberg.tv/gfwlist server=/lagranepoca.com/127.0.0.1#5335 ipset=/lagranepoca.com/gfwlist -server=/bloombergpolarlake.com/127.0.0.1#5335 -ipset=/bloombergpolarlake.com/gfwlist -server=/hpbundle.com/127.0.0.1#5335 -ipset=/hpbundle.com/gfwlist +server=/ikea.es/127.0.0.1#5335 +ipset=/ikea.es/gfwlist +server=/n0vadesktop.com/127.0.0.1#5335 +ipset=/n0vadesktop.com/gfwlist server=/google.tl/127.0.0.1#5335 ipset=/google.tl/gfwlist -server=/cortanaanalytics.com/127.0.0.1#5335 -ipset=/cortanaanalytics.com/gfwlist server=/disneyjuniortreataday.com/127.0.0.1#5335 ipset=/disneyjuniortreataday.com/gfwlist server=/minidealer.com/127.0.0.1#5335 ipset=/minidealer.com/gfwlist -server=/thelegendarystarfy.com/127.0.0.1#5335 -ipset=/thelegendarystarfy.com/gfwlist server=/webex.es/127.0.0.1#5335 ipset=/webex.es/gfwlist -server=/gogole.com/127.0.0.1#5335 -ipset=/gogole.com/gfwlist server=/intelemeastore.com/127.0.0.1#5335 ipset=/intelemeastore.com/gfwlist -server=/kodi.tv/127.0.0.1#5335 -ipset=/kodi.tv/gfwlist -server=/blackstonespoliceservice.com/127.0.0.1#5335 -ipset=/blackstonespoliceservice.com/gfwlist +server=/nlt-media.com/127.0.0.1#5335 +ipset=/nlt-media.com/gfwlist server=/pinterest.uk/127.0.0.1#5335 ipset=/pinterest.uk/gfwlist server=/avsforum.com/127.0.0.1#5335 ipset=/avsforum.com/gfwlist server=/cnnlabs.com/127.0.0.1#5335 ipset=/cnnlabs.com/gfwlist -server=/usercontent.dev/127.0.0.1#5335 -ipset=/usercontent.dev/gfwlist +server=/sexmomsex.com/127.0.0.1#5335 +ipset=/sexmomsex.com/gfwlist server=/mbheadphone.com/127.0.0.1#5335 ipset=/mbheadphone.com/gfwlist server=/xn--gtvq61aiijy0b.xn--hxt814e/127.0.0.1#5335 ipset=/xn--gtvq61aiijy0b.xn--hxt814e/gfwlist -server=/outbound.io/127.0.0.1#5335 -ipset=/outbound.io/gfwlist server=/buynikechina.com/127.0.0.1#5335 ipset=/buynikechina.com/gfwlist server=/durex.com.my/127.0.0.1#5335 ipset=/durex.com.my/gfwlist server=/pearsonhighered.com/127.0.0.1#5335 ipset=/pearsonhighered.com/gfwlist -server=/applefilmaker.com/127.0.0.1#5335 -ipset=/applefilmaker.com/gfwlist +server=/dongtaiwang.com/127.0.0.1#5335 +ipset=/dongtaiwang.com/gfwlist server=/visualstudio.com/127.0.0.1#5335 ipset=/visualstudio.com/gfwlist -server=/wofl.tv/127.0.0.1#5335 -ipset=/wofl.tv/gfwlist -server=/mediawiki.org/127.0.0.1#5335 -ipset=/mediawiki.org/gfwlist -server=/instagran.com/127.0.0.1#5335 -ipset=/instagran.com/gfwlist -server=/beatsdre-monster.com/127.0.0.1#5335 -ipset=/beatsdre-monster.com/gfwlist +server=/ikea.co.ph/127.0.0.1#5335 +ipset=/ikea.co.ph/gfwlist +server=/jiyou520.com/127.0.0.1#5335 +ipset=/jiyou520.com/gfwlist server=/pocketcasts.com/127.0.0.1#5335 ipset=/pocketcasts.com/gfwlist -server=/s-cashonmobile.com/127.0.0.1#5335 -ipset=/s-cashonmobile.com/gfwlist -server=/steamcontent.com/127.0.0.1#5335 -ipset=/steamcontent.com/gfwlist -server=/applicationinsights.net/127.0.0.1#5335 -ipset=/applicationinsights.net/gfwlist +server=/ero-labs.com/127.0.0.1#5335 +ipset=/ero-labs.com/gfwlist server=/immxd.com/127.0.0.1#5335 ipset=/immxd.com/gfwlist server=/bmw.com.ky/127.0.0.1#5335 ipset=/bmw.com.ky/gfwlist -server=/brew.sh/127.0.0.1#5335 -ipset=/brew.sh/gfwlist +server=/hooligapps.com/127.0.0.1#5335 +ipset=/hooligapps.com/gfwlist +server=/embase.com/127.0.0.1#5335 +ipset=/embase.com/gfwlist +server=/3dadultgames.net/127.0.0.1#5335 +ipset=/3dadultgames.net/gfwlist +server=/amazon.com/127.0.0.1#5335 +ipset=/amazon.com/gfwlist server=/cheapbeatsbydremonster.com/127.0.0.1#5335 ipset=/cheapbeatsbydremonster.com/gfwlist server=/fastly.com/127.0.0.1#5335 ipset=/fastly.com/gfwlist -server=/shields.io/127.0.0.1#5335 -ipset=/shields.io/gfwlist -server=/bmwstartupgarage.com/127.0.0.1#5335 -ipset=/bmwstartupgarage.com/gfwlist server=/wwwfacebok.com/127.0.0.1#5335 ipset=/wwwfacebok.com/gfwlist -server=/jwt.ms/127.0.0.1#5335 -ipset=/jwt.ms/gfwlist -server=/ebay.be/127.0.0.1#5335 -ipset=/ebay.be/gfwlist -server=/pypa.io/127.0.0.1#5335 -ipset=/pypa.io/gfwlist server=/drebeats-singaporecheap.net/127.0.0.1#5335 ipset=/drebeats-singaporecheap.net/gfwlist +server=/hcomic.net/127.0.0.1#5335 +ipset=/hcomic.net/gfwlist +server=/dlib.eastview.com/127.0.0.1#5335 +ipset=/dlib.eastview.com/gfwlist server=/masseffect.com/127.0.0.1#5335 ipset=/masseffect.com/gfwlist server=/ducksear.ch/127.0.0.1#5335 ipset=/ducksear.ch/gfwlist -server=/bmwmotorradhk.com/127.0.0.1#5335 -ipset=/bmwmotorradhk.com/gfwlist +server=/passion-hd.com/127.0.0.1#5335 +ipset=/passion-hd.com/gfwlist +server=/secret-flirt-hub.com/127.0.0.1#5335 +ipset=/secret-flirt-hub.com/gfwlist server=/minirichmond.com/127.0.0.1#5335 ipset=/minirichmond.com/gfwlist -server=/thomsonreutersmexico.com/127.0.0.1#5335 -ipset=/thomsonreutersmexico.com/gfwlist -server=/ieee-vics.org/127.0.0.1#5335 -ipset=/ieee-vics.org/gfwlist -server=/minilangley.com/127.0.0.1#5335 -ipset=/minilangley.com/gfwlist -server=/raponlinereview.com/127.0.0.1#5335 -ipset=/raponlinereview.com/gfwlist +server=/google.lu/127.0.0.1#5335 +ipset=/google.lu/gfwlist server=/alibabacloud.com.my/127.0.0.1#5335 ipset=/alibabacloud.com.my/gfwlist -server=/volvobuses.com/127.0.0.1#5335 -ipset=/volvobuses.com/gfwlist server=/veet.be/127.0.0.1#5335 ipset=/veet.be/gfwlist -server=/fsdn.com/127.0.0.1#5335 -ipset=/fsdn.com/gfwlist -server=/googledomains.com/127.0.0.1#5335 -ipset=/googledomains.com/gfwlist -server=/hcpdts.com/127.0.0.1#5335 -ipset=/hcpdts.com/gfwlist -server=/swisssign-group.li/127.0.0.1#5335 -ipset=/swisssign-group.li/gfwlist +server=/alteraforum.com/127.0.0.1#5335 +ipset=/alteraforum.com/gfwlist +server=/shahvatsaraa.com/127.0.0.1#5335 +ipset=/shahvatsaraa.com/gfwlist +server=/xxxcomics.org/127.0.0.1#5335 +ipset=/xxxcomics.org/gfwlist +server=/porzo.tv/127.0.0.1#5335 +ipset=/porzo.tv/gfwlist server=/sovec.net/127.0.0.1#5335 ipset=/sovec.net/gfwlist +server=/stupidcams.com/127.0.0.1#5335 +ipset=/stupidcams.com/gfwlist server=/carekit.org/127.0.0.1#5335 ipset=/carekit.org/gfwlist server=/apple.hu/127.0.0.1#5335 ipset=/apple.hu/gfwlist -server=/simplifycommerce.com/127.0.0.1#5335 -ipset=/simplifycommerce.com/gfwlist +server=/o2action.co.kr/127.0.0.1#5335 +ipset=/o2action.co.kr/gfwlist server=/minisaskatoon.com/127.0.0.1#5335 ipset=/minisaskatoon.com/gfwlist server=/nflximg.net/127.0.0.1#5335 ipset=/nflximg.net/gfwlist -server=/espn.hb.omtrdc.net/127.0.0.1#5335 -ipset=/espn.hb.omtrdc.net/gfwlist +server=/hentai2games.com/127.0.0.1#5335 +ipset=/hentai2games.com/gfwlist server=/avn.com/127.0.0.1#5335 ipset=/avn.com/gfwlist server=/google.by/127.0.0.1#5335 ipset=/google.by/gfwlist -server=/apple.ee/127.0.0.1#5335 -ipset=/apple.ee/gfwlist +server=/abellalist.com/127.0.0.1#5335 +ipset=/abellalist.com/gfwlist +server=/dkcloud.cc/127.0.0.1#5335 +ipset=/dkcloud.cc/gfwlist +server=/mudvod.tv/127.0.0.1#5335 +ipset=/mudvod.tv/gfwlist server=/wasdj.com/127.0.0.1#5335 ipset=/wasdj.com/gfwlist -server=/bmwlat.com/127.0.0.1#5335 -ipset=/bmwlat.com/gfwlist -server=/alphera-finance.in/127.0.0.1#5335 -ipset=/alphera-finance.in/gfwlist -server=/youtubemobilesupport.com/127.0.0.1#5335 -ipset=/youtubemobilesupport.com/gfwlist -server=/adobepress.ch/127.0.0.1#5335 -ipset=/adobepress.ch/gfwlist -server=/bttzyw.net/127.0.0.1#5335 -ipset=/bttzyw.net/gfwlist -server=/galaxymobile.jp/127.0.0.1#5335 -ipset=/galaxymobile.jp/gfwlist +server=/myhentaigallery.com/127.0.0.1#5335 +ipset=/myhentaigallery.com/gfwlist +server=/swingerpornfun.com/127.0.0.1#5335 +ipset=/swingerpornfun.com/gfwlist +server=/shahvani.site/127.0.0.1#5335 +ipset=/shahvani.site/gfwlist +server=/naughtysophie.com/127.0.0.1#5335 +ipset=/naughtysophie.com/gfwlist server=/smartonesolutions.hk/127.0.0.1#5335 ipset=/smartonesolutions.hk/gfwlist -server=/mini.dk/127.0.0.1#5335 -ipset=/mini.dk/gfwlist -server=/volvobuses.fi/127.0.0.1#5335 -ipset=/volvobuses.fi/gfwlist -server=/beats-bydreoutletsale.com/127.0.0.1#5335 -ipset=/beats-bydreoutletsale.com/gfwlist +server=/minihalifax.com/127.0.0.1#5335 +ipset=/minihalifax.com/gfwlist +server=/firestonecomercial.co.cr/127.0.0.1#5335 +ipset=/firestonecomercial.co.cr/gfwlist +server=/onlyfreelatinaporn.com/127.0.0.1#5335 +ipset=/onlyfreelatinaporn.com/gfwlist server=/cairnspost.com.au/127.0.0.1#5335 ipset=/cairnspost.com.au/gfwlist server=/easy.ac/127.0.0.1#5335 ipset=/easy.ac/gfwlist -server=/k8s.io/127.0.0.1#5335 -ipset=/k8s.io/gfwlist -server=/akamai-trials.com/127.0.0.1#5335 -ipset=/akamai-trials.com/gfwlist +server=/hugesex.tv/127.0.0.1#5335 +ipset=/hugesex.tv/gfwlist server=/opengraphprotocol.org/127.0.0.1#5335 ipset=/opengraphprotocol.org/gfwlist server=/vilavpn.xyz/127.0.0.1#5335 ipset=/vilavpn.xyz/gfwlist -server=/facebgook.com/127.0.0.1#5335 -ipset=/facebgook.com/gfwlist +server=/pornsoldiers.com/127.0.0.1#5335 +ipset=/pornsoldiers.com/gfwlist server=/firestoneip.com/127.0.0.1#5335 ipset=/firestoneip.com/gfwlist -server=/appleone.guide/127.0.0.1#5335 -ipset=/appleone.guide/gfwlist -server=/jetfuelapp.com/127.0.0.1#5335 -ipset=/jetfuelapp.com/gfwlist server=/ocul.us/127.0.0.1#5335 ipset=/ocul.us/gfwlist -server=/gsccdn.com/127.0.0.1#5335 -ipset=/gsccdn.com/gfwlist server=/microsoftcloudsummit.com/127.0.0.1#5335 ipset=/microsoftcloudsummit.com/gfwlist -server=/facebookexchange.net/127.0.0.1#5335 -ipset=/facebookexchange.net/gfwlist -server=/akami.com/127.0.0.1#5335 -ipset=/akami.com/gfwlist +server=/hplipopensource.com/127.0.0.1#5335 +ipset=/hplipopensource.com/gfwlist +server=/zoofilianet.com/127.0.0.1#5335 +ipset=/zoofilianet.com/gfwlist server=/intel.ua/127.0.0.1#5335 ipset=/intel.ua/gfwlist -server=/vmwareemeablog.com/127.0.0.1#5335 -ipset=/vmwareemeablog.com/gfwlist +server=/eroprofile.com/127.0.0.1#5335 +ipset=/eroprofile.com/gfwlist server=/xn--xsq421m.com/127.0.0.1#5335 ipset=/xn--xsq421m.com/gfwlist +server=/eromanga-mainichi.com/127.0.0.1#5335 +ipset=/eromanga-mainichi.com/gfwlist server=/facebooksite.net/127.0.0.1#5335 ipset=/facebooksite.net/gfwlist -server=/bmw-product-highlights.com/127.0.0.1#5335 -ipset=/bmw-product-highlights.com/gfwlist -server=/darkageofcamelot.com/127.0.0.1#5335 -ipset=/darkageofcamelot.com/gfwlist -server=/pixapp.net/127.0.0.1#5335 -ipset=/pixapp.net/gfwlist -server=/vfsco.hu/127.0.0.1#5335 -ipset=/vfsco.hu/gfwlist -server=/mysdn.com/127.0.0.1#5335 -ipset=/mysdn.com/gfwlist +server=/javcc.cc/127.0.0.1#5335 +ipset=/javcc.cc/gfwlist +server=/gimy.cc/127.0.0.1#5335 +ipset=/gimy.cc/gfwlist +server=/honkaiimpact3.com/127.0.0.1#5335 +ipset=/honkaiimpact3.com/gfwlist server=/line.me/127.0.0.1#5335 ipset=/line.me/gfwlist -server=/netflixdnstest10.com/127.0.0.1#5335 -ipset=/netflixdnstest10.com/gfwlist +server=/plumperpass.com/127.0.0.1#5335 +ipset=/plumperpass.com/gfwlist server=/durex.no/127.0.0.1#5335 ipset=/durex.no/gfwlist -server=/awsloft-stockholm.com/127.0.0.1#5335 -ipset=/awsloft-stockholm.com/gfwlist +server=/abema-tv.com/127.0.0.1#5335 +ipset=/abema-tv.com/gfwlist server=/sony.cz/127.0.0.1#5335 ipset=/sony.cz/gfwlist +server=/porndex.com/127.0.0.1#5335 +ipset=/porndex.com/gfwlist server=/faecebok.com/127.0.0.1#5335 ipset=/faecebok.com/gfwlist -server=/needforspeedredline.com/127.0.0.1#5335 -ipset=/needforspeedredline.com/gfwlist -server=/bmw.pl/127.0.0.1#5335 -ipset=/bmw.pl/gfwlist -server=/dvdstudiopro.net/127.0.0.1#5335 -ipset=/dvdstudiopro.net/gfwlist -server=/qt.io/127.0.0.1#5335 -ipset=/qt.io/gfwlist -server=/garenanow.com/127.0.0.1#5335 -ipset=/garenanow.com/gfwlist -server=/boltdns.net/127.0.0.1#5335 -ipset=/boltdns.net/gfwlist -server=/mastercard.az/127.0.0.1#5335 -ipset=/mastercard.az/gfwlist -server=/nikebetterworld.net/127.0.0.1#5335 -ipset=/nikebetterworld.net/gfwlist -server=/asahi.com/127.0.0.1#5335 -ipset=/asahi.com/gfwlist -server=/vimeostatus.com/127.0.0.1#5335 -ipset=/vimeostatus.com/gfwlist -server=/googlefinland.com/127.0.0.1#5335 -ipset=/googlefinland.com/gfwlist -server=/masterpassteststore.com/127.0.0.1#5335 -ipset=/masterpassteststore.com/gfwlist -server=/nextmgz.com/127.0.0.1#5335 -ipset=/nextmgz.com/gfwlist -server=/volvotrucks.co.zm/127.0.0.1#5335 -ipset=/volvotrucks.co.zm/gfwlist -server=/attalascom.com/127.0.0.1#5335 -ipset=/attalascom.com/gfwlist +server=/e-goods.ru/127.0.0.1#5335 +ipset=/e-goods.ru/gfwlist +server=/boslife.biz/127.0.0.1#5335 +ipset=/boslife.biz/gfwlist +server=/onepornlist.com/127.0.0.1#5335 +ipset=/onepornlist.com/gfwlist +server=/ntdtv-dc.com/127.0.0.1#5335 +ipset=/ntdtv-dc.com/gfwlist +server=/pornzog.com/127.0.0.1#5335 +ipset=/pornzog.com/gfwlist +server=/disneymagicmoments.co.uk/127.0.0.1#5335 +ipset=/disneymagicmoments.co.uk/gfwlist +server=/astm.org/127.0.0.1#5335 +ipset=/astm.org/gfwlist +server=/gofucker.com/127.0.0.1#5335 +ipset=/gofucker.com/gfwlist +server=/intramuscularinjection.info/127.0.0.1#5335 +ipset=/intramuscularinjection.info/gfwlist +server=/camerfirma.com/127.0.0.1#5335 +ipset=/camerfirma.com/gfwlist +server=/sony.com.hk/127.0.0.1#5335 +ipset=/sony.com.hk/gfwlist +server=/ebayinc.net/127.0.0.1#5335 +ipset=/ebayinc.net/gfwlist +server=/lesbiansubmission.com/127.0.0.1#5335 +ipset=/lesbiansubmission.com/gfwlist +server=/paypa1.com/127.0.0.1#5335 +ipset=/paypa1.com/gfwlist +server=/pctlwm.com/127.0.0.1#5335 +ipset=/pctlwm.com/gfwlist server=/volvogroup.ru/127.0.0.1#5335 ipset=/volvogroup.ru/gfwlist server=/pearsonassessment.se/127.0.0.1#5335 ipset=/pearsonassessment.se/gfwlist -server=/cybertrust.co.jp/127.0.0.1#5335 -ipset=/cybertrust.co.jp/gfwlist -server=/mini-jordan.com/127.0.0.1#5335 -ipset=/mini-jordan.com/gfwlist +server=/ifuckedmy.mom/127.0.0.1#5335 +ipset=/ifuckedmy.mom/gfwlist server=/chimeforchange.org/127.0.0.1#5335 ipset=/chimeforchange.org/gfwlist server=/intelrxt.com/127.0.0.1#5335 ipset=/intelrxt.com/gfwlist -server=/voandebele.com/127.0.0.1#5335 -ipset=/voandebele.com/gfwlist -server=/tryrating.com/127.0.0.1#5335 -ipset=/tryrating.com/gfwlist +server=/oneocsp.microsoft.com/127.0.0.1#5335 +ipset=/oneocsp.microsoft.com/gfwlist +server=/hilostripper.com/127.0.0.1#5335 +ipset=/hilostripper.com/gfwlist +server=/txxx1.com/127.0.0.1#5335 +ipset=/txxx1.com/gfwlist server=/signalbar.com/127.0.0.1#5335 ipset=/signalbar.com/gfwlist -server=/axios.com/127.0.0.1#5335 -ipset=/axios.com/gfwlist -server=/appleswift.com/127.0.0.1#5335 -ipset=/appleswift.com/gfwlist -server=/imacsources.com/127.0.0.1#5335 -ipset=/imacsources.com/gfwlist -server=/insidefilms.com/127.0.0.1#5335 -ipset=/insidefilms.com/gfwlist -server=/foxbet.com/127.0.0.1#5335 -ipset=/foxbet.com/gfwlist -server=/ebayenterprise.net/127.0.0.1#5335 -ipset=/ebayenterprise.net/gfwlist +server=/rule34.world/127.0.0.1#5335 +ipset=/rule34.world/gfwlist +server=/goodreads.com/127.0.0.1#5335 +ipset=/goodreads.com/gfwlist +server=/hairypornsite.com/127.0.0.1#5335 +ipset=/hairypornsite.com/gfwlist +server=/beatsincanada.com/127.0.0.1#5335 +ipset=/beatsincanada.com/gfwlist server=/thebayuk.com/127.0.0.1#5335 ipset=/thebayuk.com/gfwlist server=/ebaymarketplace.net/127.0.0.1#5335 ipset=/ebaymarketplace.net/gfwlist -server=/cheapbeatsbydremall.com/127.0.0.1#5335 -ipset=/cheapbeatsbydremall.com/gfwlist -server=/muji.com/127.0.0.1#5335 -ipset=/muji.com/gfwlist -server=/macbookair.com.es/127.0.0.1#5335 -ipset=/macbookair.com.es/gfwlist -server=/iphone5.com/127.0.0.1#5335 -ipset=/iphone5.com/gfwlist -server=/rolsociety.org/127.0.0.1#5335 -ipset=/rolsociety.org/gfwlist +server=/localizestatus.com/127.0.0.1#5335 +ipset=/localizestatus.com/gfwlist +server=/thotvids.com/127.0.0.1#5335 +ipset=/thotvids.com/gfwlist +server=/erogazo-jp.net/127.0.0.1#5335 +ipset=/erogazo-jp.net/gfwlist server=/akaint.net/127.0.0.1#5335 ipset=/akaint.net/gfwlist server=/acm.org/127.0.0.1#5335 ipset=/acm.org/gfwlist server=/whyiwantciscotelepresence.com/127.0.0.1#5335 ipset=/whyiwantciscotelepresence.com/gfwlist -server=/apkpure.com/127.0.0.1#5335 -ipset=/apkpure.com/gfwlist -server=/fotolja.com/127.0.0.1#5335 -ipset=/fotolja.com/gfwlist -server=/nintendo-europe-sales.com/127.0.0.1#5335 -ipset=/nintendo-europe-sales.com/gfwlist -server=/kindleoasis.jp/127.0.0.1#5335 -ipset=/kindleoasis.jp/gfwlist -server=/durex.es/127.0.0.1#5335 -ipset=/durex.es/gfwlist -server=/nikeshoesinc.com/127.0.0.1#5335 -ipset=/nikeshoesinc.com/gfwlist +server=/awetv.com/127.0.0.1#5335 +ipset=/awetv.com/gfwlist +server=/sensueel.net/127.0.0.1#5335 +ipset=/sensueel.net/gfwlist server=/eprc.com.hk/127.0.0.1#5335 ipset=/eprc.com.hk/gfwlist server=/youtube-nocookie.com/127.0.0.1#5335 ipset=/youtube-nocookie.com/gfwlist -server=/bastillepost.com/127.0.0.1#5335 -ipset=/bastillepost.com/gfwlist server=/paypal-login.com/127.0.0.1#5335 ipset=/paypal-login.com/gfwlist server=/macbook.wang/127.0.0.1#5335 ipset=/macbook.wang/gfwlist -server=/facebook.tv/127.0.0.1#5335 -ipset=/facebook.tv/gfwlist -server=/volvopenta.es/127.0.0.1#5335 -ipset=/volvopenta.es/gfwlist -server=/foxsports.pe/127.0.0.1#5335 -ipset=/foxsports.pe/gfwlist -server=/msft.info/127.0.0.1#5335 -ipset=/msft.info/gfwlist -server=/bmw-motorrad.co/127.0.0.1#5335 -ipset=/bmw-motorrad.co/gfwlist +server=/xn--4vq475g.com/127.0.0.1#5335 +ipset=/xn--4vq475g.com/gfwlist +server=/ikea.sk/127.0.0.1#5335 +ipset=/ikea.sk/gfwlist +server=/xxxscenes.net/127.0.0.1#5335 +ipset=/xxxscenes.net/gfwlist server=/mini.com.pe/127.0.0.1#5335 ipset=/mini.com.pe/gfwlist server=/codeish.io/127.0.0.1#5335 ipset=/codeish.io/gfwlist server=/hpcatridge.com/127.0.0.1#5335 ipset=/hpcatridge.com/gfwlist -server=/bmw-connecteddrive.ru/127.0.0.1#5335 -ipset=/bmw-connecteddrive.ru/gfwlist +server=/yahoo.st/127.0.0.1#5335 +ipset=/yahoo.st/gfwlist server=/starbuckssummergame.com/127.0.0.1#5335 ipset=/starbuckssummergame.com/gfwlist -server=/womenwill.id/127.0.0.1#5335 -ipset=/womenwill.id/gfwlist -server=/experiencebillmelater.com/127.0.0.1#5335 -ipset=/experiencebillmelater.com/gfwlist -server=/avpanda.cc/127.0.0.1#5335 -ipset=/avpanda.cc/gfwlist -server=/oxfordwesternmusic.com/127.0.0.1#5335 -ipset=/oxfordwesternmusic.com/gfwlist -server=/disney.asia/127.0.0.1#5335 -ipset=/disney.asia/gfwlist -server=/erabaru.net/127.0.0.1#5335 -ipset=/erabaru.net/gfwlist +server=/adultfriendfinder.com/127.0.0.1#5335 +ipset=/adultfriendfinder.com/gfwlist +server=/showup.tv/127.0.0.1#5335 +ipset=/showup.tv/gfwlist +server=/daretoku-eromanga.info/127.0.0.1#5335 +ipset=/daretoku-eromanga.info/gfwlist +server=/wowpornlist.xyz/127.0.0.1#5335 +ipset=/wowpornlist.xyz/gfwlist +server=/justpicsplease.com/127.0.0.1#5335 +ipset=/justpicsplease.com/gfwlist server=/readthedocs.io/127.0.0.1#5335 ipset=/readthedocs.io/gfwlist server=/zoho.com.au/127.0.0.1#5335 ipset=/zoho.com.au/gfwlist server=/sonykigyo.jp/127.0.0.1#5335 ipset=/sonykigyo.jp/gfwlist -server=/orlandohurricane.com/127.0.0.1#5335 -ipset=/orlandohurricane.com/gfwlist -server=/bmw-museum.com/127.0.0.1#5335 -ipset=/bmw-museum.com/gfwlist +server=/vscode.blob.core.windows.net/127.0.0.1#5335 +ipset=/vscode.blob.core.windows.net/gfwlist +server=/ve-dash-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/ve-dash-uk-live.akamaized.net/gfwlist server=/qualcomm.sc.omtrdc.net/127.0.0.1#5335 ipset=/qualcomm.sc.omtrdc.net/gfwlist -server=/volvobuses.pl/127.0.0.1#5335 -ipset=/volvobuses.pl/gfwlist -server=/knovel.com/127.0.0.1#5335 -ipset=/knovel.com/gfwlist +server=/teenagefucking.com/127.0.0.1#5335 +ipset=/teenagefucking.com/gfwlist server=/intel.uz/127.0.0.1#5335 ipset=/intel.uz/gfwlist -server=/vmwlabconnect.com/127.0.0.1#5335 -ipset=/vmwlabconnect.com/gfwlist +server=/facebook.shop/127.0.0.1#5335 +ipset=/facebook.shop/gfwlist server=/edcity.hk/127.0.0.1#5335 ipset=/edcity.hk/gfwlist server=/5278.cc/127.0.0.1#5335 ipset=/5278.cc/gfwlist -server=/t21ipau.nikkei.co.jp/127.0.0.1#5335 -ipset=/t21ipau.nikkei.co.jp/gfwlist +server=/nbys.tv/127.0.0.1#5335 +ipset=/nbys.tv/gfwlist server=/youtubecisco.com/127.0.0.1#5335 ipset=/youtubecisco.com/gfwlist -server=/ebay-cz.com/127.0.0.1#5335 -ipset=/ebay-cz.com/gfwlist -server=/mariadb.org/127.0.0.1#5335 -ipset=/mariadb.org/gfwlist -server=/acmvalidationsaws.com/127.0.0.1#5335 -ipset=/acmvalidationsaws.com/gfwlist -server=/ituneslatino.com/127.0.0.1#5335 -ipset=/ituneslatino.com/gfwlist -server=/beatsbydreheadphones-nz.com/127.0.0.1#5335 -ipset=/beatsbydreheadphones-nz.com/gfwlist +server=/animezilla.com/127.0.0.1#5335 +ipset=/animezilla.com/gfwlist +server=/fundinginstitutional.com/127.0.0.1#5335 +ipset=/fundinginstitutional.com/gfwlist server=/metart.com/127.0.0.1#5335 ipset=/metart.com/gfwlist server=/httpsfacebook.com/127.0.0.1#5335 ipset=/httpsfacebook.com/gfwlist -server=/ssrpass.pw/127.0.0.1#5335 -ipset=/ssrpass.pw/gfwlist -server=/scala-sbt.org/127.0.0.1#5335 -ipset=/scala-sbt.org/gfwlist -server=/appleiphone.net/127.0.0.1#5335 -ipset=/appleiphone.net/gfwlist -server=/monitrix.net/127.0.0.1#5335 -ipset=/monitrix.net/gfwlist -server=/patenttruth.org/127.0.0.1#5335 -ipset=/patenttruth.org/gfwlist +server=/icegay.tv/127.0.0.1#5335 +ipset=/icegay.tv/gfwlist +server=/animal-porn.net/127.0.0.1#5335 +ipset=/animal-porn.net/gfwlist server=/airwick.co.uk/127.0.0.1#5335 ipset=/airwick.co.uk/gfwlist server=/beatsbysdrbre.com/127.0.0.1#5335 @@ -1032,100 +852,88 @@ server=/fblitho.com/127.0.0.1#5335 ipset=/fblitho.com/gfwlist server=/iphonehangzhou.com/127.0.0.1#5335 ipset=/iphonehangzhou.com/gfwlist -server=/youtube.com.ni/127.0.0.1#5335 -ipset=/youtube.com.ni/gfwlist +server=/orientalasianporn.com/127.0.0.1#5335 +ipset=/orientalasianporn.com/gfwlist +server=/av11.org/127.0.0.1#5335 +ipset=/av11.org/gfwlist server=/alphabet.com.mx/127.0.0.1#5335 ipset=/alphabet.com.mx/gfwlist -server=/vfsco.ch/127.0.0.1#5335 -ipset=/vfsco.ch/gfwlist -server=/beatsbydreonlines-uk.com/127.0.0.1#5335 -ipset=/beatsbydreonlines-uk.com/gfwlist -server=/startpath.com/127.0.0.1#5335 -ipset=/startpath.com/gfwlist -server=/yourfantasybeginsnow.com/127.0.0.1#5335 -ipset=/yourfantasybeginsnow.com/gfwlist +server=/goduckgo.com/127.0.0.1#5335 +ipset=/goduckgo.com/gfwlist +server=/18-teen-porn.com/127.0.0.1#5335 +ipset=/18-teen-porn.com/gfwlist +server=/pornofint.com/127.0.0.1#5335 +ipset=/pornofint.com/gfwlist +server=/gfjizz.com/127.0.0.1#5335 +ipset=/gfjizz.com/gfwlist server=/monsterbeats-cheap.com/127.0.0.1#5335 ipset=/monsterbeats-cheap.com/gfwlist -server=/smartcommunitiescoalition.org/127.0.0.1#5335 -ipset=/smartcommunitiescoalition.org/gfwlist -server=/mickey.tv/127.0.0.1#5335 -ipset=/mickey.tv/gfwlist -server=/91.51rmc.com/127.0.0.1#5335 -ipset=/91.51rmc.com/gfwlist server=/pinterest.info/127.0.0.1#5335 ipset=/pinterest.info/gfwlist -server=/appleid.hk/127.0.0.1#5335 -ipset=/appleid.hk/gfwlist +server=/azuredevopslaunch.com/127.0.0.1#5335 +ipset=/azuredevopslaunch.com/gfwlist server=/volvotrucks.se/127.0.0.1#5335 ipset=/volvotrucks.se/gfwlist -server=/facebooksecurity.net/127.0.0.1#5335 -ipset=/facebooksecurity.net/gfwlist +server=/otaku-168.com/127.0.0.1#5335 +ipset=/otaku-168.com/gfwlist server=/mini.mu/127.0.0.1#5335 ipset=/mini.mu/gfwlist -server=/infowars.com/127.0.0.1#5335 -ipset=/infowars.com/gfwlist -server=/lyzsxx.com/127.0.0.1#5335 -ipset=/lyzsxx.com/gfwlist -server=/bsw.jp/127.0.0.1#5335 -ipset=/bsw.jp/gfwlist -server=/hktpremier.com/127.0.0.1#5335 -ipset=/hktpremier.com/gfwlist +server=/bioone.org/127.0.0.1#5335 +ipset=/bioone.org/gfwlist +server=/cnnamador.com/127.0.0.1#5335 +ipset=/cnnamador.com/gfwlist +server=/hentai3dvideo.biz/127.0.0.1#5335 +ipset=/hentai3dvideo.biz/gfwlist server=/biowarestore.com/127.0.0.1#5335 ipset=/biowarestore.com/gfwlist -server=/gitlab.net/127.0.0.1#5335 -ipset=/gitlab.net/gfwlist -server=/jav.guru/127.0.0.1#5335 -ipset=/jav.guru/gfwlist -server=/oxfordscholarship.com/127.0.0.1#5335 -ipset=/oxfordscholarship.com/gfwlist +server=/veet.fr/127.0.0.1#5335 +ipset=/veet.fr/gfwlist +server=/lolibus.cc/127.0.0.1#5335 +ipset=/lolibus.cc/gfwlist +server=/fetishpapa.com/127.0.0.1#5335 +ipset=/fetishpapa.com/gfwlist +server=/linkjunkies.com/127.0.0.1#5335 +ipset=/linkjunkies.com/gfwlist server=/inoreader.com/127.0.0.1#5335 ipset=/inoreader.com/gfwlist -server=/strepsils.com.ph/127.0.0.1#5335 -ipset=/strepsils.com.ph/gfwlist -server=/minneapolisbmw.net/127.0.0.1#5335 -ipset=/minneapolisbmw.net/gfwlist +server=/go-gaytube.com/127.0.0.1#5335 +ipset=/go-gaytube.com/gfwlist +server=/kindle.in/127.0.0.1#5335 +ipset=/kindle.in/gfwlist server=/dandalinvoa.com/127.0.0.1#5335 ipset=/dandalinvoa.com/gfwlist -server=/nintendo.de/127.0.0.1#5335 -ipset=/nintendo.de/gfwlist -server=/spotifyjobs.com/127.0.0.1#5335 -ipset=/spotifyjobs.com/gfwlist +server=/cygames.jp/127.0.0.1#5335 +ipset=/cygames.jp/gfwlist +server=/alt3-mtalk.google.com/127.0.0.1#5335 +ipset=/alt3-mtalk.google.com/gfwlist +server=/hentai69.online/127.0.0.1#5335 +ipset=/hentai69.online/gfwlist server=/metacloud.com/127.0.0.1#5335 ipset=/metacloud.com/gfwlist -server=/canon.kz/127.0.0.1#5335 -ipset=/canon.kz/gfwlist +server=/weav.xyz/127.0.0.1#5335 +ipset=/weav.xyz/gfwlist server=/facebooklogs.com/127.0.0.1#5335 ipset=/facebooklogs.com/gfwlist server=/uun82.com/127.0.0.1#5335 ipset=/uun82.com/gfwlist server=/audio-ak-spotify-com.akamaized.net/127.0.0.1#5335 ipset=/audio-ak-spotify-com.akamaized.net/gfwlist -server=/youtube.ng/127.0.0.1#5335 -ipset=/youtube.ng/gfwlist server=/xn--xsq605n.com/127.0.0.1#5335 ipset=/xn--xsq605n.com/gfwlist -server=/microsoft.rs/127.0.0.1#5335 -ipset=/microsoft.rs/gfwlist server=/beatsboxingdayuksale.com/127.0.0.1#5335 ipset=/beatsboxingdayuksale.com/gfwlist -server=/bmwgroupna.com/127.0.0.1#5335 -ipset=/bmwgroupna.com/gfwlist -server=/beatsbydrecustomwireless.com/127.0.0.1#5335 -ipset=/beatsbydrecustomwireless.com/gfwlist -server=/media-imdb.com/127.0.0.1#5335 -ipset=/media-imdb.com/gfwlist +server=/apple.lk/127.0.0.1#5335 +ipset=/apple.lk/gfwlist server=/vmwhorizonair.com/127.0.0.1#5335 ipset=/vmwhorizonair.com/gfwlist server=/akamaisingapore.net/127.0.0.1#5335 ipset=/akamaisingapore.net/gfwlist -server=/wireless.radio/127.0.0.1#5335 -ipset=/wireless.radio/gfwlist +server=/sukebei.nyaa.si/127.0.0.1#5335 +ipset=/sukebei.nyaa.si/gfwlist server=/youtube.ni/127.0.0.1#5335 ipset=/youtube.ni/gfwlist -server=/nyti.ms/127.0.0.1#5335 -ipset=/nyti.ms/gfwlist -server=/renchead.com/127.0.0.1#5335 -ipset=/renchead.com/gfwlist +server=/femdomcc.net/127.0.0.1#5335 +ipset=/femdomcc.net/gfwlist server=/abc-studios.com/127.0.0.1#5335 ipset=/abc-studios.com/gfwlist server=/cheapbeatsbydreoutlet.com/127.0.0.1#5335 @@ -1138,124 +946,98 @@ server=/travelex.com.au/127.0.0.1#5335 ipset=/travelex.com.au/gfwlist server=/gnews.org/127.0.0.1#5335 ipset=/gnews.org/gfwlist -server=/visamiddleeast.com/127.0.0.1#5335 -ipset=/visamiddleeast.com/gfwlist -server=/akamci.com/127.0.0.1#5335 -ipset=/akamci.com/gfwlist -server=/visaluxuryhotelcollection.com.mx/127.0.0.1#5335 -ipset=/visaluxuryhotelcollection.com.mx/gfwlist +server=/eboobstore.com/127.0.0.1#5335 +ipset=/eboobstore.com/gfwlist server=/vanish.com.br/127.0.0.1#5335 ipset=/vanish.com.br/gfwlist -server=/imovie.eu/127.0.0.1#5335 -ipset=/imovie.eu/gfwlist -server=/mgo.com/127.0.0.1#5335 -ipset=/mgo.com/gfwlist +server=/swiftbank.us/127.0.0.1#5335 +ipset=/swiftbank.us/gfwlist server=/naver.jp/127.0.0.1#5335 ipset=/naver.jp/gfwlist -server=/haveibeenpwned.com/127.0.0.1#5335 -ipset=/haveibeenpwned.com/gfwlist +server=/google.se/127.0.0.1#5335 +ipset=/google.se/gfwlist server=/dawngate.com/127.0.0.1#5335 ipset=/dawngate.com/gfwlist server=/icloud.de/127.0.0.1#5335 ipset=/icloud.de/gfwlist server=/mini.be/127.0.0.1#5335 ipset=/mini.be/gfwlist -server=/dawngatechronicles.com/127.0.0.1#5335 -ipset=/dawngatechronicles.com/gfwlist -server=/sunbingo.co.uk/127.0.0.1#5335 -ipset=/sunbingo.co.uk/gfwlist +server=/illusionn4.com/127.0.0.1#5335 +ipset=/illusionn4.com/gfwlist +server=/pornmd.com/127.0.0.1#5335 +ipset=/pornmd.com/gfwlist +server=/stufferdb.com/127.0.0.1#5335 +ipset=/stufferdb.com/gfwlist server=/ebaybank.com/127.0.0.1#5335 ipset=/ebaybank.com/gfwlist -server=/ms365surfaceoffer.com/127.0.0.1#5335 -ipset=/ms365surfaceoffer.com/gfwlist -server=/azureedge.net/127.0.0.1#5335 -ipset=/azureedge.net/gfwlist +server=/porn-list.site/127.0.0.1#5335 +ipset=/porn-list.site/gfwlist server=/foxbusiness.tv/127.0.0.1#5335 ipset=/foxbusiness.tv/gfwlist +server=/quickiepage.com/127.0.0.1#5335 +ipset=/quickiepage.com/gfwlist server=/gettyimages.co.nz/127.0.0.1#5335 ipset=/gettyimages.co.nz/gfwlist -server=/cash.app/127.0.0.1#5335 -ipset=/cash.app/gfwlist -server=/applewatchedition.com/127.0.0.1#5335 -ipset=/applewatchedition.com/gfwlist -server=/premobay.com/127.0.0.1#5335 -ipset=/premobay.com/gfwlist -server=/dssott.com/127.0.0.1#5335 -ipset=/dssott.com/gfwlist +server=/doujin-freee.com/127.0.0.1#5335 +ipset=/doujin-freee.com/gfwlist +server=/illusionn5.com/127.0.0.1#5335 +ipset=/illusionn5.com/gfwlist +server=/sankei-ad-info.com/127.0.0.1#5335 +ipset=/sankei-ad-info.com/gfwlist server=/applelink.com/127.0.0.1#5335 ipset=/applelink.com/gfwlist +server=/nyahentai.re/127.0.0.1#5335 +ipset=/nyahentai.re/gfwlist server=/youtube.co.ug/127.0.0.1#5335 ipset=/youtube.co.ug/gfwlist server=/youtube.pt/127.0.0.1#5335 ipset=/youtube.pt/gfwlist -server=/ipodcleaner.com/127.0.0.1#5335 -ipset=/ipodcleaner.com/gfwlist +server=/nikebetterworld.info/127.0.0.1#5335 +ipset=/nikebetterworld.info/gfwlist server=/bmwmontreal.ca/127.0.0.1#5335 ipset=/bmwmontreal.ca/gfwlist -server=/facebof.com/127.0.0.1#5335 -ipset=/facebof.com/gfwlist server=/dollarphotoclub.com/127.0.0.1#5335 ipset=/dollarphotoclub.com/gfwlist server=/jenkins.io/127.0.0.1#5335 ipset=/jenkins.io/gfwlist -server=/activelearnprimary.com.au/127.0.0.1#5335 -ipset=/activelearnprimary.com.au/gfwlist server=/volvotruckcenter.kz/127.0.0.1#5335 ipset=/volvotruckcenter.kz/gfwlist server=/bestbuybusinessadvantageaccount.com/127.0.0.1#5335 ipset=/bestbuybusinessadvantageaccount.com/gfwlist -server=/avmoo.cyou/127.0.0.1#5335 -ipset=/avmoo.cyou/gfwlist -server=/foampositeshoes.com/127.0.0.1#5335 -ipset=/foampositeshoes.com/gfwlist -server=/ilecture.co.nz/127.0.0.1#5335 -ipset=/ilecture.co.nz/gfwlist +server=/lineshoppingseller.com/127.0.0.1#5335 +ipset=/lineshoppingseller.com/gfwlist +server=/kumo.com/127.0.0.1#5335 +ipset=/kumo.com/gfwlist server=/visacards.com/127.0.0.1#5335 ipset=/visacards.com/gfwlist server=/nab.demdex.net/127.0.0.1#5335 ipset=/nab.demdex.net/gfwlist -server=/volvotrucks.pe/127.0.0.1#5335 -ipset=/volvotrucks.pe/gfwlist +server=/jibemobile.com/127.0.0.1#5335 +ipset=/jibemobile.com/gfwlist server=/wheelworks.net/127.0.0.1#5335 ipset=/wheelworks.net/gfwlist -server=/office.com/127.0.0.1#5335 -ipset=/office.com/gfwlist -server=/pinterestmail.com/127.0.0.1#5335 -ipset=/pinterestmail.com/gfwlist -server=/proxyrarbg.org/127.0.0.1#5335 -ipset=/proxyrarbg.org/gfwlist +server=/businessinsider.jp/127.0.0.1#5335 +ipset=/businessinsider.jp/gfwlist server=/boxofficemojo.com/127.0.0.1#5335 ipset=/boxofficemojo.com/gfwlist -server=/bodyandsoul.com.au/127.0.0.1#5335 -ipset=/bodyandsoul.com.au/gfwlist -server=/veet.no/127.0.0.1#5335 -ipset=/veet.no/gfwlist server=/m2m.com/127.0.0.1#5335 ipset=/m2m.com/gfwlist -server=/adidas.at/127.0.0.1#5335 -ipset=/adidas.at/gfwlist -server=/saleblackfridaydrebeats.com/127.0.0.1#5335 -ipset=/saleblackfridaydrebeats.com/gfwlist -server=/youtube.mn/127.0.0.1#5335 -ipset=/youtube.mn/gfwlist server=/lightbridge.com/127.0.0.1#5335 ipset=/lightbridge.com/gfwlist +server=/momsexypics.com/127.0.0.1#5335 +ipset=/momsexypics.com/gfwlist server=/fury.co/127.0.0.1#5335 ipset=/fury.co/gfwlist -server=/icloud-isupport.com/127.0.0.1#5335 -ipset=/icloud-isupport.com/gfwlist -server=/south-plus.net/127.0.0.1#5335 -ipset=/south-plus.net/gfwlist -server=/foxsports.com.pe/127.0.0.1#5335 -ipset=/foxsports.com.pe/gfwlist -server=/mydirtyhobby.com/127.0.0.1#5335 -ipset=/mydirtyhobby.com/gfwlist +server=/topchats.com/127.0.0.1#5335 +ipset=/topchats.com/gfwlist +server=/xl-gaytube.com/127.0.0.1#5335 +ipset=/xl-gaytube.com/gfwlist +server=/szcheapmonsterheadphones.com/127.0.0.1#5335 +ipset=/szcheapmonsterheadphones.com/gfwlist server=/visa.com.py/127.0.0.1#5335 ipset=/visa.com.py/gfwlist -server=/internetexplorer.co/127.0.0.1#5335 -ipset=/internetexplorer.co/gfwlist -server=/ifontcloud.com/127.0.0.1#5335 -ipset=/ifontcloud.com/gfwlist +server=/dettol.com.hk/127.0.0.1#5335 +ipset=/dettol.com.hk/gfwlist server=/dettolsitishield.co.in/127.0.0.1#5335 ipset=/dettolsitishield.co.in/gfwlist server=/hightopnikes.com/127.0.0.1#5335 @@ -1264,34 +1046,42 @@ server=/ebay-delivery.com/127.0.0.1#5335 ipset=/ebay-delivery.com/gfwlist server=/bmw-motorrad.com.py/127.0.0.1#5335 ipset=/bmw-motorrad.com.py/gfwlist -server=/hulu.tv/127.0.0.1#5335 -ipset=/hulu.tv/gfwlist -server=/archiveofourown.com/127.0.0.1#5335 -ipset=/archiveofourown.com/gfwlist +server=/bmw.vn/127.0.0.1#5335 +ipset=/bmw.vn/gfwlist server=/hellokittybeats.com/127.0.0.1#5335 ipset=/hellokittybeats.com/gfwlist server=/apple.dk/127.0.0.1#5335 ipset=/apple.dk/gfwlist -server=/kidsnikeshoes.com/127.0.0.1#5335 -ipset=/kidsnikeshoes.com/gfwlist -server=/macports.org/127.0.0.1#5335 -ipset=/macports.org/gfwlist +server=/topexhib.net/127.0.0.1#5335 +ipset=/topexhib.net/gfwlist +server=/hentaiera.com/127.0.0.1#5335 +ipset=/hentaiera.com/gfwlist +server=/svensksexfilm.com/127.0.0.1#5335 +ipset=/svensksexfilm.com/gfwlist server=/citizenlab.ca/127.0.0.1#5335 ipset=/citizenlab.ca/gfwlist -server=/bby.com/127.0.0.1#5335 -ipset=/bby.com/gfwlist -server=/alpherafinancialservices.in/127.0.0.1#5335 -ipset=/alpherafinancialservices.in/gfwlist +server=/pornacho.com/127.0.0.1#5335 +ipset=/pornacho.com/gfwlist +server=/doujinfree.com/127.0.0.1#5335 +ipset=/doujinfree.com/gfwlist +server=/xn--gogl-0nd52e.com/127.0.0.1#5335 +ipset=/xn--gogl-0nd52e.com/gfwlist +server=/ceicdata.com/127.0.0.1#5335 +ipset=/ceicdata.com/gfwlist server=/thomsonreuters.cn/127.0.0.1#5335 ipset=/thomsonreuters.cn/gfwlist +server=/lesboerotica.net/127.0.0.1#5335 +ipset=/lesboerotica.net/gfwlist server=/youtube.sv/127.0.0.1#5335 ipset=/youtube.sv/gfwlist -server=/venmo.info/127.0.0.1#5335 -ipset=/venmo.info/gfwlist -server=/mini.in/127.0.0.1#5335 -ipset=/mini.in/gfwlist -server=/youtube.pe/127.0.0.1#5335 -ipset=/youtube.pe/gfwlist +server=/pakistanporntube.net/127.0.0.1#5335 +ipset=/pakistanporntube.net/gfwlist +server=/alhs.link/127.0.0.1#5335 +ipset=/alhs.link/gfwlist +server=/ignites.com/127.0.0.1#5335 +ipset=/ignites.com/gfwlist +server=/ikea.ph/127.0.0.1#5335 +ipset=/ikea.ph/gfwlist server=/duckduckgo.ca/127.0.0.1#5335 ipset=/duckduckgo.ca/gfwlist server=/xvideos.com/127.0.0.1#5335 @@ -1300,96 +1090,70 @@ server=/youtube.bg/127.0.0.1#5335 ipset=/youtube.bg/gfwlist server=/getadblock.com/127.0.0.1#5335 ipset=/getadblock.com/gfwlist -server=/beatsbydrenorge1.net/127.0.0.1#5335 -ipset=/beatsbydrenorge1.net/gfwlist -server=/strepsils.si/127.0.0.1#5335 -ipset=/strepsils.si/gfwlist -server=/inmediahk.net/127.0.0.1#5335 -ipset=/inmediahk.net/gfwlist -server=/microsoft.ch/127.0.0.1#5335 -ipset=/microsoft.ch/gfwlist -server=/winudf.com/127.0.0.1#5335 -ipset=/winudf.com/gfwlist -server=/paypal-center.org/127.0.0.1#5335 -ipset=/paypal-center.org/gfwlist -server=/foxinc.com/127.0.0.1#5335 -ipset=/foxinc.com/gfwlist -server=/familymart.com.my/127.0.0.1#5335 -ipset=/familymart.com.my/gfwlist +server=/hentai.pro/127.0.0.1#5335 +ipset=/hentai.pro/gfwlist +server=/bmw-corporate-sales.com/127.0.0.1#5335 +ipset=/bmw-corporate-sales.com/gfwlist +server=/amateursecrets.net/127.0.0.1#5335 +ipset=/amateursecrets.net/gfwlist +server=/shopfacebook.com/127.0.0.1#5335 +ipset=/shopfacebook.com/gfwlist +server=/mypornbookmarks.com/127.0.0.1#5335 +ipset=/mypornbookmarks.com/gfwlist +server=/bigboobsalert.com/127.0.0.1#5335 +ipset=/bigboobsalert.com/gfwlist +server=/nudeandhairy.com/127.0.0.1#5335 +ipset=/nudeandhairy.com/gfwlist server=/githubpreview.dev/127.0.0.1#5335 ipset=/githubpreview.dev/gfwlist -server=/bmw-motorrad.pt/127.0.0.1#5335 -ipset=/bmw-motorrad.pt/gfwlist -server=/nikefind.com/127.0.0.1#5335 -ipset=/nikefind.com/gfwlist -server=/nintendoswitch.net/127.0.0.1#5335 -ipset=/nintendoswitch.net/gfwlist -server=/crowdtangle.com/127.0.0.1#5335 -ipset=/crowdtangle.com/gfwlist +server=/pornopantry.com/127.0.0.1#5335 +ipset=/pornopantry.com/gfwlist server=/baselinestudy.com/127.0.0.1#5335 ipset=/baselinestudy.com/gfwlist -server=/dependabot.com/127.0.0.1#5335 -ipset=/dependabot.com/gfwlist server=/braventures.com/127.0.0.1#5335 ipset=/braventures.com/gfwlist server=/disney.ru/127.0.0.1#5335 ipset=/disney.ru/gfwlist -server=/airsupportapp.com/127.0.0.1#5335 -ipset=/airsupportapp.com/gfwlist -server=/akatns.net/127.0.0.1#5335 -ipset=/akatns.net/gfwlist -server=/ipfs.io/127.0.0.1#5335 -ipset=/ipfs.io/gfwlist -server=/slack-redir.net/127.0.0.1#5335 -ipset=/slack-redir.net/gfwlist +server=/xxvideoss.org/127.0.0.1#5335 +ipset=/xxvideoss.org/gfwlist +server=/conan.xxx/127.0.0.1#5335 +ipset=/conan.xxx/gfwlist server=/findmyipad.com/127.0.0.1#5335 ipset=/findmyipad.com/gfwlist -server=/adobeccstatic.com/127.0.0.1#5335 -ipset=/adobeccstatic.com/gfwlist +server=/flickr.com/127.0.0.1#5335 +ipset=/flickr.com/gfwlist server=/ipod.co.za/127.0.0.1#5335 ipset=/ipod.co.za/gfwlist -server=/zeenews.com/127.0.0.1#5335 -ipset=/zeenews.com/gfwlist -server=/facebookcanadianelectionintegrityinitiative.com/127.0.0.1#5335 -ipset=/facebookcanadianelectionintegrityinitiative.com/gfwlist -server=/dengeamerika.com/127.0.0.1#5335 -ipset=/dengeamerika.com/gfwlist +server=/iwantmature.com/127.0.0.1#5335 +ipset=/iwantmature.com/gfwlist +server=/hclips.com/127.0.0.1#5335 +ipset=/hclips.com/gfwlist server=/macosxlion.com/127.0.0.1#5335 ipset=/macosxlion.com/gfwlist server=/dartpad.dev/127.0.0.1#5335 ipset=/dartpad.dev/gfwlist server=/applewatchsport.com/127.0.0.1#5335 ipset=/applewatchsport.com/gfwlist +server=/wifesharingpics.com/127.0.0.1#5335 +ipset=/wifesharingpics.com/gfwlist server=/google.com.np/127.0.0.1#5335 ipset=/google.com.np/gfwlist -server=/tube8.com/127.0.0.1#5335 -ipset=/tube8.com/gfwlist -server=/airwick.sk/127.0.0.1#5335 -ipset=/airwick.sk/gfwlist -server=/apple.be/127.0.0.1#5335 -ipset=/apple.be/gfwlist -server=/clco.cc/127.0.0.1#5335 -ipset=/clco.cc/gfwlist -server=/intel.ba/127.0.0.1#5335 -ipset=/intel.ba/gfwlist +server=/googil.com/127.0.0.1#5335 +ipset=/googil.com/gfwlist +server=/cloudinary.com/127.0.0.1#5335 +ipset=/cloudinary.com/gfwlist server=/canon.nl/127.0.0.1#5335 ipset=/canon.nl/gfwlist -server=/duckduckgo.com.mx/127.0.0.1#5335 -ipset=/duckduckgo.com.mx/gfwlist server=/blogspot.com.by/127.0.0.1#5335 ipset=/blogspot.com.by/gfwlist server=/tesla-cdn.thron.com/127.0.0.1#5335 ipset=/tesla-cdn.thron.com/gfwlist -server=/mastercard.qa/127.0.0.1#5335 -ipset=/mastercard.qa/gfwlist -server=/mythicentertainment.com/127.0.0.1#5335 -ipset=/mythicentertainment.com/gfwlist server=/braintreegateway.com/127.0.0.1#5335 ipset=/braintreegateway.com/gfwlist -server=/pearsoncmg.com/127.0.0.1#5335 -ipset=/pearsoncmg.com/gfwlist -server=/facebooklive.com/127.0.0.1#5335 -ipset=/facebooklive.com/gfwlist +server=/zoopornmd.com/127.0.0.1#5335 +ipset=/zoopornmd.com/gfwlist +server=/fuckmatureporn.com/127.0.0.1#5335 +ipset=/fuckmatureporn.com/gfwlist server=/llnw-trials.com/127.0.0.1#5335 ipset=/llnw-trials.com/gfwlist server=/amdfanstore.com/127.0.0.1#5335 @@ -1398,342 +1162,270 @@ server=/beatsbydressolo.com/127.0.0.1#5335 ipset=/beatsbydressolo.com/gfwlist server=/rarbgaccess.org/127.0.0.1#5335 ipset=/rarbgaccess.org/gfwlist -server=/underlords.com/127.0.0.1#5335 -ipset=/underlords.com/gfwlist server=/drebeatscanada.com/127.0.0.1#5335 ipset=/drebeatscanada.com/gfwlist server=/nflximg.com/127.0.0.1#5335 ipset=/nflximg.com/gfwlist server=/wholesalediscountpurses.com/127.0.0.1#5335 ipset=/wholesalediscountpurses.com/gfwlist -server=/beatsdre.net/127.0.0.1#5335 -ipset=/beatsdre.net/gfwlist +server=/wvm0agb4.me/127.0.0.1#5335 +ipset=/wvm0agb4.me/gfwlist server=/debian.org/127.0.0.1#5335 ipset=/debian.org/gfwlist -server=/revenue-performance-management.com/127.0.0.1#5335 -ipset=/revenue-performance-management.com/gfwlist -server=/cashpassport.net/127.0.0.1#5335 -ipset=/cashpassport.net/gfwlist +server=/idol-sagasukun.com/127.0.0.1#5335 +ipset=/idol-sagasukun.com/gfwlist +server=/scpdb.org/127.0.0.1#5335 +ipset=/scpdb.org/gfwlist server=/india.com/127.0.0.1#5335 ipset=/india.com/gfwlist -server=/cnnmoney.com/127.0.0.1#5335 -ipset=/cnnmoney.com/gfwlist +server=/vanish.com.mx/127.0.0.1#5335 +ipset=/vanish.com.mx/gfwlist server=/page3.com/127.0.0.1#5335 ipset=/page3.com/gfwlist -server=/ntdtv.kr/127.0.0.1#5335 -ipset=/ntdtv.kr/gfwlist +server=/signalprocessingsociety.org/127.0.0.1#5335 +ipset=/signalprocessingsociety.org/gfwlist server=/bmwgroupdirect.com/127.0.0.1#5335 ipset=/bmwgroupdirect.com/gfwlist +server=/avcrempie.com/127.0.0.1#5335 +ipset=/avcrempie.com/gfwlist server=/movefreeoffers.com/127.0.0.1#5335 ipset=/movefreeoffers.com/gfwlist -server=/mini.com.pl/127.0.0.1#5335 -ipset=/mini.com.pl/gfwlist server=/pearsonclinical.ca/127.0.0.1#5335 ipset=/pearsonclinical.ca/gfwlist -server=/miniso.by/127.0.0.1#5335 -ipset=/miniso.by/gfwlist server=/google.fr/127.0.0.1#5335 ipset=/google.fr/gfwlist server=/foxnewschannel.com/127.0.0.1#5335 ipset=/foxnewschannel.com/gfwlist -server=/beatsbydres-shop.com/127.0.0.1#5335 -ipset=/beatsbydres-shop.com/gfwlist +server=/touhouwiki.net/127.0.0.1#5335 +ipset=/touhouwiki.net/gfwlist server=/youtube.it/127.0.0.1#5335 ipset=/youtube.it/gfwlist -server=/pokemon.com/127.0.0.1#5335 -ipset=/pokemon.com/gfwlist +server=/1lib.education/127.0.0.1#5335 +ipset=/1lib.education/gfwlist +server=/forbiddenmomsarchive.com/127.0.0.1#5335 +ipset=/forbiddenmomsarchive.com/gfwlist +server=/animalincum.com/127.0.0.1#5335 +ipset=/animalincum.com/gfwlist server=/alphabet.pl/127.0.0.1#5335 ipset=/alphabet.pl/gfwlist -server=/videoindexer.ai/127.0.0.1#5335 -ipset=/videoindexer.ai/gfwlist -server=/wmflabs.org/127.0.0.1#5335 -ipset=/wmflabs.org/gfwlist -server=/widevine.com/127.0.0.1#5335 -ipset=/widevine.com/gfwlist server=/alteraforums.com/127.0.0.1#5335 ipset=/alteraforums.com/gfwlist -server=/realestate.com.au/127.0.0.1#5335 -ipset=/realestate.com.au/gfwlist +server=/xxxstreams.org/127.0.0.1#5335 +ipset=/xxxstreams.org/gfwlist server=/imgix.com/127.0.0.1#5335 ipset=/imgix.com/gfwlist server=/mini-connected.se/127.0.0.1#5335 ipset=/mini-connected.se/gfwlist -server=/beatbydreheadphonesonsale.com/127.0.0.1#5335 -ipset=/beatbydreheadphonesonsale.com/gfwlist +server=/chubbypornonly.com/127.0.0.1#5335 +ipset=/chubbypornonly.com/gfwlist server=/radeon.com/127.0.0.1#5335 ipset=/radeon.com/gfwlist server=/hplaptopbattery.com/127.0.0.1#5335 ipset=/hplaptopbattery.com/gfwlist -server=/foxsports.uy/127.0.0.1#5335 -ipset=/foxsports.uy/gfwlist server=/google.fm/127.0.0.1#5335 ipset=/google.fm/gfwlist -server=/ipod.com.tw/127.0.0.1#5335 -ipset=/ipod.com.tw/gfwlist -server=/zaobao.sg/127.0.0.1#5335 -ipset=/zaobao.sg/gfwlist -server=/xbox360.eu/127.0.0.1#5335 -ipset=/xbox360.eu/gfwlist +server=/hqseek.com/127.0.0.1#5335 +ipset=/hqseek.com/gfwlist server=/zeetv.com/127.0.0.1#5335 ipset=/zeetv.com/gfwlist -server=/askubuntu.com/127.0.0.1#5335 -ipset=/askubuntu.com/gfwlist -server=/myfonts.net/127.0.0.1#5335 -ipset=/myfonts.net/gfwlist -server=/krux.com/127.0.0.1#5335 -ipset=/krux.com/gfwlist -server=/github.community/127.0.0.1#5335 -ipset=/github.community/gfwlist +server=/shadowcomplex.com/127.0.0.1#5335 +ipset=/shadowcomplex.com/gfwlist +server=/get.rsvp/127.0.0.1#5335 +ipset=/get.rsvp/gfwlist +server=/maturesinhd.com/127.0.0.1#5335 +ipset=/maturesinhd.com/gfwlist server=/cheapbeats365.com/127.0.0.1#5335 ipset=/cheapbeats365.com/gfwlist +server=/svc.ms/127.0.0.1#5335 +ipset=/svc.ms/gfwlist +server=/asextube.net/127.0.0.1#5335 +ipset=/asextube.net/gfwlist server=/intel.hu/127.0.0.1#5335 ipset=/intel.hu/gfwlist server=/directvcincinnatioh.com/127.0.0.1#5335 ipset=/directvcincinnatioh.com/gfwlist -server=/gputechconf.co.kr/127.0.0.1#5335 -ipset=/gputechconf.co.kr/gfwlist -server=/svp-team.com/127.0.0.1#5335 -ipset=/svp-team.com/gfwlist -server=/xn--6eup7j.net/127.0.0.1#5335 -ipset=/xn--6eup7j.net/gfwlist +server=/starbucks.ca/127.0.0.1#5335 +ipset=/starbucks.ca/gfwlist +server=/muryouav.net/127.0.0.1#5335 +ipset=/muryouav.net/gfwlist server=/directvcrossvilletn.com/127.0.0.1#5335 ipset=/directvcrossvilletn.com/gfwlist -server=/wsjwine.com/127.0.0.1#5335 -ipset=/wsjwine.com/gfwlist server=/msft.net/127.0.0.1#5335 ipset=/msft.net/gfwlist +server=/teensloveanal.com/127.0.0.1#5335 +ipset=/teensloveanal.com/gfwlist server=/beats1.tv/127.0.0.1#5335 ipset=/beats1.tv/gfwlist -server=/packer.io/127.0.0.1#5335 -ipset=/packer.io/gfwlist server=/apple-pay.wang/127.0.0.1#5335 ipset=/apple-pay.wang/gfwlist -server=/bethsoft.com/127.0.0.1#5335 -ipset=/bethsoft.com/gfwlist +server=/ocsp.microsoft.com/127.0.0.1#5335 +ipset=/ocsp.microsoft.com/gfwlist server=/atttvnow.com/127.0.0.1#5335 ipset=/atttvnow.com/gfwlist server=/milofetch.com/127.0.0.1#5335 ipset=/milofetch.com/gfwlist -server=/microsoftgamestack.com/127.0.0.1#5335 -ipset=/microsoftgamestack.com/gfwlist +server=/telegram-cdn.org/127.0.0.1#5335 +ipset=/telegram-cdn.org/gfwlist +server=/researchkit.hk/127.0.0.1#5335 +ipset=/researchkit.hk/gfwlist server=/airport.eu/127.0.0.1#5335 ipset=/airport.eu/gfwlist -server=/alpherafs.in/127.0.0.1#5335 -ipset=/alpherafs.in/gfwlist -server=/travelex.it/127.0.0.1#5335 -ipset=/travelex.it/gfwlist +server=/ieeer10.org/127.0.0.1#5335 +ipset=/ieeer10.org/gfwlist +server=/paramountplus.com/127.0.0.1#5335 +ipset=/paramountplus.com/gfwlist server=/nuget.org/127.0.0.1#5335 ipset=/nuget.org/gfwlist -server=/asproexapi.com/127.0.0.1#5335 -ipset=/asproexapi.com/gfwlist +server=/bbcpersian.com/127.0.0.1#5335 +ipset=/bbcpersian.com/gfwlist server=/idvd.eu/127.0.0.1#5335 ipset=/idvd.eu/gfwlist server=/garena.co.th/127.0.0.1#5335 ipset=/garena.co.th/gfwlist server=/scholar.google.dk/127.0.0.1#5335 ipset=/scholar.google.dk/gfwlist -server=/isca-speech.org/127.0.0.1#5335 -ipset=/isca-speech.org/gfwlist -server=/icloud.fr/127.0.0.1#5335 -ipset=/icloud.fr/gfwlist +server=/1lib.eu/127.0.0.1#5335 +ipset=/1lib.eu/gfwlist server=/intel.ly/127.0.0.1#5335 ipset=/intel.ly/gfwlist server=/ohyeah1080.com/127.0.0.1#5335 ipset=/ohyeah1080.com/gfwlist -server=/businessinsider.de/127.0.0.1#5335 -ipset=/businessinsider.de/gfwlist -server=/veet.us/127.0.0.1#5335 -ipset=/veet.us/gfwlist -server=/finish.si/127.0.0.1#5335 -ipset=/finish.si/gfwlist -server=/beatsheadphonestudio.com/127.0.0.1#5335 -ipset=/beatsheadphonestudio.com/gfwlist -server=/yarnpkg.com/127.0.0.1#5335 -ipset=/yarnpkg.com/gfwlist -server=/ntdtv.com.tw/127.0.0.1#5335 -ipset=/ntdtv.com.tw/gfwlist -server=/adidas.co.in/127.0.0.1#5335 -ipset=/adidas.co.in/gfwlist -server=/aka-ai.net/127.0.0.1#5335 -ipset=/aka-ai.net/gfwlist +server=/xxxpornmovs.com/127.0.0.1#5335 +ipset=/xxxpornmovs.com/gfwlist +server=/czechwifeswap.com/127.0.0.1#5335 +ipset=/czechwifeswap.com/gfwlist +server=/facebookmanager.info/127.0.0.1#5335 +ipset=/facebookmanager.info/gfwlist +server=/siska.video/127.0.0.1#5335 +ipset=/siska.video/gfwlist +server=/4tubefree.net/127.0.0.1#5335 +ipset=/4tubefree.net/gfwlist +server=/97dounai.top/127.0.0.1#5335 +ipset=/97dounai.top/gfwlist server=/wmt.co/127.0.0.1#5335 ipset=/wmt.co/gfwlist -server=/sky.com/127.0.0.1#5335 -ipset=/sky.com/gfwlist -server=/facebook.org/127.0.0.1#5335 -ipset=/facebook.org/gfwlist server=/attic.io/127.0.0.1#5335 ipset=/attic.io/gfwlist server=/drmario-world.com/127.0.0.1#5335 ipset=/drmario-world.com/gfwlist -server=/beatsbydrdrestore.com/127.0.0.1#5335 -ipset=/beatsbydrdrestore.com/gfwlist -server=/insider-intelligence.com/127.0.0.1#5335 -ipset=/insider-intelligence.com/gfwlist -server=/gclubs.com/127.0.0.1#5335 -ipset=/gclubs.com/gfwlist +server=/zingtruyen.net/127.0.0.1#5335 +ipset=/zingtruyen.net/gfwlist server=/dctbeatsbydre.com/127.0.0.1#5335 ipset=/dctbeatsbydre.com/gfwlist +server=/smm99999.com/127.0.0.1#5335 +ipset=/smm99999.com/gfwlist +server=/anonproxy.info/127.0.0.1#5335 +ipset=/anonproxy.info/gfwlist server=/shopify.com/127.0.0.1#5335 ipset=/shopify.com/gfwlist -server=/kilmeadeandfriends.com/127.0.0.1#5335 -ipset=/kilmeadeandfriends.com/gfwlist server=/zndsk.com/127.0.0.1#5335 ipset=/zndsk.com/gfwlist -server=/nikenews.com/127.0.0.1#5335 -ipset=/nikenews.com/gfwlist -server=/disney.com.hk/127.0.0.1#5335 -ipset=/disney.com.hk/gfwlist -server=/onenote.com/127.0.0.1#5335 -ipset=/onenote.com/gfwlist -server=/nurofen.ro/127.0.0.1#5335 -ipset=/nurofen.ro/gfwlist -server=/bmwmass.com/127.0.0.1#5335 -ipset=/bmwmass.com/gfwlist +server=/kingstagram.com/127.0.0.1#5335 +ipset=/kingstagram.com/gfwlist +server=/metaporn.com/127.0.0.1#5335 +ipset=/metaporn.com/gfwlist server=/mini.ch/127.0.0.1#5335 ipset=/mini.ch/gfwlist -server=/facebookpokerchips.info/127.0.0.1#5335 -ipset=/facebookpokerchips.info/gfwlist -server=/researchkit.tv/127.0.0.1#5335 -ipset=/researchkit.tv/gfwlist -server=/facebookstudios.org/127.0.0.1#5335 -ipset=/facebookstudios.org/gfwlist -server=/zeplin.io/127.0.0.1#5335 -ipset=/zeplin.io/gfwlist server=/buyitnow.net/127.0.0.1#5335 ipset=/buyitnow.net/gfwlist +server=/newsexwap.com/127.0.0.1#5335 +ipset=/newsexwap.com/gfwlist server=/blogspot.nl/127.0.0.1#5335 ipset=/blogspot.nl/gfwlist -server=/quicktime.tv/127.0.0.1#5335 -ipset=/quicktime.tv/gfwlist +server=/canon.co.za/127.0.0.1#5335 +ipset=/canon.co.za/gfwlist server=/aesworkshops.com/127.0.0.1#5335 ipset=/aesworkshops.com/gfwlist -server=/beeg.com/127.0.0.1#5335 -ipset=/beeg.com/gfwlist -server=/macbookair.co.uk/127.0.0.1#5335 -ipset=/macbookair.co.uk/gfwlist +server=/danemarket.com/127.0.0.1#5335 +ipset=/danemarket.com/gfwlist server=/bmw-world.net/127.0.0.1#5335 ipset=/bmw-world.net/gfwlist -server=/mini-stjohns.com/127.0.0.1#5335 -ipset=/mini-stjohns.com/gfwlist -server=/dengiamerika.com/127.0.0.1#5335 -ipset=/dengiamerika.com/gfwlist +server=/pornobrasileiro.tv/127.0.0.1#5335 +ipset=/pornobrasileiro.tv/gfwlist +server=/tabustudios.co/127.0.0.1#5335 +ipset=/tabustudios.co/gfwlist server=/attproxy.com/127.0.0.1#5335 ipset=/attproxy.com/gfwlist server=/hayabusa.dev/127.0.0.1#5335 ipset=/hayabusa.dev/gfwlist -server=/miniso.my/127.0.0.1#5335 -ipset=/miniso.my/gfwlist server=/yahoo-news.com.hk/127.0.0.1#5335 ipset=/yahoo-news.com.hk/gfwlist -server=/pearsonassessment.be/127.0.0.1#5335 -ipset=/pearsonassessment.be/gfwlist +server=/hotwifemovies.com/127.0.0.1#5335 +ipset=/hotwifemovies.com/gfwlist server=/v2ex.com/127.0.0.1#5335 ipset=/v2ex.com/gfwlist -server=/onsalekey.com/127.0.0.1#5335 -ipset=/onsalekey.com/gfwlist -server=/yahoo.jo/127.0.0.1#5335 -ipset=/yahoo.jo/gfwlist -server=/disneysrivieraresort.com/127.0.0.1#5335 -ipset=/disneysrivieraresort.com/gfwlist -server=/canon.lv/127.0.0.1#5335 -ipset=/canon.lv/gfwlist -server=/oreil.ly/127.0.0.1#5335 -ipset=/oreil.ly/gfwlist +server=/ikea.hr/127.0.0.1#5335 +ipset=/ikea.hr/gfwlist server=/hk01.com/127.0.0.1#5335 ipset=/hk01.com/gfwlist -server=/lencr.org/127.0.0.1#5335 -ipset=/lencr.org/gfwlist -server=/amplifyapp.com/127.0.0.1#5335 -ipset=/amplifyapp.com/gfwlist -server=/lge.co.kr/127.0.0.1#5335 -ipset=/lge.co.kr/gfwlist -server=/beatsbydrsmonsterinusa.com/127.0.0.1#5335 -ipset=/beatsbydrsmonsterinusa.com/gfwlist +server=/boy18tube.com/127.0.0.1#5335 +ipset=/boy18tube.com/gfwlist server=/google.com.ua/127.0.0.1#5335 ipset=/google.com.ua/gfwlist server=/hrsaz.com/127.0.0.1#5335 ipset=/hrsaz.com/gfwlist -server=/q13.com/127.0.0.1#5335 -ipset=/q13.com/gfwlist -server=/bmw-motorrad-dubai.com/127.0.0.1#5335 -ipset=/bmw-motorrad-dubai.com/gfwlist +server=/boodigogo.com/127.0.0.1#5335 +ipset=/boodigogo.com/gfwlist server=/fsacebok.com/127.0.0.1#5335 ipset=/fsacebok.com/gfwlist -server=/steamcommunity.com/127.0.0.1#5335 -ipset=/steamcommunity.com/gfwlist server=/beats-bydrecheapsale.com/127.0.0.1#5335 ipset=/beats-bydrecheapsale.com/gfwlist -server=/airwick.cl/127.0.0.1#5335 -ipset=/airwick.cl/gfwlist +server=/alt8-mtalk.google.com/127.0.0.1#5335 +ipset=/alt8-mtalk.google.com/gfwlist server=/facebookpay.com/127.0.0.1#5335 ipset=/facebookpay.com/gfwlist -server=/ebayads.net/127.0.0.1#5335 -ipset=/ebayads.net/gfwlist -server=/amazon-jp-recruiting.com/127.0.0.1#5335 -ipset=/amazon-jp-recruiting.com/gfwlist -server=/fox10.tv/127.0.0.1#5335 -ipset=/fox10.tv/gfwlist +server=/pearson.ch/127.0.0.1#5335 +ipset=/pearson.ch/gfwlist +server=/intel.ma/127.0.0.1#5335 +ipset=/intel.ma/gfwlist server=/canon.ua/127.0.0.1#5335 ipset=/canon.ua/gfwlist -server=/pearson-intl.com/127.0.0.1#5335 -ipset=/pearson-intl.com/gfwlist -server=/npm.community/127.0.0.1#5335 -ipset=/npm.community/gfwlist +server=/usaco.org/127.0.0.1#5335 +ipset=/usaco.org/gfwlist server=/scopus.com/127.0.0.1#5335 ipset=/scopus.com/gfwlist -server=/bmw-motorrad.jp/127.0.0.1#5335 -ipset=/bmw-motorrad.jp/gfwlist server=/mortein.co.in/127.0.0.1#5335 ipset=/mortein.co.in/gfwlist -server=/usertrust.com/127.0.0.1#5335 -ipset=/usertrust.com/gfwlist -server=/rakuten.com.tw/127.0.0.1#5335 -ipset=/rakuten.com.tw/gfwlist +server=/savitahd.net/127.0.0.1#5335 +ipset=/savitahd.net/gfwlist +server=/5i01.com/127.0.0.1#5335 +ipset=/5i01.com/gfwlist server=/facebookemail.com/127.0.0.1#5335 ipset=/facebookemail.com/gfwlist -server=/googleoptimize.com/127.0.0.1#5335 -ipset=/googleoptimize.com/gfwlist -server=/intel.pe/127.0.0.1#5335 -ipset=/intel.pe/gfwlist -server=/beatsbydreshops.net/127.0.0.1#5335 -ipset=/beatsbydreshops.net/gfwlist +server=/faproulette.co/127.0.0.1#5335 +ipset=/faproulette.co/gfwlist server=/bmw-voli.me/127.0.0.1#5335 ipset=/bmw-voli.me/gfwlist -server=/nikecraft.com/127.0.0.1#5335 -ipset=/nikecraft.com/gfwlist server=/pearson.com.hk/127.0.0.1#5335 ipset=/pearson.com.hk/gfwlist server=/webex.de/127.0.0.1#5335 ipset=/webex.de/gfwlist +server=/men.com/127.0.0.1#5335 +ipset=/men.com/gfwlist server=/skypeassets.net/127.0.0.1#5335 ipset=/skypeassets.net/gfwlist +server=/xxxfree.watch/127.0.0.1#5335 +ipset=/xxxfree.watch/gfwlist server=/verisign.co.in/127.0.0.1#5335 ipset=/verisign.co.in/gfwlist server=/alphera.co.nz/127.0.0.1#5335 ipset=/alphera.co.nz/gfwlist server=/stateofthemap.org/127.0.0.1#5335 ipset=/stateofthemap.org/gfwlist -server=/ffprofile.com/127.0.0.1#5335 -ipset=/ffprofile.com/gfwlist -server=/menshin-channel.com/127.0.0.1#5335 -ipset=/menshin-channel.com/gfwlist -server=/scholar.google.com.ni/127.0.0.1#5335 -ipset=/scholar.google.com.ni/gfwlist -server=/cbsiam.com/127.0.0.1#5335 -ipset=/cbsiam.com/gfwlist +server=/mobileporngames.com/127.0.0.1#5335 +ipset=/mobileporngames.com/gfwlist +server=/strip-poker.xxx/127.0.0.1#5335 +ipset=/strip-poker.xxx/gfwlist +server=/tytporno.online/127.0.0.1#5335 +ipset=/tytporno.online/gfwlist +server=/bestbuycharityclassic.com/127.0.0.1#5335 +ipset=/bestbuycharityclassic.com/gfwlist server=/scholar.google.li/127.0.0.1#5335 ipset=/scholar.google.li/gfwlist -server=/devcon.org/127.0.0.1#5335 -ipset=/devcon.org/gfwlist -server=/thomsonreuters.co.kr/127.0.0.1#5335 -ipset=/thomsonreuters.co.kr/gfwlist -server=/apple.fr/127.0.0.1#5335 -ipset=/apple.fr/gfwlist -server=/macbookpro.com/127.0.0.1#5335 -ipset=/macbookpro.com/gfwlist -server=/ebayopen.com/127.0.0.1#5335 -ipset=/ebayopen.com/gfwlist +server=/unwire.hk/127.0.0.1#5335 +ipset=/unwire.hk/gfwlist +server=/google.sr/127.0.0.1#5335 +ipset=/google.sr/gfwlist server=/kubeacademy.com/127.0.0.1#5335 ipset=/kubeacademy.com/gfwlist server=/e-bay.it/127.0.0.1#5335 @@ -1742,122 +1434,96 @@ server=/fontawesome.com/127.0.0.1#5335 ipset=/fontawesome.com/gfwlist server=/soundofhope.kr/127.0.0.1#5335 ipset=/soundofhope.kr/gfwlist -server=/mysocialworklab.com/127.0.0.1#5335 -ipset=/mysocialworklab.com/gfwlist -server=/volvotrucks.al/127.0.0.1#5335 -ipset=/volvotrucks.al/gfwlist -server=/rule34.xxx/127.0.0.1#5335 -ipset=/rule34.xxx/gfwlist -server=/youtube.co.ve/127.0.0.1#5335 -ipset=/youtube.co.ve/gfwlist +server=/globalriskregulator.com/127.0.0.1#5335 +ipset=/globalriskregulator.com/gfwlist +server=/paofuyun.me/127.0.0.1#5335 +ipset=/paofuyun.me/gfwlist +server=/pornoisy.com/127.0.0.1#5335 +ipset=/pornoisy.com/gfwlist server=/calgon.ch/127.0.0.1#5335 ipset=/calgon.ch/gfwlist -server=/facfebook.com/127.0.0.1#5335 -ipset=/facfebook.com/gfwlist +server=/xxxporndig.com/127.0.0.1#5335 +ipset=/xxxporndig.com/gfwlist server=/v2fly.org/127.0.0.1#5335 ipset=/v2fly.org/gfwlist -server=/edisebay.com/127.0.0.1#5335 -ipset=/edisebay.com/gfwlist server=/ipad.co.kr/127.0.0.1#5335 ipset=/ipad.co.kr/gfwlist server=/udn.com/127.0.0.1#5335 ipset=/udn.com/gfwlist -server=/bmw.sn/127.0.0.1#5335 -ipset=/bmw.sn/gfwlist -server=/yahoo.fr/127.0.0.1#5335 -ipset=/yahoo.fr/gfwlist -server=/bbcmedia.co.uk/127.0.0.1#5335 -ipset=/bbcmedia.co.uk/gfwlist +server=/ikea.com.pt/127.0.0.1#5335 +ipset=/ikea.com.pt/gfwlist server=/minirichmond.ca/127.0.0.1#5335 ipset=/minirichmond.ca/gfwlist -server=/paypal-communication.com/127.0.0.1#5335 -ipset=/paypal-communication.com/gfwlist -server=/rumah123.com/127.0.0.1#5335 -ipset=/rumah123.com/gfwlist server=/fxnetworks.com/127.0.0.1#5335 ipset=/fxnetworks.com/gfwlist -server=/icloude.com/127.0.0.1#5335 -ipset=/icloude.com/gfwlist server=/beatsbydreoutletsale.com/127.0.0.1#5335 ipset=/beatsbydreoutletsale.com/gfwlist server=/virsto.net/127.0.0.1#5335 ipset=/virsto.net/gfwlist -server=/strikinglycdn.com/127.0.0.1#5335 -ipset=/strikinglycdn.com/gfwlist -server=/sbitravelcard.com/127.0.0.1#5335 -ipset=/sbitravelcard.com/gfwlist -server=/mirrorsedge.com/127.0.0.1#5335 -ipset=/mirrorsedge.com/gfwlist +server=/gayapatal.com/127.0.0.1#5335 +ipset=/gayapatal.com/gfwlist +server=/facebooktv.org/127.0.0.1#5335 +ipset=/facebooktv.org/gfwlist server=/beatsbydrecolors.com/127.0.0.1#5335 ipset=/beatsbydrecolors.com/gfwlist -server=/disneybaby.com/127.0.0.1#5335 -ipset=/disneybaby.com/gfwlist +server=/adultgames.me/127.0.0.1#5335 +ipset=/adultgames.me/gfwlist +server=/zoo-xvideo.com/127.0.0.1#5335 +ipset=/zoo-xvideo.com/gfwlist server=/nextwork.hk/127.0.0.1#5335 ipset=/nextwork.hk/gfwlist server=/applestore.de/127.0.0.1#5335 ipset=/applestore.de/gfwlist +server=/azurecomm.net/127.0.0.1#5335 +ipset=/azurecomm.net/gfwlist +server=/adult3dfantasycomics.com/127.0.0.1#5335 +ipset=/adult3dfantasycomics.com/gfwlist server=/directvbundles.com/127.0.0.1#5335 ipset=/directvbundles.com/gfwlist -server=/xboxone.eu/127.0.0.1#5335 -ipset=/xboxone.eu/gfwlist -server=/pokemon-sunmoon.com/127.0.0.1#5335 -ipset=/pokemon-sunmoon.com/gfwlist +server=/iijav.com/127.0.0.1#5335 +ipset=/iijav.com/gfwlist server=/serialssolutions.com/127.0.0.1#5335 ipset=/serialssolutions.com/gfwlist server=/salecheaphandbags.com/127.0.0.1#5335 ipset=/salecheaphandbags.com/gfwlist -server=/aliveipc.com/127.0.0.1#5335 -ipset=/aliveipc.com/gfwlist -server=/vanish.si/127.0.0.1#5335 -ipset=/vanish.si/gfwlist +server=/vixvids.to/127.0.0.1#5335 +ipset=/vixvids.to/gfwlist server=/geeksquadcentral.com/127.0.0.1#5335 ipset=/geeksquadcentral.com/gfwlist server=/myhpsupport.com/127.0.0.1#5335 ipset=/myhpsupport.com/gfwlist server=/vipoo.es/127.0.0.1#5335 ipset=/vipoo.es/gfwlist +server=/xn--uis17aj9kmuf.com/127.0.0.1#5335 +ipset=/xn--uis17aj9kmuf.com/gfwlist server=/buycheapbeatsbus.com/127.0.0.1#5335 ipset=/buycheapbeatsbus.com/gfwlist -server=/beatsbydre-outlet.com/127.0.0.1#5335 -ipset=/beatsbydre-outlet.com/gfwlist server=/bmw-golfsport.com/127.0.0.1#5335 ipset=/bmw-golfsport.com/gfwlist -server=/hponlinehelp.com/127.0.0.1#5335 -ipset=/hponlinehelp.com/gfwlist +server=/hbo.com.edgesuite.net/127.0.0.1#5335 +ipset=/hbo.com.edgesuite.net/gfwlist server=/giratina.com/127.0.0.1#5335 ipset=/giratina.com/gfwlist server=/honawalaan.com/127.0.0.1#5335 ipset=/honawalaan.com/gfwlist -server=/behance.net/127.0.0.1#5335 -ipset=/behance.net/gfwlist -server=/brotli.org/127.0.0.1#5335 -ipset=/brotli.org/gfwlist -server=/newsamerica.com/127.0.0.1#5335 -ipset=/newsamerica.com/gfwlist +server=/thottok.com/127.0.0.1#5335 +ipset=/thottok.com/gfwlist server=/durexusa.com/127.0.0.1#5335 ipset=/durexusa.com/gfwlist -server=/customizedbeatsdre.com/127.0.0.1#5335 -ipset=/customizedbeatsdre.com/gfwlist server=/nikecdn.com/127.0.0.1#5335 ipset=/nikecdn.com/gfwlist server=/sciencedirectassets.com/127.0.0.1#5335 ipset=/sciencedirectassets.com/gfwlist -server=/medium.systems/127.0.0.1#5335 -ipset=/medium.systems/gfwlist -server=/gettyimages.de/127.0.0.1#5335 -ipset=/gettyimages.de/gfwlist -server=/hkej.com/127.0.0.1#5335 -ipset=/hkej.com/gfwlist -server=/awseducate.net/127.0.0.1#5335 -ipset=/awseducate.net/gfwlist +server=/minibrossard.com/127.0.0.1#5335 +ipset=/minibrossard.com/gfwlist +server=/paypal-online.org/127.0.0.1#5335 +ipset=/paypal-online.org/gfwlist +server=/awseducate.net/127.0.0.1#5335 +ipset=/awseducate.net/gfwlist server=/kirbysuperstarultra.com/127.0.0.1#5335 ipset=/kirbysuperstarultra.com/gfwlist -server=/ajplus.net/127.0.0.1#5335 -ipset=/ajplus.net/gfwlist -server=/muji.tw/127.0.0.1#5335 -ipset=/muji.tw/gfwlist -server=/mochajs.org/127.0.0.1#5335 -ipset=/mochajs.org/gfwlist +server=/disney.ph/127.0.0.1#5335 +ipset=/disney.ph/gfwlist server=/youtube.bh/127.0.0.1#5335 ipset=/youtube.bh/gfwlist server=/globalsign.com.sg/127.0.0.1#5335 @@ -1866,78 +1532,68 @@ server=/flipnotestudio.com/127.0.0.1#5335 ipset=/flipnotestudio.com/gfwlist server=/amazon.in/127.0.0.1#5335 ipset=/amazon.in/gfwlist -server=/omniture.com/127.0.0.1#5335 -ipset=/omniture.com/gfwlist -server=/microsoftnews.org/127.0.0.1#5335 -ipset=/microsoftnews.org/gfwlist -server=/bmwdealerdirect.com/127.0.0.1#5335 -ipset=/bmwdealerdirect.com/gfwlist -server=/mach-os.com/127.0.0.1#5335 -ipset=/mach-os.com/gfwlist -server=/mini.nl/127.0.0.1#5335 -ipset=/mini.nl/gfwlist -server=/mastercard.com.lb/127.0.0.1#5335 -ipset=/mastercard.com.lb/gfwlist -server=/bloombergindustry.com/127.0.0.1#5335 -ipset=/bloombergindustry.com/gfwlist +server=/paypal-scoop.com/127.0.0.1#5335 +ipset=/paypal-scoop.com/gfwlist +server=/vs-cmaf-pushb-ww-live.akamaized.net/127.0.0.1#5335 +ipset=/vs-cmaf-pushb-ww-live.akamaized.net/gfwlist +server=/youngpornvideos.com/127.0.0.1#5335 +ipset=/youngpornvideos.com/gfwlist +server=/yandex.co.il/127.0.0.1#5335 +ipset=/yandex.co.il/gfwlist +server=/sexyseeker.com/127.0.0.1#5335 +ipset=/sexyseeker.com/gfwlist +server=/ggjav.com/127.0.0.1#5335 +ipset=/ggjav.com/gfwlist server=/beatsbydreforyououtlet.com/127.0.0.1#5335 ipset=/beatsbydreforyououtlet.com/gfwlist -server=/canon.com.mt/127.0.0.1#5335 -ipset=/canon.com.mt/gfwlist server=/follasian.com/127.0.0.1#5335 ipset=/follasian.com/gfwlist -server=/shopminiusa.com/127.0.0.1#5335 -ipset=/shopminiusa.com/gfwlist -server=/economistgroupcareers.com/127.0.0.1#5335 -ipset=/economistgroupcareers.com/gfwlist +server=/adultdvdmarketplace.com/127.0.0.1#5335 +ipset=/adultdvdmarketplace.com/gfwlist +server=/xxxmofo.com/127.0.0.1#5335 +ipset=/xxxmofo.com/gfwlist server=/gitstar.com/127.0.0.1#5335 ipset=/gitstar.com/gfwlist -server=/drebeats-solo.com/127.0.0.1#5335 -ipset=/drebeats-solo.com/gfwlist -server=/visa.is/127.0.0.1#5335 -ipset=/visa.is/gfwlist -server=/youtubego.co.id/127.0.0.1#5335 -ipset=/youtubego.co.id/gfwlist -server=/guo.media/127.0.0.1#5335 -ipset=/guo.media/gfwlist -server=/cheapbeatsbydrefau.com/127.0.0.1#5335 -ipset=/cheapbeatsbydrefau.com/gfwlist -server=/youtube.cl/127.0.0.1#5335 -ipset=/youtube.cl/gfwlist +server=/pixtronix.com/127.0.0.1#5335 +ipset=/pixtronix.com/gfwlist +server=/redfaptube.com/127.0.0.1#5335 +ipset=/redfaptube.com/gfwlist +server=/danskpornofilm.com/127.0.0.1#5335 +ipset=/danskpornofilm.com/gfwlist +server=/smutty.com/127.0.0.1#5335 +ipset=/smutty.com/gfwlist server=/talksport.com/127.0.0.1#5335 ipset=/talksport.com/gfwlist -server=/epochtimes.se/127.0.0.1#5335 -ipset=/epochtimes.se/gfwlist -server=/alphabet.com.pt/127.0.0.1#5335 -ipset=/alphabet.com.pt/gfwlist -server=/ebayclassifiedsgroup.info/127.0.0.1#5335 -ipset=/ebayclassifiedsgroup.info/gfwlist -server=/visiontimes.com/127.0.0.1#5335 -ipset=/visiontimes.com/gfwlist -server=/applepay.tv/127.0.0.1#5335 -ipset=/applepay.tv/gfwlist +server=/latintubeporn.com/127.0.0.1#5335 +ipset=/latintubeporn.com/gfwlist +server=/analhomeporn.com/127.0.0.1#5335 +ipset=/analhomeporn.com/gfwlist +server=/coedcherry.com/127.0.0.1#5335 +ipset=/coedcherry.com/gfwlist +server=/javbraze.com/127.0.0.1#5335 +ipset=/javbraze.com/gfwlist +server=/brazzer.com/127.0.0.1#5335 +ipset=/brazzer.com/gfwlist server=/apple.co.hu/127.0.0.1#5335 ipset=/apple.co.hu/gfwlist -server=/riot.com/127.0.0.1#5335 -ipset=/riot.com/gfwlist -server=/bmw-rp.com/127.0.0.1#5335 -ipset=/bmw-rp.com/gfwlist -server=/beatsep.net/127.0.0.1#5335 -ipset=/beatsep.net/gfwlist -server=/beatsbydreol.com/127.0.0.1#5335 -ipset=/beatsbydreol.com/gfwlist -server=/g-technology.com/127.0.0.1#5335 -ipset=/g-technology.com/gfwlist +server=/hkbn.com.hk/127.0.0.1#5335 +ipset=/hkbn.com.hk/gfwlist +server=/iphone-vip1.com/127.0.0.1#5335 +ipset=/iphone-vip1.com/gfwlist +server=/vmware.com/127.0.0.1#5335 +ipset=/vmware.com/gfwlist +server=/ypmate.com/127.0.0.1#5335 +ipset=/ypmate.com/gfwlist server=/duck.co/127.0.0.1#5335 ipset=/duck.co/gfwlist server=/bmw.ca/127.0.0.1#5335 ipset=/bmw.ca/gfwlist -server=/tssp.best/127.0.0.1#5335 -ipset=/tssp.best/gfwlist -server=/beats-soaho.com/127.0.0.1#5335 -ipset=/beats-soaho.com/gfwlist -server=/bitvise.com/127.0.0.1#5335 -ipset=/bitvise.com/gfwlist +server=/researchkit.org/127.0.0.1#5335 +ipset=/researchkit.org/gfwlist +server=/cloudlive.com/127.0.0.1#5335 +ipset=/cloudlive.com/gfwlist +server=/sexygloz.com/127.0.0.1#5335 +ipset=/sexygloz.com/gfwlist server=/ciscoknowledgenetwork.com/127.0.0.1#5335 ipset=/ciscoknowledgenetwork.com/gfwlist server=/pdncommunity.com/127.0.0.1#5335 @@ -1948,72 +1604,70 @@ server=/needforspeedtimeattack.com/127.0.0.1#5335 ipset=/needforspeedtimeattack.com/gfwlist server=/worldemojiday.com/127.0.0.1#5335 ipset=/worldemojiday.com/gfwlist -server=/beatsdrdre-headphones.com/127.0.0.1#5335 -ipset=/beatsdrdre-headphones.com/gfwlist +server=/beatsfactoroutlets.com/127.0.0.1#5335 +ipset=/beatsfactoroutlets.com/gfwlist +server=/manhwahentai.me/127.0.0.1#5335 +ipset=/manhwahentai.me/gfwlist server=/nike.com.hk/127.0.0.1#5335 ipset=/nike.com.hk/gfwlist server=/spotifycdn.com/127.0.0.1#5335 ipset=/spotifycdn.com/gfwlist -server=/adelaidenow.com.au/127.0.0.1#5335 -ipset=/adelaidenow.com.au/gfwlist server=/scholar.google.com.eg/127.0.0.1#5335 ipset=/scholar.google.com.eg/gfwlist +server=/title.sh/127.0.0.1#5335 +ipset=/title.sh/gfwlist +server=/triokini.com/127.0.0.1#5335 +ipset=/triokini.com/gfwlist +server=/xxxyoungxxx.com/127.0.0.1#5335 +ipset=/xxxyoungxxx.com/gfwlist server=/visasavingsedge.ca/127.0.0.1#5335 ipset=/visasavingsedge.ca/gfwlist server=/echocdn.com/127.0.0.1#5335 ipset=/echocdn.com/gfwlist -server=/starbucks.com.bn/127.0.0.1#5335 -ipset=/starbucks.com.bn/gfwlist -server=/icloud.is/127.0.0.1#5335 -ipset=/icloud.is/gfwlist +server=/amateur-home-sex.com/127.0.0.1#5335 +ipset=/amateur-home-sex.com/gfwlist +server=/fixtracking.com/127.0.0.1#5335 +ipset=/fixtracking.com/gfwlist +server=/highwirepress.com/127.0.0.1#5335 +ipset=/highwirepress.com/gfwlist +server=/celebrityslips.com/127.0.0.1#5335 +ipset=/celebrityslips.com/gfwlist server=/nurofen.co.uk/127.0.0.1#5335 ipset=/nurofen.co.uk/gfwlist server=/disney.es/127.0.0.1#5335 ipset=/disney.es/gfwlist server=/blogspot.ug/127.0.0.1#5335 ipset=/blogspot.ug/gfwlist -server=/r10s.com/127.0.0.1#5335 -ipset=/r10s.com/gfwlist -server=/icloud.fi/127.0.0.1#5335 -ipset=/icloud.fi/gfwlist -server=/yahoomusic.com/127.0.0.1#5335 -ipset=/yahoomusic.com/gfwlist -server=/facebookdusexe.org/127.0.0.1#5335 -ipset=/facebookdusexe.org/gfwlist +server=/facebokk.com/127.0.0.1#5335 +ipset=/facebokk.com/gfwlist +server=/lezpoo.com/127.0.0.1#5335 +ipset=/lezpoo.com/gfwlist server=/sportswomanoftheyear.co.uk/127.0.0.1#5335 ipset=/sportswomanoftheyear.co.uk/gfwlist -server=/googletagmanager.com/127.0.0.1#5335 -ipset=/googletagmanager.com/gfwlist -server=/visaicsdirect.com/127.0.0.1#5335 -ipset=/visaicsdirect.com/gfwlist +server=/appbridge.io/127.0.0.1#5335 +ipset=/appbridge.io/gfwlist server=/teamneedforspeed.com/127.0.0.1#5335 ipset=/teamneedforspeed.com/gfwlist -server=/scholar.google.co.in/127.0.0.1#5335 -ipset=/scholar.google.co.in/gfwlist -server=/beatsbydressale.com/127.0.0.1#5335 -ipset=/beatsbydressale.com/gfwlist -server=/volvotrucks.be/127.0.0.1#5335 -ipset=/volvotrucks.be/gfwlist -server=/adidas.ch/127.0.0.1#5335 -ipset=/adidas.ch/gfwlist +server=/r-new-sale.blog.jp/127.0.0.1#5335 +ipset=/r-new-sale.blog.jp/gfwlist +server=/freehdinterracialporn.in/127.0.0.1#5335 +ipset=/freehdinterracialporn.in/gfwlist server=/ffmpeg.org/127.0.0.1#5335 ipset=/ffmpeg.org/gfwlist -server=/move-free.net/127.0.0.1#5335 -ipset=/move-free.net/gfwlist -server=/applewallet.tv/127.0.0.1#5335 -ipset=/applewallet.tv/gfwlist +server=/liveporngirls.com/127.0.0.1#5335 +ipset=/liveporngirls.com/gfwlist server=/mirrorsedge2.com/127.0.0.1#5335 ipset=/mirrorsedge2.com/gfwlist server=/01.org/127.0.0.1#5335 ipset=/01.org/gfwlist -server=/sony.com.br/127.0.0.1#5335 -ipset=/sony.com.br/gfwlist server=/alphabetfinance.net/127.0.0.1#5335 ipset=/alphabetfinance.net/gfwlist -server=/springer.com/127.0.0.1#5335 -ipset=/springer.com/gfwlist -server=/volvobuses.my/127.0.0.1#5335 -ipset=/volvobuses.my/gfwlist +server=/camrabbit.com/127.0.0.1#5335 +ipset=/camrabbit.com/gfwlist +server=/intel.nu/127.0.0.1#5335 +ipset=/intel.nu/gfwlist +server=/pornpaw.com/127.0.0.1#5335 +ipset=/pornpaw.com/gfwlist server=/emac.co.in/127.0.0.1#5335 ipset=/emac.co.in/gfwlist server=/altmetric.com/127.0.0.1#5335 @@ -2026,236 +1680,196 @@ server=/insiderdevtour.com/127.0.0.1#5335 ipset=/insiderdevtour.com/gfwlist server=/mastercard.ch/127.0.0.1#5335 ipset=/mastercard.ch/gfwlist -server=/bbg.gov/127.0.0.1#5335 -ipset=/bbg.gov/gfwlist +server=/libgen.fun/127.0.0.1#5335 +ipset=/libgen.fun/gfwlist server=/visa.com.ms/127.0.0.1#5335 ipset=/visa.com.ms/gfwlist server=/mucinex.cn/127.0.0.1#5335 ipset=/mucinex.cn/gfwlist -server=/java.com/127.0.0.1#5335 -ipset=/java.com/gfwlist server=/apple.xyz/127.0.0.1#5335 ipset=/apple.xyz/gfwlist server=/paypalnet.net/127.0.0.1#5335 ipset=/paypalnet.net/gfwlist -server=/javdoe.com/127.0.0.1#5335 -ipset=/javdoe.com/gfwlist -server=/applereach.com/127.0.0.1#5335 -ipset=/applereach.com/gfwlist -server=/chihair-straightener.com/127.0.0.1#5335 -ipset=/chihair-straightener.com/gfwlist +server=/hentai.toys/127.0.0.1#5335 +ipset=/hentai.toys/gfwlist +server=/privatecasting-x.com/127.0.0.1#5335 +ipset=/privatecasting-x.com/gfwlist server=/foxnewsplayer-a.akamaihd.net/127.0.0.1#5335 ipset=/foxnewsplayer-a.akamaihd.net/gfwlist server=/bellsouth.net/127.0.0.1#5335 ipset=/bellsouth.net/gfwlist -server=/cloudflarewarp.com/127.0.0.1#5335 -ipset=/cloudflarewarp.com/gfwlist -server=/indaznlab.com/127.0.0.1#5335 -ipset=/indaznlab.com/gfwlist -server=/projectapex.com/127.0.0.1#5335 -ipset=/projectapex.com/gfwlist -server=/volvotrucks.es/127.0.0.1#5335 -ipset=/volvotrucks.es/gfwlist -server=/ubisoft-orbit-savegames.s3.amazonaws.com/127.0.0.1#5335 -ipset=/ubisoft-orbit-savegames.s3.amazonaws.com/gfwlist +server=/sgp1.fun/127.0.0.1#5335 +ipset=/sgp1.fun/gfwlist +server=/bellesa.co/127.0.0.1#5335 +ipset=/bellesa.co/gfwlist +server=/tropictube.com/127.0.0.1#5335 +ipset=/tropictube.com/gfwlist +server=/virsto.com/127.0.0.1#5335 +ipset=/virsto.com/gfwlist +server=/getboxer.com/127.0.0.1#5335 +ipset=/getboxer.com/gfwlist +server=/dirty.games/127.0.0.1#5335 +ipset=/dirty.games/gfwlist server=/vfsco.nl/127.0.0.1#5335 ipset=/vfsco.nl/gfwlist -server=/herringnetwork.com/127.0.0.1#5335 -ipset=/herringnetwork.com/gfwlist -server=/monsterbeatscommunity.com/127.0.0.1#5335 -ipset=/monsterbeatscommunity.com/gfwlist -server=/cmpaas.com/127.0.0.1#5335 -ipset=/cmpaas.com/gfwlist +server=/nudes7.com/127.0.0.1#5335 +ipset=/nudes7.com/gfwlist server=/zeit-world.com/127.0.0.1#5335 ipset=/zeit-world.com/gfwlist -server=/beatsbydrecheaper.com/127.0.0.1#5335 -ipset=/beatsbydrecheaper.com/gfwlist -server=/bestbuycanada.ca/127.0.0.1#5335 -ipset=/bestbuycanada.ca/gfwlist -server=/nbc.co/127.0.0.1#5335 -ipset=/nbc.co/gfwlist -server=/yahoo.co.jp/127.0.0.1#5335 -ipset=/yahoo.co.jp/gfwlist -server=/nikeoutletstores.com/127.0.0.1#5335 -ipset=/nikeoutletstores.com/gfwlist -server=/amazon.red/127.0.0.1#5335 -ipset=/amazon.red/gfwlist -server=/mastercardacademy.com/127.0.0.1#5335 -ipset=/mastercardacademy.com/gfwlist -server=/happymeal.com.au/127.0.0.1#5335 -ipset=/happymeal.com.au/gfwlist +server=/mixvintagesex.com/127.0.0.1#5335 +ipset=/mixvintagesex.com/gfwlist +server=/fansnudes.com/127.0.0.1#5335 +ipset=/fansnudes.com/gfwlist +server=/kijij.ca/127.0.0.1#5335 +ipset=/kijij.ca/gfwlist +server=/hotstar.com/127.0.0.1#5335 +ipset=/hotstar.com/gfwlist +server=/amateurs-fuck.com/127.0.0.1#5335 +ipset=/amateurs-fuck.com/gfwlist +server=/lin.ee/127.0.0.1#5335 +ipset=/lin.ee/gfwlist +server=/l-0005.dc-msedge.net/127.0.0.1#5335 +ipset=/l-0005.dc-msedge.net/gfwlist +server=/agag.tw/127.0.0.1#5335 +ipset=/agag.tw/gfwlist server=/volvomerchandise.com/127.0.0.1#5335 ipset=/volvomerchandise.com/gfwlist -server=/intel.la/127.0.0.1#5335 -ipset=/intel.la/gfwlist -server=/wenzhao.ca/127.0.0.1#5335 -ipset=/wenzhao.ca/gfwlist -server=/bridgestonecomercial.com.ar/127.0.0.1#5335 -ipset=/bridgestonecomercial.com.ar/gfwlist -server=/myfoxhouston.com/127.0.0.1#5335 -ipset=/myfoxhouston.com/gfwlist +server=/xmoviesforyou.com/127.0.0.1#5335 +ipset=/xmoviesforyou.com/gfwlist server=/quora.com/127.0.0.1#5335 ipset=/quora.com/gfwlist server=/iop.org/127.0.0.1#5335 ipset=/iop.org/gfwlist server=/ebayvalet.com/127.0.0.1#5335 ipset=/ebayvalet.com/gfwlist -server=/blogspot.com/127.0.0.1#5335 -ipset=/blogspot.com/gfwlist server=/oculus3d.com/127.0.0.1#5335 ipset=/oculus3d.com/gfwlist -server=/aria.ms/127.0.0.1#5335 -ipset=/aria.ms/gfwlist -server=/applestore.bg/127.0.0.1#5335 -ipset=/applestore.bg/gfwlist server=/instagify.com/127.0.0.1#5335 ipset=/instagify.com/gfwlist -server=/awsthinkbox.com/127.0.0.1#5335 -ipset=/awsthinkbox.com/gfwlist -server=/asahishimbun.sc.omtrdc.net/127.0.0.1#5335 -ipset=/asahishimbun.sc.omtrdc.net/gfwlist server=/beatsbydreformall2013-nl.com/127.0.0.1#5335 ipset=/beatsbydreformall2013-nl.com/gfwlist -server=/facebooksz.com/127.0.0.1#5335 -ipset=/facebooksz.com/gfwlist -server=/paypallabs.com/127.0.0.1#5335 -ipset=/paypallabs.com/gfwlist -server=/eachpay.net/127.0.0.1#5335 -ipset=/eachpay.net/gfwlist -server=/cheapbeatsbydresale.com/127.0.0.1#5335 -ipset=/cheapbeatsbydresale.com/gfwlist +server=/oyeloca.com/127.0.0.1#5335 +ipset=/oyeloca.com/gfwlist +server=/foofle.com/127.0.0.1#5335 +ipset=/foofle.com/gfwlist +server=/directvpomise.com/127.0.0.1#5335 +ipset=/directvpomise.com/gfwlist +server=/aliverewind.com/127.0.0.1#5335 +ipset=/aliverewind.com/gfwlist +server=/cbsi.video/127.0.0.1#5335 +ipset=/cbsi.video/gfwlist server=/bmwmotorshowblog.com/127.0.0.1#5335 ipset=/bmwmotorshowblog.com/gfwlist -server=/paypal-login.org/127.0.0.1#5335 -ipset=/paypal-login.org/gfwlist +server=/b-ok.org/127.0.0.1#5335 +ipset=/b-ok.org/gfwlist +server=/xsava.xyz/127.0.0.1#5335 +ipset=/xsava.xyz/gfwlist server=/flow.org/127.0.0.1#5335 ipset=/flow.org/gfwlist -server=/espressif.com/127.0.0.1#5335 -ipset=/espressif.com/gfwlist +server=/adultepic.com/127.0.0.1#5335 +ipset=/adultepic.com/gfwlist server=/lysol.cl/127.0.0.1#5335 ipset=/lysol.cl/gfwlist -server=/adobe-video-partner-finder.com/127.0.0.1#5335 -ipset=/adobe-video-partner-finder.com/gfwlist -server=/dev-theguardian.com/127.0.0.1#5335 -ipset=/dev-theguardian.com/gfwlist -server=/dropbox-dns.com/127.0.0.1#5335 -ipset=/dropbox-dns.com/gfwlist +server=/crr.com/127.0.0.1#5335 +ipset=/crr.com/gfwlist server=/immidio.com/127.0.0.1#5335 ipset=/immidio.com/gfwlist server=/thomsonreuters.com/127.0.0.1#5335 ipset=/thomsonreuters.com/gfwlist -server=/85tube.com/127.0.0.1#5335 -ipset=/85tube.com/gfwlist -server=/fox.tv/127.0.0.1#5335 -ipset=/fox.tv/gfwlist -server=/tristatebmw.com/127.0.0.1#5335 -ipset=/tristatebmw.com/gfwlist +server=/bigboobbundle.com/127.0.0.1#5335 +ipset=/bigboobbundle.com/gfwlist server=/bmw.bs/127.0.0.1#5335 ipset=/bmw.bs/gfwlist -server=/apigee.com/127.0.0.1#5335 -ipset=/apigee.com/gfwlist -server=/marvelparty.net/127.0.0.1#5335 -ipset=/marvelparty.net/gfwlist -server=/cloupia.com/127.0.0.1#5335 -ipset=/cloupia.com/gfwlist -server=/huffingtonpost.com.mx/127.0.0.1#5335 -ipset=/huffingtonpost.com.mx/gfwlist -server=/bmw-connecteddrive.co.za/127.0.0.1#5335 -ipset=/bmw-connecteddrive.co.za/gfwlist +server=/hentaihand.com/127.0.0.1#5335 +ipset=/hentaihand.com/gfwlist +server=/macbookair.com/127.0.0.1#5335 +ipset=/macbookair.com/gfwlist server=/bloomberg.co.kr/127.0.0.1#5335 ipset=/bloomberg.co.kr/gfwlist -server=/cython.org/127.0.0.1#5335 -ipset=/cython.org/gfwlist -server=/bintray.com/127.0.0.1#5335 -ipset=/bintray.com/gfwlist +server=/mrpornlive.com/127.0.0.1#5335 +ipset=/mrpornlive.com/gfwlist +server=/bigtitangelawhite.com/127.0.0.1#5335 +ipset=/bigtitangelawhite.com/gfwlist server=/meridian.net/127.0.0.1#5335 ipset=/meridian.net/gfwlist -server=/c-span.org/127.0.0.1#5335 -ipset=/c-span.org/gfwlist +server=/erome.it/127.0.0.1#5335 +ipset=/erome.it/gfwlist server=/mediafiles-cisco.com/127.0.0.1#5335 ipset=/mediafiles-cisco.com/gfwlist +server=/hentaibar.com/127.0.0.1#5335 +ipset=/hentaibar.com/gfwlist server=/sb-telecom.net/127.0.0.1#5335 ipset=/sb-telecom.net/gfwlist server=/amiibo.com/127.0.0.1#5335 ipset=/amiibo.com/gfwlist -server=/clojure.org/127.0.0.1#5335 -ipset=/clojure.org/gfwlist -server=/riotgames.com/127.0.0.1#5335 -ipset=/riotgames.com/gfwlist -server=/python.org/127.0.0.1#5335 -ipset=/python.org/gfwlist -server=/blogspot.co.id/127.0.0.1#5335 -ipset=/blogspot.co.id/gfwlist +server=/ikea.com.do/127.0.0.1#5335 +ipset=/ikea.com.do/gfwlist +server=/youtube.ph/127.0.0.1#5335 +ipset=/youtube.ph/gfwlist server=/12diasderegalosdeitunes.com.co/127.0.0.1#5335 ipset=/12diasderegalosdeitunes.com.co/gfwlist +server=/senzuritv.net/127.0.0.1#5335 +ipset=/senzuritv.net/gfwlist server=/xn--gtvz22d.wang/127.0.0.1#5335 ipset=/xn--gtvz22d.wang/gfwlist server=/reabble.com/127.0.0.1#5335 ipset=/reabble.com/gfwlist -server=/intel-university-collaboration.net/127.0.0.1#5335 -ipset=/intel-university-collaboration.net/gfwlist -server=/matrix.org/127.0.0.1#5335 -ipset=/matrix.org/gfwlist -server=/vanishcentroamerica.com/127.0.0.1#5335 -ipset=/vanishcentroamerica.com/gfwlist +server=/bdsm123.xyz/127.0.0.1#5335 +ipset=/bdsm123.xyz/gfwlist +server=/beastythumbs.com/127.0.0.1#5335 +ipset=/beastythumbs.com/gfwlist +server=/yourcolonic.com/127.0.0.1#5335 +ipset=/yourcolonic.com/gfwlist server=/ebayshoesstore.com/127.0.0.1#5335 ipset=/ebayshoesstore.com/gfwlist -server=/epochhk.com/127.0.0.1#5335 -ipset=/epochhk.com/gfwlist -server=/gotraffic.net/127.0.0.1#5335 -ipset=/gotraffic.net/gfwlist +server=/playno1.com/127.0.0.1#5335 +ipset=/playno1.com/gfwlist +server=/applestore.com.ro/127.0.0.1#5335 +ipset=/applestore.com.ro/gfwlist server=/ebayinc.org/127.0.0.1#5335 ipset=/ebayinc.org/gfwlist server=/storage.live.com/127.0.0.1#5335 ipset=/storage.live.com/gfwlist -server=/drebeats-monsterusa.com/127.0.0.1#5335 -ipset=/drebeats-monsterusa.com/gfwlist -server=/epochtimes.com.ua/127.0.0.1#5335 -ipset=/epochtimes.com.ua/gfwlist -server=/beatsbydrebeatsby.com/127.0.0.1#5335 -ipset=/beatsbydrebeatsby.com/gfwlist -server=/billmelater.net/127.0.0.1#5335 -ipset=/billmelater.net/gfwlist -server=/abeatsbydrdre.com/127.0.0.1#5335 -ipset=/abeatsbydrdre.com/gfwlist server=/cheapcustombeatsbydre.com/127.0.0.1#5335 ipset=/cheapcustombeatsbydre.com/gfwlist server=/casquebeatsdocteurdre.com/127.0.0.1#5335 ipset=/casquebeatsdocteurdre.com/gfwlist -server=/12diasderegalosdeitunes.cl/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.cl/gfwlist -server=/drebeatsstudio2013.com/127.0.0.1#5335 -ipset=/drebeatsstudio2013.com/gfwlist +server=/ikea.com.lv/127.0.0.1#5335 +ipset=/ikea.com.lv/gfwlist server=/account-paypal.info/127.0.0.1#5335 ipset=/account-paypal.info/gfwlist server=/google.de/127.0.0.1#5335 ipset=/google.de/gfwlist +server=/evilx.su/127.0.0.1#5335 +ipset=/evilx.su/gfwlist server=/artstation.com/127.0.0.1#5335 ipset=/artstation.com/gfwlist +server=/freshscat.com/127.0.0.1#5335 +ipset=/freshscat.com/gfwlist server=/hpconnected.net/127.0.0.1#5335 ipset=/hpconnected.net/gfwlist -server=/nikeit.com/127.0.0.1#5335 -ipset=/nikeit.com/gfwlist +server=/wbvm4s.com/127.0.0.1#5335 +ipset=/wbvm4s.com/gfwlist server=/binance.com/127.0.0.1#5335 ipset=/binance.com/gfwlist server=/mini.is/127.0.0.1#5335 ipset=/mini.is/gfwlist -server=/p-events-delivery.akamaized.net/127.0.0.1#5335 -ipset=/p-events-delivery.akamaized.net/gfwlist +server=/rea-asia.com/127.0.0.1#5335 +ipset=/rea-asia.com/gfwlist server=/youtube.az/127.0.0.1#5335 ipset=/youtube.az/gfwlist server=/hacklang.org/127.0.0.1#5335 ipset=/hacklang.org/gfwlist server=/webtoons.com/127.0.0.1#5335 ipset=/webtoons.com/gfwlist -server=/microsoftnews.cc/127.0.0.1#5335 -ipset=/microsoftnews.cc/gfwlist -server=/next.com/127.0.0.1#5335 -ipset=/next.com/gfwlist -server=/smpte.org/127.0.0.1#5335 -ipset=/smpte.org/gfwlist -server=/quicktime.eu/127.0.0.1#5335 -ipset=/quicktime.eu/gfwlist +server=/volvogroup.mx/127.0.0.1#5335 +ipset=/volvogroup.mx/gfwlist +server=/myavsuper.com/127.0.0.1#5335 +ipset=/myavsuper.com/gfwlist +server=/csakporno.hu/127.0.0.1#5335 +ipset=/csakporno.hu/gfwlist +server=/animeidhentai.com/127.0.0.1#5335 +ipset=/animeidhentai.com/gfwlist server=/consul.io/127.0.0.1#5335 ipset=/consul.io/gfwlist server=/volvobuses.com.au/127.0.0.1#5335 @@ -2264,140 +1878,122 @@ server=/beatsbydrestudio.com/127.0.0.1#5335 ipset=/beatsbydrestudio.com/gfwlist server=/paypal-survey.com/127.0.0.1#5335 ipset=/paypal-survey.com/gfwlist -server=/aboutamazon.jp/127.0.0.1#5335 -ipset=/aboutamazon.jp/gfwlist server=/valuegb.com/127.0.0.1#5335 ipset=/valuegb.com/gfwlist -server=/disney.no/127.0.0.1#5335 -ipset=/disney.no/gfwlist -server=/hololens.com/127.0.0.1#5335 -ipset=/hololens.com/gfwlist +server=/world3d.biz/127.0.0.1#5335 +ipset=/world3d.biz/gfwlist +server=/yuvutu.com/127.0.0.1#5335 +ipset=/yuvutu.com/gfwlist +server=/prettynubiles.com/127.0.0.1#5335 +ipset=/prettynubiles.com/gfwlist +server=/zooporn.shiksha/127.0.0.1#5335 +ipset=/zooporn.shiksha/gfwlist server=/mastercard.com.ar/127.0.0.1#5335 ipset=/mastercard.com.ar/gfwlist +server=/xinmeitulu.com/127.0.0.1#5335 +ipset=/xinmeitulu.com/gfwlist server=/borderlessprepaid.com/127.0.0.1#5335 ipset=/borderlessprepaid.com/gfwlist server=/miraheze.org/127.0.0.1#5335 ipset=/miraheze.org/gfwlist +server=/6parknews.com/127.0.0.1#5335 +ipset=/6parknews.com/gfwlist server=/drebeatsbuy.com/127.0.0.1#5335 ipset=/drebeatsbuy.com/gfwlist -server=/headphones-outlet-online.com/127.0.0.1#5335 -ipset=/headphones-outlet-online.com/gfwlist -server=/microsoft.is/127.0.0.1#5335 -ipset=/microsoft.is/gfwlist -server=/starfox.com/127.0.0.1#5335 -ipset=/starfox.com/gfwlist server=/enpirion.com/127.0.0.1#5335 ipset=/enpirion.com/gfwlist server=/miniso.co.id/127.0.0.1#5335 ipset=/miniso.co.id/gfwlist -server=/adobeoobe.com/127.0.0.1#5335 -ipset=/adobeoobe.com/gfwlist +server=/acgfabu.com/127.0.0.1#5335 +ipset=/acgfabu.com/gfwlist +server=/date2night.xyz/127.0.0.1#5335 +ipset=/date2night.xyz/gfwlist server=/minicanada.ca/127.0.0.1#5335 ipset=/minicanada.ca/gfwlist server=/gamedownloads-rockstargames-com.akamaized.net/127.0.0.1#5335 ipset=/gamedownloads-rockstargames-com.akamaized.net/gfwlist -server=/adobeku.com/127.0.0.1#5335 -ipset=/adobeku.com/gfwlist server=/bandwagonhost.com/127.0.0.1#5335 ipset=/bandwagonhost.com/gfwlist -server=/syhacked.com/127.0.0.1#5335 -ipset=/syhacked.com/gfwlist -server=/fedoraforum.org/127.0.0.1#5335 -ipset=/fedoraforum.org/gfwlist server=/alpherafs.ca/127.0.0.1#5335 ipset=/alpherafs.ca/gfwlist -server=/facebookenespanol.com/127.0.0.1#5335 -ipset=/facebookenespanol.com/gfwlist -server=/av6k.com/127.0.0.1#5335 -ipset=/av6k.com/gfwlist -server=/foxdeportes.tv/127.0.0.1#5335 -ipset=/foxdeportes.tv/gfwlist +server=/javcdn.cc/127.0.0.1#5335 +ipset=/javcdn.cc/gfwlist server=/bridgestonecomercial.com.mx/127.0.0.1#5335 ipset=/bridgestonecomercial.com.mx/gfwlist +server=/nijie.info/127.0.0.1#5335 +ipset=/nijie.info/gfwlist server=/dkr.com/127.0.0.1#5335 ipset=/dkr.com/gfwlist -server=/paypal-excelinvoicing.com/127.0.0.1#5335 -ipset=/paypal-excelinvoicing.com/gfwlist -server=/googlecompare.co.uk/127.0.0.1#5335 -ipset=/googlecompare.co.uk/gfwlist -server=/nflxso.net/127.0.0.1#5335 -ipset=/nflxso.net/gfwlist -server=/marketingcloud.com/127.0.0.1#5335 -ipset=/marketingcloud.com/gfwlist +server=/facdebook.com/127.0.0.1#5335 +ipset=/facdebook.com/gfwlist +server=/japanxxxfilms.com/127.0.0.1#5335 +ipset=/japanxxxfilms.com/gfwlist +server=/cms-twdigitalassets.com/127.0.0.1#5335 +ipset=/cms-twdigitalassets.com/gfwlist +server=/malaypornhub.com/127.0.0.1#5335 +ipset=/malaypornhub.com/gfwlist +server=/animehentaihub.com/127.0.0.1#5335 +ipset=/animehentaihub.com/gfwlist +server=/curvybbwwives.com/127.0.0.1#5335 +ipset=/curvybbwwives.com/gfwlist server=/weareebay.com/127.0.0.1#5335 ipset=/weareebay.com/gfwlist server=/bejewled-stars.com/127.0.0.1#5335 ipset=/bejewled-stars.com/gfwlist -server=/volvotruckcenter.dk/127.0.0.1#5335 -ipset=/volvotruckcenter.dk/gfwlist -server=/visiontimes.de/127.0.0.1#5335 -ipset=/visiontimes.de/gfwlist +server=/topcuckolds.com/127.0.0.1#5335 +ipset=/topcuckolds.com/gfwlist +server=/aspbjournals.org/127.0.0.1#5335 +ipset=/aspbjournals.org/gfwlist server=/intel.com.br/127.0.0.1#5335 ipset=/intel.com.br/gfwlist -server=/bayvoice.net/127.0.0.1#5335 -ipset=/bayvoice.net/gfwlist +server=/bloombergbriefs.com/127.0.0.1#5335 +ipset=/bloombergbriefs.com/gfwlist server=/freebasics.net/127.0.0.1#5335 ipset=/freebasics.net/gfwlist -server=/needforspeedtherun.com/127.0.0.1#5335 -ipset=/needforspeedtherun.com/gfwlist -server=/aljazeera.com/127.0.0.1#5335 -ipset=/aljazeera.com/gfwlist server=/google.com.hk/127.0.0.1#5335 ipset=/google.com.hk/gfwlist server=/meetfasttrack.com/127.0.0.1#5335 ipset=/meetfasttrack.com/gfwlist -server=/vod-sub-uk-live.akamaized.net/127.0.0.1#5335 -ipset=/vod-sub-uk-live.akamaized.net/gfwlist -server=/googleapps.com/127.0.0.1#5335 -ipset=/googleapps.com/gfwlist -server=/firestone.com.br/127.0.0.1#5335 -ipset=/firestone.com.br/gfwlist -server=/tiktokv.com/127.0.0.1#5335 -ipset=/tiktokv.com/gfwlist +server=/xvideosamadoras.com/127.0.0.1#5335 +ipset=/xvideosamadoras.com/gfwlist +server=/baeb.com/127.0.0.1#5335 +ipset=/baeb.com/gfwlist +server=/macos.com.au/127.0.0.1#5335 +ipset=/macos.com.au/gfwlist server=/mastercard.com.eg/127.0.0.1#5335 ipset=/mastercard.com.eg/gfwlist server=/hpbuiltforlearning.com/127.0.0.1#5335 ipset=/hpbuiltforlearning.com/gfwlist -server=/harpercollinsspeakersbureau.com/127.0.0.1#5335 -ipset=/harpercollinsspeakersbureau.com/gfwlist +server=/clitgames.com/127.0.0.1#5335 +ipset=/clitgames.com/gfwlist server=/nikesnowboarding.com/127.0.0.1#5335 ipset=/nikesnowboarding.com/gfwlist -server=/sony.hr/127.0.0.1#5335 -ipset=/sony.hr/gfwlist -server=/dlercloud.com/127.0.0.1#5335 -ipset=/dlercloud.com/gfwlist -server=/issquareup.com/127.0.0.1#5335 -ipset=/issquareup.com/gfwlist +server=/sexvid.xxx/127.0.0.1#5335 +ipset=/sexvid.xxx/gfwlist +server=/pornogrund.com/127.0.0.1#5335 +ipset=/pornogrund.com/gfwlist +server=/pornlulu.com/127.0.0.1#5335 +ipset=/pornlulu.com/gfwlist server=/youtube.co.th/127.0.0.1#5335 ipset=/youtube.co.th/gfwlist -server=/smartcommunitiescoalition.com/127.0.0.1#5335 -ipset=/smartcommunitiescoalition.com/gfwlist -server=/jjdong7.com/127.0.0.1#5335 -ipset=/jjdong7.com/gfwlist -server=/cheapmonsterbeatsusa.us/127.0.0.1#5335 -ipset=/cheapmonsterbeatsusa.us/gfwlist -server=/epochtimes.ru/127.0.0.1#5335 -ipset=/epochtimes.ru/gfwlist -server=/directtvreviews.com/127.0.0.1#5335 -ipset=/directtvreviews.com/gfwlist -server=/nikebetterworld.com/127.0.0.1#5335 -ipset=/nikebetterworld.com/gfwlist +server=/newscommercial.co.uk/127.0.0.1#5335 +ipset=/newscommercial.co.uk/gfwlist +server=/xxxvideor.com/127.0.0.1#5335 +ipset=/xxxvideor.com/gfwlist +server=/sexinsex.net/127.0.0.1#5335 +ipset=/sexinsex.net/gfwlist +server=/daftporn.com/127.0.0.1#5335 +ipset=/daftporn.com/gfwlist server=/beatsbydreoutletscheap.com/127.0.0.1#5335 ipset=/beatsbydreoutletscheap.com/gfwlist -server=/volvotrucks.ge/127.0.0.1#5335 -ipset=/volvotrucks.ge/gfwlist server=/mini-connected.dk/127.0.0.1#5335 ipset=/mini-connected.dk/gfwlist server=/google.dm/127.0.0.1#5335 ipset=/google.dm/gfwlist -server=/vhx.tv/127.0.0.1#5335 -ipset=/vhx.tv/gfwlist -server=/adwords.com/127.0.0.1#5335 -ipset=/adwords.com/gfwlist -server=/bmw-motorrad.cl/127.0.0.1#5335 -ipset=/bmw-motorrad.cl/gfwlist -server=/kidspot.com.au/127.0.0.1#5335 -ipset=/kidspot.com.au/gfwlist +server=/starbuckscard.ph/127.0.0.1#5335 +ipset=/starbuckscard.ph/gfwlist +server=/nike.xn--hxt814e/127.0.0.1#5335 +ipset=/nike.xn--hxt814e/gfwlist server=/terapeak.com.hk/127.0.0.1#5335 ipset=/terapeak.com.hk/gfwlist server=/theverge.com/127.0.0.1#5335 @@ -2406,172 +2002,134 @@ server=/youtube.com.py/127.0.0.1#5335 ipset=/youtube.com.py/gfwlist server=/cisconetspace.info/127.0.0.1#5335 ipset=/cisconetspace.info/gfwlist -server=/paypal-database.us/127.0.0.1#5335 -ipset=/paypal-database.us/gfwlist -server=/crossmediapanel.com/127.0.0.1#5335 -ipset=/crossmediapanel.com/gfwlist -server=/bnbstatic.com/127.0.0.1#5335 -ipset=/bnbstatic.com/gfwlist -server=/salesforce.org/127.0.0.1#5335 -ipset=/salesforce.org/gfwlist +server=/youtube.co.hu/127.0.0.1#5335 +ipset=/youtube.co.hu/gfwlist +server=/xmalay.com/127.0.0.1#5335 +ipset=/xmalay.com/gfwlist +server=/wowindianporn.com/127.0.0.1#5335 +ipset=/wowindianporn.com/gfwlist server=/google.com.mx/127.0.0.1#5335 ipset=/google.com.mx/gfwlist -server=/googlecert.net/127.0.0.1#5335 -ipset=/googlecert.net/gfwlist -server=/foxsportsflorida.com/127.0.0.1#5335 -ipset=/foxsportsflorida.com/gfwlist +server=/watchmygf.to/127.0.0.1#5335 +ipset=/watchmygf.to/gfwlist server=/nikerunningshoes.com/127.0.0.1#5335 ipset=/nikerunningshoes.com/gfwlist server=/ipadaustralia.com/127.0.0.1#5335 ipset=/ipadaustralia.com/gfwlist server=/foxsports.cl/127.0.0.1#5335 ipset=/foxsports.cl/gfwlist -server=/bmw-motorrad.fr/127.0.0.1#5335 -ipset=/bmw-motorrad.fr/gfwlist server=/duckduckgo.in/127.0.0.1#5335 ipset=/duckduckgo.in/gfwlist server=/collins.co.uk/127.0.0.1#5335 ipset=/collins.co.uk/gfwlist -server=/disney.com.au/127.0.0.1#5335 -ipset=/disney.com.au/gfwlist -server=/acer.com/127.0.0.1#5335 -ipset=/acer.com/gfwlist -server=/thesundaytimes.co.uk/127.0.0.1#5335 -ipset=/thesundaytimes.co.uk/gfwlist -server=/realclear.com/127.0.0.1#5335 -ipset=/realclear.com/gfwlist -server=/google.co.uz/127.0.0.1#5335 -ipset=/google.co.uz/gfwlist -server=/durexukraine.com/127.0.0.1#5335 -ipset=/durexukraine.com/gfwlist -server=/finishinfo.com.au/127.0.0.1#5335 -ipset=/finishinfo.com.au/gfwlist -server=/bmw-connecteddrive.com.au/127.0.0.1#5335 -ipset=/bmw-connecteddrive.com.au/gfwlist -server=/stxmosquito.com/127.0.0.1#5335 -ipset=/stxmosquito.com/gfwlist -server=/bloombergtax1.com/127.0.0.1#5335 -ipset=/bloombergtax1.com/gfwlist +server=/playbar.biz/127.0.0.1#5335 +ipset=/playbar.biz/gfwlist +server=/youtube.tn/127.0.0.1#5335 +ipset=/youtube.tn/gfwlist +server=/tubepornclassic.com/127.0.0.1#5335 +ipset=/tubepornclassic.com/gfwlist +server=/amandalist.com/127.0.0.1#5335 +ipset=/amandalist.com/gfwlist +server=/allswingersclubs.org/127.0.0.1#5335 +ipset=/allswingersclubs.org/gfwlist +server=/macbook.hk/127.0.0.1#5335 +ipset=/macbook.hk/gfwlist +server=/50dh.app/127.0.0.1#5335 +ipset=/50dh.app/gfwlist server=/sony.no/127.0.0.1#5335 ipset=/sony.no/gfwlist server=/radiyoyacuvoa.com/127.0.0.1#5335 ipset=/radiyoyacuvoa.com/gfwlist -server=/www-paypal.us/127.0.0.1#5335 -ipset=/www-paypal.us/gfwlist -server=/openthread.io/127.0.0.1#5335 -ipset=/openthread.io/gfwlist +server=/pwnedpasswords.com/127.0.0.1#5335 +ipset=/pwnedpasswords.com/gfwlist +server=/intel.lk/127.0.0.1#5335 +ipset=/intel.lk/gfwlist server=/apple.bs/127.0.0.1#5335 ipset=/apple.bs/gfwlist -server=/foxweatherwatch.com/127.0.0.1#5335 -ipset=/foxweatherwatch.com/gfwlist server=/go-lang.net/127.0.0.1#5335 ipset=/go-lang.net/gfwlist -server=/ipadair.tw/127.0.0.1#5335 -ipset=/ipadair.tw/gfwlist -server=/walmart-content.com/127.0.0.1#5335 -ipset=/walmart-content.com/gfwlist +server=/banatfun.com/127.0.0.1#5335 +ipset=/banatfun.com/gfwlist +server=/johnpersons.com/127.0.0.1#5335 +ipset=/johnpersons.com/gfwlist server=/nextwork.tw/127.0.0.1#5335 ipset=/nextwork.tw/gfwlist server=/office365.com/127.0.0.1#5335 ipset=/office365.com/gfwlist -server=/pinterest.ph/127.0.0.1#5335 -ipset=/pinterest.ph/gfwlist -server=/paypal-communications.com/127.0.0.1#5335 -ipset=/paypal-communications.com/gfwlist -server=/manoramanews.com/127.0.0.1#5335 -ipset=/manoramanews.com/gfwlist -server=/bmwccrc.ca/127.0.0.1#5335 -ipset=/bmwccrc.ca/gfwlist -server=/foxsoccer.net/127.0.0.1#5335 -ipset=/foxsoccer.net/gfwlist -server=/yahoo.com.do/127.0.0.1#5335 -ipset=/yahoo.com.do/gfwlist +server=/thebankerdatabase.com/127.0.0.1#5335 +ipset=/thebankerdatabase.com/gfwlist +server=/animal-hentai.com/127.0.0.1#5335 +ipset=/animal-hentai.com/gfwlist +server=/samsungknox.com/127.0.0.1#5335 +ipset=/samsungknox.com/gfwlist +server=/veetclub.it/127.0.0.1#5335 +ipset=/veetclub.it/gfwlist server=/bmw-connecteddrive.at/127.0.0.1#5335 ipset=/bmw-connecteddrive.at/gfwlist -server=/bestbuyrewards.com/127.0.0.1#5335 -ipset=/bestbuyrewards.com/gfwlist -server=/facebooklivestaging.org/127.0.0.1#5335 -ipset=/facebooklivestaging.org/gfwlist +server=/hotstar-cdn.net/127.0.0.1#5335 +ipset=/hotstar-cdn.net/gfwlist +server=/l-0005.l-msedge.net/127.0.0.1#5335 +ipset=/l-0005.l-msedge.net/gfwlist +server=/fapster.xxx/127.0.0.1#5335 +ipset=/fapster.xxx/gfwlist +server=/d2pass.com/127.0.0.1#5335 +ipset=/d2pass.com/gfwlist server=/magentomobile.com/127.0.0.1#5335 ipset=/magentomobile.com/gfwlist -server=/softbank-ipo.com/127.0.0.1#5335 -ipset=/softbank-ipo.com/gfwlist +server=/gayvl.net/127.0.0.1#5335 +ipset=/gayvl.net/gfwlist server=/facebock.com/127.0.0.1#5335 ipset=/facebock.com/gfwlist server=/facerbooik.com/127.0.0.1#5335 ipset=/facerbooik.com/gfwlist -server=/alpherafinance.com.hk/127.0.0.1#5335 -ipset=/alpherafinance.com.hk/gfwlist -server=/mini-oman.com/127.0.0.1#5335 -ipset=/mini-oman.com/gfwlist server=/ping.pe/127.0.0.1#5335 ipset=/ping.pe/gfwlist -server=/nintendo.pt/127.0.0.1#5335 -ipset=/nintendo.pt/gfwlist -server=/dollarphotosclub.com/127.0.0.1#5335 -ipset=/dollarphotosclub.com/gfwlist +server=/camgirlstemple.com/127.0.0.1#5335 +ipset=/camgirlstemple.com/gfwlist server=/beats-bydre-mall.com/127.0.0.1#5335 ipset=/beats-bydre-mall.com/gfwlist -server=/verisign.asia/127.0.0.1#5335 -ipset=/verisign.asia/gfwlist -server=/hpdesktopcomputer.com/127.0.0.1#5335 -ipset=/hpdesktopcomputer.com/gfwlist +server=/milfsexstart.nl/127.0.0.1#5335 +ipset=/milfsexstart.nl/gfwlist +server=/machigoto.jp/127.0.0.1#5335 +ipset=/machigoto.jp/gfwlist server=/monsterbeats365buy.com/127.0.0.1#5335 ipset=/monsterbeats365buy.com/gfwlist -server=/beatsaudios.net/127.0.0.1#5335 -ipset=/beatsaudios.net/gfwlist -server=/secom.co.jp/127.0.0.1#5335 -ipset=/secom.co.jp/gfwlist -server=/skysports.ie/127.0.0.1#5335 -ipset=/skysports.ie/gfwlist -server=/scientificlinux.org/127.0.0.1#5335 -ipset=/scientificlinux.org/gfwlist +server=/newbienudes.com/127.0.0.1#5335 +ipset=/newbienudes.com/gfwlist +server=/studiofow.com/127.0.0.1#5335 +ipset=/studiofow.com/gfwlist server=/beatsheadphoness.com/127.0.0.1#5335 ipset=/beatsheadphoness.com/gfwlist server=/pyrobot.org/127.0.0.1#5335 ipset=/pyrobot.org/gfwlist -server=/researchandcare.org/127.0.0.1#5335 -ipset=/researchandcare.org/gfwlist -server=/lovebeatsdr.com/127.0.0.1#5335 -ipset=/lovebeatsdr.com/gfwlist -server=/bmw-motorcycles.vn/127.0.0.1#5335 -ipset=/bmw-motorcycles.vn/gfwlist +server=/befuck.com/127.0.0.1#5335 +ipset=/befuck.com/gfwlist +server=/bimbim.com/127.0.0.1#5335 +ipset=/bimbim.com/gfwlist +server=/yahoo.co.id/127.0.0.1#5335 +ipset=/yahoo.co.id/gfwlist server=/minisaskatoon.ca/127.0.0.1#5335 ipset=/minisaskatoon.ca/gfwlist -server=/scholar.google.cl/127.0.0.1#5335 -ipset=/scholar.google.cl/gfwlist -server=/phxbmw.com/127.0.0.1#5335 -ipset=/phxbmw.com/gfwlist +server=/macbookair.hk/127.0.0.1#5335 +ipset=/macbookair.hk/gfwlist server=/wiivc.net/127.0.0.1#5335 ipset=/wiivc.net/gfwlist -server=/hpeurope.com/127.0.0.1#5335 -ipset=/hpeurope.com/gfwlist server=/bridgestone-korea.co.kr/127.0.0.1#5335 ipset=/bridgestone-korea.co.kr/gfwlist -server=/blznav.akamaized.net/127.0.0.1#5335 -ipset=/blznav.akamaized.net/gfwlist -server=/canon.hr/127.0.0.1#5335 -ipset=/canon.hr/gfwlist +server=/bestbuy.com/127.0.0.1#5335 +ipset=/bestbuy.com/gfwlist +server=/trannyvideosxxx.com/127.0.0.1#5335 +ipset=/trannyvideosxxx.com/gfwlist server=/catalina.hk/127.0.0.1#5335 ipset=/catalina.hk/gfwlist -server=/apple.it/127.0.0.1#5335 -ipset=/apple.it/gfwlist -server=/volvobuses.ma/127.0.0.1#5335 -ipset=/volvobuses.ma/gfwlist -server=/nintendo.com.hk/127.0.0.1#5335 -ipset=/nintendo.com.hk/gfwlist -server=/shopifysvc.com/127.0.0.1#5335 -ipset=/shopifysvc.com/gfwlist +server=/lelavement.com/127.0.0.1#5335 +ipset=/lelavement.com/gfwlist +server=/udacity.com/127.0.0.1#5335 +ipset=/udacity.com/gfwlist server=/sexzy4.com/127.0.0.1#5335 ipset=/sexzy4.com/gfwlist -server=/blackboxgames.com/127.0.0.1#5335 -ipset=/blackboxgames.com/gfwlist -server=/1pondo.tv/127.0.0.1#5335 -ipset=/1pondo.tv/gfwlist -server=/xn--mts47c3w9b1qr.net/127.0.0.1#5335 -ipset=/xn--mts47c3w9b1qr.net/gfwlist -server=/scholar.google.pl/127.0.0.1#5335 -ipset=/scholar.google.pl/gfwlist +server=/spankbang1.com/127.0.0.1#5335 +ipset=/spankbang1.com/gfwlist server=/pixnet.tw/127.0.0.1#5335 ipset=/pixnet.tw/gfwlist server=/beatsbydrdrebiz.com/127.0.0.1#5335 @@ -2580,256 +2138,242 @@ server=/applecoronavirus.com/127.0.0.1#5335 ipset=/applecoronavirus.com/gfwlist server=/goodsdunk.net/127.0.0.1#5335 ipset=/goodsdunk.net/gfwlist -server=/sweetandmaxwell.co.uk/127.0.0.1#5335 -ipset=/sweetandmaxwell.co.uk/gfwlist +server=/youtube.com.pt/127.0.0.1#5335 +ipset=/youtube.com.pt/gfwlist +server=/uncams.com/127.0.0.1#5335 +ipset=/uncams.com/gfwlist server=/salesforce.com/127.0.0.1#5335 ipset=/salesforce.com/gfwlist -server=/businesswebwise.com/127.0.0.1#5335 -ipset=/businesswebwise.com/gfwlist +server=/travelex.co.nz/127.0.0.1#5335 +ipset=/travelex.co.nz/gfwlist server=/vaultproject.io/127.0.0.1#5335 ipset=/vaultproject.io/gfwlist -server=/drdreprobeatssale.com/127.0.0.1#5335 -ipset=/drdreprobeatssale.com/gfwlist +server=/cervical-exam.com/127.0.0.1#5335 +ipset=/cervical-exam.com/gfwlist server=/microsoftnewsforkids.net/127.0.0.1#5335 ipset=/microsoftnewsforkids.net/gfwlist -server=/visa.co.id/127.0.0.1#5335 -ipset=/visa.co.id/gfwlist -server=/getlantern.org/127.0.0.1#5335 -ipset=/getlantern.org/gfwlist +server=/brandporno.com/127.0.0.1#5335 +ipset=/brandporno.com/gfwlist +server=/anyhentai.com/127.0.0.1#5335 +ipset=/anyhentai.com/gfwlist server=/travelex.bh/127.0.0.1#5335 ipset=/travelex.bh/gfwlist server=/ieeer8.org/127.0.0.1#5335 ipset=/ieeer8.org/gfwlist +server=/rat.xxx/127.0.0.1#5335 +ipset=/rat.xxx/gfwlist +server=/tmdb.org/127.0.0.1#5335 +ipset=/tmdb.org/gfwlist +server=/playsexygame.com/127.0.0.1#5335 +ipset=/playsexygame.com/gfwlist server=/akacrypto.net/127.0.0.1#5335 ipset=/akacrypto.net/gfwlist -server=/static9.net.au/127.0.0.1#5335 -ipset=/static9.net.au/gfwlist +server=/atlassian.com/127.0.0.1#5335 +ipset=/atlassian.com/gfwlist server=/cheapmonstersbeatsonsale.com/127.0.0.1#5335 ipset=/cheapmonstersbeatsonsale.com/gfwlist +server=/semanticscholar.org/127.0.0.1#5335 +ipset=/semanticscholar.org/gfwlist server=/vmware20mosaic.com/127.0.0.1#5335 ipset=/vmware20mosaic.com/gfwlist -server=/bmw.lc/127.0.0.1#5335 -ipset=/bmw.lc/gfwlist -server=/volvotrucks.ma/127.0.0.1#5335 -ipset=/volvotrucks.ma/gfwlist -server=/bmw-motorrad-now-or-never.com/127.0.0.1#5335 -ipset=/bmw-motorrad-now-or-never.com/gfwlist +server=/iphonese.tv/127.0.0.1#5335 +ipset=/iphonese.tv/gfwlist server=/vfsco.ru/127.0.0.1#5335 ipset=/vfsco.ru/gfwlist server=/kubernetes.io/127.0.0.1#5335 ipset=/kubernetes.io/gfwlist -server=/bridgestonecomercial.com.co/127.0.0.1#5335 -ipset=/bridgestonecomercial.com.co/gfwlist -server=/nikeplus.com/127.0.0.1#5335 -ipset=/nikeplus.com/gfwlist -server=/intel.je/127.0.0.1#5335 -ipset=/intel.je/gfwlist -server=/devopsassessment.net/127.0.0.1#5335 -ipset=/devopsassessment.net/gfwlist +server=/eastbabes.com/127.0.0.1#5335 +ipset=/eastbabes.com/gfwlist +server=/google.sh/127.0.0.1#5335 +ipset=/google.sh/gfwlist server=/facebook.ca/127.0.0.1#5335 ipset=/facebook.ca/gfwlist -server=/yahoo.hu/127.0.0.1#5335 -ipset=/yahoo.hu/gfwlist server=/epicgames.com/127.0.0.1#5335 ipset=/epicgames.com/gfwlist server=/beatsbydrdremall.com/127.0.0.1#5335 ipset=/beatsbydrdremall.com/gfwlist -server=/bmw-tahiti.com/127.0.0.1#5335 -ipset=/bmw-tahiti.com/gfwlist -server=/drdreheadphonekey.com/127.0.0.1#5335 -ipset=/drdreheadphonekey.com/gfwlist +server=/nhncorp.jp/127.0.0.1#5335 +ipset=/nhncorp.jp/gfwlist server=/pics.ee/127.0.0.1#5335 ipset=/pics.ee/gfwlist +server=/blog.descargasgay.com/127.0.0.1#5335 +ipset=/blog.descargasgay.com/gfwlist +server=/smuttymoms.com/127.0.0.1#5335 +ipset=/smuttymoms.com/gfwlist server=/ueberamazon.de/127.0.0.1#5335 ipset=/ueberamazon.de/gfwlist server=/yahoo.pt/127.0.0.1#5335 ipset=/yahoo.pt/gfwlist -server=/yahoo.com.kw/127.0.0.1#5335 -ipset=/yahoo.com.kw/gfwlist -server=/ebay.sg/127.0.0.1#5335 -ipset=/ebay.sg/gfwlist +server=/getsexgames.com/127.0.0.1#5335 +ipset=/getsexgames.com/gfwlist +server=/investorschronicle.co.uk/127.0.0.1#5335 +ipset=/investorschronicle.co.uk/gfwlist server=/connected-drive.com/127.0.0.1#5335 ipset=/connected-drive.com/gfwlist -server=/fcaebook.com/127.0.0.1#5335 -ipset=/fcaebook.com/gfwlist server=/udemycdn.com/127.0.0.1#5335 ipset=/udemycdn.com/gfwlist server=/one.one.one/127.0.0.1#5335 ipset=/one.one.one/gfwlist -server=/cookiechoices.org/127.0.0.1#5335 -ipset=/cookiechoices.org/gfwlist +server=/nozomi.la/127.0.0.1#5335 +ipset=/nozomi.la/gfwlist server=/bloomberggovernment.com/127.0.0.1#5335 ipset=/bloomberggovernment.com/gfwlist server=/logitechg.fr/127.0.0.1#5335 ipset=/logitechg.fr/gfwlist +server=/steam.cdn.slingshot.co.nz/127.0.0.1#5335 +ipset=/steam.cdn.slingshot.co.nz/gfwlist server=/g.dev/127.0.0.1#5335 ipset=/g.dev/gfwlist -server=/quatrum.com.br/127.0.0.1#5335 -ipset=/quatrum.com.br/gfwlist -server=/nikefr.com/127.0.0.1#5335 -ipset=/nikefr.com/gfwlist -server=/pagecdn.com/127.0.0.1#5335 -ipset=/pagecdn.com/gfwlist -server=/deviantart.net/127.0.0.1#5335 -ipset=/deviantart.net/gfwlist -server=/tiltbrush.com/127.0.0.1#5335 -ipset=/tiltbrush.com/gfwlist +server=/videosection.com/127.0.0.1#5335 +ipset=/videosection.com/gfwlist +server=/mulheresafoder.com/127.0.0.1#5335 +ipset=/mulheresafoder.com/gfwlist +server=/woodmancastingx.com/127.0.0.1#5335 +ipset=/woodmancastingx.com/gfwlist server=/imac.com/127.0.0.1#5335 ipset=/imac.com/gfwlist -server=/videos-rockstargames-com.akamaized.net/127.0.0.1#5335 -ipset=/videos-rockstargames-com.akamaized.net/gfwlist +server=/cartoonporn.com/127.0.0.1#5335 +ipset=/cartoonporn.com/gfwlist +server=/bili2.cc/127.0.0.1#5335 +ipset=/bili2.cc/gfwlist server=/beatsbydresold.com/127.0.0.1#5335 ipset=/beatsbydresold.com/gfwlist -server=/powerbeats2wireless.com/127.0.0.1#5335 -ipset=/powerbeats2wireless.com/gfwlist server=/kktv.me/127.0.0.1#5335 ipset=/kktv.me/gfwlist -server=/coinonecore.com/127.0.0.1#5335 -ipset=/coinonecore.com/gfwlist -server=/minimarkham.com/127.0.0.1#5335 -ipset=/minimarkham.com/gfwlist -server=/gittigidiyorsikayet.com/127.0.0.1#5335 -ipset=/gittigidiyorsikayet.com/gfwlist +server=/phimsex47.club/127.0.0.1#5335 +ipset=/phimsex47.club/gfwlist server=/wwwwebay.com/127.0.0.1#5335 ipset=/wwwwebay.com/gfwlist server=/disneytickets.co.uk/127.0.0.1#5335 ipset=/disneytickets.co.uk/gfwlist server=/hulufree.com/127.0.0.1#5335 ipset=/hulufree.com/gfwlist +server=/wnacg.com/127.0.0.1#5335 +ipset=/wnacg.com/gfwlist +server=/ikea.pr/127.0.0.1#5335 +ipset=/ikea.pr/gfwlist server=/minispace.com/127.0.0.1#5335 ipset=/minispace.com/gfwlist +server=/cuckoldvideos.xxx/127.0.0.1#5335 +ipset=/cuckoldvideos.xxx/gfwlist +server=/opensourceinsights.dev/127.0.0.1#5335 +ipset=/opensourceinsights.dev/gfwlist server=/connectcommerce.hk/127.0.0.1#5335 ipset=/connectcommerce.hk/gfwlist -server=/dirctv.com/127.0.0.1#5335 -ipset=/dirctv.com/gfwlist server=/zohocdn.com/127.0.0.1#5335 ipset=/zohocdn.com/gfwlist server=/netflix.net/127.0.0.1#5335 ipset=/netflix.net/gfwlist -server=/dreprobeats.com/127.0.0.1#5335 -ipset=/dreprobeats.com/gfwlist +server=/pornohd.plus/127.0.0.1#5335 +ipset=/pornohd.plus/gfwlist +server=/battleforcecomix.com/127.0.0.1#5335 +ipset=/battleforcecomix.com/gfwlist server=/imgur.com/127.0.0.1#5335 ipset=/imgur.com/gfwlist -server=/bloombergmedia.com/127.0.0.1#5335 -ipset=/bloombergmedia.com/gfwlist +server=/pingguotv.xyz/127.0.0.1#5335 +ipset=/pingguotv.xyz/gfwlist server=/ipod.com.sg/127.0.0.1#5335 ipset=/ipod.com.sg/gfwlist -server=/teraperk.com/127.0.0.1#5335 -ipset=/teraperk.com/gfwlist -server=/vfsco.lt/127.0.0.1#5335 -ipset=/vfsco.lt/gfwlist -server=/aljazeera.net/127.0.0.1#5335 -ipset=/aljazeera.net/gfwlist +server=/avcens.xyz/127.0.0.1#5335 +ipset=/avcens.xyz/gfwlist +server=/pbabes.com/127.0.0.1#5335 +ipset=/pbabes.com/gfwlist server=/paypal-cash.com/127.0.0.1#5335 ipset=/paypal-cash.com/gfwlist -server=/airwick.at/127.0.0.1#5335 -ipset=/airwick.at/gfwlist +server=/pornguide.blog/127.0.0.1#5335 +ipset=/pornguide.blog/gfwlist server=/yahoo.sn/127.0.0.1#5335 ipset=/yahoo.sn/gfwlist server=/enfabebe.com.mx/127.0.0.1#5335 ipset=/enfabebe.com.mx/gfwlist -server=/firewire.eu/127.0.0.1#5335 -ipset=/firewire.eu/gfwlist +server=/massagerepublic.com/127.0.0.1#5335 +ipset=/massagerepublic.com/gfwlist server=/worldcurrencycard.co.za/127.0.0.1#5335 ipset=/worldcurrencycard.co.za/gfwlist -server=/mobileme.dk/127.0.0.1#5335 -ipset=/mobileme.dk/gfwlist server=/myvisaluxuryhotels.com/127.0.0.1#5335 ipset=/myvisaluxuryhotels.com/gfwlist +server=/erodougazo.com/127.0.0.1#5335 +ipset=/erodougazo.com/gfwlist server=/mdlf.xyz/127.0.0.1#5335 ipset=/mdlf.xyz/gfwlist -server=/eablackbox.com/127.0.0.1#5335 -ipset=/eablackbox.com/gfwlist +server=/weblive-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/weblive-hamivideo.cdn.hinet.net/gfwlist server=/bmw.bb/127.0.0.1#5335 ipset=/bmw.bb/gfwlist -server=/appule.com/127.0.0.1#5335 -ipset=/appule.com/gfwlist -server=/newscareers.co.uk/127.0.0.1#5335 -ipset=/newscareers.co.uk/gfwlist -server=/bmwgroup-plants.com/127.0.0.1#5335 -ipset=/bmwgroup-plants.com/gfwlist +server=/pornhubs.video/127.0.0.1#5335 +ipset=/pornhubs.video/gfwlist +server=/fivestarpornsites.com/127.0.0.1#5335 +ipset=/fivestarpornsites.com/gfwlist +server=/avhd101.com/127.0.0.1#5335 +ipset=/avhd101.com/gfwlist +server=/tnaflix.com/127.0.0.1#5335 +ipset=/tnaflix.com/gfwlist server=/google.nr/127.0.0.1#5335 ipset=/google.nr/gfwlist -server=/ntdtv.org/127.0.0.1#5335 -ipset=/ntdtv.org/gfwlist server=/applepay.hamburg/127.0.0.1#5335 ipset=/applepay.hamburg/gfwlist -server=/wwwmfacebook.com/127.0.0.1#5335 -ipset=/wwwmfacebook.com/gfwlist +server=/kampalaexclusiveescorts.com/127.0.0.1#5335 +ipset=/kampalaexclusiveescorts.com/gfwlist server=/pp-soc.com/127.0.0.1#5335 ipset=/pp-soc.com/gfwlist -server=/edu-research.org/127.0.0.1#5335 -ipset=/edu-research.org/gfwlist -server=/bridgestone-bandag.com/127.0.0.1#5335 -ipset=/bridgestone-bandag.com/gfwlist -server=/watchjavonline.com/127.0.0.1#5335 -ipset=/watchjavonline.com/gfwlist +server=/steamdb.info/127.0.0.1#5335 +ipset=/steamdb.info/gfwlist +server=/apple.cz/127.0.0.1#5335 +ipset=/apple.cz/gfwlist server=/visa.com.lc/127.0.0.1#5335 ipset=/visa.com.lc/gfwlist -server=/starbuckscardb2b.com/127.0.0.1#5335 -ipset=/starbuckscardb2b.com/gfwlist -server=/love7.xyz/127.0.0.1#5335 -ipset=/love7.xyz/gfwlist +server=/certinomis.com/127.0.0.1#5335 +ipset=/certinomis.com/gfwlist server=/awsbraket.com/127.0.0.1#5335 ipset=/awsbraket.com/gfwlist -server=/dart.dev/127.0.0.1#5335 -ipset=/dart.dev/gfwlist -server=/google.com.ar/127.0.0.1#5335 -ipset=/google.com.ar/gfwlist -server=/shopee.co.th/127.0.0.1#5335 -ipset=/shopee.co.th/gfwlist -server=/facebookck.com/127.0.0.1#5335 -ipset=/facebookck.com/gfwlist +server=/animesexhq.com/127.0.0.1#5335 +ipset=/animesexhq.com/gfwlist +server=/monsterbeatstang.com/127.0.0.1#5335 +ipset=/monsterbeatstang.com/gfwlist +server=/hentai2w.com/127.0.0.1#5335 +ipset=/hentai2w.com/gfwlist +server=/evemodels.com/127.0.0.1#5335 +ipset=/evemodels.com/gfwlist server=/porntea.com/127.0.0.1#5335 ipset=/porntea.com/gfwlist -server=/travelex.co.jp/127.0.0.1#5335 -ipset=/travelex.co.jp/gfwlist -server=/yahoo.md/127.0.0.1#5335 -ipset=/yahoo.md/gfwlist +server=/cloudflare-quic.com/127.0.0.1#5335 +ipset=/cloudflare-quic.com/gfwlist server=/disney-plus.net/127.0.0.1#5335 ipset=/disney-plus.net/gfwlist +server=/line-apps-rc.com/127.0.0.1#5335 +ipset=/line-apps-rc.com/gfwlist server=/cambridge.org/127.0.0.1#5335 ipset=/cambridge.org/gfwlist -server=/mono-project.com/127.0.0.1#5335 -ipset=/mono-project.com/gfwlist -server=/facebooa.com/127.0.0.1#5335 -ipset=/facebooa.com/gfwlist +server=/inside.com.tw/127.0.0.1#5335 +ipset=/inside.com.tw/gfwlist server=/ichat.co.in/127.0.0.1#5335 ipset=/ichat.co.in/gfwlist server=/kannewyork.com/127.0.0.1#5335 ipset=/kannewyork.com/gfwlist -server=/rokutime.com/127.0.0.1#5335 -ipset=/rokutime.com/gfwlist server=/alphabet.mx/127.0.0.1#5335 ipset=/alphabet.mx/gfwlist server=/cdkworkshop.com/127.0.0.1#5335 ipset=/cdkworkshop.com/gfwlist -server=/rtings.com/127.0.0.1#5335 -ipset=/rtings.com/gfwlist -server=/compass.is/127.0.0.1#5335 -ipset=/compass.is/gfwlist -server=/xn--tkry91n.com/127.0.0.1#5335 -ipset=/xn--tkry91n.com/gfwlist +server=/5fang.cc/127.0.0.1#5335 +ipset=/5fang.cc/gfwlist +server=/tctsx28d.xyz/127.0.0.1#5335 +ipset=/tctsx28d.xyz/gfwlist +server=/escortdude.com/127.0.0.1#5335 +ipset=/escortdude.com/gfwlist +server=/ksyp10.com/127.0.0.1#5335 +ipset=/ksyp10.com/gfwlist server=/mini.com.cy/127.0.0.1#5335 ipset=/mini.com.cy/gfwlist -server=/eporner.com/127.0.0.1#5335 -ipset=/eporner.com/gfwlist server=/volvobuses.om/127.0.0.1#5335 ipset=/volvobuses.om/gfwlist -server=/faceid99.net/127.0.0.1#5335 -ipset=/faceid99.net/gfwlist +server=/enemanozzle.info/127.0.0.1#5335 +ipset=/enemanozzle.info/gfwlist server=/alphera.com.es/127.0.0.1#5335 ipset=/alphera.com.es/gfwlist -server=/pearsonelt.com/127.0.0.1#5335 -ipset=/pearsonelt.com/gfwlist -server=/visa.ie/127.0.0.1#5335 -ipset=/visa.ie/gfwlist server=/hpcontinuum.com/127.0.0.1#5335 ipset=/hpcontinuum.com/gfwlist -server=/beatsbydrdresale.net/127.0.0.1#5335 -ipset=/beatsbydrdresale.net/gfwlist -server=/mini.co.id/127.0.0.1#5335 -ipset=/mini.co.id/gfwlist +server=/audiencenetwork.tv/127.0.0.1#5335 +ipset=/audiencenetwork.tv/gfwlist server=/yahoo.com.bd/127.0.0.1#5335 ipset=/yahoo.com.bd/gfwlist server=/ebayinkblog.com/127.0.0.1#5335 @@ -2838,142 +2382,114 @@ server=/govforce.com/127.0.0.1#5335 ipset=/govforce.com/gfwlist server=/awssecworkshops.com/127.0.0.1#5335 ipset=/awssecworkshops.com/gfwlist -server=/appleiservices.com/127.0.0.1#5335 -ipset=/appleiservices.com/gfwlist -server=/fireemblemawakening.com/127.0.0.1#5335 -ipset=/fireemblemawakening.com/gfwlist +server=/bmw-art-journey.com/127.0.0.1#5335 +ipset=/bmw-art-journey.com/gfwlist +server=/omniroot.com/127.0.0.1#5335 +ipset=/omniroot.com/gfwlist server=/swiftfinancial.net/127.0.0.1#5335 ipset=/swiftfinancial.net/gfwlist server=/imdb.to/127.0.0.1#5335 ipset=/imdb.to/gfwlist -server=/telega.one/127.0.0.1#5335 -ipset=/telega.one/gfwlist -server=/2013cheapestbeats.com/127.0.0.1#5335 -ipset=/2013cheapestbeats.com/gfwlist +server=/jsbridgestone.com/127.0.0.1#5335 +ipset=/jsbridgestone.com/gfwlist server=/mcdelivery.co.id/127.0.0.1#5335 ipset=/mcdelivery.co.id/gfwlist -server=/twitter.jp/127.0.0.1#5335 -ipset=/twitter.jp/gfwlist -server=/cbsaavideo.com/127.0.0.1#5335 -ipset=/cbsaavideo.com/gfwlist -server=/google.cat/127.0.0.1#5335 -ipset=/google.cat/gfwlist +server=/thismon.ee/127.0.0.1#5335 +ipset=/thismon.ee/gfwlist +server=/quickoffice.com/127.0.0.1#5335 +ipset=/quickoffice.com/gfwlist server=/facebook.wang/127.0.0.1#5335 ipset=/facebook.wang/gfwlist -server=/dazn-api.com/127.0.0.1#5335 -ipset=/dazn-api.com/gfwlist +server=/free64all.com/127.0.0.1#5335 +ipset=/free64all.com/gfwlist server=/ebaysocial.ru/127.0.0.1#5335 ipset=/ebaysocial.ru/gfwlist -server=/v2ray.com/127.0.0.1#5335 -ipset=/v2ray.com/gfwlist server=/vanish.com.tr/127.0.0.1#5335 ipset=/vanish.com.tr/gfwlist server=/quicinc.com/127.0.0.1#5335 ipset=/quicinc.com/gfwlist -server=/mastercard.lu/127.0.0.1#5335 -ipset=/mastercard.lu/gfwlist -server=/fbrpms.com/127.0.0.1#5335 -ipset=/fbrpms.com/gfwlist -server=/azure-dns.org/127.0.0.1#5335 -ipset=/azure-dns.org/gfwlist server=/pinterest.be/127.0.0.1#5335 ipset=/pinterest.be/gfwlist -server=/fontbook.com/127.0.0.1#5335 -ipset=/fontbook.com/gfwlist +server=/filmesporno.com.br/127.0.0.1#5335 +ipset=/filmesporno.com.br/gfwlist +server=/hsprepack.akamaized.net/127.0.0.1#5335 +ipset=/hsprepack.akamaized.net/gfwlist server=/verisign.net/127.0.0.1#5335 ipset=/verisign.net/gfwlist -server=/bmw-connecteddrive.mx/127.0.0.1#5335 -ipset=/bmw-connecteddrive.mx/gfwlist +server=/mhhanman.xyz/127.0.0.1#5335 +ipset=/mhhanman.xyz/gfwlist server=/bmwarchiv.at/127.0.0.1#5335 ipset=/bmwarchiv.at/gfwlist -server=/fox.com/127.0.0.1#5335 -ipset=/fox.com/gfwlist +server=/hxc10.vip/127.0.0.1#5335 +ipset=/hxc10.vip/gfwlist +server=/famous-nudes.com/127.0.0.1#5335 +ipset=/famous-nudes.com/gfwlist server=/aavs.xyz/127.0.0.1#5335 ipset=/aavs.xyz/gfwlist server=/bestbuycanada.com/127.0.0.1#5335 ipset=/bestbuycanada.com/gfwlist server=/bmw-connecteddrive.dk/127.0.0.1#5335 ipset=/bmw-connecteddrive.dk/gfwlist +server=/escort.guide/127.0.0.1#5335 +ipset=/escort.guide/gfwlist server=/scholar.google.es/127.0.0.1#5335 ipset=/scholar.google.es/gfwlist server=/igoogle.com/127.0.0.1#5335 ipset=/igoogle.com/gfwlist -server=/ntdtv.ca/127.0.0.1#5335 -ipset=/ntdtv.ca/gfwlist +server=/apple.no/127.0.0.1#5335 +ipset=/apple.no/gfwlist server=/ggoogle.com/127.0.0.1#5335 ipset=/ggoogle.com/gfwlist -server=/ebaymotors.org/127.0.0.1#5335 -ipset=/ebaymotors.org/gfwlist -server=/imperialbusiness.school/127.0.0.1#5335 -ipset=/imperialbusiness.school/gfwlist server=/applecard.tv/127.0.0.1#5335 ipset=/applecard.tv/gfwlist -server=/vox.com/127.0.0.1#5335 -ipset=/vox.com/gfwlist -server=/n3ro.wtf/127.0.0.1#5335 -ipset=/n3ro.wtf/gfwlist server=/epicreads.com/127.0.0.1#5335 ipset=/epicreads.com/gfwlist server=/minivalueservice.com/127.0.0.1#5335 ipset=/minivalueservice.com/gfwlist server=/heroesofthestorm.com/127.0.0.1#5335 ipset=/heroesofthestorm.com/gfwlist -server=/sectigo.com/127.0.0.1#5335 -ipset=/sectigo.com/gfwlist -server=/acer-group.com/127.0.0.1#5335 -ipset=/acer-group.com/gfwlist -server=/drebeatspill.com/127.0.0.1#5335 -ipset=/drebeatspill.com/gfwlist +server=/xnxxhamster.net/127.0.0.1#5335 +ipset=/xnxxhamster.net/gfwlist +server=/blogspot.com.uy/127.0.0.1#5335 +ipset=/blogspot.com.uy/gfwlist server=/xeon.com/127.0.0.1#5335 ipset=/xeon.com/gfwlist -server=/bmw.mn/127.0.0.1#5335 -ipset=/bmw.mn/gfwlist +server=/101xxx.xyz/127.0.0.1#5335 +ipset=/101xxx.xyz/gfwlist server=/adobetechcommcallback.com/127.0.0.1#5335 ipset=/adobetechcommcallback.com/gfwlist server=/pinterest.com.py/127.0.0.1#5335 ipset=/pinterest.com.py/gfwlist -server=/yandex.lt/127.0.0.1#5335 -ipset=/yandex.lt/gfwlist -server=/stxmosquitoproject.org/127.0.0.1#5335 -ipset=/stxmosquitoproject.org/gfwlist -server=/hppage5000.com/127.0.0.1#5335 -ipset=/hppage5000.com/gfwlist +server=/topmanga.biz/127.0.0.1#5335 +ipset=/topmanga.biz/gfwlist +server=/efuckt.com/127.0.0.1#5335 +ipset=/efuckt.com/gfwlist server=/blinkload.zone/127.0.0.1#5335 ipset=/blinkload.zone/gfwlist -server=/clickserver.googleads.com/127.0.0.1#5335 -ipset=/clickserver.googleads.com/gfwlist -server=/ipod.no/127.0.0.1#5335 -ipset=/ipod.no/gfwlist +server=/mybabehotz.com/127.0.0.1#5335 +ipset=/mybabehotz.com/gfwlist server=/apple.de/127.0.0.1#5335 ipset=/apple.de/gfwlist -server=/singtaobooks.com/127.0.0.1#5335 -ipset=/singtaobooks.com/gfwlist -server=/marketexecutive.net/127.0.0.1#5335 -ipset=/marketexecutive.net/gfwlist server=/pinterest.com.uy/127.0.0.1#5335 ipset=/pinterest.com.uy/gfwlist server=/voaportugues.com/127.0.0.1#5335 ipset=/voaportugues.com/gfwlist server=/cursecdn.com/127.0.0.1#5335 ipset=/cursecdn.com/gfwlist -server=/starwars.com/127.0.0.1#5335 -ipset=/starwars.com/gfwlist -server=/camwhores.tv/127.0.0.1#5335 -ipset=/camwhores.tv/gfwlist -server=/embs.org/127.0.0.1#5335 -ipset=/embs.org/gfwlist server=/annstores.net/127.0.0.1#5335 ipset=/annstores.net/gfwlist server=/wolfatbestbuy.com/127.0.0.1#5335 ipset=/wolfatbestbuy.com/gfwlist server=/applepay.hk/127.0.0.1#5335 ipset=/applepay.hk/gfwlist -server=/paypal-media.com/127.0.0.1#5335 -ipset=/paypal-media.com/gfwlist +server=/xn--80aaazx1an0a.lol/127.0.0.1#5335 +ipset=/xn--80aaazx1an0a.lol/gfwlist server=/s-msn.com/127.0.0.1#5335 ipset=/s-msn.com/gfwlist -server=/disney-studio.com/127.0.0.1#5335 -ipset=/disney-studio.com/gfwlist +server=/feet9.com/127.0.0.1#5335 +ipset=/feet9.com/gfwlist +server=/ioinformatics.org/127.0.0.1#5335 +ipset=/ioinformatics.org/gfwlist server=/themessengeradelaide.com.au/127.0.0.1#5335 ipset=/themessengeradelaide.com.au/gfwlist server=/exploreintel.com/127.0.0.1#5335 @@ -2984,106 +2500,70 @@ server=/scholar.google.co.ve/127.0.0.1#5335 ipset=/scholar.google.co.ve/gfwlist server=/alphabet.com.es/127.0.0.1#5335 ipset=/alphabet.com.es/gfwlist -server=/wheelpop.com/127.0.0.1#5335 -ipset=/wheelpop.com/gfwlist -server=/softbankci.com/127.0.0.1#5335 -ipset=/softbankci.com/gfwlist -server=/wikimediacloud.org/127.0.0.1#5335 -ipset=/wikimediacloud.org/gfwlist -server=/beatssbydredanmark.com/127.0.0.1#5335 -ipset=/beatssbydredanmark.com/gfwlist +server=/akamainewzealand.com/127.0.0.1#5335 +ipset=/akamainewzealand.com/gfwlist server=/buzzardflapper.com/127.0.0.1#5335 ipset=/buzzardflapper.com/gfwlist -server=/bugzilla.org/127.0.0.1#5335 -ipset=/bugzilla.org/gfwlist -server=/bgov.com/127.0.0.1#5335 -ipset=/bgov.com/gfwlist -server=/poshtestgallery.com/127.0.0.1#5335 -ipset=/poshtestgallery.com/gfwlist -server=/airport-gov-cn.com/127.0.0.1#5335 -ipset=/airport-gov-cn.com/gfwlist +server=/honestpornreviews.com/127.0.0.1#5335 +ipset=/honestpornreviews.com/gfwlist +server=/amateurporndump.com/127.0.0.1#5335 +ipset=/amateurporndump.com/gfwlist +server=/amebame.com/127.0.0.1#5335 +ipset=/amebame.com/gfwlist server=/line-apps.com/127.0.0.1#5335 ipset=/line-apps.com/gfwlist -server=/mspairlift.com/127.0.0.1#5335 -ipset=/mspairlift.com/gfwlist -server=/riotgames.tv/127.0.0.1#5335 -ipset=/riotgames.tv/gfwlist server=/camelphat.com/127.0.0.1#5335 ipset=/camelphat.com/gfwlist -server=/ankarazirvesi2018.com/127.0.0.1#5335 -ipset=/ankarazirvesi2018.com/gfwlist server=/techatbloomberg.com/127.0.0.1#5335 ipset=/techatbloomberg.com/gfwlist server=/winhec.com/127.0.0.1#5335 ipset=/winhec.com/gfwlist -server=/bmw-motorrad-authorities.com/127.0.0.1#5335 -ipset=/bmw-motorrad-authorities.com/gfwlist -server=/sony.kz/127.0.0.1#5335 -ipset=/sony.kz/gfwlist -server=/hdrplusdata.org/127.0.0.1#5335 -ipset=/hdrplusdata.org/gfwlist -server=/volvo.se/127.0.0.1#5335 -ipset=/volvo.se/gfwlist -server=/ebayhabit.com/127.0.0.1#5335 -ipset=/ebayhabit.com/gfwlist -server=/torcidadeouro.com/127.0.0.1#5335 -ipset=/torcidadeouro.com/gfwlist -server=/facebookhome.info/127.0.0.1#5335 -ipset=/facebookhome.info/gfwlist +server=/hotgirl.asia/127.0.0.1#5335 +ipset=/hotgirl.asia/gfwlist +server=/pvt.sexy/127.0.0.1#5335 +ipset=/pvt.sexy/gfwlist +server=/animestigma.com/127.0.0.1#5335 +ipset=/animestigma.com/gfwlist +server=/google.bt/127.0.0.1#5335 +ipset=/google.bt/gfwlist server=/becomeindex.com/127.0.0.1#5335 ipset=/becomeindex.com/gfwlist -server=/pinterest.engineering/127.0.0.1#5335 -ipset=/pinterest.engineering/gfwlist server=/disney.dk/127.0.0.1#5335 ipset=/disney.dk/gfwlist server=/videobreakdown.com/127.0.0.1#5335 ipset=/videobreakdown.com/gfwlist -server=/paypal-prepagata.net/127.0.0.1#5335 -ipset=/paypal-prepagata.net/gfwlist +server=/oculus.com/127.0.0.1#5335 +ipset=/oculus.com/gfwlist +server=/joyhentai.com/127.0.0.1#5335 +ipset=/joyhentai.com/gfwlist server=/apple.at/127.0.0.1#5335 ipset=/apple.at/gfwlist -server=/wzmyg.com/127.0.0.1#5335 -ipset=/wzmyg.com/gfwlist server=/experience-vmware.com/127.0.0.1#5335 ipset=/experience-vmware.com/gfwlist -server=/monsterbeats-solo.net/127.0.0.1#5335 -ipset=/monsterbeats-solo.net/gfwlist +server=/nvidiaforhp.com/127.0.0.1#5335 +ipset=/nvidiaforhp.com/gfwlist server=/facebookphotos.com/127.0.0.1#5335 ipset=/facebookphotos.com/gfwlist -server=/eaaccess.com/127.0.0.1#5335 -ipset=/eaaccess.com/gfwlist -server=/comodoca2.com/127.0.0.1#5335 -ipset=/comodoca2.com/gfwlist server=/mini-connected.ie/127.0.0.1#5335 ipset=/mini-connected.ie/gfwlist -server=/visa.se/127.0.0.1#5335 -ipset=/visa.se/gfwlist -server=/hp-webplatform.com/127.0.0.1#5335 -ipset=/hp-webplatform.com/gfwlist server=/visacheckout.net/127.0.0.1#5335 ipset=/visacheckout.net/gfwlist +server=/zweiporn.com/127.0.0.1#5335 +ipset=/zweiporn.com/gfwlist server=/airport.com/127.0.0.1#5335 ipset=/airport.com/gfwlist -server=/beatfactoryoutlets.com/127.0.0.1#5335 -ipset=/beatfactoryoutlets.com/gfwlist +server=/buyaapl.com/127.0.0.1#5335 +ipset=/buyaapl.com/gfwlist server=/realcleardefense.com/127.0.0.1#5335 ipset=/realcleardefense.com/gfwlist server=/maktoob.com/127.0.0.1#5335 ipset=/maktoob.com/gfwlist -server=/openwrt.org/127.0.0.1#5335 -ipset=/openwrt.org/gfwlist -server=/nikegrid.com/127.0.0.1#5335 -ipset=/nikegrid.com/gfwlist -server=/tuta.io/127.0.0.1#5335 -ipset=/tuta.io/gfwlist -server=/paaypal.com/127.0.0.1#5335 -ipset=/paaypal.com/gfwlist +server=/linefriends.com.tw/127.0.0.1#5335 +ipset=/linefriends.com.tw/gfwlist server=/ebaytopratedseller.net/127.0.0.1#5335 ipset=/ebaytopratedseller.net/gfwlist -server=/naiadsystems.com/127.0.0.1#5335 -ipset=/naiadsystems.com/gfwlist -server=/hpusertraining.com/127.0.0.1#5335 -ipset=/hpusertraining.com/gfwlist +server=/database.asahi.com/127.0.0.1#5335 +ipset=/database.asahi.com/gfwlist server=/analytictech.com/127.0.0.1#5335 ipset=/analytictech.com/gfwlist server=/foxsportsworld.com/127.0.0.1#5335 @@ -3092,22 +2572,26 @@ server=/avgle.com/127.0.0.1#5335 ipset=/avgle.com/gfwlist server=/ixquick.com/127.0.0.1#5335 ipset=/ixquick.com/gfwlist -server=/volvobuses.ch/127.0.0.1#5335 -ipset=/volvobuses.ch/gfwlist -server=/ebayimg.com/127.0.0.1#5335 -ipset=/ebayimg.com/gfwlist +server=/backroomcastingcouch.com/127.0.0.1#5335 +ipset=/backroomcastingcouch.com/gfwlist +server=/xknoop.com/127.0.0.1#5335 +ipset=/xknoop.com/gfwlist +server=/canon.lu/127.0.0.1#5335 +ipset=/canon.lu/gfwlist +server=/nikerunner.com/127.0.0.1#5335 +ipset=/nikerunner.com/gfwlist server=/registerhulu.com/127.0.0.1#5335 ipset=/registerhulu.com/gfwlist -server=/ok.ru/127.0.0.1#5335 -ipset=/ok.ru/gfwlist +server=/yandex.com.ge/127.0.0.1#5335 +ipset=/yandex.com.ge/gfwlist server=/durex.ru/127.0.0.1#5335 ipset=/durex.ru/gfwlist +server=/wisekey.com.hk/127.0.0.1#5335 +ipset=/wisekey.com.hk/gfwlist server=/volvotrucks.ch/127.0.0.1#5335 ipset=/volvotrucks.ch/gfwlist -server=/bmw-motorrad.co.za/127.0.0.1#5335 -ipset=/bmw-motorrad.co.za/gfwlist -server=/lolpcs.com/127.0.0.1#5335 -ipset=/lolpcs.com/gfwlist +server=/detaliczny.com/127.0.0.1#5335 +ipset=/detaliczny.com/gfwlist server=/visa.co.ao/127.0.0.1#5335 ipset=/visa.co.ao/gfwlist server=/dreamtoplay.com/127.0.0.1#5335 @@ -3118,378 +2602,338 @@ server=/buydrdrebeatbox.com/127.0.0.1#5335 ipset=/buydrdrebeatbox.com/gfwlist server=/tryfunctions.com/127.0.0.1#5335 ipset=/tryfunctions.com/gfwlist -server=/disney.com.br/127.0.0.1#5335 -ipset=/disney.com.br/gfwlist +server=/scoregroup.com/127.0.0.1#5335 +ipset=/scoregroup.com/gfwlist server=/pypl.info/127.0.0.1#5335 ipset=/pypl.info/gfwlist +server=/nlsexfilmpjes.com/127.0.0.1#5335 +ipset=/nlsexfilmpjes.com/gfwlist server=/family.co.jp/127.0.0.1#5335 ipset=/family.co.jp/gfwlist server=/finish.com.tr/127.0.0.1#5335 ipset=/finish.com.tr/gfwlist -server=/nbcuni.com/127.0.0.1#5335 -ipset=/nbcuni.com/gfwlist -server=/account-paypal.org/127.0.0.1#5335 -ipset=/account-paypal.org/gfwlist +server=/porndiscount.org/127.0.0.1#5335 +ipset=/porndiscount.org/gfwlist +server=/ds-vod-abematv.akamaized.net/127.0.0.1#5335 +ipset=/ds-vod-abematv.akamaized.net/gfwlist +server=/ikea.at/127.0.0.1#5335 +ipset=/ikea.at/gfwlist server=/altera.com/127.0.0.1#5335 ipset=/altera.com/gfwlist -server=/ubisoft.com/127.0.0.1#5335 -ipset=/ubisoft.com/gfwlist -server=/voasomali.com/127.0.0.1#5335 -ipset=/voasomali.com/gfwlist -server=/audiobeatsbydre.com/127.0.0.1#5335 -ipset=/audiobeatsbydre.com/gfwlist -server=/beatsbydreonlie2013-nl.com/127.0.0.1#5335 -ipset=/beatsbydreonlie2013-nl.com/gfwlist -server=/xboxab.com/127.0.0.1#5335 -ipset=/xboxab.com/gfwlist +server=/xhamster.desi/127.0.0.1#5335 +ipset=/xhamster.desi/gfwlist +server=/scholar.google.fr/127.0.0.1#5335 +ipset=/scholar.google.fr/gfwlist +server=/wolterskluwer.com/127.0.0.1#5335 +ipset=/wolterskluwer.com/gfwlist +server=/youskbe.com/127.0.0.1#5335 +ipset=/youskbe.com/gfwlist +server=/cameraboys.com/127.0.0.1#5335 +ipset=/cameraboys.com/gfwlist server=/intel.ar/127.0.0.1#5335 ipset=/intel.ar/gfwlist -server=/fox23maine.com/127.0.0.1#5335 -ipset=/fox23maine.com/gfwlist -server=/youtube.mx/127.0.0.1#5335 -ipset=/youtube.mx/gfwlist server=/bmw-connecteddrive.nl/127.0.0.1#5335 ipset=/bmw-connecteddrive.nl/gfwlist server=/google.com.cu/127.0.0.1#5335 ipset=/google.com.cu/gfwlist -server=/xhamster.com/127.0.0.1#5335 -ipset=/xhamster.com/gfwlist +server=/paypal-survey.org/127.0.0.1#5335 +ipset=/paypal-survey.org/gfwlist server=/nikehyperdunk.com/127.0.0.1#5335 ipset=/nikehyperdunk.com/gfwlist server=/ieeenano.org/127.0.0.1#5335 ipset=/ieeenano.org/gfwlist -server=/ltn.com.tw/127.0.0.1#5335 -ipset=/ltn.com.tw/gfwlist -server=/calgonit.com/127.0.0.1#5335 -ipset=/calgonit.com/gfwlist +server=/monstercockland.com/127.0.0.1#5335 +ipset=/monstercockland.com/gfwlist server=/shopee.com.my/127.0.0.1#5335 ipset=/shopee.com.my/gfwlist -server=/sonypcl.jp/127.0.0.1#5335 -ipset=/sonypcl.jp/gfwlist -server=/paypalhere.tv/127.0.0.1#5335 -ipset=/paypalhere.tv/gfwlist -server=/blogspot.ro/127.0.0.1#5335 -ipset=/blogspot.ro/gfwlist +server=/volvotrucks.com.kw/127.0.0.1#5335 +ipset=/volvotrucks.com.kw/gfwlist +server=/my-enema.com/127.0.0.1#5335 +ipset=/my-enema.com/gfwlist server=/vanish.it/127.0.0.1#5335 ipset=/vanish.it/gfwlist -server=/bmwconnecteddrive.com/127.0.0.1#5335 -ipset=/bmwconnecteddrive.com/gfwlist +server=/social.com/127.0.0.1#5335 +ipset=/social.com/gfwlist server=/scholar.google.hu/127.0.0.1#5335 ipset=/scholar.google.hu/gfwlist -server=/canon.cz/127.0.0.1#5335 -ipset=/canon.cz/gfwlist -server=/dajiyuan.eu/127.0.0.1#5335 -ipset=/dajiyuan.eu/gfwlist -server=/vod-thumb-uk-live.akamaized.net/127.0.0.1#5335 -ipset=/vod-thumb-uk-live.akamaized.net/gfwlist -server=/yahoo.gr/127.0.0.1#5335 -ipset=/yahoo.gr/gfwlist -server=/lgecareers.com/127.0.0.1#5335 -ipset=/lgecareers.com/gfwlist -server=/voacantonese.com/127.0.0.1#5335 -ipset=/voacantonese.com/gfwlist +server=/huluim.com/127.0.0.1#5335 +ipset=/huluim.com/gfwlist +server=/andygod.com/127.0.0.1#5335 +ipset=/andygod.com/gfwlist +server=/wikia.com/127.0.0.1#5335 +ipset=/wikia.com/gfwlist server=/ipadmini.cm/127.0.0.1#5335 ipset=/ipadmini.cm/gfwlist server=/pdf.new/127.0.0.1#5335 ipset=/pdf.new/gfwlist server=/cebay.com/127.0.0.1#5335 ipset=/cebay.com/gfwlist +server=/xxxfiles.com/127.0.0.1#5335 +ipset=/xxxfiles.com/gfwlist +server=/foxtube.com/127.0.0.1#5335 +ipset=/foxtube.com/gfwlist +server=/2ch.hk/127.0.0.1#5335 +ipset=/2ch.hk/gfwlist server=/cbsstatic.com/127.0.0.1#5335 ipset=/cbsstatic.com/gfwlist server=/appletips.net/127.0.0.1#5335 ipset=/appletips.net/gfwlist +server=/vxxsred.xyz/127.0.0.1#5335 +ipset=/vxxsred.xyz/gfwlist server=/pokemon-moon.com/127.0.0.1#5335 ipset=/pokemon-moon.com/gfwlist server=/facebookthreads.net/127.0.0.1#5335 ipset=/facebookthreads.net/gfwlist -server=/disneymagicmoments.es/127.0.0.1#5335 -ipset=/disneymagicmoments.es/gfwlist -server=/airwick.ca/127.0.0.1#5335 -ipset=/airwick.ca/gfwlist +server=/avizoone.com/127.0.0.1#5335 +ipset=/avizoone.com/gfwlist server=/durexcanada.com/127.0.0.1#5335 ipset=/durexcanada.com/gfwlist -server=/fox5ny.com/127.0.0.1#5335 -ipset=/fox5ny.com/gfwlist -server=/wwwinstagram.com/127.0.0.1#5335 -ipset=/wwwinstagram.com/gfwlist -server=/bloombergchina.com/127.0.0.1#5335 -ipset=/bloombergchina.com/gfwlist +server=/mypornwap.fun/127.0.0.1#5335 +ipset=/mypornwap.fun/gfwlist +server=/microsoftpartnersolutions.com/127.0.0.1#5335 +ipset=/microsoftpartnersolutions.com/gfwlist +server=/erogazo-ngo.com/127.0.0.1#5335 +ipset=/erogazo-ngo.com/gfwlist +server=/iebay.com/127.0.0.1#5335 +ipset=/iebay.com/gfwlist server=/docker.com/127.0.0.1#5335 ipset=/docker.com/gfwlist -server=/cheapbeatsbydrdrepro.com/127.0.0.1#5335 -ipset=/cheapbeatsbydrdrepro.com/gfwlist -server=/eebay.com/127.0.0.1#5335 -ipset=/eebay.com/gfwlist +server=/rumporn.com/127.0.0.1#5335 +ipset=/rumporn.com/gfwlist +server=/alphabet.us/127.0.0.1#5335 +ipset=/alphabet.us/gfwlist +server=/momsneversayno.com/127.0.0.1#5335 +ipset=/momsneversayno.com/gfwlist server=/pricelessmarketingengine.com/127.0.0.1#5335 ipset=/pricelessmarketingengine.com/gfwlist server=/bmw-motorrad.se/127.0.0.1#5335 ipset=/bmw-motorrad.se/gfwlist -server=/tvbeventpower.com.hk/127.0.0.1#5335 -ipset=/tvbeventpower.com.hk/gfwlist -server=/ebayshop111.com/127.0.0.1#5335 -ipset=/ebayshop111.com/gfwlist +server=/bestpornclip.com/127.0.0.1#5335 +ipset=/bestpornclip.com/gfwlist server=/soccerfanz.com.my/127.0.0.1#5335 ipset=/soccerfanz.com.my/gfwlist server=/wiley.com/127.0.0.1#5335 ipset=/wiley.com/gfwlist server=/beatsonblackfriday2013.com/127.0.0.1#5335 ipset=/beatsonblackfriday2013.com/gfwlist -server=/mymmode.com/127.0.0.1#5335 -ipset=/mymmode.com/gfwlist server=/visa.fr/127.0.0.1#5335 ipset=/visa.fr/gfwlist -server=/line.naver.jp/127.0.0.1#5335 -ipset=/line.naver.jp/gfwlist +server=/shequ8.cam/127.0.0.1#5335 +ipset=/shequ8.cam/gfwlist server=/starbucks.ch/127.0.0.1#5335 ipset=/starbucks.ch/gfwlist -server=/rclon.com/127.0.0.1#5335 -ipset=/rclon.com/gfwlist -server=/mypearsonshop.com.mx/127.0.0.1#5335 -ipset=/mypearsonshop.com.mx/gfwlist -server=/sony.com.bo/127.0.0.1#5335 -ipset=/sony.com.bo/gfwlist +server=/torrentkitty.tv/127.0.0.1#5335 +ipset=/torrentkitty.tv/gfwlist server=/mini.dz/127.0.0.1#5335 ipset=/mini.dz/gfwlist -server=/928.plus/127.0.0.1#5335 -ipset=/928.plus/gfwlist +server=/girlsongirlstube.com/127.0.0.1#5335 +ipset=/girlsongirlstube.com/gfwlist +server=/niuc2.com/127.0.0.1#5335 +ipset=/niuc2.com/gfwlist server=/speedracegear.com/127.0.0.1#5335 ipset=/speedracegear.com/gfwlist -server=/prodrive-japan.com/127.0.0.1#5335 -ipset=/prodrive-japan.com/gfwlist -server=/bitquick.co/127.0.0.1#5335 -ipset=/bitquick.co/gfwlist +server=/hpuae.com/127.0.0.1#5335 +ipset=/hpuae.com/gfwlist server=/yahoo.com.tw/127.0.0.1#5335 ipset=/yahoo.com.tw/gfwlist -server=/itunesu.com/127.0.0.1#5335 -ipset=/itunesu.com/gfwlist -server=/macosforge.org/127.0.0.1#5335 -ipset=/macosforge.org/gfwlist +server=/nikkan-gendai.com/127.0.0.1#5335 +ipset=/nikkan-gendai.com/gfwlist server=/buyonlineheadphones.com/127.0.0.1#5335 ipset=/buyonlineheadphones.com/gfwlist server=/truedepth3d.com/127.0.0.1#5335 ipset=/truedepth3d.com/gfwlist -server=/wwwebay.com/127.0.0.1#5335 -ipset=/wwwebay.com/gfwlist -server=/mirrorsedge.net/127.0.0.1#5335 -ipset=/mirrorsedge.net/gfwlist -server=/buyaapl.net/127.0.0.1#5335 -ipset=/buyaapl.net/gfwlist +server=/ichigocandy.com/127.0.0.1#5335 +ipset=/ichigocandy.com/gfwlist +server=/royalsocietypublishing.org/127.0.0.1#5335 +ipset=/royalsocietypublishing.org/gfwlist server=/zoomingin.tv/127.0.0.1#5335 ipset=/zoomingin.tv/gfwlist -server=/adobedc.net/127.0.0.1#5335 -ipset=/adobedc.net/gfwlist -server=/minivilledequebec.com/127.0.0.1#5335 -ipset=/minivilledequebec.com/gfwlist +server=/discordapp.io/127.0.0.1#5335 +ipset=/discordapp.io/gfwlist server=/sndcdn.com/127.0.0.1#5335 ipset=/sndcdn.com/gfwlist +server=/modelsfreecams.com/127.0.0.1#5335 +ipset=/modelsfreecams.com/gfwlist server=/daytontrucktires.com/127.0.0.1#5335 ipset=/daytontrucktires.com/gfwlist -server=/yandex.uz/127.0.0.1#5335 -ipset=/yandex.uz/gfwlist +server=/ero-kawa.com/127.0.0.1#5335 +ipset=/ero-kawa.com/gfwlist server=/cabletvdirectv.com/127.0.0.1#5335 ipset=/cabletvdirectv.com/gfwlist -server=/ebaymag.com/127.0.0.1#5335 -ipset=/ebaymag.com/gfwlist -server=/icloudhome.com/127.0.0.1#5335 -ipset=/icloudhome.com/gfwlist -server=/rtm.tnt-ea.com/127.0.0.1#5335 -ipset=/rtm.tnt-ea.com/gfwlist server=/getdrebeatssale.com/127.0.0.1#5335 ipset=/getdrebeatssale.com/gfwlist server=/apple.co.kr/127.0.0.1#5335 ipset=/apple.co.kr/gfwlist server=/dealerspeed.net/127.0.0.1#5335 ipset=/dealerspeed.net/gfwlist -server=/freeviewplus.net.au/127.0.0.1#5335 -ipset=/freeviewplus.net.au/gfwlist -server=/herokucdn.com/127.0.0.1#5335 -ipset=/herokucdn.com/gfwlist -server=/hpspeaker.com/127.0.0.1#5335 -ipset=/hpspeaker.com/gfwlist +server=/rm2029.com/127.0.0.1#5335 +ipset=/rm2029.com/gfwlist +server=/x1337x.ws/127.0.0.1#5335 +ipset=/x1337x.ws/gfwlist +server=/pinkcore.com/127.0.0.1#5335 +ipset=/pinkcore.com/gfwlist +server=/dirtyscat.org/127.0.0.1#5335 +ipset=/dirtyscat.org/gfwlist server=/bisq.network/127.0.0.1#5335 ipset=/bisq.network/gfwlist -server=/globalsecurity.org/127.0.0.1#5335 -ipset=/globalsecurity.org/gfwlist server=/0x0.st/127.0.0.1#5335 ipset=/0x0.st/gfwlist server=/durex.co.th/127.0.0.1#5335 ipset=/durex.co.th/gfwlist -server=/daoc.net/127.0.0.1#5335 -ipset=/daoc.net/gfwlist -server=/theav.cc/127.0.0.1#5335 -ipset=/theav.cc/gfwlist +server=/pullstring.net/127.0.0.1#5335 +ipset=/pullstring.net/gfwlist server=/dmmapis.com/127.0.0.1#5335 ipset=/dmmapis.com/gfwlist -server=/disney-asia.com/127.0.0.1#5335 -ipset=/disney-asia.com/gfwlist -server=/apple.hn/127.0.0.1#5335 -ipset=/apple.hn/gfwlist -server=/binance.cloud/127.0.0.1#5335 -ipset=/binance.cloud/gfwlist -server=/hackerguardian.com/127.0.0.1#5335 -ipset=/hackerguardian.com/gfwlist -server=/ams02.space/127.0.0.1#5335 -ipset=/ams02.space/gfwlist +server=/pornodebolivia.net/127.0.0.1#5335 +ipset=/pornodebolivia.net/gfwlist +server=/adultdvdtalk.com/127.0.0.1#5335 +ipset=/adultdvdtalk.com/gfwlist +server=/free-abbywinters.com/127.0.0.1#5335 +ipset=/free-abbywinters.com/gfwlist +server=/aflamsexhd.com/127.0.0.1#5335 +ipset=/aflamsexhd.com/gfwlist +server=/sexyculo.com/127.0.0.1#5335 +ipset=/sexyculo.com/gfwlist server=/sony.it/127.0.0.1#5335 ipset=/sony.it/gfwlist -server=/bmwusfactory.com/127.0.0.1#5335 -ipset=/bmwusfactory.com/gfwlist +server=/faronics.co.uk/127.0.0.1#5335 +ipset=/faronics.co.uk/gfwlist +server=/bridgestonerewards.com/127.0.0.1#5335 +ipset=/bridgestonerewards.com/gfwlist server=/disney.com.tw/127.0.0.1#5335 ipset=/disney.com.tw/gfwlist -server=/youtube.bo/127.0.0.1#5335 -ipset=/youtube.bo/gfwlist server=/herokussl.com/127.0.0.1#5335 ipset=/herokussl.com/gfwlist server=/harpercollins.com.au/127.0.0.1#5335 ipset=/harpercollins.com.au/gfwlist -server=/beatsbydrediscount.com/127.0.0.1#5335 -ipset=/beatsbydrediscount.com/gfwlist +server=/camwhores-tv.com/127.0.0.1#5335 +ipset=/camwhores-tv.com/gfwlist server=/instagramhashtags.net/127.0.0.1#5335 ipset=/instagramhashtags.net/gfwlist server=/ebayy.com/127.0.0.1#5335 ipset=/ebayy.com/gfwlist -server=/rolls-roycemotorcars.com/127.0.0.1#5335 -ipset=/rolls-roycemotorcars.com/gfwlist server=/google.co.jp/127.0.0.1#5335 ipset=/google.co.jp/gfwlist server=/7mm.tv/127.0.0.1#5335 ipset=/7mm.tv/gfwlist -server=/archiveofourown.org/127.0.0.1#5335 -ipset=/archiveofourown.org/gfwlist +server=/findhername.net/127.0.0.1#5335 +ipset=/findhername.net/gfwlist +server=/thenipslip.com/127.0.0.1#5335 +ipset=/thenipslip.com/gfwlist server=/bmw-antilles.fr/127.0.0.1#5335 ipset=/bmw-antilles.fr/gfwlist -server=/unstyle.us/127.0.0.1#5335 -ipset=/unstyle.us/gfwlist server=/yandexcloud.net/127.0.0.1#5335 ipset=/yandexcloud.net/gfwlist server=/ubi.com/127.0.0.1#5335 ipset=/ubi.com/gfwlist -server=/4cdn.org/127.0.0.1#5335 -ipset=/4cdn.org/gfwlist +server=/inventorship.com.au/127.0.0.1#5335 +ipset=/inventorship.com.au/gfwlist server=/ds-linear-abematv.akamaized.net/127.0.0.1#5335 ipset=/ds-linear-abematv.akamaized.net/gfwlist -server=/akamai.co.kr/127.0.0.1#5335 -ipset=/akamai.co.kr/gfwlist +server=/recelebrity.com/127.0.0.1#5335 +ipset=/recelebrity.com/gfwlist server=/trello.com/127.0.0.1#5335 ipset=/trello.com/gfwlist server=/nikeelite.com/127.0.0.1#5335 ipset=/nikeelite.com/gfwlist -server=/nomulus.foo/127.0.0.1#5335 -ipset=/nomulus.foo/gfwlist -server=/telegram.dog/127.0.0.1#5335 -ipset=/telegram.dog/gfwlist server=/beatsblackfridayretails.com/127.0.0.1#5335 ipset=/beatsblackfridayretails.com/gfwlist server=/whatsapp.com/127.0.0.1#5335 ipset=/whatsapp.com/gfwlist -server=/bmw-connecteddrive.no/127.0.0.1#5335 -ipset=/bmw-connecteddrive.no/gfwlist +server=/durex.pl/127.0.0.1#5335 +ipset=/durex.pl/gfwlist server=/na-att-idns.net/127.0.0.1#5335 ipset=/na-att-idns.net/gfwlist -server=/geeksquad.ca/127.0.0.1#5335 -ipset=/geeksquad.ca/gfwlist +server=/babypink.to/127.0.0.1#5335 +ipset=/babypink.to/gfwlist +server=/xvideoscom.me/127.0.0.1#5335 +ipset=/xvideoscom.me/gfwlist server=/ipod.ch/127.0.0.1#5335 ipset=/ipod.ch/gfwlist +server=/veryladyboy.com/127.0.0.1#5335 +ipset=/veryladyboy.com/gfwlist server=/bloombergquint.com/127.0.0.1#5335 ipset=/bloombergquint.com/gfwlist +server=/animalsporn.tv/127.0.0.1#5335 +ipset=/animalsporn.tv/gfwlist server=/volvo.ca/127.0.0.1#5335 ipset=/volvo.ca/gfwlist server=/hulunet.com/127.0.0.1#5335 ipset=/hulunet.com/gfwlist -server=/hindawi.com/127.0.0.1#5335 -ipset=/hindawi.com/gfwlist -server=/onefifteen.net/127.0.0.1#5335 -ipset=/onefifteen.net/gfwlist -server=/toplayerserver.com/127.0.0.1#5335 -ipset=/toplayerserver.com/gfwlist -server=/dmm.co.jp/127.0.0.1#5335 -ipset=/dmm.co.jp/gfwlist -server=/wanokokorosoh.com/127.0.0.1#5335 -ipset=/wanokokorosoh.com/gfwlist +server=/firestonetire.com/127.0.0.1#5335 +ipset=/firestonetire.com/gfwlist +server=/thepornarea.com/127.0.0.1#5335 +ipset=/thepornarea.com/gfwlist +server=/asianporntrends.com/127.0.0.1#5335 +ipset=/asianporntrends.com/gfwlist +server=/mahajantech.com/127.0.0.1#5335 +ipset=/mahajantech.com/gfwlist server=/shopibay.net/127.0.0.1#5335 ipset=/shopibay.net/gfwlist server=/mbeats-tech.com/127.0.0.1#5335 ipset=/mbeats-tech.com/gfwlist server=/cnnarabic.com/127.0.0.1#5335 ipset=/cnnarabic.com/gfwlist -server=/myappleid.com/127.0.0.1#5335 -ipset=/myappleid.com/gfwlist -server=/salesforceiq.com/127.0.0.1#5335 -ipset=/salesforceiq.com/gfwlist server=/fxnetwork.com/127.0.0.1#5335 ipset=/fxnetwork.com/gfwlist -server=/bmw.co.ao/127.0.0.1#5335 -ipset=/bmw.co.ao/gfwlist -server=/betterexplained.com/127.0.0.1#5335 -ipset=/betterexplained.com/gfwlist +server=/google.net/127.0.0.1#5335 +ipset=/google.net/gfwlist server=/google.ga/127.0.0.1#5335 ipset=/google.ga/gfwlist server=/google.no/127.0.0.1#5335 ipset=/google.no/gfwlist -server=/worldofwarcraft.com/127.0.0.1#5335 -ipset=/worldofwarcraft.com/gfwlist +server=/drebeatsforsaleus.com/127.0.0.1#5335 +ipset=/drebeatsforsaleus.com/gfwlist +server=/c4slive.com/127.0.0.1#5335 +ipset=/c4slive.com/gfwlist server=/youtube.is/127.0.0.1#5335 ipset=/youtube.is/gfwlist -server=/sony.dk/127.0.0.1#5335 -ipset=/sony.dk/gfwlist -server=/appletv.fr/127.0.0.1#5335 -ipset=/appletv.fr/gfwlist -server=/storyful.com/127.0.0.1#5335 -ipset=/storyful.com/gfwlist -server=/bmw.es/127.0.0.1#5335 -ipset=/bmw.es/gfwlist -server=/sub147.com/127.0.0.1#5335 -ipset=/sub147.com/gfwlist +server=/mscrl.microsoft.com/127.0.0.1#5335 +ipset=/mscrl.microsoft.com/gfwlist server=/facebboc.com/127.0.0.1#5335 ipset=/facebboc.com/gfwlist -server=/myfoxtampa.com/127.0.0.1#5335 -ipset=/myfoxtampa.com/gfwlist -server=/miniso.ca/127.0.0.1#5335 -ipset=/miniso.ca/gfwlist +server=/macruby.net/127.0.0.1#5335 +ipset=/macruby.net/gfwlist +server=/txvlog.com/127.0.0.1#5335 +ipset=/txvlog.com/gfwlist server=/itunesfestivals.com/127.0.0.1#5335 ipset=/itunesfestivals.com/gfwlist -server=/disquscdn.com/127.0.0.1#5335 -ipset=/disquscdn.com/gfwlist +server=/vercel.events/127.0.0.1#5335 +ipset=/vercel.events/gfwlist server=/pastebin.com/127.0.0.1#5335 ipset=/pastebin.com/gfwlist server=/enfagrow4.com/127.0.0.1#5335 ipset=/enfagrow4.com/gfwlist server=/applenews.tv/127.0.0.1#5335 ipset=/applenews.tv/gfwlist -server=/beatspascher-bydre.com/127.0.0.1#5335 -ipset=/beatspascher-bydre.com/gfwlist -server=/nintendo.no/127.0.0.1#5335 -ipset=/nintendo.no/gfwlist -server=/bmwauslieferungszentrum.com/127.0.0.1#5335 -ipset=/bmwauslieferungszentrum.com/gfwlist -server=/nbcnews.com/127.0.0.1#5335 -ipset=/nbcnews.com/gfwlist server=/volvogroup.com.br/127.0.0.1#5335 ipset=/volvogroup.com.br/gfwlist server=/harpercollins.ca/127.0.0.1#5335 ipset=/harpercollins.ca/gfwlist -server=/www-cdn.icloud.com.akadns.net/127.0.0.1#5335 -ipset=/www-cdn.icloud.com.akadns.net/gfwlist -server=/bbc.net.uk/127.0.0.1#5335 -ipset=/bbc.net.uk/gfwlist -server=/volvotrucks.co.za/127.0.0.1#5335 -ipset=/volvotrucks.co.za/gfwlist -server=/appleaustralia.net.au/127.0.0.1#5335 -ipset=/appleaustralia.net.au/gfwlist -server=/my-magazine.me/127.0.0.1#5335 -ipset=/my-magazine.me/gfwlist -server=/cnshopin.com/127.0.0.1#5335 -ipset=/cnshopin.com/gfwlist -server=/matters.news/127.0.0.1#5335 -ipset=/matters.news/gfwlist +server=/knowswho.co.jp/127.0.0.1#5335 +ipset=/knowswho.co.jp/gfwlist +server=/rarbgget.org/127.0.0.1#5335 +ipset=/rarbgget.org/gfwlist +server=/palcomix.com/127.0.0.1#5335 +ipset=/palcomix.com/gfwlist +server=/18jms.com/127.0.0.1#5335 +ipset=/18jms.com/gfwlist +server=/gratisvideokijken.nl/127.0.0.1#5335 +ipset=/gratisvideokijken.nl/gfwlist +server=/osm.org/127.0.0.1#5335 +ipset=/osm.org/gfwlist +server=/me-gay.com/127.0.0.1#5335 +ipset=/me-gay.com/gfwlist +server=/notion.site/127.0.0.1#5335 +ipset=/notion.site/gfwlist server=/keytransparency.foo/127.0.0.1#5335 ipset=/keytransparency.foo/gfwlist server=/google.ru/127.0.0.1#5335 ipset=/google.ru/gfwlist -server=/paypal-corp.com/127.0.0.1#5335 -ipset=/paypal-corp.com/gfwlist -server=/intelamericasstore.com/127.0.0.1#5335 -ipset=/intelamericasstore.com/gfwlist +server=/asm.org/127.0.0.1#5335 +ipset=/asm.org/gfwlist +server=/lushstories.com/127.0.0.1#5335 +ipset=/lushstories.com/gfwlist server=/foxcredit.org/127.0.0.1#5335 ipset=/foxcredit.org/gfwlist server=/applestore.com.hk/127.0.0.1#5335 @@ -3502,158 +2946,138 @@ server=/asha.org/127.0.0.1#5335 ipset=/asha.org/gfwlist server=/creativesdk.com/127.0.0.1#5335 ipset=/creativesdk.com/gfwlist -server=/fox46.com/127.0.0.1#5335 -ipset=/fox46.com/gfwlist -server=/reddit.com/127.0.0.1#5335 -ipset=/reddit.com/gfwlist -server=/asianpornmovies.com/127.0.0.1#5335 -ipset=/asianpornmovies.com/gfwlist +server=/airhorn.solutions/127.0.0.1#5335 +ipset=/airhorn.solutions/gfwlist +server=/bittrex.com/127.0.0.1#5335 +ipset=/bittrex.com/gfwlist server=/cloudrobotics.com/127.0.0.1#5335 ipset=/cloudrobotics.com/gfwlist server=/java.net/127.0.0.1#5335 ipset=/java.net/gfwlist server=/pokemon-sun.com/127.0.0.1#5335 ipset=/pokemon-sun.com/gfwlist -server=/ieeemce.org/127.0.0.1#5335 -ipset=/ieeemce.org/gfwlist server=/koubaibu.jp/127.0.0.1#5335 ipset=/koubaibu.jp/gfwlist server=/volvobuses.de/127.0.0.1#5335 ipset=/volvobuses.de/gfwlist -server=/bmw-oman.com/127.0.0.1#5335 -ipset=/bmw-oman.com/gfwlist +server=/easymatureporn.com/127.0.0.1#5335 +ipset=/easymatureporn.com/gfwlist +server=/extremepornfilms.com/127.0.0.1#5335 +ipset=/extremepornfilms.com/gfwlist server=/uun99.com/127.0.0.1#5335 ipset=/uun99.com/gfwlist -server=/gopivotal.net/127.0.0.1#5335 -ipset=/gopivotal.net/gfwlist server=/ebayclassifieds.info/127.0.0.1#5335 ipset=/ebayclassifieds.info/gfwlist server=/manyvids.com/127.0.0.1#5335 ipset=/manyvids.com/gfwlist -server=/volvotrucks.it/127.0.0.1#5335 -ipset=/volvotrucks.it/gfwlist +server=/gmossp-sp.jp/127.0.0.1#5335 +ipset=/gmossp-sp.jp/gfwlist server=/pearson.cl/127.0.0.1#5335 ipset=/pearson.cl/gfwlist server=/epochcar.com/127.0.0.1#5335 ipset=/epochcar.com/gfwlist -server=/cdnpure.com/127.0.0.1#5335 -ipset=/cdnpure.com/gfwlist server=/lululu.one/127.0.0.1#5335 ipset=/lululu.one/gfwlist server=/cinemax.com/127.0.0.1#5335 ipset=/cinemax.com/gfwlist -server=/movidius.com/127.0.0.1#5335 -ipset=/movidius.com/gfwlist server=/whatisairwatch.com/127.0.0.1#5335 ipset=/whatisairwatch.com/gfwlist server=/pvzgw2.com/127.0.0.1#5335 ipset=/pvzgw2.com/gfwlist server=/1e100.net/127.0.0.1#5335 ipset=/1e100.net/gfwlist -server=/mastercardidtheftalerts.com/127.0.0.1#5335 -ipset=/mastercardidtheftalerts.com/gfwlist -server=/paypal-secure.net/127.0.0.1#5335 -ipset=/paypal-secure.net/gfwlist +server=/dlsitestudio.com/127.0.0.1#5335 +ipset=/dlsitestudio.com/gfwlist +server=/dettol.net/127.0.0.1#5335 +ipset=/dettol.net/gfwlist server=/nike-fr.com/127.0.0.1#5335 ipset=/nike-fr.com/gfwlist server=/tedcdn.com/127.0.0.1#5335 ipset=/tedcdn.com/gfwlist -server=/facebookgames.com/127.0.0.1#5335 -ipset=/facebookgames.com/gfwlist server=/youtube.com.ua/127.0.0.1#5335 ipset=/youtube.com.ua/gfwlist -server=/twitchcdn.net/127.0.0.1#5335 -ipset=/twitchcdn.net/gfwlist +server=/vsezoo.com/127.0.0.1#5335 +ipset=/vsezoo.com/gfwlist server=/intunewiki.com/127.0.0.1#5335 ipset=/intunewiki.com/gfwlist -server=/vmwsalesrewards.com/127.0.0.1#5335 -ipset=/vmwsalesrewards.com/gfwlist -server=/bitnami.com/127.0.0.1#5335 -ipset=/bitnami.com/gfwlist +server=/erotic-hentai.com/127.0.0.1#5335 +ipset=/erotic-hentai.com/gfwlist server=/beatsdreforsale.com/127.0.0.1#5335 ipset=/beatsdreforsale.com/gfwlist -server=/disneynewseries.com/127.0.0.1#5335 -ipset=/disneynewseries.com/gfwlist +server=/bmw-driving-center.co.kr/127.0.0.1#5335 +ipset=/bmw-driving-center.co.kr/gfwlist server=/intel.dz/127.0.0.1#5335 ipset=/intel.dz/gfwlist server=/conair.me/127.0.0.1#5335 ipset=/conair.me/gfwlist +server=/cloudyzgirl.com/127.0.0.1#5335 +ipset=/cloudyzgirl.com/gfwlist server=/applewatch.tv/127.0.0.1#5335 ipset=/applewatch.tv/gfwlist -server=/nvidia.fi/127.0.0.1#5335 -ipset=/nvidia.fi/gfwlist +server=/hkt-enterprise.com/127.0.0.1#5335 +ipset=/hkt-enterprise.com/gfwlist server=/nvidia.it/127.0.0.1#5335 ipset=/nvidia.it/gfwlist -server=/nikefoamposites.com/127.0.0.1#5335 -ipset=/nikefoamposites.com/gfwlist -server=/pentium.com/127.0.0.1#5335 -ipset=/pentium.com/gfwlist +server=/welcomix.com/127.0.0.1#5335 +ipset=/welcomix.com/gfwlist server=/cispaletter.com/127.0.0.1#5335 ipset=/cispaletter.com/gfwlist -server=/buyminibeatbox.com/127.0.0.1#5335 -ipset=/buyminibeatbox.com/gfwlist +server=/drdrebeatsuk.com/127.0.0.1#5335 +ipset=/drdrebeatsuk.com/gfwlist server=/volvotrucks.tn/127.0.0.1#5335 ipset=/volvotrucks.tn/gfwlist -server=/bmwperformancecenter.com/127.0.0.1#5335 -ipset=/bmwperformancecenter.com/gfwlist server=/adbecrsl.com/127.0.0.1#5335 ipset=/adbecrsl.com/gfwlist server=/newscorp.com/127.0.0.1#5335 ipset=/newscorp.com/gfwlist server=/paypal-profile.com/127.0.0.1#5335 ipset=/paypal-profile.com/gfwlist -server=/yandex.st/127.0.0.1#5335 -ipset=/yandex.st/gfwlist server=/vfsco.bg/127.0.0.1#5335 ipset=/vfsco.bg/gfwlist -server=/ebaycoins.com/127.0.0.1#5335 -ipset=/ebaycoins.com/gfwlist +server=/quiksee.com/127.0.0.1#5335 +ipset=/quiksee.com/gfwlist server=/awsstatic.com/127.0.0.1#5335 ipset=/awsstatic.com/gfwlist server=/bmw.md/127.0.0.1#5335 ipset=/bmw.md/gfwlist server=/facebookdating.net/127.0.0.1#5335 ipset=/facebookdating.net/gfwlist -server=/gosq.com/127.0.0.1#5335 -ipset=/gosq.com/gfwlist -server=/instagainer.com/127.0.0.1#5335 -ipset=/instagainer.com/gfwlist -server=/a.kslive.tv/127.0.0.1#5335 -ipset=/a.kslive.tv/gfwlist -server=/pincong.rocks/127.0.0.1#5335 -ipset=/pincong.rocks/gfwlist -server=/blpprofessional.com/127.0.0.1#5335 -ipset=/blpprofessional.com/gfwlist -server=/4myminicard.com/127.0.0.1#5335 -ipset=/4myminicard.com/gfwlist -server=/uhub.com/127.0.0.1#5335 -ipset=/uhub.com/gfwlist -server=/datasheets360.com/127.0.0.1#5335 -ipset=/datasheets360.com/gfwlist -server=/airwick.us/127.0.0.1#5335 -ipset=/airwick.us/gfwlist +server=/62fh1bnj.me/127.0.0.1#5335 +ipset=/62fh1bnj.me/gfwlist +server=/porngladiator.com/127.0.0.1#5335 +ipset=/porngladiator.com/gfwlist +server=/cfake.com/127.0.0.1#5335 +ipset=/cfake.com/gfwlist +server=/myxxgirl.com/127.0.0.1#5335 +ipset=/myxxgirl.com/gfwlist +server=/dmed.technology/127.0.0.1#5335 +ipset=/dmed.technology/gfwlist server=/cricketcountry.com/127.0.0.1#5335 ipset=/cricketcountry.com/gfwlist server=/pinterest.ru/127.0.0.1#5335 ipset=/pinterest.ru/gfwlist -server=/adidas.cz/127.0.0.1#5335 -ipset=/adidas.cz/gfwlist -server=/rarbg.is/127.0.0.1#5335 -ipset=/rarbg.is/gfwlist -server=/businessinsider.com/127.0.0.1#5335 -ipset=/businessinsider.com/gfwlist +server=/peoplenews.tw/127.0.0.1#5335 +ipset=/peoplenews.tw/gfwlist +server=/ikea.com.my/127.0.0.1#5335 +ipset=/ikea.com.my/gfwlist +server=/naturemag.org/127.0.0.1#5335 +ipset=/naturemag.org/gfwlist +server=/intel.tv/127.0.0.1#5335 +ipset=/intel.tv/gfwlist +server=/steamserver.net/127.0.0.1#5335 +ipset=/steamserver.net/gfwlist +server=/realcuckoldsex.com/127.0.0.1#5335 +ipset=/realcuckoldsex.com/gfwlist server=/torproject.org/127.0.0.1#5335 ipset=/torproject.org/gfwlist -server=/visa.gr/127.0.0.1#5335 -ipset=/visa.gr/gfwlist -server=/txvia.com/127.0.0.1#5335 -ipset=/txvia.com/gfwlist +server=/narumiya.xii.jp/127.0.0.1#5335 +ipset=/narumiya.xii.jp/gfwlist server=/daytonbmw.com/127.0.0.1#5335 ipset=/daytonbmw.com/gfwlist server=/netflixdnstest5.com/127.0.0.1#5335 ipset=/netflixdnstest5.com/gfwlist -server=/newsukadops.com/127.0.0.1#5335 -ipset=/newsukadops.com/gfwlist +server=/nude-pics.org/127.0.0.1#5335 +ipset=/nude-pics.org/gfwlist server=/applepay.jp/127.0.0.1#5335 ipset=/applepay.jp/gfwlist server=/jav321.com/127.0.0.1#5335 @@ -3662,132 +3086,110 @@ server=/finish.lv/127.0.0.1#5335 ipset=/finish.lv/gfwlist server=/fbinfer.com/127.0.0.1#5335 ipset=/fbinfer.com/gfwlist -server=/thetimes.co.uk/127.0.0.1#5335 -ipset=/thetimes.co.uk/gfwlist -server=/picnik.com/127.0.0.1#5335 -ipset=/picnik.com/gfwlist -server=/starbucksathome.com/127.0.0.1#5335 -ipset=/starbucksathome.com/gfwlist -server=/qualcommlabs.com/127.0.0.1#5335 -ipset=/qualcommlabs.com/gfwlist -server=/bmw.com.my/127.0.0.1#5335 -ipset=/bmw.com.my/gfwlist -server=/applepaysupplies.net/127.0.0.1#5335 -ipset=/applepaysupplies.net/gfwlist -server=/faeboook.com/127.0.0.1#5335 -ipset=/faeboook.com/gfwlist -server=/ecimg.tw/127.0.0.1#5335 -ipset=/ecimg.tw/gfwlist -server=/duckduckgo.ke/127.0.0.1#5335 -ipset=/duckduckgo.ke/gfwlist -server=/dogatch.jp/127.0.0.1#5335 -ipset=/dogatch.jp/gfwlist -server=/guardianapps.co.uk/127.0.0.1#5335 -ipset=/guardianapps.co.uk/gfwlist -server=/durex.com.tr/127.0.0.1#5335 -ipset=/durex.com.tr/gfwlist -server=/amazonprimevideos.com/127.0.0.1#5335 -ipset=/amazonprimevideos.com/gfwlist +server=/amateurcuckoldporn.com/127.0.0.1#5335 +ipset=/amateurcuckoldporn.com/gfwlist +server=/bareporno.com/127.0.0.1#5335 +ipset=/bareporno.com/gfwlist +server=/keyporntube.com/127.0.0.1#5335 +ipset=/keyporntube.com/gfwlist +server=/snap-dev.net/127.0.0.1#5335 +ipset=/snap-dev.net/gfwlist +server=/researchkit.net/127.0.0.1#5335 +ipset=/researchkit.net/gfwlist +server=/sokmil.com/127.0.0.1#5335 +ipset=/sokmil.com/gfwlist +server=/telesec.de/127.0.0.1#5335 +ipset=/telesec.de/gfwlist server=/mastercard.com/127.0.0.1#5335 ipset=/mastercard.com/gfwlist -server=/earphonescheapest.com/127.0.0.1#5335 -ipset=/earphonescheapest.com/gfwlist server=/insiderintelligence.com/127.0.0.1#5335 ipset=/insiderintelligence.com/gfwlist server=/bridgestonemarketing.com/127.0.0.1#5335 ipset=/bridgestonemarketing.com/gfwlist +server=/amatporn.com/127.0.0.1#5335 +ipset=/amatporn.com/gfwlist server=/connectcommerce.info/127.0.0.1#5335 ipset=/connectcommerce.info/gfwlist +server=/shit-porn.net/127.0.0.1#5335 +ipset=/shit-porn.net/gfwlist server=/bmw-ghana.com/127.0.0.1#5335 ipset=/bmw-ghana.com/gfwlist server=/microsoftads.com/127.0.0.1#5335 ipset=/microsoftads.com/gfwlist -server=/reuters.com/127.0.0.1#5335 -ipset=/reuters.com/gfwlist -server=/payhulu.com/127.0.0.1#5335 -ipset=/payhulu.com/gfwlist +server=/lolclub.org/127.0.0.1#5335 +ipset=/lolclub.org/gfwlist server=/vanish.at/127.0.0.1#5335 ipset=/vanish.at/gfwlist server=/gfycat.com/127.0.0.1#5335 ipset=/gfycat.com/gfwlist server=/google.be/127.0.0.1#5335 ipset=/google.be/gfwlist +server=/magicalmirai.com/127.0.0.1#5335 +ipset=/magicalmirai.com/gfwlist server=/vfsco.lv/127.0.0.1#5335 ipset=/vfsco.lv/gfwlist server=/oann.com/127.0.0.1#5335 ipset=/oann.com/gfwlist server=/smartonesolutions.com.hk/127.0.0.1#5335 ipset=/smartonesolutions.com.hk/gfwlist -server=/ebayenterprise.com/127.0.0.1#5335 -ipset=/ebayenterprise.com/gfwlist +server=/coolloud.org.tw/127.0.0.1#5335 +ipset=/coolloud.org.tw/gfwlist server=/pittpatt.com/127.0.0.1#5335 ipset=/pittpatt.com/gfwlist +server=/yourfreeporn.tv/127.0.0.1#5335 +ipset=/yourfreeporn.tv/gfwlist +server=/kmc-av.com/127.0.0.1#5335 +ipset=/kmc-av.com/gfwlist server=/blackfridaydrebeatsshop.com/127.0.0.1#5335 ipset=/blackfridaydrebeatsshop.com/gfwlist server=/zdusercontent.com/127.0.0.1#5335 ipset=/zdusercontent.com/gfwlist -server=/amznl.com/127.0.0.1#5335 -ipset=/amznl.com/gfwlist -server=/incentivetravelgifts.com/127.0.0.1#5335 -ipset=/incentivetravelgifts.com/gfwlist -server=/volvotrucks.rs/127.0.0.1#5335 -ipset=/volvotrucks.rs/gfwlist +server=/kindleoasis.info/127.0.0.1#5335 +ipset=/kindleoasis.info/gfwlist +server=/pornhat.com/127.0.0.1#5335 +ipset=/pornhat.com/gfwlist server=/youtube.com.ng/127.0.0.1#5335 ipset=/youtube.com.ng/gfwlist -server=/reuters.tv/127.0.0.1#5335 -ipset=/reuters.tv/gfwlist +server=/exxxtrasmall1.com/127.0.0.1#5335 +ipset=/exxxtrasmall1.com/gfwlist server=/vmwdemo.com/127.0.0.1#5335 ipset=/vmwdemo.com/gfwlist server=/facebzook.com/127.0.0.1#5335 ipset=/facebzook.com/gfwlist -server=/intel.si/127.0.0.1#5335 -ipset=/intel.si/gfwlist +server=/renderos.com/127.0.0.1#5335 +ipset=/renderos.com/gfwlist server=/thomsonreuters.com.my/127.0.0.1#5335 ipset=/thomsonreuters.com.my/gfwlist server=/putty.org/127.0.0.1#5335 ipset=/putty.org/gfwlist server=/voahausa.com/127.0.0.1#5335 ipset=/voahausa.com/gfwlist -server=/mini-connected.cz/127.0.0.1#5335 -ipset=/mini-connected.cz/gfwlist -server=/sonybo.co.jp/127.0.0.1#5335 -ipset=/sonybo.co.jp/gfwlist +server=/porndeepfake.net/127.0.0.1#5335 +ipset=/porndeepfake.net/gfwlist server=/apple-mapkit.com/127.0.0.1#5335 ipset=/apple-mapkit.com/gfwlist -server=/businessinsider.fr/127.0.0.1#5335 -ipset=/businessinsider.fr/gfwlist +server=/moxing.news/127.0.0.1#5335 +ipset=/moxing.news/gfwlist server=/nekoxxx.com/127.0.0.1#5335 ipset=/nekoxxx.com/gfwlist -server=/digitalassetlinks.org/127.0.0.1#5335 -ipset=/digitalassetlinks.org/gfwlist -server=/javfor.me/127.0.0.1#5335 -ipset=/javfor.me/gfwlist -server=/monsterbeatstudio.com/127.0.0.1#5335 -ipset=/monsterbeatstudio.com/gfwlist +server=/fei.ru/127.0.0.1#5335 +ipset=/fei.ru/gfwlist +server=/applecomputer.hu/127.0.0.1#5335 +ipset=/applecomputer.hu/gfwlist server=/iphone.com/127.0.0.1#5335 ipset=/iphone.com/gfwlist -server=/php.net/127.0.0.1#5335 -ipset=/php.net/gfwlist -server=/snapcraft.io/127.0.0.1#5335 -ipset=/snapcraft.io/gfwlist -server=/beatsstudiohodetelefoner.com/127.0.0.1#5335 -ipset=/beatsstudiohodetelefoner.com/gfwlist server=/mdpi.com/127.0.0.1#5335 ipset=/mdpi.com/gfwlist server=/nginx.org/127.0.0.1#5335 ipset=/nginx.org/gfwlist -server=/paypal-redeem.com/127.0.0.1#5335 -ipset=/paypal-redeem.com/gfwlist -server=/canon.ee/127.0.0.1#5335 -ipset=/canon.ee/gfwlist -server=/marketolive.com/127.0.0.1#5335 -ipset=/marketolive.com/gfwlist +server=/sexanime.net/127.0.0.1#5335 +ipset=/sexanime.net/gfwlist +server=/artstationmedia.com/127.0.0.1#5335 +ipset=/artstationmedia.com/gfwlist server=/bridgestone.com.br/127.0.0.1#5335 ipset=/bridgestone.com.br/gfwlist -server=/scholar.google.com.ly/127.0.0.1#5335 -ipset=/scholar.google.com.ly/gfwlist -server=/emagic.de/127.0.0.1#5335 -ipset=/emagic.de/gfwlist +server=/google.com.bn/127.0.0.1#5335 +ipset=/google.com.bn/gfwlist server=/shopdisney.com/127.0.0.1#5335 ipset=/shopdisney.com/gfwlist server=/foxsports.net/127.0.0.1#5335 @@ -3796,94 +3198,92 @@ server=/beatsep.com/127.0.0.1#5335 ipset=/beatsep.com/gfwlist server=/paypal-merchantloyalty.com/127.0.0.1#5335 ipset=/paypal-merchantloyalty.com/gfwlist -server=/jkbeats.com/127.0.0.1#5335 -ipset=/jkbeats.com/gfwlist -server=/visakorea.com/127.0.0.1#5335 -ipset=/visakorea.com/gfwlist -server=/universalpicturesinternational.com/127.0.0.1#5335 -ipset=/universalpicturesinternational.com/gfwlist +server=/atwiki.jp/127.0.0.1#5335 +ipset=/atwiki.jp/gfwlist +server=/bmw-connecteddrive.pt/127.0.0.1#5335 +ipset=/bmw-connecteddrive.pt/gfwlist +server=/nikeonlinestore.com/127.0.0.1#5335 +ipset=/nikeonlinestore.com/gfwlist server=/mastercard.com.sa/127.0.0.1#5335 ipset=/mastercard.com.sa/gfwlist -server=/vilavpn.com/127.0.0.1#5335 -ipset=/vilavpn.com/gfwlist -server=/skyoceanrescue.de/127.0.0.1#5335 -ipset=/skyoceanrescue.de/gfwlist +server=/amateuralbum.net/127.0.0.1#5335 +ipset=/amateuralbum.net/gfwlist +server=/xvxxtube.com/127.0.0.1#5335 +ipset=/xvxxtube.com/gfwlist server=/bucketeer.jp/127.0.0.1#5335 ipset=/bucketeer.jp/gfwlist -server=/namemybeats.com/127.0.0.1#5335 -ipset=/namemybeats.com/gfwlist -server=/facebooj.com/127.0.0.1#5335 -ipset=/facebooj.com/gfwlist +server=/logitechio.com.cn/127.0.0.1#5335 +ipset=/logitechio.com.cn/gfwlist +server=/ikea.hu/127.0.0.1#5335 +ipset=/ikea.hu/gfwlist +server=/edge-skype-com.s-0001.s-msedge.net/127.0.0.1#5335 +ipset=/edge-skype-com.s-0001.s-msedge.net/gfwlist +server=/sexgalaxy.net/127.0.0.1#5335 +ipset=/sexgalaxy.net/gfwlist server=/jstage.jst.go.jp/127.0.0.1#5335 ipset=/jstage.jst.go.jp/gfwlist -server=/youtube.mk/127.0.0.1#5335 -ipset=/youtube.mk/gfwlist +server=/amateurblowjobporn.com/127.0.0.1#5335 +ipset=/amateurblowjobporn.com/gfwlist +server=/watchteencam.com/127.0.0.1#5335 +ipset=/watchteencam.com/gfwlist server=/facebookawards.com/127.0.0.1#5335 ipset=/facebookawards.com/gfwlist server=/cloudflare-dns.com/127.0.0.1#5335 ipset=/cloudflare-dns.com/gfwlist -server=/microsoftmxfilantropia.com/127.0.0.1#5335 -ipset=/microsoftmxfilantropia.com/gfwlist -server=/facecbgook.com/127.0.0.1#5335 -ipset=/facecbgook.com/gfwlist +server=/porngeek.com/127.0.0.1#5335 +ipset=/porngeek.com/gfwlist server=/bmwgroup-posdigital.com/127.0.0.1#5335 ipset=/bmwgroup-posdigital.com/gfwlist -server=/wiipartyu.com/127.0.0.1#5335 -ipset=/wiipartyu.com/gfwlist server=/bridgestone.com.mx/127.0.0.1#5335 ipset=/bridgestone.com.mx/gfwlist -server=/newsprinters.co.uk/127.0.0.1#5335 -ipset=/newsprinters.co.uk/gfwlist +server=/hqtube.xxx/127.0.0.1#5335 +ipset=/hqtube.xxx/gfwlist +server=/deutschsex.com/127.0.0.1#5335 +ipset=/deutschsex.com/gfwlist +server=/hidive.com/127.0.0.1#5335 +ipset=/hidive.com/gfwlist server=/lolusercontent.com/127.0.0.1#5335 ipset=/lolusercontent.com/gfwlist -server=/anaconda.org/127.0.0.1#5335 -ipset=/anaconda.org/gfwlist -server=/whychoosehorizon.com/127.0.0.1#5335 -ipset=/whychoosehorizon.com/gfwlist +server=/ikea.co.at/127.0.0.1#5335 +ipset=/ikea.co.at/gfwlist server=/pinterest.co.uk/127.0.0.1#5335 ipset=/pinterest.co.uk/gfwlist -server=/chromeos.dev/127.0.0.1#5335 -ipset=/chromeos.dev/gfwlist server=/volvotrucks.com.ua/127.0.0.1#5335 ipset=/volvotrucks.com.ua/gfwlist server=/wrenchead.com/127.0.0.1#5335 ipset=/wrenchead.com/gfwlist +server=/1337x.is/127.0.0.1#5335 +ipset=/1337x.is/gfwlist server=/mariokart8.com/127.0.0.1#5335 ipset=/mariokart8.com/gfwlist -server=/intercom.io/127.0.0.1#5335 -ipset=/intercom.io/gfwlist -server=/starbucks.co.id/127.0.0.1#5335 -ipset=/starbucks.co.id/gfwlist -server=/hpdrivers.com/127.0.0.1#5335 -ipset=/hpdrivers.com/gfwlist +server=/bangher.net/127.0.0.1#5335 +ipset=/bangher.net/gfwlist +server=/cnbetacdn.com/127.0.0.1#5335 +ipset=/cnbetacdn.com/gfwlist server=/pearsonassessment.dk/127.0.0.1#5335 ipset=/pearsonassessment.dk/gfwlist -server=/ktvu.com/127.0.0.1#5335 -ipset=/ktvu.com/gfwlist +server=/bloombergbeta.com/127.0.0.1#5335 +ipset=/bloombergbeta.com/gfwlist server=/gittigidiyor.net/127.0.0.1#5335 ipset=/gittigidiyor.net/gfwlist -server=/typeisbeautiful.com/127.0.0.1#5335 -ipset=/typeisbeautiful.com/gfwlist -server=/ciscoconnectcloud.org/127.0.0.1#5335 -ipset=/ciscoconnectcloud.org/gfwlist +server=/pricelessarabia.com/127.0.0.1#5335 +ipset=/pricelessarabia.com/gfwlist +server=/booksinprint.com/127.0.0.1#5335 +ipset=/booksinprint.com/gfwlist server=/letsencrypt.org/127.0.0.1#5335 ipset=/letsencrypt.org/gfwlist -server=/archive.org/127.0.0.1#5335 -ipset=/archive.org/gfwlist +server=/toppornsites.net/127.0.0.1#5335 +ipset=/toppornsites.net/gfwlist server=/visa.com.bs/127.0.0.1#5335 ipset=/visa.com.bs/gfwlist server=/morisawa.co.jp/127.0.0.1#5335 ipset=/morisawa.co.jp/gfwlist server=/nikeaw77.com/127.0.0.1#5335 ipset=/nikeaw77.com/gfwlist -server=/cbsinteractive.com/127.0.0.1#5335 -ipset=/cbsinteractive.com/gfwlist -server=/cashpassport.ca/127.0.0.1#5335 -ipset=/cashpassport.ca/gfwlist server=/cordcloud.org/127.0.0.1#5335 ipset=/cordcloud.org/gfwlist -server=/laracasts.com/127.0.0.1#5335 -ipset=/laracasts.com/gfwlist +server=/igkbroker.com/127.0.0.1#5335 +ipset=/igkbroker.com/gfwlist server=/omotenashi.cygames.jp/127.0.0.1#5335 ipset=/omotenashi.cygames.jp/gfwlist server=/blogspot.al/127.0.0.1#5335 @@ -3892,658 +3292,520 @@ server=/myfoxzone.com/127.0.0.1#5335 ipset=/myfoxzone.com/gfwlist server=/nvidia.be/127.0.0.1#5335 ipset=/nvidia.be/gfwlist -server=/cslpldyb.me/127.0.0.1#5335 -ipset=/cslpldyb.me/gfwlist server=/playwarcraft3.com/127.0.0.1#5335 ipset=/playwarcraft3.com/gfwlist server=/bbhub.io/127.0.0.1#5335 ipset=/bbhub.io/gfwlist +server=/vercel.store/127.0.0.1#5335 +ipset=/vercel.store/gfwlist server=/google.co.il/127.0.0.1#5335 ipset=/google.co.il/gfwlist -server=/nintendoswitchtogether.com/127.0.0.1#5335 -ipset=/nintendoswitchtogether.com/gfwlist server=/hegre.com/127.0.0.1#5335 ipset=/hegre.com/gfwlist -server=/primevideo.org/127.0.0.1#5335 -ipset=/primevideo.org/gfwlist -server=/authorxml.com/127.0.0.1#5335 -ipset=/authorxml.com/gfwlist -server=/logitechg.com/127.0.0.1#5335 -ipset=/logitechg.com/gfwlist -server=/hawaiibmw.com/127.0.0.1#5335 -ipset=/hawaiibmw.com/gfwlist +server=/enfagrow.com.bn/127.0.0.1#5335 +ipset=/enfagrow.com.bn/gfwlist +server=/pornwild.to/127.0.0.1#5335 +ipset=/pornwild.to/gfwlist server=/nicodic.jp/127.0.0.1#5335 ipset=/nicodic.jp/gfwlist +server=/justporno.es/127.0.0.1#5335 +ipset=/justporno.es/gfwlist server=/kindle.de/127.0.0.1#5335 ipset=/kindle.de/gfwlist server=/yahoo.bi/127.0.0.1#5335 ipset=/yahoo.bi/gfwlist -server=/steamusercontent-a.akamaihd.net/127.0.0.1#5335 -ipset=/steamusercontent-a.akamaihd.net/gfwlist +server=/amazon.ae/127.0.0.1#5335 +ipset=/amazon.ae/gfwlist server=/mageconf.com/127.0.0.1#5335 ipset=/mageconf.com/gfwlist server=/voatiengviet.com/127.0.0.1#5335 ipset=/voatiengviet.com/gfwlist +server=/boylove1.cc/127.0.0.1#5335 +ipset=/boylove1.cc/gfwlist server=/latencytop.com/127.0.0.1#5335 ipset=/latencytop.com/gfwlist -server=/youtube.ly/127.0.0.1#5335 -ipset=/youtube.ly/gfwlist server=/alexa.com/127.0.0.1#5335 ipset=/alexa.com/gfwlist -server=/airport.brussels/127.0.0.1#5335 -ipset=/airport.brussels/gfwlist +server=/porncana.com/127.0.0.1#5335 +ipset=/porncana.com/gfwlist server=/shopee.vn/127.0.0.1#5335 ipset=/shopee.vn/gfwlist +server=/hentaistube.com/127.0.0.1#5335 +ipset=/hentaistube.com/gfwlist +server=/seniortgp.com/127.0.0.1#5335 +ipset=/seniortgp.com/gfwlist server=/wikinews.org/127.0.0.1#5335 ipset=/wikinews.org/gfwlist -server=/mini.si/127.0.0.1#5335 -ipset=/mini.si/gfwlist -server=/dontbubble.us/127.0.0.1#5335 -ipset=/dontbubble.us/gfwlist -server=/services-exchange.com/127.0.0.1#5335 -ipset=/services-exchange.com/gfwlist +server=/gettyimages.com.mx/127.0.0.1#5335 +ipset=/gettyimages.com.mx/gfwlist +server=/3movs.com/127.0.0.1#5335 +ipset=/3movs.com/gfwlist server=/geeksquadonline.com/127.0.0.1#5335 ipset=/geeksquadonline.com/gfwlist -server=/yes123.com.tw/127.0.0.1#5335 -ipset=/yes123.com.tw/gfwlist -server=/marketo.co.uk/127.0.0.1#5335 -ipset=/marketo.co.uk/gfwlist -server=/nintendo-europe.com/127.0.0.1#5335 -ipset=/nintendo-europe.com/gfwlist -server=/nxtdig.com.tw/127.0.0.1#5335 -ipset=/nxtdig.com.tw/gfwlist +server=/alphera-finance.com.hk/127.0.0.1#5335 +ipset=/alphera-finance.com.hk/gfwlist +server=/hustler.com/127.0.0.1#5335 +ipset=/hustler.com/gfwlist server=/openstreetmaps.org/127.0.0.1#5335 ipset=/openstreetmaps.org/gfwlist server=/launchpad.net/127.0.0.1#5335 ipset=/launchpad.net/gfwlist -server=/blogspot.co.at/127.0.0.1#5335 -ipset=/blogspot.co.at/gfwlist -server=/visa.com.cy/127.0.0.1#5335 -ipset=/visa.com.cy/gfwlist +server=/ikea.pt/127.0.0.1#5335 +ipset=/ikea.pt/gfwlist +server=/blacktowhite.net/127.0.0.1#5335 +ipset=/blacktowhite.net/gfwlist server=/youtube.ee/127.0.0.1#5335 ipset=/youtube.ee/gfwlist -server=/intel.my/127.0.0.1#5335 -ipset=/intel.my/gfwlist -server=/nintendo.co.uk/127.0.0.1#5335 -ipset=/nintendo.co.uk/gfwlist -server=/bmw-motorrad.co.uk/127.0.0.1#5335 -ipset=/bmw-motorrad.co.uk/gfwlist +server=/hddirectv.com/127.0.0.1#5335 +ipset=/hddirectv.com/gfwlist server=/visa.com.jm/127.0.0.1#5335 ipset=/visa.com.jm/gfwlist -server=/bmw-connecteddrive.sk/127.0.0.1#5335 -ipset=/bmw-connecteddrive.sk/gfwlist -server=/minivaughanwest.com/127.0.0.1#5335 -ipset=/minivaughanwest.com/gfwlist -server=/ippog.org/127.0.0.1#5335 -ipset=/ippog.org/gfwlist -server=/ntdtv.com/127.0.0.1#5335 -ipset=/ntdtv.com/gfwlist -server=/aeasyshop.com/127.0.0.1#5335 -ipset=/aeasyshop.com/gfwlist +server=/justporno.sex/127.0.0.1#5335 +ipset=/justporno.sex/gfwlist +server=/pornoweb.win/127.0.0.1#5335 +ipset=/pornoweb.win/gfwlist server=/battlefieldbadcompany2.com/127.0.0.1#5335 ipset=/battlefieldbadcompany2.com/gfwlist server=/adobeexchange.com/127.0.0.1#5335 ipset=/adobeexchange.com/gfwlist -server=/visb.org/127.0.0.1#5335 -ipset=/visb.org/gfwlist -server=/faebok.com/127.0.0.1#5335 -ipset=/faebok.com/gfwlist server=/localizejs.com/127.0.0.1#5335 ipset=/localizejs.com/gfwlist server=/bmworegon.com/127.0.0.1#5335 ipset=/bmworegon.com/gfwlist server=/pcre.org/127.0.0.1#5335 ipset=/pcre.org/gfwlist -server=/paypal-special.com/127.0.0.1#5335 -ipset=/paypal-special.com/gfwlist +server=/ilove-movies.com/127.0.0.1#5335 +ipset=/ilove-movies.com/gfwlist server=/applescreensavers.com/127.0.0.1#5335 ipset=/applescreensavers.com/gfwlist -server=/scholar.google.com.pr/127.0.0.1#5335 -ipset=/scholar.google.com.pr/gfwlist -server=/itunesu.net/127.0.0.1#5335 -ipset=/itunesu.net/gfwlist +server=/hentailegendado.com/127.0.0.1#5335 +ipset=/hentailegendado.com/gfwlist +server=/xn--x-qeu1ji09tzlg.biz/127.0.0.1#5335 +ipset=/xn--x-qeu1ji09tzlg.biz/gfwlist +server=/instagramkusu.com/127.0.0.1#5335 +ipset=/instagramkusu.com/gfwlist server=/nikefoundation.org/127.0.0.1#5335 ipset=/nikefoundation.org/gfwlist server=/vercel-status.com/127.0.0.1#5335 ipset=/vercel-status.com/gfwlist +server=/qzav.tv/127.0.0.1#5335 +ipset=/qzav.tv/gfwlist +server=/hdtube1.com/127.0.0.1#5335 +ipset=/hdtube1.com/gfwlist server=/bmw-connecteddrive.ro/127.0.0.1#5335 ipset=/bmw-connecteddrive.ro/gfwlist -server=/directvforhotels.com/127.0.0.1#5335 -ipset=/directvforhotels.com/gfwlist -server=/anidom.com/127.0.0.1#5335 -ipset=/anidom.com/gfwlist +server=/mybeatsbydrestudio.com/127.0.0.1#5335 +ipset=/mybeatsbydrestudio.com/gfwlist server=/beatsbydrdrecustom.com/127.0.0.1#5335 ipset=/beatsbydrdrecustom.com/gfwlist -server=/durex.co.il/127.0.0.1#5335 -ipset=/durex.co.il/gfwlist -server=/niketaiwan.net/127.0.0.1#5335 -ipset=/niketaiwan.net/gfwlist +server=/metropolitana.tokyo/127.0.0.1#5335 +ipset=/metropolitana.tokyo/gfwlist +server=/gimy.co/127.0.0.1#5335 +ipset=/gimy.co/gfwlist +server=/e-bay.com/127.0.0.1#5335 +ipset=/e-bay.com/gfwlist server=/gannett-cdn.com/127.0.0.1#5335 ipset=/gannett-cdn.com/gfwlist -server=/bmw-military-sales.com/127.0.0.1#5335 -ipset=/bmw-military-sales.com/gfwlist -server=/buyitnow.com/127.0.0.1#5335 -ipset=/buyitnow.com/gfwlist +server=/vol.moe/127.0.0.1#5335 +ipset=/vol.moe/gfwlist server=/razer.com/127.0.0.1#5335 ipset=/razer.com/gfwlist -server=/oxforddnb.com/127.0.0.1#5335 -ipset=/oxforddnb.com/gfwlist server=/nurofen.hr/127.0.0.1#5335 ipset=/nurofen.hr/gfwlist -server=/applicationinsights.io/127.0.0.1#5335 -ipset=/applicationinsights.io/gfwlist -server=/mastercard.hr/127.0.0.1#5335 -ipset=/mastercard.hr/gfwlist -server=/playnintendo.com/127.0.0.1#5335 -ipset=/playnintendo.com/gfwlist +server=/xiaofu.me/127.0.0.1#5335 +ipset=/xiaofu.me/gfwlist server=/jneurosci.org/127.0.0.1#5335 ipset=/jneurosci.org/gfwlist -server=/amazon.co.jp/127.0.0.1#5335 -ipset=/amazon.co.jp/gfwlist server=/paypal-gifts.com/127.0.0.1#5335 ipset=/paypal-gifts.com/gfwlist -server=/visa.com.ge/127.0.0.1#5335 -ipset=/visa.com.ge/gfwlist -server=/didce.com/127.0.0.1#5335 -ipset=/didce.com/gfwlist +server=/yahoofinance.com/127.0.0.1#5335 +ipset=/yahoofinance.com/gfwlist server=/voxops.net/127.0.0.1#5335 ipset=/voxops.net/gfwlist server=/okex.com/127.0.0.1#5335 ipset=/okex.com/gfwlist server=/rustup.rs/127.0.0.1#5335 ipset=/rustup.rs/gfwlist -server=/optanedifference.com/127.0.0.1#5335 -ipset=/optanedifference.com/gfwlist +server=/teenporntube.xxx/127.0.0.1#5335 +ipset=/teenporntube.xxx/gfwlist server=/iphonecase5.com/127.0.0.1#5335 ipset=/iphonecase5.com/gfwlist server=/akamai-cdn.com/127.0.0.1#5335 ipset=/akamai-cdn.com/gfwlist -server=/itu.int/127.0.0.1#5335 -ipset=/itu.int/gfwlist +server=/iqq3.cc/127.0.0.1#5335 +ipset=/iqq3.cc/gfwlist +server=/extrajapaneseporn.com/127.0.0.1#5335 +ipset=/extrajapaneseporn.com/gfwlist server=/bydrebeats.com/127.0.0.1#5335 ipset=/bydrebeats.com/gfwlist -server=/beatscheap-nz.com/127.0.0.1#5335 -ipset=/beatscheap-nz.com/gfwlist server=/pagecdn.io/127.0.0.1#5335 ipset=/pagecdn.io/gfwlist -server=/verisigninc.com/127.0.0.1#5335 -ipset=/verisigninc.com/gfwlist server=/facebookcareer.com/127.0.0.1#5335 ipset=/facebookcareer.com/gfwlist -server=/intercomcdn.com/127.0.0.1#5335 -ipset=/intercomcdn.com/gfwlist -server=/tunsafe.com/127.0.0.1#5335 -ipset=/tunsafe.com/gfwlist -server=/editorx.com/127.0.0.1#5335 -ipset=/editorx.com/gfwlist +server=/mastercard.cl/127.0.0.1#5335 +ipset=/mastercard.cl/gfwlist server=/componentkit.org/127.0.0.1#5335 ipset=/componentkit.org/gfwlist -server=/wholeplanetfoundation.org/127.0.0.1#5335 -ipset=/wholeplanetfoundation.org/gfwlist -server=/trustsign.ch/127.0.0.1#5335 -ipset=/trustsign.ch/gfwlist -server=/xn--kput3imi374g.xn--hxt814e/127.0.0.1#5335 -ipset=/xn--kput3imi374g.xn--hxt814e/gfwlist -server=/schemer.com/127.0.0.1#5335 -ipset=/schemer.com/gfwlist +server=/mywife.cc/127.0.0.1#5335 +ipset=/mywife.cc/gfwlist +server=/facebook.nl/127.0.0.1#5335 +ipset=/facebook.nl/gfwlist server=/keytransparency.com/127.0.0.1#5335 ipset=/keytransparency.com/gfwlist server=/wwwxoom.com/127.0.0.1#5335 ipset=/wwwxoom.com/gfwlist -server=/pinterest.it/127.0.0.1#5335 -ipset=/pinterest.it/gfwlist -server=/msropendata.com/127.0.0.1#5335 -ipset=/msropendata.com/gfwlist server=/amd.com/127.0.0.1#5335 ipset=/amd.com/gfwlist -server=/ie10.com/127.0.0.1#5335 -ipset=/ie10.com/gfwlist -server=/google.com.py/127.0.0.1#5335 -ipset=/google.com.py/gfwlist +server=/japteenx.com/127.0.0.1#5335 +ipset=/japteenx.com/gfwlist server=/hulucall.com/127.0.0.1#5335 ipset=/hulucall.com/gfwlist -server=/azuredigitaltwins.net/127.0.0.1#5335 -ipset=/azuredigitaltwins.net/gfwlist -server=/etbc.com.hk/127.0.0.1#5335 -ipset=/etbc.com.hk/gfwlist +server=/microsoftonline.com/127.0.0.1#5335 +ipset=/microsoftonline.com/gfwlist +server=/graiasmovies.com/127.0.0.1#5335 +ipset=/graiasmovies.com/gfwlist server=/nikeidshoes.com/127.0.0.1#5335 ipset=/nikeidshoes.com/gfwlist server=/google.rs/127.0.0.1#5335 ipset=/google.rs/gfwlist -server=/jmlr.org/127.0.0.1#5335 -ipset=/jmlr.org/gfwlist -server=/bloombergtv.mn/127.0.0.1#5335 -ipset=/bloombergtv.mn/gfwlist -server=/speedhunters.com/127.0.0.1#5335 -ipset=/speedhunters.com/gfwlist -server=/camelot-europe.com/127.0.0.1#5335 -ipset=/camelot-europe.com/gfwlist server=/myfoxny.com/127.0.0.1#5335 ipset=/myfoxny.com/gfwlist -server=/digitalcertvalidation.com/127.0.0.1#5335 -ipset=/digitalcertvalidation.com/gfwlist -server=/xn--xsq959n.com/127.0.0.1#5335 -ipset=/xn--xsq959n.com/gfwlist +server=/xvideos.tv.br/127.0.0.1#5335 +ipset=/xvideos.tv.br/gfwlist server=/foxnews.tv/127.0.0.1#5335 ipset=/foxnews.tv/gfwlist -server=/themercury.com.au/127.0.0.1#5335 -ipset=/themercury.com.au/gfwlist -server=/zoom.com.cn/127.0.0.1#5335 -ipset=/zoom.com.cn/gfwlist -server=/oanencore.com/127.0.0.1#5335 -ipset=/oanencore.com/gfwlist +server=/hongmaodan100.com/127.0.0.1#5335 +ipset=/hongmaodan100.com/gfwlist +server=/topbeatsforsale.com/127.0.0.1#5335 +ipset=/topbeatsforsale.com/gfwlist server=/pearsonperu.pe/127.0.0.1#5335 ipset=/pearsonperu.pe/gfwlist +server=/gayrawclub.com/127.0.0.1#5335 +ipset=/gayrawclub.com/gfwlist server=/chromebook.com/127.0.0.1#5335 ipset=/chromebook.com/gfwlist -server=/mol.im/127.0.0.1#5335 -ipset=/mol.im/gfwlist -server=/paypalbenefits.com/127.0.0.1#5335 -ipset=/paypalbenefits.com/gfwlist +server=/newsconcierge.com.au/127.0.0.1#5335 +ipset=/newsconcierge.com.au/gfwlist server=/velkaepocha.cz/127.0.0.1#5335 ipset=/velkaepocha.cz/gfwlist +server=/homo.xxx/127.0.0.1#5335 +ipset=/homo.xxx/gfwlist server=/mini.re/127.0.0.1#5335 ipset=/mini.re/gfwlist -server=/nvidia.fr/127.0.0.1#5335 -ipset=/nvidia.fr/gfwlist server=/ieeemagnetics.org/127.0.0.1#5335 ipset=/ieeemagnetics.org/gfwlist server=/halfjapan.com/127.0.0.1#5335 ipset=/halfjapan.com/gfwlist -server=/practicalbusinessskills.com/127.0.0.1#5335 -ipset=/practicalbusinessskills.com/gfwlist -server=/kphimsex.net/127.0.0.1#5335 -ipset=/kphimsex.net/gfwlist -server=/studiobeatsbydrdre.com/127.0.0.1#5335 -ipset=/studiobeatsbydrdre.com/gfwlist -server=/rubygems.org/127.0.0.1#5335 -ipset=/rubygems.org/gfwlist -server=/yahoo.com.mx/127.0.0.1#5335 -ipset=/yahoo.com.mx/gfwlist -server=/volvobuses.fr/127.0.0.1#5335 -ipset=/volvobuses.fr/gfwlist +server=/outlook.com/127.0.0.1#5335 +ipset=/outlook.com/gfwlist +server=/filmeporno.blog/127.0.0.1#5335 +ipset=/filmeporno.blog/gfwlist +server=/xxbook.cc/127.0.0.1#5335 +ipset=/xxbook.cc/gfwlist server=/huffingtonpost.gr/127.0.0.1#5335 ipset=/huffingtonpost.gr/gfwlist -server=/makecode.org/127.0.0.1#5335 -ipset=/makecode.org/gfwlist -server=/icashpassport.com.mx/127.0.0.1#5335 -ipset=/icashpassport.com.mx/gfwlist -server=/getwsone.com/127.0.0.1#5335 -ipset=/getwsone.com/gfwlist -server=/bmw-motorrad.dk/127.0.0.1#5335 -ipset=/bmw-motorrad.dk/gfwlist -server=/cbssports.com/127.0.0.1#5335 -ipset=/cbssports.com/gfwlist -server=/durex.com/127.0.0.1#5335 -ipset=/durex.com/gfwlist +server=/592r.com/127.0.0.1#5335 +ipset=/592r.com/gfwlist +server=/beatsbydreauofficial.com/127.0.0.1#5335 +ipset=/beatsbydreauofficial.com/gfwlist +server=/cuckwatchingwife.com/127.0.0.1#5335 +ipset=/cuckwatchingwife.com/gfwlist +server=/cockofhorse.com/127.0.0.1#5335 +ipset=/cockofhorse.com/gfwlist +server=/nutaku.com/127.0.0.1#5335 +ipset=/nutaku.com/gfwlist +server=/mature-nl.eu/127.0.0.1#5335 +ipset=/mature-nl.eu/gfwlist server=/paypalnetwork.info/127.0.0.1#5335 ipset=/paypalnetwork.info/gfwlist +server=/azadiradio.com/127.0.0.1#5335 +ipset=/azadiradio.com/gfwlist server=/anaconda.com/127.0.0.1#5335 ipset=/anaconda.com/gfwlist -server=/monbeats2013.com/127.0.0.1#5335 -ipset=/monbeats2013.com/gfwlist -server=/atlantaminidealers.com/127.0.0.1#5335 -ipset=/atlantaminidealers.com/gfwlist +server=/affirmtrust.com/127.0.0.1#5335 +ipset=/affirmtrust.com/gfwlist server=/microsoft.fi/127.0.0.1#5335 ipset=/microsoft.fi/gfwlist -server=/slack-files.com/127.0.0.1#5335 -ipset=/slack-files.com/gfwlist server=/iphone4.com.br/127.0.0.1#5335 ipset=/iphone4.com.br/gfwlist -server=/ddh.gg/127.0.0.1#5335 -ipset=/ddh.gg/gfwlist -server=/espndotcom.tt.omtrdc.net/127.0.0.1#5335 -ipset=/espndotcom.tt.omtrdc.net/gfwlist +server=/tyler-brown.com/127.0.0.1#5335 +ipset=/tyler-brown.com/gfwlist server=/buypass.com/127.0.0.1#5335 ipset=/buypass.com/gfwlist -server=/facebookblueprint.net/127.0.0.1#5335 -ipset=/facebookblueprint.net/gfwlist +server=/uplust.com/127.0.0.1#5335 +ipset=/uplust.com/gfwlist server=/nvidia.asia/127.0.0.1#5335 ipset=/nvidia.asia/gfwlist -server=/mastercardworldwide.com/127.0.0.1#5335 -ipset=/mastercardworldwide.com/gfwlist -server=/instaplayer.net/127.0.0.1#5335 -ipset=/instaplayer.net/gfwlist -server=/foxsportsuniversity.com/127.0.0.1#5335 -ipset=/foxsportsuniversity.com/gfwlist -server=/minivictoria.ca/127.0.0.1#5335 -ipset=/minivictoria.ca/gfwlist +server=/teendreams.com/127.0.0.1#5335 +ipset=/teendreams.com/gfwlist +server=/longman.ch/127.0.0.1#5335 +ipset=/longman.ch/gfwlist server=/starbucks.com.gr/127.0.0.1#5335 ipset=/starbucks.com.gr/gfwlist -server=/amazon.nl/127.0.0.1#5335 -ipset=/amazon.nl/gfwlist +server=/fout.jp/127.0.0.1#5335 +ipset=/fout.jp/gfwlist server=/google.com.tw/127.0.0.1#5335 ipset=/google.com.tw/gfwlist server=/intel.ch/127.0.0.1#5335 ipset=/intel.ch/gfwlist server=/apa.org/127.0.0.1#5335 ipset=/apa.org/gfwlist -server=/casquebeatsofficiel-fr.com/127.0.0.1#5335 -ipset=/casquebeatsofficiel-fr.com/gfwlist server=/strikingly.com/127.0.0.1#5335 ipset=/strikingly.com/gfwlist server=/yahoo.tl/127.0.0.1#5335 ipset=/yahoo.tl/gfwlist -server=/voxmedia.com/127.0.0.1#5335 -ipset=/voxmedia.com/gfwlist -server=/appleone.chat/127.0.0.1#5335 -ipset=/appleone.chat/gfwlist +server=/xiaogirls.com/127.0.0.1#5335 +ipset=/xiaogirls.com/gfwlist server=/cargigileads.com/127.0.0.1#5335 ipset=/cargigileads.com/gfwlist -server=/mfg-inspector.com/127.0.0.1#5335 -ipset=/mfg-inspector.com/gfwlist server=/google.com.kh/127.0.0.1#5335 ipset=/google.com.kh/gfwlist -server=/latampartneruniversity.com/127.0.0.1#5335 -ipset=/latampartneruniversity.com/gfwlist -server=/facecbook.com/127.0.0.1#5335 -ipset=/facecbook.com/gfwlist server=/coinonecorp.com/127.0.0.1#5335 ipset=/coinonecorp.com/gfwlist -server=/bmw.com.bn/127.0.0.1#5335 -ipset=/bmw.com.bn/gfwlist -server=/fox49.tv/127.0.0.1#5335 -ipset=/fox49.tv/gfwlist +server=/javfuck.net/127.0.0.1#5335 +ipset=/javfuck.net/gfwlist +server=/iskoot.com/127.0.0.1#5335 +ipset=/iskoot.com/gfwlist server=/2o7.net/127.0.0.1#5335 ipset=/2o7.net/gfwlist server=/scholar.google.com.vn/127.0.0.1#5335 ipset=/scholar.google.com.vn/gfwlist -server=/collins.in/127.0.0.1#5335 -ipset=/collins.in/gfwlist +server=/comments.app/127.0.0.1#5335 +ipset=/comments.app/gfwlist +server=/thebanker.com/127.0.0.1#5335 +ipset=/thebanker.com/gfwlist server=/skysports.com/127.0.0.1#5335 ipset=/skysports.com/gfwlist server=/freenode.net/127.0.0.1#5335 ipset=/freenode.net/gfwlist -server=/brill.com/127.0.0.1#5335 -ipset=/brill.com/gfwlist server=/mini.ru/127.0.0.1#5335 ipset=/mini.ru/gfwlist -server=/intel.com.mx/127.0.0.1#5335 -ipset=/intel.com.mx/gfwlist -server=/hboasia.com/127.0.0.1#5335 -ipset=/hboasia.com/gfwlist -server=/mastercard.eu/127.0.0.1#5335 -ipset=/mastercard.eu/gfwlist -server=/bcvp0rtal.com/127.0.0.1#5335 -ipset=/bcvp0rtal.com/gfwlist +server=/1lib.cloud/127.0.0.1#5335 +ipset=/1lib.cloud/gfwlist +server=/supadou.blogism.jp/127.0.0.1#5335 +ipset=/supadou.blogism.jp/gfwlist server=/maddenrewards.com/127.0.0.1#5335 ipset=/maddenrewards.com/gfwlist -server=/pogobeta.com/127.0.0.1#5335 -ipset=/pogobeta.com/gfwlist -server=/udnfunlife.com/127.0.0.1#5335 -ipset=/udnfunlife.com/gfwlist -server=/newsmax.in/127.0.0.1#5335 -ipset=/newsmax.in/gfwlist -server=/youtube.ru/127.0.0.1#5335 -ipset=/youtube.ru/gfwlist +server=/freyalist.com/127.0.0.1#5335 +ipset=/freyalist.com/gfwlist +server=/naughty.com/127.0.0.1#5335 +ipset=/naughty.com/gfwlist +server=/sacduc.com/127.0.0.1#5335 +ipset=/sacduc.com/gfwlist server=/nypost.help/127.0.0.1#5335 ipset=/nypost.help/gfwlist -server=/mini.com.py/127.0.0.1#5335 -ipset=/mini.com.py/gfwlist +server=/17mimei.club/127.0.0.1#5335 +ipset=/17mimei.club/gfwlist +server=/pornotube69.nl/127.0.0.1#5335 +ipset=/pornotube69.nl/gfwlist server=/visa.be/127.0.0.1#5335 ipset=/visa.be/gfwlist server=/musical.ly/127.0.0.1#5335 ipset=/musical.ly/gfwlist server=/app0le.com/127.0.0.1#5335 ipset=/app0le.com/gfwlist -server=/whonix.org/127.0.0.1#5335 -ipset=/whonix.org/gfwlist +server=/gaytube.com/127.0.0.1#5335 +ipset=/gaytube.com/gfwlist server=/delicious.com.au/127.0.0.1#5335 ipset=/delicious.com.au/gfwlist server=/facebook-studio.com/127.0.0.1#5335 ipset=/facebook-studio.com/gfwlist server=/macreach.com/127.0.0.1#5335 ipset=/macreach.com/gfwlist -server=/adobeexperienceawards.com/127.0.0.1#5335 -ipset=/adobeexperienceawards.com/gfwlist -server=/pki-post.ch/127.0.0.1#5335 -ipset=/pki-post.ch/gfwlist -server=/hp3dsamplepromo.com/127.0.0.1#5335 -ipset=/hp3dsamplepromo.com/gfwlist +server=/naughtygamesource.com/127.0.0.1#5335 +ipset=/naughtygamesource.com/gfwlist server=/blogspot.co.uk/127.0.0.1#5335 ipset=/blogspot.co.uk/gfwlist -server=/mewe.com/127.0.0.1#5335 -ipset=/mewe.com/gfwlist server=/minecraft.net/127.0.0.1#5335 ipset=/minecraft.net/gfwlist server=/androidify.com/127.0.0.1#5335 ipset=/androidify.com/gfwlist -server=/gputechconf.eu/127.0.0.1#5335 -ipset=/gputechconf.eu/gfwlist server=/bmw-motorrad.be/127.0.0.1#5335 ipset=/bmw-motorrad.be/gfwlist -server=/boxun.com/127.0.0.1#5335 -ipset=/boxun.com/gfwlist -server=/mcdonalds.se/127.0.0.1#5335 -ipset=/mcdonalds.se/gfwlist -server=/dropboxbusiness.com/127.0.0.1#5335 -ipset=/dropboxbusiness.com/gfwlist +server=/vs-hls-push-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vs-hls-push-uk-live.akamaized.net/gfwlist server=/foxsmallbusinesscenter.com/127.0.0.1#5335 ipset=/foxsmallbusinesscenter.com/gfwlist -server=/jfrog.com/127.0.0.1#5335 -ipset=/jfrog.com/gfwlist -server=/forzamotorsport.net/127.0.0.1#5335 -ipset=/forzamotorsport.net/gfwlist -server=/fox9.com/127.0.0.1#5335 -ipset=/fox9.com/gfwlist -server=/dreamteamfc.com/127.0.0.1#5335 -ipset=/dreamteamfc.com/gfwlist -server=/facebook-program.com/127.0.0.1#5335 -ipset=/facebook-program.com/gfwlist -server=/amebaowndme.com/127.0.0.1#5335 -ipset=/amebaowndme.com/gfwlist -server=/bmwartjourney.com/127.0.0.1#5335 -ipset=/bmwartjourney.com/gfwlist +server=/nikesellorder.com/127.0.0.1#5335 +ipset=/nikesellorder.com/gfwlist +server=/asianscreens.com/127.0.0.1#5335 +ipset=/asianscreens.com/gfwlist +server=/jmcomic1.city/127.0.0.1#5335 +ipset=/jmcomic1.city/gfwlist +server=/twistys.com/127.0.0.1#5335 +ipset=/twistys.com/gfwlist +server=/deutschepornos-kostenlos.net/127.0.0.1#5335 +ipset=/deutschepornos-kostenlos.net/gfwlist server=/sdcountybmw.com/127.0.0.1#5335 ipset=/sdcountybmw.com/gfwlist server=/bmw-classic.com/127.0.0.1#5335 ipset=/bmw-classic.com/gfwlist -server=/paramount.com/127.0.0.1#5335 -ipset=/paramount.com/gfwlist +server=/heptio.com/127.0.0.1#5335 +ipset=/heptio.com/gfwlist server=/visa.co.nz/127.0.0.1#5335 ipset=/visa.co.nz/gfwlist +server=/libgen.me/127.0.0.1#5335 +ipset=/libgen.me/gfwlist server=/bmw.hu/127.0.0.1#5335 ipset=/bmw.hu/gfwlist +server=/xn--mtswd61ejxq.com/127.0.0.1#5335 +ipset=/xn--mtswd61ejxq.com/gfwlist server=/terapeak.hk/127.0.0.1#5335 ipset=/terapeak.hk/gfwlist -server=/easports.com/127.0.0.1#5335 -ipset=/easports.com/gfwlist -server=/swisssign.net/127.0.0.1#5335 -ipset=/swisssign.net/gfwlist -server=/bloombergsurvey.com/127.0.0.1#5335 -ipset=/bloombergsurvey.com/gfwlist -server=/airwick.se/127.0.0.1#5335 -ipset=/airwick.se/gfwlist -server=/huluapp.com/127.0.0.1#5335 -ipset=/huluapp.com/gfwlist +server=/favepornvids.com/127.0.0.1#5335 +ipset=/favepornvids.com/gfwlist +server=/ted.com/127.0.0.1#5335 +ipset=/ted.com/gfwlist +server=/nikebbn.com/127.0.0.1#5335 +ipset=/nikebbn.com/gfwlist server=/oed.com/127.0.0.1#5335 ipset=/oed.com/gfwlist -server=/icloudo.net/127.0.0.1#5335 -ipset=/icloudo.net/gfwlist -server=/vfsforgit.com/127.0.0.1#5335 -ipset=/vfsforgit.com/gfwlist -server=/ebayt.com/127.0.0.1#5335 -ipset=/ebayt.com/gfwlist server=/apple-cloudkit.com/127.0.0.1#5335 ipset=/apple-cloudkit.com/gfwlist server=/bmw.hn/127.0.0.1#5335 ipset=/bmw.hn/gfwlist -server=/quoracdn.net/127.0.0.1#5335 -ipset=/quoracdn.net/gfwlist -server=/nbcolympics.com/127.0.0.1#5335 -ipset=/nbcolympics.com/gfwlist -server=/sony.pl/127.0.0.1#5335 -ipset=/sony.pl/gfwlist -server=/gonike.com/127.0.0.1#5335 -ipset=/gonike.com/gfwlist -server=/geeksquad.cc/127.0.0.1#5335 -ipset=/geeksquad.cc/gfwlist -server=/foxsports.com.ve/127.0.0.1#5335 -ipset=/foxsports.com.ve/gfwlist +server=/povpornonly.com/127.0.0.1#5335 +ipset=/povpornonly.com/gfwlist +server=/mylust.com/127.0.0.1#5335 +ipset=/mylust.com/gfwlist +server=/reiporno.com/127.0.0.1#5335 +ipset=/reiporno.com/gfwlist +server=/asiansex.sexy/127.0.0.1#5335 +ipset=/asiansex.sexy/gfwlist +server=/vfsco.es/127.0.0.1#5335 +ipset=/vfsco.es/gfwlist server=/pearsoneducacion.net/127.0.0.1#5335 ipset=/pearsoneducacion.net/gfwlist server=/apple.nl/127.0.0.1#5335 ipset=/apple.nl/gfwlist -server=/verisign.es/127.0.0.1#5335 -ipset=/verisign.es/gfwlist server=/brightcove.net/127.0.0.1#5335 ipset=/brightcove.net/gfwlist -server=/bmw.com.pe/127.0.0.1#5335 -ipset=/bmw.com.pe/gfwlist +server=/boshancy.com/127.0.0.1#5335 +ipset=/boshancy.com/gfwlist server=/facebookexchange.com/127.0.0.1#5335 ipset=/facebookexchange.com/gfwlist -server=/democracy.earth/127.0.0.1#5335 -ipset=/democracy.earth/gfwlist -server=/ipodnano.net/127.0.0.1#5335 -ipset=/ipodnano.net/gfwlist -server=/needforspeedoverdrive.com/127.0.0.1#5335 -ipset=/needforspeedoverdrive.com/gfwlist -server=/visiontimes.net/127.0.0.1#5335 -ipset=/visiontimes.net/gfwlist -server=/drebeatsdeutschland.net/127.0.0.1#5335 -ipset=/drebeatsdeutschland.net/gfwlist -server=/bestbuyideax.com/127.0.0.1#5335 -ipset=/bestbuyideax.com/gfwlist +server=/xnxx.health/127.0.0.1#5335 +ipset=/xnxx.health/gfwlist +server=/adult-web-site.net/127.0.0.1#5335 +ipset=/adult-web-site.net/gfwlist +server=/zzgays.com/127.0.0.1#5335 +ipset=/zzgays.com/gfwlist server=/beatsbydreirelandonlines.com/127.0.0.1#5335 ipset=/beatsbydreirelandonlines.com/gfwlist -server=/ccnsite.com/127.0.0.1#5335 -ipset=/ccnsite.com/gfwlist -server=/o0-2.com/127.0.0.1#5335 -ipset=/o0-2.com/gfwlist -server=/volvotrucks.co.uk/127.0.0.1#5335 -ipset=/volvotrucks.co.uk/gfwlist -server=/attspecial.com/127.0.0.1#5335 -ipset=/attspecial.com/gfwlist +server=/hentaia.net/127.0.0.1#5335 +ipset=/hentaia.net/gfwlist +server=/google.co.th/127.0.0.1#5335 +ipset=/google.co.th/gfwlist server=/adidas.pl/127.0.0.1#5335 ipset=/adidas.pl/gfwlist server=/google.la/127.0.0.1#5335 ipset=/google.la/gfwlist -server=/huloo.cc/127.0.0.1#5335 -ipset=/huloo.cc/gfwlist +server=/teenporngallery.net/127.0.0.1#5335 +ipset=/teenporngallery.net/gfwlist +server=/bigblackdicklover.com/127.0.0.1#5335 +ipset=/bigblackdicklover.com/gfwlist server=/miniinvasion.ca/127.0.0.1#5335 ipset=/miniinvasion.ca/gfwlist server=/intel.ca/127.0.0.1#5335 ipset=/intel.ca/gfwlist -server=/httpwwwfacebook.com/127.0.0.1#5335 -ipset=/httpwwwfacebook.com/gfwlist -server=/idnike.com/127.0.0.1#5335 -ipset=/idnike.com/gfwlist -server=/mini.mq/127.0.0.1#5335 -ipset=/mini.mq/gfwlist +server=/erofus.com/127.0.0.1#5335 +ipset=/erofus.com/gfwlist +server=/novinhagostosa10.com/127.0.0.1#5335 +ipset=/novinhagostosa10.com/gfwlist +server=/mirrormedia.mg/127.0.0.1#5335 +ipset=/mirrormedia.mg/gfwlist server=/pearsonactivelearn.com/127.0.0.1#5335 ipset=/pearsonactivelearn.com/gfwlist server=/linotype.com/127.0.0.1#5335 ipset=/linotype.com/gfwlist -server=/bmw-connecteddrive.ch/127.0.0.1#5335 -ipset=/bmw-connecteddrive.ch/gfwlist server=/bmw-motorrad.bh/127.0.0.1#5335 ipset=/bmw-motorrad.bh/gfwlist +server=/pantswalker.net/127.0.0.1#5335 +ipset=/pantswalker.net/gfwlist server=/alphera.ie/127.0.0.1#5335 ipset=/alphera.ie/gfwlist server=/zeeuk.com/127.0.0.1#5335 ipset=/zeeuk.com/gfwlist -server=/bmw.hr/127.0.0.1#5335 -ipset=/bmw.hr/gfwlist -server=/finishinfo.se/127.0.0.1#5335 -ipset=/finishinfo.se/gfwlist +server=/ve-uhd-push-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/ve-uhd-push-uk-live.akamaized.net/gfwlist +server=/glam0ur.com/127.0.0.1#5335 +ipset=/glam0ur.com/gfwlist +server=/ccav691api.com/127.0.0.1#5335 +ipset=/ccav691api.com/gfwlist server=/bbycloud.com/127.0.0.1#5335 ipset=/bbycloud.com/gfwlist -server=/realmilwaukeenow.com/127.0.0.1#5335 -ipset=/realmilwaukeenow.com/gfwlist server=/bmw-motorrad.no/127.0.0.1#5335 ipset=/bmw-motorrad.no/gfwlist server=/icloudsetup.com/127.0.0.1#5335 ipset=/icloudsetup.com/gfwlist -server=/pinterest.at/127.0.0.1#5335 -ipset=/pinterest.at/gfwlist -server=/itunesessentials.com/127.0.0.1#5335 -ipset=/itunesessentials.com/gfwlist +server=/abema.io/127.0.0.1#5335 +ipset=/abema.io/gfwlist server=/netvigator.com/127.0.0.1#5335 ipset=/netvigator.com/gfwlist -server=/eenike.com/127.0.0.1#5335 -ipset=/eenike.com/gfwlist -server=/cisco-returns.com/127.0.0.1#5335 -ipset=/cisco-returns.com/gfwlist -server=/apple.ro/127.0.0.1#5335 -ipset=/apple.ro/gfwlist +server=/fli8.xyz/127.0.0.1#5335 +ipset=/fli8.xyz/gfwlist +server=/erogazou-pinkline.com/127.0.0.1#5335 +ipset=/erogazou-pinkline.com/gfwlist +server=/jpg4.info/127.0.0.1#5335 +ipset=/jpg4.info/gfwlist +server=/virtualtaboo.com/127.0.0.1#5335 +ipset=/virtualtaboo.com/gfwlist server=/netflix.com/127.0.0.1#5335 ipset=/netflix.com/gfwlist -server=/appleexpo.eu/127.0.0.1#5335 -ipset=/appleexpo.eu/gfwlist -server=/magento.com/127.0.0.1#5335 -ipset=/magento.com/gfwlist +server=/pstorage.space/127.0.0.1#5335 +ipset=/pstorage.space/gfwlist +server=/applestoreonline.com/127.0.0.1#5335 +ipset=/applestoreonline.com/gfwlist server=/dettolarabia.com/127.0.0.1#5335 ipset=/dettolarabia.com/gfwlist server=/trustwave.com/127.0.0.1#5335 ipset=/trustwave.com/gfwlist +server=/eroyakuba.com/127.0.0.1#5335 +ipset=/eroyakuba.com/gfwlist server=/encoretvb.com/127.0.0.1#5335 ipset=/encoretvb.com/gfwlist -server=/starbucks.ad/127.0.0.1#5335 -ipset=/starbucks.ad/gfwlist +server=/grannytube.net/127.0.0.1#5335 +ipset=/grannytube.net/gfwlist server=/eacodigos.com/127.0.0.1#5335 ipset=/eacodigos.com/gfwlist server=/intel.mw/127.0.0.1#5335 ipset=/intel.mw/gfwlist +server=/porndigger.me/127.0.0.1#5335 +ipset=/porndigger.me/gfwlist server=/slackdemo.com/127.0.0.1#5335 ipset=/slackdemo.com/gfwlist -server=/ebay25.com/127.0.0.1#5335 -ipset=/ebay25.com/gfwlist +server=/bmw-connecteddrive.tw/127.0.0.1#5335 +ipset=/bmw-connecteddrive.tw/gfwlist server=/charticulator.com/127.0.0.1#5335 ipset=/charticulator.com/gfwlist -server=/fastlane.tools/127.0.0.1#5335 -ipset=/fastlane.tools/gfwlist -server=/kindgirls.com/127.0.0.1#5335 -ipset=/kindgirls.com/gfwlist -server=/hpfaqs.com/127.0.0.1#5335 -ipset=/hpfaqs.com/gfwlist -server=/mcdonalds.com/127.0.0.1#5335 -ipset=/mcdonalds.com/gfwlist -server=/sign.new/127.0.0.1#5335 -ipset=/sign.new/gfwlist -server=/chroniclesec.com/127.0.0.1#5335 -ipset=/chroniclesec.com/gfwlist +server=/7mmtv.sx/127.0.0.1#5335 +ipset=/7mmtv.sx/gfwlist server=/yahoo.by/127.0.0.1#5335 ipset=/yahoo.by/gfwlist -server=/voacambodia.com/127.0.0.1#5335 -ipset=/voacambodia.com/gfwlist server=/cutt.ly/127.0.0.1#5335 ipset=/cutt.ly/gfwlist -server=/sextop1.net/127.0.0.1#5335 -ipset=/sextop1.net/gfwlist -server=/hulugans.com/127.0.0.1#5335 -ipset=/hulugans.com/gfwlist -server=/realamericanstories.tv/127.0.0.1#5335 -ipset=/realamericanstories.tv/gfwlist -server=/bmw-gta.ca/127.0.0.1#5335 -ipset=/bmw-gta.ca/gfwlist -server=/favebook.com/127.0.0.1#5335 -ipset=/favebook.com/gfwlist -server=/beatsbydre-headphones.com/127.0.0.1#5335 -ipset=/beatsbydre-headphones.com/gfwlist -server=/marvelsuperwar.com/127.0.0.1#5335 -ipset=/marvelsuperwar.com/gfwlist +server=/mycartoonsexgames.com/127.0.0.1#5335 +ipset=/mycartoonsexgames.com/gfwlist +server=/google.com.qa/127.0.0.1#5335 +ipset=/google.com.qa/gfwlist +server=/analpornosex.com/127.0.0.1#5335 +ipset=/analpornosex.com/gfwlist +server=/asianporn.rest/127.0.0.1#5335 +ipset=/asianporn.rest/gfwlist +server=/exposedlatinas.com/127.0.0.1#5335 +ipset=/exposedlatinas.com/gfwlist server=/swissid.ch/127.0.0.1#5335 ipset=/swissid.ch/gfwlist -server=/fastlane.ci/127.0.0.1#5335 -ipset=/fastlane.ci/gfwlist -server=/applestore.com.tw/127.0.0.1#5335 -ipset=/applestore.com.tw/gfwlist -server=/xnxx-cdn.com/127.0.0.1#5335 -ipset=/xnxx-cdn.com/gfwlist +server=/ksescortclub.com/127.0.0.1#5335 +ipset=/ksescortclub.com/gfwlist server=/applestore.com.ee/127.0.0.1#5335 ipset=/applestore.com.ee/gfwlist server=/tegrazone.co.kr/127.0.0.1#5335 ipset=/tegrazone.co.kr/gfwlist -server=/maddenseason.org/127.0.0.1#5335 -ipset=/maddenseason.org/gfwlist server=/drebeatsheadphones-nz.com/127.0.0.1#5335 ipset=/drebeatsheadphones-nz.com/gfwlist -server=/bloomberg.fm/127.0.0.1#5335 -ipset=/bloomberg.fm/gfwlist -server=/vhxqa2.com/127.0.0.1#5335 -ipset=/vhxqa2.com/gfwlist -server=/mini.by/127.0.0.1#5335 -ipset=/mini.by/gfwlist +server=/ftvmilfs.com/127.0.0.1#5335 +ipset=/ftvmilfs.com/gfwlist server=/picasa.com/127.0.0.1#5335 ipset=/picasa.com/gfwlist server=/zoom.com/127.0.0.1#5335 @@ -4556,148 +3818,118 @@ server=/adaptivecards.io/127.0.0.1#5335 ipset=/adaptivecards.io/gfwlist server=/i-book.net/127.0.0.1#5335 ipset=/i-book.net/gfwlist -server=/salebeatslasteststyle4you.com/127.0.0.1#5335 -ipset=/salebeatslasteststyle4you.com/gfwlist +server=/openweather.co.uk/127.0.0.1#5335 +ipset=/openweather.co.uk/gfwlist +server=/loveparents.org/127.0.0.1#5335 +ipset=/loveparents.org/gfwlist server=/google.tg/127.0.0.1#5335 ipset=/google.tg/gfwlist -server=/ebay.ie/127.0.0.1#5335 -ipset=/ebay.ie/gfwlist -server=/eakorea.co.kr/127.0.0.1#5335 -ipset=/eakorea.co.kr/gfwlist -server=/microsoft.az/127.0.0.1#5335 -ipset=/microsoft.az/gfwlist -server=/doom.com/127.0.0.1#5335 -ipset=/doom.com/gfwlist -server=/yahoo.co.bw/127.0.0.1#5335 -ipset=/yahoo.co.bw/gfwlist +server=/brasiltudoliberado.com/127.0.0.1#5335 +ipset=/brasiltudoliberado.com/gfwlist +server=/beatspascher-fr.net/127.0.0.1#5335 +ipset=/beatspascher-fr.net/gfwlist +server=/theporntoplist.com/127.0.0.1#5335 +ipset=/theporntoplist.com/gfwlist +server=/vintagemedicalpictures.com/127.0.0.1#5335 +ipset=/vintagemedicalpictures.com/gfwlist server=/nikemarketing.com/127.0.0.1#5335 ipset=/nikemarketing.com/gfwlist -server=/dropbox.tech/127.0.0.1#5335 -ipset=/dropbox.tech/gfwlist +server=/youpornru.com/127.0.0.1#5335 +ipset=/youpornru.com/gfwlist server=/cambridgeschoolshakespeare.com/127.0.0.1#5335 ipset=/cambridgeschoolshakespeare.com/gfwlist server=/onedinesfree.com/127.0.0.1#5335 ipset=/onedinesfree.com/gfwlist -server=/miniccrc.ca/127.0.0.1#5335 -ipset=/miniccrc.ca/gfwlist -server=/diabloimmortal.com/127.0.0.1#5335 -ipset=/diabloimmortal.com/gfwlist +server=/termius.com/127.0.0.1#5335 +ipset=/termius.com/gfwlist +server=/hypnoporn.net/127.0.0.1#5335 +ipset=/hypnoporn.net/gfwlist server=/espn.com/127.0.0.1#5335 ipset=/espn.com/gfwlist server=/nikkei.co.jp/127.0.0.1#5335 ipset=/nikkei.co.jp/gfwlist -server=/paypal-secure.org/127.0.0.1#5335 -ipset=/paypal-secure.org/gfwlist -server=/venmo-touch.com/127.0.0.1#5335 -ipset=/venmo-touch.com/gfwlist +server=/seedmov18.com/127.0.0.1#5335 +ipset=/seedmov18.com/gfwlist +server=/tourporno.com/127.0.0.1#5335 +ipset=/tourporno.com/gfwlist server=/mini-coupe.ca/127.0.0.1#5335 ipset=/mini-coupe.ca/gfwlist -server=/bmw-sports.com/127.0.0.1#5335 -ipset=/bmw-sports.com/gfwlist server=/akamaihd-staging.net/127.0.0.1#5335 ipset=/akamaihd-staging.net/gfwlist server=/realamericanstories.com/127.0.0.1#5335 ipset=/realamericanstories.com/gfwlist server=/google-syndication.com/127.0.0.1#5335 ipset=/google-syndication.com/gfwlist -server=/google.berlin/127.0.0.1#5335 -ipset=/google.berlin/gfwlist +server=/singlelogin.app/127.0.0.1#5335 +ipset=/singlelogin.app/gfwlist server=/marvel.com/127.0.0.1#5335 ipset=/marvel.com/gfwlist server=/xn--9kr7l.com/127.0.0.1#5335 ipset=/xn--9kr7l.com/gfwlist -server=/beatscasque-france.com/127.0.0.1#5335 -ipset=/beatscasque-france.com/gfwlist -server=/bmw.ht/127.0.0.1#5335 -ipset=/bmw.ht/gfwlist -server=/yahoo.dk/127.0.0.1#5335 -ipset=/yahoo.dk/gfwlist +server=/facebokbook.com/127.0.0.1#5335 +ipset=/facebokbook.com/gfwlist +server=/pornogayphy.com/127.0.0.1#5335 +ipset=/pornogayphy.com/gfwlist +server=/hotporntubes.com/127.0.0.1#5335 +ipset=/hotporntubes.com/gfwlist server=/mastercard.us/127.0.0.1#5335 ipset=/mastercard.us/gfwlist -server=/vkmessenger.app/127.0.0.1#5335 -ipset=/vkmessenger.app/gfwlist -server=/bitsquare.io/127.0.0.1#5335 -ipset=/bitsquare.io/gfwlist server=/spiritofecstasy.com/127.0.0.1#5335 ipset=/spiritofecstasy.com/gfwlist -server=/paypal-donations.com/127.0.0.1#5335 -ipset=/paypal-donations.com/gfwlist +server=/freepornq.com/127.0.0.1#5335 +ipset=/freepornq.com/gfwlist server=/ravm.tv/127.0.0.1#5335 ipset=/ravm.tv/gfwlist -server=/starwarstheoldrepublic.com/127.0.0.1#5335 -ipset=/starwarstheoldrepublic.com/gfwlist -server=/asahicom.jp/127.0.0.1#5335 -ipset=/asahicom.jp/gfwlist -server=/gitbook.io/127.0.0.1#5335 -ipset=/gitbook.io/gfwlist -server=/visainfinite.ca/127.0.0.1#5335 -ipset=/visainfinite.ca/gfwlist -server=/bmw.cc/127.0.0.1#5335 -ipset=/bmw.cc/gfwlist -server=/foxnewsnetwork.com/127.0.0.1#5335 -ipset=/foxnewsnetwork.com/gfwlist -server=/visainfiniteluxuryhotels.ca/127.0.0.1#5335 -ipset=/visainfiniteluxuryhotels.ca/gfwlist +server=/2kgames.com/127.0.0.1#5335 +ipset=/2kgames.com/gfwlist +server=/bluefootcms.com/127.0.0.1#5335 +ipset=/bluefootcms.com/gfwlist +server=/eastore.com/127.0.0.1#5335 +ipset=/eastore.com/gfwlist server=/2013beatsbydrdreonline.com/127.0.0.1#5335 ipset=/2013beatsbydrdreonline.com/gfwlist -server=/bloombergstatus.com/127.0.0.1#5335 -ipset=/bloombergstatus.com/gfwlist -server=/yarininsuyu.com/127.0.0.1#5335 -ipset=/yarininsuyu.com/gfwlist +server=/enfamama.com.ar/127.0.0.1#5335 +ipset=/enfamama.com.ar/gfwlist server=/monotype.com/127.0.0.1#5335 ipset=/monotype.com/gfwlist server=/starwarsbattlefront.com/127.0.0.1#5335 ipset=/starwarsbattlefront.com/gfwlist server=/visa.no/127.0.0.1#5335 ipset=/visa.no/gfwlist -server=/realamericanstories.info/127.0.0.1#5335 -ipset=/realamericanstories.info/gfwlist -server=/disneyadsales.com/127.0.0.1#5335 -ipset=/disneyadsales.com/gfwlist -server=/needforspeedlightning.com/127.0.0.1#5335 -ipset=/needforspeedlightning.com/gfwlist +server=/akamah.com/127.0.0.1#5335 +ipset=/akamah.com/gfwlist server=/fandom.com/127.0.0.1#5335 ipset=/fandom.com/gfwlist -server=/ebaycom.com/127.0.0.1#5335 -ipset=/ebaycom.com/gfwlist server=/tver.co.jp/127.0.0.1#5335 ipset=/tver.co.jp/gfwlist server=/fashionnike.com/127.0.0.1#5335 ipset=/fashionnike.com/gfwlist -server=/foxnewsb2b.com/127.0.0.1#5335 -ipset=/foxnewsb2b.com/gfwlist -server=/iphoneacessorios.com.br/127.0.0.1#5335 -ipset=/iphoneacessorios.com.br/gfwlist +server=/javsin.tv/127.0.0.1#5335 +ipset=/javsin.tv/gfwlist +server=/exxxtrasmall.com/127.0.0.1#5335 +ipset=/exxxtrasmall.com/gfwlist server=/financialsoccer.ca/127.0.0.1#5335 ipset=/financialsoccer.ca/gfwlist -server=/fox26houston.com/127.0.0.1#5335 -ipset=/fox26houston.com/gfwlist -server=/upjav.cc/127.0.0.1#5335 -ipset=/upjav.cc/gfwlist -server=/blazor.net/127.0.0.1#5335 -ipset=/blazor.net/gfwlist -server=/facebcook.com/127.0.0.1#5335 -ipset=/facebcook.com/gfwlist -server=/nextwork.com.tw/127.0.0.1#5335 -ipset=/nextwork.com.tw/gfwlist -server=/blogspot.lt/127.0.0.1#5335 -ipset=/blogspot.lt/gfwlist +server=/zatrahal.online/127.0.0.1#5335 +ipset=/zatrahal.online/gfwlist +server=/fbinnovation.com/127.0.0.1#5335 +ipset=/fbinnovation.com/gfwlist +server=/gfarchive.com/127.0.0.1#5335 +ipset=/gfarchive.com/gfwlist +server=/az764295.vo.msecnd.net/127.0.0.1#5335 +ipset=/az764295.vo.msecnd.net/gfwlist server=/firestonecomercial.cl/127.0.0.1#5335 ipset=/firestonecomercial.cl/gfwlist -server=/onefifteen.org/127.0.0.1#5335 -ipset=/onefifteen.org/gfwlist -server=/life-global.org/127.0.0.1#5335 -ipset=/life-global.org/gfwlist -server=/ebay-authenticate.net/127.0.0.1#5335 -ipset=/ebay-authenticate.net/gfwlist -server=/pca.st/127.0.0.1#5335 -ipset=/pca.st/gfwlist -server=/nationalgeographic.com/127.0.0.1#5335 -ipset=/nationalgeographic.com/gfwlist +server=/impact-ad.jp/127.0.0.1#5335 +ipset=/impact-ad.jp/gfwlist server=/volvotruckcenter.it/127.0.0.1#5335 ipset=/volvotruckcenter.it/gfwlist -server=/blogspot.in/127.0.0.1#5335 -ipset=/blogspot.in/gfwlist +server=/pornoelena.net/127.0.0.1#5335 +ipset=/pornoelena.net/gfwlist +server=/ignitesasia.com/127.0.0.1#5335 +ipset=/ignitesasia.com/gfwlist +server=/evanottyvideos.com/127.0.0.1#5335 +ipset=/evanottyvideos.com/gfwlist server=/feacbooke.com/127.0.0.1#5335 ipset=/feacbooke.com/gfwlist server=/bcovlive.io/127.0.0.1#5335 @@ -4706,12 +3938,8 @@ server=/wikihow.com/127.0.0.1#5335 ipset=/wikihow.com/gfwlist server=/mini-qatar.com/127.0.0.1#5335 ipset=/mini-qatar.com/gfwlist -server=/volvotrucks.ee/127.0.0.1#5335 -ipset=/volvotrucks.ee/gfwlist -server=/xenoblade.com/127.0.0.1#5335 -ipset=/xenoblade.com/gfwlist -server=/magentoliveconference.com/127.0.0.1#5335 -ipset=/magentoliveconference.com/gfwlist +server=/idelreal.org/127.0.0.1#5335 +ipset=/idelreal.org/gfwlist server=/omnitek.tv/127.0.0.1#5335 ipset=/omnitek.tv/gfwlist server=/monsterbeatsbydres.com/127.0.0.1#5335 @@ -4720,292 +3948,232 @@ server=/epochtimes-bg.com/127.0.0.1#5335 ipset=/epochtimes-bg.com/gfwlist server=/starbucksrewardsstarland.com/127.0.0.1#5335 ipset=/starbucksrewardsstarland.com/gfwlist -server=/udn.com.tw/127.0.0.1#5335 -ipset=/udn.com.tw/gfwlist +server=/nu-bay.com/127.0.0.1#5335 +ipset=/nu-bay.com/gfwlist server=/mastercard.co.in/127.0.0.1#5335 ipset=/mastercard.co.in/gfwlist -server=/bitballoon.com/127.0.0.1#5335 -ipset=/bitballoon.com/gfwlist -server=/mktorest.com/127.0.0.1#5335 -ipset=/mktorest.com/gfwlist -server=/epochtimes.com.tw/127.0.0.1#5335 -ipset=/epochtimes.com.tw/gfwlist -server=/cex.io/127.0.0.1#5335 -ipset=/cex.io/gfwlist -server=/volvopenta.com/127.0.0.1#5335 -ipset=/volvopenta.com/gfwlist -server=/faststone.org/127.0.0.1#5335 -ipset=/faststone.org/gfwlist +server=/amateuranalvideos.com/127.0.0.1#5335 +ipset=/amateuranalvideos.com/gfwlist +server=/asiansmaster.com/127.0.0.1#5335 +ipset=/asiansmaster.com/gfwlist +server=/facebook.net/127.0.0.1#5335 +ipset=/facebook.net/gfwlist +server=/minisojordan.com/127.0.0.1#5335 +ipset=/minisojordan.com/gfwlist server=/youtube.com.tn/127.0.0.1#5335 ipset=/youtube.com.tn/gfwlist -server=/googledrive.com/127.0.0.1#5335 -ipset=/googledrive.com/gfwlist -server=/mybmw.ca/127.0.0.1#5335 -ipset=/mybmw.ca/gfwlist -server=/strepsils.hu/127.0.0.1#5335 -ipset=/strepsils.hu/gfwlist +server=/finlitsummit.org/127.0.0.1#5335 +ipset=/finlitsummit.org/gfwlist +server=/bookfi.net/127.0.0.1#5335 +ipset=/bookfi.net/gfwlist server=/ebayradio.com/127.0.0.1#5335 ipset=/ebayradio.com/gfwlist server=/swisssign-group.ch/127.0.0.1#5335 ipset=/swisssign-group.ch/gfwlist server=/realvision.com/127.0.0.1#5335 ipset=/realvision.com/gfwlist -server=/attpurchasing.com/127.0.0.1#5335 -ipset=/attpurchasing.com/gfwlist -server=/apple-dns.net/127.0.0.1#5335 -ipset=/apple-dns.net/gfwlist server=/ipod.com.hk/127.0.0.1#5335 ipset=/ipod.com.hk/gfwlist server=/bbgevent.com/127.0.0.1#5335 ipset=/bbgevent.com/gfwlist -server=/espnqa.com/127.0.0.1#5335 -ipset=/espnqa.com/gfwlist +server=/sexguide.ro/127.0.0.1#5335 +ipset=/sexguide.ro/gfwlist server=/travelexch.com/127.0.0.1#5335 ipset=/travelexch.com/gfwlist -server=/bmw.com.co/127.0.0.1#5335 -ipset=/bmw.com.co/gfwlist +server=/creativecommons.engineering/127.0.0.1#5335 +ipset=/creativecommons.engineering/gfwlist server=/londonreal.tv/127.0.0.1#5335 ipset=/londonreal.tv/gfwlist -server=/adidas.dk/127.0.0.1#5335 -ipset=/adidas.dk/gfwlist -server=/yahoo.com.tj/127.0.0.1#5335 -ipset=/yahoo.com.tj/gfwlist -server=/gamer2-cds.cdn.hinet.net/127.0.0.1#5335 -ipset=/gamer2-cds.cdn.hinet.net/gfwlist -server=/ebayenterprise.info/127.0.0.1#5335 -ipset=/ebayenterprise.info/gfwlist -server=/yandex.ee/127.0.0.1#5335 -ipset=/yandex.ee/gfwlist -server=/beatsoutlet.net/127.0.0.1#5335 -ipset=/beatsoutlet.net/gfwlist -server=/starwarskids.com/127.0.0.1#5335 -ipset=/starwarskids.com/gfwlist -server=/amazonvideodirect.com/127.0.0.1#5335 -ipset=/amazonvideodirect.com/gfwlist -server=/trycloudflare.com/127.0.0.1#5335 -ipset=/trycloudflare.com/gfwlist -server=/dealbay.com/127.0.0.1#5335 -ipset=/dealbay.com/gfwlist -server=/opensuse.org/127.0.0.1#5335 -ipset=/opensuse.org/gfwlist +server=/ipad3.com/127.0.0.1#5335 +ipset=/ipad3.com/gfwlist +server=/azadliq.org/127.0.0.1#5335 +ipset=/azadliq.org/gfwlist +server=/visualstudio.eu/127.0.0.1#5335 +ipset=/visualstudio.eu/gfwlist server=/bookclubgirl.com/127.0.0.1#5335 ipset=/bookclubgirl.com/gfwlist -server=/attsuppliers.com/127.0.0.1#5335 -ipset=/attsuppliers.com/gfwlist -server=/finishinfo.jp/127.0.0.1#5335 -ipset=/finishinfo.jp/gfwlist -server=/hpdownloadstore.com/127.0.0.1#5335 -ipset=/hpdownloadstore.com/gfwlist -server=/newmonst1erbeatsto1re.com/127.0.0.1#5335 -ipset=/newmonst1erbeatsto1re.com/gfwlist -server=/townsvillebulletin.com.au/127.0.0.1#5335 -ipset=/townsvillebulletin.com.au/gfwlist +server=/sluttyrat.com/127.0.0.1#5335 +ipset=/sluttyrat.com/gfwlist server=/headlinejobs.hk/127.0.0.1#5335 ipset=/headlinejobs.hk/gfwlist -server=/huffpostbrasil.com/127.0.0.1#5335 -ipset=/huffpostbrasil.com/gfwlist +server=/ie8.co/127.0.0.1#5335 +ipset=/ie8.co/gfwlist +server=/sexygirlfriendtube.com/127.0.0.1#5335 +ipset=/sexygirlfriendtube.com/gfwlist +server=/netlify.app/127.0.0.1#5335 +ipset=/netlify.app/gfwlist server=/mini.co.kr/127.0.0.1#5335 ipset=/mini.co.kr/gfwlist +server=/creampiehomevideos.com/127.0.0.1#5335 +ipset=/creampiehomevideos.com/gfwlist server=/appledaily.com.tw/127.0.0.1#5335 ipset=/appledaily.com.tw/gfwlist -server=/facebook30.net/127.0.0.1#5335 -ipset=/facebook30.net/gfwlist -server=/mastercard.my/127.0.0.1#5335 -ipset=/mastercard.my/gfwlist +server=/sci-hub.mksa.top/127.0.0.1#5335 +ipset=/sci-hub.mksa.top/gfwlist +server=/domywife.com/127.0.0.1#5335 +ipset=/domywife.com/gfwlist server=/dreamworks.com/127.0.0.1#5335 ipset=/dreamworks.com/gfwlist -server=/digicert.com/127.0.0.1#5335 -ipset=/digicert.com/gfwlist +server=/dirtyshack.com/127.0.0.1#5335 +ipset=/dirtyshack.com/gfwlist server=/canonical.com/127.0.0.1#5335 ipset=/canonical.com/gfwlist -server=/straightouttasomewhere.com/127.0.0.1#5335 -ipset=/straightouttasomewhere.com/gfwlist server=/volvotrucks.ro/127.0.0.1#5335 ipset=/volvotrucks.ro/gfwlist server=/bmwdealercareers.com/127.0.0.1#5335 ipset=/bmwdealercareers.com/gfwlist server=/canon-ois.qa/127.0.0.1#5335 ipset=/canon-ois.qa/gfwlist -server=/dragonage.com/127.0.0.1#5335 -ipset=/dragonage.com/gfwlist -server=/netflixdnstest2.com/127.0.0.1#5335 -ipset=/netflixdnstest2.com/gfwlist server=/weltweitwachsen.de/127.0.0.1#5335 ipset=/weltweitwachsen.de/gfwlist server=/visa.sx/127.0.0.1#5335 ipset=/visa.sx/gfwlist +server=/ebonywebcamhub.com/127.0.0.1#5335 +ipset=/ebonywebcamhub.com/gfwlist server=/xo104.com/127.0.0.1#5335 ipset=/xo104.com/gfwlist server=/aboutamazon.it/127.0.0.1#5335 ipset=/aboutamazon.it/gfwlist -server=/cashpassport.com/127.0.0.1#5335 -ipset=/cashpassport.com/gfwlist server=/facebookmarketingpartners.com/127.0.0.1#5335 ipset=/facebookmarketingpartners.com/gfwlist +server=/scc.ott.hinet.net/127.0.0.1#5335 +ipset=/scc.ott.hinet.net/gfwlist server=/jetfuelapps.com/127.0.0.1#5335 ipset=/jetfuelapps.com/gfwlist -server=/osdn.net/127.0.0.1#5335 -ipset=/osdn.net/gfwlist -server=/bestbuy24x7solutions.com/127.0.0.1#5335 -ipset=/bestbuy24x7solutions.com/gfwlist -server=/applefinalcutproworld.com/127.0.0.1#5335 -ipset=/applefinalcutproworld.com/gfwlist -server=/youtube.com.ec/127.0.0.1#5335 -ipset=/youtube.com.ec/gfwlist -server=/icloudbox.net/127.0.0.1#5335 -ipset=/icloudbox.net/gfwlist -server=/google.kg/127.0.0.1#5335 -ipset=/google.kg/gfwlist -server=/paypal-proserv.com/127.0.0.1#5335 -ipset=/paypal-proserv.com/gfwlist -server=/cheapbeatsbydreonsale.com/127.0.0.1#5335 -ipset=/cheapbeatsbydreonsale.com/gfwlist +server=/jambotube.com/127.0.0.1#5335 +ipset=/jambotube.com/gfwlist +server=/gtvmediagroupfairfund.com/127.0.0.1#5335 +ipset=/gtvmediagroupfairfund.com/gfwlist +server=/tbr.tangbr.net/127.0.0.1#5335 +ipset=/tbr.tangbr.net/gfwlist +server=/apple.ru/127.0.0.1#5335 +ipset=/apple.ru/gfwlist server=/zdassets.com/127.0.0.1#5335 ipset=/zdassets.com/gfwlist -server=/localizecdn.com/127.0.0.1#5335 -ipset=/localizecdn.com/gfwlist -server=/office365tw.com/127.0.0.1#5335 -ipset=/office365tw.com/gfwlist -server=/onedrive.co.uk/127.0.0.1#5335 -ipset=/onedrive.co.uk/gfwlist +server=/derpibooru.org/127.0.0.1#5335 +ipset=/derpibooru.org/gfwlist +server=/shopee.com.mx/127.0.0.1#5335 +ipset=/shopee.com.mx/gfwlist +server=/stripparadise.com/127.0.0.1#5335 +ipset=/stripparadise.com/gfwlist +server=/54647.global/127.0.0.1#5335 +ipset=/54647.global/gfwlist server=/businessinsider.mx/127.0.0.1#5335 ipset=/businessinsider.mx/gfwlist -server=/github.blog/127.0.0.1#5335 -ipset=/github.blog/gfwlist -server=/yahoo.com.pk/127.0.0.1#5335 -ipset=/yahoo.com.pk/gfwlist +server=/supanimegames.com/127.0.0.1#5335 +ipset=/supanimegames.com/gfwlist server=/paypal.us/127.0.0.1#5335 ipset=/paypal.us/gfwlist -server=/macromedia.com/127.0.0.1#5335 -ipset=/macromedia.com/gfwlist -server=/appleone.club/127.0.0.1#5335 -ipset=/appleone.club/gfwlist -server=/volvobuses.tn/127.0.0.1#5335 -ipset=/volvobuses.tn/gfwlist -server=/admeld.com/127.0.0.1#5335 -ipset=/admeld.com/gfwlist -server=/worldsecuresystems.com/127.0.0.1#5335 -ipset=/worldsecuresystems.com/gfwlist -server=/fastly.net/127.0.0.1#5335 -ipset=/fastly.net/gfwlist +server=/ntd.com/127.0.0.1#5335 +ipset=/ntd.com/gfwlist server=/scholar.google.com.pa/127.0.0.1#5335 ipset=/scholar.google.com.pa/gfwlist -server=/aaex.uk/127.0.0.1#5335 -ipset=/aaex.uk/gfwlist -server=/voadeewanews.com/127.0.0.1#5335 -ipset=/voadeewanews.com/gfwlist -server=/bttzyw.com/127.0.0.1#5335 -ipset=/bttzyw.com/gfwlist -server=/gorin.jp/127.0.0.1#5335 -ipset=/gorin.jp/gfwlist -server=/verisign.co.uk/127.0.0.1#5335 -ipset=/verisign.co.uk/gfwlist -server=/singtaoopo.com/127.0.0.1#5335 -ipset=/singtaoopo.com/gfwlist -server=/eamirrorsedge.com/127.0.0.1#5335 -ipset=/eamirrorsedge.com/gfwlist +server=/okazudouga.tokyo/127.0.0.1#5335 +ipset=/okazudouga.tokyo/gfwlist +server=/cloudflareinsights.com/127.0.0.1#5335 +ipset=/cloudflareinsights.com/gfwlist +server=/facebookpoke.org/127.0.0.1#5335 +ipset=/facebookpoke.org/gfwlist +server=/messytube.com/127.0.0.1#5335 +ipset=/messytube.com/gfwlist +server=/arirangmeari.com/127.0.0.1#5335 +ipset=/arirangmeari.com/gfwlist server=/ruinedking.com/127.0.0.1#5335 ipset=/ruinedking.com/gfwlist server=/monsterbeatsbydrenew.com/127.0.0.1#5335 ipset=/monsterbeatsbydrenew.com/gfwlist -server=/centrino.com/127.0.0.1#5335 -ipset=/centrino.com/gfwlist -server=/paulsimon-music.com/127.0.0.1#5335 -ipset=/paulsimon-music.com/gfwlist +server=/xvidios.xxx/127.0.0.1#5335 +ipset=/xvidios.xxx/gfwlist +server=/8muses.xxx/127.0.0.1#5335 +ipset=/8muses.xxx/gfwlist server=/facebook.cc/127.0.0.1#5335 ipset=/facebook.cc/gfwlist -server=/beatsodre.com/127.0.0.1#5335 -ipset=/beatsodre.com/gfwlist -server=/duckduckgo.org/127.0.0.1#5335 -ipset=/duckduckgo.org/gfwlist +server=/softbank-robotics.com/127.0.0.1#5335 +ipset=/softbank-robotics.com/gfwlist server=/bmwgroup-gaad.com/127.0.0.1#5335 ipset=/bmwgroup-gaad.com/gfwlist -server=/simcity-buildit.com/127.0.0.1#5335 -ipset=/simcity-buildit.com/gfwlist +server=/amaaozn.com/127.0.0.1#5335 +ipset=/amaaozn.com/gfwlist server=/microsoftiotinsiderlabs.com/127.0.0.1#5335 ipset=/microsoftiotinsiderlabs.com/gfwlist -server=/volvopenta.de/127.0.0.1#5335 -ipset=/volvopenta.de/gfwlist -server=/mastercard.com.sg/127.0.0.1#5335 -ipset=/mastercard.com.sg/gfwlist -server=/businessinsider.com.pl/127.0.0.1#5335 -ipset=/businessinsider.com.pl/gfwlist +server=/wwe9.com/127.0.0.1#5335 +ipset=/wwe9.com/gfwlist +server=/akamii.com/127.0.0.1#5335 +ipset=/akamii.com/gfwlist server=/yahoodns.net/127.0.0.1#5335 ipset=/yahoodns.net/gfwlist -server=/geph.io/127.0.0.1#5335 -ipset=/geph.io/gfwlist +server=/fansta.me/127.0.0.1#5335 +ipset=/fansta.me/gfwlist server=/mastercard.co.uk/127.0.0.1#5335 ipset=/mastercard.co.uk/gfwlist +server=/pussy-pics.net/127.0.0.1#5335 +ipset=/pussy-pics.net/gfwlist server=/adidas.com.tw/127.0.0.1#5335 ipset=/adidas.com.tw/gfwlist -server=/cdnjs.com/127.0.0.1#5335 -ipset=/cdnjs.com/gfwlist -server=/canon-cee.com/127.0.0.1#5335 -ipset=/canon-cee.com/gfwlist -server=/feedly.com/127.0.0.1#5335 -ipset=/feedly.com/gfwlist -server=/newscdn.com.au/127.0.0.1#5335 -ipset=/newscdn.com.au/gfwlist +server=/meendo.com/127.0.0.1#5335 +ipset=/meendo.com/gfwlist +server=/kyodonews.jp/127.0.0.1#5335 +ipset=/kyodonews.jp/gfwlist +server=/pornoboliviaxxx.com/127.0.0.1#5335 +ipset=/pornoboliviaxxx.com/gfwlist server=/nvidia.co.kr/127.0.0.1#5335 ipset=/nvidia.co.kr/gfwlist server=/ios-icloud.com/127.0.0.1#5335 ipset=/ios-icloud.com/gfwlist -server=/bmw-connecteddrive.fr/127.0.0.1#5335 -ipset=/bmw-connecteddrive.fr/gfwlist +server=/tamilsexvideos.cc/127.0.0.1#5335 +ipset=/tamilsexvideos.cc/gfwlist server=/youtube.ae/127.0.0.1#5335 ipset=/youtube.ae/gfwlist server=/blogspot.com.ng/127.0.0.1#5335 ipset=/blogspot.com.ng/gfwlist +server=/steamdeck.com/127.0.0.1#5335 +ipset=/steamdeck.com/gfwlist server=/aboutamazon.co.uk/127.0.0.1#5335 ipset=/aboutamazon.co.uk/gfwlist server=/netflav.com/127.0.0.1#5335 ipset=/netflav.com/gfwlist -server=/adobecce.com/127.0.0.1#5335 -ipset=/adobecce.com/gfwlist -server=/statics-marketingsites-wcus-ms-com.akamaized.net/127.0.0.1#5335 -ipset=/statics-marketingsites-wcus-ms-com.akamaized.net/gfwlist +server=/beatsdrdre2014.com/127.0.0.1#5335 +ipset=/beatsdrdre2014.com/gfwlist +server=/swingerporntube.com/127.0.0.1#5335 +ipset=/swingerporntube.com/gfwlist server=/garena.vn/127.0.0.1#5335 ipset=/garena.vn/gfwlist -server=/intagrm.com/127.0.0.1#5335 -ipset=/intagrm.com/gfwlist +server=/genshinh.com/127.0.0.1#5335 +ipset=/genshinh.com/gfwlist +server=/trendyporn.com/127.0.0.1#5335 +ipset=/trendyporn.com/gfwlist +server=/pornhdtube.tv/127.0.0.1#5335 +ipset=/pornhdtube.tv/gfwlist server=/zoom.us/127.0.0.1#5335 ipset=/zoom.us/gfwlist -server=/mini.cl/127.0.0.1#5335 -ipset=/mini.cl/gfwlist -server=/xoom.us/127.0.0.1#5335 -ipset=/xoom.us/gfwlist -server=/thomsonreuters.com.au/127.0.0.1#5335 -ipset=/thomsonreuters.com.au/gfwlist -server=/amazontrust.com/127.0.0.1#5335 -ipset=/amazontrust.com/gfwlist -server=/facebookofsex.com/127.0.0.1#5335 -ipset=/facebookofsex.com/gfwlist +server=/moviepost.com/127.0.0.1#5335 +ipset=/moviepost.com/gfwlist +server=/avxde.org/127.0.0.1#5335 +ipset=/avxde.org/gfwlist +server=/milfnut.com/127.0.0.1#5335 +ipset=/milfnut.com/gfwlist server=/googletagservices.com/127.0.0.1#5335 ipset=/googletagservices.com/gfwlist -server=/nikebiz.info/127.0.0.1#5335 -ipset=/nikebiz.info/gfwlist server=/googleacquisitionmigration.com/127.0.0.1#5335 ipset=/googleacquisitionmigration.com/gfwlist server=/i.org/127.0.0.1#5335 ipset=/i.org/gfwlist server=/hplfmedia.com/127.0.0.1#5335 ipset=/hplfmedia.com/gfwlist -server=/srtcdn.net/127.0.0.1#5335 -ipset=/srtcdn.net/gfwlist -server=/canon.com.tw/127.0.0.1#5335 -ipset=/canon.com.tw/gfwlist -server=/monsterbeatsstore.com/127.0.0.1#5335 -ipset=/monsterbeatsstore.com/gfwlist -server=/bridgestonegolf.com/127.0.0.1#5335 -ipset=/bridgestonegolf.com/gfwlist +server=/xbnat.com/127.0.0.1#5335 +ipset=/xbnat.com/gfwlist +server=/nudistsexvideos.com/127.0.0.1#5335 +ipset=/nudistsexvideos.com/gfwlist server=/starbucks.co.uk/127.0.0.1#5335 ipset=/starbucks.co.uk/gfwlist server=/slack-core.com/127.0.0.1#5335 ipset=/slack-core.com/gfwlist server=/travelexae.com/127.0.0.1#5335 ipset=/travelexae.com/gfwlist -server=/pokemonblackwhite.com/127.0.0.1#5335 -ipset=/pokemonblackwhite.com/gfwlist +server=/crazyxxxworld.com/127.0.0.1#5335 +ipset=/crazyxxxworld.com/gfwlist +server=/hp-invent.com/127.0.0.1#5335 +ipset=/hp-invent.com/gfwlist server=/w.org/127.0.0.1#5335 ipset=/w.org/gfwlist server=/x.org/127.0.0.1#5335 @@ -5016,400 +4184,324 @@ server=/swisssigner.ch/127.0.0.1#5335 ipset=/swisssigner.ch/gfwlist server=/wallet.com/127.0.0.1#5335 ipset=/wallet.com/gfwlist -server=/yahoo.com.eg/127.0.0.1#5335 -ipset=/yahoo.com.eg/gfwlist +server=/atos.net/127.0.0.1#5335 +ipset=/atos.net/gfwlist server=/disney.gr/127.0.0.1#5335 ipset=/disney.gr/gfwlist -server=/viu.com/127.0.0.1#5335 -ipset=/viu.com/gfwlist -server=/optimumssl.com/127.0.0.1#5335 -ipset=/optimumssl.com/gfwlist -server=/warroom.org/127.0.0.1#5335 -ipset=/warroom.org/gfwlist +server=/gogoanime.wiki/127.0.0.1#5335 +ipset=/gogoanime.wiki/gfwlist +server=/youtube.com.lb/127.0.0.1#5335 +ipset=/youtube.com.lb/gfwlist +server=/tvnaviweb.jp/127.0.0.1#5335 +ipset=/tvnaviweb.jp/gfwlist +server=/david-laserscanner.com/127.0.0.1#5335 +ipset=/david-laserscanner.com/gfwlist +server=/sweetmlif.net/127.0.0.1#5335 +ipset=/sweetmlif.net/gfwlist server=/vod-dash-uk-live.akamaized.net/127.0.0.1#5335 ipset=/vod-dash-uk-live.akamaized.net/gfwlist -server=/uchicago.edu/127.0.0.1#5335 -ipset=/uchicago.edu/gfwlist server=/reastatic.net/127.0.0.1#5335 ipset=/reastatic.net/gfwlist -server=/eiu.com/127.0.0.1#5335 -ipset=/eiu.com/gfwlist -server=/ipod.ca/127.0.0.1#5335 -ipset=/ipod.ca/gfwlist -server=/cdn77.com/127.0.0.1#5335 -ipset=/cdn77.com/gfwlist +server=/tubemogul.com/127.0.0.1#5335 +ipset=/tubemogul.com/gfwlist server=/mastercard.com.kw/127.0.0.1#5335 ipset=/mastercard.com.kw/gfwlist server=/webex.com.mx/127.0.0.1#5335 ipset=/webex.com.mx/gfwlist server=/intel.cl/127.0.0.1#5335 ipset=/intel.cl/gfwlist -server=/dropboxpartners.com/127.0.0.1#5335 -ipset=/dropboxpartners.com/gfwlist -server=/scholar.google.gr/127.0.0.1#5335 -ipset=/scholar.google.gr/gfwlist -server=/bitflyer.com/127.0.0.1#5335 -ipset=/bitflyer.com/gfwlist -server=/appleworldwidedeveloper.hb-api.omtrdc.net/127.0.0.1#5335 -ipset=/appleworldwidedeveloper.hb-api.omtrdc.net/gfwlist -server=/oneapi.com/127.0.0.1#5335 -ipset=/oneapi.com/gfwlist -server=/nentindo.net/127.0.0.1#5335 -ipset=/nentindo.net/gfwlist +server=/skinstrip.net/127.0.0.1#5335 +ipset=/skinstrip.net/gfwlist +server=/whisolutions.com/127.0.0.1#5335 +ipset=/whisolutions.com/gfwlist +server=/500caocao.com/127.0.0.1#5335 +ipset=/500caocao.com/gfwlist server=/lysol.com.mx/127.0.0.1#5335 ipset=/lysol.com.mx/gfwlist -server=/buddymedia.com/127.0.0.1#5335 -ipset=/buddymedia.com/gfwlist -server=/ipod.com.fr/127.0.0.1#5335 -ipset=/ipod.com.fr/gfwlist -server=/thegithubshop.com/127.0.0.1#5335 -ipset=/thegithubshop.com/gfwlist -server=/google.com.gh/127.0.0.1#5335 -ipset=/google.com.gh/gfwlist -server=/npr.org/127.0.0.1#5335 -ipset=/npr.org/gfwlist +server=/clincha.cn/127.0.0.1#5335 +ipset=/clincha.cn/gfwlist +server=/yahoo.co.th/127.0.0.1#5335 +ipset=/yahoo.co.th/gfwlist +server=/ctitv.com.tw/127.0.0.1#5335 +ipset=/ctitv.com.tw/gfwlist +server=/punishbang.com/127.0.0.1#5335 +ipset=/punishbang.com/gfwlist server=/bit.ly/127.0.0.1#5335 ipset=/bit.ly/gfwlist -server=/voabambara.com/127.0.0.1#5335 -ipset=/voabambara.com/gfwlist -server=/gvt2.com/127.0.0.1#5335 -ipset=/gvt2.com/gfwlist -server=/veet.co.kr/127.0.0.1#5335 -ipset=/veet.co.kr/gfwlist +server=/chedteb.eu/127.0.0.1#5335 +ipset=/chedteb.eu/gfwlist +server=/bwin.com/127.0.0.1#5335 +ipset=/bwin.com/gfwlist server=/visiontimes.it/127.0.0.1#5335 ipset=/visiontimes.it/gfwlist -server=/bestbuyphotoworkshoptours.com/127.0.0.1#5335 -ipset=/bestbuyphotoworkshoptours.com/gfwlist -server=/paypal-center.info/127.0.0.1#5335 -ipset=/paypal-center.info/gfwlist +server=/mature-tube.sexy/127.0.0.1#5335 +ipset=/mature-tube.sexy/gfwlist server=/sourceforge.com/127.0.0.1#5335 ipset=/sourceforge.com/gfwlist server=/51dh.site/127.0.0.1#5335 ipset=/51dh.site/gfwlist -server=/zohowebstatic.com/127.0.0.1#5335 -ipset=/zohowebstatic.com/gfwlist server=/themathsfactor.com/127.0.0.1#5335 ipset=/themathsfactor.com/gfwlist -server=/paypal-marketing.com/127.0.0.1#5335 -ipset=/paypal-marketing.com/gfwlist -server=/hackthedrive.com/127.0.0.1#5335 -ipset=/hackthedrive.com/gfwlist -server=/liketwice.com/127.0.0.1#5335 -ipset=/liketwice.com/gfwlist -server=/target.com/127.0.0.1#5335 -ipset=/target.com/gfwlist -server=/viu.tv/127.0.0.1#5335 -ipset=/viu.tv/gfwlist -server=/reurl.cc/127.0.0.1#5335 -ipset=/reurl.cc/gfwlist +server=/bodyfluids-jav.com/127.0.0.1#5335 +ipset=/bodyfluids-jav.com/gfwlist +server=/bestrecipes.com.au/127.0.0.1#5335 +ipset=/bestrecipes.com.au/gfwlist +server=/videosporno.com.br/127.0.0.1#5335 +ipset=/videosporno.com.br/gfwlist +server=/kompoz.com/127.0.0.1#5335 +ipset=/kompoz.com/gfwlist +server=/canon.ba/127.0.0.1#5335 +ipset=/canon.ba/gfwlist +server=/ozodlik.org/127.0.0.1#5335 +ipset=/ozodlik.org/gfwlist +server=/garena.ph/127.0.0.1#5335 +ipset=/garena.ph/gfwlist server=/blogspot.hr/127.0.0.1#5335 ipset=/blogspot.hr/gfwlist -server=/theuab.net/127.0.0.1#5335 -ipset=/theuab.net/gfwlist -server=/geek-squad-support.com/127.0.0.1#5335 -ipset=/geek-squad-support.com/gfwlist -server=/djreprints.com/127.0.0.1#5335 -ipset=/djreprints.com/gfwlist +server=/tranny.one/127.0.0.1#5335 +ipset=/tranny.one/gfwlist +server=/hentai44.com/127.0.0.1#5335 +ipset=/hentai44.com/gfwlist +server=/ikea.sg/127.0.0.1#5335 +ipset=/ikea.sg/gfwlist +server=/lihkg.com/127.0.0.1#5335 +ipset=/lihkg.com/gfwlist +server=/flash-xxx.com/127.0.0.1#5335 +ipset=/flash-xxx.com/gfwlist server=/miniso.ge/127.0.0.1#5335 ipset=/miniso.ge/gfwlist server=/pearsononlineacademy.com/127.0.0.1#5335 ipset=/pearsononlineacademy.com/gfwlist -server=/bbcverticals.com/127.0.0.1#5335 -ipset=/bbcverticals.com/gfwlist server=/cloudflareclient.com/127.0.0.1#5335 ipset=/cloudflareclient.com/gfwlist server=/campuslondon.com/127.0.0.1#5335 ipset=/campuslondon.com/gfwlist -server=/facebook4business.com/127.0.0.1#5335 -ipset=/facebook4business.com/gfwlist -server=/realclearenergy.org/127.0.0.1#5335 -ipset=/realclearenergy.org/gfwlist -server=/minimotoringrewards.com/127.0.0.1#5335 -ipset=/minimotoringrewards.com/gfwlist -server=/cnnikebrand.com/127.0.0.1#5335 -ipset=/cnnikebrand.com/gfwlist +server=/tryfuckmenow.com/127.0.0.1#5335 +ipset=/tryfuckmenow.com/gfwlist +server=/nesaporn.com/127.0.0.1#5335 +ipset=/nesaporn.com/gfwlist +server=/xnxx2.org/127.0.0.1#5335 +ipset=/xnxx2.org/gfwlist server=/zenodo.org/127.0.0.1#5335 ipset=/zenodo.org/gfwlist -server=/fiotolia.com/127.0.0.1#5335 -ipset=/fiotolia.com/gfwlist -server=/pornbest.org/127.0.0.1#5335 -ipset=/pornbest.org/gfwlist -server=/visa.hk/127.0.0.1#5335 -ipset=/visa.hk/gfwlist -server=/bmw-connecteddrive.lt/127.0.0.1#5335 -ipset=/bmw-connecteddrive.lt/gfwlist -server=/monsterdrebeats-usa.net/127.0.0.1#5335 -ipset=/monsterdrebeats-usa.net/gfwlist -server=/foxneo.com/127.0.0.1#5335 -ipset=/foxneo.com/gfwlist +server=/lsj2.shop/127.0.0.1#5335 +ipset=/lsj2.shop/gfwlist +server=/ajsjx.com/127.0.0.1#5335 +ipset=/ajsjx.com/gfwlist +server=/fakehub.com/127.0.0.1#5335 +ipset=/fakehub.com/gfwlist server=/bmw-connecteddrive.bg/127.0.0.1#5335 ipset=/bmw-connecteddrive.bg/gfwlist server=/scholar.google.com.my/127.0.0.1#5335 ipset=/scholar.google.com.my/gfwlist server=/netflixtechblog.com/127.0.0.1#5335 ipset=/netflixtechblog.com/gfwlist -server=/vmware-techcenter.com/127.0.0.1#5335 -ipset=/vmware-techcenter.com/gfwlist -server=/electronicarts.fr/127.0.0.1#5335 -ipset=/electronicarts.fr/gfwlist -server=/autodraw.com/127.0.0.1#5335 -ipset=/autodraw.com/gfwlist +server=/dopaminegirl.com/127.0.0.1#5335 +ipset=/dopaminegirl.com/gfwlist +server=/freexxx.win/127.0.0.1#5335 +ipset=/freexxx.win/gfwlist server=/tdesktop.com/127.0.0.1#5335 ipset=/tdesktop.com/gfwlist -server=/snapchat.com/127.0.0.1#5335 -ipset=/snapchat.com/gfwlist +server=/himalaya.exchange/127.0.0.1#5335 +ipset=/himalaya.exchange/gfwlist +server=/acgfbw.com/127.0.0.1#5335 +ipset=/acgfbw.com/gfwlist server=/live.eu/127.0.0.1#5335 ipset=/live.eu/gfwlist server=/cnbcfm.com/127.0.0.1#5335 ipset=/cnbcfm.com/gfwlist -server=/tiresplus.com/127.0.0.1#5335 -ipset=/tiresplus.com/gfwlist -server=/bmwzentrum.com/127.0.0.1#5335 -ipset=/bmwzentrum.com/gfwlist -server=/mastercard.de/127.0.0.1#5335 -ipset=/mastercard.de/gfwlist +server=/playvids.com/127.0.0.1#5335 +ipset=/playvids.com/gfwlist +server=/uninhibitedcomix.com/127.0.0.1#5335 +ipset=/uninhibitedcomix.com/gfwlist +server=/moms-sex-videos.com/127.0.0.1#5335 +ipset=/moms-sex-videos.com/gfwlist +server=/rukoebxx.com/127.0.0.1#5335 +ipset=/rukoebxx.com/gfwlist server=/msinnovationchallenge.com/127.0.0.1#5335 ipset=/msinnovationchallenge.com/gfwlist -server=/alphabet.org.uk/127.0.0.1#5335 -ipset=/alphabet.org.uk/gfwlist -server=/attstadium.com/127.0.0.1#5335 -ipset=/attstadium.com/gfwlist +server=/xnxx-com.cfd/127.0.0.1#5335 +ipset=/xnxx-com.cfd/gfwlist server=/alibabacloud.com.tw/127.0.0.1#5335 ipset=/alibabacloud.com.tw/gfwlist -server=/yahoo.com.uy/127.0.0.1#5335 -ipset=/yahoo.com.uy/gfwlist -server=/hbogoasia.hk/127.0.0.1#5335 -ipset=/hbogoasia.hk/gfwlist -server=/bmw-connecteddrive.co.nz/127.0.0.1#5335 -ipset=/bmw-connecteddrive.co.nz/gfwlist +server=/levelsex.com/127.0.0.1#5335 +ipset=/levelsex.com/gfwlist +server=/tantaly.com/127.0.0.1#5335 +ipset=/tantaly.com/gfwlist server=/nvidia.eu/127.0.0.1#5335 ipset=/nvidia.eu/gfwlist -server=/hotmail.net/127.0.0.1#5335 -ipset=/hotmail.net/gfwlist -server=/youtube.com.ly/127.0.0.1#5335 -ipset=/youtube.com.ly/gfwlist +server=/z-lib.org/127.0.0.1#5335 +ipset=/z-lib.org/gfwlist server=/vipbeatsbydre.com/127.0.0.1#5335 ipset=/vipbeatsbydre.com/gfwlist +server=/dogmovie.net/127.0.0.1#5335 +ipset=/dogmovie.net/gfwlist server=/dettol.com.my/127.0.0.1#5335 ipset=/dettol.com.my/gfwlist -server=/caime.xyz/127.0.0.1#5335 -ipset=/caime.xyz/gfwlist +server=/teenpornvideo.xxx/127.0.0.1#5335 +ipset=/teenpornvideo.xxx/gfwlist +server=/yomiuri-shimbun.pressreader.com/127.0.0.1#5335 +ipset=/yomiuri-shimbun.pressreader.com/gfwlist server=/pornhubpremium.com/127.0.0.1#5335 ipset=/pornhubpremium.com/gfwlist -server=/monsterbeatsshops.net/127.0.0.1#5335 -ipset=/monsterbeatsshops.net/gfwlist -server=/pvzheroes.com/127.0.0.1#5335 -ipset=/pvzheroes.com/gfwlist -server=/persagg.com/127.0.0.1#5335 -ipset=/persagg.com/gfwlist -server=/dungeonkeeper.cn/127.0.0.1#5335 -ipset=/dungeonkeeper.cn/gfwlist +server=/internationalconnectionsacademy.com/127.0.0.1#5335 +ipset=/internationalconnectionsacademy.com/gfwlist +server=/bigassporn.tv/127.0.0.1#5335 +ipset=/bigassporn.tv/gfwlist +server=/xxxreal.com/127.0.0.1#5335 +ipset=/xxxreal.com/gfwlist server=/volvotruckcenter.nl/127.0.0.1#5335 ipset=/volvotruckcenter.nl/gfwlist server=/bmw-motorrad.com.pe/127.0.0.1#5335 ipset=/bmw-motorrad.com.pe/gfwlist -server=/enfabebe.com/127.0.0.1#5335 -ipset=/enfabebe.com/gfwlist +server=/free-wap-tube.com/127.0.0.1#5335 +ipset=/free-wap-tube.com/gfwlist server=/covid19rx.org/127.0.0.1#5335 ipset=/covid19rx.org/gfwlist -server=/bmwgroup.jobs/127.0.0.1#5335 -ipset=/bmwgroup.jobs/gfwlist +server=/xxxbullet.com/127.0.0.1#5335 +ipset=/xxxbullet.com/gfwlist server=/nike23.com/127.0.0.1#5335 ipset=/nike23.com/gfwlist -server=/homedepot-static.com/127.0.0.1#5335 -ipset=/homedepot-static.com/gfwlist -server=/imtagram.com/127.0.0.1#5335 -ipset=/imtagram.com/gfwlist -server=/leagueoflegends.co.kr/127.0.0.1#5335 -ipset=/leagueoflegends.co.kr/gfwlist -server=/bmw-motorrad.co.kr/127.0.0.1#5335 -ipset=/bmw-motorrad.co.kr/gfwlist +server=/facxebook.com/127.0.0.1#5335 +ipset=/facxebook.com/gfwlist +server=/yusjb.com/127.0.0.1#5335 +ipset=/yusjb.com/gfwlist server=/webobjects.net/127.0.0.1#5335 ipset=/webobjects.net/gfwlist server=/google.org/127.0.0.1#5335 ipset=/google.org/gfwlist -server=/mastercard.com.mx/127.0.0.1#5335 -ipset=/mastercard.com.mx/gfwlist +server=/disney.my.sentry.io/127.0.0.1#5335 +ipset=/disney.my.sentry.io/gfwlist server=/instagrampartners.com/127.0.0.1#5335 ipset=/instagrampartners.com/gfwlist -server=/enfamama.com.ph/127.0.0.1#5335 -ipset=/enfamama.com.ph/gfwlist -server=/integral7.com/127.0.0.1#5335 -ipset=/integral7.com/gfwlist +server=/truyen-hentai.ru/127.0.0.1#5335 +ipset=/truyen-hentai.ru/gfwlist +server=/cumlouder.com/127.0.0.1#5335 +ipset=/cumlouder.com/gfwlist +server=/hentaizilla.com/127.0.0.1#5335 +ipset=/hentaizilla.com/gfwlist server=/mini.co.il/127.0.0.1#5335 ipset=/mini.co.il/gfwlist -server=/madshi.net/127.0.0.1#5335 -ipset=/madshi.net/gfwlist -server=/visa.com/127.0.0.1#5335 -ipset=/visa.com/gfwlist -server=/azuresmartspaces.net/127.0.0.1#5335 -ipset=/azuresmartspaces.net/gfwlist -server=/techstreet.com/127.0.0.1#5335 -ipset=/techstreet.com/gfwlist -server=/vanish.es/127.0.0.1#5335 -ipset=/vanish.es/gfwlist -server=/kkbox.com.tw/127.0.0.1#5335 -ipset=/kkbox.com.tw/gfwlist +server=/thothub.ru/127.0.0.1#5335 +ipset=/thothub.ru/gfwlist +server=/diamondgirls.co.uk/127.0.0.1#5335 +ipset=/diamondgirls.co.uk/gfwlist +server=/shitjav.com/127.0.0.1#5335 +ipset=/shitjav.com/gfwlist +server=/dtlgalleryint.cloudapp.net/127.0.0.1#5335 +ipset=/dtlgalleryint.cloudapp.net/gfwlist server=/darkness-risen.com/127.0.0.1#5335 ipset=/darkness-risen.com/gfwlist server=/github.io/127.0.0.1#5335 ipset=/github.io/gfwlist server=/adsensecustomsearchads.com/127.0.0.1#5335 ipset=/adsensecustomsearchads.com/gfwlist -server=/apisof.net/127.0.0.1#5335 -ipset=/apisof.net/gfwlist -server=/mastercard.com.gt/127.0.0.1#5335 -ipset=/mastercard.com.gt/gfwlist -server=/applestore.co.uk/127.0.0.1#5335 -ipset=/applestore.co.uk/gfwlist +server=/badaas.com/127.0.0.1#5335 +ipset=/badaas.com/gfwlist +server=/ebaycafe.com/127.0.0.1#5335 +ipset=/ebaycafe.com/gfwlist server=/uun97.com/127.0.0.1#5335 ipset=/uun97.com/gfwlist server=/nodesource.com/127.0.0.1#5335 ipset=/nodesource.com/gfwlist -server=/verisign.com.vn/127.0.0.1#5335 -ipset=/verisign.com.vn/gfwlist -server=/paypal.jp/127.0.0.1#5335 -ipset=/paypal.jp/gfwlist -server=/thehulubraintrust.com/127.0.0.1#5335 -ipset=/thehulubraintrust.com/gfwlist +server=/bmw.co.il/127.0.0.1#5335 +ipset=/bmw.co.il/gfwlist server=/cloudc.one/127.0.0.1#5335 ipset=/cloudc.one/gfwlist -server=/whereilive.com.au/127.0.0.1#5335 -ipset=/whereilive.com.au/gfwlist -server=/microsoftsilverlight.com/127.0.0.1#5335 -ipset=/microsoftsilverlight.com/gfwlist -server=/bmw-motorrad.fi/127.0.0.1#5335 -ipset=/bmw-motorrad.fi/gfwlist +server=/voyeurporntapes.com/127.0.0.1#5335 +ipset=/voyeurporntapes.com/gfwlist server=/mega.io/127.0.0.1#5335 ipset=/mega.io/gfwlist server=/psg-int-eastus.cloudapp.net/127.0.0.1#5335 ipset=/psg-int-eastus.cloudapp.net/gfwlist -server=/youtube.cat/127.0.0.1#5335 -ipset=/youtube.cat/gfwlist -server=/whatbrowser.org/127.0.0.1#5335 -ipset=/whatbrowser.org/gfwlist -server=/intel.com.tw/127.0.0.1#5335 -ipset=/intel.com.tw/gfwlist -server=/globalsign.nl/127.0.0.1#5335 -ipset=/globalsign.nl/gfwlist +server=/webcam-teen.net/127.0.0.1#5335 +ipset=/webcam-teen.net/gfwlist +server=/dcard.cc/127.0.0.1#5335 +ipset=/dcard.cc/gfwlist +server=/youtube.ug/127.0.0.1#5335 +ipset=/youtube.ug/gfwlist server=/shuziyimin.org/127.0.0.1#5335 ipset=/shuziyimin.org/gfwlist -server=/mini.my/127.0.0.1#5335 -ipset=/mini.my/gfwlist -server=/sonypicturestelevision.com/127.0.0.1#5335 -ipset=/sonypicturestelevision.com/gfwlist -server=/sale-nikeshoes.com/127.0.0.1#5335 -ipset=/sale-nikeshoes.com/gfwlist -server=/duckduckgo.com.tw/127.0.0.1#5335 -ipset=/duckduckgo.com.tw/gfwlist -server=/wsjmediakit.com/127.0.0.1#5335 -ipset=/wsjmediakit.com/gfwlist +server=/islamiccenterofnewlondon.com/127.0.0.1#5335 +ipset=/islamiccenterofnewlondon.com/gfwlist +server=/who.int/127.0.0.1#5335 +ipset=/who.int/gfwlist +server=/shemaletubevideos.com/127.0.0.1#5335 +ipset=/shemaletubevideos.com/gfwlist +server=/incezt.net/127.0.0.1#5335 +ipset=/incezt.net/gfwlist +server=/girlfuckshorse.net/127.0.0.1#5335 +ipset=/girlfuckshorse.net/gfwlist server=/facebook-login.com/127.0.0.1#5335 ipset=/facebook-login.com/gfwlist -server=/charlotte-anime.jp/127.0.0.1#5335 -ipset=/charlotte-anime.jp/gfwlist +server=/luckyissue.com/127.0.0.1#5335 +ipset=/luckyissue.com/gfwlist server=/amerikayidzayn.com/127.0.0.1#5335 ipset=/amerikayidzayn.com/gfwlist -server=/beatsbydreaustraliaonline.com/127.0.0.1#5335 -ipset=/beatsbydreaustraliaonline.com/gfwlist +server=/ipod.cm/127.0.0.1#5335 +ipset=/ipod.cm/gfwlist server=/sonystoragemedia.co.jp/127.0.0.1#5335 ipset=/sonystoragemedia.co.jp/gfwlist -server=/scholar.google.fi/127.0.0.1#5335 -ipset=/scholar.google.fi/gfwlist server=/blz-contentstack.com/127.0.0.1#5335 ipset=/blz-contentstack.com/gfwlist -server=/visa.com.gy/127.0.0.1#5335 -ipset=/visa.com.gy/gfwlist server=/myq2.com/127.0.0.1#5335 ipset=/myq2.com/gfwlist -server=/tg.dev/127.0.0.1#5335 -ipset=/tg.dev/gfwlist -server=/cheapmonsterbeatsbydrdre.com/127.0.0.1#5335 -ipset=/cheapmonsterbeatsbydrdre.com/gfwlist -server=/scientificamerican.com/127.0.0.1#5335 -ipset=/scientificamerican.com/gfwlist +server=/fapvid.com/127.0.0.1#5335 +ipset=/fapvid.com/gfwlist +server=/postgresql.org/127.0.0.1#5335 +ipset=/postgresql.org/gfwlist +server=/mytrannycams.com/127.0.0.1#5335 +ipset=/mytrannycams.com/gfwlist server=/cheapbeatsbydreshop.com/127.0.0.1#5335 ipset=/cheapbeatsbydreshop.com/gfwlist -server=/ebayopensource.com/127.0.0.1#5335 -ipset=/ebayopensource.com/gfwlist -server=/volvotrucks.co.na/127.0.0.1#5335 -ipset=/volvotrucks.co.na/gfwlist -server=/dynacw.co.jp/127.0.0.1#5335 -ipset=/dynacw.co.jp/gfwlist -server=/nintendo.fr/127.0.0.1#5335 -ipset=/nintendo.fr/gfwlist -server=/bestbuy-audio.com/127.0.0.1#5335 -ipset=/bestbuy-audio.com/gfwlist +server=/bmw-motorrad.nl/127.0.0.1#5335 +ipset=/bmw-motorrad.nl/gfwlist +server=/braveux.com/127.0.0.1#5335 +ipset=/braveux.com/gfwlist server=/dazndn.com/127.0.0.1#5335 ipset=/dazndn.com/gfwlist -server=/hpsuresupply.com/127.0.0.1#5335 -ipset=/hpsuresupply.com/gfwlist -server=/foxneodigital.com/127.0.0.1#5335 -ipset=/foxneodigital.com/gfwlist -server=/d100.net/127.0.0.1#5335 -ipset=/d100.net/gfwlist +server=/deepfakeporn.net/127.0.0.1#5335 +ipset=/deepfakeporn.net/gfwlist +server=/thesexbible.com/127.0.0.1#5335 +ipset=/thesexbible.com/gfwlist +server=/jizzhut.com/127.0.0.1#5335 +ipset=/jizzhut.com/gfwlist server=/techhub.ms/127.0.0.1#5335 ipset=/techhub.ms/gfwlist server=/vgg8.com/127.0.0.1#5335 ipset=/vgg8.com/gfwlist -server=/mini.no/127.0.0.1#5335 -ipset=/mini.no/gfwlist -server=/ultimaforever.com/127.0.0.1#5335 -ipset=/ultimaforever.com/gfwlist -server=/accountkit.com/127.0.0.1#5335 -ipset=/accountkit.com/gfwlist -server=/facebookcovers.org/127.0.0.1#5335 -ipset=/facebookcovers.org/gfwlist -server=/besztbuy.com/127.0.0.1#5335 -ipset=/besztbuy.com/gfwlist -server=/canon.com.mk/127.0.0.1#5335 -ipset=/canon.com.mk/gfwlist -server=/applemusicfestival.com/127.0.0.1#5335 -ipset=/applemusicfestival.com/gfwlist +server=/ccna5.net/127.0.0.1#5335 +ipset=/ccna5.net/gfwlist +server=/canon.ru/127.0.0.1#5335 +ipset=/canon.ru/gfwlist +server=/huashundg.com/127.0.0.1#5335 +ipset=/huashundg.com/gfwlist server=/monsterbeatsbydre-nz.com/127.0.0.1#5335 ipset=/monsterbeatsbydre-nz.com/gfwlist -server=/notion.new/127.0.0.1#5335 -ipset=/notion.new/gfwlist -server=/scholar.google.co.th/127.0.0.1#5335 -ipset=/scholar.google.co.th/gfwlist -server=/lp99.pw/127.0.0.1#5335 -ipset=/lp99.pw/gfwlist +server=/ohpornocasero.com/127.0.0.1#5335 +ipset=/ohpornocasero.com/gfwlist +server=/porncomics.com/127.0.0.1#5335 +ipset=/porncomics.com/gfwlist server=/visa.com.sv/127.0.0.1#5335 ipset=/visa.com.sv/gfwlist server=/bmw-group.com/127.0.0.1#5335 ipset=/bmw-group.com/gfwlist -server=/ieeeaps.org/127.0.0.1#5335 -ipset=/ieeeaps.org/gfwlist -server=/iphone-vip4.com/127.0.0.1#5335 -ipset=/iphone-vip4.com/gfwlist -server=/beatsbydreheadphonesolo.com/127.0.0.1#5335 -ipset=/beatsbydreheadphonesolo.com/gfwlist +server=/pornxs.com/127.0.0.1#5335 +ipset=/pornxs.com/gfwlist +server=/youx.xxx/127.0.0.1#5335 +ipset=/youx.xxx/gfwlist server=/compose-spec.io/127.0.0.1#5335 ipset=/compose-spec.io/gfwlist -server=/drebeats-singapore.com/127.0.0.1#5335 -ipset=/drebeats-singapore.com/gfwlist server=/radiomango.fm/127.0.0.1#5335 ipset=/radiomango.fm/gfwlist -server=/disneylatino.com/127.0.0.1#5335 -ipset=/disneylatino.com/gfwlist -server=/grupobmw.com/127.0.0.1#5335 -ipset=/grupobmw.com/gfwlist -server=/minisolife.co.za/127.0.0.1#5335 -ipset=/minisolife.co.za/gfwlist -server=/fox-news.com/127.0.0.1#5335 -ipset=/fox-news.com/gfwlist -server=/monsterbeatsbydrdrecanada.com/127.0.0.1#5335 -ipset=/monsterbeatsbydrdrecanada.com/gfwlist -server=/pinterest.co.kr/127.0.0.1#5335 -ipset=/pinterest.co.kr/gfwlist -server=/localbitcoins.com/127.0.0.1#5335 -ipset=/localbitcoins.com/gfwlist -server=/zeit-world.org/127.0.0.1#5335 -ipset=/zeit-world.org/gfwlist -server=/acmvalidations.com/127.0.0.1#5335 -ipset=/acmvalidations.com/gfwlist -server=/rewrite-anime.tv/127.0.0.1#5335 -ipset=/rewrite-anime.tv/gfwlist +server=/scat-shop.net/127.0.0.1#5335 +ipset=/scat-shop.net/gfwlist +server=/npmjs.org/127.0.0.1#5335 +ipset=/npmjs.org/gfwlist +server=/gdansk-amazon.com/127.0.0.1#5335 +ipset=/gdansk-amazon.com/gfwlist +server=/hyperdreams.com/127.0.0.1#5335 +ipset=/hyperdreams.com/gfwlist server=/fastly-terrarium.com/127.0.0.1#5335 ipset=/fastly-terrarium.com/gfwlist server=/adobehiddentreasures.com/127.0.0.1#5335 @@ -5418,34 +4510,24 @@ server=/appleid.hamburg/127.0.0.1#5335 ipset=/appleid.hamburg/gfwlist server=/comsoc.org/127.0.0.1#5335 ipset=/comsoc.org/gfwlist -server=/enfamil.pl/127.0.0.1#5335 -ipset=/enfamil.pl/gfwlist -server=/blogspot.hu/127.0.0.1#5335 -ipset=/blogspot.hu/gfwlist +server=/nudography.com/127.0.0.1#5335 +ipset=/nudography.com/gfwlist server=/mastercard.com.pe/127.0.0.1#5335 ipset=/mastercard.com.pe/gfwlist server=/nikeairhuarache.com/127.0.0.1#5335 ipset=/nikeairhuarache.com/gfwlist -server=/aboutfacebook.com/127.0.0.1#5335 -ipset=/aboutfacebook.com/gfwlist -server=/ebayexpress.sg/127.0.0.1#5335 -ipset=/ebayexpress.sg/gfwlist -server=/mydirectgroove.com/127.0.0.1#5335 -ipset=/mydirectgroove.com/gfwlist -server=/91porn.com/127.0.0.1#5335 -ipset=/91porn.com/gfwlist -server=/air-nike-shoes.com/127.0.0.1#5335 -ipset=/air-nike-shoes.com/gfwlist +server=/chwr7s8u.com/127.0.0.1#5335 +ipset=/chwr7s8u.com/gfwlist +server=/cartoonsexfantazy.com/127.0.0.1#5335 +ipset=/cartoonsexfantazy.com/gfwlist +server=/road-crew.com/127.0.0.1#5335 +ipset=/road-crew.com/gfwlist server=/ieeedeis.org/127.0.0.1#5335 ipset=/ieeedeis.org/gfwlist -server=/bmw-tunisia.com/127.0.0.1#5335 -ipset=/bmw-tunisia.com/gfwlist -server=/alphera.ca/127.0.0.1#5335 -ipset=/alphera.ca/gfwlist -server=/ibeatsbydre.com/127.0.0.1#5335 -ipset=/ibeatsbydre.com/gfwlist -server=/spotify.design/127.0.0.1#5335 -ipset=/spotify.design/gfwlist +server=/rbmavericks.com/127.0.0.1#5335 +ipset=/rbmavericks.com/gfwlist +server=/senpaiheat.com/127.0.0.1#5335 +ipset=/senpaiheat.com/gfwlist server=/nflhotsalejerseys.com/127.0.0.1#5335 ipset=/nflhotsalejerseys.com/gfwlist server=/codethemicrobit.com/127.0.0.1#5335 @@ -5454,124 +4536,116 @@ server=/durex.lv/127.0.0.1#5335 ipset=/durex.lv/gfwlist server=/wp-themes.com/127.0.0.1#5335 ipset=/wp-themes.com/gfwlist -server=/ipadmini.lk/127.0.0.1#5335 -ipset=/ipadmini.lk/gfwlist -server=/humblebundle.com/127.0.0.1#5335 -ipset=/humblebundle.com/gfwlist -server=/shadowsocks.com/127.0.0.1#5335 -ipset=/shadowsocks.com/gfwlist -server=/rumble.com/127.0.0.1#5335 -ipset=/rumble.com/gfwlist +server=/homealonemilfs.com/127.0.0.1#5335 +ipset=/homealonemilfs.com/gfwlist +server=/wikiquote.org/127.0.0.1#5335 +ipset=/wikiquote.org/gfwlist +server=/110xnxx.com/127.0.0.1#5335 +ipset=/110xnxx.com/gfwlist +server=/xgaytube.com/127.0.0.1#5335 +ipset=/xgaytube.com/gfwlist server=/archiveofourown.net/127.0.0.1#5335 ipset=/archiveofourown.net/gfwlist server=/volvotrucks.bg/127.0.0.1#5335 ipset=/volvotrucks.bg/gfwlist -server=/a0pple.net/127.0.0.1#5335 -ipset=/a0pple.net/gfwlist server=/studywatchbyverily.org/127.0.0.1#5335 ipset=/studywatchbyverily.org/gfwlist -server=/vilavpn2.xyz/127.0.0.1#5335 -ipset=/vilavpn2.xyz/gfwlist -server=/homedepot.com/127.0.0.1#5335 -ipset=/homedepot.com/gfwlist -server=/protonmail.com/127.0.0.1#5335 -ipset=/protonmail.com/gfwlist +server=/svobodnaevropa.bg/127.0.0.1#5335 +ipset=/svobodnaevropa.bg/gfwlist +server=/metrotoons.com/127.0.0.1#5335 +ipset=/metrotoons.com/gfwlist +server=/amourangels.com/127.0.0.1#5335 +ipset=/amourangels.com/gfwlist +server=/directvsports.com/127.0.0.1#5335 +ipset=/directvsports.com/gfwlist server=/niconico.com/127.0.0.1#5335 ipset=/niconico.com/gfwlist -server=/scholar.google.hn/127.0.0.1#5335 -ipset=/scholar.google.hn/gfwlist -server=/youtube.com.es/127.0.0.1#5335 -ipset=/youtube.com.es/gfwlist +server=/comdotgame.com/127.0.0.1#5335 +ipset=/comdotgame.com/gfwlist +server=/iknowthatgirl.com/127.0.0.1#5335 +ipset=/iknowthatgirl.com/gfwlist server=/headphones-cool.com/127.0.0.1#5335 ipset=/headphones-cool.com/gfwlist server=/office.net/127.0.0.1#5335 ipset=/office.net/gfwlist -server=/movefrees.com/127.0.0.1#5335 -ipset=/movefrees.com/gfwlist server=/paypal-notice.com/127.0.0.1#5335 ipset=/paypal-notice.com/gfwlist -server=/medium.com/127.0.0.1#5335 -ipset=/medium.com/gfwlist -server=/insidemacintosh.com/127.0.0.1#5335 -ipset=/insidemacintosh.com/gfwlist -server=/alphera.de/127.0.0.1#5335 -ipset=/alphera.de/gfwlist -server=/gslink.us/127.0.0.1#5335 -ipset=/gslink.us/gfwlist -server=/ehwiki.org/127.0.0.1#5335 -ipset=/ehwiki.org/gfwlist +server=/foxsoccerplus.com/127.0.0.1#5335 +ipset=/foxsoccerplus.com/gfwlist +server=/cna.com.tw/127.0.0.1#5335 +ipset=/cna.com.tw/gfwlist +server=/aboutamazon.fr/127.0.0.1#5335 +ipset=/aboutamazon.fr/gfwlist +server=/discord-activities.com/127.0.0.1#5335 +ipset=/discord-activities.com/gfwlist server=/i-o-u.info/127.0.0.1#5335 ipset=/i-o-u.info/gfwlist -server=/mini.pt/127.0.0.1#5335 -ipset=/mini.pt/gfwlist +server=/slideshare.net/127.0.0.1#5335 +ipset=/slideshare.net/gfwlist server=/nintendo.co.kr/127.0.0.1#5335 ipset=/nintendo.co.kr/gfwlist -server=/bmw.am/127.0.0.1#5335 -ipset=/bmw.am/gfwlist -server=/myfoxsanfran.com/127.0.0.1#5335 -ipset=/myfoxsanfran.com/gfwlist -server=/bmw.com.ni/127.0.0.1#5335 -ipset=/bmw.com.ni/gfwlist +server=/canon.ro/127.0.0.1#5335 +ipset=/canon.ro/gfwlist +server=/intimateinvasions.com/127.0.0.1#5335 +ipset=/intimateinvasions.com/gfwlist server=/visafintechfasttrack.com/127.0.0.1#5335 ipset=/visafintechfasttrack.com/gfwlist -server=/quantil.com/127.0.0.1#5335 -ipset=/quantil.com/gfwlist +server=/svsgames.org/127.0.0.1#5335 +ipset=/svsgames.org/gfwlist server=/hpconnected.com/127.0.0.1#5335 ipset=/hpconnected.com/gfwlist -server=/beatspills.com/127.0.0.1#5335 -ipset=/beatspills.com/gfwlist server=/bmw.lu/127.0.0.1#5335 ipset=/bmw.lu/gfwlist -server=/volvobuses.ru/127.0.0.1#5335 -ipset=/volvobuses.ru/gfwlist -server=/realtype.jp/127.0.0.1#5335 -ipset=/realtype.jp/gfwlist -server=/hackfacebook.com/127.0.0.1#5335 -ipset=/hackfacebook.com/gfwlist -server=/emac.in/127.0.0.1#5335 -ipset=/emac.in/gfwlist -server=/n3ro.net/127.0.0.1#5335 -ipset=/n3ro.net/gfwlist -server=/disneyredirects.com/127.0.0.1#5335 -ipset=/disneyredirects.com/gfwlist -server=/wordpress.com/127.0.0.1#5335 -ipset=/wordpress.com/gfwlist -server=/bridgestone.com.co/127.0.0.1#5335 -ipset=/bridgestone.com.co/gfwlist -server=/wsjshop.com/127.0.0.1#5335 -ipset=/wsjshop.com/gfwlist -server=/sony-europe.com/127.0.0.1#5335 -ipset=/sony-europe.com/gfwlist -server=/paypal-optimizer.com/127.0.0.1#5335 -ipset=/paypal-optimizer.com/gfwlist -server=/soirt4.fun/127.0.0.1#5335 -ipset=/soirt4.fun/gfwlist +server=/xn--gtvz22d.xn--hxt814e/127.0.0.1#5335 +ipset=/xn--gtvz22d.xn--hxt814e/gfwlist +server=/pornov1080.name/127.0.0.1#5335 +ipset=/pornov1080.name/gfwlist +server=/hotcuckoldwife.com/127.0.0.1#5335 +ipset=/hotcuckoldwife.com/gfwlist +server=/smplace.com/127.0.0.1#5335 +ipset=/smplace.com/gfwlist +server=/moefuns.co/127.0.0.1#5335 +ipset=/moefuns.co/gfwlist +server=/deadspacegame.com/127.0.0.1#5335 +ipset=/deadspacegame.com/gfwlist +server=/pornogram.xxx/127.0.0.1#5335 +ipset=/pornogram.xxx/gfwlist +server=/beatsbydreireland-sales.com/127.0.0.1#5335 +ipset=/beatsbydreireland-sales.com/gfwlist +server=/waranlov.com/127.0.0.1#5335 +ipset=/waranlov.com/gfwlist +server=/glamourtits.com/127.0.0.1#5335 +ipset=/glamourtits.com/gfwlist server=/personaltrainermath.com/127.0.0.1#5335 ipset=/personaltrainermath.com/gfwlist -server=/rhodeislandbmw.com/127.0.0.1#5335 -ipset=/rhodeislandbmw.com/gfwlist +server=/boswp.com/127.0.0.1#5335 +ipset=/boswp.com/gfwlist +server=/harvard.xxx/127.0.0.1#5335 +ipset=/harvard.xxx/gfwlist +server=/naughtymachinima.com/127.0.0.1#5335 +ipset=/naughtymachinima.com/gfwlist server=/chinaclothesstore.com/127.0.0.1#5335 ipset=/chinaclothesstore.com/gfwlist +server=/av-baron.com/127.0.0.1#5335 +ipset=/av-baron.com/gfwlist server=/economist.com/127.0.0.1#5335 ipset=/economist.com/gfwlist +server=/amdigital.co.uk/127.0.0.1#5335 +ipset=/amdigital.co.uk/gfwlist server=/facebpook.com/127.0.0.1#5335 ipset=/facebpook.com/gfwlist -server=/beatsbydre-headphonesshop.com/127.0.0.1#5335 -ipset=/beatsbydre-headphonesshop.com/gfwlist -server=/google.cf/127.0.0.1#5335 -ipset=/google.cf/gfwlist +server=/lpsg.com/127.0.0.1#5335 +ipset=/lpsg.com/gfwlist server=/dicela.net/127.0.0.1#5335 ipset=/dicela.net/gfwlist -server=/famifun.com.tw/127.0.0.1#5335 -ipset=/famifun.com.tw/gfwlist server=/stockagainstphotography.com/127.0.0.1#5335 ipset=/stockagainstphotography.com/gfwlist server=/wto.org/127.0.0.1#5335 ipset=/wto.org/gfwlist -server=/directv.com/127.0.0.1#5335 -ipset=/directv.com/gfwlist -server=/beatsbestdeals.com/127.0.0.1#5335 -ipset=/beatsbestdeals.com/gfwlist +server=/hashicorp.com/127.0.0.1#5335 +ipset=/hashicorp.com/gfwlist +server=/hp-ww.com/127.0.0.1#5335 +ipset=/hp-ww.com/gfwlist server=/bmwdcsnet.net/127.0.0.1#5335 ipset=/bmwdcsnet.net/gfwlist server=/bmw-connecteddrive.pl/127.0.0.1#5335 @@ -5584,214 +4658,166 @@ server=/visa.com.dm/127.0.0.1#5335 ipset=/visa.com.dm/gfwlist server=/facebookloginhelp.net/127.0.0.1#5335 ipset=/facebookloginhelp.net/gfwlist -server=/applestore.cc/127.0.0.1#5335 -ipset=/applestore.cc/gfwlist -server=/itunbes.com/127.0.0.1#5335 -ipset=/itunbes.com/gfwlist server=/enfabebe.com.do/127.0.0.1#5335 ipset=/enfabebe.com.do/gfwlist -server=/btec.co.uk/127.0.0.1#5335 -ipset=/btec.co.uk/gfwlist -server=/bmw.be/127.0.0.1#5335 -ipset=/bmw.be/gfwlist -server=/rocksdb.org/127.0.0.1#5335 -ipset=/rocksdb.org/gfwlist +server=/vjav.com/127.0.0.1#5335 +ipset=/vjav.com/gfwlist server=/akamaihd.net/127.0.0.1#5335 ipset=/akamaihd.net/gfwlist +server=/porngames.games/127.0.0.1#5335 +ipset=/porngames.games/gfwlist server=/veet.com.mx/127.0.0.1#5335 ipset=/veet.com.mx/gfwlist -server=/flowtype.org/127.0.0.1#5335 -ipset=/flowtype.org/gfwlist -server=/alivercm.com/127.0.0.1#5335 -ipset=/alivercm.com/gfwlist -server=/futpromos.com/127.0.0.1#5335 -ipset=/futpromos.com/gfwlist +server=/sexy-photos.net/127.0.0.1#5335 +ipset=/sexy-photos.net/gfwlist +server=/wantblogger.com/127.0.0.1#5335 +ipset=/wantblogger.com/gfwlist +server=/vkuservideo.net/127.0.0.1#5335 +ipset=/vkuservideo.net/gfwlist server=/bmw.com.au/127.0.0.1#5335 ipset=/bmw.com.au/gfwlist server=/oxfordscholarlyeditions.com/127.0.0.1#5335 ipset=/oxfordscholarlyeditions.com/gfwlist -server=/enfagrow.com.my/127.0.0.1#5335 -ipset=/enfagrow.com.my/gfwlist -server=/blogspot.vn/127.0.0.1#5335 -ipset=/blogspot.vn/gfwlist -server=/webkitgtk.org/127.0.0.1#5335 -ipset=/webkitgtk.org/gfwlist +server=/pornkind.net/127.0.0.1#5335 +ipset=/pornkind.net/gfwlist +server=/nikkei-cnbc.co.jp/127.0.0.1#5335 +ipset=/nikkei-cnbc.co.jp/gfwlist server=/ebaytradingassistant.com/127.0.0.1#5335 ipset=/ebaytradingassistant.com/gfwlist -server=/bmw.co.id/127.0.0.1#5335 -ipset=/bmw.co.id/gfwlist +server=/porndr.com/127.0.0.1#5335 +ipset=/porndr.com/gfwlist server=/debug.com/127.0.0.1#5335 ipset=/debug.com/gfwlist -server=/mcrouter.org/127.0.0.1#5335 -ipset=/mcrouter.org/gfwlist +server=/stin31.ru/127.0.0.1#5335 +ipset=/stin31.ru/gfwlist server=/hpstore.com/127.0.0.1#5335 ipset=/hpstore.com/gfwlist server=/nxtdig.com.hk/127.0.0.1#5335 ipset=/nxtdig.com.hk/gfwlist -server=/mi9.com.au/127.0.0.1#5335 -ipset=/mi9.com.au/gfwlist -server=/beats4.net/127.0.0.1#5335 -ipset=/beats4.net/gfwlist +server=/watchmygf.me/127.0.0.1#5335 +ipset=/watchmygf.me/gfwlist +server=/facebomok.com/127.0.0.1#5335 +ipset=/facebomok.com/gfwlist server=/shoping.com/127.0.0.1#5335 ipset=/shoping.com/gfwlist -server=/bmw-connecteddrive.de/127.0.0.1#5335 -ipset=/bmw-connecteddrive.de/gfwlist +server=/scholar.google.bg/127.0.0.1#5335 +ipset=/scholar.google.bg/gfwlist server=/hotmail.co/127.0.0.1#5335 ipset=/hotmail.co/gfwlist -server=/akamaietpcompromisedcnctest.com/127.0.0.1#5335 -ipset=/akamaietpcompromisedcnctest.com/gfwlist server=/mini.com.do/127.0.0.1#5335 ipset=/mini.com.do/gfwlist server=/sonypicturestelevisiongames.com/127.0.0.1#5335 ipset=/sonypicturestelevisiongames.com/gfwlist -server=/facecook.com/127.0.0.1#5335 -ipset=/facecook.com/gfwlist +server=/netvideogirls.com/127.0.0.1#5335 +ipset=/netvideogirls.com/gfwlist +server=/innovations-i.com/127.0.0.1#5335 +ipset=/innovations-i.com/gfwlist server=/bitfinex.com/127.0.0.1#5335 ipset=/bitfinex.com/gfwlist -server=/monsterbeatsheadphone.com/127.0.0.1#5335 -ipset=/monsterbeatsheadphone.com/gfwlist +server=/godaddy.com/127.0.0.1#5335 +ipset=/godaddy.com/gfwlist server=/verisign.sg/127.0.0.1#5335 ipset=/verisign.sg/gfwlist -server=/intel.mk/127.0.0.1#5335 -ipset=/intel.mk/gfwlist +server=/3dsexvilla.com/127.0.0.1#5335 +ipset=/3dsexvilla.com/gfwlist +server=/static.fun/127.0.0.1#5335 +ipset=/static.fun/gfwlist server=/bmw-connecteddrive.se/127.0.0.1#5335 ipset=/bmw-connecteddrive.se/gfwlist -server=/paypalsurvey.com/127.0.0.1#5335 -ipset=/paypalsurvey.com/gfwlist -server=/bmw-calgary.ca/127.0.0.1#5335 -ipset=/bmw-calgary.ca/gfwlist -server=/foxmediacloud.com/127.0.0.1#5335 -ipset=/foxmediacloud.com/gfwlist -server=/cloudflaressl.com/127.0.0.1#5335 -ipset=/cloudflaressl.com/gfwlist -server=/kastatic.org/127.0.0.1#5335 -ipset=/kastatic.org/gfwlist +server=/ssl-lvlt.cdn.ea.com/127.0.0.1#5335 +ipset=/ssl-lvlt.cdn.ea.com/gfwlist server=/beatsneon.com/127.0.0.1#5335 ipset=/beatsneon.com/gfwlist server=/savvyshopper.net.au/127.0.0.1#5335 ipset=/savvyshopper.net.au/gfwlist -server=/reckittbenckiser.net/127.0.0.1#5335 -ipset=/reckittbenckiser.net/gfwlist -server=/foxsports-chicago.com/127.0.0.1#5335 -ipset=/foxsports-chicago.com/gfwlist -server=/kindleoasisnews.com/127.0.0.1#5335 -ipset=/kindleoasisnews.com/gfwlist -server=/xboxplayanywhere.com/127.0.0.1#5335 -ipset=/xboxplayanywhere.com/gfwlist -server=/hulugermany.com/127.0.0.1#5335 -ipset=/hulugermany.com/gfwlist -server=/foxnewsaffiliates.com/127.0.0.1#5335 -ipset=/foxnewsaffiliates.com/gfwlist -server=/beatsdreinau.com/127.0.0.1#5335 -ipset=/beatsdreinau.com/gfwlist +server=/muchohentai.com/127.0.0.1#5335 +ipset=/muchohentai.com/gfwlist +server=/freechatnow.com/127.0.0.1#5335 +ipset=/freechatnow.com/gfwlist +server=/binancezh.link/127.0.0.1#5335 +ipset=/binancezh.link/gfwlist +server=/fap18.net/127.0.0.1#5335 +ipset=/fap18.net/gfwlist server=/web.app/127.0.0.1#5335 ipset=/web.app/gfwlist server=/canon.sk/127.0.0.1#5335 ipset=/canon.sk/gfwlist -server=/supremacy.com/127.0.0.1#5335 -ipset=/supremacy.com/gfwlist server=/cooliphonecasesstore.com/127.0.0.1#5335 ipset=/cooliphonecasesstore.com/gfwlist -server=/appleaccount.net/127.0.0.1#5335 -ipset=/appleaccount.net/gfwlist -server=/paypal-support.com/127.0.0.1#5335 -ipset=/paypal-support.com/gfwlist -server=/trithucvn.org/127.0.0.1#5335 -ipset=/trithucvn.org/gfwlist +server=/xvedo.net/127.0.0.1#5335 +ipset=/xvedo.net/gfwlist +server=/faphouse.com/127.0.0.1#5335 +ipset=/faphouse.com/gfwlist +server=/businessinsider.nl/127.0.0.1#5335 +ipset=/businessinsider.nl/gfwlist server=/mini-connected.de/127.0.0.1#5335 ipset=/mini-connected.de/gfwlist -server=/appleid-applemx.com/127.0.0.1#5335 -ipset=/appleid-applemx.com/gfwlist -server=/google.co.id/127.0.0.1#5335 -ipset=/google.co.id/gfwlist -server=/computingreviews.com/127.0.0.1#5335 -ipset=/computingreviews.com/gfwlist -server=/nejm.org/127.0.0.1#5335 -ipset=/nejm.org/gfwlist +server=/johren.games/127.0.0.1#5335 +ipset=/johren.games/gfwlist +server=/gouri.xyz/127.0.0.1#5335 +ipset=/gouri.xyz/gfwlist server=/lantern.io/127.0.0.1#5335 ipset=/lantern.io/gfwlist server=/cnbc.com/127.0.0.1#5335 ipset=/cnbc.com/gfwlist -server=/wise-research.com/127.0.0.1#5335 -ipset=/wise-research.com/gfwlist +server=/porner.tv/127.0.0.1#5335 +ipset=/porner.tv/gfwlist server=/pixiv.co.jp/127.0.0.1#5335 ipset=/pixiv.co.jp/gfwlist server=/nurofen.cz/127.0.0.1#5335 ipset=/nurofen.cz/gfwlist server=/harpercollinschristian.com/127.0.0.1#5335 ipset=/harpercollinschristian.com/gfwlist -server=/directvmurfreesborotn.com/127.0.0.1#5335 -ipset=/directvmurfreesborotn.com/gfwlist -server=/xbox.eu/127.0.0.1#5335 -ipset=/xbox.eu/gfwlist server=/ctfassets.net/127.0.0.1#5335 ipset=/ctfassets.net/gfwlist -server=/beibao.com/127.0.0.1#5335 -ipset=/beibao.com/gfwlist -server=/faccebookk.com/127.0.0.1#5335 -ipset=/faccebookk.com/gfwlist -server=/foxsports.com/127.0.0.1#5335 -ipset=/foxsports.com/gfwlist -server=/advertisercommunity.com/127.0.0.1#5335 -ipset=/advertisercommunity.com/gfwlist +server=/cloupia.net/127.0.0.1#5335 +ipset=/cloupia.net/gfwlist server=/google.com.kw/127.0.0.1#5335 ipset=/google.com.kw/gfwlist -server=/qualcomm.com.tw/127.0.0.1#5335 -ipset=/qualcomm.com.tw/gfwlist +server=/yaeby.info/127.0.0.1#5335 +ipset=/yaeby.info/gfwlist server=/glasamerike.net/127.0.0.1#5335 ipset=/glasamerike.net/gfwlist server=/pearsoninstitute.ac.za/127.0.0.1#5335 ipset=/pearsoninstitute.ac.za/gfwlist server=/thesimssocial.com/127.0.0.1#5335 ipset=/thesimssocial.com/gfwlist -server=/facboox.com/127.0.0.1#5335 -ipset=/facboox.com/gfwlist -server=/mini.es/127.0.0.1#5335 -ipset=/mini.es/gfwlist -server=/lysol.co.cr/127.0.0.1#5335 -ipset=/lysol.co.cr/gfwlist +server=/minimotorsport.com/127.0.0.1#5335 +ipset=/minimotorsport.com/gfwlist server=/travelex.be/127.0.0.1#5335 ipset=/travelex.be/gfwlist -server=/google.tm/127.0.0.1#5335 -ipset=/google.tm/gfwlist -server=/unity.com/127.0.0.1#5335 -ipset=/unity.com/gfwlist -server=/mini-egypt.com/127.0.0.1#5335 -ipset=/mini-egypt.com/gfwlist +server=/viewgals.com/127.0.0.1#5335 +ipset=/viewgals.com/gfwlist +server=/falundafa.org/127.0.0.1#5335 +ipset=/falundafa.org/gfwlist server=/wipower.com/127.0.0.1#5335 ipset=/wipower.com/gfwlist server=/disneynow.com/127.0.0.1#5335 ipset=/disneynow.com/gfwlist -server=/nettyinternet.com/127.0.0.1#5335 -ipset=/nettyinternet.com/gfwlist +server=/findtubes.com/127.0.0.1#5335 +ipset=/findtubes.com/gfwlist server=/webex.com/127.0.0.1#5335 ipset=/webex.com/gfwlist server=/chicagolandbmw.com/127.0.0.1#5335 ipset=/chicagolandbmw.com/gfwlist +server=/wnacg.org/127.0.0.1#5335 +ipset=/wnacg.org/gfwlist server=/bmw.ba/127.0.0.1#5335 ipset=/bmw.ba/gfwlist server=/brightcovecdn.com/127.0.0.1#5335 ipset=/brightcovecdn.com/gfwlist -server=/harperacademic.com/127.0.0.1#5335 -ipset=/harperacademic.com/gfwlist -server=/keepmovingwithmovefree.com/127.0.0.1#5335 -ipset=/keepmovingwithmovefree.com/gfwlist -server=/bridgestone.com/127.0.0.1#5335 -ipset=/bridgestone.com/gfwlist -server=/vk-portal.net/127.0.0.1#5335 -ipset=/vk-portal.net/gfwlist -server=/webobjects.com/127.0.0.1#5335 -ipset=/webobjects.com/gfwlist -server=/nikestore.com/127.0.0.1#5335 -ipset=/nikestore.com/gfwlist -server=/pinterest.com.mx/127.0.0.1#5335 -ipset=/pinterest.com.mx/gfwlist -server=/bmw-connecteddrive.it/127.0.0.1#5335 -ipset=/bmw-connecteddrive.it/gfwlist -server=/volvobuses.it/127.0.0.1#5335 -ipset=/volvobuses.it/gfwlist -server=/bmw-motorrad.sv/127.0.0.1#5335 -ipset=/bmw-motorrad.sv/gfwlist +server=/mortein.com.ng/127.0.0.1#5335 +ipset=/mortein.com.ng/gfwlist +server=/disneyenconcert.com/127.0.0.1#5335 +ipset=/disneyenconcert.com/gfwlist +server=/llnw.net/127.0.0.1#5335 +ipset=/llnw.net/gfwlist +server=/bestbuyrewardzone.ca/127.0.0.1#5335 +ipset=/bestbuyrewardzone.ca/gfwlist +server=/xxx-porn.info/127.0.0.1#5335 +ipset=/xxx-porn.info/gfwlist +server=/careersatfb.com/127.0.0.1#5335 +ipset=/careersatfb.com/gfwlist server=/fox47.com/127.0.0.1#5335 ipset=/fox47.com/gfwlist server=/hpceo.com/127.0.0.1#5335 @@ -5802,60 +4828,46 @@ server=/votolia.com/127.0.0.1#5335 ipset=/votolia.com/gfwlist server=/bmw-connecteddrive.be/127.0.0.1#5335 ipset=/bmw-connecteddrive.be/gfwlist +server=/amateur-porn-clips.com/127.0.0.1#5335 +ipset=/amateur-porn-clips.com/gfwlist server=/sni1dcb6gl.wpc.edgecastcdn.net/127.0.0.1#5335 ipset=/sni1dcb6gl.wpc.edgecastcdn.net/gfwlist server=/cotolia.com/127.0.0.1#5335 ipset=/cotolia.com/gfwlist -server=/mirrorsedge.jp/127.0.0.1#5335 -ipset=/mirrorsedge.jp/gfwlist -server=/paypal.so/127.0.0.1#5335 -ipset=/paypal.so/gfwlist +server=/whatsapp.cc/127.0.0.1#5335 +ipset=/whatsapp.cc/gfwlist server=/fotolia.com/127.0.0.1#5335 ipset=/fotolia.com/gfwlist -server=/aiv-cdn.net/127.0.0.1#5335 -ipset=/aiv-cdn.net/gfwlist -server=/pinterest.com/127.0.0.1#5335 -ipset=/pinterest.com/gfwlist -server=/mktdns.com/127.0.0.1#5335 -ipset=/mktdns.com/gfwlist +server=/megapornfreehd.com/127.0.0.1#5335 +ipset=/megapornfreehd.com/gfwlist server=/vkuservideo.com/127.0.0.1#5335 ipset=/vkuservideo.com/gfwlist server=/mit.edu/127.0.0.1#5335 ipset=/mit.edu/gfwlist server=/myfbfans.com/127.0.0.1#5335 ipset=/myfbfans.com/gfwlist -server=/pugetsoundbmw.com/127.0.0.1#5335 -ipset=/pugetsoundbmw.com/gfwlist +server=/handjobtube4free.com/127.0.0.1#5335 +ipset=/handjobtube4free.com/gfwlist server=/nikefootballjersey.com/127.0.0.1#5335 ipset=/nikefootballjersey.com/gfwlist -server=/buycheapbeatsdreuk.com/127.0.0.1#5335 -ipset=/buycheapbeatsdreuk.com/gfwlist -server=/googleearth.com/127.0.0.1#5335 -ipset=/googleearth.com/gfwlist +server=/galleryarchives.com/127.0.0.1#5335 +ipset=/galleryarchives.com/gfwlist server=/mytimesplus.co.uk/127.0.0.1#5335 ipset=/mytimesplus.co.uk/gfwlist -server=/cmu.edu/127.0.0.1#5335 -ipset=/cmu.edu/gfwlist -server=/megaphone.fm/127.0.0.1#5335 -ipset=/megaphone.fm/gfwlist +server=/v8.dev/127.0.0.1#5335 +ipset=/v8.dev/gfwlist server=/alphabet.jp/127.0.0.1#5335 ipset=/alphabet.jp/gfwlist server=/attssl.com/127.0.0.1#5335 ipset=/attssl.com/gfwlist -server=/akastream.net/127.0.0.1#5335 -ipset=/akastream.net/gfwlist -server=/appletvapp.apple/127.0.0.1#5335 -ipset=/appletvapp.apple/gfwlist +server=/sexmex.xxx/127.0.0.1#5335 +ipset=/sexmex.xxx/gfwlist server=/paypal-integration.com/127.0.0.1#5335 ipset=/paypal-integration.com/gfwlist -server=/clarivate.com/127.0.0.1#5335 -ipset=/clarivate.com/gfwlist -server=/blogspot.com.ee/127.0.0.1#5335 -ipset=/blogspot.com.ee/gfwlist server=/pccwsolutions.com/127.0.0.1#5335 ipset=/pccwsolutions.com/gfwlist -server=/pwabuilder.com/127.0.0.1#5335 -ipset=/pwabuilder.com/gfwlist +server=/yourflashporn.com/127.0.0.1#5335 +ipset=/yourflashporn.com/gfwlist server=/fox32.com/127.0.0.1#5335 ipset=/fox32.com/gfwlist server=/dowjones.io/127.0.0.1#5335 @@ -5866,174 +4878,152 @@ server=/vanish.nl/127.0.0.1#5335 ipset=/vanish.nl/gfwlist server=/adx.promo/127.0.0.1#5335 ipset=/adx.promo/gfwlist -server=/facebooksignup.net/127.0.0.1#5335 -ipset=/facebooksignup.net/gfwlist server=/disney.co.jp/127.0.0.1#5335 ipset=/disney.co.jp/gfwlist -server=/vfsco.com.tr/127.0.0.1#5335 -ipset=/vfsco.com.tr/gfwlist +server=/1monsterbeatsbydreus.com/127.0.0.1#5335 +ipset=/1monsterbeatsbydreus.com/gfwlist server=/ebayopensource.net/127.0.0.1#5335 ipset=/ebayopensource.net/gfwlist -server=/chillingo.com/127.0.0.1#5335 -ipset=/chillingo.com/gfwlist server=/alphera.com/127.0.0.1#5335 ipset=/alphera.com/gfwlist -server=/adidas.se/127.0.0.1#5335 -ipset=/adidas.se/gfwlist -server=/vfsco.co.za/127.0.0.1#5335 -ipset=/vfsco.co.za/gfwlist -server=/faceboik.com/127.0.0.1#5335 -ipset=/faceboik.com/gfwlist +server=/line-beta.me/127.0.0.1#5335 +ipset=/line-beta.me/gfwlist +server=/hbogoasia.id/127.0.0.1#5335 +ipset=/hbogoasia.id/gfwlist server=/linux.org/127.0.0.1#5335 ipset=/linux.org/gfwlist -server=/minidurham.com/127.0.0.1#5335 -ipset=/minidurham.com/gfwlist +server=/thefappening.pro/127.0.0.1#5335 +ipset=/thefappening.pro/gfwlist server=/localpresshk.com/127.0.0.1#5335 ipset=/localpresshk.com/gfwlist -server=/herokuapp.com/127.0.0.1#5335 -ipset=/herokuapp.com/gfwlist -server=/beatsmusic.com/127.0.0.1#5335 -ipset=/beatsmusic.com/gfwlist -server=/youtube.jp/127.0.0.1#5335 -ipset=/youtube.jp/gfwlist +server=/regex101.com/127.0.0.1#5335 +ipset=/regex101.com/gfwlist +server=/snapvolumes.com/127.0.0.1#5335 +ipset=/snapvolumes.com/gfwlist +server=/sarennasworld.com/127.0.0.1#5335 +ipset=/sarennasworld.com/gfwlist server=/google.cl/127.0.0.1#5335 ipset=/google.cl/gfwlist server=/openstreetmap.com/127.0.0.1#5335 ipset=/openstreetmap.com/gfwlist server=/heads4-ak-spotify-com.akamaized.net/127.0.0.1#5335 ipset=/heads4-ak-spotify-com.akamaized.net/gfwlist -server=/virtuata.com/127.0.0.1#5335 -ipset=/virtuata.com/gfwlist server=/freehulu.com/127.0.0.1#5335 ipset=/freehulu.com/gfwlist server=/shinhangmc.com/127.0.0.1#5335 ipset=/shinhangmc.com/gfwlist -server=/gettyimages.fr/127.0.0.1#5335 -ipset=/gettyimages.fr/gfwlist server=/beatsbydre.jp/127.0.0.1#5335 ipset=/beatsbydre.jp/gfwlist -server=/fury.blog/127.0.0.1#5335 -ipset=/fury.blog/gfwlist -server=/waa.tw/127.0.0.1#5335 -ipset=/waa.tw/gfwlist +server=/swpr.livedoor.blog/127.0.0.1#5335 +ipset=/swpr.livedoor.blog/gfwlist +server=/amateurthreesomeporn.com/127.0.0.1#5335 +ipset=/amateurthreesomeporn.com/gfwlist server=/whatsapp.tv/127.0.0.1#5335 ipset=/whatsapp.tv/gfwlist server=/yahoo.co.mz/127.0.0.1#5335 ipset=/yahoo.co.mz/gfwlist -server=/nextwork.com.hk/127.0.0.1#5335 -ipset=/nextwork.com.hk/gfwlist -server=/s-nbcnews.com/127.0.0.1#5335 -ipset=/s-nbcnews.com/gfwlist -server=/intel.gt/127.0.0.1#5335 -ipset=/intel.gt/gfwlist -server=/bmw.by/127.0.0.1#5335 -ipset=/bmw.by/gfwlist -server=/mitpressjournals.org/127.0.0.1#5335 -ipset=/mitpressjournals.org/gfwlist -server=/visasignature.co.kr/127.0.0.1#5335 -ipset=/visasignature.co.kr/gfwlist -server=/xn--d1acpjx3f.xn--p1ai/127.0.0.1#5335 -ipset=/xn--d1acpjx3f.xn--p1ai/gfwlist +server=/acpica.com/127.0.0.1#5335 +ipset=/acpica.com/gfwlist +server=/xshr.online/127.0.0.1#5335 +ipset=/xshr.online/gfwlist +server=/scifisex.net/127.0.0.1#5335 +ipset=/scifisex.net/gfwlist +server=/nudeteenladies.com/127.0.0.1#5335 +ipset=/nudeteenladies.com/gfwlist server=/microsoft.by/127.0.0.1#5335 ipset=/microsoft.by/gfwlist -server=/vfsco.dk/127.0.0.1#5335 -ipset=/vfsco.dk/gfwlist +server=/mingw.org/127.0.0.1#5335 +ipset=/mingw.org/gfwlist server=/skysports.fr/127.0.0.1#5335 ipset=/skysports.fr/gfwlist server=/riotgames.info/127.0.0.1#5335 ipset=/riotgames.info/gfwlist server=/ipadair.hk/127.0.0.1#5335 ipset=/ipadair.hk/gfwlist +server=/xnxxpornvid.com/127.0.0.1#5335 +ipset=/xnxxpornvid.com/gfwlist server=/web.dev/127.0.0.1#5335 ipset=/web.dev/gfwlist server=/webmoneyinfo.com/127.0.0.1#5335 ipset=/webmoneyinfo.com/gfwlist server=/amazonalexavoxcon.com/127.0.0.1#5335 ipset=/amazonalexavoxcon.com/gfwlist -server=/pricelessafrica.com/127.0.0.1#5335 -ipset=/pricelessafrica.com/gfwlist server=/appe-store.com/127.0.0.1#5335 ipset=/appe-store.com/gfwlist +server=/bvfce6wz.xyz/127.0.0.1#5335 +ipset=/bvfce6wz.xyz/gfwlist server=/bmwclassic.com/127.0.0.1#5335 ipset=/bmwclassic.com/gfwlist -server=/fox42kptm.com/127.0.0.1#5335 -ipset=/fox42kptm.com/gfwlist -server=/stunnel.org/127.0.0.1#5335 -ipset=/stunnel.org/gfwlist -server=/html5rocks.com/127.0.0.1#5335 -ipset=/html5rocks.com/gfwlist +server=/theguardiandns.com/127.0.0.1#5335 +ipset=/theguardiandns.com/gfwlist server=/eduplus.hk/127.0.0.1#5335 ipset=/eduplus.hk/gfwlist -server=/ieee-aess.org/127.0.0.1#5335 -ipset=/ieee-aess.org/gfwlist +server=/manurefetish.com/127.0.0.1#5335 +ipset=/manurefetish.com/gfwlist server=/pinterest.nz/127.0.0.1#5335 ipset=/pinterest.nz/gfwlist +server=/wldfnjh.com/127.0.0.1#5335 +ipset=/wldfnjh.com/gfwlist server=/bmw-motorrad.gt/127.0.0.1#5335 ipset=/bmw-motorrad.gt/gfwlist -server=/bmw-connecteddrive.ae/127.0.0.1#5335 -ipset=/bmw-connecteddrive.ae/gfwlist +server=/visa.com.sg/127.0.0.1#5335 +ipset=/visa.com.sg/gfwlist server=/multicurrencycashpassport.com/127.0.0.1#5335 ipset=/multicurrencycashpassport.com/gfwlist server=/travelex.co.in/127.0.0.1#5335 ipset=/travelex.co.in/gfwlist -server=/zukunftswerkstatt.de/127.0.0.1#5335 -ipset=/zukunftswerkstatt.de/gfwlist +server=/leakxxx.com/127.0.0.1#5335 +ipset=/leakxxx.com/gfwlist server=/youtube.qa/127.0.0.1#5335 ipset=/youtube.qa/gfwlist server=/pinterest.com.pe/127.0.0.1#5335 ipset=/pinterest.com.pe/gfwlist -server=/fox10news.com/127.0.0.1#5335 -ipset=/fox10news.com/gfwlist -server=/starwarsgalacticstarcruiser.com/127.0.0.1#5335 -ipset=/starwarsgalacticstarcruiser.com/gfwlist +server=/respawnbyrazer.com/127.0.0.1#5335 +ipset=/respawnbyrazer.com/gfwlist +server=/quip.com/127.0.0.1#5335 +ipset=/quip.com/gfwlist server=/mepn.com/127.0.0.1#5335 ipset=/mepn.com/gfwlist -server=/intel.co.kr/127.0.0.1#5335 -ipset=/intel.co.kr/gfwlist -server=/nikesbdunks.net/127.0.0.1#5335 -ipset=/nikesbdunks.net/gfwlist -server=/vfsco.be/127.0.0.1#5335 -ipset=/vfsco.be/gfwlist +server=/go.dev/127.0.0.1#5335 +ipset=/go.dev/gfwlist server=/thestandnews.com/127.0.0.1#5335 ipset=/thestandnews.com/gfwlist server=/perfectkickz.net/127.0.0.1#5335 ipset=/perfectkickz.net/gfwlist server=/beatswirelesscheap.com/127.0.0.1#5335 ipset=/beatswirelesscheap.com/gfwlist -server=/atnext.com/127.0.0.1#5335 -ipset=/atnext.com/gfwlist server=/huluasks.com/127.0.0.1#5335 ipset=/huluasks.com/gfwlist +server=/babushky.club/127.0.0.1#5335 +ipset=/babushky.club/gfwlist server=/rust-lang.org/127.0.0.1#5335 ipset=/rust-lang.org/gfwlist -server=/fairmarket.com/127.0.0.1#5335 -ipset=/fairmarket.com/gfwlist server=/facebookfacebook.com/127.0.0.1#5335 ipset=/facebookfacebook.com/gfwlist -server=/chocolatey.org/127.0.0.1#5335 -ipset=/chocolatey.org/gfwlist -server=/youtube.com.qa/127.0.0.1#5335 -ipset=/youtube.com.qa/gfwlist +server=/apple.cl/127.0.0.1#5335 +ipset=/apple.cl/gfwlist server=/dynacw.com.tw/127.0.0.1#5335 ipset=/dynacw.com.tw/gfwlist -server=/mzed.com/127.0.0.1#5335 -ipset=/mzed.com/gfwlist server=/canon.uz/127.0.0.1#5335 ipset=/canon.uz/gfwlist server=/bbestmall.com/127.0.0.1#5335 ipset=/bbestmall.com/gfwlist server=/tegrazone.jp/127.0.0.1#5335 ipset=/tegrazone.jp/gfwlist -server=/shopeemobile.com/127.0.0.1#5335 -ipset=/shopeemobile.com/gfwlist -server=/mini-connected.com/127.0.0.1#5335 -ipset=/mini-connected.com/gfwlist +server=/51luoli.info/127.0.0.1#5335 +ipset=/51luoli.info/gfwlist server=/bmw-lebanon.com/127.0.0.1#5335 ipset=/bmw-lebanon.com/gfwlist server=/pcloud.tw/127.0.0.1#5335 ipset=/pcloud.tw/gfwlist -server=/visapcsdirect.com/127.0.0.1#5335 -ipset=/visapcsdirect.com/gfwlist +server=/jokerlu1.cc/127.0.0.1#5335 +ipset=/jokerlu1.cc/gfwlist +server=/audio4-ak-spotify-com.akamaized.net/127.0.0.1#5335 +ipset=/audio4-ak-spotify-com.akamaized.net/gfwlist +server=/beatsbydreforsalesonline.com/127.0.0.1#5335 +ipset=/beatsbydreforsalesonline.com/gfwlist +server=/vrpornranked.com/127.0.0.1#5335 +ipset=/vrpornranked.com/gfwlist server=/mini.jp/127.0.0.1#5335 ipset=/mini.jp/gfwlist server=/microsoftreactor.info/127.0.0.1#5335 @@ -6050,150 +5040,122 @@ server=/intelsecurity.com/127.0.0.1#5335 ipset=/intelsecurity.com/gfwlist server=/angelbeats.jp/127.0.0.1#5335 ipset=/angelbeats.jp/gfwlist -server=/yahoo.nl/127.0.0.1#5335 -ipset=/yahoo.nl/gfwlist -server=/telex.cc/127.0.0.1#5335 -ipset=/telex.cc/gfwlist +server=/okaapps.com/127.0.0.1#5335 +ipset=/okaapps.com/gfwlist server=/heraldsun.com.au/127.0.0.1#5335 ipset=/heraldsun.com.au/gfwlist -server=/golosameriki.com/127.0.0.1#5335 -ipset=/golosameriki.com/gfwlist +server=/bustydanniashe.com/127.0.0.1#5335 +ipset=/bustydanniashe.com/gfwlist server=/mujikorea.net/127.0.0.1#5335 ipset=/mujikorea.net/gfwlist -server=/facebookgroups.com/127.0.0.1#5335 -ipset=/facebookgroups.com/gfwlist server=/wogx.com/127.0.0.1#5335 ipset=/wogx.com/gfwlist -server=/akamaiphillipines.com/127.0.0.1#5335 -ipset=/akamaiphillipines.com/gfwlist -server=/thefacebook.net/127.0.0.1#5335 -ipset=/thefacebook.net/gfwlist -server=/applehealth.com.hk/127.0.0.1#5335 -ipset=/applehealth.com.hk/gfwlist -server=/onlineinstagram.com/127.0.0.1#5335 -ipset=/onlineinstagram.com/gfwlist -server=/velostrata.com/127.0.0.1#5335 -ipset=/velostrata.com/gfwlist -server=/bridgestonenationalfleet.com/127.0.0.1#5335 -ipset=/bridgestonenationalfleet.com/gfwlist -server=/hkcnews.com/127.0.0.1#5335 -ipset=/hkcnews.com/gfwlist +server=/streamporn.pw/127.0.0.1#5335 +ipset=/streamporn.pw/gfwlist +server=/fapdude.com/127.0.0.1#5335 +ipset=/fapdude.com/gfwlist +server=/fbboostyourbusiness.com/127.0.0.1#5335 +ipset=/fbboostyourbusiness.com/gfwlist +server=/codeish.co/127.0.0.1#5335 +ipset=/codeish.co/gfwlist server=/patentgold.net/127.0.0.1#5335 ipset=/patentgold.net/gfwlist -server=/anb.org/127.0.0.1#5335 -ipset=/anb.org/gfwlist -server=/openstreetmap.net/127.0.0.1#5335 -ipset=/openstreetmap.net/gfwlist -server=/scholar.google.at/127.0.0.1#5335 -ipset=/scholar.google.at/gfwlist +server=/uun87.com/127.0.0.1#5335 +ipset=/uun87.com/gfwlist +server=/kyodonews.net/127.0.0.1#5335 +ipset=/kyodonews.net/gfwlist server=/intagram.com/127.0.0.1#5335 ipset=/intagram.com/gfwlist server=/minihk.com/127.0.0.1#5335 ipset=/minihk.com/gfwlist -server=/dlgarenanow-a.akamaihd.net/127.0.0.1#5335 -ipset=/dlgarenanow-a.akamaihd.net/gfwlist -server=/disney-discount.com/127.0.0.1#5335 -ipset=/disney-discount.com/gfwlist -server=/facebook-support.org/127.0.0.1#5335 -ipset=/facebook-support.org/gfwlist +server=/contentful.com/127.0.0.1#5335 +ipset=/contentful.com/gfwlist +server=/gaybubble.com/127.0.0.1#5335 +ipset=/gaybubble.com/gfwlist server=/dnaindia.com/127.0.0.1#5335 ipset=/dnaindia.com/gfwlist -server=/githubhackathon.com/127.0.0.1#5335 -ipset=/githubhackathon.com/gfwlist server=/csis-prod.s3.amazonaws.com/127.0.0.1#5335 ipset=/csis-prod.s3.amazonaws.com/gfwlist server=/steamvideo-a.akamaihd.net/127.0.0.1#5335 ipset=/steamvideo-a.akamaihd.net/gfwlist -server=/fifastreet3.com/127.0.0.1#5335 -ipset=/fifastreet3.com/gfwlist -server=/dtci.technology/127.0.0.1#5335 -ipset=/dtci.technology/gfwlist +server=/hdb1.app/127.0.0.1#5335 +ipset=/hdb1.app/gfwlist +server=/plug.game/127.0.0.1#5335 +ipset=/plug.game/gfwlist server=/chinaeconomicreview.com/127.0.0.1#5335 ipset=/chinaeconomicreview.com/gfwlist +server=/vercel.live/127.0.0.1#5335 +ipset=/vercel.live/gfwlist server=/theintelstore.com/127.0.0.1#5335 ipset=/theintelstore.com/gfwlist server=/fastlylb.net/127.0.0.1#5335 ipset=/fastlylb.net/gfwlist +server=/lenkino.xxx/127.0.0.1#5335 +ipset=/lenkino.xxx/gfwlist +server=/sankei-ad.net/127.0.0.1#5335 +ipset=/sankei-ad.net/gfwlist +server=/fuskator.com/127.0.0.1#5335 +ipset=/fuskator.com/gfwlist server=/monsterbeatscasques.com/127.0.0.1#5335 ipset=/monsterbeatscasques.com/gfwlist server=/paypalhere.info/127.0.0.1#5335 ipset=/paypalhere.info/gfwlist -server=/alphabet.es/127.0.0.1#5335 -ipset=/alphabet.es/gfwlist -server=/sharethis.com/127.0.0.1#5335 -ipset=/sharethis.com/gfwlist server=/attvoip.com/127.0.0.1#5335 ipset=/attvoip.com/gfwlist server=/intel.ee/127.0.0.1#5335 ipset=/intel.ee/gfwlist server=/verisign.ch/127.0.0.1#5335 ipset=/verisign.ch/gfwlist -server=/docker.io/127.0.0.1#5335 -ipset=/docker.io/gfwlist -server=/firefox.com/127.0.0.1#5335 -ipset=/firefox.com/gfwlist -server=/nike.us/127.0.0.1#5335 -ipset=/nike.us/gfwlist -server=/logicoolg.com/127.0.0.1#5335 -ipset=/logicoolg.com/gfwlist -server=/parler.com/127.0.0.1#5335 -ipset=/parler.com/gfwlist -server=/ebayde.com/127.0.0.1#5335 -ipset=/ebayde.com/gfwlist +server=/jmcomic2.moe/127.0.0.1#5335 +ipset=/jmcomic2.moe/gfwlist +server=/reut.rs/127.0.0.1#5335 +ipset=/reut.rs/gfwlist +server=/myfreeporngames.com/127.0.0.1#5335 +ipset=/myfreeporngames.com/gfwlist server=/makesenseofdata.com/127.0.0.1#5335 ipset=/makesenseofdata.com/gfwlist +server=/letsjerk.cc/127.0.0.1#5335 +ipset=/letsjerk.cc/gfwlist +server=/svscomics.asia/127.0.0.1#5335 +ipset=/svscomics.asia/gfwlist server=/mini.se/127.0.0.1#5335 ipset=/mini.se/gfwlist -server=/mythicgames.com/127.0.0.1#5335 -ipset=/mythicgames.com/gfwlist -server=/applecomputer.co.in/127.0.0.1#5335 -ipset=/applecomputer.co.in/gfwlist +server=/ikea.com.om/127.0.0.1#5335 +ipset=/ikea.com.om/gfwlist server=/offresspecialesbmw.ca/127.0.0.1#5335 ipset=/offresspecialesbmw.ca/gfwlist server=/ietf.org/127.0.0.1#5335 ipset=/ietf.org/gfwlist server=/ebay.com.mt/127.0.0.1#5335 ipset=/ebay.com.mt/gfwlist -server=/foxcredit.com/127.0.0.1#5335 -ipset=/foxcredit.com/gfwlist -server=/minid.no/127.0.0.1#5335 -ipset=/minid.no/gfwlist -server=/jav101.com/127.0.0.1#5335 -ipset=/jav101.com/gfwlist -server=/planetminecraft.com/127.0.0.1#5335 -ipset=/planetminecraft.com/gfwlist -server=/disneycareers.com/127.0.0.1#5335 -ipset=/disneycareers.com/gfwlist -server=/nationalaustraliaban.tt.omtrdc.net/127.0.0.1#5335 -ipset=/nationalaustraliaban.tt.omtrdc.net/gfwlist +server=/katestube.com/127.0.0.1#5335 +ipset=/katestube.com/gfwlist +server=/yahoosandbox.com/127.0.0.1#5335 +ipset=/yahoosandbox.com/gfwlist server=/spacely.com.au/127.0.0.1#5335 ipset=/spacely.com.au/gfwlist -server=/vfsco.kr/127.0.0.1#5335 -ipset=/vfsco.kr/gfwlist -server=/apple-watch.com.ru/127.0.0.1#5335 -ipset=/apple-watch.com.ru/gfwlist -server=/thetimes.ie/127.0.0.1#5335 -ipset=/thetimes.ie/gfwlist +server=/assistirhentai.com/127.0.0.1#5335 +ipset=/assistirhentai.com/gfwlist server=/bmw-motorrad.ee/127.0.0.1#5335 ipset=/bmw-motorrad.ee/gfwlist -server=/paypalgivingfund.org/127.0.0.1#5335 -ipset=/paypalgivingfund.org/gfwlist -server=/volvobuses.com.br/127.0.0.1#5335 -ipset=/volvobuses.com.br/gfwlist -server=/vimeo.com/127.0.0.1#5335 -ipset=/vimeo.com/gfwlist -server=/minikelowna.com/127.0.0.1#5335 -ipset=/minikelowna.com/gfwlist +server=/attwirelessinternet.com/127.0.0.1#5335 +ipset=/attwirelessinternet.com/gfwlist +server=/gazounabi.com/127.0.0.1#5335 +ipset=/gazounabi.com/gfwlist +server=/jerk-porn.com/127.0.0.1#5335 +ipset=/jerk-porn.com/gfwlist +server=/fakku.net/127.0.0.1#5335 +ipset=/fakku.net/gfwlist server=/tkb008.xyz/127.0.0.1#5335 ipset=/tkb008.xyz/gfwlist server=/starbucks.fr/127.0.0.1#5335 ipset=/starbucks.fr/gfwlist server=/minecraftshop.com/127.0.0.1#5335 ipset=/minecraftshop.com/gfwlist -server=/gettyimages.fi/127.0.0.1#5335 -ipset=/gettyimages.fi/gfwlist -server=/voadeewaradio.com/127.0.0.1#5335 -ipset=/voadeewaradio.com/gfwlist +server=/porngo.tube/127.0.0.1#5335 +ipset=/porngo.tube/gfwlist +server=/wetpussygames.com/127.0.0.1#5335 +ipset=/wetpussygames.com/gfwlist server=/facebood.com/127.0.0.1#5335 ipset=/facebood.com/gfwlist server=/ntdtv.ru/127.0.0.1#5335 @@ -6202,8 +5164,8 @@ server=/bmwarchiv.de/127.0.0.1#5335 ipset=/bmwarchiv.de/gfwlist server=/visabg.com/127.0.0.1#5335 ipset=/visabg.com/gfwlist -server=/ts.la/127.0.0.1#5335 -ipset=/ts.la/gfwlist +server=/feceboox.com/127.0.0.1#5335 +ipset=/feceboox.com/gfwlist server=/iphone5casescovers.com/127.0.0.1#5335 ipset=/iphone5casescovers.com/gfwlist server=/volvotrucks.co.mz/127.0.0.1#5335 @@ -6212,10 +5174,16 @@ server=/alpinelinux.org/127.0.0.1#5335 ipset=/alpinelinux.org/gfwlist server=/dba.dk/127.0.0.1#5335 ipset=/dba.dk/gfwlist -server=/kicu.tv/127.0.0.1#5335 -ipset=/kicu.tv/gfwlist +server=/pali.ltd/127.0.0.1#5335 +ipset=/pali.ltd/gfwlist +server=/livrariart.com.br/127.0.0.1#5335 +ipset=/livrariart.com.br/gfwlist +server=/imlive.com/127.0.0.1#5335 +ipset=/imlive.com/gfwlist server=/mvk.com/127.0.0.1#5335 ipset=/mvk.com/gfwlist +server=/mrcong.com/127.0.0.1#5335 +ipset=/mrcong.com/gfwlist server=/scoreland.com/127.0.0.1#5335 ipset=/scoreland.com/gfwlist server=/fburl.com/127.0.0.1#5335 @@ -6226,296 +5194,272 @@ server=/keyhole.com/127.0.0.1#5335 ipset=/keyhole.com/gfwlist server=/linecorp.com/127.0.0.1#5335 ipset=/linecorp.com/gfwlist -server=/opengraphprotocol.com/127.0.0.1#5335 -ipset=/opengraphprotocol.com/gfwlist -server=/iphone-vip2.com/127.0.0.1#5335 -ipset=/iphone-vip2.com/gfwlist -server=/bmw-carit.de/127.0.0.1#5335 -ipset=/bmw-carit.de/gfwlist -server=/newscorpaustralia.com/127.0.0.1#5335 -ipset=/newscorpaustralia.com/gfwlist +server=/fuqqt.com/127.0.0.1#5335 +ipset=/fuqqt.com/gfwlist +server=/csnjcbnxdnb.com/127.0.0.1#5335 +ipset=/csnjcbnxdnb.com/gfwlist +server=/porn7.net/127.0.0.1#5335 +ipset=/porn7.net/gfwlist +server=/onindiansex.com/127.0.0.1#5335 +ipset=/onindiansex.com/gfwlist server=/youtube.com.br/127.0.0.1#5335 ipset=/youtube.com.br/gfwlist -server=/att.tv/127.0.0.1#5335 -ipset=/att.tv/gfwlist +server=/xbrasilporno.com/127.0.0.1#5335 +ipset=/xbrasilporno.com/gfwlist server=/beatsbydreforstore.com/127.0.0.1#5335 ipset=/beatsbydreforstore.com/gfwlist -server=/latticedata.com/127.0.0.1#5335 -ipset=/latticedata.com/gfwlist -server=/bmwgroup-classic.com/127.0.0.1#5335 -ipset=/bmwgroup-classic.com/gfwlist -server=/vanish.co.uk/127.0.0.1#5335 -ipset=/vanish.co.uk/gfwlist -server=/fox2detroit.com/127.0.0.1#5335 -ipset=/fox2detroit.com/gfwlist -server=/heywire.com/127.0.0.1#5335 -ipset=/heywire.com/gfwlist -server=/intell.com/127.0.0.1#5335 -ipset=/intell.com/gfwlist +server=/fapteencam.com/127.0.0.1#5335 +ipset=/fapteencam.com/gfwlist +server=/connectedcommerce.tv/127.0.0.1#5335 +ipset=/connectedcommerce.tv/gfwlist +server=/siteripz.net/127.0.0.1#5335 +ipset=/siteripz.net/gfwlist +server=/twinkspornos.com/127.0.0.1#5335 +ipset=/twinkspornos.com/gfwlist server=/ctyun.online/127.0.0.1#5335 ipset=/ctyun.online/gfwlist -server=/roborecall.com/127.0.0.1#5335 -ipset=/roborecall.com/gfwlist +server=/18eighteen.com/127.0.0.1#5335 +ipset=/18eighteen.com/gfwlist +server=/msn.com/127.0.0.1#5335 +ipset=/msn.com/gfwlist +server=/bigtitsextapes.com/127.0.0.1#5335 +ipset=/bigtitsextapes.com/gfwlist +server=/javspanking.com/127.0.0.1#5335 +ipset=/javspanking.com/gfwlist server=/dynacw.com.cn/127.0.0.1#5335 ipset=/dynacw.com.cn/gfwlist server=/spotifycharts.com/127.0.0.1#5335 ipset=/spotifycharts.com/gfwlist server=/newsadds.com.au/127.0.0.1#5335 ipset=/newsadds.com.au/gfwlist -server=/syosetu.com/127.0.0.1#5335 -ipset=/syosetu.com/gfwlist server=/riot.im/127.0.0.1#5335 ipset=/riot.im/gfwlist -server=/paypalbrasil.com/127.0.0.1#5335 -ipset=/paypalbrasil.com/gfwlist -server=/akasha.world/127.0.0.1#5335 -ipset=/akasha.world/gfwlist -server=/visa.ky/127.0.0.1#5335 -ipset=/visa.ky/gfwlist +server=/animalforsex.com/127.0.0.1#5335 +ipset=/animalforsex.com/gfwlist +server=/maturepornonly.com/127.0.0.1#5335 +ipset=/maturepornonly.com/gfwlist +server=/youtube.ge/127.0.0.1#5335 +ipset=/youtube.ge/gfwlist server=/minigeorgian.ca/127.0.0.1#5335 ipset=/minigeorgian.ca/gfwlist server=/muji.net/127.0.0.1#5335 ipset=/muji.net/gfwlist -server=/enanyang.my/127.0.0.1#5335 -ipset=/enanyang.my/gfwlist +server=/erodouga.8sp.biz/127.0.0.1#5335 +ipset=/erodouga.8sp.biz/gfwlist +server=/chatango.com/127.0.0.1#5335 +ipset=/chatango.com/gfwlist +server=/findbare.com/127.0.0.1#5335 +ipset=/findbare.com/gfwlist server=/thelancet.com/127.0.0.1#5335 ipset=/thelancet.com/gfwlist -server=/starbucks.it/127.0.0.1#5335 -ipset=/starbucks.it/gfwlist +server=/ebenporno.com/127.0.0.1#5335 +ipset=/ebenporno.com/gfwlist +server=/moystoys.com/127.0.0.1#5335 +ipset=/moystoys.com/gfwlist server=/google.as/127.0.0.1#5335 ipset=/google.as/gfwlist server=/appledaily.com.hk/127.0.0.1#5335 ipset=/appledaily.com.hk/gfwlist -server=/bmw.at/127.0.0.1#5335 -ipset=/bmw.at/gfwlist -server=/signal.art/127.0.0.1#5335 -ipset=/signal.art/gfwlist -server=/drebeats-monster.com/127.0.0.1#5335 -ipset=/drebeats-monster.com/gfwlist +server=/firestonecomercial.com.br/127.0.0.1#5335 +ipset=/firestonecomercial.com.br/gfwlist +server=/hongkongpost.gov.hk/127.0.0.1#5335 +ipset=/hongkongpost.gov.hk/gfwlist server=/verily.com/127.0.0.1#5335 ipset=/verily.com/gfwlist server=/duckduckgo.jp/127.0.0.1#5335 ipset=/duckduckgo.jp/gfwlist -server=/pentium.net/127.0.0.1#5335 -ipset=/pentium.net/gfwlist -server=/neowin.net/127.0.0.1#5335 -ipset=/neowin.net/gfwlist -server=/hebiphone.com/127.0.0.1#5335 -ipset=/hebiphone.com/gfwlist -server=/now.com.hk/127.0.0.1#5335 -ipset=/now.com.hk/gfwlist -server=/mini.com.ec/127.0.0.1#5335 -ipset=/mini.com.ec/gfwlist -server=/sonylatvija.com/127.0.0.1#5335 -ipset=/sonylatvija.com/gfwlist +server=/twlegs.com/127.0.0.1#5335 +ipset=/twlegs.com/gfwlist +server=/dettol.com.br/127.0.0.1#5335 +ipset=/dettol.com.br/gfwlist +server=/mansurfer.com/127.0.0.1#5335 +ipset=/mansurfer.com/gfwlist server=/eacashcard.com/127.0.0.1#5335 ipset=/eacashcard.com/gfwlist server=/hacksear.ch/127.0.0.1#5335 ipset=/hacksear.ch/gfwlist server=/mcdelivery.com.au/127.0.0.1#5335 ipset=/mcdelivery.com.au/gfwlist -server=/midatlanticbmwmotorcycles.com/127.0.0.1#5335 -ipset=/midatlanticbmwmotorcycles.com/gfwlist +server=/nugettest.org/127.0.0.1#5335 +ipset=/nugettest.org/gfwlist server=/softbank-jp.com/127.0.0.1#5335 ipset=/softbank-jp.com/gfwlist server=/skysportsracing.com/127.0.0.1#5335 ipset=/skysportsracing.com/gfwlist server=/onlinegeeksquad.com/127.0.0.1#5335 ipset=/onlinegeeksquad.com/gfwlist -server=/sony.com.pe/127.0.0.1#5335 -ipset=/sony.com.pe/gfwlist -server=/nikedawn.com/127.0.0.1#5335 -ipset=/nikedawn.com/gfwlist -server=/kiji.ca/127.0.0.1#5335 -ipset=/kiji.ca/gfwlist -server=/bbc.co.uk/127.0.0.1#5335 -ipset=/bbc.co.uk/gfwlist -server=/ospray.org/127.0.0.1#5335 -ipset=/ospray.org/gfwlist -server=/universalstudioshollywood.com/127.0.0.1#5335 -ipset=/universalstudioshollywood.com/gfwlist -server=/mkt.com/127.0.0.1#5335 -ipset=/mkt.com/gfwlist +server=/mygaysites.com/127.0.0.1#5335 +ipset=/mygaysites.com/gfwlist +server=/twitch.tv/127.0.0.1#5335 +ipset=/twitch.tv/gfwlist +server=/beatssaleus.com/127.0.0.1#5335 +ipset=/beatssaleus.com/gfwlist +server=/gayharem.com/127.0.0.1#5335 +ipset=/gayharem.com/gfwlist +server=/strepsils.es/127.0.0.1#5335 +ipset=/strepsils.es/gfwlist +server=/porntsunami.com/127.0.0.1#5335 +ipset=/porntsunami.com/gfwlist +server=/d-upp.com/127.0.0.1#5335 +ipset=/d-upp.com/gfwlist +server=/pornxxx.bid/127.0.0.1#5335 +ipset=/pornxxx.bid/gfwlist server=/yahoo.im/127.0.0.1#5335 ipset=/yahoo.im/gfwlist server=/hulusports.com/127.0.0.1#5335 ipset=/hulusports.com/gfwlist server=/firestonetire.ca/127.0.0.1#5335 ipset=/firestonetire.ca/gfwlist -server=/google.com.tj/127.0.0.1#5335 -ipset=/google.com.tj/gfwlist -server=/yandex.sx/127.0.0.1#5335 -ipset=/yandex.sx/gfwlist -server=/x.company/127.0.0.1#5335 -ipset=/x.company/gfwlist +server=/favepornmovs.com/127.0.0.1#5335 +ipset=/favepornmovs.com/gfwlist +server=/jdbimgs.com/127.0.0.1#5335 +ipset=/jdbimgs.com/gfwlist +server=/tubev.sex/127.0.0.1#5335 +ipset=/tubev.sex/gfwlist server=/beatsbydreforshop2013-nl.com/127.0.0.1#5335 ipset=/beatsbydreforshop2013-nl.com/gfwlist -server=/taylorfrancis.com/127.0.0.1#5335 -ipset=/taylorfrancis.com/gfwlist +server=/pussyshine.info/127.0.0.1#5335 +ipset=/pussyshine.info/gfwlist server=/alphabet.com/127.0.0.1#5335 ipset=/alphabet.com/gfwlist -server=/yoshisnewisland.com/127.0.0.1#5335 -ipset=/yoshisnewisland.com/gfwlist -server=/wikileaks.org/127.0.0.1#5335 -ipset=/wikileaks.org/gfwlist -server=/adidas.de/127.0.0.1#5335 -ipset=/adidas.de/gfwlist -server=/voabangla.com/127.0.0.1#5335 -ipset=/voabangla.com/gfwlist -server=/weinvoiceit.com/127.0.0.1#5335 -ipset=/weinvoiceit.com/gfwlist +server=/twoo.com/127.0.0.1#5335 +ipset=/twoo.com/gfwlist +server=/lss55.com/127.0.0.1#5335 +ipset=/lss55.com/gfwlist +server=/ninecommentaries.com/127.0.0.1#5335 +ipset=/ninecommentaries.com/gfwlist server=/ahmia.fi/127.0.0.1#5335 ipset=/ahmia.fi/gfwlist server=/windowsphone.com/127.0.0.1#5335 ipset=/windowsphone.com/gfwlist server=/paypal-service.org/127.0.0.1#5335 ipset=/paypal-service.org/gfwlist -server=/miniwindsor.com/127.0.0.1#5335 -ipset=/miniwindsor.com/gfwlist +server=/pinkpussy.tv/127.0.0.1#5335 +ipset=/pinkpussy.tv/gfwlist +server=/norsk.mobi/127.0.0.1#5335 +ipset=/norsk.mobi/gfwlist +server=/cheapwirelessbeats.com/127.0.0.1#5335 +ipset=/cheapwirelessbeats.com/gfwlist +server=/cultura-kolomna.ru/127.0.0.1#5335 +ipset=/cultura-kolomna.ru/gfwlist +server=/bestamateurcumshots.com/127.0.0.1#5335 +ipset=/bestamateurcumshots.com/gfwlist server=/elsevier.io/127.0.0.1#5335 ipset=/elsevier.io/gfwlist -server=/pearsonlongman.ch/127.0.0.1#5335 -ipset=/pearsonlongman.ch/gfwlist -server=/muncloud.dog/127.0.0.1#5335 -ipset=/muncloud.dog/gfwlist -server=/eprintsw.com/127.0.0.1#5335 -ipset=/eprintsw.com/gfwlist -server=/adobegov.com/127.0.0.1#5335 -ipset=/adobegov.com/gfwlist -server=/vmwareviewpoint.com/127.0.0.1#5335 -ipset=/vmwareviewpoint.com/gfwlist -server=/xbox360.co/127.0.0.1#5335 -ipset=/xbox360.co/gfwlist -server=/barrons-conferences.com/127.0.0.1#5335 -ipset=/barrons-conferences.com/gfwlist +server=/voatibetan.com/127.0.0.1#5335 +ipset=/voatibetan.com/gfwlist +server=/erogazoufactory.com/127.0.0.1#5335 +ipset=/erogazoufactory.com/gfwlist +server=/av-top.com/127.0.0.1#5335 +ipset=/av-top.com/gfwlist +server=/sankakucomplex.com/127.0.0.1#5335 +ipset=/sankakucomplex.com/gfwlist server=/paypal-engineering.com/127.0.0.1#5335 ipset=/paypal-engineering.com/gfwlist -server=/beatsbydrestudio-australia.com/127.0.0.1#5335 -ipset=/beatsbydrestudio-australia.com/gfwlist server=/beatspascher.net/127.0.0.1#5335 ipset=/beatspascher.net/gfwlist -server=/foxdcg.com/127.0.0.1#5335 -ipset=/foxdcg.com/gfwlist -server=/canonfoundation.org/127.0.0.1#5335 -ipset=/canonfoundation.org/gfwlist -server=/cciernslabs.com/127.0.0.1#5335 -ipset=/cciernslabs.com/gfwlist -server=/firewire.cl/127.0.0.1#5335 -ipset=/firewire.cl/gfwlist +server=/alt7-mtalk.google.com/127.0.0.1#5335 +ipset=/alt7-mtalk.google.com/gfwlist +server=/hentaixxx.vip/127.0.0.1#5335 +ipset=/hentaixxx.vip/gfwlist +server=/efukt.com/127.0.0.1#5335 +ipset=/efukt.com/gfwlist +server=/xxxgirls88.com/127.0.0.1#5335 +ipset=/xxxgirls88.com/gfwlist server=/gettyimages.ie/127.0.0.1#5335 ipset=/gettyimages.ie/gfwlist -server=/fox13news.com/127.0.0.1#5335 -ipset=/fox13news.com/gfwlist -server=/applewatch.tw/127.0.0.1#5335 -ipset=/applewatch.tw/gfwlist +server=/myporno.photos/127.0.0.1#5335 +ipset=/myporno.photos/gfwlist +server=/isexomega.tw/127.0.0.1#5335 +ipset=/isexomega.tw/gfwlist server=/fse.tv/127.0.0.1#5335 ipset=/fse.tv/gfwlist -server=/papalah.com/127.0.0.1#5335 -ipset=/papalah.com/gfwlist +server=/5mb48g.com/127.0.0.1#5335 +ipset=/5mb48g.com/gfwlist +server=/sun.com/127.0.0.1#5335 +ipset=/sun.com/gfwlist server=/beatsaudiobydre.net/127.0.0.1#5335 ipset=/beatsaudiobydre.net/gfwlist -server=/iphonerip.net/127.0.0.1#5335 -ipset=/iphonerip.net/gfwlist -server=/rea.design/127.0.0.1#5335 -ipset=/rea.design/gfwlist -server=/facecbook.org/127.0.0.1#5335 -ipset=/facecbook.org/gfwlist -server=/foxcincy.net/127.0.0.1#5335 -ipset=/foxcincy.net/gfwlist -server=/foxsports.co/127.0.0.1#5335 -ipset=/foxsports.co/gfwlist -server=/bridgestone-asiapacific.com/127.0.0.1#5335 -ipset=/bridgestone-asiapacific.com/gfwlist +server=/gandhara.ru/127.0.0.1#5335 +ipset=/gandhara.ru/gfwlist server=/azureplanetscale.info/127.0.0.1#5335 ipset=/azureplanetscale.info/gfwlist -server=/fury.dev/127.0.0.1#5335 -ipset=/fury.dev/gfwlist -server=/blogspot.tw/127.0.0.1#5335 -ipset=/blogspot.tw/gfwlist -server=/cstatic.net/127.0.0.1#5335 -ipset=/cstatic.net/gfwlist -server=/rstatic.net/127.0.0.1#5335 -ipset=/rstatic.net/gfwlist -server=/drdremonster-beats.com/127.0.0.1#5335 -ipset=/drdremonster-beats.com/gfwlist -server=/itunes.ca/127.0.0.1#5335 -ipset=/itunes.ca/gfwlist -server=/nikeadidas.com/127.0.0.1#5335 -ipset=/nikeadidas.com/gfwlist +server=/pornrox.com/127.0.0.1#5335 +ipset=/pornrox.com/gfwlist +server=/bigsex.tv/127.0.0.1#5335 +ipset=/bigsex.tv/gfwlist +server=/asianboygay.com/127.0.0.1#5335 +ipset=/asianboygay.com/gfwlist +server=/amateurhomevids.com/127.0.0.1#5335 +ipset=/amateurhomevids.com/gfwlist +server=/inkchoice.com/127.0.0.1#5335 +ipset=/inkchoice.com/gfwlist +server=/amapornofilme.com/127.0.0.1#5335 +ipset=/amapornofilme.com/gfwlist server=/activeteachonline.com/127.0.0.1#5335 ipset=/activeteachonline.com/gfwlist -server=/huffpostarabi.com/127.0.0.1#5335 -ipset=/huffpostarabi.com/gfwlist server=/yahoo.es/127.0.0.1#5335 ipset=/yahoo.es/gfwlist server=/google.co.ao/127.0.0.1#5335 ipset=/google.co.ao/gfwlist -server=/connectionseducation.com/127.0.0.1#5335 -ipset=/connectionseducation.com/gfwlist -server=/notion-static.com/127.0.0.1#5335 -ipset=/notion-static.com/gfwlist +server=/171xx.com/127.0.0.1#5335 +ipset=/171xx.com/gfwlist +server=/anyporn.com/127.0.0.1#5335 +ipset=/anyporn.com/gfwlist +server=/sexy-more.com/127.0.0.1#5335 +ipset=/sexy-more.com/gfwlist server=/momentumms.com/127.0.0.1#5335 ipset=/momentumms.com/gfwlist -server=/freebeacon.com/127.0.0.1#5335 -ipset=/freebeacon.com/gfwlist +server=/sexxxtape.net/127.0.0.1#5335 +ipset=/sexxxtape.net/gfwlist server=/ebayadvertising.com/127.0.0.1#5335 ipset=/ebayadvertising.com/gfwlist -server=/google.com.bo/127.0.0.1#5335 -ipset=/google.com.bo/gfwlist server=/nii.ac.jp/127.0.0.1#5335 ipset=/nii.ac.jp/gfwlist server=/appleappstore.tv/127.0.0.1#5335 ipset=/appleappstore.tv/gfwlist -server=/azureedge-test.net/127.0.0.1#5335 -ipset=/azureedge-test.net/gfwlist -server=/disneyiejobs.com/127.0.0.1#5335 -ipset=/disneyiejobs.com/gfwlist +server=/infinitetoons.com/127.0.0.1#5335 +ipset=/infinitetoons.com/gfwlist server=/mini.co.th/127.0.0.1#5335 ipset=/mini.co.th/gfwlist -server=/post852.com/127.0.0.1#5335 -ipset=/post852.com/gfwlist -server=/services-apple.net/127.0.0.1#5335 -ipset=/services-apple.net/gfwlist +server=/cuckporn.com/127.0.0.1#5335 +ipset=/cuckporn.com/gfwlist +server=/tokyoporns.com/127.0.0.1#5335 +ipset=/tokyoporns.com/gfwlist server=/vfsco.com/127.0.0.1#5335 ipset=/vfsco.com/gfwlist -server=/beatsdrdrecuffie.net/127.0.0.1#5335 -ipset=/beatsdrdrecuffie.net/gfwlist -server=/gentoo.org/127.0.0.1#5335 -ipset=/gentoo.org/gfwlist +server=/navercorp.com/127.0.0.1#5335 +ipset=/navercorp.com/gfwlist server=/tandf.co.uk/127.0.0.1#5335 ipset=/tandf.co.uk/gfwlist -server=/sonytc.co.jp/127.0.0.1#5335 -ipset=/sonytc.co.jp/gfwlist server=/microsoft.ge/127.0.0.1#5335 ipset=/microsoft.ge/gfwlist -server=/asebay.com/127.0.0.1#5335 -ipset=/asebay.com/gfwlist server=/javmost.com/127.0.0.1#5335 ipset=/javmost.com/gfwlist server=/lovethiscity.com/127.0.0.1#5335 ipset=/lovethiscity.com/gfwlist -server=/intel.ga/127.0.0.1#5335 -ipset=/intel.ga/gfwlist +server=/seneporno.com/127.0.0.1#5335 +ipset=/seneporno.com/gfwlist server=/adventuresbydisney.com/127.0.0.1#5335 ipset=/adventuresbydisney.com/gfwlist -server=/iphone4s.com/127.0.0.1#5335 -ipset=/iphone4s.com/gfwlist -server=/paypal-community.com/127.0.0.1#5335 -ipset=/paypal-community.com/gfwlist -server=/foxsoccerplus.tv/127.0.0.1#5335 -ipset=/foxsoccerplus.tv/gfwlist +server=/asiamoviepass.com/127.0.0.1#5335 +ipset=/asiamoviepass.com/gfwlist +server=/tianbiav10.com/127.0.0.1#5335 +ipset=/tianbiav10.com/gfwlist +server=/damplips.com/127.0.0.1#5335 +ipset=/damplips.com/gfwlist server=/volvotrucks.lt/127.0.0.1#5335 ipset=/volvotrucks.lt/gfwlist -server=/foxnews.net/127.0.0.1#5335 -ipset=/foxnews.net/gfwlist -server=/collegejournal.com/127.0.0.1#5335 -ipset=/collegejournal.com/gfwlist -server=/dailym.ai/127.0.0.1#5335 -ipset=/dailym.ai/gfwlist -server=/minisokorea.com/127.0.0.1#5335 -ipset=/minisokorea.com/gfwlist +server=/boycall.com/127.0.0.1#5335 +ipset=/boycall.com/gfwlist +server=/mcstories.com/127.0.0.1#5335 +ipset=/mcstories.com/gfwlist +server=/akamai-access.net/127.0.0.1#5335 +ipset=/akamai-access.net/gfwlist server=/bumptop.org/127.0.0.1#5335 ipset=/bumptop.org/gfwlist +server=/fuck.sc/127.0.0.1#5335 +ipset=/fuck.sc/gfwlist server=/mastercard.fi/127.0.0.1#5335 ipset=/mastercard.fi/gfwlist server=/odysee.com/127.0.0.1#5335 @@ -6524,158 +5468,122 @@ server=/ebayprivacycenter.com/127.0.0.1#5335 ipset=/ebayprivacycenter.com/gfwlist server=/durex.pt/127.0.0.1#5335 ipset=/durex.pt/gfwlist -server=/nintendo.co.jp/127.0.0.1#5335 -ipset=/nintendo.co.jp/gfwlist -server=/dettol.com.au/127.0.0.1#5335 -ipset=/dettol.com.au/gfwlist +server=/pnas.org/127.0.0.1#5335 +ipset=/pnas.org/gfwlist server=/boringcompany.com/127.0.0.1#5335 ipset=/boringcompany.com/gfwlist -server=/freebrowser.org/127.0.0.1#5335 -ipset=/freebrowser.org/gfwlist -server=/originalhulu.com/127.0.0.1#5335 -ipset=/originalhulu.com/gfwlist -server=/yahoo.cz/127.0.0.1#5335 -ipset=/yahoo.cz/gfwlist -server=/wholefoodsmarket.com/127.0.0.1#5335 -ipset=/wholefoodsmarket.com/gfwlist -server=/youtube.pa/127.0.0.1#5335 -ipset=/youtube.pa/gfwlist -server=/crmdynint.com/127.0.0.1#5335 -ipset=/crmdynint.com/gfwlist -server=/lfai.foundation/127.0.0.1#5335 -ipset=/lfai.foundation/gfwlist -server=/urchin.com/127.0.0.1#5335 -ipset=/urchin.com/gfwlist -server=/xn--7hv594h.com/127.0.0.1#5335 -ipset=/xn--7hv594h.com/gfwlist +server=/apkcombo.com/127.0.0.1#5335 +ipset=/apkcombo.com/gfwlist +server=/infotimes.com.tw/127.0.0.1#5335 +ipset=/infotimes.com.tw/gfwlist +server=/lingeriepornonly.com/127.0.0.1#5335 +ipset=/lingeriepornonly.com/gfwlist +server=/orgasmlist.com/127.0.0.1#5335 +ipset=/orgasmlist.com/gfwlist +server=/uplay-istrip.com/127.0.0.1#5335 +ipset=/uplay-istrip.com/gfwlist server=/smartline.com.au/127.0.0.1#5335 ipset=/smartline.com.au/gfwlist -server=/beats-bydrdre.net/127.0.0.1#5335 -ipset=/beats-bydrdre.net/gfwlist +server=/wide-youtube.l.google.com/127.0.0.1#5335 +ipset=/wide-youtube.l.google.com/gfwlist +server=/xhub.tv/127.0.0.1#5335 +ipset=/xhub.tv/gfwlist server=/bmw-connecteddrive.com.hr/127.0.0.1#5335 ipset=/bmw-connecteddrive.com.hr/gfwlist server=/unityads.unitychina.cn/127.0.0.1#5335 ipset=/unityads.unitychina.cn/gfwlist -server=/vmwareusergroupstore.com/127.0.0.1#5335 -ipset=/vmwareusergroupstore.com/gfwlist server=/superpapermario.com/127.0.0.1#5335 ipset=/superpapermario.com/gfwlist -server=/babyzone.com/127.0.0.1#5335 -ipset=/babyzone.com/gfwlist +server=/qdmomentum.com/127.0.0.1#5335 +ipset=/qdmomentum.com/gfwlist +server=/blogspot.cl/127.0.0.1#5335 +ipset=/blogspot.cl/gfwlist server=/practicalmoneyskills.jp/127.0.0.1#5335 ipset=/practicalmoneyskills.jp/gfwlist -server=/xn--ubt498knmf.com/127.0.0.1#5335 -ipset=/xn--ubt498knmf.com/gfwlist +server=/realclearfoundation.org/127.0.0.1#5335 +ipset=/realclearfoundation.org/gfwlist server=/feedburner.com/127.0.0.1#5335 ipset=/feedburner.com/gfwlist -server=/ebaytv.org/127.0.0.1#5335 -ipset=/ebaytv.org/gfwlist server=/airwick.com.br/127.0.0.1#5335 ipset=/airwick.com.br/gfwlist -server=/newssyndication.com/127.0.0.1#5335 -ipset=/newssyndication.com/gfwlist -server=/bcove.video/127.0.0.1#5335 -ipset=/bcove.video/gfwlist +server=/techtimes.com/127.0.0.1#5335 +ipset=/techtimes.com/gfwlist server=/espncdn.com/127.0.0.1#5335 ipset=/espncdn.com/gfwlist server=/amazonaws.com/127.0.0.1#5335 ipset=/amazonaws.com/gfwlist -server=/xboxstudios.com/127.0.0.1#5335 -ipset=/xboxstudios.com/gfwlist -server=/fastlylabs.com/127.0.0.1#5335 -ipset=/fastlylabs.com/gfwlist +server=/ikea.com.pl/127.0.0.1#5335 +ipset=/ikea.com.pl/gfwlist +server=/acjj.net/127.0.0.1#5335 +ipset=/acjj.net/gfwlist server=/wuso.me/127.0.0.1#5335 ipset=/wuso.me/gfwlist server=/bestbuy-communityrelations.com/127.0.0.1#5335 ipset=/bestbuy-communityrelations.com/gfwlist -server=/ipod.tw/127.0.0.1#5335 -ipset=/ipod.tw/gfwlist -server=/hp3d.com/127.0.0.1#5335 -ipset=/hp3d.com/gfwlist server=/ituneas.com/127.0.0.1#5335 ipset=/ituneas.com/gfwlist -server=/appledaily.com/127.0.0.1#5335 -ipset=/appledaily.com/gfwlist -server=/jetbrains.com/127.0.0.1#5335 -ipset=/jetbrains.com/gfwlist +server=/kyodo-d.jp/127.0.0.1#5335 +ipset=/kyodo-d.jp/gfwlist +server=/blogspot.cz/127.0.0.1#5335 +ipset=/blogspot.cz/gfwlist server=/vancouverbmwretailers.ca/127.0.0.1#5335 ipset=/vancouverbmwretailers.ca/gfwlist server=/spearhead.kr/127.0.0.1#5335 ipset=/spearhead.kr/gfwlist server=/visa.co.il/127.0.0.1#5335 ipset=/visa.co.il/gfwlist -server=/myfoxphilly.com/127.0.0.1#5335 -ipset=/myfoxphilly.com/gfwlist +server=/thai-xxx.com/127.0.0.1#5335 +ipset=/thai-xxx.com/gfwlist server=/facebook-inc.com/127.0.0.1#5335 ipset=/facebook-inc.com/gfwlist -server=/bmw-motorrad.com.tr/127.0.0.1#5335 -ipset=/bmw-motorrad.com.tr/gfwlist server=/cloudsync-prod.s3.amazonaws.com/127.0.0.1#5335 ipset=/cloudsync-prod.s3.amazonaws.com/gfwlist -server=/miiverse.com/127.0.0.1#5335 -ipset=/miiverse.com/gfwlist +server=/waplog.com/127.0.0.1#5335 +ipset=/waplog.com/gfwlist server=/nvidia.dk/127.0.0.1#5335 ipset=/nvidia.dk/gfwlist -server=/finishinfo.no/127.0.0.1#5335 -ipset=/finishinfo.no/gfwlist -server=/canon-cna.com/127.0.0.1#5335 -ipset=/canon-cna.com/gfwlist +server=/xgsp.tv/127.0.0.1#5335 +ipset=/xgsp.tv/gfwlist server=/monsterbeats-headphone.com/127.0.0.1#5335 ipset=/monsterbeats-headphone.com/gfwlist server=/youtube.co.id/127.0.0.1#5335 ipset=/youtube.co.id/gfwlist -server=/paypal-network.org/127.0.0.1#5335 -ipset=/paypal-network.org/gfwlist server=/disneyturkiye.com.tr/127.0.0.1#5335 ipset=/disneyturkiye.com.tr/gfwlist -server=/xoomcom.com/127.0.0.1#5335 -ipset=/xoomcom.com/gfwlist server=/iphone.ru/127.0.0.1#5335 ipset=/iphone.ru/gfwlist -server=/airwick.pl/127.0.0.1#5335 -ipset=/airwick.pl/gfwlist -server=/dialga.com/127.0.0.1#5335 -ipset=/dialga.com/gfwlist -server=/nintendo.be/127.0.0.1#5335 -ipset=/nintendo.be/gfwlist -server=/bmw-motorrad.in/127.0.0.1#5335 -ipset=/bmw-motorrad.in/gfwlist -server=/bumptop.net/127.0.0.1#5335 -ipset=/bumptop.net/gfwlist +server=/pics.vc/127.0.0.1#5335 +ipset=/pics.vc/gfwlist +server=/redwap.pro/127.0.0.1#5335 +ipset=/redwap.pro/gfwlist server=/hyperscan.io/127.0.0.1#5335 ipset=/hyperscan.io/gfwlist server=/sandisk.fr/127.0.0.1#5335 ipset=/sandisk.fr/gfwlist -server=/fifastreet.com/127.0.0.1#5335 -ipset=/fifastreet.com/gfwlist -server=/bmw-motorrad.es/127.0.0.1#5335 -ipset=/bmw-motorrad.es/gfwlist server=/ccievoicelabs.com/127.0.0.1#5335 ipset=/ccievoicelabs.com/gfwlist -server=/tvbusa.com/127.0.0.1#5335 -ipset=/tvbusa.com/gfwlist server=/mini-stjohns.ca/127.0.0.1#5335 ipset=/mini-stjohns.ca/gfwlist -server=/cloudflare.net/127.0.0.1#5335 -ipset=/cloudflare.net/gfwlist -server=/google.co.tz/127.0.0.1#5335 -ipset=/google.co.tz/gfwlist +server=/xkorean.cam/127.0.0.1#5335 +ipset=/xkorean.cam/gfwlist +server=/yomiuri-ryokou.co.jp/127.0.0.1#5335 +ipset=/yomiuri-ryokou.co.jp/gfwlist server=/discord.media/127.0.0.1#5335 ipset=/discord.media/gfwlist server=/thomsonreuters.com.tr/127.0.0.1#5335 ipset=/thomsonreuters.com.tr/gfwlist server=/timestalks.com/127.0.0.1#5335 ipset=/timestalks.com/gfwlist -server=/starcraft2.com/127.0.0.1#5335 -ipset=/starcraft2.com/gfwlist -server=/nyt.com/127.0.0.1#5335 -ipset=/nyt.com/gfwlist +server=/geek-squad.net/127.0.0.1#5335 +ipset=/geek-squad.net/gfwlist +server=/pornvideotop.com/127.0.0.1#5335 +ipset=/pornvideotop.com/gfwlist server=/qt-project.org/127.0.0.1#5335 ipset=/qt-project.org/gfwlist server=/ciscospark.ca/127.0.0.1#5335 ipset=/ciscospark.ca/gfwlist -server=/4channel.org/127.0.0.1#5335 -ipset=/4channel.org/gfwlist +server=/headphoneshome.com/127.0.0.1#5335 +ipset=/headphoneshome.com/gfwlist server=/nurofen.bg/127.0.0.1#5335 ipset=/nurofen.bg/gfwlist server=/visa.com.br/127.0.0.1#5335 @@ -6684,14 +5592,16 @@ server=/pearsonassessments.com/127.0.0.1#5335 ipset=/pearsonassessments.com/gfwlist server=/bigbigshop.com/127.0.0.1#5335 ipset=/bigbigshop.com/gfwlist +server=/streamhentaimovies.com/127.0.0.1#5335 +ipset=/streamhentaimovies.com/gfwlist server=/hpgraphicspartners.com/127.0.0.1#5335 ipset=/hpgraphicspartners.com/gfwlist server=/cnn.com/127.0.0.1#5335 ipset=/cnn.com/gfwlist -server=/beatsdrdre-solo.com/127.0.0.1#5335 -ipset=/beatsdrdre-solo.com/gfwlist -server=/airwick.dk/127.0.0.1#5335 -ipset=/airwick.dk/gfwlist +server=/teengirlfriendtube.com/127.0.0.1#5335 +ipset=/teengirlfriendtube.com/gfwlist +server=/adult-list.com/127.0.0.1#5335 +ipset=/adult-list.com/gfwlist server=/realclearworld.com/127.0.0.1#5335 ipset=/realclearworld.com/gfwlist server=/volvotruckcenter.es/127.0.0.1#5335 @@ -6700,116 +5610,96 @@ server=/braintreepayments.tv/127.0.0.1#5335 ipset=/braintreepayments.tv/gfwlist server=/pokemonrubysapphire.com/127.0.0.1#5335 ipset=/pokemonrubysapphire.com/gfwlist -server=/bridgestonecntc.com/127.0.0.1#5335 -ipset=/bridgestonecntc.com/gfwlist -server=/ebaycar.com/127.0.0.1#5335 -ipset=/ebaycar.com/gfwlist -server=/mageconf.com.ua/127.0.0.1#5335 -ipset=/mageconf.com.ua/gfwlist +server=/yomiuri.co.jp/127.0.0.1#5335 +ipset=/yomiuri.co.jp/gfwlist +server=/finishinfo.cl/127.0.0.1#5335 +ipset=/finishinfo.cl/gfwlist server=/volvotrucks.uy/127.0.0.1#5335 ipset=/volvotrucks.uy/gfwlist -server=/epochtimes.cz/127.0.0.1#5335 -ipset=/epochtimes.cz/gfwlist -server=/root-signing.ch/127.0.0.1#5335 -ipset=/root-signing.ch/gfwlist +server=/viet69.news/127.0.0.1#5335 +ipset=/viet69.news/gfwlist +server=/suxib.com/127.0.0.1#5335 +ipset=/suxib.com/gfwlist +server=/theclubprive.com/127.0.0.1#5335 +ipset=/theclubprive.com/gfwlist +server=/thelittleslush.com/127.0.0.1#5335 +ipset=/thelittleslush.com/gfwlist server=/starbuckscoffeegear.com/127.0.0.1#5335 ipset=/starbuckscoffeegear.com/gfwlist -server=/headphoneshotsales.com/127.0.0.1#5335 -ipset=/headphoneshotsales.com/gfwlist -server=/google.ca/127.0.0.1#5335 -ipset=/google.ca/gfwlist -server=/microsoft.dk/127.0.0.1#5335 -ipset=/microsoft.dk/gfwlist -server=/txcloud.net/127.0.0.1#5335 -ipset=/txcloud.net/gfwlist -server=/kijii.ca/127.0.0.1#5335 -ipset=/kijii.ca/gfwlist -server=/ieeeday.org/127.0.0.1#5335 -ipset=/ieeeday.org/gfwlist -server=/scholar.google.nl/127.0.0.1#5335 -ipset=/scholar.google.nl/gfwlist +server=/indiangfvideos.com/127.0.0.1#5335 +ipset=/indiangfvideos.com/gfwlist +server=/leporno.org/127.0.0.1#5335 +ipset=/leporno.org/gfwlist +server=/thebestfetishsites.com/127.0.0.1#5335 +ipset=/thebestfetishsites.com/gfwlist +server=/family-sex.me/127.0.0.1#5335 +ipset=/family-sex.me/gfwlist +server=/bitchmomporn.com/127.0.0.1#5335 +ipset=/bitchmomporn.com/gfwlist +server=/creamlemon.info/127.0.0.1#5335 +ipset=/creamlemon.info/gfwlist server=/fotolia.cc/127.0.0.1#5335 ipset=/fotolia.cc/gfwlist server=/niketrainer.com/127.0.0.1#5335 ipset=/niketrainer.com/gfwlist -server=/acs.org/127.0.0.1#5335 -ipset=/acs.org/gfwlist +server=/zohomerchandise.com/127.0.0.1#5335 +ipset=/zohomerchandise.com/gfwlist server=/youtube.com.ro/127.0.0.1#5335 ipset=/youtube.com.ro/gfwlist -server=/battlefield3.com/127.0.0.1#5335 -ipset=/battlefield3.com/gfwlist -server=/ebay-vacation.com/127.0.0.1#5335 -ipset=/ebay-vacation.com/gfwlist -server=/appdynamics.co.uk/127.0.0.1#5335 -ipset=/appdynamics.co.uk/gfwlist -server=/playstation.com/127.0.0.1#5335 -ipset=/playstation.com/gfwlist -server=/custombeatsbydrebuy.com/127.0.0.1#5335 -ipset=/custombeatsbydrebuy.com/gfwlist -server=/att.com/127.0.0.1#5335 -ipset=/att.com/gfwlist +server=/fulib711.shop/127.0.0.1#5335 +ipset=/fulib711.shop/gfwlist +server=/sexsaoy.com/127.0.0.1#5335 +ipset=/sexsaoy.com/gfwlist +server=/uhtube.me/127.0.0.1#5335 +ipset=/uhtube.me/gfwlist server=/beatscheap-uk.com/127.0.0.1#5335 ipset=/beatscheap-uk.com/gfwlist -server=/javqd.com/127.0.0.1#5335 -ipset=/javqd.com/gfwlist +server=/kjj05.cn/127.0.0.1#5335 +ipset=/kjj05.cn/gfwlist server=/ie11.com/127.0.0.1#5335 ipset=/ie11.com/gfwlist -server=/pricelesspick.com/127.0.0.1#5335 -ipset=/pricelesspick.com/gfwlist server=/garena.sg/127.0.0.1#5335 ipset=/garena.sg/gfwlist server=/mini.com.sg/127.0.0.1#5335 ipset=/mini.com.sg/gfwlist -server=/directvsundayticket.com/127.0.0.1#5335 -ipset=/directvsundayticket.com/gfwlist server=/roku.com/127.0.0.1#5335 ipset=/roku.com/gfwlist server=/bmw.it/127.0.0.1#5335 ipset=/bmw.it/gfwlist -server=/cotweet.com/127.0.0.1#5335 -ipset=/cotweet.com/gfwlist +server=/xn--urs05q.jp/127.0.0.1#5335 +ipset=/xn--urs05q.jp/gfwlist server=/kotlinlang.org/127.0.0.1#5335 ipset=/kotlinlang.org/gfwlist server=/imdb.com/127.0.0.1#5335 ipset=/imdb.com/gfwlist -server=/powerofresolve.com/127.0.0.1#5335 -ipset=/powerofresolve.com/gfwlist -server=/bmwbkk.de/127.0.0.1#5335 -ipset=/bmwbkk.de/gfwlist -server=/pokemonplatinum.com/127.0.0.1#5335 -ipset=/pokemonplatinum.com/gfwlist -server=/rrtis.com/127.0.0.1#5335 -ipset=/rrtis.com/gfwlist +server=/epochtimes.nl/127.0.0.1#5335 +ipset=/epochtimes.nl/gfwlist +server=/trmini.com/127.0.0.1#5335 +ipset=/trmini.com/gfwlist server=/paisapay.tv/127.0.0.1#5335 ipset=/paisapay.tv/gfwlist server=/coursera.community/127.0.0.1#5335 ipset=/coursera.community/gfwlist -server=/desktopmovie.org/127.0.0.1#5335 -ipset=/desktopmovie.org/gfwlist -server=/dotfacebook.com/127.0.0.1#5335 -ipset=/dotfacebook.com/gfwlist server=/jwpsrv.com/127.0.0.1#5335 ipset=/jwpsrv.com/gfwlist -server=/mailonline.com/127.0.0.1#5335 -ipset=/mailonline.com/gfwlist -server=/cisconetspace.net/127.0.0.1#5335 -ipset=/cisconetspace.net/gfwlist -server=/bridgestone.co.jp/127.0.0.1#5335 -ipset=/bridgestone.co.jp/gfwlist -server=/privilege.hk/127.0.0.1#5335 -ipset=/privilege.hk/gfwlist -server=/cheapnewbeatsbydre.com/127.0.0.1#5335 -ipset=/cheapnewbeatsbydre.com/gfwlist -server=/mastercard.it/127.0.0.1#5335 -ipset=/mastercard.it/gfwlist +server=/vkgo.app/127.0.0.1#5335 +ipset=/vkgo.app/gfwlist +server=/gamesfuckgirls.com/127.0.0.1#5335 +ipset=/gamesfuckgirls.com/gfwlist +server=/nudecelebforum.com/127.0.0.1#5335 +ipset=/nudecelebforum.com/gfwlist +server=/pornwebmasters.com/127.0.0.1#5335 +ipset=/pornwebmasters.com/gfwlist +server=/disneyme.com/127.0.0.1#5335 +ipset=/disneyme.com/gfwlist server=/vanitha.in/127.0.0.1#5335 ipset=/vanitha.in/gfwlist +server=/babesandgirls.com/127.0.0.1#5335 +ipset=/babesandgirls.com/gfwlist server=/thawte.fr/127.0.0.1#5335 ipset=/thawte.fr/gfwlist -server=/mortein.co.nz/127.0.0.1#5335 -ipset=/mortein.co.nz/gfwlist -server=/huobiasia.vip/127.0.0.1#5335 -ipset=/huobiasia.vip/gfwlist +server=/site.com/127.0.0.1#5335 +ipset=/site.com/gfwlist server=/ieee-pels.org/127.0.0.1#5335 ipset=/ieee-pels.org/gfwlist server=/google.sc/127.0.0.1#5335 @@ -6818,96 +5708,88 @@ server=/appleone.tech/127.0.0.1#5335 ipset=/appleone.tech/gfwlist server=/facebook.in/127.0.0.1#5335 ipset=/facebook.in/gfwlist -server=/taste.com.au/127.0.0.1#5335 -ipset=/taste.com.au/gfwlist +server=/amerikaninsesi.com/127.0.0.1#5335 +ipset=/amerikaninsesi.com/gfwlist server=/bbci.co.uk/127.0.0.1#5335 ipset=/bbci.co.uk/gfwlist -server=/hentaiverse.org/127.0.0.1#5335 -ipset=/hentaiverse.org/gfwlist -server=/finish.hu/127.0.0.1#5335 -ipset=/finish.hu/gfwlist +server=/madpeople.net/127.0.0.1#5335 +ipset=/madpeople.net/gfwlist +server=/chatwhores.net/127.0.0.1#5335 +ipset=/chatwhores.net/gfwlist server=/bmw-motorrad-test-ride.com/127.0.0.1#5335 ipset=/bmw-motorrad-test-ride.com/gfwlist server=/braintreepayments.info/127.0.0.1#5335 ipset=/braintreepayments.info/gfwlist -server=/blender.org/127.0.0.1#5335 -ipset=/blender.org/gfwlist server=/monsterbeatstienda.com/127.0.0.1#5335 ipset=/monsterbeatstienda.com/gfwlist -server=/bmw-adventskalender.com/127.0.0.1#5335 -ipset=/bmw-adventskalender.com/gfwlist -server=/nikezoom.com/127.0.0.1#5335 -ipset=/nikezoom.com/gfwlist -server=/www-bestbuystores.com/127.0.0.1#5335 -ipset=/www-bestbuystores.com/gfwlist -server=/huluitaly.com/127.0.0.1#5335 -ipset=/huluitaly.com/gfwlist -server=/shopdurex.com/127.0.0.1#5335 -ipset=/shopdurex.com/gfwlist -server=/op.gg/127.0.0.1#5335 -ipset=/op.gg/gfwlist -server=/scholar.google.cn/127.0.0.1#5335 -ipset=/scholar.google.cn/gfwlist -server=/bmw-connecteddrive.com.cy/127.0.0.1#5335 -ipset=/bmw-connecteddrive.com.cy/gfwlist -server=/ministcatharines.ca/127.0.0.1#5335 -ipset=/ministcatharines.ca/gfwlist +server=/ginmoe.com/127.0.0.1#5335 +ipset=/ginmoe.com/gfwlist +server=/sapphicpornonly.com/127.0.0.1#5335 +ipset=/sapphicpornonly.com/gfwlist +server=/foxcincy.com/127.0.0.1#5335 +ipset=/foxcincy.com/gfwlist +server=/darknun.com/127.0.0.1#5335 +ipset=/darknun.com/gfwlist +server=/bloombergforeducation.com/127.0.0.1#5335 +ipset=/bloombergforeducation.com/gfwlist +server=/free-xxx-porn.org/127.0.0.1#5335 +ipset=/free-xxx-porn.org/gfwlist server=/mindmeld.com/127.0.0.1#5335 ipset=/mindmeld.com/gfwlist -server=/hbogo.com/127.0.0.1#5335 -ipset=/hbogo.com/gfwlist +server=/mobilevrxxx.com/127.0.0.1#5335 +ipset=/mobilevrxxx.com/gfwlist server=/12diasderegalosdeitunes.com.ni/127.0.0.1#5335 ipset=/12diasderegalosdeitunes.com.ni/gfwlist server=/realclearbooks.com/127.0.0.1#5335 ipset=/realclearbooks.com/gfwlist -server=/ateam-oracle.com/127.0.0.1#5335 -ipset=/ateam-oracle.com/gfwlist -server=/foxnewspodcasts.com/127.0.0.1#5335 -ipset=/foxnewspodcasts.com/gfwlist -server=/ciattackers.com/127.0.0.1#5335 -ipset=/ciattackers.com/gfwlist -server=/pvue2.com/127.0.0.1#5335 -ipset=/pvue2.com/gfwlist -server=/drebeatsaustralia-cheap.net/127.0.0.1#5335 -ipset=/drebeatsaustralia-cheap.net/gfwlist -server=/vsassets.io/127.0.0.1#5335 -ipset=/vsassets.io/gfwlist -server=/volvotrucks.com.br/127.0.0.1#5335 -ipset=/volvotrucks.com.br/gfwlist +server=/tonicmovies.com/127.0.0.1#5335 +ipset=/tonicmovies.com/gfwlist +server=/asian-max.com/127.0.0.1#5335 +ipset=/asian-max.com/gfwlist +server=/shemalestube.com/127.0.0.1#5335 +ipset=/shemalestube.com/gfwlist +server=/ancensored.com/127.0.0.1#5335 +ipset=/ancensored.com/gfwlist +server=/clubtubes.com/127.0.0.1#5335 +ipset=/clubtubes.com/gfwlist server=/nikefuelband.com/127.0.0.1#5335 ipset=/nikefuelband.com/gfwlist -server=/venmo.net/127.0.0.1#5335 -ipset=/venmo.net/gfwlist -server=/ischool.com/127.0.0.1#5335 -ipset=/ischool.com/gfwlist -server=/hoolu.com/127.0.0.1#5335 -ipset=/hoolu.com/gfwlist +server=/zunked.com/127.0.0.1#5335 +ipset=/zunked.com/gfwlist +server=/xvideoporno.tv/127.0.0.1#5335 +ipset=/xvideoporno.tv/gfwlist +server=/wnacg.link/127.0.0.1#5335 +ipset=/wnacg.link/gfwlist server=/adobe.io/127.0.0.1#5335 ipset=/adobe.io/gfwlist server=/easportsmma.com/127.0.0.1#5335 ipset=/easportsmma.com/gfwlist +server=/cuebic.biz/127.0.0.1#5335 +ipset=/cuebic.biz/gfwlist server=/foxtv.com/127.0.0.1#5335 ipset=/foxtv.com/gfwlist -server=/blogspot.is/127.0.0.1#5335 -ipset=/blogspot.is/gfwlist +server=/anal.casa/127.0.0.1#5335 +ipset=/anal.casa/gfwlist server=/playvalorant.com/127.0.0.1#5335 ipset=/playvalorant.com/gfwlist server=/rebrandly.com/127.0.0.1#5335 ipset=/rebrandly.com/gfwlist -server=/google.nu/127.0.0.1#5335 -ipset=/google.nu/gfwlist -server=/enfabebe.com.ec/127.0.0.1#5335 -ipset=/enfabebe.com.ec/gfwlist +server=/fi11.com/127.0.0.1#5335 +ipset=/fi11.com/gfwlist +server=/best3dhere.com/127.0.0.1#5335 +ipset=/best3dhere.com/gfwlist server=/starbucks.dk/127.0.0.1#5335 ipset=/starbucks.dk/gfwlist server=/intel-research.net/127.0.0.1#5335 ipset=/intel-research.net/gfwlist server=/ieee-ccnc.org/127.0.0.1#5335 ipset=/ieee-ccnc.org/gfwlist -server=/brocaproject.com/127.0.0.1#5335 -ipset=/brocaproject.com/gfwlist -server=/strepsils.com.tw/127.0.0.1#5335 -ipset=/strepsils.com.tw/gfwlist +server=/perfectsexnow.com/127.0.0.1#5335 +ipset=/perfectsexnow.com/gfwlist +server=/trendmicro.com/127.0.0.1#5335 +ipset=/trendmicro.com/gfwlist +server=/toptoonsites.com/127.0.0.1#5335 +ipset=/toptoonsites.com/gfwlist server=/softbankusa.net/127.0.0.1#5335 ipset=/softbankusa.net/gfwlist server=/geoport.com/127.0.0.1#5335 @@ -6918,542 +5800,456 @@ server=/vanithaveedu.com/127.0.0.1#5335 ipset=/vanithaveedu.com/gfwlist server=/ebay.com.ar/127.0.0.1#5335 ipset=/ebay.com.ar/gfwlist -server=/applecentre.info/127.0.0.1#5335 -ipset=/applecentre.info/gfwlist server=/japan-whores.com/127.0.0.1#5335 ipset=/japan-whores.com/gfwlist -server=/ecpa.fr/127.0.0.1#5335 -ipset=/ecpa.fr/gfwlist -server=/akamak.com/127.0.0.1#5335 -ipset=/akamak.com/gfwlist -server=/livefilestore.com/127.0.0.1#5335 -ipset=/livefilestore.com/gfwlist +server=/opte.org/127.0.0.1#5335 +ipset=/opte.org/gfwlist +server=/wetchicks.org/127.0.0.1#5335 +ipset=/wetchicks.org/gfwlist +server=/vscode-sync.trafficmanager.net/127.0.0.1#5335 +ipset=/vscode-sync.trafficmanager.net/gfwlist server=/fotoiia.com/127.0.0.1#5335 ipset=/fotoiia.com/gfwlist -server=/bmw-routes.com/127.0.0.1#5335 -ipset=/bmw-routes.com/gfwlist +server=/myvodafone.com.ws/127.0.0.1#5335 +ipset=/myvodafone.com.ws/gfwlist server=/mini-grouparchiv.de/127.0.0.1#5335 ipset=/mini-grouparchiv.de/gfwlist server=/microsoft-sap-events.com/127.0.0.1#5335 ipset=/microsoft-sap-events.com/gfwlist server=/ebaygroup.com/127.0.0.1#5335 ipset=/ebaygroup.com/gfwlist +server=/chikiporn.com/127.0.0.1#5335 +ipset=/chikiporn.com/gfwlist +server=/cumasianporn.com/127.0.0.1#5335 +ipset=/cumasianporn.com/gfwlist server=/twitchsvc.net/127.0.0.1#5335 ipset=/twitchsvc.net/gfwlist server=/cashify.net/127.0.0.1#5335 ipset=/cashify.net/gfwlist -server=/hpinstantink.com/127.0.0.1#5335 -ipset=/hpinstantink.com/gfwlist -server=/volvotrucks.in/127.0.0.1#5335 -ipset=/volvotrucks.in/gfwlist server=/sony-asia.com/127.0.0.1#5335 ipset=/sony-asia.com/gfwlist -server=/intel.bo/127.0.0.1#5335 -ipset=/intel.bo/gfwlist -server=/sony.com.mx/127.0.0.1#5335 -ipset=/sony.com.mx/gfwlist -server=/beatsdrdrekaufenschweiz.net/127.0.0.1#5335 -ipset=/beatsdrdrekaufenschweiz.net/gfwlist server=/mingpaocanada.com/127.0.0.1#5335 ipset=/mingpaocanada.com/gfwlist -server=/riotgames.net/127.0.0.1#5335 -ipset=/riotgames.net/gfwlist -server=/rsc.org/127.0.0.1#5335 -ipset=/rsc.org/gfwlist +server=/gwins.org/127.0.0.1#5335 +ipset=/gwins.org/gfwlist server=/buyingfacebooklikes.com/127.0.0.1#5335 ipset=/buyingfacebooklikes.com/gfwlist -server=/intel.pl/127.0.0.1#5335 -ipset=/intel.pl/gfwlist -server=/ministjohns.ca/127.0.0.1#5335 -ipset=/ministjohns.ca/gfwlist -server=/aboutamazon.es/127.0.0.1#5335 -ipset=/aboutamazon.es/gfwlist -server=/entrust.net/127.0.0.1#5335 -ipset=/entrust.net/gfwlist -server=/foxtel.com.au/127.0.0.1#5335 -ipset=/foxtel.com.au/gfwlist -server=/mastercard.nl/127.0.0.1#5335 -ipset=/mastercard.nl/gfwlist -server=/macosx.info/127.0.0.1#5335 -ipset=/macosx.info/gfwlist +server=/yahoosportsbook.com/127.0.0.1#5335 +ipset=/yahoosportsbook.com/gfwlist +server=/pornv.org/127.0.0.1#5335 +ipset=/pornv.org/gfwlist +server=/gayporn.com/127.0.0.1#5335 +ipset=/gayporn.com/gfwlist +server=/poopeegirls.com/127.0.0.1#5335 +ipset=/poopeegirls.com/gfwlist server=/coursera.help/127.0.0.1#5335 ipset=/coursera.help/gfwlist -server=/ebay.es/127.0.0.1#5335 -ipset=/ebay.es/gfwlist server=/smart-edge.com/127.0.0.1#5335 ipset=/smart-edge.com/gfwlist -server=/getfedora.org/127.0.0.1#5335 -ipset=/getfedora.org/gfwlist +server=/everydayporn.co/127.0.0.1#5335 +ipset=/everydayporn.co/gfwlist server=/thecleversense.com/127.0.0.1#5335 ipset=/thecleversense.com/gfwlist -server=/blizzard.com/127.0.0.1#5335 -ipset=/blizzard.com/gfwlist -server=/cbsivideo.com/127.0.0.1#5335 -ipset=/cbsivideo.com/gfwlist +server=/hentaigasm.com/127.0.0.1#5335 +ipset=/hentaigasm.com/gfwlist +server=/pornid.xxx/127.0.0.1#5335 +ipset=/pornid.xxx/gfwlist +server=/bigbeans.solutions/127.0.0.1#5335 +ipset=/bigbeans.solutions/gfwlist +server=/overthumbs.com/127.0.0.1#5335 +ipset=/overthumbs.com/gfwlist +server=/purenudism.com/127.0.0.1#5335 +ipset=/purenudism.com/gfwlist server=/steambroadcast.akamaized.net/127.0.0.1#5335 ipset=/steambroadcast.akamaized.net/gfwlist -server=/foxpoker.com/127.0.0.1#5335 -ipset=/foxpoker.com/gfwlist server=/mac.wang/127.0.0.1#5335 ipset=/mac.wang/gfwlist server=/ie9.com/127.0.0.1#5335 ipset=/ie9.com/gfwlist -server=/businessweek.com/127.0.0.1#5335 -ipset=/businessweek.com/gfwlist -server=/iphone-zh.com/127.0.0.1#5335 -ipset=/iphone-zh.com/gfwlist +server=/xpee.com/127.0.0.1#5335 +ipset=/xpee.com/gfwlist +server=/creamasia.com/127.0.0.1#5335 +ipset=/creamasia.com/gfwlist server=/iphone-vip5.com/127.0.0.1#5335 ipset=/iphone-vip5.com/gfwlist -server=/facebook30.org/127.0.0.1#5335 -ipset=/facebook30.org/gfwlist -server=/aliveprofiler.com/127.0.0.1#5335 -ipset=/aliveprofiler.com/gfwlist -server=/1jjdg2.vip/127.0.0.1#5335 -ipset=/1jjdg2.vip/gfwlist +server=/google.com.pg/127.0.0.1#5335 +ipset=/google.com.pg/gfwlist +server=/kindnudist.com/127.0.0.1#5335 +ipset=/kindnudist.com/gfwlist server=/xn--ngstr-lra8j.com/127.0.0.1#5335 ipset=/xn--ngstr-lra8j.com/gfwlist -server=/minilat.com/127.0.0.1#5335 -ipset=/minilat.com/gfwlist +server=/anatomy.tv/127.0.0.1#5335 +ipset=/anatomy.tv/gfwlist server=/blogspot.my/127.0.0.1#5335 ipset=/blogspot.my/gfwlist -server=/movetv.com/127.0.0.1#5335 -ipset=/movetv.com/gfwlist -server=/apkmirror.com/127.0.0.1#5335 -ipset=/apkmirror.com/gfwlist server=/dungeonkeeper.com/127.0.0.1#5335 ipset=/dungeonkeeper.com/gfwlist server=/tidelift.com/127.0.0.1#5335 ipset=/tidelift.com/gfwlist -server=/pokemonmysterydungeon.com/127.0.0.1#5335 -ipset=/pokemonmysterydungeon.com/gfwlist server=/youtube.se/127.0.0.1#5335 ipset=/youtube.se/gfwlist -server=/applepay.co.rs/127.0.0.1#5335 -ipset=/applepay.co.rs/gfwlist +server=/fetish-bb.com/127.0.0.1#5335 +ipset=/fetish-bb.com/gfwlist server=/myfoxdetroit.com/127.0.0.1#5335 ipset=/myfoxdetroit.com/gfwlist server=/es-visiontimes.com/127.0.0.1#5335 ipset=/es-visiontimes.com/gfwlist +server=/sigmoidoscopeexam.com/127.0.0.1#5335 +ipset=/sigmoidoscopeexam.com/gfwlist server=/yahoo.ie/127.0.0.1#5335 ipset=/yahoo.ie/gfwlist -server=/marioandluigidreamteam.com/127.0.0.1#5335 -ipset=/marioandluigidreamteam.com/gfwlist -server=/hotmonsterbeats.com/127.0.0.1#5335 -ipset=/hotmonsterbeats.com/gfwlist +server=/voanews.eu/127.0.0.1#5335 +ipset=/voanews.eu/gfwlist +server=/facebookstudios.net/127.0.0.1#5335 +ipset=/facebookstudios.net/gfwlist server=/vhxqa6.com/127.0.0.1#5335 ipset=/vhxqa6.com/gfwlist server=/steamusercontent.com/127.0.0.1#5335 ipset=/steamusercontent.com/gfwlist server=/crossborderexpansion.com/127.0.0.1#5335 ipset=/crossborderexpansion.com/gfwlist -server=/wholesale-exporter1.com/127.0.0.1#5335 -ipset=/wholesale-exporter1.com/gfwlist +server=/sexgamefun.com/127.0.0.1#5335 +ipset=/sexgamefun.com/gfwlist server=/bmwusrideracademy.com/127.0.0.1#5335 ipset=/bmwusrideracademy.com/gfwlist server=/amzn.to/127.0.0.1#5335 ipset=/amzn.to/gfwlist -server=/ooni.org/127.0.0.1#5335 -ipset=/ooni.org/gfwlist server=/applemusicconnect.com/127.0.0.1#5335 ipset=/applemusicconnect.com/gfwlist -server=/imperial.ac.uk/127.0.0.1#5335 -ipset=/imperial.ac.uk/gfwlist -server=/huffpost.com/127.0.0.1#5335 -ipset=/huffpost.com/gfwlist -server=/foxtvdvd.com/127.0.0.1#5335 -ipset=/foxtvdvd.com/gfwlist -server=/fbmessenger.com/127.0.0.1#5335 -ipset=/fbmessenger.com/gfwlist -server=/tracking-location.com/127.0.0.1#5335 -ipset=/tracking-location.com/gfwlist -server=/connectionsacademy.com/127.0.0.1#5335 -ipset=/connectionsacademy.com/gfwlist +server=/badoinkvr.com/127.0.0.1#5335 +ipset=/badoinkvr.com/gfwlist +server=/foxsports.info/127.0.0.1#5335 +ipset=/foxsports.info/gfwlist server=/foxsuper6.com/127.0.0.1#5335 ipset=/foxsuper6.com/gfwlist -server=/mini-abudhabi.com/127.0.0.1#5335 -ipset=/mini-abudhabi.com/gfwlist -server=/thedreadwolfrises.com/127.0.0.1#5335 -ipset=/thedreadwolfrises.com/gfwlist -server=/9news.com.au/127.0.0.1#5335 -ipset=/9news.com.au/gfwlist +server=/microsoftinternetsafety.net/127.0.0.1#5335 +ipset=/microsoftinternetsafety.net/gfwlist server=/intgram.com/127.0.0.1#5335 ipset=/intgram.com/gfwlist server=/bridgestone-tac-oman.com/127.0.0.1#5335 ipset=/bridgestone-tac-oman.com/gfwlist server=/arphic.com.cn/127.0.0.1#5335 ipset=/arphic.com.cn/gfwlist -server=/nikeshoxsale.com/127.0.0.1#5335 -ipset=/nikeshoxsale.com/gfwlist -server=/ntdimg.com/127.0.0.1#5335 -ipset=/ntdimg.com/gfwlist +server=/miaomwu.com/127.0.0.1#5335 +ipset=/miaomwu.com/gfwlist +server=/qmttqg3k.me/127.0.0.1#5335 +ipset=/qmttqg3k.me/gfwlist +server=/hqcollect.net/127.0.0.1#5335 +ipset=/hqcollect.net/gfwlist server=/bmw.co.cr/127.0.0.1#5335 ipset=/bmw.co.cr/gfwlist +server=/imageshack.com/127.0.0.1#5335 +ipset=/imageshack.com/gfwlist +server=/cherrybrady.com/127.0.0.1#5335 +ipset=/cherrybrady.com/gfwlist server=/photoshop.com/127.0.0.1#5335 ipset=/photoshop.com/gfwlist -server=/visa.com.vi/127.0.0.1#5335 -ipset=/visa.com.vi/gfwlist -server=/xvideos-cdn.com/127.0.0.1#5335 -ipset=/xvideos-cdn.com/gfwlist -server=/nikkei.jp/127.0.0.1#5335 -ipset=/nikkei.jp/gfwlist server=/rarbgmirror.com/127.0.0.1#5335 ipset=/rarbgmirror.com/gfwlist -server=/burstly.net/127.0.0.1#5335 -ipset=/burstly.net/gfwlist +server=/storiesonline.net/127.0.0.1#5335 +ipset=/storiesonline.net/gfwlist server=/hindiweb.com/127.0.0.1#5335 ipset=/hindiweb.com/gfwlist server=/1jsa22.vip/127.0.0.1#5335 ipset=/1jsa22.vip/gfwlist server=/minivaughanwest.ca/127.0.0.1#5335 ipset=/minivaughanwest.ca/gfwlist -server=/intelfreepress.com/127.0.0.1#5335 -ipset=/intelfreepress.com/gfwlist -server=/sonypictures.com/127.0.0.1#5335 -ipset=/sonypictures.com/gfwlist server=/hpsignage.com/127.0.0.1#5335 ipset=/hpsignage.com/gfwlist -server=/verilystudywatch.com/127.0.0.1#5335 -ipset=/verilystudywatch.com/gfwlist -server=/itcfonts.com/127.0.0.1#5335 -ipset=/itcfonts.com/gfwlist -server=/epochbuy.com/127.0.0.1#5335 -ipset=/epochbuy.com/gfwlist +server=/javlands.net/127.0.0.1#5335 +ipset=/javlands.net/gfwlist +server=/ubisoftconnect.com/127.0.0.1#5335 +ipset=/ubisoftconnect.com/gfwlist +server=/coolinet.net/127.0.0.1#5335 +ipset=/coolinet.net/gfwlist +server=/azure-devices.net/127.0.0.1#5335 +ipset=/azure-devices.net/gfwlist +server=/imperiodefamosas.com/127.0.0.1#5335 +ipset=/imperiodefamosas.com/gfwlist +server=/voyeurstyle.com/127.0.0.1#5335 +ipset=/voyeurstyle.com/gfwlist +server=/shopee.cl/127.0.0.1#5335 +ipset=/shopee.cl/gfwlist server=/shopdrebeats.com/127.0.0.1#5335 ipset=/shopdrebeats.com/gfwlist -server=/instagram-press.net/127.0.0.1#5335 -ipset=/instagram-press.net/gfwlist +server=/theyxxx.com/127.0.0.1#5335 +ipset=/theyxxx.com/gfwlist server=/ipodshop.com.au/127.0.0.1#5335 ipset=/ipodshop.com.au/gfwlist +server=/horsecock.guru/127.0.0.1#5335 +ipset=/horsecock.guru/gfwlist server=/heroku-charge.com/127.0.0.1#5335 ipset=/heroku-charge.com/gfwlist -server=/uun78.com/127.0.0.1#5335 -ipset=/uun78.com/gfwlist server=/uug22.com/127.0.0.1#5335 ipset=/uug22.com/gfwlist server=/microsoftsqlserver.com/127.0.0.1#5335 ipset=/microsoftsqlserver.com/gfwlist -server=/bmwgroupclassic.com/127.0.0.1#5335 -ipset=/bmwgroupclassic.com/gfwlist +server=/matureporner.com/127.0.0.1#5335 +ipset=/matureporner.com/gfwlist server=/vmwarehorizon.com/127.0.0.1#5335 ipset=/vmwarehorizon.com/gfwlist -server=/foxrelease.com/127.0.0.1#5335 -ipset=/foxrelease.com/gfwlist +server=/hornywhores.net/127.0.0.1#5335 +ipset=/hornywhores.net/gfwlist server=/verisign.pro/127.0.0.1#5335 ipset=/verisign.pro/gfwlist server=/foundationdb.org/127.0.0.1#5335 ipset=/foundationdb.org/gfwlist +server=/porno365.net/127.0.0.1#5335 +ipset=/porno365.net/gfwlist server=/amazon.es/127.0.0.1#5335 ipset=/amazon.es/gfwlist server=/matters.one/127.0.0.1#5335 ipset=/matters.one/gfwlist -server=/bstatic.com/127.0.0.1#5335 -ipset=/bstatic.com/gfwlist -server=/startupjournal.com/127.0.0.1#5335 -ipset=/startupjournal.com/gfwlist server=/volvotrucks.hr/127.0.0.1#5335 ipset=/volvotrucks.hr/gfwlist server=/alivevmax.com/127.0.0.1#5335 ipset=/alivevmax.com/gfwlist -server=/attonlineoffers.com/127.0.0.1#5335 -ipset=/attonlineoffers.com/gfwlist server=/geeksquad.net/127.0.0.1#5335 ipset=/geeksquad.net/gfwlist -server=/washingtondcbmw.com/127.0.0.1#5335 -ipset=/washingtondcbmw.com/gfwlist +server=/instagramcn.com/127.0.0.1#5335 +ipset=/instagramcn.com/gfwlist server=/itunes.org/127.0.0.1#5335 ipset=/itunes.org/gfwlist -server=/mings.hk/127.0.0.1#5335 -ipset=/mings.hk/gfwlist -server=/mallheadphone.com/127.0.0.1#5335 -ipset=/mallheadphone.com/gfwlist -server=/voaswahili.com/127.0.0.1#5335 -ipset=/voaswahili.com/gfwlist +server=/mrssiren.com/127.0.0.1#5335 +ipset=/mrssiren.com/gfwlist server=/reachtheworldonfacebook.com/127.0.0.1#5335 ipset=/reachtheworldonfacebook.com/gfwlist -server=/code.org/127.0.0.1#5335 -ipset=/code.org/gfwlist -server=/pearsonplaces.com.au/127.0.0.1#5335 -ipset=/pearsonplaces.com.au/gfwlist -server=/niketracking.com/127.0.0.1#5335 -ipset=/niketracking.com/gfwlist -server=/paypal-recargacelular.com/127.0.0.1#5335 -ipset=/paypal-recargacelular.com/gfwlist -server=/starwarsfallenorder.com/127.0.0.1#5335 -ipset=/starwarsfallenorder.com/gfwlist -server=/ciscospark.com/127.0.0.1#5335 -ipset=/ciscospark.com/gfwlist +server=/pornburst.xxx/127.0.0.1#5335 +ipset=/pornburst.xxx/gfwlist +server=/nintendo.co.za/127.0.0.1#5335 +ipset=/nintendo.co.za/gfwlist +server=/whvuxtub.com/127.0.0.1#5335 +ipset=/whvuxtub.com/gfwlist +server=/fb.gg/127.0.0.1#5335 +ipset=/fb.gg/gfwlist +server=/720video.tv/127.0.0.1#5335 +ipset=/720video.tv/gfwlist server=/commerceos.com/127.0.0.1#5335 ipset=/commerceos.com/gfwlist server=/spotifycodes.com/127.0.0.1#5335 ipset=/spotifycodes.com/gfwlist -server=/beatsbydredanmarks.com/127.0.0.1#5335 -ipset=/beatsbydredanmarks.com/gfwlist -server=/zeebiz.com/127.0.0.1#5335 -ipset=/zeebiz.com/gfwlist -server=/jwpcdn.com/127.0.0.1#5335 -ipset=/jwpcdn.com/gfwlist +server=/gaysheaven.blogspot.com/127.0.0.1#5335 +ipset=/gaysheaven.blogspot.com/gfwlist +server=/poop-pee.online/127.0.0.1#5335 +ipset=/poop-pee.online/gfwlist server=/minilondon.ca/127.0.0.1#5335 ipset=/minilondon.ca/gfwlist -server=/intel.yt/127.0.0.1#5335 -ipset=/intel.yt/gfwlist -server=/disneyplus.com/127.0.0.1#5335 -ipset=/disneyplus.com/gfwlist server=/google.ms/127.0.0.1#5335 ipset=/google.ms/gfwlist server=/nikeairrift.com/127.0.0.1#5335 ipset=/nikeairrift.com/gfwlist -server=/omekinteractive.com/127.0.0.1#5335 -ipset=/omekinteractive.com/gfwlist +server=/ippstatic.com/127.0.0.1#5335 +ipset=/ippstatic.com/gfwlist server=/cisco.mobi/127.0.0.1#5335 ipset=/cisco.mobi/gfwlist -server=/bestbuy.info/127.0.0.1#5335 -ipset=/bestbuy.info/gfwlist -server=/huluaction.com/127.0.0.1#5335 -ipset=/huluaction.com/gfwlist -server=/blogspot.be/127.0.0.1#5335 -ipset=/blogspot.be/gfwlist -server=/beatsdre4cheap.com/127.0.0.1#5335 -ipset=/beatsdre4cheap.com/gfwlist +server=/girl-secret.com/127.0.0.1#5335 +ipset=/girl-secret.com/gfwlist server=/bmwworld.tv/127.0.0.1#5335 ipset=/bmwworld.tv/gfwlist server=/tandfonline.com/127.0.0.1#5335 ipset=/tandfonline.com/gfwlist server=/bmw.com.ge/127.0.0.1#5335 ipset=/bmw.com.ge/gfwlist -server=/youtu.be/127.0.0.1#5335 -ipset=/youtu.be/gfwlist -server=/fox51tns.net/127.0.0.1#5335 -ipset=/fox51tns.net/gfwlist -server=/annualreviews.org/127.0.0.1#5335 -ipset=/annualreviews.org/gfwlist -server=/p16-tiktokcdn-com.akamaized.net/127.0.0.1#5335 -ipset=/p16-tiktokcdn-com.akamaized.net/gfwlist -server=/minishop.ca/127.0.0.1#5335 -ipset=/minishop.ca/gfwlist +server=/ciscosoftware.com/127.0.0.1#5335 +ipset=/ciscosoftware.com/gfwlist +server=/muyzorras.com/127.0.0.1#5335 +ipset=/muyzorras.com/gfwlist server=/healthreach.hk/127.0.0.1#5335 ipset=/healthreach.hk/gfwlist +server=/overleaf.com/127.0.0.1#5335 +ipset=/overleaf.com/gfwlist server=/gaypad.net/127.0.0.1#5335 ipset=/gaypad.net/gfwlist server=/intel.com.py/127.0.0.1#5335 ipset=/intel.com.py/gfwlist +server=/ikea.co.id/127.0.0.1#5335 +ipset=/ikea.co.id/gfwlist server=/runnike.com/127.0.0.1#5335 ipset=/runnike.com/gfwlist -server=/ddg.co/127.0.0.1#5335 -ipset=/ddg.co/gfwlist +server=/wildcamporn.com/127.0.0.1#5335 +ipset=/wildcamporn.com/gfwlist server=/foxnebraska.com/127.0.0.1#5335 ipset=/foxnebraska.com/gfwlist server=/verisign.com.cn/127.0.0.1#5335 ipset=/verisign.com.cn/gfwlist +server=/plusporn.net/127.0.0.1#5335 +ipset=/plusporn.net/gfwlist server=/gridaware.app/127.0.0.1#5335 ipset=/gridaware.app/gfwlist -server=/myebay.com/127.0.0.1#5335 -ipset=/myebay.com/gfwlist -server=/pokemonsunmoon.com/127.0.0.1#5335 -ipset=/pokemonsunmoon.com/gfwlist -server=/unrealengine.com/127.0.0.1#5335 -ipset=/unrealengine.com/gfwlist -server=/halfcanada.com/127.0.0.1#5335 -ipset=/halfcanada.com/gfwlist -server=/ebayboutique.com/127.0.0.1#5335 -ipset=/ebayboutique.com/gfwlist +server=/divas.com.uy/127.0.0.1#5335 +ipset=/divas.com.uy/gfwlist +server=/primepornlist.com/127.0.0.1#5335 +ipset=/primepornlist.com/gfwlist server=/geeksquadprotectionplan.org/127.0.0.1#5335 ipset=/geeksquadprotectionplan.org/gfwlist -server=/git-scm.com/127.0.0.1#5335 -ipset=/git-scm.com/gfwlist -server=/adobexdplatform.com/127.0.0.1#5335 -ipset=/adobexdplatform.com/gfwlist -server=/hbonow.com/127.0.0.1#5335 -ipset=/hbonow.com/gfwlist -server=/bmw-connecteddrive.gr/127.0.0.1#5335 -ipset=/bmw-connecteddrive.gr/gfwlist +server=/mcdelivery.com.my/127.0.0.1#5335 +ipset=/mcdelivery.com.my/gfwlist +server=/zooxxxsexporn.red/127.0.0.1#5335 +ipset=/zooxxxsexporn.red/gfwlist +server=/pornhdvideos.tv/127.0.0.1#5335 +ipset=/pornhdvideos.tv/gfwlist +server=/bongacams.com/127.0.0.1#5335 +ipset=/bongacams.com/gfwlist server=/thomsonreuters.com.sg/127.0.0.1#5335 ipset=/thomsonreuters.com.sg/gfwlist -server=/pinterest.es/127.0.0.1#5335 -ipset=/pinterest.es/gfwlist -server=/forbesimg.com/127.0.0.1#5335 -ipset=/forbesimg.com/gfwlist -server=/mtt.org/127.0.0.1#5335 -ipset=/mtt.org/gfwlist +server=/beatsbydrediscountonline.net/127.0.0.1#5335 +ipset=/beatsbydrediscountonline.net/gfwlist server=/instagramhilesi.org/127.0.0.1#5335 ipset=/instagramhilesi.org/gfwlist server=/gettyimages.ch/127.0.0.1#5335 ipset=/gettyimages.ch/gfwlist -server=/hkbn.net/127.0.0.1#5335 -ipset=/hkbn.net/gfwlist -server=/sony.com.ni/127.0.0.1#5335 -ipset=/sony.com.ni/gfwlist -server=/appdynamics.info/127.0.0.1#5335 -ipset=/appdynamics.info/gfwlist +server=/fareastpornhub.com/127.0.0.1#5335 +ipset=/fareastpornhub.com/gfwlist server=/begin-trade.com/127.0.0.1#5335 ipset=/begin-trade.com/gfwlist server=/chargenowusa.com/127.0.0.1#5335 ipset=/chargenowusa.com/gfwlist server=/strepsils.com.ar/127.0.0.1#5335 ipset=/strepsils.com.ar/gfwlist -server=/amazon-fashions.com/127.0.0.1#5335 -ipset=/amazon-fashions.com/gfwlist server=/verizon.com/127.0.0.1#5335 ipset=/verizon.com/gfwlist -server=/researchgate.net/127.0.0.1#5335 -ipset=/researchgate.net/gfwlist +server=/judeporn.com/127.0.0.1#5335 +ipset=/judeporn.com/gfwlist server=/monsterbeatsheadphones.net/127.0.0.1#5335 ipset=/monsterbeatsheadphones.net/gfwlist -server=/iphoto.eu/127.0.0.1#5335 -ipset=/iphoto.eu/gfwlist -server=/facebookpmdcenter.com/127.0.0.1#5335 -ipset=/facebookpmdcenter.com/gfwlist server=/miniso-bh.com/127.0.0.1#5335 ipset=/miniso-bh.com/gfwlist -server=/mybeatsbydreuk.com/127.0.0.1#5335 -ipset=/mybeatsbydreuk.com/gfwlist +server=/cultoferotica.com/127.0.0.1#5335 +ipset=/cultoferotica.com/gfwlist +server=/pornoid.com/127.0.0.1#5335 +ipset=/pornoid.com/gfwlist server=/datalore.io/127.0.0.1#5335 ipset=/datalore.io/gfwlist +server=/fnmt.es/127.0.0.1#5335 +ipset=/fnmt.es/gfwlist server=/thefacebook.com/127.0.0.1#5335 ipset=/thefacebook.com/gfwlist -server=/imageworks.com/127.0.0.1#5335 -ipset=/imageworks.com/gfwlist +server=/newcastlenewslocal.com.au/127.0.0.1#5335 +ipset=/newcastlenewslocal.com.au/gfwlist +server=/enemas4fun.com/127.0.0.1#5335 +ipset=/enemas4fun.com/gfwlist server=/privatebrowsingmyths.com/127.0.0.1#5335 ipset=/privatebrowsingmyths.com/gfwlist server=/alibabacloud.com.au/127.0.0.1#5335 ipset=/alibabacloud.com.au/gfwlist -server=/mybeatscheapbydre.com/127.0.0.1#5335 -ipset=/mybeatscheapbydre.com/gfwlist -server=/kopfhorergunstigshop.com/127.0.0.1#5335 -ipset=/kopfhorergunstigshop.com/gfwlist -server=/bestbuyforbusiness.ca/127.0.0.1#5335 -ipset=/bestbuyforbusiness.ca/gfwlist +server=/stripskunk.com/127.0.0.1#5335 +ipset=/stripskunk.com/gfwlist server=/intel.sv/127.0.0.1#5335 ipset=/intel.sv/gfwlist -server=/hpeclipse.com/127.0.0.1#5335 -ipset=/hpeclipse.com/gfwlist -server=/nowe.hk/127.0.0.1#5335 -ipset=/nowe.hk/gfwlist +server=/geolytics.com/127.0.0.1#5335 +ipset=/geolytics.com/gfwlist server=/dowjones.com/127.0.0.1#5335 ipset=/dowjones.com/gfwlist +server=/herexxx.com/127.0.0.1#5335 +ipset=/herexxx.com/gfwlist server=/elib.maruzen.co.jp/127.0.0.1#5335 ipset=/elib.maruzen.co.jp/gfwlist server=/ieeesystemscouncil.org/127.0.0.1#5335 ipset=/ieeesystemscouncil.org/gfwlist -server=/yahoo.cd/127.0.0.1#5335 -ipset=/yahoo.cd/gfwlist server=/nikeasia.com/127.0.0.1#5335 ipset=/nikeasia.com/gfwlist -server=/zeetv.co.uk/127.0.0.1#5335 -ipset=/zeetv.co.uk/gfwlist -server=/9cdn.net/127.0.0.1#5335 -ipset=/9cdn.net/gfwlist +server=/gigaxvideos.com/127.0.0.1#5335 +ipset=/gigaxvideos.com/gfwlist +server=/inxporn.com/127.0.0.1#5335 +ipset=/inxporn.com/gfwlist +server=/vnware.net/127.0.0.1#5335 +ipset=/vnware.net/gfwlist server=/20thcenturystudios.com.au/127.0.0.1#5335 ipset=/20thcenturystudios.com.au/gfwlist -server=/nike.com/127.0.0.1#5335 -ipset=/nike.com/gfwlist -server=/minilangley.ca/127.0.0.1#5335 -ipset=/minilangley.ca/gfwlist -server=/rthk.hk/127.0.0.1#5335 -ipset=/rthk.hk/gfwlist -server=/monsterbeatsru.com/127.0.0.1#5335 -ipset=/monsterbeatsru.com/gfwlist -server=/finishinfo.be/127.0.0.1#5335 -ipset=/finishinfo.be/gfwlist -server=/facebvook.com/127.0.0.1#5335 -ipset=/facebvook.com/gfwlist -server=/drbeatsukmart.com/127.0.0.1#5335 -ipset=/drbeatsukmart.com/gfwlist +server=/classicnike.com/127.0.0.1#5335 +ipset=/classicnike.com/gfwlist +server=/flatpak.org/127.0.0.1#5335 +ipset=/flatpak.org/gfwlist +server=/photo-image.monster/127.0.0.1#5335 +ipset=/photo-image.monster/gfwlist +server=/xxx-hentai.blogspot.com/127.0.0.1#5335 +ipset=/xxx-hentai.blogspot.com/gfwlist server=/spaceexplored.com/127.0.0.1#5335 ipset=/spaceexplored.com/gfwlist server=/powershellgallery.com/127.0.0.1#5335 ipset=/powershellgallery.com/gfwlist -server=/bmw-lao.la/127.0.0.1#5335 -ipset=/bmw-lao.la/gfwlist -server=/highbolt.net/127.0.0.1#5335 -ipset=/highbolt.net/gfwlist +server=/clasporno.org/127.0.0.1#5335 +ipset=/clasporno.org/gfwlist server=/movidius.net/127.0.0.1#5335 ipset=/movidius.net/gfwlist server=/firestonerewards.com/127.0.0.1#5335 ipset=/firestonerewards.com/gfwlist -server=/wirelessreach.com/127.0.0.1#5335 -ipset=/wirelessreach.com/gfwlist server=/ibookpartner.com/127.0.0.1#5335 ipset=/ibookpartner.com/gfwlist server=/fox29.com/127.0.0.1#5335 ipset=/fox29.com/gfwlist -server=/mini-connected.pt/127.0.0.1#5335 -ipset=/mini-connected.pt/gfwlist -server=/blubrry.com/127.0.0.1#5335 -ipset=/blubrry.com/gfwlist +server=/yahoo.gl/127.0.0.1#5335 +ipset=/yahoo.gl/gfwlist server=/minitoronto.ca/127.0.0.1#5335 ipset=/minitoronto.ca/gfwlist server=/53world.com/127.0.0.1#5335 ipset=/53world.com/gfwlist server=/beatsbydrecybermondaydeals2013.com/127.0.0.1#5335 ipset=/beatsbydrecybermondaydeals2013.com/gfwlist -server=/uun85.com/127.0.0.1#5335 -ipset=/uun85.com/gfwlist -server=/akam.net/127.0.0.1#5335 -ipset=/akam.net/gfwlist +server=/hentaiathome.net/127.0.0.1#5335 +ipset=/hentaiathome.net/gfwlist server=/bmw-me.com/127.0.0.1#5335 ipset=/bmw-me.com/gfwlist -server=/dtsell.com/127.0.0.1#5335 -ipset=/dtsell.com/gfwlist -server=/bcbits.com/127.0.0.1#5335 -ipset=/bcbits.com/gfwlist +server=/nvidia.co.in/127.0.0.1#5335 +ipset=/nvidia.co.in/gfwlist +server=/nbcsports.com/127.0.0.1#5335 +ipset=/nbcsports.com/gfwlist server=/paypal-online.net/127.0.0.1#5335 ipset=/paypal-online.net/gfwlist -server=/nikefreeshoes.com/127.0.0.1#5335 -ipset=/nikefreeshoes.com/gfwlist +server=/situero.com/127.0.0.1#5335 +ipset=/situero.com/gfwlist +server=/tubevintageporn.com/127.0.0.1#5335 +ipset=/tubevintageporn.com/gfwlist +server=/mom-gfs.com/127.0.0.1#5335 +ipset=/mom-gfs.com/gfwlist +server=/steam.apac.qtlglb.com/127.0.0.1#5335 +ipset=/steam.apac.qtlglb.com/gfwlist +server=/xpoleuno.com/127.0.0.1#5335 +ipset=/xpoleuno.com/gfwlist server=/cashpassportglobe.com/127.0.0.1#5335 ipset=/cashpassportglobe.com/gfwlist +server=/nudistlog.com/127.0.0.1#5335 +ipset=/nudistlog.com/gfwlist server=/globalsign.fr/127.0.0.1#5335 ipset=/globalsign.fr/gfwlist -server=/sony.fi/127.0.0.1#5335 -ipset=/sony.fi/gfwlist -server=/origin-a.akamaihd.net/127.0.0.1#5335 -ipset=/origin-a.akamaihd.net/gfwlist -server=/sneakerskick.com/127.0.0.1#5335 -ipset=/sneakerskick.com/gfwlist -server=/appdynamics.org/127.0.0.1#5335 -ipset=/appdynamics.org/gfwlist -server=/alfera.in/127.0.0.1#5335 -ipset=/alfera.in/gfwlist -server=/intel.ru/127.0.0.1#5335 -ipset=/intel.ru/gfwlist -server=/bmwgroupinfobahn.com/127.0.0.1#5335 -ipset=/bmwgroupinfobahn.com/gfwlist +server=/titsandtugs.com/127.0.0.1#5335 +ipset=/titsandtugs.com/gfwlist +server=/porn300.com/127.0.0.1#5335 +ipset=/porn300.com/gfwlist +server=/paypal-biz.com/127.0.0.1#5335 +ipset=/paypal-biz.com/gfwlist +server=/google.mn/127.0.0.1#5335 +ipset=/google.mn/gfwlist +server=/pinkvelvetvault.com/127.0.0.1#5335 +ipset=/pinkvelvetvault.com/gfwlist server=/minitakesthestates.com/127.0.0.1#5335 ipset=/minitakesthestates.com/gfwlist -server=/product.co.jp/127.0.0.1#5335 -ipset=/product.co.jp/gfwlist +server=/cenkei.com/127.0.0.1#5335 +ipset=/cenkei.com/gfwlist server=/bidvestbank.co.za/127.0.0.1#5335 ipset=/bidvestbank.co.za/gfwlist server=/pearson.co.jp/127.0.0.1#5335 ipset=/pearson.co.jp/gfwlist server=/foxsmallbusinesscenter.net/127.0.0.1#5335 ipset=/foxsmallbusinesscenter.net/gfwlist -server=/elrepo.org/127.0.0.1#5335 -ipset=/elrepo.org/gfwlist +server=/bigtithitomi.com/127.0.0.1#5335 +ipset=/bigtithitomi.com/gfwlist server=/vanish.ru/127.0.0.1#5335 ipset=/vanish.ru/gfwlist -server=/wsj.jobs/127.0.0.1#5335 -ipset=/wsj.jobs/gfwlist +server=/hsex.tv/127.0.0.1#5335 +ipset=/hsex.tv/gfwlist server=/facebok.com/127.0.0.1#5335 ipset=/facebok.com/gfwlist server=/travelex.ca/127.0.0.1#5335 ipset=/travelex.ca/gfwlist -server=/mastercard.se/127.0.0.1#5335 -ipset=/mastercard.se/gfwlist -server=/photolia.net/127.0.0.1#5335 -ipset=/photolia.net/gfwlist +server=/dev.to/127.0.0.1#5335 +ipset=/dev.to/gfwlist +server=/teentube.pro/127.0.0.1#5335 +ipset=/teentube.pro/gfwlist server=/intel.cr/127.0.0.1#5335 ipset=/intel.cr/gfwlist -server=/marketo.com/127.0.0.1#5335 -ipset=/marketo.com/gfwlist -server=/vercel.app/127.0.0.1#5335 -ipset=/vercel.app/gfwlist -server=/medrxiv.org/127.0.0.1#5335 -ipset=/medrxiv.org/gfwlist -server=/volvotrucks.com.au/127.0.0.1#5335 -ipset=/volvotrucks.com.au/gfwlist -server=/pearsonclinical.com.au/127.0.0.1#5335 -ipset=/pearsonclinical.com.au/gfwlist +server=/roloflix.com/127.0.0.1#5335 +ipset=/roloflix.com/gfwlist server=/pm.me/127.0.0.1#5335 ipset=/pm.me/gfwlist server=/liveauction.com/127.0.0.1#5335 @@ -7466,340 +6262,252 @@ server=/ccpsx.com/127.0.0.1#5335 ipset=/ccpsx.com/gfwlist server=/timesmembership.com/127.0.0.1#5335 ipset=/timesmembership.com/gfwlist -server=/issquaredown.com/127.0.0.1#5335 -ipset=/issquaredown.com/gfwlist -server=/nvidia.ch/127.0.0.1#5335 -ipset=/nvidia.ch/gfwlist -server=/sonyclassics.com/127.0.0.1#5335 -ipset=/sonyclassics.com/gfwlist +server=/mangoporn.net/127.0.0.1#5335 +ipset=/mangoporn.net/gfwlist server=/shopbmwmotorcycles.com/127.0.0.1#5335 ipset=/shopbmwmotorcycles.com/gfwlist server=/canon.tj/127.0.0.1#5335 ipset=/canon.tj/gfwlist -server=/googl.com/127.0.0.1#5335 -ipset=/googl.com/gfwlist server=/rfa.org/127.0.0.1#5335 ipset=/rfa.org/gfwlist -server=/intel.ac/127.0.0.1#5335 -ipset=/intel.ac/gfwlist +server=/blackhomeporn.com/127.0.0.1#5335 +ipset=/blackhomeporn.com/gfwlist server=/interactive-examples.mdn.mozilla.net/127.0.0.1#5335 ipset=/interactive-examples.mdn.mozilla.net/gfwlist -server=/mucinex.com.cn/127.0.0.1#5335 -ipset=/mucinex.com.cn/gfwlist -server=/bestbeats4u.com/127.0.0.1#5335 -ipset=/bestbeats4u.com/gfwlist -server=/intel.fr/127.0.0.1#5335 -ipset=/intel.fr/gfwlist -server=/imonsterbeats.com/127.0.0.1#5335 -ipset=/imonsterbeats.com/gfwlist +server=/amateursexpussy.com/127.0.0.1#5335 +ipset=/amateursexpussy.com/gfwlist +server=/aalah.me/127.0.0.1#5335 +ipset=/aalah.me/gfwlist +server=/1lib.tw/127.0.0.1#5335 +ipset=/1lib.tw/gfwlist +server=/mimei.store/127.0.0.1#5335 +ipset=/mimei.store/gfwlist +server=/leaksmodels.com/127.0.0.1#5335 +ipset=/leaksmodels.com/gfwlist server=/google.me/127.0.0.1#5335 ipset=/google.me/gfwlist -server=/gamepedia.com/127.0.0.1#5335 -ipset=/gamepedia.com/gfwlist -server=/youtube.uy/127.0.0.1#5335 -ipset=/youtube.uy/gfwlist -server=/youtube.com.ar/127.0.0.1#5335 -ipset=/youtube.com.ar/gfwlist -server=/billpoint.com/127.0.0.1#5335 -ipset=/billpoint.com/gfwlist -server=/q13fox.com/127.0.0.1#5335 -ipset=/q13fox.com/gfwlist -server=/bmwmotorcycles.com/127.0.0.1#5335 -ipset=/bmwmotorcycles.com/gfwlist +server=/momsgiveass.com/127.0.0.1#5335 +ipset=/momsgiveass.com/gfwlist +server=/cdn77.org/127.0.0.1#5335 +ipset=/cdn77.org/gfwlist +server=/sankie.net/127.0.0.1#5335 +ipset=/sankie.net/gfwlist server=/vk.me/127.0.0.1#5335 ipset=/vk.me/gfwlist -server=/fluidpreview.com/127.0.0.1#5335 -ipset=/fluidpreview.com/gfwlist +server=/asiansexdiary.com/127.0.0.1#5335 +ipset=/asiansexdiary.com/gfwlist server=/ioe.com/127.0.0.1#5335 ipset=/ioe.com/gfwlist -server=/vercel.com/127.0.0.1#5335 -ipset=/vercel.com/gfwlist -server=/pccwglobal.com/127.0.0.1#5335 -ipset=/pccwglobal.com/gfwlist -server=/carbon.com/127.0.0.1#5335 -ipset=/carbon.com/gfwlist -server=/ieee.org/127.0.0.1#5335 -ipset=/ieee.org/gfwlist +server=/needgayporn.com/127.0.0.1#5335 +ipset=/needgayporn.com/gfwlist +server=/google.com.do/127.0.0.1#5335 +ipset=/google.com.do/gfwlist +server=/babeimpact.com/127.0.0.1#5335 +ipset=/babeimpact.com/gfwlist +server=/sexxx.cfd/127.0.0.1#5335 +ipset=/sexxx.cfd/gfwlist server=/faceboooik.com/127.0.0.1#5335 ipset=/faceboooik.com/gfwlist server=/visa.com.pe/127.0.0.1#5335 ipset=/visa.com.pe/gfwlist -server=/nurofen.ru/127.0.0.1#5335 -ipset=/nurofen.ru/gfwlist -server=/headphonepubs.com/127.0.0.1#5335 -ipset=/headphonepubs.com/gfwlist -server=/shoestop2.com/127.0.0.1#5335 -ipset=/shoestop2.com/gfwlist -server=/bmw-security-vehicles.com/127.0.0.1#5335 -ipset=/bmw-security-vehicles.com/gfwlist -server=/conquerwithcharacter.com/127.0.0.1#5335 -ipset=/conquerwithcharacter.com/gfwlist +server=/antarvasnaclips.com/127.0.0.1#5335 +ipset=/antarvasnaclips.com/gfwlist +server=/tube2011.com/127.0.0.1#5335 +ipset=/tube2011.com/gfwlist +server=/beck-online.beck.de/127.0.0.1#5335 +ipset=/beck-online.beck.de/gfwlist server=/applepaymerchantsupplies.info/127.0.0.1#5335 ipset=/applepaymerchantsupplies.info/gfwlist -server=/applecare.berlin/127.0.0.1#5335 -ipset=/applecare.berlin/gfwlist -server=/nexttv.com.tw/127.0.0.1#5335 -ipset=/nexttv.com.tw/gfwlist -server=/vmwarelearning.com/127.0.0.1#5335 -ipset=/vmwarelearning.com/gfwlist +server=/dreamamateurs.com/127.0.0.1#5335 +ipset=/dreamamateurs.com/gfwlist +server=/tophd.xxx/127.0.0.1#5335 +ipset=/tophd.xxx/gfwlist server=/drebyby.com/127.0.0.1#5335 ipset=/drebyby.com/gfwlist server=/mini-corporate-sales.com/127.0.0.1#5335 ipset=/mini-corporate-sales.com/gfwlist -server=/intelsoftwarenetwork.com/127.0.0.1#5335 -ipset=/intelsoftwarenetwork.com/gfwlist -server=/highdefinitionbeatsbydre.com/127.0.0.1#5335 -ipset=/highdefinitionbeatsbydre.com/gfwlist -server=/canon.it/127.0.0.1#5335 -ipset=/canon.it/gfwlist -server=/momo.dm/127.0.0.1#5335 -ipset=/momo.dm/gfwlist +server=/sankei-shougakukai.jp/127.0.0.1#5335 +ipset=/sankei-shougakukai.jp/gfwlist +server=/sexyhomewives.com/127.0.0.1#5335 +ipset=/sexyhomewives.com/gfwlist +server=/truyentranh86.com/127.0.0.1#5335 +ipset=/truyentranh86.com/gfwlist +server=/tsescortsdirectory.com/127.0.0.1#5335 +ipset=/tsescortsdirectory.com/gfwlist server=/attwirelesssolutions.com/127.0.0.1#5335 ipset=/attwirelesssolutions.com/gfwlist -server=/zee.com/127.0.0.1#5335 -ipset=/zee.com/gfwlist +server=/highporn.net/127.0.0.1#5335 +ipset=/highporn.net/gfwlist +server=/babycondom.com/127.0.0.1#5335 +ipset=/babycondom.com/gfwlist server=/factwire.org/127.0.0.1#5335 ipset=/factwire.org/gfwlist -server=/tx.me/127.0.0.1#5335 -ipset=/tx.me/gfwlist -server=/facebookappcenter.info/127.0.0.1#5335 -ipset=/facebookappcenter.info/gfwlist +server=/cambro.tv/127.0.0.1#5335 +ipset=/cambro.tv/gfwlist server=/o365weve.com/127.0.0.1#5335 ipset=/o365weve.com/gfwlist -server=/qctconnect.com/127.0.0.1#5335 -ipset=/qctconnect.com/gfwlist -server=/facebooklikeexchange.com/127.0.0.1#5335 -ipset=/facebooklikeexchange.com/gfwlist +server=/momhomeporn.com/127.0.0.1#5335 +ipset=/momhomeporn.com/gfwlist server=/payppal.com/127.0.0.1#5335 ipset=/payppal.com/gfwlist -server=/aboutamazon.com.au/127.0.0.1#5335 -ipset=/aboutamazon.com.au/gfwlist -server=/wballiance.com/127.0.0.1#5335 -ipset=/wballiance.com/gfwlist +server=/hqbabes.com/127.0.0.1#5335 +ipset=/hqbabes.com/gfwlist +server=/b-ok.cc/127.0.0.1#5335 +ipset=/b-ok.cc/gfwlist server=/volvopenta.us/127.0.0.1#5335 ipset=/volvopenta.us/gfwlist server=/myfoxmaine.com/127.0.0.1#5335 ipset=/myfoxmaine.com/gfwlist -server=/mailonline.co.uk/127.0.0.1#5335 -ipset=/mailonline.co.uk/gfwlist -server=/duckduckco.de/127.0.0.1#5335 -ipset=/duckduckco.de/gfwlist -server=/xposed.info/127.0.0.1#5335 -ipset=/xposed.info/gfwlist -server=/pearson.com/127.0.0.1#5335 -ipset=/pearson.com/gfwlist -server=/gofundme.com/127.0.0.1#5335 -ipset=/gofundme.com/gfwlist -server=/apple.cm/127.0.0.1#5335 -ipset=/apple.cm/gfwlist +server=/skyoceanrescue.com/127.0.0.1#5335 +ipset=/skyoceanrescue.com/gfwlist +server=/xiuren.org/127.0.0.1#5335 +ipset=/xiuren.org/gfwlist server=/nurofen.com/127.0.0.1#5335 ipset=/nurofen.com/gfwlist -server=/githubstatus.com/127.0.0.1#5335 -ipset=/githubstatus.com/gfwlist server=/visacarddesignlab.com/127.0.0.1#5335 ipset=/visacarddesignlab.com/gfwlist server=/bmwiventures.com/127.0.0.1#5335 ipset=/bmwiventures.com/gfwlist -server=/v-has.com/127.0.0.1#5335 -ipset=/v-has.com/gfwlist -server=/documentforce.com/127.0.0.1#5335 -ipset=/documentforce.com/gfwlist +server=/durexloveclub.com/127.0.0.1#5335 +ipset=/durexloveclub.com/gfwlist +server=/woolitecarpet.com/127.0.0.1#5335 +ipset=/woolitecarpet.com/gfwlist +server=/dump.xxx/127.0.0.1#5335 +ipset=/dump.xxx/gfwlist server=/bmw-motorrad-service-inclusive.com/127.0.0.1#5335 ipset=/bmw-motorrad-service-inclusive.com/gfwlist -server=/ebay-course.com/127.0.0.1#5335 -ipset=/ebay-course.com/gfwlist server=/bingsandbox.com/127.0.0.1#5335 ipset=/bingsandbox.com/gfwlist -server=/inteltechnologyprovider.com/127.0.0.1#5335 -ipset=/inteltechnologyprovider.com/gfwlist +server=/amateurwifetits.com/127.0.0.1#5335 +ipset=/amateurwifetits.com/gfwlist server=/youtube.ro/127.0.0.1#5335 ipset=/youtube.ro/gfwlist -server=/imac-applecomputer.com/127.0.0.1#5335 -ipset=/imac-applecomputer.com/gfwlist -server=/bridgestonecomercial.co.cr/127.0.0.1#5335 -ipset=/bridgestonecomercial.co.cr/gfwlist -server=/hpsmart.com/127.0.0.1#5335 -ipset=/hpsmart.com/gfwlist -server=/canon.si/127.0.0.1#5335 -ipset=/canon.si/gfwlist -server=/farfetch-contents.com/127.0.0.1#5335 -ipset=/farfetch-contents.com/gfwlist -server=/40shopping.com/127.0.0.1#5335 -ipset=/40shopping.com/gfwlist -server=/businessinsider.es/127.0.0.1#5335 -ipset=/businessinsider.es/gfwlist +server=/thieme-connect.de/127.0.0.1#5335 +ipset=/thieme-connect.de/gfwlist +server=/bestfreetube.xxx/127.0.0.1#5335 +ipset=/bestfreetube.xxx/gfwlist +server=/hothomemade.com/127.0.0.1#5335 +ipset=/hothomemade.com/gfwlist +server=/medone-education.thieme.com/127.0.0.1#5335 +ipset=/medone-education.thieme.com/gfwlist server=/thomsonreuters.ru/127.0.0.1#5335 ipset=/thomsonreuters.ru/gfwlist -server=/marketing-nirvana.com/127.0.0.1#5335 -ipset=/marketing-nirvana.com/gfwlist server=/pearsonenespanol.com/127.0.0.1#5335 ipset=/pearsonenespanol.com/gfwlist -server=/dropboxinsiders.com/127.0.0.1#5335 -ipset=/dropboxinsiders.com/gfwlist -server=/visa.com.ai/127.0.0.1#5335 -ipset=/visa.com.ai/gfwlist -server=/nytimes.com/127.0.0.1#5335 -ipset=/nytimes.com/gfwlist +server=/inasian.club/127.0.0.1#5335 +ipset=/inasian.club/gfwlist +server=/asianpornjav.com/127.0.0.1#5335 +ipset=/asianpornjav.com/gfwlist server=/ebay.nl/127.0.0.1#5335 ipset=/ebay.nl/gfwlist -server=/mastercard.com.bz/127.0.0.1#5335 -ipset=/mastercard.com.bz/gfwlist -server=/visa.com.ng/127.0.0.1#5335 -ipset=/visa.com.ng/gfwlist +server=/directtvdeals.tv/127.0.0.1#5335 +ipset=/directtvdeals.tv/gfwlist server=/blogspot.si/127.0.0.1#5335 ipset=/blogspot.si/gfwlist -server=/qualcomm.com.br/127.0.0.1#5335 -ipset=/qualcomm.com.br/gfwlist -server=/vmware.tt.omtrdc.net/127.0.0.1#5335 -ipset=/vmware.tt.omtrdc.net/gfwlist +server=/ed21.cc/127.0.0.1#5335 +ipset=/ed21.cc/gfwlist server=/softether.org/127.0.0.1#5335 ipset=/softether.org/gfwlist -server=/visa.com.pr/127.0.0.1#5335 -ipset=/visa.com.pr/gfwlist -server=/pinterest.cl/127.0.0.1#5335 -ipset=/pinterest.cl/gfwlist -server=/litbus-anime.com/127.0.0.1#5335 -ipset=/litbus-anime.com/gfwlist -server=/hoolu.tv/127.0.0.1#5335 -ipset=/hoolu.tv/gfwlist -server=/directvplans.com/127.0.0.1#5335 -ipset=/directvplans.com/gfwlist -server=/whatsapp-plus.net/127.0.0.1#5335 -ipset=/whatsapp-plus.net/gfwlist -server=/beatsbydreoslo.com/127.0.0.1#5335 -ipset=/beatsbydreoslo.com/gfwlist -server=/visa.cz/127.0.0.1#5335 -ipset=/visa.cz/gfwlist +server=/awseducate.org/127.0.0.1#5335 +ipset=/awseducate.org/gfwlist +server=/facebookmarketing.info/127.0.0.1#5335 +ipset=/facebookmarketing.info/gfwlist +server=/youtube.nl/127.0.0.1#5335 +ipset=/youtube.nl/gfwlist +server=/iqq2.cc/127.0.0.1#5335 +ipset=/iqq2.cc/gfwlist +server=/googlee.com/127.0.0.1#5335 +ipset=/googlee.com/gfwlist server=/yahoo.me/127.0.0.1#5335 ipset=/yahoo.me/gfwlist -server=/electronicarts.com/127.0.0.1#5335 -ipset=/electronicarts.com/gfwlist -server=/monsterdrebeats-canada.net/127.0.0.1#5335 -ipset=/monsterdrebeats-canada.net/gfwlist -server=/azurecosmosdb.info/127.0.0.1#5335 -ipset=/azurecosmosdb.info/gfwlist -server=/scholar.google.com.tw/127.0.0.1#5335 -ipset=/scholar.google.com.tw/gfwlist server=/google.cg/127.0.0.1#5335 ipset=/google.cg/gfwlist server=/videojs.com/127.0.0.1#5335 ipset=/videojs.com/gfwlist -server=/jgg18.xyz/127.0.0.1#5335 -ipset=/jgg18.xyz/gfwlist -server=/appsto.re/127.0.0.1#5335 -ipset=/appsto.re/gfwlist +server=/lobstertube.com/127.0.0.1#5335 +ipset=/lobstertube.com/gfwlist server=/visa.com.kz/127.0.0.1#5335 ipset=/visa.com.kz/gfwlist server=/forthebadge.com/127.0.0.1#5335 ipset=/forthebadge.com/gfwlist server=/rfi.fr/127.0.0.1#5335 ipset=/rfi.fr/gfwlist -server=/thunderbird.net/127.0.0.1#5335 -ipset=/thunderbird.net/gfwlist +server=/fuxporn.com/127.0.0.1#5335 +ipset=/fuxporn.com/gfwlist server=/youtube.lu/127.0.0.1#5335 ipset=/youtube.lu/gfwlist -server=/cloudflarebolt.com/127.0.0.1#5335 -ipset=/cloudflarebolt.com/gfwlist -server=/cencoastbmw.com/127.0.0.1#5335 -ipset=/cencoastbmw.com/gfwlist -server=/applecomputer.kr/127.0.0.1#5335 -ipset=/applecomputer.kr/gfwlist +server=/currently.com/127.0.0.1#5335 +ipset=/currently.com/gfwlist +server=/veetarabia.com/127.0.0.1#5335 +ipset=/veetarabia.com/gfwlist server=/akamaietpphishingtest.com/127.0.0.1#5335 ipset=/akamaietpphishingtest.com/gfwlist -server=/appdynamics.de/127.0.0.1#5335 -ipset=/appdynamics.de/gfwlist -server=/erlang.org/127.0.0.1#5335 -ipset=/erlang.org/gfwlist -server=/mastercard.om/127.0.0.1#5335 -ipset=/mastercard.om/gfwlist -server=/sonybsc.com/127.0.0.1#5335 -ipset=/sonybsc.com/gfwlist +server=/free-strip-games.com/127.0.0.1#5335 +ipset=/free-strip-games.com/gfwlist server=/businessinsider.com.au/127.0.0.1#5335 ipset=/businessinsider.com.au/gfwlist -server=/nikeinc.com/127.0.0.1#5335 -ipset=/nikeinc.com/gfwlist -server=/whychoosevmwareeuc.com/127.0.0.1#5335 -ipset=/whychoosevmwareeuc.com/gfwlist -server=/playshowtv.com/127.0.0.1#5335 -ipset=/playshowtv.com/gfwlist +server=/babesandstars.com/127.0.0.1#5335 +ipset=/babesandstars.com/gfwlist server=/facebookpoker.info/127.0.0.1#5335 ipset=/facebookpoker.info/gfwlist server=/microsoft.lv/127.0.0.1#5335 ipset=/microsoft.lv/gfwlist server=/dazn.com/127.0.0.1#5335 ipset=/dazn.com/gfwlist -server=/pearsonclinical.es/127.0.0.1#5335 -ipset=/pearsonclinical.es/gfwlist server=/sony.lu/127.0.0.1#5335 ipset=/sony.lu/gfwlist server=/sinchew.my/127.0.0.1#5335 ipset=/sinchew.my/gfwlist server=/mastercard.com.hk/127.0.0.1#5335 ipset=/mastercard.com.hk/gfwlist -server=/monsterbeatsale.com/127.0.0.1#5335 -ipset=/monsterbeatsale.com/gfwlist -server=/ebaysohos.com/127.0.0.1#5335 -ipset=/ebaysohos.com/gfwlist +server=/nintendo.ch/127.0.0.1#5335 +ipset=/nintendo.ch/gfwlist server=/lge.com/127.0.0.1#5335 ipset=/lge.com/gfwlist -server=/faceboonk.com/127.0.0.1#5335 -ipset=/faceboonk.com/gfwlist -server=/asp-cc.com/127.0.0.1#5335 -ipset=/asp-cc.com/gfwlist server=/volvotrucks.com.bn/127.0.0.1#5335 ipset=/volvotrucks.com.bn/gfwlist server=/dartlang.org/127.0.0.1#5335 ipset=/dartlang.org/gfwlist -server=/twister.net.co/127.0.0.1#5335 -ipset=/twister.net.co/gfwlist server=/visa.com.bo/127.0.0.1#5335 ipset=/visa.com.bo/gfwlist -server=/qualcommhalo.com/127.0.0.1#5335 -ipset=/qualcommhalo.com/gfwlist -server=/fundaiphone5s.com/127.0.0.1#5335 -ipset=/fundaiphone5s.com/gfwlist -server=/visaeurope.at/127.0.0.1#5335 -ipset=/visaeurope.at/gfwlist -server=/discord.gift/127.0.0.1#5335 -ipset=/discord.gift/gfwlist -server=/bmw-motorrad.ma/127.0.0.1#5335 -ipset=/bmw-motorrad.ma/gfwlist +server=/nudevietnam.com/127.0.0.1#5335 +ipset=/nudevietnam.com/gfwlist +server=/alt1-mtalk.google.com/127.0.0.1#5335 +ipset=/alt1-mtalk.google.com/gfwlist +server=/wikifeet.com/127.0.0.1#5335 +ipset=/wikifeet.com/gfwlist +server=/exec-appointments.com/127.0.0.1#5335 +ipset=/exec-appointments.com/gfwlist +server=/ladies.com/127.0.0.1#5335 +ipset=/ladies.com/gfwlist server=/strepsilsarabia.com/127.0.0.1#5335 ipset=/strepsilsarabia.com/gfwlist -server=/dealtime.com/127.0.0.1#5335 -ipset=/dealtime.com/gfwlist -server=/mac.com.au/127.0.0.1#5335 -ipset=/mac.com.au/gfwlist -server=/xn--yf1at58a.com/127.0.0.1#5335 -ipset=/xn--yf1at58a.com/gfwlist +server=/fuckup.xxx/127.0.0.1#5335 +ipset=/fuckup.xxx/gfwlist +server=/sexhubhd.com/127.0.0.1#5335 +ipset=/sexhubhd.com/gfwlist +server=/sexo123.net/127.0.0.1#5335 +ipset=/sexo123.net/gfwlist +server=/pankwire.com/127.0.0.1#5335 +ipset=/pankwire.com/gfwlist +server=/foxuv.com/127.0.0.1#5335 +ipset=/foxuv.com/gfwlist server=/macruby.org/127.0.0.1#5335 ipset=/macruby.org/gfwlist server=/fortawesome.com/127.0.0.1#5335 ipset=/fortawesome.com/gfwlist -server=/icloudads.net/127.0.0.1#5335 -ipset=/icloudads.net/gfwlist -server=/bmw.com.ve/127.0.0.1#5335 -ipset=/bmw.com.ve/gfwlist -server=/airwick.com.au/127.0.0.1#5335 -ipset=/airwick.com.au/gfwlist -server=/amazonlumberyard.wang/127.0.0.1#5335 -ipset=/amazonlumberyard.wang/gfwlist -server=/javynow.com/127.0.0.1#5335 -ipset=/javynow.com/gfwlist +server=/ikea.com.ua/127.0.0.1#5335 +ipset=/ikea.com.ua/gfwlist +server=/isheppc.com/127.0.0.1#5335 +ipset=/isheppc.com/gfwlist +server=/handjobcumvideos.com/127.0.0.1#5335 +ipset=/handjobcumvideos.com/gfwlist server=/headphonesbeatsbydre.com/127.0.0.1#5335 ipset=/headphonesbeatsbydre.com/gfwlist server=/dronedj.com/127.0.0.1#5335 ipset=/dronedj.com/gfwlist -server=/inclusivegrowthscore.com/127.0.0.1#5335 -ipset=/inclusivegrowthscore.com/gfwlist -server=/speedfantasybid.com/127.0.0.1#5335 -ipset=/speedfantasybid.com/gfwlist -server=/enfamil.ca/127.0.0.1#5335 -ipset=/enfamil.ca/gfwlist -server=/tumblr.com/127.0.0.1#5335 -ipset=/tumblr.com/gfwlist -server=/msnewskids.com/127.0.0.1#5335 -ipset=/msnewskids.com/gfwlist +server=/myrimmingporn.com/127.0.0.1#5335 +ipset=/myrimmingporn.com/gfwlist server=/bmw-businessdrive.com/127.0.0.1#5335 ipset=/bmw-businessdrive.com/gfwlist server=/cybertrust.ne.jp/127.0.0.1#5335 @@ -7808,166 +6516,118 @@ server=/azurecosmosdb.net/127.0.0.1#5335 ipset=/azurecosmosdb.net/gfwlist server=/farfetch-apps.com/127.0.0.1#5335 ipset=/farfetch-apps.com/gfwlist -server=/fstopimages.com/127.0.0.1#5335 -ipset=/fstopimages.com/gfwlist -server=/ibm.us/127.0.0.1#5335 -ipset=/ibm.us/gfwlist -server=/camelotherald.net/127.0.0.1#5335 -ipset=/camelotherald.net/gfwlist -server=/dropboxstatic.com/127.0.0.1#5335 -ipset=/dropboxstatic.com/gfwlist -server=/corepublishingsolutions.com/127.0.0.1#5335 -ipset=/corepublishingsolutions.com/gfwlist -server=/abematv.akamaized.net/127.0.0.1#5335 -ipset=/abematv.akamaized.net/gfwlist +server=/anybunny.tv/127.0.0.1#5335 +ipset=/anybunny.tv/gfwlist +server=/gfashion.com/127.0.0.1#5335 +ipset=/gfashion.com/gfwlist +server=/fanhaodian.com/127.0.0.1#5335 +ipset=/fanhaodian.com/gfwlist +server=/seqing.one/127.0.0.1#5335 +ipset=/seqing.one/gfwlist +server=/mypornstarbook.net/127.0.0.1#5335 +ipset=/mypornstarbook.net/gfwlist +server=/corepublishingsolutions.com/127.0.0.1#5335 +ipset=/corepublishingsolutions.com/gfwlist +server=/exgfvideos.xxx/127.0.0.1#5335 +ipset=/exgfvideos.xxx/gfwlist server=/buycheapbeatsbydreshop.com/127.0.0.1#5335 ipset=/buycheapbeatsbydreshop.com/gfwlist +server=/shopee.com.co/127.0.0.1#5335 +ipset=/shopee.com.co/gfwlist +server=/oxyporn.com/127.0.0.1#5335 +ipset=/oxyporn.com/gfwlist server=/ebay-online.com/127.0.0.1#5335 ipset=/ebay-online.com/gfwlist -server=/appla.com/127.0.0.1#5335 -ipset=/appla.com/gfwlist -server=/mcdonaldsparties.com.au/127.0.0.1#5335 -ipset=/mcdonaldsparties.com.au/gfwlist -server=/www.sb/127.0.0.1#5335 -ipset=/www.sb/gfwlist +server=/allover30.com/127.0.0.1#5335 +ipset=/allover30.com/gfwlist server=/ieee-tems.org/127.0.0.1#5335 ipset=/ieee-tems.org/gfwlist -server=/devopsms.com/127.0.0.1#5335 -ipset=/devopsms.com/gfwlist +server=/auntymaza.com/127.0.0.1#5335 +ipset=/auntymaza.com/gfwlist server=/nomadlandmovie.ch/127.0.0.1#5335 ipset=/nomadlandmovie.ch/gfwlist server=/applemusic.co/127.0.0.1#5335 ipset=/applemusic.co/gfwlist -server=/ieee.tv/127.0.0.1#5335 -ipset=/ieee.tv/gfwlist -server=/dettol.ch/127.0.0.1#5335 -ipset=/dettol.ch/gfwlist server=/un.org/127.0.0.1#5335 ipset=/un.org/gfwlist -server=/beatsbydrehd.net/127.0.0.1#5335 -ipset=/beatsbydrehd.net/gfwlist server=/itunesmatch.com/127.0.0.1#5335 ipset=/itunesmatch.com/gfwlist -server=/famima.vn/127.0.0.1#5335 -ipset=/famima.vn/gfwlist -server=/office365love.com/127.0.0.1#5335 -ipset=/office365love.com/gfwlist -server=/fox5dc.com/127.0.0.1#5335 -ipset=/fox5dc.com/gfwlist -server=/pubmatic.co.jp/127.0.0.1#5335 -ipset=/pubmatic.co.jp/gfwlist -server=/beatsbydrdredanmark.com/127.0.0.1#5335 -ipset=/beatsbydrdredanmark.com/gfwlist server=/crossfitfirestone.com/127.0.0.1#5335 ipset=/crossfitfirestone.com/gfwlist server=/intel.fi/127.0.0.1#5335 ipset=/intel.fi/gfwlist -server=/appdynamics.com/127.0.0.1#5335 -ipset=/appdynamics.com/gfwlist -server=/youtube.co.ke/127.0.0.1#5335 -ipset=/youtube.co.ke/gfwlist +server=/xdir.vip/127.0.0.1#5335 +ipset=/xdir.vip/gfwlist server=/paypalinc.com/127.0.0.1#5335 ipset=/paypalinc.com/gfwlist -server=/google.cz/127.0.0.1#5335 -ipset=/google.cz/gfwlist -server=/cheapbeats4sale.net/127.0.0.1#5335 -ipset=/cheapbeats4sale.net/gfwlist -server=/j2objc.org/127.0.0.1#5335 -ipset=/j2objc.org/gfwlist server=/mastercard.ae/127.0.0.1#5335 ipset=/mastercard.ae/gfwlist -server=/beatsshop-usa.com/127.0.0.1#5335 -ipset=/beatsshop-usa.com/gfwlist server=/mcd.com/127.0.0.1#5335 ipset=/mcd.com/gfwlist -server=/enfagrow.co.in/127.0.0.1#5335 -ipset=/enfagrow.co.in/gfwlist -server=/greenend.org.uk/127.0.0.1#5335 -ipset=/greenend.org.uk/gfwlist -server=/applestore.com.ph/127.0.0.1#5335 -ipset=/applestore.com.ph/gfwlist -server=/sway.com/127.0.0.1#5335 -ipset=/sway.com/gfwlist +server=/babesmachine.com/127.0.0.1#5335 +ipset=/babesmachine.com/gfwlist +server=/xgroovy.com/127.0.0.1#5335 +ipset=/xgroovy.com/gfwlist +server=/hairydivas.com/127.0.0.1#5335 +ipset=/hairydivas.com/gfwlist server=/applescript.info/127.0.0.1#5335 ipset=/applescript.info/gfwlist -server=/disney.nl/127.0.0.1#5335 -ipset=/disney.nl/gfwlist +server=/pixhost.to/127.0.0.1#5335 +ipset=/pixhost.to/gfwlist +server=/yomilogi.com/127.0.0.1#5335 +ipset=/yomilogi.com/gfwlist server=/polymer-project.org/127.0.0.1#5335 ipset=/polymer-project.org/gfwlist -server=/itunesradio.com/127.0.0.1#5335 -ipset=/itunesradio.com/gfwlist -server=/bbcfmt.s.llnwi.net/127.0.0.1#5335 -ipset=/bbcfmt.s.llnwi.net/gfwlist -server=/kingkongapp.com/127.0.0.1#5335 -ipset=/kingkongapp.com/gfwlist -server=/wsjplus.com/127.0.0.1#5335 -ipset=/wsjplus.com/gfwlist +server=/crystalgunnsworld.com/127.0.0.1#5335 +ipset=/crystalgunnsworld.com/gfwlist +server=/xxgasm.com/127.0.0.1#5335 +ipset=/xxgasm.com/gfwlist +server=/indiancolleges.com/127.0.0.1#5335 +ipset=/indiancolleges.com/gfwlist +server=/clubsweethearts.com/127.0.0.1#5335 +ipset=/clubsweethearts.com/gfwlist server=/bmw-connecteddrive.cz/127.0.0.1#5335 ipset=/bmw-connecteddrive.cz/gfwlist server=/webmproject.org/127.0.0.1#5335 ipset=/webmproject.org/gfwlist -server=/hayabusa.io/127.0.0.1#5335 -ipset=/hayabusa.io/gfwlist server=/frontiersin.org/127.0.0.1#5335 ipset=/frontiersin.org/gfwlist -server=/visa.co.ke/127.0.0.1#5335 -ipset=/visa.co.ke/gfwlist -server=/yahoo.no/127.0.0.1#5335 -ipset=/yahoo.no/gfwlist -server=/intelstore.com/127.0.0.1#5335 -ipset=/intelstore.com/gfwlist +server=/seiron-sankei.com/127.0.0.1#5335 +ipset=/seiron-sankei.com/gfwlist server=/microsoft.ru/127.0.0.1#5335 ipset=/microsoft.ru/gfwlist server=/ipad.wang/127.0.0.1#5335 ipset=/ipad.wang/gfwlist -server=/coursera.org/127.0.0.1#5335 -ipset=/coursera.org/gfwlist server=/coupangcdn.com/127.0.0.1#5335 ipset=/coupangcdn.com/gfwlist -server=/stackoverflow.com/127.0.0.1#5335 -ipset=/stackoverflow.com/gfwlist -server=/alphera.in/127.0.0.1#5335 -ipset=/alphera.in/gfwlist +server=/translatewiki.net/127.0.0.1#5335 +ipset=/translatewiki.net/gfwlist server=/minimarkham.ca/127.0.0.1#5335 ipset=/minimarkham.ca/gfwlist -server=/scholar.google.ca/127.0.0.1#5335 -ipset=/scholar.google.ca/gfwlist -server=/volvotrucks.jp/127.0.0.1#5335 -ipset=/volvotrucks.jp/gfwlist server=/initproducts.com/127.0.0.1#5335 ipset=/initproducts.com/gfwlist -server=/canon.az/127.0.0.1#5335 -ipset=/canon.az/gfwlist +server=/windowsphone-int.com/127.0.0.1#5335 +ipset=/windowsphone-int.com/gfwlist server=/wish.com/127.0.0.1#5335 ipset=/wish.com/gfwlist -server=/alpherafs.com.hk/127.0.0.1#5335 -ipset=/alpherafs.com.hk/gfwlist +server=/babes34.pro/127.0.0.1#5335 +ipset=/babes34.pro/gfwlist server=/visualstudio-staging.com/127.0.0.1#5335 ipset=/visualstudio-staging.com/gfwlist -server=/ebay.co.uk/127.0.0.1#5335 -ipset=/ebay.co.uk/gfwlist -server=/volvotrucks.fr/127.0.0.1#5335 -ipset=/volvotrucks.fr/gfwlist -server=/mi9cdn.com/127.0.0.1#5335 -ipset=/mi9cdn.com/gfwlist -server=/orithegame.com/127.0.0.1#5335 -ipset=/orithegame.com/gfwlist -server=/applepaysupplies.berlin/127.0.0.1#5335 -ipset=/applepaysupplies.berlin/gfwlist +server=/omg.blog/127.0.0.1#5335 +ipset=/omg.blog/gfwlist +server=/pornexpress.net/127.0.0.1#5335 +ipset=/pornexpress.net/gfwlist server=/whatisworkspaceone.com/127.0.0.1#5335 ipset=/whatisworkspaceone.com/gfwlist -server=/alfera.my/127.0.0.1#5335 -ipset=/alfera.my/gfwlist -server=/microsoftaccountguard.com/127.0.0.1#5335 -ipset=/microsoftaccountguard.com/gfwlist -server=/doi.info/127.0.0.1#5335 -ipset=/doi.info/gfwlist -server=/volvotrucks.com.tr/127.0.0.1#5335 -ipset=/volvotrucks.com.tr/gfwlist -server=/nexpart.tv/127.0.0.1#5335 -ipset=/nexpart.tv/gfwlist +server=/monsterbeats-solo.com/127.0.0.1#5335 +ipset=/monsterbeats-solo.com/gfwlist +server=/vercel.blog/127.0.0.1#5335 +ipset=/vercel.blog/gfwlist server=/alpherafinancialservices.es/127.0.0.1#5335 ipset=/alpherafinancialservices.es/gfwlist +server=/tig-ol-bitties.live/127.0.0.1#5335 +ipset=/tig-ol-bitties.live/gfwlist server=/epochtimes.com/127.0.0.1#5335 ipset=/epochtimes.com/gfwlist server=/yahoo.la/127.0.0.1#5335 @@ -7978,236 +6638,176 @@ server=/poshtestgallery.cloudapp.net/127.0.0.1#5335 ipset=/poshtestgallery.cloudapp.net/gfwlist server=/sony.ua/127.0.0.1#5335 ipset=/sony.ua/gfwlist +server=/modeloswebcambogota.com/127.0.0.1#5335 +ipset=/modeloswebcambogota.com/gfwlist server=/drebeatshome.com/127.0.0.1#5335 ipset=/drebeatshome.com/gfwlist -server=/uun83.com/127.0.0.1#5335 -ipset=/uun83.com/gfwlist -server=/bigbuckbunny.org/127.0.0.1#5335 -ipset=/bigbuckbunny.org/gfwlist -server=/escape.com.au/127.0.0.1#5335 -ipset=/escape.com.au/gfwlist -server=/myfonts.com/127.0.0.1#5335 -ipset=/myfonts.com/gfwlist -server=/npmjs.com/127.0.0.1#5335 -ipset=/npmjs.com/gfwlist +server=/babesaround.com/127.0.0.1#5335 +ipset=/babesaround.com/gfwlist +server=/jav2be.com/127.0.0.1#5335 +ipset=/jav2be.com/gfwlist +server=/tiava.com/127.0.0.1#5335 +ipset=/tiava.com/gfwlist server=/scholar.google.co.cr/127.0.0.1#5335 ipset=/scholar.google.co.cr/gfwlist -server=/facebook-privacy.com/127.0.0.1#5335 -ipset=/facebook-privacy.com/gfwlist -server=/cloudflaretest.com/127.0.0.1#5335 -ipset=/cloudflaretest.com/gfwlist -server=/canon.gr/127.0.0.1#5335 -ipset=/canon.gr/gfwlist -server=/burstlyrewards.com/127.0.0.1#5335 -ipset=/burstlyrewards.com/gfwlist -server=/applestore.com.ru/127.0.0.1#5335 -ipset=/applestore.com.ru/gfwlist -server=/bmw.re/127.0.0.1#5335 -ipset=/bmw.re/gfwlist -server=/paypal-signin.com/127.0.0.1#5335 -ipset=/paypal-signin.com/gfwlist +server=/erolabs.com/127.0.0.1#5335 +ipset=/erolabs.com/gfwlist +server=/handbagsoutletebay.com/127.0.0.1#5335 +ipset=/handbagsoutletebay.com/gfwlist server=/ebay-stories.com/127.0.0.1#5335 ipset=/ebay-stories.com/gfwlist -server=/bloombergtradingchallenge.com/127.0.0.1#5335 -ipset=/bloombergtradingchallenge.com/gfwlist -server=/intelcloudbuilders.com/127.0.0.1#5335 -ipset=/intelcloudbuilders.com/gfwlist server=/bestbuygsm.com/127.0.0.1#5335 ipset=/bestbuygsm.com/gfwlist -server=/mysims.com/127.0.0.1#5335 -ipset=/mysims.com/gfwlist server=/builtfromebay.com/127.0.0.1#5335 ipset=/builtfromebay.com/gfwlist -server=/foxsports.com.br/127.0.0.1#5335 -ipset=/foxsports.com.br/gfwlist server=/dishworld.com/127.0.0.1#5335 ipset=/dishworld.com/gfwlist server=/reckittbenckiser.tv/127.0.0.1#5335 ipset=/reckittbenckiser.tv/gfwlist server=/amazonstudiosguilds.com/127.0.0.1#5335 ipset=/amazonstudiosguilds.com/gfwlist -server=/mynike.com/127.0.0.1#5335 -ipset=/mynike.com/gfwlist server=/monotypeimaging.com/127.0.0.1#5335 ipset=/monotypeimaging.com/gfwlist +server=/freepornvideos.life/127.0.0.1#5335 +ipset=/freepornvideos.life/gfwlist server=/godoc.org/127.0.0.1#5335 ipset=/godoc.org/gfwlist -server=/youtube.in/127.0.0.1#5335 -ipset=/youtube.in/gfwlist -server=/picsee.co/127.0.0.1#5335 -ipset=/picsee.co/gfwlist -server=/monsterbeatsfinland.com/127.0.0.1#5335 -ipset=/monsterbeatsfinland.com/gfwlist -server=/powerbeatsbydre.com/127.0.0.1#5335 -ipset=/powerbeatsbydre.com/gfwlist -server=/appleiphonecell.com/127.0.0.1#5335 -ipset=/appleiphonecell.com/gfwlist -server=/mastercard.gr/127.0.0.1#5335 -ipset=/mastercard.gr/gfwlist -server=/moodstocks.com/127.0.0.1#5335 -ipset=/moodstocks.com/gfwlist -server=/voanews.com/127.0.0.1#5335 -ipset=/voanews.com/gfwlist -server=/amzn.com/127.0.0.1#5335 -ipset=/amzn.com/gfwlist +server=/chromecast.com/127.0.0.1#5335 +ipset=/chromecast.com/gfwlist +server=/instachecker.com/127.0.0.1#5335 +ipset=/instachecker.com/gfwlist +server=/crazyxxx3dworld.com/127.0.0.1#5335 +ipset=/crazyxxx3dworld.com/gfwlist +server=/coqnu.com/127.0.0.1#5335 +ipset=/coqnu.com/gfwlist +server=/ebscohost.com/127.0.0.1#5335 +ipset=/ebscohost.com/gfwlist +server=/cuckvideos.com/127.0.0.1#5335 +ipset=/cuckvideos.com/gfwlist +server=/asn-online.org/127.0.0.1#5335 +ipset=/asn-online.org/gfwlist server=/appleone.website/127.0.0.1#5335 ipset=/appleone.website/gfwlist -server=/kijiji.ca/127.0.0.1#5335 -ipset=/kijiji.ca/gfwlist +server=/theweek.in/127.0.0.1#5335 +ipset=/theweek.in/gfwlist server=/jijiji.ca/127.0.0.1#5335 ipset=/jijiji.ca/gfwlist server=/disney.be/127.0.0.1#5335 ipset=/disney.be/gfwlist -server=/bloombergsef.com/127.0.0.1#5335 -ipset=/bloombergsef.com/gfwlist -server=/flirt4free.com/127.0.0.1#5335 -ipset=/flirt4free.com/gfwlist -server=/mcpeaceofmind.com/127.0.0.1#5335 -ipset=/mcpeaceofmind.com/gfwlist -server=/microsofteca.com/127.0.0.1#5335 -ipset=/microsofteca.com/gfwlist -server=/beatsbydreaustraliasales.com/127.0.0.1#5335 -ipset=/beatsbydreaustraliasales.com/gfwlist -server=/18novel.xyz/127.0.0.1#5335 -ipset=/18novel.xyz/gfwlist +server=/intel.lt/127.0.0.1#5335 +ipset=/intel.lt/gfwlist +server=/voalingala.com/127.0.0.1#5335 +ipset=/voalingala.com/gfwlist server=/paypaal.com/127.0.0.1#5335 ipset=/paypaal.com/gfwlist server=/thestationbymaker.com/127.0.0.1#5335 ipset=/thestationbymaker.com/gfwlist +server=/adult3dcomics.com/127.0.0.1#5335 +ipset=/adult3dcomics.com/gfwlist server=/bridgestone.com.tw/127.0.0.1#5335 ipset=/bridgestone.com.tw/gfwlist -server=/bridgestone.com.vn/127.0.0.1#5335 -ipset=/bridgestone.com.vn/gfwlist -server=/calgoncarbon-china.com/127.0.0.1#5335 -ipset=/calgoncarbon-china.com/gfwlist -server=/directvgrandslam.com/127.0.0.1#5335 -ipset=/directvgrandslam.com/gfwlist -server=/primevideo.info/127.0.0.1#5335 -ipset=/primevideo.info/gfwlist +server=/ww9094.com/127.0.0.1#5335 +ipset=/ww9094.com/gfwlist server=/needforspeeddriftkings.com/127.0.0.1#5335 ipset=/needforspeeddriftkings.com/gfwlist -server=/mastercad.com/127.0.0.1#5335 -ipset=/mastercad.com/gfwlist -server=/aboutamazon.in/127.0.0.1#5335 -ipset=/aboutamazon.in/gfwlist -server=/mpweekly.com/127.0.0.1#5335 -ipset=/mpweekly.com/gfwlist -server=/beatsbydre-mall.com/127.0.0.1#5335 -ipset=/beatsbydre-mall.com/gfwlist -server=/bidi.net.uk/127.0.0.1#5335 -ipset=/bidi.net.uk/gfwlist -server=/niketrainers.com/127.0.0.1#5335 -ipset=/niketrainers.com/gfwlist -server=/myradio.hk/127.0.0.1#5335 -ipset=/myradio.hk/gfwlist -server=/100beatscheap.com/127.0.0.1#5335 -ipset=/100beatscheap.com/gfwlist +server=/tubegalore.com/127.0.0.1#5335 +ipset=/tubegalore.com/gfwlist +server=/svoboda.org/127.0.0.1#5335 +ipset=/svoboda.org/gfwlist +server=/video-one.com/127.0.0.1#5335 +ipset=/video-one.com/gfwlist +server=/javout.co/127.0.0.1#5335 +ipset=/javout.co/gfwlist +server=/mdn.mozit.cloud/127.0.0.1#5335 +ipset=/mdn.mozit.cloud/gfwlist +server=/fljmh1.com/127.0.0.1#5335 +ipset=/fljmh1.com/gfwlist server=/huloo.tv/127.0.0.1#5335 ipset=/huloo.tv/gfwlist -server=/starbucks.com.co/127.0.0.1#5335 -ipset=/starbucks.com.co/gfwlist -server=/msecnd.net/127.0.0.1#5335 -ipset=/msecnd.net/gfwlist server=/av01.tv/127.0.0.1#5335 ipset=/av01.tv/gfwlist server=/cnn.io/127.0.0.1#5335 ipset=/cnn.io/gfwlist -server=/intel.bi/127.0.0.1#5335 -ipset=/intel.bi/gfwlist +server=/dubaihotties.org/127.0.0.1#5335 +ipset=/dubaihotties.org/gfwlist server=/wixanswers.com/127.0.0.1#5335 ipset=/wixanswers.com/gfwlist -server=/vanishstains.com.au/127.0.0.1#5335 -ipset=/vanishstains.com.au/gfwlist server=/chargenow.com/127.0.0.1#5335 ipset=/chargenow.com/gfwlist server=/realclearinvestigations.com/127.0.0.1#5335 ipset=/realclearinvestigations.com/gfwlist -server=/strepsils.co.za/127.0.0.1#5335 -ipset=/strepsils.co.za/gfwlist -server=/bmwcustomapparel.com/127.0.0.1#5335 -ipset=/bmwcustomapparel.com/gfwlist +server=/myporno.cz/127.0.0.1#5335 +ipset=/myporno.cz/gfwlist server=/nvidia.es/127.0.0.1#5335 ipset=/nvidia.es/gfwlist -server=/opencreate.org/127.0.0.1#5335 -ipset=/opencreate.org/gfwlist -server=/ipod.de/127.0.0.1#5335 -ipset=/ipod.de/gfwlist -server=/ebaystore.com/127.0.0.1#5335 -ipset=/ebaystore.com/gfwlist -server=/facerbook.com/127.0.0.1#5335 -ipset=/facerbook.com/gfwlist -server=/ieeer5.org/127.0.0.1#5335 -ipset=/ieeer5.org/gfwlist +server=/ikea.mx/127.0.0.1#5335 +ipset=/ikea.mx/gfwlist +server=/xnxxcom.club/127.0.0.1#5335 +ipset=/xnxxcom.club/gfwlist +server=/cuckfilmswifefuck.com/127.0.0.1#5335 +ipset=/cuckfilmswifefuck.com/gfwlist +server=/sarajevopodopsadom.com/127.0.0.1#5335 +ipset=/sarajevopodopsadom.com/gfwlist server=/googletraveladservices.com/127.0.0.1#5335 ipset=/googletraveladservices.com/gfwlist server=/onlyiphone5case.com/127.0.0.1#5335 ipset=/onlyiphone5case.com/gfwlist -server=/gettyimages.com/127.0.0.1#5335 -ipset=/gettyimages.com/gfwlist -server=/cashify.com/127.0.0.1#5335 -ipset=/cashify.com/gfwlist -server=/costcobusinessdelivery.com/127.0.0.1#5335 -ipset=/costcobusinessdelivery.com/gfwlist +server=/pp6.info/127.0.0.1#5335 +ipset=/pp6.info/gfwlist +server=/bodgirls.com/127.0.0.1#5335 +ipset=/bodgirls.com/gfwlist +server=/xvideosjingxiang.com/127.0.0.1#5335 +ipset=/xvideosjingxiang.com/gfwlist server=/intel.sn/127.0.0.1#5335 ipset=/intel.sn/gfwlist -server=/realtype.co.jp/127.0.0.1#5335 -ipset=/realtype.co.jp/gfwlist +server=/desiresecrets.com/127.0.0.1#5335 +ipset=/desiresecrets.com/gfwlist server=/ebayvakantiehuizen.com/127.0.0.1#5335 ipset=/ebayvakantiehuizen.com/gfwlist +server=/binance.info/127.0.0.1#5335 +ipset=/binance.info/gfwlist server=/nodejs.org/127.0.0.1#5335 ipset=/nodejs.org/gfwlist -server=/rb.net/127.0.0.1#5335 -ipset=/rb.net/gfwlist -server=/netacad.com/127.0.0.1#5335 -ipset=/netacad.com/gfwlist -server=/dettol.cl/127.0.0.1#5335 -ipset=/dettol.cl/gfwlist -server=/applebk.net/127.0.0.1#5335 -ipset=/applebk.net/gfwlist +server=/celebsroulette.com/127.0.0.1#5335 +ipset=/celebsroulette.com/gfwlist +server=/daboja18.com/127.0.0.1#5335 +ipset=/daboja18.com/gfwlist server=/scholar.google.com.pk/127.0.0.1#5335 ipset=/scholar.google.com.pk/gfwlist +server=/hentaipornonly.com/127.0.0.1#5335 +ipset=/hentaipornonly.com/gfwlist server=/miniso.co.tz/127.0.0.1#5335 ipset=/miniso.co.tz/gfwlist -server=/intel.eg/127.0.0.1#5335 -ipset=/intel.eg/gfwlist -server=/dynafleetonline.com/127.0.0.1#5335 -ipset=/dynafleetonline.com/gfwlist +server=/sex-amateur-clips.com/127.0.0.1#5335 +ipset=/sex-amateur-clips.com/gfwlist server=/microsoft.com/127.0.0.1#5335 ipset=/microsoft.com/gfwlist -server=/amazonvideo.cc/127.0.0.1#5335 -ipset=/amazonvideo.cc/gfwlist -server=/applecare.hamburg/127.0.0.1#5335 -ipset=/applecare.hamburg/gfwlist -server=/bestbuy-giftcard.info/127.0.0.1#5335 -ipset=/bestbuy-giftcard.info/gfwlist -server=/scholar.google.com.cu/127.0.0.1#5335 -ipset=/scholar.google.com.cu/gfwlist -server=/drdrebeatsale.com/127.0.0.1#5335 -ipset=/drdrebeatsale.com/gfwlist +server=/erolabs.net/127.0.0.1#5335 +ipset=/erolabs.net/gfwlist server=/the-m-festival.com/127.0.0.1#5335 ipset=/the-m-festival.com/gfwlist -server=/bmw-worldfinal.com/127.0.0.1#5335 -ipset=/bmw-worldfinal.com/gfwlist -server=/marvel10thanniversary.com/127.0.0.1#5335 -ipset=/marvel10thanniversary.com/gfwlist -server=/dnai.in/127.0.0.1#5335 -ipset=/dnai.in/gfwlist +server=/osmfoundation.org/127.0.0.1#5335 +ipset=/osmfoundation.org/gfwlist server=/paypal-communications.net/127.0.0.1#5335 ipset=/paypal-communications.net/gfwlist server=/scoop.sh/127.0.0.1#5335 ipset=/scoop.sh/gfwlist -server=/microsoft.lt/127.0.0.1#5335 -ipset=/microsoft.lt/gfwlist -server=/shoppercentre.com/127.0.0.1#5335 -ipset=/shoppercentre.com/gfwlist -server=/mini-connected.lt/127.0.0.1#5335 -ipset=/mini-connected.lt/gfwlist +server=/9hentaiz.com/127.0.0.1#5335 +ipset=/9hentaiz.com/gfwlist +server=/sankei-digital.co.jp/127.0.0.1#5335 +ipset=/sankei-digital.co.jp/gfwlist +server=/ap.org/127.0.0.1#5335 +ipset=/ap.org/gfwlist +server=/nijioma.blog/127.0.0.1#5335 +ipset=/nijioma.blog/gfwlist +server=/xxx-porn-tube.com/127.0.0.1#5335 +ipset=/xxx-porn-tube.com/gfwlist server=/oxfordpoliticstrove.com/127.0.0.1#5335 ipset=/oxfordpoliticstrove.com/gfwlist server=/mini.cz/127.0.0.1#5335 ipset=/mini.cz/gfwlist -server=/foxnewsmagazine.com/127.0.0.1#5335 -ipset=/foxnewsmagazine.com/gfwlist +server=/homemadeamateur.com/127.0.0.1#5335 +ipset=/homemadeamateur.com/gfwlist server=/electrek.co/127.0.0.1#5335 ipset=/electrek.co/gfwlist server=/bridgestone.co.in/127.0.0.1#5335 @@ -8220,396 +6820,308 @@ server=/ebayclassifieds.com/127.0.0.1#5335 ipset=/ebayclassifieds.com/gfwlist server=/akamaizercentral.com/127.0.0.1#5335 ipset=/akamaizercentral.com/gfwlist -server=/ciscoccservice.com/127.0.0.1#5335 -ipset=/ciscoccservice.com/gfwlist +server=/youtube.com.om/127.0.0.1#5335 +ipset=/youtube.com.om/gfwlist server=/monsterbeatsdrdrecheap.com/127.0.0.1#5335 ipset=/monsterbeatsdrdrecheap.com/gfwlist -server=/9now.com.au/127.0.0.1#5335 -ipset=/9now.com.au/gfwlist -server=/apple.fi/127.0.0.1#5335 -ipset=/apple.fi/gfwlist +server=/mobilefacebook.com/127.0.0.1#5335 +ipset=/mobilefacebook.com/gfwlist server=/intel.dk/127.0.0.1#5335 ipset=/intel.dk/gfwlist -server=/baltimorebmw.com/127.0.0.1#5335 -ipset=/baltimorebmw.com/gfwlist -server=/terragraph.com/127.0.0.1#5335 -ipset=/terragraph.com/gfwlist -server=/ieee-ies.org/127.0.0.1#5335 -ipset=/ieee-ies.org/gfwlist +server=/pururin.to/127.0.0.1#5335 +ipset=/pururin.to/gfwlist +server=/javmodel.com/127.0.0.1#5335 +ipset=/javmodel.com/gfwlist +server=/doceapower.com/127.0.0.1#5335 +ipset=/doceapower.com/gfwlist +server=/eroticart-top100.com/127.0.0.1#5335 +ipset=/eroticart-top100.com/gfwlist server=/miniyaletown.ca/127.0.0.1#5335 ipset=/miniyaletown.ca/gfwlist server=/volvotrucks.de/127.0.0.1#5335 ipset=/volvotrucks.de/gfwlist -server=/messenger.com/127.0.0.1#5335 -ipset=/messenger.com/gfwlist -server=/dogecoin.com/127.0.0.1#5335 -ipset=/dogecoin.com/gfwlist -server=/disneymagicmoments.gr/127.0.0.1#5335 -ipset=/disneymagicmoments.gr/gfwlist -server=/mini.ie/127.0.0.1#5335 -ipset=/mini.ie/gfwlist +server=/alibabacloud.com.hk/127.0.0.1#5335 +ipset=/alibabacloud.com.hk/gfwlist +server=/ahpornogratuit.com/127.0.0.1#5335 +ipset=/ahpornogratuit.com/gfwlist server=/applefinalcutproworld.org/127.0.0.1#5335 ipset=/applefinalcutproworld.org/gfwlist +server=/tubebdsm.com/127.0.0.1#5335 +ipset=/tubebdsm.com/gfwlist server=/worldcoinpay.com/127.0.0.1#5335 ipset=/worldcoinpay.com/gfwlist server=/nikeitalia.com/127.0.0.1#5335 ipset=/nikeitalia.com/gfwlist -server=/minidrivingexperienceusa.com/127.0.0.1#5335 -ipset=/minidrivingexperienceusa.com/gfwlist -server=/womenwill.com.br/127.0.0.1#5335 -ipset=/womenwill.com.br/gfwlist +server=/moapi1.club/127.0.0.1#5335 +ipset=/moapi1.club/gfwlist +server=/ieeecss.org/127.0.0.1#5335 +ipset=/ieeecss.org/gfwlist +server=/xujan.com/127.0.0.1#5335 +ipset=/xujan.com/gfwlist server=/wwe.com/127.0.0.1#5335 ipset=/wwe.com/gfwlist -server=/rockstargames.com/127.0.0.1#5335 -ipset=/rockstargames.com/gfwlist server=/cbsig.net/127.0.0.1#5335 ipset=/cbsig.net/gfwlist -server=/applestore.co.hu/127.0.0.1#5335 -ipset=/applestore.co.hu/gfwlist -server=/mastercard.si/127.0.0.1#5335 -ipset=/mastercard.si/gfwlist +server=/fusker.xxx/127.0.0.1#5335 +ipset=/fusker.xxx/gfwlist server=/neurology.org/127.0.0.1#5335 ipset=/neurology.org/gfwlist -server=/ebay.com/127.0.0.1#5335 -ipset=/ebay.com/gfwlist -server=/intelcapital.net/127.0.0.1#5335 -ipset=/intelcapital.net/gfwlist -server=/beatsbydre-outletsale.net/127.0.0.1#5335 -ipset=/beatsbydre-outletsale.net/gfwlist +server=/0dzn.com/127.0.0.1#5335 +ipset=/0dzn.com/gfwlist server=/thinkwithgoogle.com/127.0.0.1#5335 ipset=/thinkwithgoogle.com/gfwlist -server=/nikeswim.com/127.0.0.1#5335 -ipset=/nikeswim.com/gfwlist -server=/adobecc.com/127.0.0.1#5335 -ipset=/adobecc.com/gfwlist -server=/newsprestigenetwork.com.au/127.0.0.1#5335 -ipset=/newsprestigenetwork.com.au/gfwlist -server=/foxcharlotte.com/127.0.0.1#5335 -ipset=/foxcharlotte.com/gfwlist -server=/epochtimes-romania.com/127.0.0.1#5335 -ipset=/epochtimes-romania.com/gfwlist -server=/hbomaxcdn.com/127.0.0.1#5335 -ipset=/hbomaxcdn.com/gfwlist -server=/famosascalvas.com/127.0.0.1#5335 -ipset=/famosascalvas.com/gfwlist +server=/friendfeed-api.com/127.0.0.1#5335 +ipset=/friendfeed-api.com/gfwlist +server=/masalaseen.net/127.0.0.1#5335 +ipset=/masalaseen.net/gfwlist +server=/thegay.com/127.0.0.1#5335 +ipset=/thegay.com/gfwlist +server=/careerjournal.com/127.0.0.1#5335 +ipset=/careerjournal.com/gfwlist +server=/sensualmothers.com/127.0.0.1#5335 +ipset=/sensualmothers.com/gfwlist server=/beatselectronics.com/127.0.0.1#5335 ipset=/beatselectronics.com/gfwlist server=/buymeacoffee.com/127.0.0.1#5335 ipset=/buymeacoffee.com/gfwlist server=/bloombergview.com/127.0.0.1#5335 ipset=/bloombergview.com/gfwlist -server=/disneymagicmoments.fr/127.0.0.1#5335 -ipset=/disneymagicmoments.fr/gfwlist -server=/nabtravellercard.com.au/127.0.0.1#5335 -ipset=/nabtravellercard.com.au/gfwlist +server=/duckduckgo.co.uk/127.0.0.1#5335 +ipset=/duckduckgo.co.uk/gfwlist server=/gettyimages.co.uk/127.0.0.1#5335 ipset=/gettyimages.co.uk/gfwlist -server=/google.com.om/127.0.0.1#5335 -ipset=/google.com.om/gfwlist -server=/watchout.tw/127.0.0.1#5335 -ipset=/watchout.tw/gfwlist -server=/paydiant.com/127.0.0.1#5335 -ipset=/paydiant.com/gfwlist -server=/sf.net/127.0.0.1#5335 -ipset=/sf.net/gfwlist +server=/h528.com/127.0.0.1#5335 +ipset=/h528.com/gfwlist +server=/skebetter.com/127.0.0.1#5335 +ipset=/skebetter.com/gfwlist server=/beatsbydremall2013.com/127.0.0.1#5335 ipset=/beatsbydremall2013.com/gfwlist -server=/popjav.tv/127.0.0.1#5335 -ipset=/popjav.tv/gfwlist +server=/link69.com/127.0.0.1#5335 +ipset=/link69.com/gfwlist server=/freenetproject.org/127.0.0.1#5335 ipset=/freenetproject.org/gfwlist -server=/spotifycdn.net/127.0.0.1#5335 -ipset=/spotifycdn.net/gfwlist -server=/blogspot.com.co/127.0.0.1#5335 -ipset=/blogspot.com.co/gfwlist +server=/certsign.ro/127.0.0.1#5335 +ipset=/certsign.ro/gfwlist +server=/asakonet.co.jp/127.0.0.1#5335 +ipset=/asakonet.co.jp/gfwlist server=/blogspot.jp/127.0.0.1#5335 ipset=/blogspot.jp/gfwlist -server=/brandproducts1688.com/127.0.0.1#5335 -ipset=/brandproducts1688.com/gfwlist -server=/thinkquarterly.co.uk/127.0.0.1#5335 -ipset=/thinkquarterly.co.uk/gfwlist -server=/star-brasil.com/127.0.0.1#5335 -ipset=/star-brasil.com/gfwlist +server=/desire-xx.supertop-100.com/127.0.0.1#5335 +ipset=/desire-xx.supertop-100.com/gfwlist +server=/sshs.xyz/127.0.0.1#5335 +ipset=/sshs.xyz/gfwlist +server=/porm.club/127.0.0.1#5335 +ipset=/porm.club/gfwlist server=/cheap-beatsbydre.com/127.0.0.1#5335 ipset=/cheap-beatsbydre.com/gfwlist -server=/italiabeatsbydrdre.com/127.0.0.1#5335 -ipset=/italiabeatsbydrdre.com/gfwlist +server=/2lib.org/127.0.0.1#5335 +ipset=/2lib.org/gfwlist server=/hu1u.com/127.0.0.1#5335 ipset=/hu1u.com/gfwlist server=/taptotokyo.com/127.0.0.1#5335 ipset=/taptotokyo.com/gfwlist -server=/nintendoeurope.com/127.0.0.1#5335 -ipset=/nintendoeurope.com/gfwlist -server=/skype.com/127.0.0.1#5335 -ipset=/skype.com/gfwlist -server=/visabusinessinsights.com/127.0.0.1#5335 -ipset=/visabusinessinsights.com/gfwlist -server=/appstore.ph/127.0.0.1#5335 -ipset=/appstore.ph/gfwlist +server=/actalis.com/127.0.0.1#5335 +ipset=/actalis.com/gfwlist +server=/bootysource.com/127.0.0.1#5335 +ipset=/bootysource.com/gfwlist +server=/teen-sexy.com/127.0.0.1#5335 +ipset=/teen-sexy.com/gfwlist server=/dettol.be/127.0.0.1#5335 ipset=/dettol.be/gfwlist -server=/nvidia.com.br/127.0.0.1#5335 -ipset=/nvidia.com.br/gfwlist -server=/coinone.co.kr/127.0.0.1#5335 -ipset=/coinone.co.kr/gfwlist -server=/universalorlando.com/127.0.0.1#5335 -ipset=/universalorlando.com/gfwlist -server=/huobi.pro/127.0.0.1#5335 -ipset=/huobi.pro/gfwlist +server=/doujins.com/127.0.0.1#5335 +ipset=/doujins.com/gfwlist +server=/midentsolutions.com/127.0.0.1#5335 +ipset=/midentsolutions.com/gfwlist server=/bmw.co.ke/127.0.0.1#5335 ipset=/bmw.co.ke/gfwlist -server=/volvotrucks.no/127.0.0.1#5335 -ipset=/volvotrucks.no/gfwlist -server=/muji.us/127.0.0.1#5335 -ipset=/muji.us/gfwlist +server=/xvideos-xxxx.com/127.0.0.1#5335 +ipset=/xvideos-xxxx.com/gfwlist server=/sharpdaily.tw/127.0.0.1#5335 ipset=/sharpdaily.tw/gfwlist -server=/paisapay.info/127.0.0.1#5335 -ipset=/paisapay.info/gfwlist -server=/vfsco.at/127.0.0.1#5335 -ipset=/vfsco.at/gfwlist -server=/beats-by-dre-australia.com/127.0.0.1#5335 -ipset=/beats-by-dre-australia.com/gfwlist -server=/supermariorun.com/127.0.0.1#5335 -ipset=/supermariorun.com/gfwlist +server=/thekarups.com/127.0.0.1#5335 +ipset=/thekarups.com/gfwlist +server=/4gtv.tv/127.0.0.1#5335 +ipset=/4gtv.tv/gfwlist +server=/amateurhousewifefuck.com/127.0.0.1#5335 +ipset=/amateurhousewifefuck.com/gfwlist server=/beatsbydrefr.com/127.0.0.1#5335 ipset=/beatsbydrefr.com/gfwlist +server=/8kpornvids.com/127.0.0.1#5335 +ipset=/8kpornvids.com/gfwlist server=/theebayshop.com/127.0.0.1#5335 ipset=/theebayshop.com/gfwlist -server=/magentocommerce.com/127.0.0.1#5335 -ipset=/magentocommerce.com/gfwlist server=/visa.com.az/127.0.0.1#5335 ipset=/visa.com.az/gfwlist +server=/nanonamad.com/127.0.0.1#5335 +ipset=/nanonamad.com/gfwlist server=/onlineapplestore.com/127.0.0.1#5335 ipset=/onlineapplestore.com/gfwlist -server=/visual-arts.jp/127.0.0.1#5335 -ipset=/visual-arts.jp/gfwlist +server=/amateurswingersmovies.com/127.0.0.1#5335 +ipset=/amateurswingersmovies.com/gfwlist server=/paygonline.com/127.0.0.1#5335 ipset=/paygonline.com/gfwlist -server=/myguide.hk/127.0.0.1#5335 -ipset=/myguide.hk/gfwlist -server=/dailymail.com.au/127.0.0.1#5335 -ipset=/dailymail.com.au/gfwlist -server=/softbanktelecom.com/127.0.0.1#5335 -ipset=/softbanktelecom.com/gfwlist -server=/paofu.cloud/127.0.0.1#5335 -ipset=/paofu.cloud/gfwlist -server=/bwbx.io/127.0.0.1#5335 -ipset=/bwbx.io/gfwlist -server=/ipad.host/127.0.0.1#5335 -ipset=/ipad.host/gfwlist +server=/rbdigitallab.com/127.0.0.1#5335 +ipset=/rbdigitallab.com/gfwlist +server=/yahoo.pl/127.0.0.1#5335 +ipset=/yahoo.pl/gfwlist +server=/adidas.com.sa/127.0.0.1#5335 +ipset=/adidas.com.sa/gfwlist server=/oxfordfirstsource.com/127.0.0.1#5335 ipset=/oxfordfirstsource.com/gfwlist server=/facebookconnect.com/127.0.0.1#5335 ipset=/facebookconnect.com/gfwlist -server=/viacbs.com/127.0.0.1#5335 -ipset=/viacbs.com/gfwlist -server=/ebay.com.ec/127.0.0.1#5335 -ipset=/ebay.com.ec/gfwlist +server=/thepornbest.com/127.0.0.1#5335 +ipset=/thepornbest.com/gfwlist server=/disneymagicmoments.de/127.0.0.1#5335 ipset=/disneymagicmoments.de/gfwlist -server=/skate2.com/127.0.0.1#5335 -ipset=/skate2.com/gfwlist +server=/bbycontent.com/127.0.0.1#5335 +ipset=/bbycontent.com/gfwlist server=/bethesdagamestudios.com/127.0.0.1#5335 ipset=/bethesdagamestudios.com/gfwlist -server=/apple-usa.net/127.0.0.1#5335 -ipset=/apple-usa.net/gfwlist -server=/beatsbydremonsteraustralia.com/127.0.0.1#5335 -ipset=/beatsbydremonsteraustralia.com/gfwlist -server=/askfacebook.net/127.0.0.1#5335 -ipset=/askfacebook.net/gfwlist +server=/uflash.tv/127.0.0.1#5335 +ipset=/uflash.tv/gfwlist +server=/slack-msgs.com/127.0.0.1#5335 +ipset=/slack-msgs.com/gfwlist +server=/youtube.sn/127.0.0.1#5335 +ipset=/youtube.sn/gfwlist server=/blink.org/127.0.0.1#5335 ipset=/blink.org/gfwlist server=/googlestore.com/127.0.0.1#5335 ipset=/googlestore.com/gfwlist -server=/minie.com/127.0.0.1#5335 -ipset=/minie.com/gfwlist -server=/hpstore-emea.com/127.0.0.1#5335 -ipset=/hpstore-emea.com/gfwlist +server=/av69.us/127.0.0.1#5335 +ipset=/av69.us/gfwlist server=/trustdoc.ch/127.0.0.1#5335 ipset=/trustdoc.ch/gfwlist -server=/mininanaimo.ca/127.0.0.1#5335 -ipset=/mininanaimo.ca/gfwlist -server=/greatergothammini.com/127.0.0.1#5335 -ipset=/greatergothammini.com/gfwlist -server=/casque-fr.com/127.0.0.1#5335 -ipset=/casque-fr.com/gfwlist server=/nvidia.ru/127.0.0.1#5335 ipset=/nvidia.ru/gfwlist -server=/dynacw.com.hk/127.0.0.1#5335 -ipset=/dynacw.com.hk/gfwlist -server=/ebayfrance.com/127.0.0.1#5335 -ipset=/ebayfrance.com/gfwlist -server=/bmw-motorrad.uy/127.0.0.1#5335 -ipset=/bmw-motorrad.uy/gfwlist +server=/likeseiyu.com/127.0.0.1#5335 +ipset=/likeseiyu.com/gfwlist +server=/libgen.rs/127.0.0.1#5335 +ipset=/libgen.rs/gfwlist +server=/peachy18.com/127.0.0.1#5335 +ipset=/peachy18.com/gfwlist +server=/selfloversworld.com/127.0.0.1#5335 +ipset=/selfloversworld.com/gfwlist +server=/videos4sale.com/127.0.0.1#5335 +ipset=/videos4sale.com/gfwlist server=/minioakville.com/127.0.0.1#5335 ipset=/minioakville.com/gfwlist -server=/geeksquadcares.com/127.0.0.1#5335 -ipset=/geeksquadcares.com/gfwlist -server=/bmwmc.net/127.0.0.1#5335 -ipset=/bmwmc.net/gfwlist +server=/bili888.com/127.0.0.1#5335 +ipset=/bili888.com/gfwlist +server=/ieee-ecce.org/127.0.0.1#5335 +ipset=/ieee-ecce.org/gfwlist server=/dettol.co.nz/127.0.0.1#5335 ipset=/dettol.co.nz/gfwlist -server=/microbit.org/127.0.0.1#5335 -ipset=/microbit.org/gfwlist server=/gitstar.net/127.0.0.1#5335 ipset=/gitstar.net/gfwlist server=/eff.org/127.0.0.1#5335 ipset=/eff.org/gfwlist -server=/asto.re/127.0.0.1#5335 -ipset=/asto.re/gfwlist -server=/fasttext.cc/127.0.0.1#5335 -ipset=/fasttext.cc/gfwlist -server=/cern.ch/127.0.0.1#5335 -ipset=/cern.ch/gfwlist +server=/faceboom.com/127.0.0.1#5335 +ipset=/faceboom.com/gfwlist +server=/cartoonregistry.com/127.0.0.1#5335 +ipset=/cartoonregistry.com/gfwlist server=/nintendo.ru/127.0.0.1#5335 ipset=/nintendo.ru/gfwlist -server=/beatscollection2014.com/127.0.0.1#5335 -ipset=/beatscollection2014.com/gfwlist -server=/microsoftdiplomados.com/127.0.0.1#5335 -ipset=/microsoftdiplomados.com/gfwlist server=/makebettercode.com/127.0.0.1#5335 ipset=/makebettercode.com/gfwlist server=/veet.se/127.0.0.1#5335 ipset=/veet.se/gfwlist -server=/literatumonline.com/127.0.0.1#5335 -ipset=/literatumonline.com/gfwlist -server=/facebookpaper.com/127.0.0.1#5335 -ipset=/facebookpaper.com/gfwlist -server=/visa.com.tw/127.0.0.1#5335 -ipset=/visa.com.tw/gfwlist -server=/apple.si/127.0.0.1#5335 -ipset=/apple.si/gfwlist -server=/callersbane.com/127.0.0.1#5335 -ipset=/callersbane.com/gfwlist +server=/fox6now.com/127.0.0.1#5335 +ipset=/fox6now.com/gfwlist +server=/archivx.to/127.0.0.1#5335 +ipset=/archivx.to/gfwlist +server=/thegayoffice.com/127.0.0.1#5335 +ipset=/thegayoffice.com/gfwlist +server=/aaagradeheadphones.com/127.0.0.1#5335 +ipset=/aaagradeheadphones.com/gfwlist +server=/discordmerch.com/127.0.0.1#5335 +ipset=/discordmerch.com/gfwlist server=/blogspot.kr/127.0.0.1#5335 ipset=/blogspot.kr/gfwlist -server=/blogspot.mx/127.0.0.1#5335 -ipset=/blogspot.mx/gfwlist +server=/truyenhentai.xyz/127.0.0.1#5335 +ipset=/truyenhentai.xyz/gfwlist server=/vk.cc/127.0.0.1#5335 ipset=/vk.cc/gfwlist +server=/dailyporn.club/127.0.0.1#5335 +ipset=/dailyporn.club/gfwlist server=/braeburncapital.com/127.0.0.1#5335 ipset=/braeburncapital.com/gfwlist server=/fbrell.com/127.0.0.1#5335 ipset=/fbrell.com/gfwlist -server=/shazam.com/127.0.0.1#5335 -ipset=/shazam.com/gfwlist -server=/paypal-forward.com/127.0.0.1#5335 -ipset=/paypal-forward.com/gfwlist +server=/amateurpornsexvideos.com/127.0.0.1#5335 +ipset=/amateurpornsexvideos.com/gfwlist server=/blogspot.se/127.0.0.1#5335 ipset=/blogspot.se/gfwlist -server=/xn--6eup7j.com/127.0.0.1#5335 -ipset=/xn--6eup7j.com/gfwlist server=/uun93.com/127.0.0.1#5335 ipset=/uun93.com/gfwlist server=/zaobao.com/127.0.0.1#5335 ipset=/zaobao.com/gfwlist server=/buyoculus.com/127.0.0.1#5335 ipset=/buyoculus.com/gfwlist -server=/microsoftsilverlight.net/127.0.0.1#5335 -ipset=/microsoftsilverlight.net/gfwlist server=/bmwstep.com/127.0.0.1#5335 ipset=/bmwstep.com/gfwlist -server=/vfsco.no/127.0.0.1#5335 -ipset=/vfsco.no/gfwlist -server=/digitalpack.com/127.0.0.1#5335 -ipset=/digitalpack.com/gfwlist -server=/stackoverflowbusiness.com/127.0.0.1#5335 -ipset=/stackoverflowbusiness.com/gfwlist -server=/finish.co.kr/127.0.0.1#5335 -ipset=/finish.co.kr/gfwlist -server=/kernel.org/127.0.0.1#5335 -ipset=/kernel.org/gfwlist -server=/buybeatsheadphonesbydre.com/127.0.0.1#5335 -ipset=/buybeatsheadphonesbydre.com/gfwlist +server=/greatretroporn.com/127.0.0.1#5335 +ipset=/greatretroporn.com/gfwlist +server=/bravotube.net/127.0.0.1#5335 +ipset=/bravotube.net/gfwlist +server=/hanime.me/127.0.0.1#5335 +ipset=/hanime.me/gfwlist server=/jobmarket.com.hk/127.0.0.1#5335 ipset=/jobmarket.com.hk/gfwlist server=/applefruity.com/127.0.0.1#5335 ipset=/applefruity.com/gfwlist -server=/kickshatchannel.com/127.0.0.1#5335 -ipset=/kickshatchannel.com/gfwlist -server=/nurofen.fr/127.0.0.1#5335 -ipset=/nurofen.fr/gfwlist -server=/theclub.com.hk/127.0.0.1#5335 -ipset=/theclub.com.hk/gfwlist -server=/pccw.com/127.0.0.1#5335 -ipset=/pccw.com/gfwlist +server=/visa.hu/127.0.0.1#5335 +ipset=/visa.hu/gfwlist +server=/videoskaseros.com/127.0.0.1#5335 +ipset=/videoskaseros.com/gfwlist server=/paypalcommunity.net/127.0.0.1#5335 ipset=/paypalcommunity.net/gfwlist server=/paypal-viewpoints.net/127.0.0.1#5335 ipset=/paypal-viewpoints.net/gfwlist -server=/myicloud.net/127.0.0.1#5335 -ipset=/myicloud.net/gfwlist -server=/pinimg.com/127.0.0.1#5335 -ipset=/pinimg.com/gfwlist -server=/visa.co.in/127.0.0.1#5335 -ipset=/visa.co.in/gfwlist server=/newdrediscount.com/127.0.0.1#5335 ipset=/newdrediscount.com/gfwlist -server=/vimeobusiness.com/127.0.0.1#5335 -ipset=/vimeobusiness.com/gfwlist -server=/iphone.rs/127.0.0.1#5335 -ipset=/iphone.rs/gfwlist +server=/pchomeonline.com.tw/127.0.0.1#5335 +ipset=/pchomeonline.com.tw/gfwlist server=/gog.com/127.0.0.1#5335 ipset=/gog.com/gfwlist -server=/bmwgroup.at/127.0.0.1#5335 -ipset=/bmwgroup.at/gfwlist server=/akamaietpmalwaretest.com/127.0.0.1#5335 ipset=/akamaietpmalwaretest.com/gfwlist -server=/bnetproduct-a.akamaihd.net/127.0.0.1#5335 -ipset=/bnetproduct-a.akamaihd.net/gfwlist -server=/12diasderegalosdeitunes.pe/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.pe/gfwlist +server=/volvotrucks.hu/127.0.0.1#5335 +ipset=/volvotrucks.hu/gfwlist server=/blogspot.cv/127.0.0.1#5335 ipset=/blogspot.cv/gfwlist -server=/ebay.pl/127.0.0.1#5335 -ipset=/ebay.pl/gfwlist -server=/blogspot.li/127.0.0.1#5335 -ipset=/blogspot.li/gfwlist -server=/quatrowireless.com/127.0.0.1#5335 -ipset=/quatrowireless.com/gfwlist +server=/festinhasbrasil.com/127.0.0.1#5335 +ipset=/festinhasbrasil.com/gfwlist server=/miniso.ua/127.0.0.1#5335 ipset=/miniso.ua/gfwlist server=/adidas.co.uk/127.0.0.1#5335 ipset=/adidas.co.uk/gfwlist server=/instangram.com/127.0.0.1#5335 ipset=/instangram.com/gfwlist -server=/acheter-followers-instagram.com/127.0.0.1#5335 -ipset=/acheter-followers-instagram.com/gfwlist -server=/steampowered.com/127.0.0.1#5335 -ipset=/steampowered.com/gfwlist -server=/dfp6rglgjqszk.cloudfront.net/127.0.0.1#5335 -ipset=/dfp6rglgjqszk.cloudfront.net/gfwlist -server=/vod-hls-uk-live.akamaized.net/127.0.0.1#5335 -ipset=/vod-hls-uk-live.akamaized.net/gfwlist +server=/bestpornsites.guide/127.0.0.1#5335 +ipset=/bestpornsites.guide/gfwlist +server=/internet.org/127.0.0.1#5335 +ipset=/internet.org/gfwlist +server=/besthandjobporn.com/127.0.0.1#5335 +ipset=/besthandjobporn.com/gfwlist +server=/ikea.sa/127.0.0.1#5335 +ipset=/ikea.sa/gfwlist server=/housing.com/127.0.0.1#5335 ipset=/housing.com/gfwlist -server=/bmw-motorrad.co.nz/127.0.0.1#5335 -ipset=/bmw-motorrad.co.nz/gfwlist +server=/nudebeachpussy.com/127.0.0.1#5335 +ipset=/nudebeachpussy.com/gfwlist server=/intel.bh/127.0.0.1#5335 ipset=/intel.bh/gfwlist server=/microsoft.cat/127.0.0.1#5335 ipset=/microsoft.cat/gfwlist -server=/applecarbon.com/127.0.0.1#5335 -ipset=/applecarbon.com/gfwlist server=/pvue1.com/127.0.0.1#5335 ipset=/pvue1.com/gfwlist server=/thomsonreuters.co.nz/127.0.0.1#5335 ipset=/thomsonreuters.co.nz/gfwlist -server=/amazon.com.tr/127.0.0.1#5335 -ipset=/amazon.com.tr/gfwlist -server=/directvnow.com/127.0.0.1#5335 -ipset=/directvnow.com/gfwlist -server=/riotgames.jp/127.0.0.1#5335 -ipset=/riotgames.jp/gfwlist -server=/gordonmoore.com/127.0.0.1#5335 -ipset=/gordonmoore.com/gfwlist -server=/adobecreativityawards.com/127.0.0.1#5335 -ipset=/adobecreativityawards.com/gfwlist server=/ebay.in/127.0.0.1#5335 ipset=/ebay.in/gfwlist -server=/ebayjob.com/127.0.0.1#5335 -ipset=/ebayjob.com/gfwlist +server=/s8ds5gfm.xyz/127.0.0.1#5335 +ipset=/s8ds5gfm.xyz/gfwlist server=/minimontroyal.ca/127.0.0.1#5335 ipset=/minimontroyal.ca/gfwlist server=/usvimosquitoproject.com/127.0.0.1#5335 @@ -8620,36 +7132,28 @@ server=/firestonedrivestore.com/127.0.0.1#5335 ipset=/firestonedrivestore.com/gfwlist server=/miniso-np.com/127.0.0.1#5335 ipset=/miniso-np.com/gfwlist -server=/viacomcbspressexpress.com/127.0.0.1#5335 -ipset=/viacomcbspressexpress.com/gfwlist -server=/beats1.cc/127.0.0.1#5335 -ipset=/beats1.cc/gfwlist +server=/xxxv.mobi/127.0.0.1#5335 +ipset=/xxxv.mobi/gfwlist server=/enteentegeh.de/127.0.0.1#5335 ipset=/enteentegeh.de/gfwlist -server=/foxsmallbusinesscenter.org/127.0.0.1#5335 -ipset=/foxsmallbusinesscenter.org/gfwlist -server=/swoo.sh/127.0.0.1#5335 -ipset=/swoo.sh/gfwlist +server=/homefuckingmovies.com/127.0.0.1#5335 +ipset=/homefuckingmovies.com/gfwlist server=/casquebeatsenligne.com/127.0.0.1#5335 ipset=/casquebeatsenligne.com/gfwlist -server=/desertbmw.com/127.0.0.1#5335 -ipset=/desertbmw.com/gfwlist -server=/voatibetanenglish.com/127.0.0.1#5335 -ipset=/voatibetanenglish.com/gfwlist -server=/imagineecommerce.com/127.0.0.1#5335 -ipset=/imagineecommerce.com/gfwlist -server=/epochtime.com/127.0.0.1#5335 -ipset=/epochtime.com/gfwlist +server=/playcover.io/127.0.0.1#5335 +ipset=/playcover.io/gfwlist +server=/battlebreakers.com/127.0.0.1#5335 +ipset=/battlebreakers.com/gfwlist +server=/pornos.live/127.0.0.1#5335 +ipset=/pornos.live/gfwlist +server=/vrsexgames.biz/127.0.0.1#5335 +ipset=/vrsexgames.biz/gfwlist server=/onenote.net/127.0.0.1#5335 ipset=/onenote.net/gfwlist -server=/cnix-gov-cn.com/127.0.0.1#5335 -ipset=/cnix-gov-cn.com/gfwlist -server=/ebaycommercenetwork.com/127.0.0.1#5335 -ipset=/ebaycommercenetwork.com/gfwlist -server=/managedmeetingrooms.com/127.0.0.1#5335 -ipset=/managedmeetingrooms.com/gfwlist -server=/ipod.eu/127.0.0.1#5335 -ipset=/ipod.eu/gfwlist +server=/oldhornymilfs.com/127.0.0.1#5335 +ipset=/oldhornymilfs.com/gfwlist +server=/ok.xxx/127.0.0.1#5335 +ipset=/ok.xxx/gfwlist server=/paypal-login.us/127.0.0.1#5335 ipset=/paypal-login.us/gfwlist server=/bing.com/127.0.0.1#5335 @@ -8658,160 +7162,130 @@ server=/desktopmovies.org/127.0.0.1#5335 ipset=/desktopmovies.org/gfwlist server=/facebookcredits.info/127.0.0.1#5335 ipset=/facebookcredits.info/gfwlist -server=/xandr.com/127.0.0.1#5335 -ipset=/xandr.com/gfwlist server=/nab.com.au/127.0.0.1#5335 ipset=/nab.com.au/gfwlist -server=/mybmw.com/127.0.0.1#5335 -ipset=/mybmw.com/gfwlist server=/applestore.me/127.0.0.1#5335 ipset=/applestore.me/gfwlist -server=/drebeats-singaporecheap.com/127.0.0.1#5335 -ipset=/drebeats-singaporecheap.com/gfwlist +server=/gravatar.com/127.0.0.1#5335 +ipset=/gravatar.com/gfwlist server=/farfetch.com/127.0.0.1#5335 ipset=/farfetch.com/gfwlist -server=/nvidia.tw/127.0.0.1#5335 -ipset=/nvidia.tw/gfwlist +server=/giantessbooru.com/127.0.0.1#5335 +ipset=/giantessbooru.com/gfwlist server=/920share.com/127.0.0.1#5335 ipset=/920share.com/gfwlist server=/intel.co.jp/127.0.0.1#5335 ipset=/intel.co.jp/gfwlist -server=/api-extractor.com/127.0.0.1#5335 -ipset=/api-extractor.com/gfwlist -server=/guardianproject.info/127.0.0.1#5335 -ipset=/guardianproject.info/gfwlist -server=/azuredatabricks.net/127.0.0.1#5335 -ipset=/azuredatabricks.net/gfwlist -server=/firesidegatherings.com/127.0.0.1#5335 -ipset=/firesidegatherings.com/gfwlist +server=/persianepochtimes.com/127.0.0.1#5335 +ipset=/persianepochtimes.com/gfwlist +server=/ync.ne.jp/127.0.0.1#5335 +ipset=/ync.ne.jp/gfwlist server=/mybestbuyclaims.com/127.0.0.1#5335 ipset=/mybestbuyclaims.com/gfwlist server=/gsrc.io/127.0.0.1#5335 ipset=/gsrc.io/gfwlist -server=/appdynamics.jp/127.0.0.1#5335 -ipset=/appdynamics.jp/gfwlist -server=/zee5.in/127.0.0.1#5335 -ipset=/zee5.in/gfwlist -server=/bmw-iraq.com/127.0.0.1#5335 -ipset=/bmw-iraq.com/gfwlist +server=/paypalnetwork.net/127.0.0.1#5335 +ipset=/paypalnetwork.net/gfwlist server=/intel.ng/127.0.0.1#5335 ipset=/intel.ng/gfwlist -server=/azure-dns.net/127.0.0.1#5335 -ipset=/azure-dns.net/gfwlist -server=/youtubego.com.br/127.0.0.1#5335 -ipset=/youtubego.com.br/gfwlist -server=/geforce.co.uk/127.0.0.1#5335 -ipset=/geforce.co.uk/gfwlist +server=/powerbi.com/127.0.0.1#5335 +ipset=/powerbi.com/gfwlist server=/httpfacebook.com/127.0.0.1#5335 ipset=/httpfacebook.com/gfwlist -server=/visa.co.uk/127.0.0.1#5335 -ipset=/visa.co.uk/gfwlist server=/beatsbydresale-uk.com/127.0.0.1#5335 ipset=/beatsbydresale-uk.com/gfwlist -server=/iphone.com.au/127.0.0.1#5335 -ipset=/iphone.com.au/gfwlist +server=/lolita.bet/127.0.0.1#5335 +ipset=/lolita.bet/gfwlist server=/applfe.com/127.0.0.1#5335 ipset=/applfe.com/gfwlist server=/bmw.com.kh/127.0.0.1#5335 ipset=/bmw.com.kh/gfwlist server=/jsdelivr.net/127.0.0.1#5335 ipset=/jsdelivr.net/gfwlist -server=/ubereats.com/127.0.0.1#5335 -ipset=/ubereats.com/gfwlist -server=/facebookporn.net/127.0.0.1#5335 -ipset=/facebookporn.net/gfwlist -server=/smartexpos.com/127.0.0.1#5335 -ipset=/smartexpos.com/gfwlist +server=/pornmovies2.me/127.0.0.1#5335 +ipset=/pornmovies2.me/gfwlist server=/youtube.com.ve/127.0.0.1#5335 ipset=/youtube.com.ve/gfwlist -server=/yahoo.com.my/127.0.0.1#5335 -ipset=/yahoo.com.my/gfwlist +server=/a-teenz.com/127.0.0.1#5335 +ipset=/a-teenz.com/gfwlist server=/whatsapp-plus.me/127.0.0.1#5335 ipset=/whatsapp-plus.me/gfwlist server=/nikeshoes-store.com/127.0.0.1#5335 ipset=/nikeshoes-store.com/gfwlist -server=/volvogroup.pl/127.0.0.1#5335 -ipset=/volvogroup.pl/gfwlist -server=/amazon.jobs/127.0.0.1#5335 -ipset=/amazon.jobs/gfwlist -server=/silverchair-cdn.com/127.0.0.1#5335 -ipset=/silverchair-cdn.com/gfwlist -server=/intc.com/127.0.0.1#5335 -ipset=/intc.com/gfwlist +server=/scat-japan.com/127.0.0.1#5335 +ipset=/scat-japan.com/gfwlist +server=/nvidia.ro/127.0.0.1#5335 +ipset=/nvidia.ro/gfwlist server=/saffrontech.com/127.0.0.1#5335 ipset=/saffrontech.com/gfwlist server=/appleworldwidedeveloper.sc.omtrdc.net/127.0.0.1#5335 ipset=/appleworldwidedeveloper.sc.omtrdc.net/gfwlist -server=/addthis.com/127.0.0.1#5335 -ipset=/addthis.com/gfwlist -server=/messengerdevelopers.com/127.0.0.1#5335 -ipset=/messengerdevelopers.com/gfwlist +server=/puretaboo.com/127.0.0.1#5335 +ipset=/puretaboo.com/gfwlist +server=/bustyarianna.com/127.0.0.1#5335 +ipset=/bustyarianna.com/gfwlist server=/freindfeed.com/127.0.0.1#5335 ipset=/freindfeed.com/gfwlist -server=/kuke.com/127.0.0.1#5335 -ipset=/kuke.com/gfwlist -server=/accessfacebookfromschool.com/127.0.0.1#5335 -ipset=/accessfacebookfromschool.com/gfwlist -server=/stackmod.blog/127.0.0.1#5335 -ipset=/stackmod.blog/gfwlist -server=/fbcdn.net/127.0.0.1#5335 -ipset=/fbcdn.net/gfwlist +server=/avstar1.com/127.0.0.1#5335 +ipset=/avstar1.com/gfwlist +server=/ieee-npss.org/127.0.0.1#5335 +ipset=/ieee-npss.org/gfwlist +server=/intel.co.uk/127.0.0.1#5335 +ipset=/intel.co.uk/gfwlist +server=/intel.ec/127.0.0.1#5335 +ipset=/intel.ec/gfwlist +server=/pornocd.ru/127.0.0.1#5335 +ipset=/pornocd.ru/gfwlist server=/pokemonwifi.net/127.0.0.1#5335 ipset=/pokemonwifi.net/gfwlist server=/blogspot.com.mt/127.0.0.1#5335 ipset=/blogspot.com.mt/gfwlist -server=/edx-cdn.org/127.0.0.1#5335 -ipset=/edx-cdn.org/gfwlist +server=/hentairules.net/127.0.0.1#5335 +ipset=/hentairules.net/gfwlist server=/duckduckgo.mx/127.0.0.1#5335 ipset=/duckduckgo.mx/gfwlist server=/hp-printing.com/127.0.0.1#5335 ipset=/hp-printing.com/gfwlist server=/da-files.com/127.0.0.1#5335 ipset=/da-files.com/gfwlist -server=/beatsbydrdre4sale.com/127.0.0.1#5335 -ipset=/beatsbydrdre4sale.com/gfwlist -server=/calgon.pt/127.0.0.1#5335 -ipset=/calgon.pt/gfwlist server=/ieee-ras.org/127.0.0.1#5335 ipset=/ieee-ras.org/gfwlist server=/canada-beatsbydre.com/127.0.0.1#5335 ipset=/canada-beatsbydre.com/gfwlist -server=/ilongman.com/127.0.0.1#5335 -ipset=/ilongman.com/gfwlist +server=/ftadviser.com/127.0.0.1#5335 +ipset=/ftadviser.com/gfwlist +server=/mini.sk/127.0.0.1#5335 +ipset=/mini.sk/gfwlist server=/velocloud.com/127.0.0.1#5335 ipset=/velocloud.com/gfwlist server=/donttrack.us/127.0.0.1#5335 ipset=/donttrack.us/gfwlist -server=/coreoptics.net/127.0.0.1#5335 -ipset=/coreoptics.net/gfwlist -server=/xn--3et96bj49ahpq.com/127.0.0.1#5335 -ipset=/xn--3et96bj49ahpq.com/gfwlist server=/microsoftlatamaitour.com/127.0.0.1#5335 ipset=/microsoftlatamaitour.com/gfwlist -server=/volvogroup.pe/127.0.0.1#5335 -ipset=/volvogroup.pe/gfwlist server=/bmwsfl.net/127.0.0.1#5335 ipset=/bmwsfl.net/gfwlist -server=/headphones-dre.com/127.0.0.1#5335 -ipset=/headphones-dre.com/gfwlist server=/foxsports.com.ec/127.0.0.1#5335 ipset=/foxsports.com.ec/gfwlist server=/officialheadphone.com/127.0.0.1#5335 ipset=/officialheadphone.com/gfwlist +server=/older.tube/127.0.0.1#5335 +ipset=/older.tube/gfwlist server=/52hyse.com/127.0.0.1#5335 ipset=/52hyse.com/gfwlist -server=/bloommicroventures.com/127.0.0.1#5335 -ipset=/bloommicroventures.com/gfwlist +server=/youtube.dk/127.0.0.1#5335 +ipset=/youtube.dk/gfwlist server=/azure-sphere.com/127.0.0.1#5335 ipset=/azure-sphere.com/gfwlist -server=/ebay.vn/127.0.0.1#5335 -ipset=/ebay.vn/gfwlist +server=/twca.com.tw/127.0.0.1#5335 +ipset=/twca.com.tw/gfwlist +server=/hotporn.today/127.0.0.1#5335 +ipset=/hotporn.today/gfwlist server=/sony.com.co/127.0.0.1#5335 ipset=/sony.com.co/gfwlist server=/signalusers.org/127.0.0.1#5335 ipset=/signalusers.org/gfwlist -server=/ipadmini.com.lk/127.0.0.1#5335 -ipset=/ipadmini.com.lk/gfwlist +server=/sankei.jp/127.0.0.1#5335 +ipset=/sankei.jp/gfwlist server=/foxdoua.com/127.0.0.1#5335 ipset=/foxdoua.com/gfwlist server=/nicesshop.net/127.0.0.1#5335 @@ -8826,316 +7300,272 @@ server=/disneyjunior.com/127.0.0.1#5335 ipset=/disneyjunior.com/gfwlist server=/nikeshoeswon.com/127.0.0.1#5335 ipset=/nikeshoeswon.com/gfwlist -server=/ebayclassifiedsgroup.com/127.0.0.1#5335 -ipset=/ebayclassifiedsgroup.com/gfwlist -server=/bmw-motorrad.co.th/127.0.0.1#5335 -ipset=/bmw-motorrad.co.th/gfwlist -server=/garena.my/127.0.0.1#5335 -ipset=/garena.my/gfwlist +server=/cuckoldinterracialwife.com/127.0.0.1#5335 +ipset=/cuckoldinterracialwife.com/gfwlist server=/zeebioskop.com/127.0.0.1#5335 ipset=/zeebioskop.com/gfwlist server=/foxon.com/127.0.0.1#5335 ipset=/foxon.com/gfwlist -server=/instagramsepeti.com/127.0.0.1#5335 -ipset=/instagramsepeti.com/gfwlist -server=/globalsign.com/127.0.0.1#5335 -ipset=/globalsign.com/gfwlist -server=/iphone.cm/127.0.0.1#5335 -ipset=/iphone.cm/gfwlist +server=/interactivesex.xxx/127.0.0.1#5335 +ipset=/interactivesex.xxx/gfwlist server=/durex.com.pe/127.0.0.1#5335 ipset=/durex.com.pe/gfwlist -server=/gettyimages.in/127.0.0.1#5335 -ipset=/gettyimages.in/gfwlist +server=/manporn.xxx/127.0.0.1#5335 +ipset=/manporn.xxx/gfwlist +server=/bustyinescudna.com/127.0.0.1#5335 +ipset=/bustyinescudna.com/gfwlist +server=/youtubeeducation.com/127.0.0.1#5335 +ipset=/youtubeeducation.com/gfwlist server=/google.at/127.0.0.1#5335 ipset=/google.at/gfwlist server=/windows8.hk/127.0.0.1#5335 ipset=/windows8.hk/gfwlist +server=/amsterdamluxescort.com/127.0.0.1#5335 +ipset=/amsterdamluxescort.com/gfwlist server=/youtubefanfest.com/127.0.0.1#5335 ipset=/youtubefanfest.com/gfwlist -server=/ukwhoswho.com/127.0.0.1#5335 -ipset=/ukwhoswho.com/gfwlist -server=/iam.soy/127.0.0.1#5335 -ipset=/iam.soy/gfwlist server=/bloomberglabs.com/127.0.0.1#5335 ipset=/bloomberglabs.com/gfwlist -server=/beats4salecheap.com/127.0.0.1#5335 -ipset=/beats4salecheap.com/gfwlist -server=/applecare.wang/127.0.0.1#5335 -ipset=/applecare.wang/gfwlist +server=/visadigitalconcierge.com/127.0.0.1#5335 +ipset=/visadigitalconcierge.com/gfwlist +server=/bestbuy-int.com/127.0.0.1#5335 +ipset=/bestbuy-int.com/gfwlist server=/pinterest.co.at/127.0.0.1#5335 ipset=/pinterest.co.at/gfwlist -server=/wa.me/127.0.0.1#5335 -ipset=/wa.me/gfwlist -server=/needforspeedtakedown.com/127.0.0.1#5335 -ipset=/needforspeedtakedown.com/gfwlist -server=/doom9.org/127.0.0.1#5335 -ipset=/doom9.org/gfwlist +server=/hpinkjet.com/127.0.0.1#5335 +ipset=/hpinkjet.com/gfwlist server=/xplr.co/127.0.0.1#5335 ipset=/xplr.co/gfwlist server=/directvoffercodes.com/127.0.0.1#5335 ipset=/directvoffercodes.com/gfwlist -server=/publishproxy.com/127.0.0.1#5335 -ipset=/publishproxy.com/gfwlist server=/quip-cdn.com/127.0.0.1#5335 ipset=/quip-cdn.com/gfwlist -server=/s-xoom.com/127.0.0.1#5335 -ipset=/s-xoom.com/gfwlist +server=/beth.games/127.0.0.1#5335 +ipset=/beth.games/gfwlist +server=/xn--r8jwklh769hk43amcfoyl3z3a.com/127.0.0.1#5335 +ipset=/xn--r8jwklh769hk43amcfoyl3z3a.com/gfwlist +server=/ipfs.eternum.io/127.0.0.1#5335 +ipset=/ipfs.eternum.io/gfwlist +server=/pornhail.com/127.0.0.1#5335 +ipset=/pornhail.com/gfwlist server=/xbx.lv/127.0.0.1#5335 ipset=/xbx.lv/gfwlist -server=/gscanada.info/127.0.0.1#5335 -ipset=/gscanada.info/gfwlist +server=/faceobook.com/127.0.0.1#5335 +ipset=/faceobook.com/gfwlist server=/newsxtend.com.au/127.0.0.1#5335 ipset=/newsxtend.com.au/gfwlist -server=/eamythic.com/127.0.0.1#5335 -ipset=/eamythic.com/gfwlist -server=/hpwellnesscentral.com/127.0.0.1#5335 -ipset=/hpwellnesscentral.com/gfwlist -server=/myradio.com.hk/127.0.0.1#5335 -ipset=/myradio.com.hk/gfwlist -server=/cbsistatic.com/127.0.0.1#5335 -ipset=/cbsistatic.com/gfwlist +server=/brave.com/127.0.0.1#5335 +ipset=/brave.com/gfwlist +server=/friendfeed-media.com/127.0.0.1#5335 +ipset=/friendfeed-media.com/gfwlist +server=/ikea.fr/127.0.0.1#5335 +ipset=/ikea.fr/gfwlist +server=/whichav.video/127.0.0.1#5335 +ipset=/whichav.video/gfwlist server=/beatssbyaustralia.com/127.0.0.1#5335 ipset=/beatssbyaustralia.com/gfwlist -server=/wiifitu.com/127.0.0.1#5335 -ipset=/wiifitu.com/gfwlist +server=/xnxx3.com/127.0.0.1#5335 +ipset=/xnxx3.com/gfwlist +server=/qualcomm.de/127.0.0.1#5335 +ipset=/qualcomm.de/gfwlist server=/managed-pki.ch/127.0.0.1#5335 ipset=/managed-pki.ch/gfwlist -server=/futunited.com/127.0.0.1#5335 -ipset=/futunited.com/gfwlist server=/newsfeed.com/127.0.0.1#5335 ipset=/newsfeed.com/gfwlist -server=/easportsactive.com/127.0.0.1#5335 -ipset=/easportsactive.com/gfwlist -server=/durex-shop.ch/127.0.0.1#5335 -ipset=/durex-shop.ch/gfwlist +server=/xxxpornozinho.blog.br/127.0.0.1#5335 +ipset=/xxxpornozinho.blog.br/gfwlist +server=/freeadultgames.tv/127.0.0.1#5335 +ipset=/freeadultgames.tv/gfwlist server=/onbeatsbydresale.com/127.0.0.1#5335 ipset=/onbeatsbydresale.com/gfwlist -server=/yahoo.lu/127.0.0.1#5335 -ipset=/yahoo.lu/gfwlist +server=/nikkei4946.com/127.0.0.1#5335 +ipset=/nikkei4946.com/gfwlist server=/firestonecomercial.com.ar/127.0.0.1#5335 ipset=/firestonecomercial.com.ar/gfwlist -server=/myfoxtampabay.com/127.0.0.1#5335 -ipset=/myfoxtampabay.com/gfwlist -server=/microsoftnews.com/127.0.0.1#5335 -ipset=/microsoftnews.com/gfwlist -server=/foxcanvasroom.com/127.0.0.1#5335 -ipset=/foxcanvasroom.com/gfwlist -server=/iphonecases100.com/127.0.0.1#5335 -ipset=/iphonecases100.com/gfwlist -server=/bmw-pma.com.sg/127.0.0.1#5335 -ipset=/bmw-pma.com.sg/gfwlist -server=/akamaa.com/127.0.0.1#5335 -ipset=/akamaa.com/gfwlist +server=/telekom.com/127.0.0.1#5335 +ipset=/telekom.com/gfwlist +server=/twitterflightschool.com/127.0.0.1#5335 +ipset=/twitterflightschool.com/gfwlist +server=/certificat2.com/127.0.0.1#5335 +ipset=/certificat2.com/gfwlist +server=/geilegratisporno.com/127.0.0.1#5335 +ipset=/geilegratisporno.com/gfwlist server=/amazon.de/127.0.0.1#5335 ipset=/amazon.de/gfwlist -server=/swiftfinancial.com/127.0.0.1#5335 -ipset=/swiftfinancial.com/gfwlist -server=/zb.app/127.0.0.1#5335 -ipset=/zb.app/gfwlist +server=/faceboak.com/127.0.0.1#5335 +ipset=/faceboak.com/gfwlist server=/limelight.com/127.0.0.1#5335 ipset=/limelight.com/gfwlist -server=/applefinalcutproworld.net/127.0.0.1#5335 -ipset=/applefinalcutproworld.net/gfwlist -server=/afp.com/127.0.0.1#5335 -ipset=/afp.com/gfwlist server=/nikefirm.com/127.0.0.1#5335 ipset=/nikefirm.com/gfwlist -server=/bmw-werk-berlin.de/127.0.0.1#5335 -ipset=/bmw-werk-berlin.de/gfwlist -server=/zb.live/127.0.0.1#5335 -ipset=/zb.live/gfwlist +server=/airsextube.com/127.0.0.1#5335 +ipset=/airsextube.com/gfwlist server=/appspot.com/127.0.0.1#5335 ipset=/appspot.com/gfwlist -server=/get.app/127.0.0.1#5335 -ipset=/get.app/gfwlist -server=/xboxgamepass.com/127.0.0.1#5335 -ipset=/xboxgamepass.com/gfwlist +server=/pornxvideos.tv/127.0.0.1#5335 +ipset=/pornxvideos.tv/gfwlist +server=/videos6.com/127.0.0.1#5335 +ipset=/videos6.com/gfwlist +server=/748av.com/127.0.0.1#5335 +ipset=/748av.com/gfwlist server=/disney.sg/127.0.0.1#5335 ipset=/disney.sg/gfwlist -server=/adidas.it/127.0.0.1#5335 -ipset=/adidas.it/gfwlist +server=/intellinuxwireless.net/127.0.0.1#5335 +ipset=/intellinuxwireless.net/gfwlist server=/1drv.ms/127.0.0.1#5335 ipset=/1drv.ms/gfwlist -server=/beatsdredreheadphones.com/127.0.0.1#5335 -ipset=/beatsdredreheadphones.com/gfwlist -server=/bookonsky.net/127.0.0.1#5335 -ipset=/bookonsky.net/gfwlist -server=/coursera-for-business.org/127.0.0.1#5335 -ipset=/coursera-for-business.org/gfwlist -server=/bridgestonela.com/127.0.0.1#5335 -ipset=/bridgestonela.com/gfwlist -server=/alphabet.com.lv/127.0.0.1#5335 -ipset=/alphabet.com.lv/gfwlist +server=/h-top.supertop-100.com/127.0.0.1#5335 +ipset=/h-top.supertop-100.com/gfwlist server=/typography.com/127.0.0.1#5335 ipset=/typography.com/gfwlist +server=/peepholecam.com/127.0.0.1#5335 +ipset=/peepholecam.com/gfwlist server=/atandt.com/127.0.0.1#5335 ipset=/atandt.com/gfwlist server=/ieee-isto.org/127.0.0.1#5335 ipset=/ieee-isto.org/gfwlist -server=/scholar.google.hr/127.0.0.1#5335 -ipset=/scholar.google.hr/gfwlist -server=/beatsbydregot.com/127.0.0.1#5335 -ipset=/beatsbydregot.com/gfwlist server=/intellinuxgraphics.com/127.0.0.1#5335 ipset=/intellinuxgraphics.com/gfwlist -server=/nikesoccercleats.com/127.0.0.1#5335 -ipset=/nikesoccercleats.com/gfwlist +server=/ikea.com.tr/127.0.0.1#5335 +ipset=/ikea.com.tr/gfwlist +server=/findsav.com/127.0.0.1#5335 +ipset=/findsav.com/gfwlist +server=/alotporn.com/127.0.0.1#5335 +ipset=/alotporn.com/gfwlist server=/bmw-museum.net/127.0.0.1#5335 ipset=/bmw-museum.net/gfwlist -server=/mucinex.co.nz/127.0.0.1#5335 -ipset=/mucinex.co.nz/gfwlist server=/alphera.es/127.0.0.1#5335 ipset=/alphera.es/gfwlist -server=/xingrz.me/127.0.0.1#5335 -ipset=/xingrz.me/gfwlist server=/beatsbydrecybermondaydeals2013.net/127.0.0.1#5335 ipset=/beatsbydrecybermondaydeals2013.net/gfwlist server=/bloombergtax.com/127.0.0.1#5335 ipset=/bloombergtax.com/gfwlist -server=/cash2.com/127.0.0.1#5335 -ipset=/cash2.com/gfwlist -server=/unrealtournament.com/127.0.0.1#5335 -ipset=/unrealtournament.com/gfwlist -server=/travelex.de/127.0.0.1#5335 -ipset=/travelex.de/gfwlist +server=/sexdollsshow.com/127.0.0.1#5335 +ipset=/sexdollsshow.com/gfwlist +server=/jav4you.org/127.0.0.1#5335 +ipset=/jav4you.org/gfwlist +server=/panoramio.com/127.0.0.1#5335 +ipset=/panoramio.com/gfwlist +server=/fasttrackreadysupport.com/127.0.0.1#5335 +ipset=/fasttrackreadysupport.com/gfwlist server=/socrec.org/127.0.0.1#5335 ipset=/socrec.org/gfwlist server=/bmwondemandusa.com/127.0.0.1#5335 ipset=/bmwondemandusa.com/gfwlist -server=/jwplayer.com/127.0.0.1#5335 -ipset=/jwplayer.com/gfwlist +server=/reconjet.com/127.0.0.1#5335 +ipset=/reconjet.com/gfwlist server=/mini-connected.no/127.0.0.1#5335 ipset=/mini-connected.no/gfwlist -server=/xn--fiqs8sxootzz.cn/127.0.0.1#5335 -ipset=/xn--fiqs8sxootzz.cn/gfwlist -server=/casquebeatsdre2013.com/127.0.0.1#5335 -ipset=/casquebeatsdre2013.com/gfwlist +server=/ebay.com.my/127.0.0.1#5335 +ipset=/ebay.com.my/gfwlist server=/drdrebeats-chen.com/127.0.0.1#5335 ipset=/drdrebeats-chen.com/gfwlist -server=/iphone.net.gr/127.0.0.1#5335 -ipset=/iphone.net.gr/gfwlist +server=/hot-sex-photos.com/127.0.0.1#5335 +ipset=/hot-sex-photos.com/gfwlist server=/yahoo.tg/127.0.0.1#5335 ipset=/yahoo.tg/gfwlist -server=/phantomjs.org/127.0.0.1#5335 -ipset=/phantomjs.org/gfwlist -server=/verisign.mobi/127.0.0.1#5335 -ipset=/verisign.mobi/gfwlist -server=/intel.com/127.0.0.1#5335 -ipset=/intel.com/gfwlist -server=/bmw-nigeria.com/127.0.0.1#5335 -ipset=/bmw-nigeria.com/gfwlist -server=/applehongkong.com.hk/127.0.0.1#5335 -ipset=/applehongkong.com.hk/gfwlist -server=/visiontimes.fr/127.0.0.1#5335 -ipset=/visiontimes.fr/gfwlist -server=/imaginecup.pl/127.0.0.1#5335 -ipset=/imaginecup.pl/gfwlist -server=/ieee-into-focus.org/127.0.0.1#5335 -ipset=/ieee-into-focus.org/gfwlist +server=/fine-art-nude.org/127.0.0.1#5335 +ipset=/fine-art-nude.org/gfwlist +server=/gayroom.com/127.0.0.1#5335 +ipset=/gayroom.com/gfwlist +server=/fuckingawesome.com/127.0.0.1#5335 +ipset=/fuckingawesome.com/gfwlist +server=/darknaija.com/127.0.0.1#5335 +ipset=/darknaija.com/gfwlist +server=/fappeningbook.com/127.0.0.1#5335 +ipset=/fappeningbook.com/gfwlist +server=/gamboporn.com/127.0.0.1#5335 +ipset=/gamboporn.com/gfwlist server=/bmwwholesaleconnect.com/127.0.0.1#5335 ipset=/bmwwholesaleconnect.com/gfwlist -server=/beatsbydreexecutivesale.com/127.0.0.1#5335 -ipset=/beatsbydreexecutivesale.com/gfwlist -server=/akadns.com/127.0.0.1#5335 -ipset=/akadns.com/gfwlist -server=/googlemail.com/127.0.0.1#5335 -ipset=/googlemail.com/gfwlist +server=/nyaa.net/127.0.0.1#5335 +ipset=/nyaa.net/gfwlist +server=/b3boos.com/127.0.0.1#5335 +ipset=/b3boos.com/gfwlist +server=/xvidios.blog/127.0.0.1#5335 +ipset=/xvidios.blog/gfwlist server=/akamaized.net/127.0.0.1#5335 ipset=/akamaized.net/gfwlist server=/spotifyforbrands.com/127.0.0.1#5335 ipset=/spotifyforbrands.com/gfwlist +server=/u9a9.com/127.0.0.1#5335 +ipset=/u9a9.com/gfwlist server=/elifesciences.org/127.0.0.1#5335 ipset=/elifesciences.org/gfwlist -server=/facebookappcenter.net/127.0.0.1#5335 -ipset=/facebookappcenter.net/gfwlist server=/volvobuses.no/127.0.0.1#5335 ipset=/volvobuses.no/gfwlist -server=/gitbook.com/127.0.0.1#5335 -ipset=/gitbook.com/gfwlist server=/nike-air-max.com/127.0.0.1#5335 ipset=/nike-air-max.com/gfwlist -server=/vfsco.cz/127.0.0.1#5335 -ipset=/vfsco.cz/gfwlist +server=/vod-abematv.akamaized.net/127.0.0.1#5335 +ipset=/vod-abematv.akamaized.net/gfwlist +server=/evropaelire.org/127.0.0.1#5335 +ipset=/evropaelire.org/gfwlist server=/sinchew.com.my/127.0.0.1#5335 ipset=/sinchew.com.my/gfwlist server=/ayudanintendo.com/127.0.0.1#5335 ipset=/ayudanintendo.com/gfwlist server=/omoplanet.com/127.0.0.1#5335 ipset=/omoplanet.com/gfwlist -server=/nvidia.com.mx/127.0.0.1#5335 -ipset=/nvidia.com.mx/gfwlist -server=/mastercard.com.cy/127.0.0.1#5335 -ipset=/mastercard.com.cy/gfwlist server=/sony.cl/127.0.0.1#5335 ipset=/sony.cl/gfwlist -server=/nlm.io/127.0.0.1#5335 -ipset=/nlm.io/gfwlist +server=/pikabu.monster/127.0.0.1#5335 +ipset=/pikabu.monster/gfwlist server=/nikkei.com/127.0.0.1#5335 ipset=/nikkei.com/gfwlist -server=/bmw.com/127.0.0.1#5335 -ipset=/bmw.com/gfwlist +server=/mature-amateur-sex.com/127.0.0.1#5335 +ipset=/mature-amateur-sex.com/gfwlist server=/mortein.com.pk/127.0.0.1#5335 ipset=/mortein.com.pk/gfwlist server=/bmwasia.com/127.0.0.1#5335 ipset=/bmwasia.com/gfwlist server=/appleaustralia.com/127.0.0.1#5335 ipset=/appleaustralia.com/gfwlist -server=/volvobuses.dk/127.0.0.1#5335 -ipset=/volvobuses.dk/gfwlist -server=/casquedrdrebeatssfr.com/127.0.0.1#5335 -ipset=/casquedrdrebeatssfr.com/gfwlist -server=/buyitnowshop.net/127.0.0.1#5335 -ipset=/buyitnowshop.net/gfwlist +server=/youngteenhomeporn.com/127.0.0.1#5335 +ipset=/youngteenhomeporn.com/gfwlist +server=/bmw-connecteddrive.lu/127.0.0.1#5335 +ipset=/bmw-connecteddrive.lu/gfwlist +server=/flirtmoms.com/127.0.0.1#5335 +ipset=/flirtmoms.com/gfwlist server=/my9nj.com/127.0.0.1#5335 ipset=/my9nj.com/gfwlist -server=/paypal-online.info/127.0.0.1#5335 -ipset=/paypal-online.info/gfwlist server=/nikeliuxiang.com/127.0.0.1#5335 ipset=/nikeliuxiang.com/gfwlist server=/mastercardadvisors.com/127.0.0.1#5335 ipset=/mastercardadvisors.com/gfwlist -server=/visa.gd/127.0.0.1#5335 -ipset=/visa.gd/gfwlist server=/scholar.google.no/127.0.0.1#5335 ipset=/scholar.google.no/gfwlist -server=/awscommandlineinterface.com/127.0.0.1#5335 -ipset=/awscommandlineinterface.com/gfwlist -server=/vpro.net/127.0.0.1#5335 -ipset=/vpro.net/gfwlist +server=/r18av.com/127.0.0.1#5335 +ipset=/r18av.com/gfwlist +server=/vanish.com.pe/127.0.0.1#5335 +ipset=/vanish.com.pe/gfwlist +server=/orgasm.com/127.0.0.1#5335 +ipset=/orgasm.com/gfwlist server=/youtube.ba/127.0.0.1#5335 ipset=/youtube.ba/gfwlist -server=/bmw.ma/127.0.0.1#5335 -ipset=/bmw.ma/gfwlist -server=/baxsound.com/127.0.0.1#5335 -ipset=/baxsound.com/gfwlist +server=/elpube-scat-movies.blogspot.com/127.0.0.1#5335 +ipset=/elpube-scat-movies.blogspot.com/gfwlist server=/hulutv.com/127.0.0.1#5335 ipset=/hulutv.com/gfwlist -server=/supremacy.net/127.0.0.1#5335 -ipset=/supremacy.net/gfwlist -server=/facebyook.com/127.0.0.1#5335 -ipset=/facebyook.com/gfwlist -server=/canon.de/127.0.0.1#5335 -ipset=/canon.de/gfwlist +server=/gnom-cham.com/127.0.0.1#5335 +ipset=/gnom-cham.com/gfwlist +server=/ibonedyourmom.com/127.0.0.1#5335 +ipset=/ibonedyourmom.com/gfwlist +server=/pornocarioca.com/127.0.0.1#5335 +ipset=/pornocarioca.com/gfwlist server=/addthisedge.com/127.0.0.1#5335 ipset=/addthisedge.com/gfwlist server=/pearsoned.co.nz/127.0.0.1#5335 ipset=/pearsoned.co.nz/gfwlist -server=/pearson.com.uy/127.0.0.1#5335 -ipset=/pearson.com.uy/gfwlist +server=/manga-mill.com/127.0.0.1#5335 +ipset=/manga-mill.com/gfwlist server=/nvidia.co.at/127.0.0.1#5335 ipset=/nvidia.co.at/gfwlist -server=/foxphiladelphia.com/127.0.0.1#5335 -ipset=/foxphiladelphia.com/gfwlist +server=/andysparis.com/127.0.0.1#5335 +ipset=/andysparis.com/gfwlist server=/alpherafs.my/127.0.0.1#5335 ipset=/alpherafs.my/gfwlist -server=/monsterbeatsnegozi.net/127.0.0.1#5335 -ipset=/monsterbeatsnegozi.net/gfwlist -server=/bmw-motorrad.com.ar/127.0.0.1#5335 -ipset=/bmw-motorrad.com.ar/gfwlist server=/imac.co/127.0.0.1#5335 ipset=/imac.co/gfwlist -server=/gtv.org/127.0.0.1#5335 -ipset=/gtv.org/gfwlist server=/icloud.si/127.0.0.1#5335 ipset=/icloud.si/gfwlist server=/redd.it/127.0.0.1#5335 @@ -9146,570 +7576,470 @@ server=/thesims.com/127.0.0.1#5335 ipset=/thesims.com/gfwlist server=/apple.pt/127.0.0.1#5335 ipset=/apple.pt/gfwlist -server=/blizzardgearstore.com/127.0.0.1#5335 -ipset=/blizzardgearstore.com/gfwlist +server=/netarabic.com/127.0.0.1#5335 +ipset=/netarabic.com/gfwlist server=/rootsigning.com/127.0.0.1#5335 ipset=/rootsigning.com/gfwlist +server=/lovesexbody.com/127.0.0.1#5335 +ipset=/lovesexbody.com/gfwlist server=/airmay.com/127.0.0.1#5335 ipset=/airmay.com/gfwlist -server=/thomsonreuters.co.jp/127.0.0.1#5335 -ipset=/thomsonreuters.co.jp/gfwlist -server=/shop.app/127.0.0.1#5335 -ipset=/shop.app/gfwlist -server=/mysql.com/127.0.0.1#5335 -ipset=/mysql.com/gfwlist -server=/kijji.ca/127.0.0.1#5335 -ipset=/kijji.ca/gfwlist -server=/imac.rs/127.0.0.1#5335 -ipset=/imac.rs/gfwlist -server=/ig.me/127.0.0.1#5335 -ipset=/ig.me/gfwlist -server=/2mdn.net/127.0.0.1#5335 -ipset=/2mdn.net/gfwlist +server=/avstar8.com/127.0.0.1#5335 +ipset=/avstar8.com/gfwlist +server=/firmaprofesional.com/127.0.0.1#5335 +ipset=/firmaprofesional.com/gfwlist +server=/arxiv.org/127.0.0.1#5335 +ipset=/arxiv.org/gfwlist +server=/arabianchicks.com/127.0.0.1#5335 +ipset=/arabianchicks.com/gfwlist server=/siege-amazon.com/127.0.0.1#5335 ipset=/siege-amazon.com/gfwlist server=/nixos.org/127.0.0.1#5335 ipset=/nixos.org/gfwlist server=/javhd3x.com/127.0.0.1#5335 ipset=/javhd3x.com/gfwlist -server=/travelex.com.tr/127.0.0.1#5335 -ipset=/travelex.com.tr/gfwlist -server=/microsoftlinc.com/127.0.0.1#5335 -ipset=/microsoftlinc.com/gfwlist +server=/pornotree.com/127.0.0.1#5335 +ipset=/pornotree.com/gfwlist +server=/1xbet.co.ke/127.0.0.1#5335 +ipset=/1xbet.co.ke/gfwlist server=/bmw.co.za/127.0.0.1#5335 ipset=/bmw.co.za/gfwlist -server=/youjizz.com/127.0.0.1#5335 -ipset=/youjizz.com/gfwlist -server=/nurofen.com.sg/127.0.0.1#5335 -ipset=/nurofen.com.sg/gfwlist -server=/infrapedia.com/127.0.0.1#5335 -ipset=/infrapedia.com/gfwlist -server=/apple.in/127.0.0.1#5335 -ipset=/apple.in/gfwlist +server=/khayannpyar.blogspot.com/127.0.0.1#5335 +ipset=/khayannpyar.blogspot.com/gfwlist +server=/ptt.cc/127.0.0.1#5335 +ipset=/ptt.cc/gfwlist server=/heroku.co/127.0.0.1#5335 ipset=/heroku.co/gfwlist -server=/bethesda.net/127.0.0.1#5335 -ipset=/bethesda.net/gfwlist -server=/realclearhealth.com/127.0.0.1#5335 -ipset=/realclearhealth.com/gfwlist +server=/da3dsoul.dev/127.0.0.1#5335 +ipset=/da3dsoul.dev/gfwlist server=/verisign.hk/127.0.0.1#5335 ipset=/verisign.hk/gfwlist server=/fbidb.io/127.0.0.1#5335 ipset=/fbidb.io/gfwlist -server=/a.91gay.me/127.0.0.1#5335 -ipset=/a.91gay.me/gfwlist +server=/cartoonscity.com/127.0.0.1#5335 +ipset=/cartoonscity.com/gfwlist +server=/vanish.se/127.0.0.1#5335 +ipset=/vanish.se/gfwlist +server=/faronics.kayako.com/127.0.0.1#5335 +ipset=/faronics.kayako.com/gfwlist server=/xn--p8j9a0d9c9a.xn--q9jyb4c/127.0.0.1#5335 ipset=/xn--p8j9a0d9c9a.xn--q9jyb4c/gfwlist -server=/rocketfishproducts.com/127.0.0.1#5335 -ipset=/rocketfishproducts.com/gfwlist -server=/facebookbrand.com/127.0.0.1#5335 -ipset=/facebookbrand.com/gfwlist -server=/facebookcheats.com/127.0.0.1#5335 -ipset=/facebookcheats.com/gfwlist -server=/modular.im/127.0.0.1#5335 -ipset=/modular.im/gfwlist -server=/duckduckgo.sg/127.0.0.1#5335 -ipset=/duckduckgo.sg/gfwlist -server=/pearsonassessment.fr/127.0.0.1#5335 -ipset=/pearsonassessment.fr/gfwlist +server=/bestporntube.me/127.0.0.1#5335 +ipset=/bestporntube.me/gfwlist +server=/javfull.net/127.0.0.1#5335 +ipset=/javfull.net/gfwlist +server=/topcoder.com/127.0.0.1#5335 +ipset=/topcoder.com/gfwlist server=/miniusaservice.com/127.0.0.1#5335 ipset=/miniusaservice.com/gfwlist -server=/now.com/127.0.0.1#5335 -ipset=/now.com/gfwlist server=/recoiljs.org/127.0.0.1#5335 ipset=/recoiljs.org/gfwlist -server=/pintool.com/127.0.0.1#5335 -ipset=/pintool.com/gfwlist -server=/pinterest.fr/127.0.0.1#5335 -ipset=/pinterest.fr/gfwlist -server=/facebooknews.com/127.0.0.1#5335 -ipset=/facebooknews.com/gfwlist server=/meraki-go.com/127.0.0.1#5335 ipset=/meraki-go.com/gfwlist -server=/devm2m.com/127.0.0.1#5335 -ipset=/devm2m.com/gfwlist server=/faceebok.com/127.0.0.1#5335 ipset=/faceebok.com/gfwlist -server=/arphic.com.tw/127.0.0.1#5335 -ipset=/arphic.com.tw/gfwlist -server=/linuxmint.com/127.0.0.1#5335 -ipset=/linuxmint.com/gfwlist +server=/steamstatic.com/127.0.0.1#5335 +ipset=/steamstatic.com/gfwlist server=/repsils.no/127.0.0.1#5335 ipset=/repsils.no/gfwlist server=/yahoo.ch/127.0.0.1#5335 ipset=/yahoo.ch/gfwlist server=/intel.se/127.0.0.1#5335 ipset=/intel.se/gfwlist -server=/veet.com.co/127.0.0.1#5335 -ipset=/veet.com.co/gfwlist server=/foxsports.com.py/127.0.0.1#5335 ipset=/foxsports.com.py/gfwlist -server=/zeit-world.co.uk/127.0.0.1#5335 -ipset=/zeit-world.co.uk/gfwlist -server=/monsterbeatsok.com/127.0.0.1#5335 -ipset=/monsterbeatsok.com/gfwlist -server=/fb.me/127.0.0.1#5335 -ipset=/fb.me/gfwlist +server=/api.news/127.0.0.1#5335 +ipset=/api.news/gfwlist +server=/mendeley.com/127.0.0.1#5335 +ipset=/mendeley.com/gfwlist +server=/wixmp.com/127.0.0.1#5335 +ipset=/wixmp.com/gfwlist server=/ciscolivehls-i.akamaihd.net/127.0.0.1#5335 ipset=/ciscolivehls-i.akamaihd.net/gfwlist server=/applf.com/127.0.0.1#5335 ipset=/applf.com/gfwlist -server=/is.gd/127.0.0.1#5335 -ipset=/is.gd/gfwlist -server=/mini-connected.lu/127.0.0.1#5335 -ipset=/mini-connected.lu/gfwlist +server=/futanarihq.com/127.0.0.1#5335 +ipset=/futanarihq.com/gfwlist +server=/jmcomic.moe/127.0.0.1#5335 +ipset=/jmcomic.moe/gfwlist server=/ipleadership.org/127.0.0.1#5335 ipset=/ipleadership.org/gfwlist -server=/google.lv/127.0.0.1#5335 -ipset=/google.lv/gfwlist -server=/needforspeedstreetkings.com/127.0.0.1#5335 -ipset=/needforspeedstreetkings.com/gfwlist -server=/airwick.fi/127.0.0.1#5335 -ipset=/airwick.fi/gfwlist -server=/facebook123.org/127.0.0.1#5335 -ipset=/facebook123.org/gfwlist +server=/babepedia.com/127.0.0.1#5335 +ipset=/babepedia.com/gfwlist +server=/slotbitches.com/127.0.0.1#5335 +ipset=/slotbitches.com/gfwlist +server=/ikea.com.ro/127.0.0.1#5335 +ipset=/ikea.com.ro/gfwlist server=/112263.com/127.0.0.1#5335 ipset=/112263.com/gfwlist -server=/trellocdn.com/127.0.0.1#5335 -ipset=/trellocdn.com/gfwlist server=/volvotruckcenter.be/127.0.0.1#5335 ipset=/volvotruckcenter.be/gfwlist -server=/volvotrucks.co.zw/127.0.0.1#5335 -ipset=/volvotrucks.co.zw/gfwlist -server=/devtools-paypal.com/127.0.0.1#5335 -ipset=/devtools-paypal.com/gfwlist +server=/ura-akiba.jp/127.0.0.1#5335 +ipset=/ura-akiba.jp/gfwlist server=/tfhub.dev/127.0.0.1#5335 ipset=/tfhub.dev/gfwlist -server=/vfsco.ee/127.0.0.1#5335 -ipset=/vfsco.ee/gfwlist server=/bmw-welt.com/127.0.0.1#5335 ipset=/bmw-welt.com/gfwlist server=/bmwpittsburgh.com/127.0.0.1#5335 ipset=/bmwpittsburgh.com/gfwlist -server=/vmw.com/127.0.0.1#5335 -ipset=/vmw.com/gfwlist +server=/jinmantiankong.com/127.0.0.1#5335 +ipset=/jinmantiankong.com/gfwlist +server=/xxxsexzoo.com/127.0.0.1#5335 +ipset=/xxxsexzoo.com/gfwlist server=/venmo.s3.amazonaws.com/127.0.0.1#5335 ipset=/venmo.s3.amazonaws.com/gfwlist -server=/connect-in-canada.com/127.0.0.1#5335 -ipset=/connect-in-canada.com/gfwlist -server=/canon.se/127.0.0.1#5335 -ipset=/canon.se/gfwlist -server=/beatsbydreirelandsonline.com/127.0.0.1#5335 -ipset=/beatsbydreirelandsonline.com/gfwlist +server=/xnxxsexclips.com/127.0.0.1#5335 +ipset=/xnxxsexclips.com/gfwlist +server=/dojindb.net/127.0.0.1#5335 +ipset=/dojindb.net/gfwlist +server=/tbib.org/127.0.0.1#5335 +ipset=/tbib.org/gfwlist server=/mobile.de/127.0.0.1#5335 ipset=/mobile.de/gfwlist -server=/nikeshoes21.com/127.0.0.1#5335 -ipset=/nikeshoes21.com/gfwlist -server=/beatsbydreaustraliaonlines.com/127.0.0.1#5335 -ipset=/beatsbydreaustraliaonlines.com/gfwlist -server=/flipshare.com/127.0.0.1#5335 -ipset=/flipshare.com/gfwlist -server=/ngeo.com/127.0.0.1#5335 -ipset=/ngeo.com/gfwlist +server=/blogspot.ie/127.0.0.1#5335 +ipset=/blogspot.ie/gfwlist +server=/freehdvideos.xxx/127.0.0.1#5335 +ipset=/freehdvideos.xxx/gfwlist server=/alphabet.co.za/127.0.0.1#5335 ipset=/alphabet.co.za/gfwlist +server=/xxxvideo.world/127.0.0.1#5335 +ipset=/xxxvideo.world/gfwlist server=/donkeykongcountryreturns.com/127.0.0.1#5335 ipset=/donkeykongcountryreturns.com/gfwlist server=/2beatsdre.com/127.0.0.1#5335 ipset=/2beatsdre.com/gfwlist -server=/ciscolearningsystem.com/127.0.0.1#5335 -ipset=/ciscolearningsystem.com/gfwlist -server=/applecomputer.com/127.0.0.1#5335 -ipset=/applecomputer.com/gfwlist +server=/3d-comics.com/127.0.0.1#5335 +ipset=/3d-comics.com/gfwlist +server=/camgirlvideos.org/127.0.0.1#5335 +ipset=/camgirlvideos.org/gfwlist server=/duckduckgo.dk/127.0.0.1#5335 ipset=/duckduckgo.dk/gfwlist server=/onestore.ms/127.0.0.1#5335 ipset=/onestore.ms/gfwlist -server=/applewatchseries3.net/127.0.0.1#5335 -ipset=/applewatchseries3.net/gfwlist -server=/mkto-c0100.com/127.0.0.1#5335 -ipset=/mkto-c0100.com/gfwlist -server=/bmw.bm/127.0.0.1#5335 -ipset=/bmw.bm/gfwlist -server=/thechronicle.com.au/127.0.0.1#5335 -ipset=/thechronicle.com.au/gfwlist -server=/withyoutube.com/127.0.0.1#5335 -ipset=/withyoutube.com/gfwlist -server=/sandisk.ae/127.0.0.1#5335 -ipset=/sandisk.ae/gfwlist +server=/watchmyexgf.net/127.0.0.1#5335 +ipset=/watchmyexgf.net/gfwlist +server=/heinonline.org/127.0.0.1#5335 +ipset=/heinonline.org/gfwlist server=/ddg.gg/127.0.0.1#5335 ipset=/ddg.gg/gfwlist server=/macbook.tw/127.0.0.1#5335 ipset=/macbook.tw/gfwlist -server=/mini.fi/127.0.0.1#5335 -ipset=/mini.fi/gfwlist -server=/vine.co/127.0.0.1#5335 -ipset=/vine.co/gfwlist -server=/youtube.hk/127.0.0.1#5335 -ipset=/youtube.hk/gfwlist -server=/pyhapp.com/127.0.0.1#5335 -ipset=/pyhapp.com/gfwlist -server=/epinions.com/127.0.0.1#5335 -ipset=/epinions.com/gfwlist -server=/bmw-i.jp/127.0.0.1#5335 -ipset=/bmw-i.jp/gfwlist +server=/ixnxx.tv/127.0.0.1#5335 +ipset=/ixnxx.tv/gfwlist server=/what-fan.net/127.0.0.1#5335 ipset=/what-fan.net/gfwlist server=/ebayjewelry.com/127.0.0.1#5335 ipset=/ebayjewelry.com/gfwlist -server=/tryengineering.org/127.0.0.1#5335 -ipset=/tryengineering.org/gfwlist server=/onsaletrend.com/127.0.0.1#5335 ipset=/onsaletrend.com/gfwlist +server=/hmd.site/127.0.0.1#5335 +ipset=/hmd.site/gfwlist +server=/dgwav.com/127.0.0.1#5335 +ipset=/dgwav.com/gfwlist server=/facebookland.com/127.0.0.1#5335 ipset=/facebookland.com/gfwlist -server=/chinadecoding.com/127.0.0.1#5335 -ipset=/chinadecoding.com/gfwlist -server=/ipoditouch.com/127.0.0.1#5335 -ipset=/ipoditouch.com/gfwlist +server=/db.tt/127.0.0.1#5335 +ipset=/db.tt/gfwlist server=/bmw-motorrad.pa/127.0.0.1#5335 ipset=/bmw-motorrad.pa/gfwlist server=/getcomposer.org/127.0.0.1#5335 ipset=/getcomposer.org/gfwlist server=/akamai-platform-internal.net/127.0.0.1#5335 ipset=/akamai-platform-internal.net/gfwlist -server=/trydurex.tv/127.0.0.1#5335 -ipset=/trydurex.tv/gfwlist -server=/google.az/127.0.0.1#5335 -ipset=/google.az/gfwlist +server=/sego8.xyz/127.0.0.1#5335 +ipset=/sego8.xyz/gfwlist server=/airwick.si/127.0.0.1#5335 ipset=/airwick.si/gfwlist -server=/applestore.com.jo/127.0.0.1#5335 -ipset=/applestore.com.jo/gfwlist -server=/mini-srilanka.com/127.0.0.1#5335 -ipset=/mini-srilanka.com/gfwlist -server=/casquebeatssolo.net/127.0.0.1#5335 -ipset=/casquebeatssolo.net/gfwlist +server=/bmwjamaica.com/127.0.0.1#5335 +ipset=/bmwjamaica.com/gfwlist +server=/pornozona.tv/127.0.0.1#5335 +ipset=/pornozona.tv/gfwlist +server=/comodo.net/127.0.0.1#5335 +ipset=/comodo.net/gfwlist +server=/githubapp.com/127.0.0.1#5335 +ipset=/githubapp.com/gfwlist server=/usatodaynetworkservice.com/127.0.0.1#5335 ipset=/usatodaynetworkservice.com/gfwlist -server=/zendesk.com/127.0.0.1#5335 -ipset=/zendesk.com/gfwlist +server=/apple.co.th/127.0.0.1#5335 +ipset=/apple.co.th/gfwlist server=/javwide.tv/127.0.0.1#5335 ipset=/javwide.tv/gfwlist +server=/haitenjp.com/127.0.0.1#5335 +ipset=/haitenjp.com/gfwlist server=/visaluxuryhotelcollection.com.br/127.0.0.1#5335 ipset=/visaluxuryhotelcollection.com.br/gfwlist -server=/q10.jp/127.0.0.1#5335 -ipset=/q10.jp/gfwlist server=/volvobuses.mx/127.0.0.1#5335 ipset=/volvobuses.mx/gfwlist -server=/stackage.org/127.0.0.1#5335 -ipset=/stackage.org/gfwlist -server=/spotify-everywhere.com/127.0.0.1#5335 -ipset=/spotify-everywhere.com/gfwlist +server=/topyoungporn.com/127.0.0.1#5335 +ipset=/topyoungporn.com/gfwlist server=/shopifystatus.com/127.0.0.1#5335 ipset=/shopifystatus.com/gfwlist server=/danmarkbeatsbydrdre.com/127.0.0.1#5335 ipset=/danmarkbeatsbydrdre.com/gfwlist server=/oxfordaasc.com/127.0.0.1#5335 ipset=/oxfordaasc.com/gfwlist -server=/cheapmonsterbeatsheadsets.com/127.0.0.1#5335 -ipset=/cheapmonsterbeatsheadsets.com/gfwlist -server=/golang.net/127.0.0.1#5335 -ipset=/golang.net/gfwlist +server=/thepornlinks.com/127.0.0.1#5335 +ipset=/thepornlinks.com/gfwlist server=/snapseed.com/127.0.0.1#5335 ipset=/snapseed.com/gfwlist server=/tictoc.video/127.0.0.1#5335 ipset=/tictoc.video/gfwlist server=/vmtestdrive.com/127.0.0.1#5335 ipset=/vmtestdrive.com/gfwlist -server=/elsevier.com/127.0.0.1#5335 -ipset=/elsevier.com/gfwlist server=/volvotrucks.mn/127.0.0.1#5335 ipset=/volvotrucks.mn/gfwlist -server=/yzzk.com/127.0.0.1#5335 -ipset=/yzzk.com/gfwlist +server=/gogocdn.net/127.0.0.1#5335 +ipset=/gogocdn.net/gfwlist server=/comodoca.com/127.0.0.1#5335 ipset=/comodoca.com/gfwlist server=/ipadpro.buzz/127.0.0.1#5335 ipset=/ipadpro.buzz/gfwlist server=/hulu.com/127.0.0.1#5335 ipset=/hulu.com/gfwlist -server=/pypi.io/127.0.0.1#5335 -ipset=/pypi.io/gfwlist server=/bmw-mountains.com/127.0.0.1#5335 ipset=/bmw-mountains.com/gfwlist -server=/ebayworlds.com/127.0.0.1#5335 -ipset=/ebayworlds.com/gfwlist server=/google.com.sl/127.0.0.1#5335 ipset=/google.com.sl/gfwlist -server=/insidevoa.com/127.0.0.1#5335 -ipset=/insidevoa.com/gfwlist -server=/pokemonpicross.com/127.0.0.1#5335 -ipset=/pokemonpicross.com/gfwlist -server=/freecodecamp.org/127.0.0.1#5335 -ipset=/freecodecamp.org/gfwlist -server=/bmw-motorrad.sa/127.0.0.1#5335 -ipset=/bmw-motorrad.sa/gfwlist -server=/paypal-portal.com/127.0.0.1#5335 -ipset=/paypal-portal.com/gfwlist -server=/versly.com/127.0.0.1#5335 -ipset=/versly.com/gfwlist +server=/wwwfacebook.com/127.0.0.1#5335 +ipset=/wwwfacebook.com/gfwlist +server=/adultgameson.com/127.0.0.1#5335 +ipset=/adultgameson.com/gfwlist server=/myfoxatlanta.com/127.0.0.1#5335 ipset=/myfoxatlanta.com/gfwlist -server=/bmw.dz/127.0.0.1#5335 -ipset=/bmw.dz/gfwlist -server=/airtunes.net/127.0.0.1#5335 -ipset=/airtunes.net/gfwlist server=/beatspaschers.net/127.0.0.1#5335 ipset=/beatspaschers.net/gfwlist server=/stackoverflow.email/127.0.0.1#5335 ipset=/stackoverflow.email/gfwlist server=/lysol.net/127.0.0.1#5335 ipset=/lysol.net/gfwlist -server=/paypalcreditcard.com/127.0.0.1#5335 -ipset=/paypalcreditcard.com/gfwlist +server=/spankwire.com/127.0.0.1#5335 +ipset=/spankwire.com/gfwlist server=/nurofen.at/127.0.0.1#5335 ipset=/nurofen.at/gfwlist server=/facebooik.com/127.0.0.1#5335 ipset=/facebooik.com/gfwlist +server=/spankmonster.com/127.0.0.1#5335 +ipset=/spankmonster.com/gfwlist server=/miniso.co/127.0.0.1#5335 ipset=/miniso.co/gfwlist server=/businessinsider.co.za/127.0.0.1#5335 ipset=/businessinsider.co.za/gfwlist -server=/apple.my/127.0.0.1#5335 -ipset=/apple.my/gfwlist -server=/disneymagicmoments.co.za/127.0.0.1#5335 -ipset=/disneymagicmoments.co.za/gfwlist -server=/hpto.net/127.0.0.1#5335 -ipset=/hpto.net/gfwlist -server=/pricelesshonolulu.com/127.0.0.1#5335 -ipset=/pricelesshonolulu.com/gfwlist +server=/brazzers-porno.online/127.0.0.1#5335 +ipset=/brazzers-porno.online/gfwlist +server=/sportstream.com/127.0.0.1#5335 +ipset=/sportstream.com/gfwlist +server=/yourdailypornvideos.ws/127.0.0.1#5335 +ipset=/yourdailypornvideos.ws/gfwlist server=/facebook-hardware.com/127.0.0.1#5335 ipset=/facebook-hardware.com/gfwlist -server=/adblockplus.org/127.0.0.1#5335 -ipset=/adblockplus.org/gfwlist +server=/sexandsplash.com/127.0.0.1#5335 +ipset=/sexandsplash.com/gfwlist +server=/realcleareducation.com/127.0.0.1#5335 +ipset=/realcleareducation.com/gfwlist server=/shopee.co.id/127.0.0.1#5335 ipset=/shopee.co.id/gfwlist -server=/iphonecollcase.com/127.0.0.1#5335 -ipset=/iphonecollcase.com/gfwlist -server=/adobe.com/127.0.0.1#5335 -ipset=/adobe.com/gfwlist -server=/mongodb.com/127.0.0.1#5335 -ipset=/mongodb.com/gfwlist +server=/fishmpegs.com/127.0.0.1#5335 +ipset=/fishmpegs.com/gfwlist +server=/submityourflicks.com/127.0.0.1#5335 +ipset=/submityourflicks.com/gfwlist +server=/ieee-edusociety.org/127.0.0.1#5335 +ipset=/ieee-edusociety.org/gfwlist server=/bloomberg.cn/127.0.0.1#5335 ipset=/bloomberg.cn/gfwlist server=/redtube.com/127.0.0.1#5335 ipset=/redtube.com/gfwlist -server=/apple.jp/127.0.0.1#5335 -ipset=/apple.jp/gfwlist +server=/clearlinux.org/127.0.0.1#5335 +ipset=/clearlinux.org/gfwlist server=/tweetdeck.com/127.0.0.1#5335 ipset=/tweetdeck.com/gfwlist server=/connectcommerce.tv/127.0.0.1#5335 ipset=/connectcommerce.tv/gfwlist server=/aboutamazon.eu/127.0.0.1#5335 ipset=/aboutamazon.eu/gfwlist -server=/bmw-world.com/127.0.0.1#5335 -ipset=/bmw-world.com/gfwlist -server=/douya.org/127.0.0.1#5335 -ipset=/douya.org/gfwlist -server=/braintreepaymentsolutions.com/127.0.0.1#5335 -ipset=/braintreepaymentsolutions.com/gfwlist +server=/picacn.xyz/127.0.0.1#5335 +ipset=/picacn.xyz/gfwlist +server=/yibaochina.com/127.0.0.1#5335 +ipset=/yibaochina.com/gfwlist +server=/hentaidude.com/127.0.0.1#5335 +ipset=/hentaidude.com/gfwlist server=/gostorego.com/127.0.0.1#5335 ipset=/gostorego.com/gfwlist -server=/gettr.com/127.0.0.1#5335 -ipset=/gettr.com/gfwlist +server=/intel.com.pe/127.0.0.1#5335 +ipset=/intel.com.pe/gfwlist +server=/waskucity.com/127.0.0.1#5335 +ipset=/waskucity.com/gfwlist server=/apple-expo.eu/127.0.0.1#5335 ipset=/apple-expo.eu/gfwlist server=/4chan.org/127.0.0.1#5335 ipset=/4chan.org/gfwlist -server=/creativecloud.com/127.0.0.1#5335 -ipset=/creativecloud.com/gfwlist +server=/discoveryplus.com/127.0.0.1#5335 +ipset=/discoveryplus.com/gfwlist +server=/paypal-sptam.com/127.0.0.1#5335 +ipset=/paypal-sptam.com/gfwlist server=/feacbook.com/127.0.0.1#5335 ipset=/feacbook.com/gfwlist -server=/thesffblog.com/127.0.0.1#5335 -ipset=/thesffblog.com/gfwlist +server=/amp.dev/127.0.0.1#5335 +ipset=/amp.dev/gfwlist +server=/xxxifuck.com/127.0.0.1#5335 +ipset=/xxxifuck.com/gfwlist server=/nikepress.com/127.0.0.1#5335 ipset=/nikepress.com/gfwlist server=/nintendo3ds.com/127.0.0.1#5335 ipset=/nintendo3ds.com/gfwlist -server=/beatsfactoryoutles.com/127.0.0.1#5335 -ipset=/beatsfactoryoutles.com/gfwlist -server=/apple.sk/127.0.0.1#5335 -ipset=/apple.sk/gfwlist +server=/hentaixxxvids.com/127.0.0.1#5335 +ipset=/hentaixxxvids.com/gfwlist server=/spreadprivacy.com/127.0.0.1#5335 ipset=/spreadprivacy.com/gfwlist -server=/swisssigngroup.com/127.0.0.1#5335 -ipset=/swisssigngroup.com/gfwlist -server=/minimontrealcentre.ca/127.0.0.1#5335 -ipset=/minimontrealcentre.ca/gfwlist -server=/fox5storm.com/127.0.0.1#5335 -ipset=/fox5storm.com/gfwlist -server=/newsupermariobrosu.com/127.0.0.1#5335 -ipset=/newsupermariobrosu.com/gfwlist -server=/discordapp.com/127.0.0.1#5335 -ipset=/discordapp.com/gfwlist +server=/shadbase.com/127.0.0.1#5335 +ipset=/shadbase.com/gfwlist +server=/zishy.com/127.0.0.1#5335 +ipset=/zishy.com/gfwlist server=/dailytelegraph.com.au/127.0.0.1#5335 ipset=/dailytelegraph.com.au/gfwlist server=/insider.com/127.0.0.1#5335 ipset=/insider.com/gfwlist -server=/phncdn.com/127.0.0.1#5335 -ipset=/phncdn.com/gfwlist -server=/ebayeletro.com/127.0.0.1#5335 -ipset=/ebayeletro.com/gfwlist -server=/macbookpro.com.au/127.0.0.1#5335 -ipset=/macbookpro.com.au/gfwlist -server=/nikeproduct.com/127.0.0.1#5335 -ipset=/nikeproduct.com/gfwlist +server=/hqtrannytube.com/127.0.0.1#5335 +ipset=/hqtrannytube.com/gfwlist +server=/41maonn.com/127.0.0.1#5335 +ipset=/41maonn.com/gfwlist +server=/furaffinity.net/127.0.0.1#5335 +ipset=/furaffinity.net/gfwlist +server=/hentai.game/127.0.0.1#5335 +ipset=/hentai.game/gfwlist server=/bmw-connected-drive.com/127.0.0.1#5335 ipset=/bmw-connected-drive.com/gfwlist server=/kamisama-maeda-lab.com/127.0.0.1#5335 ipset=/kamisama-maeda-lab.com/gfwlist -server=/finish.de/127.0.0.1#5335 -ipset=/finish.de/gfwlist -server=/epochtimestr.com/127.0.0.1#5335 -ipset=/epochtimestr.com/gfwlist -server=/mail.ru/127.0.0.1#5335 -ipset=/mail.ru/gfwlist -server=/driving.co.uk/127.0.0.1#5335 -ipset=/driving.co.uk/gfwlist +server=/yahoo.bt/127.0.0.1#5335 +ipset=/yahoo.bt/gfwlist server=/microsoft.vn/127.0.0.1#5335 ipset=/microsoft.vn/gfwlist server=/mojang.com/127.0.0.1#5335 ipset=/mojang.com/gfwlist -server=/apple.rs/127.0.0.1#5335 -ipset=/apple.rs/gfwlist -server=/beatsbydre-store.com/127.0.0.1#5335 -ipset=/beatsbydre-store.com/gfwlist -server=/area120.com/127.0.0.1#5335 -ipset=/area120.com/gfwlist +server=/naughtytugs.com/127.0.0.1#5335 +ipset=/naughtytugs.com/gfwlist +server=/perverttube.com/127.0.0.1#5335 +ipset=/perverttube.com/gfwlist server=/pearsonclinical.no/127.0.0.1#5335 ipset=/pearsonclinical.no/gfwlist -server=/bmw-welt.net/127.0.0.1#5335 -ipset=/bmw-welt.net/gfwlist -server=/miniso.uz/127.0.0.1#5335 -ipset=/miniso.uz/gfwlist +server=/instagda.com/127.0.0.1#5335 +ipset=/instagda.com/gfwlist server=/thestandard.com.hk/127.0.0.1#5335 ipset=/thestandard.com.hk/gfwlist +server=/twittercommunity.com/127.0.0.1#5335 +ipset=/twittercommunity.com/gfwlist server=/youtube.md/127.0.0.1#5335 ipset=/youtube.md/gfwlist server=/whychooseview.com/127.0.0.1#5335 ipset=/whychooseview.com/gfwlist -server=/ntdca.com/127.0.0.1#5335 -ipset=/ntdca.com/gfwlist -server=/mzstatic.com/127.0.0.1#5335 -ipset=/mzstatic.com/gfwlist server=/amazon-adsystem.com/127.0.0.1#5335 ipset=/amazon-adsystem.com/gfwlist -server=/linkedin.com/127.0.0.1#5335 -ipset=/linkedin.com/gfwlist +server=/penisbot.com/127.0.0.1#5335 +ipset=/penisbot.com/gfwlist server=/uverse.com/127.0.0.1#5335 ipset=/uverse.com/gfwlist +server=/nataliefiore.com/127.0.0.1#5335 +ipset=/nataliefiore.com/gfwlist server=/bmw.com.bd/127.0.0.1#5335 ipset=/bmw.com.bd/gfwlist -server=/mastercard.com.bh/127.0.0.1#5335 -ipset=/mastercard.com.bh/gfwlist -server=/nikefootballgloves.com/127.0.0.1#5335 -ipset=/nikefootballgloves.com/gfwlist +server=/shemalebestlabel.com/127.0.0.1#5335 +ipset=/shemalebestlabel.com/gfwlist server=/microsoftstore.com.hk/127.0.0.1#5335 ipset=/microsoftstore.com.hk/gfwlist server=/imoviestage.com/127.0.0.1#5335 ipset=/imoviestage.com/gfwlist -server=/minimoncton.com/127.0.0.1#5335 -ipset=/minimoncton.com/gfwlist -server=/linguee.com/127.0.0.1#5335 -ipset=/linguee.com/gfwlist server=/oraclefoundation.org/127.0.0.1#5335 ipset=/oraclefoundation.org/gfwlist +server=/amateurgalore.net/127.0.0.1#5335 +ipset=/amateurgalore.net/gfwlist server=/epochtimes.com.sg/127.0.0.1#5335 ipset=/epochtimes.com.sg/gfwlist -server=/icloud.jp/127.0.0.1#5335 -ipset=/icloud.jp/gfwlist server=/minivictoria.com/127.0.0.1#5335 ipset=/minivictoria.com/gfwlist -server=/bridgestone.co.cr/127.0.0.1#5335 -ipset=/bridgestone.co.cr/gfwlist -server=/visa.com.kn/127.0.0.1#5335 -ipset=/visa.com.kn/gfwlist +server=/shopifycloud.com/127.0.0.1#5335 +ipset=/shopifycloud.com/gfwlist server=/icloud.ro/127.0.0.1#5335 ipset=/icloud.ro/gfwlist -server=/sorcerersarena.com/127.0.0.1#5335 -ipset=/sorcerersarena.com/gfwlist server=/attcenter.com/127.0.0.1#5335 ipset=/attcenter.com/gfwlist server=/canon-cmos-sensors.com/127.0.0.1#5335 ipset=/canon-cmos-sensors.com/gfwlist -server=/w3schools.com/127.0.0.1#5335 -ipset=/w3schools.com/gfwlist -server=/nurofen.net/127.0.0.1#5335 -ipset=/nurofen.net/gfwlist -server=/faceboon.com/127.0.0.1#5335 -ipset=/faceboon.com/gfwlist +server=/xvideosbrasileiro.net/127.0.0.1#5335 +ipset=/xvideosbrasileiro.net/gfwlist server=/ebaytrading.com/127.0.0.1#5335 ipset=/ebaytrading.com/gfwlist +server=/pornolaba.mobi/127.0.0.1#5335 +ipset=/pornolaba.mobi/gfwlist server=/calgon.fr/127.0.0.1#5335 ipset=/calgon.fr/gfwlist -server=/faceidglobal.com/127.0.0.1#5335 -ipset=/faceidglobal.com/gfwlist -server=/vanish.com.ar/127.0.0.1#5335 -ipset=/vanish.com.ar/gfwlist server=/visa.fi/127.0.0.1#5335 ipset=/visa.fi/gfwlist server=/kscisco.com/127.0.0.1#5335 ipset=/kscisco.com/gfwlist server=/akamaientrypoint.net/127.0.0.1#5335 ipset=/akamaientrypoint.net/gfwlist -server=/cheapheadphonesland.com/127.0.0.1#5335 -ipset=/cheapheadphonesland.com/gfwlist -server=/iphone-x.tv/127.0.0.1#5335 -ipset=/iphone-x.tv/gfwlist server=/bidorbuyindia.com/127.0.0.1#5335 ipset=/bidorbuyindia.com/gfwlist -server=/foxsportsracing.com/127.0.0.1#5335 -ipset=/foxsportsracing.com/gfwlist -server=/intel.gr/127.0.0.1#5335 -ipset=/intel.gr/gfwlist server=/vanishstains.com/127.0.0.1#5335 ipset=/vanishstains.com/gfwlist -server=/mini.com.co/127.0.0.1#5335 -ipset=/mini.com.co/gfwlist server=/sportswomenoftheyear.co.uk/127.0.0.1#5335 ipset=/sportswomenoftheyear.co.uk/gfwlist -server=/itunesiradio.com/127.0.0.1#5335 -ipset=/itunesiradio.com/gfwlist -server=/myfoxboston.com/127.0.0.1#5335 -ipset=/myfoxboston.com/gfwlist -server=/bmw-connecteddrive.com.mt/127.0.0.1#5335 -ipset=/bmw-connecteddrive.com.mt/gfwlist +server=/dyncdn.me/127.0.0.1#5335 +ipset=/dyncdn.me/gfwlist +server=/holdemstripem.com/127.0.0.1#5335 +ipset=/holdemstripem.com/gfwlist +server=/material.io/127.0.0.1#5335 +ipset=/material.io/gfwlist +server=/vagina.nl/127.0.0.1#5335 +ipset=/vagina.nl/gfwlist +server=/camwhoria.com/127.0.0.1#5335 +ipset=/camwhoria.com/gfwlist server=/eachpay.com/127.0.0.1#5335 ipset=/eachpay.com/gfwlist server=/cloudflarestatus.com/127.0.0.1#5335 ipset=/cloudflarestatus.com/gfwlist -server=/hqporner.com/127.0.0.1#5335 -ipset=/hqporner.com/gfwlist -server=/disney.co.za/127.0.0.1#5335 -ipset=/disney.co.za/gfwlist +server=/jizzbunker.com/127.0.0.1#5335 +ipset=/jizzbunker.com/gfwlist +server=/superstation.com.tw/127.0.0.1#5335 +ipset=/superstation.com.tw/gfwlist server=/newmonsterbeatsheadphones.com/127.0.0.1#5335 ipset=/newmonsterbeatsheadphones.com/gfwlist -server=/youtube.com.bh/127.0.0.1#5335 -ipset=/youtube.com.bh/gfwlist -server=/wpewebkit.org/127.0.0.1#5335 -ipset=/wpewebkit.org/gfwlist -server=/apress.com/127.0.0.1#5335 -ipset=/apress.com/gfwlist +server=/acgwr.com/127.0.0.1#5335 +ipset=/acgwr.com/gfwlist +server=/intel.gl/127.0.0.1#5335 +ipset=/intel.gl/gfwlist server=/canon.ch/127.0.0.1#5335 ipset=/canon.ch/gfwlist +server=/piapp.com.tw/127.0.0.1#5335 +ipset=/piapp.com.tw/gfwlist +server=/redporn.xxx/127.0.0.1#5335 +ipset=/redporn.xxx/gfwlist +server=/sex-for-work.com/127.0.0.1#5335 +ipset=/sex-for-work.com/gfwlist server=/mastercardconnect.com/127.0.0.1#5335 ipset=/mastercardconnect.com/gfwlist -server=/go-lang.com/127.0.0.1#5335 -ipset=/go-lang.com/gfwlist +server=/getporn.tv/127.0.0.1#5335 +ipset=/getporn.tv/gfwlist server=/scholar.google.com.ec/127.0.0.1#5335 ipset=/scholar.google.com.ec/gfwlist -server=/nikefactorystore.com/127.0.0.1#5335 -ipset=/nikefactorystore.com/gfwlist -server=/applestore.net.gr/127.0.0.1#5335 -ipset=/applestore.net.gr/gfwlist -server=/mastercardbusinessnetwork.com/127.0.0.1#5335 -ipset=/mastercardbusinessnetwork.com/gfwlist -server=/mini.at/127.0.0.1#5335 -ipset=/mini.at/gfwlist +server=/gotblop.com/127.0.0.1#5335 +ipset=/gotblop.com/gfwlist +server=/freesexyindians.org/127.0.0.1#5335 +ipset=/freesexyindians.org/gfwlist +server=/playboy.com/127.0.0.1#5335 +ipset=/playboy.com/gfwlist +server=/nimg.jp/127.0.0.1#5335 +ipset=/nimg.jp/gfwlist +server=/thieme-connect.com/127.0.0.1#5335 +ipset=/thieme-connect.com/gfwlist server=/nvidia.com.ua/127.0.0.1#5335 ipset=/nvidia.com.ua/gfwlist server=/apple.se/127.0.0.1#5335 ipset=/apple.se/gfwlist server=/nikeshoesretro.com/127.0.0.1#5335 ipset=/nikeshoesretro.com/gfwlist -server=/simg.jp/127.0.0.1#5335 -ipset=/simg.jp/gfwlist +server=/osiri-suki-club.com/127.0.0.1#5335 +ipset=/osiri-suki-club.com/gfwlist server=/nikeresponsibility.com/127.0.0.1#5335 ipset=/nikeresponsibility.com/gfwlist server=/bmw-motorrad.com.hr/127.0.0.1#5335 @@ -9718,70 +8048,58 @@ server=/pearsonassessment.de/127.0.0.1#5335 ipset=/pearsonassessment.de/gfwlist server=/mysinchew.com/127.0.0.1#5335 ipset=/mysinchew.com/gfwlist -server=/drdreheadphonebeats.com/127.0.0.1#5335 -ipset=/drdreheadphonebeats.com/gfwlist -server=/hooloo.tv/127.0.0.1#5335 -ipset=/hooloo.tv/gfwlist +server=/kindle4rss.com/127.0.0.1#5335 +ipset=/kindle4rss.com/gfwlist +server=/yourbrain.com/127.0.0.1#5335 +ipset=/yourbrain.com/gfwlist server=/cloudfunctions.net/127.0.0.1#5335 ipset=/cloudfunctions.net/gfwlist -server=/microsoft.it/127.0.0.1#5335 -ipset=/microsoft.it/gfwlist server=/veet.com.my/127.0.0.1#5335 ipset=/veet.com.my/gfwlist server=/appleimac.com/127.0.0.1#5335 ipset=/appleimac.com/gfwlist -server=/fnlondon.com/127.0.0.1#5335 -ipset=/fnlondon.com/gfwlist +server=/cgkate.jinvod.com/127.0.0.1#5335 +ipset=/cgkate.jinvod.com/gfwlist server=/nikeairmaxshoes.com/127.0.0.1#5335 ipset=/nikeairmaxshoes.com/gfwlist -server=/marketo.net/127.0.0.1#5335 -ipset=/marketo.net/gfwlist +server=/opentgc.com/127.0.0.1#5335 +ipset=/opentgc.com/gfwlist server=/slackhq.com/127.0.0.1#5335 ipset=/slackhq.com/gfwlist -server=/launchpadlibrarian.net/127.0.0.1#5335 -ipset=/launchpadlibrarian.net/gfwlist +server=/wowstars.com/127.0.0.1#5335 +ipset=/wowstars.com/gfwlist +server=/steamunlocked.net/127.0.0.1#5335 +ipset=/steamunlocked.net/gfwlist server=/beatsone.net/127.0.0.1#5335 ipset=/beatsone.net/gfwlist -server=/rolls-roycecullinan.com/127.0.0.1#5335 -ipset=/rolls-roycecullinan.com/gfwlist -server=/starbucks.com.ar/127.0.0.1#5335 -ipset=/starbucks.com.ar/gfwlist -server=/mcdonaldsarabia.com/127.0.0.1#5335 -ipset=/mcdonaldsarabia.com/gfwlist -server=/bmw-motorsport.com/127.0.0.1#5335 -ipset=/bmw-motorsport.com/gfwlist -server=/reutersmedia.net/127.0.0.1#5335 -ipset=/reutersmedia.net/gfwlist -server=/jetbrains.net/127.0.0.1#5335 -ipset=/jetbrains.net/gfwlist -server=/elixir-lang.org/127.0.0.1#5335 -ipset=/elixir-lang.org/gfwlist -server=/winhec.net/127.0.0.1#5335 -ipset=/winhec.net/gfwlist -server=/adhelpnews.com/127.0.0.1#5335 -ipset=/adhelpnews.com/gfwlist +server=/sexy-older-women.com/127.0.0.1#5335 +ipset=/sexy-older-women.com/gfwlist +server=/joiasmr.com/127.0.0.1#5335 +ipset=/joiasmr.com/gfwlist +server=/dailymail.com/127.0.0.1#5335 +ipset=/dailymail.com/gfwlist server=/bmw-connecteddrive.ee/127.0.0.1#5335 ipset=/bmw-connecteddrive.ee/gfwlist server=/widgets.stripst.com/127.0.0.1#5335 ipset=/widgets.stripst.com/gfwlist server=/breakdown.me/127.0.0.1#5335 ipset=/breakdown.me/gfwlist -server=/2buybeatsbydre.com/127.0.0.1#5335 -ipset=/2buybeatsbydre.com/gfwlist -server=/popcap.com/127.0.0.1#5335 -ipset=/popcap.com/gfwlist +server=/stimorolsex.com/127.0.0.1#5335 +ipset=/stimorolsex.com/gfwlist +server=/xxxvirtualworld.com/127.0.0.1#5335 +ipset=/xxxvirtualworld.com/gfwlist server=/whyfacebook.com/127.0.0.1#5335 ipset=/whyfacebook.com/gfwlist -server=/economistgroup.com/127.0.0.1#5335 -ipset=/economistgroup.com/gfwlist -server=/bmw.cw/127.0.0.1#5335 -ipset=/bmw.cw/gfwlist +server=/facebookphonenumber.net/127.0.0.1#5335 +ipset=/facebookphonenumber.net/gfwlist server=/canon.lt/127.0.0.1#5335 ipset=/canon.lt/gfwlist server=/drebeats-australia.com/127.0.0.1#5335 ipset=/drebeats-australia.com/gfwlist server=/hpmini.com/127.0.0.1#5335 ipset=/hpmini.com/gfwlist +server=/besttube4you.com/127.0.0.1#5335 +ipset=/besttube4you.com/gfwlist server=/supercoach.com.au/127.0.0.1#5335 ipset=/supercoach.com.au/gfwlist server=/mastercard.com.tw/127.0.0.1#5335 @@ -9790,1984 +8108,892 @@ server=/netflixdnstest3.com/127.0.0.1#5335 ipset=/netflixdnstest3.com/gfwlist server=/funnyfacebook.org/127.0.0.1#5335 ipset=/funnyfacebook.org/gfwlist -server=/swiftbank.info/127.0.0.1#5335 -ipset=/swiftbank.info/gfwlist +server=/bitbucket.io/127.0.0.1#5335 +ipset=/bitbucket.io/gfwlist server=/ebay68.com/127.0.0.1#5335 ipset=/ebay68.com/gfwlist -server=/mastercardrestaurant.com/127.0.0.1#5335 -ipset=/mastercardrestaurant.com/gfwlist -server=/gamer.com.tw/127.0.0.1#5335 -ipset=/gamer.com.tw/gfwlist -server=/mobatek.net/127.0.0.1#5335 -ipset=/mobatek.net/gfwlist +server=/blogspot.co.il/127.0.0.1#5335 +ipset=/blogspot.co.il/gfwlist +server=/scorevideos.com/127.0.0.1#5335 +ipset=/scorevideos.com/gfwlist +server=/3dsexy.net/127.0.0.1#5335 +ipset=/3dsexy.net/gfwlist server=/softbank.jp/127.0.0.1#5335 ipset=/softbank.jp/gfwlist -server=/fandango.com/127.0.0.1#5335 -ipset=/fandango.com/gfwlist -server=/iphone-sh.com/127.0.0.1#5335 -ipset=/iphone-sh.com/gfwlist -server=/frishoes.com/127.0.0.1#5335 -ipset=/frishoes.com/gfwlist -server=/ipadair.com.es/127.0.0.1#5335 -ipset=/ipadair.com.es/gfwlist +server=/adultbay.org/127.0.0.1#5335 +ipset=/adultbay.org/gfwlist +server=/google.ws/127.0.0.1#5335 +ipset=/google.ws/gfwlist server=/xxbay.com/127.0.0.1#5335 ipset=/xxbay.com/gfwlist -server=/vfsco.mx/127.0.0.1#5335 -ipset=/vfsco.mx/gfwlist -server=/google.st/127.0.0.1#5335 -ipset=/google.st/gfwlist -server=/macbookair.jp/127.0.0.1#5335 -ipset=/macbookair.jp/gfwlist +server=/meetsmartbook.com/127.0.0.1#5335 +ipset=/meetsmartbook.com/gfwlist server=/vhxqa3.com/127.0.0.1#5335 ipset=/vhxqa3.com/gfwlist -server=/oxfordreference.com/127.0.0.1#5335 -ipset=/oxfordreference.com/gfwlist +server=/gateway.dev/127.0.0.1#5335 +ipset=/gateway.dev/gfwlist server=/foxsports2.com/127.0.0.1#5335 ipset=/foxsports2.com/gfwlist -server=/google.com.bz/127.0.0.1#5335 -ipset=/google.com.bz/gfwlist server=/recode.net/127.0.0.1#5335 ipset=/recode.net/gfwlist -server=/rarbgproxy.org/127.0.0.1#5335 -ipset=/rarbgproxy.org/gfwlist +server=/dexterhorn.com/127.0.0.1#5335 +ipset=/dexterhorn.com/gfwlist server=/nfsworld.com/127.0.0.1#5335 ipset=/nfsworld.com/gfwlist -server=/foxcorporation.com/127.0.0.1#5335 -ipset=/foxcorporation.com/gfwlist server=/volvotrucks.ru/127.0.0.1#5335 ipset=/volvotrucks.ru/gfwlist -server=/apple-online.com/127.0.0.1#5335 -ipset=/apple-online.com/gfwlist -server=/cheaperbeatsbydresale.com/127.0.0.1#5335 -ipset=/cheaperbeatsbydresale.com/gfwlist +server=/ecchinohentai.ru/127.0.0.1#5335 +ipset=/ecchinohentai.ru/gfwlist server=/lldns.net/127.0.0.1#5335 ipset=/lldns.net/gfwlist -server=/sony.ie/127.0.0.1#5335 -ipset=/sony.ie/gfwlist -server=/rarbgmirror.org/127.0.0.1#5335 -ipset=/rarbgmirror.org/gfwlist +server=/cosplay-jav.com/127.0.0.1#5335 +ipset=/cosplay-jav.com/gfwlist +server=/sublimedirectory.com/127.0.0.1#5335 +ipset=/sublimedirectory.com/gfwlist +server=/starbucks.com.kz/127.0.0.1#5335 +ipset=/starbucks.com.kz/gfwlist server=/mastercard.bg/127.0.0.1#5335 ipset=/mastercard.bg/gfwlist -server=/fafacebook.com/127.0.0.1#5335 -ipset=/fafacebook.com/gfwlist -server=/hpjav.tv/127.0.0.1#5335 -ipset=/hpjav.tv/gfwlist +server=/dubai-escort-list.com/127.0.0.1#5335 +ipset=/dubai-escort-list.com/gfwlist +server=/thenewporn.com/127.0.0.1#5335 +ipset=/thenewporn.com/gfwlist +server=/windowscommunity.net/127.0.0.1#5335 +ipset=/windowscommunity.net/gfwlist +server=/logitechg.com.cn/127.0.0.1#5335 +ipset=/logitechg.com.cn/gfwlist server=/woflthenewsstation.com/127.0.0.1#5335 ipset=/woflthenewsstation.com/gfwlist -server=/cnnmoney.ch/127.0.0.1#5335 -ipset=/cnnmoney.ch/gfwlist server=/beatsbysdrdres.com/127.0.0.1#5335 ipset=/beatsbysdrdres.com/gfwlist server=/epochtimes.co.kr/127.0.0.1#5335 ipset=/epochtimes.co.kr/gfwlist -server=/amazonliterarypartnership.com/127.0.0.1#5335 -ipset=/amazonliterarypartnership.com/gfwlist server=/bmw.ly/127.0.0.1#5335 ipset=/bmw.ly/gfwlist -server=/esri.com/127.0.0.1#5335 -ipset=/esri.com/gfwlist -server=/instagor.com/127.0.0.1#5335 -ipset=/instagor.com/gfwlist -server=/cheerwholesale.us/127.0.0.1#5335 -ipset=/cheerwholesale.us/gfwlist -server=/tsquare.tv/127.0.0.1#5335 -ipset=/tsquare.tv/gfwlist +server=/vintageamateurporn.com/127.0.0.1#5335 +ipset=/vintageamateurporn.com/gfwlist server=/jsdelivr.com/127.0.0.1#5335 ipset=/jsdelivr.com/gfwlist -server=/cheapbagshoes.com/127.0.0.1#5335 -ipset=/cheapbagshoes.com/gfwlist -server=/ebayshopping.org/127.0.0.1#5335 -ipset=/ebayshopping.org/gfwlist +server=/sexvr.com/127.0.0.1#5335 +ipset=/sexvr.com/gfwlist server=/bmwproductnews.com/127.0.0.1#5335 ipset=/bmwproductnews.com/gfwlist server=/spotify.com/127.0.0.1#5335 ipset=/spotify.com/gfwlist -server=/ebayedu.com/127.0.0.1#5335 -ipset=/ebayedu.com/gfwlist -server=/mastercard.com.tr/127.0.0.1#5335 -ipset=/mastercard.com.tr/gfwlist -server=/starbucksslovakia.sk/127.0.0.1#5335 -ipset=/starbucksslovakia.sk/gfwlist -server=/ipa-iphone.net/127.0.0.1#5335 -ipset=/ipa-iphone.net/gfwlist -server=/directvbusinessmarket.com/127.0.0.1#5335 -ipset=/directvbusinessmarket.com/gfwlist -server=/starbucksromania.ro/127.0.0.1#5335 -ipset=/starbucksromania.ro/gfwlist -server=/starbucksrewardsstarland.ca/127.0.0.1#5335 -ipset=/starbucksrewardsstarland.ca/gfwlist +server=/blogspot.pe/127.0.0.1#5335 +ipset=/blogspot.pe/gfwlist +server=/vod360.net/127.0.0.1#5335 +ipset=/vod360.net/gfwlist server=/cisco.com/127.0.0.1#5335 ipset=/cisco.com/gfwlist server=/myfreecams.com/127.0.0.1#5335 ipset=/myfreecams.com/gfwlist -server=/starbucksreserve.com/127.0.0.1#5335 -ipset=/starbucksreserve.com/gfwlist -server=/sony.com.mk/127.0.0.1#5335 -ipset=/sony.com.mk/gfwlist server=/linuxfromscratch.org/127.0.0.1#5335 ipset=/linuxfromscratch.org/gfwlist -server=/swtor.net/127.0.0.1#5335 -ipset=/swtor.net/gfwlist -server=/starbucksforlife.com/127.0.0.1#5335 -ipset=/starbucksforlife.com/gfwlist server=/bmw-connecteddrive.com.kw/127.0.0.1#5335 ipset=/bmw-connecteddrive.com.kw/gfwlist server=/dettol.hu/127.0.0.1#5335 ipset=/dettol.hu/gfwlist -server=/starbucksforlife.ca/127.0.0.1#5335 -ipset=/starbucksforlife.ca/gfwlist server=/buypass.no/127.0.0.1#5335 ipset=/buypass.no/gfwlist -server=/starbuckscoffeegearstore.com/127.0.0.1#5335 -ipset=/starbuckscoffeegearstore.com/gfwlist -server=/foxcincy.jobs/127.0.0.1#5335 -ipset=/foxcincy.jobs/gfwlist -server=/youtube.com.gh/127.0.0.1#5335 -ipset=/youtube.com.gh/gfwlist -server=/starbuckscoffee.cz/127.0.0.1#5335 -ipset=/starbuckscoffee.cz/gfwlist +server=/4greedy.com/127.0.0.1#5335 +ipset=/4greedy.com/gfwlist +server=/device-manager.us/127.0.0.1#5335 +ipset=/device-manager.us/gfwlist server=/abema.tv/127.0.0.1#5335 ipset=/abema.tv/gfwlist -server=/uug23.com/127.0.0.1#5335 -ipset=/uug23.com/gfwlist -server=/starbuckscard.ph/127.0.0.1#5335 -ipset=/starbuckscard.ph/gfwlist -server=/expresswifi.com/127.0.0.1#5335 -ipset=/expresswifi.com/gfwlist -server=/exascale-tech.com/127.0.0.1#5335 -ipset=/exascale-tech.com/gfwlist -server=/starbucksavie.ca/127.0.0.1#5335 -ipset=/starbucksavie.ca/gfwlist -server=/strepsils.ro/127.0.0.1#5335 -ipset=/strepsils.ro/gfwlist -server=/snap.com/127.0.0.1#5335 -ipset=/snap.com/gfwlist -server=/starbucks.tt/127.0.0.1#5335 -ipset=/starbucks.tt/gfwlist -server=/starbucks.se/127.0.0.1#5335 -ipset=/starbucks.se/gfwlist -server=/starbucks.ru/127.0.0.1#5335 -ipset=/starbucks.ru/gfwlist -server=/starbucks.rs/127.0.0.1#5335 -ipset=/starbucks.rs/gfwlist -server=/starbucks.pt/127.0.0.1#5335 -ipset=/starbucks.pt/gfwlist +server=/biggggg.com/127.0.0.1#5335 +ipset=/biggggg.com/gfwlist +server=/poopee-puke.com/127.0.0.1#5335 +ipset=/poopee-puke.com/gfwlist server=/hackfacebookid.com/127.0.0.1#5335 ipset=/hackfacebookid.com/gfwlist -server=/starbucks.pl/127.0.0.1#5335 -ipset=/starbucks.pl/gfwlist -server=/useplannr.com/127.0.0.1#5335 -ipset=/useplannr.com/gfwlist server=/sony.com.hn/127.0.0.1#5335 ipset=/sony.com.hn/gfwlist -server=/starbucks.no/127.0.0.1#5335 -ipset=/starbucks.no/gfwlist -server=/starbucks.nl/127.0.0.1#5335 -ipset=/starbucks.nl/gfwlist -server=/starbucks.in/127.0.0.1#5335 -ipset=/starbucks.in/gfwlist -server=/bloomberglive.com/127.0.0.1#5335 -ipset=/bloomberglive.com/gfwlist -server=/starbucks.hu/127.0.0.1#5335 -ipset=/starbucks.hu/gfwlist +server=/amateurwivesvideos.com/127.0.0.1#5335 +ipset=/amateurwivesvideos.com/gfwlist +server=/cios.org/127.0.0.1#5335 +ipset=/cios.org/gfwlist server=/inlethd.com/127.0.0.1#5335 ipset=/inlethd.com/gfwlist server=/ytimg.com/127.0.0.1#5335 ipset=/ytimg.com/gfwlist -server=/espn.co.uk/127.0.0.1#5335 -ipset=/espn.co.uk/gfwlist server=/zohopublic.com/127.0.0.1#5335 ipset=/zohopublic.com/gfwlist -server=/disney.hu/127.0.0.1#5335 -ipset=/disney.hu/gfwlist -server=/mastercard.com.vn/127.0.0.1#5335 -ipset=/mastercard.com.vn/gfwlist -server=/starbucks.com.uy/127.0.0.1#5335 -ipset=/starbucks.com.uy/gfwlist -server=/bmw-connecteddrive.es/127.0.0.1#5335 -ipset=/bmw-connecteddrive.es/gfwlist +server=/transarmuito.com/127.0.0.1#5335 +ipset=/transarmuito.com/gfwlist +server=/javmost.xyz/127.0.0.1#5335 +ipset=/javmost.xyz/gfwlist +server=/pornimg.xyz/127.0.0.1#5335 +ipset=/pornimg.xyz/gfwlist server=/bandag.com/127.0.0.1#5335 ipset=/bandag.com/gfwlist -server=/zeeentertainment.com/127.0.0.1#5335 -ipset=/zeeentertainment.com/gfwlist -server=/visanet.net/127.0.0.1#5335 -ipset=/visanet.net/gfwlist -server=/paper-attachments.s3.amazonaws.com/127.0.0.1#5335 -ipset=/paper-attachments.s3.amazonaws.com/gfwlist server=/rbsgr.com/127.0.0.1#5335 ipset=/rbsgr.com/gfwlist -server=/starbucks.com.sg/127.0.0.1#5335 -ipset=/starbucks.com.sg/gfwlist -server=/bmwmyanmar.com/127.0.0.1#5335 -ipset=/bmwmyanmar.com/gfwlist -server=/starbucks.com.pe/127.0.0.1#5335 -ipset=/starbucks.com.pe/gfwlist -server=/starbucks.com.my/127.0.0.1#5335 -ipset=/starbucks.com.my/gfwlist -server=/sony.com.gt/127.0.0.1#5335 -ipset=/sony.com.gt/gfwlist -server=/starbucks.com.mx/127.0.0.1#5335 -ipset=/starbucks.com.mx/gfwlist +server=/nailedhard.com/127.0.0.1#5335 +ipset=/nailedhard.com/gfwlist +server=/itcanwait.com/127.0.0.1#5335 +ipset=/itcanwait.com/gfwlist server=/bmw.com.mx/127.0.0.1#5335 ipset=/bmw.com.mx/gfwlist -server=/intel.wf/127.0.0.1#5335 -ipset=/intel.wf/gfwlist -server=/starbucks.com.kz/127.0.0.1#5335 -ipset=/starbucks.com.kz/gfwlist -server=/cbssvideo.com/127.0.0.1#5335 -ipset=/cbssvideo.com/gfwlist -server=/hottestheadphonesonline.com/127.0.0.1#5335 -ipset=/hottestheadphonesonline.com/gfwlist -server=/acheterfollowersinstagram.com/127.0.0.1#5335 -ipset=/acheterfollowersinstagram.com/gfwlist -server=/nike.gy/127.0.0.1#5335 -ipset=/nike.gy/gfwlist -server=/starbucks.com.hk/127.0.0.1#5335 -ipset=/starbucks.com.hk/gfwlist -server=/starbucks.com.cy/127.0.0.1#5335 -ipset=/starbucks.com.cy/gfwlist -server=/starbucks.com/127.0.0.1#5335 -ipset=/starbucks.com/gfwlist -server=/starbucks.co.za/127.0.0.1#5335 -ipset=/starbucks.co.za/gfwlist -server=/slack.com/127.0.0.1#5335 -ipset=/slack.com/gfwlist -server=/gputechconf.com/127.0.0.1#5335 -ipset=/gputechconf.com/gfwlist -server=/starbucks.co.nz/127.0.0.1#5335 -ipset=/starbucks.co.nz/gfwlist +server=/bridgestonewx.com/127.0.0.1#5335 +ipset=/bridgestonewx.com/gfwlist +server=/questvisual.com/127.0.0.1#5335 +ipset=/questvisual.com/gfwlist +server=/avmoo.com/127.0.0.1#5335 +ipset=/avmoo.com/gfwlist +server=/thevirtualsexreview.com/127.0.0.1#5335 +ipset=/thevirtualsexreview.com/gfwlist server=/paypal-gpplus.com/127.0.0.1#5335 ipset=/paypal-gpplus.com/gfwlist -server=/starbucks.co.jp/127.0.0.1#5335 -ipset=/starbucks.co.jp/gfwlist -server=/starbucks.ca/127.0.0.1#5335 -ipset=/starbucks.ca/gfwlist -server=/mastercard.ru/127.0.0.1#5335 -ipset=/mastercard.ru/gfwlist -server=/nvidia.co.jp/127.0.0.1#5335 -ipset=/nvidia.co.jp/gfwlist -server=/bmw.co.kr/127.0.0.1#5335 -ipset=/bmw.co.kr/gfwlist -server=/watchdisneyfe.com/127.0.0.1#5335 -ipset=/watchdisneyfe.com/gfwlist server=/bitflyer.jp/127.0.0.1#5335 ipset=/bitflyer.jp/gfwlist server=/pinterest.se/127.0.0.1#5335 ipset=/pinterest.se/gfwlist -server=/visa.com.ag/127.0.0.1#5335 -ipset=/visa.com.ag/gfwlist -server=/mingwatch.com/127.0.0.1#5335 -ipset=/mingwatch.com/gfwlist -server=/swisstsa.ch/127.0.0.1#5335 -ipset=/swisstsa.ch/gfwlist -server=/starbucks.be/127.0.0.1#5335 -ipset=/starbucks.be/gfwlist server=/technics.com/127.0.0.1#5335 ipset=/technics.com/gfwlist -server=/universalpictures.com/127.0.0.1#5335 -ipset=/universalpictures.com/gfwlist -server=/starbucks.at/127.0.0.1#5335 -ipset=/starbucks.at/gfwlist -server=/starbucks-stars.com/127.0.0.1#5335 -ipset=/starbucks-stars.com/gfwlist -server=/gog-statics.com/127.0.0.1#5335 -ipset=/gog-statics.com/gfwlist -server=/sbuxcard.com/127.0.0.1#5335 -ipset=/sbuxcard.com/gfwlist server=/azuredns-prd.org/127.0.0.1#5335 ipset=/azuredns-prd.org/gfwlist -server=/sbux.com.my/127.0.0.1#5335 -ipset=/sbux.com.my/gfwlist -server=/thinkofliving.com/127.0.0.1#5335 -ipset=/thinkofliving.com/gfwlist -server=/watchinese.com/127.0.0.1#5335 -ipset=/watchinese.com/gfwlist +server=/spicybigtits.com/127.0.0.1#5335 +ipset=/spicybigtits.com/gfwlist server=/wix-code.com/127.0.0.1#5335 ipset=/wix-code.com/gfwlist server=/nikedunks.net/127.0.0.1#5335 ipset=/nikedunks.net/gfwlist -server=/realtor.com/127.0.0.1#5335 -ipset=/realtor.com/gfwlist -server=/codecademy.com/127.0.0.1#5335 -ipset=/codecademy.com/gfwlist -server=/cortanaskills.com/127.0.0.1#5335 -ipset=/cortanaskills.com/gfwlist server=/netflixinvestor.com/127.0.0.1#5335 ipset=/netflixinvestor.com/gfwlist -server=/realcommercial.com.au/127.0.0.1#5335 -ipset=/realcommercial.com.au/gfwlist -server=/rea.tech/127.0.0.1#5335 -ipset=/rea.tech/gfwlist -server=/bmw-motorrad-abudhabi.com/127.0.0.1#5335 -ipset=/bmw-motorrad-abudhabi.com/gfwlist -server=/paypal-status.com/127.0.0.1#5335 -ipset=/paypal-status.com/gfwlist -server=/rea.global/127.0.0.1#5335 -ipset=/rea.global/gfwlist -server=/googleblog.com/127.0.0.1#5335 -ipset=/googleblog.com/gfwlist -server=/hpgift.com/127.0.0.1#5335 -ipset=/hpgift.com/gfwlist +server=/hentainhaven.com/127.0.0.1#5335 +ipset=/hentainhaven.com/gfwlist +server=/scatolo-guromania.com/127.0.0.1#5335 +ipset=/scatolo-guromania.com/gfwlist server=/tvb.com.au/127.0.0.1#5335 ipset=/tvb.com.au/gfwlist server=/harpercollins.co.in/127.0.0.1#5335 ipset=/harpercollins.co.in/gfwlist -server=/rea-group.com/127.0.0.1#5335 -ipset=/rea-group.com/gfwlist server=/adwords-community.com/127.0.0.1#5335 ipset=/adwords-community.com/gfwlist -server=/escapestudios.co.uk/127.0.0.1#5335 -ipset=/escapestudios.co.uk/gfwlist -server=/rea-asia.com/127.0.0.1#5335 -ipset=/rea-asia.com/gfwlist -server=/proptiger.com/127.0.0.1#5335 -ipset=/proptiger.com/gfwlist -server=/mariosupersluggers.com/127.0.0.1#5335 -ipset=/mariosupersluggers.com/gfwlist -server=/adidas.com.sa/127.0.0.1#5335 -ipset=/adidas.com.sa/gfwlist +server=/redtubepremium.com/127.0.0.1#5335 +ipset=/redtubepremium.com/gfwlist +server=/fuckcuck.com/127.0.0.1#5335 +ipset=/fuckcuck.com/gfwlist server=/scholar.google.com.br/127.0.0.1#5335 ipset=/scholar.google.com.br/gfwlist -server=/myfun.com/127.0.0.1#5335 -ipset=/myfun.com/gfwlist -server=/watchespn.com/127.0.0.1#5335 -ipset=/watchespn.com/gfwlist -server=/beatsbydrefrcasquepascher.com/127.0.0.1#5335 -ipset=/beatsbydrefrcasquepascher.com/gfwlist -server=/moveaws.com/127.0.0.1#5335 -ipset=/moveaws.com/gfwlist -server=/monsterbeatsbydrebilligde.com/127.0.0.1#5335 -ipset=/monsterbeatsbydrebilligde.com/gfwlist -server=/byspotify.com/127.0.0.1#5335 -ipset=/byspotify.com/gfwlist -server=/ebayon.net/127.0.0.1#5335 -ipset=/ebayon.net/gfwlist -server=/move.com/127.0.0.1#5335 -ipset=/move.com/gfwlist -server=/makaan.com/127.0.0.1#5335 -ipset=/makaan.com/gfwlist -server=/intel.com.hk/127.0.0.1#5335 -ipset=/intel.com.hk/gfwlist -server=/visa.com.au/127.0.0.1#5335 -ipset=/visa.com.au/gfwlist +server=/nicovideo.jp/127.0.0.1#5335 +ipset=/nicovideo.jp/gfwlist +server=/facebooki.com/127.0.0.1#5335 +ipset=/facebooki.com/gfwlist +server=/ikea.eg/127.0.0.1#5335 +ipset=/ikea.eg/gfwlist +server=/scoretv.tv/127.0.0.1#5335 +ipset=/scoretv.tv/gfwlist +server=/bmw-connecteddrive.ca/127.0.0.1#5335 +ipset=/bmw-connecteddrive.ca/gfwlist server=/bmw-motorrad.com.au/127.0.0.1#5335 ipset=/bmw-motorrad.com.au/gfwlist -server=/windowsazure.com/127.0.0.1#5335 -ipset=/windowsazure.com/gfwlist -server=/iproperty.com.my/127.0.0.1#5335 -ipset=/iproperty.com.my/gfwlist -server=/iproperty.com/127.0.0.1#5335 -ipset=/iproperty.com/gfwlist -server=/ippstatic.com/127.0.0.1#5335 -ipset=/ippstatic.com/gfwlist -server=/inventorship.com.au/127.0.0.1#5335 -ipset=/inventorship.com.au/gfwlist +server=/kinkyfamily.com/127.0.0.1#5335 +ipset=/kinkyfamily.com/gfwlist +server=/crazylivecams.com/127.0.0.1#5335 +ipset=/crazylivecams.com/gfwlist server=/streamingdisney.net/127.0.0.1#5335 ipset=/streamingdisney.net/gfwlist -server=/shoppinguheadphones.com/127.0.0.1#5335 -ipset=/shoppinguheadphones.com/gfwlist -server=/housingcdn.com/127.0.0.1#5335 -ipset=/housingcdn.com/gfwlist -server=/ebayaustralia.com/127.0.0.1#5335 -ipset=/ebayaustralia.com/gfwlist +server=/hentaiprno.com/127.0.0.1#5335 +ipset=/hentaiprno.com/gfwlist server=/nextdigital.com.tw/127.0.0.1#5335 ipset=/nextdigital.com.tw/gfwlist -server=/hometrack.com.au/127.0.0.1#5335 -ipset=/hometrack.com.au/gfwlist -server=/nurofen.sk/127.0.0.1#5335 -ipset=/nurofen.sk/gfwlist -server=/directvpromotions.com/127.0.0.1#5335 -ipset=/directvpromotions.com/gfwlist -server=/durex.com.hr/127.0.0.1#5335 -ipset=/durex.com.hr/gfwlist -server=/reckittbenckiser.com/127.0.0.1#5335 -ipset=/reckittbenckiser.com/gfwlist -server=/reckitt.net/127.0.0.1#5335 -ipset=/reckitt.net/gfwlist -server=/rbspeakup.com/127.0.0.1#5335 -ipset=/rbspeakup.com/gfwlist +server=/fuckingfreemovies.com/127.0.0.1#5335 +ipset=/fuckingfreemovies.com/gfwlist server=/uber-assets.com/127.0.0.1#5335 ipset=/uber-assets.com/gfwlist -server=/rbrandlibrary.com/127.0.0.1#5335 -ipset=/rbrandlibrary.com/gfwlist -server=/rbplc.com/127.0.0.1#5335 -ipset=/rbplc.com/gfwlist -server=/rbnainternational.com/127.0.0.1#5335 -ipset=/rbnainternational.com/gfwlist -server=/finish.com.hr/127.0.0.1#5335 -ipset=/finish.com.hr/gfwlist +server=/adultdeepfakes.com/127.0.0.1#5335 +ipset=/adultdeepfakes.com/gfwlist +server=/mingkyaa.com/127.0.0.1#5335 +ipset=/mingkyaa.com/gfwlist server=/dropboxmail.com/127.0.0.1#5335 ipset=/dropboxmail.com/gfwlist -server=/elephantsdream.org/127.0.0.1#5335 -ipset=/elephantsdream.org/gfwlist -server=/rbmavericks.com/127.0.0.1#5335 -ipset=/rbmavericks.com/gfwlist -server=/beatsofdre-usa.com/127.0.0.1#5335 -ipset=/beatsofdre-usa.com/gfwlist -server=/rbgraduates.com/127.0.0.1#5335 -ipset=/rbgraduates.com/gfwlist +server=/topface.com/127.0.0.1#5335 +ipset=/topface.com/gfwlist +server=/ftchinese.com/127.0.0.1#5335 +ipset=/ftchinese.com/gfwlist server=/intel.bs/127.0.0.1#5335 ipset=/intel.bs/gfwlist -server=/bestbuy-int.com/127.0.0.1#5335 -ipset=/bestbuy-int.com/gfwlist -server=/rbeuroinfo.com/127.0.0.1#5335 -ipset=/rbeuroinfo.com/gfwlist -server=/rbdigitallab.com/127.0.0.1#5335 -ipset=/rbdigitallab.com/gfwlist -server=/nikeitaly.com/127.0.0.1#5335 -ipset=/nikeitaly.com/gfwlist -server=/theweek.in/127.0.0.1#5335 -ipset=/theweek.in/gfwlist -server=/disney.cz/127.0.0.1#5335 -ipset=/disney.cz/gfwlist -server=/beatsbydrdreus.com/127.0.0.1#5335 -ipset=/beatsbydrdreus.com/gfwlist -server=/rb.com/127.0.0.1#5335 -ipset=/rb.com/gfwlist -server=/sony.sk/127.0.0.1#5335 -ipset=/sony.sk/gfwlist -server=/macbook.co/127.0.0.1#5335 -ipset=/macbook.co/gfwlist -server=/woolitecarpet.com/127.0.0.1#5335 -ipset=/woolitecarpet.com/gfwlist -server=/woolite.us/127.0.0.1#5335 -ipset=/woolite.us/gfwlist -server=/mastercardcenter.org/127.0.0.1#5335 -ipset=/mastercardcenter.org/gfwlist -server=/woolite.pl/127.0.0.1#5335 -ipset=/woolite.pl/gfwlist -server=/userapi.com/127.0.0.1#5335 -ipset=/userapi.com/gfwlist -server=/finish.co.uk/127.0.0.1#5335 -ipset=/finish.co.uk/gfwlist -server=/woolite.ca/127.0.0.1#5335 -ipset=/woolite.ca/gfwlist +server=/cosmosdb.info/127.0.0.1#5335 +ipset=/cosmosdb.info/gfwlist +server=/inteliotmarketplace.com/127.0.0.1#5335 +ipset=/inteliotmarketplace.com/gfwlist +server=/xxxhub123.com/127.0.0.1#5335 +ipset=/xxxhub123.com/gfwlist +server=/eighteen-store18x.jp/127.0.0.1#5335 +ipset=/eighteen-store18x.jp/gfwlist server=/adsenseformobileapps.com/127.0.0.1#5335 ipset=/adsenseformobileapps.com/gfwlist -server=/veetclub.it/127.0.0.1#5335 -ipset=/veetclub.it/gfwlist +server=/hoge.7jp.info/127.0.0.1#5335 +ipset=/hoge.7jp.info/gfwlist server=/pa9pal.com/127.0.0.1#5335 ipset=/pa9pal.com/gfwlist -server=/aomedia.org/127.0.0.1#5335 -ipset=/aomedia.org/gfwlist -server=/cheapnikedunks.com/127.0.0.1#5335 -ipset=/cheapnikedunks.com/gfwlist -server=/lolstatic-a.akamaihd.net/127.0.0.1#5335 -ipset=/lolstatic-a.akamaihd.net/gfwlist -server=/veetarabia.com/127.0.0.1#5335 -ipset=/veetarabia.com/gfwlist -server=/dragoniscoming.com/127.0.0.1#5335 -ipset=/dragoniscoming.com/gfwlist -server=/discord.new/127.0.0.1#5335 -ipset=/discord.new/gfwlist -server=/gitlab.io/127.0.0.1#5335 -ipset=/gitlab.io/gfwlist -server=/applestore.co.ug/127.0.0.1#5335 -ipset=/applestore.co.ug/gfwlist -server=/llnw.com/127.0.0.1#5335 -ipset=/llnw.com/gfwlist -server=/pscdn.co/127.0.0.1#5335 -ipset=/pscdn.co/gfwlist -server=/sverigebeatsbydrdre.com/127.0.0.1#5335 -ipset=/sverigebeatsbydrdre.com/gfwlist -server=/bmwgroup.net/127.0.0.1#5335 -ipset=/bmwgroup.net/gfwlist -server=/igoshopping.net/127.0.0.1#5335 -ipset=/igoshopping.net/gfwlist -server=/veet.ru/127.0.0.1#5335 -ipset=/veet.ru/gfwlist -server=/intel.sr/127.0.0.1#5335 -ipset=/intel.sr/gfwlist -server=/veet.ro/127.0.0.1#5335 -ipset=/veet.ro/gfwlist -server=/veet.pt/127.0.0.1#5335 -ipset=/veet.pt/gfwlist -server=/veet.nl/127.0.0.1#5335 -ipset=/veet.nl/gfwlist -server=/shelfstuff.com/127.0.0.1#5335 -ipset=/shelfstuff.com/gfwlist -server=/veet.hu/127.0.0.1#5335 -ipset=/veet.hu/gfwlist -server=/veet.fr/127.0.0.1#5335 -ipset=/veet.fr/gfwlist -server=/veet.fi/127.0.0.1#5335 -ipset=/veet.fi/gfwlist -server=/veet.es/127.0.0.1#5335 -ipset=/veet.es/gfwlist -server=/blogoverflow.com/127.0.0.1#5335 -ipset=/blogoverflow.com/gfwlist -server=/pigav.com/127.0.0.1#5335 -ipset=/pigav.com/gfwlist -server=/keytransparency.org/127.0.0.1#5335 -ipset=/keytransparency.org/gfwlist -server=/veet.de/127.0.0.1#5335 -ipset=/veet.de/gfwlist -server=/veet.com.tr/127.0.0.1#5335 -ipset=/veet.com.tr/gfwlist +server=/paypalhere.com/127.0.0.1#5335 +ipset=/paypalhere.com/gfwlist +server=/estudiopenthouse.com/127.0.0.1#5335 +ipset=/estudiopenthouse.com/gfwlist +server=/nudevista.link/127.0.0.1#5335 +ipset=/nudevista.link/gfwlist +server=/sexy-torrents.com/127.0.0.1#5335 +ipset=/sexy-torrents.com/gfwlist +server=/pornkro.com/127.0.0.1#5335 +ipset=/pornkro.com/gfwlist +server=/ninpu.cyou/127.0.0.1#5335 +ipset=/ninpu.cyou/gfwlist +server=/animedao-tv.com/127.0.0.1#5335 +ipset=/animedao-tv.com/gfwlist +server=/asiangfvideos.com/127.0.0.1#5335 +ipset=/asiangfvideos.com/gfwlist +server=/tophdsex.com/127.0.0.1#5335 +ipset=/tophdsex.com/gfwlist server=/mini.it/127.0.0.1#5335 ipset=/mini.it/gfwlist -server=/veet.com.sg/127.0.0.1#5335 -ipset=/veet.com.sg/gfwlist -server=/apexprint.com.hk/127.0.0.1#5335 -ipset=/apexprint.com.hk/gfwlist server=/hpcampus.com/127.0.0.1#5335 ipset=/hpcampus.com/gfwlist server=/youtube.com.hr/127.0.0.1#5335 ipset=/youtube.com.hr/gfwlist server=/bigbigchannel.com.hk/127.0.0.1#5335 ipset=/bigbigchannel.com.hk/gfwlist -server=/12diasderegalosdeitunes.cr/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.cr/gfwlist -server=/bmw.com.py/127.0.0.1#5335 -ipset=/bmw.com.py/gfwlist server=/arcgisonline.com/127.0.0.1#5335 ipset=/arcgisonline.com/gfwlist -server=/veet.com.pk/127.0.0.1#5335 -ipset=/veet.com.pk/gfwlist -server=/verizonfios.com/127.0.0.1#5335 -ipset=/verizonfios.com/gfwlist -server=/veet.com.ph/127.0.0.1#5335 -ipset=/veet.com.ph/gfwlist -server=/pinterest.ch/127.0.0.1#5335 -ipset=/pinterest.ch/gfwlist -server=/rocksdb.com/127.0.0.1#5335 -ipset=/rocksdb.com/gfwlist -server=/meraki.hk/127.0.0.1#5335 -ipset=/meraki.hk/gfwlist -server=/veet.com.hk/127.0.0.1#5335 -ipset=/veet.com.hk/gfwlist -server=/veet.com.br/127.0.0.1#5335 -ipset=/veet.com.br/gfwlist +server=/doctor-videos.com/127.0.0.1#5335 +ipset=/doctor-videos.com/gfwlist +server=/pornsearchengine.com/127.0.0.1#5335 +ipset=/pornsearchengine.com/gfwlist +server=/steam.ru.qtlglb.com/127.0.0.1#5335 +ipset=/steam.ru.qtlglb.com/gfwlist +server=/onlycartoonsex.com/127.0.0.1#5335 +ipset=/onlycartoonsex.com/gfwlist server=/ntdvn.com/127.0.0.1#5335 ipset=/ntdvn.com/gfwlist -server=/sony.rs/127.0.0.1#5335 -ipset=/sony.rs/gfwlist -server=/veet.com.bd/127.0.0.1#5335 -ipset=/veet.com.bd/gfwlist -server=/veet.com.au/127.0.0.1#5335 -ipset=/veet.com.au/gfwlist -server=/durex.ie/127.0.0.1#5335 -ipset=/durex.ie/gfwlist -server=/gacebook.com/127.0.0.1#5335 -ipset=/gacebook.com/gfwlist -server=/veet.co.za/127.0.0.1#5335 -ipset=/veet.co.za/gfwlist -server=/nikecloud.com/127.0.0.1#5335 -ipset=/nikecloud.com/gfwlist server=/raspbian.org/127.0.0.1#5335 ipset=/raspbian.org/gfwlist -server=/veet.co.in/127.0.0.1#5335 -ipset=/veet.co.in/gfwlist server=/playoverwatch.com/127.0.0.1#5335 ipset=/playoverwatch.com/gfwlist -server=/veet.co.id/127.0.0.1#5335 -ipset=/veet.co.id/gfwlist -server=/ciscolearningsociety.org/127.0.0.1#5335 -ipset=/ciscolearningsociety.org/gfwlist -server=/bmw.gr/127.0.0.1#5335 -ipset=/bmw.gr/gfwlist +server=/tsuradou.noonvob.com/127.0.0.1#5335 +ipset=/tsuradou.noonvob.com/gfwlist +server=/mini-dubai.com/127.0.0.1#5335 +ipset=/mini-dubai.com/gfwlist server=/durex.com.sg/127.0.0.1#5335 ipset=/durex.com.sg/gfwlist server=/garena.tw/127.0.0.1#5335 ipset=/garena.tw/gfwlist server=/canon.com.al/127.0.0.1#5335 ipset=/canon.com.al/gfwlist -server=/veet.ch/127.0.0.1#5335 -ipset=/veet.ch/gfwlist -server=/veet.ca/127.0.0.1#5335 -ipset=/veet.ca/gfwlist -server=/jwplatform.com/127.0.0.1#5335 -ipset=/jwplatform.com/gfwlist server=/ilife.eu/127.0.0.1#5335 ipset=/ilife.eu/gfwlist -server=/veet.at/127.0.0.1#5335 -ipset=/veet.at/gfwlist -server=/vanishinfo.cz/127.0.0.1#5335 -ipset=/vanishinfo.cz/gfwlist -server=/vanishbancaseulook.com.br/127.0.0.1#5335 -ipset=/vanishbancaseulook.com.br/gfwlist -server=/vanisharabia.com/127.0.0.1#5335 -ipset=/vanisharabia.com/gfwlist -server=/vanish.sk/127.0.0.1#5335 -ipset=/vanish.sk/gfwlist -server=/vanish.se/127.0.0.1#5335 -ipset=/vanish.se/gfwlist -server=/nineentertainment.com.au/127.0.0.1#5335 -ipset=/nineentertainment.com.au/gfwlist -server=/flathub.org/127.0.0.1#5335 -ipset=/flathub.org/gfwlist -server=/uoherald.com/127.0.0.1#5335 -ipset=/uoherald.com/gfwlist -server=/ebahy.com/127.0.0.1#5335 -ipset=/ebahy.com/gfwlist +server=/pornxp.com/127.0.0.1#5335 +ipset=/pornxp.com/gfwlist +server=/google.co.mz/127.0.0.1#5335 +ipset=/google.co.mz/gfwlist +server=/pretty-ass.xyz/127.0.0.1#5335 +ipset=/pretty-ass.xyz/gfwlist server=/bmwbikes.com/127.0.0.1#5335 ipset=/bmwbikes.com/gfwlist -server=/squareup.com/127.0.0.1#5335 -ipset=/squareup.com/gfwlist -server=/vanish.pl/127.0.0.1#5335 -ipset=/vanish.pl/gfwlist server=/sling.com/127.0.0.1#5335 ipset=/sling.com/gfwlist -server=/dragonagemovie.com/127.0.0.1#5335 -ipset=/dragonagemovie.com/gfwlist -server=/googil.com/127.0.0.1#5335 -ipset=/googil.com/gfwlist server=/monstershopcheapbeats.net/127.0.0.1#5335 ipset=/monstershopcheapbeats.net/gfwlist -server=/1monsterbeatsbydreus.com/127.0.0.1#5335 -ipset=/1monsterbeatsbydreus.com/gfwlist -server=/vanish.hu/127.0.0.1#5335 -ipset=/vanish.hu/gfwlist +server=/shopee.in/127.0.0.1#5335 +ipset=/shopee.in/gfwlist server=/quicktake.video/127.0.0.1#5335 ipset=/quicktake.video/gfwlist -server=/mastercard.inc/127.0.0.1#5335 -ipset=/mastercard.inc/gfwlist server=/gamebeforethegame.com/127.0.0.1#5335 ipset=/gamebeforethegame.com/gfwlist server=/apple.sg/127.0.0.1#5335 ipset=/apple.sg/gfwlist -server=/paypal-brandcentral.com/127.0.0.1#5335 -ipset=/paypal-brandcentral.com/gfwlist -server=/trustedanalytics.net/127.0.0.1#5335 -ipset=/trustedanalytics.net/gfwlist server=/akamaietpcompromisedmalwaretest.com/127.0.0.1#5335 ipset=/akamaietpcompromisedmalwaretest.com/gfwlist -server=/vanish.fr/127.0.0.1#5335 -ipset=/vanish.fr/gfwlist -server=/friendfeedmedia.com/127.0.0.1#5335 -ipset=/friendfeedmedia.com/gfwlist server=/cell.com/127.0.0.1#5335 ipset=/cell.com/gfwlist server=/dell.com/127.0.0.1#5335 ipset=/dell.com/gfwlist -server=/vanish.fi/127.0.0.1#5335 -ipset=/vanish.fi/gfwlist server=/garena.co.id/127.0.0.1#5335 ipset=/garena.co.id/gfwlist -server=/cloudburstresearch.com/127.0.0.1#5335 -ipset=/cloudburstresearch.com/gfwlist -server=/vanish.dk/127.0.0.1#5335 -ipset=/vanish.dk/gfwlist -server=/vanish.de/127.0.0.1#5335 -ipset=/vanish.de/gfwlist -server=/vanish.com.sg/127.0.0.1#5335 -ipset=/vanish.com.sg/gfwlist -server=/vanish.com.pe/127.0.0.1#5335 -ipset=/vanish.com.pe/gfwlist -server=/vanish.com.my/127.0.0.1#5335 -ipset=/vanish.com.my/gfwlist -server=/vanish.com.mx/127.0.0.1#5335 -ipset=/vanish.com.mx/gfwlist +server=/sex4arabxxx.com/127.0.0.1#5335 +ipset=/sex4arabxxx.com/gfwlist +server=/ebsco.com/127.0.0.1#5335 +ipset=/ebsco.com/gfwlist server=/whatsapp-plus.info/127.0.0.1#5335 ipset=/whatsapp-plus.info/gfwlist -server=/vanish.com.hr/127.0.0.1#5335 -ipset=/vanish.com.hr/gfwlist -server=/cheapwireless04.com/127.0.0.1#5335 -ipset=/cheapwireless04.com/gfwlist -server=/tenbyfotolia.com/127.0.0.1#5335 -ipset=/tenbyfotolia.com/gfwlist -server=/springernature.com/127.0.0.1#5335 -ipset=/springernature.com/gfwlist server=/itools.info/127.0.0.1#5335 ipset=/itools.info/gfwlist -server=/themarvelexperiencetour.com/127.0.0.1#5335 -ipset=/themarvelexperiencetour.com/gfwlist -server=/vanish.co.nz/127.0.0.1#5335 -ipset=/vanish.co.nz/gfwlist -server=/mini-windsor.ca/127.0.0.1#5335 -ipset=/mini-windsor.ca/gfwlist +server=/trannytube.tv/127.0.0.1#5335 +ipset=/trannytube.tv/gfwlist +server=/pornicom.com/127.0.0.1#5335 +ipset=/pornicom.com/gfwlist server=/slinginternational.com/127.0.0.1#5335 ipset=/slinginternational.com/gfwlist server=/pinterest.co/127.0.0.1#5335 ipset=/pinterest.co/gfwlist -server=/vanish.co.il/127.0.0.1#5335 -ipset=/vanish.co.il/gfwlist -server=/stc-server.com/127.0.0.1#5335 -ipset=/stc-server.com/gfwlist -server=/fbcdn-a.akamaihd.net/127.0.0.1#5335 -ipset=/fbcdn-a.akamaihd.net/gfwlist -server=/instagram-help.com/127.0.0.1#5335 -ipset=/instagram-help.com/gfwlist +server=/theporndude.cc/127.0.0.1#5335 +ipset=/theporndude.cc/gfwlist server=/cilk.com/127.0.0.1#5335 ipset=/cilk.com/gfwlist -server=/cheapdrdrebeats8.com/127.0.0.1#5335 -ipset=/cheapdrdrebeats8.com/gfwlist -server=/vanish.be/127.0.0.1#5335 -ipset=/vanish.be/gfwlist -server=/spraynwash.com/127.0.0.1#5335 -ipset=/spraynwash.com/gfwlist -server=/javhd.pro/127.0.0.1#5335 -ipset=/javhd.pro/gfwlist -server=/foxsports.sv/127.0.0.1#5335 -ipset=/foxsports.sv/gfwlist +server=/cuckoldinterracialporn.com/127.0.0.1#5335 +ipset=/cuckoldinterracialporn.com/gfwlist +server=/clinicalkey.com/127.0.0.1#5335 +ipset=/clinicalkey.com/gfwlist +server=/nurxxx.mobi/127.0.0.1#5335 +ipset=/nurxxx.mobi/gfwlist server=/volvotrucks.cz/127.0.0.1#5335 ipset=/volvotrucks.cz/gfwlist -server=/nurofen.de/127.0.0.1#5335 -ipset=/nurofen.de/gfwlist -server=/ycombinator.com/127.0.0.1#5335 -ipset=/ycombinator.com/gfwlist server=/intel.mp/127.0.0.1#5335 ipset=/intel.mp/gfwlist -server=/intel.com.ph/127.0.0.1#5335 -ipset=/intel.com.ph/gfwlist -server=/hpwsn.com/127.0.0.1#5335 -ipset=/hpwsn.com/gfwlist -server=/o2action.co.kr/127.0.0.1#5335 -ipset=/o2action.co.kr/gfwlist -server=/strepsils.us/127.0.0.1#5335 -ipset=/strepsils.us/gfwlist -server=/mini.co.uk/127.0.0.1#5335 -ipset=/mini.co.uk/gfwlist -server=/strepsils.ru/127.0.0.1#5335 -ipset=/strepsils.ru/gfwlist -server=/ichineseporn.com/127.0.0.1#5335 -ipset=/ichineseporn.com/gfwlist server=/starbucks.vn/127.0.0.1#5335 ipset=/starbucks.vn/gfwlist -server=/qwapi.com/127.0.0.1#5335 -ipset=/qwapi.com/gfwlist -server=/strepsils.pt/127.0.0.1#5335 -ipset=/strepsils.pt/gfwlist -server=/attsavings.com/127.0.0.1#5335 -ipset=/attsavings.com/gfwlist +server=/freexxx.best/127.0.0.1#5335 +ipset=/freexxx.best/gfwlist +server=/edge.steam-dns.top.comcast.net/127.0.0.1#5335 +ipset=/edge.steam-dns.top.comcast.net/gfwlist server=/sony.co.kr/127.0.0.1#5335 ipset=/sony.co.kr/gfwlist -server=/lysol.com/127.0.0.1#5335 -ipset=/lysol.com/gfwlist -server=/foxsportsla.com/127.0.0.1#5335 -ipset=/foxsportsla.com/gfwlist -server=/timelinestoryteller.com/127.0.0.1#5335 -ipset=/timelinestoryteller.com/gfwlist -server=/strepsils.pl/127.0.0.1#5335 -ipset=/strepsils.pl/gfwlist -server=/vmworld.com/127.0.0.1#5335 -ipset=/vmworld.com/gfwlist -server=/sonybuilding.jp/127.0.0.1#5335 -ipset=/sonybuilding.jp/gfwlist -server=/strepsils.net/127.0.0.1#5335 -ipset=/strepsils.net/gfwlist -server=/strepsils.ie/127.0.0.1#5335 -ipset=/strepsils.ie/gfwlist -server=/appleone.film/127.0.0.1#5335 -ipset=/appleone.film/gfwlist -server=/strepsils.fr/127.0.0.1#5335 -ipset=/strepsils.fr/gfwlist -server=/strepsils.fi/127.0.0.1#5335 -ipset=/strepsils.fi/gfwlist -server=/disneyaulani.com/127.0.0.1#5335 -ipset=/disneyaulani.com/gfwlist +server=/nenitas.club/127.0.0.1#5335 +ipset=/nenitas.club/gfwlist +server=/roshy.tv/127.0.0.1#5335 +ipset=/roshy.tv/gfwlist +server=/vkuserlive.net/127.0.0.1#5335 +ipset=/vkuserlive.net/gfwlist +server=/moviesneek.com/127.0.0.1#5335 +ipset=/moviesneek.com/gfwlist +server=/zoohun.com/127.0.0.1#5335 +ipset=/zoohun.com/gfwlist +server=/lsawards.com/127.0.0.1#5335 +ipset=/lsawards.com/gfwlist server=/z5.app/127.0.0.1#5335 ipset=/z5.app/gfwlist -server=/strepsils.es/127.0.0.1#5335 -ipset=/strepsils.es/gfwlist -server=/strepsils.com.hk/127.0.0.1#5335 -ipset=/strepsils.com.hk/gfwlist -server=/strepsils.com.au/127.0.0.1#5335 -ipset=/strepsils.com.au/gfwlist -server=/disneymagicmoments.gen.tr/127.0.0.1#5335 -ipset=/disneymagicmoments.gen.tr/gfwlist -server=/google.ventures/127.0.0.1#5335 -ipset=/google.ventures/gfwlist -server=/monster-beats-by-dr-dre.com/127.0.0.1#5335 -ipset=/monster-beats-by-dr-dre.com/gfwlist +server=/bejeweledstars.com/127.0.0.1#5335 +ipset=/bejeweledstars.com/gfwlist server=/momomall.com.tw/127.0.0.1#5335 ipset=/momomall.com.tw/gfwlist -server=/directvrebate.com/127.0.0.1#5335 -ipset=/directvrebate.com/gfwlist -server=/strepsils.co.nz/127.0.0.1#5335 -ipset=/strepsils.co.nz/gfwlist -server=/heroesofdragonage.com/127.0.0.1#5335 -ipset=/heroesofdragonage.com/gfwlist -server=/cheapbeatsshopbydre.com/127.0.0.1#5335 -ipset=/cheapbeatsshopbydre.com/gfwlist +server=/grannygetsafacial.com/127.0.0.1#5335 +ipset=/grannygetsafacial.com/gfwlist +server=/binancezh.cc/127.0.0.1#5335 +ipset=/binancezh.cc/gfwlist +server=/newlineporn.com/127.0.0.1#5335 +ipset=/newlineporn.com/gfwlist server=/plos.org/127.0.0.1#5335 ipset=/plos.org/gfwlist -server=/workstations.tv/127.0.0.1#5335 -ipset=/workstations.tv/gfwlist -server=/strepsils.at/127.0.0.1#5335 -ipset=/strepsils.at/gfwlist -server=/jav168.cc/127.0.0.1#5335 -ipset=/jav168.cc/gfwlist -server=/dobendan.de/127.0.0.1#5335 -ipset=/dobendan.de/gfwlist -server=/cepacol.com/127.0.0.1#5335 -ipset=/cepacol.com/gfwlist -server=/deviantart.com/127.0.0.1#5335 -ipset=/deviantart.com/gfwlist -server=/apyle.com/127.0.0.1#5335 -ipset=/apyle.com/gfwlist -server=/nurofensk-prod-env.eu-west-1.elasticbeanstalk.com/127.0.0.1#5335 -ipset=/nurofensk-prod-env.eu-west-1.elasticbeanstalk.com/gfwlist -server=/visadigital.com/127.0.0.1#5335 -ipset=/visadigital.com/gfwlist +server=/3lib.net/127.0.0.1#5335 +ipset=/3lib.net/gfwlist +server=/scholar.google.com.uy/127.0.0.1#5335 +ipset=/scholar.google.com.uy/gfwlist server=/hackday.com.au/127.0.0.1#5335 ipset=/hackday.com.au/gfwlist -server=/yibei.org/127.0.0.1#5335 -ipset=/yibei.org/gfwlist -server=/nurofen.pt/127.0.0.1#5335 -ipset=/nurofen.pt/gfwlist -server=/realamericanstories.org/127.0.0.1#5335 -ipset=/realamericanstories.org/gfwlist +server=/miniso.ie/127.0.0.1#5335 +ipset=/miniso.ie/gfwlist server=/volvopenta.fr/127.0.0.1#5335 ipset=/volvopenta.fr/gfwlist -server=/finish.gr/127.0.0.1#5335 -ipset=/finish.gr/gfwlist -server=/nurofen.pl/127.0.0.1#5335 -ipset=/nurofen.pl/gfwlist -server=/ebayd.com/127.0.0.1#5335 -ipset=/ebayd.com/gfwlist -server=/nurofen.it/127.0.0.1#5335 -ipset=/nurofen.it/gfwlist +server=/hanime.xxx/127.0.0.1#5335 +ipset=/hanime.xxx/gfwlist +server=/aoaou.iillii.net/127.0.0.1#5335 +ipset=/aoaou.iillii.net/gfwlist server=/picasaweb.org/127.0.0.1#5335 ipset=/picasaweb.org/gfwlist -server=/fbsupport-covid.net/127.0.0.1#5335 -ipset=/fbsupport-covid.net/gfwlist -server=/globalsign-media.com/127.0.0.1#5335 -ipset=/globalsign-media.com/gfwlist -server=/nurofen.es/127.0.0.1#5335 -ipset=/nurofen.es/gfwlist -server=/nurofen.co.za/127.0.0.1#5335 -ipset=/nurofen.co.za/gfwlist -server=/mediachinese.com/127.0.0.1#5335 -ipset=/mediachinese.com/gfwlist server=/nikeaustralia.com/127.0.0.1#5335 ipset=/nikeaustralia.com/gfwlist server=/firestonecomercial.com.co/127.0.0.1#5335 ipset=/firestonecomercial.com.co/gfwlist server=/bookstagram.com/127.0.0.1#5335 ipset=/bookstagram.com/gfwlist -server=/vfsco.fi/127.0.0.1#5335 -ipset=/vfsco.fi/gfwlist -server=/1to1conference.com.au/127.0.0.1#5335 -ipset=/1to1conference.com.au/gfwlist -server=/nurofen.co.nz/127.0.0.1#5335 -ipset=/nurofen.co.nz/gfwlist -server=/nurofen.co.il/127.0.0.1#5335 -ipset=/nurofen.co.il/gfwlist -server=/atom.io/127.0.0.1#5335 -ipset=/atom.io/gfwlist +server=/vanish.com.hr/127.0.0.1#5335 +ipset=/vanish.com.hr/gfwlist server=/intel.rw/127.0.0.1#5335 ipset=/intel.rw/gfwlist -server=/drbl.in/127.0.0.1#5335 -ipset=/drbl.in/gfwlist server=/marketwatch.com/127.0.0.1#5335 ipset=/marketwatch.com/gfwlist -server=/mucinex.tv/127.0.0.1#5335 -ipset=/mucinex.tv/gfwlist -server=/mucinex.net/127.0.0.1#5335 -ipset=/mucinex.net/gfwlist -server=/peacocktv.com/127.0.0.1#5335 -ipset=/peacocktv.com/gfwlist -server=/mucinex.com/127.0.0.1#5335 -ipset=/mucinex.com/gfwlist -server=/mucinex.ca/127.0.0.1#5335 -ipset=/mucinex.ca/gfwlist -server=/schiffvitamins.com/127.0.0.1#5335 -ipset=/schiffvitamins.com/gfwlist server=/bmwmass.net/127.0.0.1#5335 ipset=/bmwmass.net/gfwlist -server=/movefreerewards.com/127.0.0.1#5335 -ipset=/movefreerewards.com/gfwlist -server=/pifpafarabia.com/127.0.0.1#5335 -ipset=/pifpafarabia.com/gfwlist +server=/hotcandyland.com/127.0.0.1#5335 +ipset=/hotcandyland.com/gfwlist server=/oculus-china.com/127.0.0.1#5335 ipset=/oculus-china.com/gfwlist -server=/mortein.com.ng/127.0.0.1#5335 -ipset=/mortein.com.ng/gfwlist -server=/globalsign.co.uk/127.0.0.1#5335 -ipset=/globalsign.co.uk/gfwlist -server=/verisign.in/127.0.0.1#5335 -ipset=/verisign.in/gfwlist +server=/twitpic.com/127.0.0.1#5335 +ipset=/twitpic.com/gfwlist +server=/ebaybenefits.com/127.0.0.1#5335 +ipset=/ebaybenefits.com/gfwlist server=/google.vu/127.0.0.1#5335 ipset=/google.vu/gfwlist -server=/mortein.com.br/127.0.0.1#5335 -ipset=/mortein.com.br/gfwlist -server=/gale.com/127.0.0.1#5335 -ipset=/gale.com/gfwlist +server=/casimages.com/127.0.0.1#5335 +ipset=/casimages.com/gfwlist +server=/xcams.com/127.0.0.1#5335 +ipset=/xcams.com/gfwlist server=/webhosting.com/127.0.0.1#5335 ipset=/webhosting.com/gfwlist -server=/mortein.com/127.0.0.1#5335 -ipset=/mortein.com/gfwlist server=/pubmatic.com/127.0.0.1#5335 ipset=/pubmatic.com/gfwlist -server=/fotolia.tv/127.0.0.1#5335 -ipset=/fotolia.tv/gfwlist -server=/luckyissue.com/127.0.0.1#5335 -ipset=/luckyissue.com/gfwlist -server=/meadjohnson.com.tw/127.0.0.1#5335 -ipset=/meadjohnson.com.tw/gfwlist -server=/meadjohnson.com.hk/127.0.0.1#5335 -ipset=/meadjohnson.com.hk/gfwlist -server=/meadjohnson.com/127.0.0.1#5335 -ipset=/meadjohnson.com/gfwlist -server=/lysol.ca/127.0.0.1#5335 -ipset=/lysol.ca/gfwlist -server=/finishwin.be/127.0.0.1#5335 -ipset=/finishwin.be/gfwlist -server=/cheapdrdrebeatsca.com/127.0.0.1#5335 -ipset=/cheapdrdrebeatsca.com/gfwlist -server=/epochtimeshk.org/127.0.0.1#5335 -ipset=/epochtimeshk.org/gfwlist -server=/finishinfo.ru/127.0.0.1#5335 -ipset=/finishinfo.ru/gfwlist -server=/volvotrucks.md/127.0.0.1#5335 -ipset=/volvotrucks.md/gfwlist +server=/xvideo.run/127.0.0.1#5335 +ipset=/xvideo.run/gfwlist +server=/myavok.com/127.0.0.1#5335 +ipset=/myavok.com/gfwlist +server=/erothots.co/127.0.0.1#5335 +ipset=/erothots.co/gfwlist +server=/cartoonpornonly.com/127.0.0.1#5335 +ipset=/cartoonpornonly.com/gfwlist server=/beatsfranceofficiel.com/127.0.0.1#5335 ipset=/beatsfranceofficiel.com/gfwlist server=/azuremarketplace.microsoft.com/127.0.0.1#5335 ipset=/azuremarketplace.microsoft.com/gfwlist -server=/wiisports.com/127.0.0.1#5335 -ipset=/wiisports.com/gfwlist -server=/finishinfo.fi/127.0.0.1#5335 -ipset=/finishinfo.fi/gfwlist -server=/finishinfo.cz/127.0.0.1#5335 -ipset=/finishinfo.cz/gfwlist +server=/sissy.eu.org/127.0.0.1#5335 +ipset=/sissy.eu.org/gfwlist server=/scholar.google.co.za/127.0.0.1#5335 ipset=/scholar.google.co.za/gfwlist -server=/12diasderegalosdeitunes.co.ve/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.co.ve/gfwlist -server=/cheapbeatsheadphone2014.com/127.0.0.1#5335 -ipset=/cheapbeatsheadphone2014.com/gfwlist -server=/finishinfo.com.ar/127.0.0.1#5335 -ipset=/finishinfo.com.ar/gfwlist -server=/appleone.community/127.0.0.1#5335 -ipset=/appleone.community/gfwlist -server=/saynow.com/127.0.0.1#5335 -ipset=/saynow.com/gfwlist -server=/finishinfo.cl/127.0.0.1#5335 -ipset=/finishinfo.cl/gfwlist -server=/fcfacebook.com/127.0.0.1#5335 -ipset=/fcfacebook.com/gfwlist +server=/gaystream.pw/127.0.0.1#5335 +ipset=/gaystream.pw/gfwlist +server=/indienudes.com/127.0.0.1#5335 +ipset=/indienudes.com/gfwlist server=/x99av.com/127.0.0.1#5335 ipset=/x99av.com/gfwlist server=/uuk28.com/127.0.0.1#5335 ipset=/uuk28.com/gfwlist -server=/finishdishwashing.com/127.0.0.1#5335 -ipset=/finishdishwashing.com/gfwlist server=/nflxvideo.net/127.0.0.1#5335 ipset=/nflxvideo.net/gfwlist -server=/riot-games.com/127.0.0.1#5335 -ipset=/riot-games.com/gfwlist -server=/finishdishwashing.ca/127.0.0.1#5335 -ipset=/finishdishwashing.ca/gfwlist -server=/vanish.co.in/127.0.0.1#5335 -ipset=/vanish.co.in/gfwlist -server=/finisharabia.com/127.0.0.1#5335 -ipset=/finisharabia.com/gfwlist -server=/finish.sk/127.0.0.1#5335 -ipset=/finish.sk/gfwlist +server=/myhulu.com/127.0.0.1#5335 +ipset=/myhulu.com/gfwlist server=/bmwchampionship.com/127.0.0.1#5335 ipset=/bmwchampionship.com/gfwlist -server=/pearsonschoolsandfecolleges.co.uk/127.0.0.1#5335 -ipset=/pearsonschoolsandfecolleges.co.uk/gfwlist -server=/googleplus.com/127.0.0.1#5335 -ipset=/googleplus.com/gfwlist -server=/finish.pl/127.0.0.1#5335 -ipset=/finish.pl/gfwlist -server=/youtube.me/127.0.0.1#5335 -ipset=/youtube.me/gfwlist -server=/google.com.ni/127.0.0.1#5335 -ipset=/google.com.ni/gfwlist -server=/finish.fr/127.0.0.1#5335 -ipset=/finish.fr/gfwlist -server=/finish.es/127.0.0.1#5335 -ipset=/finish.es/gfwlist +server=/nuuporn.com/127.0.0.1#5335 +ipset=/nuuporn.com/gfwlist +server=/pornspark.com/127.0.0.1#5335 +ipset=/pornspark.com/gfwlist server=/wsj.com/127.0.0.1#5335 ipset=/wsj.com/gfwlist -server=/sony.ca/127.0.0.1#5335 -ipset=/sony.ca/gfwlist server=/facebookflow.com/127.0.0.1#5335 ipset=/facebookflow.com/gfwlist -server=/pearsonclinical.eu/127.0.0.1#5335 -ipset=/pearsonclinical.eu/gfwlist +server=/volvotrucks.my/127.0.0.1#5335 +ipset=/volvotrucks.my/gfwlist server=/facebook.se/127.0.0.1#5335 ipset=/facebook.se/gfwlist server=/enfa.com.vn/127.0.0.1#5335 ipset=/enfa.com.vn/gfwlist server=/vmworld2013.com/127.0.0.1#5335 ipset=/vmworld2013.com/gfwlist -server=/finish.co.nz/127.0.0.1#5335 -ipset=/finish.co.nz/gfwlist -server=/sandisk.id/127.0.0.1#5335 -ipset=/sandisk.id/gfwlist -server=/finish.at/127.0.0.1#5335 -ipset=/finish.at/gfwlist -server=/nutramigen.pl/127.0.0.1#5335 -ipset=/nutramigen.pl/gfwlist -server=/intel.gy/127.0.0.1#5335 -ipset=/intel.gy/gfwlist -server=/myshopify.com/127.0.0.1#5335 -ipset=/myshopify.com/gfwlist +server=/aventertainments.com/127.0.0.1#5335 +ipset=/aventertainments.com/gfwlist server=/12diasderegalosdeitunes.co/127.0.0.1#5335 ipset=/12diasderegalosdeitunes.co/gfwlist -server=/enspireformula.com/127.0.0.1#5335 -ipset=/enspireformula.com/gfwlist -server=/enfasmart.com/127.0.0.1#5335 -ipset=/enfasmart.com/gfwlist -server=/google.mk/127.0.0.1#5335 -ipset=/google.mk/gfwlist -server=/enfamil.pt/127.0.0.1#5335 -ipset=/enfamil.pt/gfwlist -server=/drdrebeatsforu.com/127.0.0.1#5335 -ipset=/drdrebeatsforu.com/gfwlist -server=/stadia.dev/127.0.0.1#5335 -ipset=/stadia.dev/gfwlist -server=/enfamil.com/127.0.0.1#5335 -ipset=/enfamil.com/gfwlist +server=/fleshlyx.com/127.0.0.1#5335 +ipset=/fleshlyx.com/gfwlist +server=/sora6.com/127.0.0.1#5335 +ipset=/sora6.com/gfwlist server=/bmw-ottawa.ca/127.0.0.1#5335 ipset=/bmw-ottawa.ca/gfwlist -server=/enfamama.com.ar/127.0.0.1#5335 -ipset=/enfamama.com.ar/gfwlist -server=/enfagrow.com.sg/127.0.0.1#5335 -ipset=/enfagrow.com.sg/gfwlist -server=/beatsbydrdre-online.com/127.0.0.1#5335 -ipset=/beatsbydrdre-online.com/gfwlist server=/draftjs.org/127.0.0.1#5335 ipset=/draftjs.org/gfwlist -server=/enfagrow.com.bn/127.0.0.1#5335 -ipset=/enfagrow.com.bn/gfwlist -server=/ieee-sensors.org/127.0.0.1#5335 -ipset=/ieee-sensors.org/gfwlist -server=/soso7778.com/127.0.0.1#5335 -ipset=/soso7778.com/gfwlist -server=/nike.hk/127.0.0.1#5335 -ipset=/nike.hk/gfwlist -server=/enfabebe3.com.ar/127.0.0.1#5335 -ipset=/enfabebe3.com.ar/gfwlist -server=/cloudcredibility.com/127.0.0.1#5335 -ipset=/cloudcredibility.com/gfwlist -server=/mongodb.org/127.0.0.1#5335 -ipset=/mongodb.org/gfwlist -server=/enfabebe.com.ve/127.0.0.1#5335 -ipset=/enfabebe.com.ve/gfwlist -server=/pki-poste.ch/127.0.0.1#5335 -ipset=/pki-poste.ch/gfwlist -server=/enfabebe.com.pe/127.0.0.1#5335 -ipset=/enfabebe.com.pe/gfwlist -server=/enfabebe.com.co/127.0.0.1#5335 -ipset=/enfabebe.com.co/gfwlist -server=/enfabebe.com.br/127.0.0.1#5335 -ipset=/enfabebe.com.br/gfwlist +server=/youtube.com.jm/127.0.0.1#5335 +ipset=/youtube.com.jm/gfwlist +server=/hbogo.eu/127.0.0.1#5335 +ipset=/hbogo.eu/gfwlist +server=/gogo-load.com/127.0.0.1#5335 +ipset=/gogo-load.com/gfwlist +server=/mcdindonesia.com/127.0.0.1#5335 +ipset=/mcdindonesia.com/gfwlist +server=/icegaytube.tv/127.0.0.1#5335 +ipset=/icegaytube.tv/gfwlist server=/mailonsunday.co.uk/127.0.0.1#5335 ipset=/mailonsunday.co.uk/gfwlist -server=/enfababy.com/127.0.0.1#5335 -ipset=/enfababy.com/gfwlist -server=/avfox.cc/127.0.0.1#5335 -ipset=/avfox.cc/gfwlist server=/amerikiskhma.com/127.0.0.1#5335 ipset=/amerikiskhma.com/gfwlist server=/icloudos.net/127.0.0.1#5335 ipset=/icloudos.net/gfwlist -server=/enfaaplus.com/127.0.0.1#5335 -ipset=/enfaaplus.com/gfwlist -server=/enfa.co.id/127.0.0.1#5335 -ipset=/enfa.co.id/gfwlist -server=/bebepremium3.com.bo/127.0.0.1#5335 -ipset=/bebepremium3.com.bo/gfwlist server=/nikey.com/127.0.0.1#5335 ipset=/nikey.com/gfwlist -server=/trydurex.net/127.0.0.1#5335 -ipset=/trydurex.net/gfwlist -server=/playbydurex.com/127.0.0.1#5335 -ipset=/playbydurex.com/gfwlist server=/sciencemag.org/127.0.0.1#5335 ipset=/sciencemag.org/gfwlist -server=/mypearson.com/127.0.0.1#5335 -ipset=/mypearson.com/gfwlist server=/brandeasygo.com/127.0.0.1#5335 ipset=/brandeasygo.com/gfwlist server=/nintendo.com.pt/127.0.0.1#5335 ipset=/nintendo.com.pt/gfwlist -server=/pavpal.com/127.0.0.1#5335 -ipset=/pavpal.com/gfwlist -server=/mhshosting.com/127.0.0.1#5335 -ipset=/mhshosting.com/gfwlist -server=/sony.com.do/127.0.0.1#5335 -ipset=/sony.com.do/gfwlist +server=/faketaxi.com/127.0.0.1#5335 +ipset=/faketaxi.com/gfwlist +server=/home-made-porn-movies.com/127.0.0.1#5335 +ipset=/home-made-porn-movies.com/gfwlist server=/firestone.com.co/127.0.0.1#5335 ipset=/firestone.com.co/gfwlist -server=/durexloveclub.com/127.0.0.1#5335 -ipset=/durexloveclub.com/gfwlist -server=/durexindia.com/127.0.0.1#5335 -ipset=/durexindia.com/gfwlist -server=/picknicekicks.net/127.0.0.1#5335 -ipset=/picknicekicks.net/gfwlist -server=/durexchina.com/127.0.0.1#5335 -ipset=/durexchina.com/gfwlist -server=/durexcam.com/127.0.0.1#5335 -ipset=/durexcam.com/gfwlist -server=/bloombergindices.com/127.0.0.1#5335 -ipset=/bloombergindices.com/gfwlist -server=/cheap-nike.com/127.0.0.1#5335 -ipset=/cheap-nike.com/gfwlist -server=/durex.us/127.0.0.1#5335 -ipset=/durex.us/gfwlist +server=/tesla.services/127.0.0.1#5335 +ipset=/tesla.services/gfwlist server=/epochshop.com/127.0.0.1#5335 ipset=/epochshop.com/gfwlist -server=/inteleventexpress.com/127.0.0.1#5335 -ipset=/inteleventexpress.com/gfwlist -server=/orl.ly/127.0.0.1#5335 -ipset=/orl.ly/gfwlist -server=/nikeshoemarket.com/127.0.0.1#5335 -ipset=/nikeshoemarket.com/gfwlist -server=/bmw-motorrad.ua/127.0.0.1#5335 -ipset=/bmw-motorrad.ua/gfwlist -server=/durex.ro/127.0.0.1#5335 -ipset=/durex.ro/gfwlist +server=/easypic.com/127.0.0.1#5335 +ipset=/easypic.com/gfwlist server=/ebaystyle.com/127.0.0.1#5335 ipset=/ebaystyle.com/gfwlist -server=/durex.pl/127.0.0.1#5335 -ipset=/durex.pl/gfwlist -server=/media-rockstargames-com.akamaized.net/127.0.0.1#5335 -ipset=/media-rockstargames-com.akamaized.net/gfwlist -server=/scholar.google.com.hk/127.0.0.1#5335 -ipset=/scholar.google.com.hk/gfwlist -server=/durex.nl/127.0.0.1#5335 -ipset=/durex.nl/gfwlist server=/mansionglobal.com/127.0.0.1#5335 ipset=/mansionglobal.com/gfwlist -server=/durex.mx/127.0.0.1#5335 -ipset=/durex.mx/gfwlist -server=/cheapbeatsdrdresolo.com/127.0.0.1#5335 -ipset=/cheapbeatsdrdresolo.com/gfwlist -server=/macbookpro.net/127.0.0.1#5335 -ipset=/macbookpro.net/gfwlist -server=/durex.it/127.0.0.1#5335 -ipset=/durex.it/gfwlist +server=/pridetube.com/127.0.0.1#5335 +ipset=/pridetube.com/gfwlist +server=/livemodels.co/127.0.0.1#5335 +ipset=/livemodels.co/gfwlist server=/veet.com.ar/127.0.0.1#5335 ipset=/veet.com.ar/gfwlist -server=/durex.hu/127.0.0.1#5335 -ipset=/durex.hu/gfwlist -server=/durex.fr/127.0.0.1#5335 -ipset=/durex.fr/gfwlist -server=/jquerymobile.com/127.0.0.1#5335 -ipset=/jquerymobile.com/gfwlist -server=/durex.fi/127.0.0.1#5335 -ipset=/durex.fi/gfwlist -server=/durex.ee/127.0.0.1#5335 -ipset=/durex.ee/gfwlist +server=/hentai.io/127.0.0.1#5335 +ipset=/hentai.io/gfwlist +server=/ceskeporno.cz/127.0.0.1#5335 +ipset=/ceskeporno.cz/gfwlist server=/youtube.be/127.0.0.1#5335 ipset=/youtube.be/gfwlist -server=/mini.com.pa/127.0.0.1#5335 -ipset=/mini.com.pa/gfwlist -server=/steamstore-a.akamaihd.net/127.0.0.1#5335 -ipset=/steamstore-a.akamaihd.net/gfwlist -server=/bestbhy.com/127.0.0.1#5335 -ipset=/bestbhy.com/gfwlist -server=/deno.land/127.0.0.1#5335 -ipset=/deno.land/gfwlist -server=/durex.de/127.0.0.1#5335 -ipset=/durex.de/gfwlist -server=/bmwcitychallenge.com/127.0.0.1#5335 -ipset=/bmwcitychallenge.com/gfwlist -server=/durex.com.pk/127.0.0.1#5335 -ipset=/durex.com.pk/gfwlist +server=/prostate-exam-info.com/127.0.0.1#5335 +ipset=/prostate-exam-info.com/gfwlist server=/vfsco.fr/127.0.0.1#5335 ipset=/vfsco.fr/gfwlist -server=/durex.com.ph/127.0.0.1#5335 -ipset=/durex.com.ph/gfwlist -server=/durex.com.ng/127.0.0.1#5335 -ipset=/durex.com.ng/gfwlist -server=/reckittprofessional.com/127.0.0.1#5335 -ipset=/reckittprofessional.com/gfwlist -server=/durex.com.co/127.0.0.1#5335 -ipset=/durex.com.co/gfwlist -server=/durex.com.bd/127.0.0.1#5335 -ipset=/durex.com.bd/gfwlist -server=/yahoo.de/127.0.0.1#5335 -ipset=/yahoo.de/gfwlist -server=/bongacams.com/127.0.0.1#5335 -ipset=/bongacams.com/gfwlist -server=/microsoft.pt/127.0.0.1#5335 -ipset=/microsoft.pt/gfwlist -server=/ie8.co/127.0.0.1#5335 -ipset=/ie8.co/gfwlist -server=/durex.co.uk/127.0.0.1#5335 -ipset=/durex.co.uk/gfwlist -server=/durex.co.nz/127.0.0.1#5335 -ipset=/durex.co.nz/gfwlist -server=/cncrivals.com/127.0.0.1#5335 -ipset=/cncrivals.com/gfwlist -server=/durex.co.id/127.0.0.1#5335 -ipset=/durex.co.id/gfwlist -server=/masterclass.com/127.0.0.1#5335 -ipset=/masterclass.com/gfwlist -server=/cloudlive.com/127.0.0.1#5335 -ipset=/cloudlive.com/gfwlist -server=/durex.be/127.0.0.1#5335 -ipset=/durex.be/gfwlist -server=/durex.at/127.0.0.1#5335 -ipset=/durex.at/gfwlist -server=/durex-slovenia.si/127.0.0.1#5335 -ipset=/durex-slovenia.si/gfwlist -server=/aerogard.com.au/127.0.0.1#5335 -ipset=/aerogard.com.au/gfwlist -server=/dotherex.com/127.0.0.1#5335 -ipset=/dotherex.com/gfwlist +server=/gemini.yahoo.com/127.0.0.1#5335 +ipset=/gemini.yahoo.com/gfwlist +server=/aadmv.com/127.0.0.1#5335 +ipset=/aadmv.com/gfwlist server=/youtube.hr/127.0.0.1#5335 ipset=/youtube.hr/gfwlist -server=/durex.se/127.0.0.1#5335 -ipset=/durex.se/gfwlist +server=/pornlist18.com/127.0.0.1#5335 +ipset=/pornlist18.com/gfwlist server=/beatsbydreaustralia-sale.com/127.0.0.1#5335 ipset=/beatsbydreaustralia-sale.com/gfwlist server=/macruby.com/127.0.0.1#5335 ipset=/macruby.com/gfwlist -server=/windows.nl/127.0.0.1#5335 -ipset=/windows.nl/gfwlist -server=/instagramtakipcisatinal.net/127.0.0.1#5335 -ipset=/instagramtakipcisatinal.net/gfwlist -server=/dettolcleannaija.com/127.0.0.1#5335 -ipset=/dettolcleannaija.com/gfwlist -server=/dettol.ru/127.0.0.1#5335 -ipset=/dettol.ru/gfwlist -server=/volvobuses.co.za/127.0.0.1#5335 -ipset=/volvobuses.co.za/gfwlist -server=/gameroom.com/127.0.0.1#5335 -ipset=/gameroom.com/gfwlist -server=/dettol.pl/127.0.0.1#5335 -ipset=/dettol.pl/gfwlist -server=/maxis.com/127.0.0.1#5335 -ipset=/maxis.com/gfwlist -server=/vmware-cloudmanagement.com/127.0.0.1#5335 -ipset=/vmware-cloudmanagement.com/gfwlist -server=/dettol.nl/127.0.0.1#5335 -ipset=/dettol.nl/gfwlist -server=/dettol.net/127.0.0.1#5335 -ipset=/dettol.net/gfwlist -server=/dettol.ie/127.0.0.1#5335 -ipset=/dettol.ie/gfwlist -server=/dettol.fr/127.0.0.1#5335 -ipset=/dettol.fr/gfwlist -server=/theepochtimes.com/127.0.0.1#5335 -ipset=/theepochtimes.com/gfwlist -server=/paypalinsuranceservices.org/127.0.0.1#5335 -ipset=/paypalinsuranceservices.org/gfwlist +server=/xgirls.webcam/127.0.0.1#5335 +ipset=/xgirls.webcam/gfwlist +server=/dogfartnetwork.com/127.0.0.1#5335 +ipset=/dogfartnetwork.com/gfwlist +server=/kutjeporno.com/127.0.0.1#5335 +ipset=/kutjeporno.com/gfwlist +server=/sexmummy.com/127.0.0.1#5335 +ipset=/sexmummy.com/gfwlist +server=/secure-paypal.info/127.0.0.1#5335 +ipset=/secure-paypal.info/gfwlist server=/fast.com/127.0.0.1#5335 ipset=/fast.com/gfwlist -server=/pearson.com.ar/127.0.0.1#5335 -ipset=/pearson.com.ar/gfwlist -server=/dettol.com.sg/127.0.0.1#5335 -ipset=/dettol.com.sg/gfwlist server=/hkgpao.com/127.0.0.1#5335 ipset=/hkgpao.com/gfwlist -server=/connectedcommerce.com/127.0.0.1#5335 -ipset=/connectedcommerce.com/gfwlist -server=/apple.xn--fiqs8s/127.0.0.1#5335 -ipset=/apple.xn--fiqs8s/gfwlist -server=/dettol.com.ng/127.0.0.1#5335 -ipset=/dettol.com.ng/gfwlist -server=/dettol.com.hk/127.0.0.1#5335 -ipset=/dettol.com.hk/gfwlist -server=/dettol.com.eg/127.0.0.1#5335 -ipset=/dettol.com.eg/gfwlist -server=/dettol.com.br/127.0.0.1#5335 -ipset=/dettol.com.br/gfwlist -server=/yahoo.com.ec/127.0.0.1#5335 -ipset=/yahoo.com.ec/gfwlist -server=/visagiftcard.us/127.0.0.1#5335 -ipset=/visagiftcard.us/gfwlist -server=/dettol.com.bd/127.0.0.1#5335 -ipset=/dettol.com.bd/gfwlist +server=/instanttelegram.com/127.0.0.1#5335 +ipset=/instanttelegram.com/gfwlist +server=/xvideos.co/127.0.0.1#5335 +ipset=/xvideos.co/gfwlist +server=/yiqilai99.cn/127.0.0.1#5335 +ipset=/yiqilai99.cn/gfwlist +server=/igcdn.com/127.0.0.1#5335 +ipset=/igcdn.com/gfwlist server=/vanitaonline.com/127.0.0.1#5335 ipset=/vanitaonline.com/gfwlist -server=/dettol.com/127.0.0.1#5335 -ipset=/dettol.com/gfwlist -server=/intelinsight.com/127.0.0.1#5335 -ipset=/intelinsight.com/gfwlist -server=/dettol.co.uk/127.0.0.1#5335 -ipset=/dettol.co.uk/gfwlist +server=/avday.tv/127.0.0.1#5335 +ipset=/avday.tv/gfwlist server=/justmysocks4.net/127.0.0.1#5335 ipset=/justmysocks4.net/gfwlist server=/xboxone.com/127.0.0.1#5335 ipset=/xboxone.com/gfwlist -server=/workspaceone.com/127.0.0.1#5335 -ipset=/workspaceone.com/gfwlist -server=/dettol.co.in/127.0.0.1#5335 -ipset=/dettol.co.in/gfwlist -server=/dettol.co.id/127.0.0.1#5335 -ipset=/dettol.co.id/gfwlist -server=/alphabet.lt/127.0.0.1#5335 -ipset=/alphabet.lt/gfwlist server=/yt.be/127.0.0.1#5335 ipset=/yt.be/gfwlist -server=/dettol.at/127.0.0.1#5335 -ipset=/dettol.at/gfwlist -server=/ac-pocketcamp.com/127.0.0.1#5335 -ipset=/ac-pocketcamp.com/gfwlist +server=/stepmom.one/127.0.0.1#5335 +ipset=/stepmom.one/gfwlist +server=/vanish.pl/127.0.0.1#5335 +ipset=/vanish.pl/gfwlist server=/scholar.google.com.do/127.0.0.1#5335 ipset=/scholar.google.com.do/gfwlist server=/darwinsourcecode.com/127.0.0.1#5335 ipset=/darwinsourcecode.com/gfwlist -server=/hsxhr.cc/127.0.0.1#5335 -ipset=/hsxhr.cc/gfwlist -server=/dettol-prize.com/127.0.0.1#5335 -ipset=/dettol-prize.com/gfwlist -server=/crit-staging.com/127.0.0.1#5335 -ipset=/crit-staging.com/gfwlist server=/blogspot.ca/127.0.0.1#5335 ipset=/blogspot.ca/gfwlist -server=/calgoncarbon.com/127.0.0.1#5335 -ipset=/calgoncarbon.com/gfwlist -server=/bmw.uz/127.0.0.1#5335 -ipset=/bmw.uz/gfwlist -server=/facebookshop.com/127.0.0.1#5335 -ipset=/facebookshop.com/gfwlist -server=/calgon.tv/127.0.0.1#5335 -ipset=/calgon.tv/gfwlist -server=/yahoo.com.ag/127.0.0.1#5335 -ipset=/yahoo.com.ag/gfwlist -server=/motorshowblog.com/127.0.0.1#5335 -ipset=/motorshowblog.com/gfwlist -server=/calgon.nl/127.0.0.1#5335 -ipset=/calgon.nl/gfwlist -server=/ciscocontest.com/127.0.0.1#5335 -ipset=/ciscocontest.com/gfwlist -server=/calgon.ie/127.0.0.1#5335 -ipset=/calgon.ie/gfwlist -server=/nike0594.com/127.0.0.1#5335 -ipset=/nike0594.com/gfwlist -server=/calgon.es/127.0.0.1#5335 -ipset=/calgon.es/gfwlist -server=/calgon.de/127.0.0.1#5335 -ipset=/calgon.de/gfwlist -server=/supermariogalaxy.com/127.0.0.1#5335 -ipset=/supermariogalaxy.com/gfwlist -server=/facebookswagemea.com/127.0.0.1#5335 -ipset=/facebookswagemea.com/gfwlist +server=/sponichi.co.jp/127.0.0.1#5335 +ipset=/sponichi.co.jp/gfwlist +server=/musclegirlflix.com/127.0.0.1#5335 +ipset=/musclegirlflix.com/gfwlist server=/seagroup.com/127.0.0.1#5335 ipset=/seagroup.com/gfwlist -server=/calgon.co.uk/127.0.0.1#5335 -ipset=/calgon.co.uk/gfwlist server=/nikekid.com/127.0.0.1#5335 ipset=/nikekid.com/gfwlist -server=/beatbydrekopen.com/127.0.0.1#5335 -ipset=/beatbydrekopen.com/gfwlist -server=/calgon.be/127.0.0.1#5335 -ipset=/calgon.be/gfwlist -server=/infowarsmedia.com/127.0.0.1#5335 -ipset=/infowarsmedia.com/gfwlist -server=/qr.ae/127.0.0.1#5335 -ipset=/qr.ae/gfwlist -server=/calgon.at/127.0.0.1#5335 -ipset=/calgon.at/gfwlist -server=/airwickarabia.com/127.0.0.1#5335 -ipset=/airwickarabia.com/gfwlist -server=/akamaietpcnctest.com/127.0.0.1#5335 -ipset=/akamaietpcnctest.com/gfwlist -server=/airwick.tv/127.0.0.1#5335 -ipset=/airwick.tv/gfwlist -server=/pearson-schule.ch/127.0.0.1#5335 -ipset=/pearson-schule.ch/gfwlist -server=/airwick.ru/127.0.0.1#5335 -ipset=/airwick.ru/gfwlist -server=/nowe.com/127.0.0.1#5335 -ipset=/nowe.com/gfwlist +server=/bmwsports.com/127.0.0.1#5335 +ipset=/bmwsports.com/gfwlist +server=/czechlesbians.com/127.0.0.1#5335 +ipset=/czechlesbians.com/gfwlist server=/amazon.com.mx/127.0.0.1#5335 ipset=/amazon.com.mx/gfwlist -server=/nvidia.no/127.0.0.1#5335 -ipset=/nvidia.no/gfwlist -server=/nikeshoponline.com/127.0.0.1#5335 -ipset=/nikeshoponline.com/gfwlist -server=/informs.org/127.0.0.1#5335 -ipset=/informs.org/gfwlist -server=/mcdonalds.ca/127.0.0.1#5335 -ipset=/mcdonalds.ca/gfwlist -server=/airwick.nl/127.0.0.1#5335 -ipset=/airwick.nl/gfwlist -server=/airwick.net/127.0.0.1#5335 -ipset=/airwick.net/gfwlist -server=/imperial.insendi.com/127.0.0.1#5335 -ipset=/imperial.insendi.com/gfwlist -server=/airwick.it/127.0.0.1#5335 -ipset=/airwick.it/gfwlist -server=/airwick.ie/127.0.0.1#5335 -ipset=/airwick.ie/gfwlist -server=/pugpig-stage.com/127.0.0.1#5335 -ipset=/pugpig-stage.com/gfwlist -server=/niosii.net/127.0.0.1#5335 -ipset=/niosii.net/gfwlist -server=/xboxgamestudios.com/127.0.0.1#5335 -ipset=/xboxgamestudios.com/gfwlist -server=/bmwgroupdesignworks.com/127.0.0.1#5335 -ipset=/bmwgroupdesignworks.com/gfwlist -server=/nintendo.tw/127.0.0.1#5335 -ipset=/nintendo.tw/gfwlist -server=/airwick.fr/127.0.0.1#5335 -ipset=/airwick.fr/gfwlist -server=/redzonechannel.com/127.0.0.1#5335 -ipset=/redzonechannel.com/gfwlist -server=/vilavpn3.xyz/127.0.0.1#5335 -ipset=/vilavpn3.xyz/gfwlist -server=/mywaytopay.info/127.0.0.1#5335 -ipset=/mywaytopay.info/gfwlist -server=/amazonaws-china.com/127.0.0.1#5335 -ipset=/amazonaws-china.com/gfwlist -server=/geraldoatlarge.com/127.0.0.1#5335 -ipset=/geraldoatlarge.com/gfwlist -server=/screens-lab.jp/127.0.0.1#5335 -ipset=/screens-lab.jp/gfwlist -server=/kanzhongguo.eu/127.0.0.1#5335 -ipset=/kanzhongguo.eu/gfwlist +server=/catcert.cat/127.0.0.1#5335 +ipset=/catcert.cat/gfwlist +server=/nextjs.org/127.0.0.1#5335 +ipset=/nextjs.org/gfwlist +server=/jerkofftocelebs.com/127.0.0.1#5335 +ipset=/jerkofftocelebs.com/gfwlist +server=/topartporn.com/127.0.0.1#5335 +ipset=/topartporn.com/gfwlist +server=/rbe996.com/127.0.0.1#5335 +ipset=/rbe996.com/gfwlist +server=/e-szigno.hu/127.0.0.1#5335 +ipset=/e-szigno.hu/gfwlist +server=/lustylist.com/127.0.0.1#5335 +ipset=/lustylist.com/gfwlist +server=/cuckoldwifesex.com/127.0.0.1#5335 +ipset=/cuckoldwifesex.com/gfwlist +server=/beatbydreuk2014.com/127.0.0.1#5335 +ipset=/beatbydreuk2014.com/gfwlist server=/visa.com.ar/127.0.0.1#5335 ipset=/visa.com.ar/gfwlist -server=/airwick.cz/127.0.0.1#5335 -ipset=/airwick.cz/gfwlist -server=/airwick.com.tr/127.0.0.1#5335 -ipset=/airwick.com.tr/gfwlist -server=/airwick.com.mx/127.0.0.1#5335 -ipset=/airwick.com.mx/gfwlist -server=/airwick.com/127.0.0.1#5335 -ipset=/airwick.com/gfwlist -server=/disneymagicmoments.pl/127.0.0.1#5335 -ipset=/disneymagicmoments.pl/gfwlist +server=/twavking.com/127.0.0.1#5335 +ipset=/twavking.com/gfwlist +server=/bmj.com/127.0.0.1#5335 +ipset=/bmj.com/gfwlist server=/alfera.com.hk/127.0.0.1#5335 ipset=/alfera.com.hk/gfwlist -server=/manoramaonline.com/127.0.0.1#5335 -ipset=/manoramaonline.com/gfwlist -server=/tex-talk.net/127.0.0.1#5335 -ipset=/tex-talk.net/gfwlist -server=/airwick.co.za/127.0.0.1#5335 -ipset=/airwick.co.za/gfwlist -server=/xhcdn.com/127.0.0.1#5335 -ipset=/xhcdn.com/gfwlist -server=/airwick.co.nz/127.0.0.1#5335 -ipset=/airwick.co.nz/gfwlist -server=/airwick.co.in/127.0.0.1#5335 -ipset=/airwick.co.in/gfwlist +server=/tube-sex-videos.com/127.0.0.1#5335 +ipset=/tube-sex-videos.com/gfwlist +server=/helixstudios.net/127.0.0.1#5335 +ipset=/helixstudios.net/gfwlist +server=/heroero.com/127.0.0.1#5335 +ipset=/heroero.com/gfwlist server=/oxfordclinicalpsych.com/127.0.0.1#5335 ipset=/oxfordclinicalpsych.com/gfwlist -server=/telegra.ph/127.0.0.1#5335 -ipset=/telegra.ph/gfwlist -server=/yahoo.com.na/127.0.0.1#5335 -ipset=/yahoo.com.na/gfwlist -server=/airwick.be/127.0.0.1#5335 -ipset=/airwick.be/gfwlist -server=/durex-shopline.com/127.0.0.1#5335 -ipset=/durex-shopline.com/gfwlist -server=/rarbgunblock.com/127.0.0.1#5335 -ipset=/rarbgunblock.com/gfwlist -server=/rarbgprx.org/127.0.0.1#5335 -ipset=/rarbgprx.org/gfwlist +server=/meilleurpornos.com/127.0.0.1#5335 +ipset=/meilleurpornos.com/gfwlist +server=/ikea.com.tw/127.0.0.1#5335 +ipset=/ikea.com.tw/gfwlist server=/pearson.co.in/127.0.0.1#5335 ipset=/pearson.co.in/gfwlist -server=/rarbggo.org/127.0.0.1#5335 -ipset=/rarbggo.org/gfwlist -server=/imac.gr/127.0.0.1#5335 -ipset=/imac.gr/gfwlist -server=/rarbg.me/127.0.0.1#5335 -ipset=/rarbg.me/gfwlist -server=/xn--qhrx81fxh2a.xn--55qx5d.hk/127.0.0.1#5335 -ipset=/xn--qhrx81fxh2a.xn--55qx5d.hk/gfwlist -server=/mcdonaldsparties.co.nz/127.0.0.1#5335 -ipset=/mcdonaldsparties.co.nz/gfwlist -server=/mcdonalds.no/127.0.0.1#5335 -ipset=/mcdonalds.no/gfwlist -server=/mcdonalds.it/127.0.0.1#5335 -ipset=/mcdonalds.it/gfwlist +server=/sucksex.com/127.0.0.1#5335 +ipset=/sucksex.com/gfwlist server=/pppds.com/127.0.0.1#5335 ipset=/pppds.com/gfwlist -server=/youtube.co.hu/127.0.0.1#5335 -ipset=/youtube.co.hu/gfwlist -server=/anthemgame.com/127.0.0.1#5335 -ipset=/anthemgame.com/gfwlist server=/bcicdn.com/127.0.0.1#5335 ipset=/bcicdn.com/gfwlist -server=/figma.com/127.0.0.1#5335 -ipset=/figma.com/gfwlist server=/brandelectronic.com/127.0.0.1#5335 ipset=/brandelectronic.com/gfwlist -server=/fecbook.com/127.0.0.1#5335 -ipset=/fecbook.com/gfwlist -server=/mcdonalds.co.uk/127.0.0.1#5335 -ipset=/mcdonalds.co.uk/gfwlist -server=/negozimonsterbeats.com/127.0.0.1#5335 -ipset=/negozimonsterbeats.com/gfwlist -server=/airwick.no/127.0.0.1#5335 -ipset=/airwick.no/gfwlist +server=/pearsonvue.net/127.0.0.1#5335 +ipset=/pearsonvue.net/gfwlist +server=/nurumassage.net/127.0.0.1#5335 +ipset=/nurumassage.net/gfwlist server=/mingshengbao.com/127.0.0.1#5335 ipset=/mingshengbao.com/gfwlist -server=/entrustdatacard.com/127.0.0.1#5335 -ipset=/entrustdatacard.com/gfwlist -server=/mcdindonesia.com/127.0.0.1#5335 -ipset=/mcdindonesia.com/gfwlist -server=/adobetechcomm.com/127.0.0.1#5335 -ipset=/adobetechcomm.com/gfwlist -server=/mcdelivery.com.tw/127.0.0.1#5335 -ipset=/mcdelivery.com.tw/gfwlist -server=/mcdelivery.com.sg/127.0.0.1#5335 -ipset=/mcdelivery.com.sg/gfwlist -server=/mcdelivery.com.my/127.0.0.1#5335 -ipset=/mcdelivery.com.my/gfwlist +server=/transcamslive.com/127.0.0.1#5335 +ipset=/transcamslive.com/gfwlist server=/2013beatsbydrdreshop.com/127.0.0.1#5335 ipset=/2013beatsbydrdreshop.com/gfwlist -server=/mcdelivery.co.kr/127.0.0.1#5335 -ipset=/mcdelivery.co.kr/gfwlist -server=/bmw-vancouver.ca/127.0.0.1#5335 -ipset=/bmw-vancouver.ca/gfwlist -server=/quickoffice.com/127.0.0.1#5335 -ipset=/quickoffice.com/gfwlist -server=/aboutmcdonalds.com/127.0.0.1#5335 -ipset=/aboutmcdonalds.com/gfwlist -server=/huanghuagang.org/127.0.0.1#5335 -ipset=/huanghuagang.org/gfwlist +server=/onedrive.co/127.0.0.1#5335 +ipset=/onedrive.co/gfwlist +server=/tubepornlist.com/127.0.0.1#5335 +ipset=/tubepornlist.com/gfwlist server=/instamgram.com/127.0.0.1#5335 ipset=/instamgram.com/gfwlist -server=/hkreadingcity.net/127.0.0.1#5335 -ipset=/hkreadingcity.net/gfwlist -server=/hkedcity.net/127.0.0.1#5335 -ipset=/hkedcity.net/gfwlist -server=/familymart.com.ph/127.0.0.1#5335 -ipset=/familymart.com.ph/gfwlist -server=/family.com.tw/127.0.0.1#5335 -ipset=/family.com.tw/gfwlist -server=/esp8266.com/127.0.0.1#5335 -ipset=/esp8266.com/gfwlist -server=/esp32.com/127.0.0.1#5335 -ipset=/esp32.com/gfwlist -server=/calgon.com.tr/127.0.0.1#5335 -ipset=/calgon.com.tr/gfwlist -server=/intelserveredge.com/127.0.0.1#5335 -ipset=/intelserveredge.com/gfwlist -server=/scholar.google.cat/127.0.0.1#5335 -ipset=/scholar.google.cat/gfwlist -server=/ieee-ims.org/127.0.0.1#5335 -ipset=/ieee-ims.org/gfwlist -server=/toolforge.org/127.0.0.1#5335 -ipset=/toolforge.org/gfwlist -server=/drebeatsoldes.com/127.0.0.1#5335 -ipset=/drebeatsoldes.com/gfwlist -server=/googlecommerce.com/127.0.0.1#5335 -ipset=/googlecommerce.com/gfwlist -server=/arcgis.com/127.0.0.1#5335 -ipset=/arcgis.com/gfwlist -server=/wiktionary.org/127.0.0.1#5335 -ipset=/wiktionary.org/gfwlist -server=/wikivoyage.org/127.0.0.1#5335 -ipset=/wikivoyage.org/gfwlist -server=/canon-emirates.ae/127.0.0.1#5335 -ipset=/canon-emirates.ae/gfwlist -server=/wikiversity.org/127.0.0.1#5335 -ipset=/wikiversity.org/gfwlist -server=/wikisource.org/127.0.0.1#5335 -ipset=/wikisource.org/gfwlist -server=/garena.tv/127.0.0.1#5335 -ipset=/garena.tv/gfwlist -server=/wikiquote.org/127.0.0.1#5335 -ipset=/wikiquote.org/gfwlist -server=/wikipedia.org/127.0.0.1#5335 -ipset=/wikipedia.org/gfwlist +server=/spankingtube.com/127.0.0.1#5335 +ipset=/spankingtube.com/gfwlist +server=/myamateurgirls.net/127.0.0.1#5335 +ipset=/myamateurgirls.net/gfwlist +server=/google.sk/127.0.0.1#5335 +ipset=/google.sk/gfwlist +server=/cartoonporno.xxx/127.0.0.1#5335 +ipset=/cartoonporno.xxx/gfwlist +server=/hentaiz.cc/127.0.0.1#5335 +ipset=/hentaiz.cc/gfwlist +server=/fbcdn-a.akamaihd.net/127.0.0.1#5335 +ipset=/fbcdn-a.akamaihd.net/gfwlist +server=/simply-hentai.com/127.0.0.1#5335 +ipset=/simply-hentai.com/gfwlist +server=/krymr.com/127.0.0.1#5335 +ipset=/krymr.com/gfwlist +server=/youtube.gr/127.0.0.1#5335 +ipset=/youtube.gr/gfwlist server=/attbelieves.com/127.0.0.1#5335 ipset=/attbelieves.com/gfwlist server=/sony-semicon.co.jp/127.0.0.1#5335 ipset=/sony-semicon.co.jp/gfwlist -server=/wikimedia.org/127.0.0.1#5335 -ipset=/wikimedia.org/gfwlist -server=/marvelpinball.com/127.0.0.1#5335 -ipset=/marvelpinball.com/gfwlist -server=/wikimediafoundation.org/127.0.0.1#5335 -ipset=/wikimediafoundation.org/gfwlist -server=/wikidata.org/127.0.0.1#5335 -ipset=/wikidata.org/gfwlist -server=/applehongkong.com/127.0.0.1#5335 -ipset=/applehongkong.com/gfwlist +server=/pobl-content.com/127.0.0.1#5335 +ipset=/pobl-content.com/gfwlist server=/volvotrucks.kr/127.0.0.1#5335 ipset=/volvotrucks.kr/gfwlist -server=/foxsports.co.ve/127.0.0.1#5335 -ipset=/foxsports.co.ve/gfwlist -server=/wikibooks.org/127.0.0.1#5335 -ipset=/wikibooks.org/gfwlist +server=/mini-windsor.com/127.0.0.1#5335 +ipset=/mini-windsor.com/gfwlist +server=/hoes.com/127.0.0.1#5335 +ipset=/hoes.com/gfwlist server=/facebookmail.com/127.0.0.1#5335 ipset=/facebookmail.com/gfwlist server=/netflixdnstest8.com/127.0.0.1#5335 ipset=/netflixdnstest8.com/gfwlist -server=/alphabet.at/127.0.0.1#5335 -ipset=/alphabet.at/gfwlist -server=/origin.tv/127.0.0.1#5335 -ipset=/origin.tv/gfwlist +server=/niceporn.tv/127.0.0.1#5335 +ipset=/niceporn.tv/gfwlist server=/ubnw.net/127.0.0.1#5335 ipset=/ubnw.net/gfwlist -server=/yahoo.co.in/127.0.0.1#5335 -ipset=/yahoo.co.in/gfwlist server=/vfsco.cl/127.0.0.1#5335 ipset=/vfsco.cl/gfwlist -server=/pinterest.tw/127.0.0.1#5335 -ipset=/pinterest.tw/gfwlist -server=/wdfiles.com/127.0.0.1#5335 -ipset=/wdfiles.com/gfwlist -server=/am730.com.hk/127.0.0.1#5335 -ipset=/am730.com.hk/gfwlist -server=/bestbuy.com/127.0.0.1#5335 -ipset=/bestbuy.com/gfwlist -server=/translatewiki.net/127.0.0.1#5335 -ipset=/translatewiki.net/gfwlist -server=/jav01.cc/127.0.0.1#5335 -ipset=/jav01.cc/gfwlist -server=/scpdb.org/127.0.0.1#5335 -ipset=/scpdb.org/gfwlist -server=/mini.fr/127.0.0.1#5335 -ipset=/mini.fr/gfwlist -server=/paypal-luxury.com/127.0.0.1#5335 -ipset=/paypal-luxury.com/gfwlist -server=/ciscoresearch.com/127.0.0.1#5335 -ipset=/ciscoresearch.com/gfwlist +server=/sekswebsite.nl/127.0.0.1#5335 +ipset=/sekswebsite.nl/gfwlist +server=/cloudproxy.app/127.0.0.1#5335 +ipset=/cloudproxy.app/gfwlist +server=/daftsex-hd.com/127.0.0.1#5335 +ipset=/daftsex-hd.com/gfwlist +server=/mjv-art.org/127.0.0.1#5335 +ipset=/mjv-art.org/gfwlist server=/marketing-cloud.com/127.0.0.1#5335 ipset=/marketing-cloud.com/gfwlist -server=/fandom.zendesk.com/127.0.0.1#5335 -ipset=/fandom.zendesk.com/gfwlist -server=/intel.com.ve/127.0.0.1#5335 -ipset=/intel.com.ve/gfwlist -server=/gu-web.net/127.0.0.1#5335 -ipset=/gu-web.net/gfwlist -server=/muthead.com/127.0.0.1#5335 -ipset=/muthead.com/gfwlist -server=/beats4outlets.com/127.0.0.1#5335 -ipset=/beats4outlets.com/gfwlist -server=/mpfinance.com/127.0.0.1#5335 -ipset=/mpfinance.com/gfwlist -server=/hbogoasia.com/127.0.0.1#5335 -ipset=/hbogoasia.com/gfwlist -server=/dndbeyond.com/127.0.0.1#5335 -ipset=/dndbeyond.com/gfwlist +server=/yahoo.ro/127.0.0.1#5335 +ipset=/yahoo.ro/gfwlist +server=/netsolssl.com/127.0.0.1#5335 +ipset=/netsolssl.com/gfwlist +server=/motherporn.ovh/127.0.0.1#5335 +ipset=/motherporn.ovh/gfwlist +server=/malayalamanorama.com/127.0.0.1#5335 +ipset=/malayalamanorama.com/gfwlist server=/apple.co.jp/127.0.0.1#5335 ipset=/apple.co.jp/gfwlist -server=/youtube.vn/127.0.0.1#5335 -ipset=/youtube.vn/gfwlist -server=/lubetube.com/127.0.0.1#5335 -ipset=/lubetube.com/gfwlist server=/ebayinc.com/127.0.0.1#5335 ipset=/ebayinc.com/gfwlist -server=/now-tv.com/127.0.0.1#5335 -ipset=/now-tv.com/gfwlist -server=/azuredevopslaunch.com/127.0.0.1#5335 -ipset=/azuredevopslaunch.com/gfwlist -server=/youtube.cz/127.0.0.1#5335 -ipset=/youtube.cz/gfwlist -server=/wikia.com/127.0.0.1#5335 -ipset=/wikia.com/gfwlist -server=/bmw.com.tw/127.0.0.1#5335 -ipset=/bmw.com.tw/gfwlist -server=/applestore.com.au/127.0.0.1#5335 -ipset=/applestore.com.au/gfwlist -server=/mini.ca/127.0.0.1#5335 -ipset=/mini.ca/gfwlist +server=/licdn.com/127.0.0.1#5335 +ipset=/licdn.com/gfwlist +server=/yourwifemymeat.com/127.0.0.1#5335 +ipset=/yourwifemymeat.com/gfwlist server=/vanish.co.id/127.0.0.1#5335 ipset=/vanish.co.id/gfwlist -server=/apple-livephotoskit.com/127.0.0.1#5335 -ipset=/apple-livephotoskit.com/gfwlist -server=/ssplive.pw/127.0.0.1#5335 -ipset=/ssplive.pw/gfwlist -server=/renzhe.cloud/127.0.0.1#5335 -ipset=/renzhe.cloud/gfwlist -server=/visualstudio.co.uk/127.0.0.1#5335 -ipset=/visualstudio.co.uk/gfwlist -server=/directvdealsnow.com/127.0.0.1#5335 -ipset=/directvdealsnow.com/gfwlist -server=/beatsbydreblackfriday2013.com/127.0.0.1#5335 -ipset=/beatsbydreblackfriday2013.com/gfwlist -server=/bmw-qatar.com/127.0.0.1#5335 -ipset=/bmw-qatar.com/gfwlist -server=/princeton.edu/127.0.0.1#5335 -ipset=/princeton.edu/gfwlist -server=/maying.co/127.0.0.1#5335 -ipset=/maying.co/gfwlist -server=/cloudn.me/127.0.0.1#5335 -ipset=/cloudn.me/gfwlist -server=/iotinactionevents.com/127.0.0.1#5335 -ipset=/iotinactionevents.com/gfwlist -server=/paypal.com.hk/127.0.0.1#5335 -ipset=/paypal.com.hk/gfwlist -server=/ark.to/127.0.0.1#5335 -ipset=/ark.to/gfwlist -server=/ebay.at/127.0.0.1#5335 -ipset=/ebay.at/gfwlist -server=/musicbay.net/127.0.0.1#5335 -ipset=/musicbay.net/gfwlist -server=/amytele.com/127.0.0.1#5335 -ipset=/amytele.com/gfwlist -server=/vilavpn7.xyz/127.0.0.1#5335 -ipset=/vilavpn7.xyz/gfwlist -server=/vilavpn6.xyz/127.0.0.1#5335 -ipset=/vilavpn6.xyz/gfwlist -server=/g-tvapp.com/127.0.0.1#5335 -ipset=/g-tvapp.com/gfwlist -server=/faceboop.com/127.0.0.1#5335 -ipset=/faceboop.com/gfwlist -server=/playshow.io/127.0.0.1#5335 -ipset=/playshow.io/gfwlist -server=/adobetarget.com/127.0.0.1#5335 -ipset=/adobetarget.com/gfwlist -server=/wwtbam.com/127.0.0.1#5335 -ipset=/wwtbam.com/gfwlist -server=/vilavpn5.xyz/127.0.0.1#5335 -ipset=/vilavpn5.xyz/gfwlist -server=/vilavpn4.xyz/127.0.0.1#5335 -ipset=/vilavpn4.xyz/gfwlist +server=/alldrawingshere.com/127.0.0.1#5335 +ipset=/alldrawingshere.com/gfwlist +server=/ckcdn.com/127.0.0.1#5335 +ipset=/ckcdn.com/gfwlist +server=/ppe.lawyer/127.0.0.1#5335 +ipset=/ppe.lawyer/gfwlist +server=/gradeuptube.com/127.0.0.1#5335 +ipset=/gradeuptube.com/gfwlist +server=/xvideosnovinhas.com/127.0.0.1#5335 +ipset=/xvideosnovinhas.com/gfwlist +server=/cryptocompare.com/127.0.0.1#5335 +ipset=/cryptocompare.com/gfwlist +server=/18-teen-xxx.com/127.0.0.1#5335 +ipset=/18-teen-xxx.com/gfwlist +server=/avstar.me/127.0.0.1#5335 +ipset=/avstar.me/gfwlist +server=/zhengjian.org/127.0.0.1#5335 +ipset=/zhengjian.org/gfwlist +server=/fuck6teen.com/127.0.0.1#5335 +ipset=/fuck6teen.com/gfwlist +server=/40somethingmag.com/127.0.0.1#5335 +ipset=/40somethingmag.com/gfwlist +server=/yahoo.com.ag/127.0.0.1#5335 +ipset=/yahoo.com.ag/gfwlist +server=/brazzfan.com/127.0.0.1#5335 +ipset=/brazzfan.com/gfwlist server=/epoch.org.il/127.0.0.1#5335 ipset=/epoch.org.il/gfwlist server=/faceboob.com/127.0.0.1#5335 ipset=/faceboob.com/gfwlist -server=/mini.cc/127.0.0.1#5335 -ipset=/mini.cc/gfwlist -server=/qualcommventures.com/127.0.0.1#5335 -ipset=/qualcommventures.com/gfwlist -server=/vilavpn1.xyz/127.0.0.1#5335 -ipset=/vilavpn1.xyz/gfwlist +server=/myatos.net/127.0.0.1#5335 +ipset=/myatos.net/gfwlist server=/getpocket.com/127.0.0.1#5335 ipset=/getpocket.com/gfwlist -server=/surflite.net/127.0.0.1#5335 -ipset=/surflite.net/gfwlist server=/landofhope.tv/127.0.0.1#5335 ipset=/landofhope.tv/gfwlist -server=/xn--hb4aw0g.com/127.0.0.1#5335 -ipset=/xn--hb4aw0g.com/gfwlist -server=/xn--d4ty0ojsqzfd.com/127.0.0.1#5335 -ipset=/xn--d4ty0ojsqzfd.com/gfwlist -server=/myrz.com/127.0.0.1#5335 -ipset=/myrz.com/gfwlist +server=/pornktube.com/127.0.0.1#5335 +ipset=/pornktube.com/gfwlist server=/mininanaimo.com/127.0.0.1#5335 ipset=/mininanaimo.com/gfwlist -server=/lolespor.com/127.0.0.1#5335 -ipset=/lolespor.com/gfwlist -server=/shadowsocks.nl/127.0.0.1#5335 -ipset=/shadowsocks.nl/gfwlist -server=/curbed.com/127.0.0.1#5335 -ipset=/curbed.com/gfwlist -server=/paofuyun.me/127.0.0.1#5335 -ipset=/paofuyun.me/gfwlist -server=/googlearth.com/127.0.0.1#5335 -ipset=/googlearth.com/gfwlist -server=/nexitcore.com/127.0.0.1#5335 -ipset=/nexitcore.com/gfwlist -server=/mastercardcenterforinclusivegrowth.org/127.0.0.1#5335 -ipset=/mastercardcenterforinclusivegrowth.org/gfwlist -server=/minipetfriendly.com/127.0.0.1#5335 -ipset=/minipetfriendly.com/gfwlist -server=/nexitallysafe.com/127.0.0.1#5335 -ipset=/nexitallysafe.com/gfwlist -server=/pokedex3d.com/127.0.0.1#5335 -ipset=/pokedex3d.com/gfwlist +server=/freecartoons.biz/127.0.0.1#5335 +ipset=/freecartoons.biz/gfwlist +server=/rarbgto.org/127.0.0.1#5335 +ipset=/rarbgto.org/gfwlist +server=/pinksporn.com/127.0.0.1#5335 +ipset=/pinksporn.com/gfwlist +server=/sexjk.com/127.0.0.1#5335 +ipset=/sexjk.com/gfwlist +server=/xnxx-sex-tube.com/127.0.0.1#5335 +ipset=/xnxx-sex-tube.com/gfwlist +server=/volvobuses.co.nz/127.0.0.1#5335 +ipset=/volvobuses.co.nz/gfwlist server=/aboutyourmini.com/127.0.0.1#5335 ipset=/aboutyourmini.com/gfwlist -server=/snapkit.co/127.0.0.1#5335 -ipset=/snapkit.co/gfwlist -server=/n3ro.lol/127.0.0.1#5335 -ipset=/n3ro.lol/gfwlist -server=/sandisk.es/127.0.0.1#5335 -ipset=/sandisk.es/gfwlist -server=/cloudlock.com/127.0.0.1#5335 -ipset=/cloudlock.com/gfwlist -server=/justmysocks2.net/127.0.0.1#5335 -ipset=/justmysocks2.net/gfwlist -server=/kindle.jp/127.0.0.1#5335 -ipset=/kindle.jp/gfwlist +server=/wetnhorny.com/127.0.0.1#5335 +ipset=/wetnhorny.com/gfwlist +server=/vrporncat.com/127.0.0.1#5335 +ipset=/vrporncat.com/gfwlist server=/ubisoft-uplay-savegames.s3.amazonaws.com/127.0.0.1#5335 ipset=/ubisoft-uplay-savegames.s3.amazonaws.com/gfwlist -server=/justmysocks.net/127.0.0.1#5335 -ipset=/justmysocks.net/gfwlist -server=/xn--90wwvt03e.com/127.0.0.1#5335 -ipset=/xn--90wwvt03e.com/gfwlist -server=/javlibrary.com/127.0.0.1#5335 -ipset=/javlibrary.com/gfwlist -server=/safechat.com/127.0.0.1#5335 -ipset=/safechat.com/gfwlist +server=/xsvod.xyz/127.0.0.1#5335 +ipset=/xsvod.xyz/gfwlist +server=/disco-api.com/127.0.0.1#5335 +ipset=/disco-api.com/gfwlist server=/nikestore.com.au/127.0.0.1#5335 ipset=/nikestore.com.au/gfwlist -server=/duckside.com/127.0.0.1#5335 -ipset=/duckside.com/gfwlist -server=/duyaossr.com/127.0.0.1#5335 -ipset=/duyaossr.com/gfwlist -server=/duyaoss.com/127.0.0.1#5335 -ipset=/duyaoss.com/gfwlist -server=/paypal-galactic.com/127.0.0.1#5335 -ipset=/paypal-galactic.com/gfwlist -server=/scholar.google.se/127.0.0.1#5335 -ipset=/scholar.google.se/gfwlist +server=/pageview.mobi/127.0.0.1#5335 +ipset=/pageview.mobi/gfwlist +server=/ptt3.cc/127.0.0.1#5335 +ipset=/ptt3.cc/gfwlist server=/feook.com/127.0.0.1#5335 ipset=/feook.com/gfwlist server=/google.td/127.0.0.1#5335 ipset=/google.td/gfwlist -server=/dleris.best/127.0.0.1#5335 -ipset=/dleris.best/gfwlist server=/voa.gov/127.0.0.1#5335 ipset=/voa.gov/gfwlist server=/vmwidm-ads.com/127.0.0.1#5335 ipset=/vmwidm-ads.com/gfwlist -server=/beatsdremonster-uk.com/127.0.0.1#5335 -ipset=/beatsdremonster-uk.com/gfwlist -server=/notion.so/127.0.0.1#5335 -ipset=/notion.so/gfwlist +server=/sexgamesbox.com/127.0.0.1#5335 +ipset=/sexgamesbox.com/gfwlist server=/masseffectarchives.com/127.0.0.1#5335 ipset=/masseffectarchives.com/gfwlist server=/fmcebook.com/127.0.0.1#5335 ipset=/fmcebook.com/gfwlist -server=/beatsbydrefriday.com/127.0.0.1#5335 -ipset=/beatsbydrefriday.com/gfwlist server=/xn--czrs0t4phtr3a.cn/127.0.0.1#5335 ipset=/xn--czrs0t4phtr3a.cn/gfwlist -server=/dlercloud.me/127.0.0.1#5335 -ipset=/dlercloud.me/gfwlist -server=/0emm.com/127.0.0.1#5335 -ipset=/0emm.com/gfwlist -server=/callhulu.com/127.0.0.1#5335 -ipset=/callhulu.com/gfwlist -server=/cylink0122.icu/127.0.0.1#5335 -ipset=/cylink0122.icu/gfwlist -server=/rocksdb.net/127.0.0.1#5335 -ipset=/rocksdb.net/gfwlist +server=/fbworkmail.com/127.0.0.1#5335 +ipset=/fbworkmail.com/gfwlist +server=/sb.sb/127.0.0.1#5335 +ipset=/sb.sb/gfwlist server=/cheapbeatsbydreoutlet-nz.com/127.0.0.1#5335 ipset=/cheapbeatsbydreoutlet-nz.com/gfwlist -server=/cylink.pro/127.0.0.1#5335 -ipset=/cylink.pro/gfwlist -server=/nikeincchemistry.com/127.0.0.1#5335 -ipset=/nikeincchemistry.com/gfwlist -server=/krakenjs.com/127.0.0.1#5335 -ipset=/krakenjs.com/gfwlist +server=/azurecomcdn.net/127.0.0.1#5335 +ipset=/azurecomcdn.net/gfwlist server=/ebaynyc.com/127.0.0.1#5335 ipset=/ebaynyc.com/gfwlist -server=/telegram.me/127.0.0.1#5335 -ipset=/telegram.me/gfwlist -server=/mastercard.by/127.0.0.1#5335 -ipset=/mastercard.by/gfwlist -server=/boslife.net/127.0.0.1#5335 -ipset=/boslife.net/gfwlist server=/japanesebeauties.net/127.0.0.1#5335 ipset=/japanesebeauties.net/gfwlist -server=/boslife.biz/127.0.0.1#5335 -ipset=/boslife.biz/gfwlist -server=/zind.cloud/127.0.0.1#5335 -ipset=/zind.cloud/gfwlist +server=/staxus.com/127.0.0.1#5335 +ipset=/staxus.com/gfwlist server=/volvotrucks.hk/127.0.0.1#5335 ipset=/volvotrucks.hk/gfwlist -server=/metamind.io/127.0.0.1#5335 -ipset=/metamind.io/gfwlist -server=/google.pn/127.0.0.1#5335 -ipset=/google.pn/gfwlist -server=/yastatic.net/127.0.0.1#5335 -ipset=/yastatic.net/gfwlist -server=/foxsportsgo.com/127.0.0.1#5335 -ipset=/foxsportsgo.com/gfwlist -server=/battlefield4.com/127.0.0.1#5335 -ipset=/battlefield4.com/gfwlist +server=/discord.design/127.0.0.1#5335 +ipset=/discord.design/gfwlist server=/pinterest.de/127.0.0.1#5335 ipset=/pinterest.de/gfwlist -server=/yandex.tm/127.0.0.1#5335 -ipset=/yandex.tm/gfwlist -server=/yandex.tj/127.0.0.1#5335 -ipset=/yandex.tj/gfwlist -server=/beatsdrecheap.com/127.0.0.1#5335 -ipset=/beatsdrecheap.com/gfwlist -server=/walmart.com/127.0.0.1#5335 -ipset=/walmart.com/gfwlist +server=/stacyvandenbergboobs.com/127.0.0.1#5335 +ipset=/stacyvandenbergboobs.com/gfwlist +server=/ikea.in/127.0.0.1#5335 +ipset=/ikea.in/gfwlist server=/ip.sb/127.0.0.1#5335 ipset=/ip.sb/gfwlist -server=/nikekd.com/127.0.0.1#5335 -ipset=/nikekd.com/gfwlist -server=/yandex.net/127.0.0.1#5335 -ipset=/yandex.net/gfwlist -server=/addtoany.com/127.0.0.1#5335 -ipset=/addtoany.com/gfwlist -server=/udemy.com/127.0.0.1#5335 -ipset=/udemy.com/gfwlist +server=/codeberg.org/127.0.0.1#5335 +ipset=/codeberg.org/gfwlist +server=/westlaw.com/127.0.0.1#5335 +ipset=/westlaw.com/gfwlist +server=/phun.org/127.0.0.1#5335 +ipset=/phun.org/gfwlist server=/atdmt2.com/127.0.0.1#5335 ipset=/atdmt2.com/gfwlist -server=/yandex.md/127.0.0.1#5335 -ipset=/yandex.md/gfwlist -server=/playerjs.io/127.0.0.1#5335 -ipset=/playerjs.io/gfwlist -server=/yandex.lv/127.0.0.1#5335 -ipset=/yandex.lv/gfwlist -server=/yandex.kz/127.0.0.1#5335 -ipset=/yandex.kz/gfwlist -server=/yandex.kg/127.0.0.1#5335 -ipset=/yandex.kg/gfwlist +server=/visaeurope.si/127.0.0.1#5335 +ipset=/visaeurope.si/gfwlist +server=/girlsway.com/127.0.0.1#5335 +ipset=/girlsway.com/gfwlist server=/epochtimes.it/127.0.0.1#5335 ipset=/epochtimes.it/gfwlist server=/pacifickitchenandhome.com/127.0.0.1#5335 ipset=/pacifickitchenandhome.com/gfwlist -server=/yandex.com.tr/127.0.0.1#5335 -ipset=/yandex.com.tr/gfwlist -server=/yandex.com.ge/127.0.0.1#5335 -ipset=/yandex.com.ge/gfwlist -server=/yandex.com/127.0.0.1#5335 -ipset=/yandex.com/gfwlist -server=/ninemsn.com.au/127.0.0.1#5335 -ipset=/ninemsn.com.au/gfwlist -server=/yandex.co.il/127.0.0.1#5335 -ipset=/yandex.co.il/gfwlist -server=/yandex.by/127.0.0.1#5335 -ipset=/yandex.by/gfwlist -server=/yandex.az/127.0.0.1#5335 -ipset=/yandex.az/gfwlist -server=/wwwipodlounge.com/127.0.0.1#5335 -ipset=/wwwipodlounge.com/gfwlist -server=/yimg.jp/127.0.0.1#5335 -ipset=/yimg.jp/gfwlist -server=/yahoo.az/127.0.0.1#5335 -ipset=/yahoo.az/gfwlist -server=/scholar.google.com.sg/127.0.0.1#5335 -ipset=/scholar.google.com.sg/gfwlist -server=/xnxx.com/127.0.0.1#5335 -ipset=/xnxx.com/gfwlist -server=/goldcoastbulletin.com.au/127.0.0.1#5335 -ipset=/goldcoastbulletin.com.au/gfwlist -server=/yho.com/127.0.0.1#5335 -ipset=/yho.com/gfwlist +server=/mplstudios.com/127.0.0.1#5335 +ipset=/mplstudios.com/gfwlist +server=/mgo-images.com/127.0.0.1#5335 +ipset=/mgo-images.com/gfwlist +server=/lettherebeporn.com/127.0.0.1#5335 +ipset=/lettherebeporn.com/gfwlist server=/theshoppingexpresslane.net/127.0.0.1#5335 ipset=/theshoppingexpresslane.net/gfwlist -server=/yahoosportsbook.com/127.0.0.1#5335 -ipset=/yahoosportsbook.com/gfwlist -server=/yahoohealth.com/127.0.0.1#5335 -ipset=/yahoohealth.com/gfwlist -server=/yahoofinance.com/127.0.0.1#5335 -ipset=/yahoofinance.com/gfwlist -server=/bs-awh.ne.jp/127.0.0.1#5335 -ipset=/bs-awh.ne.jp/gfwlist -server=/clannad-movie.jp/127.0.0.1#5335 -ipset=/clannad-movie.jp/gfwlist -server=/intel.ma/127.0.0.1#5335 -ipset=/intel.ma/gfwlist +server=/jitsi.org/127.0.0.1#5335 +ipset=/jitsi.org/gfwlist +server=/miniwholesaleconnect.com/127.0.0.1#5335 +ipset=/miniwholesaleconnect.com/gfwlist server=/paypal-referral.com/127.0.0.1#5335 ipset=/paypal-referral.com/gfwlist -server=/hpeprintcenter.com/127.0.0.1#5335 -ipset=/hpeprintcenter.com/gfwlist -server=/yahoo.tn/127.0.0.1#5335 -ipset=/yahoo.tn/gfwlist -server=/swiftfinancial.info/127.0.0.1#5335 -ipset=/swiftfinancial.info/gfwlist -server=/yahoo.tm/127.0.0.1#5335 -ipset=/yahoo.tm/gfwlist -server=/facbebook.com/127.0.0.1#5335 -ipset=/facbebook.com/gfwlist -server=/foxdeportes.net/127.0.0.1#5335 -ipset=/foxdeportes.net/gfwlist -server=/yahoo.tk/127.0.0.1#5335 -ipset=/yahoo.tk/gfwlist -server=/foxnation.com/127.0.0.1#5335 -ipset=/foxnation.com/gfwlist -server=/scholar.google.com.ua/127.0.0.1#5335 -ipset=/scholar.google.com.ua/gfwlist +server=/badjojo.com/127.0.0.1#5335 +ipset=/badjojo.com/gfwlist +server=/binancezh.be/127.0.0.1#5335 +ipset=/binancezh.be/gfwlist +server=/moviesfree4u.xyz/127.0.0.1#5335 +ipset=/moviesfree4u.xyz/gfwlist +server=/bbycastatic.ca/127.0.0.1#5335 +ipset=/bbycastatic.ca/gfwlist server=/app-dynamics.com/127.0.0.1#5335 ipset=/app-dynamics.com/gfwlist -server=/yahoo.st/127.0.0.1#5335 -ipset=/yahoo.st/gfwlist -server=/iphonese.tv/127.0.0.1#5335 -ipset=/iphonese.tv/gfwlist -server=/device-manager.us/127.0.0.1#5335 -ipset=/device-manager.us/gfwlist -server=/yahoo.sm/127.0.0.1#5335 -ipset=/yahoo.sm/gfwlist +server=/freepornhentaigames.com/127.0.0.1#5335 +ipset=/freepornhentaigames.com/gfwlist server=/bmwgroup-classic-heart.com/127.0.0.1#5335 ipset=/bmwgroup-classic-heart.com/gfwlist -server=/yahoo.sk/127.0.0.1#5335 -ipset=/yahoo.sk/gfwlist -server=/yahoo.si/127.0.0.1#5335 -ipset=/yahoo.si/gfwlist -server=/yahoo.sg/127.0.0.1#5335 -ipset=/yahoo.sg/gfwlist -server=/yahoo.se/127.0.0.1#5335 -ipset=/yahoo.se/gfwlist -server=/cheapbeatsaustraliasale.com/127.0.0.1#5335 -ipset=/cheapbeatsaustraliasale.com/gfwlist server=/github.com/127.0.0.1#5335 ipset=/github.com/gfwlist server=/appledarwin.com/127.0.0.1#5335 @@ -11776,242 +9002,118 @@ server=/beatsheadphonesusamall.com/127.0.0.1#5335 ipset=/beatsheadphonesusamall.com/gfwlist server=/ind.sh/127.0.0.1#5335 ipset=/ind.sh/gfwlist -server=/yahoo.ru/127.0.0.1#5335 -ipset=/yahoo.ru/gfwlist -server=/yahoo.ro/127.0.0.1#5335 -ipset=/yahoo.ro/gfwlist -server=/1ucrs.com/127.0.0.1#5335 -ipset=/1ucrs.com/gfwlist -server=/nvidia.cz/127.0.0.1#5335 -ipset=/nvidia.cz/gfwlist -server=/yahoo.pn/127.0.0.1#5335 -ipset=/yahoo.pn/gfwlist -server=/yahoo.pl/127.0.0.1#5335 -ipset=/yahoo.pl/gfwlist -server=/beatsaudiobydre.com/127.0.0.1#5335 -ipset=/beatsaudiobydre.com/gfwlist -server=/yahoo.nu/127.0.0.1#5335 -ipset=/yahoo.nu/gfwlist -server=/yahoo.net/127.0.0.1#5335 -ipset=/yahoo.net/gfwlist +server=/cuckoldporntube.com/127.0.0.1#5335 +ipset=/cuckoldporntube.com/gfwlist +server=/agzy1.com/127.0.0.1#5335 +ipset=/agzy1.com/gfwlist +server=/thenextweb.com/127.0.0.1#5335 +ipset=/thenextweb.com/gfwlist server=/bridgestonetyre.com.my/127.0.0.1#5335 ipset=/bridgestonetyre.com.my/gfwlist -server=/volvotrucks.si/127.0.0.1#5335 -ipset=/volvotrucks.si/gfwlist -server=/yahoo.mx/127.0.0.1#5335 -ipset=/yahoo.mx/gfwlist -server=/ebayetc.com/127.0.0.1#5335 -ipset=/ebayetc.com/gfwlist -server=/alphabet.be/127.0.0.1#5335 -ipset=/alphabet.be/gfwlist -server=/yahoo.mk/127.0.0.1#5335 -ipset=/yahoo.mk/gfwlist -server=/igcdn.com/127.0.0.1#5335 -ipset=/igcdn.com/gfwlist -server=/yahoo.lt/127.0.0.1#5335 -ipset=/yahoo.lt/gfwlist -server=/yahoo.je/127.0.0.1#5335 -ipset=/yahoo.je/gfwlist -server=/xbox360.org/127.0.0.1#5335 -ipset=/xbox360.org/gfwlist -server=/mocloudplus.com/127.0.0.1#5335 -ipset=/mocloudplus.com/gfwlist -server=/yahoo.in/127.0.0.1#5335 -ipset=/yahoo.in/gfwlist -server=/yahoo.hr/127.0.0.1#5335 -ipset=/yahoo.hr/gfwlist -server=/yahoo.hk/127.0.0.1#5335 -ipset=/yahoo.hk/gfwlist -server=/adobejanus.com/127.0.0.1#5335 -ipset=/adobejanus.com/gfwlist -server=/yahoo.gy/127.0.0.1#5335 -ipset=/yahoo.gy/gfwlist +server=/milfslesbian.com/127.0.0.1#5335 +ipset=/milfslesbian.com/gfwlist +server=/pornoboard.net/127.0.0.1#5335 +ipset=/pornoboard.net/gfwlist +server=/ibradome.com/127.0.0.1#5335 +ipset=/ibradome.com/gfwlist +server=/fuckthathussy.com/127.0.0.1#5335 +ipset=/fuckthathussy.com/gfwlist +server=/sexmerci.com/127.0.0.1#5335 +ipset=/sexmerci.com/gfwlist +server=/opentranslatorstothings.org/127.0.0.1#5335 +ipset=/opentranslatorstothings.org/gfwlist server=/collective99.com/127.0.0.1#5335 ipset=/collective99.com/gfwlist -server=/yahoo.gp/127.0.0.1#5335 -ipset=/yahoo.gp/gfwlist server=/thenationalpulse.com/127.0.0.1#5335 ipset=/thenationalpulse.com/gfwlist server=/bmia.org/127.0.0.1#5335 ipset=/bmia.org/gfwlist -server=/yahoo.gm/127.0.0.1#5335 -ipset=/yahoo.gm/gfwlist -server=/yahoo.gl/127.0.0.1#5335 -ipset=/yahoo.gl/gfwlist -server=/foxsoccermatchpass.com/127.0.0.1#5335 -ipset=/foxsoccermatchpass.com/gfwlist server=/huffingtonpost.co.uk/127.0.0.1#5335 ipset=/huffingtonpost.co.uk/gfwlist -server=/yahoo.gg/127.0.0.1#5335 -ipset=/yahoo.gg/gfwlist -server=/blizzard.nefficient.co.kr/127.0.0.1#5335 -ipset=/blizzard.nefficient.co.kr/gfwlist -server=/huffingtonpost.it/127.0.0.1#5335 -ipset=/huffingtonpost.it/gfwlist -server=/hpuae.com/127.0.0.1#5335 -ipset=/hpuae.com/gfwlist -server=/yahoo.fm/127.0.0.1#5335 -ipset=/yahoo.fm/gfwlist -server=/dashwood360.com/127.0.0.1#5335 -ipset=/dashwood360.com/gfwlist -server=/beats-bydreuk.com/127.0.0.1#5335 -ipset=/beats-bydreuk.com/gfwlist +server=/adultsexgame.biz/127.0.0.1#5335 +ipset=/adultsexgame.biz/gfwlist +server=/minilaval.com/127.0.0.1#5335 +ipset=/minilaval.com/gfwlist +server=/visa.com.kh/127.0.0.1#5335 +ipset=/visa.com.kh/gfwlist +server=/horse-cum.net/127.0.0.1#5335 +ipset=/horse-cum.net/gfwlist server=/visa.nl/127.0.0.1#5335 ipset=/visa.nl/gfwlist -server=/printeron.com/127.0.0.1#5335 -ipset=/printeron.com/gfwlist server=/fox38corpuschristi.com/127.0.0.1#5335 ipset=/fox38corpuschristi.com/gfwlist -server=/embed-cdn.com/127.0.0.1#5335 -ipset=/embed-cdn.com/gfwlist -server=/yahoo.ee/127.0.0.1#5335 -ipset=/yahoo.ee/gfwlist +server=/bwh8.net/127.0.0.1#5335 +ipset=/bwh8.net/gfwlist server=/practicalmoneyskills.ca/127.0.0.1#5335 ipset=/practicalmoneyskills.ca/gfwlist server=/kktv.com.tw/127.0.0.1#5335 ipset=/kktv.com.tw/gfwlist -server=/hptouch.com/127.0.0.1#5335 -ipset=/hptouch.com/gfwlist +server=/hentaifc.com/127.0.0.1#5335 +ipset=/hentaifc.com/gfwlist server=/crececonebay.com/127.0.0.1#5335 ipset=/crececonebay.com/gfwlist -server=/yahoo.dj/127.0.0.1#5335 -ipset=/yahoo.dj/gfwlist -server=/yahoo.com.vn/127.0.0.1#5335 -ipset=/yahoo.com.vn/gfwlist -server=/yahoo.com.vc/127.0.0.1#5335 -ipset=/yahoo.com.vc/gfwlist -server=/yahoo.com.ua/127.0.0.1#5335 -ipset=/yahoo.com.ua/gfwlist -server=/msgamesresearch.com/127.0.0.1#5335 -ipset=/msgamesresearch.com/gfwlist -server=/yahoo.com.tr/127.0.0.1#5335 -ipset=/yahoo.com.tr/gfwlist +server=/zteman.net/127.0.0.1#5335 +ipset=/zteman.net/gfwlist +server=/javplatform.com/127.0.0.1#5335 +ipset=/javplatform.com/gfwlist server=/instafollower.com/127.0.0.1#5335 ipset=/instafollower.com/gfwlist -server=/yahoo.com.sv/127.0.0.1#5335 -ipset=/yahoo.com.sv/gfwlist -server=/yahoo.com.sg/127.0.0.1#5335 -ipset=/yahoo.com.sg/gfwlist -server=/who.int/127.0.0.1#5335 -ipset=/who.int/gfwlist -server=/maddenseason.info/127.0.0.1#5335 -ipset=/maddenseason.info/gfwlist -server=/embedly.com/127.0.0.1#5335 -ipset=/embedly.com/gfwlist -server=/jbe-platform.com/127.0.0.1#5335 -ipset=/jbe-platform.com/gfwlist +server=/beastiegals.com/127.0.0.1#5335 +ipset=/beastiegals.com/gfwlist +server=/intel.cz/127.0.0.1#5335 +ipset=/intel.cz/gfwlist server=/applemalaysia.com.my/127.0.0.1#5335 ipset=/applemalaysia.com.my/gfwlist server=/disneymusicpromotion.com/127.0.0.1#5335 ipset=/disneymusicpromotion.com/gfwlist -server=/yahoo.com.es/127.0.0.1#5335 -ipset=/yahoo.com.es/gfwlist -server=/yahoo.com.ph/127.0.0.1#5335 -ipset=/yahoo.com.ph/gfwlist server=/applestore.ph/127.0.0.1#5335 ipset=/applestore.ph/gfwlist -server=/yahoo.com.pe/127.0.0.1#5335 -ipset=/yahoo.com.pe/gfwlist server=/pages.dev/127.0.0.1#5335 ipset=/pages.dev/gfwlist -server=/prd-priconne-redive.akamaized.net/127.0.0.1#5335 -ipset=/prd-priconne-redive.akamaized.net/gfwlist -server=/yahoo.com.pa/127.0.0.1#5335 -ipset=/yahoo.com.pa/gfwlist -server=/openapiplatform.com/127.0.0.1#5335 -ipset=/openapiplatform.com/gfwlist server=/paypal-apac.com/127.0.0.1#5335 ipset=/paypal-apac.com/gfwlist -server=/get.how/127.0.0.1#5335 -ipset=/get.how/gfwlist server=/paypal-center.com/127.0.0.1#5335 ipset=/paypal-center.com/gfwlist server=/iamremarkable.org/127.0.0.1#5335 ipset=/iamremarkable.org/gfwlist -server=/yahoo.lv/127.0.0.1#5335 -ipset=/yahoo.lv/gfwlist -server=/playz.jp/127.0.0.1#5335 -ipset=/playz.jp/gfwlist -server=/yahoo.com.nf/127.0.0.1#5335 -ipset=/yahoo.com.nf/gfwlist +server=/pornshare.biz/127.0.0.1#5335 +ipset=/pornshare.biz/gfwlist server=/adobecontent.io/127.0.0.1#5335 ipset=/adobecontent.io/gfwlist server=/airwick.ch/127.0.0.1#5335 ipset=/airwick.ch/gfwlist -server=/mini-e.com/127.0.0.1#5335 -ipset=/mini-e.com/gfwlist -server=/yahoo.com.mt/127.0.0.1#5335 -ipset=/yahoo.com.mt/gfwlist -server=/yahoo.com.ly/127.0.0.1#5335 -ipset=/yahoo.com.ly/gfwlist -server=/yahoo.com.lb/127.0.0.1#5335 -ipset=/yahoo.com.lb/gfwlist -server=/sony.com.sg/127.0.0.1#5335 -ipset=/sony.com.sg/gfwlist -server=/yahoo.com.gt/127.0.0.1#5335 -ipset=/yahoo.com.gt/gfwlist -server=/redkix.com/127.0.0.1#5335 -ipset=/redkix.com/gfwlist -server=/ipod.pk/127.0.0.1#5335 -ipset=/ipod.pk/gfwlist -server=/pearson.com.au/127.0.0.1#5335 -ipset=/pearson.com.au/gfwlist -server=/mastercard.ie/127.0.0.1#5335 -ipset=/mastercard.ie/gfwlist -server=/bestbuy.com.mx/127.0.0.1#5335 -ipset=/bestbuy.com.mx/gfwlist -server=/ebayclassifies.com/127.0.0.1#5335 -ipset=/ebayclassifies.com/gfwlist -server=/starbucks.com.kh/127.0.0.1#5335 -ipset=/starbucks.com.kh/gfwlist +server=/ubuntu.net/127.0.0.1#5335 +ipset=/ubuntu.net/gfwlist +server=/etheadphones.com/127.0.0.1#5335 +ipset=/etheadphones.com/gfwlist +server=/fbfeedback.com/127.0.0.1#5335 +ipset=/fbfeedback.com/gfwlist +server=/langsuirs.com/127.0.0.1#5335 +ipset=/langsuirs.com/gfwlist server=/microsoft.tv/127.0.0.1#5335 ipset=/microsoft.tv/gfwlist -server=/yahoo.com.co/127.0.0.1#5335 -ipset=/yahoo.com.co/gfwlist -server=/gucci.com/127.0.0.1#5335 -ipset=/gucci.com/gfwlist -server=/thetype.com/127.0.0.1#5335 -ipset=/thetype.com/gfwlist -server=/redditstatic.com/127.0.0.1#5335 -ipset=/redditstatic.com/gfwlist -server=/2014cheapbeatsbydre.com/127.0.0.1#5335 -ipset=/2014cheapbeatsbydre.com/gfwlist -server=/yahoo.com.bz/127.0.0.1#5335 -ipset=/yahoo.com.bz/gfwlist -server=/minivilledequebec.ca/127.0.0.1#5335 -ipset=/minivilledequebec.ca/gfwlist -server=/yahoo.com.br/127.0.0.1#5335 -ipset=/yahoo.com.br/gfwlist -server=/attwirelessinternet.com/127.0.0.1#5335 -ipset=/attwirelessinternet.com/gfwlist -server=/yahoo.com.au/127.0.0.1#5335 -ipset=/yahoo.com.au/gfwlist -server=/yahoo.com.ar/127.0.0.1#5335 -ipset=/yahoo.com.ar/gfwlist -server=/translatetheweb.com/127.0.0.1#5335 -ipset=/translatetheweb.com/gfwlist -server=/yahoo.com.ai/127.0.0.1#5335 -ipset=/yahoo.com.ai/gfwlist +server=/faseboox.com/127.0.0.1#5335 +ipset=/faseboox.com/gfwlist +server=/img4.uk/127.0.0.1#5335 +ipset=/img4.uk/gfwlist +server=/pictoa.com/127.0.0.1#5335 +ipset=/pictoa.com/gfwlist +server=/jav24.com/127.0.0.1#5335 +ipset=/jav24.com/gfwlist +server=/beastysexlinks.com/127.0.0.1#5335 +ipset=/beastysexlinks.com/gfwlist server=/calgon.ru/127.0.0.1#5335 ipset=/calgon.ru/gfwlist server=/scitation.org/127.0.0.1#5335 ipset=/scitation.org/gfwlist -server=/brands098.com/127.0.0.1#5335 -ipset=/brands098.com/gfwlist -server=/pnas.org/127.0.0.1#5335 -ipset=/pnas.org/gfwlist -server=/yahoo.co.za/127.0.0.1#5335 -ipset=/yahoo.co.za/gfwlist -server=/wiiugamepad.com/127.0.0.1#5335 -ipset=/wiiugamepad.com/gfwlist -server=/futureofbusinesssurvey.org/127.0.0.1#5335 -ipset=/futureofbusinesssurvey.org/gfwlist -server=/uproxy.org/127.0.0.1#5335 -ipset=/uproxy.org/gfwlist -server=/adobedemo.com/127.0.0.1#5335 -ipset=/adobedemo.com/gfwlist -server=/intel.cu/127.0.0.1#5335 -ipset=/intel.cu/gfwlist +server=/sexykittenporn.com/127.0.0.1#5335 +ipset=/sexykittenporn.com/gfwlist +server=/hentai.name/127.0.0.1#5335 +ipset=/hentai.name/gfwlist +server=/latinaabuse.com/127.0.0.1#5335 +ipset=/latinaabuse.com/gfwlist +server=/onlysiterip.com/127.0.0.1#5335 +ipset=/onlysiterip.com/gfwlist server=/volvobuses.us/127.0.0.1#5335 ipset=/volvobuses.us/gfwlist server=/herokucharge.com/127.0.0.1#5335 @@ -12020,1938 +9122,830 @@ server=/nikereuseashoe.com/127.0.0.1#5335 ipset=/nikereuseashoe.com/gfwlist server=/bmw-motorrad.gr/127.0.0.1#5335 ipset=/bmw-motorrad.gr/gfwlist -server=/volvotrucks.com.pt/127.0.0.1#5335 -ipset=/volvotrucks.com.pt/gfwlist -server=/yahoo.co.uz/127.0.0.1#5335 -ipset=/yahoo.co.uz/gfwlist -server=/yahoo.co.uk/127.0.0.1#5335 -ipset=/yahoo.co.uk/gfwlist -server=/yahoo.co.tz/127.0.0.1#5335 -ipset=/yahoo.co.tz/gfwlist -server=/yahoo.co.th/127.0.0.1#5335 -ipset=/yahoo.co.th/gfwlist -server=/yahoo.co.nz/127.0.0.1#5335 -ipset=/yahoo.co.nz/gfwlist +server=/bmw-konzernarchiv.de/127.0.0.1#5335 +ipset=/bmw-konzernarchiv.de/gfwlist +server=/ashemaletv.com/127.0.0.1#5335 +ipset=/ashemaletv.com/gfwlist +server=/4porn.com/127.0.0.1#5335 +ipset=/4porn.com/gfwlist server=/mingpaovan.com/127.0.0.1#5335 ipset=/mingpaovan.com/gfwlist server=/itunesradio.tw/127.0.0.1#5335 ipset=/itunesradio.tw/gfwlist -server=/1degree.com.au/127.0.0.1#5335 -ipset=/1degree.com.au/gfwlist -server=/nikeplus.org/127.0.0.1#5335 -ipset=/nikeplus.org/gfwlist -server=/yahoo.co.kr/127.0.0.1#5335 -ipset=/yahoo.co.kr/gfwlist +server=/cixp.net/127.0.0.1#5335 +ipset=/cixp.net/gfwlist +server=/htyj-bj.com/127.0.0.1#5335 +ipset=/htyj-bj.com/gfwlist server=/wikidot.com/127.0.0.1#5335 ipset=/wikidot.com/gfwlist -server=/volvobuses.kr/127.0.0.1#5335 -ipset=/volvobuses.kr/gfwlist -server=/yahoo.co.id/127.0.0.1#5335 -ipset=/yahoo.co.id/gfwlist +server=/sshs.club/127.0.0.1#5335 +ipset=/sshs.club/gfwlist +server=/x1337x.eu/127.0.0.1#5335 +ipset=/x1337x.eu/gfwlist server=/firestone.co.cr/127.0.0.1#5335 ipset=/firestone.co.cr/gfwlist -server=/yahoo.co.cr/127.0.0.1#5335 -ipset=/yahoo.co.cr/gfwlist server=/intel.nz/127.0.0.1#5335 ipset=/intel.nz/gfwlist -server=/officialdrdre.com/127.0.0.1#5335 -ipset=/officialdrdre.com/gfwlist -server=/yahoo.co.ck/127.0.0.1#5335 -ipset=/yahoo.co.ck/gfwlist -server=/ieee-ceda.org/127.0.0.1#5335 -ipset=/ieee-ceda.org/gfwlist -server=/voathai.com/127.0.0.1#5335 -ipset=/voathai.com/gfwlist -server=/lolstatic.com/127.0.0.1#5335 -ipset=/lolstatic.com/gfwlist +server=/atube.xxx/127.0.0.1#5335 +ipset=/atube.xxx/gfwlist +server=/intel.com.ec/127.0.0.1#5335 +ipset=/intel.com.ec/gfwlist server=/pascherbeatsmonster.com/127.0.0.1#5335 ipset=/pascherbeatsmonster.com/gfwlist -server=/yahoo.co.ao/127.0.0.1#5335 -ipset=/yahoo.co.ao/gfwlist server=/wholekidsfoundation.org/127.0.0.1#5335 ipset=/wholekidsfoundation.org/gfwlist server=/parse.com/127.0.0.1#5335 ipset=/parse.com/gfwlist -server=/yahoo.cm/127.0.0.1#5335 -ipset=/yahoo.cm/gfwlist -server=/yahoo.cl/127.0.0.1#5335 -ipset=/yahoo.cl/gfwlist -server=/yahoo.cg/127.0.0.1#5335 -ipset=/yahoo.cg/gfwlist -server=/yahoo.cat/127.0.0.1#5335 -ipset=/yahoo.cat/gfwlist -server=/beatsmusic.wang/127.0.0.1#5335 -ipset=/beatsmusic.wang/gfwlist -server=/yahoo.bt/127.0.0.1#5335 -ipset=/yahoo.bt/gfwlist -server=/yahoo.bs/127.0.0.1#5335 -ipset=/yahoo.bs/gfwlist -server=/shopee.com.br/127.0.0.1#5335 -ipset=/shopee.com.br/gfwlist -server=/yahoo.bg/127.0.0.1#5335 -ipset=/yahoo.bg/gfwlist +server=/organicmaps.app/127.0.0.1#5335 +ipset=/organicmaps.app/gfwlist +server=/doeda.com/127.0.0.1#5335 +ipset=/doeda.com/gfwlist +server=/instastyle.tv/127.0.0.1#5335 +ipset=/instastyle.tv/gfwlist server=/ruby-lang.org/127.0.0.1#5335 ipset=/ruby-lang.org/gfwlist -server=/fbthirdpartypixel.com/127.0.0.1#5335 -ipset=/fbthirdpartypixel.com/gfwlist +server=/cmmedia.com.tw/127.0.0.1#5335 +ipset=/cmmedia.com.tw/gfwlist server=/google.gm/127.0.0.1#5335 ipset=/google.gm/gfwlist server=/linear-abematv.akamaized.net/127.0.0.1#5335 ipset=/linear-abematv.akamaized.net/gfwlist -server=/yahoo.be/127.0.0.1#5335 -ipset=/yahoo.be/gfwlist +server=/fetishbank.net/127.0.0.1#5335 +ipset=/fetishbank.net/gfwlist server=/fightforux.com/127.0.0.1#5335 ipset=/fightforux.com/gfwlist -server=/windowsphone-int.com/127.0.0.1#5335 -ipset=/windowsphone-int.com/gfwlist -server=/vcloudair.net/127.0.0.1#5335 -ipset=/vcloudair.net/gfwlist -server=/uun98.com/127.0.0.1#5335 -ipset=/uun98.com/gfwlist -server=/yahoo.as/127.0.0.1#5335 -ipset=/yahoo.as/gfwlist -server=/yahoo.am/127.0.0.1#5335 -ipset=/yahoo.am/gfwlist -server=/vfsco.com.au/127.0.0.1#5335 -ipset=/vfsco.com.au/gfwlist +server=/pwmnet.com/127.0.0.1#5335 +ipset=/pwmnet.com/gfwlist +server=/jerkmate.com/127.0.0.1#5335 +ipset=/jerkmate.com/gfwlist server=/fox7austin.com/127.0.0.1#5335 ipset=/fox7austin.com/gfwlist -server=/huluspain.com/127.0.0.1#5335 -ipset=/huluspain.com/gfwlist -server=/applestore.hk/127.0.0.1#5335 -ipset=/applestore.hk/gfwlist server=/scala-lang.org/127.0.0.1#5335 ipset=/scala-lang.org/gfwlist -server=/gemini.yahoo.com/127.0.0.1#5335 -ipset=/gemini.yahoo.com/gfwlist -server=/nvidia.com.au/127.0.0.1#5335 -ipset=/nvidia.com.au/gfwlist -server=/ads.yahoo.com/127.0.0.1#5335 -ipset=/ads.yahoo.com/gfwlist server=/disneyinflight.com/127.0.0.1#5335 ipset=/disneyinflight.com/gfwlist server=/gamesstack.com/127.0.0.1#5335 ipset=/gamesstack.com/gfwlist server=/volvotrucks.co.bw/127.0.0.1#5335 ipset=/volvotrucks.co.bw/gfwlist -server=/beatsdreus.com/127.0.0.1#5335 -ipset=/beatsdreus.com/gfwlist -server=/pixanalytics.com/127.0.0.1#5335 -ipset=/pixanalytics.com/gfwlist -server=/drebeatsaustralia-cheap.com/127.0.0.1#5335 -ipset=/drebeatsaustralia-cheap.com/gfwlist -server=/foxcollegesports.com/127.0.0.1#5335 -ipset=/foxcollegesports.com/gfwlist -server=/wdc.com/127.0.0.1#5335 -ipset=/wdc.com/gfwlist server=/tiberiumalliances.com/127.0.0.1#5335 ipset=/tiberiumalliances.com/gfwlist -server=/els-cdn.com/127.0.0.1#5335 -ipset=/els-cdn.com/gfwlist -server=/sandisk.sg/127.0.0.1#5335 -ipset=/sandisk.sg/gfwlist -server=/sandisk.nl/127.0.0.1#5335 -ipset=/sandisk.nl/gfwlist +server=/kaamuu.com/127.0.0.1#5335 +ipset=/kaamuu.com/gfwlist server=/commandandconquer.com/127.0.0.1#5335 ipset=/commandandconquer.com/gfwlist -server=/iphoto.se/127.0.0.1#5335 -ipset=/iphoto.se/gfwlist -server=/photonicssociety.org/127.0.0.1#5335 -ipset=/photonicssociety.org/gfwlist -server=/sandisk.in/127.0.0.1#5335 -ipset=/sandisk.in/gfwlist server=/finish.bg/127.0.0.1#5335 ipset=/finish.bg/gfwlist -server=/tug.org/127.0.0.1#5335 -ipset=/tug.org/gfwlist -server=/sandisk.hk/127.0.0.1#5335 -ipset=/sandisk.hk/gfwlist -server=/disneypeoplesurveys.com/127.0.0.1#5335 -ipset=/disneypeoplesurveys.com/gfwlist +server=/vporn.com/127.0.0.1#5335 +ipset=/vporn.com/gfwlist +server=/bmw.com.ar/127.0.0.1#5335 +ipset=/bmw.com.ar/gfwlist server=/intel.co.cr/127.0.0.1#5335 ipset=/intel.co.cr/gfwlist -server=/sandisk.de/127.0.0.1#5335 -ipset=/sandisk.de/gfwlist -server=/google.pl/127.0.0.1#5335 -ipset=/google.pl/gfwlist -server=/sandisk.com.tw/127.0.0.1#5335 -ipset=/sandisk.com.tw/gfwlist -server=/sandisk.com.tr/127.0.0.1#5335 -ipset=/sandisk.com.tr/gfwlist -server=/sandisk.com.br/127.0.0.1#5335 -ipset=/sandisk.com.br/gfwlist -server=/sandisk.com.au/127.0.0.1#5335 -ipset=/sandisk.com.au/gfwlist -server=/rakuten.com/127.0.0.1#5335 -ipset=/rakuten.com/gfwlist -server=/intel.com.pr/127.0.0.1#5335 -ipset=/intel.com.pr/gfwlist +server=/kechtube.com/127.0.0.1#5335 +ipset=/kechtube.com/gfwlist server=/dreamforce.com/127.0.0.1#5335 ipset=/dreamforce.com/gfwlist server=/beatsbydresstudio.com/127.0.0.1#5335 ipset=/beatsbydresstudio.com/gfwlist -server=/cheapbeatssale4u.com/127.0.0.1#5335 -ipset=/cheapbeatssale4u.com/gfwlist -server=/hipzoom.net/127.0.0.1#5335 -ipset=/hipzoom.net/gfwlist -server=/sandisk.com/127.0.0.1#5335 -ipset=/sandisk.com/gfwlist -server=/nist.gov/127.0.0.1#5335 -ipset=/nist.gov/gfwlist -server=/jqueryui.com/127.0.0.1#5335 -ipset=/jqueryui.com/gfwlist -server=/azurecosmos.net/127.0.0.1#5335 -ipset=/azurecosmos.net/gfwlist -server=/lin.ee/127.0.0.1#5335 -ipset=/lin.ee/gfwlist -server=/hpstorethailand.com/127.0.0.1#5335 -ipset=/hpstorethailand.com/gfwlist -server=/nvidia.co.in/127.0.0.1#5335 -ipset=/nvidia.co.in/gfwlist -server=/vkuservideo.net/127.0.0.1#5335 -ipset=/vkuservideo.net/gfwlist -server=/vkuserlive.net/127.0.0.1#5335 -ipset=/vkuserlive.net/gfwlist -server=/vkuseraudio.com/127.0.0.1#5335 -ipset=/vkuseraudio.com/gfwlist -server=/database.asahi.com/127.0.0.1#5335 -ipset=/database.asahi.com/gfwlist -server=/vkmessenger.com/127.0.0.1#5335 -ipset=/vkmessenger.com/gfwlist -server=/vklive.app/127.0.0.1#5335 -ipset=/vklive.app/gfwlist -server=/vkgo.app/127.0.0.1#5335 -ipset=/vkgo.app/gfwlist -server=/monsterbeatssydneyaustralia.com/127.0.0.1#5335 -ipset=/monsterbeatssydneyaustralia.com/gfwlist -server=/vkcache.com/127.0.0.1#5335 -ipset=/vkcache.com/gfwlist -server=/myavfun.com/127.0.0.1#5335 -ipset=/myavfun.com/gfwlist +server=/2beeg.me/127.0.0.1#5335 +ipset=/2beeg.me/gfwlist +server=/google.com/127.0.0.1#5335 +ipset=/google.com/gfwlist +server=/imzog.com/127.0.0.1#5335 +ipset=/imzog.com/gfwlist +server=/swegold.com/127.0.0.1#5335 +ipset=/swegold.com/gfwlist +server=/sexyfucking.ru/127.0.0.1#5335 +ipset=/sexyfucking.ru/gfwlist +server=/sensualgirls.org/127.0.0.1#5335 +ipset=/sensualgirls.org/gfwlist +server=/bululusexdoll.com/127.0.0.1#5335 +ipset=/bululusexdoll.com/gfwlist +server=/ebaycourse.com/127.0.0.1#5335 +ipset=/ebaycourse.com/gfwlist server=/intel.sx/127.0.0.1#5335 ipset=/intel.sx/gfwlist -server=/blogspot.sn/127.0.0.1#5335 -ipset=/blogspot.sn/gfwlist -server=/historyofdota.net/127.0.0.1#5335 -ipset=/historyofdota.net/gfwlist -server=/foxacrossamerica.com/127.0.0.1#5335 -ipset=/foxacrossamerica.com/gfwlist +server=/12diasderegalosdeitunes.co.ni/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.co.ni/gfwlist server=/vanish.co.za/127.0.0.1#5335 ipset=/vanish.co.za/gfwlist -server=/costco.com/127.0.0.1#5335 -ipset=/costco.com/gfwlist -server=/vk.design/127.0.0.1#5335 -ipset=/vk.design/gfwlist server=/alfera.com.my/127.0.0.1#5335 ipset=/alfera.com.my/gfwlist server=/youtube.no/127.0.0.1#5335 ipset=/youtube.no/gfwlist -server=/vk.com/127.0.0.1#5335 -ipset=/vk.com/gfwlist -server=/bgr.in/127.0.0.1#5335 -ipset=/bgr.in/gfwlist -server=/vk-cdn.me/127.0.0.1#5335 -ipset=/vk-cdn.me/gfwlist server=/woolite.com/127.0.0.1#5335 ipset=/woolite.com/gfwlist server=/businessweekmag.com/127.0.0.1#5335 ipset=/businessweekmag.com/gfwlist server=/fox23.com/127.0.0.1#5335 ipset=/fox23.com/gfwlist -server=/xo.com/127.0.0.1#5335 -ipset=/xo.com/gfwlist server=/huobitoken.com/127.0.0.1#5335 ipset=/huobitoken.com/gfwlist -server=/vzw.com/127.0.0.1#5335 -ipset=/vzw.com/gfwlist -server=/ebay.lt/127.0.0.1#5335 -ipset=/ebay.lt/gfwlist -server=/verizonwireless.com/127.0.0.1#5335 -ipset=/verizonwireless.com/gfwlist -server=/nmbmw.com/127.0.0.1#5335 -ipset=/nmbmw.com/gfwlist -server=/appleid-iclou.com/127.0.0.1#5335 -ipset=/appleid-iclou.com/gfwlist +server=/thepornmap.com/127.0.0.1#5335 +ipset=/thepornmap.com/gfwlist server=/pokemonhome.com/127.0.0.1#5335 ipset=/pokemonhome.com/gfwlist -server=/iphone-yh.com/127.0.0.1#5335 -ipset=/iphone-yh.com/gfwlist -server=/logicool.co.jp/127.0.0.1#5335 -ipset=/logicool.co.jp/gfwlist -server=/verizonbusinessfios.com/127.0.0.1#5335 -ipset=/verizonbusinessfios.com/gfwlist -server=/hp-invent.com/127.0.0.1#5335 -ipset=/hp-invent.com/gfwlist -server=/iphone4.com/127.0.0.1#5335 -ipset=/iphone4.com/gfwlist +server=/77maott.com/127.0.0.1#5335 +ipset=/77maott.com/gfwlist server=/volvotrucks.lv/127.0.0.1#5335 ipset=/volvotrucks.lv/gfwlist -server=/uplynk.com/127.0.0.1#5335 -ipset=/uplynk.com/gfwlist -server=/static-verizon.com/127.0.0.1#5335 -ipset=/static-verizon.com/gfwlist -server=/ouroath.com/127.0.0.1#5335 -ipset=/ouroath.com/gfwlist +server=/modeltv.com/127.0.0.1#5335 +ipset=/modeltv.com/gfwlist +server=/jpg4.pw/127.0.0.1#5335 +ipset=/jpg4.pw/gfwlist server=/facegbook.com/127.0.0.1#5335 ipset=/facegbook.com/gfwlist server=/bmw-plant-munich.com/127.0.0.1#5335 ipset=/bmw-plant-munich.com/gfwlist -server=/oath.com/127.0.0.1#5335 -ipset=/oath.com/gfwlist -server=/gemfury.com/127.0.0.1#5335 -ipset=/gemfury.com/gfwlist -server=/uber.com/127.0.0.1#5335 -ipset=/uber.com/gfwlist -server=/bmw-connecteddrive.ie/127.0.0.1#5335 -ipset=/bmw-connecteddrive.ie/gfwlist -server=/twttr.com/127.0.0.1#5335 -ipset=/twttr.com/gfwlist -server=/twtrdns.net/127.0.0.1#5335 -ipset=/twtrdns.net/gfwlist -server=/paypal-mainstreet.net/127.0.0.1#5335 -ipset=/paypal-mainstreet.net/gfwlist +server=/appleone.film/127.0.0.1#5335 +ipset=/appleone.film/gfwlist server=/mini-georgia.com/127.0.0.1#5335 ipset=/mini-georgia.com/gfwlist -server=/amazon.com.br/127.0.0.1#5335 -ipset=/amazon.com.br/gfwlist +server=/fundraisingwithfacebook.com/127.0.0.1#5335 +ipset=/fundraisingwithfacebook.com/gfwlist server=/hpfeedback.com/127.0.0.1#5335 ipset=/hpfeedback.com/gfwlist -server=/twitteroauth.com/127.0.0.1#5335 -ipset=/twitteroauth.com/gfwlist server=/leagueoflegends.net/127.0.0.1#5335 ipset=/leagueoflegends.net/gfwlist -server=/twitterinc.com/127.0.0.1#5335 -ipset=/twitterinc.com/gfwlist +server=/xxx-ways.com/127.0.0.1#5335 +ipset=/xxx-ways.com/gfwlist server=/youtube.al/127.0.0.1#5335 ipset=/youtube.al/gfwlist -server=/hkcitizenmedia.com/127.0.0.1#5335 -ipset=/hkcitizenmedia.com/gfwlist -server=/twitter.com/127.0.0.1#5335 -ipset=/twitter.com/gfwlist +server=/fetishes.cam/127.0.0.1#5335 +ipset=/fetishes.cam/gfwlist server=/webex.ca/127.0.0.1#5335 ipset=/webex.ca/gfwlist server=/primevideo.cc/127.0.0.1#5335 ipset=/primevideo.cc/gfwlist -server=/twitpic.com/127.0.0.1#5335 -ipset=/twitpic.com/gfwlist -server=/alterauserforums.net/127.0.0.1#5335 -ipset=/alterauserforums.net/gfwlist -server=/twimg.com/127.0.0.1#5335 -ipset=/twimg.com/gfwlist +server=/streamporn.cc/127.0.0.1#5335 +ipset=/streamporn.cc/gfwlist +server=/lecoin.cc/127.0.0.1#5335 +ipset=/lecoin.cc/gfwlist server=/ebay.de/127.0.0.1#5335 ipset=/ebay.de/gfwlist -server=/tellapart.com/127.0.0.1#5335 -ipset=/tellapart.com/gfwlist server=/ameblo.jp/127.0.0.1#5335 ipset=/ameblo.jp/gfwlist -server=/t.co/127.0.0.1#5335 -ipset=/t.co/gfwlist -server=/pscp.tv/127.0.0.1#5335 -ipset=/pscp.tv/gfwlist -server=/ads-twitter.com/127.0.0.1#5335 -ipset=/ads-twitter.com/gfwlist -server=/yshyqxx.com/127.0.0.1#5335 -ipset=/yshyqxx.com/gfwlist -server=/softbankrobotics.com/127.0.0.1#5335 -ipset=/softbankrobotics.com/gfwlist server=/miniso.pe/127.0.0.1#5335 ipset=/miniso.pe/gfwlist -server=/openstreetmap.org/127.0.0.1#5335 -ipset=/openstreetmap.org/gfwlist server=/servicetalk.io/127.0.0.1#5335 ipset=/servicetalk.io/gfwlist -server=/heroku-app.com/127.0.0.1#5335 -ipset=/heroku-app.com/gfwlist -server=/mini-connected.ee/127.0.0.1#5335 -ipset=/mini-connected.ee/gfwlist -server=/sonyprotechnosupport.co.jp/127.0.0.1#5335 -ipset=/sonyprotechnosupport.co.jp/gfwlist -server=/newyorker.com/127.0.0.1#5335 -ipset=/newyorker.com/gfwlist +server=/facebooklogin.com/127.0.0.1#5335 +ipset=/facebooklogin.com/gfwlist server=/unityads.unity3d.com/127.0.0.1#5335 ipset=/unityads.unity3d.com/gfwlist server=/beatsbydreinexpensive.com/127.0.0.1#5335 ipset=/beatsbydreinexpensive.com/gfwlist server=/softbank-telecom.net/127.0.0.1#5335 ipset=/softbank-telecom.net/gfwlist -server=/alphera.com.my/127.0.0.1#5335 -ipset=/alphera.com.my/gfwlist -server=/sonyglobalsolutions.jp/127.0.0.1#5335 -ipset=/sonyglobalsolutions.jp/gfwlist -server=/bmw.com.cy/127.0.0.1#5335 -ipset=/bmw.com.cy/gfwlist -server=/sonydna.com/127.0.0.1#5335 -ipset=/sonydna.com/gfwlist -server=/starbucksrtd.com/127.0.0.1#5335 -ipset=/starbucksrtd.com/gfwlist +server=/ikea.com.de/127.0.0.1#5335 +ipset=/ikea.com.de/gfwlist +server=/2bit8.com/127.0.0.1#5335 +ipset=/2bit8.com/gfwlist server=/rb-crisis.com/127.0.0.1#5335 ipset=/rb-crisis.com/gfwlist -server=/sony.si/127.0.0.1#5335 -ipset=/sony.si/gfwlist -server=/sony.se/127.0.0.1#5335 -ipset=/sony.se/gfwlist server=/uug25.com/127.0.0.1#5335 ipset=/uug25.com/gfwlist -server=/monsterbeatsalestore.com/127.0.0.1#5335 -ipset=/monsterbeatsalestore.com/gfwlist -server=/youtube.com.sa/127.0.0.1#5335 -ipset=/youtube.com.sa/gfwlist -server=/onedrive.live.com/127.0.0.1#5335 -ipset=/onedrive.live.com/gfwlist -server=/pypi.org/127.0.0.1#5335 -ipset=/pypi.org/gfwlist -server=/volvotrucks.mk/127.0.0.1#5335 -ipset=/volvotrucks.mk/gfwlist -server=/bestbuybusiness.com/127.0.0.1#5335 -ipset=/bestbuybusiness.com/gfwlist server=/alphabet.eu/127.0.0.1#5335 ipset=/alphabet.eu/gfwlist -server=/sony.net/127.0.0.1#5335 -ipset=/sony.net/gfwlist -server=/worldemojiawards.com/127.0.0.1#5335 -ipset=/worldemojiawards.com/gfwlist -server=/dvdstudiopro.com/127.0.0.1#5335 -ipset=/dvdstudiopro.com/gfwlist -server=/crysis.jp/127.0.0.1#5335 -ipset=/crysis.jp/gfwlist -server=/readthedocs-hosted.com/127.0.0.1#5335 -ipset=/readthedocs-hosted.com/gfwlist -server=/ap.org/127.0.0.1#5335 -ipset=/ap.org/gfwlist -server=/cbscorporation.com/127.0.0.1#5335 -ipset=/cbscorporation.com/gfwlist -server=/marveldimensionofheroes.com/127.0.0.1#5335 -ipset=/marveldimensionofheroes.com/gfwlist -server=/overcast.fm/127.0.0.1#5335 -ipset=/overcast.fm/gfwlist -server=/sony.gr/127.0.0.1#5335 -ipset=/sony.gr/gfwlist -server=/findmybeats.com/127.0.0.1#5335 -ipset=/findmybeats.com/gfwlist +server=/porn.to/127.0.0.1#5335 +ipset=/porn.to/gfwlist +server=/vpornvideos.com/127.0.0.1#5335 +ipset=/vpornvideos.com/gfwlist +server=/drunk6.com/127.0.0.1#5335 +ipset=/drunk6.com/gfwlist server=/vimeo-staging.com/127.0.0.1#5335 ipset=/vimeo-staging.com/gfwlist server=/fbinc.com/127.0.0.1#5335 ipset=/fbinc.com/gfwlist server=/dkk37.com/127.0.0.1#5335 ipset=/dkk37.com/gfwlist -server=/sony.fr/127.0.0.1#5335 -ipset=/sony.fr/gfwlist -server=/paypalcommunity.org/127.0.0.1#5335 -ipset=/paypalcommunity.org/gfwlist -server=/sony.eu/127.0.0.1#5335 -ipset=/sony.eu/gfwlist +server=/pinterest.kr/127.0.0.1#5335 +ipset=/pinterest.kr/gfwlist server=/vjmedia.com.hk/127.0.0.1#5335 ipset=/vjmedia.com.hk/gfwlist -server=/hkgolden.com/127.0.0.1#5335 -ipset=/hkgolden.com/gfwlist +server=/taose.tv/127.0.0.1#5335 +ipset=/taose.tv/gfwlist server=/bridgestone-plt-eng.com/127.0.0.1#5335 ipset=/bridgestone-plt-eng.com/gfwlist server=/miniso.ma/127.0.0.1#5335 ipset=/miniso.ma/gfwlist -server=/visualarts.gr.jp/127.0.0.1#5335 -ipset=/visualarts.gr.jp/gfwlist -server=/sony.es/127.0.0.1#5335 -ipset=/sony.es/gfwlist -server=/sony.ee/127.0.0.1#5335 -ipset=/sony.ee/gfwlist -server=/sony.de/127.0.0.1#5335 -ipset=/sony.de/gfwlist -server=/sony.com.vn/127.0.0.1#5335 -ipset=/sony.com.vn/gfwlist -server=/sony.com.tw/127.0.0.1#5335 -ipset=/sony.com.tw/gfwlist -server=/sony.com.tr/127.0.0.1#5335 -ipset=/sony.com.tr/gfwlist -server=/msturing.org/127.0.0.1#5335 -ipset=/msturing.org/gfwlist -server=/sony.com.sv/127.0.0.1#5335 -ipset=/sony.com.sv/gfwlist -server=/yahoo.com.hk/127.0.0.1#5335 -ipset=/yahoo.com.hk/gfwlist +server=/dirtyleague.com/127.0.0.1#5335 +ipset=/dirtyleague.com/gfwlist +server=/javmenu.com/127.0.0.1#5335 +ipset=/javmenu.com/gfwlist server=/getdirect.tv/127.0.0.1#5335 ipset=/getdirect.tv/gfwlist -server=/sony.com.ph/127.0.0.1#5335 -ipset=/sony.com.ph/gfwlist -server=/sony.com.pa/127.0.0.1#5335 -ipset=/sony.com.pa/gfwlist -server=/ebayseller.com/127.0.0.1#5335 -ipset=/ebayseller.com/gfwlist +server=/steampipe-kr.akamaized.net/127.0.0.1#5335 +ipset=/steampipe-kr.akamaized.net/gfwlist server=/adobeaemcloud.com/127.0.0.1#5335 ipset=/adobeaemcloud.com/gfwlist server=/paypal.com/127.0.0.1#5335 ipset=/paypal.com/gfwlist -server=/sony.com.my/127.0.0.1#5335 -ipset=/sony.com.my/gfwlist -server=/disqusservice.com/127.0.0.1#5335 -ipset=/disqusservice.com/gfwlist -server=/scholar.google.com.gt/127.0.0.1#5335 -ipset=/scholar.google.com.gt/gfwlist +server=/crosswalk-project.net/127.0.0.1#5335 +ipset=/crosswalk-project.net/gfwlist +server=/nikecloud.com/127.0.0.1#5335 +ipset=/nikecloud.com/gfwlist server=/easportsworld.com/127.0.0.1#5335 ipset=/easportsworld.com/gfwlist server=/starbuckspoq.com/127.0.0.1#5335 ipset=/starbuckspoq.com/gfwlist -server=/nikeseason.com/127.0.0.1#5335 -ipset=/nikeseason.com/gfwlist -server=/akamaized-staging.net/127.0.0.1#5335 -ipset=/akamaized-staging.net/gfwlist +server=/binancezh.mobi/127.0.0.1#5335 +ipset=/binancezh.mobi/gfwlist server=/twinprime.com/127.0.0.1#5335 ipset=/twinprime.com/gfwlist -server=/sony.com.hk/127.0.0.1#5335 -ipset=/sony.com.hk/gfwlist -server=/intel.tv/127.0.0.1#5335 -ipset=/intel.tv/gfwlist -server=/facebookads.com/127.0.0.1#5335 -ipset=/facebookads.com/gfwlist -server=/sony.com.au/127.0.0.1#5335 -ipset=/sony.com.au/gfwlist -server=/goolge.com/127.0.0.1#5335 -ipset=/goolge.com/gfwlist +server=/179na.com/127.0.0.1#5335 +ipset=/179na.com/gfwlist server=/adidas.be/127.0.0.1#5335 ipset=/adidas.be/gfwlist -server=/sony.com/127.0.0.1#5335 -ipset=/sony.com/gfwlist -server=/sony.co.uk/127.0.0.1#5335 -ipset=/sony.co.uk/gfwlist server=/googleventures.com/127.0.0.1#5335 ipset=/googleventures.com/gfwlist -server=/buck.build/127.0.0.1#5335 -ipset=/buck.build/gfwlist -server=/wordpress.tv/127.0.0.1#5335 -ipset=/wordpress.tv/gfwlist +server=/camvideos.org/127.0.0.1#5335 +ipset=/camvideos.org/gfwlist server=/beatsheadphonesforcheap.net/127.0.0.1#5335 ipset=/beatsheadphonesforcheap.net/gfwlist -server=/sony.co.th/127.0.0.1#5335 -ipset=/sony.co.th/gfwlist -server=/sony.co.nz/127.0.0.1#5335 -ipset=/sony.co.nz/gfwlist -server=/sony.co.jp/127.0.0.1#5335 -ipset=/sony.co.jp/gfwlist -server=/sony.co.in/127.0.0.1#5335 -ipset=/sony.co.in/gfwlist -server=/applecare.eu/127.0.0.1#5335 -ipset=/applecare.eu/gfwlist -server=/sony.co.id/127.0.0.1#5335 -ipset=/sony.co.id/gfwlist +server=/tubetop69.com/127.0.0.1#5335 +ipset=/tubetop69.com/gfwlist server=/cloudinsights.com/127.0.0.1#5335 ipset=/cloudinsights.com/gfwlist -server=/sony.co.cr/127.0.0.1#5335 -ipset=/sony.co.cr/gfwlist +server=/joysporn.com/127.0.0.1#5335 +ipset=/joysporn.com/gfwlist server=/bmwvalueservice.com/127.0.0.1#5335 ipset=/bmwvalueservice.com/gfwlist -server=/edgefonts.net/127.0.0.1#5335 -ipset=/edgefonts.net/gfwlist server=/visa.com.vc/127.0.0.1#5335 ipset=/visa.com.vc/gfwlist -server=/sony.ch/127.0.0.1#5335 -ipset=/sony.ch/gfwlist server=/finish.co.za/127.0.0.1#5335 ipset=/finish.co.za/gfwlist -server=/sony.bg/127.0.0.1#5335 -ipset=/sony.bg/gfwlist -server=/webex.co.jp/127.0.0.1#5335 -ipset=/webex.co.jp/gfwlist -server=/exhentai.org/127.0.0.1#5335 -ipset=/exhentai.org/gfwlist -server=/touchsmartpc.net/127.0.0.1#5335 -ipset=/touchsmartpc.net/gfwlist -server=/sony.ba/127.0.0.1#5335 -ipset=/sony.ba/gfwlist +server=/incestvidz.com/127.0.0.1#5335 +ipset=/incestvidz.com/gfwlist server=/beatsbydresales.us/127.0.0.1#5335 ipset=/beatsbydresales.us/gfwlist -server=/ftcdn.net/127.0.0.1#5335 -ipset=/ftcdn.net/gfwlist -server=/sony.at/127.0.0.1#5335 -ipset=/sony.at/gfwlist +server=/openresty.org/127.0.0.1#5335 +ipset=/openresty.org/gfwlist server=/canon.pt/127.0.0.1#5335 ipset=/canon.pt/gfwlist server=/canon.fi/127.0.0.1#5335 ipset=/canon.fi/gfwlist server=/globalsign.ch/127.0.0.1#5335 ipset=/globalsign.ch/gfwlist -server=/sony-promotion.eu/127.0.0.1#5335 -ipset=/sony-promotion.eu/gfwlist -server=/bitstream.com/127.0.0.1#5335 -ipset=/bitstream.com/gfwlist +server=/artstor.org/127.0.0.1#5335 +ipset=/artstor.org/gfwlist server=/thefoxnation.com/127.0.0.1#5335 ipset=/thefoxnation.com/gfwlist -server=/sony-mea.com/127.0.0.1#5335 -ipset=/sony-mea.com/gfwlist -server=/sony-latin.com/127.0.0.1#5335 -ipset=/sony-latin.com/gfwlist -server=/msnewskids.org/127.0.0.1#5335 -ipset=/msnewskids.org/gfwlist -server=/sony-africa.com/127.0.0.1#5335 -ipset=/sony-africa.com/gfwlist -server=/pearsonclinical.de/127.0.0.1#5335 -ipset=/pearsonclinical.de/gfwlist -server=/ibm.net/127.0.0.1#5335 -ipset=/ibm.net/gfwlist -server=/paxlicense.org/127.0.0.1#5335 -ipset=/paxlicense.org/gfwlist -server=/scholar.google.fr/127.0.0.1#5335 -ipset=/scholar.google.fr/gfwlist -server=/sourcingforebay.com.cn/127.0.0.1#5335 -ipset=/sourcingforebay.com.cn/gfwlist +server=/3pornstarmovies.com/127.0.0.1#5335 +ipset=/3pornstarmovies.com/gfwlist +server=/jmcomic1.me/127.0.0.1#5335 +ipset=/jmcomic1.me/gfwlist +server=/ieeefoundation.org/127.0.0.1#5335 +ipset=/ieeefoundation.org/gfwlist +server=/pornjk.com/127.0.0.1#5335 +ipset=/pornjk.com/gfwlist server=/baterias-hp.com/127.0.0.1#5335 ipset=/baterias-hp.com/gfwlist -server=/wixsite.com/127.0.0.1#5335 -ipset=/wixsite.com/gfwlist -server=/bmw.kg/127.0.0.1#5335 -ipset=/bmw.kg/gfwlist server=/ipad.de/127.0.0.1#5335 ipset=/ipad.de/gfwlist -server=/applestore.com.eg/127.0.0.1#5335 -ipset=/applestore.com.eg/gfwlist -server=/nexitally.com/127.0.0.1#5335 -ipset=/nexitally.com/gfwlist -server=/snapads.com/127.0.0.1#5335 -ipset=/snapads.com/gfwlist -server=/snap-dev.net/127.0.0.1#5335 -ipset=/snap-dev.net/gfwlist -server=/sc-cdn.net/127.0.0.1#5335 -ipset=/sc-cdn.net/gfwlist -server=/cloudappsecurity.com/127.0.0.1#5335 -ipset=/cloudappsecurity.com/gfwlist -server=/buyfast-paysmart.net/127.0.0.1#5335 -ipset=/buyfast-paysmart.net/gfwlist -server=/smartonerobotics.com/127.0.0.1#5335 -ipset=/smartonerobotics.com/gfwlist -server=/epochweekly.com/127.0.0.1#5335 -ipset=/epochweekly.com/gfwlist -server=/facebooknude.com/127.0.0.1#5335 -ipset=/facebooknude.com/gfwlist -server=/smartoneholdings.com/127.0.0.1#5335 -ipset=/smartoneholdings.com/gfwlist -server=/nevex.com/127.0.0.1#5335 -ipset=/nevex.com/gfwlist -server=/youtube.es/127.0.0.1#5335 -ipset=/youtube.es/gfwlist -server=/s-rewards.hk/127.0.0.1#5335 -ipset=/s-rewards.hk/gfwlist -server=/ip73.com/127.0.0.1#5335 -ipset=/ip73.com/gfwlist -server=/paypal-activate.org/127.0.0.1#5335 -ipset=/paypal-activate.org/gfwlist -server=/hkcircleapp.com/127.0.0.1#5335 -ipset=/hkcircleapp.com/gfwlist +server=/xn--x-qeu1ji09tzlg.net/127.0.0.1#5335 +ipset=/xn--x-qeu1ji09tzlg.net/gfwlist +server=/porno.org.in/127.0.0.1#5335 +ipset=/porno.org.in/gfwlist server=/miniso-nz.com/127.0.0.1#5335 ipset=/miniso-nz.com/gfwlist -server=/faceook.com/127.0.0.1#5335 -ipset=/faceook.com/gfwlist -server=/ebaytechblog.com/127.0.0.1#5335 -ipset=/ebaytechblog.com/gfwlist -server=/barkadahansasmartone.com/127.0.0.1#5335 -ipset=/barkadahansasmartone.com/gfwlist -server=/leagueoflegends.kr/127.0.0.1#5335 -ipset=/leagueoflegends.kr/gfwlist -server=/nest.com/127.0.0.1#5335 -ipset=/nest.com/gfwlist -server=/samsungknox.com/127.0.0.1#5335 -ipset=/samsungknox.com/gfwlist -server=/bingvisualsearch.com/127.0.0.1#5335 -ipset=/bingvisualsearch.com/gfwlist -server=/samsunggalaxyfriends.com/127.0.0.1#5335 -ipset=/samsunggalaxyfriends.com/gfwlist -server=/huffingtonpost.jp/127.0.0.1#5335 -ipset=/huffingtonpost.jp/gfwlist -server=/youtube.com.sv/127.0.0.1#5335 -ipset=/youtube.com.sv/gfwlist -server=/samsungcloud.com/127.0.0.1#5335 -ipset=/samsungcloud.com/gfwlist -server=/samsungapps.com/127.0.0.1#5335 -ipset=/samsungapps.com/gfwlist -server=/samsung.com/127.0.0.1#5335 -ipset=/samsung.com/gfwlist -server=/microsoft.cl/127.0.0.1#5335 -ipset=/microsoft.cl/gfwlist -server=/taylorandfrancis.com/127.0.0.1#5335 -ipset=/taylorandfrancis.com/gfwlist -server=/466453.com/127.0.0.1#5335 -ipset=/466453.com/gfwlist -server=/theguardian.com/127.0.0.1#5335 -ipset=/theguardian.com/gfwlist +server=/worldscientific.com/127.0.0.1#5335 +ipset=/worldscientific.com/gfwlist +server=/mypornadviser.com/127.0.0.1#5335 +ipset=/mypornadviser.com/gfwlist +server=/bmw-motorrad.rs/127.0.0.1#5335 +ipset=/bmw-motorrad.rs/gfwlist +server=/bestbuycanadaltd.ca/127.0.0.1#5335 +ipset=/bestbuycanadaltd.ca/gfwlist +server=/ebay.jp/127.0.0.1#5335 +ipset=/ebay.jp/gfwlist +server=/momon-ga.com/127.0.0.1#5335 +ipset=/momon-ga.com/gfwlist server=/x.co/127.0.0.1#5335 ipset=/x.co/gfwlist -server=/alphabet.uk/127.0.0.1#5335 -ipset=/alphabet.uk/gfwlist -server=/bloomberg.tv/127.0.0.1#5335 -ipset=/bloomberg.tv/gfwlist -server=/game-platform.net/127.0.0.1#5335 -ipset=/game-platform.net/gfwlist -server=/ebay.ch/127.0.0.1#5335 -ipset=/ebay.ch/gfwlist -server=/asp.net/127.0.0.1#5335 -ipset=/asp.net/gfwlist -server=/hackyourconsole.com/127.0.0.1#5335 -ipset=/hackyourconsole.com/gfwlist -server=/walmartimages.com/127.0.0.1#5335 -ipset=/walmartimages.com/gfwlist +server=/pornultras.com/127.0.0.1#5335 +ipset=/pornultras.com/gfwlist +server=/t.co/127.0.0.1#5335 +ipset=/t.co/gfwlist +server=/uun98.com/127.0.0.1#5335 +ipset=/uun98.com/gfwlist server=/netacad.net/127.0.0.1#5335 ipset=/netacad.net/gfwlist -server=/steelbrick.com/127.0.0.1#5335 -ipset=/steelbrick.com/gfwlist -server=/social.com/127.0.0.1#5335 -ipset=/social.com/gfwlist -server=/site.com/127.0.0.1#5335 -ipset=/site.com/gfwlist +server=/couplecam.co.uk/127.0.0.1#5335 +ipset=/couplecam.co.uk/gfwlist server=/placesdocs.com/127.0.0.1#5335 ipset=/placesdocs.com/gfwlist server=/vimeogoods.com/127.0.0.1#5335 ipset=/vimeogoods.com/gfwlist -server=/ciscokinetic.com/127.0.0.1#5335 -ipset=/ciscokinetic.com/gfwlist -server=/discord.gg/127.0.0.1#5335 -ipset=/discord.gg/gfwlist server=/dropboxforums.com/127.0.0.1#5335 ipset=/dropboxforums.com/gfwlist server=/g.co/127.0.0.1#5335 ipset=/g.co/gfwlist -server=/sfdcstatic.com/127.0.0.1#5335 -ipset=/sfdcstatic.com/gfwlist -server=/sequence.com/127.0.0.1#5335 -ipset=/sequence.com/gfwlist -server=/salesforcemarketingcloud.com/127.0.0.1#5335 -ipset=/salesforcemarketingcloud.com/gfwlist server=/lolfanart.net/127.0.0.1#5335 ipset=/lolfanart.net/gfwlist -server=/salesforceliveagent.com/127.0.0.1#5335 -ipset=/salesforceliveagent.com/gfwlist -server=/relateiq.com/127.0.0.1#5335 -ipset=/relateiq.com/gfwlist +server=/pixiv.me/127.0.0.1#5335 +ipset=/pixiv.me/gfwlist server=/iphoto.wang/127.0.0.1#5335 ipset=/iphoto.wang/gfwlist -server=/welcometobestbuy.ca/127.0.0.1#5335 -ipset=/welcometobestbuy.ca/gfwlist -server=/ingka.com/127.0.0.1#5335 -ipset=/ingka.com/gfwlist +server=/nasty.singles/127.0.0.1#5335 +ipset=/nasty.singles/gfwlist server=/bmw.az/127.0.0.1#5335 ipset=/bmw.az/gfwlist -server=/quotable.com/127.0.0.1#5335 -ipset=/quotable.com/gfwlist -server=/pardot.com/127.0.0.1#5335 -ipset=/pardot.com/gfwlist -server=/disneyme.com/127.0.0.1#5335 -ipset=/disneyme.com/gfwlist -server=/force.com/127.0.0.1#5335 -ipset=/force.com/gfwlist +server=/lihksnap.com/127.0.0.1#5335 +ipset=/lihksnap.com/gfwlist +server=/ck101.com/127.0.0.1#5335 +ipset=/ck101.com/gfwlist server=/bestbuytradein.com/127.0.0.1#5335 ipset=/bestbuytradein.com/gfwlist -server=/exacttarget.com/127.0.0.1#5335 -ipset=/exacttarget.com/gfwlist server=/paypalcorp.com/127.0.0.1#5335 ipset=/paypalcorp.com/gfwlist -server=/vmwidm.com/127.0.0.1#5335 -ipset=/vmwidm.com/gfwlist -server=/desk.com/127.0.0.1#5335 -ipset=/desk.com/gfwlist -server=/tellmewhygame.com/127.0.0.1#5335 -ipset=/tellmewhygame.com/gfwlist -server=/demandware.com/127.0.0.1#5335 -ipset=/demandware.com/gfwlist -server=/bridge-studio.co.uk/127.0.0.1#5335 -ipset=/bridge-studio.co.uk/gfwlist -server=/data.com/127.0.0.1#5335 -ipset=/data.com/gfwlist -server=/zohostatic.in/127.0.0.1#5335 -ipset=/zohostatic.in/gfwlist -server=/cloudcraze.com/127.0.0.1#5335 -ipset=/cloudcraze.com/gfwlist -server=/chatter.com/127.0.0.1#5335 -ipset=/chatter.com/gfwlist -server=/needforspeedproven.com/127.0.0.1#5335 -ipset=/needforspeedproven.com/gfwlist -server=/pinterest.in/127.0.0.1#5335 -ipset=/pinterest.in/gfwlist +server=/wtfpeople.com/127.0.0.1#5335 +ipset=/wtfpeople.com/gfwlist +server=/developer.microsoft.com/127.0.0.1#5335 +ipset=/developer.microsoft.com/gfwlist +server=/selectanescort.com/127.0.0.1#5335 +ipset=/selectanescort.com/gfwlist server=/vector.im/127.0.0.1#5335 ipset=/vector.im/gfwlist -server=/startpage.com/127.0.0.1#5335 -ipset=/startpage.com/gfwlist -server=/bmw.ro/127.0.0.1#5335 -ipset=/bmw.ro/gfwlist -server=/beyondcore.com/127.0.0.1#5335 -ipset=/beyondcore.com/gfwlist -server=/appexchange.com/127.0.0.1#5335 -ipset=/appexchange.com/gfwlist -server=/appcloud.com/127.0.0.1#5335 -ipset=/appcloud.com/gfwlist -server=/respawnbyrazer.com/127.0.0.1#5335 -ipset=/respawnbyrazer.com/gfwlist -server=/razerzone.jp/127.0.0.1#5335 -ipset=/razerzone.jp/gfwlist -server=/bmwsfl.com/127.0.0.1#5335 -ipset=/bmwsfl.com/gfwlist -server=/razerzone.com/127.0.0.1#5335 -ipset=/razerzone.com/gfwlist -server=/visadpsonline.us/127.0.0.1#5335 -ipset=/visadpsonline.us/gfwlist -server=/beatsbydrdre-store.com/127.0.0.1#5335 -ipset=/beatsbydrdre-store.com/gfwlist -server=/imod.com/127.0.0.1#5335 -ipset=/imod.com/gfwlist -server=/uplinq.com/127.0.0.1#5335 -ipset=/uplinq.com/gfwlist -server=/snapdragonbooth.com/127.0.0.1#5335 -ipset=/snapdragonbooth.com/gfwlist +server=/dgg.gg/127.0.0.1#5335 +ipset=/dgg.gg/gfwlist +server=/adgoogle.net/127.0.0.1#5335 +ipset=/adgoogle.net/gfwlist +server=/oath.com/127.0.0.1#5335 +ipset=/oath.com/gfwlist +server=/thepornbin.com/127.0.0.1#5335 +ipset=/thepornbin.com/gfwlist +server=/thetranny.com/127.0.0.1#5335 +ipset=/thetranny.com/gfwlist server=/alphabet.co.uk/127.0.0.1#5335 ipset=/alphabet.co.uk/gfwlist -server=/snapdragon.cn/127.0.0.1#5335 -ipset=/snapdragon.cn/gfwlist server=/thesun.ie/127.0.0.1#5335 ipset=/thesun.ie/gfwlist -server=/qualphone.com/127.0.0.1#5335 -ipset=/qualphone.com/gfwlist -server=/qualcommventures.cn/127.0.0.1#5335 -ipset=/qualcommventures.cn/gfwlist -server=/qualcommretail.com/127.0.0.1#5335 -ipset=/qualcommretail.com/gfwlist -server=/qualcommmea.com/127.0.0.1#5335 -ipset=/qualcommmea.com/gfwlist -server=/creativecommons.org/127.0.0.1#5335 -ipset=/creativecommons.org/gfwlist -server=/volvotrucks.at/127.0.0.1#5335 -ipset=/volvotrucks.at/gfwlist -server=/adobesc.com/127.0.0.1#5335 -ipset=/adobesc.com/gfwlist +server=/frprn.com/127.0.0.1#5335 +ipset=/frprn.com/gfwlist +server=/tufos.com.br/127.0.0.1#5335 +ipset=/tufos.com.br/gfwlist +server=/hdporncomics.com/127.0.0.1#5335 +ipset=/hdporncomics.com/gfwlist +server=/intel.gs/127.0.0.1#5335 +ipset=/intel.gs/gfwlist server=/cups.org/127.0.0.1#5335 ipset=/cups.org/gfwlist -server=/qualcomm.fr/127.0.0.1#5335 -ipset=/qualcomm.fr/gfwlist -server=/ieee-uffc.org/127.0.0.1#5335 -ipset=/ieee-uffc.org/gfwlist -server=/qualcomm.de/127.0.0.1#5335 -ipset=/qualcomm.de/gfwlist -server=/fbsbx.net/127.0.0.1#5335 -ipset=/fbsbx.net/gfwlist +server=/opera.com/127.0.0.1#5335 +ipset=/opera.com/gfwlist server=/applestore.ch/127.0.0.1#5335 ipset=/applestore.ch/gfwlist server=/monsterdrebeats-usa.com/127.0.0.1#5335 ipset=/monsterdrebeats-usa.com/gfwlist -server=/foxnewsopinion.com/127.0.0.1#5335 -ipset=/foxnewsopinion.com/gfwlist -server=/stackexchange.com/127.0.0.1#5335 -ipset=/stackexchange.com/gfwlist -server=/seamonkey-project.org/127.0.0.1#5335 -ipset=/seamonkey-project.org/gfwlist -server=/bmw.com.sg/127.0.0.1#5335 -ipset=/bmw.com.sg/gfwlist -server=/briantreepayments.net/127.0.0.1#5335 -ipset=/briantreepayments.net/gfwlist -server=/qualcomm.co.kr/127.0.0.1#5335 -ipset=/qualcomm.co.kr/gfwlist server=/freessl.com/127.0.0.1#5335 ipset=/freessl.com/gfwlist -server=/intel.io/127.0.0.1#5335 -ipset=/intel.io/gfwlist -server=/qualcomm.co.in/127.0.0.1#5335 -ipset=/qualcomm.co.in/gfwlist -server=/qualcomm.co.id/127.0.0.1#5335 -ipset=/qualcomm.co.id/gfwlist +server=/postegro.it/127.0.0.1#5335 +ipset=/postegro.it/gfwlist +server=/75m.co/127.0.0.1#5335 +ipset=/75m.co/gfwlist server=/freewechat.com/127.0.0.1#5335 ipset=/freewechat.com/gfwlist -server=/minibrossard.com/127.0.0.1#5335 -ipset=/minibrossard.com/gfwlist -server=/qprize.com/127.0.0.1#5335 -ipset=/qprize.com/gfwlist -server=/pixtronix.com/127.0.0.1#5335 -ipset=/pixtronix.com/gfwlist -server=/meetsmartbook.com/127.0.0.1#5335 -ipset=/meetsmartbook.com/gfwlist -server=/iskoot.com/127.0.0.1#5335 -ipset=/iskoot.com/gfwlist -server=/brewmp.com/127.0.0.1#5335 -ipset=/brewmp.com/gfwlist +server=/atubex.com/127.0.0.1#5335 +ipset=/atubex.com/gfwlist +server=/thehentaiworld.com/127.0.0.1#5335 +ipset=/thehentaiworld.com/gfwlist server=/mini.com.ph/127.0.0.1#5335 ipset=/mini.com.ph/gfwlist server=/johren.net/127.0.0.1#5335 ipset=/johren.net/gfwlist server=/shopifycdn.com/127.0.0.1#5335 ipset=/shopifycdn.com/gfwlist -server=/dailymail.dk/127.0.0.1#5335 -ipset=/dailymail.dk/gfwlist -server=/hellosmartbook.com/127.0.0.1#5335 -ipset=/hellosmartbook.com/gfwlist -server=/echosign.com/127.0.0.1#5335 -ipset=/echosign.com/gfwlist -server=/haskellstack.org/127.0.0.1#5335 -ipset=/haskellstack.org/gfwlist -server=/gobianywhere.com/127.0.0.1#5335 -ipset=/gobianywhere.com/gfwlist -server=/berkanawireless.com/127.0.0.1#5335 -ipset=/berkanawireless.com/gfwlist -server=/trmini.com/127.0.0.1#5335 -ipset=/trmini.com/gfwlist -server=/bmw.com.ec/127.0.0.1#5335 -ipset=/bmw.com.ec/gfwlist -server=/wwwapple.net/127.0.0.1#5335 -ipset=/wwwapple.net/gfwlist +server=/hdzog.com/127.0.0.1#5335 +ipset=/hdzog.com/gfwlist server=/fqcebook.com/127.0.0.1#5335 ipset=/fqcebook.com/gfwlist -server=/pearsonclinical.co.uk/127.0.0.1#5335 -ipset=/pearsonclinical.co.uk/gfwlist -server=/hktshop.com/127.0.0.1#5335 -ipset=/hktshop.com/gfwlist -server=/dentalhypotheses.com/127.0.0.1#5335 -ipset=/dentalhypotheses.com/gfwlist -server=/hkt.com/127.0.0.1#5335 -ipset=/hkt.com/gfwlist -server=/hkt-eye.com/127.0.0.1#5335 -ipset=/hkt-eye.com/gfwlist -server=/hkt-enterprise.com/127.0.0.1#5335 -ipset=/hkt-enterprise.com/gfwlist -server=/researchkit.org/127.0.0.1#5335 -ipset=/researchkit.org/gfwlist -server=/esmarthealth.com/127.0.0.1#5335 -ipset=/esmarthealth.com/gfwlist server=/edgedatg.com/127.0.0.1#5335 ipset=/edgedatg.com/gfwlist -server=/kindle.co.uk/127.0.0.1#5335 -ipset=/kindle.co.uk/gfwlist -server=/mini-me.com/127.0.0.1#5335 -ipset=/mini-me.com/gfwlist -server=/brightcove.services/127.0.0.1#5335 -ipset=/brightcove.services/gfwlist -server=/hpuniversity.info/127.0.0.1#5335 -ipset=/hpuniversity.info/gfwlist -server=/bmw-clubs-international.com/127.0.0.1#5335 -ipset=/bmw-clubs-international.com/gfwlist -server=/oup.com/127.0.0.1#5335 -ipset=/oup.com/gfwlist -server=/nine.com.au/127.0.0.1#5335 -ipset=/nine.com.au/gfwlist -server=/panasonic.com/127.0.0.1#5335 -ipset=/panasonic.com/gfwlist +server=/freepornhdonlinegay.com/127.0.0.1#5335 +ipset=/freepornhdonlinegay.com/gfwlist +server=/dealtree.org/127.0.0.1#5335 +ipset=/dealtree.org/gfwlist +server=/ohgratisporrfilm.com/127.0.0.1#5335 +ipset=/ohgratisporrfilm.com/gfwlist +server=/manhuntdaily.com/127.0.0.1#5335 +ipset=/manhuntdaily.com/gfwlist server=/att-rsvp.com/127.0.0.1#5335 ipset=/att-rsvp.com/gfwlist -server=/sun.com/127.0.0.1#5335 -ipset=/sun.com/gfwlist server=/bmw-connecteddrive.jp/127.0.0.1#5335 ipset=/bmw-connecteddrive.jp/gfwlist -server=/covid19-rx.org/127.0.0.1#5335 -ipset=/covid19-rx.org/gfwlist -server=/avinetworks.com/127.0.0.1#5335 -ipset=/avinetworks.com/gfwlist -server=/oracleimg.com/127.0.0.1#5335 -ipset=/oracleimg.com/gfwlist -server=/oraclecloud.com/127.0.0.1#5335 -ipset=/oraclecloud.com/gfwlist -server=/bmw-ksa.com/127.0.0.1#5335 -ipset=/bmw-ksa.com/gfwlist +server=/v2ph.com/127.0.0.1#5335 +ipset=/v2ph.com/gfwlist +server=/porzo.com/127.0.0.1#5335 +ipset=/porzo.com/gfwlist +server=/app-measurement.com/127.0.0.1#5335 +ipset=/app-measurement.com/gfwlist server=/beatsforme.com/127.0.0.1#5335 ipset=/beatsforme.com/gfwlist -server=/oracle.com/127.0.0.1#5335 -ipset=/oracle.com/gfwlist -server=/intel.by/127.0.0.1#5335 -ipset=/intel.by/gfwlist server=/typesquare.com/127.0.0.1#5335 ipset=/typesquare.com/gfwlist -server=/nvidia.tt.omtrdc.net/127.0.0.1#5335 -ipset=/nvidia.tt.omtrdc.net/gfwlist +server=/ashemaletube.com/127.0.0.1#5335 +ipset=/ashemaletube.com/gfwlist server=/azureiotsolutions.com/127.0.0.1#5335 ipset=/azureiotsolutions.com/gfwlist -server=/tegrazone.kr/127.0.0.1#5335 -ipset=/tegrazone.kr/gfwlist -server=/tegrazone.com/127.0.0.1#5335 -ipset=/tegrazone.com/gfwlist -server=/bloombergradio.com/127.0.0.1#5335 -ipset=/bloombergradio.com/gfwlist -server=/fgacebook.com/127.0.0.1#5335 -ipset=/fgacebook.com/gfwlist -server=/wsj.net/127.0.0.1#5335 -ipset=/wsj.net/gfwlist -server=/nvidiaforhp.com/127.0.0.1#5335 -ipset=/nvidiaforhp.com/gfwlist -server=/google.com.ly/127.0.0.1#5335 -ipset=/google.com.ly/gfwlist -server=/nvidia.se/127.0.0.1#5335 -ipset=/nvidia.se/gfwlist -server=/nvidia.ro/127.0.0.1#5335 -ipset=/nvidia.ro/gfwlist +server=/shywifeswap.com/127.0.0.1#5335 +ipset=/shywifeswap.com/gfwlist server=/applw.com/127.0.0.1#5335 ipset=/applw.com/gfwlist -server=/nvidia.pl/127.0.0.1#5335 -ipset=/nvidia.pl/gfwlist server=/airwick.pt/127.0.0.1#5335 ipset=/airwick.pt/gfwlist -server=/scholar.google.co.kr/127.0.0.1#5335 -ipset=/scholar.google.co.kr/gfwlist -server=/foxnewssunday.com/127.0.0.1#5335 -ipset=/foxnewssunday.com/gfwlist -server=/nvidia.mx/127.0.0.1#5335 -ipset=/nvidia.mx/gfwlist server=/snapstore.io/127.0.0.1#5335 ipset=/snapstore.io/gfwlist -server=/nvidia.lu/127.0.0.1#5335 -ipset=/nvidia.lu/gfwlist -server=/azureplanetscale.net/127.0.0.1#5335 -ipset=/azureplanetscale.net/gfwlist -server=/nvidia.in/127.0.0.1#5335 -ipset=/nvidia.in/gfwlist -server=/nvidia.de/127.0.0.1#5335 -ipset=/nvidia.de/gfwlist -server=/mobilemarketo.com/127.0.0.1#5335 -ipset=/mobilemarketo.com/gfwlist -server=/addthiscdn.com/127.0.0.1#5335 -ipset=/addthiscdn.com/gfwlist -server=/yourmonsterbeats.com/127.0.0.1#5335 -ipset=/yourmonsterbeats.com/gfwlist -server=/fbmarketing.com/127.0.0.1#5335 -ipset=/fbmarketing.com/gfwlist -server=/nvidia.com.tr/127.0.0.1#5335 -ipset=/nvidia.com.tr/gfwlist +server=/clickedu.co.uk/127.0.0.1#5335 +ipset=/clickedu.co.uk/gfwlist server=/firebaseio.com/127.0.0.1#5335 ipset=/firebaseio.com/gfwlist -server=/thanksloyalty.com/127.0.0.1#5335 -ipset=/thanksloyalty.com/gfwlist -server=/beatsireland.net/127.0.0.1#5335 -ipset=/beatsireland.net/gfwlist -server=/my29tv.com/127.0.0.1#5335 -ipset=/my29tv.com/gfwlist -server=/nvidia.com.pe/127.0.0.1#5335 -ipset=/nvidia.com.pe/gfwlist -server=/nvidia.com/127.0.0.1#5335 -ipset=/nvidia.com/gfwlist -server=/nextmedia.com/127.0.0.1#5335 -ipset=/nextmedia.com/gfwlist -server=/nvidia.co.uk/127.0.0.1#5335 -ipset=/nvidia.co.uk/gfwlist -server=/sandisk.it/127.0.0.1#5335 -ipset=/sandisk.it/gfwlist -server=/nvidia.at/127.0.0.1#5335 -ipset=/nvidia.at/gfwlist -server=/gputechconf.jp/127.0.0.1#5335 -ipset=/gputechconf.jp/gfwlist -server=/inikesneakers.com/127.0.0.1#5335 -ipset=/inikesneakers.com/gfwlist -server=/gputechconf.in/127.0.0.1#5335 -ipset=/gputechconf.in/gfwlist +server=/mastercard.com.ng/127.0.0.1#5335 +ipset=/mastercard.com.ng/gfwlist +server=/hpwsn.com/127.0.0.1#5335 +ipset=/hpwsn.com/gfwlist +server=/acgdv.com/127.0.0.1#5335 +ipset=/acgdv.com/gfwlist server=/geotrust.com/127.0.0.1#5335 ipset=/geotrust.com/gfwlist server=/cheapbeatsie.com/127.0.0.1#5335 ipset=/cheapbeatsie.com/gfwlist -server=/gputechconf.com.tw/127.0.0.1#5335 -ipset=/gputechconf.com.tw/gfwlist server=/mortein.com.au/127.0.0.1#5335 ipset=/mortein.com.au/gfwlist server=/starbucks.co.th/127.0.0.1#5335 ipset=/starbucks.co.th/gfwlist -server=/beatscheapforsale.com/127.0.0.1#5335 -ipset=/beatscheapforsale.com/gfwlist -server=/fedoramagazine.org/127.0.0.1#5335 -ipset=/fedoramagazine.org/gfwlist -server=/volvogroup.de/127.0.0.1#5335 -ipset=/volvogroup.de/gfwlist -server=/bridgestone.com.ar/127.0.0.1#5335 -ipset=/bridgestone.com.ar/gfwlist -server=/niketradeweb.com/127.0.0.1#5335 -ipset=/niketradeweb.com/gfwlist -server=/godaddy.com/127.0.0.1#5335 -ipset=/godaddy.com/gfwlist server=/realclearreligion.org/127.0.0.1#5335 ipset=/realclearreligion.org/gfwlist -server=/monsterbeatsforsale.com/127.0.0.1#5335 -ipset=/monsterbeatsforsale.com/gfwlist -server=/neuralink.com/127.0.0.1#5335 -ipset=/neuralink.com/gfwlist -server=/adsense.com/127.0.0.1#5335 -ipset=/adsense.com/gfwlist +server=/eroelog.com/127.0.0.1#5335 +ipset=/eroelog.com/gfwlist +server=/publichealthdepartment.info/127.0.0.1#5335 +ipset=/publichealthdepartment.info/gfwlist server=/ebayrtm.com/127.0.0.1#5335 ipset=/ebayrtm.com/gfwlist -server=/pstatic.net/127.0.0.1#5335 -ipset=/pstatic.net/gfwlist -server=/plug.game/127.0.0.1#5335 -ipset=/plug.game/gfwlist -server=/nikeairmax.com/127.0.0.1#5335 -ipset=/nikeairmax.com/gfwlist -server=/mac.rs/127.0.0.1#5335 -ipset=/mac.rs/gfwlist -server=/navercorp.com/127.0.0.1#5335 -ipset=/navercorp.com/gfwlist -server=/livejasmin.com/127.0.0.1#5335 -ipset=/livejasmin.com/gfwlist -server=/voalingala.com/127.0.0.1#5335 -ipset=/voalingala.com/gfwlist -server=/pcmarket.com.hk/127.0.0.1#5335 -ipset=/pcmarket.com.hk/gfwlist -server=/cometotheduckside.com/127.0.0.1#5335 -ipset=/cometotheduckside.com/gfwlist +server=/guccimuseo.com/127.0.0.1#5335 +ipset=/guccimuseo.com/gfwlist +server=/businessweekly.com.tw/127.0.0.1#5335 +ipset=/businessweekly.com.tw/gfwlist server=/intel.re/127.0.0.1#5335 ipset=/intel.re/gfwlist server=/apple.uk/127.0.0.1#5335 ipset=/apple.uk/gfwlist -server=/grafolio.com/127.0.0.1#5335 -ipset=/grafolio.com/gfwlist -server=/seselah.com/127.0.0.1#5335 -ipset=/seselah.com/gfwlist -server=/mozilla.net/127.0.0.1#5335 -ipset=/mozilla.net/gfwlist +server=/passion.com/127.0.0.1#5335 +ipset=/passion.com/gfwlist +server=/good-gay.com/127.0.0.1#5335 +ipset=/good-gay.com/gfwlist server=/google.hn/127.0.0.1#5335 ipset=/google.hn/gfwlist -server=/lanik.us/127.0.0.1#5335 -ipset=/lanik.us/gfwlist -server=/voaindonesia.com/127.0.0.1#5335 -ipset=/voaindonesia.com/gfwlist -server=/volvobuses.co/127.0.0.1#5335 -ipset=/volvobuses.co/gfwlist -server=/docs.rs/127.0.0.1#5335 -ipset=/docs.rs/gfwlist -server=/applefilmmaker.com/127.0.0.1#5335 -ipset=/applefilmmaker.com/gfwlist +server=/news.com.au/127.0.0.1#5335 +ipset=/news.com.au/gfwlist server=/hongkongfp.com/127.0.0.1#5335 ipset=/hongkongfp.com/gfwlist -server=/coova.net/127.0.0.1#5335 -ipset=/coova.net/gfwlist -server=/mdn.mozillademos.org/127.0.0.1#5335 -ipset=/mdn.mozillademos.org/gfwlist -server=/fbbmarket.com/127.0.0.1#5335 -ipset=/fbbmarket.com/gfwlist server=/geeksquadwebroot.org/127.0.0.1#5335 ipset=/geeksquadwebroot.org/gfwlist -server=/bigcharts.com/127.0.0.1#5335 -ipset=/bigcharts.com/gfwlist +server=/imagefap.com/127.0.0.1#5335 +ipset=/imagefap.com/gfwlist server=/google.com.uy/127.0.0.1#5335 ipset=/google.com.uy/gfwlist server=/foxsportsnetmilwaukee.com/127.0.0.1#5335 ipset=/foxsportsnetmilwaukee.com/gfwlist -server=/mwf-service.akamaized.net/127.0.0.1#5335 -ipset=/mwf-service.akamaized.net/gfwlist -server=/img-s-msn-com.akamaized.net/127.0.0.1#5335 -ipset=/img-s-msn-com.akamaized.net/gfwlist -server=/img-prod-cms-rt-microsoft-com.akamaized.net/127.0.0.1#5335 -ipset=/img-prod-cms-rt-microsoft-com.akamaized.net/gfwlist -server=/kijijiforbusiness.ca/127.0.0.1#5335 -ipset=/kijijiforbusiness.ca/gfwlist -server=/fesebook.com/127.0.0.1#5335 -ipset=/fesebook.com/gfwlist +server=/mikuexpo.com/127.0.0.1#5335 +ipset=/mikuexpo.com/gfwlist +server=/intel.ph/127.0.0.1#5335 +ipset=/intel.ph/gfwlist server=/matrix.to/127.0.0.1#5335 ipset=/matrix.to/gfwlist -server=/onedrive.org/127.0.0.1#5335 -ipset=/onedrive.org/gfwlist -server=/mut.ch/127.0.0.1#5335 -ipset=/mut.ch/gfwlist +server=/alhs.xyz/127.0.0.1#5335 +ipset=/alhs.xyz/gfwlist server=/hpmarketplace.com/127.0.0.1#5335 ipset=/hpmarketplace.com/gfwlist server=/nicomanga.jp/127.0.0.1#5335 ipset=/nicomanga.jp/gfwlist -server=/windowsupdate.com/127.0.0.1#5335 -ipset=/windowsupdate.com/gfwlist -server=/youtube.com.uy/127.0.0.1#5335 -ipset=/youtube.com.uy/gfwlist -server=/windowssearch.com/127.0.0.1#5335 -ipset=/windowssearch.com/gfwlist -server=/yahoo.ba/127.0.0.1#5335 -ipset=/yahoo.ba/gfwlist -server=/windowsmarketplace.com/127.0.0.1#5335 -ipset=/windowsmarketplace.com/gfwlist -server=/windowscommunity.net/127.0.0.1#5335 -ipset=/windowscommunity.net/gfwlist -server=/dettolthailand.com/127.0.0.1#5335 -ipset=/dettolthailand.com/gfwlist -server=/windows.com/127.0.0.1#5335 -ipset=/windows.com/gfwlist -server=/windows-int.net/127.0.0.1#5335 -ipset=/windows-int.net/gfwlist -server=/wbd.ms/127.0.0.1#5335 -ipset=/wbd.ms/gfwlist -server=/vsallin.net/127.0.0.1#5335 -ipset=/vsallin.net/gfwlist +server=/tubelombia.net/127.0.0.1#5335 +ipset=/tubelombia.net/gfwlist +server=/thecandidbay.com/127.0.0.1#5335 +ipset=/thecandidbay.com/gfwlist +server=/igaychat.com/127.0.0.1#5335 +ipset=/igaychat.com/gfwlist server=/epochweek.com/127.0.0.1#5335 ipset=/epochweek.com/gfwlist -server=/virtualearth.net/127.0.0.1#5335 -ipset=/virtualearth.net/gfwlist server=/mingpao.com/127.0.0.1#5335 ipset=/mingpao.com/gfwlist -server=/userpxt.io/127.0.0.1#5335 -ipset=/userpxt.io/gfwlist -server=/dgg.gg/127.0.0.1#5335 -ipset=/dgg.gg/gfwlist -server=/trafficmanager.net/127.0.0.1#5335 -ipset=/trafficmanager.net/gfwlist -server=/paypaly.com/127.0.0.1#5335 -ipset=/paypaly.com/gfwlist -server=/tfsallin.net/127.0.0.1#5335 -ipset=/tfsallin.net/gfwlist -server=/direcpath.net/127.0.0.1#5335 -ipset=/direcpath.net/gfwlist -server=/bmw-connecteddrive.lu/127.0.0.1#5335 -ipset=/bmw-connecteddrive.lu/gfwlist -server=/visaplus.com/127.0.0.1#5335 -ipset=/visaplus.com/gfwlist -server=/cheap-beats-by-dre.net/127.0.0.1#5335 -ipset=/cheap-beats-by-dre.net/gfwlist -server=/windowsuem.com/127.0.0.1#5335 -ipset=/windowsuem.com/gfwlist -server=/surface.com/127.0.0.1#5335 -ipset=/surface.com/gfwlist -server=/facebookmobile.com/127.0.0.1#5335 -ipset=/facebookmobile.com/gfwlist -server=/youtube.com.my/127.0.0.1#5335 -ipset=/youtube.com.my/gfwlist -server=/cheapdrebeats8.net/127.0.0.1#5335 -ipset=/cheapdrebeats8.net/gfwlist -server=/staffhub.ms/127.0.0.1#5335 -ipset=/staffhub.ms/gfwlist +server=/comicsporno.es/127.0.0.1#5335 +ipset=/comicsporno.es/gfwlist +server=/awflapp.top/127.0.0.1#5335 +ipset=/awflapp.top/gfwlist +server=/hentaidude.xxx/127.0.0.1#5335 +ipset=/hentaidude.xxx/gfwlist server=/aspnetcdn.com/127.0.0.1#5335 ipset=/aspnetcdn.com/gfwlist -server=/skypeassets.com/127.0.0.1#5335 -ipset=/skypeassets.com/gfwlist -server=/skype.net/127.0.0.1#5335 -ipset=/skype.net/gfwlist -server=/stripe.network/127.0.0.1#5335 -ipset=/stripe.network/gfwlist +server=/faronics.tech/127.0.0.1#5335 +ipset=/faronics.tech/gfwlist server=/12diasderegalosdeitunes.com.ve/127.0.0.1#5335 ipset=/12diasderegalosdeitunes.com.ve/gfwlist -server=/sharepointonline.com/127.0.0.1#5335 -ipset=/sharepointonline.com/gfwlist -server=/auricularemonsterbeats.com/127.0.0.1#5335 -ipset=/auricularemonsterbeats.com/gfwlist server=/applesurveys.com/127.0.0.1#5335 ipset=/applesurveys.com/gfwlist server=/minimoncton.ca/127.0.0.1#5335 ipset=/minimoncton.ca/gfwlist -server=/faceobok.com/127.0.0.1#5335 -ipset=/faceobok.com/gfwlist -server=/marketo.tv/127.0.0.1#5335 -ipset=/marketo.tv/gfwlist -server=/asus.com/127.0.0.1#5335 -ipset=/asus.com/gfwlist server=/gettyimages.no/127.0.0.1#5335 ipset=/gettyimages.no/gfwlist -server=/bmw.ee/127.0.0.1#5335 -ipset=/bmw.ee/gfwlist server=/acrobat.com/127.0.0.1#5335 ipset=/acrobat.com/gfwlist -server=/bridgestone.cl/127.0.0.1#5335 -ipset=/bridgestone.cl/gfwlist -server=/sfbassets.net/127.0.0.1#5335 -ipset=/sfbassets.net/gfwlist -server=/sfbassets.com/127.0.0.1#5335 -ipset=/sfbassets.com/gfwlist -server=/s-microsoft.com/127.0.0.1#5335 -ipset=/s-microsoft.com/gfwlist -server=/bingads.com/127.0.0.1#5335 -ipset=/bingads.com/gfwlist -server=/visa.com.gt/127.0.0.1#5335 -ipset=/visa.com.gt/gfwlist -server=/projectsangam.com/127.0.0.1#5335 -ipset=/projectsangam.com/gfwlist -server=/scholar.google.com.pe/127.0.0.1#5335 -ipset=/scholar.google.com.pe/gfwlist -server=/projectmurphy.net/127.0.0.1#5335 -ipset=/projectmurphy.net/gfwlist -server=/powerbi.com/127.0.0.1#5335 -ipset=/powerbi.com/gfwlist -server=/faceid99.com/127.0.0.1#5335 -ipset=/faceid99.com/gfwlist -server=/voxfieldguide.com/127.0.0.1#5335 -ipset=/voxfieldguide.com/gfwlist -server=/powerappscdn.net/127.0.0.1#5335 -ipset=/powerappscdn.net/gfwlist -server=/sohfrance.org/127.0.0.1#5335 -ipset=/sohfrance.org/gfwlist -server=/outlook.com/127.0.0.1#5335 -ipset=/outlook.com/gfwlist -server=/dvdstudiopro.org/127.0.0.1#5335 -ipset=/dvdstudiopro.org/gfwlist -server=/outingsapp.com/127.0.0.1#5335 -ipset=/outingsapp.com/gfwlist -server=/opticsforthecloud.net/127.0.0.1#5335 -ipset=/opticsforthecloud.net/gfwlist -server=/youtube.com.hn/127.0.0.1#5335 -ipset=/youtube.com.hn/gfwlist -server=/garena.live/127.0.0.1#5335 -ipset=/garena.live/gfwlist -server=/nxta.org/127.0.0.1#5335 -ipset=/nxta.org/gfwlist -server=/fscebook.com/127.0.0.1#5335 -ipset=/fscebook.com/gfwlist -server=/feacboo.com/127.0.0.1#5335 -ipset=/feacboo.com/gfwlist -server=/mymicrosoft.com/127.0.0.1#5335 -ipset=/mymicrosoft.com/gfwlist -server=/msudalosti.com/127.0.0.1#5335 -ipset=/msudalosti.com/gfwlist -server=/paily.net/127.0.0.1#5335 -ipset=/paily.net/gfwlist -server=/polymerproject.org/127.0.0.1#5335 -ipset=/polymerproject.org/gfwlist -server=/msocsp.com/127.0.0.1#5335 -ipset=/msocsp.com/gfwlist -server=/msocdn.com/127.0.0.1#5335 -ipset=/msocdn.com/gfwlist -server=/msftnet.org/127.0.0.1#5335 -ipset=/msftnet.org/gfwlist -server=/msfteducation.ca/127.0.0.1#5335 -ipset=/msfteducation.ca/gfwlist -server=/oxfordbibliographies.com/127.0.0.1#5335 -ipset=/oxfordbibliographies.com/gfwlist -server=/msedge.net/127.0.0.1#5335 -ipset=/msedge.net/gfwlist +server=/czechstreets.com/127.0.0.1#5335 +ipset=/czechstreets.com/gfwlist +server=/tmsnrt.rs/127.0.0.1#5335 +ipset=/tmsnrt.rs/gfwlist +server=/hotmovs.com/127.0.0.1#5335 +ipset=/hotmovs.com/gfwlist +server=/ashleysageellison.com/127.0.0.1#5335 +ipset=/ashleysageellison.com/gfwlist +server=/ocsp-responder.com/127.0.0.1#5335 +ipset=/ocsp-responder.com/gfwlist +server=/myanmar-porn.com/127.0.0.1#5335 +ipset=/myanmar-porn.com/gfwlist +server=/sexmutant.com/127.0.0.1#5335 +ipset=/sexmutant.com/gfwlist server=/pokemonbw.com/127.0.0.1#5335 ipset=/pokemonbw.com/gfwlist -server=/bmw-motorrad.ca/127.0.0.1#5335 -ipset=/bmw-motorrad.ca/gfwlist -server=/mschallenge2018.com/127.0.0.1#5335 -ipset=/mschallenge2018.com/gfwlist -server=/bmw-konzernarchiv.de/127.0.0.1#5335 -ipset=/bmw-konzernarchiv.de/gfwlist -server=/api.viu.now.com/127.0.0.1#5335 -ipset=/api.viu.now.com/gfwlist -server=/disney.co.uk/127.0.0.1#5335 -ipset=/disney.co.uk/gfwlist -server=/mpnevolution.com/127.0.0.1#5335 -ipset=/mpnevolution.com/gfwlist +server=/sexbq.com/127.0.0.1#5335 +ipset=/sexbq.com/gfwlist +server=/vmwarestuff.com/127.0.0.1#5335 +ipset=/vmwarestuff.com/gfwlist server=/bmwcharitygolf.com/127.0.0.1#5335 ipset=/bmwcharitygolf.com/gfwlist -server=/morphcharts.com/127.0.0.1#5335 -ipset=/morphcharts.com/gfwlist -server=/financeleadsonline.com/127.0.0.1#5335 -ipset=/financeleadsonline.com/gfwlist -server=/microsoftuwp.com/127.0.0.1#5335 -ipset=/microsoftuwp.com/gfwlist -server=/microsofttranslator.com/127.0.0.1#5335 -ipset=/microsofttranslator.com/gfwlist -server=/microsofttradein.com/127.0.0.1#5335 -ipset=/microsofttradein.com/gfwlist -server=/microsoftstream.com/127.0.0.1#5335 -ipset=/microsoftstream.com/gfwlist -server=/docs.com/127.0.0.1#5335 -ipset=/docs.com/gfwlist -server=/javcc.com/127.0.0.1#5335 -ipset=/javcc.com/gfwlist -server=/ipod.co.uk/127.0.0.1#5335 -ipset=/ipod.co.uk/gfwlist -server=/hotmail.com/127.0.0.1#5335 -ipset=/hotmail.com/gfwlist +server=/men18.net/127.0.0.1#5335 +ipset=/men18.net/gfwlist +server=/machotube.tv/127.0.0.1#5335 +ipset=/machotube.tv/gfwlist server=/dellcdn.com/127.0.0.1#5335 ipset=/dellcdn.com/gfwlist -server=/microsoftpartnercommunity.com/127.0.0.1#5335 -ipset=/microsoftpartnercommunity.com/gfwlist -server=/microsoftonline.com/127.0.0.1#5335 -ipset=/microsoftonline.com/gfwlist -server=/ciscosoftware.com/127.0.0.1#5335 -ipset=/ciscosoftware.com/gfwlist -server=/microsoftinternetsafety.net/127.0.0.1#5335 -ipset=/microsoftinternetsafety.net/gfwlist server=/parastorage.com/127.0.0.1#5335 ipset=/parastorage.com/gfwlist server=/applenewsformat.com/127.0.0.1#5335 ipset=/applenewsformat.com/gfwlist server=/pokemonchampionships.com/127.0.0.1#5335 ipset=/pokemonchampionships.com/gfwlist -server=/microsofthouse.net/127.0.0.1#5335 -ipset=/microsofthouse.net/gfwlist -server=/microsofthouse.com/127.0.0.1#5335 -ipset=/microsofthouse.com/gfwlist -server=/appleshare.info/127.0.0.1#5335 -ipset=/appleshare.info/gfwlist -server=/microsoftcommunitytraining.com/127.0.0.1#5335 -ipset=/microsoftcommunitytraining.com/gfwlist -server=/microsoftcloudworkshop.com/127.0.0.1#5335 -ipset=/microsoftcloudworkshop.com/gfwlist -server=/detaliczny.com/127.0.0.1#5335 -ipset=/detaliczny.com/gfwlist -server=/att-bundles.com/127.0.0.1#5335 -ipset=/att-bundles.com/gfwlist -server=/microsoftadvertisingregionalawards.com/127.0.0.1#5335 -ipset=/microsoftadvertisingregionalawards.com/gfwlist +server=/putinho.net/127.0.0.1#5335 +ipset=/putinho.net/gfwlist server=/itsbetterwhenyouwinit.com/127.0.0.1#5335 ipset=/itsbetterwhenyouwinit.com/gfwlist -server=/faebookc.com/127.0.0.1#5335 -ipset=/faebookc.com/gfwlist -server=/alibabacloud.co.in/127.0.0.1#5335 -ipset=/alibabacloud.co.in/gfwlist -server=/microsoft365.com/127.0.0.1#5335 -ipset=/microsoft365.com/gfwlist -server=/microsoft-sbs-domains.com/127.0.0.1#5335 -ipset=/microsoft-sbs-domains.com/gfwlist -server=/nintendostore.com/127.0.0.1#5335 -ipset=/nintendostore.com/gfwlist -server=/microsoft-ppe.com/127.0.0.1#5335 -ipset=/microsoft-ppe.com/gfwlist -server=/scdn.co/127.0.0.1#5335 -ipset=/scdn.co/gfwlist -server=/ebaycbt.co.kr/127.0.0.1#5335 -ipset=/ebaycbt.co.kr/gfwlist -server=/microsoft-int.com/127.0.0.1#5335 -ipset=/microsoft-int.com/gfwlist -server=/volvogroup.kr/127.0.0.1#5335 -ipset=/volvogroup.kr/gfwlist -server=/gaming-notebooks.com/127.0.0.1#5335 -ipset=/gaming-notebooks.com/gfwlist -server=/coupang.com/127.0.0.1#5335 -ipset=/coupang.com/gfwlist -server=/live.net/127.0.0.1#5335 -ipset=/live.net/gfwlist -server=/live.com.au/127.0.0.1#5335 -ipset=/live.com.au/gfwlist -server=/fpacebook.com/127.0.0.1#5335 -ipset=/fpacebook.com/gfwlist -server=/live.com/127.0.0.1#5335 -ipset=/live.com/gfwlist -server=/volvotrucks.kz/127.0.0.1#5335 -ipset=/volvotrucks.kz/gfwlist +server=/51mh.app/127.0.0.1#5335 +ipset=/51mh.app/gfwlist +server=/porn91.org/127.0.0.1#5335 +ipset=/porn91.org/gfwlist +server=/appleappstore.net/127.0.0.1#5335 +ipset=/appleappstore.net/gfwlist +server=/corbinfisher.com/127.0.0.1#5335 +ipset=/corbinfisher.com/gfwlist +server=/incestflix.com/127.0.0.1#5335 +ipset=/incestflix.com/gfwlist server=/bighead.group/127.0.0.1#5335 ipset=/bighead.group/gfwlist -server=/ingads.com/127.0.0.1#5335 -ipset=/ingads.com/gfwlist -server=/internetexplorer.com/127.0.0.1#5335 -ipset=/internetexplorer.com/gfwlist -server=/durex.co.za/127.0.0.1#5335 -ipset=/durex.co.za/gfwlist +server=/trixhentai.com/127.0.0.1#5335 +ipset=/trixhentai.com/gfwlist +server=/xnalgas.com/127.0.0.1#5335 +ipset=/xnalgas.com/gfwlist server=/umass.edu/127.0.0.1#5335 ipset=/umass.edu/gfwlist server=/rakuten.co.jp/127.0.0.1#5335 ipset=/rakuten.co.jp/gfwlist -server=/hummingbird.ms/127.0.0.1#5335 -ipset=/hummingbird.ms/gfwlist -server=/hotmail.org/127.0.0.1#5335 -ipset=/hotmail.org/gfwlist -server=/hotmail.eu/127.0.0.1#5335 -ipset=/hotmail.eu/gfwlist server=/google.li/127.0.0.1#5335 ipset=/google.li/gfwlist server=/adobesigncdn.com/127.0.0.1#5335 ipset=/adobesigncdn.com/gfwlist -server=/gigjam.com/127.0.0.1#5335 -ipset=/gigjam.com/gfwlist -server=/bitnamistudio.com/127.0.0.1#5335 -ipset=/bitnamistudio.com/gfwlist -server=/jiyu-kobo.co.jp/127.0.0.1#5335 -ipset=/jiyu-kobo.co.jp/gfwlist -server=/studywatchbyverily.com/127.0.0.1#5335 -ipset=/studywatchbyverily.com/gfwlist -server=/gearstactics.com/127.0.0.1#5335 -ipset=/gearstactics.com/gfwlist server=/verisign.se/127.0.0.1#5335 ipset=/verisign.se/gfwlist -server=/dropboxusercontent.com/127.0.0.1#5335 -ipset=/dropboxusercontent.com/gfwlist -server=/disney.ro/127.0.0.1#5335 -ipset=/disney.ro/gfwlist +server=/ideal-teens.com/127.0.0.1#5335 +ipset=/ideal-teens.com/gfwlist server=/monsterbeatsbydrdrestudio.com/127.0.0.1#5335 ipset=/monsterbeatsbydrdrestudio.com/gfwlist -server=/gears5.com/127.0.0.1#5335 -ipset=/gears5.com/gfwlist -server=/gameuxmasterguide.com/127.0.0.1#5335 -ipset=/gameuxmasterguide.com/gfwlist -server=/fasttrackreadysupport.com/127.0.0.1#5335 -ipset=/fasttrackreadysupport.com/gfwlist -server=/efproject.net/127.0.0.1#5335 -ipset=/efproject.net/gfwlist +server=/javscatsex.com/127.0.0.1#5335 +ipset=/javscatsex.com/gfwlist server=/dtvce.com/127.0.0.1#5335 ipset=/dtvce.com/gfwlist -server=/beth.games/127.0.0.1#5335 -ipset=/beth.games/gfwlist server=/cs4hs.com/127.0.0.1#5335 ipset=/cs4hs.com/gfwlist -server=/assetsadobe.com/127.0.0.1#5335 -ipset=/assetsadobe.com/gfwlist -server=/swisssign.li/127.0.0.1#5335 -ipset=/swisssign.li/gfwlist +server=/mm9c63ae.xyz/127.0.0.1#5335 +ipset=/mm9c63ae.xyz/gfwlist server=/microsoftstore.com/127.0.0.1#5335 ipset=/microsoftstore.com/gfwlist -server=/crmdynint-gcc.com/127.0.0.1#5335 -ipset=/crmdynint-gcc.com/gfwlist -server=/escandinavia-arg.com/127.0.0.1#5335 -ipset=/escandinavia-arg.com/gfwlist -server=/pki-posta.ch/127.0.0.1#5335 -ipset=/pki-posta.ch/gfwlist -server=/ciscoconnectcloud.net/127.0.0.1#5335 -ipset=/ciscoconnectcloud.net/gfwlist -server=/centralvalidation.com/127.0.0.1#5335 -ipset=/centralvalidation.com/gfwlist -server=/ibeats-uk.com/127.0.0.1#5335 -ipset=/ibeats-uk.com/gfwlist -server=/brazilpartneruniversity.com/127.0.0.1#5335 -ipset=/brazilpartneruniversity.com/gfwlist -server=/bluehatil.com/127.0.0.1#5335 -ipset=/bluehatil.com/gfwlist -server=/binads.com/127.0.0.1#5335 -ipset=/binads.com/gfwlist -server=/ebay.com.au/127.0.0.1#5335 -ipset=/ebay.com.au/gfwlist -server=/galaxyappstore.com/127.0.0.1#5335 -ipset=/galaxyappstore.com/gfwlist -server=/aka.ms/127.0.0.1#5335 -ipset=/aka.ms/gfwlist -server=/facebuok.com/127.0.0.1#5335 -ipset=/facebuok.com/gfwlist -server=/femalefounderscomp.com/127.0.0.1#5335 -ipset=/femalefounderscomp.com/gfwlist -server=/minispygear.com/127.0.0.1#5335 -ipset=/minispygear.com/gfwlist -server=/dns.sb/127.0.0.1#5335 -ipset=/dns.sb/gfwlist -server=/macbookpro.co/127.0.0.1#5335 -ipset=/macbookpro.co/gfwlist -server=/volvotruckrental.be/127.0.0.1#5335 -ipset=/volvotruckrental.be/gfwlist +server=/bandpage.com/127.0.0.1#5335 +ipset=/bandpage.com/gfwlist +server=/prothots.com/127.0.0.1#5335 +ipset=/prothots.com/gfwlist +server=/heroesofdragonage.com/127.0.0.1#5335 +ipset=/heroesofdragonage.com/gfwlist +server=/chengjuanseo.com/127.0.0.1#5335 +ipset=/chengjuanseo.com/gfwlist +server=/pornjav.org/127.0.0.1#5335 +ipset=/pornjav.org/gfwlist server=/darivoa.com/127.0.0.1#5335 ipset=/darivoa.com/gfwlist -server=/theopportunityproject.org/127.0.0.1#5335 -ipset=/theopportunityproject.org/gfwlist -server=/mac-mini.com/127.0.0.1#5335 -ipset=/mac-mini.com/gfwlist +server=/myhomemadesex.com/127.0.0.1#5335 +ipset=/myhomemadesex.com/gfwlist server=/foxsports-newyork.com/127.0.0.1#5335 ipset=/foxsports-newyork.com/gfwlist -server=/springerlink.com/127.0.0.1#5335 -ipset=/springerlink.com/gfwlist +server=/18qt.com/127.0.0.1#5335 +ipset=/18qt.com/gfwlist server=/bmw-motorrad-motorsport.com/127.0.0.1#5335 ipset=/bmw-motorrad-motorsport.com/gfwlist -server=/microsoft.si/127.0.0.1#5335 -ipset=/microsoft.si/gfwlist -server=/centrino.net/127.0.0.1#5335 -ipset=/centrino.net/gfwlist -server=/verisign.com.br/127.0.0.1#5335 -ipset=/verisign.com.br/gfwlist server=/nature.com/127.0.0.1#5335 ipset=/nature.com/gfwlist -server=/microsoft.red/127.0.0.1#5335 -ipset=/microsoft.red/gfwlist -server=/fnacebook.com/127.0.0.1#5335 -ipset=/fnacebook.com/gfwlist -server=/bmwsummerschool.com/127.0.0.1#5335 -ipset=/bmwsummerschool.com/gfwlist -server=/fox7.com/127.0.0.1#5335 -ipset=/fox7.com/gfwlist -server=/ebayclub.com/127.0.0.1#5335 -ipset=/ebayclub.com/gfwlist +server=/huluspain.com/127.0.0.1#5335 +ipset=/huluspain.com/gfwlist server=/golang.com/127.0.0.1#5335 ipset=/golang.com/gfwlist -server=/volvogroup.jp/127.0.0.1#5335 -ipset=/volvogroup.jp/gfwlist -server=/casoneexchange.com/127.0.0.1#5335 -ipset=/casoneexchange.com/gfwlist -server=/ebaymotors.com/127.0.0.1#5335 -ipset=/ebaymotors.com/gfwlist -server=/aokwholesale.net/127.0.0.1#5335 -ipset=/aokwholesale.net/gfwlist -server=/stacksnippets.net/127.0.0.1#5335 -ipset=/stacksnippets.net/gfwlist -server=/cobatt.com/127.0.0.1#5335 -ipset=/cobatt.com/gfwlist -server=/soccerfinancier.ca/127.0.0.1#5335 -ipset=/soccerfinancier.ca/gfwlist -server=/microsoft.jp/127.0.0.1#5335 -ipset=/microsoft.jp/gfwlist -server=/microsoft.io/127.0.0.1#5335 -ipset=/microsoft.io/gfwlist -server=/microsoft.hu/127.0.0.1#5335 -ipset=/microsoft.hu/gfwlist -server=/microsoft.eu/127.0.0.1#5335 -ipset=/microsoft.eu/gfwlist +server=/ebayenterprise.tv/127.0.0.1#5335 +ipset=/ebayenterprise.tv/gfwlist +server=/sankei.co.jp/127.0.0.1#5335 +ipset=/sankei.co.jp/gfwlist +server=/emojipedia.org/127.0.0.1#5335 +ipset=/emojipedia.org/gfwlist server=/facebool.info/127.0.0.1#5335 ipset=/facebool.info/gfwlist -server=/bienvenuechezbestbuy.ca/127.0.0.1#5335 -ipset=/bienvenuechezbestbuy.ca/gfwlist -server=/minifs.com/127.0.0.1#5335 -ipset=/minifs.com/gfwlist server=/privacytools.io/127.0.0.1#5335 ipset=/privacytools.io/gfwlist -server=/microsoft.es/127.0.0.1#5335 -ipset=/microsoft.es/gfwlist -server=/aclweb.org/127.0.0.1#5335 -ipset=/aclweb.org/gfwlist -server=/qoo10.jp/127.0.0.1#5335 -ipset=/qoo10.jp/gfwlist server=/jiayoulu.com/127.0.0.1#5335 ipset=/jiayoulu.com/gfwlist server=/miniso.jp/127.0.0.1#5335 ipset=/miniso.jp/gfwlist -server=/headphonesretailer.com/127.0.0.1#5335 -ipset=/headphonesretailer.com/gfwlist server=/ebaysweden.com/127.0.0.1#5335 ipset=/ebaysweden.com/gfwlist server=/pearsonclinical.be/127.0.0.1#5335 ipset=/pearsonclinical.be/gfwlist -server=/faceboof.com/127.0.0.1#5335 -ipset=/faceboof.com/gfwlist -server=/microsoft.ca/127.0.0.1#5335 -ipset=/microsoft.ca/gfwlist server=/wal.co/127.0.0.1#5335 ipset=/wal.co/gfwlist server=/sony.ro/127.0.0.1#5335 ipset=/sony.ro/gfwlist -server=/yammer.com/127.0.0.1#5335 -ipset=/yammer.com/gfwlist -server=/myciscobenefits.com/127.0.0.1#5335 -ipset=/myciscobenefits.com/gfwlist -server=/onedrive.eu/127.0.0.1#5335 -ipset=/onedrive.eu/gfwlist -server=/onedrive.co/127.0.0.1#5335 -ipset=/onedrive.co/gfwlist -server=/launchpadlibrarian.com/127.0.0.1#5335 -ipset=/launchpadlibrarian.com/gfwlist +server=/blackshemalevideo.com/127.0.0.1#5335 +ipset=/blackshemalevideo.com/gfwlist +server=/xbooru.com/127.0.0.1#5335 +ipset=/xbooru.com/gfwlist server=/globalsign.es/127.0.0.1#5335 ipset=/globalsign.es/gfwlist -server=/1drv.com/127.0.0.1#5335 -ipset=/1drv.com/gfwlist -server=/msnkids.com/127.0.0.1#5335 -ipset=/msnkids.com/gfwlist -server=/sony-hes.co.jp/127.0.0.1#5335 -ipset=/sony-hes.co.jp/gfwlist server=/directvatlantaga.com/127.0.0.1#5335 ipset=/directvatlantaga.com/gfwlist -server=/msnewskids.net/127.0.0.1#5335 -ipset=/msnewskids.net/gfwlist -server=/neborder.com/127.0.0.1#5335 -ipset=/neborder.com/gfwlist -server=/msn.com/127.0.0.1#5335 -ipset=/msn.com/gfwlist -server=/microsoftnewskids.org/127.0.0.1#5335 -ipset=/microsoftnewskids.org/gfwlist -server=/beatsbydreausale.net/127.0.0.1#5335 -ipset=/beatsbydreausale.net/gfwlist -server=/amamanualofstyle.com/127.0.0.1#5335 -ipset=/amamanualofstyle.com/gfwlist +server=/enemarotica.com/127.0.0.1#5335 +ipset=/enemarotica.com/gfwlist server=/hbomax.com/127.0.0.1#5335 ipset=/hbomax.com/gfwlist -server=/microsoftnewskids.net/127.0.0.1#5335 -ipset=/microsoftnewskids.net/gfwlist server=/xboxlive.com/127.0.0.1#5335 ipset=/xboxlive.com/gfwlist server=/visaeverywhereshop.com/127.0.0.1#5335 ipset=/visaeverywhereshop.com/gfwlist -server=/microsoftnewskids.com/127.0.0.1#5335 -ipset=/microsoftnewskids.com/gfwlist -server=/microsoftnewsforkids.org/127.0.0.1#5335 -ipset=/microsoftnewsforkids.org/gfwlist server=/riotcdn.net/127.0.0.1#5335 ipset=/riotcdn.net/gfwlist -server=/microsoftnewsforkids.com/127.0.0.1#5335 -ipset=/microsoftnewsforkids.com/gfwlist -server=/microsoftnews.net/127.0.0.1#5335 -ipset=/microsoftnews.net/gfwlist -server=/sprinklesapp.com/127.0.0.1#5335 -ipset=/sprinklesapp.com/gfwlist +server=/sankei-call.jp/127.0.0.1#5335 +ipset=/sankei-call.jp/gfwlist server=/drebeatssite.com/127.0.0.1#5335 ipset=/drebeatssite.com/gfwlist -server=/impermium.com/127.0.0.1#5335 -ipset=/impermium.com/gfwlist -server=/msunlimitedcloudsummit.com/127.0.0.1#5335 -ipset=/msunlimitedcloudsummit.com/gfwlist -server=/cashpassport.com.br/127.0.0.1#5335 -ipset=/cashpassport.com.br/gfwlist -server=/microsoftpartnersolutions.com/127.0.0.1#5335 -ipset=/microsoftpartnersolutions.com/gfwlist -server=/microsoftlatamholiday.com/127.0.0.1#5335 -ipset=/microsoftlatamholiday.com/gfwlist -server=/awsloft-johannesburg.com/127.0.0.1#5335 -ipset=/awsloft-johannesburg.com/gfwlist -server=/microsoft-give.com/127.0.0.1#5335 -ipset=/microsoft-give.com/gfwlist -server=/masalladeloslimites.com/127.0.0.1#5335 -ipset=/masalladeloslimites.com/gfwlist -server=/flipwithsurface.com/127.0.0.1#5335 -ipset=/flipwithsurface.com/gfwlist -server=/dictate.ms/127.0.0.1#5335 -ipset=/dictate.ms/gfwlist -server=/bluehatnights.com/127.0.0.1#5335 -ipset=/bluehatnights.com/gfwlist -server=/appleappstore.net/127.0.0.1#5335 -ipset=/appleappstore.net/gfwlist +server=/pleasuremore.com/127.0.0.1#5335 +ipset=/pleasuremore.com/gfwlist +server=/3789av.com/127.0.0.1#5335 +ipset=/3789av.com/gfwlist +server=/2789av.com/127.0.0.1#5335 +ipset=/2789av.com/gfwlist +server=/britsexcash.com/127.0.0.1#5335 +ipset=/britsexcash.com/gfwlist +server=/pornreactor.cc/127.0.0.1#5335 +ipset=/pornreactor.cc/gfwlist server=/veet.tv/127.0.0.1#5335 ipset=/veet.tv/gfwlist -server=/bing.net/127.0.0.1#5335 -ipset=/bing.net/gfwlist server=/iproperty.com.sg/127.0.0.1#5335 ipset=/iproperty.com.sg/gfwlist server=/bmw-auslieferungszentrum.com/127.0.0.1#5335 ipset=/bmw-auslieferungszentrum.com/gfwlist server=/visadns.com/127.0.0.1#5335 ipset=/visadns.com/gfwlist -server=/adwordsexpress.com/127.0.0.1#5335 -ipset=/adwordsexpress.com/gfwlist -server=/airiti.com/127.0.0.1#5335 -ipset=/airiti.com/gfwlist +server=/feedherfuckher.com/127.0.0.1#5335 +ipset=/feedherfuckher.com/gfwlist +server=/fgirl.ch/127.0.0.1#5335 +ipset=/fgirl.ch/gfwlist server=/softbankhawksstore.jp/127.0.0.1#5335 ipset=/softbankhawksstore.jp/gfwlist -server=/visafulfillment.com/127.0.0.1#5335 -ipset=/visafulfillment.com/gfwlist -server=/google.com.au/127.0.0.1#5335 -ipset=/google.com.au/gfwlist -server=/gitlab.com/127.0.0.1#5335 -ipset=/gitlab.com/gfwlist -server=/thehealthsite.com/127.0.0.1#5335 -ipset=/thehealthsite.com/gfwlist -server=/google.tt/127.0.0.1#5335 -ipset=/google.tt/gfwlist -server=/gotcosmos.com/127.0.0.1#5335 -ipset=/gotcosmos.com/gfwlist -server=/youtube.com.gt/127.0.0.1#5335 -ipset=/youtube.com.gt/gfwlist -server=/cosmosdb.info/127.0.0.1#5335 -ipset=/cosmosdb.info/gfwlist server=/pearsonclinical.se/127.0.0.1#5335 ipset=/pearsonclinical.se/gfwlist -server=/azurewebsites.net/127.0.0.1#5335 -ipset=/azurewebsites.net/gfwlist -server=/azurestackvalidation.com/127.0.0.1#5335 -ipset=/azurestackvalidation.com/gfwlist -server=/huobi.me/127.0.0.1#5335 -ipset=/huobi.me/gfwlist -server=/azureiotsuite.com/127.0.0.1#5335 -ipset=/azureiotsuite.com/gfwlist +server=/heartbreakers.info/127.0.0.1#5335 +ipset=/heartbreakers.info/gfwlist +server=/ikea.bg/127.0.0.1#5335 +ipset=/ikea.bg/gfwlist server=/volvobuses.hu/127.0.0.1#5335 ipset=/volvobuses.hu/gfwlist server=/wiifit.com/127.0.0.1#5335 ipset=/wiifit.com/gfwlist server=/samsungqbe.com/127.0.0.1#5335 ipset=/samsungqbe.com/gfwlist -server=/azuredns-prd.info/127.0.0.1#5335 -ipset=/azuredns-prd.info/gfwlist -server=/azuredigitaltwins.com/127.0.0.1#5335 -ipset=/azuredigitaltwins.com/gfwlist -server=/azuredigitaltwin.com/127.0.0.1#5335 -ipset=/azuredigitaltwin.com/gfwlist -server=/blogger.com/127.0.0.1#5335 -ipset=/blogger.com/gfwlist +server=/bzazi.com/127.0.0.1#5335 +ipset=/bzazi.com/gfwlist +server=/x-artvideo.net/127.0.0.1#5335 +ipset=/x-artvideo.net/gfwlist +server=/yandex.pl/127.0.0.1#5335 +ipset=/yandex.pl/gfwlist server=/wikia.org/127.0.0.1#5335 ipset=/wikia.org/gfwlist -server=/azurecosmosdb.com/127.0.0.1#5335 -ipset=/azurecosmosdb.com/gfwlist -server=/botframework.com/127.0.0.1#5335 -ipset=/botframework.com/gfwlist -server=/fox11.com/127.0.0.1#5335 -ipset=/fox11.com/gfwlist +server=/bidong9.com/127.0.0.1#5335 +ipset=/bidong9.com/gfwlist server=/sandisk.co.kr/127.0.0.1#5335 ipset=/sandisk.co.kr/gfwlist -server=/hf-iphone.com/127.0.0.1#5335 -ipset=/hf-iphone.com/gfwlist -server=/azurecontainer.io/127.0.0.1#5335 -ipset=/azurecontainer.io/gfwlist -server=/azurecomcdn.net/127.0.0.1#5335 -ipset=/azurecomcdn.net/gfwlist +server=/veporno.net/127.0.0.1#5335 +ipset=/veporno.net/gfwlist server=/darwinsource.org/127.0.0.1#5335 ipset=/darwinsource.org/gfwlist server=/ciscoconnectcloud.com/127.0.0.1#5335 ipset=/ciscoconnectcloud.com/gfwlist -server=/applereach.net/127.0.0.1#5335 -ipset=/applereach.net/gfwlist -server=/ctan.org/127.0.0.1#5335 -ipset=/ctan.org/gfwlist -server=/conscrypt.org/127.0.0.1#5335 -ipset=/conscrypt.org/gfwlist -server=/azure-mobile.net/127.0.0.1#5335 -ipset=/azure-mobile.net/gfwlist -server=/hpapplicationscenter.com/127.0.0.1#5335 -ipset=/hpapplicationscenter.com/gfwlist -server=/nikelink.com/127.0.0.1#5335 -ipset=/nikelink.com/gfwlist +server=/avmoo.click/127.0.0.1#5335 +ipset=/avmoo.click/gfwlist +server=/sae.org/127.0.0.1#5335 +ipset=/sae.org/gfwlist +server=/chatwhores.com/127.0.0.1#5335 +ipset=/chatwhores.com/gfwlist server=/meetyourdevices.com/127.0.0.1#5335 ipset=/meetyourdevices.com/gfwlist server=/visa.sk/127.0.0.1#5335 ipset=/visa.sk/gfwlist -server=/mycdn.me/127.0.0.1#5335 -ipset=/mycdn.me/gfwlist server=/mini.com.bn/127.0.0.1#5335 ipset=/mini.com.bn/gfwlist -server=/avseesee.com/127.0.0.1#5335 -ipset=/avseesee.com/gfwlist server=/facebookphoto.com/127.0.0.1#5335 ipset=/facebookphoto.com/gfwlist -server=/imgsmail.ru/127.0.0.1#5335 -ipset=/imgsmail.ru/gfwlist -server=/google.com/127.0.0.1#5335 -ipset=/google.com/gfwlist -server=/logitech.fr/127.0.0.1#5335 -ipset=/logitech.fr/gfwlist -server=/logitech.com/127.0.0.1#5335 -ipset=/logitech.com/gfwlist -server=/logitech.biz/127.0.0.1#5335 -ipset=/logitech.biz/gfwlist -server=/logi.com/127.0.0.1#5335 -ipset=/logi.com/gfwlist -server=/licdn.com/127.0.0.1#5335 -ipset=/licdn.com/gfwlist -server=/lgelectronics.122.2o7.net/127.0.0.1#5335 -ipset=/lgelectronics.122.2o7.net/gfwlist server=/mywaytopay.net/127.0.0.1#5335 ipset=/mywaytopay.net/gfwlist -server=/gab.com/127.0.0.1#5335 -ipset=/gab.com/gfwlist -server=/lgrecyclingprogram.com/127.0.0.1#5335 -ipset=/lgrecyclingprogram.com/gfwlist +server=/jpav.us/127.0.0.1#5335 +ipset=/jpav.us/gfwlist server=/clearasil.us/127.0.0.1#5335 ipset=/clearasil.us/gfwlist -server=/lghvac.com/127.0.0.1#5335 -ipset=/lghvac.com/gfwlist -server=/customizedbeatsbydre.com/127.0.0.1#5335 -ipset=/customizedbeatsbydre.com/gfwlist -server=/rapidssl.com/127.0.0.1#5335 -ipset=/rapidssl.com/gfwlist +server=/just.xxx/127.0.0.1#5335 +ipset=/just.xxx/gfwlist server=/naturalvoices.com/127.0.0.1#5335 ipset=/naturalvoices.com/gfwlist -server=/listinganalytics.net/127.0.0.1#5335 -ipset=/listinganalytics.net/gfwlist -server=/yahoo.ae/127.0.0.1#5335 -ipset=/yahoo.ae/gfwlist -server=/lg.com/127.0.0.1#5335 -ipset=/lg.com/gfwlist +server=/freegaypornhdtube.com/127.0.0.1#5335 +ipset=/freegaypornhdtube.com/gfwlist server=/google.sm/127.0.0.1#5335 ipset=/google.sm/gfwlist -server=/headphonezip.com/127.0.0.1#5335 -ipset=/headphonezip.com/gfwlist -server=/xscale.com/127.0.0.1#5335 -ipset=/xscale.com/gfwlist -server=/joeswall.com/127.0.0.1#5335 -ipset=/joeswall.com/gfwlist -server=/plantsvszombies2.com/127.0.0.1#5335 -ipset=/plantsvszombies2.com/gfwlist -server=/xn--ztsq84g.cn/127.0.0.1#5335 -ipset=/xn--ztsq84g.cn/gfwlist -server=/ebaya.com/127.0.0.1#5335 -ipset=/ebaya.com/gfwlist -server=/vpro.com/127.0.0.1#5335 -ipset=/vpro.com/gfwlist -server=/vokevr.com/127.0.0.1#5335 -ipset=/vokevr.com/gfwlist -server=/trustedanalytics.com/127.0.0.1#5335 -ipset=/trustedanalytics.com/gfwlist -server=/paypal-japan.com/127.0.0.1#5335 -ipset=/paypal-japan.com/gfwlist +server=/vilavpn6.xyz/127.0.0.1#5335 +ipset=/vilavpn6.xyz/gfwlist +server=/xxbb9.com/127.0.0.1#5335 +ipset=/xxbb9.com/gfwlist +server=/youtube.com.gt/127.0.0.1#5335 +ipset=/youtube.com.gt/gfwlist server=/applepodcasts.com/127.0.0.1#5335 ipset=/applepodcasts.com/gfwlist -server=/thunderbolttechnology.net/127.0.0.1#5335 -ipset=/thunderbolttechnology.net/gfwlist server=/google.com.eg/127.0.0.1#5335 ipset=/google.com.eg/gfwlist -server=/siport.com/127.0.0.1#5335 -ipset=/siport.com/gfwlist -server=/sensorynetworks.com/127.0.0.1#5335 -ipset=/sensorynetworks.com/gfwlist -server=/researchintel.com/127.0.0.1#5335 -ipset=/researchintel.com/gfwlist +server=/ebalovo.com/127.0.0.1#5335 +ipset=/ebalovo.com/gfwlist +server=/thieme.de/127.0.0.1#5335 +ipset=/thieme.de/gfwlist server=/openjsf.org/127.0.0.1#5335 ipset=/openjsf.org/gfwlist -server=/reconjet.com/127.0.0.1#5335 -ipset=/reconjet.com/gfwlist -server=/bmw-motorrad.it/127.0.0.1#5335 -ipset=/bmw-motorrad.it/gfwlist -server=/reconinstruments.com/127.0.0.1#5335 -ipset=/reconinstruments.com/gfwlist -server=/imgurinc.com/127.0.0.1#5335 -ipset=/imgurinc.com/gfwlist -server=/opendroneid.org/127.0.0.1#5335 -ipset=/opendroneid.org/gfwlist -server=/openamt.com/127.0.0.1#5335 -ipset=/openamt.com/gfwlist -server=/niosii.com/127.0.0.1#5335 -ipset=/niosii.com/gfwlist -server=/nextgenerationcenter.com/127.0.0.1#5335 -ipset=/nextgenerationcenter.com/gfwlist -server=/smartone.com/127.0.0.1#5335 -ipset=/smartone.com/gfwlist -server=/nervanasys.com/127.0.0.1#5335 -ipset=/nervanasys.com/gfwlist -server=/lookinside.com/127.0.0.1#5335 -ipset=/lookinside.com/gfwlist -server=/canon-se.com.tw/127.0.0.1#5335 -ipset=/canon-se.com.tw/gfwlist -server=/wwwapplemusic.com/127.0.0.1#5335 -ipset=/wwwapplemusic.com/gfwlist -server=/itnel.com/127.0.0.1#5335 -ipset=/itnel.com/gfwlist -server=/intelvmwarecybersecurity.com/127.0.0.1#5335 -ipset=/intelvmwarecybersecurity.com/gfwlist -server=/intelsalestraining.com/127.0.0.1#5335 -ipset=/intelsalestraining.com/gfwlist -server=/bloomberg.co.jp/127.0.0.1#5335 -ipset=/bloomberg.co.jp/gfwlist -server=/2013newbeatsworld.com/127.0.0.1#5335 -ipset=/2013newbeatsworld.com/gfwlist -server=/intelrealsense.com/127.0.0.1#5335 -ipset=/intelrealsense.com/gfwlist -server=/battlefield1943.com/127.0.0.1#5335 -ipset=/battlefield1943.com/gfwlist +server=/youassporn.com/127.0.0.1#5335 +ipset=/youassporn.com/gfwlist +server=/85st.com/127.0.0.1#5335 +ipset=/85st.com/gfwlist +server=/binance.net/127.0.0.1#5335 +ipset=/binance.net/gfwlist +server=/projectmurphy.net/127.0.0.1#5335 +ipset=/projectmurphy.net/gfwlist +server=/paypal-mobilemoney.com/127.0.0.1#5335 +ipset=/paypal-mobilemoney.com/gfwlist +server=/goldgay.tv/127.0.0.1#5335 +ipset=/goldgay.tv/gfwlist +server=/google.ci/127.0.0.1#5335 +ipset=/google.ci/gfwlist server=/duckduckgo.uk/127.0.0.1#5335 ipset=/duckduckgo.uk/gfwlist -server=/intelquark.com/127.0.0.1#5335 -ipset=/intelquark.com/gfwlist -server=/drebeats-monsteraustralia.com/127.0.0.1#5335 -ipset=/drebeats-monsteraustralia.com/gfwlist -server=/pokemonultrasunmoon.com/127.0.0.1#5335 -ipset=/pokemonultrasunmoon.com/gfwlist -server=/ukipad.com/127.0.0.1#5335 -ipset=/ukipad.com/gfwlist -server=/intelnervana.com/127.0.0.1#5335 -ipset=/intelnervana.com/gfwlist -server=/intellinuxwireless.net/127.0.0.1#5335 -ipset=/intellinuxwireless.net/gfwlist -server=/buyitnow.tv/127.0.0.1#5335 -ipset=/buyitnow.tv/gfwlist -server=/intellearningseries.com/127.0.0.1#5335 -ipset=/intellearningseries.com/gfwlist -server=/inteliotmarketplace.com/127.0.0.1#5335 -ipset=/inteliotmarketplace.com/gfwlist +server=/bdsm.com/127.0.0.1#5335 +ipset=/bdsm.com/gfwlist server=/frostbite.com/127.0.0.1#5335 ipset=/frostbite.com/gfwlist -server=/intelgo.net/127.0.0.1#5335 -ipset=/intelgo.net/gfwlist -server=/ipods.com/127.0.0.1#5335 -ipset=/ipods.com/gfwlist -server=/espadoldettol.com.ar/127.0.0.1#5335 -ipset=/espadoldettol.com.ar/gfwlist -server=/intelcloudfinder.com/127.0.0.1#5335 -ipset=/intelcloudfinder.com/gfwlist +server=/justporno.tv/127.0.0.1#5335 +ipset=/justporno.tv/gfwlist server=/googlevideo.com/127.0.0.1#5335 ipset=/googlevideo.com/gfwlist server=/dacebook.com/127.0.0.1#5335 ipset=/dacebook.com/gfwlist -server=/fasebook.com/127.0.0.1#5335 -ipset=/fasebook.com/gfwlist -server=/intelcapital.com/127.0.0.1#5335 -ipset=/intelcapital.com/gfwlist -server=/intelatom.net/127.0.0.1#5335 -ipset=/intelatom.net/gfwlist -server=/intelapacstore.com/127.0.0.1#5335 -ipset=/intelapacstore.com/gfwlist -server=/nikesku.com/127.0.0.1#5335 -ipset=/nikesku.com/gfwlist -server=/facebook-ebook.com/127.0.0.1#5335 -ipset=/facebook-ebook.com/gfwlist -server=/doceapower.com/127.0.0.1#5335 -ipset=/doceapower.com/gfwlist +server=/thecuckold.com/127.0.0.1#5335 +ipset=/thecuckold.com/gfwlist server=/bmw-i-pure-impulse.com/127.0.0.1#5335 ipset=/bmw-i-pure-impulse.com/gfwlist -server=/wariolandshakeit.com/127.0.0.1#5335 -ipset=/wariolandshakeit.com/gfwlist -server=/crosswalk-project.net/127.0.0.1#5335 -ipset=/crosswalk-project.net/gfwlist -server=/intel.bg/127.0.0.1#5335 -ipset=/intel.bg/gfwlist -server=/coreextreme.com/127.0.0.1#5335 -ipset=/coreextreme.com/gfwlist -server=/ebaypakistan.net/127.0.0.1#5335 -ipset=/ebaypakistan.net/gfwlist -server=/ebay.mn/127.0.0.1#5335 -ipset=/ebay.mn/gfwlist -server=/firestonebpco.com/127.0.0.1#5335 -ipset=/firestonebpco.com/gfwlist +server=/simonsgirls.com/127.0.0.1#5335 +ipset=/simonsgirls.com/gfwlist +server=/mysdn.net/127.0.0.1#5335 +ipset=/mysdn.net/gfwlist server=/mailhealth.com/127.0.0.1#5335 ipset=/mailhealth.com/gfwlist -server=/opinionjournal.com/127.0.0.1#5335 -ipset=/opinionjournal.com/gfwlist +server=/gacebook.com/127.0.0.1#5335 +ipset=/gacebook.com/gfwlist server=/facebook.com/127.0.0.1#5335 ipset=/facebook.com/gfwlist -server=/applenews.berlin/127.0.0.1#5335 -ipset=/applenews.berlin/gfwlist server=/skysportsonline.com/127.0.0.1#5335 ipset=/skysportsonline.com/gfwlist server=/hp3dprinter.com/127.0.0.1#5335 ipset=/hp3dprinter.com/gfwlist server=/iphone.es/127.0.0.1#5335 ipset=/iphone.es/gfwlist -server=/clusterconnection.com/127.0.0.1#5335 -ipset=/clusterconnection.com/gfwlist -server=/playmation.com/127.0.0.1#5335 -ipset=/playmation.com/gfwlist -server=/cilk.net/127.0.0.1#5335 -ipset=/cilk.net/gfwlist -server=/disney.bg/127.0.0.1#5335 -ipset=/disney.bg/gfwlist -server=/launchpad.wang/127.0.0.1#5335 -ipset=/launchpad.wang/gfwlist +server=/nichepornsite.com/127.0.0.1#5335 +ipset=/nichepornsite.com/gfwlist +server=/bmw.co.nz/127.0.0.1#5335 +ipset=/bmw.co.nz/gfwlist server=/bitstamp.net/127.0.0.1#5335 ipset=/bitstamp.net/gfwlist server=/microsoft.se/127.0.0.1#5335 @@ -13960,444 +9954,190 @@ server=/ieee.ca/127.0.0.1#5335 ipset=/ieee.ca/gfwlist server=/wireshark.org/127.0.0.1#5335 ipset=/wireshark.org/gfwlist -server=/celeron.net/127.0.0.1#5335 -ipset=/celeron.net/gfwlist -server=/volvotrucks.net/127.0.0.1#5335 -ipset=/volvotrucks.net/gfwlist server=/bmw-motorrad.lu/127.0.0.1#5335 ipset=/bmw-motorrad.lu/gfwlist -server=/celeron.com/127.0.0.1#5335 -ipset=/celeron.com/gfwlist -server=/buyaltera.com/127.0.0.1#5335 -ipset=/buyaltera.com/gfwlist -server=/visabank.org/127.0.0.1#5335 -ipset=/visabank.org/gfwlist -server=/alterauserforums.com/127.0.0.1#5335 -ipset=/alterauserforums.com/gfwlist -server=/sqlite.org/127.0.0.1#5335 -ipset=/sqlite.org/gfwlist -server=/alterauserforum.net/127.0.0.1#5335 -ipset=/alterauserforum.net/gfwlist -server=/neow.in/127.0.0.1#5335 -ipset=/neow.in/gfwlist -server=/ocbmwdealers.com/127.0.0.1#5335 -ipset=/ocbmwdealers.com/gfwlist +server=/redditmedia.com/127.0.0.1#5335 +ipset=/redditmedia.com/gfwlist +server=/nationalgeographicpartners.com/127.0.0.1#5335 +ipset=/nationalgeographicpartners.com/gfwlist +server=/applestore.com.pl/127.0.0.1#5335 +ipset=/applestore.com.pl/gfwlist server=/foxla.com/127.0.0.1#5335 ipset=/foxla.com/gfwlist -server=/bmw.tm/127.0.0.1#5335 -ipset=/bmw.tm/gfwlist -server=/vercel-dns.com/127.0.0.1#5335 -ipset=/vercel-dns.com/gfwlist -server=/alteraforums.net/127.0.0.1#5335 -ipset=/alteraforums.net/gfwlist -server=/alteraforum.com/127.0.0.1#5335 -ipset=/alteraforum.com/gfwlist -server=/intel.vu/127.0.0.1#5335 -ipset=/intel.vu/gfwlist -server=/facebol.com/127.0.0.1#5335 -ipset=/facebol.com/gfwlist server=/paypal-labs.com/127.0.0.1#5335 ipset=/paypal-labs.com/gfwlist -server=/statuspage.io/127.0.0.1#5335 -ipset=/statuspage.io/gfwlist -server=/intel.vn/127.0.0.1#5335 -ipset=/intel.vn/gfwlist -server=/intel.vg/127.0.0.1#5335 -ipset=/intel.vg/gfwlist server=/conscrypt.com/127.0.0.1#5335 ipset=/conscrypt.com/gfwlist server=/rebates.jp/127.0.0.1#5335 ipset=/rebates.jp/gfwlist -server=/intel.uy/127.0.0.1#5335 -ipset=/intel.uy/gfwlist -server=/verisign.com.es/127.0.0.1#5335 -ipset=/verisign.com.es/gfwlist -server=/harpercollinschildrensbooks.co.uk/127.0.0.1#5335 -ipset=/harpercollinschildrensbooks.co.uk/gfwlist +server=/guruofporn.com/127.0.0.1#5335 +ipset=/guruofporn.com/gfwlist server=/sony.com.ec/127.0.0.1#5335 ipset=/sony.com.ec/gfwlist -server=/ffacebook.com/127.0.0.1#5335 -ipset=/ffacebook.com/gfwlist -server=/intel.tt/127.0.0.1#5335 -ipset=/intel.tt/gfwlist -server=/intel.tn/127.0.0.1#5335 -ipset=/intel.tn/gfwlist -server=/intel.tm/127.0.0.1#5335 -ipset=/intel.tm/gfwlist server=/pimg.tw/127.0.0.1#5335 ipset=/pimg.tw/gfwlist -server=/instagramtr.com/127.0.0.1#5335 -ipset=/instagramtr.com/gfwlist -server=/intel.tl/127.0.0.1#5335 -ipset=/intel.tl/gfwlist +server=/pornuj.cz/127.0.0.1#5335 +ipset=/pornuj.cz/gfwlist server=/hipaa6020.com/127.0.0.1#5335 ipset=/hipaa6020.com/gfwlist -server=/intel.tj/127.0.0.1#5335 -ipset=/intel.tj/gfwlist -server=/faseboox.com/127.0.0.1#5335 -ipset=/faseboox.com/gfwlist -server=/beatspascher-fr.net/127.0.0.1#5335 -ipset=/beatspascher-fr.net/gfwlist -server=/intel.st/127.0.0.1#5335 -ipset=/intel.st/gfwlist -server=/videodelivery.net/127.0.0.1#5335 -ipset=/videodelivery.net/gfwlist -server=/intel.sk/127.0.0.1#5335 -ipset=/intel.sk/gfwlist +server=/xxvids.net/127.0.0.1#5335 +ipset=/xxvids.net/gfwlist server=/dot-mac.de/127.0.0.1#5335 ipset=/dot-mac.de/gfwlist -server=/intel.ie/127.0.0.1#5335 -ipset=/intel.ie/gfwlist -server=/intel.sc/127.0.0.1#5335 -ipset=/intel.sc/gfwlist -server=/intel.ro/127.0.0.1#5335 -ipset=/intel.ro/gfwlist server=/nytcn.me/127.0.0.1#5335 ipset=/nytcn.me/gfwlist -server=/volvopenta.se/127.0.0.1#5335 -ipset=/volvopenta.se/gfwlist -server=/intel.pn/127.0.0.1#5335 -ipset=/intel.pn/gfwlist server=/foxstudiolot.com/127.0.0.1#5335 ipset=/foxstudiolot.com/gfwlist server=/speybay.com/127.0.0.1#5335 ipset=/speybay.com/gfwlist -server=/intel.ph/127.0.0.1#5335 -ipset=/intel.ph/gfwlist -server=/intel.pa/127.0.0.1#5335 -ipset=/intel.pa/gfwlist -server=/intel.nu/127.0.0.1#5335 -ipset=/intel.nu/gfwlist +server=/rbc007.com/127.0.0.1#5335 +ipset=/rbc007.com/gfwlist server=/directtv-dish.com/127.0.0.1#5335 ipset=/directtv-dish.com/gfwlist -server=/minihalifax.com/127.0.0.1#5335 -ipset=/minihalifax.com/gfwlist -server=/intel.mu/127.0.0.1#5335 -ipset=/intel.mu/gfwlist -server=/desktopmovie.com/127.0.0.1#5335 -ipset=/desktopmovie.com/gfwlist +server=/hentaivn.la/127.0.0.1#5335 +ipset=/hentaivn.la/gfwlist server=/dl-iphone.com/127.0.0.1#5335 ipset=/dl-iphone.com/gfwlist -server=/intel.mn/127.0.0.1#5335 -ipset=/intel.mn/gfwlist -server=/intel.mg/127.0.0.1#5335 -ipset=/intel.mg/gfwlist server=/thefind.com/127.0.0.1#5335 ipset=/thefind.com/gfwlist -server=/bmwchampionshipusa.com/127.0.0.1#5335 -ipset=/bmwchampionshipusa.com/gfwlist -server=/mastercard.hu/127.0.0.1#5335 -ipset=/mastercard.hu/gfwlist -server=/intel.me/127.0.0.1#5335 -ipset=/intel.me/gfwlist -server=/yahoo.ws/127.0.0.1#5335 -ipset=/yahoo.ws/gfwlist -server=/twnextdigital.com/127.0.0.1#5335 -ipset=/twnextdigital.com/gfwlist +server=/gamcore.com/127.0.0.1#5335 +ipset=/gamcore.com/gfwlist server=/bridgestoneperformancemedia.net/127.0.0.1#5335 ipset=/bridgestoneperformancemedia.net/gfwlist server=/vmwarevmc.com/127.0.0.1#5335 ipset=/vmwarevmc.com/gfwlist -server=/macbookair.es/127.0.0.1#5335 -ipset=/macbookair.es/gfwlist +server=/gogoanime.vc/127.0.0.1#5335 +ipset=/gogoanime.vc/gfwlist server=/vfsco.de/127.0.0.1#5335 ipset=/vfsco.de/gfwlist -server=/intel.lu/127.0.0.1#5335 -ipset=/intel.lu/gfwlist -server=/intel.lt/127.0.0.1#5335 -ipset=/intel.lt/gfwlist -server=/intel.lk/127.0.0.1#5335 -ipset=/intel.lk/gfwlist -server=/intel.lc/127.0.0.1#5335 -ipset=/intel.lc/gfwlist -server=/intel.ke/127.0.0.1#5335 -ipset=/intel.ke/gfwlist +server=/hentai4manga.com/127.0.0.1#5335 +ipset=/hentai4manga.com/gfwlist server=/freebsd.org/127.0.0.1#5335 ipset=/freebsd.org/gfwlist -server=/ieeecsc.org/127.0.0.1#5335 -ipset=/ieeecsc.org/gfwlist -server=/intel.jp/127.0.0.1#5335 -ipset=/intel.jp/gfwlist -server=/google.gr/127.0.0.1#5335 -ipset=/google.gr/gfwlist -server=/delvenetworks.com/127.0.0.1#5335 -ipset=/delvenetworks.com/gfwlist -server=/intel.it/127.0.0.1#5335 -ipset=/intel.it/gfwlist +server=/sonorousporn.com/127.0.0.1#5335 +ipset=/sonorousporn.com/gfwlist server=/qualcomm.co.jp/127.0.0.1#5335 ipset=/qualcomm.co.jp/gfwlist -server=/intel.in/127.0.0.1#5335 -ipset=/intel.in/gfwlist server=/ruten.com.tw/127.0.0.1#5335 ipset=/ruten.com.tw/gfwlist -server=/intel.sg/127.0.0.1#5335 -ipset=/intel.sg/gfwlist -server=/onlinemonsterbeatsonsale.com/127.0.0.1#5335 -ipset=/onlinemonsterbeatsonsale.com/gfwlist -server=/intel.ht/127.0.0.1#5335 -ipset=/intel.ht/gfwlist -server=/intel.hn/127.0.0.1#5335 -ipset=/intel.hn/gfwlist -server=/intel.hk/127.0.0.1#5335 -ipset=/intel.hk/gfwlist -server=/nutramigen.net/127.0.0.1#5335 -ipset=/nutramigen.net/gfwlist -server=/2ch.net/127.0.0.1#5335 -ipset=/2ch.net/gfwlist -server=/intel.gs/127.0.0.1#5335 -ipset=/intel.gs/gfwlist -server=/intel.gm/127.0.0.1#5335 -ipset=/intel.gm/gfwlist -server=/5ch.net/127.0.0.1#5335 -ipset=/5ch.net/gfwlist -server=/intel.gl/127.0.0.1#5335 -ipset=/intel.gl/gfwlist -server=/intel.ge/127.0.0.1#5335 -ipset=/intel.ge/gfwlist -server=/intel.gd/127.0.0.1#5335 -ipset=/intel.gd/gfwlist -server=/udacity.com/127.0.0.1#5335 -ipset=/udacity.com/gfwlist -server=/singtaonewscorp.com/127.0.0.1#5335 -ipset=/singtaonewscorp.com/gfwlist -server=/intel.es/127.0.0.1#5335 -ipset=/intel.es/gfwlist -server=/intel.ec/127.0.0.1#5335 -ipset=/intel.ec/gfwlist -server=/intel.de/127.0.0.1#5335 -ipset=/intel.de/gfwlist -server=/intel.cz/127.0.0.1#5335 -ipset=/intel.cz/gfwlist +server=/factograph.info/127.0.0.1#5335 +ipset=/factograph.info/gfwlist +server=/verisign.com.tw/127.0.0.1#5335 +ipset=/verisign.com.tw/gfwlist server=/yahoo.co.ve/127.0.0.1#5335 ipset=/yahoo.co.ve/gfwlist server=/wikia.nocookie.net/127.0.0.1#5335 ipset=/wikia.nocookie.net/gfwlist -server=/intel.com.uy/127.0.0.1#5335 -ipset=/intel.com.uy/gfwlist -server=/intel.com.tr/127.0.0.1#5335 -ipset=/intel.com.tr/gfwlist -server=/intel.com.pe/127.0.0.1#5335 -ipset=/intel.com.pe/gfwlist -server=/pillbeatsblackfridaysale.com/127.0.0.1#5335 -ipset=/pillbeatsblackfridaysale.com/gfwlist -server=/ibook.co.nz/127.0.0.1#5335 -ipset=/ibook.co.nz/gfwlist -server=/intel.com.jm/127.0.0.1#5335 -ipset=/intel.com.jm/gfwlist server=/bmw.nl/127.0.0.1#5335 ipset=/bmw.nl/gfwlist server=/bloombergarcade.com/127.0.0.1#5335 ipset=/bloombergarcade.com/gfwlist -server=/minihalifax.ca/127.0.0.1#5335 -ipset=/minihalifax.ca/gfwlist -server=/intel.com.ec/127.0.0.1#5335 -ipset=/intel.com.ec/gfwlist -server=/intel.com.co/127.0.0.1#5335 -ipset=/intel.com.co/gfwlist -server=/intel.com.bo/127.0.0.1#5335 -ipset=/intel.com.bo/gfwlist -server=/intel.com.au/127.0.0.1#5335 -ipset=/intel.com.au/gfwlist -server=/nikeshoes4u.com/127.0.0.1#5335 -ipset=/nikeshoes4u.com/gfwlist server=/google.cv/127.0.0.1#5335 ipset=/google.cv/gfwlist -server=/intel.com.ar/127.0.0.1#5335 -ipset=/intel.com.ar/gfwlist server=/minisoindia.com/127.0.0.1#5335 ipset=/minisoindia.com/gfwlist -server=/intel.co.uk/127.0.0.1#5335 -ipset=/intel.co.uk/gfwlist -server=/intel.co.il/127.0.0.1#5335 -ipset=/intel.co.il/gfwlist -server=/intel.co.id/127.0.0.1#5335 -ipset=/intel.co.id/gfwlist -server=/canon.ba/127.0.0.1#5335 -ipset=/canon.ba/gfwlist -server=/mega.co.nz/127.0.0.1#5335 -ipset=/mega.co.nz/gfwlist -server=/intel.cm/127.0.0.1#5335 -ipset=/intel.cm/gfwlist -server=/intel.cg/127.0.0.1#5335 -ipset=/intel.cg/gfwlist -server=/workspaceair.com/127.0.0.1#5335 -ipset=/workspaceair.com/gfwlist +server=/vaultify.com/127.0.0.1#5335 +ipset=/vaultify.com/gfwlist server=/appdynamics.fr/127.0.0.1#5335 ipset=/appdynamics.fr/gfwlist -server=/intel.cc/127.0.0.1#5335 -ipset=/intel.cc/gfwlist -server=/myoctocat.com/127.0.0.1#5335 -ipset=/myoctocat.com/gfwlist +server=/mastercard.ua/127.0.0.1#5335 +ipset=/mastercard.ua/gfwlist server=/uug27.com/127.0.0.1#5335 ipset=/uug27.com/gfwlist server=/crosswalk-project.com/127.0.0.1#5335 ipset=/crosswalk-project.com/gfwlist server=/bmwusaservice.com/127.0.0.1#5335 ipset=/bmwusaservice.com/gfwlist -server=/beatdrdres.com/127.0.0.1#5335 -ipset=/beatdrdres.com/gfwlist -server=/vmwareidentity.com/127.0.0.1#5335 -ipset=/vmwareidentity.com/gfwlist -server=/paypalhere.org/127.0.0.1#5335 -ipset=/paypalhere.org/gfwlist -server=/intel.az/127.0.0.1#5335 -ipset=/intel.az/gfwlist -server=/intel.at/127.0.0.1#5335 -ipset=/intel.at/gfwlist -server=/businessinsider.my/127.0.0.1#5335 -ipset=/businessinsider.my/gfwlist -server=/intel.ai/127.0.0.1#5335 -ipset=/intel.ai/gfwlist +server=/grannylovesbbc.com/127.0.0.1#5335 +ipset=/grannylovesbbc.com/gfwlist +server=/volvo.com/127.0.0.1#5335 +ipset=/volvo.com/gfwlist +server=/xfuckonline.com/127.0.0.1#5335 +ipset=/xfuckonline.com/gfwlist +server=/bmw.ee/127.0.0.1#5335 +ipset=/bmw.ee/gfwlist +server=/inhumanity.com/127.0.0.1#5335 +ipset=/inhumanity.com/gfwlist server=/click-url.com/127.0.0.1#5335 ipset=/click-url.com/gfwlist -server=/intel.ag/127.0.0.1#5335 -ipset=/intel.ag/gfwlist -server=/69vj.com/127.0.0.1#5335 -ipset=/69vj.com/gfwlist server=/bnef.com/127.0.0.1#5335 ipset=/bnef.com/gfwlist server=/pycon.org/127.0.0.1#5335 ipset=/pycon.org/gfwlist -server=/intel.ae/127.0.0.1#5335 -ipset=/intel.ae/gfwlist -server=/gettyimages.ca/127.0.0.1#5335 -ipset=/gettyimages.ca/gfwlist +server=/firstanalvideos.com/127.0.0.1#5335 +ipset=/firstanalvideos.com/gfwlist server=/beatsbydrecheaponlinesales.com/127.0.0.1#5335 ipset=/beatsbydrecheaponlinesales.com/gfwlist -server=/s81c.com/127.0.0.1#5335 -ipset=/s81c.com/gfwlist server=/pinterest.mx/127.0.0.1#5335 ipset=/pinterest.mx/gfwlist -server=/webofknowledge.com/127.0.0.1#5335 -ipset=/webofknowledge.com/gfwlist -server=/mastercardmoments.com/127.0.0.1#5335 -ipset=/mastercardmoments.com/gfwlist -server=/applemasters.info/127.0.0.1#5335 -ipset=/applemasters.info/gfwlist -server=/bestbuystores.com/127.0.0.1#5335 -ipset=/bestbuystores.com/gfwlist server=/justdoit.us/127.0.0.1#5335 ipset=/justdoit.us/gfwlist -server=/pearsoned.com/127.0.0.1#5335 -ipset=/pearsoned.com/gfwlist -server=/ibm.eu/127.0.0.1#5335 -ipset=/ibm.eu/gfwlist -server=/pugpig-dev.com/127.0.0.1#5335 -ipset=/pugpig-dev.com/gfwlist -server=/xoom-experience.com/127.0.0.1#5335 -ipset=/xoom-experience.com/gfwlist -server=/e-bay.com/127.0.0.1#5335 -ipset=/e-bay.com/gfwlist -server=/visa.co.cr/127.0.0.1#5335 -ipset=/visa.co.cr/gfwlist -server=/blpcareers.com/127.0.0.1#5335 -ipset=/blpcareers.com/gfwlist +server=/rentaride.de/127.0.0.1#5335 +ipset=/rentaride.de/gfwlist +server=/m-power.com/127.0.0.1#5335 +ipset=/m-power.com/gfwlist server=/dowjoneson.com/127.0.0.1#5335 ipset=/dowjoneson.com/gfwlist -server=/strepsils.hr/127.0.0.1#5335 -ipset=/strepsils.hr/gfwlist -server=/lolclub.org/127.0.0.1#5335 -ipset=/lolclub.org/gfwlist +server=/seehorsepenis.com/127.0.0.1#5335 +ipset=/seehorsepenis.com/gfwlist server=/foxtel.com/127.0.0.1#5335 ipset=/foxtel.com/gfwlist -server=/hpstore.corpmerchandise.com/127.0.0.1#5335 -ipset=/hpstore.corpmerchandise.com/gfwlist +server=/zapper.fi/127.0.0.1#5335 +ipset=/zapper.fi/gfwlist server=/pros.ee/127.0.0.1#5335 ipset=/pros.ee/gfwlist -server=/www8-hp.com/127.0.0.1#5335 -ipset=/www8-hp.com/gfwlist -server=/verisign.fr/127.0.0.1#5335 -ipset=/verisign.fr/gfwlist server=/strepsils.ch/127.0.0.1#5335 ipset=/strepsils.ch/gfwlist -server=/touchsmartpc.org/127.0.0.1#5335 -ipset=/touchsmartpc.org/gfwlist -server=/singtao.com/127.0.0.1#5335 -ipset=/singtao.com/gfwlist -server=/beats-headphones-buy-cheap.com/127.0.0.1#5335 -ipset=/beats-headphones-buy-cheap.com/gfwlist -server=/mystrikingly.com/127.0.0.1#5335 -ipset=/mystrikingly.com/gfwlist -server=/serviceshp.com/127.0.0.1#5335 -ipset=/serviceshp.com/gfwlist +server=/nudedxxx.com/127.0.0.1#5335 +ipset=/nudedxxx.com/gfwlist +server=/hotstarext.com/127.0.0.1#5335 +ipset=/hotstarext.com/gfwlist server=/realclearmarkets.com/127.0.0.1#5335 ipset=/realclearmarkets.com/gfwlist -server=/ebay.org/127.0.0.1#5335 -ipset=/ebay.org/gfwlist -server=/printspots.net/127.0.0.1#5335 -ipset=/printspots.net/gfwlist +server=/lnkd.in/127.0.0.1#5335 +ipset=/lnkd.in/gfwlist server=/paylike.com/127.0.0.1#5335 ipset=/paylike.com/gfwlist -server=/printspots.com/127.0.0.1#5335 -ipset=/printspots.com/gfwlist server=/custombeatsforcheap.com/127.0.0.1#5335 ipset=/custombeatsforcheap.com/gfwlist server=/epochmall.com/127.0.0.1#5335 ipset=/epochmall.com/gfwlist -server=/printersetupsupport.com/127.0.0.1#5335 -ipset=/printersetupsupport.com/gfwlist -server=/leavinghpinc.com/127.0.0.1#5335 -ipset=/leavinghpinc.com/gfwlist +server=/lolibus.top/127.0.0.1#5335 +ipset=/lolibus.top/gfwlist server=/videopress.com/127.0.0.1#5335 ipset=/videopress.com/gfwlist -server=/instantink.com/127.0.0.1#5335 -ipset=/instantink.com/gfwlist -server=/ieeesmc.org/127.0.0.1#5335 -ipset=/ieeesmc.org/gfwlist -server=/inkchoice.com/127.0.0.1#5335 -ipset=/inkchoice.com/gfwlist -server=/i-123-hp.com/127.0.0.1#5335 -ipset=/i-123-hp.com/gfwlist +server=/fanfox.net/127.0.0.1#5335 +ipset=/fanfox.net/gfwlist server=/bmwofannapolis.com/127.0.0.1#5335 ipset=/bmwofannapolis.com/gfwlist -server=/powerofresolve.ca/127.0.0.1#5335 -ipset=/powerofresolve.ca/gfwlist server=/powersunitedvr.com/127.0.0.1#5335 ipset=/powersunitedvr.com/gfwlist -server=/hpwallart.com/127.0.0.1#5335 -ipset=/hpwallart.com/gfwlist -server=/amazon-launchpad.com/127.0.0.1#5335 -ipset=/amazon-launchpad.com/gfwlist +server=/ieee-cas.org/127.0.0.1#5335 +ipset=/ieee-cas.org/gfwlist server=/startupschool.org/127.0.0.1#5335 ipset=/startupschool.org/gfwlist server=/paypal-retail.com/127.0.0.1#5335 ipset=/paypal-retail.com/gfwlist server=/needforspeedeliminator.com/127.0.0.1#5335 ipset=/needforspeedeliminator.com/gfwlist -server=/cheapbeatsbydreoutlets2013.com/127.0.0.1#5335 -ipset=/cheapbeatsbydreoutlets2013.com/gfwlist -server=/parstream.org/127.0.0.1#5335 -ipset=/parstream.org/gfwlist -server=/hpveer.com/127.0.0.1#5335 -ipset=/hpveer.com/gfwlist +server=/terk.nl/127.0.0.1#5335 +ipset=/terk.nl/gfwlist +server=/netflav1.com/127.0.0.1#5335 +ipset=/netflav1.com/gfwlist server=/panasonic.jp/127.0.0.1#5335 ipset=/panasonic.jp/gfwlist -server=/anigema.jp/127.0.0.1#5335 -ipset=/anigema.jp/gfwlist server=/yahoo.ge/127.0.0.1#5335 ipset=/yahoo.ge/gfwlist -server=/hptrainingcenter.com/127.0.0.1#5335 -ipset=/hptrainingcenter.com/gfwlist -server=/yahoo.dm/127.0.0.1#5335 -ipset=/yahoo.dm/gfwlist +server=/petardas.xxx/127.0.0.1#5335 +ipset=/petardas.xxx/gfwlist server=/telegram.space/127.0.0.1#5335 ipset=/telegram.space/gfwlist -server=/duckduckgo.co/127.0.0.1#5335 -ipset=/duckduckgo.co/gfwlist -server=/pearson.ch/127.0.0.1#5335 -ipset=/pearson.ch/gfwlist -server=/cbsi.video/127.0.0.1#5335 -ipset=/cbsi.video/gfwlist -server=/standardsuniversity.org/127.0.0.1#5335 -ipset=/standardsuniversity.org/gfwlist -server=/ebaysocial.com/127.0.0.1#5335 -ipset=/ebaysocial.com/gfwlist -server=/hpsprocket.com/127.0.0.1#5335 -ipset=/hpsprocket.com/gfwlist -server=/googlee.com/127.0.0.1#5335 -ipset=/googlee.com/gfwlist -server=/pearsonclinical.com.br/127.0.0.1#5335 -ipset=/pearsonclinical.com.br/gfwlist +server=/youtube.com.sv/127.0.0.1#5335 +ipset=/youtube.com.sv/gfwlist +server=/ahsexfilme.com/127.0.0.1#5335 +ipset=/ahsexfilme.com/gfwlist +server=/beatsbydresalesonline-australia.com/127.0.0.1#5335 +ipset=/beatsbydresalesonline-australia.com/gfwlist server=/beatsbydresingapores.com/127.0.0.1#5335 ipset=/beatsbydresingapores.com/gfwlist server=/epochtimes.eu/127.0.0.1#5335 @@ -14406,246 +10146,116 @@ server=/bmw-yachtsport.com/127.0.0.1#5335 ipset=/bmw-yachtsport.com/gfwlist server=/bmw.in/127.0.0.1#5335 ipset=/bmw.in/gfwlist -server=/applestore.co.jp/127.0.0.1#5335 -ipset=/applestore.co.jp/gfwlist -server=/hpsmartupdate.com/127.0.0.1#5335 -ipset=/hpsmartupdate.com/gfwlist -server=/hpsmartstage.com/127.0.0.1#5335 -ipset=/hpsmartstage.com/gfwlist -server=/hpsmarts.com/127.0.0.1#5335 -ipset=/hpsmarts.com/gfwlist -server=/foxfdm.com/127.0.0.1#5335 -ipset=/foxfdm.com/gfwlist -server=/hpshopping.hk/127.0.0.1#5335 -ipset=/hpshopping.hk/gfwlist -server=/bmw-special-sales.com/127.0.0.1#5335 -ipset=/bmw-special-sales.com/gfwlist -server=/hpshoping.com/127.0.0.1#5335 -ipset=/hpshoping.com/gfwlist +server=/microsoftlatamholiday.com/127.0.0.1#5335 +ipset=/microsoftlatamholiday.com/gfwlist server=/visa.ro/127.0.0.1#5335 ipset=/visa.ro/gfwlist -server=/hpshop.com/127.0.0.1#5335 -ipset=/hpshop.com/gfwlist -server=/verisign.jobs/127.0.0.1#5335 -ipset=/verisign.jobs/gfwlist -server=/myfoxlubbock.com/127.0.0.1#5335 -ipset=/myfoxlubbock.com/gfwlist -server=/xoom.io/127.0.0.1#5335 -ipset=/xoom.io/gfwlist -server=/apple.ch/127.0.0.1#5335 -ipset=/apple.ch/gfwlist -server=/hpserver.com/127.0.0.1#5335 -ipset=/hpserver.com/gfwlist -server=/hpsalescentral.com/127.0.0.1#5335 -ipset=/hpsalescentral.com/gfwlist -server=/pvp.tv/127.0.0.1#5335 -ipset=/pvp.tv/gfwlist -server=/hpprintersupplies.com/127.0.0.1#5335 -ipset=/hpprintersupplies.com/gfwlist +server=/adultgamesportal.com/127.0.0.1#5335 +ipset=/adultgamesportal.com/gfwlist +server=/tubeshemales.com/127.0.0.1#5335 +ipset=/tubeshemales.com/gfwlist +server=/apple.hr/127.0.0.1#5335 +ipset=/apple.hr/gfwlist server=/google.mu/127.0.0.1#5335 ipset=/google.mu/gfwlist -server=/youtube.iq/127.0.0.1#5335 -ipset=/youtube.iq/gfwlist +server=/hdabla.net/127.0.0.1#5335 +ipset=/hdabla.net/gfwlist server=/playhearthstone.com/127.0.0.1#5335 ipset=/playhearthstone.com/gfwlist -server=/nikefootballcleats.com/127.0.0.1#5335 -ipset=/nikefootballcleats.com/gfwlist -server=/disneychannelroadtrip.com/127.0.0.1#5335 -ipset=/disneychannelroadtrip.com/gfwlist -server=/hpprinterdrivers.com/127.0.0.1#5335 -ipset=/hpprinterdrivers.com/gfwlist +server=/howtohackfacebook-account.com/127.0.0.1#5335 +ipset=/howtohackfacebook-account.com/gfwlist server=/bmw.com.mt/127.0.0.1#5335 ipset=/bmw.com.mt/gfwlist -server=/hpphotoscanners.com/127.0.0.1#5335 -ipset=/hpphotoscanners.com/gfwlist +server=/hamsterfucktube.com/127.0.0.1#5335 +ipset=/hamsterfucktube.com/gfwlist server=/beatscustomblackfriday.com/127.0.0.1#5335 ipset=/beatscustomblackfriday.com/gfwlist -server=/hppavillionlaptop.com/127.0.0.1#5335 -ipset=/hppavillionlaptop.com/gfwlist -server=/appleonline.com/127.0.0.1#5335 -ipset=/appleonline.com/gfwlist -server=/rentaride.com/127.0.0.1#5335 -ipset=/rentaride.com/gfwlist -server=/ipod.co.nz/127.0.0.1#5335 -ipset=/ipod.co.nz/gfwlist -server=/ccna5.net/127.0.0.1#5335 -ipset=/ccna5.net/gfwlist -server=/hpmicrcartridge.com/127.0.0.1#5335 -ipset=/hpmicrcartridge.com/gfwlist -server=/hpmemorychips.com/127.0.0.1#5335 -ipset=/hpmemorychips.com/gfwlist -server=/hplipopensource.com/127.0.0.1#5335 -ipset=/hplipopensource.com/gfwlist -server=/pinterest.ie/127.0.0.1#5335 -ipset=/pinterest.ie/gfwlist -server=/beatsbydresolohdonline-canada.com/127.0.0.1#5335 -ipset=/beatsbydresolohdonline-canada.com/gfwlist -server=/instagramphoto.com/127.0.0.1#5335 -ipset=/instagramphoto.com/gfwlist -server=/sohcradio.com/127.0.0.1#5335 -ipset=/sohcradio.com/gfwlist +server=/17mimei.com/127.0.0.1#5335 +ipset=/17mimei.com/gfwlist +server=/aoc.cat/127.0.0.1#5335 +ipset=/aoc.cat/gfwlist +server=/777tv.net/127.0.0.1#5335 +ipset=/777tv.net/gfwlist server=/beatsbydre-studio.com/127.0.0.1#5335 ipset=/beatsbydre-studio.com/gfwlist -server=/zsh.org/127.0.0.1#5335 -ipset=/zsh.org/gfwlist -server=/hpkeyboard.com/127.0.0.1#5335 -ipset=/hpkeyboard.com/gfwlist +server=/bitly.com/127.0.0.1#5335 +ipset=/bitly.com/gfwlist server=/bnetshopus.akamaized.net/127.0.0.1#5335 ipset=/bnetshopus.akamaized.net/gfwlist server=/foxrichmond.com/127.0.0.1#5335 ipset=/foxrichmond.com/gfwlist -server=/hpinstantink.ca/127.0.0.1#5335 -ipset=/hpinstantink.ca/gfwlist -server=/hpinkjet.com/127.0.0.1#5335 -ipset=/hpinkjet.com/gfwlist -server=/ebay.ph/127.0.0.1#5335 -ipset=/ebay.ph/gfwlist -server=/hpinc.net/127.0.0.1#5335 -ipset=/hpinc.net/gfwlist -server=/hpinc.info/127.0.0.1#5335 -ipset=/hpinc.info/gfwlist -server=/hpiie.org/127.0.0.1#5335 -ipset=/hpiie.org/gfwlist -server=/javdove8.xyz/127.0.0.1#5335 -ipset=/javdove8.xyz/gfwlist -server=/hpgpas.com/127.0.0.1#5335 -ipset=/hpgpas.com/gfwlist -server=/imoviegallery.com/127.0.0.1#5335 -ipset=/imoviegallery.com/gfwlist +server=/collectionofbestporn.com/127.0.0.1#5335 +ipset=/collectionofbestporn.com/gfwlist server=/yahoo.vg/127.0.0.1#5335 ipset=/yahoo.vg/gfwlist -server=/hpeprint.com/127.0.0.1#5335 -ipset=/hpeprint.com/gfwlist -server=/hpengage.com/127.0.0.1#5335 -ipset=/hpengage.com/gfwlist +server=/avstar09.me/127.0.0.1#5335 +ipset=/avstar09.me/gfwlist server=/miitomo.com/127.0.0.1#5335 ipset=/miitomo.com/gfwlist server=/aibaobei.me/127.0.0.1#5335 ipset=/aibaobei.me/gfwlist -server=/hpdrivers.org/127.0.0.1#5335 -ipset=/hpdrivers.org/gfwlist -server=/paypalprepagata.com/127.0.0.1#5335 -ipset=/paypalprepagata.com/gfwlist -server=/hpdreamcolor.com/127.0.0.1#5335 -ipset=/hpdreamcolor.com/gfwlist -server=/hpdesignjetl25500.com/127.0.0.1#5335 -ipset=/hpdesignjetl25500.com/gfwlist -server=/graphengine.io/127.0.0.1#5335 -ipset=/graphengine.io/gfwlist -server=/alivevue.com/127.0.0.1#5335 -ipset=/alivevue.com/gfwlist -server=/hpdaas.com/127.0.0.1#5335 -ipset=/hpdaas.com/gfwlist +server=/hentaiero.net/127.0.0.1#5335 +ipset=/hentaiero.net/gfwlist +server=/carebay.com/127.0.0.1#5335 +ipset=/carebay.com/gfwlist server=/speedtest.com.hk/127.0.0.1#5335 ipset=/speedtest.com.hk/gfwlist -server=/needforspeedshowdown.com/127.0.0.1#5335 -ipset=/needforspeedshowdown.com/gfwlist -server=/miniargentina.com/127.0.0.1#5335 -ipset=/miniargentina.com/gfwlist -server=/heptio.com/127.0.0.1#5335 -ipset=/heptio.com/gfwlist -server=/hpcustomersupport.com/127.0.0.1#5335 -ipset=/hpcustomersupport.com/gfwlist server=/loanbuilder.com/127.0.0.1#5335 ipset=/loanbuilder.com/gfwlist server=/bmw-motorrad.com.mx/127.0.0.1#5335 ipset=/bmw-motorrad.com.mx/gfwlist -server=/attinternetservice.com/127.0.0.1#5335 -ipset=/attinternetservice.com/gfwlist -server=/hpcu.org/127.0.0.1#5335 -ipset=/hpcu.org/gfwlist -server=/mobileinternational.com/127.0.0.1#5335 -ipset=/mobileinternational.com/gfwlist -server=/mini-connected.fr/127.0.0.1#5335 -ipset=/mini-connected.fr/gfwlist -server=/volvoce.com/127.0.0.1#5335 -ipset=/volvoce.com/gfwlist -server=/staticflickr.com/127.0.0.1#5335 -ipset=/staticflickr.com/gfwlist -server=/hpconnectedstage.com/127.0.0.1#5335 -ipset=/hpconnectedstage.com/gfwlist -server=/api-priconne-redive.cygames.jp/127.0.0.1#5335 -ipset=/api-priconne-redive.cygames.jp/gfwlist -server=/linuxfoundation.org/127.0.0.1#5335 -ipset=/linuxfoundation.org/gfwlist +server=/javjack.com/127.0.0.1#5335 +ipset=/javjack.com/gfwlist +server=/linkshit.com/127.0.0.1#5335 +ipset=/linkshit.com/gfwlist +server=/do.co/127.0.0.1#5335 +ipset=/do.co/gfwlist +server=/ethereum.org/127.0.0.1#5335 +ipset=/ethereum.org/gfwlist +server=/whatsappbrand.com/127.0.0.1#5335 +ipset=/whatsappbrand.com/gfwlist server=/nativeincolour.com.au/127.0.0.1#5335 ipset=/nativeincolour.com.au/gfwlist -server=/alphabet.no/127.0.0.1#5335 -ipset=/alphabet.no/gfwlist server=/nbcuniversal.com/127.0.0.1#5335 ipset=/nbcuniversal.com/gfwlist -server=/hpconnected.org/127.0.0.1#5335 -ipset=/hpconnected.org/gfwlist server=/pinterest.jp/127.0.0.1#5335 ipset=/pinterest.jp/gfwlist server=/ebayanunsios.net/127.0.0.1#5335 ipset=/ebayanunsios.net/gfwlist -server=/hpcomputerservices.com/127.0.0.1#5335 -ipset=/hpcomputerservices.com/gfwlist -server=/hpcomputers.com/127.0.0.1#5335 -ipset=/hpcomputers.com/gfwlist -server=/fecbooc.com/127.0.0.1#5335 -ipset=/fecbooc.com/gfwlist -server=/bmw.com.br/127.0.0.1#5335 -ipset=/bmw.com.br/gfwlist -server=/hpcmw.net/127.0.0.1#5335 -ipset=/hpcmw.net/gfwlist -server=/wifi-mx.com/127.0.0.1#5335 -ipset=/wifi-mx.com/gfwlist -server=/rpmfusion.org/127.0.0.1#5335 -ipset=/rpmfusion.org/gfwlist +server=/trustcor.com/127.0.0.1#5335 +ipset=/trustcor.com/gfwlist +server=/dinotube.com/127.0.0.1#5335 +ipset=/dinotube.com/gfwlist +server=/freefacebookads.net/127.0.0.1#5335 +ipset=/freefacebookads.net/gfwlist server=/icloud.se/127.0.0.1#5335 ipset=/icloud.se/gfwlist -server=/eastweek.com.hk/127.0.0.1#5335 -ipset=/eastweek.com.hk/gfwlist -server=/hpccp.com/127.0.0.1#5335 -ipset=/hpccp.com/gfwlist -server=/hpbluecarpet.net/127.0.0.1#5335 -ipset=/hpbluecarpet.net/gfwlist +server=/surface.com/127.0.0.1#5335 +ipset=/surface.com/gfwlist server=/applepaycash.net/127.0.0.1#5335 ipset=/applepaycash.net/gfwlist -server=/hpbluecarpet.com/127.0.0.1#5335 -ipset=/hpbluecarpet.com/gfwlist -server=/cybermondaybeats4sale.com/127.0.0.1#5335 -ipset=/cybermondaybeats4sale.com/gfwlist -server=/hpbestbuy.com/127.0.0.1#5335 -ipset=/hpbestbuy.com/gfwlist +server=/freebs.com/127.0.0.1#5335 +ipset=/freebs.com/gfwlist server=/line-scdn.net/127.0.0.1#5335 ipset=/line-scdn.net/gfwlist server=/bitbank.cc/127.0.0.1#5335 ipset=/bitbank.cc/gfwlist -server=/iphoto.no/127.0.0.1#5335 -ipset=/iphoto.no/gfwlist -server=/hp3dmetals.com/127.0.0.1#5335 -ipset=/hp3dmetals.com/gfwlist -server=/hp.io/127.0.0.1#5335 -ipset=/hp.io/gfwlist -server=/nikegolf.ca/127.0.0.1#5335 -ipset=/nikegolf.ca/gfwlist -server=/hp.company/127.0.0.1#5335 -ipset=/hp.company/gfwlist -server=/applepay.rs/127.0.0.1#5335 -ipset=/applepay.rs/gfwlist -server=/hp-ww.com/127.0.0.1#5335 -ipset=/hp-ww.com/gfwlist -server=/hp-mns.com/127.0.0.1#5335 -ipset=/hp-mns.com/gfwlist -server=/hp-invent.info/127.0.0.1#5335 -ipset=/hp-invent.info/gfwlist -server=/verizon.net/127.0.0.1#5335 -ipset=/verizon.net/gfwlist -server=/hp-infolab.com/127.0.0.1#5335 -ipset=/hp-infolab.com/gfwlist +server=/gaybf.com/127.0.0.1#5335 +ipset=/gaybf.com/gfwlist +server=/rabbitscams.com/127.0.0.1#5335 +ipset=/rabbitscams.com/gfwlist +server=/telegram-porn.com/127.0.0.1#5335 +ipset=/telegram-porn.com/gfwlist +server=/hentai69.life/127.0.0.1#5335 +ipset=/hentai69.life/gfwlist server=/nextmag.com.tw/127.0.0.1#5335 ipset=/nextmag.com.tw/gfwlist -server=/hp-imagine.com/127.0.0.1#5335 -ipset=/hp-imagine.com/gfwlist +server=/xxxnxx.me/127.0.0.1#5335 +ipset=/xxxnxx.me/gfwlist server=/splatoon2tournament.com/127.0.0.1#5335 ipset=/splatoon2tournament.com/gfwlist server=/tvbanywhere.com.sg/127.0.0.1#5335 ipset=/tvbanywhere.com.sg/gfwlist -server=/gnu.org/127.0.0.1#5335 -ipset=/gnu.org/gfwlist server=/paypa1.org/127.0.0.1#5335 ipset=/paypa1.org/gfwlist server=/alterauserforum.com/127.0.0.1#5335 @@ -14656,126 +10266,44 @@ server=/livingyourambition.com/127.0.0.1#5335 ipset=/livingyourambition.com/gfwlist server=/zoho.eu/127.0.0.1#5335 ipset=/zoho.eu/gfwlist -server=/demoprint.com/127.0.0.1#5335 -ipset=/demoprint.com/gfwlist -server=/google.com.vn/127.0.0.1#5335 -ipset=/google.com.vn/gfwlist -server=/david-laserscanner.com/127.0.0.1#5335 -ipset=/david-laserscanner.com/gfwlist -server=/compaq.org/127.0.0.1#5335 -ipset=/compaq.org/gfwlist -server=/oneworldmanystories.com/127.0.0.1#5335 -ipset=/oneworldmanystories.com/gfwlist -server=/thesun.co.uk/127.0.0.1#5335 -ipset=/thesun.co.uk/gfwlist -server=/campushp.com/127.0.0.1#5335 -ipset=/campushp.com/gfwlist -server=/as-hp.ca/127.0.0.1#5335 -ipset=/as-hp.ca/gfwlist -server=/8008206616.com/127.0.0.1#5335 -ipset=/8008206616.com/gfwlist -server=/123hplaserjet.com/127.0.0.1#5335 -ipset=/123hplaserjet.com/gfwlist -server=/123-hp.com/127.0.0.1#5335 -ipset=/123-hp.com/gfwlist +server=/drmgmggyi-mm.blogspot.com/127.0.0.1#5335 +ipset=/drmgmggyi-mm.blogspot.com/gfwlist server=/mysimsracing.com/127.0.0.1#5335 ipset=/mysimsracing.com/gfwlist -server=/jos.com/127.0.0.1#5335 -ipset=/jos.com/gfwlist -server=/hkbnes.net/127.0.0.1#5335 -ipset=/hkbnes.net/gfwlist -server=/hkbn.com.hk/127.0.0.1#5335 -ipset=/hkbn.com.hk/gfwlist -server=/csifund.org/127.0.0.1#5335 -ipset=/csifund.org/gfwlist -server=/youporn.com/127.0.0.1#5335 -ipset=/youporn.com/gfwlist -server=/disney.fr/127.0.0.1#5335 -ipset=/disney.fr/gfwlist -server=/appleid.com/127.0.0.1#5335 -ipset=/appleid.com/gfwlist +server=/gr-assets.com/127.0.0.1#5335 +ipset=/gr-assets.com/gfwlist +server=/ehtracker.org/127.0.0.1#5335 +ipset=/ehtracker.org/gfwlist +server=/hpdreamcolor.com/127.0.0.1#5335 +ipset=/hpdreamcolor.com/gfwlist server=/googlecode.com/127.0.0.1#5335 ipset=/googlecode.com/gfwlist -server=/dicela.com/127.0.0.1#5335 -ipset=/dicela.com/gfwlist server=/huffingtonpost.de/127.0.0.1#5335 ipset=/huffingtonpost.de/gfwlist server=/travelex.com.om/127.0.0.1#5335 ipset=/travelex.com.om/gfwlist -server=/fcacebook.com/127.0.0.1#5335 -ipset=/fcacebook.com/gfwlist server=/disney.pl/127.0.0.1#5335 ipset=/disney.pl/gfwlist server=/xda-developers.com/127.0.0.1#5335 ipset=/xda-developers.com/gfwlist -server=/xn--gogl-0nd52e.com/127.0.0.1#5335 -ipset=/xn--gogl-0nd52e.com/gfwlist -server=/xn--ggle-55da.com/127.0.0.1#5335 -ipset=/xn--ggle-55da.com/gfwlist -server=/xn--flw351e.com/127.0.0.1#5335 -ipset=/xn--flw351e.com/gfwlist -server=/scholar.google.co.il/127.0.0.1#5335 -ipset=/scholar.google.co.il/gfwlist -server=/xn--9trs65b.com/127.0.0.1#5335 -ipset=/xn--9trs65b.com/gfwlist -server=/gfotolia.com/127.0.0.1#5335 -ipset=/gfotolia.com/gfwlist -server=/ieeer10.org/127.0.0.1#5335 -ipset=/ieeer10.org/gfwlist -server=/atlassian.com/127.0.0.1#5335 -ipset=/atlassian.com/gfwlist -server=/filipino-music.net/127.0.0.1#5335 -ipset=/filipino-music.net/gfwlist -server=/withgoogle.com/127.0.0.1#5335 -ipset=/withgoogle.com/gfwlist -server=/bmw.com.do/127.0.0.1#5335 -ipset=/bmw.com.do/gfwlist -server=/jsbridgestone.com/127.0.0.1#5335 -ipset=/jsbridgestone.com/gfwlist -server=/miniso.ie/127.0.0.1#5335 -ipset=/miniso.ie/gfwlist -server=/alphabet.co.hu/127.0.0.1#5335 -ipset=/alphabet.co.hu/gfwlist -server=/webappfieldguide.com/127.0.0.1#5335 -ipset=/webappfieldguide.com/gfwlist -server=/waze.com/127.0.0.1#5335 -ipset=/waze.com/gfwlist -server=/waymo.com/127.0.0.1#5335 -ipset=/waymo.com/gfwlist -server=/ministeagathe.com/127.0.0.1#5335 -ipset=/ministeagathe.com/gfwlist -server=/verilystudywatch.org/127.0.0.1#5335 -ipset=/verilystudywatch.org/gfwlist +server=/nan-net.com/127.0.0.1#5335 +ipset=/nan-net.com/gfwlist +server=/hentaiz.co/127.0.0.1#5335 +ipset=/hentaiz.co/gfwlist +server=/termux.dev/127.0.0.1#5335 +ipset=/termux.dev/gfwlist +server=/pingxiangpuer.com/127.0.0.1#5335 +ipset=/pingxiangpuer.com/gfwlist +server=/amazonpay.in/127.0.0.1#5335 +ipset=/amazonpay.in/gfwlist +server=/truebeachporn.com/127.0.0.1#5335 +ipset=/truebeachporn.com/gfwlist server=/ebayit.com/127.0.0.1#5335 ipset=/ebayit.com/gfwlist server=/volvotrucks.am/127.0.0.1#5335 ipset=/volvotrucks.am/gfwlist -server=/verilystudyhub.com/127.0.0.1#5335 -ipset=/verilystudyhub.com/gfwlist -server=/appsonebay.net/127.0.0.1#5335 -ipset=/appsonebay.net/gfwlist -server=/volvobuses.ph/127.0.0.1#5335 -ipset=/volvobuses.ph/gfwlist -server=/google.lu/127.0.0.1#5335 -ipset=/google.lu/gfwlist -server=/starbucks.ph/127.0.0.1#5335 -ipset=/starbucks.ph/gfwlist -server=/unfiltered.news/127.0.0.1#5335 -ipset=/unfiltered.news/gfwlist -server=/thinkquarterly.com/127.0.0.1#5335 -ipset=/thinkquarterly.com/gfwlist -server=/iosinthecar.com/127.0.0.1#5335 -ipset=/iosinthecar.com/gfwlist -server=/tensorflow.org/127.0.0.1#5335 -ipset=/tensorflow.org/gfwlist -server=/nintendonyc.com/127.0.0.1#5335 -ipset=/nintendonyc.com/gfwlist -server=/synergyse.com/127.0.0.1#5335 -ipset=/synergyse.com/gfwlist -server=/animezilla.com/127.0.0.1#5335 -ipset=/animezilla.com/gfwlist -server=/stxmosquitoproject.com/127.0.0.1#5335 -ipset=/stxmosquitoproject.com/gfwlist +server=/youjizz.sex/127.0.0.1#5335 +ipset=/youjizz.sex/gfwlist server=/tribler.org/127.0.0.1#5335 ipset=/tribler.org/gfwlist server=/bmw-grouparchives.com/127.0.0.1#5335 @@ -14788,280 +10316,142 @@ server=/ninemediaroom.com.au/127.0.0.1#5335 ipset=/ninemediaroom.com.au/gfwlist server=/dilcdn.com/127.0.0.1#5335 ipset=/dilcdn.com/gfwlist -server=/gfx.ms/127.0.0.1#5335 -ipset=/gfx.ms/gfwlist -server=/brazzers.com/127.0.0.1#5335 -ipset=/brazzers.com/gfwlist -server=/stcroixmosquitoproject.com/127.0.0.1#5335 -ipset=/stcroixmosquitoproject.com/gfwlist server=/bbgwatch.com/127.0.0.1#5335 ipset=/bbgwatch.com/gfwlist -server=/stcroixmosquito.com/127.0.0.1#5335 -ipset=/stcroixmosquito.com/gfwlist -server=/adobestock.com/127.0.0.1#5335 -ipset=/adobestock.com/gfwlist +server=/billpoint.info/127.0.0.1#5335 +ipset=/billpoint.info/gfwlist server=/blogspot.co.nz/127.0.0.1#5335 ipset=/blogspot.co.nz/gfwlist server=/enfamil.es/127.0.0.1#5335 ipset=/enfamil.es/gfwlist server=/aorus.com/127.0.0.1#5335 ipset=/aorus.com/gfwlist -server=/illianacomputerrecycling.com/127.0.0.1#5335 -ipset=/illianacomputerrecycling.com/gfwlist +server=/ohentai.org/127.0.0.1#5335 +ipset=/ohentai.org/gfwlist server=/ebay-25-assets.s3-us-west-1.amazonaws.com/127.0.0.1#5335 ipset=/ebay-25-assets.s3-us-west-1.amazonaws.com/gfwlist -server=/apole.com/127.0.0.1#5335 -ipset=/apole.com/gfwlist -server=/solveforx.com/127.0.0.1#5335 -ipset=/solveforx.com/gfwlist -server=/screenwisetrendspanel.com/127.0.0.1#5335 -ipset=/screenwisetrendspanel.com/gfwlist -server=/screenwisetrends.com/127.0.0.1#5335 -ipset=/screenwisetrends.com/gfwlist server=/mastercard.es/127.0.0.1#5335 ipset=/mastercard.es/gfwlist -server=/easports.jp/127.0.0.1#5335 -ipset=/easports.jp/gfwlist -server=/jwpltx.com/127.0.0.1#5335 -ipset=/jwpltx.com/gfwlist -server=/finishinfo.com/127.0.0.1#5335 -ipset=/finishinfo.com/gfwlist server=/login-paypal.info/127.0.0.1#5335 ipset=/login-paypal.info/gfwlist -server=/sfx.ms/127.0.0.1#5335 -ipset=/sfx.ms/gfwlist -server=/run.app/127.0.0.1#5335 -ipset=/run.app/gfwlist +server=/nudistic.com/127.0.0.1#5335 +ipset=/nudistic.com/gfwlist server=/huffingtonpost.com/127.0.0.1#5335 ipset=/huffingtonpost.com/gfwlist server=/fontshop.com/127.0.0.1#5335 ipset=/fontshop.com/gfwlist server=/cnivogue.com.au/127.0.0.1#5335 ipset=/cnivogue.com.au/gfwlist -server=/ridepenguin.com/127.0.0.1#5335 -ipset=/ridepenguin.com/gfwlist -server=/m12.vc/127.0.0.1#5335 -ipset=/m12.vc/gfwlist -server=/esbeatsbydrebuy.com/127.0.0.1#5335 -ipset=/esbeatsbydrebuy.com/gfwlist -server=/quiksee.com/127.0.0.1#5335 -ipset=/quiksee.com/gfwlist -server=/happymeal.co.nz/127.0.0.1#5335 -ipset=/happymeal.co.nz/gfwlist -server=/questvisual.com/127.0.0.1#5335 -ipset=/questvisual.com/gfwlist -server=/paypalindia.com/127.0.0.1#5335 -ipset=/paypalindia.com/gfwlist -server=/foxrobots.com/127.0.0.1#5335 -ipset=/foxrobots.com/gfwlist -server=/dtci.co/127.0.0.1#5335 -ipset=/dtci.co/gfwlist -server=/projectara.com/127.0.0.1#5335 -ipset=/projectara.com/gfwlist +server=/turbogvideos.com/127.0.0.1#5335 +ipset=/turbogvideos.com/gfwlist +server=/elgaronline.com/127.0.0.1#5335 +ipset=/elgaronline.com/gfwlist +server=/ikea.com.sg/127.0.0.1#5335 +ipset=/ikea.com.sg/gfwlist +server=/erovizor.ru/127.0.0.1#5335 +ipset=/erovizor.ru/gfwlist +server=/141hongkong.com/127.0.0.1#5335 +ipset=/141hongkong.com/gfwlist server=/adobess.com/127.0.0.1#5335 ipset=/adobess.com/gfwlist -server=/bmwmagazine.de/127.0.0.1#5335 -ipset=/bmwmagazine.de/gfwlist -server=/privacysandbox.com/127.0.0.1#5335 -ipset=/privacysandbox.com/gfwlist -server=/news.net.au/127.0.0.1#5335 -ipset=/news.net.au/gfwlist -server=/pixate.com/127.0.0.1#5335 -ipset=/pixate.com/gfwlist -server=/kindleoasis.us/127.0.0.1#5335 -ipset=/kindleoasis.us/gfwlist +server=/mcdelivery.co.kr/127.0.0.1#5335 +ipset=/mcdelivery.co.kr/gfwlist +server=/leakedmeat.com/127.0.0.1#5335 +ipset=/leakedmeat.com/gfwlist +server=/facvebook.com/127.0.0.1#5335 +ipset=/facvebook.com/gfwlist server=/bmw-authority-vehicles.com/127.0.0.1#5335 ipset=/bmw-authority-vehicles.com/gfwlist -server=/picasaweb.com/127.0.0.1#5335 -ipset=/picasaweb.com/gfwlist server=/amerikaninsesi.org/127.0.0.1#5335 ipset=/amerikaninsesi.org/gfwlist server=/connectionslearning.com/127.0.0.1#5335 ipset=/connectionslearning.com/gfwlist -server=/ebay-us.com/127.0.0.1#5335 -ipset=/ebay-us.com/gfwlist -server=/panoramio.com/127.0.0.1#5335 -ipset=/panoramio.com/gfwlist -server=/pageview.mobi/127.0.0.1#5335 -ipset=/pageview.mobi/gfwlist -server=/brand-protection-team.com/127.0.0.1#5335 -ipset=/brand-protection-team.com/gfwlist -server=/pagespeedmobilizer.com/127.0.0.1#5335 -ipset=/pagespeedmobilizer.com/gfwlist -server=/vfsco.ca/127.0.0.1#5335 -ipset=/vfsco.ca/gfwlist -server=/geek-squad.org/127.0.0.1#5335 -ipset=/geek-squad.org/gfwlist -server=/colorprotechnology.com/127.0.0.1#5335 -ipset=/colorprotechnology.com/gfwlist -server=/beatsdrdreneon.com/127.0.0.1#5335 -ipset=/beatsdrdreneon.com/gfwlist +server=/satan18av.com/127.0.0.1#5335 +ipset=/satan18av.com/gfwlist +server=/rssing.com/127.0.0.1#5335 +ipset=/rssing.com/gfwlist +server=/ikea.pl/127.0.0.1#5335 +ipset=/ikea.pl/gfwlist server=/mini-tahiti.com/127.0.0.1#5335 ipset=/mini-tahiti.com/gfwlist -server=/youav.com/127.0.0.1#5335 -ipset=/youav.com/gfwlist -server=/blackfridaydrebeatsnew.com/127.0.0.1#5335 -ipset=/blackfridaydrebeatsnew.com/gfwlist -server=/monsterheadphone.net/127.0.0.1#5335 -ipset=/monsterheadphone.net/gfwlist -server=/thegeorgiascene.com/127.0.0.1#5335 -ipset=/thegeorgiascene.com/gfwlist +server=/gputechconf.com/127.0.0.1#5335 +ipset=/gputechconf.com/gfwlist server=/shopbmwusa.com/127.0.0.1#5335 ipset=/shopbmwusa.com/gfwlist -server=/on2.com/127.0.0.1#5335 -ipset=/on2.com/gfwlist +server=/wawatv.net/127.0.0.1#5335 +ipset=/wawatv.net/gfwlist server=/towerauction.com/127.0.0.1#5335 ipset=/towerauction.com/gfwlist -server=/on.here/127.0.0.1#5335 -ipset=/on.here/gfwlist -server=/drdrebeatsretail2013.com/127.0.0.1#5335 -ipset=/drdrebeatsretail2013.com/gfwlist +server=/hdouban2.com/127.0.0.1#5335 +ipset=/hdouban2.com/gfwlist server=/fury.help/127.0.0.1#5335 ipset=/fury.help/gfwlist server=/azureiotcentral.com/127.0.0.1#5335 ipset=/azureiotcentral.com/gfwlist -server=/near.by/127.0.0.1#5335 -ipset=/near.by/gfwlist -server=/mobileview.page/127.0.0.1#5335 -ipset=/mobileview.page/gfwlist -server=/itunes.co/127.0.0.1#5335 -ipset=/itunes.co/gfwlist -server=/meet.new/127.0.0.1#5335 -ipset=/meet.new/gfwlist -server=/gettyimages.com.au/127.0.0.1#5335 -ipset=/gettyimages.com.au/gfwlist -server=/m-power.com/127.0.0.1#5335 -ipset=/m-power.com/gfwlist -server=/material.io/127.0.0.1#5335 -ipset=/material.io/gfwlist +server=/spektral.cc/127.0.0.1#5335 +ipset=/spektral.cc/gfwlist server=/workplace.com/127.0.0.1#5335 ipset=/workplace.com/gfwlist -server=/nikefree.com/127.0.0.1#5335 -ipset=/nikefree.com/gfwlist server=/canon.com.by/127.0.0.1#5335 ipset=/canon.com.by/gfwlist -server=/madewithcode.com/127.0.0.1#5335 -ipset=/madewithcode.com/gfwlist -server=/like.com/127.0.0.1#5335 -ipset=/like.com/gfwlist -server=/lanternal.com/127.0.0.1#5335 -ipset=/lanternal.com/gfwlist -server=/veet.dk/127.0.0.1#5335 -ipset=/veet.dk/gfwlist -server=/jibemobile.com/127.0.0.1#5335 -ipset=/jibemobile.com/gfwlist -server=/bmw-motorrad.cz/127.0.0.1#5335 -ipset=/bmw-motorrad.cz/gfwlist -server=/setapp.com/127.0.0.1#5335 -ipset=/setapp.com/gfwlist -server=/renovacionoffice.com/127.0.0.1#5335 -ipset=/renovacionoffice.com/gfwlist +server=/manhunt.net/127.0.0.1#5335 +ipset=/manhunt.net/gfwlist +server=/google.ps/127.0.0.1#5335 +ipset=/google.ps/gfwlist +server=/bootyliciousmag.com/127.0.0.1#5335 +ipset=/bootyliciousmag.com/gfwlist +server=/xxxtubeasian.net/127.0.0.1#5335 +ipset=/xxxtubeasian.net/gfwlist server=/enfagrow.com.ph/127.0.0.1#5335 ipset=/enfagrow.com.ph/gfwlist server=/akamai-platform.net/127.0.0.1#5335 ipset=/akamai-platform.net/gfwlist -server=/cloudcone.com/127.0.0.1#5335 -ipset=/cloudcone.com/gfwlist -server=/youtube.at/127.0.0.1#5335 -ipset=/youtube.at/gfwlist -server=/gvt9.com/127.0.0.1#5335 -ipset=/gvt9.com/gfwlist -server=/gannett.com/127.0.0.1#5335 -ipset=/gannett.com/gfwlist -server=/gvt6.com/127.0.0.1#5335 -ipset=/gvt6.com/gfwlist -server=/beatsbydreus.com/127.0.0.1#5335 -ipset=/beatsbydreus.com/gfwlist -server=/binoculus.com/127.0.0.1#5335 -ipset=/binoculus.com/gfwlist -server=/pricelessaruba.com/127.0.0.1#5335 -ipset=/pricelessaruba.com/gfwlist -server=/momo5188.com/127.0.0.1#5335 -ipset=/momo5188.com/gfwlist -server=/scholar.google.co.id/127.0.0.1#5335 -ipset=/scholar.google.co.id/gfwlist -server=/gvt1.com/127.0.0.1#5335 -ipset=/gvt1.com/gfwlist -server=/gvt0.com/127.0.0.1#5335 -ipset=/gvt0.com/gfwlist -server=/veetcentroamerica.com/127.0.0.1#5335 -ipset=/veetcentroamerica.com/gfwlist -server=/bwh88.net/127.0.0.1#5335 -ipset=/bwh88.net/gfwlist -server=/gsuite.com/127.0.0.1#5335 -ipset=/gsuite.com/gfwlist -server=/gstatic.com/127.0.0.1#5335 -ipset=/gstatic.com/gfwlist -server=/ggsrv.com/127.0.0.1#5335 -ipset=/ggsrv.com/gfwlist +server=/youtube.com.bo/127.0.0.1#5335 +ipset=/youtube.com.bo/gfwlist +server=/vpro.com/127.0.0.1#5335 +ipset=/vpro.com/gfwlist +server=/intel.ae/127.0.0.1#5335 +ipset=/intel.ae/gfwlist +server=/itsfuck.com/127.0.0.1#5335 +ipset=/itsfuck.com/gfwlist server=/bumpshare.com/127.0.0.1#5335 ipset=/bumpshare.com/gfwlist -server=/visa.dk/127.0.0.1#5335 -ipset=/visa.dk/gfwlist -server=/aboutamazon.de/127.0.0.1#5335 -ipset=/aboutamazon.de/gfwlist -server=/szwinnertechnology.com/127.0.0.1#5335 -ipset=/szwinnertechnology.com/gfwlist -server=/gooogle.com/127.0.0.1#5335 -ipset=/gooogle.com/gfwlist +server=/tukif.com/127.0.0.1#5335 +ipset=/tukif.com/gfwlist server=/sony.com.ar/127.0.0.1#5335 ipset=/sony.com.ar/gfwlist -server=/googlr.com/127.0.0.1#5335 -ipset=/googlr.com/gfwlist +server=/fi11tv1.com/127.0.0.1#5335 +ipset=/fi11tv1.com/gfwlist server=/pinterest.pt/127.0.0.1#5335 ipset=/pinterest.pt/gfwlist server=/scholarpedia.org/127.0.0.1#5335 ipset=/scholarpedia.org/gfwlist -server=/capitalgames.com/127.0.0.1#5335 -ipset=/capitalgames.com/gfwlist -server=/nurofen.no/127.0.0.1#5335 -ipset=/nurofen.no/gfwlist -server=/googlesverige.com/127.0.0.1#5335 -ipset=/googlesverige.com/gfwlist -server=/googlesource.com/127.0.0.1#5335 -ipset=/googlesource.com/gfwlist server=/visa.co.za/127.0.0.1#5335 ipset=/visa.co.za/gfwlist -server=/finish.pt/127.0.0.1#5335 -ipset=/finish.pt/gfwlist -server=/amazonpay.com/127.0.0.1#5335 -ipset=/amazonpay.com/gfwlist -server=/googleplay.com/127.0.0.1#5335 -ipset=/googleplay.com/gfwlist +server=/censorship.ai/127.0.0.1#5335 +ipset=/censorship.ai/gfwlist server=/futureshop.ca/127.0.0.1#5335 ipset=/futureshop.ca/gfwlist -server=/googlephotos.com/127.0.0.1#5335 -ipset=/googlephotos.com/gfwlist -server=/googlepagecreator.com/127.0.0.1#5335 -ipset=/googlepagecreator.com/gfwlist server=/srebrenica360.com/127.0.0.1#5335 ipset=/srebrenica360.com/gfwlist -server=/googlemaps.com/127.0.0.1#5335 -ipset=/googlemaps.com/gfwlist server=/visaluxuryhotels.com/127.0.0.1#5335 ipset=/visaluxuryhotels.com/gfwlist -server=/yale.edu/127.0.0.1#5335 -ipset=/yale.edu/gfwlist -server=/googlefiber.net/127.0.0.1#5335 -ipset=/googlefiber.net/gfwlist +server=/nudekenya.com/127.0.0.1#5335 +ipset=/nudekenya.com/gfwlist server=/hpsoftware.com/127.0.0.1#5335 ipset=/hpsoftware.com/gfwlist -server=/ecoforme.jp/127.0.0.1#5335 -ipset=/ecoforme.jp/gfwlist +server=/blogspot.com.au/127.0.0.1#5335 +ipset=/blogspot.com.au/gfwlist server=/minisothailand.com/127.0.0.1#5335 ipset=/minisothailand.com/gfwlist -server=/applemusic.wang/127.0.0.1#5335 -ipset=/applemusic.wang/gfwlist server=/w.wiki/127.0.0.1#5335 ipset=/w.wiki/gfwlist server=/localbitcoinschain.com/127.0.0.1#5335 ipset=/localbitcoinschain.com/gfwlist -server=/macintosh.eu/127.0.0.1#5335 -ipset=/macintosh.eu/gfwlist -server=/microsoftsiteselection.com/127.0.0.1#5335 -ipset=/microsoftsiteselection.com/gfwlist -server=/googlebot.com/127.0.0.1#5335 -ipset=/googlebot.com/gfwlist +server=/gbluebooks.blogspot.com/127.0.0.1#5335 +ipset=/gbluebooks.blogspot.com/gfwlist +server=/nudematurewomenpics.com/127.0.0.1#5335 +ipset=/nudematurewomenpics.com/gfwlist server=/newisiknowledge.com/127.0.0.1#5335 ipset=/newisiknowledge.com/gfwlist server=/edninfo.com/127.0.0.1#5335 @@ -15070,2280 +10460,896 @@ server=/vaginacontest.com/127.0.0.1#5335 ipset=/vaginacontest.com/gfwlist server=/intheknow.com.au/127.0.0.1#5335 ipset=/intheknow.com.au/gfwlist -server=/etwealth.com/127.0.0.1#5335 -ipset=/etwealth.com/gfwlist -server=/facebookinc.com/127.0.0.1#5335 -ipset=/facebookinc.com/gfwlist +server=/maddenchampionship.com/127.0.0.1#5335 +ipset=/maddenchampionship.com/gfwlist server=/beatsblackfridaydeals.net/127.0.0.1#5335 ipset=/beatsblackfridaydeals.net/gfwlist -server=/pornhd.com/127.0.0.1#5335 -ipset=/pornhd.com/gfwlist -server=/strepsils.com.co/127.0.0.1#5335 -ipset=/strepsils.com.co/gfwlist -server=/google.net/127.0.0.1#5335 -ipset=/google.net/gfwlist -server=/google.dev/127.0.0.1#5335 -ipset=/google.dev/gfwlist -server=/youtubego.in/127.0.0.1#5335 -ipset=/youtubego.in/gfwlist +server=/starbucksforlife.com/127.0.0.1#5335 +ipset=/starbucksforlife.com/gfwlist +server=/doclercdn.com/127.0.0.1#5335 +ipset=/doclercdn.com/gfwlist server=/vanish.no/127.0.0.1#5335 ipset=/vanish.no/gfwlist server=/google.co.bw/127.0.0.1#5335 ipset=/google.co.bw/gfwlist -server=/faceboook.com/127.0.0.1#5335 -ipset=/faceboook.com/gfwlist -server=/goo.gl/127.0.0.1#5335 -ipset=/goo.gl/gfwlist server=/microsoftreactor.net/127.0.0.1#5335 ipset=/microsoftreactor.net/gfwlist -server=/gonglchuangl.net/127.0.0.1#5335 -ipset=/gonglchuangl.net/gfwlist -server=/gogle.com/127.0.0.1#5335 -ipset=/gogle.com/gfwlist -server=/gmodules.com/127.0.0.1#5335 -ipset=/gmodules.com/gfwlist -server=/gmail.com/127.0.0.1#5335 -ipset=/gmail.com/gfwlist +server=/themoviedb.org/127.0.0.1#5335 +ipset=/themoviedb.org/gfwlist server=/volvosaatio.fi/127.0.0.1#5335 ipset=/volvosaatio.fi/gfwlist server=/dettol.co.ke/127.0.0.1#5335 ipset=/dettol.co.ke/gfwlist -server=/umagazine.com.hk/127.0.0.1#5335 -ipset=/umagazine.com.hk/gfwlist -server=/gipscorp.com/127.0.0.1#5335 -ipset=/gipscorp.com/gfwlist -server=/volvotrucks.co.il/127.0.0.1#5335 -ipset=/volvotrucks.co.il/gfwlist -server=/directvdsl.tv/127.0.0.1#5335 -ipset=/directvdsl.tv/gfwlist -server=/getbumptop.com/127.0.0.1#5335 -ipset=/getbumptop.com/gfwlist -server=/gerritcodereview.com/127.0.0.1#5335 -ipset=/gerritcodereview.com/gfwlist -server=/gcr.io/127.0.0.1#5335 -ipset=/gcr.io/gfwlist -server=/gateway.dev/127.0.0.1#5335 -ipset=/gateway.dev/gfwlist +server=/akamai-regression.net/127.0.0.1#5335 +ipset=/akamai-regression.net/gfwlist +server=/hardsextube.com/127.0.0.1#5335 +ipset=/hardsextube.com/gfwlist +server=/xnxx2.it/127.0.0.1#5335 +ipset=/xnxx2.it/gfwlist server=/thomsonreuters.co.uk/127.0.0.1#5335 ipset=/thomsonreuters.co.uk/gfwlist -server=/google.co.cr/127.0.0.1#5335 -ipset=/google.co.cr/gfwlist -server=/g-tun.com/127.0.0.1#5335 -ipset=/g-tun.com/gfwlist -server=/ghcr.io/127.0.0.1#5335 -ipset=/ghcr.io/gfwlist -server=/fuchsia.dev/127.0.0.1#5335 -ipset=/fuchsia.dev/gfwlist server=/entermediadb.org/127.0.0.1#5335 ipset=/entermediadb.org/gfwlist server=/gettyimages.nl/127.0.0.1#5335 ipset=/gettyimages.nl/gfwlist server=/shadowsocks.org/127.0.0.1#5335 ipset=/shadowsocks.org/gfwlist -server=/pieceofplastic.com/127.0.0.1#5335 -ipset=/pieceofplastic.com/gfwlist server=/deepmind.com/127.0.0.1#5335 ipset=/deepmind.com/gfwlist -server=/rakuten.ne.jp/127.0.0.1#5335 -ipset=/rakuten.ne.jp/gfwlist -server=/beatsbydrdre-officials5.com/127.0.0.1#5335 -ipset=/beatsbydrdre-officials5.com/gfwlist -server=/dombosco.com.br/127.0.0.1#5335 -ipset=/dombosco.com.br/gfwlist -server=/foofle.com/127.0.0.1#5335 -ipset=/foofle.com/gfwlist +server=/yandex.tj/127.0.0.1#5335 +ipset=/yandex.tj/gfwlist +server=/steezylist.com/127.0.0.1#5335 +ipset=/steezylist.com/gfwlist server=/iamakamai.com/127.0.0.1#5335 ipset=/iamakamai.com/gfwlist server=/directvonline.com/127.0.0.1#5335 ipset=/directvonline.com/gfwlist -server=/firebaseapp.com/127.0.0.1#5335 -ipset=/firebaseapp.com/gfwlist -server=/amazon-lantern.com/127.0.0.1#5335 -ipset=/amazon-lantern.com/gfwlist -server=/visa.de/127.0.0.1#5335 -ipset=/visa.de/gfwlist -server=/redditmail.com/127.0.0.1#5335 -ipset=/redditmail.com/gfwlist -server=/episodic.com/127.0.0.1#5335 -ipset=/episodic.com/gfwlist -server=/nikechosen.com/127.0.0.1#5335 -ipset=/nikechosen.com/gfwlist -server=/dialogflow.com/127.0.0.1#5335 -ipset=/dialogflow.com/gfwlist -server=/corporatecashpassport.com/127.0.0.1#5335 -ipset=/corporatecashpassport.com/gfwlist -server=/devsitetest.how/127.0.0.1#5335 -ipset=/devsitetest.how/gfwlist +server=/faceboobok.com/127.0.0.1#5335 +ipset=/faceboobok.com/gfwlist server=/blogspot.co.ke/127.0.0.1#5335 ipset=/blogspot.co.ke/gfwlist -server=/vcanedge.com/127.0.0.1#5335 -ipset=/vcanedge.com/gfwlist server=/linemobile.com/127.0.0.1#5335 ipset=/linemobile.com/gfwlist -server=/dataliberation.org/127.0.0.1#5335 -ipset=/dataliberation.org/gfwlist -server=/dartsearch.net/127.0.0.1#5335 -ipset=/dartsearch.net/gfwlist -server=/crr.com/127.0.0.1#5335 -ipset=/crr.com/gfwlist -server=/dotmac.de/127.0.0.1#5335 -ipset=/dotmac.de/gfwlist -server=/coova.org/127.0.0.1#5335 -ipset=/coova.org/gfwlist -server=/media.prod.mdn.mozit.cloud/127.0.0.1#5335 -ipset=/media.prod.mdn.mozit.cloud/gfwlist -server=/coova.com/127.0.0.1#5335 -ipset=/coova.com/gfwlist -server=/sciencedirect.com/127.0.0.1#5335 -ipset=/sciencedirect.com/gfwlist -server=/azure-test.net/127.0.0.1#5335 -ipset=/azure-test.net/gfwlist -server=/oculusrift.com/127.0.0.1#5335 -ipset=/oculusrift.com/gfwlist -server=/codespot.com/127.0.0.1#5335 -ipset=/codespot.com/gfwlist -server=/cobrasearch.com/127.0.0.1#5335 -ipset=/cobrasearch.com/gfwlist +server=/fulanax.com/127.0.0.1#5335 +ipset=/fulanax.com/gfwlist +server=/femjoy.com/127.0.0.1#5335 +ipset=/femjoy.com/gfwlist +server=/azure-mobile.net/127.0.0.1#5335 +ipset=/azure-mobile.net/gfwlist server=/bestbuyus.com/127.0.0.1#5335 ipset=/bestbuyus.com/gfwlist -server=/chronicle.security/127.0.0.1#5335 -ipset=/chronicle.security/gfwlist -server=/4beatsbydre.com/127.0.0.1#5335 -ipset=/4beatsbydre.com/gfwlist -server=/chromecast.com/127.0.0.1#5335 -ipset=/chromecast.com/gfwlist -server=/caijinglengyan.com/127.0.0.1#5335 -ipset=/caijinglengyan.com/gfwlist +server=/oppainorakuen.com/127.0.0.1#5335 +ipset=/oppainorakuen.com/gfwlist server=/cheapbeatsbydrestudioutlet.com/127.0.0.1#5335 ipset=/cheapbeatsbydrestudioutlet.com/gfwlist server=/softbankmobile.net/127.0.0.1#5335 ipset=/softbankmobile.net/gfwlist server=/bloombergapps.com/127.0.0.1#5335 ipset=/bloombergapps.com/gfwlist -server=/t21.nikkei.co.jp/127.0.0.1#5335 -ipset=/t21.nikkei.co.jp/gfwlist -server=/buyaple.com/127.0.0.1#5335 -ipset=/buyaple.com/gfwlist -server=/12diasdepresentesdeitunes.com/127.0.0.1#5335 -ipset=/12diasdepresentesdeitunes.com/gfwlist -server=/bumptunes.com/127.0.0.1#5335 -ipset=/bumptunes.com/gfwlist -server=/bumptop.com/127.0.0.1#5335 -ipset=/bumptop.com/gfwlist +server=/manototv.com/127.0.0.1#5335 +ipset=/manototv.com/gfwlist +server=/allfinegirls.com/127.0.0.1#5335 +ipset=/allfinegirls.com/gfwlist server=/sing68.com/127.0.0.1#5335 ipset=/sing68.com/gfwlist -server=/bmwcenternet.com/127.0.0.1#5335 -ipset=/bmwcenternet.com/gfwlist -server=/amazondevicesupport.com/127.0.0.1#5335 -ipset=/amazondevicesupport.com/gfwlist -server=/bumptop.ca/127.0.0.1#5335 -ipset=/bumptop.ca/gfwlist +server=/zavat.pw/127.0.0.1#5335 +ipset=/zavat.pw/gfwlist server=/fanatical.com/127.0.0.1#5335 ipset=/fanatical.com/gfwlist -server=/bmw-mdrivetour.com/127.0.0.1#5335 -ipset=/bmw-mdrivetour.com/gfwlist -server=/blogblog.com/127.0.0.1#5335 -ipset=/blogblog.com/gfwlist server=/billpoint.tv/127.0.0.1#5335 ipset=/billpoint.tv/gfwlist -server=/stateofthemap.com/127.0.0.1#5335 -ipset=/stateofthemap.com/gfwlist -server=/google.ch/127.0.0.1#5335 -ipset=/google.ch/gfwlist -server=/appl-e.com/127.0.0.1#5335 -ipset=/appl-e.com/gfwlist -server=/thomsonreuters.in/127.0.0.1#5335 -ipset=/thomsonreuters.in/gfwlist -server=/visa.co.ni/127.0.0.1#5335 -ipset=/visa.co.ni/gfwlist -server=/ibooksauthor.com/127.0.0.1#5335 -ipset=/ibooksauthor.com/gfwlist -server=/baselinestudy.org/127.0.0.1#5335 -ipset=/baselinestudy.org/gfwlist -server=/bandpage.com/127.0.0.1#5335 -ipset=/bandpage.com/gfwlist +server=/hotzxgirl.com/127.0.0.1#5335 +ipset=/hotzxgirl.com/gfwlist +server=/onlineteenhub.com/127.0.0.1#5335 +ipset=/onlineteenhub.com/gfwlist +server=/btt804.com/127.0.0.1#5335 +ipset=/btt804.com/gfwlist server=/gumtree.sg/127.0.0.1#5335 ipset=/gumtree.sg/gfwlist -server=/paypal-comunidad.com/127.0.0.1#5335 -ipset=/paypal-comunidad.com/gfwlist -server=/appleoriginalproductions.com/127.0.0.1#5335 -ipset=/appleoriginalproductions.com/gfwlist -server=/apture.com/127.0.0.1#5335 -ipset=/apture.com/gfwlist -server=/carcare-and-tireshop.jp/127.0.0.1#5335 -ipset=/carcare-and-tireshop.jp/gfwlist -server=/appbridge.it/127.0.0.1#5335 -ipset=/appbridge.it/gfwlist -server=/appbridge.io/127.0.0.1#5335 -ipset=/appbridge.io/gfwlist -server=/firestonecomercial.co.cr/127.0.0.1#5335 -ipset=/firestonecomercial.co.cr/gfwlist +server=/volvogroup.kr/127.0.0.1#5335 +ipset=/volvogroup.kr/gfwlist server=/custombeatsny.com/127.0.0.1#5335 ipset=/custombeatsny.com/gfwlist -server=/api.ai/127.0.0.1#5335 -ipset=/api.ai/gfwlist -server=/yande.re/127.0.0.1#5335 -ipset=/yande.re/gfwlist -server=/angulardart.org/127.0.0.1#5335 -ipset=/angulardart.org/gfwlist server=/visaitalia.com/127.0.0.1#5335 ipset=/visaitalia.com/gfwlist -server=/adgoogle.net/127.0.0.1#5335 -ipset=/adgoogle.net/gfwlist -server=/abc.xyz/127.0.0.1#5335 -ipset=/abc.xyz/gfwlist -server=/verisign.de/127.0.0.1#5335 -ipset=/verisign.de/gfwlist -server=/yahoo.ps/127.0.0.1#5335 -ipset=/yahoo.ps/gfwlist +server=/beatsbydre-chen.com/127.0.0.1#5335 +ipset=/beatsbydre-chen.com/gfwlist server=/monstercasquebeatspascher.net/127.0.0.1#5335 ipset=/monstercasquebeatspascher.net/gfwlist -server=/dlercloud.org/127.0.0.1#5335 -ipset=/dlercloud.org/gfwlist -server=/akamai-staging.net/127.0.0.1#5335 -ipset=/akamai-staging.net/gfwlist -server=/google.ws/127.0.0.1#5335 -ipset=/google.ws/gfwlist server=/microsoftiotcentral.com/127.0.0.1#5335 ipset=/microsoftiotcentral.com/gfwlist -server=/google.to/127.0.0.1#5335 -ipset=/google.to/gfwlist -server=/flutterapp.com/127.0.0.1#5335 -ipset=/flutterapp.com/gfwlist -server=/google.sr/127.0.0.1#5335 -ipset=/google.sr/gfwlist -server=/google.so/127.0.0.1#5335 -ipset=/google.so/gfwlist -server=/google.sk/127.0.0.1#5335 -ipset=/google.sk/gfwlist -server=/facebook30.com/127.0.0.1#5335 -ipset=/facebook30.com/gfwlist -server=/google.si/127.0.0.1#5335 -ipset=/google.si/gfwlist +server=/hotstunners.com/127.0.0.1#5335 +ipset=/hotstunners.com/gfwlist server=/theman.in/127.0.0.1#5335 ipset=/theman.in/gfwlist -server=/google.sh/127.0.0.1#5335 -ipset=/google.sh/gfwlist -server=/google.se/127.0.0.1#5335 -ipset=/google.se/gfwlist -server=/my20dc.com/127.0.0.1#5335 -ipset=/my20dc.com/gfwlist -server=/itunes.com/127.0.0.1#5335 -ipset=/itunes.com/gfwlist -server=/google.pt/127.0.0.1#5335 -ipset=/google.pt/gfwlist server=/visa.com.hn/127.0.0.1#5335 ipset=/visa.com.hn/gfwlist -server=/google.ps/127.0.0.1#5335 -ipset=/google.ps/gfwlist -server=/google.nl/127.0.0.1#5335 -ipset=/google.nl/gfwlist -server=/drdre-beats.com/127.0.0.1#5335 -ipset=/drdre-beats.com/gfwlist -server=/alchemysynth.com/127.0.0.1#5335 -ipset=/alchemysynth.com/gfwlist -server=/klik.me/127.0.0.1#5335 -ipset=/klik.me/gfwlist -server=/google.mv/127.0.0.1#5335 -ipset=/google.mv/gfwlist server=/fireside.fm/127.0.0.1#5335 ipset=/fireside.fm/gfwlist -server=/beatsbydre-club.com/127.0.0.1#5335 -ipset=/beatsbydre-club.com/gfwlist -server=/cisconetapp.com/127.0.0.1#5335 -ipset=/cisconetapp.com/gfwlist -server=/google.mn/127.0.0.1#5335 -ipset=/google.mn/gfwlist -server=/google.ml/127.0.0.1#5335 -ipset=/google.ml/gfwlist -server=/google.mg/127.0.0.1#5335 -ipset=/google.mg/gfwlist -server=/nextmedia.com.tw/127.0.0.1#5335 -ipset=/nextmedia.com.tw/gfwlist -server=/cpan.org/127.0.0.1#5335 -ipset=/cpan.org/gfwlist +server=/sandisk.com/127.0.0.1#5335 +ipset=/sandisk.com/gfwlist server=/foxest.com/127.0.0.1#5335 ipset=/foxest.com/gfwlist -server=/apple.no/127.0.0.1#5335 -ipset=/apple.no/gfwlist -server=/bollywoodlife.com/127.0.0.1#5335 -ipset=/bollywoodlife.com/gfwlist +server=/mature-porn-flix.com/127.0.0.1#5335 +ipset=/mature-porn-flix.com/gfwlist server=/verilylifesciences.com/127.0.0.1#5335 ipset=/verilylifesciences.com/gfwlist -server=/google.lt/127.0.0.1#5335 -ipset=/google.lt/gfwlist -server=/nikebetterworld.info/127.0.0.1#5335 -ipset=/nikebetterworld.info/gfwlist -server=/bookmybridgestonetyre.com/127.0.0.1#5335 -ipset=/bookmybridgestonetyre.com/gfwlist -server=/google.kz/127.0.0.1#5335 -ipset=/google.kz/gfwlist -server=/google.ki/127.0.0.1#5335 -ipset=/google.ki/gfwlist -server=/duckduckgo.pl/127.0.0.1#5335 -ipset=/duckduckgo.pl/gfwlist +server=/monstersbeatbydres.com/127.0.0.1#5335 +ipset=/monstersbeatbydres.com/gfwlist server=/drdrebeatsdesale.com/127.0.0.1#5335 ipset=/drdrebeatsdesale.com/gfwlist -server=/monsterbeatssales.com/127.0.0.1#5335 -ipset=/monsterbeatssales.com/gfwlist -server=/google.jo/127.0.0.1#5335 -ipset=/google.jo/gfwlist -server=/google.is/127.0.0.1#5335 -ipset=/google.is/gfwlist +server=/momsyoungboys.net/127.0.0.1#5335 +ipset=/momsyoungboys.net/gfwlist server=/niketraining.com/127.0.0.1#5335 ipset=/niketraining.com/gfwlist server=/ebay.co.za/127.0.0.1#5335 ipset=/ebay.co.za/gfwlist server=/minilaval.ca/127.0.0.1#5335 ipset=/minilaval.ca/gfwlist -server=/besthentaitube.com/127.0.0.1#5335 -ipset=/besthentaitube.com/gfwlist -server=/historyofdota.org/127.0.0.1#5335 -ipset=/historyofdota.org/gfwlist +server=/amateurmommymovies.com/127.0.0.1#5335 +ipset=/amateurmommymovies.com/gfwlist server=/scholar.google.cz/127.0.0.1#5335 ipset=/scholar.google.cz/gfwlist -server=/google.iq/127.0.0.1#5335 -ipset=/google.iq/gfwlist -server=/nikefoampositeshoes.com/127.0.0.1#5335 -ipset=/nikefoampositeshoes.com/gfwlist -server=/dvdstudiopro.us/127.0.0.1#5335 -ipset=/dvdstudiopro.us/gfwlist -server=/google.im/127.0.0.1#5335 -ipset=/google.im/gfwlist -server=/google.ie/127.0.0.1#5335 -ipset=/google.ie/gfwlist -server=/google.hu/127.0.0.1#5335 -ipset=/google.hu/gfwlist -server=/minisojordan.com/127.0.0.1#5335 -ipset=/minisojordan.com/gfwlist -server=/nikeshoesgroup.com/127.0.0.1#5335 -ipset=/nikeshoesgroup.com/gfwlist -server=/pocketbiketrader.com/127.0.0.1#5335 -ipset=/pocketbiketrader.com/gfwlist -server=/google.hr/127.0.0.1#5335 -ipset=/google.hr/gfwlist -server=/pinterest.ca/127.0.0.1#5335 -ipset=/pinterest.ca/gfwlist -server=/akamqi.com/127.0.0.1#5335 -ipset=/akamqi.com/gfwlist -server=/google.gl/127.0.0.1#5335 -ipset=/google.gl/gfwlist -server=/f8.com/127.0.0.1#5335 -ipset=/f8.com/gfwlist +server=/hcomicbook.com/127.0.0.1#5335 +ipset=/hcomicbook.com/gfwlist +server=/hentaivn.de/127.0.0.1#5335 +ipset=/hentaivn.de/gfwlist +server=/moeimg.net/127.0.0.1#5335 +ipset=/moeimg.net/gfwlist +server=/observable.net/127.0.0.1#5335 +ipset=/observable.net/gfwlist +server=/porn34.me/127.0.0.1#5335 +ipset=/porn34.me/gfwlist +server=/oldje.com/127.0.0.1#5335 +ipset=/oldje.com/gfwlist +server=/xiaoyaoge.xyz/127.0.0.1#5335 +ipset=/xiaoyaoge.xyz/gfwlist server=/verisign.com/127.0.0.1#5335 ipset=/verisign.com/gfwlist server=/ebayla.org/127.0.0.1#5335 ipset=/ebayla.org/gfwlist -server=/google.gg/127.0.0.1#5335 -ipset=/google.gg/gfwlist server=/ntdtv.jp/127.0.0.1#5335 ipset=/ntdtv.jp/gfwlist -server=/google.ge/127.0.0.1#5335 -ipset=/google.ge/gfwlist -server=/foxandfriends.com/127.0.0.1#5335 -ipset=/foxandfriends.com/gfwlist -server=/beatsbydre-sell.com/127.0.0.1#5335 -ipset=/beatsbydre-sell.com/gfwlist -server=/fotolia-noticias.com/127.0.0.1#5335 -ipset=/fotolia-noticias.com/gfwlist -server=/google.es/127.0.0.1#5335 -ipset=/google.es/gfwlist -server=/google.ee/127.0.0.1#5335 -ipset=/google.ee/gfwlist -server=/google.dz/127.0.0.1#5335 -ipset=/google.dz/gfwlist -server=/nytco.com/127.0.0.1#5335 -ipset=/nytco.com/gfwlist +server=/google.bs/127.0.0.1#5335 +ipset=/google.bs/gfwlist +server=/avgod.club/127.0.0.1#5335 +ipset=/avgod.club/gfwlist server=/z5.com/127.0.0.1#5335 ipset=/z5.com/gfwlist -server=/francecasquebeatssolde.com/127.0.0.1#5335 -ipset=/francecasquebeatssolde.com/gfwlist -server=/visa.co.ve/127.0.0.1#5335 -ipset=/visa.co.ve/gfwlist -server=/bcovlive-a.akamaihd.net/127.0.0.1#5335 -ipset=/bcovlive-a.akamaihd.net/gfwlist -server=/google.dj/127.0.0.1#5335 -ipset=/google.dj/gfwlist -server=/google.com.vc/127.0.0.1#5335 -ipset=/google.com.vc/gfwlist -server=/ciscoinvestments.com/127.0.0.1#5335 -ipset=/ciscoinvestments.com/gfwlist +server=/ikea.dk/127.0.0.1#5335 +ipset=/ikea.dk/gfwlist +server=/sony.co.nz/127.0.0.1#5335 +ipset=/sony.co.nz/gfwlist server=/cnnpolitics.com/127.0.0.1#5335 ipset=/cnnpolitics.com/gfwlist -server=/google.com.tr/127.0.0.1#5335 -ipset=/google.com.tr/gfwlist -server=/cowboom.com/127.0.0.1#5335 -ipset=/cowboom.com/gfwlist server=/google.com.na/127.0.0.1#5335 ipset=/google.com.na/gfwlist -server=/iphone.pt/127.0.0.1#5335 -ipset=/iphone.pt/gfwlist -server=/nytchina.com/127.0.0.1#5335 -ipset=/nytchina.com/gfwlist -server=/egghead.io/127.0.0.1#5335 -ipset=/egghead.io/gfwlist -server=/edx.org/127.0.0.1#5335 -ipset=/edx.org/gfwlist -server=/google.com.qa/127.0.0.1#5335 -ipset=/google.com.qa/gfwlist -server=/regiongold.com/127.0.0.1#5335 -ipset=/regiongold.com/gfwlist -server=/google.com.pr/127.0.0.1#5335 -ipset=/google.com.pr/gfwlist -server=/google.com.pk/127.0.0.1#5335 -ipset=/google.com.pk/gfwlist -server=/greatfire.org/127.0.0.1#5335 -ipset=/greatfire.org/gfwlist -server=/free-sns.com/127.0.0.1#5335 -ipset=/free-sns.com/gfwlist -server=/google.com.ph/127.0.0.1#5335 -ipset=/google.com.ph/gfwlist -server=/githubusercontent.com/127.0.0.1#5335 -ipset=/githubusercontent.com/gfwlist -server=/google.com.pg/127.0.0.1#5335 -ipset=/google.com.pg/gfwlist +server=/zoo-tube8.com/127.0.0.1#5335 +ipset=/zoo-tube8.com/gfwlist +server=/book4you.org/127.0.0.1#5335 +ipset=/book4you.org/gfwlist +server=/foxrad.io/127.0.0.1#5335 +ipset=/foxrad.io/gfwlist +server=/teslazta.net/127.0.0.1#5335 +ipset=/teslazta.net/gfwlist server=/books.com.tw/127.0.0.1#5335 ipset=/books.com.tw/gfwlist server=/bmwworld.net/127.0.0.1#5335 ipset=/bmwworld.net/gfwlist -server=/cloudflare.com/127.0.0.1#5335 -ipset=/cloudflare.com/gfwlist -server=/google.com.pe/127.0.0.1#5335 -ipset=/google.com.pe/gfwlist -server=/google.com.pa/127.0.0.1#5335 -ipset=/google.com.pa/gfwlist -server=/google.com.ng/127.0.0.1#5335 -ipset=/google.com.ng/gfwlist -server=/visa.com.hr/127.0.0.1#5335 -ipset=/visa.com.hr/gfwlist -server=/facebooktv.org/127.0.0.1#5335 -ipset=/facebooktv.org/gfwlist -server=/google.com.mm/127.0.0.1#5335 -ipset=/google.com.mm/gfwlist -server=/securepaypal.info/127.0.0.1#5335 -ipset=/securepaypal.info/gfwlist -server=/google.com.lb/127.0.0.1#5335 -ipset=/google.com.lb/gfwlist +server=/googleadapis.com/127.0.0.1#5335 +ipset=/googleadapis.com/gfwlist +server=/alt5-mtalk.google.com/127.0.0.1#5335 +ipset=/alt5-mtalk.google.com/gfwlist server=/facebookvacation.com/127.0.0.1#5335 ipset=/facebookvacation.com/gfwlist server=/mastercard.pl/127.0.0.1#5335 ipset=/mastercard.pl/gfwlist -server=/google.com.jm/127.0.0.1#5335 -ipset=/google.com.jm/gfwlist -server=/facebookdevelopergarage.com/127.0.0.1#5335 -ipset=/facebookdevelopergarage.com/gfwlist -server=/scholar.google.it/127.0.0.1#5335 -ipset=/scholar.google.it/gfwlist -server=/google.com.gi/127.0.0.1#5335 -ipset=/google.com.gi/gfwlist -server=/google.com.fj/127.0.0.1#5335 -ipset=/google.com.fj/gfwlist -server=/google.com.et/127.0.0.1#5335 -ipset=/google.com.et/gfwlist -server=/careerfundas.com/127.0.0.1#5335 -ipset=/careerfundas.com/gfwlist -server=/google.com.ec/127.0.0.1#5335 -ipset=/google.com.ec/gfwlist -server=/douwriteright.com/127.0.0.1#5335 -ipset=/douwriteright.com/gfwlist -server=/google.com.do/127.0.0.1#5335 -ipset=/google.com.do/gfwlist -server=/beatthatquote.com/127.0.0.1#5335 -ipset=/beatthatquote.com/gfwlist -server=/foxnewshealth.com/127.0.0.1#5335 -ipset=/foxnewshealth.com/gfwlist -server=/google.com.co/127.0.0.1#5335 -ipset=/google.com.co/gfwlist -server=/ikea.net/127.0.0.1#5335 -ipset=/ikea.net/gfwlist -server=/mdialog.com/127.0.0.1#5335 -ipset=/mdialog.com/gfwlist -server=/google.com.bn/127.0.0.1#5335 -ipset=/google.com.bn/gfwlist -server=/images-amazon.com/127.0.0.1#5335 -ipset=/images-amazon.com/gfwlist -server=/fosebook.com/127.0.0.1#5335 -ipset=/fosebook.com/gfwlist -server=/psiphon3.com/127.0.0.1#5335 -ipset=/psiphon3.com/gfwlist -server=/google.com.ai/127.0.0.1#5335 -ipset=/google.com.ai/gfwlist -server=/google.com.ag/127.0.0.1#5335 -ipset=/google.com.ag/gfwlist -server=/engineeringvillage.com/127.0.0.1#5335 -ipset=/engineeringvillage.com/gfwlist -server=/mini.co.me/127.0.0.1#5335 -ipset=/mini.co.me/gfwlist +server=/bekijkporno.nl/127.0.0.1#5335 +ipset=/bekijkporno.nl/gfwlist +server=/citas-para-mayoresde50.ec/127.0.0.1#5335 +ipset=/citas-para-mayoresde50.ec/gfwlist +server=/codivorexxx.com/127.0.0.1#5335 +ipset=/codivorexxx.com/gfwlist +server=/h0930.com/127.0.0.1#5335 +ipset=/h0930.com/gfwlist +server=/yandex.fi/127.0.0.1#5335 +ipset=/yandex.fi/gfwlist +server=/nerdnudes.com/127.0.0.1#5335 +ipset=/nerdnudes.com/gfwlist server=/worldsfastestgamer.net/127.0.0.1#5335 ipset=/worldsfastestgamer.net/gfwlist -server=/google.co.zw/127.0.0.1#5335 -ipset=/google.co.zw/gfwlist -server=/google.co.zm/127.0.0.1#5335 -ipset=/google.co.zm/gfwlist -server=/google.co.za/127.0.0.1#5335 -ipset=/google.co.za/gfwlist -server=/google.co.vi/127.0.0.1#5335 -ipset=/google.co.vi/gfwlist -server=/google.co.ve/127.0.0.1#5335 -ipset=/google.co.ve/gfwlist -server=/beatssaleus.com/127.0.0.1#5335 -ipset=/beatssaleus.com/gfwlist -server=/google.co.ug/127.0.0.1#5335 -ipset=/google.co.ug/gfwlist -server=/geodesummit.com/127.0.0.1#5335 -ipset=/geodesummit.com/gfwlist -server=/google.co.th/127.0.0.1#5335 -ipset=/google.co.th/gfwlist +server=/postimages.org/127.0.0.1#5335 +ipset=/postimages.org/gfwlist server=/jable.tv/127.0.0.1#5335 ipset=/jable.tv/gfwlist -server=/google.co.nz/127.0.0.1#5335 -ipset=/google.co.nz/gfwlist -server=/google.co.mz/127.0.0.1#5335 -ipset=/google.co.mz/gfwlist server=/netflixdnstest1.com/127.0.0.1#5335 ipset=/netflixdnstest1.com/gfwlist server=/bingworld.com/127.0.0.1#5335 ipset=/bingworld.com/gfwlist -server=/nypost.com/127.0.0.1#5335 -ipset=/nypost.com/gfwlist +server=/pornhub-deutsch.net/127.0.0.1#5335 +ipset=/pornhub-deutsch.net/gfwlist server=/pokemonletsgopikachu.com/127.0.0.1#5335 ipset=/pokemonletsgopikachu.com/gfwlist -server=/google.co.ls/127.0.0.1#5335 -ipset=/google.co.ls/gfwlist -server=/google.co.kr/127.0.0.1#5335 -ipset=/google.co.kr/gfwlist +server=/antarvasnax.com/127.0.0.1#5335 +ipset=/antarvasnax.com/gfwlist server=/instagmania.com/127.0.0.1#5335 ipset=/instagmania.com/gfwlist -server=/google.co.ke/127.0.0.1#5335 -ipset=/google.co.ke/gfwlist -server=/google.co.in/127.0.0.1#5335 -ipset=/google.co.in/gfwlist -server=/airav.cc/127.0.0.1#5335 -ipset=/airav.cc/gfwlist server=/stlouisbmw.net/127.0.0.1#5335 ipset=/stlouisbmw.net/gfwlist -server=/g.page/127.0.0.1#5335 -ipset=/g.page/gfwlist -server=/barrons-advisor.com/127.0.0.1#5335 -ipset=/barrons-advisor.com/gfwlist +server=/bokepvidz.com/127.0.0.1#5335 +ipset=/bokepvidz.com/gfwlist server=/asproex.com/127.0.0.1#5335 ipset=/asproex.com/gfwlist -server=/bluefootcms.com/127.0.0.1#5335 -ipset=/bluefootcms.com/gfwlist -server=/javhdfree.net/127.0.0.1#5335 -ipset=/javhdfree.net/gfwlist -server=/loli.net/127.0.0.1#5335 -ipset=/loli.net/gfwlist -server=/google.cm/127.0.0.1#5335 -ipset=/google.cm/gfwlist -server=/google.ci/127.0.0.1#5335 -ipset=/google.ci/gfwlist -server=/volvotrucks.com.co/127.0.0.1#5335 -ipset=/volvotrucks.com.co/gfwlist -server=/dierectv.com/127.0.0.1#5335 -ipset=/dierectv.com/gfwlist +server=/bandcamp.com/127.0.0.1#5335 +ipset=/bandcamp.com/gfwlist +server=/nudeteen.org/127.0.0.1#5335 +ipset=/nudeteen.org/gfwlist server=/google.com.cy/127.0.0.1#5335 ipset=/google.com.cy/gfwlist -server=/google.cd/127.0.0.1#5335 -ipset=/google.cd/gfwlist -server=/google.bt/127.0.0.1#5335 -ipset=/google.bt/gfwlist -server=/womensnikeshox.com/127.0.0.1#5335 -ipset=/womensnikeshox.com/gfwlist -server=/google.bs/127.0.0.1#5335 -ipset=/google.bs/gfwlist -server=/beatsbydre-outletstore.com/127.0.0.1#5335 -ipset=/beatsbydre-outletstore.com/gfwlist +server=/veet.com.pk/127.0.0.1#5335 +ipset=/veet.com.pk/gfwlist server=/bmw-connecteddrive.co.uk/127.0.0.1#5335 ipset=/bmw-connecteddrive.co.uk/gfwlist server=/tvbanywhere.com/127.0.0.1#5335 ipset=/tvbanywhere.com/gfwlist -server=/google.bj/127.0.0.1#5335 -ipset=/google.bj/gfwlist -server=/google.bi/127.0.0.1#5335 -ipset=/google.bi/gfwlist server=/pashtovoa.com/127.0.0.1#5335 ipset=/pashtovoa.com/gfwlist -server=/google.bg/127.0.0.1#5335 -ipset=/google.bg/gfwlist -server=/google.bf/127.0.0.1#5335 -ipset=/google.bf/gfwlist -server=/google.ba/127.0.0.1#5335 -ipset=/google.ba/gfwlist -server=/google.am/127.0.0.1#5335 -ipset=/google.am/gfwlist server=/swisssigner.com/127.0.0.1#5335 ipset=/swisssigner.com/gfwlist -server=/google.al/127.0.0.1#5335 -ipset=/google.al/gfwlist server=/applepremiumreseller.com.au/127.0.0.1#5335 ipset=/applepremiumreseller.com.au/gfwlist -server=/ibook.eu/127.0.0.1#5335 -ipset=/ibook.eu/gfwlist -server=/uux68.com/127.0.0.1#5335 -ipset=/uux68.com/gfwlist -server=/google.ad/127.0.0.1#5335 -ipset=/google.ad/gfwlist -server=/blizzak-juken.jp/127.0.0.1#5335 -ipset=/blizzak-juken.jp/gfwlist -server=/youtubekids.com/127.0.0.1#5335 -ipset=/youtubekids.com/gfwlist -server=/youtubei.googleapis.com/127.0.0.1#5335 -ipset=/youtubei.googleapis.com/gfwlist -server=/beats-bydreoutletssale.net/127.0.0.1#5335 -ipset=/beats-bydreoutletssale.net/gfwlist -server=/texttobuy.org/127.0.0.1#5335 -ipset=/texttobuy.org/gfwlist +server=/myfavoritearcade.com/127.0.0.1#5335 +ipset=/myfavoritearcade.com/gfwlist server=/vaultify.info/127.0.0.1#5335 ipset=/vaultify.info/gfwlist -server=/appstore.co.id/127.0.0.1#5335 -ipset=/appstore.co.id/gfwlist +server=/6asianporn.com/127.0.0.1#5335 +ipset=/6asianporn.com/gfwlist server=/ieee-region6.org/127.0.0.1#5335 ipset=/ieee-region6.org/gfwlist -server=/youtubego.com/127.0.0.1#5335 -ipset=/youtubego.com/gfwlist server=/zee5.com/127.0.0.1#5335 ipset=/zee5.com/gfwlist server=/japanknowledge.com/127.0.0.1#5335 ipset=/japanknowledge.com/gfwlist -server=/wiisportsresort.com/127.0.0.1#5335 -ipset=/wiisportsresort.com/gfwlist -server=/freebs.com/127.0.0.1#5335 -ipset=/freebs.com/gfwlist -server=/binancezh.com/127.0.0.1#5335 -ipset=/binancezh.com/gfwlist -server=/youtubegaming.com/127.0.0.1#5335 -ipset=/youtubegaming.com/gfwlist -server=/riotpin.com/127.0.0.1#5335 -ipset=/riotpin.com/gfwlist -server=/youtubeeducation.com/127.0.0.1#5335 -ipset=/youtubeeducation.com/gfwlist server=/facebooik.org/127.0.0.1#5335 ipset=/facebooik.org/gfwlist -server=/youtube.ug/127.0.0.1#5335 -ipset=/youtube.ug/gfwlist -server=/adobetcstrialdvd.com/127.0.0.1#5335 -ipset=/adobetcstrialdvd.com/gfwlist -server=/leagueoflegends.org/127.0.0.1#5335 -ipset=/leagueoflegends.org/gfwlist -server=/monsterbeats8beatsbydre.com/127.0.0.1#5335 -ipset=/monsterbeats8beatsbydre.com/gfwlist -server=/paypal-login.info/127.0.0.1#5335 -ipset=/paypal-login.info/gfwlist -server=/youtube.tn/127.0.0.1#5335 -ipset=/youtube.tn/gfwlist -server=/findercdn.me/127.0.0.1#5335 -ipset=/findercdn.me/gfwlist -server=/computer.org/127.0.0.1#5335 -ipset=/computer.org/gfwlist +server=/javtube.net/127.0.0.1#5335 +ipset=/javtube.net/gfwlist server=/iphone.host/127.0.0.1#5335 ipset=/iphone.host/gfwlist -server=/visaeurope.ch/127.0.0.1#5335 -ipset=/visaeurope.ch/gfwlist server=/foxnews.cc/127.0.0.1#5335 ipset=/foxnews.cc/gfwlist server=/youtube.co/127.0.0.1#5335 ipset=/youtube.co/gfwlist -server=/youtube.sn/127.0.0.1#5335 -ipset=/youtube.sn/gfwlist -server=/beatsbydrdre-onsale.com/127.0.0.1#5335 -ipset=/beatsbydrdre-onsale.com/gfwlist -server=/youtube.sk/127.0.0.1#5335 -ipset=/youtube.sk/gfwlist -server=/blogspot.com.ar/127.0.0.1#5335 -ipset=/blogspot.com.ar/gfwlist -server=/dropboxforum.com/127.0.0.1#5335 -ipset=/dropboxforum.com/gfwlist -server=/forbes.com/127.0.0.1#5335 -ipset=/forbes.com/gfwlist -server=/debugproject.com/127.0.0.1#5335 -ipset=/debugproject.com/gfwlist -server=/globalsign.eu/127.0.0.1#5335 -ipset=/globalsign.eu/gfwlist -server=/youtube.pr/127.0.0.1#5335 -ipset=/youtube.pr/gfwlist -server=/youtube.pl/127.0.0.1#5335 -ipset=/youtube.pl/gfwlist -server=/swissstick.com/127.0.0.1#5335 -ipset=/swissstick.com/gfwlist +server=/cbsi.live.ott.irdeto.com/127.0.0.1#5335 +ipset=/cbsi.live.ott.irdeto.com/gfwlist +server=/kkfcc03.com/127.0.0.1#5335 +ipset=/kkfcc03.com/gfwlist +server=/shakethesnake.com/127.0.0.1#5335 +ipset=/shakethesnake.com/gfwlist +server=/redwap.me/127.0.0.1#5335 +ipset=/redwap.me/gfwlist +server=/tiava1.com/127.0.0.1#5335 +ipset=/tiava1.com/gfwlist +server=/skokka.com/127.0.0.1#5335 +ipset=/skokka.com/gfwlist server=/volvotruckcenter.fi/127.0.0.1#5335 ipset=/volvotruckcenter.fi/gfwlist -server=/youtube.ph/127.0.0.1#5335 -ipset=/youtube.ph/gfwlist -server=/youtube.nl/127.0.0.1#5335 -ipset=/youtube.nl/gfwlist -server=/youtube.ma/127.0.0.1#5335 -ipset=/youtube.ma/gfwlist -server=/youtube.lv/127.0.0.1#5335 -ipset=/youtube.lv/gfwlist -server=/youtube.lk/127.0.0.1#5335 -ipset=/youtube.lk/gfwlist server=/pearsoneducationbooks.com/127.0.0.1#5335 ipset=/pearsoneducationbooks.com/gfwlist -server=/youtube.la/127.0.0.1#5335 -ipset=/youtube.la/gfwlist -server=/mini.com.br/127.0.0.1#5335 -ipset=/mini.com.br/gfwlist -server=/applestor.com/127.0.0.1#5335 -ipset=/applestor.com/gfwlist -server=/google.com.bh/127.0.0.1#5335 -ipset=/google.com.bh/gfwlist -server=/buyshoponly.com/127.0.0.1#5335 -ipset=/buyshoponly.com/gfwlist +server=/hpuniversity.info/127.0.0.1#5335 +ipset=/hpuniversity.info/gfwlist +server=/xboyvids.com/127.0.0.1#5335 +ipset=/xboyvids.com/gfwlist server=/dcard.tw/127.0.0.1#5335 ipset=/dcard.tw/gfwlist server=/blogspot.co.za/127.0.0.1#5335 ipset=/blogspot.co.za/gfwlist server=/battlefield5.com/127.0.0.1#5335 ipset=/battlefield5.com/gfwlist -server=/youtube.kr/127.0.0.1#5335 -ipset=/youtube.kr/gfwlist +server=/xxxaporn.com/127.0.0.1#5335 +ipset=/xxxaporn.com/gfwlist server=/youtube.soy/127.0.0.1#5335 ipset=/youtube.soy/gfwlist -server=/youtube.ie/127.0.0.1#5335 -ipset=/youtube.ie/gfwlist -server=/tokyomotion.net/127.0.0.1#5335 -ipset=/tokyomotion.net/gfwlist -server=/akafms.net/127.0.0.1#5335 -ipset=/akafms.net/gfwlist -server=/youtube.gr/127.0.0.1#5335 -ipset=/youtube.gr/gfwlist -server=/youtube.ge/127.0.0.1#5335 -ipset=/youtube.ge/gfwlist -server=/ikea.com/127.0.0.1#5335 -ipset=/ikea.com/gfwlist -server=/youtube.fi/127.0.0.1#5335 -ipset=/youtube.fi/gfwlist -server=/canon.pl/127.0.0.1#5335 -ipset=/canon.pl/gfwlist server=/itsoc.org/127.0.0.1#5335 ipset=/itsoc.org/gfwlist -server=/kijjiji.ca/127.0.0.1#5335 -ipset=/kijjiji.ca/gfwlist -server=/repswing.com/127.0.0.1#5335 -ipset=/repswing.com/gfwlist server=/craigslist.org/127.0.0.1#5335 ipset=/craigslist.org/gfwlist server=/sahabatsetiasmartone.com/127.0.0.1#5335 ipset=/sahabatsetiasmartone.com/gfwlist server=/applepay.com.tw/127.0.0.1#5335 ipset=/applepay.com.tw/gfwlist -server=/youtube.dk/127.0.0.1#5335 -ipset=/youtube.dk/gfwlist -server=/youtube.de/127.0.0.1#5335 -ipset=/youtube.de/gfwlist -server=/brilliant.org/127.0.0.1#5335 -ipset=/brilliant.org/gfwlist -server=/facebook-texas-holdem.net/127.0.0.1#5335 -ipset=/facebook-texas-holdem.net/gfwlist -server=/youtube.cr/127.0.0.1#5335 -ipset=/youtube.cr/gfwlist -server=/youtube.com.tw/127.0.0.1#5335 -ipset=/youtube.com.tw/gfwlist -server=/youtube.com.tr/127.0.0.1#5335 -ipset=/youtube.com.tr/gfwlist -server=/samsungdm.com/127.0.0.1#5335 -ipset=/samsungdm.com/gfwlist -server=/visa.com.ec/127.0.0.1#5335 -ipset=/visa.com.ec/gfwlist -server=/bmw-motorrad.ru/127.0.0.1#5335 -ipset=/bmw-motorrad.ru/gfwlist +server=/asianxxxjoy.com/127.0.0.1#5335 +ipset=/asianxxxjoy.com/gfwlist +server=/reneerossvideos.com/127.0.0.1#5335 +ipset=/reneerossvideos.com/gfwlist server=/directtv-deals.tv/127.0.0.1#5335 ipset=/directtv-deals.tv/gfwlist -server=/identrust.co.uk/127.0.0.1#5335 -ipset=/identrust.co.uk/gfwlist -server=/sony.ru/127.0.0.1#5335 -ipset=/sony.ru/gfwlist -server=/youtube.com.pt/127.0.0.1#5335 -ipset=/youtube.com.pt/gfwlist -server=/pugetsoundmini.com/127.0.0.1#5335 -ipset=/pugetsoundmini.com/gfwlist -server=/technologyandsociety.org/127.0.0.1#5335 -ipset=/technologyandsociety.org/gfwlist -server=/google.com.sg/127.0.0.1#5335 -ipset=/google.com.sg/gfwlist -server=/googleanalytics.com/127.0.0.1#5335 -ipset=/googleanalytics.com/gfwlist -server=/youtube.com.pe/127.0.0.1#5335 -ipset=/youtube.com.pe/gfwlist +server=/genshinimpact.com/127.0.0.1#5335 +ipset=/genshinimpact.com/gfwlist +server=/porn2012.com/127.0.0.1#5335 +ipset=/porn2012.com/gfwlist +server=/facewook.com/127.0.0.1#5335 +ipset=/facewook.com/gfwlist +server=/fullxxxmovies.net/127.0.0.1#5335 +ipset=/fullxxxmovies.net/gfwlist server=/directvdeals.com/127.0.0.1#5335 ipset=/directvdeals.com/gfwlist -server=/youtube.com.pa/127.0.0.1#5335 -ipset=/youtube.com.pa/gfwlist -server=/voakorea.com/127.0.0.1#5335 -ipset=/voakorea.com/gfwlist -server=/youtube.com.om/127.0.0.1#5335 -ipset=/youtube.com.om/gfwlist -server=/successwithteams.com/127.0.0.1#5335 -ipset=/successwithteams.com/gfwlist -server=/youtube.com.mx/127.0.0.1#5335 -ipset=/youtube.com.mx/gfwlist +server=/epochtimes.de/127.0.0.1#5335 +ipset=/epochtimes.de/gfwlist +server=/manhuabika.com/127.0.0.1#5335 +ipset=/manhuabika.com/gfwlist server=/paypal-database.com/127.0.0.1#5335 ipset=/paypal-database.com/gfwlist -server=/youtube.com.mt/127.0.0.1#5335 -ipset=/youtube.com.mt/gfwlist -server=/youtube.com.mk/127.0.0.1#5335 -ipset=/youtube.com.mk/gfwlist -server=/youtube.com.lv/127.0.0.1#5335 -ipset=/youtube.com.lv/gfwlist -server=/youtube.com.lb/127.0.0.1#5335 -ipset=/youtube.com.lb/gfwlist -server=/youtube.com.kw/127.0.0.1#5335 -ipset=/youtube.com.kw/gfwlist -server=/barrons.com/127.0.0.1#5335 -ipset=/barrons.com/gfwlist -server=/youtube.com.jo/127.0.0.1#5335 -ipset=/youtube.com.jo/gfwlist server=/pinterest.com.bo/127.0.0.1#5335 ipset=/pinterest.com.bo/gfwlist server=/paypalme.com/127.0.0.1#5335 ipset=/paypalme.com/gfwlist server=/news.co.uk/127.0.0.1#5335 ipset=/news.co.uk/gfwlist -server=/youtube.com.jm/127.0.0.1#5335 -ipset=/youtube.com.jm/gfwlist -server=/myfoxtwincities.com/127.0.0.1#5335 -ipset=/myfoxtwincities.com/gfwlist server=/o365weve-ppe.com/127.0.0.1#5335 ipset=/o365weve-ppe.com/gfwlist -server=/youtube.com.hk/127.0.0.1#5335 -ipset=/youtube.com.hk/gfwlist server=/cosmosdb.net/127.0.0.1#5335 ipset=/cosmosdb.net/gfwlist -server=/youtube.com.gr/127.0.0.1#5335 -ipset=/youtube.com.gr/gfwlist -server=/youtube.com.eg/127.0.0.1#5335 -ipset=/youtube.com.eg/gfwlist -server=/moov.hk/127.0.0.1#5335 -ipset=/moov.hk/gfwlist -server=/youtube.com.ee/127.0.0.1#5335 -ipset=/youtube.com.ee/gfwlist -server=/youtube.com.do/127.0.0.1#5335 -ipset=/youtube.com.do/gfwlist -server=/youtube.com.by/127.0.0.1#5335 -ipset=/youtube.com.by/gfwlist -server=/tiktok.com/127.0.0.1#5335 -ipset=/tiktok.com/gfwlist -server=/yogify.com/127.0.0.1#5335 -ipset=/yogify.com/gfwlist -server=/youtube.com.bo/127.0.0.1#5335 -ipset=/youtube.com.bo/gfwlist +server=/beatsbydre-us.com/127.0.0.1#5335 +ipset=/beatsbydre-us.com/gfwlist server=/wii-u.com/127.0.0.1#5335 ipset=/wii-u.com/gfwlist -server=/youtube.com.bd/127.0.0.1#5335 -ipset=/youtube.com.bd/gfwlist -server=/moneywithfacebook.com/127.0.0.1#5335 -ipset=/moneywithfacebook.com/gfwlist -server=/youtube.com.au/127.0.0.1#5335 -ipset=/youtube.com.au/gfwlist -server=/nikestyles.com/127.0.0.1#5335 -ipset=/nikestyles.com/gfwlist -server=/routledgehandbooks.com/127.0.0.1#5335 -ipset=/routledgehandbooks.com/gfwlist -server=/dailymailonline.com/127.0.0.1#5335 -ipset=/dailymailonline.com/gfwlist -server=/ajtalk.com/127.0.0.1#5335 -ipset=/ajtalk.com/gfwlist -server=/verizondigitalmedia.com/127.0.0.1#5335 -ipset=/verizondigitalmedia.com/gfwlist -server=/youtube.co.za/127.0.0.1#5335 -ipset=/youtube.co.za/gfwlist -server=/bestbuys.com/127.0.0.1#5335 -ipset=/bestbuys.com/gfwlist -server=/youtube.co.tz/127.0.0.1#5335 -ipset=/youtube.co.tz/gfwlist -server=/vsphere.com/127.0.0.1#5335 -ipset=/vsphere.com/gfwlist -server=/youtube.co.nz/127.0.0.1#5335 -ipset=/youtube.co.nz/gfwlist +server=/bmw-motorrad.com/127.0.0.1#5335 +ipset=/bmw-motorrad.com/gfwlist server=/12diasderegalosdeitunes.gt/127.0.0.1#5335 ipset=/12diasderegalosdeitunes.gt/gfwlist -server=/squarecapital.com/127.0.0.1#5335 -ipset=/squarecapital.com/gfwlist -server=/attnetclient.com/127.0.0.1#5335 -ipset=/attnetclient.com/gfwlist -server=/youtube.co.kr/127.0.0.1#5335 -ipset=/youtube.co.kr/gfwlist -server=/whatsappbrand.com/127.0.0.1#5335 -ipset=/whatsappbrand.com/gfwlist -server=/ebay.pk/127.0.0.1#5335 -ipset=/ebay.pk/gfwlist -server=/youtube.co.il/127.0.0.1#5335 -ipset=/youtube.co.il/gfwlist -server=/mcdonalds.hk/127.0.0.1#5335 -ipset=/mcdonalds.hk/gfwlist -server=/ppaypal.com/127.0.0.1#5335 -ipset=/ppaypal.com/gfwlist +server=/faphdporn.com/127.0.0.1#5335 +ipset=/faphdporn.com/gfwlist server=/stackpath.com/127.0.0.1#5335 ipset=/stackpath.com/gfwlist -server=/bittrex.com/127.0.0.1#5335 -ipset=/bittrex.com/gfwlist -server=/youtube.co.ae/127.0.0.1#5335 -ipset=/youtube.co.ae/gfwlist -server=/youtube.ch/127.0.0.1#5335 -ipset=/youtube.ch/gfwlist -server=/airtunes.info/127.0.0.1#5335 -ipset=/airtunes.info/gfwlist -server=/castro.fm/127.0.0.1#5335 -ipset=/castro.fm/gfwlist -server=/youtube.by/127.0.0.1#5335 -ipset=/youtube.by/gfwlist -server=/youtube.am/127.0.0.1#5335 -ipset=/youtube.am/gfwlist -server=/ggpht.com/127.0.0.1#5335 -ipset=/ggpht.com/gfwlist +server=/theaffairs.com/127.0.0.1#5335 +ipset=/theaffairs.com/gfwlist +server=/encuentroscasualesoecuador.com/127.0.0.1#5335 +ipset=/encuentroscasualesoecuador.com/gfwlist server=/bmw.co.jp/127.0.0.1#5335 ipset=/bmw.co.jp/gfwlist -server=/get.page/127.0.0.1#5335 -ipset=/get.page/gfwlist -server=/get.dev/127.0.0.1#5335 -ipset=/get.dev/gfwlist server=/instagtram.com/127.0.0.1#5335 ipset=/instagtram.com/gfwlist -server=/registry.google/127.0.0.1#5335 -ipset=/registry.google/gfwlist server=/airwick.ro/127.0.0.1#5335 ipset=/airwick.ro/gfwlist -server=/googleadservices.com/127.0.0.1#5335 -ipset=/googleadservices.com/gfwlist -server=/googleadapis.com/127.0.0.1#5335 -ipset=/googleadapis.com/gfwlist -server=/google-analytics.com/127.0.0.1#5335 -ipset=/google-analytics.com/gfwlist -server=/bmw-motorrad.ro/127.0.0.1#5335 -ipset=/bmw-motorrad.ro/gfwlist -server=/facvebook.com/127.0.0.1#5335 -ipset=/facvebook.com/gfwlist -server=/doubleclick.com/127.0.0.1#5335 -ipset=/doubleclick.com/gfwlist -server=/app-measurement.com/127.0.0.1#5335 -ipset=/app-measurement.com/gfwlist -server=/db.tt/127.0.0.1#5335 -ipset=/db.tt/gfwlist -server=/foxaffiliateportal.com/127.0.0.1#5335 -ipset=/foxaffiliateportal.com/gfwlist -server=/whatsapp.org/127.0.0.1#5335 -ipset=/whatsapp.org/gfwlist -server=/slack-edge.com/127.0.0.1#5335 -ipset=/slack-edge.com/gfwlist -server=/manorama.com/127.0.0.1#5335 -ipset=/manorama.com/gfwlist +server=/javtasty.com/127.0.0.1#5335 +ipset=/javtasty.com/gfwlist server=/vimeocdn.com/127.0.0.1#5335 ipset=/vimeocdn.com/gfwlist -server=/microsoft.ro/127.0.0.1#5335 -ipset=/microsoft.ro/gfwlist -server=/cbs.com/127.0.0.1#5335 -ipset=/cbs.com/gfwlist -server=/customdrdrebeats.com/127.0.0.1#5335 -ipset=/customdrdrebeats.com/gfwlist -server=/intercomassets.com/127.0.0.1#5335 -ipset=/intercomassets.com/gfwlist +server=/bluehatnights.com/127.0.0.1#5335 +ipset=/bluehatnights.com/gfwlist +server=/myvodafone.com.au/127.0.0.1#5335 +ipset=/myvodafone.com.au/gfwlist +server=/piwheels.org/127.0.0.1#5335 +ipset=/piwheels.org/gfwlist server=/monsterbeatsbydrefactory.com/127.0.0.1#5335 ipset=/monsterbeatsbydrefactory.com/gfwlist -server=/blogspot.ru/127.0.0.1#5335 -ipset=/blogspot.ru/gfwlist -server=/blogspot.rs/127.0.0.1#5335 -ipset=/blogspot.rs/gfwlist -server=/blogspot.re/127.0.0.1#5335 -ipset=/blogspot.re/gfwlist -server=/monstersbeatbydres.com/127.0.0.1#5335 -ipset=/monstersbeatbydres.com/gfwlist -server=/beatbydre2013.com/127.0.0.1#5335 -ipset=/beatbydre2013.com/gfwlist -server=/nexpart.com/127.0.0.1#5335 -ipset=/nexpart.com/gfwlist +server=/apibay.org/127.0.0.1#5335 +ipset=/apibay.org/gfwlist server=/ehgt.org/127.0.0.1#5335 ipset=/ehgt.org/gfwlist -server=/mastercard.co.kr/127.0.0.1#5335 -ipset=/mastercard.co.kr/gfwlist -server=/beatsmonstersales.com/127.0.0.1#5335 -ipset=/beatsmonstersales.com/gfwlist -server=/blogspot.pe/127.0.0.1#5335 -ipset=/blogspot.pe/gfwlist +server=/disneymagicmoments.it/127.0.0.1#5335 +ipset=/disneymagicmoments.it/gfwlist +server=/doujinnomori.com/127.0.0.1#5335 +ipset=/doujinnomori.com/gfwlist server=/visa.com.ru/127.0.0.1#5335 ipset=/visa.com.ru/gfwlist -server=/blogspot.no/127.0.0.1#5335 -ipset=/blogspot.no/gfwlist -server=/opencollective.com/127.0.0.1#5335 -ipset=/opencollective.com/gfwlist server=/goldnikeclub.com/127.0.0.1#5335 ipset=/goldnikeclub.com/gfwlist -server=/slackb.com/127.0.0.1#5335 -ipset=/slackb.com/gfwlist -server=/fr-beatsbydrestore.com/127.0.0.1#5335 -ipset=/fr-beatsbydrestore.com/gfwlist -server=/m.me/127.0.0.1#5335 -ipset=/m.me/gfwlist -server=/blogspot.md/127.0.0.1#5335 -ipset=/blogspot.md/gfwlist -server=/blogspot.lu/127.0.0.1#5335 -ipset=/blogspot.lu/gfwlist -server=/fptolia.com/127.0.0.1#5335 -ipset=/fptolia.com/gfwlist -server=/gitlab-assets.oss-cn-hongkong.aliyuncs.com/127.0.0.1#5335 -ipset=/gitlab-assets.oss-cn-hongkong.aliyuncs.com/gfwlist -server=/blogspot.ie/127.0.0.1#5335 -ipset=/blogspot.ie/gfwlist -server=/blogspot.hk/127.0.0.1#5335 -ipset=/blogspot.hk/gfwlist -server=/blogspot.gr/127.0.0.1#5335 -ipset=/blogspot.gr/gfwlist -server=/blogspot.fr/127.0.0.1#5335 -ipset=/blogspot.fr/gfwlist -server=/blogspot.fi/127.0.0.1#5335 -ipset=/blogspot.fi/gfwlist +server=/6-ar.com/127.0.0.1#5335 +ipset=/6-ar.com/gfwlist server=/ebayvietnam.net/127.0.0.1#5335 ipset=/ebayvietnam.net/gfwlist -server=/iphoneimessage.com/127.0.0.1#5335 -ipset=/iphoneimessage.com/gfwlist -server=/blogspot.dk/127.0.0.1#5335 -ipset=/blogspot.dk/gfwlist -server=/blogspot.de/127.0.0.1#5335 -ipset=/blogspot.de/gfwlist -server=/blogspot.cz/127.0.0.1#5335 -ipset=/blogspot.cz/gfwlist server=/digitalid.ch/127.0.0.1#5335 ipset=/digitalid.ch/gfwlist server=/akamai-thailand.com/127.0.0.1#5335 ipset=/akamai-thailand.com/gfwlist -server=/gwktravelex.nl/127.0.0.1#5335 -ipset=/gwktravelex.nl/gfwlist -server=/blogspot.com.uy/127.0.0.1#5335 -ipset=/blogspot.com.uy/gfwlist -server=/blogspot.com.tr/127.0.0.1#5335 -ipset=/blogspot.com.tr/gfwlist -server=/pixnet.cc/127.0.0.1#5335 -ipset=/pixnet.cc/gfwlist +server=/xhamster.xxx/127.0.0.1#5335 +ipset=/xhamster.xxx/gfwlist server=/bestbuy.ca/127.0.0.1#5335 ipset=/bestbuy.ca/gfwlist -server=/direcpath.com/127.0.0.1#5335 -ipset=/direcpath.com/gfwlist -server=/t.me/127.0.0.1#5335 -ipset=/t.me/gfwlist -server=/blogspot.com.eg/127.0.0.1#5335 -ipset=/blogspot.com.eg/gfwlist +server=/cherry-tale.com/127.0.0.1#5335 +ipset=/cherry-tale.com/gfwlist server=/disney.in/127.0.0.1#5335 ipset=/disney.in/gfwlist server=/canon.fr/127.0.0.1#5335 ipset=/canon.fr/gfwlist -server=/blogspot.com.cy/127.0.0.1#5335 -ipset=/blogspot.com.cy/gfwlist -server=/blogspot.com.br/127.0.0.1#5335 -ipset=/blogspot.com.br/gfwlist -server=/blogspot.com.au/127.0.0.1#5335 -ipset=/blogspot.com.au/gfwlist server=/youtube.si/127.0.0.1#5335 ipset=/youtube.si/gfwlist -server=/tandberg-china.com/127.0.0.1#5335 -ipset=/tandberg-china.com/gfwlist -server=/blogspot.co.il/127.0.0.1#5335 -ipset=/blogspot.co.il/gfwlist -server=/blogspot.cl/127.0.0.1#5335 -ipset=/blogspot.cl/gfwlist +server=/faproulette.online/127.0.0.1#5335 +ipset=/faproulette.online/gfwlist server=/go-disneyworldgo.com/127.0.0.1#5335 ipset=/go-disneyworldgo.com/gfwlist -server=/mini.tm/127.0.0.1#5335 -ipset=/mini.tm/gfwlist -server=/blogspot.ch/127.0.0.1#5335 -ipset=/blogspot.ch/gfwlist -server=/directvpomise.com/127.0.0.1#5335 -ipset=/directvpomise.com/gfwlist -server=/ao3.org/127.0.0.1#5335 -ipset=/ao3.org/gfwlist -server=/needforspeedboost.com/127.0.0.1#5335 -ipset=/needforspeedboost.com/gfwlist -server=/blogspot.ba/127.0.0.1#5335 -ipset=/blogspot.ba/gfwlist +server=/directvinternet.com/127.0.0.1#5335 +ipset=/directvinternet.com/gfwlist +server=/facebokok.com/127.0.0.1#5335 +ipset=/facebokok.com/gfwlist +server=/ikea.cz/127.0.0.1#5335 +ipset=/ikea.cz/gfwlist server=/sundanceignite2016.com/127.0.0.1#5335 ipset=/sundanceignite2016.com/gfwlist -server=/gobuyonlinestore.net/127.0.0.1#5335 -ipset=/gobuyonlinestore.net/gfwlist -server=/pornhub.com/127.0.0.1#5335 -ipset=/pornhub.com/gfwlist +server=/gemfury.com/127.0.0.1#5335 +ipset=/gemfury.com/gfwlist server=/bmw-connecteddrive.sg/127.0.0.1#5335 ipset=/bmw-connecteddrive.sg/gfwlist -server=/blogspot.am/127.0.0.1#5335 -ipset=/blogspot.am/gfwlist -server=/binance.charity/127.0.0.1#5335 -ipset=/binance.charity/gfwlist -server=/blogspot.ae/127.0.0.1#5335 -ipset=/blogspot.ae/gfwlist server=/geforce.com/127.0.0.1#5335 ipset=/geforce.com/gfwlist server=/dtv2009offers.com/127.0.0.1#5335 ipset=/dtv2009offers.com/gfwlist -server=/sa78gs.wpc.edgecastcdn.net/127.0.0.1#5335 -ipset=/sa78gs.wpc.edgecastcdn.net/gfwlist server=/nexcat.com/127.0.0.1#5335 ipset=/nexcat.com/gfwlist -server=/gigabyte2.azureedge.net/127.0.0.1#5335 -ipset=/gigabyte2.azureedge.net/gfwlist -server=/udfs.com/127.0.0.1#5335 -ipset=/udfs.com/gfwlist -server=/gigabyte.com/127.0.0.1#5335 -ipset=/gigabyte.com/gfwlist +server=/nowjav.com/127.0.0.1#5335 +ipset=/nowjav.com/gfwlist +server=/bridgestonerapiddelivery.com/127.0.0.1#5335 +ipset=/bridgestonerapiddelivery.com/gfwlist server=/wal-mart.com/127.0.0.1#5335 ipset=/wal-mart.com/gfwlist server=/c-spanvideo.org/127.0.0.1#5335 ipset=/c-spanvideo.org/gfwlist -server=/vanish.cl/127.0.0.1#5335 -ipset=/vanish.cl/gfwlist -server=/workplaceusecases.com/127.0.0.1#5335 -ipset=/workplaceusecases.com/gfwlist -server=/zuckerberg.net/127.0.0.1#5335 -ipset=/zuckerberg.net/gfwlist -server=/zuckerberg.com/127.0.0.1#5335 -ipset=/zuckerberg.com/gfwlist -server=/wwwfacebook.com/127.0.0.1#5335 -ipset=/wwwfacebook.com/gfwlist -server=/bmwhk.com/127.0.0.1#5335 -ipset=/bmwhk.com/gfwlist +server=/99thz.cc/127.0.0.1#5335 +ipset=/99thz.cc/gfwlist server=/bmw.com.pa/127.0.0.1#5335 ipset=/bmw.com.pa/gfwlist server=/singtaola.com/127.0.0.1#5335 ipset=/singtaola.com/gfwlist -server=/2013beatshdcybermonday.com/127.0.0.1#5335 -ipset=/2013beatshdcybermonday.com/gfwlist -server=/cdn77.scoreuniverse.com/127.0.0.1#5335 -ipset=/cdn77.scoreuniverse.com/gfwlist -server=/supportfacebook.com/127.0.0.1#5335 -ipset=/supportfacebook.com/gfwlist -server=/sportstream.com/127.0.0.1#5335 -ipset=/sportstream.com/gfwlist -server=/sportsfacebook.com/127.0.0.1#5335 -ipset=/sportsfacebook.com/gfwlist -server=/shopfacebook.com/127.0.0.1#5335 -ipset=/shopfacebook.com/gfwlist -server=/fcebook.com/127.0.0.1#5335 -ipset=/fcebook.com/gfwlist -server=/nextstop.com/127.0.0.1#5335 -ipset=/nextstop.com/gfwlist -server=/visa.so/127.0.0.1#5335 -ipset=/visa.so/gfwlist -server=/youtube.com.az/127.0.0.1#5335 -ipset=/youtube.com.az/gfwlist +server=/128100.xyz/127.0.0.1#5335 +ipset=/128100.xyz/gfwlist +server=/empornium.site/127.0.0.1#5335 +ipset=/empornium.site/gfwlist +server=/novinhabucetuda.com/127.0.0.1#5335 +ipset=/novinhabucetuda.com/gfwlist server=/wwwdecide.com/127.0.0.1#5335 ipset=/wwwdecide.com/gfwlist -server=/mastercard.rs/127.0.0.1#5335 -ipset=/mastercard.rs/gfwlist +server=/apornvideo.com/127.0.0.1#5335 +ipset=/apornvideo.com/gfwlist server=/uun86.com/127.0.0.1#5335 ipset=/uun86.com/gfwlist -server=/mobilefacebook.com/127.0.0.1#5335 -ipset=/mobilefacebook.com/gfwlist -server=/bmw-int1.com/127.0.0.1#5335 -ipset=/bmw-int1.com/gfwlist server=/nflxsearch.net/127.0.0.1#5335 ipset=/nflxsearch.net/gfwlist -server=/disney.fi/127.0.0.1#5335 -ipset=/disney.fi/gfwlist -server=/disney.io/127.0.0.1#5335 -ipset=/disney.io/gfwlist -server=/swtor.com/127.0.0.1#5335 -ipset=/swtor.com/gfwlist -server=/midentsolutions.com/127.0.0.1#5335 -ipset=/midentsolutions.com/gfwlist -server=/markzuckerberg.com/127.0.0.1#5335 -ipset=/markzuckerberg.com/gfwlist -server=/scholar.google.com/127.0.0.1#5335 -ipset=/scholar.google.com/gfwlist -server=/canon-europa.com/127.0.0.1#5335 -ipset=/canon-europa.com/gfwlist +server=/esp32.com/127.0.0.1#5335 +ipset=/esp32.com/gfwlist +server=/hoyoverse.com/127.0.0.1#5335 +ipset=/hoyoverse.com/gfwlist +server=/pornluxme.com/127.0.0.1#5335 +ipset=/pornluxme.com/gfwlist server=/vimeoondemand.com/127.0.0.1#5335 ipset=/vimeoondemand.com/gfwlist -server=/singpao.com.hk/127.0.0.1#5335 -ipset=/singpao.com.hk/gfwlist -server=/oxfordhandbooks.com/127.0.0.1#5335 -ipset=/oxfordhandbooks.com/gfwlist -server=/repsneakermall.com/127.0.0.1#5335 -ipset=/repsneakermall.com/gfwlist -server=/liverail.tv/127.0.0.1#5335 -ipset=/liverail.tv/gfwlist -server=/mastercard.sk/127.0.0.1#5335 -ipset=/mastercard.sk/gfwlist +server=/binancezh.pro/127.0.0.1#5335 +ipset=/binancezh.pro/gfwlist +server=/cherryasia.com/127.0.0.1#5335 +ipset=/cherryasia.com/gfwlist server=/facebookportal.com/127.0.0.1#5335 ipset=/facebookportal.com/gfwlist server=/ecapi-pchome.cdn.hinet.net/127.0.0.1#5335 ipset=/ecapi-pchome.cdn.hinet.net/gfwlist -server=/internet.org/127.0.0.1#5335 -ipset=/internet.org/gfwlist -server=/apple.cl/127.0.0.1#5335 -ipset=/apple.cl/gfwlist -server=/howtohackfacebook-account.com/127.0.0.1#5335 -ipset=/howtohackfacebook-account.com/gfwlist -server=/hifacebook.info/127.0.0.1#5335 -ipset=/hifacebook.info/gfwlist -server=/bmwmagazine.com/127.0.0.1#5335 -ipset=/bmwmagazine.com/gfwlist +server=/pornotime.net/127.0.0.1#5335 +ipset=/pornotime.net/gfwlist +server=/playcover.workers.dev/127.0.0.1#5335 +ipset=/playcover.workers.dev/gfwlist +server=/eromanga-cafe.com/127.0.0.1#5335 +ipset=/eromanga-cafe.com/gfwlist server=/monsterbydrebeat.com/127.0.0.1#5335 ipset=/monsterbydrebeat.com/gfwlist -server=/groups.com/127.0.0.1#5335 -ipset=/groups.com/gfwlist server=/leaguehighschool.com/127.0.0.1#5335 ipset=/leaguehighschool.com/gfwlist -server=/volvotrucks.qa/127.0.0.1#5335 -ipset=/volvotrucks.qa/gfwlist -server=/gfacecbook.com/127.0.0.1#5335 -ipset=/gfacecbook.com/gfwlist server=/dettol.pt/127.0.0.1#5335 ipset=/dettol.pt/gfwlist server=/veet.com/127.0.0.1#5335 ipset=/veet.com/gfwlist -server=/yahoo.co.vi/127.0.0.1#5335 -ipset=/yahoo.co.vi/gfwlist -server=/fundraisingwithfacebook.com/127.0.0.1#5335 -ipset=/fundraisingwithfacebook.com/gfwlist +server=/explorespanking.com/127.0.0.1#5335 +ipset=/explorespanking.com/gfwlist server=/spore.com/127.0.0.1#5335 ipset=/spore.com/gfwlist -server=/applenews.hamburg/127.0.0.1#5335 -ipset=/applenews.hamburg/gfwlist -server=/friendfeed.com/127.0.0.1#5335 -ipset=/friendfeed.com/gfwlist -server=/friendfeed-media.com/127.0.0.1#5335 -ipset=/friendfeed-media.com/gfwlist -server=/friendfeed-api.com/127.0.0.1#5335 -ipset=/friendfeed-api.com/gfwlist server=/dot.net/127.0.0.1#5335 ipset=/dot.net/gfwlist -server=/friendfed.com/127.0.0.1#5335 -ipset=/friendfed.com/gfwlist server=/viacomcbs.com/127.0.0.1#5335 ipset=/viacomcbs.com/gfwlist -server=/amerikaovozi.com/127.0.0.1#5335 -ipset=/amerikaovozi.com/gfwlist -server=/firestonecompleteautocare.com/127.0.0.1#5335 -ipset=/firestonecompleteautocare.com/gfwlist -server=/freefacebookads.net/127.0.0.1#5335 -ipset=/freefacebookads.net/gfwlist -server=/epochstories.com/127.0.0.1#5335 -ipset=/epochstories.com/gfwlist -server=/potenza.jp/127.0.0.1#5335 -ipset=/potenza.jp/gfwlist -server=/swisstsa.li/127.0.0.1#5335 -ipset=/swisstsa.li/gfwlist -server=/wiremoneytoirelandwithxoomeasierandcheaper.com/127.0.0.1#5335 -ipset=/wiremoneytoirelandwithxoomeasierandcheaper.com/gfwlist server=/youtubego.co.in/127.0.0.1#5335 ipset=/youtubego.co.in/gfwlist -server=/freefacebook.net/127.0.0.1#5335 -ipset=/freefacebook.net/gfwlist -server=/freeb.com/127.0.0.1#5335 -ipset=/freeb.com/gfwlist -server=/hulunetwork.com/127.0.0.1#5335 -ipset=/hulunetwork.com/gfwlist server=/mini-connected.ch/127.0.0.1#5335 ipset=/mini-connected.ch/gfwlist -server=/shopbeatsdre.com/127.0.0.1#5335 -ipset=/shopbeatsdre.com/gfwlist +server=/strepsils.ru/127.0.0.1#5335 +ipset=/strepsils.ru/gfwlist server=/kk.stream/127.0.0.1#5335 ipset=/kk.stream/gfwlist -server=/myfoxhurricane.com/127.0.0.1#5335 -ipset=/myfoxhurricane.com/gfwlist -server=/bbyintl.com/127.0.0.1#5335 -ipset=/bbyintl.com/gfwlist -server=/fracebook.com/127.0.0.1#5335 -ipset=/fracebook.com/gfwlist -server=/google.com.bd/127.0.0.1#5335 -ipset=/google.com.bd/gfwlist -server=/leaguesharp.info/127.0.0.1#5335 -ipset=/leaguesharp.info/gfwlist -server=/yjcontentdelivery.com/127.0.0.1#5335 -ipset=/yjcontentdelivery.com/gfwlist +server=/designeriphonescases.com/127.0.0.1#5335 +ipset=/designeriphonescases.com/gfwlist +server=/porn-star.com/127.0.0.1#5335 +ipset=/porn-star.com/gfwlist +server=/onlinexxxgames.com/127.0.0.1#5335 +ipset=/onlinexxxgames.com/gfwlist server=/shotwithgeforce.com/127.0.0.1#5335 ipset=/shotwithgeforce.com/gfwlist -server=/fescebook.com/127.0.0.1#5335 -ipset=/fescebook.com/gfwlist -server=/uun95.com/127.0.0.1#5335 -ipset=/uun95.com/gfwlist -server=/ferabook.com/127.0.0.1#5335 -ipset=/ferabook.com/gfwlist -server=/fececbook.com/127.0.0.1#5335 -ipset=/fececbook.com/gfwlist -server=/feceboox.com/127.0.0.1#5335 -ipset=/feceboox.com/gfwlist -server=/azure.net/127.0.0.1#5335 -ipset=/azure.net/gfwlist server=/mcdonalds.com.hk/127.0.0.1#5335 ipset=/mcdonalds.com.hk/gfwlist server=/heyzo.com/127.0.0.1#5335 ipset=/heyzo.com/gfwlist -server=/beatsbydre2081.com/127.0.0.1#5335 -ipset=/beatsbydre2081.com/gfwlist server=/hpcodewarsbcn.com/127.0.0.1#5335 ipset=/hpcodewarsbcn.com/gfwlist -server=/fecbbok.com/127.0.0.1#5335 -ipset=/fecbbok.com/gfwlist server=/dmm-extension.com/127.0.0.1#5335 ipset=/dmm-extension.com/gfwlist -server=/vmglobal.net/127.0.0.1#5335 -ipset=/vmglobal.net/gfwlist -server=/bmw-m.com/127.0.0.1#5335 -ipset=/bmw-m.com/gfwlist +server=/windowsupdate.com/127.0.0.1#5335 +ipset=/windowsupdate.com/gfwlist server=/akamaiphillipines.net/127.0.0.1#5335 ipset=/akamaiphillipines.net/gfwlist -server=/cheapestbeatsdrdre.com/127.0.0.1#5335 -ipset=/cheapestbeatsdrdre.com/gfwlist -server=/nextechafrica.net/127.0.0.1#5335 -ipset=/nextechafrica.net/gfwlist server=/visa-atm.com/127.0.0.1#5335 ipset=/visa-atm.com/gfwlist -server=/fdacebook.info/127.0.0.1#5335 -ipset=/fdacebook.info/gfwlist -server=/gcrtires.com/127.0.0.1#5335 -ipset=/gcrtires.com/gfwlist -server=/fcebookk.com/127.0.0.1#5335 -ipset=/fcebookk.com/gfwlist -server=/online-deals.net/127.0.0.1#5335 -ipset=/online-deals.net/gfwlist +server=/pornbozz.com/127.0.0.1#5335 +ipset=/pornbozz.com/gfwlist server=/linegame.jp/127.0.0.1#5335 ipset=/linegame.jp/gfwlist server=/xn--gogl-1nd42e.com/127.0.0.1#5335 ipset=/xn--gogl-1nd42e.com/gfwlist server=/bmw.com.mo/127.0.0.1#5335 ipset=/bmw.com.mo/gfwlist -server=/parstream.com/127.0.0.1#5335 -ipset=/parstream.com/gfwlist -server=/fbworkmail.com/127.0.0.1#5335 -ipset=/fbworkmail.com/gfwlist +server=/bdawnvr.xyz/127.0.0.1#5335 +ipset=/bdawnvr.xyz/gfwlist server=/bloomberglaw.com/127.0.0.1#5335 ipset=/bloomberglaw.com/gfwlist -server=/ieee-ecce.org/127.0.0.1#5335 -ipset=/ieee-ecce.org/gfwlist -server=/nurofen.ie/127.0.0.1#5335 -ipset=/nurofen.ie/gfwlist -server=/faccebook.com/127.0.0.1#5335 -ipset=/faccebook.com/gfwlist -server=/ssl-certificate.ch/127.0.0.1#5335 -ipset=/ssl-certificate.ch/gfwlist -server=/volvotruckcenter.se/127.0.0.1#5335 -ipset=/volvotruckcenter.se/gfwlist server=/qualcomm.com/127.0.0.1#5335 ipset=/qualcomm.com/gfwlist -server=/fbsbx.com/127.0.0.1#5335 -ipset=/fbsbx.com/gfwlist -server=/faacebok.com/127.0.0.1#5335 -ipset=/faacebok.com/gfwlist -server=/duckduckgo.com/127.0.0.1#5335 -ipset=/duckduckgo.com/gfwlist -server=/fbreg.com/127.0.0.1#5335 -ipset=/fbreg.com/gfwlist -server=/paypal-search.com/127.0.0.1#5335 -ipset=/paypal-search.com/gfwlist -server=/nvidia.com.tw/127.0.0.1#5335 -ipset=/nvidia.com.tw/gfwlist +server=/scoreuniverse.com/127.0.0.1#5335 +ipset=/scoreuniverse.com/gfwlist +server=/czechmassage.com/127.0.0.1#5335 +ipset=/czechmassage.com/gfwlist server=/attexperts.com/127.0.0.1#5335 ipset=/attexperts.com/gfwlist server=/soundofhope.org/127.0.0.1#5335 ipset=/soundofhope.org/gfwlist server=/swissign.com/127.0.0.1#5335 ipset=/swissign.com/gfwlist -server=/fbinnovation.com/127.0.0.1#5335 -ipset=/fbinnovation.com/gfwlist -server=/12diasderegalosdeitunes.com.hn/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.com.hn/gfwlist -server=/wwwebay.net/127.0.0.1#5335 -ipset=/wwwebay.net/gfwlist +server=/dndbeyond.com/127.0.0.1#5335 +ipset=/dndbeyond.com/gfwlist server=/thawte.de/127.0.0.1#5335 ipset=/thawte.de/gfwlist -server=/fbfeedback.com/127.0.0.1#5335 -ipset=/fbfeedback.com/gfwlist -server=/mairbeats.com/127.0.0.1#5335 -ipset=/mairbeats.com/gfwlist -server=/vmwaredemandcenter.com/127.0.0.1#5335 -ipset=/vmwaredemandcenter.com/gfwlist -server=/fbboostyourbusiness.com/127.0.0.1#5335 -ipset=/fbboostyourbusiness.com/gfwlist +server=/picpost.com/127.0.0.1#5335 +ipset=/picpost.com/gfwlist +server=/animalzoosex.me/127.0.0.1#5335 +ipset=/animalzoosex.me/gfwlist server=/motionpictureser.com/127.0.0.1#5335 ipset=/motionpictureser.com/gfwlist -server=/paisapay.cc/127.0.0.1#5335 -ipset=/paisapay.cc/gfwlist +server=/shopee.sg/127.0.0.1#5335 +ipset=/shopee.sg/gfwlist server=/bloombergspace.com/127.0.0.1#5335 ipset=/bloombergspace.com/gfwlist -server=/statics-marketingsites-eus-ms-com.akamaized.net/127.0.0.1#5335 -ipset=/statics-marketingsites-eus-ms-com.akamaized.net/gfwlist server=/lghvacstory.com/127.0.0.1#5335 ipset=/lghvacstory.com/gfwlist -server=/blzddistkr1-a.akamaihd.net/127.0.0.1#5335 -ipset=/blzddistkr1-a.akamaihd.net/gfwlist -server=/newsmaxtv.com/127.0.0.1#5335 -ipset=/newsmaxtv.com/gfwlist -server=/bowsersinsidestory.com/127.0.0.1#5335 -ipset=/bowsersinsidestory.com/gfwlist -server=/fb.careers/127.0.0.1#5335 -ipset=/fb.careers/gfwlist server=/instagram-press.com/127.0.0.1#5335 ipset=/instagram-press.com/gfwlist server=/theepochtimessubscribe.com/127.0.0.1#5335 ipset=/theepochtimessubscribe.com/gfwlist -server=/intel.tf/127.0.0.1#5335 -ipset=/intel.tf/gfwlist -server=/fasebokk.com/127.0.0.1#5335 -ipset=/fasebokk.com/gfwlist -server=/faicbooc.com/127.0.0.1#5335 -ipset=/faicbooc.com/gfwlist -server=/ntnews.com.au/127.0.0.1#5335 -ipset=/ntnews.com.au/gfwlist +server=/pleasurebabe.com/127.0.0.1#5335 +ipset=/pleasurebabe.com/gfwlist +server=/tube2012.com/127.0.0.1#5335 +ipset=/tube2012.com/gfwlist server=/unlocklimitlesslearning.com/127.0.0.1#5335 ipset=/unlocklimitlesslearning.com/gfwlist -server=/minidealernet.com/127.0.0.1#5335 -ipset=/minidealernet.com/gfwlist -server=/mastercard.jo/127.0.0.1#5335 -ipset=/mastercard.jo/gfwlist -server=/monsterbeatsitaly.com/127.0.0.1#5335 -ipset=/monsterbeatsitaly.com/gfwlist -server=/fadebook.com/127.0.0.1#5335 -ipset=/fadebook.com/gfwlist -server=/facxebook.com/127.0.0.1#5335 -ipset=/facxebook.com/gfwlist -server=/facwebook.com/127.0.0.1#5335 -ipset=/facwebook.com/gfwlist -server=/doubleclick.net/127.0.0.1#5335 -ipset=/doubleclick.net/gfwlist -server=/biomedcentral.com/127.0.0.1#5335 -ipset=/biomedcentral.com/gfwlist -server=/facrbook.com/127.0.0.1#5335 -ipset=/facrbook.com/gfwlist -server=/bmw-art-journey.com/127.0.0.1#5335 -ipset=/bmw-art-journey.com/gfwlist +server=/anm.co.uk/127.0.0.1#5335 +ipset=/anm.co.uk/gfwlist +server=/newsensations.com/127.0.0.1#5335 +ipset=/newsensations.com/gfwlist server=/hulugo.com/127.0.0.1#5335 ipset=/hulugo.com/gfwlist -server=/fackebook.com/127.0.0.1#5335 -ipset=/fackebook.com/gfwlist -server=/getdropbox.com/127.0.0.1#5335 -ipset=/getdropbox.com/gfwlist -server=/facewook.com/127.0.0.1#5335 -ipset=/facewook.com/gfwlist -server=/icloud.pt/127.0.0.1#5335 -ipset=/icloud.pt/gfwlist -server=/facewbook.co/127.0.0.1#5335 -ipset=/facewbook.co/gfwlist -server=/huffingtonpost.ca/127.0.0.1#5335 -ipset=/huffingtonpost.ca/gfwlist -server=/facevbook.com/127.0.0.1#5335 -ipset=/facevbook.com/gfwlist -server=/muji.com.hk/127.0.0.1#5335 -ipset=/muji.com.hk/gfwlist -server=/facetook.com/127.0.0.1#5335 -ipset=/facetook.com/gfwlist -server=/facesounds.com/127.0.0.1#5335 -ipset=/facesounds.com/gfwlist -server=/facesbooc.com/127.0.0.1#5335 -ipset=/facesbooc.com/gfwlist -server=/faceobook.com/127.0.0.1#5335 -ipset=/faceobook.com/gfwlist -server=/vmwarecloud.com/127.0.0.1#5335 -ipset=/vmwarecloud.com/gfwlist -server=/sharepoint.com/127.0.0.1#5335 -ipset=/sharepoint.com/gfwlist -server=/facegbok.com/127.0.0.1#5335 -ipset=/facegbok.com/gfwlist -server=/faceebot.com/127.0.0.1#5335 -ipset=/faceebot.com/gfwlist -server=/faceebook.com/127.0.0.1#5335 -ipset=/faceebook.com/gfwlist -server=/monsterbeatshere.com/127.0.0.1#5335 -ipset=/monsterbeatshere.com/gfwlist -server=/disneytvajobs.com/127.0.0.1#5335 -ipset=/disneytvajobs.com/gfwlist -server=/facedbook.com/127.0.0.1#5335 -ipset=/facedbook.com/gfwlist -server=/facecook.org/127.0.0.1#5335 -ipset=/facecook.org/gfwlist -server=/secretchina.com/127.0.0.1#5335 -ipset=/secretchina.com/gfwlist -server=/foxredeem.com/127.0.0.1#5335 -ipset=/foxredeem.com/gfwlist +server=/nubileset.com/127.0.0.1#5335 +ipset=/nubileset.com/gfwlist +server=/pornachi.com/127.0.0.1#5335 +ipset=/pornachi.com/gfwlist +server=/verhentai.tv/127.0.0.1#5335 +ipset=/verhentai.tv/gfwlist +server=/shoptraivip.com/127.0.0.1#5335 +ipset=/shoptraivip.com/gfwlist +server=/anibooru.com/127.0.0.1#5335 +ipset=/anibooru.com/gfwlist +server=/scholar.google.com.sv/127.0.0.1#5335 +ipset=/scholar.google.com.sv/gfwlist server=/archlinux.org/127.0.0.1#5335 ipset=/archlinux.org/gfwlist -server=/revolv.com/127.0.0.1#5335 -ipset=/revolv.com/gfwlist -server=/facebopk.com/127.0.0.1#5335 -ipset=/facebopk.com/gfwlist -server=/faceboot.com/127.0.0.1#5335 -ipset=/faceboot.com/gfwlist -server=/applestorepro.eu/127.0.0.1#5335 -ipset=/applestorepro.eu/gfwlist +server=/every1dns.net/127.0.0.1#5335 +ipset=/every1dns.net/gfwlist +server=/zoozhamster.com/127.0.0.1#5335 +ipset=/zoozhamster.com/gfwlist server=/googel.com/127.0.0.1#5335 ipset=/googel.com/gfwlist -server=/faceboom.com/127.0.0.1#5335 -ipset=/faceboom.com/gfwlist -server=/facebooll.com/127.0.0.1#5335 -ipset=/facebooll.com/gfwlist -server=/huffingtonpost.kr/127.0.0.1#5335 -ipset=/huffingtonpost.kr/gfwlist -server=/facebookw.com/127.0.0.1#5335 -ipset=/facebookw.com/gfwlist -server=/google.com.mt/127.0.0.1#5335 -ipset=/google.com.mt/gfwlist +server=/binance.me/127.0.0.1#5335 +ipset=/binance.me/gfwlist server=/pre-bmwgroup.jobs/127.0.0.1#5335 ipset=/pre-bmwgroup.jobs/gfwlist -server=/facebooktv.net/127.0.0.1#5335 -ipset=/facebooktv.net/gfwlist -server=/custombeatssbydreus.com/127.0.0.1#5335 -ipset=/custombeatssbydreus.com/gfwlist -server=/realclearpolitics.com/127.0.0.1#5335 -ipset=/realclearpolitics.com/gfwlist -server=/calgon.com/127.0.0.1#5335 -ipset=/calgon.com/gfwlist -server=/facebooksuppliers.com/127.0.0.1#5335 -ipset=/facebooksuppliers.com/gfwlist +server=/freeuseporn.com/127.0.0.1#5335 +ipset=/freeuseporn.com/gfwlist +server=/nbabot.net/127.0.0.1#5335 +ipset=/nbabot.net/gfwlist +server=/hentaifromhell.org/127.0.0.1#5335 +ipset=/hentaifromhell.org/gfwlist +server=/aboutporno.net/127.0.0.1#5335 +ipset=/aboutporno.net/gfwlist server=/sourcingforebay.tv/127.0.0.1#5335 ipset=/sourcingforebay.tv/gfwlist server=/hketgroup.com/127.0.0.1#5335 ipset=/hketgroup.com/gfwlist -server=/simility.com/127.0.0.1#5335 -ipset=/simility.com/gfwlist -server=/facebooksupplier.com/127.0.0.1#5335 -ipset=/facebooksupplier.com/gfwlist -server=/facebookstudios.net/127.0.0.1#5335 -ipset=/facebookstudios.net/gfwlist -server=/facebookstories.com/127.0.0.1#5335 -ipset=/facebookstories.com/gfwlist -server=/facebooksafety.com/127.0.0.1#5335 -ipset=/facebooksafety.com/gfwlist +server=/91qk41rf.com/127.0.0.1#5335 +ipset=/91qk41rf.com/gfwlist server=/nintendo.at/127.0.0.1#5335 ipset=/nintendo.at/gfwlist -server=/evernote.com/127.0.0.1#5335 -ipset=/evernote.com/gfwlist -server=/facebooks.com/127.0.0.1#5335 -ipset=/facebooks.com/gfwlist -server=/facebookporno.net/127.0.0.1#5335 -ipset=/facebookporno.net/gfwlist -server=/facebookporn.org/127.0.0.1#5335 -ipset=/facebookporn.org/gfwlist +server=/sldolls.com/127.0.0.1#5335 +ipset=/sldolls.com/gfwlist server=/speeddreamride.com/127.0.0.1#5335 ipset=/speeddreamride.com/gfwlist -server=/ebaydlassifieds.com/127.0.0.1#5335 -ipset=/ebaydlassifieds.com/gfwlist server=/disney.my/127.0.0.1#5335 ipset=/disney.my/gfwlist -server=/facebookpoke.org/127.0.0.1#5335 -ipset=/facebookpoke.org/gfwlist +server=/hdouga.com/127.0.0.1#5335 +ipset=/hdouga.com/gfwlist server=/instagranm.com/127.0.0.1#5335 ipset=/instagranm.com/gfwlist -server=/facebookpoke.net/127.0.0.1#5335 -ipset=/facebookpoke.net/gfwlist +server=/hellven.net/127.0.0.1#5335 +ipset=/hellven.net/gfwlist server=/bridgestone.co.th/127.0.0.1#5335 ipset=/bridgestone.co.th/gfwlist server=/amazonworkdocs.com/127.0.0.1#5335 ipset=/amazonworkdocs.com/gfwlist -server=/facebookphonenumber.net/127.0.0.1#5335 -ipset=/facebookphonenumber.net/gfwlist -server=/minicooper.ca/127.0.0.1#5335 -ipset=/minicooper.ca/gfwlist -server=/facebookook.com/127.0.0.1#5335 -ipset=/facebookook.com/gfwlist -server=/xn--yt8h.la/127.0.0.1#5335 -ipset=/xn--yt8h.la/gfwlist +server=/ghettotube.com/127.0.0.1#5335 +ipset=/ghettotube.com/gfwlist +server=/useplannr.com/127.0.0.1#5335 +ipset=/useplannr.com/gfwlist server=/disney.se/127.0.0.1#5335 ipset=/disney.se/gfwlist -server=/bml.info/127.0.0.1#5335 -ipset=/bml.info/gfwlist -server=/duckduckgo.de/127.0.0.1#5335 -ipset=/duckduckgo.de/gfwlist -server=/ebaysoho.com/127.0.0.1#5335 -ipset=/ebaysoho.com/gfwlist -server=/itunes-radio.net/127.0.0.1#5335 -ipset=/itunes-radio.net/gfwlist -server=/facebooknfl.com/127.0.0.1#5335 -ipset=/facebooknfl.com/gfwlist -server=/rgpub.io/127.0.0.1#5335 -ipset=/rgpub.io/gfwlist -server=/savethedate.foo/127.0.0.1#5335 -ipset=/savethedate.foo/gfwlist -server=/icloud.ie/127.0.0.1#5335 -ipset=/icloud.ie/gfwlist -server=/facebookmarketing.info/127.0.0.1#5335 -ipset=/facebookmarketing.info/gfwlist -server=/facebookmanager.info/127.0.0.1#5335 -ipset=/facebookmanager.info/gfwlist -server=/ipadair.fr/127.0.0.1#5335 -ipset=/ipadair.fr/gfwlist -server=/facebookmail.tv/127.0.0.1#5335 -ipset=/facebookmail.tv/gfwlist +server=/fontexplorerx.com/127.0.0.1#5335 +ipset=/fontexplorerx.com/gfwlist +server=/yahoo.si/127.0.0.1#5335 +ipset=/yahoo.si/gfwlist +server=/fescebook.com/127.0.0.1#5335 +ipset=/fescebook.com/gfwlist +server=/arabgirls.us/127.0.0.1#5335 +ipset=/arabgirls.us/gfwlist +server=/eroterest.net/127.0.0.1#5335 +ipset=/eroterest.net/gfwlist +server=/justnudepic.com/127.0.0.1#5335 +ipset=/justnudepic.com/gfwlist server=/nikeairmaxs.com/127.0.0.1#5335 ipset=/nikeairmaxs.com/gfwlist server=/fox35orlando.com/127.0.0.1#5335 ipset=/fox35orlando.com/gfwlist -server=/kijijiautos.ca/127.0.0.1#5335 -ipset=/kijijiautos.ca/gfwlist -server=/headphoneshome.com/127.0.0.1#5335 -ipset=/headphoneshome.com/gfwlist -server=/facebooklogin.com/127.0.0.1#5335 -ipset=/facebooklogin.com/gfwlist -server=/appleipodsettlement.com/127.0.0.1#5335 -ipset=/appleipodsettlement.com/gfwlist -server=/cdngarenanow-a.akamaihd.net/127.0.0.1#5335 -ipset=/cdngarenanow-a.akamaihd.net/gfwlist -server=/facebooki.com/127.0.0.1#5335 -ipset=/facebooki.com/gfwlist -server=/facebookhub.com/127.0.0.1#5335 -ipset=/facebookhub.com/gfwlist +server=/seksmet.nl/127.0.0.1#5335 +ipset=/seksmet.nl/gfwlist server=/visa.pt/127.0.0.1#5335 ipset=/visa.pt/gfwlist -server=/mastercard.co.za/127.0.0.1#5335 -ipset=/mastercard.co.za/gfwlist -server=/ebayheels.com/127.0.0.1#5335 -ipset=/ebayheels.com/gfwlist -server=/facebookhome.cc/127.0.0.1#5335 -ipset=/facebookhome.cc/gfwlist -server=/paypal-innovationlab.com/127.0.0.1#5335 -ipset=/paypal-innovationlab.com/gfwlist +server=/celebgramme.com/127.0.0.1#5335 +ipset=/celebgramme.com/gfwlist +server=/d2mrry2to5rg.com/127.0.0.1#5335 +ipset=/d2mrry2to5rg.com/gfwlist server=/ebayoncampus.com/127.0.0.1#5335 ipset=/ebayoncampus.com/gfwlist -server=/facebookgraphsearch.com/127.0.0.1#5335 -ipset=/facebookgraphsearch.com/gfwlist -server=/facebookcoronavirus.com/127.0.0.1#5335 -ipset=/facebookcoronavirus.com/gfwlist -server=/facebookconsultant.org/127.0.0.1#5335 -ipset=/facebookconsultant.org/gfwlist -server=/facebookcom.com/127.0.0.1#5335 -ipset=/facebookcom.com/gfwlist -server=/frescolib.org/127.0.0.1#5335 -ipset=/frescolib.org/gfwlist -server=/facebookclub.com/127.0.0.1#5335 -ipset=/facebookclub.com/gfwlist -server=/facebookbrand.net/127.0.0.1#5335 -ipset=/facebookbrand.net/gfwlist -server=/gettyimages.com.mx/127.0.0.1#5335 -ipset=/gettyimages.com.mx/gfwlist -server=/facebookadvertisingsecrets.com/127.0.0.1#5335 -ipset=/facebookadvertisingsecrets.com/gfwlist -server=/facebook.us/127.0.0.1#5335 -ipset=/facebook.us/gfwlist -server=/facebook.shop/127.0.0.1#5335 -ipset=/facebook.shop/gfwlist -server=/disqus.com/127.0.0.1#5335 -ipset=/disqus.com/gfwlist -server=/wixapps.net/127.0.0.1#5335 -ipset=/wixapps.net/gfwlist -server=/facebook.nl/127.0.0.1#5335 -ipset=/facebook.nl/gfwlist -server=/fecebook.net/127.0.0.1#5335 -ipset=/fecebook.net/gfwlist -server=/huobigroup.com/127.0.0.1#5335 -ipset=/huobigroup.com/gfwlist +server=/sankei-eiga.co.jp/127.0.0.1#5335 +ipset=/sankei-eiga.co.jp/gfwlist +server=/renminbao.com/127.0.0.1#5335 +ipset=/renminbao.com/gfwlist +server=/youtrannytube.com/127.0.0.1#5335 +ipset=/youtrannytube.com/gfwlist +server=/vmwgcomms.com/127.0.0.1#5335 +ipset=/vmwgcomms.com/gfwlist server=/vidmpreview.com/127.0.0.1#5335 ipset=/vidmpreview.com/gfwlist -server=/facebook.hu/127.0.0.1#5335 -ipset=/facebook.hu/gfwlist -server=/facebook.net/127.0.0.1#5335 -ipset=/facebook.net/gfwlist -server=/canon.com/127.0.0.1#5335 -ipset=/canon.com/gfwlist -server=/facebook.br/127.0.0.1#5335 -ipset=/facebook.br/gfwlist -server=/paypal-prepagata.com/127.0.0.1#5335 -ipset=/paypal-prepagata.com/gfwlist -server=/terapeack.com/127.0.0.1#5335 -ipset=/terapeack.com/gfwlist -server=/facebook-texas-holdem.com/127.0.0.1#5335 -ipset=/facebook-texas-holdem.com/gfwlist +server=/finehub.com/127.0.0.1#5335 +ipset=/finehub.com/gfwlist server=/nyt.net/127.0.0.1#5335 ipset=/nyt.net/gfwlist -server=/oculusbrand.com/127.0.0.1#5335 -ipset=/oculusbrand.com/gfwlist -server=/facebook-pmdcenter.net/127.0.0.1#5335 -ipset=/facebook-pmdcenter.net/gfwlist server=/curseforge.com/127.0.0.1#5335 ipset=/curseforge.com/gfwlist server=/francemail.com/127.0.0.1#5335 ipset=/francemail.com/gfwlist -server=/shopcustomizedbeats.com/127.0.0.1#5335 -ipset=/shopcustomizedbeats.com/gfwlist -server=/storesense.com/127.0.0.1#5335 -ipset=/storesense.com/gfwlist +server=/nutaku.net/127.0.0.1#5335 +ipset=/nutaku.net/gfwlist server=/vfsco.se/127.0.0.1#5335 ipset=/vfsco.se/gfwlist -server=/facebook-newsroom.com/127.0.0.1#5335 -ipset=/facebook-newsroom.com/gfwlist -server=/facebook-forum.com/127.0.0.1#5335 -ipset=/facebook-forum.com/gfwlist -server=/easic.com/127.0.0.1#5335 -ipset=/easic.com/gfwlist -server=/easportsfootball.com/127.0.0.1#5335 -ipset=/easportsfootball.com/gfwlist +server=/04647.club/127.0.0.1#5335 +ipset=/04647.club/gfwlist server=/miniworkshop.com/127.0.0.1#5335 ipset=/miniworkshop.com/gfwlist server=/nike-org.com/127.0.0.1#5335 ipset=/nike-org.com/gfwlist -server=/facebook-corp.com/127.0.0.1#5335 -ipset=/facebook-corp.com/gfwlist -server=/microsoft.cz/127.0.0.1#5335 -ipset=/microsoft.cz/gfwlist -server=/faceboock.com/127.0.0.1#5335 -ipset=/faceboock.com/gfwlist server=/paypal-business.org/127.0.0.1#5335 ipset=/paypal-business.org/gfwlist -server=/visa.com.sg/127.0.0.1#5335 -ipset=/visa.com.sg/gfwlist server=/bmw.com.ph/127.0.0.1#5335 ipset=/bmw.com.ph/gfwlist server=/bookclubcorner.com/127.0.0.1#5335 ipset=/bookclubcorner.com/gfwlist -server=/faceboobok.com/127.0.0.1#5335 -ipset=/faceboobok.com/gfwlist -server=/beatswirelesscuffie.com/127.0.0.1#5335 -ipset=/beatswirelesscuffie.com/gfwlist -server=/faceboo.com/127.0.0.1#5335 -ipset=/faceboo.com/gfwlist -server=/betternike.com/127.0.0.1#5335 -ipset=/betternike.com/gfwlist -server=/facebomok.com/127.0.0.1#5335 -ipset=/facebomok.com/gfwlist -server=/fteproxy.org/127.0.0.1#5335 -ipset=/fteproxy.org/gfwlist -server=/attuverseonline.com/127.0.0.1#5335 -ipset=/attuverseonline.com/gfwlist +server=/xnxx4porn.com/127.0.0.1#5335 +ipset=/xnxx4porn.com/gfwlist +server=/eurobabeindex.com/127.0.0.1#5335 +ipset=/eurobabeindex.com/gfwlist server=/braintreeps.com/127.0.0.1#5335 ipset=/braintreeps.com/gfwlist -server=/renovacionxboxlive.com/127.0.0.1#5335 -ipset=/renovacionxboxlive.com/gfwlist -server=/facebokok.com/127.0.0.1#5335 -ipset=/facebokok.com/gfwlist -server=/facebokk.com/127.0.0.1#5335 -ipset=/facebokk.com/gfwlist -server=/canonproprinters.com/127.0.0.1#5335 -ipset=/canonproprinters.com/gfwlist -server=/beatsbydreonlines-ireland.com/127.0.0.1#5335 -ipset=/beatsbydreonlines-ireland.com/gfwlist -server=/facebokc.com/127.0.0.1#5335 -ipset=/facebokc.com/gfwlist -server=/facebokbook.com/127.0.0.1#5335 -ipset=/facebokbook.com/gfwlist -server=/facebocke.com/127.0.0.1#5335 -ipset=/facebocke.com/gfwlist -server=/faceboak.com/127.0.0.1#5335 -ipset=/faceboak.com/gfwlist -server=/google.co.uk/127.0.0.1#5335 -ipset=/google.co.uk/gfwlist +server=/siterips.org/127.0.0.1#5335 +ipset=/siterips.org/gfwlist server=/drebeats-singapore.net/127.0.0.1#5335 ipset=/drebeats-singapore.net/gfwlist -server=/facebkkk.com/127.0.0.1#5335 -ipset=/facebkkk.com/gfwlist -server=/desktopmovies.net/127.0.0.1#5335 -ipset=/desktopmovies.net/gfwlist -server=/botstop.com/127.0.0.1#5335 -ipset=/botstop.com/gfwlist -server=/arphic.com/127.0.0.1#5335 -ipset=/arphic.com/gfwlist -server=/facebdok.com/127.0.0.1#5335 -ipset=/facebdok.com/gfwlist -server=/dailymail.co.uk/127.0.0.1#5335 -ipset=/dailymail.co.uk/gfwlist -server=/ext-twitch.tv/127.0.0.1#5335 -ipset=/ext-twitch.tv/gfwlist -server=/facebboook.com/127.0.0.1#5335 -ipset=/facebboook.com/gfwlist -server=/facebbook.com/127.0.0.1#5335 -ipset=/facebbook.com/gfwlist -server=/faceabook.com/127.0.0.1#5335 -ipset=/faceabook.com/gfwlist +server=/czechhunter.com/127.0.0.1#5335 +ipset=/czechhunter.com/gfwlist +server=/bili999.com/127.0.0.1#5335 +ipset=/bili999.com/gfwlist server=/volvotrucks.sg/127.0.0.1#5335 ipset=/volvotrucks.sg/gfwlist -server=/face-book.com/127.0.0.1#5335 -ipset=/face-book.com/gfwlist server=/vct.news/127.0.0.1#5335 ipset=/vct.news/gfwlist -server=/facdebook.com/127.0.0.1#5335 -ipset=/facdebook.com/gfwlist server=/cashbycashapp.com/127.0.0.1#5335 ipset=/cashbycashapp.com/gfwlist -server=/newton.com/127.0.0.1#5335 -ipset=/newton.com/gfwlist server=/beats-headphones.us/127.0.0.1#5335 ipset=/beats-headphones.us/gfwlist -server=/firestonecomercial.com.mx/127.0.0.1#5335 -ipset=/firestonecomercial.com.mx/gfwlist -server=/facbool.com/127.0.0.1#5335 -ipset=/facbool.com/gfwlist server=/alphera.co.in/127.0.0.1#5335 ipset=/alphera.co.in/gfwlist -server=/facbook.com/127.0.0.1#5335 -ipset=/facbook.com/gfwlist -server=/facbeok.com/127.0.0.1#5335 -ipset=/facbeok.com/gfwlist -server=/youtube.co.zw/127.0.0.1#5335 -ipset=/youtube.co.zw/gfwlist -server=/faacebook.com/127.0.0.1#5335 -ipset=/faacebook.com/gfwlist -server=/dotfacebook.net/127.0.0.1#5335 -ipset=/dotfacebook.net/gfwlist +server=/shegods.com/127.0.0.1#5335 +ipset=/shegods.com/gfwlist server=/webex.co.uk/127.0.0.1#5335 ipset=/webex.co.uk/gfwlist -server=/adobesign.com/127.0.0.1#5335 -ipset=/adobesign.com/gfwlist -server=/bmw-connecteddrive.hu/127.0.0.1#5335 -ipset=/bmw-connecteddrive.hu/gfwlist -server=/como-hackearfacebook.com/127.0.0.1#5335 -ipset=/como-hackearfacebook.com/gfwlist -server=/china-facebook.com/127.0.0.1#5335 -ipset=/china-facebook.com/gfwlist -server=/celebgramme.com/127.0.0.1#5335 -ipset=/celebgramme.com/gfwlist -server=/careersatfb.com/127.0.0.1#5335 -ipset=/careersatfb.com/gfwlist -server=/fbf8.com/127.0.0.1#5335 -ipset=/fbf8.com/gfwlist -server=/reactjs.org/127.0.0.1#5335 -ipset=/reactjs.org/gfwlist -server=/atlasdmt.com/127.0.0.1#5335 -ipset=/atlasdmt.com/gfwlist +server=/driverxxx.com/127.0.0.1#5335 +ipset=/driverxxx.com/gfwlist server=/youtube.hu/127.0.0.1#5335 ipset=/youtube.hu/gfwlist -server=/canon.be/127.0.0.1#5335 -ipset=/canon.be/gfwlist server=/alphabet.asia/127.0.0.1#5335 ipset=/alphabet.asia/gfwlist -server=/bloombergbriefs.com/127.0.0.1#5335 -ipset=/bloombergbriefs.com/gfwlist +server=/claravenger.com/127.0.0.1#5335 +ipset=/claravenger.com/gfwlist server=/epicbrowser.com/127.0.0.1#5335 ipset=/epicbrowser.com/gfwlist -server=/myrewardzone.com/127.0.0.1#5335 -ipset=/myrewardzone.com/gfwlist -server=/beautyandthebeastmusical.co.uk/127.0.0.1#5335 -ipset=/beautyandthebeastmusical.co.uk/gfwlist +server=/beatsbydrdres.com/127.0.0.1#5335 +ipset=/beatsbydrdres.com/gfwlist server=/beatsbydreboxingdayca.com/127.0.0.1#5335 ipset=/beatsbydreboxingdayca.com/gfwlist -server=/acebooik.com/127.0.0.1#5335 -ipset=/acebooik.com/gfwlist server=/youtube.co.jp/127.0.0.1#5335 ipset=/youtube.co.jp/gfwlist server=/admob.com/127.0.0.1#5335 ipset=/admob.com/gfwlist -server=/whatsapp.net/127.0.0.1#5335 -ipset=/whatsapp.net/gfwlist server=/paypal-plaza.com/127.0.0.1#5335 ipset=/paypal-plaza.com/gfwlist -server=/whatsapp.info/127.0.0.1#5335 -ipset=/whatsapp.info/gfwlist -server=/rakuten.tw/127.0.0.1#5335 -ipset=/rakuten.tw/gfwlist -server=/verisign.info/127.0.0.1#5335 -ipset=/verisign.info/gfwlist -server=/typekit.net/127.0.0.1#5335 -ipset=/typekit.net/gfwlist +server=/alterauserforums.com/127.0.0.1#5335 +ipset=/alterauserforums.com/gfwlist server=/vfsco.com.br/127.0.0.1#5335 ipset=/vfsco.com.br/gfwlist -server=/whatsapp.cc/127.0.0.1#5335 -ipset=/whatsapp.cc/gfwlist -server=/blizzcon-a.akamaihd.net/127.0.0.1#5335 -ipset=/blizzcon-a.akamaihd.net/gfwlist -server=/nsimg.net/127.0.0.1#5335 -ipset=/nsimg.net/gfwlist -server=/oculusvr.com/127.0.0.1#5335 -ipset=/oculusvr.com/gfwlist -server=/visa.lt/127.0.0.1#5335 -ipset=/visa.lt/gfwlist +server=/cfwives.com/127.0.0.1#5335 +ipset=/cfwives.com/gfwlist server=/rbbusinessshop.com/127.0.0.1#5335 ipset=/rbbusinessshop.com/gfwlist -server=/wwwpaypass.com/127.0.0.1#5335 -ipset=/wwwpaypass.com/gfwlist server=/steamgames.com/127.0.0.1#5335 ipset=/steamgames.com/gfwlist -server=/gbnews.uk/127.0.0.1#5335 -ipset=/gbnews.uk/gfwlist -server=/maskedsingerfox.com/127.0.0.1#5335 -ipset=/maskedsingerfox.com/gfwlist -server=/facebook-pmdcenter.org/127.0.0.1#5335 -ipset=/facebook-pmdcenter.org/gfwlist -server=/oculus.com/127.0.0.1#5335 -ipset=/oculus.com/gfwlist -server=/gvt3.com/127.0.0.1#5335 -ipset=/gvt3.com/gfwlist -server=/nbabot.net/127.0.0.1#5335 -ipset=/nbabot.net/gfwlist +server=/aziani.com/127.0.0.1#5335 +ipset=/aziani.com/gfwlist +server=/youpornxvideos.net/127.0.0.1#5335 +ipset=/youpornxvideos.net/gfwlist server=/bmw.tt/127.0.0.1#5335 ipset=/bmw.tt/gfwlist server=/directvlosangeles.com/127.0.0.1#5335 ipset=/directvlosangeles.com/gfwlist -server=/epochtimes.pl/127.0.0.1#5335 -ipset=/epochtimes.pl/gfwlist -server=/web-instagram.net/127.0.0.1#5335 -ipset=/web-instagram.net/gfwlist -server=/online-instagram.com/127.0.0.1#5335 -ipset=/online-instagram.com/gfwlist -server=/facebhook.com/127.0.0.1#5335 -ipset=/facebhook.com/gfwlist -server=/theinstagramhack.com/127.0.0.1#5335 -ipset=/theinstagramhack.com/gfwlist -server=/volvopenta.nl/127.0.0.1#5335 -ipset=/volvopenta.nl/gfwlist -server=/lnstagram-help.com/127.0.0.1#5335 -ipset=/lnstagram-help.com/gfwlist +server=/javgrown.com/127.0.0.1#5335 +ipset=/javgrown.com/gfwlist +server=/sonypicturesanimation.com/127.0.0.1#5335 +ipset=/sonypicturesanimation.com/gfwlist server=/canon-emea.com/127.0.0.1#5335 ipset=/canon-emea.com/gfwlist -server=/bmwm.com/127.0.0.1#5335 -ipset=/bmwm.com/gfwlist -server=/kingstagram.com/127.0.0.1#5335 -ipset=/kingstagram.com/gfwlist -server=/instgram.com/127.0.0.1#5335 -ipset=/instgram.com/gfwlist -server=/instastyle.tv/127.0.0.1#5335 -ipset=/instastyle.tv/gfwlist -server=/vhxqa1.com/127.0.0.1#5335 -ipset=/vhxqa1.com/gfwlist -server=/blzmedia-a.akamaihd.net/127.0.0.1#5335 -ipset=/blzmedia-a.akamaihd.net/gfwlist +server=/escortgirls.be/127.0.0.1#5335 +ipset=/escortgirls.be/gfwlist +server=/faceboot.com/127.0.0.1#5335 +ipset=/faceboot.com/gfwlist server=/gopivotal.com/127.0.0.1#5335 ipset=/gopivotal.com/gfwlist -server=/braintreepayments.org/127.0.0.1#5335 -ipset=/braintreepayments.org/gfwlist -server=/instanttelegram.com/127.0.0.1#5335 -ipset=/instanttelegram.com/gfwlist server=/tvmedia.net.au/127.0.0.1#5335 ipset=/tvmedia.net.au/gfwlist -server=/21centuryaccess.com/127.0.0.1#5335 -ipset=/21centuryaccess.com/gfwlist -server=/volvobuses.com.ar/127.0.0.1#5335 -ipset=/volvobuses.com.ar/gfwlist server=/geeksquad.com/127.0.0.1#5335 ipset=/geeksquad.com/gfwlist server=/time.gov/127.0.0.1#5335 ipset=/time.gov/gfwlist server=/amplifyframework.com/127.0.0.1#5335 ipset=/amplifyframework.com/gfwlist -server=/sundayready.com/127.0.0.1#5335 -ipset=/sundayready.com/gfwlist -server=/instagrem.com/127.0.0.1#5335 -ipset=/instagrem.com/gfwlist server=/licensebuttons.net/127.0.0.1#5335 ipset=/licensebuttons.net/gfwlist -server=/thomsonreuters.com.br/127.0.0.1#5335 -ipset=/thomsonreuters.com.br/gfwlist -server=/instagramtips.com/127.0.0.1#5335 -ipset=/instagramtips.com/gfwlist -server=/zeronet.io/127.0.0.1#5335 -ipset=/zeronet.io/gfwlist -server=/aanaan.com/127.0.0.1#5335 -ipset=/aanaan.com/gfwlist -server=/hplatexknowledgecenter.com/127.0.0.1#5335 -ipset=/hplatexknowledgecenter.com/gfwlist +server=/scolle.net/127.0.0.1#5335 +ipset=/scolle.net/gfwlist +server=/microsoft365.com/127.0.0.1#5335 +ipset=/microsoft365.com/gfwlist server=/pypl.tv/127.0.0.1#5335 ipset=/pypl.tv/gfwlist -server=/riotforgegames.com/127.0.0.1#5335 -ipset=/riotforgegames.com/gfwlist -server=/instagramdi.com/127.0.0.1#5335 -ipset=/instagramdi.com/gfwlist -server=/sourcingforebay.net/127.0.0.1#5335 -ipset=/sourcingforebay.net/gfwlist server=/zeenews-fonts.s3.amazonaws.com/127.0.0.1#5335 ipset=/zeenews-fonts.s3.amazonaws.com/gfwlist -server=/instagramm.com/127.0.0.1#5335 -ipset=/instagramm.com/gfwlist -server=/drdrebeatsuk.com/127.0.0.1#5335 -ipset=/drdrebeatsuk.com/gfwlist +server=/groupfun.com/127.0.0.1#5335 +ipset=/groupfun.com/gfwlist server=/paypalbeacon.com/127.0.0.1#5335 ipset=/paypalbeacon.com/gfwlist -server=/instagramkusu.com/127.0.0.1#5335 -ipset=/instagramkusu.com/gfwlist server=/mray.club/127.0.0.1#5335 ipset=/mray.club/gfwlist -server=/origin.com/127.0.0.1#5335 -ipset=/origin.com/gfwlist -server=/icloud.vn/127.0.0.1#5335 -ipset=/icloud.vn/gfwlist -server=/thinkdifferent.us/127.0.0.1#5335 -ipset=/thinkdifferent.us/gfwlist -server=/instagramcn.com/127.0.0.1#5335 -ipset=/instagramcn.com/gfwlist -server=/instagramci.com/127.0.0.1#5335 -ipset=/instagramci.com/gfwlist -server=/pixiv.net/127.0.0.1#5335 -ipset=/pixiv.net/gfwlist +server=/pornoweb.hu/127.0.0.1#5335 +ipset=/pornoweb.hu/gfwlist +server=/4pig.com/127.0.0.1#5335 +ipset=/4pig.com/gfwlist +server=/zoig.com/127.0.0.1#5335 +ipset=/zoig.com/gfwlist server=/pokemonvgc.com/127.0.0.1#5335 ipset=/pokemonvgc.com/gfwlist -server=/apple.pl/127.0.0.1#5335 -ipset=/apple.pl/gfwlist -server=/canon.com.cy/127.0.0.1#5335 -ipset=/canon.com.cy/gfwlist -server=/vanish.ch/127.0.0.1#5335 -ipset=/vanish.ch/gfwlist server=/booking.com/127.0.0.1#5335 ipset=/booking.com/gfwlist -server=/payypal.com/127.0.0.1#5335 -ipset=/payypal.com/gfwlist -server=/workers.dev/127.0.0.1#5335 -ipset=/workers.dev/gfwlist server=/intel.sy/127.0.0.1#5335 ipset=/intel.sy/gfwlist -server=/instagda.com/127.0.0.1#5335 -ipset=/instagda.com/gfwlist -server=/foxsportsneworleans.com/127.0.0.1#5335 -ipset=/foxsportsneworleans.com/gfwlist -server=/instafallow.com/127.0.0.1#5335 -ipset=/instafallow.com/gfwlist -server=/steemit.com/127.0.0.1#5335 -ipset=/steemit.com/gfwlist +server=/paypal-signin.us/127.0.0.1#5335 +ipset=/paypal-signin.us/gfwlist +server=/yuraku.8v8.be/127.0.0.1#5335 +ipset=/yuraku.8v8.be/gfwlist server=/foxsportssupports.com/127.0.0.1#5335 ipset=/foxsportssupports.com/gfwlist -server=/instachecker.com/127.0.0.1#5335 -ipset=/instachecker.com/gfwlist -server=/instaadder.com/127.0.0.1#5335 -ipset=/instaadder.com/gfwlist -server=/scholar.google.si/127.0.0.1#5335 -ipset=/scholar.google.si/gfwlist -server=/dnsvisa.com/127.0.0.1#5335 -ipset=/dnsvisa.com/gfwlist -server=/igtv.com/127.0.0.1#5335 -ipset=/igtv.com/gfwlist -server=/igsonar.com/127.0.0.1#5335 -ipset=/igsonar.com/gfwlist server=/yahoo.com.om/127.0.0.1#5335 ipset=/yahoo.com.om/gfwlist -server=/volvobuses.se/127.0.0.1#5335 -ipset=/volvobuses.se/gfwlist server=/google.dk/127.0.0.1#5335 ipset=/google.dk/gfwlist -server=/ebuyheadphones.com/127.0.0.1#5335 -ipset=/ebuyheadphones.com/gfwlist -server=/cdninstagram.com/127.0.0.1#5335 -ipset=/cdninstagram.com/gfwlist -server=/applepremiumresellers.com.au/127.0.0.1#5335 -ipset=/applepremiumresellers.com.au/gfwlist -server=/palestineremix.com/127.0.0.1#5335 -ipset=/palestineremix.com/gfwlist -server=/acheterdesfollowersinstagram.com/127.0.0.1#5335 -ipset=/acheterdesfollowersinstagram.com/gfwlist -server=/achat-followers-instagram.com/127.0.0.1#5335 -ipset=/achat-followers-instagram.com/gfwlist server=/globaledu.org/127.0.0.1#5335 ipset=/globaledu.org/gfwlist -server=/battlefront2.com/127.0.0.1#5335 -ipset=/battlefront2.com/gfwlist -server=/swisssign-group.com/127.0.0.1#5335 -ipset=/swisssign-group.com/gfwlist -server=/amebaownd.com/127.0.0.1#5335 -ipset=/amebaownd.com/gfwlist -server=/thomsonreuters.com.ar/127.0.0.1#5335 -ipset=/thomsonreuters.com.ar/gfwlist -server=/airwatchqa.com/127.0.0.1#5335 -ipset=/airwatchqa.com/gfwlist -server=/s2stagehance.com/127.0.0.1#5335 -ipset=/s2stagehance.com/gfwlist -server=/airwatchexpress.com/127.0.0.1#5335 -ipset=/airwatchexpress.com/gfwlist -server=/air-watch.com/127.0.0.1#5335 -ipset=/air-watch.com/gfwlist -server=/vsphere.net/127.0.0.1#5335 -ipset=/vsphere.net/gfwlist -server=/foxuv.com/127.0.0.1#5335 -ipset=/foxuv.com/gfwlist +server=/veet.com.sg/127.0.0.1#5335 +ipset=/veet.com.sg/gfwlist +server=/wealth.com.tw/127.0.0.1#5335 +ipset=/wealth.com.tw/gfwlist +server=/downloadpass.com/127.0.0.1#5335 +ipset=/downloadpass.com/gfwlist +server=/global-sci.org/127.0.0.1#5335 +ipset=/global-sci.org/gfwlist server=/paragon.com/127.0.0.1#5335 ipset=/paragon.com/gfwlist -server=/miniofmonrovia.com/127.0.0.1#5335 -ipset=/miniofmonrovia.com/gfwlist -server=/wireguard.com/127.0.0.1#5335 -ipset=/wireguard.com/gfwlist -server=/aliverewind.com/127.0.0.1#5335 -ipset=/aliverewind.com/gfwlist -server=/aliveitsm.com/127.0.0.1#5335 -ipset=/aliveitsm.com/gfwlist -server=/hpcustomersupport.net/127.0.0.1#5335 -ipset=/hpcustomersupport.net/gfwlist -server=/nyansa.com/127.0.0.1#5335 -ipset=/nyansa.com/gfwlist -server=/kubeapps.com/127.0.0.1#5335 -ipset=/kubeapps.com/gfwlist -server=/durex.cl/127.0.0.1#5335 -ipset=/durex.cl/gfwlist -server=/cloudhealthtech.com/127.0.0.1#5335 -ipset=/cloudhealthtech.com/gfwlist -server=/dockerizer.com/127.0.0.1#5335 -ipset=/dockerizer.com/gfwlist +server=/bangkokstreetwhores.com/127.0.0.1#5335 +ipset=/bangkokstreetwhores.com/gfwlist +server=/genshin-porn.com/127.0.0.1#5335 +ipset=/genshin-porn.com/gfwlist server=/mastercard.com.ph/127.0.0.1#5335 ipset=/mastercard.com.ph/gfwlist -server=/bitnamiapp.com/127.0.0.1#5335 -ipset=/bitnamiapp.com/gfwlist server=/shopee.com/127.0.0.1#5335 ipset=/shopee.com/gfwlist -server=/badaas.com/127.0.0.1#5335 -ipset=/badaas.com/gfwlist -server=/bronto.com/127.0.0.1#5335 -ipset=/bronto.com/gfwlist -server=/officialbeatsbydrestore.com/127.0.0.1#5335 -ipset=/officialbeatsbydrestore.com/gfwlist -server=/sway-cdn.com/127.0.0.1#5335 -ipset=/sway-cdn.com/gfwlist -server=/vnware.net/127.0.0.1#5335 -ipset=/vnware.net/gfwlist -server=/cyber-bay.org/127.0.0.1#5335 -ipset=/cyber-bay.org/gfwlist +server=/123sex.top/127.0.0.1#5335 +ipset=/123sex.top/gfwlist server=/sonydesign.com/127.0.0.1#5335 ipset=/sonydesign.com/gfwlist -server=/forzaracingchampionship.com/127.0.0.1#5335 -ipset=/forzaracingchampionship.com/gfwlist -server=/vmworld2010.com/127.0.0.1#5335 -ipset=/vmworld2010.com/gfwlist -server=/vmwlearningplatform.com/127.0.0.1#5335 -ipset=/vmwlearningplatform.com/gfwlist -server=/vmwgcomms.com/127.0.0.1#5335 -ipset=/vmwgcomms.com/gfwlist -server=/vmwarestuff.com/127.0.0.1#5335 -ipset=/vmwarestuff.com/gfwlist -server=/vmwarelearningplatform.com/127.0.0.1#5335 -ipset=/vmwarelearningplatform.com/gfwlist -server=/vmwaregrid.com/127.0.0.1#5335 -ipset=/vmwaregrid.com/gfwlist -server=/tvb.com/127.0.0.1#5335 -ipset=/tvb.com/gfwlist +server=/myconstructionworld.net/127.0.0.1#5335 +ipset=/myconstructionworld.net/gfwlist +server=/celebforum.co/127.0.0.1#5335 +ipset=/celebforum.co/gfwlist server=/streamable.com/127.0.0.1#5335 ipset=/streamable.com/gfwlist server=/foxkansas.com/127.0.0.1#5335 ipset=/foxkansas.com/gfwlist server=/fbcdn.com/127.0.0.1#5335 ipset=/fbcdn.com/gfwlist -server=/awsautoscaling.com/127.0.0.1#5335 -ipset=/awsautoscaling.com/gfwlist -server=/casquebeatsfracheter.com/127.0.0.1#5335 -ipset=/casquebeatsfracheter.com/gfwlist -server=/vmwareausnews.com/127.0.0.1#5335 -ipset=/vmwareausnews.com/gfwlist -server=/pickshoesclothes.com/127.0.0.1#5335 -ipset=/pickshoesclothes.com/gfwlist -server=/hcaptchastatus.com/127.0.0.1#5335 -ipset=/hcaptchastatus.com/gfwlist -server=/dettol.pk/127.0.0.1#5335 -ipset=/dettol.pk/gfwlist -server=/scholar.google.co.nz/127.0.0.1#5335 -ipset=/scholar.google.co.nz/gfwlist -server=/realitykings.com/127.0.0.1#5335 -ipset=/realitykings.com/gfwlist -server=/hulupurchase.com/127.0.0.1#5335 -ipset=/hulupurchase.com/gfwlist -server=/drebeatsbydreoutlet.com/127.0.0.1#5335 -ipset=/drebeatsbydreoutlet.com/gfwlist -server=/shops-disney.com/127.0.0.1#5335 -ipset=/shops-disney.com/gfwlist -server=/spoti.fi/127.0.0.1#5335 -ipset=/spoti.fi/gfwlist -server=/foxnewsradio.com/127.0.0.1#5335 -ipset=/foxnewsradio.com/gfwlist -server=/e-hentai.org/127.0.0.1#5335 -ipset=/e-hentai.org/gfwlist -server=/firestonecomercial.com.br/127.0.0.1#5335 -ipset=/firestonecomercial.com.br/gfwlist -server=/sonypicturesstudios.com/127.0.0.1#5335 -ipset=/sonypicturesstudios.com/gfwlist -server=/feacebook.com/127.0.0.1#5335 -ipset=/feacebook.com/gfwlist -server=/ampproject.org/127.0.0.1#5335 -ipset=/ampproject.org/gfwlist -server=/virsto.com/127.0.0.1#5335 -ipset=/virsto.com/gfwlist -server=/vfabric.net/127.0.0.1#5335 -ipset=/vfabric.net/gfwlist +server=/retrohomevideos.com/127.0.0.1#5335 +ipset=/retrohomevideos.com/gfwlist +server=/wearehairy.com/127.0.0.1#5335 +ipset=/wearehairy.com/gfwlist server=/dcard.io/127.0.0.1#5335 ipset=/dcard.io/gfwlist server=/youtube.sa/127.0.0.1#5335 ipset=/youtube.sa/gfwlist -server=/ssdevrd.com/127.0.0.1#5335 -ipset=/ssdevrd.com/gfwlist -server=/snapvolumes.com/127.0.0.1#5335 -ipset=/snapvolumes.com/gfwlist -server=/mini-connected.be/127.0.0.1#5335 -ipset=/mini-connected.be/gfwlist -server=/steamcommunity-a.akamaihd.net/127.0.0.1#5335 -ipset=/steamcommunity-a.akamaihd.net/gfwlist -server=/facfacebook.com/127.0.0.1#5335 -ipset=/facfacebook.com/gfwlist -server=/itfromtheinside.com/127.0.0.1#5335 -ipset=/itfromtheinside.com/gfwlist -server=/hwslabs.com/127.0.0.1#5335 -ipset=/hwslabs.com/gfwlist -server=/greenplum.net/127.0.0.1#5335 -ipset=/greenplum.net/gfwlist +server=/21hub.com/127.0.0.1#5335 +ipset=/21hub.com/gfwlist server=/foxlexington.com/127.0.0.1#5335 ipset=/foxlexington.com/gfwlist -server=/iphone.com.gr/127.0.0.1#5335 -ipset=/iphone.com.gr/gfwlist -server=/udtrucksmeena.com/127.0.0.1#5335 -ipset=/udtrucksmeena.com/gfwlist -server=/getboxer.com/127.0.0.1#5335 -ipset=/getboxer.com/gfwlist -server=/9to5toys.com/127.0.0.1#5335 -ipset=/9to5toys.com/gfwlist -server=/mastercard.co.id/127.0.0.1#5335 -ipset=/mastercard.co.id/gfwlist -server=/xamarin.com/127.0.0.1#5335 -ipset=/xamarin.com/gfwlist -server=/starbucks.de/127.0.0.1#5335 -ipset=/starbucks.de/gfwlist -server=/mini-clubs-international.com/127.0.0.1#5335 -ipset=/mini-clubs-international.com/gfwlist -server=/gemfire.net/127.0.0.1#5335 -ipset=/gemfire.net/gfwlist +server=/lindylist.org/127.0.0.1#5335 +ipset=/lindylist.org/gfwlist server=/dvh30n.vip/127.0.0.1#5335 ipset=/dvh30n.vip/gfwlist server=/property.com.au/127.0.0.1#5335 ipset=/property.com.au/gfwlist -server=/dat.foundation/127.0.0.1#5335 -ipset=/dat.foundation/gfwlist -server=/bbycontent.com/127.0.0.1#5335 -ipset=/bbycontent.com/gfwlist -server=/disney.ch/127.0.0.1#5335 -ipset=/disney.ch/gfwlist -server=/fbacebook.com/127.0.0.1#5335 -ipset=/fbacebook.com/gfwlist -server=/play4free.com/127.0.0.1#5335 -ipset=/play4free.com/gfwlist -server=/businessinsider.sg/127.0.0.1#5335 -ipset=/businessinsider.sg/gfwlist -server=/cpedge.com/127.0.0.1#5335 -ipset=/cpedge.com/gfwlist -server=/slack-msgs.com/127.0.0.1#5335 -ipset=/slack-msgs.com/gfwlist -server=/javcc.cc/127.0.0.1#5335 -ipset=/javcc.cc/gfwlist -server=/barefootnetworks.com/127.0.0.1#5335 -ipset=/barefootnetworks.com/gfwlist -server=/cfblob.com/127.0.0.1#5335 -ipset=/cfblob.com/gfwlist -server=/cloudcone.net/127.0.0.1#5335 -ipset=/cloudcone.net/gfwlist +server=/pussy3dporn.com/127.0.0.1#5335 +ipset=/pussy3dporn.com/gfwlist +server=/gcolle.net/127.0.0.1#5335 +ipset=/gcolle.net/gfwlist server=/paypal.info/127.0.0.1#5335 ipset=/paypal.info/gfwlist -server=/howtogetmo.co.uk/127.0.0.1#5335 -ipset=/howtogetmo.co.uk/gfwlist +server=/xuite.net/127.0.0.1#5335 +ipset=/xuite.net/gfwlist server=/google.ne/127.0.0.1#5335 ipset=/google.ne/gfwlist -server=/cisco.evergage.com/127.0.0.1#5335 -ipset=/cisco.evergage.com/gfwlist server=/rethink.net/127.0.0.1#5335 ipset=/rethink.net/gfwlist -server=/tailf.com/127.0.0.1#5335 -ipset=/tailf.com/gfwlist -server=/scholar.google.com.co/127.0.0.1#5335 -ipset=/scholar.google.com.co/gfwlist -server=/cloudflareresolve.com/127.0.0.1#5335 -ipset=/cloudflareresolve.com/gfwlist -server=/webex.fr/127.0.0.1#5335 -ipset=/webex.fr/gfwlist -server=/merakigo.com/127.0.0.1#5335 -ipset=/merakigo.com/gfwlist -server=/oxfordlawtrove.com/127.0.0.1#5335 -ipset=/oxfordlawtrove.com/gfwlist -server=/stackpath.dev/127.0.0.1#5335 -ipset=/stackpath.dev/gfwlist -server=/svpply.com/127.0.0.1#5335 -ipset=/svpply.com/gfwlist -server=/spyjinx.com/127.0.0.1#5335 -ipset=/spyjinx.com/gfwlist -server=/collector.xhamster.com/127.0.0.1#5335 -ipset=/collector.xhamster.com/gfwlist -server=/dukgo.com/127.0.0.1#5335 -ipset=/dukgo.com/gfwlist +server=/tinyurl.com/127.0.0.1#5335 +ipset=/tinyurl.com/gfwlist +server=/trikepatrol.com/127.0.0.1#5335 +ipset=/trikepatrol.com/gfwlist server=/ettrade.com.hk/127.0.0.1#5335 ipset=/ettrade.com.hk/gfwlist -server=/bmw-connecteddrive.com.br/127.0.0.1#5335 -ipset=/bmw-connecteddrive.com.br/gfwlist -server=/pokemonswordshield.com/127.0.0.1#5335 -ipset=/pokemonswordshield.com/gfwlist -server=/kicksnike1.com/127.0.0.1#5335 -ipset=/kicksnike1.com/gfwlist -server=/fbthirdpartypixel.org/127.0.0.1#5335 -ipset=/fbthirdpartypixel.org/gfwlist -server=/steamcdn-a.akamaihd.net/127.0.0.1#5335 -ipset=/steamcdn-a.akamaihd.net/gfwlist +server=/volvotrucks.tm/127.0.0.1#5335 +ipset=/volvotrucks.tm/gfwlist +server=/aacrjournals.org/127.0.0.1#5335 +ipset=/aacrjournals.org/gfwlist server=/gmoney.org/127.0.0.1#5335 ipset=/gmoney.org/gfwlist server=/youtube.com.pk/127.0.0.1#5335 @@ -17354,88 +11360,42 @@ server=/apple-store.wang/127.0.0.1#5335 ipset=/apple-store.wang/gfwlist server=/phprcdn.com/127.0.0.1#5335 ipset=/phprcdn.com/gfwlist -server=/nintendo.co.za/127.0.0.1#5335 -ipset=/nintendo.co.za/gfwlist -server=/kindleproject.com/127.0.0.1#5335 -ipset=/kindleproject.com/gfwlist server=/sagepub.com/127.0.0.1#5335 ipset=/sagepub.com/gfwlist -server=/itunes.hk/127.0.0.1#5335 -ipset=/itunes.hk/gfwlist -server=/hpofficejetprinter.com/127.0.0.1#5335 -ipset=/hpofficejetprinter.com/gfwlist -server=/bbyurl.us/127.0.0.1#5335 -ipset=/bbyurl.us/gfwlist -server=/monsterbeatsbydre2015.com/127.0.0.1#5335 -ipset=/monsterbeatsbydre2015.com/gfwlist -server=/mac.eu/127.0.0.1#5335 -ipset=/mac.eu/gfwlist -server=/unbrandedproducts.com/127.0.0.1#5335 -ipset=/unbrandedproducts.com/gfwlist -server=/videochampion.com/127.0.0.1#5335 -ipset=/videochampion.com/gfwlist -server=/bmw-motorrad.sk/127.0.0.1#5335 -ipset=/bmw-motorrad.sk/gfwlist -server=/beddit.tv/127.0.0.1#5335 -ipset=/beddit.tv/gfwlist -server=/convrgencegame.com/127.0.0.1#5335 -ipset=/convrgencegame.com/gfwlist -server=/starwarsbattlefront2.com/127.0.0.1#5335 -ipset=/starwarsbattlefront2.com/gfwlist -server=/gettyimages.at/127.0.0.1#5335 -ipset=/gettyimages.at/gfwlist -server=/tandberg.com/127.0.0.1#5335 -ipset=/tandberg.com/gfwlist -server=/aaagradeheadphones.com/127.0.0.1#5335 -ipset=/aaagradeheadphones.com/gfwlist -server=/static-cisco.com/127.0.0.1#5335 -ipset=/static-cisco.com/gfwlist -server=/bmwgroupfs.com/127.0.0.1#5335 -ipset=/bmwgroupfs.com/gfwlist -server=/blogspot.it/127.0.0.1#5335 -ipset=/blogspot.it/gfwlist +server=/onlyhomemadeanal.com/127.0.0.1#5335 +ipset=/onlyhomemadeanal.com/gfwlist +server=/direectv.com/127.0.0.1#5335 +ipset=/direectv.com/gfwlist +server=/durex.co.nz/127.0.0.1#5335 +ipset=/durex.co.nz/gfwlist +server=/meitula.net/127.0.0.1#5335 +ipset=/meitula.net/gfwlist +server=/flyflv.com/127.0.0.1#5335 +ipset=/flyflv.com/gfwlist +server=/api-p.videomarket.jp/127.0.0.1#5335 +ipset=/api-p.videomarket.jp/gfwlist server=/applestore.qa/127.0.0.1#5335 ipset=/applestore.qa/gfwlist server=/strepsils.co.kr/127.0.0.1#5335 ipset=/strepsils.co.kr/gfwlist -server=/obsrvbl.com/127.0.0.1#5335 -ipset=/obsrvbl.com/gfwlist -server=/anthemthegame.com/127.0.0.1#5335 -ipset=/anthemthegame.com/gfwlist server=/mini101.ca/127.0.0.1#5335 ipset=/mini101.ca/gfwlist -server=/observable.net/127.0.0.1#5335 -ipset=/observable.net/gfwlist -server=/applestore.kr/127.0.0.1#5335 -ipset=/applestore.kr/gfwlist +server=/area51.to/127.0.0.1#5335 +ipset=/area51.to/gfwlist server=/minimotoringschool.com/127.0.0.1#5335 ipset=/minimotoringschool.com/gfwlist server=/bbthat.com/127.0.0.1#5335 ipset=/bbthat.com/gfwlist -server=/adobetag.com/127.0.0.1#5335 -ipset=/adobetag.com/gfwlist -server=/londonmithraeum.com/127.0.0.1#5335 -ipset=/londonmithraeum.com/gfwlist -server=/mybridgestoneeducation.com/127.0.0.1#5335 -ipset=/mybridgestoneeducation.com/gfwlist -server=/kingkong.com.tw/127.0.0.1#5335 -ipset=/kingkong.com.tw/gfwlist -server=/zb.io/127.0.0.1#5335 -ipset=/zb.io/gfwlist +server=/freejavporn.mobi/127.0.0.1#5335 +ipset=/freejavporn.mobi/gfwlist +server=/huanyuju.com/127.0.0.1#5335 +ipset=/huanyuju.com/gfwlist +server=/chobit.cc/127.0.0.1#5335 +ipset=/chobit.cc/gfwlist server=/huluinstantmessenger.com/127.0.0.1#5335 ipset=/huluinstantmessenger.com/gfwlist -server=/bmwgroup-werke.com/127.0.0.1#5335 -ipset=/bmwgroup-werke.com/gfwlist -server=/mysdn.net/127.0.0.1#5335 -ipset=/mysdn.net/gfwlist -server=/mysdn.info/127.0.0.1#5335 -ipset=/mysdn.info/gfwlist -server=/onedrive.net/127.0.0.1#5335 -ipset=/onedrive.net/gfwlist -server=/multiplydiversity.com/127.0.0.1#5335 -ipset=/multiplydiversity.com/gfwlist -server=/redditmedia.com/127.0.0.1#5335 -ipset=/redditmedia.com/gfwlist +server=/gameuxmasterguide.com/127.0.0.1#5335 +ipset=/gameuxmasterguide.com/gfwlist server=/alphabet.lu/127.0.0.1#5335 ipset=/alphabet.lu/gfwlist server=/mastercard.be/127.0.0.1#5335 @@ -17444,526 +11404,202 @@ server=/foxnewsgo.tv/127.0.0.1#5335 ipset=/foxnewsgo.tv/gfwlist server=/ipodtouch.co/127.0.0.1#5335 ipset=/ipodtouch.co/gfwlist -server=/apple.tw/127.0.0.1#5335 -ipset=/apple.tw/gfwlist -server=/fonts.net/127.0.0.1#5335 -ipset=/fonts.net/gfwlist -server=/visa.hu/127.0.0.1#5335 -ipset=/visa.hu/gfwlist -server=/applecomputerinc.info/127.0.0.1#5335 -ipset=/applecomputerinc.info/gfwlist -server=/froogle.com/127.0.0.1#5335 -ipset=/froogle.com/gfwlist -server=/paypal-security.org/127.0.0.1#5335 -ipset=/paypal-security.org/gfwlist -server=/nordstrom.com/127.0.0.1#5335 -ipset=/nordstrom.com/gfwlist -server=/nikehightops.com/127.0.0.1#5335 -ipset=/nikehightops.com/gfwlist -server=/volvogroup.be/127.0.0.1#5335 -ipset=/volvogroup.be/gfwlist -server=/solarcity.com/127.0.0.1#5335 -ipset=/solarcity.com/gfwlist +server=/tjsbfj.com/127.0.0.1#5335 +ipset=/tjsbfj.com/gfwlist +server=/markzuckerberg.com/127.0.0.1#5335 +ipset=/markzuckerberg.com/gfwlist server=/visa.tc/127.0.0.1#5335 ipset=/visa.tc/gfwlist -server=/100classicbooks.com/127.0.0.1#5335 -ipset=/100classicbooks.com/gfwlist -server=/internetofeverything.com/127.0.0.1#5335 -ipset=/internetofeverything.com/gfwlist -server=/mypearsonenglish.ch/127.0.0.1#5335 -ipset=/mypearsonenglish.ch/gfwlist -server=/thomsonreuters.com.pe/127.0.0.1#5335 -ipset=/thomsonreuters.com.pe/gfwlist -server=/gpstheseries.com/127.0.0.1#5335 -ipset=/gpstheseries.com/gfwlist -server=/volvotrucks.hu/127.0.0.1#5335 -ipset=/volvotrucks.hu/gfwlist -server=/lojaiphone.com.br/127.0.0.1#5335 -ipset=/lojaiphone.com.br/gfwlist -server=/ultimaonline.com/127.0.0.1#5335 -ipset=/ultimaonline.com/gfwlist -server=/finish.ro/127.0.0.1#5335 -ipset=/finish.ro/gfwlist -server=/spaindisney.com/127.0.0.1#5335 -ipset=/spaindisney.com/gfwlist +server=/totalmateria.com/127.0.0.1#5335 +ipset=/totalmateria.com/gfwlist server=/dnaspaces.io/127.0.0.1#5335 ipset=/dnaspaces.io/gfwlist -server=/areyoucreditwise.com/127.0.0.1#5335 -ipset=/areyoucreditwise.com/gfwlist -server=/cs.co/127.0.0.1#5335 -ipset=/cs.co/gfwlist -server=/9to5mac.com/127.0.0.1#5335 -ipset=/9to5mac.com/gfwlist -server=/longtailvideo.com/127.0.0.1#5335 -ipset=/longtailvideo.com/gfwlist -server=/minibrossard.ca/127.0.0.1#5335 -ipset=/minibrossard.ca/gfwlist server=/bmw.co.uk/127.0.0.1#5335 ipset=/bmw.co.uk/gfwlist -server=/canon.es/127.0.0.1#5335 -ipset=/canon.es/gfwlist -server=/findacard.com/127.0.0.1#5335 -ipset=/findacard.com/gfwlist -server=/cloupia.net/127.0.0.1#5335 -ipset=/cloupia.net/gfwlist -server=/instagy.com/127.0.0.1#5335 -ipset=/instagy.com/gfwlist -server=/appledaily.hk/127.0.0.1#5335 -ipset=/appledaily.hk/gfwlist +server=/angle.com.tw/127.0.0.1#5335 +ipset=/angle.com.tw/gfwlist +server=/facebook-pmdcenter.net/127.0.0.1#5335 +ipset=/facebook-pmdcenter.net/gfwlist server=/nvidia.com.ve/127.0.0.1#5335 ipset=/nvidia.com.ve/gfwlist -server=/ciscowebseminars.com/127.0.0.1#5335 -ipset=/ciscowebseminars.com/gfwlist -server=/ciscovideo.com/127.0.0.1#5335 -ipset=/ciscovideo.com/gfwlist -server=/ciscoturk.net/127.0.0.1#5335 -ipset=/ciscoturk.net/gfwlist -server=/ciscotr.com/127.0.0.1#5335 -ipset=/ciscotr.com/gfwlist -server=/ciscotaccc.com/127.0.0.1#5335 -ipset=/ciscotaccc.com/gfwlist server=/nicoseiga.jp/127.0.0.1#5335 ipset=/nicoseiga.jp/gfwlist -server=/disney.co.il/127.0.0.1#5335 -ipset=/disney.co.il/gfwlist -server=/ciscospark.jp/127.0.0.1#5335 -ipset=/ciscospark.jp/gfwlist -server=/download.91porn005.me/127.0.0.1#5335 -ipset=/download.91porn005.me/gfwlist +server=/durex.com.hr/127.0.0.1#5335 +ipset=/durex.com.hr/gfwlist server=/69story.com/127.0.0.1#5335 ipset=/69story.com/gfwlist server=/microsoftonline-p.com/127.0.0.1#5335 ipset=/microsoftonline-p.com/gfwlist -server=/icloudo.de/127.0.0.1#5335 -ipset=/icloudo.de/gfwlist -server=/ciscoprice.com/127.0.0.1#5335 -ipset=/ciscoprice.com/gfwlist -server=/geeksquadforums.com/127.0.0.1#5335 -ipset=/geeksquadforums.com/gfwlist -server=/nhentai.net/127.0.0.1#5335 -ipset=/nhentai.net/gfwlist -server=/ciscopowercube.com/127.0.0.1#5335 -ipset=/ciscopowercube.com/gfwlist -server=/softbankbb.com/127.0.0.1#5335 -ipset=/softbankbb.com/gfwlist -server=/foxnetworksinfo.com/127.0.0.1#5335 -ipset=/foxnetworksinfo.com/gfwlist -server=/beatsbydresdanmark.net/127.0.0.1#5335 -ipset=/beatsbydresdanmark.net/gfwlist -server=/login-paypal.com/127.0.0.1#5335 -ipset=/login-paypal.com/gfwlist -server=/ciscopartnermarketing.com/127.0.0.1#5335 -ipset=/ciscopartnermarketing.com/gfwlist -server=/fox28media.com/127.0.0.1#5335 -ipset=/fox28media.com/gfwlist +server=/aliveitsm.com/127.0.0.1#5335 +ipset=/aliveitsm.com/gfwlist +server=/coova.com/127.0.0.1#5335 +ipset=/coova.com/gfwlist +server=/ipod.es/127.0.0.1#5335 +ipset=/ipod.es/gfwlist server=/leagueoflegends.ca/127.0.0.1#5335 ipset=/leagueoflegends.ca/gfwlist -server=/minitroisrivieres.ca/127.0.0.1#5335 -ipset=/minitroisrivieres.ca/gfwlist -server=/pearsoncred.com/127.0.0.1#5335 -ipset=/pearsoncred.com/gfwlist -server=/imessage.tv/127.0.0.1#5335 -ipset=/imessage.tv/gfwlist -server=/battlebreakers.com/127.0.0.1#5335 -ipset=/battlebreakers.com/gfwlist -server=/makeeu.com/127.0.0.1#5335 -ipset=/makeeu.com/gfwlist -server=/ipple.com/127.0.0.1#5335 -ipset=/ipple.com/gfwlist +server=/examroom.info/127.0.0.1#5335 +ipset=/examroom.info/gfwlist server=/nintendo.net/127.0.0.1#5335 ipset=/nintendo.net/gfwlist -server=/ciscolive.com/127.0.0.1#5335 -ipset=/ciscolive.com/gfwlist -server=/bmw-connecteddrive.tw/127.0.0.1#5335 -ipset=/bmw-connecteddrive.tw/gfwlist +server=/linseysworld.com/127.0.0.1#5335 +ipset=/linseysworld.com/gfwlist server=/veet.cl/127.0.0.1#5335 ipset=/veet.cl/gfwlist -server=/sforce.com/127.0.0.1#5335 -ipset=/sforce.com/gfwlist -server=/canon.co.uk/127.0.0.1#5335 -ipset=/canon.co.uk/gfwlist -server=/foftolia.com/127.0.0.1#5335 -ipset=/foftolia.com/gfwlist -server=/bmw.co.nz/127.0.0.1#5335 -ipset=/bmw.co.nz/gfwlist -server=/digitaloceanspaces.com/127.0.0.1#5335 -ipset=/digitaloceanspaces.com/gfwlist -server=/ciscoerate.com/127.0.0.1#5335 -ipset=/ciscoerate.com/gfwlist -server=/epochtimes.co.il/127.0.0.1#5335 -ipset=/epochtimes.co.il/gfwlist -server=/calgon.it/127.0.0.1#5335 -ipset=/calgon.it/gfwlist -server=/paypal-qrshopping.org/127.0.0.1#5335 -ipset=/paypal-qrshopping.org/gfwlist -server=/monsterbeatsbydrdre-nz.com/127.0.0.1#5335 -ipset=/monsterbeatsbydrdre-nz.com/gfwlist -server=/beatsdresale2013.com/127.0.0.1#5335 -ipset=/beatsdresale2013.com/gfwlist -server=/rolls-roycemotorcarsna.com/127.0.0.1#5335 -ipset=/rolls-roycemotorcarsna.com/gfwlist -server=/gravatar.com/127.0.0.1#5335 -ipset=/gravatar.com/gfwlist -server=/ebayuae.net/127.0.0.1#5335 -ipset=/ebayuae.net/gfwlist -server=/persianepochtimes.com/127.0.0.1#5335 -ipset=/persianepochtimes.com/gfwlist +server=/pornsos.com/127.0.0.1#5335 +ipset=/pornsos.com/gfwlist +server=/kingcomix.com/127.0.0.1#5335 +ipset=/kingcomix.com/gfwlist +server=/volvotrucks.co.ao/127.0.0.1#5335 +ipset=/volvotrucks.co.ao/gfwlist +server=/beegfree.com/127.0.0.1#5335 +ipset=/beegfree.com/gfwlist +server=/fleshbot.com/127.0.0.1#5335 +ipset=/fleshbot.com/gfwlist server=/bsw.co.jp/127.0.0.1#5335 ipset=/bsw.co.jp/gfwlist -server=/etviet.com/127.0.0.1#5335 -ipset=/etviet.com/gfwlist -server=/guambmw.com/127.0.0.1#5335 -ipset=/guambmw.com/gfwlist -server=/oxfordmedicine.com/127.0.0.1#5335 -ipset=/oxfordmedicine.com/gfwlist -server=/cisco-warrantyfinder.com/127.0.0.1#5335 -ipset=/cisco-warrantyfinder.com/gfwlist -server=/ebay.ca/127.0.0.1#5335 -ipset=/ebay.ca/gfwlist -server=/the-tls.co.uk/127.0.0.1#5335 -ipset=/the-tls.co.uk/gfwlist -server=/perl.org/127.0.0.1#5335 -ipset=/perl.org/gfwlist -server=/hpmobile.com/127.0.0.1#5335 -ipset=/hpmobile.com/gfwlist -server=/cciesecuritylabs.com/127.0.0.1#5335 -ipset=/cciesecuritylabs.com/gfwlist +server=/freepornpreview.net/127.0.0.1#5335 +ipset=/freepornpreview.net/gfwlist +server=/hothdsex.xxx/127.0.0.1#5335 +ipset=/hothdsex.xxx/gfwlist +server=/horseporn.tv/127.0.0.1#5335 +ipset=/horseporn.tv/gfwlist +server=/imagecurl.org/127.0.0.1#5335 +ipset=/imagecurl.org/gfwlist +server=/floppy-tits.com/127.0.0.1#5335 +ipset=/floppy-tits.com/gfwlist server=/mastercard.cz/127.0.0.1#5335 ipset=/mastercard.cz/gfwlist -server=/myfoxla.com/127.0.0.1#5335 -ipset=/myfoxla.com/gfwlist -server=/bridgestonecomercial.com.br/127.0.0.1#5335 -ipset=/bridgestonecomercial.com.br/gfwlist server=/volvogroup.fr/127.0.0.1#5335 ipset=/volvogroup.fr/gfwlist -server=/spiedigitallibrary.org/127.0.0.1#5335 -ipset=/spiedigitallibrary.org/gfwlist -server=/academynetriders.com/127.0.0.1#5335 -ipset=/academynetriders.com/gfwlist -server=/paypalnetwork.net/127.0.0.1#5335 -ipset=/paypalnetwork.net/gfwlist server=/881903.com/127.0.0.1#5335 ipset=/881903.com/gfwlist -server=/yahoo.com.gi/127.0.0.1#5335 -ipset=/yahoo.com.gi/gfwlist -server=/webex.com.br/127.0.0.1#5335 -ipset=/webex.com.br/gfwlist -server=/bmw-connecteddrive.si/127.0.0.1#5335 -ipset=/bmw-connecteddrive.si/gfwlist -server=/foxdeportes.com/127.0.0.1#5335 -ipset=/foxdeportes.com/gfwlist +server=/webcams.tv/127.0.0.1#5335 +ipset=/webcams.tv/gfwlist +server=/contactossexoecuador.com/127.0.0.1#5335 +ipset=/contactossexoecuador.com/gfwlist server=/bbystatic.com/127.0.0.1#5335 ipset=/bbystatic.com/gfwlist server=/netflixdnstest9.com/127.0.0.1#5335 ipset=/netflixdnstest9.com/gfwlist -server=/cloudapp.net/127.0.0.1#5335 -ipset=/cloudapp.net/gfwlist -server=/teslamotors.com/127.0.0.1#5335 -ipset=/teslamotors.com/gfwlist -server=/webex.co.nz/127.0.0.1#5335 -ipset=/webex.co.nz/gfwlist -server=/webex.co.kr/127.0.0.1#5335 -ipset=/webex.co.kr/gfwlist +server=/suruga-ya.jp/127.0.0.1#5335 +ipset=/suruga-ya.jp/gfwlist +server=/girlssexxxx.com/127.0.0.1#5335 +ipset=/girlssexxxx.com/gfwlist server=/sony.be/127.0.0.1#5335 ipset=/sony.be/gfwlist server=/bmw-saudiarabia.com/127.0.0.1#5335 ipset=/bmw-saudiarabia.com/gfwlist -server=/myfoxdfw.com/127.0.0.1#5335 -ipset=/myfoxdfw.com/gfwlist -server=/webex.co.it/127.0.0.1#5335 -ipset=/webex.co.it/gfwlist -server=/webex.co.in/127.0.0.1#5335 -ipset=/webex.co.in/gfwlist -server=/madvr.net/127.0.0.1#5335 -ipset=/madvr.net/gfwlist -server=/mmdnn.com/127.0.0.1#5335 -ipset=/mmdnn.com/gfwlist -server=/google.com.sb/127.0.0.1#5335 -ipset=/google.com.sb/gfwlist -server=/gettyimages.co.jp/127.0.0.1#5335 -ipset=/gettyimages.co.jp/gfwlist -server=/canon.ru/127.0.0.1#5335 -ipset=/canon.ru/gfwlist -server=/mini.com.mx/127.0.0.1#5335 -ipset=/mini.com.mx/gfwlist -server=/bmw.ch/127.0.0.1#5335 -ipset=/bmw.ch/gfwlist -server=/europepmc.org/127.0.0.1#5335 -ipset=/europepmc.org/gfwlist -server=/pixfs.net/127.0.0.1#5335 -ipset=/pixfs.net/gfwlist -server=/apple.ru/127.0.0.1#5335 -ipset=/apple.ru/gfwlist -server=/canon.ro/127.0.0.1#5335 -ipset=/canon.ro/gfwlist -server=/miniwidget.ca/127.0.0.1#5335 -ipset=/miniwidget.ca/gfwlist -server=/visa.com.ph/127.0.0.1#5335 -ipset=/visa.com.ph/gfwlist -server=/ieee-npss.org/127.0.0.1#5335 -ipset=/ieee-npss.org/gfwlist -server=/ebaybags.com/127.0.0.1#5335 -ipset=/ebaybags.com/gfwlist -server=/cheapbeatsbydr.com/127.0.0.1#5335 -ipset=/cheapbeatsbydr.com/gfwlist -server=/canon.no/127.0.0.1#5335 -ipset=/canon.no/gfwlist +server=/ero-anime.net/127.0.0.1#5335 +ipset=/ero-anime.net/gfwlist server=/intel.af/127.0.0.1#5335 ipset=/intel.af/gfwlist -server=/currently.com/127.0.0.1#5335 -ipset=/currently.com/gfwlist -server=/canon.me/127.0.0.1#5335 -ipset=/canon.me/gfwlist +server=/whoreasianporn.com/127.0.0.1#5335 +ipset=/whoreasianporn.com/gfwlist server=/qualcomm.co.uk/127.0.0.1#5335 ipset=/qualcomm.co.uk/gfwlist -server=/macbookair.co.kr/127.0.0.1#5335 -ipset=/macbookair.co.kr/gfwlist server=/cheapbeatsbydrestudioedition.com/127.0.0.1#5335 ipset=/cheapbeatsbydrestudioedition.com/gfwlist -server=/sinoinsider.com/127.0.0.1#5335 -ipset=/sinoinsider.com/gfwlist server=/maddenseason.net/127.0.0.1#5335 ipset=/maddenseason.net/gfwlist -server=/foxnews.com/127.0.0.1#5335 -ipset=/foxnews.com/gfwlist -server=/lovemarca.com/127.0.0.1#5335 -ipset=/lovemarca.com/gfwlist -server=/canon.lu/127.0.0.1#5335 -ipset=/canon.lu/gfwlist server=/verisign.vn/127.0.0.1#5335 ipset=/verisign.vn/gfwlist -server=/easportsfootballclub.com/127.0.0.1#5335 -ipset=/easportsfootballclub.com/gfwlist -server=/prepsure.com/127.0.0.1#5335 -ipset=/prepsure.com/gfwlist +server=/wildfreevideos.com/127.0.0.1#5335 +ipset=/wildfreevideos.com/gfwlist server=/intel.com.my/127.0.0.1#5335 ipset=/intel.com.my/gfwlist -server=/myferrariheadphones.com/127.0.0.1#5335 -ipset=/myferrariheadphones.com/gfwlist -server=/ebay-inc.com/127.0.0.1#5335 -ipset=/ebay-inc.com/gfwlist -server=/bmwjamaica.com/127.0.0.1#5335 -ipset=/bmwjamaica.com/gfwlist -server=/canon.ie/127.0.0.1#5335 -ipset=/canon.ie/gfwlist -server=/cloudvolumes.com/127.0.0.1#5335 -ipset=/cloudvolumes.com/gfwlist -server=/globalsign.be/127.0.0.1#5335 -ipset=/globalsign.be/gfwlist +server=/yahoo.com.mt/127.0.0.1#5335 +ipset=/yahoo.com.mt/gfwlist +server=/spiceworksstatic.com/127.0.0.1#5335 +ipset=/spiceworksstatic.com/gfwlist +server=/uhairy.com/127.0.0.1#5335 +ipset=/uhairy.com/gfwlist server=/pricelesshongkong.com/127.0.0.1#5335 ipset=/pricelesshongkong.com/gfwlist server=/hkteducation.com/127.0.0.1#5335 ipset=/hkteducation.com/gfwlist -server=/foxnews.org/127.0.0.1#5335 -ipset=/foxnews.org/gfwlist -server=/ebaystore77.com/127.0.0.1#5335 -ipset=/ebaystore77.com/gfwlist -server=/macbookpros.com/127.0.0.1#5335 -ipset=/macbookpros.com/gfwlist server=/mini.kz/127.0.0.1#5335 ipset=/mini.kz/gfwlist -server=/lihkg.com/127.0.0.1#5335 -ipset=/lihkg.com/gfwlist -server=/mini.sk/127.0.0.1#5335 -ipset=/mini.sk/gfwlist -server=/yahoo.com.fj/127.0.0.1#5335 -ipset=/yahoo.com.fj/gfwlist -server=/steam-chat.com/127.0.0.1#5335 -ipset=/steam-chat.com/gfwlist -server=/foxdigitalmovies.com/127.0.0.1#5335 -ipset=/foxdigitalmovies.com/gfwlist +server=/justindianporn.me/127.0.0.1#5335 +ipset=/justindianporn.me/gfwlist server=/google.com.af/127.0.0.1#5335 ipset=/google.com.af/gfwlist -server=/nikegadgets.com/127.0.0.1#5335 -ipset=/nikegadgets.com/gfwlist -server=/shopifycloud.com/127.0.0.1#5335 -ipset=/shopifycloud.com/gfwlist -server=/canon.com.tr/127.0.0.1#5335 -ipset=/canon.com.tr/gfwlist -server=/canon.com.my/127.0.0.1#5335 -ipset=/canon.com.my/gfwlist server=/paypalonline.org/127.0.0.1#5335 ipset=/paypalonline.org/gfwlist -server=/disneymagicmoments.co.il/127.0.0.1#5335 -ipset=/disneymagicmoments.co.il/gfwlist server=/rea.io/127.0.0.1#5335 ipset=/rea.io/gfwlist server=/bmwcolorado.com/127.0.0.1#5335 ipset=/bmwcolorado.com/gfwlist -server=/volvotrucks.cl/127.0.0.1#5335 -ipset=/volvotrucks.cl/gfwlist -server=/speedxtra.com/127.0.0.1#5335 -ipset=/speedxtra.com/gfwlist -server=/emojipedia.org/127.0.0.1#5335 -ipset=/emojipedia.org/gfwlist -server=/canon.com.au/127.0.0.1#5335 -ipset=/canon.com.au/gfwlist +server=/financialadvisoriq.com/127.0.0.1#5335 +ipset=/financialadvisoriq.com/gfwlist server=/instantssl.com/127.0.0.1#5335 ipset=/instantssl.com/gfwlist -server=/canon.dk/127.0.0.1#5335 -ipset=/canon.dk/gfwlist -server=/iphine.com/127.0.0.1#5335 -ipset=/iphine.com/gfwlist -server=/mastercard.co.jp/127.0.0.1#5335 -ipset=/mastercard.co.jp/gfwlist -server=/itunes.co.th/127.0.0.1#5335 -ipset=/itunes.co.th/gfwlist -server=/foxrad.io/127.0.0.1#5335 -ipset=/foxrad.io/gfwlist -server=/newbemany.com/127.0.0.1#5335 -ipset=/newbemany.com/gfwlist -server=/bmw-sudan.com/127.0.0.1#5335 -ipset=/bmw-sudan.com/gfwlist +server=/strepsils.com.hk/127.0.0.1#5335 +ipset=/strepsils.com.hk/gfwlist +server=/teen-girl.net/127.0.0.1#5335 +ipset=/teen-girl.net/gfwlist +server=/iwara.tv/127.0.0.1#5335 +ipset=/iwara.tv/gfwlist +server=/nudewomenpics.net/127.0.0.1#5335 +ipset=/nudewomenpics.net/gfwlist server=/facebook.design/127.0.0.1#5335 ipset=/facebook.design/gfwlist -server=/canon.co.za/127.0.0.1#5335 -ipset=/canon.co.za/gfwlist -server=/x18r.com/127.0.0.1#5335 -ipset=/x18r.com/gfwlist server=/mini.com.uy/127.0.0.1#5335 ipset=/mini.com.uy/gfwlist -server=/ingkacentres.com/127.0.0.1#5335 -ipset=/ingkacentres.com/gfwlist -server=/scp-wiki.net/127.0.0.1#5335 -ipset=/scp-wiki.net/gfwlist +server=/illusion.jp/127.0.0.1#5335 +ipset=/illusion.jp/gfwlist server=/i-scmp.com/127.0.0.1#5335 ipset=/i-scmp.com/gfwlist -server=/bmwi.ca/127.0.0.1#5335 -ipset=/bmwi.ca/gfwlist -server=/thisispolaris.com/127.0.0.1#5335 -ipset=/thisispolaris.com/gfwlist -server=/canon.ca/127.0.0.1#5335 -ipset=/canon.ca/gfwlist -server=/kyurem.com/127.0.0.1#5335 -ipset=/kyurem.com/gfwlist -server=/canon.bg/127.0.0.1#5335 -ipset=/canon.bg/gfwlist -server=/canon.com.hk/127.0.0.1#5335 -ipset=/canon.com.hk/gfwlist +server=/kindteenporn.com/127.0.0.1#5335 +ipset=/kindteenporn.com/gfwlist +server=/ikea.co.kr/127.0.0.1#5335 +ipset=/ikea.co.kr/gfwlist server=/volvotrucks.gr/127.0.0.1#5335 ipset=/volvotrucks.gr/gfwlist -server=/visadigitalconcierge.com/127.0.0.1#5335 -ipset=/visadigitalconcierge.com/gfwlist -server=/alphera.my/127.0.0.1#5335 -ipset=/alphera.my/gfwlist +server=/hentaiknight.com/127.0.0.1#5335 +ipset=/hentaiknight.com/gfwlist server=/foxplus.com/127.0.0.1#5335 ipset=/foxplus.com/gfwlist -server=/advancediddetection.com/127.0.0.1#5335 -ipset=/advancediddetection.com/gfwlist -server=/intel.co.ae/127.0.0.1#5335 -ipset=/intel.co.ae/gfwlist -server=/ntc.party/127.0.0.1#5335 -ipset=/ntc.party/gfwlist -server=/canon.am/127.0.0.1#5335 -ipset=/canon.am/gfwlist -server=/rbgrads.com/127.0.0.1#5335 -ipset=/rbgrads.com/gfwlist -server=/softbankventuresasia.com/127.0.0.1#5335 -ipset=/softbankventuresasia.com/gfwlist +server=/adult3dtoons.com/127.0.0.1#5335 +ipset=/adult3dtoons.com/gfwlist server=/hkcsl.com/127.0.0.1#5335 ipset=/hkcsl.com/gfwlist -server=/canon-me.com/127.0.0.1#5335 -ipset=/canon-me.com/gfwlist -server=/voashona.com/127.0.0.1#5335 -ipset=/voashona.com/gfwlist +server=/nurofen.it/127.0.0.1#5335 +ipset=/nurofen.it/gfwlist server=/instagramn.com/127.0.0.1#5335 ipset=/instagramn.com/gfwlist -server=/google.gy/127.0.0.1#5335 -ipset=/google.gy/gfwlist -server=/canon-europe.com/127.0.0.1#5335 -ipset=/canon-europe.com/gfwlist -server=/mastercardbiz.com/127.0.0.1#5335 -ipset=/mastercardbiz.com/gfwlist -server=/volvotrucks.ae/127.0.0.1#5335 -ipset=/volvotrucks.ae/gfwlist -server=/akamaihd.com/127.0.0.1#5335 -ipset=/akamaihd.com/gfwlist +server=/dafahao.com/127.0.0.1#5335 +ipset=/dafahao.com/gfwlist +server=/zerohedge.com/127.0.0.1#5335 +ipset=/zerohedge.com/gfwlist server=/adobe-aemassets-value.com/127.0.0.1#5335 ipset=/adobe-aemassets-value.com/gfwlist server=/login-account.net/127.0.0.1#5335 ipset=/login-account.net/gfwlist -server=/canon-ebm.com.hk/127.0.0.1#5335 -ipset=/canon-ebm.com.hk/gfwlist -server=/www-facebook.com/127.0.0.1#5335 -ipset=/www-facebook.com/gfwlist -server=/pearsonclinical.dk/127.0.0.1#5335 -ipset=/pearsonclinical.dk/gfwlist -server=/eanordic.com/127.0.0.1#5335 -ipset=/eanordic.com/gfwlist -server=/dynamics.com/127.0.0.1#5335 -ipset=/dynamics.com/gfwlist -server=/bmwshop.ca/127.0.0.1#5335 -ipset=/bmwshop.ca/gfwlist -server=/c-ij.com/127.0.0.1#5335 -ipset=/c-ij.com/gfwlist -server=/couriermail.com.au/127.0.0.1#5335 -ipset=/couriermail.com.au/gfwlist -server=/airmax360.com/127.0.0.1#5335 -ipset=/airmax360.com/gfwlist -server=/bwh8.net/127.0.0.1#5335 -ipset=/bwh8.net/gfwlist -server=/mastercard.ke/127.0.0.1#5335 -ipset=/mastercard.ke/gfwlist -server=/bwh1.net/127.0.0.1#5335 -ipset=/bwh1.net/gfwlist -server=/alibabacloud.com/127.0.0.1#5335 -ipset=/alibabacloud.com/gfwlist -server=/mydirectvchannels.com/127.0.0.1#5335 -ipset=/mydirectvchannels.com/gfwlist -server=/itunesradio.tv/127.0.0.1#5335 -ipset=/itunesradio.tv/gfwlist -server=/lordofultima.com/127.0.0.1#5335 -ipset=/lordofultima.com/gfwlist +server=/tubetria.mobi/127.0.0.1#5335 +ipset=/tubetria.mobi/gfwlist +server=/gaysitessearch.cc/127.0.0.1#5335 +ipset=/gaysitessearch.cc/gfwlist +server=/nikeselling.com/127.0.0.1#5335 +ipset=/nikeselling.com/gfwlist +server=/satnym.com/127.0.0.1#5335 +ipset=/satnym.com/gfwlist server=/flow.dev/127.0.0.1#5335 ipset=/flow.dev/gfwlist server=/beats-deal.com/127.0.0.1#5335 ipset=/beats-deal.com/gfwlist -server=/d29vzk4ow07wi7.cloudfront.net/127.0.0.1#5335 -ipset=/d29vzk4ow07wi7.cloudfront.net/gfwlist -server=/download.i91av.org/127.0.0.1#5335 -ipset=/download.i91av.org/gfwlist -server=/le-direct.tv/127.0.0.1#5335 -ipset=/le-direct.tv/gfwlist +server=/bigdickorgasm.com/127.0.0.1#5335 +ipset=/bigdickorgasm.com/gfwlist server=/linefriends.com/127.0.0.1#5335 ipset=/linefriends.com/gfwlist -server=/hddirectv.com/127.0.0.1#5335 -ipset=/hddirectv.com/gfwlist -server=/arewereadyyet.com/127.0.0.1#5335 -ipset=/arewereadyyet.com/gfwlist -server=/adidas.com/127.0.0.1#5335 -ipset=/adidas.com/gfwlist -server=/volvobuses.es/127.0.0.1#5335 -ipset=/volvobuses.es/gfwlist -server=/diretv.com/127.0.0.1#5335 -ipset=/diretv.com/gfwlist -server=/direectv.com/127.0.0.1#5335 -ipset=/direectv.com/gfwlist -server=/telekom.com/127.0.0.1#5335 -ipset=/telekom.com/gfwlist -server=/mini.com.mo/127.0.0.1#5335 -ipset=/mini.com.mo/gfwlist +server=/yourcolonoscopy.com/127.0.0.1#5335 +ipset=/yourcolonoscopy.com/gfwlist server=/comodo.com/127.0.0.1#5335 ipset=/comodo.com/gfwlist -server=/hpstore-china.com/127.0.0.1#5335 -ipset=/hpstore-china.com/gfwlist -server=/directvsports.com/127.0.0.1#5335 -ipset=/directvsports.com/gfwlist -server=/pearsonclinical.nl/127.0.0.1#5335 -ipset=/pearsonclinical.nl/gfwlist -server=/strepsils.com.br/127.0.0.1#5335 -ipset=/strepsils.com.br/gfwlist -server=/mini-bosnia.com/127.0.0.1#5335 -ipset=/mini-bosnia.com/gfwlist -server=/flatmates.com.au/127.0.0.1#5335 -ipset=/flatmates.com.au/gfwlist -server=/directvpromise.com/127.0.0.1#5335 -ipset=/directvpromise.com/gfwlist +server=/beatsmusic.wang/127.0.0.1#5335 +ipset=/beatsmusic.wang/gfwlist server=/powerbook.eu/127.0.0.1#5335 ipset=/powerbook.eu/gfwlist -server=/bamgrid.com/127.0.0.1#5335 -ipset=/bamgrid.com/gfwlist -server=/mycardbenefits.com/127.0.0.1#5335 -ipset=/mycardbenefits.com/gfwlist server=/bmwoftulsa.com/127.0.0.1#5335 ipset=/bmwoftulsa.com/gfwlist server=/wkap.nl/127.0.0.1#5335 @@ -17972,386 +11608,156 @@ server=/blogspot.cf/127.0.0.1#5335 ipset=/blogspot.cf/gfwlist server=/paypal.com.sg/127.0.0.1#5335 ipset=/paypal.com.sg/gfwlist -server=/adobeaemcloud.net/127.0.0.1#5335 -ipset=/adobeaemcloud.net/gfwlist server=/ebaymotorsblog.com/127.0.0.1#5335 ipset=/ebaymotorsblog.com/gfwlist -server=/breitbart.com/127.0.0.1#5335 -ipset=/breitbart.com/gfwlist -server=/nextfilm.com.hk/127.0.0.1#5335 -ipset=/nextfilm.com.hk/gfwlist -server=/directvnewhampshire.com/127.0.0.1#5335 -ipset=/directvnewhampshire.com/gfwlist -server=/malayalamanorama.com/127.0.0.1#5335 -ipset=/malayalamanorama.com/gfwlist +server=/youtube.com.bd/127.0.0.1#5335 +ipset=/youtube.com.bd/gfwlist server=/knoxemm.com/127.0.0.1#5335 ipset=/knoxemm.com/gfwlist -server=/mastercard-email.com/127.0.0.1#5335 -ipset=/mastercard-email.com/gfwlist +server=/wdc.com/127.0.0.1#5335 +ipset=/wdc.com/gfwlist server=/beats-seller.com/127.0.0.1#5335 ipset=/beats-seller.com/gfwlist -server=/directvmonitoring.com/127.0.0.1#5335 -ipset=/directvmonitoring.com/gfwlist -server=/ebay.com.ph/127.0.0.1#5335 -ipset=/ebay.com.ph/gfwlist -server=/directvmetropolisil.com/127.0.0.1#5335 -ipset=/directvmetropolisil.com/gfwlist -server=/theclasshroom.com/127.0.0.1#5335 -ipset=/theclasshroom.com/gfwlist -server=/bmw.fi/127.0.0.1#5335 -ipset=/bmw.fi/gfwlist -server=/entermediadb.net/127.0.0.1#5335 -ipset=/entermediadb.net/gfwlist -server=/ficeboock.com/127.0.0.1#5335 -ipset=/ficeboock.com/gfwlist -server=/xdsummit.com/127.0.0.1#5335 -ipset=/xdsummit.com/gfwlist +server=/voyeurhit.com/127.0.0.1#5335 +ipset=/voyeurhit.com/gfwlist +server=/mrlivecam.com/127.0.0.1#5335 +ipset=/mrlivecam.com/gfwlist +server=/appcloud.com/127.0.0.1#5335 +ipset=/appcloud.com/gfwlist +server=/mini.hu/127.0.0.1#5335 +ipset=/mini.hu/gfwlist server=/discord.gifts/127.0.0.1#5335 ipset=/discord.gifts/gfwlist -server=/scholar.google.ch/127.0.0.1#5335 -ipset=/scholar.google.ch/gfwlist -server=/directvkentucky.com/127.0.0.1#5335 -ipset=/directvkentucky.com/gfwlist -server=/directvinternet.com/127.0.0.1#5335 -ipset=/directvinternet.com/gfwlist -server=/bmwmotorrad.com.ph/127.0.0.1#5335 -ipset=/bmwmotorrad.com.ph/gfwlist -server=/bestbuyethics.com/127.0.0.1#5335 -ipset=/bestbuyethics.com/gfwlist +server=/els-cdn.com/127.0.0.1#5335 +ipset=/els-cdn.com/gfwlist server=/visceralgames.com/127.0.0.1#5335 ipset=/visceralgames.com/gfwlist -server=/apnews.com/127.0.0.1#5335 -ipset=/apnews.com/gfwlist server=/volvotrucks.com.tw/127.0.0.1#5335 ipset=/volvotrucks.com.tw/gfwlist -server=/paypalnet.org/127.0.0.1#5335 -ipset=/paypalnet.org/gfwlist -server=/skyassets.com/127.0.0.1#5335 -ipset=/skyassets.com/gfwlist -server=/bmwmuseum.net/127.0.0.1#5335 -ipset=/bmwmuseum.net/gfwlist -server=/bmw-arts-design.com/127.0.0.1#5335 -ipset=/bmw-arts-design.com/gfwlist +server=/chinapress.com.my/127.0.0.1#5335 +ipset=/chinapress.com.my/gfwlist server=/dettol.cz/127.0.0.1#5335 ipset=/dettol.cz/gfwlist -server=/gettyimages.se/127.0.0.1#5335 -ipset=/gettyimages.se/gfwlist server=/paypal-activate.info/127.0.0.1#5335 ipset=/paypal-activate.info/gfwlist -server=/disney.co.th/127.0.0.1#5335 -ipset=/disney.co.th/gfwlist -server=/ebay.com.sg/127.0.0.1#5335 -ipset=/ebay.com.sg/gfwlist -server=/icloud.sk/127.0.0.1#5335 -ipset=/icloud.sk/gfwlist -server=/mini.rs/127.0.0.1#5335 -ipset=/mini.rs/gfwlist -server=/starbucks.es/127.0.0.1#5335 -ipset=/starbucks.es/gfwlist -server=/directvdealer.com/127.0.0.1#5335 -ipset=/directvdealer.com/gfwlist -server=/google.ae/127.0.0.1#5335 -ipset=/google.ae/gfwlist +server=/bmw.se/127.0.0.1#5335 +ipset=/bmw.se/gfwlist server=/nike-us.com/127.0.0.1#5335 ipset=/nike-us.com/gfwlist -server=/elite.com/127.0.0.1#5335 -ipset=/elite.com/gfwlist -server=/tesla.com/127.0.0.1#5335 -ipset=/tesla.com/gfwlist -server=/niken7.com/127.0.0.1#5335 -ipset=/niken7.com/gfwlist server=/appstore.my/127.0.0.1#5335 ipset=/appstore.my/gfwlist -server=/ipod.com/127.0.0.1#5335 -ipset=/ipod.com/gfwlist server=/ebay.it/127.0.0.1#5335 ipset=/ebay.it/gfwlist -server=/hpallinoneprinter.com/127.0.0.1#5335 -ipset=/hpallinoneprinter.com/gfwlist -server=/directvbusiness.com/127.0.0.1#5335 -ipset=/directvbusiness.com/gfwlist +server=/iza.ne.jp/127.0.0.1#5335 +ipset=/iza.ne.jp/gfwlist server=/adguard-vpn.com/127.0.0.1#5335 ipset=/adguard-vpn.com/gfwlist server=/scmp.com/127.0.0.1#5335 ipset=/scmp.com/gfwlist -server=/iphonexs.tv/127.0.0.1#5335 -ipset=/iphonexs.tv/gfwlist server=/voanouvel.com/127.0.0.1#5335 ipset=/voanouvel.com/gfwlist -server=/imgix.net/127.0.0.1#5335 -ipset=/imgix.net/gfwlist -server=/xbox360.com/127.0.0.1#5335 -ipset=/xbox360.com/gfwlist -server=/directvboston.com/127.0.0.1#5335 -ipset=/directvboston.com/gfwlist -server=/beatsbydretoutlet.com/127.0.0.1#5335 -ipset=/beatsbydretoutlet.com/gfwlist -server=/directvadsales.com/127.0.0.1#5335 -ipset=/directvadsales.com/gfwlist -server=/directv-newyork.com/127.0.0.1#5335 -ipset=/directv-newyork.com/gfwlist +server=/f3b7q2p3.ssl.hwcdn.net/127.0.0.1#5335 +ipset=/f3b7q2p3.ssl.hwcdn.net/gfwlist +server=/goragay.com/127.0.0.1#5335 +ipset=/goragay.com/gfwlist server=/abc.com/127.0.0.1#5335 ipset=/abc.com/gfwlist server=/bbc.com/127.0.0.1#5335 ipset=/bbc.com/gfwlist -server=/applestore.wang/127.0.0.1#5335 -ipset=/applestore.wang/gfwlist -server=/cashpassport.co.za/127.0.0.1#5335 -ipset=/cashpassport.co.za/gfwlist -server=/directtvdeals.tv/127.0.0.1#5335 -ipset=/directtvdeals.tv/gfwlist server=/shopping-days.net/127.0.0.1#5335 ipset=/shopping-days.net/gfwlist -server=/directtv.net/127.0.0.1#5335 -ipset=/directtv.net/gfwlist +server=/naaktevrouwenporno.com/127.0.0.1#5335 +ipset=/naaktevrouwenporno.com/gfwlist server=/mypearsonshop.mx/127.0.0.1#5335 ipset=/mypearsonshop.mx/gfwlist -server=/dkrecttv.com/127.0.0.1#5335 -ipset=/dkrecttv.com/gfwlist -server=/eu-consumer-empowerment.com/127.0.0.1#5335 -ipset=/eu-consumer-empowerment.com/gfwlist server=/tailwindtraders.com/127.0.0.1#5335 ipset=/tailwindtraders.com/gfwlist -server=/mastercard.kz/127.0.0.1#5335 -ipset=/mastercard.kz/gfwlist server=/paypalcredit.com/127.0.0.1#5335 ipset=/paypalcredit.com/gfwlist server=/pinterest.co.in/127.0.0.1#5335 ipset=/pinterest.co.in/gfwlist server=/blogspot.com.es/127.0.0.1#5335 ipset=/blogspot.com.es/gfwlist -server=/squarecloudservices.com/127.0.0.1#5335 -ipset=/squarecloudservices.com/gfwlist -server=/braveux.com/127.0.0.1#5335 -ipset=/braveux.com/gfwlist -server=/developer.microsoft.com/127.0.0.1#5335 -ipset=/developer.microsoft.com/gfwlist server=/videolan.org/127.0.0.1#5335 ipset=/videolan.org/gfwlist -server=/nginx.com/127.0.0.1#5335 -ipset=/nginx.com/gfwlist -server=/softether-download.com/127.0.0.1#5335 -ipset=/softether-download.com/gfwlist server=/nbc.com/127.0.0.1#5335 ipset=/nbc.com/gfwlist server=/facebookgraphsearch.info/127.0.0.1#5335 ipset=/facebookgraphsearch.info/gfwlist -server=/ebay.com.my/127.0.0.1#5335 -ipset=/ebay.com.my/gfwlist server=/nurofengel.com/127.0.0.1#5335 ipset=/nurofengel.com/gfwlist -server=/audiencenetwork.tv/127.0.0.1#5335 -ipset=/audiencenetwork.tv/gfwlist server=/bmw-motorrad.hu/127.0.0.1#5335 ipset=/bmw-motorrad.hu/gfwlist -server=/xboxone.co/127.0.0.1#5335 -ipset=/xboxone.co/gfwlist -server=/audiencenetwork.com/127.0.0.1#5335 -ipset=/audiencenetwork.com/gfwlist -server=/leaguoflegends.com/127.0.0.1#5335 -ipset=/leaguoflegends.com/gfwlist -server=/guardianapis.com/127.0.0.1#5335 -ipset=/guardianapis.com/gfwlist -server=/attdns.com/127.0.0.1#5335 -ipset=/attdns.com/gfwlist -server=/att-idns.net/127.0.0.1#5335 -ipset=/att-idns.net/gfwlist -server=/vfsco.us/127.0.0.1#5335 -ipset=/vfsco.us/gfwlist +server=/av234567.com/127.0.0.1#5335 +ipset=/av234567.com/gfwlist +server=/89.com/127.0.0.1#5335 +ipset=/89.com/gfwlist +server=/girlstryanal.com/127.0.0.1#5335 +ipset=/girlstryanal.com/gfwlist server=/beats-dre-us.com/127.0.0.1#5335 ipset=/beats-dre-us.com/gfwlist -server=/bmwworld.com/127.0.0.1#5335 -ipset=/bmwworld.com/gfwlist server=/darwinsource.com/127.0.0.1#5335 ipset=/darwinsource.com/gfwlist -server=/tvpromise.com/127.0.0.1#5335 -ipset=/tvpromise.com/gfwlist -server=/newsnowfox.com/127.0.0.1#5335 -ipset=/newsnowfox.com/gfwlist -server=/synaptic.net/127.0.0.1#5335 -ipset=/synaptic.net/gfwlist server=/travelex.com.my/127.0.0.1#5335 ipset=/travelex.com.my/gfwlist -server=/instagrm.com/127.0.0.1#5335 -ipset=/instagrm.com/gfwlist -server=/mini-connected.pl/127.0.0.1#5335 -ipset=/mini-connected.pl/gfwlist -server=/newsconcierge.com.au/127.0.0.1#5335 -ipset=/newsconcierge.com.au/gfwlist -server=/airwick.hu/127.0.0.1#5335 -ipset=/airwick.hu/gfwlist -server=/bmw-motorrad.com/127.0.0.1#5335 -ipset=/bmw-motorrad.com/gfwlist -server=/beatsbydreforsalesonline.com/127.0.0.1#5335 -ipset=/beatsbydreforsalesonline.com/gfwlist +server=/sexbookecuador.com/127.0.0.1#5335 +ipset=/sexbookecuador.com/gfwlist +server=/topvids.net/127.0.0.1#5335 +ipset=/topvids.net/gfwlist server=/vmwarecertificationvideos.com/127.0.0.1#5335 ipset=/vmwarecertificationvideos.com/gfwlist -server=/itcanwait.com/127.0.0.1#5335 -ipset=/itcanwait.com/gfwlist -server=/chinapower.csis.org/127.0.0.1#5335 -ipset=/chinapower.csis.org/gfwlist -server=/enterprisepaging.com/127.0.0.1#5335 -ipset=/enterprisepaging.com/gfwlist -server=/bmw-motorrad.si/127.0.0.1#5335 -ipset=/bmw-motorrad.si/gfwlist -server=/vmwservices.com/127.0.0.1#5335 -ipset=/vmwservices.com/gfwlist -server=/currently.net/127.0.0.1#5335 -ipset=/currently.net/gfwlist server=/miniusatires.com/127.0.0.1#5335 ipset=/miniusatires.com/gfwlist -server=/canon.net/127.0.0.1#5335 -ipset=/canon.net/gfwlist -server=/geforce.com.tw/127.0.0.1#5335 -ipset=/geforce.com.tw/gfwlist +server=/pleasefuck.org/127.0.0.1#5335 +ipset=/pleasefuck.org/gfwlist server=/paypalshopping.com/127.0.0.1#5335 ipset=/paypalshopping.com/gfwlist -server=/omghk.com/127.0.0.1#5335 -ipset=/omghk.com/gfwlist -server=/vod-abematv.akamaized.net/127.0.0.1#5335 -ipset=/vod-abematv.akamaized.net/gfwlist -server=/costco-static.com/127.0.0.1#5335 -ipset=/costco-static.com/gfwlist -server=/budatt.com/127.0.0.1#5335 -ipset=/budatt.com/gfwlist -server=/csis.org/127.0.0.1#5335 -ipset=/csis.org/gfwlist -server=/librarylovefest.com/127.0.0.1#5335 -ipset=/librarylovefest.com/gfwlist +server=/canon.me/127.0.0.1#5335 +ipset=/canon.me/gfwlist +server=/battle.net/127.0.0.1#5335 +ipset=/battle.net/gfwlist server=/scnshop.cc/127.0.0.1#5335 ipset=/scnshop.cc/gfwlist server=/baicaonetwork.com/127.0.0.1#5335 ipset=/baicaonetwork.com/gfwlist -server=/attwirelessonline.com/127.0.0.1#5335 -ipset=/attwirelessonline.com/gfwlist server=/intel.mx/127.0.0.1#5335 ipset=/intel.mx/gfwlist -server=/lexuemei.com/127.0.0.1#5335 -ipset=/lexuemei.com/gfwlist -server=/appbridge.ca/127.0.0.1#5335 -ipset=/appbridge.ca/gfwlist +server=/hdjavonline.com/127.0.0.1#5335 +ipset=/hdjavonline.com/gfwlist server=/yahoo.com.bo/127.0.0.1#5335 ipset=/yahoo.com.bo/gfwlist -server=/ebaylocal.net/127.0.0.1#5335 -ipset=/ebaylocal.net/gfwlist server=/ogp.me/127.0.0.1#5335 ipset=/ogp.me/gfwlist -server=/disneystreaming.com/127.0.0.1#5335 -ipset=/disneystreaming.com/gfwlist -server=/intelplay.com/127.0.0.1#5335 -ipset=/intelplay.com/gfwlist -server=/attwifi.com/127.0.0.1#5335 -ipset=/attwifi.com/gfwlist -server=/bestrecipes.com.au/127.0.0.1#5335 -ipset=/bestrecipes.com.au/gfwlist -server=/visa.com.my/127.0.0.1#5335 -ipset=/visa.com.my/gfwlist -server=/travelex.co.uk/127.0.0.1#5335 -ipset=/travelex.co.uk/gfwlist -server=/mega.nz/127.0.0.1#5335 -ipset=/mega.nz/gfwlist -server=/sysinternals.com/127.0.0.1#5335 -ipset=/sysinternals.com/gfwlist -server=/foxsoccerplus.net/127.0.0.1#5335 -ipset=/foxsoccerplus.net/gfwlist -server=/attuverseoffers.com/127.0.0.1#5335 -ipset=/attuverseoffers.com/gfwlist -server=/goduckgo.com/127.0.0.1#5335 -ipset=/goduckgo.com/gfwlist -server=/scholar.google.lv/127.0.0.1#5335 -ipset=/scholar.google.lv/gfwlist -server=/bmw.kz/127.0.0.1#5335 -ipset=/bmw.kz/gfwlist -server=/scholar.google.com.bo/127.0.0.1#5335 -ipset=/scholar.google.com.bo/gfwlist -server=/yahoo.com.af/127.0.0.1#5335 -ipset=/yahoo.com.af/gfwlist -server=/attpublicpolicy.com/127.0.0.1#5335 -ipset=/attpublicpolicy.com/gfwlist +server=/dumpxxx.net/127.0.0.1#5335 +ipset=/dumpxxx.net/gfwlist +server=/fjlkajhgfa.top/127.0.0.1#5335 +ipset=/fjlkajhgfa.top/gfwlist server=/youtube.co.ma/127.0.0.1#5335 ipset=/youtube.co.ma/gfwlist server=/firestone.cl/127.0.0.1#5335 ipset=/firestone.cl/gfwlist server=/usatoday.com/127.0.0.1#5335 ipset=/usatoday.com/gfwlist -server=/tver.jp/127.0.0.1#5335 -ipset=/tver.jp/gfwlist -server=/attjoy.com/127.0.0.1#5335 -ipset=/attjoy.com/gfwlist -server=/nicovideo.jp/127.0.0.1#5335 -ipset=/nicovideo.jp/gfwlist -server=/pise.pw/127.0.0.1#5335 -ipset=/pise.pw/gfwlist -server=/attglobal.net/127.0.0.1#5335 -ipset=/attglobal.net/gfwlist +server=/18av.mm-cg.com/127.0.0.1#5335 +ipset=/18av.mm-cg.com/gfwlist server=/pearson.pl/127.0.0.1#5335 ipset=/pearson.pl/gfwlist -server=/zeplin.dev/127.0.0.1#5335 -ipset=/zeplin.dev/gfwlist -server=/attcollaborate.com/127.0.0.1#5335 -ipset=/attcollaborate.com/gfwlist -server=/akamii.com/127.0.0.1#5335 -ipset=/akamii.com/gfwlist -server=/tearapeak.com/127.0.0.1#5335 -ipset=/tearapeak.com/gfwlist -server=/fox26.com/127.0.0.1#5335 -ipset=/fox26.com/gfwlist -server=/foxsports.com.ar/127.0.0.1#5335 -ipset=/foxsports.com.ar/gfwlist -server=/mylcloud.net/127.0.0.1#5335 -ipset=/mylcloud.net/gfwlist -server=/foxfaq.com/127.0.0.1#5335 -ipset=/foxfaq.com/gfwlist -server=/naver.net/127.0.0.1#5335 -ipset=/naver.net/gfwlist -server=/onejav.com/127.0.0.1#5335 -ipset=/onejav.com/gfwlist -server=/beats-bydreoutletsale.net/127.0.0.1#5335 -ipset=/beats-bydreoutletsale.net/gfwlist -server=/attinnovationspace.com/127.0.0.1#5335 -ipset=/attinnovationspace.com/gfwlist -server=/ebayinc.net/127.0.0.1#5335 -ipset=/ebayinc.net/gfwlist -server=/disneymagicmoments.co.uk/127.0.0.1#5335 -ipset=/disneymagicmoments.co.uk/gfwlist -server=/att.jobs/127.0.0.1#5335 -ipset=/att.jobs/gfwlist +server=/yahoo.dj/127.0.0.1#5335 +ipset=/yahoo.dj/gfwlist +server=/teeztube.com/127.0.0.1#5335 +ipset=/teeztube.com/gfwlist +server=/xxxsexanal.com/127.0.0.1#5335 +ipset=/xxxsexanal.com/gfwlist server=/launchpadlibrarian.org/127.0.0.1#5335 ipset=/launchpadlibrarian.org/gfwlist -server=/pogo.com/127.0.0.1#5335 -ipset=/pogo.com/gfwlist -server=/att-promotions.com/127.0.0.1#5335 -ipset=/att-promotions.com/gfwlist -server=/oreilly.com/127.0.0.1#5335 -ipset=/oreilly.com/gfwlist -server=/arxiv.org/127.0.0.1#5335 -ipset=/arxiv.org/gfwlist -server=/ak1.net/127.0.0.1#5335 -ipset=/ak1.net/gfwlist -server=/google.com.my/127.0.0.1#5335 -ipset=/google.com.my/gfwlist -server=/att-mail.com/127.0.0.1#5335 -ipset=/att-mail.com/gfwlist server=/directvcookevilletn.com/127.0.0.1#5335 ipset=/directvcookevilletn.com/gfwlist -server=/microsoftaffiliates.com/127.0.0.1#5335 -ipset=/microsoftaffiliates.com/gfwlist -server=/accbusiness.com/127.0.0.1#5335 -ipset=/accbusiness.com/gfwlist -server=/cyber-bay.info/127.0.0.1#5335 -ipset=/cyber-bay.info/gfwlist server=/e-bay.net/127.0.0.1#5335 ipset=/e-bay.net/gfwlist -server=/bitbucket.org/127.0.0.1#5335 -ipset=/bitbucket.org/gfwlist -server=/miniso.pk/127.0.0.1#5335 -ipset=/miniso.pk/gfwlist -server=/mini.com.gt/127.0.0.1#5335 -ipset=/mini.com.gt/gfwlist -server=/pinterest.id/127.0.0.1#5335 -ipset=/pinterest.id/gfwlist -server=/foxnewsgo.net/127.0.0.1#5335 -ipset=/foxnewsgo.net/gfwlist +server=/adultgamesapk.com/127.0.0.1#5335 +ipset=/adultgamesapk.com/gfwlist +server=/ikea.com.cy/127.0.0.1#5335 +ipset=/ikea.com.cy/gfwlist server=/amazon.jp/127.0.0.1#5335 ipset=/amazon.jp/gfwlist server=/womenwill.in/127.0.0.1#5335 @@ -18360,3108 +11766,22274 @@ server=/mastercard.co.th/127.0.0.1#5335 ipset=/mastercard.co.th/gfwlist server=/pchome.com.tw/127.0.0.1#5335 ipset=/pchome.com.tw/gfwlist -server=/xbox.com/127.0.0.1#5335 -ipset=/xbox.com/gfwlist -server=/nintendodsi.com/127.0.0.1#5335 -ipset=/nintendodsi.com/gfwlist -server=/cfna.com/127.0.0.1#5335 -ipset=/cfna.com/gfwlist -server=/ntdtv.co.kr/127.0.0.1#5335 -ipset=/ntdtv.co.kr/gfwlist -server=/mortein.co.za/127.0.0.1#5335 -ipset=/mortein.co.za/gfwlist -server=/xn--hxtr4rozx.xn--czr694b/127.0.0.1#5335 -ipset=/xn--hxtr4rozx.xn--czr694b/gfwlist -server=/bmw-yemen.com/127.0.0.1#5335 -ipset=/bmw-yemen.com/gfwlist +server=/feacboo.com/127.0.0.1#5335 +ipset=/feacboo.com/gfwlist +server=/sesenovel.com/127.0.0.1#5335 +ipset=/sesenovel.com/gfwlist +server=/tagapie.com.tw/127.0.0.1#5335 +ipset=/tagapie.com.tw/gfwlist +server=/clipseksi.com/127.0.0.1#5335 +ipset=/clipseksi.com/gfwlist +server=/collaboraoffice.com/127.0.0.1#5335 +ipset=/collaboraoffice.com/gfwlist server=/thawte.com/127.0.0.1#5335 ipset=/thawte.com/gfwlist -server=/xn--gtvz22d.xn--hxt814e/127.0.0.1#5335 -ipset=/xn--gtvz22d.xn--hxt814e/gfwlist -server=/attdns.net/127.0.0.1#5335 -ipset=/attdns.net/gfwlist -server=/apple.lv/127.0.0.1#5335 -ipset=/apple.lv/gfwlist server=/dealsbeatsblackfriday.com/127.0.0.1#5335 ipset=/dealsbeatsblackfriday.com/gfwlist -server=/fbredex.com/127.0.0.1#5335 -ipset=/fbredex.com/gfwlist -server=/xindelu.com/127.0.0.1#5335 -ipset=/xindelu.com/gfwlist -server=/epochmediagroup.com/127.0.0.1#5335 -ipset=/epochmediagroup.com/gfwlist -server=/bmw.mu/127.0.0.1#5335 -ipset=/bmw.mu/gfwlist +server=/youtube.pr/127.0.0.1#5335 +ipset=/youtube.pr/gfwlist +server=/sehuatang.net/127.0.0.1#5335 +ipset=/sehuatang.net/gfwlist +server=/hentaikey.com/127.0.0.1#5335 +ipset=/hentaikey.com/gfwlist +server=/zaobao.com.sg/127.0.0.1#5335 +ipset=/zaobao.com.sg/gfwlist server=/bmw.is/127.0.0.1#5335 ipset=/bmw.is/gfwlist -server=/scholar.google.com.tr/127.0.0.1#5335 -ipset=/scholar.google.com.tr/gfwlist -server=/radian6.com/127.0.0.1#5335 -ipset=/radian6.com/gfwlist -server=/audible.com/127.0.0.1#5335 -ipset=/audible.com/gfwlist -server=/volvogroup.nl/127.0.0.1#5335 -ipset=/volvogroup.nl/gfwlist -server=/account-paypal.net/127.0.0.1#5335 -ipset=/account-paypal.net/gfwlist -server=/mini-connected.es/127.0.0.1#5335 -ipset=/mini-connected.es/gfwlist -server=/amazonimages.com/127.0.0.1#5335 -ipset=/amazonimages.com/gfwlist -server=/wwapple.net/127.0.0.1#5335 -ipset=/wwapple.net/gfwlist -server=/1010.com.hk/127.0.0.1#5335 -ipset=/1010.com.hk/gfwlist -server=/localizestatus.com/127.0.0.1#5335 -ipset=/localizestatus.com/gfwlist +server=/elephanttube.com/127.0.0.1#5335 +ipset=/elephanttube.com/gfwlist server=/bidbay.com/127.0.0.1#5335 ipset=/bidbay.com/gfwlist -server=/codei.sh/127.0.0.1#5335 -ipset=/codei.sh/gfwlist -server=/webobjects.eu/127.0.0.1#5335 -ipset=/webobjects.eu/gfwlist +server=/yamoon.club/127.0.0.1#5335 +ipset=/yamoon.club/gfwlist server=/voaafaanoromoo.com/127.0.0.1#5335 ipset=/voaafaanoromoo.com/gfwlist -server=/softbankbb.net/127.0.0.1#5335 -ipset=/softbankbb.net/gfwlist server=/mings-fashion.com/127.0.0.1#5335 ipset=/mings-fashion.com/gfwlist -server=/webobjects.de/127.0.0.1#5335 -ipset=/webobjects.de/gfwlist -server=/nikelives.com/127.0.0.1#5335 -ipset=/nikelives.com/gfwlist -server=/touchid.tv/127.0.0.1#5335 -ipset=/touchid.tv/gfwlist server=/latamvmwareforum.com/127.0.0.1#5335 ipset=/latamvmwareforum.com/gfwlist -server=/spektral.cc/127.0.0.1#5335 -ipset=/spektral.cc/gfwlist -server=/nintendo.fi/127.0.0.1#5335 -ipset=/nintendo.fi/gfwlist -server=/siri.com/127.0.0.1#5335 -ipset=/siri.com/gfwlist -server=/eamobile.com/127.0.0.1#5335 -ipset=/eamobile.com/gfwlist -server=/steamstatic.com/127.0.0.1#5335 -ipset=/steamstatic.com/gfwlist +server=/marvelsuperheroseptember.com/127.0.0.1#5335 +ipset=/marvelsuperheroseptember.com/gfwlist server=/nintendonetwork.net/127.0.0.1#5335 ipset=/nintendonetwork.net/gfwlist -server=/vfsco.pe/127.0.0.1#5335 -ipset=/vfsco.pe/gfwlist server=/bmwmotorrad.com.au/127.0.0.1#5335 ipset=/bmwmotorrad.com.au/gfwlist -server=/macbooksale.com/127.0.0.1#5335 -ipset=/macbooksale.com/gfwlist -server=/quicktime.com.au/127.0.0.1#5335 -ipset=/quicktime.com.au/gfwlist -server=/fox32chicago.com/127.0.0.1#5335 -ipset=/fox32chicago.com/gfwlist -server=/xn--4vq475g.com/127.0.0.1#5335 -ipset=/xn--4vq475g.com/gfwlist -server=/pullstring.net/127.0.0.1#5335 -ipset=/pullstring.net/gfwlist -server=/macrumors.com/127.0.0.1#5335 -ipset=/macrumors.com/gfwlist -server=/googlesyndication.com/127.0.0.1#5335 -ipset=/googlesyndication.com/gfwlist +server=/javsex.asia/127.0.0.1#5335 +ipset=/javsex.asia/gfwlist +server=/sexxxxfilms.com/127.0.0.1#5335 +ipset=/sexxxxfilms.com/gfwlist server=/facdbook.com/127.0.0.1#5335 ipset=/facdbook.com/gfwlist -server=/api.news/127.0.0.1#5335 -ipset=/api.news/gfwlist server=/youtube.ua/127.0.0.1#5335 ipset=/youtube.ua/gfwlist -server=/foxbusiness.com/127.0.0.1#5335 -ipset=/foxbusiness.com/gfwlist -server=/wixmp.com/127.0.0.1#5335 -ipset=/wixmp.com/gfwlist -server=/paxful.com/127.0.0.1#5335 -ipset=/paxful.com/gfwlist -server=/macreach.net/127.0.0.1#5335 -ipset=/macreach.net/gfwlist -server=/mini-vietnam.com/127.0.0.1#5335 -ipset=/mini-vietnam.com/gfwlist -server=/macpazar.com/127.0.0.1#5335 -ipset=/macpazar.com/gfwlist -server=/bridgestoneperformance.com/127.0.0.1#5335 -ipset=/bridgestoneperformance.com/gfwlist -server=/myfoxaustin.com/127.0.0.1#5335 -ipset=/myfoxaustin.com/gfwlist -server=/aka-ai.com/127.0.0.1#5335 -ipset=/aka-ai.com/gfwlist -server=/macossierra.com/127.0.0.1#5335 -ipset=/macossierra.com/gfwlist -server=/bmwlifestyle.ca/127.0.0.1#5335 -ipset=/bmwlifestyle.ca/gfwlist -server=/macos.com.au/127.0.0.1#5335 -ipset=/macos.com.au/gfwlist -server=/scholar.google.pt/127.0.0.1#5335 -ipset=/scholar.google.pt/gfwlist -server=/discord.co/127.0.0.1#5335 -ipset=/discord.co/gfwlist -server=/macmini.com/127.0.0.1#5335 -ipset=/macmini.com/gfwlist +server=/hdporn1080.net/127.0.0.1#5335 +ipset=/hdporn1080.net/gfwlist +server=/heydouga.com/127.0.0.1#5335 +ipset=/heydouga.com/gfwlist +server=/ecchi.xxx/127.0.0.1#5335 +ipset=/ecchi.xxx/gfwlist server=/khanacademy.org/127.0.0.1#5335 ipset=/khanacademy.org/gfwlist -server=/beatsheadphonesdealer.com/127.0.0.1#5335 -ipset=/beatsheadphonesdealer.com/gfwlist -server=/scholar.google.com.au/127.0.0.1#5335 -ipset=/scholar.google.com.au/gfwlist -server=/beatsheadphones2u.com/127.0.0.1#5335 -ipset=/beatsheadphones2u.com/gfwlist +server=/bigdick.com/127.0.0.1#5335 +ipset=/bigdick.com/gfwlist +server=/facebook-ebook.com/127.0.0.1#5335 +ipset=/facebook-ebook.com/gfwlist server=/cloudflarestream.com/127.0.0.1#5335 ipset=/cloudflarestream.com/gfwlist -server=/macintoshsoftware.com/127.0.0.1#5335 -ipset=/macintoshsoftware.com/gfwlist server=/ethereum.foundation/127.0.0.1#5335 ipset=/ethereum.foundation/gfwlist -server=/verizonmedia.com/127.0.0.1#5335 -ipset=/verizonmedia.com/gfwlist -server=/apple.jo/127.0.0.1#5335 -ipset=/apple.jo/gfwlist -server=/machos.net/127.0.0.1#5335 -ipset=/machos.net/gfwlist -server=/ulol.com/127.0.0.1#5335 -ipset=/ulol.com/gfwlist +server=/eromanga-hentai.com/127.0.0.1#5335 +ipset=/eromanga-hentai.com/gfwlist server=/ebay-inc.org/127.0.0.1#5335 ipset=/ebay-inc.org/gfwlist -server=/blpevents.com/127.0.0.1#5335 -ipset=/blpevents.com/gfwlist -server=/swisssign.org/127.0.0.1#5335 -ipset=/swisssign.org/gfwlist +server=/telekom.de/127.0.0.1#5335 +ipset=/telekom.de/gfwlist server=/slashdot.org/127.0.0.1#5335 ipset=/slashdot.org/gfwlist server=/mktroute.com/127.0.0.1#5335 ipset=/mktroute.com/gfwlist -server=/macboxset.com/127.0.0.1#5335 -ipset=/macboxset.com/gfwlist -server=/stxmosquitoproject.net/127.0.0.1#5335 -ipset=/stxmosquitoproject.net/gfwlist -server=/easylist.to/127.0.0.1#5335 -ipset=/easylist.to/gfwlist +server=/taleofthenight.com/127.0.0.1#5335 +ipset=/taleofthenight.com/gfwlist +server=/playsexgames.xxx/127.0.0.1#5335 +ipset=/playsexgames.xxx/gfwlist server=/battlefieldheroes.com/127.0.0.1#5335 ipset=/battlefieldheroes.com/gfwlist server=/ebaymainstreet.com/127.0.0.1#5335 ipset=/ebaymainstreet.com/gfwlist -server=/mac.com/127.0.0.1#5335 -ipset=/mac.com/gfwlist server=/cqcorea.com/127.0.0.1#5335 ipset=/cqcorea.com/gfwlist -server=/ssx3.com/127.0.0.1#5335 -ipset=/ssx3.com/gfwlist -server=/chinapress.com.my/127.0.0.1#5335 -ipset=/chinapress.com.my/gfwlist -server=/bmwusa.com/127.0.0.1#5335 -ipset=/bmwusa.com/gfwlist +server=/bustykellykay.com/127.0.0.1#5335 +ipset=/bustykellykay.com/gfwlist +server=/whorevintagesex.com/127.0.0.1#5335 +ipset=/whorevintagesex.com/gfwlist server=/pivotalinitiative.com/127.0.0.1#5335 ipset=/pivotalinitiative.com/gfwlist -server=/iwork.wang/127.0.0.1#5335 -ipset=/iwork.wang/gfwlist -server=/firestone.com.ar/127.0.0.1#5335 -ipset=/firestone.com.ar/gfwlist -server=/minicaribbean.com/127.0.0.1#5335 -ipset=/minicaribbean.com/gfwlist server=/cheapbeats.us/127.0.0.1#5335 ipset=/cheapbeats.us/gfwlist -server=/cisconetspace.com/127.0.0.1#5335 -ipset=/cisconetspace.com/gfwlist -server=/thegooglestore.com/127.0.0.1#5335 -ipset=/thegooglestore.com/gfwlist -server=/adidas.ru/127.0.0.1#5335 -ipset=/adidas.ru/gfwlist +server=/novostrong.com/127.0.0.1#5335 +ipset=/novostrong.com/gfwlist server=/yahoo.at/127.0.0.1#5335 ipset=/yahoo.at/gfwlist -server=/badgen.net/127.0.0.1#5335 -ipset=/badgen.net/gfwlist server=/archlinuxarm.org/127.0.0.1#5335 ipset=/archlinuxarm.org/gfwlist server=/bluemix.com/127.0.0.1#5335 ipset=/bluemix.com/gfwlist -server=/ilife.gr/127.0.0.1#5335 -ipset=/ilife.gr/gfwlist -server=/huffingtonpost.fr/127.0.0.1#5335 -ipset=/huffingtonpost.fr/gfwlist +server=/91gay.me/127.0.0.1#5335 +ipset=/91gay.me/gfwlist server=/superuser.com/127.0.0.1#5335 ipset=/superuser.com/gfwlist -server=/bmw.co.th/127.0.0.1#5335 -ipset=/bmw.co.th/gfwlist server=/vfsco.sk/127.0.0.1#5335 ipset=/vfsco.sk/gfwlist -server=/bmw-diplomatic-sales.com/127.0.0.1#5335 -ipset=/bmw-diplomatic-sales.com/gfwlist -server=/kindleoasis.com/127.0.0.1#5335 -ipset=/kindleoasis.com/gfwlist +server=/yourporndump.com/127.0.0.1#5335 +ipset=/yourporndump.com/gfwlist server=/mini.com.mk/127.0.0.1#5335 ipset=/mini.com.mk/gfwlist -server=/playparagon.com/127.0.0.1#5335 -ipset=/playparagon.com/gfwlist -server=/cheapbeatsbydre-au.com/127.0.0.1#5335 -ipset=/cheapbeatsbydre-au.com/gfwlist -server=/paypal-photocard.com/127.0.0.1#5335 -ipset=/paypal-photocard.com/gfwlist -server=/apple.co.cr/127.0.0.1#5335 -ipset=/apple.co.cr/gfwlist -server=/micstl.com/127.0.0.1#5335 -ipset=/micstl.com/gfwlist -server=/vaultify.net/127.0.0.1#5335 -ipset=/vaultify.net/gfwlist -server=/finalcutpro.com/127.0.0.1#5335 -ipset=/finalcutpro.com/gfwlist +server=/genitourinaryexam.com/127.0.0.1#5335 +ipset=/genitourinaryexam.com/gfwlist +server=/qatarescortsvip.com/127.0.0.1#5335 +ipset=/qatarescortsvip.com/gfwlist +server=/shopee.id/127.0.0.1#5335 +ipset=/shopee.id/gfwlist server=/pearson-studium.ch/127.0.0.1#5335 ipset=/pearson-studium.ch/gfwlist -server=/facetime.net/127.0.0.1#5335 -ipset=/facetime.net/gfwlist +server=/8kcosplay.com/127.0.0.1#5335 +ipset=/8kcosplay.com/gfwlist server=/bmw-abudhabi.com/127.0.0.1#5335 ipset=/bmw-abudhabi.com/gfwlist -server=/advertiserscommunity.com/127.0.0.1#5335 -ipset=/advertiserscommunity.com/gfwlist -server=/aple.com/127.0.0.1#5335 -ipset=/aple.com/gfwlist -server=/bmwfilms.com/127.0.0.1#5335 -ipset=/bmwfilms.com/gfwlist -server=/eworld.com/127.0.0.1#5335 -ipset=/eworld.com/gfwlist server=/momoshop.com.tw/127.0.0.1#5335 ipset=/momoshop.com.tw/gfwlist -server=/zencdn.net/127.0.0.1#5335 -ipset=/zencdn.net/gfwlist -server=/bcsecure01-a.akamaihd.net/127.0.0.1#5335 -ipset=/bcsecure01-a.akamaihd.net/gfwlist -server=/soasta-dswb.com/127.0.0.1#5335 -ipset=/soasta-dswb.com/gfwlist server=/directvconnect.com/127.0.0.1#5335 ipset=/directvconnect.com/gfwlist -server=/githubapp.com/127.0.0.1#5335 -ipset=/githubapp.com/gfwlist server=/serverlesslibrary.net/127.0.0.1#5335 ipset=/serverlesslibrary.net/gfwlist -server=/volvobuses.ca/127.0.0.1#5335 -ipset=/volvobuses.ca/gfwlist -server=/ecgapp.net/127.0.0.1#5335 -ipset=/ecgapp.net/gfwlist -server=/volvotrucks.ps/127.0.0.1#5335 -ipset=/volvotrucks.ps/gfwlist -server=/earpod.net/127.0.0.1#5335 -ipset=/earpod.net/gfwlist -server=/huobi.sc/127.0.0.1#5335 -ipset=/huobi.sc/gfwlist -server=/dokusho-ojikan.jp/127.0.0.1#5335 -ipset=/dokusho-ojikan.jp/gfwlist -server=/tubetubetube.com/127.0.0.1#5335 -ipset=/tubetubetube.com/gfwlist -server=/airgonetworks.com/127.0.0.1#5335 -ipset=/airgonetworks.com/gfwlist -server=/sony.lv/127.0.0.1#5335 -ipset=/sony.lv/gfwlist -server=/dvdstudiopro.biz/127.0.0.1#5335 -ipset=/dvdstudiopro.biz/gfwlist -server=/iphonecases5.com/127.0.0.1#5335 -ipset=/iphonecases5.com/gfwlist -server=/digitalhub.com/127.0.0.1#5335 -ipset=/digitalhub.com/gfwlist +server=/afappyending.com/127.0.0.1#5335 +ipset=/afappyending.com/gfwlist +server=/msunlimitedcloudsummit.com/127.0.0.1#5335 +ipset=/msunlimitedcloudsummit.com/gfwlist +server=/sagernet.org/127.0.0.1#5335 +ipset=/sagernet.org/gfwlist +server=/dykycl.com/127.0.0.1#5335 +ipset=/dykycl.com/gfwlist +server=/babosas.com/127.0.0.1#5335 +ipset=/babosas.com/gfwlist server=/bridgestone.com.sg/127.0.0.1#5335 ipset=/bridgestone.com.sg/gfwlist -server=/yahoo.so/127.0.0.1#5335 -ipset=/yahoo.so/gfwlist -server=/oninstagram.com/127.0.0.1#5335 -ipset=/oninstagram.com/gfwlist -server=/buymeacoff.ee/127.0.0.1#5335 -ipset=/buymeacoff.ee/gfwlist -server=/ebaycareers.com/127.0.0.1#5335 -ipset=/ebaycareers.com/gfwlist -server=/sulwerphoto.com/127.0.0.1#5335 -ipset=/sulwerphoto.com/gfwlist -server=/intel.mt/127.0.0.1#5335 -ipset=/intel.mt/gfwlist +server=/xvideo.com/127.0.0.1#5335 +ipset=/xvideo.com/gfwlist +server=/ladyboygold.com/127.0.0.1#5335 +ipset=/ladyboygold.com/gfwlist +server=/gockhuatviet.com/127.0.0.1#5335 +ipset=/gockhuatviet.com/gfwlist server=/sm.ms/127.0.0.1#5335 ipset=/sm.ms/gfwlist -server=/yahoo.fi/127.0.0.1#5335 -ipset=/yahoo.fi/gfwlist -server=/joox.com/127.0.0.1#5335 -ipset=/joox.com/gfwlist -server=/test-ipv6.com/127.0.0.1#5335 -ipset=/test-ipv6.com/gfwlist -server=/dajiyuan.com/127.0.0.1#5335 -ipset=/dajiyuan.com/gfwlist -server=/coreml.net/127.0.0.1#5335 -ipset=/coreml.net/gfwlist -server=/chomp.com/127.0.0.1#5335 -ipset=/chomp.com/gfwlist -server=/volvobrandshop.com/127.0.0.1#5335 -ipset=/volvobrandshop.com/gfwlist -server=/volvo-truck.nl/127.0.0.1#5335 -ipset=/volvo-truck.nl/gfwlist -server=/camelspaceeffect.com/127.0.0.1#5335 -ipset=/camelspaceeffect.com/gfwlist +server=/bmwsummerschool.com/127.0.0.1#5335 +ipset=/bmwsummerschool.com/gfwlist +server=/simgbb.com/127.0.0.1#5335 +ipset=/simgbb.com/gfwlist server=/mushymush.tv/127.0.0.1#5335 ipset=/mushymush.tv/gfwlist -server=/termius.com/127.0.0.1#5335 -ipset=/termius.com/gfwlist -server=/buyaapl.com/127.0.0.1#5335 -ipset=/buyaapl.com/gfwlist -server=/degruyter.com/127.0.0.1#5335 -ipset=/degruyter.com/gfwlist -server=/fontsinuse.com/127.0.0.1#5335 -ipset=/fontsinuse.com/gfwlist -server=/alphabet.biz/127.0.0.1#5335 -ipset=/alphabet.biz/gfwlist -server=/googleusercontent.com/127.0.0.1#5335 -ipset=/googleusercontent.com/gfwlist -server=/cepacol.ca/127.0.0.1#5335 -ipset=/cepacol.ca/gfwlist -server=/ebay-fashion.com/127.0.0.1#5335 -ipset=/ebay-fashion.com/gfwlist -server=/swiftbank.us/127.0.0.1#5335 -ipset=/swiftbank.us/gfwlist -server=/isiknowledge.com/127.0.0.1#5335 -ipset=/isiknowledge.com/gfwlist -server=/cnpmjs.org/127.0.0.1#5335 -ipset=/cnpmjs.org/gfwlist -server=/cheapheadphonessale.com/127.0.0.1#5335 -ipset=/cheapheadphonessale.com/gfwlist -server=/visa.co.th/127.0.0.1#5335 -ipset=/visa.co.th/gfwlist +server=/fuzokudx.com/127.0.0.1#5335 +ipset=/fuzokudx.com/gfwlist server=/buckbuild.com/127.0.0.1#5335 ipset=/buckbuild.com/gfwlist -server=/applle.com/127.0.0.1#5335 -ipset=/applle.com/gfwlist -server=/wwwhuluplus.com/127.0.0.1#5335 -ipset=/wwwhuluplus.com/gfwlist -server=/applezh.com/127.0.0.1#5335 -ipset=/applezh.com/gfwlist -server=/paypal-knowledge.com/127.0.0.1#5335 -ipset=/paypal-knowledge.com/gfwlist -server=/amazonfctours.com/127.0.0.1#5335 -ipset=/amazonfctours.com/gfwlist -server=/appleweb.net/127.0.0.1#5335 -ipset=/appleweb.net/gfwlist -server=/cheapbeatsbydre99.com/127.0.0.1#5335 -ipset=/cheapbeatsbydre99.com/gfwlist -server=/eater.com/127.0.0.1#5335 -ipset=/eater.com/gfwlist -server=/bmw.com.bo/127.0.0.1#5335 -ipset=/bmw.com.bo/gfwlist -server=/appletaiwan.com/127.0.0.1#5335 -ipset=/appletaiwan.com/gfwlist +server=/gelbooru.me/127.0.0.1#5335 +ipset=/gelbooru.me/gfwlist +server=/windowsmarketplace.com/127.0.0.1#5335 +ipset=/windowsmarketplace.com/gfwlist +server=/dojin-dl.com/127.0.0.1#5335 +ipset=/dojin-dl.com/gfwlist +server=/agendaweek.com/127.0.0.1#5335 +ipset=/agendaweek.com/gfwlist server=/mastercard.at/127.0.0.1#5335 ipset=/mastercard.at/gfwlist -server=/appleshop.co.uk/127.0.0.1#5335 -ipset=/appleshop.co.uk/gfwlist -server=/microsoftedge.com/127.0.0.1#5335 -ipset=/microsoftedge.com/gfwlist -server=/mini-kuwait.com/127.0.0.1#5335 -ipset=/mini-kuwait.com/gfwlist -server=/awseducate.org/127.0.0.1#5335 -ipset=/awseducate.org/gfwlist -server=/calvappd.me/127.0.0.1#5335 -ipset=/calvappd.me/gfwlist -server=/fundpaypal.com/127.0.0.1#5335 -ipset=/fundpaypal.com/gfwlist +server=/vodafone.com.tr/127.0.0.1#5335 +ipset=/vodafone.com.tr/gfwlist server=/nikeinstock.com/127.0.0.1#5335 ipset=/nikeinstock.com/gfwlist -server=/apples-msk.ru/127.0.0.1#5335 -ipset=/apples-msk.ru/gfwlist -server=/feceboock.com/127.0.0.1#5335 -ipset=/feceboock.com/gfwlist -server=/futhead.com/127.0.0.1#5335 -ipset=/futhead.com/gfwlist -server=/realcleareducation.com/127.0.0.1#5335 -ipset=/realcleareducation.com/gfwlist +server=/met-nude.com/127.0.0.1#5335 +ipset=/met-nude.com/gfwlist server=/carstagram.com/127.0.0.1#5335 ipset=/carstagram.com/gfwlist -server=/mastercardezsavings.com/127.0.0.1#5335 -ipset=/mastercardezsavings.com/gfwlist -server=/directvlebanontn.com/127.0.0.1#5335 -ipset=/directvlebanontn.com/gfwlist +server=/lojaiphone.com.br/127.0.0.1#5335 +ipset=/lojaiphone.com.br/gfwlist server=/bangbros.com/127.0.0.1#5335 ipset=/bangbros.com/gfwlist -server=/ieee-edusociety.org/127.0.0.1#5335 -ipset=/ieee-edusociety.org/gfwlist -server=/uwpcommunitytoolkit.com/127.0.0.1#5335 -ipset=/uwpcommunitytoolkit.com/gfwlist -server=/clearlinux.org/127.0.0.1#5335 -ipset=/clearlinux.org/gfwlist +server=/binancezh.kim/127.0.0.1#5335 +ipset=/binancezh.kim/gfwlist server=/jamanetwork.com/127.0.0.1#5335 ipset=/jamanetwork.com/gfwlist server=/chinadigitaltimes.net/127.0.0.1#5335 ipset=/chinadigitaltimes.net/gfwlist -server=/taboola.com/127.0.0.1#5335 -ipset=/taboola.com/gfwlist -server=/google.lk/127.0.0.1#5335 -ipset=/google.lk/gfwlist -server=/mirrorsedge2d.com/127.0.0.1#5335 -ipset=/mirrorsedge2d.com/gfwlist -server=/appleonline.net/127.0.0.1#5335 -ipset=/appleonline.net/gfwlist -server=/hponlineprinting.com/127.0.0.1#5335 -ipset=/hponlineprinting.com/gfwlist -server=/media-amazon.com/127.0.0.1#5335 -ipset=/media-amazon.com/gfwlist -server=/steamuserimages-a.akamaihd.net/127.0.0.1#5335 -ipset=/steamuserimages-a.akamaihd.net/gfwlist -server=/bmw-bahrain.com/127.0.0.1#5335 -ipset=/bmw-bahrain.com/gfwlist -server=/u.nu/127.0.0.1#5335 -ipset=/u.nu/gfwlist +server=/xxxmovies.pro/127.0.0.1#5335 +ipset=/xxxmovies.pro/gfwlist +server=/kindle.jp/127.0.0.1#5335 +ipset=/kindle.jp/gfwlist +server=/bmwhk.com/127.0.0.1#5335 +ipset=/bmwhk.com/gfwlist +server=/binancezh.biz/127.0.0.1#5335 +ipset=/binancezh.biz/gfwlist server=/wariowarediy.com/127.0.0.1#5335 ipset=/wariowarediy.com/gfwlist -server=/pximg.net/127.0.0.1#5335 -ipset=/pximg.net/gfwlist -server=/kobbeatssbydredk.com/127.0.0.1#5335 -ipset=/kobbeatssbydredk.com/gfwlist -server=/facebooklivestaging.net/127.0.0.1#5335 -ipset=/facebooklivestaging.net/gfwlist +server=/xzone.to/127.0.0.1#5335 +ipset=/xzone.to/gfwlist server=/sony.pt/127.0.0.1#5335 ipset=/sony.pt/gfwlist -server=/ebay.co.nz/127.0.0.1#5335 -ipset=/ebay.co.nz/gfwlist -server=/visa.gp/127.0.0.1#5335 -ipset=/visa.gp/gfwlist server=/crates.io/127.0.0.1#5335 ipset=/crates.io/gfwlist -server=/paypal-sptam.com/127.0.0.1#5335 -ipset=/paypal-sptam.com/gfwlist -server=/mozilla.community/127.0.0.1#5335 -ipset=/mozilla.community/gfwlist -server=/applecomputers.co.nz/127.0.0.1#5335 -ipset=/applecomputers.co.nz/gfwlist -server=/pxt.io/127.0.0.1#5335 -ipset=/pxt.io/gfwlist -server=/testonfox.com/127.0.0.1#5335 -ipset=/testonfox.com/gfwlist -server=/applecomputerimac.com/127.0.0.1#5335 -ipset=/applecomputerimac.com/gfwlist +server=/xxxtubenote.com/127.0.0.1#5335 +ipset=/xxxtubenote.com/gfwlist +server=/perfectshemales.com/127.0.0.1#5335 +ipset=/perfectshemales.com/gfwlist server=/homephoneplus.com/127.0.0.1#5335 ipset=/homephoneplus.com/gfwlist -server=/applecomputer.hu/127.0.0.1#5335 -ipset=/applecomputer.hu/gfwlist -server=/nike-dunksb.com/127.0.0.1#5335 -ipset=/nike-dunksb.com/gfwlist -server=/applecomputer.com.tw/127.0.0.1#5335 -ipset=/applecomputer.com.tw/gfwlist -server=/applecomputer.co.nz/127.0.0.1#5335 -ipset=/applecomputer.co.nz/gfwlist server=/wordpress.org/127.0.0.1#5335 ipset=/wordpress.org/gfwlist -server=/careerjournal.com/127.0.0.1#5335 -ipset=/careerjournal.com/gfwlist -server=/bmw.vn/127.0.0.1#5335 -ipset=/bmw.vn/gfwlist -server=/applecomputer-imac.com/127.0.0.1#5335 -ipset=/applecomputer-imac.com/gfwlist -server=/privatemarketplaces.net/127.0.0.1#5335 -ipset=/privatemarketplaces.net/gfwlist -server=/beatsbydrerealstore.com/127.0.0.1#5335 -ipset=/beatsbydrerealstore.com/gfwlist -server=/applecom.com/127.0.0.1#5335 -ipset=/applecom.com/gfwlist -server=/emcs.org/127.0.0.1#5335 -ipset=/emcs.org/gfwlist -server=/hayabusa.media/127.0.0.1#5335 -ipset=/hayabusa.media/gfwlist -server=/appleclub.com.hk/127.0.0.1#5335 -ipset=/appleclub.com.hk/gfwlist server=/paypass.net/127.0.0.1#5335 ipset=/paypass.net/gfwlist -server=/zee5.tv/127.0.0.1#5335 -ipset=/zee5.tv/gfwlist -server=/applecentre.com.au/127.0.0.1#5335 -ipset=/applecentre.com.au/gfwlist -server=/ghostgames.com/127.0.0.1#5335 -ipset=/ghostgames.com/gfwlist server=/eaplay.com/127.0.0.1#5335 ipset=/eaplay.com/gfwlist -server=/applecentar.rs/127.0.0.1#5335 -ipset=/applecentar.rs/gfwlist server=/globalsign.com.au/127.0.0.1#5335 ipset=/globalsign.com.au/gfwlist server=/bitwarden.com/127.0.0.1#5335 ipset=/bitwarden.com/gfwlist -server=/oculusconnect.com/127.0.0.1#5335 -ipset=/oculusconnect.com/gfwlist -server=/beatsjoy.com/127.0.0.1#5335 -ipset=/beatsjoy.com/gfwlist -server=/dropboxapi.com/127.0.0.1#5335 -ipset=/dropboxapi.com/gfwlist +server=/xx-map.com/127.0.0.1#5335 +ipset=/xx-map.com/gfwlist server=/facebooklogin.info/127.0.0.1#5335 ipset=/facebooklogin.info/gfwlist server=/dice.se/127.0.0.1#5335 ipset=/dice.se/gfwlist -server=/appleaustralia.com.au/127.0.0.1#5335 -ipset=/appleaustralia.com.au/gfwlist -server=/appleafrica.com/127.0.0.1#5335 -ipset=/appleafrica.com/gfwlist -server=/grss-ieee.org/127.0.0.1#5335 -ipset=/grss-ieee.org/gfwlist -server=/apple-inc.net/127.0.0.1#5335 -ipset=/apple-inc.net/gfwlist -server=/apple-hk.com/127.0.0.1#5335 -ipset=/apple-hk.com/gfwlist -server=/braintreegateway.tv/127.0.0.1#5335 -ipset=/braintreegateway.tv/gfwlist -server=/bmw-corporate-sales.com/127.0.0.1#5335 -ipset=/bmw-corporate-sales.com/gfwlist -server=/bestmallawards.com/127.0.0.1#5335 -ipset=/bestmallawards.com/gfwlist -server=/ipodnano.com/127.0.0.1#5335 -ipset=/ipodnano.com/gfwlist -server=/apple-dns.com/127.0.0.1#5335 -ipset=/apple-dns.com/gfwlist -server=/mini.com.ar/127.0.0.1#5335 -ipset=/mini.com.ar/gfwlist +server=/milfzr.com/127.0.0.1#5335 +ipset=/milfzr.com/gfwlist +server=/getzola.org/127.0.0.1#5335 +ipset=/getzola.org/gfwlist server=/elsevier-ae.com/127.0.0.1#5335 ipset=/elsevier-ae.com/gfwlist -server=/apple-darwin.org/127.0.0.1#5335 -ipset=/apple-darwin.org/gfwlist -server=/apple-darwin.net/127.0.0.1#5335 -ipset=/apple-darwin.net/gfwlist -server=/ebay.com.hk/127.0.0.1#5335 -ipset=/ebay.com.hk/gfwlist -server=/verisign.org/127.0.0.1#5335 -ipset=/verisign.org/gfwlist -server=/huluplus.com/127.0.0.1#5335 -ipset=/huluplus.com/gfwlist -server=/apple-darwin.com/127.0.0.1#5335 -ipset=/apple-darwin.com/gfwlist -server=/nextplus.com.hk/127.0.0.1#5335 -ipset=/nextplus.com.hk/gfwlist -server=/joinclubhouse.com/127.0.0.1#5335 -ipset=/joinclubhouse.com/gfwlist -server=/line-beta.me/127.0.0.1#5335 -ipset=/line-beta.me/gfwlist -server=/appl4e.com/127.0.0.1#5335 -ipset=/appl4e.com/gfwlist +server=/sublimetext.com/127.0.0.1#5335 +ipset=/sublimetext.com/gfwlist server=/paypal-activate.com/127.0.0.1#5335 ipset=/paypal-activate.com/gfwlist -server=/rprimelab.com/127.0.0.1#5335 -ipset=/rprimelab.com/gfwlist -server=/bdn.dev/127.0.0.1#5335 -ipset=/bdn.dev/gfwlist -server=/packagist.org/127.0.0.1#5335 -ipset=/packagist.org/gfwlist -server=/bmw.com.mk/127.0.0.1#5335 -ipset=/bmw.com.mk/gfwlist -server=/miniitalianjob.com/127.0.0.1#5335 -ipset=/miniitalianjob.com/gfwlist -server=/flickr.com/127.0.0.1#5335 -ipset=/flickr.com/gfwlist -server=/volvobuses.com.kw/127.0.0.1#5335 -ipset=/volvobuses.com.kw/gfwlist -server=/ap0le.com/127.0.0.1#5335 -ipset=/ap0le.com/gfwlist -server=/epochtimes.jp/127.0.0.1#5335 -ipset=/epochtimes.jp/gfwlist -server=/iphonegermany.com/127.0.0.1#5335 -ipset=/iphonegermany.com/gfwlist -server=/vipshoes2.com/127.0.0.1#5335 -ipset=/vipshoes2.com/gfwlist -server=/forgecdn.net/127.0.0.1#5335 -ipset=/forgecdn.net/gfwlist -server=/1to1computing.com.au/127.0.0.1#5335 -ipset=/1to1computing.com.au/gfwlist +server=/xxx-blog.to/127.0.0.1#5335 +ipset=/xxx-blog.to/gfwlist +server=/ero-comic-hunter.net/127.0.0.1#5335 +ipset=/ero-comic-hunter.net/gfwlist +server=/beatsbydreofficialdanmark.com/127.0.0.1#5335 +ipset=/beatsbydreofficialdanmark.com/gfwlist +server=/shopmonsterbeats.com/127.0.0.1#5335 +ipset=/shopmonsterbeats.com/gfwlist +server=/hentai0.com/127.0.0.1#5335 +ipset=/hentai0.com/gfwlist +server=/enemainformation.com/127.0.0.1#5335 +ipset=/enemainformation.com/gfwlist server=/pearson-anaya.com/127.0.0.1#5335 ipset=/pearson-anaya.com/gfwlist -server=/prostores.com/127.0.0.1#5335 -ipset=/prostores.com/gfwlist -server=/appleone.host/127.0.0.1#5335 -ipset=/appleone.host/gfwlist -server=/volvobuses.co.uk/127.0.0.1#5335 -ipset=/volvobuses.co.uk/gfwlist server=/ilife.wang/127.0.0.1#5335 ipset=/ilife.wang/gfwlist -server=/bmwmotorrad.co.kr/127.0.0.1#5335 -ipset=/bmwmotorrad.co.kr/gfwlist -server=/jfrog.org/127.0.0.1#5335 -ipset=/jfrog.org/gfwlist server=/directv-4-you.com/127.0.0.1#5335 ipset=/directv-4-you.com/gfwlist server=/ingka.dev/127.0.0.1#5335 ipset=/ingka.dev/gfwlist -server=/myfoxphoenix.com/127.0.0.1#5335 -ipset=/myfoxphoenix.com/gfwlist -server=/appleone.blog/127.0.0.1#5335 -ipset=/appleone.blog/gfwlist server=/dropbox.com/127.0.0.1#5335 ipset=/dropbox.com/gfwlist -server=/appleone.audio/127.0.0.1#5335 -ipset=/appleone.audio/gfwlist -server=/appletv.wang/127.0.0.1#5335 -ipset=/appletv.wang/gfwlist +server=/comeav.com/127.0.0.1#5335 +ipset=/comeav.com/gfwlist server=/flic.kr/127.0.0.1#5335 ipset=/flic.kr/gfwlist -server=/thomsonreuters.ca/127.0.0.1#5335 -ipset=/thomsonreuters.ca/gfwlist server=/ipod.is/127.0.0.1#5335 ipset=/ipod.is/gfwlist server=/youtube.com.sg/127.0.0.1#5335 ipset=/youtube.com.sg/gfwlist -server=/visa.mq/127.0.0.1#5335 -ipset=/visa.mq/gfwlist -server=/signalprocessingsociety.org/127.0.0.1#5335 -ipset=/signalprocessingsociety.org/gfwlist +server=/ssl-images-amazon.com/127.0.0.1#5335 +ipset=/ssl-images-amazon.com/gfwlist server=/apple-pay.rs/127.0.0.1#5335 ipset=/apple-pay.rs/gfwlist -server=/appletv.com/127.0.0.1#5335 -ipset=/appletv.com/gfwlist -server=/mini.bg/127.0.0.1#5335 -ipset=/mini.bg/gfwlist -server=/kindle4rss.com/127.0.0.1#5335 -ipset=/kindle4rss.com/gfwlist -server=/duckduckhack.com/127.0.0.1#5335 -ipset=/duckduckhack.com/gfwlist -server=/appleid.berlin/127.0.0.1#5335 -ipset=/appleid.berlin/gfwlist -server=/appleid-uk.us/127.0.0.1#5335 -ipset=/appleid-uk.us/gfwlist +server=/malayporn.space/127.0.0.1#5335 +ipset=/malayporn.space/gfwlist +server=/hentai-top100.supertop-100.com/127.0.0.1#5335 +ipset=/hentai-top100.supertop-100.com/gfwlist server=/verizonenterprise.com/127.0.0.1#5335 ipset=/verizonenterprise.com/gfwlist -server=/appleid-applemx.us/127.0.0.1#5335 -ipset=/appleid-applemx.us/gfwlist -server=/hibdontire.com/127.0.0.1#5335 -ipset=/hibdontire.com/gfwlist -server=/bmwmperformance.com/127.0.0.1#5335 -ipset=/bmwmperformance.com/gfwlist +server=/xattractive.com/127.0.0.1#5335 +ipset=/xattractive.com/gfwlist +server=/xo.com/127.0.0.1#5335 +ipset=/xo.com/gfwlist server=/bmwmotorrad.com.sg/127.0.0.1#5335 ipset=/bmwmotorrad.com.sg/gfwlist server=/meadjohnson.net/127.0.0.1#5335 ipset=/meadjohnson.net/gfwlist server=/uo.com/127.0.0.1#5335 ipset=/uo.com/gfwlist -server=/learnwithleague.com/127.0.0.1#5335 -ipset=/learnwithleague.com/gfwlist +server=/jayspov.net/127.0.0.1#5335 +ipset=/jayspov.net/gfwlist server=/appleinsider.com/127.0.0.1#5335 ipset=/appleinsider.com/gfwlist server=/squarefoot.com.hk/127.0.0.1#5335 ipset=/squarefoot.com.hk/gfwlist -server=/steamunlocked.net/127.0.0.1#5335 -ipset=/steamunlocked.net/gfwlist -server=/volvotrucks.fi/127.0.0.1#5335 -ipset=/volvotrucks.fi/gfwlist -server=/mini.ro/127.0.0.1#5335 -ipset=/mini.ro/gfwlist +server=/youtube.com.tr/127.0.0.1#5335 +ipset=/youtube.com.tr/gfwlist server=/beatsshopstore.com/127.0.0.1#5335 ipset=/beatsshopstore.com/gfwlist -server=/scholar.google.is/127.0.0.1#5335 -ipset=/scholar.google.is/gfwlist -server=/akaeai.com/127.0.0.1#5335 -ipset=/akaeai.com/gfwlist -server=/sneaker666.com/127.0.0.1#5335 -ipset=/sneaker666.com/gfwlist -server=/verisign.biz/127.0.0.1#5335 -ipset=/verisign.biz/gfwlist -server=/getws1.com/127.0.0.1#5335 -ipset=/getws1.com/gfwlist -server=/shadowcomplex.com/127.0.0.1#5335 -ipset=/shadowcomplex.com/gfwlist +server=/topxxxpornvids.com/127.0.0.1#5335 +ipset=/topxxxpornvids.com/gfwlist +server=/serviporno.com/127.0.0.1#5335 +ipset=/serviporno.com/gfwlist +server=/pornloser.com/127.0.0.1#5335 +ipset=/pornloser.com/gfwlist +server=/dulceecuador.com/127.0.0.1#5335 +ipset=/dulceecuador.com/gfwlist server=/go.com/127.0.0.1#5335 ipset=/go.com/gfwlist -server=/dailymail.com/127.0.0.1#5335 -ipset=/dailymail.com/gfwlist server=/hbfile.net/127.0.0.1#5335 ipset=/hbfile.net/gfwlist -server=/bmw.cz/127.0.0.1#5335 -ipset=/bmw.cz/gfwlist server=/venmo.com/127.0.0.1#5335 ipset=/venmo.com/gfwlist -server=/visiontimesjp.com/127.0.0.1#5335 -ipset=/visiontimesjp.com/gfwlist -server=/app-store.wang/127.0.0.1#5335 -ipset=/app-store.wang/gfwlist server=/marketodesigner.com/127.0.0.1#5335 ipset=/marketodesigner.com/gfwlist -server=/premiumfs.de/127.0.0.1#5335 -ipset=/premiumfs.de/gfwlist -server=/change.org/127.0.0.1#5335 -ipset=/change.org/gfwlist -server=/alphera-finance.co.in/127.0.0.1#5335 -ipset=/alphera-finance.co.in/gfwlist server=/tidalhifi.com/127.0.0.1#5335 ipset=/tidalhifi.com/gfwlist server=/bazel.build/127.0.0.1#5335 ipset=/bazel.build/gfwlist -server=/aws-iot-hackathon.com/127.0.0.1#5335 -ipset=/aws-iot-hackathon.com/gfwlist -server=/20thcenturystudios.jp/127.0.0.1#5335 -ipset=/20thcenturystudios.jp/gfwlist server=/wp.com/127.0.0.1#5335 ipset=/wp.com/gfwlist -server=/nimg.jp/127.0.0.1#5335 -ipset=/nimg.jp/gfwlist -server=/ibook.com/127.0.0.1#5335 -ipset=/ibook.com/gfwlist -server=/bridgestone-brand.com/127.0.0.1#5335 -ipset=/bridgestone-brand.com/gfwlist -server=/twitch.tv/127.0.0.1#5335 -ipset=/twitch.tv/gfwlist -server=/mastercard.co.il/127.0.0.1#5335 -ipset=/mastercard.co.il/gfwlist -server=/imac.co.nz/127.0.0.1#5335 -ipset=/imac.co.nz/gfwlist -server=/applewallet.com/127.0.0.1#5335 -ipset=/applewallet.com/gfwlist -server=/xn--4vq477m.com/127.0.0.1#5335 -ipset=/xn--4vq477m.com/gfwlist -server=/metcams.com/127.0.0.1#5335 -ipset=/metcams.com/gfwlist -server=/applepaysupplies.tv/127.0.0.1#5335 -ipset=/applepaysupplies.tv/gfwlist -server=/applepaysupplies.info/127.0.0.1#5335 -ipset=/applepaysupplies.info/gfwlist -server=/applepaysupplies.com/127.0.0.1#5335 -ipset=/applepaysupplies.com/gfwlist -server=/applepaycash.tv/127.0.0.1#5335 -ipset=/applepaycash.tv/gfwlist -server=/kindle.it/127.0.0.1#5335 -ipset=/kindle.it/gfwlist -server=/womenwill.mx/127.0.0.1#5335 -ipset=/womenwill.mx/gfwlist +server=/bbc-anal.com/127.0.0.1#5335 +ipset=/bbc-anal.com/gfwlist server=/googlecapital.com/127.0.0.1#5335 ipset=/googlecapital.com/gfwlist server=/hp.com/127.0.0.1#5335 ipset=/hp.com/gfwlist server=/dreprofy.com/127.0.0.1#5335 ipset=/dreprofy.com/gfwlist -server=/glyphsapp.com/127.0.0.1#5335 -ipset=/glyphsapp.com/gfwlist -server=/nikelunarglide.com/127.0.0.1#5335 -ipset=/nikelunarglide.com/gfwlist server=/mastercard.fr/127.0.0.1#5335 ipset=/mastercard.fr/gfwlist server=/iphone.wang/127.0.0.1#5335 ipset=/iphone.wang/gfwlist -server=/applepay.info/127.0.0.1#5335 -ipset=/applepay.info/gfwlist -server=/wirelessgroup.co.uk/127.0.0.1#5335 -ipset=/wirelessgroup.co.uk/gfwlist -server=/miniusa.com/127.0.0.1#5335 -ipset=/miniusa.com/gfwlist -server=/ebay-inc.net/127.0.0.1#5335 -ipset=/ebay-inc.net/gfwlist -server=/gettyimages.dk/127.0.0.1#5335 -ipset=/gettyimages.dk/gfwlist +server=/amateure-xtreme.com/127.0.0.1#5335 +ipset=/amateure-xtreme.com/gfwlist +server=/milfhunter.com/127.0.0.1#5335 +ipset=/milfhunter.com/gfwlist +server=/nypostreprints.com/127.0.0.1#5335 +ipset=/nypostreprints.com/gfwlist server=/wixstatic.com/127.0.0.1#5335 ipset=/wixstatic.com/gfwlist -server=/albeats.com/127.0.0.1#5335 -ipset=/albeats.com/gfwlist -server=/apple-pay.com/127.0.0.1#5335 -ipset=/apple-pay.com/gfwlist -server=/thesims3.com/127.0.0.1#5335 -ipset=/thesims3.com/gfwlist server=/womenwill.com/127.0.0.1#5335 ipset=/womenwill.com/gfwlist server=/whosthehost.com/127.0.0.1#5335 ipset=/whosthehost.com/gfwlist -server=/paypal-community.net/127.0.0.1#5335 -ipset=/paypal-community.net/gfwlist -server=/gvt5.com/127.0.0.1#5335 -ipset=/gvt5.com/gfwlist -server=/fox5atlanta.com/127.0.0.1#5335 -ipset=/fox5atlanta.com/gfwlist server=/coreduo.com/127.0.0.1#5335 ipset=/coreduo.com/gfwlist -server=/iwork.com/127.0.0.1#5335 -ipset=/iwork.com/gfwlist -server=/apple.news/127.0.0.1#5335 -ipset=/apple.news/gfwlist server=/aboutamazon.com/127.0.0.1#5335 ipset=/aboutamazon.com/gfwlist server=/beatshopuk.com/127.0.0.1#5335 ipset=/beatshopuk.com/gfwlist -server=/itun.es/127.0.0.1#5335 -ipset=/itun.es/gfwlist -server=/visa.mn/127.0.0.1#5335 -ipset=/visa.mn/gfwlist -server=/musickit.net/127.0.0.1#5335 -ipset=/musickit.net/gfwlist -server=/tidal.com/127.0.0.1#5335 -ipset=/tidal.com/gfwlist +server=/hqxxxmovies.com/127.0.0.1#5335 +ipset=/hqxxxmovies.com/gfwlist +server=/spicystory.net/127.0.0.1#5335 +ipset=/spicystory.net/gfwlist server=/googledanmark.com/127.0.0.1#5335 ipset=/googledanmark.com/gfwlist -server=/applemusic.hamburg/127.0.0.1#5335 -ipset=/applemusic.hamburg/gfwlist -server=/bmw.ps/127.0.0.1#5335 -ipset=/bmw.ps/gfwlist server=/youtube.gt/127.0.0.1#5335 ipset=/youtube.gt/gfwlist server=/hm.com/127.0.0.1#5335 ipset=/hm.com/gfwlist -server=/kraken.com/127.0.0.1#5335 -ipset=/kraken.com/gfwlist server=/adobetechcommdemo.com/127.0.0.1#5335 ipset=/adobetechcommdemo.com/gfwlist -server=/applemusic.com/127.0.0.1#5335 -ipset=/applemusic.com/gfwlist -server=/bloombergenvironment.com/127.0.0.1#5335 -ipset=/bloombergenvironment.com/gfwlist -server=/line-cdn.net/127.0.0.1#5335 -ipset=/line-cdn.net/gfwlist -server=/heydoga.com/127.0.0.1#5335 -ipset=/heydoga.com/gfwlist -server=/applemusic.berlin/127.0.0.1#5335 -ipset=/applemusic.berlin/gfwlist -server=/pinterest.nl/127.0.0.1#5335 -ipset=/pinterest.nl/gfwlist +server=/hulustream.com/127.0.0.1#5335 +ipset=/hulustream.com/gfwlist +server=/default.exp-tas.com/127.0.0.1#5335 +ipset=/default.exp-tas.com/gfwlist server=/deluxe.com.hk/127.0.0.1#5335 ipset=/deluxe.com.hk/gfwlist -server=/bmw.dk/127.0.0.1#5335 -ipset=/bmw.dk/gfwlist -server=/zohomeetups.com/127.0.0.1#5335 -ipset=/zohomeetups.com/gfwlist +server=/javcc.com/127.0.0.1#5335 +ipset=/javcc.com/gfwlist server=/volvobuses.hk/127.0.0.1#5335 ipset=/volvobuses.hk/gfwlist -server=/applewatch.wang/127.0.0.1#5335 -ipset=/applewatch.wang/gfwlist -server=/114av.xyz/127.0.0.1#5335 -ipset=/114av.xyz/gfwlist -server=/volvogrouptruckcenter.nl/127.0.0.1#5335 -ipset=/volvogrouptruckcenter.nl/gfwlist -server=/nbcudigitaladops.com/127.0.0.1#5335 -ipset=/nbcudigitaladops.com/gfwlist -server=/monsterbeatspascher.net/127.0.0.1#5335 -ipset=/monsterbeatspascher.net/gfwlist -server=/globalsign.com.hk/127.0.0.1#5335 -ipset=/globalsign.com.hk/gfwlist +server=/cochranelibrary.com/127.0.0.1#5335 +ipset=/cochranelibrary.com/gfwlist +server=/kenya4.com/127.0.0.1#5335 +ipset=/kenya4.com/gfwlist server=/itunesparty.com/127.0.0.1#5335 ipset=/itunesparty.com/gfwlist -server=/appl.com/127.0.0.1#5335 -ipset=/appl.com/gfwlist -server=/macbookpro.us/127.0.0.1#5335 -ipset=/macbookpro.us/gfwlist -server=/durex.jp/127.0.0.1#5335 -ipset=/durex.jp/gfwlist -server=/ipod.gr/127.0.0.1#5335 -ipset=/ipod.gr/gfwlist +server=/underhentai.net/127.0.0.1#5335 +ipset=/underhentai.net/gfwlist +server=/bitchesgirls.com/127.0.0.1#5335 +ipset=/bitchesgirls.com/gfwlist server=/beatspromotions.com/127.0.0.1#5335 ipset=/beatspromotions.com/gfwlist -server=/macbookair.net/127.0.0.1#5335 -ipset=/macbookair.net/gfwlist server=/wwwitunes.com/127.0.0.1#5335 ipset=/wwwitunes.com/gfwlist server=/dev-guardianapis.com/127.0.0.1#5335 ipset=/dev-guardianapis.com/gfwlist -server=/minidowntown.ca/127.0.0.1#5335 -ipset=/minidowntown.ca/gfwlist -server=/handbags-nike.com/127.0.0.1#5335 -ipset=/handbags-nike.com/gfwlist -server=/macbookair.kr/127.0.0.1#5335 -ipset=/macbookair.kr/gfwlist -server=/visa.com.ua/127.0.0.1#5335 -ipset=/visa.com.ua/gfwlist +server=/54647.online/127.0.0.1#5335 +ipset=/54647.online/gfwlist +server=/momspornvideos.com/127.0.0.1#5335 +ipset=/momspornvideos.com/gfwlist +server=/avstar09.com/127.0.0.1#5335 +ipset=/avstar09.com/gfwlist server=/nintendo.dk/127.0.0.1#5335 ipset=/nintendo.dk/gfwlist -server=/macbookair.hk/127.0.0.1#5335 -ipset=/macbookair.hk/gfwlist -server=/macbookair.com.au/127.0.0.1#5335 -ipset=/macbookair.com.au/gfwlist -server=/cheapbeatsdrestudios.com/127.0.0.1#5335 -ipset=/cheapbeatsdrestudios.com/gfwlist -server=/macbookair.com/127.0.0.1#5335 -ipset=/macbookair.com/gfwlist -server=/mailonsunday.ie/127.0.0.1#5335 -ipset=/mailonsunday.ie/gfwlist -server=/macbook.hk/127.0.0.1#5335 -ipset=/macbook.hk/gfwlist -server=/digital-rb.com/127.0.0.1#5335 -ipset=/digital-rb.com/gfwlist -server=/hopstop.tv/127.0.0.1#5335 -ipset=/hopstop.tv/gfwlist -server=/ymail.com/127.0.0.1#5335 -ipset=/ymail.com/gfwlist -server=/citylab.com/127.0.0.1#5335 -ipset=/citylab.com/gfwlist -server=/bootstrapcdn.com/127.0.0.1#5335 -ipset=/bootstrapcdn.com/gfwlist -server=/mastercard.ro/127.0.0.1#5335 -ipset=/mastercard.ro/gfwlist -server=/bridgestonewx.com/127.0.0.1#5335 -ipset=/bridgestonewx.com/gfwlist -server=/nintendoswitch.com/127.0.0.1#5335 -ipset=/nintendoswitch.com/gfwlist -server=/firestone.com.mx/127.0.0.1#5335 -ipset=/firestone.com.mx/gfwlist +server=/newestbeatsbydre.com/127.0.0.1#5335 +ipset=/newestbeatsbydre.com/gfwlist +server=/primemomsex.com/127.0.0.1#5335 +ipset=/primemomsex.com/gfwlist +server=/tryboobs.com/127.0.0.1#5335 +ipset=/tryboobs.com/gfwlist server=/hulurussia.com/127.0.0.1#5335 ipset=/hulurussia.com/gfwlist -server=/offrezdesipods.com/127.0.0.1#5335 -ipset=/offrezdesipods.com/gfwlist -server=/myipod.net/127.0.0.1#5335 -ipset=/myipod.net/gfwlist +server=/bangkokbangers.com/127.0.0.1#5335 +ipset=/bangkokbangers.com/gfwlist server=/coinbase.com/127.0.0.1#5335 ipset=/coinbase.com/gfwlist server=/realclearpolicy.com/127.0.0.1#5335 ipset=/realclearpolicy.com/gfwlist -server=/eafootballworld.com/127.0.0.1#5335 -ipset=/eafootballworld.com/gfwlist -server=/hptechventures.com/127.0.0.1#5335 -ipset=/hptechventures.com/gfwlist server=/cloudflareok.com/127.0.0.1#5335 ipset=/cloudflareok.com/gfwlist -server=/scholar.google.ae/127.0.0.1#5335 -ipset=/scholar.google.ae/gfwlist -server=/pricelesstoronto.ca/127.0.0.1#5335 -ipset=/pricelesstoronto.ca/gfwlist -server=/intelforchange.com/127.0.0.1#5335 -ipset=/intelforchange.com/gfwlist -server=/mastercard.co.ke/127.0.0.1#5335 -ipset=/mastercard.co.ke/gfwlist -server=/rimg.com.tw/127.0.0.1#5335 -ipset=/rimg.com.tw/gfwlist -server=/orbitera.com/127.0.0.1#5335 -ipset=/orbitera.com/gfwlist -server=/ipodrip.ca/127.0.0.1#5335 -ipset=/ipodrip.ca/gfwlist +server=/sandisk.in/127.0.0.1#5335 +ipset=/sandisk.in/gfwlist +server=/pki-posta.ch/127.0.0.1#5335 +ipset=/pki-posta.ch/gfwlist +server=/esri.com/127.0.0.1#5335 +ipset=/esri.com/gfwlist server=/foxnewsaroundtheworld.com/127.0.0.1#5335 ipset=/foxnewsaroundtheworld.com/gfwlist -server=/ipodprices.com/127.0.0.1#5335 -ipset=/ipodprices.com/gfwlist server=/thecompaqstore.com/127.0.0.1#5335 ipset=/thecompaqstore.com/gfwlist server=/apple-enews.com/127.0.0.1#5335 ipset=/apple-enews.com/gfwlist server=/approvedusedbmw.com/127.0.0.1#5335 ipset=/approvedusedbmw.com/gfwlist -server=/netname.com.br/127.0.0.1#5335 -ipset=/netname.com.br/gfwlist -server=/ipodcentre.nl/127.0.0.1#5335 -ipset=/ipodcentre.nl/gfwlist -server=/vmmark.com/127.0.0.1#5335 -ipset=/vmmark.com/gfwlist +server=/100bucksbabes.com/127.0.0.1#5335 +ipset=/100bucksbabes.com/gfwlist +server=/rexxx.org/127.0.0.1#5335 +ipset=/rexxx.org/gfwlist server=/gravitytank.com/127.0.0.1#5335 ipset=/gravitytank.com/gfwlist -server=/discord.com/127.0.0.1#5335 -ipset=/discord.com/gfwlist -server=/ipod.ru/127.0.0.1#5335 -ipset=/ipod.ru/gfwlist -server=/disneymeetingsandevents.com/127.0.0.1#5335 -ipset=/disneymeetingsandevents.com/gfwlist -server=/bridgestone-business-service.jp/127.0.0.1#5335 -ipset=/bridgestone-business-service.jp/gfwlist -server=/huffingtonpost.co.za/127.0.0.1#5335 -ipset=/huffingtonpost.co.za/gfwlist -server=/ipod.rs/127.0.0.1#5335 -ipset=/ipod.rs/gfwlist -server=/ipod.net/127.0.0.1#5335 -ipset=/ipod.net/gfwlist -server=/visa.com.bz/127.0.0.1#5335 -ipset=/visa.com.bz/gfwlist +server=/javdove.com/127.0.0.1#5335 +ipset=/javdove.com/gfwlist +server=/deutsch-sexfilme.com/127.0.0.1#5335 +ipset=/deutsch-sexfilme.com/gfwlist server=/rt.com/127.0.0.1#5335 ipset=/rt.com/gfwlist -server=/element.io/127.0.0.1#5335 -ipset=/element.io/gfwlist -server=/stark-verlag.ch/127.0.0.1#5335 -ipset=/stark-verlag.ch/gfwlist server=/razersupport.com/127.0.0.1#5335 ipset=/razersupport.com/gfwlist -server=/bestbuycharityclassic.com/127.0.0.1#5335 -ipset=/bestbuycharityclassic.com/gfwlist -server=/ipod.hk/127.0.0.1#5335 -ipset=/ipod.hk/gfwlist -server=/battlefrontii.com/127.0.0.1#5335 -ipset=/battlefrontii.com/gfwlist -server=/javfinder.sh/127.0.0.1#5335 -ipset=/javfinder.sh/gfwlist +server=/youngpornhd.com/127.0.0.1#5335 +ipset=/youngpornhd.com/gfwlist server=/instagram-engineering.com/127.0.0.1#5335 ipset=/instagram-engineering.com/gfwlist -server=/ipod.fr/127.0.0.1#5335 -ipset=/ipod.fr/gfwlist -server=/bmw.de/127.0.0.1#5335 -ipset=/bmw.de/gfwlist server=/amp.akamaized.net/127.0.0.1#5335 ipset=/amp.akamaized.net/gfwlist -server=/kidgrid.tv/127.0.0.1#5335 -ipset=/kidgrid.tv/gfwlist server=/funnyordie.com/127.0.0.1#5335 ipset=/funnyordie.com/gfwlist -server=/ipod.es/127.0.0.1#5335 -ipset=/ipod.es/gfwlist -server=/nikerunner.com/127.0.0.1#5335 -ipset=/nikerunner.com/gfwlist -server=/microsoft.md/127.0.0.1#5335 -ipset=/microsoft.md/gfwlist -server=/ipod.com.au/127.0.0.1#5335 -ipset=/ipod.com.au/gfwlist -server=/9nation.com.au/127.0.0.1#5335 -ipset=/9nation.com.au/gfwlist -server=/wionews.com/127.0.0.1#5335 -ipset=/wionews.com/gfwlist -server=/microsoftready.com/127.0.0.1#5335 -ipset=/microsoftready.com/gfwlist -server=/fox6now.com/127.0.0.1#5335 -ipset=/fox6now.com/gfwlist -server=/getbraintree.com/127.0.0.1#5335 -ipset=/getbraintree.com/gfwlist -server=/ipod.cm/127.0.0.1#5335 -ipset=/ipod.cm/gfwlist +server=/ft.com/127.0.0.1#5335 +ipset=/ft.com/gfwlist server=/akamai-thailand.net/127.0.0.1#5335 ipset=/akamai-thailand.net/gfwlist -server=/bmw-motorrad.tw/127.0.0.1#5335 -ipset=/bmw-motorrad.tw/gfwlist server=/cambridgedigital.net/127.0.0.1#5335 ipset=/cambridgedigital.net/gfwlist server=/ebay.us/127.0.0.1#5335 ipset=/ebay.us/gfwlist -server=/realclearpublicaffairs.com/127.0.0.1#5335 -ipset=/realclearpublicaffairs.com/gfwlist -server=/beatsdresalestore.com/127.0.0.1#5335 -ipset=/beatsdresalestore.com/gfwlist -server=/signal.org/127.0.0.1#5335 -ipset=/signal.org/gfwlist server=/ieee-pes.org/127.0.0.1#5335 ipset=/ieee-pes.org/gfwlist -server=/appleclassicipod.com/127.0.0.1#5335 -ipset=/appleclassicipod.com/gfwlist -server=/realclearscience.com/127.0.0.1#5335 -ipset=/realclearscience.com/gfwlist -server=/volvodefense.com/127.0.0.1#5335 -ipset=/volvodefense.com/gfwlist -server=/paypalhere.com/127.0.0.1#5335 -ipset=/paypalhere.com/gfwlist -server=/bmw.ie/127.0.0.1#5335 -ipset=/bmw.ie/gfwlist -server=/imacapplecomputer.com/127.0.0.1#5335 -ipset=/imacapplecomputer.com/gfwlist -server=/youtube.com/127.0.0.1#5335 -ipset=/youtube.com/gfwlist -server=/vhxqa4.com/127.0.0.1#5335 -ipset=/vhxqa4.com/gfwlist -server=/bmwgroup.com/127.0.0.1#5335 -ipset=/bmwgroup.com/gfwlist -server=/yahoo.sr/127.0.0.1#5335 -ipset=/yahoo.sr/gfwlist -server=/cygwin.com/127.0.0.1#5335 -ipset=/cygwin.com/gfwlist -server=/manoramayearbook.in/127.0.0.1#5335 -ipset=/manoramayearbook.in/gfwlist -server=/airtunes.com/127.0.0.1#5335 -ipset=/airtunes.com/gfwlist -server=/iphoneclaro.com.br/127.0.0.1#5335 -ipset=/iphoneclaro.com.br/gfwlist -server=/mini.de/127.0.0.1#5335 -ipset=/mini.de/gfwlist -server=/targetimg1.com/127.0.0.1#5335 -ipset=/targetimg1.com/gfwlist +server=/tsumino.com/127.0.0.1#5335 +ipset=/tsumino.com/gfwlist +server=/badteenspunished.com/127.0.0.1#5335 +ipset=/badteenspunished.com/gfwlist +server=/sony.com.au/127.0.0.1#5335 +ipset=/sony.com.au/gfwlist +server=/siteripz.com/127.0.0.1#5335 +ipset=/siteripz.com/gfwlist +server=/sexuria.com/127.0.0.1#5335 +ipset=/sexuria.com/gfwlist +server=/dezyred.com/127.0.0.1#5335 +ipset=/dezyred.com/gfwlist server=/beats-sale.com/127.0.0.1#5335 ipset=/beats-sale.com/gfwlist -server=/elderscrolls.com/127.0.0.1#5335 -ipset=/elderscrolls.com/gfwlist -server=/stripecdn.com/127.0.0.1#5335 -ipset=/stripecdn.com/gfwlist -server=/uun96.com/127.0.0.1#5335 -ipset=/uun96.com/gfwlist -server=/hbabit.com/127.0.0.1#5335 -ipset=/hbabit.com/gfwlist -server=/adobe-audience-finder.com/127.0.0.1#5335 -ipset=/adobe-audience-finder.com/gfwlist -server=/gettyimages.es/127.0.0.1#5335 -ipset=/gettyimages.es/gfwlist -server=/beatsoutletonlines.com/127.0.0.1#5335 -ipset=/beatsoutletonlines.com/gfwlist -server=/bybeatsdre.com/127.0.0.1#5335 -ipset=/bybeatsdre.com/gfwlist -server=/qualcomm-email.com/127.0.0.1#5335 -ipset=/qualcomm-email.com/gfwlist -server=/paypal-online.org/127.0.0.1#5335 -ipset=/paypal-online.org/gfwlist -server=/bmwmotorsport.com/127.0.0.1#5335 -ipset=/bmwmotorsport.com/gfwlist +server=/pornhat.one/127.0.0.1#5335 +ipset=/pornhat.one/gfwlist +server=/thenewslens.com/127.0.0.1#5335 +ipset=/thenewslens.com/gfwlist server=/nikebuy.com/127.0.0.1#5335 ipset=/nikebuy.com/gfwlist -server=/bmw-grouparchiv.de/127.0.0.1#5335 -ipset=/bmw-grouparchiv.de/gfwlist server=/applemx-icloud.com/127.0.0.1#5335 ipset=/applemx-icloud.com/gfwlist -server=/disney.ph/127.0.0.1#5335 -ipset=/disney.ph/gfwlist server=/tr.com/127.0.0.1#5335 ipset=/tr.com/gfwlist -server=/iphonecase2013.com/127.0.0.1#5335 -ipset=/iphonecase2013.com/gfwlist -server=/iphone5s5case.com/127.0.0.1#5335 -ipset=/iphone5s5case.com/gfwlist -server=/mini-dubai.com/127.0.0.1#5335 -ipset=/mini-dubai.com/gfwlist server=/electronjs.org/127.0.0.1#5335 ipset=/electronjs.org/gfwlist -server=/paypal-scoop.com/127.0.0.1#5335 -ipset=/paypal-scoop.com/gfwlist -server=/monsterbeats-solo.com/127.0.0.1#5335 -ipset=/monsterbeats-solo.com/gfwlist +server=/uusextoy.com/127.0.0.1#5335 +ipset=/uusextoy.com/gfwlist server=/google.com.sv/127.0.0.1#5335 ipset=/google.com.sv/gfwlist -server=/macappsto.re/127.0.0.1#5335 -ipset=/macappsto.re/gfwlist -server=/nintendo.ch/127.0.0.1#5335 -ipset=/nintendo.ch/gfwlist -server=/kijijii.ca/127.0.0.1#5335 -ipset=/kijijii.ca/gfwlist -server=/beatsbydredr.com/127.0.0.1#5335 -ipset=/beatsbydredr.com/gfwlist +server=/porntoplinks.com/127.0.0.1#5335 +ipset=/porntoplinks.com/gfwlist +server=/proton.me/127.0.0.1#5335 +ipset=/proton.me/gfwlist server=/faasbook.com/127.0.0.1#5335 ipset=/faasbook.com/gfwlist -server=/iphone-vip3.com/127.0.0.1#5335 -ipset=/iphone-vip3.com/gfwlist -server=/ipodrocks.com.au/127.0.0.1#5335 -ipset=/ipodrocks.com.au/gfwlist -server=/apple.bg/127.0.0.1#5335 -ipset=/apple.bg/gfwlist -server=/sunglassessale2014.com/127.0.0.1#5335 -ipset=/sunglassessale2014.com/gfwlist -server=/ebayca.org/127.0.0.1#5335 -ipset=/ebayca.org/gfwlist +server=/dogfart.com/127.0.0.1#5335 +ipset=/dogfart.com/gfwlist +server=/xvideos2.com/127.0.0.1#5335 +ipset=/xvideos2.com/gfwlist server=/amazon.sg/127.0.0.1#5335 ipset=/amazon.sg/gfwlist server=/nflxext.com/127.0.0.1#5335 ipset=/nflxext.com/gfwlist -server=/iphone-vip1.com/127.0.0.1#5335 -ipset=/iphone-vip1.com/gfwlist -server=/mastercard.co.ve/127.0.0.1#5335 -ipset=/mastercard.co.ve/gfwlist -server=/zert.ch/127.0.0.1#5335 -ipset=/zert.ch/gfwlist -server=/mastercard.com.my/127.0.0.1#5335 -ipset=/mastercard.com.my/gfwlist -server=/iphone-cn.com/127.0.0.1#5335 -ipset=/iphone-cn.com/gfwlist -server=/ovid.com/127.0.0.1#5335 -ipset=/ovid.com/gfwlist -server=/iphone-cd.com/127.0.0.1#5335 -ipset=/iphone-cd.com/gfwlist -server=/icloudmusic.net/127.0.0.1#5335 -ipset=/icloudmusic.net/gfwlist -server=/osm.org/127.0.0.1#5335 -ipset=/osm.org/gfwlist -server=/drdremonsterdre.com/127.0.0.1#5335 -ipset=/drdremonsterdre.com/gfwlist -server=/dditsadn.com/127.0.0.1#5335 -ipset=/dditsadn.com/gfwlist -server=/accountpaypal.org/127.0.0.1#5335 -ipset=/accountpaypal.org/gfwlist -server=/starbucks.bg/127.0.0.1#5335 -ipset=/starbucks.bg/gfwlist -server=/beats-bydreoutletonline.com/127.0.0.1#5335 -ipset=/beats-bydreoutletonline.com/gfwlist -server=/designeriphonescases.com/127.0.0.1#5335 -ipset=/designeriphonescases.com/gfwlist +server=/lupoporno.com/127.0.0.1#5335 +ipset=/lupoporno.com/gfwlist +server=/vodafone.co.uk/127.0.0.1#5335 +ipset=/vodafone.co.uk/gfwlist +server=/xgaytube.tv/127.0.0.1#5335 +ipset=/xgaytube.tv/gfwlist +server=/asianthumbs.org/127.0.0.1#5335 +ipset=/asianthumbs.org/gfwlist +server=/ikea.lv/127.0.0.1#5335 +ipset=/ikea.lv/gfwlist +server=/thzu.cc/127.0.0.1#5335 +ipset=/thzu.cc/gfwlist +server=/atscaleconference.com/127.0.0.1#5335 +ipset=/atscaleconference.com/gfwlist +server=/sexdollpornhd.com/127.0.0.1#5335 +ipset=/sexdollpornhd.com/gfwlist +server=/cherrypai.com/127.0.0.1#5335 +ipset=/cherrypai.com/gfwlist server=/visa.es/127.0.0.1#5335 ipset=/visa.es/gfwlist -server=/fox-corporation.com/127.0.0.1#5335 -ipset=/fox-corporation.com/gfwlist -server=/webex.com.au/127.0.0.1#5335 -ipset=/webex.com.au/gfwlist -server=/swoosh.tv/127.0.0.1#5335 -ipset=/swoosh.tv/gfwlist -server=/bestiphonestuff.com/127.0.0.1#5335 -ipset=/bestiphonestuff.com/gfwlist -server=/linetv.tw/127.0.0.1#5335 -ipset=/linetv.tw/gfwlist -server=/intelnet.component/127.0.0.1#5335 -ipset=/intelnet.component/gfwlist +server=/eworld.com/127.0.0.1#5335 +ipset=/eworld.com/gfwlist +server=/meuhentai.com/127.0.0.1#5335 +ipset=/meuhentai.com/gfwlist +server=/auricularesbeatsbaratosshop.com/127.0.0.1#5335 +ipset=/auricularesbeatsbaratosshop.com/gfwlist +server=/3d-xxx.com/127.0.0.1#5335 +ipset=/3d-xxx.com/gfwlist server=/applestore.cm/127.0.0.1#5335 ipset=/applestore.cm/gfwlist -server=/mastercardbiz.ca/127.0.0.1#5335 -ipset=/mastercardbiz.ca/gfwlist -server=/kijijiauto.ca/127.0.0.1#5335 -ipset=/kijijiauto.ca/gfwlist -server=/beatsheadphones1.com/127.0.0.1#5335 -ipset=/beatsheadphones1.com/gfwlist -server=/ipadair.jp/127.0.0.1#5335 -ipset=/ipadair.jp/gfwlist -server=/bejeweledstars.com/127.0.0.1#5335 -ipset=/bejeweledstars.com/gfwlist +server=/dw.com/127.0.0.1#5335 +ipset=/dw.com/gfwlist +server=/hentai-gif-anime.com/127.0.0.1#5335 +ipset=/hentai-gif-anime.com/gfwlist server=/patreon.com/127.0.0.1#5335 ipset=/patreon.com/gfwlist server=/travelex.com.hk/127.0.0.1#5335 ipset=/travelex.com.hk/gfwlist -server=/vod-dash-ww-live.akamaized.net/127.0.0.1#5335 -ipset=/vod-dash-ww-live.akamaized.net/gfwlist -server=/ubuntu.com/127.0.0.1#5335 -ipset=/ubuntu.com/gfwlist -server=/fixtracking.com/127.0.0.1#5335 -ipset=/fixtracking.com/gfwlist -server=/applecare.cc/127.0.0.1#5335 -ipset=/applecare.cc/gfwlist -server=/ipadair.cm/127.0.0.1#5335 -ipset=/ipadair.cm/gfwlist -server=/ipadair.cl/127.0.0.1#5335 -ipset=/ipadair.cl/gfwlist -server=/ipad3.com/127.0.0.1#5335 -ipset=/ipad3.com/gfwlist -server=/pearsoncanada.ca/127.0.0.1#5335 -ipset=/pearsoncanada.ca/gfwlist -server=/privilege.tw/127.0.0.1#5335 -ipset=/privilege.tw/gfwlist +server=/eroticbeautyhub.com/127.0.0.1#5335 +ipset=/eroticbeautyhub.com/gfwlist +server=/voaindonesia.com/127.0.0.1#5335 +ipset=/voaindonesia.com/gfwlist server=/ebayforeclosure.org/127.0.0.1#5335 ipset=/ebayforeclosure.org/gfwlist -server=/scholar.google.com.uy/127.0.0.1#5335 -ipset=/scholar.google.com.uy/gfwlist server=/paypal-security.net/127.0.0.1#5335 ipset=/paypal-security.net/gfwlist -server=/alphera.net/127.0.0.1#5335 -ipset=/alphera.net/gfwlist -server=/paypal.me/127.0.0.1#5335 -ipset=/paypal.me/gfwlist -server=/dremonsterbeatsoutlets.com/127.0.0.1#5335 -ipset=/dremonsterbeatsoutlets.com/gfwlist -server=/fox2news.com/127.0.0.1#5335 -ipset=/fox2news.com/gfwlist -server=/beatsnzsale.com/127.0.0.1#5335 -ipset=/beatsnzsale.com/gfwlist +server=/manoto1.tv/127.0.0.1#5335 +ipset=/manoto1.tv/gfwlist server=/webpkgcache.com/127.0.0.1#5335 ipset=/webpkgcache.com/gfwlist -server=/ebookforipad.com/127.0.0.1#5335 -ipset=/ebookforipad.com/gfwlist -server=/uun79.com/127.0.0.1#5335 -ipset=/uun79.com/gfwlist -server=/volvobuses.jo/127.0.0.1#5335 -ipset=/volvobuses.jo/gfwlist -server=/foxsports.com.mx/127.0.0.1#5335 -ipset=/foxsports.com.mx/gfwlist -server=/verisign.us/127.0.0.1#5335 -ipset=/verisign.us/gfwlist +server=/yourdirtymind.com/127.0.0.1#5335 +ipset=/yourdirtymind.com/gfwlist server=/quicktime.com/127.0.0.1#5335 ipset=/quicktime.com/gfwlist -server=/rarbg.to/127.0.0.1#5335 -ipset=/rarbg.to/gfwlist +server=/pornpics.com/127.0.0.1#5335 +ipset=/pornpics.com/gfwlist server=/volvobuses.sg/127.0.0.1#5335 ipset=/volvobuses.sg/gfwlist -server=/paypal-business.com/127.0.0.1#5335 -ipset=/paypal-business.com/gfwlist -server=/imac.eu/127.0.0.1#5335 -ipset=/imac.eu/gfwlist -server=/apple-imac.com/127.0.0.1#5335 -ipset=/apple-imac.com/gfwlist -server=/tvappstore.net/127.0.0.1#5335 -ipset=/tvappstore.net/gfwlist -server=/ebaybenefits.com/127.0.0.1#5335 -ipset=/ebaybenefits.com/gfwlist -server=/kindle.fr/127.0.0.1#5335 -ipset=/kindle.fr/gfwlist -server=/applestore.com.pt/127.0.0.1#5335 -ipset=/applestore.com.pt/gfwlist +server=/ikea.ae/127.0.0.1#5335 +ipset=/ikea.ae/gfwlist +server=/europalibera.org/127.0.0.1#5335 +ipset=/europalibera.org/gfwlist server=/google.co.ma/127.0.0.1#5335 ipset=/google.co.ma/gfwlist server=/starbucks.ie/127.0.0.1#5335 ipset=/starbucks.ie/gfwlist -server=/applestoreonline.com/127.0.0.1#5335 -ipset=/applestoreonline.com/gfwlist -server=/facebook-covid-19.com/127.0.0.1#5335 -ipset=/facebook-covid-19.com/gfwlist server=/veetbangladesh.com/127.0.0.1#5335 ipset=/veetbangladesh.com/gfwlist -server=/nintendo.it/127.0.0.1#5335 -ipset=/nintendo.it/gfwlist -server=/hinet.net/127.0.0.1#5335 -ipset=/hinet.net/gfwlist -server=/applestore.net/127.0.0.1#5335 -ipset=/applestore.net/gfwlist server=/ysm.yahoo.com/127.0.0.1#5335 ipset=/ysm.yahoo.com/gfwlist -server=/line-apps-beta.com/127.0.0.1#5335 -ipset=/line-apps-beta.com/gfwlist server=/disneyarena.com/127.0.0.1#5335 ipset=/disneyarena.com/gfwlist server=/globalvoicesonline.org/127.0.0.1#5335 ipset=/globalvoicesonline.org/gfwlist -server=/kijij.ca/127.0.0.1#5335 -ipset=/kijij.ca/gfwlist -server=/volvotrucks.my/127.0.0.1#5335 -ipset=/volvotrucks.my/gfwlist -server=/applestore.com.sn/127.0.0.1#5335 -ipset=/applestore.com.sn/gfwlist +server=/hentaifreak.org/127.0.0.1#5335 +ipset=/hentaifreak.org/gfwlist server=/pricelesssurprises.com/127.0.0.1#5335 ipset=/pricelesssurprises.com/gfwlist -server=/volvotrucks.by/127.0.0.1#5335 -ipset=/volvotrucks.by/gfwlist server=/quiz.directory/127.0.0.1#5335 ipset=/quiz.directory/gfwlist -server=/biorxiv.org/127.0.0.1#5335 -ipset=/biorxiv.org/gfwlist -server=/applestore.com.ro/127.0.0.1#5335 -ipset=/applestore.com.ro/gfwlist -server=/appstore.hk/127.0.0.1#5335 -ipset=/appstore.hk/gfwlist +server=/lesbian8.com/127.0.0.1#5335 +ipset=/lesbian8.com/gfwlist server=/sandisk.co.jp/127.0.0.1#5335 ipset=/sandisk.co.jp/gfwlist -server=/minikelowna.ca/127.0.0.1#5335 -ipset=/minikelowna.ca/gfwlist server=/bmw.sk/127.0.0.1#5335 ipset=/bmw.sk/gfwlist -server=/applestore.com.pl/127.0.0.1#5335 -ipset=/applestore.com.pl/gfwlist -server=/applestore.com.my/127.0.0.1#5335 -ipset=/applestore.com.my/gfwlist server=/skillshare.com/127.0.0.1#5335 ipset=/skillshare.com/gfwlist server=/sony-olympus-medical.com/127.0.0.1#5335 ipset=/sony-olympus-medical.com/gfwlist -server=/bmw-motorrad.cr/127.0.0.1#5335 -ipset=/bmw-motorrad.cr/gfwlist -server=/appye.com/127.0.0.1#5335 -ipset=/appye.com/gfwlist -server=/applestore.com.hr/127.0.0.1#5335 -ipset=/applestore.com.hr/gfwlist -server=/bag-glasses1.com/127.0.0.1#5335 -ipset=/bag-glasses1.com/gfwlist -server=/applestore.com.gr/127.0.0.1#5335 -ipset=/applestore.com.gr/gfwlist +server=/fuckgames.xxx/127.0.0.1#5335 +ipset=/fuckgames.xxx/gfwlist +server=/zoo-porno.biz/127.0.0.1#5335 +ipset=/zoo-porno.biz/gfwlist server=/simplyipod.com/127.0.0.1#5335 ipset=/simplyipod.com/gfwlist -server=/bill-safe.com/127.0.0.1#5335 -ipset=/bill-safe.com/gfwlist -server=/priceless.com/127.0.0.1#5335 -ipset=/priceless.com/gfwlist server=/newhampshirebmw.com/127.0.0.1#5335 ipset=/newhampshirebmw.com/gfwlist -server=/volvobuses.pk/127.0.0.1#5335 -ipset=/volvobuses.pk/gfwlist -server=/vjav.com/127.0.0.1#5335 -ipset=/vjav.com/gfwlist -server=/google.com.sa/127.0.0.1#5335 -ipset=/google.com.sa/gfwlist +server=/xxxindianporn2.com/127.0.0.1#5335 +ipset=/xxxindianporn2.com/gfwlist +server=/girlfriendgalleries.net/127.0.0.1#5335 +ipset=/girlfriendgalleries.net/gfwlist server=/hpsupport.com/127.0.0.1#5335 ipset=/hpsupport.com/gfwlist -server=/applestore.com/127.0.0.1#5335 -ipset=/applestore.com/gfwlist -server=/cixp.net/127.0.0.1#5335 -ipset=/cixp.net/gfwlist -server=/bridgestonemerchandise.com/127.0.0.1#5335 -ipset=/bridgestonemerchandise.com/gfwlist +server=/bellotube.com/127.0.0.1#5335 +ipset=/bellotube.com/gfwlist +server=/voyeurweb.com/127.0.0.1#5335 +ipset=/voyeurweb.com/gfwlist server=/fox247.com/127.0.0.1#5335 ipset=/fox247.com/gfwlist -server=/ethereum.org/127.0.0.1#5335 -ipset=/ethereum.org/gfwlist -server=/ebayfashion.com/127.0.0.1#5335 -ipset=/ebayfashion.com/gfwlist -server=/oxfordre.com/127.0.0.1#5335 -ipset=/oxfordre.com/gfwlist -server=/battlelog.com/127.0.0.1#5335 -ipset=/battlelog.com/gfwlist -server=/sarajevopodopsadom.com/127.0.0.1#5335 -ipset=/sarajevopodopsadom.com/gfwlist -server=/danemarket.com/127.0.0.1#5335 -ipset=/danemarket.com/gfwlist server=/gv.com/127.0.0.1#5335 ipset=/gv.com/gfwlist -server=/esm.run/127.0.0.1#5335 -ipset=/esm.run/gfwlist -server=/netflixdnstest4.com/127.0.0.1#5335 -ipset=/netflixdnstest4.com/gfwlist -server=/aplestore.com/127.0.0.1#5335 -ipset=/aplestore.com/gfwlist -server=/apple.xn--czr694b/127.0.0.1#5335 -ipset=/apple.xn--czr694b/gfwlist -server=/aplleipods.com/127.0.0.1#5335 -ipset=/aplleipods.com/gfwlist +server=/hdporn92.com/127.0.0.1#5335 +ipset=/hdporn92.com/gfwlist +server=/gaymaletube.com/127.0.0.1#5335 +ipset=/gaymaletube.com/gfwlist server=/ebayfashion.net/127.0.0.1#5335 ipset=/ebayfashion.net/gfwlist -server=/vimeo-staging2.com/127.0.0.1#5335 -ipset=/vimeo-staging2.com/gfwlist -server=/apple.so/127.0.0.1#5335 -ipset=/apple.so/gfwlist -server=/apple.sa/127.0.0.1#5335 -ipset=/apple.sa/gfwlist -server=/soundcloud.com/127.0.0.1#5335 -ipset=/soundcloud.com/gfwlist -server=/canon.rs/127.0.0.1#5335 -ipset=/canon.rs/gfwlist -server=/ebaycdn.net/127.0.0.1#5335 -ipset=/ebaycdn.net/gfwlist -server=/instagram.com/127.0.0.1#5335 -ipset=/instagram.com/gfwlist -server=/mastercard.ca/127.0.0.1#5335 -ipset=/mastercard.ca/gfwlist -server=/foxnewslatino.com/127.0.0.1#5335 -ipset=/foxnewslatino.com/gfwlist -server=/google.md/127.0.0.1#5335 -ipset=/google.md/gfwlist -server=/simcity.com/127.0.0.1#5335 -ipset=/simcity.com/gfwlist +server=/fuckableteens.net/127.0.0.1#5335 +ipset=/fuckableteens.net/gfwlist +server=/projectvoyeur.com/127.0.0.1#5335 +ipset=/projectvoyeur.com/gfwlist +server=/google.co.cr/127.0.0.1#5335 +ipset=/google.co.cr/gfwlist +server=/youtube.com.tw/127.0.0.1#5335 +ipset=/youtube.com.tw/gfwlist server=/excitebots.com/127.0.0.1#5335 ipset=/excitebots.com/gfwlist server=/visaconciergelac.com/127.0.0.1#5335 ipset=/visaconciergelac.com/gfwlist -server=/marvelspotlightplays.com/127.0.0.1#5335 -ipset=/marvelspotlightplays.com/gfwlist -server=/beatssaustraliabuy.com/127.0.0.1#5335 -ipset=/beatssaustraliabuy.com/gfwlist -server=/apple.net/127.0.0.1#5335 -ipset=/apple.net/gfwlist -server=/ebay.fr/127.0.0.1#5335 -ipset=/ebay.fr/gfwlist -server=/researchkit.net/127.0.0.1#5335 -ipset=/researchkit.net/gfwlist -server=/youtube.fr/127.0.0.1#5335 -ipset=/youtube.fr/gfwlist -server=/apple.lt/127.0.0.1#5335 -ipset=/apple.lt/gfwlist -server=/apple.lk/127.0.0.1#5335 -ipset=/apple.lk/gfwlist -server=/apple.kr/127.0.0.1#5335 -ipset=/apple.kr/gfwlist server=/facebookswagstore.com/127.0.0.1#5335 ipset=/facebookswagstore.com/gfwlist -server=/netflix.ca/127.0.0.1#5335 -ipset=/netflix.ca/gfwlist -server=/shopmonsterbeats.com/127.0.0.1#5335 -ipset=/shopmonsterbeats.com/gfwlist -server=/cafr.ca/127.0.0.1#5335 -ipset=/cafr.ca/gfwlist -server=/zerohedge.com/127.0.0.1#5335 -ipset=/zerohedge.com/gfwlist -server=/nordstrommedia.com/127.0.0.1#5335 -ipset=/nordstrommedia.com/gfwlist -server=/apple.hr/127.0.0.1#5335 -ipset=/apple.hr/gfwlist +server=/mybukkakeporn.com/127.0.0.1#5335 +ipset=/mybukkakeporn.com/gfwlist server=/static-nike.com/127.0.0.1#5335 ipset=/static-nike.com/gfwlist server=/nikestares.com/127.0.0.1#5335 ipset=/nikestares.com/gfwlist server=/instagram-brand.com/127.0.0.1#5335 ipset=/instagram-brand.com/gfwlist -server=/maxgo.com/127.0.0.1#5335 -ipset=/maxgo.com/gfwlist -server=/mini-connected.it/127.0.0.1#5335 -ipset=/mini-connected.it/gfwlist -server=/apple.eu/127.0.0.1#5335 -ipset=/apple.eu/gfwlist -server=/blzddist1-a.akamaihd.net/127.0.0.1#5335 -ipset=/blzddist1-a.akamaihd.net/gfwlist -server=/beatsbydre4usales.com/127.0.0.1#5335 -ipset=/beatsbydre4usales.com/gfwlist -server=/industrialtoys.com/127.0.0.1#5335 -ipset=/industrialtoys.com/gfwlist -server=/bloombergbna.com/127.0.0.1#5335 -ipset=/bloombergbna.com/gfwlist -server=/apple.es/127.0.0.1#5335 -ipset=/apple.es/gfwlist +server=/fbreg.com/127.0.0.1#5335 +ipset=/fbreg.com/gfwlist server=/twitterstat.us/127.0.0.1#5335 ipset=/twitterstat.us/gfwlist -server=/disney.com/127.0.0.1#5335 -ipset=/disney.com/gfwlist -server=/apple.cz/127.0.0.1#5335 -ipset=/apple.cz/gfwlist -server=/apexlegends.com/127.0.0.1#5335 -ipset=/apexlegends.com/gfwlist -server=/vfsforgit.org/127.0.0.1#5335 -ipset=/vfsforgit.org/gfwlist -server=/apple.co.uk/127.0.0.1#5335 -ipset=/apple.co.uk/gfwlist +server=/elpornoamateur.com/127.0.0.1#5335 +ipset=/elpornoamateur.com/gfwlist +server=/easynike.com/127.0.0.1#5335 +ipset=/easynike.com/gfwlist +server=/finevids.xxx/127.0.0.1#5335 +ipset=/finevids.xxx/gfwlist server=/pinterest.pe/127.0.0.1#5335 ipset=/pinterest.pe/gfwlist server=/foxnewsgo.org/127.0.0.1#5335 ipset=/foxnewsgo.org/gfwlist -server=/apple.co.th/127.0.0.1#5335 -ipset=/apple.co.th/gfwlist -server=/12diasderegalosdeitunes.hn/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.hn/gfwlist -server=/apple.co.mz/127.0.0.1#5335 -ipset=/apple.co.mz/gfwlist -server=/pypl.com/127.0.0.1#5335 -ipset=/pypl.com/gfwlist -server=/guangming.com.my/127.0.0.1#5335 -ipset=/guangming.com.my/gfwlist -server=/beatssingapores.com/127.0.0.1#5335 -ipset=/beatssingapores.com/gfwlist -server=/headphonesol.com/127.0.0.1#5335 -ipset=/headphonesol.com/gfwlist -server=/volvogroup.mx/127.0.0.1#5335 -ipset=/volvogroup.mx/gfwlist -server=/viacom.com/127.0.0.1#5335 -ipset=/viacom.com/gfwlist -server=/vfsco.ro/127.0.0.1#5335 -ipset=/vfsco.ro/gfwlist -server=/hsfacebook.com/127.0.0.1#5335 -ipset=/hsfacebook.com/gfwlist +server=/sex.cam/127.0.0.1#5335 +ipset=/sex.cam/gfwlist +server=/purextc.com/127.0.0.1#5335 +ipset=/purextc.com/gfwlist +server=/yoursigmoidoscopy.com/127.0.0.1#5335 +ipset=/yoursigmoidoscopy.com/gfwlist +server=/familystrokes.com/127.0.0.1#5335 +ipset=/familystrokes.com/gfwlist server=/bmw-motorrad.co.id/127.0.0.1#5335 ipset=/bmw-motorrad.co.id/gfwlist -server=/riot.net/127.0.0.1#5335 -ipset=/riot.net/gfwlist -server=/bmw-motorrad.com.br/127.0.0.1#5335 -ipset=/bmw-motorrad.com.br/gfwlist +server=/slackcertified.com/127.0.0.1#5335 +ipset=/slackcertified.com/gfwlist server=/x-art.com/127.0.0.1#5335 ipset=/x-art.com/gfwlist server=/pricelessbeijing.com/127.0.0.1#5335 ipset=/pricelessbeijing.com/gfwlist -server=/pinterest.com.ec/127.0.0.1#5335 -ipset=/pinterest.com.ec/gfwlist server=/ebaymall.com/127.0.0.1#5335 ipset=/ebaymall.com/gfwlist server=/xn--qoq462m.com/127.0.0.1#5335 ipset=/xn--qoq462m.com/gfwlist -server=/bmwsports.com/127.0.0.1#5335 -ipset=/bmwsports.com/gfwlist -server=/apple.ca/127.0.0.1#5335 -ipset=/apple.ca/gfwlist -server=/vip-beats.com/127.0.0.1#5335 -ipset=/vip-beats.com/gfwlist -server=/thismon.ee/127.0.0.1#5335 -ipset=/thismon.ee/gfwlist -server=/mastercard.md/127.0.0.1#5335 -ipset=/mastercard.md/gfwlist -server=/apple.ae/127.0.0.1#5335 -ipset=/apple.ae/gfwlist -server=/mini-antilles.fr/127.0.0.1#5335 -ipset=/mini-antilles.fr/gfwlist -server=/yahoo.it/127.0.0.1#5335 -ipset=/yahoo.it/gfwlist -server=/iutunes.com/127.0.0.1#5335 -ipset=/iutunes.com/gfwlist -server=/winticket.jp/127.0.0.1#5335 -ipset=/winticket.jp/gfwlist -server=/businessinsider.in/127.0.0.1#5335 -ipset=/businessinsider.in/gfwlist -server=/kfs.io/127.0.0.1#5335 -ipset=/kfs.io/gfwlist -server=/btt804.com/127.0.0.1#5335 -ipset=/btt804.com/gfwlist -server=/itunesradio.rio/127.0.0.1#5335 -ipset=/itunesradio.rio/gfwlist +server=/hentaicloud.com/127.0.0.1#5335 +ipset=/hentaicloud.com/gfwlist server=/mucinexprofessional.com/127.0.0.1#5335 ipset=/mucinexprofessional.com/gfwlist -server=/onionshare.org/127.0.0.1#5335 -ipset=/onionshare.org/gfwlist -server=/road-crew.com/127.0.0.1#5335 -ipset=/road-crew.com/gfwlist -server=/dollarfotoclub.com/127.0.0.1#5335 -ipset=/dollarfotoclub.com/gfwlist -server=/globalvoices.org/127.0.0.1#5335 -ipset=/globalvoices.org/gfwlist -server=/indazn.com/127.0.0.1#5335 -ipset=/indazn.com/gfwlist -server=/foxsports.com.bo/127.0.0.1#5335 -ipset=/foxsports.com.bo/gfwlist -server=/itunes.us/127.0.0.1#5335 -ipset=/itunes.us/gfwlist -server=/itunes.rio/127.0.0.1#5335 -ipset=/itunes.rio/gfwlist -server=/jinnaju.com/127.0.0.1#5335 -ipset=/jinnaju.com/gfwlist -server=/monsterbeatssalg.com/127.0.0.1#5335 -ipset=/monsterbeatssalg.com/gfwlist -server=/google.ro/127.0.0.1#5335 -ipset=/google.ro/gfwlist -server=/bmw-eg.com/127.0.0.1#5335 -ipset=/bmw-eg.com/gfwlist -server=/shorturl.at/127.0.0.1#5335 -ipset=/shorturl.at/gfwlist -server=/pearsonvue.net/127.0.0.1#5335 -ipset=/pearsonvue.net/gfwlist -server=/miniso-au.com/127.0.0.1#5335 -ipset=/miniso-au.com/gfwlist -server=/gtv1.org/127.0.0.1#5335 -ipset=/gtv1.org/gfwlist -server=/12joursdecadeauxdeitunes.com/127.0.0.1#5335 -ipset=/12joursdecadeauxdeitunes.com/gfwlist +server=/yahoo.cm/127.0.0.1#5335 +ipset=/yahoo.cm/gfwlist +server=/fau11.com/127.0.0.1#5335 +ipset=/fau11.com/gfwlist +server=/littleasians.com/127.0.0.1#5335 +ipset=/littleasians.com/gfwlist server=/hanime1.me/127.0.0.1#5335 ipset=/hanime1.me/gfwlist -server=/nikeoutletstore.com/127.0.0.1#5335 -ipset=/nikeoutletstore.com/gfwlist -server=/imstagram.com/127.0.0.1#5335 -ipset=/imstagram.com/gfwlist -server=/github-cloud.s3.amazonaws.com/127.0.0.1#5335 -ipset=/github-cloud.s3.amazonaws.com/gfwlist -server=/stackapps.com/127.0.0.1#5335 -ipset=/stackapps.com/gfwlist server=/statsmakemecry.com/127.0.0.1#5335 ipset=/statsmakemecry.com/gfwlist -server=/fflick.com/127.0.0.1#5335 -ipset=/fflick.com/gfwlist +server=/jorropo.net/127.0.0.1#5335 +ipset=/jorropo.net/gfwlist server=/billpointnewzealand.com/127.0.0.1#5335 ipset=/billpointnewzealand.com/gfwlist -server=/zopim.com/127.0.0.1#5335 -ipset=/zopim.com/gfwlist -server=/12diasderegalosdeitunes.com/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.com/gfwlist -server=/bmw-motorrad.at/127.0.0.1#5335 -ipset=/bmw-motorrad.at/gfwlist -server=/12diasderegalosdeitunes.co.ni/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.co.ni/gfwlist -server=/cambridgemaths.org/127.0.0.1#5335 -ipset=/cambridgemaths.org/gfwlist -server=/applecensorship.com/127.0.0.1#5335 -ipset=/applecensorship.com/gfwlist +server=/gfw.report/127.0.0.1#5335 +ipset=/gfw.report/gfwlist +server=/opensourceinsight.dev/127.0.0.1#5335 +ipset=/opensourceinsight.dev/gfwlist server=/avatargarenanow-a.akamaihd.net/127.0.0.1#5335 ipset=/avatargarenanow-a.akamaihd.net/gfwlist server=/duck.com/127.0.0.1#5335 ipset=/duck.com/gfwlist -server=/xbox.org/127.0.0.1#5335 -ipset=/xbox.org/gfwlist -server=/star-latam.com/127.0.0.1#5335 -ipset=/star-latam.com/gfwlist -server=/shopee.ph/127.0.0.1#5335 -ipset=/shopee.ph/gfwlist -server=/netflixdnstest6.com/127.0.0.1#5335 -ipset=/netflixdnstest6.com/gfwlist +server=/fuck.com/127.0.0.1#5335 +ipset=/fuck.com/gfwlist server=/starcraft.com/127.0.0.1#5335 ipset=/starcraft.com/gfwlist -server=/volvotrucks.com.ar/127.0.0.1#5335 -ipset=/volvotrucks.com.ar/gfwlist +server=/instgram.com/127.0.0.1#5335 +ipset=/instgram.com/gfwlist server=/netlify.com/127.0.0.1#5335 ipset=/netlify.com/gfwlist -server=/sublimetext.com/127.0.0.1#5335 -ipset=/sublimetext.com/gfwlist -server=/icloudbrowser.net/127.0.0.1#5335 -ipset=/icloudbrowser.net/gfwlist -server=/getbootstrap.com/127.0.0.1#5335 -ipset=/getbootstrap.com/gfwlist -server=/pinterest.th/127.0.0.1#5335 -ipset=/pinterest.th/gfwlist -server=/parkinfo.com/127.0.0.1#5335 -ipset=/parkinfo.com/gfwlist -server=/wwwicloud.com/127.0.0.1#5335 -ipset=/wwwicloud.com/gfwlist -server=/acebook.com/127.0.0.1#5335 -ipset=/acebook.com/gfwlist -server=/pobl-content.com/127.0.0.1#5335 -ipset=/pobl-content.com/gfwlist -server=/now.sh/127.0.0.1#5335 -ipset=/now.sh/gfwlist -server=/harpercollinsadvantage.com/127.0.0.1#5335 -ipset=/harpercollinsadvantage.com/gfwlist -server=/mini-windsor.com/127.0.0.1#5335 -ipset=/mini-windsor.com/gfwlist -server=/icloudsecure.net/127.0.0.1#5335 -ipset=/icloudsecure.net/gfwlist +server=/streamlatina.com/127.0.0.1#5335 +ipset=/streamlatina.com/gfwlist +server=/pornvideos.casa/127.0.0.1#5335 +ipset=/pornvideos.casa/gfwlist +server=/javwide.com/127.0.0.1#5335 +ipset=/javwide.com/gfwlist +server=/facebookhome.cc/127.0.0.1#5335 +ipset=/facebookhome.cc/gfwlist +server=/syzbj36.xyz/127.0.0.1#5335 +ipset=/syzbj36.xyz/gfwlist server=/apple-expo.com/127.0.0.1#5335 ipset=/apple-expo.com/gfwlist -server=/bmw-connecteddrive.com/127.0.0.1#5335 -ipset=/bmw-connecteddrive.com/gfwlist -server=/ebayauction.com/127.0.0.1#5335 -ipset=/ebayauction.com/gfwlist server=/akamaitechnologies.com/127.0.0.1#5335 ipset=/akamaitechnologies.com/gfwlist -server=/icloudo.com/127.0.0.1#5335 -ipset=/icloudo.com/gfwlist -server=/uun89.com/127.0.0.1#5335 -ipset=/uun89.com/gfwlist -server=/icloudpay.net/127.0.0.1#5335 -ipset=/icloudpay.net/gfwlist -server=/reutersagency.cn/127.0.0.1#5335 -ipset=/reutersagency.cn/gfwlist -server=/icloudnet.net/127.0.0.1#5335 -ipset=/icloudnet.net/gfwlist -server=/projectbaseline.com/127.0.0.1#5335 -ipset=/projectbaseline.com/gfwlist -server=/newscommercial.co.uk/127.0.0.1#5335 -ipset=/newscommercial.co.uk/gfwlist -server=/mastercard.com.au/127.0.0.1#5335 -ipset=/mastercard.com.au/gfwlist -server=/geeksquadservices.org/127.0.0.1#5335 -ipset=/geeksquadservices.org/gfwlist +server=/tubegold.xxx/127.0.0.1#5335 +ipset=/tubegold.xxx/gfwlist +server=/facesbooc.com/127.0.0.1#5335 +ipset=/facesbooc.com/gfwlist server=/youtube.sg/127.0.0.1#5335 ipset=/youtube.sg/gfwlist server=/vanish.ie/127.0.0.1#5335 ipset=/vanish.ie/gfwlist -server=/android.com/127.0.0.1#5335 -ipset=/android.com/gfwlist -server=/scholar.google.com.ph/127.0.0.1#5335 -ipset=/scholar.google.com.ph/gfwlist -server=/instagramhilecim.com/127.0.0.1#5335 -ipset=/instagramhilecim.com/gfwlist +server=/swoosh.com/127.0.0.1#5335 +ipset=/swoosh.com/gfwlist +server=/javscat.net/127.0.0.1#5335 +ipset=/javscat.net/gfwlist server=/apple.hamburg/127.0.0.1#5335 ipset=/apple.hamburg/gfwlist -server=/init.shop/127.0.0.1#5335 -ipset=/init.shop/gfwlist -server=/visa.cl/127.0.0.1#5335 -ipset=/visa.cl/gfwlist -server=/scholar.google.co.uk/127.0.0.1#5335 -ipset=/scholar.google.co.uk/gfwlist -server=/i-cable.com/127.0.0.1#5335 -ipset=/i-cable.com/gfwlist -server=/icloud.org/127.0.0.1#5335 -ipset=/icloud.org/gfwlist -server=/nike.xn--hxt814e/127.0.0.1#5335 -ipset=/nike.xn--hxt814e/gfwlist -server=/icloud.om/127.0.0.1#5335 -ipset=/icloud.om/gfwlist -server=/icloud.lv/127.0.0.1#5335 -ipset=/icloud.lv/gfwlist -server=/facebookmarketingpartner.com/127.0.0.1#5335 -ipset=/facebookmarketingpartner.com/gfwlist -server=/bmwofcentralpa.com/127.0.0.1#5335 -ipset=/bmwofcentralpa.com/gfwlist -server=/paypall.com/127.0.0.1#5335 -ipset=/paypall.com/gfwlist +server=/sex.xxx/127.0.0.1#5335 +ipset=/sex.xxx/gfwlist server=/bitcoin.org/127.0.0.1#5335 ipset=/bitcoin.org/gfwlist -server=/nike.ci/127.0.0.1#5335 -ipset=/nike.ci/gfwlist -server=/thescottishsun.co.uk/127.0.0.1#5335 -ipset=/thescottishsun.co.uk/gfwlist -server=/bloomberglp.com/127.0.0.1#5335 -ipset=/bloomberglp.com/gfwlist -server=/mini.com/127.0.0.1#5335 -ipset=/mini.com/gfwlist +server=/img-prod-cms-rt-microsoft-com.akamaized.net/127.0.0.1#5335 +ipset=/img-prod-cms-rt-microsoft-com.akamaized.net/gfwlist +server=/linemyshop.com/127.0.0.1#5335 +ipset=/linemyshop.com/gfwlist server=/disneysubscription.com/127.0.0.1#5335 ipset=/disneysubscription.com/gfwlist -server=/volvobuses.co.nz/127.0.0.1#5335 -ipset=/volvobuses.co.nz/gfwlist -server=/git.io/127.0.0.1#5335 -ipset=/git.io/gfwlist -server=/icloud-content.com/127.0.0.1#5335 -ipset=/icloud-content.com/gfwlist -server=/itripto.com/127.0.0.1#5335 -ipset=/itripto.com/gfwlist +server=/get.dev/127.0.0.1#5335 +ipset=/get.dev/gfwlist +server=/pornofrog.com/127.0.0.1#5335 +ipset=/pornofrog.com/gfwlist +server=/go-lang.org/127.0.0.1#5335 +ipset=/go-lang.org/gfwlist server=/tutanota.com/127.0.0.1#5335 ipset=/tutanota.com/gfwlist -server=/wholesaleonlinemart.com/127.0.0.1#5335 -ipset=/wholesaleonlinemart.com/gfwlist -server=/wholesalefine.com/127.0.0.1#5335 -ipset=/wholesalefine.com/gfwlist server=/bmw-connecteddrive.my/127.0.0.1#5335 ipset=/bmw-connecteddrive.my/gfwlist -server=/iamakamai.net/127.0.0.1#5335 -ipset=/iamakamai.net/gfwlist server=/mini.com.gr/127.0.0.1#5335 ipset=/mini.com.gr/gfwlist server=/5lml.com/127.0.0.1#5335 ipset=/5lml.com/gfwlist server=/avinin.com/127.0.0.1#5335 ipset=/avinin.com/gfwlist -server=/pwnedpasswords.com/127.0.0.1#5335 -ipset=/pwnedpasswords.com/gfwlist -server=/voatour.com/127.0.0.1#5335 -ipset=/voatour.com/gfwlist -server=/bmw-motorrad.nl/127.0.0.1#5335 -ipset=/bmw-motorrad.nl/gfwlist -server=/swisssign.ch/127.0.0.1#5335 -ipset=/swisssign.ch/gfwlist -server=/visa.pl/127.0.0.1#5335 -ipset=/visa.pl/gfwlist -server=/sb.sb/127.0.0.1#5335 -ipset=/sb.sb/gfwlist -server=/nikesportswear.com/127.0.0.1#5335 -ipset=/nikesportswear.com/gfwlist -server=/thebeatsheadphonesale.com/127.0.0.1#5335 -ipset=/thebeatsheadphonesale.com/gfwlist -server=/tteshop.com/127.0.0.1#5335 -ipset=/tteshop.com/gfwlist -server=/stackauth.com/127.0.0.1#5335 -ipset=/stackauth.com/gfwlist -server=/tradevip1.com/127.0.0.1#5335 -ipset=/tradevip1.com/gfwlist +server=/familysexsimulator.com/127.0.0.1#5335 +ipset=/familysexsimulator.com/gfwlist +server=/wired.com/127.0.0.1#5335 +ipset=/wired.com/gfwlist server=/buzzav.com/127.0.0.1#5335 ipset=/buzzav.com/gfwlist -server=/topbeatsforsale.com/127.0.0.1#5335 -ipset=/topbeatsforsale.com/gfwlist -server=/topbeatsdealer.com/127.0.0.1#5335 -ipset=/topbeatsdealer.com/gfwlist -server=/cdn-terapeak.com/127.0.0.1#5335 -ipset=/cdn-terapeak.com/gfwlist -server=/rolfoundation.org/127.0.0.1#5335 -ipset=/rolfoundation.org/gfwlist -server=/bmw.mq/127.0.0.1#5335 -ipset=/bmw.mq/gfwlist -server=/kodi.wiki/127.0.0.1#5335 -ipset=/kodi.wiki/gfwlist -server=/marvelsuperheroseptember.com/127.0.0.1#5335 -ipset=/marvelsuperheroseptember.com/gfwlist -server=/the-monster-beats.com/127.0.0.1#5335 -ipset=/the-monster-beats.com/gfwlist +server=/dettol.com.sg/127.0.0.1#5335 +ipset=/dettol.com.sg/gfwlist +server=/intel.az/127.0.0.1#5335 +ipset=/intel.az/gfwlist server=/hpservices.com/127.0.0.1#5335 ipset=/hpservices.com/gfwlist server=/zeriamerikes.com/127.0.0.1#5335 ipset=/zeriamerikes.com/gfwlist -server=/nintendo.com/127.0.0.1#5335 -ipset=/nintendo.com/gfwlist -server=/apple.us/127.0.0.1#5335 -ipset=/apple.us/gfwlist -server=/myhulu.com/127.0.0.1#5335 -ipset=/myhulu.com/gfwlist -server=/visaeurope.si/127.0.0.1#5335 -ipset=/visaeurope.si/gfwlist server=/fragrancebay.com/127.0.0.1#5335 ipset=/fragrancebay.com/gfwlist -server=/szcheapmonsterheadphones.com/127.0.0.1#5335 -ipset=/szcheapmonsterheadphones.com/gfwlist -server=/sustainthesound.com/127.0.0.1#5335 -ipset=/sustainthesound.com/gfwlist server=/starbuckssummergame.ca/127.0.0.1#5335 ipset=/starbuckssummergame.ca/gfwlist -server=/awayoutgame.com/127.0.0.1#5335 -ipset=/awayoutgame.com/gfwlist -server=/amazonbusinessblog.com/127.0.0.1#5335 -ipset=/amazonbusinessblog.com/gfwlist -server=/mgo-images.com/127.0.0.1#5335 -ipset=/mgo-images.com/gfwlist -server=/ebay-confirm.com/127.0.0.1#5335 -ipset=/ebay-confirm.com/gfwlist -server=/superearsenjoy.com/127.0.0.1#5335 -ipset=/superearsenjoy.com/gfwlist -server=/swiftcapital.com/127.0.0.1#5335 -ipset=/swiftcapital.com/gfwlist +server=/minilondon.co/127.0.0.1#5335 +ipset=/minilondon.co/gfwlist +server=/ads.youtube.com/127.0.0.1#5335 +ipset=/ads.youtube.com/gfwlist server=/pixinsight.com.tw/127.0.0.1#5335 ipset=/pixinsight.com.tw/gfwlist server=/atlasonepoint.com/127.0.0.1#5335 ipset=/atlasonepoint.com/gfwlist server=/billpoint.us/127.0.0.1#5335 ipset=/billpoint.us/gfwlist -server=/automobile.fr/127.0.0.1#5335 -ipset=/automobile.fr/gfwlist -server=/jitsi.org/127.0.0.1#5335 -ipset=/jitsi.org/gfwlist -server=/miniwholesaleconnect.com/127.0.0.1#5335 -ipset=/miniwholesaleconnect.com/gfwlist -server=/lolshop.co.kr/127.0.0.1#5335 -ipset=/lolshop.co.kr/gfwlist -server=/disney.pt/127.0.0.1#5335 -ipset=/disney.pt/gfwlist -server=/bbycastatic.ca/127.0.0.1#5335 -ipset=/bbycastatic.ca/gfwlist -server=/bowenpress.com/127.0.0.1#5335 -ipset=/bowenpress.com/gfwlist -server=/specialtyheadphones.com/127.0.0.1#5335 -ipset=/specialtyheadphones.com/gfwlist -server=/dlfacebook.com/127.0.0.1#5335 -ipset=/dlfacebook.com/gfwlist -server=/associates-amazon.com/127.0.0.1#5335 -ipset=/associates-amazon.com/gfwlist -server=/secomtrust.net/127.0.0.1#5335 -ipset=/secomtrust.net/gfwlist -server=/predictivetechnologies.com/127.0.0.1#5335 -ipset=/predictivetechnologies.com/gfwlist -server=/browserleaks.com/127.0.0.1#5335 -ipset=/browserleaks.com/gfwlist -server=/appleexpo.info/127.0.0.1#5335 -ipset=/appleexpo.info/gfwlist -server=/sneakerpage.net/127.0.0.1#5335 -ipset=/sneakerpage.net/gfwlist -server=/translatewiki.org/127.0.0.1#5335 -ipset=/translatewiki.org/gfwlist -server=/voanoticias.com/127.0.0.1#5335 -ipset=/voanoticias.com/gfwlist -server=/pricelesstv.com/127.0.0.1#5335 -ipset=/pricelesstv.com/gfwlist -server=/agzy1.com/127.0.0.1#5335 -ipset=/agzy1.com/gfwlist -server=/intel.eu/127.0.0.1#5335 -ipset=/intel.eu/gfwlist -server=/researchkit.hk/127.0.0.1#5335 -ipset=/researchkit.hk/gfwlist -server=/icloudmail.net/127.0.0.1#5335 -ipset=/icloudmail.net/gfwlist -server=/shop-headphones.net/127.0.0.1#5335 -ipset=/shop-headphones.net/gfwlist -server=/bridgestonevan.com/127.0.0.1#5335 -ipset=/bridgestonevan.com/gfwlist +server=/holaporno.xxx/127.0.0.1#5335 +ipset=/holaporno.xxx/gfwlist +server=/nijinchu.com/127.0.0.1#5335 +ipset=/nijinchu.com/gfwlist server=/btt904.com/127.0.0.1#5335 ipset=/btt904.com/gfwlist -server=/shoers.com/127.0.0.1#5335 -ipset=/shoers.com/gfwlist -server=/opentranslatorstothings.org/127.0.0.1#5335 -ipset=/opentranslatorstothings.org/gfwlist +server=/s-msft.com/127.0.0.1#5335 +ipset=/s-msft.com/gfwlist server=/bmwstepconnections.com/127.0.0.1#5335 ipset=/bmwstepconnections.com/gfwlist -server=/nike.com.br/127.0.0.1#5335 -ipset=/nike.com.br/gfwlist -server=/sanvaras.com/127.0.0.1#5335 -ipset=/sanvaras.com/gfwlist -server=/travelex.co.nz/127.0.0.1#5335 -ipset=/travelex.co.nz/gfwlist -server=/minilaval.com/127.0.0.1#5335 -ipset=/minilaval.com/gfwlist -server=/visa.com.kh/127.0.0.1#5335 -ipset=/visa.com.kh/gfwlist -server=/prostudiobeatscybersale.com/127.0.0.1#5335 -ipset=/prostudiobeatscybersale.com/gfwlist -server=/promonsterbeatsbydre.com/127.0.0.1#5335 -ipset=/promonsterbeatsbydre.com/gfwlist -server=/powerbeatsbydrdre.com/127.0.0.1#5335 -ipset=/powerbeatsbydrdre.com/gfwlist -server=/lol-europe.com/127.0.0.1#5335 -ipset=/lol-europe.com/gfwlist +server=/hotpornbible.com/127.0.0.1#5335 +ipset=/hotpornbible.com/gfwlist +server=/imgcrl.org/127.0.0.1#5335 +ipset=/imgcrl.org/gfwlist +server=/manytoon.com/127.0.0.1#5335 +ipset=/manytoon.com/gfwlist +server=/freehentaistream.com/127.0.0.1#5335 +ipset=/freehentaistream.com/gfwlist server=/evise.com/127.0.0.1#5335 ipset=/evise.com/gfwlist -server=/nikepromax.com/127.0.0.1#5335 -ipset=/nikepromax.com/gfwlist -server=/minivancouver.ca/127.0.0.1#5335 -ipset=/minivancouver.ca/gfwlist -server=/personeelsland.com/127.0.0.1#5335 -ipset=/personeelsland.com/gfwlist -server=/store-bridgestonesports.com/127.0.0.1#5335 -ipset=/store-bridgestonesports.com/gfwlist -server=/cbsi.com/127.0.0.1#5335 -ipset=/cbsi.com/gfwlist +server=/xxx-porn-fuck.com/127.0.0.1#5335 +ipset=/xxx-porn-fuck.com/gfwlist +server=/familysimulator.io/127.0.0.1#5335 +ipset=/familysimulator.io/gfwlist server=/lgsalesportal.com/127.0.0.1#5335 ipset=/lgsalesportal.com/gfwlist -server=/billpoint.info/127.0.0.1#5335 -ipset=/billpoint.info/gfwlist -server=/volvotrucks.ph/127.0.0.1#5335 -ipset=/volvotrucks.ph/gfwlist server=/beatsfactorycollection.com/127.0.0.1#5335 ipset=/beatsfactorycollection.com/gfwlist server=/xlstudio.com/127.0.0.1#5335 ipset=/xlstudio.com/gfwlist -server=/bmw-motorrad.bg/127.0.0.1#5335 -ipset=/bmw-motorrad.bg/gfwlist -server=/offerairjordanlebron.com/127.0.0.1#5335 -ipset=/offerairjordanlebron.com/gfwlist -server=/nhncorp.jp/127.0.0.1#5335 -ipset=/nhncorp.jp/gfwlist -server=/sbnation.com/127.0.0.1#5335 -ipset=/sbnation.com/gfwlist -server=/newschristmasshopping.com/127.0.0.1#5335 -ipset=/newschristmasshopping.com/gfwlist +server=/faapy.com/127.0.0.1#5335 +ipset=/faapy.com/gfwlist +server=/yandex.jobs/127.0.0.1#5335 +ipset=/yandex.jobs/gfwlist server=/volvobuses.com.tw/127.0.0.1#5335 ipset=/volvobuses.com.tw/gfwlist -server=/newlysprung.net/127.0.0.1#5335 -ipset=/newlysprung.net/gfwlist -server=/bmwusatires.com/127.0.0.1#5335 -ipset=/bmwusatires.com/gfwlist -server=/newestbeatsbydre.com/127.0.0.1#5335 -ipset=/newestbeatsbydre.com/gfwlist -server=/newbeatsblackfriday.com/127.0.0.1#5335 -ipset=/newbeatsblackfriday.com/gfwlist -server=/negoziomonsterbeats.com/127.0.0.1#5335 -ipset=/negoziomonsterbeats.com/gfwlist -server=/nikebetrue.com/127.0.0.1#5335 -ipset=/nikebetrue.com/gfwlist -server=/abcheadphones.com/127.0.0.1#5335 -ipset=/abcheadphones.com/gfwlist -server=/gamer-cds.cdn.hinet.net/127.0.0.1#5335 -ipset=/gamer-cds.cdn.hinet.net/gfwlist -server=/pdxbmw.com/127.0.0.1#5335 -ipset=/pdxbmw.com/gfwlist -server=/msads.net/127.0.0.1#5335 -ipset=/msads.net/gfwlist -server=/scholar.google.co.jp/127.0.0.1#5335 -ipset=/scholar.google.co.jp/gfwlist +server=/venmo.org/127.0.0.1#5335 +ipset=/venmo.org/gfwlist +server=/illusiony.com/127.0.0.1#5335 +ipset=/illusiony.com/gfwlist +server=/facebookgraphsearch.com/127.0.0.1#5335 +ipset=/facebookgraphsearch.com/gfwlist server=/racked.com/127.0.0.1#5335 ipset=/racked.com/gfwlist -server=/gameon-masters.com/127.0.0.1#5335 -ipset=/gameon-masters.com/gfwlist -server=/globalspec.com/127.0.0.1#5335 -ipset=/globalspec.com/gfwlist -server=/mybeatsbydrestudio.com/127.0.0.1#5335 -ipset=/mybeatsbydrestudio.com/gfwlist +server=/viewerswives.net/127.0.0.1#5335 +ipset=/viewerswives.net/gfwlist +server=/thaichix.com/127.0.0.1#5335 +ipset=/thaichix.com/gfwlist server=/webobjects.co.uk/127.0.0.1#5335 ipset=/webobjects.co.uk/gfwlist -server=/beatsearbudsheadphoness.com/127.0.0.1#5335 -ipset=/beatsearbudsheadphoness.com/gfwlist -server=/ms4dre.com/127.0.0.1#5335 -ipset=/ms4dre.com/gfwlist -server=/monstersdebea.com/127.0.0.1#5335 -ipset=/monstersdebea.com/gfwlist -server=/blogspot.qa/127.0.0.1#5335 -ipset=/blogspot.qa/gfwlist -server=/monsterproduct.net/127.0.0.1#5335 -ipset=/monsterproduct.net/gfwlist -server=/thomsonreuters.es/127.0.0.1#5335 -ipset=/thomsonreuters.es/gfwlist -server=/kindle.in/127.0.0.1#5335 -ipset=/kindle.in/gfwlist -server=/54647.online/127.0.0.1#5335 -ipset=/54647.online/gfwlist -server=/js.org/127.0.0.1#5335 -ipset=/js.org/gfwlist +server=/monsterbeatsforsale.com/127.0.0.1#5335 +ipset=/monsterbeatsforsale.com/gfwlist +server=/xvideosx.com.br/127.0.0.1#5335 +ipset=/xvideosx.com.br/gfwlist +server=/cbsservice.aws.syncbak.com/127.0.0.1#5335 +ipset=/cbsservice.aws.syncbak.com/gfwlist +server=/albastudio.co/127.0.0.1#5335 +ipset=/albastudio.co/gfwlist +server=/fetishpornonly.com/127.0.0.1#5335 +ipset=/fetishpornonly.com/gfwlist server=/worldhack.com/127.0.0.1#5335 ipset=/worldhack.com/gfwlist -server=/monsterbeatstang.com/127.0.0.1#5335 -ipset=/monsterbeatstang.com/gfwlist server=/myfoxchicago.com/127.0.0.1#5335 ipset=/myfoxchicago.com/gfwlist -server=/zohoschools.com/127.0.0.1#5335 -ipset=/zohoschools.com/gfwlist -server=/businessfocus.io/127.0.0.1#5335 -ipset=/businessfocus.io/gfwlist server=/fortnite.com/127.0.0.1#5335 ipset=/fortnite.com/gfwlist -server=/v8.dev/127.0.0.1#5335 -ipset=/v8.dev/gfwlist server=/yahoo.is/127.0.0.1#5335 ipset=/yahoo.is/gfwlist server=/alphabet.de/127.0.0.1#5335 ipset=/alphabet.de/gfwlist -server=/monsterbeatsonlinestoreuk.com/127.0.0.1#5335 -ipset=/monsterbeatsonlinestoreuk.com/gfwlist -server=/bmw.com.ar/127.0.0.1#5335 -ipset=/bmw.com.ar/gfwlist -server=/nikeb.com/127.0.0.1#5335 -ipset=/nikeb.com/gfwlist -server=/monsterbeatsmall.com/127.0.0.1#5335 -ipset=/monsterbeatsmall.com/gfwlist -server=/faebook.com/127.0.0.1#5335 -ipset=/faebook.com/gfwlist -server=/tvmost.com.hk/127.0.0.1#5335 -ipset=/tvmost.com.hk/gfwlist +server=/yomiuri-johkai.co.jp/127.0.0.1#5335 +ipset=/yomiuri-johkai.co.jp/gfwlist +server=/link2galleries.com/127.0.0.1#5335 +ipset=/link2galleries.com/gfwlist server=/geforce.co.kr/127.0.0.1#5335 ipset=/geforce.co.kr/gfwlist -server=/drdrefnac.com/127.0.0.1#5335 -ipset=/drdrefnac.com/gfwlist -server=/venmo.org/127.0.0.1#5335 -ipset=/venmo.org/gfwlist -server=/swag.live/127.0.0.1#5335 -ipset=/swag.live/gfwlist -server=/ebaydts.com/127.0.0.1#5335 -ipset=/ebaydts.com/gfwlist -server=/bestshoesale2014.net/127.0.0.1#5335 -ipset=/bestshoesale2014.net/gfwlist -server=/monsterbeatsbydreshop.com/127.0.0.1#5335 -ipset=/monsterbeatsbydreshop.com/gfwlist -server=/pearsonclinical.in/127.0.0.1#5335 -ipset=/pearsonclinical.in/gfwlist +server=/exploitedteensasia.com/127.0.0.1#5335 +ipset=/exploitedteensasia.com/gfwlist +server=/bustyoldsluts.com/127.0.0.1#5335 +ipset=/bustyoldsluts.com/gfwlist +server=/fap-xxx.com/127.0.0.1#5335 +ipset=/fap-xxx.com/gfwlist +server=/geti2p.net/127.0.0.1#5335 +ipset=/geti2p.net/gfwlist server=/hulu.us/127.0.0.1#5335 ipset=/hulu.us/gfwlist -server=/tiburon.com/127.0.0.1#5335 -ipset=/tiburon.com/gfwlist server=/comodoca4.com/127.0.0.1#5335 ipset=/comodoca4.com/gfwlist -server=/apple.tt/127.0.0.1#5335 -ipset=/apple.tt/gfwlist -server=/monsterbeatsbydre-usa.com/127.0.0.1#5335 -ipset=/monsterbeatsbydre-usa.com/gfwlist -server=/minispecialoffers.ca/127.0.0.1#5335 -ipset=/minispecialoffers.ca/gfwlist -server=/geek-squads.net/127.0.0.1#5335 -ipset=/geek-squads.net/gfwlist +server=/spankred3d.com/127.0.0.1#5335 +ipset=/spankred3d.com/gfwlist server=/scholar.google.com.py/127.0.0.1#5335 ipset=/scholar.google.com.py/gfwlist -server=/ebaycourse.com/127.0.0.1#5335 -ipset=/ebaycourse.com/gfwlist -server=/omscr.com/127.0.0.1#5335 -ipset=/omscr.com/gfwlist -server=/monsterbeatsbydrdre-usa.com/127.0.0.1#5335 -ipset=/monsterbeatsbydrdre-usa.com/gfwlist -server=/leagueoflegends.com/127.0.0.1#5335 -ipset=/leagueoflegends.com/gfwlist server=/beatsbydrdreoutlet.com/127.0.0.1#5335 ipset=/beatsbydrdreoutlet.com/gfwlist -server=/coolmonster.net/127.0.0.1#5335 -ipset=/coolmonster.net/gfwlist -server=/ospray.net/127.0.0.1#5335 -ipset=/ospray.net/gfwlist server=/myfoxcharlotte.com/127.0.0.1#5335 ipset=/myfoxcharlotte.com/gfwlist -server=/electricluxury.com/127.0.0.1#5335 -ipset=/electricluxury.com/gfwlist -server=/huffingtonpost.es/127.0.0.1#5335 -ipset=/huffingtonpost.es/gfwlist -server=/monsterbeatsau.com/127.0.0.1#5335 -ipset=/monsterbeatsau.com/gfwlist -server=/unravel2.com/127.0.0.1#5335 -ipset=/unravel2.com/gfwlist -server=/bloombergforeducation.com/127.0.0.1#5335 -ipset=/bloombergforeducation.com/gfwlist -server=/islamiccenterofnewlondon.com/127.0.0.1#5335 -ipset=/islamiccenterofnewlondon.com/gfwlist -server=/easportsactiveonline.com/127.0.0.1#5335 -ipset=/easportsactiveonline.com/gfwlist -server=/dungeonkeeper.com.cn/127.0.0.1#5335 -ipset=/dungeonkeeper.com.cn/gfwlist -server=/branchportal.com/127.0.0.1#5335 -ipset=/branchportal.com/gfwlist -server=/microsoftsilverlight.org/127.0.0.1#5335 -ipset=/microsoftsilverlight.org/gfwlist -server=/gfw.press/127.0.0.1#5335 -ipset=/gfw.press/gfwlist -server=/telesell.com/127.0.0.1#5335 -ipset=/telesell.com/gfwlist -server=/monsterbeats-onsale.com/127.0.0.1#5335 -ipset=/monsterbeats-onsale.com/gfwlist -server=/leagueoflegendsscripts.com/127.0.0.1#5335 -ipset=/leagueoflegendsscripts.com/gfwlist -server=/monster-beats-headphones.com/127.0.0.1#5335 -ipset=/monster-beats-headphones.com/gfwlist -server=/facebookhome.com/127.0.0.1#5335 -ipset=/facebookhome.com/gfwlist -server=/paypal-signin.us/127.0.0.1#5335 -ipset=/paypal-signin.us/gfwlist -server=/mmonsterheadphones.net/127.0.0.1#5335 -ipset=/mmonsterheadphones.net/gfwlist +server=/somanylolies.com/127.0.0.1#5335 +ipset=/somanylolies.com/gfwlist +server=/fulltaboo.tv/127.0.0.1#5335 +ipset=/fulltaboo.tv/gfwlist +server=/letsencrypt.com/127.0.0.1#5335 +ipset=/letsencrypt.com/gfwlist +server=/disneyhentai.com/127.0.0.1#5335 +ipset=/disneyhentai.com/gfwlist server=/yo1health.com/127.0.0.1#5335 ipset=/yo1health.com/gfwlist server=/bcrncdn.com/127.0.0.1#5335 ipset=/bcrncdn.com/gfwlist -server=/troisrivieresmini.com/127.0.0.1#5335 -ipset=/troisrivieresmini.com/gfwlist -server=/pinterest.com.au/127.0.0.1#5335 -ipset=/pinterest.com.au/gfwlist -server=/beatsdrdre-it.com/127.0.0.1#5335 -ipset=/beatsdrdre-it.com/gfwlist -server=/bmw-welt.tv/127.0.0.1#5335 -ipset=/bmw-welt.tv/gfwlist -server=/cup.com.hk/127.0.0.1#5335 -ipset=/cup.com.hk/gfwlist -server=/voachinese.com/127.0.0.1#5335 -ipset=/voachinese.com/gfwlist -server=/passiontimes.hk/127.0.0.1#5335 -ipset=/passiontimes.hk/gfwlist -server=/marvelsdoubleagent.com/127.0.0.1#5335 -ipset=/marvelsdoubleagent.com/gfwlist -server=/bmw-motorrad.bo/127.0.0.1#5335 -ipset=/bmw-motorrad.bo/gfwlist -server=/adobedtm.com/127.0.0.1#5335 -ipset=/adobedtm.com/gfwlist +server=/adobeaemcloud.net/127.0.0.1#5335 +ipset=/adobeaemcloud.net/gfwlist +server=/conscrypt.org/127.0.0.1#5335 +ipset=/conscrypt.org/gfwlist +server=/thaigirls.net/127.0.0.1#5335 +ipset=/thaigirls.net/gfwlist server=/facnbook.com/127.0.0.1#5335 ipset=/facnbook.com/gfwlist server=/intercamcashpassport.com.mx/127.0.0.1#5335 ipset=/intercamcashpassport.com.mx/gfwlist -server=/mini.com.tr/127.0.0.1#5335 -ipset=/mini.com.tr/gfwlist -server=/ebaycafe.com/127.0.0.1#5335 -ipset=/ebaycafe.com/gfwlist server=/cloudflare-ipfs.com/127.0.0.1#5335 ipset=/cloudflare-ipfs.com/gfwlist -server=/akamaitech.net/127.0.0.1#5335 -ipset=/akamaitech.net/gfwlist server=/ebayca.com/127.0.0.1#5335 ipset=/ebayca.com/gfwlist server=/webrtc.org/127.0.0.1#5335 ipset=/webrtc.org/gfwlist server=/nikeusa.com/127.0.0.1#5335 ipset=/nikeusa.com/gfwlist -server=/pypl.net/127.0.0.1#5335 -ipset=/pypl.net/gfwlist -server=/galegroup.com/127.0.0.1#5335 -ipset=/galegroup.com/gfwlist -server=/nike-uk.com/127.0.0.1#5335 -ipset=/nike-uk.com/gfwlist server=/v2ray.cool/127.0.0.1#5335 ipset=/v2ray.cool/gfwlist -server=/foxsports.gt/127.0.0.1#5335 -ipset=/foxsports.gt/gfwlist -server=/bmw-motorrad.ec/127.0.0.1#5335 -ipset=/bmw-motorrad.ec/gfwlist -server=/ibeatsbydre.cc/127.0.0.1#5335 -ipset=/ibeatsbydre.cc/gfwlist server=/icloud.ch/127.0.0.1#5335 ipset=/icloud.ch/gfwlist -server=/pinterest.kr/127.0.0.1#5335 -ipset=/pinterest.kr/gfwlist -server=/southfloridamini.com/127.0.0.1#5335 -ipset=/southfloridamini.com/gfwlist server=/ebay.co.ve/127.0.0.1#5335 ipset=/ebay.co.ve/gfwlist -server=/hotbeatsonsale.com/127.0.0.1#5335 -ipset=/hotbeatsonsale.com/gfwlist server=/bmw-jordan.com/127.0.0.1#5335 ipset=/bmw-jordan.com/gfwlist -server=/gettyimages.hk/127.0.0.1#5335 -ipset=/gettyimages.hk/gfwlist -server=/mastercard.ua/127.0.0.1#5335 -ipset=/mastercard.ua/gfwlist -server=/headset987.com/127.0.0.1#5335 -ipset=/headset987.com/gfwlist server=/canon.hu/127.0.0.1#5335 ipset=/canon.hu/gfwlist -server=/veet.co.uk/127.0.0.1#5335 -ipset=/veet.co.uk/gfwlist +server=/porn-stalker.fr/127.0.0.1#5335 +ipset=/porn-stalker.fr/gfwlist server=/topbeatsbydrdreoutlet.com/127.0.0.1#5335 ipset=/topbeatsbydrdreoutlet.com/gfwlist server=/microsoft.de/127.0.0.1#5335 ipset=/microsoft.de/gfwlist -server=/bloombergprep.com/127.0.0.1#5335 -ipset=/bloombergprep.com/gfwlist server=/minidurham.ca/127.0.0.1#5335 ipset=/minidurham.ca/gfwlist -server=/headphoneses.com/127.0.0.1#5335 -ipset=/headphoneses.com/gfwlist -server=/aimei133.com/127.0.0.1#5335 -ipset=/aimei133.com/gfwlist -server=/dragonagekeep.com/127.0.0.1#5335 -ipset=/dragonagekeep.com/gfwlist -server=/classicnike.com/127.0.0.1#5335 -ipset=/classicnike.com/gfwlist +server=/leannecrowvideos.com/127.0.0.1#5335 +ipset=/leannecrowvideos.com/gfwlist server=/freebasics.com/127.0.0.1#5335 ipset=/freebasics.com/gfwlist -server=/ebayshop.com/127.0.0.1#5335 -ipset=/ebayshop.com/gfwlist -server=/gobeatsye.com/127.0.0.1#5335 -ipset=/gobeatsye.com/gfwlist -server=/openresty.org/127.0.0.1#5335 -ipset=/openresty.org/gfwlist server=/bmw-albania.com/127.0.0.1#5335 ipset=/bmw-albania.com/gfwlist -server=/ausbeatsbydrdre.com/127.0.0.1#5335 -ipset=/ausbeatsbydrdre.com/gfwlist -server=/citizenlab.org/127.0.0.1#5335 -ipset=/citizenlab.org/gfwlist -server=/gmnetworks.net/127.0.0.1#5335 -ipset=/gmnetworks.net/gfwlist -server=/alphabet.fr/127.0.0.1#5335 -ipset=/alphabet.fr/gfwlist -server=/dmed.technology/127.0.0.1#5335 -ipset=/dmed.technology/gfwlist -server=/ieeefoundation.org/127.0.0.1#5335 -ipset=/ieeefoundation.org/gfwlist -server=/frcasquesbeats.com/127.0.0.1#5335 -ipset=/frcasquesbeats.com/gfwlist -server=/chickstagram.com/127.0.0.1#5335 -ipset=/chickstagram.com/gfwlist +server=/wildxxxhardcore.com/127.0.0.1#5335 +ipset=/wildxxxhardcore.com/gfwlist server=/blogspot.mk/127.0.0.1#5335 ipset=/blogspot.mk/gfwlist -server=/bloombergvault.com/127.0.0.1#5335 -ipset=/bloombergvault.com/gfwlist server=/drebeats-france.com/127.0.0.1#5335 ipset=/drebeats-france.com/gfwlist -server=/haskell.org/127.0.0.1#5335 -ipset=/haskell.org/gfwlist +server=/dagfs.com/127.0.0.1#5335 +ipset=/dagfs.com/gfwlist server=/paypalshopping.net/127.0.0.1#5335 ipset=/paypalshopping.net/gfwlist -server=/etheadphones.com/127.0.0.1#5335 -ipset=/etheadphones.com/gfwlist -server=/huluusa.com/127.0.0.1#5335 -ipset=/huluusa.com/gfwlist -server=/nikesb.com/127.0.0.1#5335 -ipset=/nikesb.com/gfwlist -server=/mastercard.ba/127.0.0.1#5335 -ipset=/mastercard.ba/gfwlist -server=/drebeatstudio.com/127.0.0.1#5335 -ipset=/drebeatstudio.com/gfwlist +server=/sex-hot-sites.com/127.0.0.1#5335 +ipset=/sex-hot-sites.com/gfwlist +server=/verisign.com.br/127.0.0.1#5335 +ipset=/verisign.com.br/gfwlist +server=/perfectnaked.com/127.0.0.1#5335 +ipset=/perfectnaked.com/gfwlist server=/hplip.net/127.0.0.1#5335 ipset=/hplip.net/gfwlist -server=/bmw.com.uy/127.0.0.1#5335 -ipset=/bmw.com.uy/gfwlist -server=/bmw-motorrad.rs/127.0.0.1#5335 -ipset=/bmw-motorrad.rs/gfwlist -server=/paypal.ca/127.0.0.1#5335 -ipset=/paypal.ca/gfwlist -server=/physiology.org/127.0.0.1#5335 -ipset=/physiology.org/gfwlist -server=/wix.com/127.0.0.1#5335 -ipset=/wix.com/gfwlist -server=/drebeatsforsaleus.com/127.0.0.1#5335 -ipset=/drebeatsforsaleus.com/gfwlist -server=/bestbuycanadaltd.ca/127.0.0.1#5335 -ipset=/bestbuycanadaltd.ca/gfwlist -server=/akamainewzealand.com/127.0.0.1#5335 -ipset=/akamainewzealand.com/gfwlist -server=/lsnzxzy1.com/127.0.0.1#5335 -ipset=/lsnzxzy1.com/gfwlist +server=/animegal.net/127.0.0.1#5335 +ipset=/animegal.net/gfwlist +server=/xxxstreams.eu/127.0.0.1#5335 +ipset=/xxxstreams.eu/gfwlist server=/chaturbate.com/127.0.0.1#5335 ipset=/chaturbate.com/gfwlist -server=/lih.kg/127.0.0.1#5335 -ipset=/lih.kg/gfwlist -server=/ebay.jp/127.0.0.1#5335 -ipset=/ebay.jp/gfwlist server=/nikeclub.com/127.0.0.1#5335 ipset=/nikeclub.com/gfwlist server=/kktix.com/127.0.0.1#5335 ipset=/kktix.com/gfwlist -server=/diddykongracing.com/127.0.0.1#5335 -ipset=/diddykongracing.com/gfwlist -server=/bahamut.com.tw/127.0.0.1#5335 -ipset=/bahamut.com.tw/gfwlist -server=/drebeats-studio.com/127.0.0.1#5335 -ipset=/drebeats-studio.com/gfwlist -server=/amebame.com/127.0.0.1#5335 -ipset=/amebame.com/gfwlist -server=/minigrandriver.com/127.0.0.1#5335 -ipset=/minigrandriver.com/gfwlist -server=/enterprisessl.com/127.0.0.1#5335 -ipset=/enterprisessl.com/gfwlist -server=/drdreheadphonesusstore.com/127.0.0.1#5335 -ipset=/drdreheadphonesusstore.com/gfwlist -server=/pinterest.vn/127.0.0.1#5335 -ipset=/pinterest.vn/gfwlist +server=/hotladyhere.com/127.0.0.1#5335 +ipset=/hotladyhere.com/gfwlist +server=/ahvideosexe.com/127.0.0.1#5335 +ipset=/ahvideosexe.com/gfwlist server=/instagramlogin.com/127.0.0.1#5335 ipset=/instagramlogin.com/gfwlist -server=/drdrebeatssale7.com/127.0.0.1#5335 -ipset=/drdrebeatssale7.com/gfwlist -server=/akamaitechnologies.net/127.0.0.1#5335 -ipset=/akamaitechnologies.net/gfwlist server=/centos.org/127.0.0.1#5335 ipset=/centos.org/gfwlist -server=/visaglobalfinance.com/127.0.0.1#5335 -ipset=/visaglobalfinance.com/gfwlist server=/oauthz.com/127.0.0.1#5335 ipset=/oauthz.com/gfwlist -server=/faesebook.com/127.0.0.1#5335 -ipset=/faesebook.com/gfwlist -server=/v8project.org/127.0.0.1#5335 -ipset=/v8project.org/gfwlist -server=/drdrebeats-headphone.com/127.0.0.1#5335 -ipset=/drdrebeats-headphone.com/gfwlist -server=/discountbeatsstore.com/127.0.0.1#5335 -ipset=/discountbeatsstore.com/gfwlist -server=/bridgestonegz.com/127.0.0.1#5335 -ipset=/bridgestonegz.com/gfwlist -server=/microsoftcloud.com/127.0.0.1#5335 -ipset=/microsoftcloud.com/gfwlist +server=/x1337x.se/127.0.0.1#5335 +ipset=/x1337x.se/gfwlist server=/mach-os.net/127.0.0.1#5335 ipset=/mach-os.net/gfwlist -server=/azureserviceprofiler.com/127.0.0.1#5335 -ipset=/azureserviceprofiler.com/gfwlist -server=/gannettdigital.com/127.0.0.1#5335 -ipset=/gannettdigital.com/gfwlist -server=/mr-tireman.jp/127.0.0.1#5335 -ipset=/mr-tireman.jp/gfwlist -server=/battlefield.com/127.0.0.1#5335 -ipset=/battlefield.com/gfwlist +server=/tsmodelstube.com/127.0.0.1#5335 +ipset=/tsmodelstube.com/gfwlist +server=/hornygfporn.com/127.0.0.1#5335 +ipset=/hornygfporn.com/gfwlist server=/gloryofheracles.com/127.0.0.1#5335 ipset=/gloryofheracles.com/gfwlist -server=/trithucvn.net/127.0.0.1#5335 -ipset=/trithucvn.net/gfwlist -server=/paypalcommunity.com/127.0.0.1#5335 -ipset=/paypalcommunity.com/gfwlist -server=/linefriends.com.tw/127.0.0.1#5335 -ipset=/linefriends.com.tw/gfwlist -server=/azure-dns.info/127.0.0.1#5335 -ipset=/azure-dns.info/gfwlist +server=/booksc.me/127.0.0.1#5335 +ipset=/booksc.me/gfwlist +server=/eca.hinet.net/127.0.0.1#5335 +ipset=/eca.hinet.net/gfwlist server=/vkontakte.ru/127.0.0.1#5335 ipset=/vkontakte.ru/gfwlist -server=/mingw.org/127.0.0.1#5335 -ipset=/mingw.org/gfwlist -server=/custombeatsdeals.com/127.0.0.1#5335 -ipset=/custombeatsdeals.com/gfwlist -server=/sitepoint.com/127.0.0.1#5335 -ipset=/sitepoint.com/gfwlist -server=/afewmomentswith.com/127.0.0.1#5335 -ipset=/afewmomentswith.com/gfwlist -server=/visa.com.tr/127.0.0.1#5335 -ipset=/visa.com.tr/gfwlist -server=/drdrebeatsdiscount.com/127.0.0.1#5335 -ipset=/drdrebeatsdiscount.com/gfwlist -server=/cuffiesaldi.com/127.0.0.1#5335 -ipset=/cuffiesaldi.com/gfwlist -server=/ibook.net/127.0.0.1#5335 -ipset=/ibook.net/gfwlist -server=/wholecitiesfoundation.org/127.0.0.1#5335 -ipset=/wholecitiesfoundation.org/gfwlist +server=/crit-staging.com/127.0.0.1#5335 +ipset=/crit-staging.com/gfwlist +server=/fabuyemian.com/127.0.0.1#5335 +ipset=/fabuyemian.com/gfwlist +server=/yourdoll.com/127.0.0.1#5335 +ipset=/yourdoll.com/gfwlist server=/beatsua.com/127.0.0.1#5335 ipset=/beatsua.com/gfwlist -server=/cozydrdrebeats.com/127.0.0.1#5335 -ipset=/cozydrdrebeats.com/gfwlist -server=/techliquidators.com/127.0.0.1#5335 -ipset=/techliquidators.com/gfwlist -server=/cmhalq.com/127.0.0.1#5335 -ipset=/cmhalq.com/gfwlist -server=/soccermatchpass.com/127.0.0.1#5335 -ipset=/soccermatchpass.com/gfwlist +server=/newtalk.tw/127.0.0.1#5335 +ipset=/newtalk.tw/gfwlist server=/nikeshoesmarket.com/127.0.0.1#5335 ipset=/nikeshoesmarket.com/gfwlist -server=/pixnet.pro/127.0.0.1#5335 -ipset=/pixnet.pro/gfwlist -server=/volvotrucks.ba/127.0.0.1#5335 -ipset=/volvotrucks.ba/gfwlist +server=/petiteballerinasfucked.com/127.0.0.1#5335 +ipset=/petiteballerinasfucked.com/gfwlist +server=/vimeo.fr/127.0.0.1#5335 +ipset=/vimeo.fr/gfwlist server=/mastercard.pt/127.0.0.1#5335 ipset=/mastercard.pt/gfwlist server=/nikegenealogy.com/127.0.0.1#5335 ipset=/nikegenealogy.com/gfwlist -server=/cheapnikeoutlet.com/127.0.0.1#5335 -ipset=/cheapnikeoutlet.com/gfwlist -server=/cbsimg.net/127.0.0.1#5335 -ipset=/cbsimg.net/gfwlist -server=/foxentertainment.com/127.0.0.1#5335 -ipset=/foxentertainment.com/gfwlist -server=/cdnlab.live/127.0.0.1#5335 -ipset=/cdnlab.live/gfwlist -server=/kissjav.com/127.0.0.1#5335 -ipset=/kissjav.com/gfwlist +server=/yahoo.com.sg/127.0.0.1#5335 +ipset=/yahoo.com.sg/gfwlist server=/windy.com/127.0.0.1#5335 ipset=/windy.com/gfwlist -server=/cheapwirelessbeats.com/127.0.0.1#5335 -ipset=/cheapwirelessbeats.com/gfwlist -server=/adobelogin.com/127.0.0.1#5335 -ipset=/adobelogin.com/gfwlist -server=/cheapshoesvip.com/127.0.0.1#5335 -ipset=/cheapshoesvip.com/gfwlist server=/sony.lt/127.0.0.1#5335 ipset=/sony.lt/gfwlist -server=/ntdtvla.com/127.0.0.1#5335 -ipset=/ntdtvla.com/gfwlist -server=/ds-vod-abematv.akamaized.net/127.0.0.1#5335 -ipset=/ds-vod-abematv.akamaized.net/gfwlist -server=/cheapmonsterbeatssale.com/127.0.0.1#5335 -ipset=/cheapmonsterbeatssale.com/gfwlist -server=/buypass.se/127.0.0.1#5335 -ipset=/buypass.se/gfwlist -server=/alpherafs.co.nz/127.0.0.1#5335 -ipset=/alpherafs.co.nz/gfwlist -server=/bestbuysgeeksquad.com/127.0.0.1#5335 -ipset=/bestbuysgeeksquad.com/gfwlist +server=/facebookcoronavirus.com/127.0.0.1#5335 +ipset=/facebookcoronavirus.com/gfwlist server=/livephotos.tv/127.0.0.1#5335 ipset=/livephotos.tv/gfwlist server=/att-japan.com/127.0.0.1#5335 ipset=/att-japan.com/gfwlist -server=/ginzasonypark.jp/127.0.0.1#5335 -ipset=/ginzasonypark.jp/gfwlist -server=/cheapheadsetshop.com/127.0.0.1#5335 -ipset=/cheapheadsetshop.com/gfwlist -server=/paypal-survey.org/127.0.0.1#5335 -ipset=/paypal-survey.org/gfwlist -server=/buycheapbeatsbydre.com/127.0.0.1#5335 -ipset=/buycheapbeatsbydre.com/gfwlist +server=/ikea.com.gr/127.0.0.1#5335 +ipset=/ikea.com.gr/gfwlist server=/zeit.co/127.0.0.1#5335 ipset=/zeit.co/gfwlist -server=/cheapbeatsla.com/127.0.0.1#5335 -ipset=/cheapbeatsla.com/gfwlist -server=/cheapbeatsheadphones.us/127.0.0.1#5335 -ipset=/cheapbeatsheadphones.us/gfwlist -server=/mastercard.com.ng/127.0.0.1#5335 -ipset=/mastercard.com.ng/gfwlist -server=/volvotrucks.com.kw/127.0.0.1#5335 -ipset=/volvotrucks.com.kw/gfwlist -server=/unpkg.com/127.0.0.1#5335 -ipset=/unpkg.com/gfwlist -server=/hpvirtualthin.com/127.0.0.1#5335 -ipset=/hpvirtualthin.com/gfwlist +server=/hairyclassic.com/127.0.0.1#5335 +ipset=/hairyclassic.com/gfwlist server=/zeitworld.com/127.0.0.1#5335 ipset=/zeitworld.com/gfwlist -server=/huluim.com/127.0.0.1#5335 -ipset=/huluim.com/gfwlist -server=/monstercheapbeatss.com/127.0.0.1#5335 -ipset=/monstercheapbeatss.com/gfwlist +server=/gaymenring.com/127.0.0.1#5335 +ipset=/gaymenring.com/gfwlist server=/liberapay.org/127.0.0.1#5335 ipset=/liberapay.org/gfwlist -server=/visa.com.pa/127.0.0.1#5335 -ipset=/visa.com.pa/gfwlist -server=/guccimuseo.com/127.0.0.1#5335 -ipset=/guccimuseo.com/gfwlist -server=/aweencore.com/127.0.0.1#5335 -ipset=/aweencore.com/gfwlist -server=/ebay-discoveries.com/127.0.0.1#5335 -ipset=/ebay-discoveries.com/gfwlist -server=/news.com.au/127.0.0.1#5335 -ipset=/news.com.au/gfwlist server=/independentoperatorcn.com/127.0.0.1#5335 ipset=/independentoperatorcn.com/gfwlist -server=/paypal-prepaid.com/127.0.0.1#5335 -ipset=/paypal-prepaid.com/gfwlist +server=/javscatting.com/127.0.0.1#5335 +ipset=/javscatting.com/gfwlist server=/rakuten-static.com/127.0.0.1#5335 ipset=/rakuten-static.com/gfwlist -server=/iebay.com/127.0.0.1#5335 -ipset=/iebay.com/gfwlist -server=/alphabet.us/127.0.0.1#5335 -ipset=/alphabet.us/gfwlist -server=/outletbeatsshop.com/127.0.0.1#5335 -ipset=/outletbeatsshop.com/gfwlist -server=/casquemonsterbeats.com/127.0.0.1#5335 -ipset=/casquemonsterbeats.com/gfwlist -server=/casquebeatspascher2013.com/127.0.0.1#5335 -ipset=/casquebeatspascher2013.com/gfwlist server=/s-bluemix.net/127.0.0.1#5335 ipset=/s-bluemix.net/gfwlist -server=/casquebeatsmer.net/127.0.0.1#5335 -ipset=/casquebeatsmer.net/gfwlist -server=/ebayinternetsalestax.com/127.0.0.1#5335 -ipset=/ebayinternetsalestax.com/gfwlist server=/primevideo.tv/127.0.0.1#5335 ipset=/primevideo.tv/gfwlist -server=/bloombergtaxtech.com/127.0.0.1#5335 -ipset=/bloombergtaxtech.com/gfwlist -server=/foxsports.com.gt/127.0.0.1#5335 -ipset=/foxsports.com.gt/gfwlist -server=/foxsoccer.tv/127.0.0.1#5335 -ipset=/foxsoccer.tv/gfwlist -server=/buybeatsbydre-uk.com/127.0.0.1#5335 -ipset=/buybeatsbydre-uk.com/gfwlist -server=/mini-connected.co.uk/127.0.0.1#5335 -ipset=/mini-connected.co.uk/gfwlist -server=/buy-from-shanghai.com/127.0.0.1#5335 -ipset=/buy-from-shanghai.com/gfwlist server=/javbus22.com/127.0.0.1#5335 ipset=/javbus22.com/gfwlist -server=/volvobuses.at/127.0.0.1#5335 -ipset=/volvobuses.at/gfwlist -server=/royalsocietypublishing.org/127.0.0.1#5335 -ipset=/royalsocietypublishing.org/gfwlist server=/visa.ca/127.0.0.1#5335 ipset=/visa.ca/gfwlist -server=/fonolia.com/127.0.0.1#5335 -ipset=/fonolia.com/gfwlist server=/directvhouston.com/127.0.0.1#5335 ipset=/directvhouston.com/gfwlist -server=/biitii.com/127.0.0.1#5335 -ipset=/biitii.com/gfwlist -server=/tmsnrt.rs/127.0.0.1#5335 -ipset=/tmsnrt.rs/gfwlist +server=/gloryholeswallow.com/127.0.0.1#5335 +ipset=/gloryholeswallow.com/gfwlist server=/ebayglobalshipping.com/127.0.0.1#5335 ipset=/ebayglobalshipping.com/gfwlist -server=/beatswholesale.us/127.0.0.1#5335 -ipset=/beatswholesale.us/gfwlist -server=/vtvan.com/127.0.0.1#5335 -ipset=/vtvan.com/gfwlist -server=/beatsshop-uk.com/127.0.0.1#5335 -ipset=/beatsshop-uk.com/gfwlist -server=/x.com/127.0.0.1#5335 -ipset=/x.com/gfwlist +server=/ozeex.com/127.0.0.1#5335 +ipset=/ozeex.com/gfwlist +server=/donsnaughtymodels.com/127.0.0.1#5335 +ipset=/donsnaughtymodels.com/gfwlist server=/facebo-ok.com/127.0.0.1#5335 ipset=/facebo-ok.com/gfwlist -server=/airwick.hr/127.0.0.1#5335 -ipset=/airwick.hr/gfwlist -server=/nike.shop/127.0.0.1#5335 -ipset=/nike.shop/gfwlist -server=/spiritclubs.com/127.0.0.1#5335 -ipset=/spiritclubs.com/gfwlist -server=/youtube.ca/127.0.0.1#5335 -ipset=/youtube.ca/gfwlist -server=/beatspromonsterjp.com/127.0.0.1#5335 -ipset=/beatspromonsterjp.com/gfwlist -server=/beatspillnewcolor.com/127.0.0.1#5335 -ipset=/beatspillnewcolor.com/gfwlist -server=/foxsoccerplus.com/127.0.0.1#5335 -ipset=/foxsoccerplus.com/gfwlist +server=/anime-rule34-world.b-cdn.net/127.0.0.1#5335 +ipset=/anime-rule34-world.b-cdn.net/gfwlist +server=/dropboxforum.com/127.0.0.1#5335 +ipset=/dropboxforum.com/gfwlist server=/mini.nc/127.0.0.1#5335 ipset=/mini.nc/gfwlist -server=/beatsoutletanytime.com/127.0.0.1#5335 -ipset=/beatsoutletanytime.com/gfwlist -server=/priceless.org/127.0.0.1#5335 -ipset=/priceless.org/gfwlist -server=/bridgestonerewards.com/127.0.0.1#5335 -ipset=/bridgestonerewards.com/gfwlist -server=/starwarsjedifallenorder.com/127.0.0.1#5335 -ipset=/starwarsjedifallenorder.com/gfwlist -server=/mcisco.com/127.0.0.1#5335 -ipset=/mcisco.com/gfwlist -server=/drebeatsoutletstore.com/127.0.0.1#5335 -ipset=/drebeatsoutletstore.com/gfwlist -server=/yahoo.ca/127.0.0.1#5335 -ipset=/yahoo.ca/gfwlist -server=/vanish.pt/127.0.0.1#5335 -ipset=/vanish.pt/gfwlist +server=/taiwannews.com.tw/127.0.0.1#5335 +ipset=/taiwannews.com.tw/gfwlist server=/paypal-europe.com/127.0.0.1#5335 ipset=/paypal-europe.com/gfwlist -server=/picsee.pro/127.0.0.1#5335 -ipset=/picsee.pro/gfwlist -server=/natgeomaps.com/127.0.0.1#5335 -ipset=/natgeomaps.com/gfwlist -server=/eamythic.net/127.0.0.1#5335 -ipset=/eamythic.net/gfwlist -server=/alphabet.com.pl/127.0.0.1#5335 -ipset=/alphabet.com.pl/gfwlist -server=/beatsinsingapore.com/127.0.0.1#5335 -ipset=/beatsinsingapore.com/gfwlist -server=/beatsincanada.com/127.0.0.1#5335 -ipset=/beatsincanada.com/gfwlist -server=/travelex.qa/127.0.0.1#5335 -ipset=/travelex.qa/gfwlist -server=/gfashion.com/127.0.0.1#5335 -ipset=/gfashion.com/gfwlist -server=/visaluxuryhotelcollection.com/127.0.0.1#5335 -ipset=/visaluxuryhotelcollection.com/gfwlist -server=/vimeo.fr/127.0.0.1#5335 -ipset=/vimeo.fr/gfwlist -server=/beatsheadphonesale.com/127.0.0.1#5335 -ipset=/beatsheadphonesale.com/gfwlist -server=/etvonline.hk/127.0.0.1#5335 -ipset=/etvonline.hk/gfwlist -server=/pearson.es/127.0.0.1#5335 -ipset=/pearson.es/gfwlist -server=/yamaxun.com/127.0.0.1#5335 -ipset=/yamaxun.com/gfwlist -server=/mini.com.mt/127.0.0.1#5335 -ipset=/mini.com.mt/gfwlist +server=/reallesbianexposed.com/127.0.0.1#5335 +ipset=/reallesbianexposed.com/gfwlist +server=/discordsays.com/127.0.0.1#5335 +ipset=/discordsays.com/gfwlist server=/bmwdelawarevalley.com/127.0.0.1#5335 ipset=/bmwdelawarevalley.com/gfwlist -server=/paypal-gift.com/127.0.0.1#5335 -ipset=/paypal-gift.com/gfwlist -server=/muji.eu/127.0.0.1#5335 -ipset=/muji.eu/gfwlist -server=/icloud.hu/127.0.0.1#5335 -ipset=/icloud.hu/gfwlist -server=/ibm.com/127.0.0.1#5335 -ipset=/ibm.com/gfwlist +server=/haisetu.net/127.0.0.1#5335 +ipset=/haisetu.net/gfwlist server=/casquebeatsbydrdresolohd.com/127.0.0.1#5335 ipset=/casquebeatsbydrdresolohd.com/gfwlist -server=/bridgestonetire.ca/127.0.0.1#5335 -ipset=/bridgestonetire.ca/gfwlist -server=/openssl.org/127.0.0.1#5335 -ipset=/openssl.org/gfwlist -server=/beatselectronic.net/127.0.0.1#5335 -ipset=/beatselectronic.net/gfwlist -server=/telegram.org/127.0.0.1#5335 -ipset=/telegram.org/gfwlist -server=/softbank-telecom.com/127.0.0.1#5335 -ipset=/softbank-telecom.com/gfwlist server=/icloud.com/127.0.0.1#5335 ipset=/icloud.com/gfwlist -server=/beatsforcheap-usa.com/127.0.0.1#5335 -ipset=/beatsforcheap-usa.com/gfwlist -server=/ius.io/127.0.0.1#5335 -ipset=/ius.io/gfwlist -server=/amazon.com.au/127.0.0.1#5335 -ipset=/amazon.com.au/gfwlist +server=/extraindiansex.com/127.0.0.1#5335 +ipset=/extraindiansex.com/gfwlist server=/abow.jp/127.0.0.1#5335 ipset=/abow.jp/gfwlist -server=/beatsfactoroutlets.com/127.0.0.1#5335 -ipset=/beatsfactoroutlets.com/gfwlist -server=/beatsfacstore.com/127.0.0.1#5335 -ipset=/beatsfacstore.com/gfwlist -server=/bmw.lt/127.0.0.1#5335 -ipset=/bmw.lt/gfwlist -server=/ebayforcharity.org/127.0.0.1#5335 -ipset=/ebayforcharity.org/gfwlist -server=/flickr.net/127.0.0.1#5335 -ipset=/flickr.net/gfwlist -server=/eracom.com.tw/127.0.0.1#5335 -ipset=/eracom.com.tw/gfwlist -server=/beatsdresolo2013.com/127.0.0.1#5335 -ipset=/beatsdresolo2013.com/gfwlist -server=/thomsonreuters.com.hk/127.0.0.1#5335 -ipset=/thomsonreuters.com.hk/gfwlist -server=/webkit.org/127.0.0.1#5335 -ipset=/webkit.org/gfwlist +server=/plusone8.com/127.0.0.1#5335 +ipset=/plusone8.com/gfwlist +server=/appleonline.com/127.0.0.1#5335 +ipset=/appleonline.com/gfwlist +server=/famouspornstars.com/127.0.0.1#5335 +ipset=/famouspornstars.com/gfwlist +server=/shopee.io/127.0.0.1#5335 +ipset=/shopee.io/gfwlist +server=/publicsexhub.com/127.0.0.1#5335 +ipset=/publicsexhub.com/gfwlist server=/yandex.ru/127.0.0.1#5335 ipset=/yandex.ru/gfwlist -server=/firestonetire.com/127.0.0.1#5335 -ipset=/firestonetire.com/gfwlist -server=/fotiolia.com/127.0.0.1#5335 -ipset=/fotiolia.com/gfwlist -server=/youtube.tv/127.0.0.1#5335 -ipset=/youtube.tv/gfwlist -server=/monsterbeatsbydreaustraliacheap.com/127.0.0.1#5335 -ipset=/monsterbeatsbydreaustraliacheap.com/gfwlist -server=/connaissancesfinancierespratiques.ca/127.0.0.1#5335 -ipset=/connaissancesfinancierespratiques.ca/gfwlist +server=/amateur-pussies.com/127.0.0.1#5335 +ipset=/amateur-pussies.com/gfwlist server=/nikeshoescity.com/127.0.0.1#5335 ipset=/nikeshoescity.com/gfwlist -server=/beatsdrdre2014.com/127.0.0.1#5335 -ipset=/beatsdrdre2014.com/gfwlist server=/amazonaws.co.uk/127.0.0.1#5335 ipset=/amazonaws.co.uk/gfwlist -server=/beatsdanmark2013.com/127.0.0.1#5335 -ipset=/beatsdanmark2013.com/gfwlist server=/lgappstv.com/127.0.0.1#5335 ipset=/lgappstv.com/gfwlist -server=/ebayenterprise.tv/127.0.0.1#5335 -ipset=/ebayenterprise.tv/gfwlist -server=/ipadair.com.br/127.0.0.1#5335 -ipset=/ipadair.com.br/gfwlist -server=/hashicorp.com/127.0.0.1#5335 -ipset=/hashicorp.com/gfwlist -server=/accountpaypal.com/127.0.0.1#5335 -ipset=/accountpaypal.com/gfwlist -server=/berkeley.edu/127.0.0.1#5335 -ipset=/berkeley.edu/gfwlist -server=/audiomonsterbeatsonline.com/127.0.0.1#5335 -ipset=/audiomonsterbeatsonline.com/gfwlist -server=/beatsbydrew.com/127.0.0.1#5335 -ipset=/beatsbydrew.com/gfwlist -server=/mastercard.dk/127.0.0.1#5335 -ipset=/mastercard.dk/gfwlist -server=/beatsbydrevipde.com/127.0.0.1#5335 -ipset=/beatsbydrevipde.com/gfwlist -server=/beatsbydreuk.com/127.0.0.1#5335 -ipset=/beatsbydreuk.com/gfwlist server=/beatsbydresaleonlines-nz.com/127.0.0.1#5335 ipset=/beatsbydresaleonlines-nz.com/gfwlist server=/microsoftadc.com/127.0.0.1#5335 ipset=/microsoftadc.com/gfwlist -server=/worldsecureemail.com/127.0.0.1#5335 -ipset=/worldsecureemail.com/gfwlist +server=/tps138.info/127.0.0.1#5335 +ipset=/tps138.info/gfwlist server=/onmanorama.com/127.0.0.1#5335 ipset=/onmanorama.com/gfwlist server=/bmw.rs/127.0.0.1#5335 ipset=/bmw.rs/gfwlist -server=/msftauth.net/127.0.0.1#5335 -ipset=/msftauth.net/gfwlist -server=/beatsbydresingaporesale.com/127.0.0.1#5335 -ipset=/beatsbydresingaporesale.com/gfwlist -server=/foxnewsrundown.com/127.0.0.1#5335 -ipset=/foxnewsrundown.com/gfwlist -server=/akamai-platform-staging.com/127.0.0.1#5335 -ipset=/akamai-platform-staging.com/gfwlist -server=/nokiantyres.com/127.0.0.1#5335 -ipset=/nokiantyres.com/gfwlist -server=/bmw-motorrad.ch/127.0.0.1#5335 -ipset=/bmw-motorrad.ch/gfwlist -server=/beatsbydreshop-uk.com/127.0.0.1#5335 -ipset=/beatsbydreshop-uk.com/gfwlist -server=/mini-connected.fi/127.0.0.1#5335 -ipset=/mini-connected.fi/gfwlist +server=/rarbg.me/127.0.0.1#5335 +ipset=/rarbg.me/gfwlist +server=/joinside.org/127.0.0.1#5335 +ipset=/joinside.org/gfwlist +server=/girlsxxx.net/127.0.0.1#5335 +ipset=/girlsxxx.net/gfwlist server=/kamisama-day.jp/127.0.0.1#5335 ipset=/kamisama-day.jp/gfwlist -server=/natgeokidsbooks.co.uk/127.0.0.1#5335 -ipset=/natgeokidsbooks.co.uk/gfwlist +server=/hpcomputers.com/127.0.0.1#5335 +ipset=/hpcomputers.com/gfwlist server=/linearcollider.org/127.0.0.1#5335 ipset=/linearcollider.org/gfwlist -server=/beatsbydresalesonline-australia.com/127.0.0.1#5335 -ipset=/beatsbydresalesonline-australia.com/gfwlist -server=/intel.uk/127.0.0.1#5335 -ipset=/intel.uk/gfwlist -server=/9to5google.com/127.0.0.1#5335 -ipset=/9to5google.com/gfwlist -server=/coronavirusnow.com/127.0.0.1#5335 -ipset=/coronavirusnow.com/gfwlist -server=/beatsbydreonlinesale-nz.com/127.0.0.1#5335 -ipset=/beatsbydreonlinesale-nz.com/gfwlist -server=/madvr.com/127.0.0.1#5335 -ipset=/madvr.com/gfwlist +server=/lizardporn.com/127.0.0.1#5335 +ipset=/lizardporn.com/gfwlist server=/youtube.co.at/127.0.0.1#5335 ipset=/youtube.co.at/gfwlist server=/youtube.rs/127.0.0.1#5335 ipset=/youtube.rs/gfwlist -server=/sonyentertainmentnetwork.com/127.0.0.1#5335 -ipset=/sonyentertainmentnetwork.com/gfwlist -server=/beatsbydreofficialdanmark.com/127.0.0.1#5335 -ipset=/beatsbydreofficialdanmark.com/gfwlist -server=/beatsbydrenls.com/127.0.0.1#5335 -ipset=/beatsbydrenls.com/gfwlist -server=/alpherafs.com.my/127.0.0.1#5335 -ipset=/alpherafs.com.my/gfwlist -server=/beatsbydreirelandsale.com/127.0.0.1#5335 -ipset=/beatsbydreirelandsale.com/gfwlist -server=/openvpn.net/127.0.0.1#5335 -ipset=/openvpn.net/gfwlist -server=/beatsbydreireland-sales.com/127.0.0.1#5335 -ipset=/beatsbydreireland-sales.com/gfwlist -server=/beatsbydrehut.com/127.0.0.1#5335 -ipset=/beatsbydrehut.com/gfwlist -server=/graneodin.com.mx/127.0.0.1#5335 -ipset=/graneodin.com.mx/gfwlist -server=/beatsbydrehd.com/127.0.0.1#5335 -ipset=/beatsbydrehd.com/gfwlist +server=/bestpremiumpornsite.com/127.0.0.1#5335 +ipset=/bestpremiumpornsite.com/gfwlist +server=/dweb.link/127.0.0.1#5335 +ipset=/dweb.link/gfwlist server=/youtube.co.cr/127.0.0.1#5335 ipset=/youtube.co.cr/gfwlist -server=/akamai-sucks.net/127.0.0.1#5335 -ipset=/akamai-sucks.net/gfwlist -server=/amazonbusiness.org/127.0.0.1#5335 -ipset=/amazonbusiness.org/gfwlist -server=/metartnetwork.com/127.0.0.1#5335 -ipset=/metartnetwork.com/gfwlist -server=/beatsbydrediscountonline.net/127.0.0.1#5335 -ipset=/beatsbydrediscountonline.net/gfwlist +server=/facwebook.com/127.0.0.1#5335 +ipset=/facwebook.com/gfwlist server=/akastream.com/127.0.0.1#5335 ipset=/akastream.com/gfwlist -server=/beatsbydredealscybermonday.com/127.0.0.1#5335 -ipset=/beatsbydredealscybermonday.com/gfwlist server=/createspace.com/127.0.0.1#5335 ipset=/createspace.com/gfwlist -server=/beatsbydredealsblackfriday.com/127.0.0.1#5335 -ipset=/beatsbydredealsblackfriday.com/gfwlist server=/volvotrucks.nl/127.0.0.1#5335 ipset=/volvotrucks.nl/gfwlist -server=/visa.com.lk/127.0.0.1#5335 -ipset=/visa.com.lk/gfwlist -server=/beatsbydrecheap-outletstore.com/127.0.0.1#5335 -ipset=/beatsbydrecheap-outletstore.com/gfwlist -server=/metro.co.uk/127.0.0.1#5335 -ipset=/metro.co.uk/gfwlist -server=/beatsbydrecasquesfr.com/127.0.0.1#5335 -ipset=/beatsbydrecasquesfr.com/gfwlist server=/instagramizlenme.com/127.0.0.1#5335 ipset=/instagramizlenme.com/gfwlist -server=/bmw-driving-center.co.kr/127.0.0.1#5335 -ipset=/bmw-driving-center.co.kr/gfwlist -server=/digitalocean.com/127.0.0.1#5335 -ipset=/digitalocean.com/gfwlist server=/earngeek.com/127.0.0.1#5335 ipset=/earngeek.com/gfwlist server=/googleapis.com/127.0.0.1#5335 ipset=/googleapis.com/gfwlist -server=/beatsbydreauofficial.com/127.0.0.1#5335 -ipset=/beatsbydreauofficial.com/gfwlist -server=/protonstatus.com/127.0.0.1#5335 -ipset=/protonstatus.com/gfwlist -server=/beatsbydre411.com/127.0.0.1#5335 -ipset=/beatsbydre411.com/gfwlist -server=/travelcontroller.com/127.0.0.1#5335 -ipset=/travelcontroller.com/gfwlist -server=/beatsbydre-us.com/127.0.0.1#5335 -ipset=/beatsbydre-us.com/gfwlist +server=/beatspillnewcolor.com/127.0.0.1#5335 +ipset=/beatspillnewcolor.com/gfwlist server=/sandisk.co.uk/127.0.0.1#5335 ipset=/sandisk.co.uk/gfwlist -server=/paypal-mobilemoney.com/127.0.0.1#5335 -ipset=/paypal-mobilemoney.com/gfwlist -server=/hpcpi.com/127.0.0.1#5335 -ipset=/hpcpi.com/gfwlist server=/positivessl.com/127.0.0.1#5335 ipset=/positivessl.com/gfwlist -server=/paypal-biz.com/127.0.0.1#5335 -ipset=/paypal-biz.com/gfwlist -server=/beatsbydre-chen.com/127.0.0.1#5335 -ipset=/beatsbydre-chen.com/gfwlist -server=/beatsbydre-beatsheadphone.com/127.0.0.1#5335 -ipset=/beatsbydre-beatsheadphone.com/gfwlist -server=/beatsbydrdres.com/127.0.0.1#5335 -ipset=/beatsbydrdres.com/gfwlist +server=/shyav.com/127.0.0.1#5335 +ipset=/shyav.com/gfwlist server=/mariobroswii.com/127.0.0.1#5335 ipset=/mariobroswii.com/gfwlist -server=/ic.ac.uk/127.0.0.1#5335 -ipset=/ic.ac.uk/gfwlist +server=/pornodrome.tv/127.0.0.1#5335 +ipset=/pornodrome.tv/gfwlist server=/pearsonassessment.nl/127.0.0.1#5335 ipset=/pearsonassessment.nl/gfwlist -server=/vgcareers.net/127.0.0.1#5335 -ipset=/vgcareers.net/gfwlist -server=/ciscofax.com/127.0.0.1#5335 -ipset=/ciscofax.com/gfwlist -server=/beatsbydrdre-store.us/127.0.0.1#5335 -ipset=/beatsbydrdre-store.us/gfwlist -server=/netflixdnstest7.com/127.0.0.1#5335 -ipset=/netflixdnstest7.com/gfwlist -server=/akamaitech.com/127.0.0.1#5335 -ipset=/akamaitech.com/gfwlist -server=/hwgo.com/127.0.0.1#5335 -ipset=/hwgo.com/gfwlist -server=/disneycruisebrasil.com/127.0.0.1#5335 -ipset=/disneycruisebrasil.com/gfwlist -server=/nationalgeographicpartners.com/127.0.0.1#5335 -ipset=/nationalgeographicpartners.com/gfwlist -server=/beatsbydrdre-headphones.com/127.0.0.1#5335 -ipset=/beatsbydrdre-headphones.com/gfwlist -server=/disney.id/127.0.0.1#5335 -ipset=/disney.id/gfwlist +server=/xvideos-porn-video.com/127.0.0.1#5335 +ipset=/xvideos-porn-video.com/gfwlist server=/vfsco.pl/127.0.0.1#5335 ipset=/vfsco.pl/gfwlist server=/briantreepayments.tv/127.0.0.1#5335 ipset=/briantreepayments.tv/gfwlist server=/bmw-motorrad.dz/127.0.0.1#5335 ipset=/bmw-motorrad.dz/gfwlist -server=/beatsbeatsmonster.com/127.0.0.1#5335 -ipset=/beatsbeatsmonster.com/gfwlist server=/bloombergnext.com/127.0.0.1#5335 ipset=/bloombergnext.com/gfwlist server=/beatsbydreoordopjes.com/127.0.0.1#5335 ipset=/beatsbydreoordopjes.com/gfwlist -server=/beatsaudifonos.com/127.0.0.1#5335 -ipset=/beatsaudifonos.com/gfwlist -server=/beatsallsale.com/127.0.0.1#5335 -ipset=/beatsallsale.com/gfwlist -server=/pugpig.com/127.0.0.1#5335 -ipset=/pugpig.com/gfwlist -server=/beats123.com/127.0.0.1#5335 -ipset=/beats123.com/gfwlist -server=/beatstoreusa.com/127.0.0.1#5335 -ipset=/beatstoreusa.com/gfwlist -server=/dw.com/127.0.0.1#5335 -ipset=/dw.com/gfwlist server=/touchsmartpc.com/127.0.0.1#5335 ipset=/touchsmartpc.com/gfwlist -server=/now-ashare.com/127.0.0.1#5335 -ipset=/now-ashare.com/gfwlist server=/freefblikes.com/127.0.0.1#5335 ipset=/freefblikes.com/gfwlist server=/youtubego.id/127.0.0.1#5335 ipset=/youtubego.id/gfwlist -server=/beatmonstersaustralia.net/127.0.0.1#5335 -ipset=/beatmonstersaustralia.net/gfwlist server=/appdomain.cloud/127.0.0.1#5335 ipset=/appdomain.cloud/gfwlist -server=/disneyenconcert.com/127.0.0.1#5335 -ipset=/disneyenconcert.com/gfwlist -server=/beatbydreuk2014.com/127.0.0.1#5335 -ipset=/beatbydreuk2014.com/gfwlist +server=/pornmadeathome.com/127.0.0.1#5335 +ipset=/pornmadeathome.com/gfwlist server=/applecentar.co.rs/127.0.0.1#5335 ipset=/applecentar.co.rs/gfwlist server=/oncars.in/127.0.0.1#5335 ipset=/oncars.in/gfwlist -server=/supplybestjerseys.com/127.0.0.1#5335 -ipset=/supplybestjerseys.com/gfwlist -server=/beatbydremonster.com/127.0.0.1#5335 -ipset=/beatbydremonster.com/gfwlist -server=/flatpak.org/127.0.0.1#5335 -ipset=/flatpak.org/gfwlist -server=/ebayclassifiedsgroup.org/127.0.0.1#5335 -ipset=/ebayclassifiedsgroup.org/gfwlist -server=/beatbd.com/127.0.0.1#5335 -ipset=/beatbd.com/gfwlist -server=/kindleoasis.info/127.0.0.1#5335 -ipset=/kindleoasis.info/gfwlist -server=/awetv.com/127.0.0.1#5335 -ipset=/awetv.com/gfwlist -server=/anfutong.com/127.0.0.1#5335 -ipset=/anfutong.com/gfwlist server=/fontshop-prod-responsive-images.s3.amazonaws.com/127.0.0.1#5335 ipset=/fontshop-prod-responsive-images.s3.amazonaws.com/gfwlist -server=/ntd.com/127.0.0.1#5335 -ipset=/ntd.com/gfwlist -server=/auricularesbeatsmarkt.com/127.0.0.1#5335 -ipset=/auricularesbeatsmarkt.com/gfwlist -server=/auricularesbeatsbaratosshop.com/127.0.0.1#5335 -ipset=/auricularesbeatsbaratosshop.com/gfwlist -server=/llnw.net/127.0.0.1#5335 -ipset=/llnw.net/gfwlist -server=/audiobeatsau.com/127.0.0.1#5335 -ipset=/audiobeatsau.com/gfwlist -server=/vfsco.ie/127.0.0.1#5335 -ipset=/vfsco.ie/gfwlist -server=/newsmax.com/127.0.0.1#5335 -ipset=/newsmax.com/gfwlist -server=/aucheapbeats.com/127.0.0.1#5335 -ipset=/aucheapbeats.com/gfwlist server=/applepay.berlin/127.0.0.1#5335 ipset=/applepay.berlin/gfwlist -server=/verisign.com.tw/127.0.0.1#5335 -ipset=/verisign.com.tw/gfwlist server=/cnnmoneystream.com/127.0.0.1#5335 ipset=/cnnmoneystream.com/gfwlist -server=/instagramq.com/127.0.0.1#5335 -ipset=/instagramq.com/gfwlist -server=/hpshooping.com/127.0.0.1#5335 -ipset=/hpshooping.com/gfwlist server=/bridgestonetire.com/127.0.0.1#5335 ipset=/bridgestonetire.com/gfwlist -server=/5beatsbydre.com/127.0.0.1#5335 -ipset=/5beatsbydre.com/gfwlist -server=/chromium.org/127.0.0.1#5335 -ipset=/chromium.org/gfwlist -server=/2drdrebeats.com/127.0.0.1#5335 -ipset=/2drdrebeats.com/gfwlist -server=/av1688.cc/127.0.0.1#5335 -ipset=/av1688.cc/gfwlist -server=/2013pascherbeatsbydre.com/127.0.0.1#5335 -ipset=/2013pascherbeatsbydre.com/gfwlist -server=/mini-bahrain.com/127.0.0.1#5335 -ipset=/mini-bahrain.com/gfwlist -server=/bloomberg.com.br/127.0.0.1#5335 -ipset=/bloomberg.com.br/gfwlist -server=/2013beatsbydreshop.com/127.0.0.1#5335 -ipset=/2013beatsbydreshop.com/gfwlist +server=/adidas.hu/127.0.0.1#5335 +ipset=/adidas.hu/gfwlist server=/telebay.com/127.0.0.1#5335 ipset=/telebay.com/gfwlist -server=/adidas.ie/127.0.0.1#5335 -ipset=/adidas.ie/gfwlist server=/bingagencyawards.com/127.0.0.1#5335 ipset=/bingagencyawards.com/gfwlist -server=/vaultify.com/127.0.0.1#5335 -ipset=/vaultify.com/gfwlist -server=/accuweather.com/127.0.0.1#5335 -ipset=/accuweather.com/gfwlist server=/thebeatsbydre.com/127.0.0.1#5335 ipset=/thebeatsbydre.com/gfwlist -server=/artstationmedia.com/127.0.0.1#5335 -ipset=/artstationmedia.com/gfwlist -server=/volvo.com/127.0.0.1#5335 -ipset=/volvo.com/gfwlist +server=/ikea.my/127.0.0.1#5335 +ipset=/ikea.my/gfwlist +server=/rule34h.com/127.0.0.1#5335 +ipset=/rule34h.com/gfwlist server=/facebookmsn.com/127.0.0.1#5335 ipset=/facebookmsn.com/gfwlist -server=/ssl-images-amazon.com/127.0.0.1#5335 -ipset=/ssl-images-amazon.com/gfwlist -server=/bmw-connecteddrive.pt/127.0.0.1#5335 -ipset=/bmw-connecteddrive.pt/gfwlist -server=/easyanticheat.net/127.0.0.1#5335 -ipset=/easyanticheat.net/gfwlist +server=/facebookporn.org/127.0.0.1#5335 +ipset=/facebookporn.org/gfwlist server=/globalsign.net/127.0.0.1#5335 ipset=/globalsign.net/gfwlist server=/billmelater.com/127.0.0.1#5335 ipset=/billmelater.com/gfwlist -server=/nikeonlinestore.com/127.0.0.1#5335 -ipset=/nikeonlinestore.com/gfwlist -server=/primeday.info/127.0.0.1#5335 -ipset=/primeday.info/gfwlist +server=/libgen.st/127.0.0.1#5335 +ipset=/libgen.st/gfwlist +server=/xinfhw.com/127.0.0.1#5335 +ipset=/xinfhw.com/gfwlist +server=/bmw-asia.com/127.0.0.1#5335 +ipset=/bmw-asia.com/gfwlist +server=/pixiv.org/127.0.0.1#5335 +ipset=/pixiv.org/gfwlist +server=/downloadsforipod.com/127.0.0.1#5335 +ipset=/downloadsforipod.com/gfwlist +server=/alphabet.lv/127.0.0.1#5335 +ipset=/alphabet.lv/gfwlist +server=/pornxvideos.win/127.0.0.1#5335 +ipset=/pornxvideos.win/gfwlist +server=/free-aa.com/127.0.0.1#5335 +ipset=/free-aa.com/gfwlist +server=/sislovesme.com/127.0.0.1#5335 +ipset=/sislovesme.com/gfwlist +server=/cbspressexpress.com/127.0.0.1#5335 +ipset=/cbspressexpress.com/gfwlist +server=/hex.pm/127.0.0.1#5335 +ipset=/hex.pm/gfwlist +server=/sanspo.com/127.0.0.1#5335 +ipset=/sanspo.com/gfwlist +server=/ptt.sex/127.0.0.1#5335 +ipset=/ptt.sex/gfwlist +server=/mingpaomonthly.com/127.0.0.1#5335 +ipset=/mingpaomonthly.com/gfwlist +server=/titanfall.com/127.0.0.1#5335 +ipset=/titanfall.com/gfwlist +server=/durex.ro/127.0.0.1#5335 +ipset=/durex.ro/gfwlist +server=/momsbangteens.com/127.0.0.1#5335 +ipset=/momsbangteens.com/gfwlist +server=/realmaturesfuck.com/127.0.0.1#5335 +ipset=/realmaturesfuck.com/gfwlist +server=/12diasderegalosdeitunes.co.cr/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.co.cr/gfwlist +server=/xnxx2.info/127.0.0.1#5335 +ipset=/xnxx2.info/gfwlist +server=/thegatewaypundit.com/127.0.0.1#5335 +ipset=/thegatewaypundit.com/gfwlist +server=/zononi.com/127.0.0.1#5335 +ipset=/zononi.com/gfwlist +server=/amazonauthorinsights.com/127.0.0.1#5335 +ipset=/amazonauthorinsights.com/gfwlist +server=/vrbgay.com/127.0.0.1#5335 +ipset=/vrbgay.com/gfwlist +server=/xn--fiqs8sxootzz.xn--hxt814e/127.0.0.1#5335 +ipset=/xn--fiqs8sxootzz.xn--hxt814e/gfwlist +server=/nintendowii.com/127.0.0.1#5335 +ipset=/nintendowii.com/gfwlist +server=/oculusforbusiness.com/127.0.0.1#5335 +ipset=/oculusforbusiness.com/gfwlist +server=/xxnxx-porn.com/127.0.0.1#5335 +ipset=/xxnxx-porn.com/gfwlist +server=/vokevr.com/127.0.0.1#5335 +ipset=/vokevr.com/gfwlist +server=/accountpaypal.net/127.0.0.1#5335 +ipset=/accountpaypal.net/gfwlist +server=/shelfstuff.com/127.0.0.1#5335 +ipset=/shelfstuff.com/gfwlist +server=/facebookatschool.com/127.0.0.1#5335 +ipset=/facebookatschool.com/gfwlist +server=/yourmomsgotbigtits.com/127.0.0.1#5335 +ipset=/yourmomsgotbigtits.com/gfwlist +server=/applexpo.net/127.0.0.1#5335 +ipset=/applexpo.net/gfwlist +server=/justmysocks1.net/127.0.0.1#5335 +ipset=/justmysocks1.net/gfwlist +server=/weeklytimesnow.com.au/127.0.0.1#5335 +ipset=/weeklytimesnow.com.au/gfwlist +server=/hotfiesta.com/127.0.0.1#5335 +ipset=/hotfiesta.com/gfwlist +server=/pixplug.in/127.0.0.1#5335 +ipset=/pixplug.in/gfwlist +server=/smallteenpussy.com/127.0.0.1#5335 +ipset=/smallteenpussy.com/gfwlist +server=/line.biz/127.0.0.1#5335 +ipset=/line.biz/gfwlist +server=/usa-beatsbydreheadphonesonsale.net/127.0.0.1#5335 +ipset=/usa-beatsbydreheadphonesonsale.net/gfwlist +server=/mingpaotor.com/127.0.0.1#5335 +ipset=/mingpaotor.com/gfwlist +server=/erodoujinshi-world.com/127.0.0.1#5335 +ipset=/erodoujinshi-world.com/gfwlist +server=/akahost.net/127.0.0.1#5335 +ipset=/akahost.net/gfwlist +server=/mythicentertainment.net/127.0.0.1#5335 +ipset=/mythicentertainment.net/gfwlist +server=/vervesex.com/127.0.0.1#5335 +ipset=/vervesex.com/gfwlist +server=/bluemix.net/127.0.0.1#5335 +ipset=/bluemix.net/gfwlist +server=/12diasderegalosdeitunes.com/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.com/gfwlist +server=/half.tv/127.0.0.1#5335 +ipset=/half.tv/gfwlist +server=/microsoftadvertising.com/127.0.0.1#5335 +ipset=/microsoftadvertising.com/gfwlist +server=/vidown.com/127.0.0.1#5335 +ipset=/vidown.com/gfwlist +server=/cnet.com/127.0.0.1#5335 +ipset=/cnet.com/gfwlist +server=/spacex.com/127.0.0.1#5335 +ipset=/spacex.com/gfwlist +server=/freegaysexgames.com/127.0.0.1#5335 +ipset=/freegaysexgames.com/gfwlist +server=/ikea.jo/127.0.0.1#5335 +ipset=/ikea.jo/gfwlist +server=/starbucks.com.sg/127.0.0.1#5335 +ipset=/starbucks.com.sg/gfwlist +server=/nikefrance.com/127.0.0.1#5335 +ipset=/nikefrance.com/gfwlist +server=/justduckit.com/127.0.0.1#5335 +ipset=/justduckit.com/gfwlist +server=/bmw-drivingexperience.com/127.0.0.1#5335 +ipset=/bmw-drivingexperience.com/gfwlist +server=/bypasscensorship.org/127.0.0.1#5335 +ipset=/bypasscensorship.org/gfwlist +server=/hbo.map.fastly.net/127.0.0.1#5335 +ipset=/hbo.map.fastly.net/gfwlist +server=/zoho.in/127.0.0.1#5335 +ipset=/zoho.in/gfwlist +server=/fapporn.me/127.0.0.1#5335 +ipset=/fapporn.me/gfwlist +server=/etpress.com.hk/127.0.0.1#5335 +ipset=/etpress.com.hk/gfwlist +server=/ebayclassifieds.tv/127.0.0.1#5335 +ipset=/ebayclassifieds.tv/gfwlist +server=/neuerporno.com/127.0.0.1#5335 +ipset=/neuerporno.com/gfwlist +server=/ozvoice.org/127.0.0.1#5335 +ipset=/ozvoice.org/gfwlist +server=/thedailysnkr.com/127.0.0.1#5335 +ipset=/thedailysnkr.com/gfwlist +server=/jkforum.net/127.0.0.1#5335 +ipset=/jkforum.net/gfwlist +server=/finishinfo.it/127.0.0.1#5335 +ipset=/finishinfo.it/gfwlist +server=/teensnow.com/127.0.0.1#5335 +ipset=/teensnow.com/gfwlist +server=/americasvoice.news/127.0.0.1#5335 +ipset=/americasvoice.news/gfwlist +server=/redis.io/127.0.0.1#5335 +ipset=/redis.io/gfwlist +server=/liverail.com/127.0.0.1#5335 +ipset=/liverail.com/gfwlist +server=/hbomaxdash.s.llnwi.net/127.0.0.1#5335 +ipset=/hbomaxdash.s.llnwi.net/gfwlist +server=/contest.com/127.0.0.1#5335 +ipset=/contest.com/gfwlist +server=/githubassets.com/127.0.0.1#5335 +ipset=/githubassets.com/gfwlist +server=/pahabicilemezsurprizler.com/127.0.0.1#5335 +ipset=/pahabicilemezsurprizler.com/gfwlist +server=/verisign.dk/127.0.0.1#5335 +ipset=/verisign.dk/gfwlist +server=/beatswholesale.us/127.0.0.1#5335 +ipset=/beatswholesale.us/gfwlist +server=/swissign.li/127.0.0.1#5335 +ipset=/swissign.li/gfwlist +server=/stepmaturesex.com/127.0.0.1#5335 +ipset=/stepmaturesex.com/gfwlist +server=/iphoneplus.wang/127.0.0.1#5335 +ipset=/iphoneplus.wang/gfwlist +server=/stripselector.com/127.0.0.1#5335 +ipset=/stripselector.com/gfwlist +server=/ituneslogin.net/127.0.0.1#5335 +ipset=/ituneslogin.net/gfwlist +server=/instituteofwar.org/127.0.0.1#5335 +ipset=/instituteofwar.org/gfwlist +server=/javhub.net/127.0.0.1#5335 +ipset=/javhub.net/gfwlist +server=/whimn.com.au/127.0.0.1#5335 +ipset=/whimn.com.au/gfwlist +server=/indiansexmms2.com/127.0.0.1#5335 +ipset=/indiansexmms2.com/gfwlist +server=/weekly-economist.com/127.0.0.1#5335 +ipset=/weekly-economist.com/gfwlist +server=/volvotrucks.kg/127.0.0.1#5335 +ipset=/volvotrucks.kg/gfwlist +server=/watch-ebay.org/127.0.0.1#5335 +ipset=/watch-ebay.org/gfwlist +server=/facebook-forum.com/127.0.0.1#5335 +ipset=/facebook-forum.com/gfwlist +server=/uplay.com/127.0.0.1#5335 +ipset=/uplay.com/gfwlist +server=/outletnike.com/127.0.0.1#5335 +ipset=/outletnike.com/gfwlist +server=/mini.tn/127.0.0.1#5335 +ipset=/mini.tn/gfwlist +server=/hket.com/127.0.0.1#5335 +ipset=/hket.com/gfwlist +server=/nke6.com/127.0.0.1#5335 +ipset=/nke6.com/gfwlist +server=/intel.ie/127.0.0.1#5335 +ipset=/intel.ie/gfwlist +server=/dirtyship.com/127.0.0.1#5335 +ipset=/dirtyship.com/gfwlist +server=/colombianas.webcam/127.0.0.1#5335 +ipset=/colombianas.webcam/gfwlist +server=/fonts.com/127.0.0.1#5335 +ipset=/fonts.com/gfwlist +server=/porn-discounts.com/127.0.0.1#5335 +ipset=/porn-discounts.com/gfwlist +server=/mit.net/127.0.0.1#5335 +ipset=/mit.net/gfwlist +server=/365buymy.com/127.0.0.1#5335 +ipset=/365buymy.com/gfwlist +server=/huluad.com/127.0.0.1#5335 +ipset=/huluad.com/gfwlist +server=/golos-ameriki.ru/127.0.0.1#5335 +ipset=/golos-ameriki.ru/gfwlist +server=/bmwspecialoffers.ca/127.0.0.1#5335 +ipset=/bmwspecialoffers.ca/gfwlist +server=/sego8.cc/127.0.0.1#5335 +ipset=/sego8.cc/gfwlist +server=/pearson.fr/127.0.0.1#5335 +ipset=/pearson.fr/gfwlist +server=/yahoo.mw/127.0.0.1#5335 +ipset=/yahoo.mw/gfwlist +server=/autumn-jade.com/127.0.0.1#5335 +ipset=/autumn-jade.com/gfwlist +server=/fury.io/127.0.0.1#5335 +ipset=/fury.io/gfwlist +server=/amateurpornonly.com/127.0.0.1#5335 +ipset=/amateurpornonly.com/gfwlist +server=/highcolonic.info/127.0.0.1#5335 +ipset=/highcolonic.info/gfwlist +server=/appleinclegal.com/127.0.0.1#5335 +ipset=/appleinclegal.com/gfwlist +server=/hornysexgame.com/127.0.0.1#5335 +ipset=/hornysexgame.com/gfwlist +server=/bmw-group.net/127.0.0.1#5335 +ipset=/bmw-group.net/gfwlist +server=/hentaibros.com/127.0.0.1#5335 +ipset=/hentaibros.com/gfwlist +server=/52fuliji.cc/127.0.0.1#5335 +ipset=/52fuliji.cc/gfwlist +server=/att.net/127.0.0.1#5335 +ipset=/att.net/gfwlist +server=/bmw.lk/127.0.0.1#5335 +ipset=/bmw.lk/gfwlist +server=/nextdigital.com.hk/127.0.0.1#5335 +ipset=/nextdigital.com.hk/gfwlist +server=/gayasiantheater.com/127.0.0.1#5335 +ipset=/gayasiantheater.com/gfwlist +server=/microsoft.hu/127.0.0.1#5335 +ipset=/microsoft.hu/gfwlist +server=/debank.com/127.0.0.1#5335 +ipset=/debank.com/gfwlist +server=/beats-bydreoutletonline.com/127.0.0.1#5335 +ipset=/beats-bydreoutletonline.com/gfwlist +server=/1337xx.to/127.0.0.1#5335 +ipset=/1337xx.to/gfwlist +server=/page.link/127.0.0.1#5335 +ipset=/page.link/gfwlist +server=/gputechconf.com.au/127.0.0.1#5335 +ipset=/gputechconf.com.au/gfwlist +server=/oath.cloud/127.0.0.1#5335 +ipset=/oath.cloud/gfwlist +server=/paypal-apps.com/127.0.0.1#5335 +ipset=/paypal-apps.com/gfwlist +server=/newenergyfinance.com/127.0.0.1#5335 +ipset=/newenergyfinance.com/gfwlist +server=/hpconnected.us/127.0.0.1#5335 +ipset=/hpconnected.us/gfwlist +server=/applepaysupplies.tv/127.0.0.1#5335 +ipset=/applepaysupplies.tv/gfwlist +server=/volvobuses.com.pt/127.0.0.1#5335 +ipset=/volvobuses.com.pt/gfwlist +server=/airwick.es/127.0.0.1#5335 +ipset=/airwick.es/gfwlist +server=/speedrun.com/127.0.0.1#5335 +ipset=/speedrun.com/gfwlist +server=/google.ht/127.0.0.1#5335 +ipset=/google.ht/gfwlist +server=/lewdvrgames.com/127.0.0.1#5335 +ipset=/lewdvrgames.com/gfwlist +server=/hdpornt.com/127.0.0.1#5335 +ipset=/hdpornt.com/gfwlist +server=/disneyinternational.com/127.0.0.1#5335 +ipset=/disneyinternational.com/gfwlist +server=/masterintelligence.com/127.0.0.1#5335 +ipset=/masterintelligence.com/gfwlist +server=/deepl.com/127.0.0.1#5335 +ipset=/deepl.com/gfwlist +server=/paypal-team.com/127.0.0.1#5335 +ipset=/paypal-team.com/gfwlist +server=/instagramtakiphilesi.com/127.0.0.1#5335 +ipset=/instagramtakiphilesi.com/gfwlist +server=/pornpros.com/127.0.0.1#5335 +ipset=/pornpros.com/gfwlist +server=/2gayboys.com/127.0.0.1#5335 +ipset=/2gayboys.com/gfwlist +server=/afpforum.com/127.0.0.1#5335 +ipset=/afpforum.com/gfwlist +server=/bigtopsites.com/127.0.0.1#5335 +ipset=/bigtopsites.com/gfwlist +server=/anime-tube.pw/127.0.0.1#5335 +ipset=/anime-tube.pw/gfwlist +server=/eropasture.com/127.0.0.1#5335 +ipset=/eropasture.com/gfwlist +server=/twitteroauth.com/127.0.0.1#5335 +ipset=/twitteroauth.com/gfwlist +server=/scholar.google.de/127.0.0.1#5335 +ipset=/scholar.google.de/gfwlist +server=/ohsexfilm.com/127.0.0.1#5335 +ipset=/ohsexfilm.com/gfwlist +server=/gateway.pinata.cloud/127.0.0.1#5335 +ipset=/gateway.pinata.cloud/gfwlist +server=/minneapolisbmw.com/127.0.0.1#5335 +ipset=/minneapolisbmw.com/gfwlist +server=/pokemongoldsilver.com/127.0.0.1#5335 +ipset=/pokemongoldsilver.com/gfwlist +server=/hpdriver.com/127.0.0.1#5335 +ipset=/hpdriver.com/gfwlist +server=/valvesoftware.com/127.0.0.1#5335 +ipset=/valvesoftware.com/gfwlist +server=/rsshub.app/127.0.0.1#5335 +ipset=/rsshub.app/gfwlist +server=/beatsbydrdre-headphones.com/127.0.0.1#5335 +ipset=/beatsbydrdre-headphones.com/gfwlist +server=/0emm.com/127.0.0.1#5335 +ipset=/0emm.com/gfwlist +server=/shopify.dev/127.0.0.1#5335 +ipset=/shopify.dev/gfwlist +server=/xn--74q035i.xn--hxt814e/127.0.0.1#5335 +ipset=/xn--74q035i.xn--hxt814e/gfwlist +server=/calendarserver.org/127.0.0.1#5335 +ipset=/calendarserver.org/gfwlist +server=/anysex.com/127.0.0.1#5335 +ipset=/anysex.com/gfwlist +server=/d2anahhhmp1ffz.cloudfront.net/127.0.0.1#5335 +ipset=/d2anahhhmp1ffz.cloudfront.net/gfwlist +server=/snapwebcams.com/127.0.0.1#5335 +ipset=/snapwebcams.com/gfwlist +server=/dis.gd/127.0.0.1#5335 +ipset=/dis.gd/gfwlist +server=/foxsoccershop.com/127.0.0.1#5335 +ipset=/foxsoccershop.com/gfwlist +server=/fbhome.com/127.0.0.1#5335 +ipset=/fbhome.com/gfwlist +server=/ohpornovideo.com/127.0.0.1#5335 +ipset=/ohpornovideo.com/gfwlist +server=/terapeak.info/127.0.0.1#5335 +ipset=/terapeak.info/gfwlist +server=/privatemarketplaces.us/127.0.0.1#5335 +ipset=/privatemarketplaces.us/gfwlist +server=/typenetwork.com/127.0.0.1#5335 +ipset=/typenetwork.com/gfwlist +server=/bastropfirestone.com/127.0.0.1#5335 +ipset=/bastropfirestone.com/gfwlist +server=/beurettesvideo.com/127.0.0.1#5335 +ipset=/beurettesvideo.com/gfwlist +server=/mini-lebanon.com/127.0.0.1#5335 +ipset=/mini-lebanon.com/gfwlist +server=/paradisehotelquizfox.com/127.0.0.1#5335 +ipset=/paradisehotelquizfox.com/gfwlist +server=/buypass-ssl.com/127.0.0.1#5335 +ipset=/buypass-ssl.com/gfwlist +server=/newsgawakaru.com/127.0.0.1#5335 +ipset=/newsgawakaru.com/gfwlist +server=/www-paypal.info/127.0.0.1#5335 +ipset=/www-paypal.info/gfwlist +server=/ipod.ru/127.0.0.1#5335 +ipset=/ipod.ru/gfwlist +server=/demdex.net/127.0.0.1#5335 +ipset=/demdex.net/gfwlist +server=/deps.dev/127.0.0.1#5335 +ipset=/deps.dev/gfwlist +server=/cosplayeromania.jp/127.0.0.1#5335 +ipset=/cosplayeromania.jp/gfwlist +server=/epochtimes.com.br/127.0.0.1#5335 +ipset=/epochtimes.com.br/gfwlist +server=/xlecx.org/127.0.0.1#5335 +ipset=/xlecx.org/gfwlist +server=/customnikeshoes.com/127.0.0.1#5335 +ipset=/customnikeshoes.com/gfwlist +server=/volvotruckcenter.kr/127.0.0.1#5335 +ipset=/volvotruckcenter.kr/gfwlist +server=/whatsapp.info/127.0.0.1#5335 +ipset=/whatsapp.info/gfwlist +server=/monsterbeatsfactory.net/127.0.0.1#5335 +ipset=/monsterbeatsfactory.net/gfwlist +server=/directvrichmond.com/127.0.0.1#5335 +ipset=/directvrichmond.com/gfwlist +server=/fbbmarket.com/127.0.0.1#5335 +ipset=/fbbmarket.com/gfwlist +server=/ikea.com.pr/127.0.0.1#5335 +ipset=/ikea.com.pr/gfwlist +server=/fetishtown.net/127.0.0.1#5335 +ipset=/fetishtown.net/gfwlist +server=/terrapeak.com/127.0.0.1#5335 +ipset=/terrapeak.com/gfwlist +server=/prime-video.com/127.0.0.1#5335 +ipset=/prime-video.com/gfwlist +server=/stonefoxlingerie.com/127.0.0.1#5335 +ipset=/stonefoxlingerie.com/gfwlist +server=/3d-toon.com/127.0.0.1#5335 +ipset=/3d-toon.com/gfwlist +server=/canon.ge/127.0.0.1#5335 +ipset=/canon.ge/gfwlist +server=/hppavillionlaptop.com/127.0.0.1#5335 +ipset=/hppavillionlaptop.com/gfwlist +server=/microsoftuwp.com/127.0.0.1#5335 +ipset=/microsoftuwp.com/gfwlist +server=/openmaps.org/127.0.0.1#5335 +ipset=/openmaps.org/gfwlist +server=/durex.dk/127.0.0.1#5335 +ipset=/durex.dk/gfwlist +server=/wankizer.com/127.0.0.1#5335 +ipset=/wankizer.com/gfwlist +server=/theinitium.com/127.0.0.1#5335 +ipset=/theinitium.com/gfwlist +server=/sharkyporn.com/127.0.0.1#5335 +ipset=/sharkyporn.com/gfwlist +server=/cheapbeatsbydrenz.net/127.0.0.1#5335 +ipset=/cheapbeatsbydrenz.net/gfwlist +server=/shesfreaky.com/127.0.0.1#5335 +ipset=/shesfreaky.com/gfwlist +server=/topescort.nl/127.0.0.1#5335 +ipset=/topescort.nl/gfwlist +server=/pornojux.com/127.0.0.1#5335 +ipset=/pornojux.com/gfwlist +server=/dmgmediaprivacy.co.uk/127.0.0.1#5335 +ipset=/dmgmediaprivacy.co.uk/gfwlist +server=/nintendo.eu/127.0.0.1#5335 +ipset=/nintendo.eu/gfwlist +server=/ebi.ac.uk/127.0.0.1#5335 +ipset=/ebi.ac.uk/gfwlist +server=/cheapbeatsbus.com/127.0.0.1#5335 +ipset=/cheapbeatsbus.com/gfwlist +server=/bestbuy-jobs.com/127.0.0.1#5335 +ipset=/bestbuy-jobs.com/gfwlist +server=/imac.one/127.0.0.1#5335 +ipset=/imac.one/gfwlist +server=/clip16.com/127.0.0.1#5335 +ipset=/clip16.com/gfwlist +server=/viewpointsfromfacebook.com/127.0.0.1#5335 +ipset=/viewpointsfromfacebook.com/gfwlist +server=/geeksquad.tv/127.0.0.1#5335 +ipset=/geeksquad.tv/gfwlist +server=/latex-project.org/127.0.0.1#5335 +ipset=/latex-project.org/gfwlist +server=/wetandpuffy.com/127.0.0.1#5335 +ipset=/wetandpuffy.com/gfwlist +server=/pmatehunter.com/127.0.0.1#5335 +ipset=/pmatehunter.com/gfwlist +server=/epochtimes.com.au/127.0.0.1#5335 +ipset=/epochtimes.com.au/gfwlist +server=/thz7.net/127.0.0.1#5335 +ipset=/thz7.net/gfwlist +server=/alphabet.cz/127.0.0.1#5335 +ipset=/alphabet.cz/gfwlist +server=/adguard.com/127.0.0.1#5335 +ipset=/adguard.com/gfwlist +server=/bmw-motorrad.com.my/127.0.0.1#5335 +ipset=/bmw-motorrad.com.my/gfwlist +server=/liketruyen.net/127.0.0.1#5335 +ipset=/liketruyen.net/gfwlist +server=/nubiles-porn.com/127.0.0.1#5335 +ipset=/nubiles-porn.com/gfwlist +server=/all-sex-links.com/127.0.0.1#5335 +ipset=/all-sex-links.com/gfwlist +server=/embed.ly/127.0.0.1#5335 +ipset=/embed.ly/gfwlist +server=/incommon-rsa.org/127.0.0.1#5335 +ipset=/incommon-rsa.org/gfwlist +server=/pornfuror.com/127.0.0.1#5335 +ipset=/pornfuror.com/gfwlist +server=/starbucks.com.tr/127.0.0.1#5335 +ipset=/starbucks.com.tr/gfwlist +server=/spreadporn.org/127.0.0.1#5335 +ipset=/spreadporn.org/gfwlist +server=/volvospares.com/127.0.0.1#5335 +ipset=/volvospares.com/gfwlist +server=/pornohut.info/127.0.0.1#5335 +ipset=/pornohut.info/gfwlist +server=/wd.com/127.0.0.1#5335 +ipset=/wd.com/gfwlist +server=/dotcernpilot.info/127.0.0.1#5335 +ipset=/dotcernpilot.info/gfwlist +server=/foxcreativeuniversity.com/127.0.0.1#5335 +ipset=/foxcreativeuniversity.com/gfwlist +server=/porndisk.com/127.0.0.1#5335 +ipset=/porndisk.com/gfwlist +server=/bloombergradio.com/127.0.0.1#5335 +ipset=/bloombergradio.com/gfwlist +server=/visa.com.co/127.0.0.1#5335 +ipset=/visa.com.co/gfwlist +server=/yandex.com.ua/127.0.0.1#5335 +ipset=/yandex.com.ua/gfwlist +server=/vodafone.de/127.0.0.1#5335 +ipset=/vodafone.de/gfwlist +server=/ikea.co.pl/127.0.0.1#5335 +ipset=/ikea.co.pl/gfwlist +server=/xxx.xxx/127.0.0.1#5335 +ipset=/xxx.xxx/gfwlist +server=/addison-wesley.ch/127.0.0.1#5335 +ipset=/addison-wesley.ch/gfwlist +server=/voaafrique.com/127.0.0.1#5335 +ipset=/voaafrique.com/gfwlist +server=/intel.us/127.0.0.1#5335 +ipset=/intel.us/gfwlist +server=/psg-int-centralus.cloudapp.net/127.0.0.1#5335 +ipset=/psg-int-centralus.cloudapp.net/gfwlist +server=/fb.com/127.0.0.1#5335 +ipset=/fb.com/gfwlist +server=/passport.net/127.0.0.1#5335 +ipset=/passport.net/gfwlist +server=/hplaptop.com/127.0.0.1#5335 +ipset=/hplaptop.com/gfwlist +server=/ea.com/127.0.0.1#5335 +ipset=/ea.com/gfwlist +server=/jtvnw.net/127.0.0.1#5335 +ipset=/jtvnw.net/gfwlist +server=/voxcreative.com/127.0.0.1#5335 +ipset=/voxcreative.com/gfwlist +server=/youtube.com.ph/127.0.0.1#5335 +ipset=/youtube.com.ph/gfwlist +server=/zb.com/127.0.0.1#5335 +ipset=/zb.com/gfwlist +server=/nikedunksshoes.com/127.0.0.1#5335 +ipset=/nikedunksshoes.com/gfwlist +server=/mainichibooks.com/127.0.0.1#5335 +ipset=/mainichibooks.com/gfwlist +server=/farfetch.net/127.0.0.1#5335 +ipset=/farfetch.net/gfwlist +server=/explicittube.com/127.0.0.1#5335 +ipset=/explicittube.com/gfwlist +server=/ttvnw.net/127.0.0.1#5335 +ipset=/ttvnw.net/gfwlist +server=/volvobuses.be/127.0.0.1#5335 +ipset=/volvobuses.be/gfwlist +server=/luvmov.com/127.0.0.1#5335 +ipset=/luvmov.com/gfwlist +server=/paypalnetwork.org/127.0.0.1#5335 +ipset=/paypalnetwork.org/gfwlist +server=/bmw-world.tv/127.0.0.1#5335 +ipset=/bmw-world.tv/gfwlist +server=/facebookworld.com/127.0.0.1#5335 +ipset=/facebookworld.com/gfwlist +server=/alt6-mtalk.google.com/127.0.0.1#5335 +ipset=/alt6-mtalk.google.com/gfwlist +server=/16fhgdty.xyz/127.0.0.1#5335 +ipset=/16fhgdty.xyz/gfwlist +server=/adultfreex.com/127.0.0.1#5335 +ipset=/adultfreex.com/gfwlist +server=/historyofdota.com/127.0.0.1#5335 +ipset=/historyofdota.com/gfwlist +server=/alpherafs.ie/127.0.0.1#5335 +ipset=/alpherafs.ie/gfwlist +server=/finishkilpailu.fi/127.0.0.1#5335 +ipset=/finishkilpailu.fi/gfwlist +server=/google.rw/127.0.0.1#5335 +ipset=/google.rw/gfwlist +server=/attglobal.net/127.0.0.1#5335 +ipset=/attglobal.net/gfwlist +server=/alivevm.com/127.0.0.1#5335 +ipset=/alivevm.com/gfwlist +server=/aranzadi.es/127.0.0.1#5335 +ipset=/aranzadi.es/gfwlist +server=/gaypornlove.net/127.0.0.1#5335 +ipset=/gaypornlove.net/gfwlist +server=/0cgdklr5sfwj.com/127.0.0.1#5335 +ipset=/0cgdklr5sfwj.com/gfwlist +server=/younger19.com/127.0.0.1#5335 +ipset=/younger19.com/gfwlist +server=/psyccareers.com/127.0.0.1#5335 +ipset=/psyccareers.com/gfwlist +server=/me.com/127.0.0.1#5335 +ipset=/me.com/gfwlist +server=/zohouniversity.com/127.0.0.1#5335 +ipset=/zohouniversity.com/gfwlist +server=/javbus.com/127.0.0.1#5335 +ipset=/javbus.com/gfwlist +server=/nebay.net/127.0.0.1#5335 +ipset=/nebay.net/gfwlist +server=/thepornscat.com/127.0.0.1#5335 +ipset=/thepornscat.com/gfwlist +server=/blogspot.td/127.0.0.1#5335 +ipset=/blogspot.td/gfwlist +server=/canon.co.il/127.0.0.1#5335 +ipset=/canon.co.il/gfwlist +server=/69-sexgames.com/127.0.0.1#5335 +ipset=/69-sexgames.com/gfwlist +server=/kijijiraps.ca/127.0.0.1#5335 +ipset=/kijijiraps.ca/gfwlist +server=/mofosnetwork.com/127.0.0.1#5335 +ipset=/mofosnetwork.com/gfwlist +server=/yahoo.com.vn/127.0.0.1#5335 +ipset=/yahoo.com.vn/gfwlist +server=/gettyimages.pt/127.0.0.1#5335 +ipset=/gettyimages.pt/gfwlist +server=/srwwu.uno/127.0.0.1#5335 +ipset=/srwwu.uno/gfwlist +server=/microsoft.uz/127.0.0.1#5335 +ipset=/microsoft.uz/gfwlist +server=/pinterest.com.vn/127.0.0.1#5335 +ipset=/pinterest.com.vn/gfwlist +server=/cabletv.com.hk/127.0.0.1#5335 +ipset=/cabletv.com.hk/gfwlist +server=/diablo3.com/127.0.0.1#5335 +ipset=/diablo3.com/gfwlist +server=/nakadashi.to/127.0.0.1#5335 +ipset=/nakadashi.to/gfwlist +server=/oreilly.review/127.0.0.1#5335 +ipset=/oreilly.review/gfwlist +server=/hot-teens.com/127.0.0.1#5335 +ipset=/hot-teens.com/gfwlist +server=/makeitopen.com/127.0.0.1#5335 +ipset=/makeitopen.com/gfwlist +server=/dynacw.com/127.0.0.1#5335 +ipset=/dynacw.com/gfwlist +server=/lede-project.org/127.0.0.1#5335 +ipset=/lede-project.org/gfwlist +server=/beatsbydresonline-nz.com/127.0.0.1#5335 +ipset=/beatsbydresonline-nz.com/gfwlist +server=/beatsbydresalemall2013.com/127.0.0.1#5335 +ipset=/beatsbydresalemall2013.com/gfwlist +server=/porcore.com/127.0.0.1#5335 +ipset=/porcore.com/gfwlist +server=/powerappscdn.net/127.0.0.1#5335 +ipset=/powerappscdn.net/gfwlist +server=/rakuten.ca/127.0.0.1#5335 +ipset=/rakuten.ca/gfwlist +server=/rk.com/127.0.0.1#5335 +ipset=/rk.com/gfwlist +server=/elasticbeanstalk.com/127.0.0.1#5335 +ipset=/elasticbeanstalk.com/gfwlist +server=/vk.com/127.0.0.1#5335 +ipset=/vk.com/gfwlist +server=/oxlife.co/127.0.0.1#5335 +ipset=/oxlife.co/gfwlist +server=/internationalsaimoe.com/127.0.0.1#5335 +ipset=/internationalsaimoe.com/gfwlist +server=/idservice.inc/127.0.0.1#5335 +ipset=/idservice.inc/gfwlist +server=/bffshd.com/127.0.0.1#5335 +ipset=/bffshd.com/gfwlist +server=/squirrelgroup.net/127.0.0.1#5335 +ipset=/squirrelgroup.net/gfwlist +server=/blogspot.sk/127.0.0.1#5335 +ipset=/blogspot.sk/gfwlist +server=/microsoft.ua/127.0.0.1#5335 +ipset=/microsoft.ua/gfwlist +server=/bountyhunterporn.com/127.0.0.1#5335 +ipset=/bountyhunterporn.com/gfwlist +server=/ipadair.cl/127.0.0.1#5335 +ipset=/ipadair.cl/gfwlist +server=/takegoto.com/127.0.0.1#5335 +ipset=/takegoto.com/gfwlist +server=/ikea.au/127.0.0.1#5335 +ipset=/ikea.au/gfwlist +server=/av69.tv/127.0.0.1#5335 +ipset=/av69.tv/gfwlist +server=/logitech.com.cn/127.0.0.1#5335 +ipset=/logitech.com.cn/gfwlist +server=/hbogoasia.sg/127.0.0.1#5335 +ipset=/hbogoasia.sg/gfwlist +server=/cbsplaylistserver.aws.syncbak.com/127.0.0.1#5335 +ipset=/cbsplaylistserver.aws.syncbak.com/gfwlist +server=/hpprinterinstalls.com/127.0.0.1#5335 +ipset=/hpprinterinstalls.com/gfwlist +server=/intercom.com/127.0.0.1#5335 +ipset=/intercom.com/gfwlist +server=/nikehelp.com/127.0.0.1#5335 +ipset=/nikehelp.com/gfwlist +server=/mallandrinhas.net/127.0.0.1#5335 +ipset=/mallandrinhas.net/gfwlist +server=/gettyimages.be/127.0.0.1#5335 +ipset=/gettyimages.be/gfwlist +server=/2k.com/127.0.0.1#5335 +ipset=/2k.com/gfwlist +server=/bestgames-2022.com/127.0.0.1#5335 +ipset=/bestgames-2022.com/gfwlist +server=/apple.is/127.0.0.1#5335 +ipset=/apple.is/gfwlist +server=/pinterest.co.nz/127.0.0.1#5335 +ipset=/pinterest.co.nz/gfwlist +server=/finishbrasil.com.br/127.0.0.1#5335 +ipset=/finishbrasil.com.br/gfwlist +server=/skype-edf.akadns.net/127.0.0.1#5335 +ipset=/skype-edf.akadns.net/gfwlist +server=/mastercard.com.co/127.0.0.1#5335 +ipset=/mastercard.com.co/gfwlist +server=/pornyeah.com/127.0.0.1#5335 +ipset=/pornyeah.com/gfwlist +server=/microsoft.ee/127.0.0.1#5335 +ipset=/microsoft.ee/gfwlist +server=/intel.md/127.0.0.1#5335 +ipset=/intel.md/gfwlist +server=/58avgo.com/127.0.0.1#5335 +ipset=/58avgo.com/gfwlist +server=/ass4all.com/127.0.0.1#5335 +ipset=/ass4all.com/gfwlist +server=/myxvids.com/127.0.0.1#5335 +ipset=/myxvids.com/gfwlist +server=/youtube.my/127.0.0.1#5335 +ipset=/youtube.my/gfwlist +server=/lasvegasbmw.com/127.0.0.1#5335 +ipset=/lasvegasbmw.com/gfwlist +server=/healthcarecareeronline.com/127.0.0.1#5335 +ipset=/healthcarecareeronline.com/gfwlist +server=/randyblue.com/127.0.0.1#5335 +ipset=/randyblue.com/gfwlist +server=/avstar6.com/127.0.0.1#5335 +ipset=/avstar6.com/gfwlist +server=/vipstudiocali.com/127.0.0.1#5335 +ipset=/vipstudiocali.com/gfwlist +server=/nikewear.com/127.0.0.1#5335 +ipset=/nikewear.com/gfwlist +server=/myaccountglobalcash.com/127.0.0.1#5335 +ipset=/myaccountglobalcash.com/gfwlist +server=/petite.one/127.0.0.1#5335 +ipset=/petite.one/gfwlist +server=/ro89.com/127.0.0.1#5335 +ipset=/ro89.com/gfwlist +server=/annualpelvicexam.com/127.0.0.1#5335 +ipset=/annualpelvicexam.com/gfwlist +server=/mybestbuy.com/127.0.0.1#5335 +ipset=/mybestbuy.com/gfwlist +server=/blogspot.bj/127.0.0.1#5335 +ipset=/blogspot.bj/gfwlist +server=/radiosvoboda.org/127.0.0.1#5335 +ipset=/radiosvoboda.org/gfwlist +server=/xhamsterlive.com/127.0.0.1#5335 +ipset=/xhamsterlive.com/gfwlist +server=/akamai.com/127.0.0.1#5335 +ipset=/akamai.com/gfwlist +server=/unraveltwo.com/127.0.0.1#5335 +ipset=/unraveltwo.com/gfwlist +server=/bluehatil.com/127.0.0.1#5335 +ipset=/bluehatil.com/gfwlist +server=/juliamiles.com/127.0.0.1#5335 +ipset=/juliamiles.com/gfwlist +server=/sexytuber.com/127.0.0.1#5335 +ipset=/sexytuber.com/gfwlist +server=/adorevids.com/127.0.0.1#5335 +ipset=/adorevids.com/gfwlist +server=/lavteam.org/127.0.0.1#5335 +ipset=/lavteam.org/gfwlist +server=/facebookwork.com/127.0.0.1#5335 +ipset=/facebookwork.com/gfwlist +server=/iwork.se/127.0.0.1#5335 +ipset=/iwork.se/gfwlist +server=/nurofen.hu/127.0.0.1#5335 +ipset=/nurofen.hu/gfwlist +server=/thinkboxsoftware.com/127.0.0.1#5335 +ipset=/thinkboxsoftware.com/gfwlist +server=/pornsexer.com/127.0.0.1#5335 +ipset=/pornsexer.com/gfwlist +server=/sellercommunity.com/127.0.0.1#5335 +ipset=/sellercommunity.com/gfwlist +server=/mastercard.co.id/127.0.0.1#5335 +ipset=/mastercard.co.id/gfwlist +server=/mirar.xxx/127.0.0.1#5335 +ipset=/mirar.xxx/gfwlist +server=/callabitch.org/127.0.0.1#5335 +ipset=/callabitch.org/gfwlist +server=/brightcove.com/127.0.0.1#5335 +ipset=/brightcove.com/gfwlist +server=/morteincam.com/127.0.0.1#5335 +ipset=/morteincam.com/gfwlist +server=/new-jero.net/127.0.0.1#5335 +ipset=/new-jero.net/gfwlist +server=/iphoto.no/127.0.0.1#5335 +ipset=/iphoto.no/gfwlist +server=/play4free.com/127.0.0.1#5335 +ipset=/play4free.com/gfwlist +server=/huluteam.com/127.0.0.1#5335 +ipset=/huluteam.com/gfwlist +server=/pornking.fun/127.0.0.1#5335 +ipset=/pornking.fun/gfwlist +server=/myhelpinglab.com/127.0.0.1#5335 +ipset=/myhelpinglab.com/gfwlist +server=/oxfordmusiconline.com/127.0.0.1#5335 +ipset=/oxfordmusiconline.com/gfwlist +server=/stripchat.com/127.0.0.1#5335 +ipset=/stripchat.com/gfwlist +server=/supermario3dworld.com/127.0.0.1#5335 +ipset=/supermario3dworld.com/gfwlist +server=/huffingtonpost.com.au/127.0.0.1#5335 +ipset=/huffingtonpost.com.au/gfwlist +server=/pornoko.net/127.0.0.1#5335 +ipset=/pornoko.net/gfwlist +server=/thebeatsbydre.net/127.0.0.1#5335 +ipset=/thebeatsbydre.net/gfwlist +server=/torrindex.net/127.0.0.1#5335 +ipset=/torrindex.net/gfwlist +server=/google.com.pe/127.0.0.1#5335 +ipset=/google.com.pe/gfwlist +server=/vodafone.com/127.0.0.1#5335 +ipset=/vodafone.com/gfwlist +server=/dribbble.com/127.0.0.1#5335 +ipset=/dribbble.com/gfwlist +server=/applestore.sg/127.0.0.1#5335 +ipset=/applestore.sg/gfwlist +server=/pokemonswordshield.com/127.0.0.1#5335 +ipset=/pokemonswordshield.com/gfwlist +server=/btcbox.co.jp/127.0.0.1#5335 +ipset=/btcbox.co.jp/gfwlist +server=/alexanderstreet.com/127.0.0.1#5335 +ipset=/alexanderstreet.com/gfwlist +server=/picasaweb.net/127.0.0.1#5335 +ipset=/picasaweb.net/gfwlist +server=/youtube.lt/127.0.0.1#5335 +ipset=/youtube.lt/gfwlist +server=/hptouchpointmanager.com/127.0.0.1#5335 +ipset=/hptouchpointmanager.com/gfwlist +server=/usvimosquito.com/127.0.0.1#5335 +ipset=/usvimosquito.com/gfwlist +server=/desiporn.tube/127.0.0.1#5335 +ipset=/desiporn.tube/gfwlist +server=/akadeem.net/127.0.0.1#5335 +ipset=/akadeem.net/gfwlist +server=/llnwd.net/127.0.0.1#5335 +ipset=/llnwd.net/gfwlist +server=/beatsbydrehd.com/127.0.0.1#5335 +ipset=/beatsbydrehd.com/gfwlist +server=/google.ee/127.0.0.1#5335 +ipset=/google.ee/gfwlist +server=/tgp6.com/127.0.0.1#5335 +ipset=/tgp6.com/gfwlist +server=/amateur-porn-tube.net/127.0.0.1#5335 +ipset=/amateur-porn-tube.net/gfwlist +server=/powerautomate.com/127.0.0.1#5335 +ipset=/powerautomate.com/gfwlist +server=/javtag.net/127.0.0.1#5335 +ipset=/javtag.net/gfwlist +server=/volvotrucks.pl/127.0.0.1#5335 +ipset=/volvotrucks.pl/gfwlist +server=/epochtimes.fr/127.0.0.1#5335 +ipset=/epochtimes.fr/gfwlist +server=/freedirecttvspecial.com/127.0.0.1#5335 +ipset=/freedirecttvspecial.com/gfwlist +server=/freematuresgallery.com/127.0.0.1#5335 +ipset=/freematuresgallery.com/gfwlist +server=/iina.io/127.0.0.1#5335 +ipset=/iina.io/gfwlist +server=/foxnewspolitics.com/127.0.0.1#5335 +ipset=/foxnewspolitics.com/gfwlist +server=/zb.io/127.0.0.1#5335 +ipset=/zb.io/gfwlist +server=/hotgirlsclips.com/127.0.0.1#5335 +ipset=/hotgirlsclips.com/gfwlist +server=/foxd.tv/127.0.0.1#5335 +ipset=/foxd.tv/gfwlist +server=/forthethrone.com/127.0.0.1#5335 +ipset=/forthethrone.com/gfwlist +server=/visualstudio.net/127.0.0.1#5335 +ipset=/visualstudio.net/gfwlist +server=/conda.io/127.0.0.1#5335 +ipset=/conda.io/gfwlist +server=/xvideo.vlog.br/127.0.0.1#5335 +ipset=/xvideo.vlog.br/gfwlist +server=/nordstrom.com/127.0.0.1#5335 +ipset=/nordstrom.com/gfwlist +server=/vipheadphones.com/127.0.0.1#5335 +ipset=/vipheadphones.com/gfwlist +server=/premiumpornlist.com/127.0.0.1#5335 +ipset=/premiumpornlist.com/gfwlist +server=/hpprintersupplies.com/127.0.0.1#5335 +ipset=/hpprintersupplies.com/gfwlist +server=/intel.tw/127.0.0.1#5335 +ipset=/intel.tw/gfwlist +server=/freeteenporn.xxx/127.0.0.1#5335 +ipset=/freeteenporn.xxx/gfwlist +server=/1lib.to/127.0.0.1#5335 +ipset=/1lib.to/gfwlist +server=/thomsonreuters.com.pe/127.0.0.1#5335 +ipset=/thomsonreuters.com.pe/gfwlist +server=/freesitexxx.com/127.0.0.1#5335 +ipset=/freesitexxx.com/gfwlist +server=/hcaptcha.com/127.0.0.1#5335 +ipset=/hcaptcha.com/gfwlist +server=/oculusdiving.com/127.0.0.1#5335 +ipset=/oculusdiving.com/gfwlist +server=/pearsonschoolsandfecolleges.co.uk/127.0.0.1#5335 +ipset=/pearsonschoolsandfecolleges.co.uk/gfwlist +server=/beatsdreoutletsale.com/127.0.0.1#5335 +ipset=/beatsdreoutletsale.com/gfwlist +server=/demoprint.com/127.0.0.1#5335 +ipset=/demoprint.com/gfwlist +server=/v.gd/127.0.0.1#5335 +ipset=/v.gd/gfwlist +server=/huluqa.com/127.0.0.1#5335 +ipset=/huluqa.com/gfwlist +server=/casquesbeatsaudio.com/127.0.0.1#5335 +ipset=/casquesbeatsaudio.com/gfwlist +server=/onlyleaks.me/127.0.0.1#5335 +ipset=/onlyleaks.me/gfwlist +server=/sextubeset.com/127.0.0.1#5335 +ipset=/sextubeset.com/gfwlist +server=/youtube.by/127.0.0.1#5335 +ipset=/youtube.by/gfwlist +server=/family-simulator.io/127.0.0.1#5335 +ipset=/family-simulator.io/gfwlist +server=/tktube.com/127.0.0.1#5335 +ipset=/tktube.com/gfwlist +server=/freesexalbum.com/127.0.0.1#5335 +ipset=/freesexalbum.com/gfwlist +server=/casquemonsterbeatsbydre2013.com/127.0.0.1#5335 +ipset=/casquemonsterbeatsbydre2013.com/gfwlist +server=/kinkypeepz.com/127.0.0.1#5335 +ipset=/kinkypeepz.com/gfwlist +server=/video01.org/127.0.0.1#5335 +ipset=/video01.org/gfwlist +server=/asme.org/127.0.0.1#5335 +ipset=/asme.org/gfwlist +server=/yeyuehuachao11.com/127.0.0.1#5335 +ipset=/yeyuehuachao11.com/gfwlist +server=/shopbydre.com/127.0.0.1#5335 +ipset=/shopbydre.com/gfwlist +server=/erosberry.com/127.0.0.1#5335 +ipset=/erosberry.com/gfwlist +server=/intel.nl/127.0.0.1#5335 +ipset=/intel.nl/gfwlist +server=/bingapistatistics.com/127.0.0.1#5335 +ipset=/bingapistatistics.com/gfwlist +server=/seaofsolitude.com/127.0.0.1#5335 +ipset=/seaofsolitude.com/gfwlist +server=/6mature9.com/127.0.0.1#5335 +ipset=/6mature9.com/gfwlist +server=/besterpornos.com/127.0.0.1#5335 +ipset=/besterpornos.com/gfwlist +server=/gosq.co/127.0.0.1#5335 +ipset=/gosq.co/gfwlist +server=/aapl.tw/127.0.0.1#5335 +ipset=/aapl.tw/gfwlist +server=/truyengihay.net/127.0.0.1#5335 +ipset=/truyengihay.net/gfwlist +server=/sankei-kurashi.com/127.0.0.1#5335 +ipset=/sankei-kurashi.com/gfwlist +server=/hpindigopress.com/127.0.0.1#5335 +ipset=/hpindigopress.com/gfwlist +server=/bmw.fr/127.0.0.1#5335 +ipset=/bmw.fr/gfwlist +server=/msauth.net/127.0.0.1#5335 +ipset=/msauth.net/gfwlist +server=/activelearnprimary.co.uk/127.0.0.1#5335 +ipset=/activelearnprimary.co.uk/gfwlist +server=/dell-brand.com/127.0.0.1#5335 +ipset=/dell-brand.com/gfwlist +server=/championshipseriesleague.com/127.0.0.1#5335 +ipset=/championshipseriesleague.com/gfwlist +server=/bmw.com.sv/127.0.0.1#5335 +ipset=/bmw.com.sv/gfwlist +server=/spankbang.com/127.0.0.1#5335 +ipset=/spankbang.com/gfwlist +server=/shemaletube.pro/127.0.0.1#5335 +ipset=/shemaletube.pro/gfwlist +server=/needforspeedundergroundeast.com/127.0.0.1#5335 +ipset=/needforspeedundergroundeast.com/gfwlist +server=/sslpaypal.org/127.0.0.1#5335 +ipset=/sslpaypal.org/gfwlist +server=/etnet.com.hk/127.0.0.1#5335 +ipset=/etnet.com.hk/gfwlist +server=/beatsdrenewcolorful4usale.com/127.0.0.1#5335 +ipset=/beatsdrenewcolorful4usale.com/gfwlist +server=/facebooe.com/127.0.0.1#5335 +ipset=/facebooe.com/gfwlist +server=/uxxxporn.com/127.0.0.1#5335 +ipset=/uxxxporn.com/gfwlist +server=/dkbeatsbydre.com/127.0.0.1#5335 +ipset=/dkbeatsbydre.com/gfwlist +server=/dldshare.net/127.0.0.1#5335 +ipset=/dldshare.net/gfwlist +server=/coomer.party/127.0.0.1#5335 +ipset=/coomer.party/gfwlist +server=/google.sn/127.0.0.1#5335 +ipset=/google.sn/gfwlist +server=/beats-bydrestore.com/127.0.0.1#5335 +ipset=/beats-bydrestore.com/gfwlist +server=/cherrypornhd.com/127.0.0.1#5335 +ipset=/cherrypornhd.com/gfwlist +server=/seemyporn.com/127.0.0.1#5335 +ipset=/seemyporn.com/gfwlist +server=/blogspot.rs/127.0.0.1#5335 +ipset=/blogspot.rs/gfwlist +server=/bridgestonecomercial.com.br/127.0.0.1#5335 +ipset=/bridgestonecomercial.com.br/gfwlist +server=/dualeotruyen1s.com/127.0.0.1#5335 +ipset=/dualeotruyen1s.com/gfwlist +server=/tail-f.com/127.0.0.1#5335 +ipset=/tail-f.com/gfwlist +server=/sexxxx.rodeo/127.0.0.1#5335 +ipset=/sexxxx.rodeo/gfwlist +server=/bromo.com/127.0.0.1#5335 +ipset=/bromo.com/gfwlist +server=/yogalayout.com/127.0.0.1#5335 +ipset=/yogalayout.com/gfwlist +server=/hornygamer.com/127.0.0.1#5335 +ipset=/hornygamer.com/gfwlist +server=/jiuzhouyihuo.com/127.0.0.1#5335 +ipset=/jiuzhouyihuo.com/gfwlist +server=/parstream.net/127.0.0.1#5335 +ipset=/parstream.net/gfwlist +server=/xlinkz.to/127.0.0.1#5335 +ipset=/xlinkz.to/gfwlist +server=/mini-connected.nl/127.0.0.1#5335 +ipset=/mini-connected.nl/gfwlist +server=/indianpornfast.com/127.0.0.1#5335 +ipset=/indianpornfast.com/gfwlist +server=/drdrebeatsbillig.com/127.0.0.1#5335 +ipset=/drdrebeatsbillig.com/gfwlist +server=/youtube.co.kr/127.0.0.1#5335 +ipset=/youtube.co.kr/gfwlist +server=/vfsco.it/127.0.0.1#5335 +ipset=/vfsco.it/gfwlist +server=/openweave.io/127.0.0.1#5335 +ipset=/openweave.io/gfwlist +server=/xapplist.com/127.0.0.1#5335 +ipset=/xapplist.com/gfwlist +server=/shopee.tw/127.0.0.1#5335 +ipset=/shopee.tw/gfwlist +server=/beatsbydrestorevip.com/127.0.0.1#5335 +ipset=/beatsbydrestorevip.com/gfwlist +server=/garena.com/127.0.0.1#5335 +ipset=/garena.com/gfwlist +server=/bmw.bg/127.0.0.1#5335 +ipset=/bmw.bg/gfwlist +server=/gearspop.com/127.0.0.1#5335 +ipset=/gearspop.com/gfwlist +server=/fire-emblem-heroes.com/127.0.0.1#5335 +ipset=/fire-emblem-heroes.com/gfwlist +server=/exoticuganda.com/127.0.0.1#5335 +ipset=/exoticuganda.com/gfwlist +server=/europepmc.org/127.0.0.1#5335 +ipset=/europepmc.org/gfwlist +server=/toon-3d.com/127.0.0.1#5335 +ipset=/toon-3d.com/gfwlist +server=/miniwidget.ca/127.0.0.1#5335 +ipset=/miniwidget.ca/gfwlist +server=/alchemysynth.com/127.0.0.1#5335 +ipset=/alchemysynth.com/gfwlist +server=/mini.am/127.0.0.1#5335 +ipset=/mini.am/gfwlist +server=/reaxys.com/127.0.0.1#5335 +ipset=/reaxys.com/gfwlist +server=/mini-connected.at/127.0.0.1#5335 +ipset=/mini-connected.at/gfwlist +server=/ebaybags.com/127.0.0.1#5335 +ipset=/ebaybags.com/gfwlist +server=/appleone.space/127.0.0.1#5335 +ipset=/appleone.space/gfwlist +server=/yamaxun.com/127.0.0.1#5335 +ipset=/yamaxun.com/gfwlist +server=/briantreepayments.net/127.0.0.1#5335 +ipset=/briantreepayments.net/gfwlist +server=/developria.com/127.0.0.1#5335 +ipset=/developria.com/gfwlist +server=/kali.org/127.0.0.1#5335 +ipset=/kali.org/gfwlist +server=/amazonlaunchpad.com/127.0.0.1#5335 +ipset=/amazonlaunchpad.com/gfwlist +server=/headphonessupply.com/127.0.0.1#5335 +ipset=/headphonessupply.com/gfwlist +server=/icloudos.de/127.0.0.1#5335 +ipset=/icloudos.de/gfwlist +server=/influencersgonewild.com/127.0.0.1#5335 +ipset=/influencersgonewild.com/gfwlist +server=/one889.app/127.0.0.1#5335 +ipset=/one889.app/gfwlist +server=/city-hentai.com/127.0.0.1#5335 +ipset=/city-hentai.com/gfwlist +server=/poweredbyintel.com/127.0.0.1#5335 +ipset=/poweredbyintel.com/gfwlist +server=/brightcove.imgix.net/127.0.0.1#5335 +ipset=/brightcove.imgix.net/gfwlist +server=/sb-mobile.jp/127.0.0.1#5335 +ipset=/sb-mobile.jp/gfwlist +server=/aerogardcn.com/127.0.0.1#5335 +ipset=/aerogardcn.com/gfwlist +server=/beatsbydrespeakers.com/127.0.0.1#5335 +ipset=/beatsbydrespeakers.com/gfwlist +server=/serbiporno.net/127.0.0.1#5335 +ipset=/serbiporno.net/gfwlist +server=/volvotrucks.co.nz/127.0.0.1#5335 +ipset=/volvotrucks.co.nz/gfwlist +server=/chuporno.com/127.0.0.1#5335 +ipset=/chuporno.com/gfwlist +server=/gooddaychicago.com/127.0.0.1#5335 +ipset=/gooddaychicago.com/gfwlist +server=/bestbuysolutions.net/127.0.0.1#5335 +ipset=/bestbuysolutions.net/gfwlist +server=/valoryirene.com/127.0.0.1#5335 +ipset=/valoryirene.com/gfwlist +server=/shp.ee/127.0.0.1#5335 +ipset=/shp.ee/gfwlist +server=/javpush.com/127.0.0.1#5335 +ipset=/javpush.com/gfwlist +server=/bnetcmsus-a.akamaihd.net/127.0.0.1#5335 +ipset=/bnetcmsus-a.akamaihd.net/gfwlist +server=/hot-arab-films.com/127.0.0.1#5335 +ipset=/hot-arab-films.com/gfwlist +server=/clipsbai.com/127.0.0.1#5335 +ipset=/clipsbai.com/gfwlist +server=/capitaliq.com/127.0.0.1#5335 +ipset=/capitaliq.com/gfwlist +server=/ciscojabbervideo.net/127.0.0.1#5335 +ipset=/ciscojabbervideo.net/gfwlist +server=/bokep.net/127.0.0.1#5335 +ipset=/bokep.net/gfwlist +server=/mini.lu/127.0.0.1#5335 +ipset=/mini.lu/gfwlist +server=/qmap.pub/127.0.0.1#5335 +ipset=/qmap.pub/gfwlist +server=/booksc.eu/127.0.0.1#5335 +ipset=/booksc.eu/gfwlist +server=/nesaporn.mobi/127.0.0.1#5335 +ipset=/nesaporn.mobi/gfwlist +server=/softbankventuresasia.com/127.0.0.1#5335 +ipset=/softbankventuresasia.com/gfwlist +server=/pinterest.ca/127.0.0.1#5335 +ipset=/pinterest.ca/gfwlist +server=/69loli.com/127.0.0.1#5335 +ipset=/69loli.com/gfwlist +server=/yahoo.co.il/127.0.0.1#5335 +ipset=/yahoo.co.il/gfwlist +server=/squarecdn.com/127.0.0.1#5335 +ipset=/squarecdn.com/gfwlist +server=/identrust.net/127.0.0.1#5335 +ipset=/identrust.net/gfwlist +server=/booth.pm/127.0.0.1#5335 +ipset=/booth.pm/gfwlist +server=/canon.bg/127.0.0.1#5335 +ipset=/canon.bg/gfwlist +server=/appleenews.com/127.0.0.1#5335 +ipset=/appleenews.com/gfwlist +server=/mult34.com/127.0.0.1#5335 +ipset=/mult34.com/gfwlist +server=/google.ml/127.0.0.1#5335 +ipset=/google.ml/gfwlist +server=/tomonews.net/127.0.0.1#5335 +ipset=/tomonews.net/gfwlist +server=/imagepost.com/127.0.0.1#5335 +ipset=/imagepost.com/gfwlist +server=/custom-iphonecase.com/127.0.0.1#5335 +ipset=/custom-iphonecase.com/gfwlist +server=/hgsacx.com/127.0.0.1#5335 +ipset=/hgsacx.com/gfwlist +server=/myfoxdc.com/127.0.0.1#5335 +ipset=/myfoxdc.com/gfwlist +server=/youtube.com.do/127.0.0.1#5335 +ipset=/youtube.com.do/gfwlist +server=/foxnetworks.info/127.0.0.1#5335 +ipset=/foxnetworks.info/gfwlist +server=/phimsexnhanh.club/127.0.0.1#5335 +ipset=/phimsexnhanh.club/gfwlist +server=/porndudecasting.com/127.0.0.1#5335 +ipset=/porndudecasting.com/gfwlist +server=/xecce.com/127.0.0.1#5335 +ipset=/xecce.com/gfwlist +server=/euroipad.com/127.0.0.1#5335 +ipset=/euroipad.com/gfwlist +server=/touchid.wang/127.0.0.1#5335 +ipset=/touchid.wang/gfwlist +server=/bitly.is/127.0.0.1#5335 +ipset=/bitly.is/gfwlist +server=/kyodoimages.jp/127.0.0.1#5335 +ipset=/kyodoimages.jp/gfwlist +server=/sweetsinner.com/127.0.0.1#5335 +ipset=/sweetsinner.com/gfwlist +server=/ekhindi.com/127.0.0.1#5335 +ipset=/ekhindi.com/gfwlist +server=/epoch.cloud/127.0.0.1#5335 +ipset=/epoch.cloud/gfwlist +server=/friendbook.info/127.0.0.1#5335 +ipset=/friendbook.info/gfwlist +server=/thisismoney.co.uk/127.0.0.1#5335 +ipset=/thisismoney.co.uk/gfwlist +server=/google.it/127.0.0.1#5335 +ipset=/google.it/gfwlist +server=/yahoo.com.pr/127.0.0.1#5335 +ipset=/yahoo.com.pr/gfwlist +server=/thesafeporn.com/127.0.0.1#5335 +ipset=/thesafeporn.com/gfwlist +server=/gayasianamateurs.com/127.0.0.1#5335 +ipset=/gayasianamateurs.com/gfwlist +server=/youtube.kr/127.0.0.1#5335 +ipset=/youtube.kr/gfwlist +server=/shegg.com/127.0.0.1#5335 +ipset=/shegg.com/gfwlist +server=/muse.jhu.edu/127.0.0.1#5335 +ipset=/muse.jhu.edu/gfwlist +server=/luoli.info/127.0.0.1#5335 +ipset=/luoli.info/gfwlist +server=/directvsavings.com/127.0.0.1#5335 +ipset=/directvsavings.com/gfwlist +server=/hddgames.cc/127.0.0.1#5335 +ipset=/hddgames.cc/gfwlist +server=/ebay.com.ph/127.0.0.1#5335 +ipset=/ebay.com.ph/gfwlist +server=/indianpornvideos2.com/127.0.0.1#5335 +ipset=/indianpornvideos2.com/gfwlist +server=/cortanaanalytics.com/127.0.0.1#5335 +ipset=/cortanaanalytics.com/gfwlist +server=/thelegendarystarfy.com/127.0.0.1#5335 +ipset=/thelegendarystarfy.com/gfwlist +server=/gogole.com/127.0.0.1#5335 +ipset=/gogole.com/gfwlist +server=/kodi.tv/127.0.0.1#5335 +ipset=/kodi.tv/gfwlist +server=/xxxtubeset.com/127.0.0.1#5335 +ipset=/xxxtubeset.com/gfwlist +server=/blackstonespoliceservice.com/127.0.0.1#5335 +ipset=/blackstonespoliceservice.com/gfwlist +server=/usercontent.dev/127.0.0.1#5335 +ipset=/usercontent.dev/gfwlist +server=/outbound.io/127.0.0.1#5335 +ipset=/outbound.io/gfwlist +server=/applefilmaker.com/127.0.0.1#5335 +ipset=/applefilmaker.com/gfwlist +server=/wofl.tv/127.0.0.1#5335 +ipset=/wofl.tv/gfwlist +server=/sexmodel.wordpress.com/127.0.0.1#5335 +ipset=/sexmodel.wordpress.com/gfwlist +server=/instagran.com/127.0.0.1#5335 +ipset=/instagran.com/gfwlist +server=/yandex.de/127.0.0.1#5335 +ipset=/yandex.de/gfwlist +server=/beatsdre-monster.com/127.0.0.1#5335 +ipset=/beatsdre-monster.com/gfwlist +server=/xxx2023.com/127.0.0.1#5335 +ipset=/xxx2023.com/gfwlist +server=/steamcontent.com/127.0.0.1#5335 +ipset=/steamcontent.com/gfwlist +server=/certinomis.fr/127.0.0.1#5335 +ipset=/certinomis.fr/gfwlist +server=/javtrust.com/127.0.0.1#5335 +ipset=/javtrust.com/gfwlist +server=/topanime.biz/127.0.0.1#5335 +ipset=/topanime.biz/gfwlist +server=/hentaiseason.com/127.0.0.1#5335 +ipset=/hentaiseason.com/gfwlist +server=/bestiality.guru/127.0.0.1#5335 +ipset=/bestiality.guru/gfwlist +server=/cheapmonsterbeatssale.com/127.0.0.1#5335 +ipset=/cheapmonsterbeatssale.com/gfwlist +server=/paypal-innovationlab.com/127.0.0.1#5335 +ipset=/paypal-innovationlab.com/gfwlist +server=/shields.io/127.0.0.1#5335 +ipset=/shields.io/gfwlist +server=/bmwstartupgarage.com/127.0.0.1#5335 +ipset=/bmwstartupgarage.com/gfwlist +server=/avstar05.me/127.0.0.1#5335 +ipset=/avstar05.me/gfwlist +server=/zuckerberg.net/127.0.0.1#5335 +ipset=/zuckerberg.net/gfwlist +server=/jwt.ms/127.0.0.1#5335 +ipset=/jwt.ms/gfwlist +server=/ebay.be/127.0.0.1#5335 +ipset=/ebay.be/gfwlist +server=/intel.de/127.0.0.1#5335 +ipset=/intel.de/gfwlist +server=/pornoitaliano.com/127.0.0.1#5335 +ipset=/pornoitaliano.com/gfwlist +server=/leaguoflegends.com/127.0.0.1#5335 +ipset=/leaguoflegends.com/gfwlist +server=/chatsex.xxx/127.0.0.1#5335 +ipset=/chatsex.xxx/gfwlist +server=/sharmota.com/127.0.0.1#5335 +ipset=/sharmota.com/gfwlist +server=/vfsco.us/127.0.0.1#5335 +ipset=/vfsco.us/gfwlist +server=/ieee-vics.org/127.0.0.1#5335 +ipset=/ieee-vics.org/gfwlist +server=/minilangley.com/127.0.0.1#5335 +ipset=/minilangley.com/gfwlist +server=/raponlinereview.com/127.0.0.1#5335 +ipset=/raponlinereview.com/gfwlist +server=/volvobuses.com/127.0.0.1#5335 +ipset=/volvobuses.com/gfwlist +server=/over18arcade.com/127.0.0.1#5335 +ipset=/over18arcade.com/gfwlist +server=/fsdn.com/127.0.0.1#5335 +ipset=/fsdn.com/gfwlist +server=/googledomains.com/127.0.0.1#5335 +ipset=/googledomains.com/gfwlist +server=/yeswegays.com/127.0.0.1#5335 +ipset=/yeswegays.com/gfwlist +server=/swisssign-group.li/127.0.0.1#5335 +ipset=/swisssign-group.li/gfwlist +server=/msdn.com/127.0.0.1#5335 +ipset=/msdn.com/gfwlist +server=/nbyy.tv/127.0.0.1#5335 +ipset=/nbyy.tv/gfwlist +server=/simplifycommerce.com/127.0.0.1#5335 +ipset=/simplifycommerce.com/gfwlist +server=/espn.hb.omtrdc.net/127.0.0.1#5335 +ipset=/espn.hb.omtrdc.net/gfwlist +server=/hentaitube.online/127.0.0.1#5335 +ipset=/hentaitube.online/gfwlist +server=/nextstop.com/127.0.0.1#5335 +ipset=/nextstop.com/gfwlist +server=/niosii.com/127.0.0.1#5335 +ipset=/niosii.com/gfwlist +server=/adultgamestop.com/127.0.0.1#5335 +ipset=/adultgamestop.com/gfwlist +server=/apple.ee/127.0.0.1#5335 +ipset=/apple.ee/gfwlist +server=/live-patreon-marketing.pantheonsite.io/127.0.0.1#5335 +ipset=/live-patreon-marketing.pantheonsite.io/gfwlist +server=/alphera-finance.in/127.0.0.1#5335 +ipset=/alphera-finance.in/gfwlist +server=/youtubemobilesupport.com/127.0.0.1#5335 +ipset=/youtubemobilesupport.com/gfwlist +server=/thepornbet.com/127.0.0.1#5335 +ipset=/thepornbet.com/gfwlist +server=/galaxymobile.jp/127.0.0.1#5335 +ipset=/galaxymobile.jp/gfwlist +server=/volvobuses.fi/127.0.0.1#5335 +ipset=/volvobuses.fi/gfwlist +server=/masaladesi.com/127.0.0.1#5335 +ipset=/masaladesi.com/gfwlist +server=/redlightcenter.com/127.0.0.1#5335 +ipset=/redlightcenter.com/gfwlist +server=/disneystreaming.com/127.0.0.1#5335 +ipset=/disneystreaming.com/gfwlist +server=/xerotica.com/127.0.0.1#5335 +ipset=/xerotica.com/gfwlist +server=/ikea.ee/127.0.0.1#5335 +ipset=/ikea.ee/gfwlist +server=/k8s.io/127.0.0.1#5335 +ipset=/k8s.io/gfwlist +server=/blogblog.com/127.0.0.1#5335 +ipset=/blogblog.com/gfwlist +server=/ekolojik.org/127.0.0.1#5335 +ipset=/ekolojik.org/gfwlist +server=/facebgook.com/127.0.0.1#5335 +ipset=/facebgook.com/gfwlist +server=/beatsshop-uk.com/127.0.0.1#5335 +ipset=/beatsshop-uk.com/gfwlist +server=/camsvids.tv/127.0.0.1#5335 +ipset=/camsvids.tv/gfwlist +server=/jetfuelapp.com/127.0.0.1#5335 +ipset=/jetfuelapp.com/gfwlist +server=/gsccdn.com/127.0.0.1#5335 +ipset=/gsccdn.com/gfwlist +server=/attdns.com/127.0.0.1#5335 +ipset=/attdns.com/gfwlist +server=/vmwareemeablog.com/127.0.0.1#5335 +ipset=/vmwareemeablog.com/gfwlist +server=/bmw-product-highlights.com/127.0.0.1#5335 +ipset=/bmw-product-highlights.com/gfwlist +server=/vscode.search.windows.net/127.0.0.1#5335 +ipset=/vscode.search.windows.net/gfwlist +server=/jizzboom.com/127.0.0.1#5335 +ipset=/jizzboom.com/gfwlist +server=/whatsapp.org/127.0.0.1#5335 +ipset=/whatsapp.org/gfwlist +server=/netflixdnstest10.com/127.0.0.1#5335 +ipset=/netflixdnstest10.com/gfwlist +server=/toprealvideos.com/127.0.0.1#5335 +ipset=/toprealvideos.com/gfwlist +server=/needforspeedredline.com/127.0.0.1#5335 +ipset=/needforspeedredline.com/gfwlist +server=/bmw.pl/127.0.0.1#5335 +ipset=/bmw.pl/gfwlist +server=/dvdstudiopro.net/127.0.0.1#5335 +ipset=/dvdstudiopro.net/gfwlist +server=/qt.io/127.0.0.1#5335 +ipset=/qt.io/gfwlist +server=/boltdns.net/127.0.0.1#5335 +ipset=/boltdns.net/gfwlist +server=/mastercard.az/127.0.0.1#5335 +ipset=/mastercard.az/gfwlist +server=/porndork.com/127.0.0.1#5335 +ipset=/porndork.com/gfwlist +server=/asahi.com/127.0.0.1#5335 +ipset=/asahi.com/gfwlist +server=/vimeostatus.com/127.0.0.1#5335 +ipset=/vimeostatus.com/gfwlist +server=/omg.adult/127.0.0.1#5335 +ipset=/omg.adult/gfwlist +server=/amateurslovesporn.com/127.0.0.1#5335 +ipset=/amateurslovesporn.com/gfwlist +server=/googlefinland.com/127.0.0.1#5335 +ipset=/googlefinland.com/gfwlist +server=/shellcheck.net/127.0.0.1#5335 +ipset=/shellcheck.net/gfwlist +server=/volvotrucks.co.zm/127.0.0.1#5335 +ipset=/volvotrucks.co.zm/gfwlist +server=/attalascom.com/127.0.0.1#5335 +ipset=/attalascom.com/gfwlist +server=/discord.store/127.0.0.1#5335 +ipset=/discord.store/gfwlist +server=/angulardart.org/127.0.0.1#5335 +ipset=/angulardart.org/gfwlist +server=/cybertrust.co.jp/127.0.0.1#5335 +ipset=/cybertrust.co.jp/gfwlist +server=/mini-jordan.com/127.0.0.1#5335 +ipset=/mini-jordan.com/gfwlist +server=/tandberg.com/127.0.0.1#5335 +ipset=/tandberg.com/gfwlist +server=/tryrating.com/127.0.0.1#5335 +ipset=/tryrating.com/gfwlist +server=/hpbestbuy.com/127.0.0.1#5335 +ipset=/hpbestbuy.com/gfwlist +server=/familyporn.tv/127.0.0.1#5335 +ipset=/familyporn.tv/gfwlist +server=/axios.com/127.0.0.1#5335 +ipset=/axios.com/gfwlist +server=/pornodanke.com/127.0.0.1#5335 +ipset=/pornodanke.com/gfwlist +server=/imacsources.com/127.0.0.1#5335 +ipset=/imacsources.com/gfwlist +server=/insidefilms.com/127.0.0.1#5335 +ipset=/insidefilms.com/gfwlist +server=/camwhoreshd.com/127.0.0.1#5335 +ipset=/camwhoreshd.com/gfwlist +server=/gwiki.net/127.0.0.1#5335 +ipset=/gwiki.net/gfwlist +server=/epochmediagroup.com/127.0.0.1#5335 +ipset=/epochmediagroup.com/gfwlist +server=/ebayenterprise.net/127.0.0.1#5335 +ipset=/ebayenterprise.net/gfwlist +server=/hentaisub.info/127.0.0.1#5335 +ipset=/hentaisub.info/gfwlist +server=/cheapbeatsbydremall.com/127.0.0.1#5335 +ipset=/cheapbeatsbydremall.com/gfwlist +server=/muji.com/127.0.0.1#5335 +ipset=/muji.com/gfwlist +server=/macbookair.com.es/127.0.0.1#5335 +ipset=/macbookair.com.es/gfwlist +server=/iphone5.com/127.0.0.1#5335 +ipset=/iphone5.com/gfwlist +server=/rolsociety.org/127.0.0.1#5335 +ipset=/rolsociety.org/gfwlist +server=/digitalplayground.com/127.0.0.1#5335 +ipset=/digitalplayground.com/gfwlist +server=/2371tom.com/127.0.0.1#5335 +ipset=/2371tom.com/gfwlist +server=/google.mv/127.0.0.1#5335 +ipset=/google.mv/gfwlist +server=/apkpure.com/127.0.0.1#5335 +ipset=/apkpure.com/gfwlist +server=/fotolja.com/127.0.0.1#5335 +ipset=/fotolja.com/gfwlist +server=/nintendo-europe-sales.com/127.0.0.1#5335 +ipset=/nintendo-europe-sales.com/gfwlist +server=/jav-vr.net/127.0.0.1#5335 +ipset=/jav-vr.net/gfwlist +server=/updatetube.com/127.0.0.1#5335 +ipset=/updatetube.com/gfwlist +server=/kindleoasis.jp/127.0.0.1#5335 +ipset=/kindleoasis.jp/gfwlist +server=/durex.es/127.0.0.1#5335 +ipset=/durex.es/gfwlist +server=/nikeshoesinc.com/127.0.0.1#5335 +ipset=/nikeshoesinc.com/gfwlist +server=/getdropbox.com/127.0.0.1#5335 +ipset=/getdropbox.com/gfwlist +server=/bastillepost.com/127.0.0.1#5335 +ipset=/bastillepost.com/gfwlist +server=/ikea.ch/127.0.0.1#5335 +ipset=/ikea.ch/gfwlist +server=/ikea.gr/127.0.0.1#5335 +ipset=/ikea.gr/gfwlist +server=/camster.com/127.0.0.1#5335 +ipset=/camster.com/gfwlist +server=/trueanal.com/127.0.0.1#5335 +ipset=/trueanal.com/gfwlist +server=/foxsports.pe/127.0.0.1#5335 +ipset=/foxsports.pe/gfwlist +server=/milta1980.co.uk/127.0.0.1#5335 +ipset=/milta1980.co.uk/gfwlist +server=/indiangirlsclub.com/127.0.0.1#5335 +ipset=/indiangirlsclub.com/gfwlist +server=/justswallows.com/127.0.0.1#5335 +ipset=/justswallows.com/gfwlist +server=/bmw-motorrad.co/127.0.0.1#5335 +ipset=/bmw-motorrad.co/gfwlist +server=/google.hu/127.0.0.1#5335 +ipset=/google.hu/gfwlist +server=/sissy-university.com/127.0.0.1#5335 +ipset=/sissy-university.com/gfwlist +server=/bmw-connecteddrive.ru/127.0.0.1#5335 +ipset=/bmw-connecteddrive.ru/gfwlist +server=/hkbnes.net/127.0.0.1#5335 +ipset=/hkbnes.net/gfwlist +server=/hdouban.com/127.0.0.1#5335 +ipset=/hdouban.com/gfwlist +server=/dogspics.net/127.0.0.1#5335 +ipset=/dogspics.net/gfwlist +server=/avpanda.cc/127.0.0.1#5335 +ipset=/avpanda.cc/gfwlist +server=/oxfordwesternmusic.com/127.0.0.1#5335 +ipset=/oxfordwesternmusic.com/gfwlist +server=/disney.asia/127.0.0.1#5335 +ipset=/disney.asia/gfwlist +server=/scholar.google.com.au/127.0.0.1#5335 +ipset=/scholar.google.com.au/gfwlist +server=/bmw-museum.com/127.0.0.1#5335 +ipset=/bmw-museum.com/gfwlist +server=/foxgay.com/127.0.0.1#5335 +ipset=/foxgay.com/gfwlist +server=/gfpics.com/127.0.0.1#5335 +ipset=/gfpics.com/gfwlist +server=/vmwlabconnect.com/127.0.0.1#5335 +ipset=/vmwlabconnect.com/gfwlist +server=/indiansexpussy.com/127.0.0.1#5335 +ipset=/indiansexpussy.com/gfwlist +server=/t21ipau.nikkei.co.jp/127.0.0.1#5335 +ipset=/t21ipau.nikkei.co.jp/gfwlist +server=/kyodo-d.info/127.0.0.1#5335 +ipset=/kyodo-d.info/gfwlist +server=/qwant.it/127.0.0.1#5335 +ipset=/qwant.it/gfwlist +server=/ebay-cz.com/127.0.0.1#5335 +ipset=/ebay-cz.com/gfwlist +server=/mariadb.org/127.0.0.1#5335 +ipset=/mariadb.org/gfwlist +server=/mat6tube.com/127.0.0.1#5335 +ipset=/mat6tube.com/gfwlist +server=/acmvalidationsaws.com/127.0.0.1#5335 +ipset=/acmvalidationsaws.com/gfwlist +server=/hkbigman.net/127.0.0.1#5335 +ipset=/hkbigman.net/gfwlist +server=/beatsbydreheadphones-nz.com/127.0.0.1#5335 +ipset=/beatsbydreheadphones-nz.com/gfwlist +server=/scala-sbt.org/127.0.0.1#5335 +ipset=/scala-sbt.org/gfwlist +server=/appleiphone.net/127.0.0.1#5335 +ipset=/appleiphone.net/gfwlist +server=/3animalsextube.com/127.0.0.1#5335 +ipset=/3animalsextube.com/gfwlist +server=/macintoshsoftware.com/127.0.0.1#5335 +ipset=/macintoshsoftware.com/gfwlist +server=/onlyhentaistuff.com/127.0.0.1#5335 +ipset=/onlyhentaistuff.com/gfwlist +server=/sharizelvideos.com/127.0.0.1#5335 +ipset=/sharizelvideos.com/gfwlist +server=/indianporngirls.com/127.0.0.1#5335 +ipset=/indianporngirls.com/gfwlist +server=/scholar.google.lt/127.0.0.1#5335 +ipset=/scholar.google.lt/gfwlist +server=/minicaribbean.com/127.0.0.1#5335 +ipset=/minicaribbean.com/gfwlist +server=/vfsco.ch/127.0.0.1#5335 +ipset=/vfsco.ch/gfwlist +server=/javhard.org/127.0.0.1#5335 +ipset=/javhard.org/gfwlist +server=/adidas.ru/127.0.0.1#5335 +ipset=/adidas.ru/gfwlist +server=/yourfantasybeginsnow.com/127.0.0.1#5335 +ipset=/yourfantasybeginsnow.com/gfwlist +server=/milfpornpics.xxx/127.0.0.1#5335 +ipset=/milfpornpics.xxx/gfwlist +server=/mickey.tv/127.0.0.1#5335 +ipset=/mickey.tv/gfwlist +server=/bmw-diplomatic-sales.com/127.0.0.1#5335 +ipset=/bmw-diplomatic-sales.com/gfwlist +server=/appleid.hk/127.0.0.1#5335 +ipset=/appleid.hk/gfwlist +server=/paypal-photocard.com/127.0.0.1#5335 +ipset=/paypal-photocard.com/gfwlist +server=/misa-prod.s3.ap-northeast-1.amazonaws.com/127.0.0.1#5335 +ipset=/misa-prod.s3.ap-northeast-1.amazonaws.com/gfwlist +server=/infowars.com/127.0.0.1#5335 +ipset=/infowars.com/gfwlist +server=/lyzsxx.com/127.0.0.1#5335 +ipset=/lyzsxx.com/gfwlist +server=/bsw.jp/127.0.0.1#5335 +ipset=/bsw.jp/gfwlist +server=/4ertik.live/127.0.0.1#5335 +ipset=/4ertik.live/gfwlist +server=/gitlab.net/127.0.0.1#5335 +ipset=/gitlab.net/gfwlist +server=/kissjav.li/127.0.0.1#5335 +ipset=/kissjav.li/gfwlist +server=/kaob3.xyz/127.0.0.1#5335 +ipset=/kaob3.xyz/gfwlist +server=/tblop.com/127.0.0.1#5335 +ipset=/tblop.com/gfwlist +server=/oxfordscholarship.com/127.0.0.1#5335 +ipset=/oxfordscholarship.com/gfwlist +server=/wellmaturetube.com/127.0.0.1#5335 +ipset=/wellmaturetube.com/gfwlist +server=/porkahd.co/127.0.0.1#5335 +ipset=/porkahd.co/gfwlist +server=/strepsils.com.ph/127.0.0.1#5335 +ipset=/strepsils.com.ph/gfwlist +server=/minneapolisbmw.net/127.0.0.1#5335 +ipset=/minneapolisbmw.net/gfwlist +server=/the-japan-news.com/127.0.0.1#5335 +ipset=/the-japan-news.com/gfwlist +server=/pornogramxxx.com/127.0.0.1#5335 +ipset=/pornogramxxx.com/gfwlist +server=/ibb.co/127.0.0.1#5335 +ipset=/ibb.co/gfwlist +server=/nintendo.de/127.0.0.1#5335 +ipset=/nintendo.de/gfwlist +server=/spotifyjobs.com/127.0.0.1#5335 +ipset=/spotifyjobs.com/gfwlist +server=/canon.kz/127.0.0.1#5335 +ipset=/canon.kz/gfwlist +server=/theclyster.com/127.0.0.1#5335 +ipset=/theclyster.com/gfwlist +server=/youtube.ng/127.0.0.1#5335 +ipset=/youtube.ng/gfwlist +server=/ipns.co/127.0.0.1#5335 +ipset=/ipns.co/gfwlist +server=/microsoft.rs/127.0.0.1#5335 +ipset=/microsoft.rs/gfwlist +server=/enemasupplier.com/127.0.0.1#5335 +ipset=/enemasupplier.com/gfwlist +server=/beatsbydrecustomwireless.com/127.0.0.1#5335 +ipset=/beatsbydrecustomwireless.com/gfwlist +server=/google.co.ug/127.0.0.1#5335 +ipset=/google.co.ug/gfwlist +server=/mashaalradio.com/127.0.0.1#5335 +ipset=/mashaalradio.com/gfwlist +server=/wireless.radio/127.0.0.1#5335 +ipset=/wireless.radio/gfwlist +server=/vultr.com/127.0.0.1#5335 +ipset=/vultr.com/gfwlist +server=/nyti.ms/127.0.0.1#5335 +ipset=/nyti.ms/gfwlist +server=/renchead.com/127.0.0.1#5335 +ipset=/renchead.com/gfwlist +server=/azureiotsuite.com/127.0.0.1#5335 +ipset=/azureiotsuite.com/gfwlist +server=/i.jeded.com/127.0.0.1#5335 +ipset=/i.jeded.com/gfwlist +server=/swingers-homemade-videos.com/127.0.0.1#5335 +ipset=/swingers-homemade-videos.com/gfwlist +server=/visamiddleeast.com/127.0.0.1#5335 +ipset=/visamiddleeast.com/gfwlist +server=/banatal3arab.com/127.0.0.1#5335 +ipset=/banatal3arab.com/gfwlist +server=/proxyadult.org/127.0.0.1#5335 +ipset=/proxyadult.org/gfwlist +server=/visaluxuryhotelcollection.com.mx/127.0.0.1#5335 +ipset=/visaluxuryhotelcollection.com.mx/gfwlist +server=/gastrointestinalexam.com/127.0.0.1#5335 +ipset=/gastrointestinalexam.com/gfwlist +server=/imovie.eu/127.0.0.1#5335 +ipset=/imovie.eu/gfwlist +server=/wantmywife.com/127.0.0.1#5335 +ipset=/wantmywife.com/gfwlist +server=/avstar2.com/127.0.0.1#5335 +ipset=/avstar2.com/gfwlist +server=/dawngatechronicles.com/127.0.0.1#5335 +ipset=/dawngatechronicles.com/gfwlist +server=/ohsexotube.com/127.0.0.1#5335 +ipset=/ohsexotube.com/gfwlist +server=/facultyopinions.com/127.0.0.1#5335 +ipset=/facultyopinions.com/gfwlist +server=/azureedge.net/127.0.0.1#5335 +ipset=/azureedge.net/gfwlist +server=/faicbooc.com/127.0.0.1#5335 +ipset=/faicbooc.com/gfwlist +server=/cash.app/127.0.0.1#5335 +ipset=/cash.app/gfwlist +server=/applewatchedition.com/127.0.0.1#5335 +ipset=/applewatchedition.com/gfwlist +server=/filme2.xxx/127.0.0.1#5335 +ipset=/filme2.xxx/gfwlist +server=/dssott.com/127.0.0.1#5335 +ipset=/dssott.com/gfwlist +server=/duckmovie.com/127.0.0.1#5335 +ipset=/duckmovie.com/gfwlist +server=/earpod.net/127.0.0.1#5335 +ipset=/earpod.net/gfwlist +server=/ss7.app/127.0.0.1#5335 +ipset=/ss7.app/gfwlist +server=/ipfs.anonymize.com/127.0.0.1#5335 +ipset=/ipfs.anonymize.com/gfwlist +server=/megapornpics.com/127.0.0.1#5335 +ipset=/megapornpics.com/gfwlist +server=/ipodcleaner.com/127.0.0.1#5335 +ipset=/ipodcleaner.com/gfwlist +server=/facebof.com/127.0.0.1#5335 +ipset=/facebof.com/gfwlist +server=/apyarstorybooks.blogspot.com/127.0.0.1#5335 +ipset=/apyarstorybooks.blogspot.com/gfwlist +server=/activelearnprimary.com.au/127.0.0.1#5335 +ipset=/activelearnprimary.com.au/gfwlist +server=/deepfreeze.tech/127.0.0.1#5335 +ipset=/deepfreeze.tech/gfwlist +server=/swingersexorgy.com/127.0.0.1#5335 +ipset=/swingersexorgy.com/gfwlist +server=/leavinghpinc.com/127.0.0.1#5335 +ipset=/leavinghpinc.com/gfwlist +server=/foampositeshoes.com/127.0.0.1#5335 +ipset=/foampositeshoes.com/gfwlist +server=/pornadoo.com/127.0.0.1#5335 +ipset=/pornadoo.com/gfwlist +server=/ilecture.co.nz/127.0.0.1#5335 +ipset=/ilecture.co.nz/gfwlist +server=/volvotrucks.pe/127.0.0.1#5335 +ipset=/volvotrucks.pe/gfwlist +server=/office.com/127.0.0.1#5335 +ipset=/office.com/gfwlist +server=/pinterestmail.com/127.0.0.1#5335 +ipset=/pinterestmail.com/gfwlist +server=/immoral.jp/127.0.0.1#5335 +ipset=/immoral.jp/gfwlist +server=/visa.com.gt/127.0.0.1#5335 +ipset=/visa.com.gt/gfwlist +server=/bodyandsoul.com.au/127.0.0.1#5335 +ipset=/bodyandsoul.com.au/gfwlist +server=/veet.no/127.0.0.1#5335 +ipset=/veet.no/gfwlist +server=/premiumbooty.com/127.0.0.1#5335 +ipset=/premiumbooty.com/gfwlist +server=/nineteentube.com/127.0.0.1#5335 +ipset=/nineteentube.com/gfwlist +server=/adidas.at/127.0.0.1#5335 +ipset=/adidas.at/gfwlist +server=/saleblackfridaydrebeats.com/127.0.0.1#5335 +ipset=/saleblackfridaydrebeats.com/gfwlist +server=/youtube.mn/127.0.0.1#5335 +ipset=/youtube.mn/gfwlist +server=/paypal-activate.org/127.0.0.1#5335 +ipset=/paypal-activate.org/gfwlist +server=/icloud-isupport.com/127.0.0.1#5335 +ipset=/icloud-isupport.com/gfwlist +server=/south-plus.net/127.0.0.1#5335 +ipset=/south-plus.net/gfwlist +server=/foxsports.com.pe/127.0.0.1#5335 +ipset=/foxsports.com.pe/gfwlist +server=/mydirtyhobby.com/127.0.0.1#5335 +ipset=/mydirtyhobby.com/gfwlist +server=/adultgames18.com/127.0.0.1#5335 +ipset=/adultgames18.com/gfwlist +server=/internetexplorer.co/127.0.0.1#5335 +ipset=/internetexplorer.co/gfwlist +server=/ifontcloud.com/127.0.0.1#5335 +ipset=/ifontcloud.com/gfwlist +server=/strepsils.pt/127.0.0.1#5335 +ipset=/strepsils.pt/gfwlist +server=/darksidemagazine.com/127.0.0.1#5335 +ipset=/darksidemagazine.com/gfwlist +server=/crazyshit.com/127.0.0.1#5335 +ipset=/crazyshit.com/gfwlist +server=/bustymomsvideo.com/127.0.0.1#5335 +ipset=/bustymomsvideo.com/gfwlist +server=/archiveofourown.com/127.0.0.1#5335 +ipset=/archiveofourown.com/gfwlist +server=/kidsnikeshoes.com/127.0.0.1#5335 +ipset=/kidsnikeshoes.com/gfwlist +server=/macports.org/127.0.0.1#5335 +ipset=/macports.org/gfwlist +server=/wetplace.com/127.0.0.1#5335 +ipset=/wetplace.com/gfwlist +server=/eromanga-school.com/127.0.0.1#5335 +ipset=/eromanga-school.com/gfwlist +server=/babesbang.com/127.0.0.1#5335 +ipset=/babesbang.com/gfwlist +server=/alpherafinancialservices.in/127.0.0.1#5335 +ipset=/alpherafinancialservices.in/gfwlist +server=/mask.icloud.com/127.0.0.1#5335 +ipset=/mask.icloud.com/gfwlist +server=/photos18.com/127.0.0.1#5335 +ipset=/photos18.com/gfwlist +server=/gohentai.net/127.0.0.1#5335 +ipset=/gohentai.net/gfwlist +server=/venmo.info/127.0.0.1#5335 +ipset=/venmo.info/gfwlist +server=/mini.in/127.0.0.1#5335 +ipset=/mini.in/gfwlist +server=/yandex.fr/127.0.0.1#5335 +ipset=/yandex.fr/gfwlist +server=/dianapost.com/127.0.0.1#5335 +ipset=/dianapost.com/gfwlist +server=/grss-ieee.org/127.0.0.1#5335 +ipset=/grss-ieee.org/gfwlist +server=/fandom.zendesk.com/127.0.0.1#5335 +ipset=/fandom.zendesk.com/gfwlist +server=/escortrankings.uk/127.0.0.1#5335 +ipset=/escortrankings.uk/gfwlist +server=/ptzwx.com/127.0.0.1#5335 +ipset=/ptzwx.com/gfwlist +server=/strepsils.si/127.0.0.1#5335 +ipset=/strepsils.si/gfwlist +server=/uriminzokkiri.com/127.0.0.1#5335 +ipset=/uriminzokkiri.com/gfwlist +server=/as-hls-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/as-hls-uk-live.akamaized.net/gfwlist +server=/winudf.com/127.0.0.1#5335 +ipset=/winudf.com/gfwlist +server=/boylove.live/127.0.0.1#5335 +ipset=/boylove.live/gfwlist +server=/paypal-center.org/127.0.0.1#5335 +ipset=/paypal-center.org/gfwlist +server=/discordactivities.com/127.0.0.1#5335 +ipset=/discordactivities.com/gfwlist +server=/familymart.com.my/127.0.0.1#5335 +ipset=/familymart.com.my/gfwlist +server=/bmw-motorrad.pt/127.0.0.1#5335 +ipset=/bmw-motorrad.pt/gfwlist +server=/nikefind.com/127.0.0.1#5335 +ipset=/nikefind.com/gfwlist +server=/nintendoswitch.net/127.0.0.1#5335 +ipset=/nintendoswitch.net/gfwlist +server=/nicky.xxx/127.0.0.1#5335 +ipset=/nicky.xxx/gfwlist +server=/sxarab.top/127.0.0.1#5335 +ipset=/sxarab.top/gfwlist +server=/airsupportapp.com/127.0.0.1#5335 +ipset=/airsupportapp.com/gfwlist +server=/tati-log.com/127.0.0.1#5335 +ipset=/tati-log.com/gfwlist +server=/akatns.net/127.0.0.1#5335 +ipset=/akatns.net/gfwlist +server=/zhainanjidid.top/127.0.0.1#5335 +ipset=/zhainanjidid.top/gfwlist +server=/porngo.com/127.0.0.1#5335 +ipset=/porngo.com/gfwlist +server=/zeenews.com/127.0.0.1#5335 +ipset=/zeenews.com/gfwlist +server=/facebookcanadianelectionintegrityinitiative.com/127.0.0.1#5335 +ipset=/facebookcanadianelectionintegrityinitiative.com/gfwlist +server=/casquebeatsfracheter.com/127.0.0.1#5335 +ipset=/casquebeatsfracheter.com/gfwlist +server=/ibm.eu/127.0.0.1#5335 +ipset=/ibm.eu/gfwlist +server=/analscreen.com/127.0.0.1#5335 +ipset=/analscreen.com/gfwlist +server=/tube8.com/127.0.0.1#5335 +ipset=/tube8.com/gfwlist +server=/airwick.sk/127.0.0.1#5335 +ipset=/airwick.sk/gfwlist +server=/clco.cc/127.0.0.1#5335 +ipset=/clco.cc/gfwlist +server=/intel.ba/127.0.0.1#5335 +ipset=/intel.ba/gfwlist +server=/imgsmail.ru/127.0.0.1#5335 +ipset=/imgsmail.ru/gfwlist +server=/duckduckgo.com.mx/127.0.0.1#5335 +ipset=/duckduckgo.com.mx/gfwlist +server=/machogaytube.com/127.0.0.1#5335 +ipset=/machogaytube.com/gfwlist +server=/bitporno.com/127.0.0.1#5335 +ipset=/bitporno.com/gfwlist +server=/pearsoncmg.com/127.0.0.1#5335 +ipset=/pearsoncmg.com/gfwlist +server=/underlords.com/127.0.0.1#5335 +ipset=/underlords.com/gfwlist +server=/karger.com/127.0.0.1#5335 +ipset=/karger.com/gfwlist +server=/beatsdre.net/127.0.0.1#5335 +ipset=/beatsdre.net/gfwlist +server=/aebn.com/127.0.0.1#5335 +ipset=/aebn.com/gfwlist +server=/revenue-performance-management.com/127.0.0.1#5335 +ipset=/revenue-performance-management.com/gfwlist +server=/coithienthai.com/127.0.0.1#5335 +ipset=/coithienthai.com/gfwlist +server=/epochtimeshk.org/127.0.0.1#5335 +ipset=/epochtimeshk.org/gfwlist +server=/watch-porn.net/127.0.0.1#5335 +ipset=/watch-porn.net/gfwlist +server=/google.com.ag/127.0.0.1#5335 +ipset=/google.com.ag/gfwlist +server=/yahoo.com.gt/127.0.0.1#5335 +ipset=/yahoo.com.gt/gfwlist +server=/mini.com.pl/127.0.0.1#5335 +ipset=/mini.com.pl/gfwlist +server=/miniso.by/127.0.0.1#5335 +ipset=/miniso.by/gfwlist +server=/beatsbydres-shop.com/127.0.0.1#5335 +ipset=/beatsbydres-shop.com/gfwlist +server=/pokemon.com/127.0.0.1#5335 +ipset=/pokemon.com/gfwlist +server=/nijifeti.com/127.0.0.1#5335 +ipset=/nijifeti.com/gfwlist +server=/videoindexer.ai/127.0.0.1#5335 +ipset=/videoindexer.ai/gfwlist +server=/youporner.eu/127.0.0.1#5335 +ipset=/youporner.eu/gfwlist +server=/wmflabs.org/127.0.0.1#5335 +ipset=/wmflabs.org/gfwlist +server=/widevine.com/127.0.0.1#5335 +ipset=/widevine.com/gfwlist +server=/realestate.com.au/127.0.0.1#5335 +ipset=/realestate.com.au/gfwlist +server=/calgon.tv/127.0.0.1#5335 +ipset=/calgon.tv/gfwlist +server=/javsex.to/127.0.0.1#5335 +ipset=/javsex.to/gfwlist +server=/mylf.com/127.0.0.1#5335 +ipset=/mylf.com/gfwlist +server=/fm4.jp/127.0.0.1#5335 +ipset=/fm4.jp/gfwlist +server=/ipod.com.tw/127.0.0.1#5335 +ipset=/ipod.com.tw/gfwlist +server=/zaobao.sg/127.0.0.1#5335 +ipset=/zaobao.sg/gfwlist +server=/xbox360.eu/127.0.0.1#5335 +ipset=/xbox360.eu/gfwlist +server=/swisssign-group.com/127.0.0.1#5335 +ipset=/swisssign-group.com/gfwlist +server=/askubuntu.com/127.0.0.1#5335 +ipset=/askubuntu.com/gfwlist +server=/nfsc.global/127.0.0.1#5335 +ipset=/nfsc.global/gfwlist +server=/sociolotron.com/127.0.0.1#5335 +ipset=/sociolotron.com/gfwlist +server=/myfonts.net/127.0.0.1#5335 +ipset=/myfonts.net/gfwlist +server=/krux.com/127.0.0.1#5335 +ipset=/krux.com/gfwlist +server=/github.community/127.0.0.1#5335 +ipset=/github.community/gfwlist +server=/gputechconf.co.kr/127.0.0.1#5335 +ipset=/gputechconf.co.kr/gfwlist +server=/morganclaypool.com/127.0.0.1#5335 +ipset=/morganclaypool.com/gfwlist +server=/xn--6eup7j.net/127.0.0.1#5335 +ipset=/xn--6eup7j.net/gfwlist +server=/youtube.com.hn/127.0.0.1#5335 +ipset=/youtube.com.hn/gfwlist +server=/packer.io/127.0.0.1#5335 +ipset=/packer.io/gfwlist +server=/bethsoft.com/127.0.0.1#5335 +ipset=/bethsoft.com/gfwlist +server=/epikporn.com/127.0.0.1#5335 +ipset=/epikporn.com/gfwlist +server=/filmporno.it/127.0.0.1#5335 +ipset=/filmporno.it/gfwlist +server=/moez-m.com/127.0.0.1#5335 +ipset=/moez-m.com/gfwlist +server=/microsoftgamestack.com/127.0.0.1#5335 +ipset=/microsoftgamestack.com/gfwlist +server=/9to5terminal.com/127.0.0.1#5335 +ipset=/9to5terminal.com/gfwlist +server=/anilos.com/127.0.0.1#5335 +ipset=/anilos.com/gfwlist +server=/travelex.it/127.0.0.1#5335 +ipset=/travelex.it/gfwlist +server=/asproexapi.com/127.0.0.1#5335 +ipset=/asproexapi.com/gfwlist +server=/yahoo.com.lb/127.0.0.1#5335 +ipset=/yahoo.com.lb/gfwlist +server=/isca-speech.org/127.0.0.1#5335 +ipset=/isca-speech.org/gfwlist +server=/icloud.fr/127.0.0.1#5335 +ipset=/icloud.fr/gfwlist +server=/v8project.org/127.0.0.1#5335 +ipset=/v8project.org/gfwlist +server=/avgigi.com/127.0.0.1#5335 +ipset=/avgigi.com/gfwlist +server=/pornomineiro.com/127.0.0.1#5335 +ipset=/pornomineiro.com/gfwlist +server=/veet.us/127.0.0.1#5335 +ipset=/veet.us/gfwlist +server=/yiqiedoushiganggangkaishi.org/127.0.0.1#5335 +ipset=/yiqiedoushiganggangkaishi.org/gfwlist +server=/porno800.com/127.0.0.1#5335 +ipset=/porno800.com/gfwlist +server=/yarnpkg.com/127.0.0.1#5335 +ipset=/yarnpkg.com/gfwlist +server=/visa.mn/127.0.0.1#5335 +ipset=/visa.mn/gfwlist +server=/adidas.co.in/127.0.0.1#5335 +ipset=/adidas.co.in/gfwlist +server=/cc18.tv/127.0.0.1#5335 +ipset=/cc18.tv/gfwlist +server=/sky.com/127.0.0.1#5335 +ipset=/sky.com/gfwlist +server=/facebook.org/127.0.0.1#5335 +ipset=/facebook.org/gfwlist +server=/beatsbydrdrestore.com/127.0.0.1#5335 +ipset=/beatsbydrdrestore.com/gfwlist +server=/insider-intelligence.com/127.0.0.1#5335 +ipset=/insider-intelligence.com/gfwlist +server=/gclubs.com/127.0.0.1#5335 +ipset=/gclubs.com/gfwlist +server=/sustainthesound.com/127.0.0.1#5335 +ipset=/sustainthesound.com/gfwlist +server=/budatt.com/127.0.0.1#5335 +ipset=/budatt.com/gfwlist +server=/kilmeadeandfriends.com/127.0.0.1#5335 +ipset=/kilmeadeandfriends.com/gfwlist +server=/nikenews.com/127.0.0.1#5335 +ipset=/nikenews.com/gfwlist +server=/bestporncomix.com/127.0.0.1#5335 +ipset=/bestporncomix.com/gfwlist +server=/onenote.com/127.0.0.1#5335 +ipset=/onenote.com/gfwlist +server=/javtorrent.me/127.0.0.1#5335 +ipset=/javtorrent.me/gfwlist +server=/bmwmass.com/127.0.0.1#5335 +ipset=/bmwmass.com/gfwlist +server=/facebookpokerchips.info/127.0.0.1#5335 +ipset=/facebookpokerchips.info/gfwlist +server=/researchkit.tv/127.0.0.1#5335 +ipset=/researchkit.tv/gfwlist +server=/free3dadultgames.com/127.0.0.1#5335 +ipset=/free3dadultgames.com/gfwlist +server=/facebookstudios.org/127.0.0.1#5335 +ipset=/facebookstudios.org/gfwlist +server=/zeplin.io/127.0.0.1#5335 +ipset=/zeplin.io/gfwlist +server=/ourshemales.com/127.0.0.1#5335 +ipset=/ourshemales.com/gfwlist +server=/beeg.com/127.0.0.1#5335 +ipset=/beeg.com/gfwlist +server=/macbookair.co.uk/127.0.0.1#5335 +ipset=/macbookair.co.uk/gfwlist +server=/milfs-now.com/127.0.0.1#5335 +ipset=/milfs-now.com/gfwlist +server=/dengiamerika.com/127.0.0.1#5335 +ipset=/dengiamerika.com/gfwlist +server=/sex0098.com/127.0.0.1#5335 +ipset=/sex0098.com/gfwlist +server=/discordpartygames.com/127.0.0.1#5335 +ipset=/discordpartygames.com/gfwlist +server=/twitterinc.com/127.0.0.1#5335 +ipset=/twitterinc.com/gfwlist +server=/miniso.my/127.0.0.1#5335 +ipset=/miniso.my/gfwlist +server=/pearsonassessment.be/127.0.0.1#5335 +ipset=/pearsonassessment.be/gfwlist +server=/wujieliulan.com/127.0.0.1#5335 +ipset=/wujieliulan.com/gfwlist +server=/onsalekey.com/127.0.0.1#5335 +ipset=/onsalekey.com/gfwlist +server=/issitedownrightnow.com/127.0.0.1#5335 +ipset=/issitedownrightnow.com/gfwlist +server=/disneysrivieraresort.com/127.0.0.1#5335 +ipset=/disneysrivieraresort.com/gfwlist +server=/canon.lv/127.0.0.1#5335 +ipset=/canon.lv/gfwlist +server=/directvmonitoring.com/127.0.0.1#5335 +ipset=/directvmonitoring.com/gfwlist +server=/strepsils.at/127.0.0.1#5335 +ipset=/strepsils.at/gfwlist +server=/kenyanporn.blogspot.com/127.0.0.1#5335 +ipset=/kenyanporn.blogspot.com/gfwlist +server=/amplifyapp.com/127.0.0.1#5335 +ipset=/amplifyapp.com/gfwlist +server=/lge.co.kr/127.0.0.1#5335 +ipset=/lge.co.kr/gfwlist +server=/beatsbydrsmonsterinusa.com/127.0.0.1#5335 +ipset=/beatsbydrsmonsterinusa.com/gfwlist +server=/pornocaserotube.com/127.0.0.1#5335 +ipset=/pornocaserotube.com/gfwlist +server=/q13.com/127.0.0.1#5335 +ipset=/q13.com/gfwlist +server=/adult-home-videos.com/127.0.0.1#5335 +ipset=/adult-home-videos.com/gfwlist +server=/pornofilmlist.com/127.0.0.1#5335 +ipset=/pornofilmlist.com/gfwlist +server=/steamcommunity.com/127.0.0.1#5335 +ipset=/steamcommunity.com/gfwlist +server=/onlineporn-vids.com/127.0.0.1#5335 +ipset=/onlineporn-vids.com/gfwlist +server=/airwick.cl/127.0.0.1#5335 +ipset=/airwick.cl/gfwlist +server=/ebayads.net/127.0.0.1#5335 +ipset=/ebayads.net/gfwlist +server=/amazon-jp-recruiting.com/127.0.0.1#5335 +ipset=/amazon-jp-recruiting.com/gfwlist +server=/worldsex.com/127.0.0.1#5335 +ipset=/worldsex.com/gfwlist +server=/bbbaihu.vip/127.0.0.1#5335 +ipset=/bbbaihu.vip/gfwlist +server=/haho.moe/127.0.0.1#5335 +ipset=/haho.moe/gfwlist +server=/bloomsburydesignlibrary.com/127.0.0.1#5335 +ipset=/bloomsburydesignlibrary.com/gfwlist +server=/pearson-intl.com/127.0.0.1#5335 +ipset=/pearson-intl.com/gfwlist +server=/facbook.com/127.0.0.1#5335 +ipset=/facbook.com/gfwlist +server=/bmw-motorrad.jp/127.0.0.1#5335 +ipset=/bmw-motorrad.jp/gfwlist +server=/hqdesexo.com/127.0.0.1#5335 +ipset=/hqdesexo.com/gfwlist +server=/suruga-ya.com/127.0.0.1#5335 +ipset=/suruga-ya.com/gfwlist +server=/usertrust.com/127.0.0.1#5335 +ipset=/usertrust.com/gfwlist +server=/rakuten.com.tw/127.0.0.1#5335 +ipset=/rakuten.com.tw/gfwlist +server=/xxxfile.org/127.0.0.1#5335 +ipset=/xxxfile.org/gfwlist +server=/hamsterporn.tv/127.0.0.1#5335 +ipset=/hamsterporn.tv/gfwlist +server=/isgame365.cc/127.0.0.1#5335 +ipset=/isgame365.cc/gfwlist +server=/googleoptimize.com/127.0.0.1#5335 +ipset=/googleoptimize.com/gfwlist +server=/garotaporno.com/127.0.0.1#5335 +ipset=/garotaporno.com/gfwlist +server=/intel.pe/127.0.0.1#5335 +ipset=/intel.pe/gfwlist +server=/beatsbydreshops.net/127.0.0.1#5335 +ipset=/beatsbydreshops.net/gfwlist +server=/nikecraft.com/127.0.0.1#5335 +ipset=/nikecraft.com/gfwlist +server=/boylabs.net/127.0.0.1#5335 +ipset=/boylabs.net/gfwlist +server=/hpsmartstage.com/127.0.0.1#5335 +ipset=/hpsmartstage.com/gfwlist +server=/stark-verlag.ch/127.0.0.1#5335 +ipset=/stark-verlag.ch/gfwlist +server=/visadpsonline.us/127.0.0.1#5335 +ipset=/visadpsonline.us/gfwlist +server=/menshin-channel.com/127.0.0.1#5335 +ipset=/menshin-channel.com/gfwlist +server=/sonyprotechnosupport.co.jp/127.0.0.1#5335 +ipset=/sonyprotechnosupport.co.jp/gfwlist +server=/applepaysupplies.com/127.0.0.1#5335 +ipset=/applepaysupplies.com/gfwlist +server=/devcon.org/127.0.0.1#5335 +ipset=/devcon.org/gfwlist +server=/thomsonreuters.co.kr/127.0.0.1#5335 +ipset=/thomsonreuters.co.kr/gfwlist +server=/apple.fr/127.0.0.1#5335 +ipset=/apple.fr/gfwlist +server=/macbookpro.com/127.0.0.1#5335 +ipset=/macbookpro.com/gfwlist +server=/ebayopen.com/127.0.0.1#5335 +ipset=/ebayopen.com/gfwlist +server=/bmw.de/127.0.0.1#5335 +ipset=/bmw.de/gfwlist +server=/copro.pw/127.0.0.1#5335 +ipset=/copro.pw/gfwlist +server=/volvotrucks.al/127.0.0.1#5335 +ipset=/volvotrucks.al/gfwlist +server=/rule34.xxx/127.0.0.1#5335 +ipset=/rule34.xxx/gfwlist +server=/facfebook.com/127.0.0.1#5335 +ipset=/facfebook.com/gfwlist +server=/xnxx2.pro/127.0.0.1#5335 +ipset=/xnxx2.pro/gfwlist +server=/edisebay.com/127.0.0.1#5335 +ipset=/edisebay.com/gfwlist +server=/yahoo.as/127.0.0.1#5335 +ipset=/yahoo.as/gfwlist +server=/bmw.sn/127.0.0.1#5335 +ipset=/bmw.sn/gfwlist +server=/yahoo.fr/127.0.0.1#5335 +ipset=/yahoo.fr/gfwlist +server=/bbcmedia.co.uk/127.0.0.1#5335 +ipset=/bbcmedia.co.uk/gfwlist +server=/paypal-communication.com/127.0.0.1#5335 +ipset=/paypal-communication.com/gfwlist +server=/rumah123.com/127.0.0.1#5335 +ipset=/rumah123.com/gfwlist +server=/zoosexfarm.com/127.0.0.1#5335 +ipset=/zoosexfarm.com/gfwlist +server=/icloude.com/127.0.0.1#5335 +ipset=/icloude.com/gfwlist +server=/youpornlist.com/127.0.0.1#5335 +ipset=/youpornlist.com/gfwlist +server=/strikinglycdn.com/127.0.0.1#5335 +ipset=/strikinglycdn.com/gfwlist +server=/sbitravelcard.com/127.0.0.1#5335 +ipset=/sbitravelcard.com/gfwlist +server=/ipodnano.com/127.0.0.1#5335 +ipset=/ipodnano.com/gfwlist +server=/disneybaby.com/127.0.0.1#5335 +ipset=/disneybaby.com/gfwlist +server=/veet.ca/127.0.0.1#5335 +ipset=/veet.ca/gfwlist +server=/xboxone.eu/127.0.0.1#5335 +ipset=/xboxone.eu/gfwlist +server=/pokemon-sunmoon.com/127.0.0.1#5335 +ipset=/pokemon-sunmoon.com/gfwlist +server=/mdn.mozillademos.org/127.0.0.1#5335 +ipset=/mdn.mozillademos.org/gfwlist +server=/aliveipc.com/127.0.0.1#5335 +ipset=/aliveipc.com/gfwlist +server=/homemadefucktube.com/127.0.0.1#5335 +ipset=/homemadefucktube.com/gfwlist +server=/vanish.si/127.0.0.1#5335 +ipset=/vanish.si/gfwlist +server=/cherrypimps.com/127.0.0.1#5335 +ipset=/cherrypimps.com/gfwlist +server=/ikea.com.mx/127.0.0.1#5335 +ipset=/ikea.com.mx/gfwlist +server=/beatsbydre-outlet.com/127.0.0.1#5335 +ipset=/beatsbydre-outlet.com/gfwlist +server=/porn4days.cc/127.0.0.1#5335 +ipset=/porn4days.cc/gfwlist +server=/hentai-for.net/127.0.0.1#5335 +ipset=/hentai-for.net/gfwlist +server=/behance.net/127.0.0.1#5335 +ipset=/behance.net/gfwlist +server=/brotli.org/127.0.0.1#5335 +ipset=/brotli.org/gfwlist +server=/newsamerica.com/127.0.0.1#5335 +ipset=/newsamerica.com/gfwlist +server=/customizedbeatsdre.com/127.0.0.1#5335 +ipset=/customizedbeatsdre.com/gfwlist +server=/xwebporn.com/127.0.0.1#5335 +ipset=/xwebporn.com/gfwlist +server=/medium.systems/127.0.0.1#5335 +ipset=/medium.systems/gfwlist +server=/ciscolive.com/127.0.0.1#5335 +ipset=/ciscolive.com/gfwlist +server=/hkej.com/127.0.0.1#5335 +ipset=/hkej.com/gfwlist +server=/windowsuem.com/127.0.0.1#5335 +ipset=/windowsuem.com/gfwlist +server=/bonedathome.com/127.0.0.1#5335 +ipset=/bonedathome.com/gfwlist +server=/mochajs.org/127.0.0.1#5335 +ipset=/mochajs.org/gfwlist +server=/link.theplatform.com/127.0.0.1#5335 +ipset=/link.theplatform.com/gfwlist +server=/omniture.com/127.0.0.1#5335 +ipset=/omniture.com/gfwlist +server=/microsoftnews.org/127.0.0.1#5335 +ipset=/microsoftnews.org/gfwlist +server=/bmwdealerdirect.com/127.0.0.1#5335 +ipset=/bmwdealerdirect.com/gfwlist +server=/mach-os.com/127.0.0.1#5335 +ipset=/mach-os.com/gfwlist +server=/mini.nl/127.0.0.1#5335 +ipset=/mini.nl/gfwlist +server=/mastercard.com.lb/127.0.0.1#5335 +ipset=/mastercard.com.lb/gfwlist +server=/limeteensex.com/127.0.0.1#5335 +ipset=/limeteensex.com/gfwlist +server=/bloombergindustry.com/127.0.0.1#5335 +ipset=/bloombergindustry.com/gfwlist +server=/nurgay.to/127.0.0.1#5335 +ipset=/nurgay.to/gfwlist +server=/netflixdnstest4.com/127.0.0.1#5335 +ipset=/netflixdnstest4.com/gfwlist +server=/canon.com.mt/127.0.0.1#5335 +ipset=/canon.com.mt/gfwlist +server=/hentaifox.com/127.0.0.1#5335 +ipset=/hentaifox.com/gfwlist +server=/breasthealthinfo.com/127.0.0.1#5335 +ipset=/breasthealthinfo.com/gfwlist +server=/thecuckoldporn.com/127.0.0.1#5335 +ipset=/thecuckoldporn.com/gfwlist +server=/drebeats-solo.com/127.0.0.1#5335 +ipset=/drebeats-solo.com/gfwlist +server=/visa.is/127.0.0.1#5335 +ipset=/visa.is/gfwlist +server=/youtubego.co.id/127.0.0.1#5335 +ipset=/youtubego.co.id/gfwlist +server=/finishwin.be/127.0.0.1#5335 +ipset=/finishwin.be/gfwlist +server=/cheapbeatsbydrefau.com/127.0.0.1#5335 +ipset=/cheapbeatsbydrefau.com/gfwlist +server=/b3bos.com/127.0.0.1#5335 +ipset=/b3bos.com/gfwlist +server=/vdoav.com/127.0.0.1#5335 +ipset=/vdoav.com/gfwlist +server=/adultartsites.com/127.0.0.1#5335 +ipset=/adultartsites.com/gfwlist +server=/alphabet.com.pt/127.0.0.1#5335 +ipset=/alphabet.com.pt/gfwlist +server=/ebayclassifiedsgroup.info/127.0.0.1#5335 +ipset=/ebayclassifiedsgroup.info/gfwlist +server=/applepay.tv/127.0.0.1#5335 +ipset=/applepay.tv/gfwlist +server=/arabysexy.mobi/127.0.0.1#5335 +ipset=/arabysexy.mobi/gfwlist +server=/mastercard.co.ke/127.0.0.1#5335 +ipset=/mastercard.co.ke/gfwlist +server=/beatsep.net/127.0.0.1#5335 +ipset=/beatsep.net/gfwlist +server=/beatsbydreol.com/127.0.0.1#5335 +ipset=/beatsbydreol.com/gfwlist +server=/twifuli.com/127.0.0.1#5335 +ipset=/twifuli.com/gfwlist +server=/youtube.com.pe/127.0.0.1#5335 +ipset=/youtube.com.pe/gfwlist +server=/sony.com.vn/127.0.0.1#5335 +ipset=/sony.com.vn/gfwlist +server=/beats-soaho.com/127.0.0.1#5335 +ipset=/beats-soaho.com/gfwlist +server=/bitvise.com/127.0.0.1#5335 +ipset=/bitvise.com/gfwlist +server=/bmw.co.kr/127.0.0.1#5335 +ipset=/bmw.co.kr/gfwlist +server=/xvideos5.com.br/127.0.0.1#5335 +ipset=/xvideos5.com.br/gfwlist +server=/nijieronavi.com/127.0.0.1#5335 +ipset=/nijieronavi.com/gfwlist +server=/adelaidenow.com.au/127.0.0.1#5335 +ipset=/adelaidenow.com.au/gfwlist +server=/discountedporn.com/127.0.0.1#5335 +ipset=/discountedporn.com/gfwlist +server=/igniteseurope.com/127.0.0.1#5335 +ipset=/igniteseurope.com/gfwlist +server=/redporno.cz/127.0.0.1#5335 +ipset=/redporno.cz/gfwlist +server=/starbucks.com.bn/127.0.0.1#5335 +ipset=/starbucks.com.bn/gfwlist +server=/xnostars.com/127.0.0.1#5335 +ipset=/xnostars.com/gfwlist +server=/icloud.is/127.0.0.1#5335 +ipset=/icloud.is/gfwlist +server=/bbwmilftube.com/127.0.0.1#5335 +ipset=/bbwmilftube.com/gfwlist +server=/milflove.live/127.0.0.1#5335 +ipset=/milflove.live/gfwlist +server=/r10s.com/127.0.0.1#5335 +ipset=/r10s.com/gfwlist +server=/icloud.fi/127.0.0.1#5335 +ipset=/icloud.fi/gfwlist +server=/facebookdusexe.org/127.0.0.1#5335 +ipset=/facebookdusexe.org/gfwlist +server=/mobile01.com/127.0.0.1#5335 +ipset=/mobile01.com/gfwlist +server=/googletagmanager.com/127.0.0.1#5335 +ipset=/googletagmanager.com/gfwlist +server=/visaicsdirect.com/127.0.0.1#5335 +ipset=/visaicsdirect.com/gfwlist +server=/ciscotr.com/127.0.0.1#5335 +ipset=/ciscotr.com/gfwlist +server=/beatsbydressale.com/127.0.0.1#5335 +ipset=/beatsbydressale.com/gfwlist +server=/sextubish.com/127.0.0.1#5335 +ipset=/sextubish.com/gfwlist +server=/volvotrucks.be/127.0.0.1#5335 +ipset=/volvotrucks.be/gfwlist +server=/dechamora.com/127.0.0.1#5335 +ipset=/dechamora.com/gfwlist +server=/move-free.net/127.0.0.1#5335 +ipset=/move-free.net/gfwlist +server=/pornteen123.com/127.0.0.1#5335 +ipset=/pornteen123.com/gfwlist +server=/applewallet.tv/127.0.0.1#5335 +ipset=/applewallet.tv/gfwlist +server=/sony.com.br/127.0.0.1#5335 +ipset=/sony.com.br/gfwlist +server=/pornfidelity.com/127.0.0.1#5335 +ipset=/pornfidelity.com/gfwlist +server=/hyu2.com/127.0.0.1#5335 +ipset=/hyu2.com/gfwlist +server=/directvmetropolisil.com/127.0.0.1#5335 +ipset=/directvmetropolisil.com/gfwlist +server=/detentiongirls.com/127.0.0.1#5335 +ipset=/detentiongirls.com/gfwlist +server=/bbg.gov/127.0.0.1#5335 +ipset=/bbg.gov/gfwlist +server=/ikea.no/127.0.0.1#5335 +ipset=/ikea.no/gfwlist +server=/java.com/127.0.0.1#5335 +ipset=/java.com/gfwlist +server=/javdoe.com/127.0.0.1#5335 +ipset=/javdoe.com/gfwlist +server=/applereach.com/127.0.0.1#5335 +ipset=/applereach.com/gfwlist +server=/erotic-photos.net/127.0.0.1#5335 +ipset=/erotic-photos.net/gfwlist +server=/volvotrucks.es/127.0.0.1#5335 +ipset=/volvotrucks.es/gfwlist +server=/kodi.wiki/127.0.0.1#5335 +ipset=/kodi.wiki/gfwlist +server=/oppai-doga.info/127.0.0.1#5335 +ipset=/oppai-doga.info/gfwlist +server=/nintendo.it/127.0.0.1#5335 +ipset=/nintendo.it/gfwlist +server=/blogspot.re/127.0.0.1#5335 +ipset=/blogspot.re/gfwlist +server=/cmpaas.com/127.0.0.1#5335 +ipset=/cmpaas.com/gfwlist +server=/xvideoz.win/127.0.0.1#5335 +ipset=/xvideoz.win/gfwlist +server=/beatsbydrecheaper.com/127.0.0.1#5335 +ipset=/beatsbydrecheaper.com/gfwlist +server=/attwirelessonline.com/127.0.0.1#5335 +ipset=/attwirelessonline.com/gfwlist +server=/nbc.co/127.0.0.1#5335 +ipset=/nbc.co/gfwlist +server=/yahoo.co.jp/127.0.0.1#5335 +ipset=/yahoo.co.jp/gfwlist +server=/applepay.rs/127.0.0.1#5335 +ipset=/applepay.rs/gfwlist +server=/amazon.red/127.0.0.1#5335 +ipset=/amazon.red/gfwlist +server=/happymeal.com.au/127.0.0.1#5335 +ipset=/happymeal.com.au/gfwlist +server=/maturesexual.com/127.0.0.1#5335 +ipset=/maturesexual.com/gfwlist +server=/intel.la/127.0.0.1#5335 +ipset=/intel.la/gfwlist +server=/fruitycams.com/127.0.0.1#5335 +ipset=/fruitycams.com/gfwlist +server=/bridgestonecomercial.com.ar/127.0.0.1#5335 +ipset=/bridgestonecomercial.com.ar/gfwlist +server=/multipornfor.me/127.0.0.1#5335 +ipset=/multipornfor.me/gfwlist +server=/wix.com/127.0.0.1#5335 +ipset=/wix.com/gfwlist +server=/blogspot.com/127.0.0.1#5335 +ipset=/blogspot.com/gfwlist +server=/sambaporno.com/127.0.0.1#5335 +ipset=/sambaporno.com/gfwlist +server=/aria.ms/127.0.0.1#5335 +ipset=/aria.ms/gfwlist +server=/applestore.bg/127.0.0.1#5335 +ipset=/applestore.bg/gfwlist +server=/awsthinkbox.com/127.0.0.1#5335 +ipset=/awsthinkbox.com/gfwlist +server=/asahishimbun.sc.omtrdc.net/127.0.0.1#5335 +ipset=/asahishimbun.sc.omtrdc.net/gfwlist +server=/thisvid.com/127.0.0.1#5335 +ipset=/thisvid.com/gfwlist +server=/facebooksz.com/127.0.0.1#5335 +ipset=/facebooksz.com/gfwlist +server=/paypallabs.com/127.0.0.1#5335 +ipset=/paypallabs.com/gfwlist +server=/eachpay.net/127.0.0.1#5335 +ipset=/eachpay.net/gfwlist +server=/cheapbeatsbydresale.com/127.0.0.1#5335 +ipset=/cheapbeatsbydresale.com/gfwlist +server=/paypal-login.org/127.0.0.1#5335 +ipset=/paypal-login.org/gfwlist +server=/momtarts3d.com/127.0.0.1#5335 +ipset=/momtarts3d.com/gfwlist +server=/jable.org/127.0.0.1#5335 +ipset=/jable.org/gfwlist +server=/espressif.com/127.0.0.1#5335 +ipset=/espressif.com/gfwlist +server=/analcamshow.com/127.0.0.1#5335 +ipset=/analcamshow.com/gfwlist +server=/adobe-video-partner-finder.com/127.0.0.1#5335 +ipset=/adobe-video-partner-finder.com/gfwlist +server=/dev-theguardian.com/127.0.0.1#5335 +ipset=/dev-theguardian.com/gfwlist +server=/dropbox-dns.com/127.0.0.1#5335 +ipset=/dropbox-dns.com/gfwlist +server=/videosdesexo.com.br/127.0.0.1#5335 +ipset=/videosdesexo.com.br/gfwlist +server=/85tube.com/127.0.0.1#5335 +ipset=/85tube.com/gfwlist +server=/ebonyinlove.com/127.0.0.1#5335 +ipset=/ebonyinlove.com/gfwlist +server=/fox.tv/127.0.0.1#5335 +ipset=/fox.tv/gfwlist +server=/tristatebmw.com/127.0.0.1#5335 +ipset=/tristatebmw.com/gfwlist +server=/escobarvip.it/127.0.0.1#5335 +ipset=/escobarvip.it/gfwlist +server=/apigee.com/127.0.0.1#5335 +ipset=/apigee.com/gfwlist +server=/bang-movies.com/127.0.0.1#5335 +ipset=/bang-movies.com/gfwlist +server=/marvelparty.net/127.0.0.1#5335 +ipset=/marvelparty.net/gfwlist +server=/cloupia.com/127.0.0.1#5335 +ipset=/cloupia.com/gfwlist +server=/huffingtonpost.com.mx/127.0.0.1#5335 +ipset=/huffingtonpost.com.mx/gfwlist +server=/bmw-connecteddrive.co.za/127.0.0.1#5335 +ipset=/bmw-connecteddrive.co.za/gfwlist +server=/shopee.fr/127.0.0.1#5335 +ipset=/shopee.fr/gfwlist +server=/cython.org/127.0.0.1#5335 +ipset=/cython.org/gfwlist +server=/bintray.com/127.0.0.1#5335 +ipset=/bintray.com/gfwlist +server=/imagecurl.com/127.0.0.1#5335 +ipset=/imagecurl.com/gfwlist +server=/xxxgames.games/127.0.0.1#5335 +ipset=/xxxgames.games/gfwlist +server=/pornhubselect.com/127.0.0.1#5335 +ipset=/pornhubselect.com/gfwlist +server=/zoosexnet.com/127.0.0.1#5335 +ipset=/zoosexnet.com/gfwlist +server=/igetnaughty.com/127.0.0.1#5335 +ipset=/igetnaughty.com/gfwlist +server=/aporntv.com/127.0.0.1#5335 +ipset=/aporntv.com/gfwlist +server=/clojure.org/127.0.0.1#5335 +ipset=/clojure.org/gfwlist +server=/riotgames.com/127.0.0.1#5335 +ipset=/riotgames.com/gfwlist +server=/python.org/127.0.0.1#5335 +ipset=/python.org/gfwlist +server=/ikea.co.jp/127.0.0.1#5335 +ipset=/ikea.co.jp/gfwlist +server=/blogspot.co.id/127.0.0.1#5335 +ipset=/blogspot.co.id/gfwlist +server=/1to1computing.com.au/127.0.0.1#5335 +ipset=/1to1computing.com.au/gfwlist +server=/jerkdolls.com/127.0.0.1#5335 +ipset=/jerkdolls.com/gfwlist +server=/milfmovs.com/127.0.0.1#5335 +ipset=/milfmovs.com/gfwlist +server=/vanishcentroamerica.com/127.0.0.1#5335 +ipset=/vanishcentroamerica.com/gfwlist +server=/dansmovies.com/127.0.0.1#5335 +ipset=/dansmovies.com/gfwlist +server=/epochhk.com/127.0.0.1#5335 +ipset=/epochhk.com/gfwlist +server=/gotraffic.net/127.0.0.1#5335 +ipset=/gotraffic.net/gfwlist +server=/1classtube.com/127.0.0.1#5335 +ipset=/1classtube.com/gfwlist +server=/drebeats-monsterusa.com/127.0.0.1#5335 +ipset=/drebeats-monsterusa.com/gfwlist +server=/epochtimes.com.ua/127.0.0.1#5335 +ipset=/epochtimes.com.ua/gfwlist +server=/beatsbydrebeatsby.com/127.0.0.1#5335 +ipset=/beatsbydrebeatsby.com/gfwlist +server=/billmelater.net/127.0.0.1#5335 +ipset=/billmelater.net/gfwlist +server=/abeatsbydrdre.com/127.0.0.1#5335 +ipset=/abeatsbydrdre.com/gfwlist +server=/sex.com/127.0.0.1#5335 +ipset=/sex.com/gfwlist +server=/wzlthw.com/127.0.0.1#5335 +ipset=/wzlthw.com/gfwlist +server=/tsundora.com/127.0.0.1#5335 +ipset=/tsundora.com/gfwlist +server=/drebeatsstudio2013.com/127.0.0.1#5335 +ipset=/drebeatsstudio2013.com/gfwlist +server=/88kkn.com/127.0.0.1#5335 +ipset=/88kkn.com/gfwlist +server=/analqts.com/127.0.0.1#5335 +ipset=/analqts.com/gfwlist +server=/twinktube.sexy/127.0.0.1#5335 +ipset=/twinktube.sexy/gfwlist +server=/4club.com/127.0.0.1#5335 +ipset=/4club.com/gfwlist +server=/nikeit.com/127.0.0.1#5335 +ipset=/nikeit.com/gfwlist +server=/hdpornmax.net/127.0.0.1#5335 +ipset=/hdpornmax.net/gfwlist +server=/p-events-delivery.akamaized.net/127.0.0.1#5335 +ipset=/p-events-delivery.akamaized.net/gfwlist +server=/guangming.com.my/127.0.0.1#5335 +ipset=/guangming.com.my/gfwlist +server=/microsoftnews.cc/127.0.0.1#5335 +ipset=/microsoftnews.cc/gfwlist +server=/next.com/127.0.0.1#5335 +ipset=/next.com/gfwlist +server=/nicolepeters.com/127.0.0.1#5335 +ipset=/nicolepeters.com/gfwlist +server=/quicktime.eu/127.0.0.1#5335 +ipset=/quicktime.eu/gfwlist +server=/bigcocker.com/127.0.0.1#5335 +ipset=/bigcocker.com/gfwlist +server=/cherrypanpan.com/127.0.0.1#5335 +ipset=/cherrypanpan.com/gfwlist +server=/hdxnxx.xxx/127.0.0.1#5335 +ipset=/hdxnxx.xxx/gfwlist +server=/cheapbeatsla.com/127.0.0.1#5335 +ipset=/cheapbeatsla.com/gfwlist +server=/nbys1.tv/127.0.0.1#5335 +ipset=/nbys1.tv/gfwlist +server=/blaoshi.cc/127.0.0.1#5335 +ipset=/blaoshi.cc/gfwlist +server=/aboutamazon.jp/127.0.0.1#5335 +ipset=/aboutamazon.jp/gfwlist +server=/bb33.net/127.0.0.1#5335 +ipset=/bb33.net/gfwlist +server=/xnxx.net/127.0.0.1#5335 +ipset=/xnxx.net/gfwlist +server=/disney.no/127.0.0.1#5335 +ipset=/disney.no/gfwlist +server=/sci-hub.se/127.0.0.1#5335 +ipset=/sci-hub.se/gfwlist +server=/pornobuzz.net/127.0.0.1#5335 +ipset=/pornobuzz.net/gfwlist +server=/webcamjackers.com/127.0.0.1#5335 +ipset=/webcamjackers.com/gfwlist +server=/headphones-outlet-online.com/127.0.0.1#5335 +ipset=/headphones-outlet-online.com/gfwlist +server=/microsoft.is/127.0.0.1#5335 +ipset=/microsoft.is/gfwlist +server=/starfox.com/127.0.0.1#5335 +ipset=/starfox.com/gfwlist +server=/tabooporn.tv/127.0.0.1#5335 +ipset=/tabooporn.tv/gfwlist +server=/adobeoobe.com/127.0.0.1#5335 +ipset=/adobeoobe.com/gfwlist +server=/adobeku.com/127.0.0.1#5335 +ipset=/adobeku.com/gfwlist +server=/nakedamateurmilf.com/127.0.0.1#5335 +ipset=/nakedamateurmilf.com/gfwlist +server=/daindianporn.com/127.0.0.1#5335 +ipset=/daindianporn.com/gfwlist +server=/limedia.tw/127.0.0.1#5335 +ipset=/limedia.tw/gfwlist +server=/syhacked.com/127.0.0.1#5335 +ipset=/syhacked.com/gfwlist +server=/fedoraforum.org/127.0.0.1#5335 +ipset=/fedoraforum.org/gfwlist +server=/msftnet.org/127.0.0.1#5335 +ipset=/msftnet.org/gfwlist +server=/facebookenespanol.com/127.0.0.1#5335 +ipset=/facebookenespanol.com/gfwlist +server=/67maoab.com/127.0.0.1#5335 +ipset=/67maoab.com/gfwlist +server=/miniso-au.com/127.0.0.1#5335 +ipset=/miniso-au.com/gfwlist +server=/xxxwow.net/127.0.0.1#5335 +ipset=/xxxwow.net/gfwlist +server=/donkparty.com/127.0.0.1#5335 +ipset=/donkparty.com/gfwlist +server=/paypal-excelinvoicing.com/127.0.0.1#5335 +ipset=/paypal-excelinvoicing.com/gfwlist +server=/fuckmaturepussy.com/127.0.0.1#5335 +ipset=/fuckmaturepussy.com/gfwlist +server=/freesexgames.games/127.0.0.1#5335 +ipset=/freesexgames.games/gfwlist +server=/xn--cck4d8b3009a.com/127.0.0.1#5335 +ipset=/xn--cck4d8b3009a.com/gfwlist +server=/marketingcloud.com/127.0.0.1#5335 +ipset=/marketingcloud.com/gfwlist +server=/hdfreeporn.net/127.0.0.1#5335 +ipset=/hdfreeporn.net/gfwlist +server=/volvotruckcenter.dk/127.0.0.1#5335 +ipset=/volvotruckcenter.dk/gfwlist +server=/gcld-line.com/127.0.0.1#5335 +ipset=/gcld-line.com/gfwlist +server=/bluekai.com/127.0.0.1#5335 +ipset=/bluekai.com/gfwlist +server=/videostravestis.xxx/127.0.0.1#5335 +ipset=/videostravestis.xxx/gfwlist +server=/bayvoice.net/127.0.0.1#5335 +ipset=/bayvoice.net/gfwlist +server=/needforspeedtherun.com/127.0.0.1#5335 +ipset=/needforspeedtherun.com/gfwlist +server=/aljazeera.com/127.0.0.1#5335 +ipset=/aljazeera.com/gfwlist +server=/188channel.com/127.0.0.1#5335 +ipset=/188channel.com/gfwlist +server=/cpz.to/127.0.0.1#5335 +ipset=/cpz.to/gfwlist +server=/vod-sub-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vod-sub-uk-live.akamaized.net/gfwlist +server=/googleapps.com/127.0.0.1#5335 +ipset=/googleapps.com/gfwlist +server=/famousnudes.com/127.0.0.1#5335 +ipset=/famousnudes.com/gfwlist +server=/all3dsexpics.com/127.0.0.1#5335 +ipset=/all3dsexpics.com/gfwlist +server=/rectovaginalexam.com/127.0.0.1#5335 +ipset=/rectovaginalexam.com/gfwlist +server=/tiktokv.com/127.0.0.1#5335 +ipset=/tiktokv.com/gfwlist +server=/harpercollinsspeakersbureau.com/127.0.0.1#5335 +ipset=/harpercollinsspeakersbureau.com/gfwlist +server=/hentainanime.com/127.0.0.1#5335 +ipset=/hentainanime.com/gfwlist +server=/dlercloud.com/127.0.0.1#5335 +ipset=/dlercloud.com/gfwlist +server=/issquareup.com/127.0.0.1#5335 +ipset=/issquareup.com/gfwlist +server=/smartcommunitiescoalition.com/127.0.0.1#5335 +ipset=/smartcommunitiescoalition.com/gfwlist +server=/jjdong7.com/127.0.0.1#5335 +ipset=/jjdong7.com/gfwlist +server=/cheapmonsterbeatsusa.us/127.0.0.1#5335 +ipset=/cheapmonsterbeatsusa.us/gfwlist +server=/epochtimes.ru/127.0.0.1#5335 +ipset=/epochtimes.ru/gfwlist +server=/myfistingporn.com/127.0.0.1#5335 +ipset=/myfistingporn.com/gfwlist +server=/directtvreviews.com/127.0.0.1#5335 +ipset=/directtvreviews.com/gfwlist +server=/gelbooru.com/127.0.0.1#5335 +ipset=/gelbooru.com/gfwlist +server=/volvotrucks.ge/127.0.0.1#5335 +ipset=/volvotrucks.ge/gfwlist +server=/mortein.com.br/127.0.0.1#5335 +ipset=/mortein.com.br/gfwlist +server=/1watchmygf.com/127.0.0.1#5335 +ipset=/1watchmygf.com/gfwlist +server=/adwords.com/127.0.0.1#5335 +ipset=/adwords.com/gfwlist +server=/bmw-motorrad.cl/127.0.0.1#5335 +ipset=/bmw-motorrad.cl/gfwlist +server=/bentobox.tv/127.0.0.1#5335 +ipset=/bentobox.tv/gfwlist +server=/qckprn.com/127.0.0.1#5335 +ipset=/qckprn.com/gfwlist +server=/pornpander.com/127.0.0.1#5335 +ipset=/pornpander.com/gfwlist +server=/paypal-database.us/127.0.0.1#5335 +ipset=/paypal-database.us/gfwlist +server=/pornolab.net/127.0.0.1#5335 +ipset=/pornolab.net/gfwlist +server=/bnbstatic.com/127.0.0.1#5335 +ipset=/bnbstatic.com/gfwlist +server=/googlecert.net/127.0.0.1#5335 +ipset=/googlecert.net/gfwlist +server=/foxsportsflorida.com/127.0.0.1#5335 +ipset=/foxsportsflorida.com/gfwlist +server=/bloomberglp.com/127.0.0.1#5335 +ipset=/bloomberglp.com/gfwlist +server=/livexxx.me/127.0.0.1#5335 +ipset=/livexxx.me/gfwlist +server=/bmw-motorrad.fr/127.0.0.1#5335 +ipset=/bmw-motorrad.fr/gfwlist +server=/intel.it/127.0.0.1#5335 +ipset=/intel.it/gfwlist +server=/cuckoldingwifey.com/127.0.0.1#5335 +ipset=/cuckoldingwifey.com/gfwlist +server=/sohcradio.com/127.0.0.1#5335 +ipset=/sohcradio.com/gfwlist +server=/realclear.com/127.0.0.1#5335 +ipset=/realclear.com/gfwlist +server=/google.co.uz/127.0.0.1#5335 +ipset=/google.co.uz/gfwlist +server=/durexukraine.com/127.0.0.1#5335 +ipset=/durexukraine.com/gfwlist +server=/finishinfo.com.au/127.0.0.1#5335 +ipset=/finishinfo.com.au/gfwlist +server=/bmw-connecteddrive.com.au/127.0.0.1#5335 +ipset=/bmw-connecteddrive.com.au/gfwlist +server=/stxmosquito.com/127.0.0.1#5335 +ipset=/stxmosquito.com/gfwlist +server=/bloombergtax1.com/127.0.0.1#5335 +ipset=/bloombergtax1.com/gfwlist +server=/bustysammieblack.com/127.0.0.1#5335 +ipset=/bustysammieblack.com/gfwlist +server=/whoreslag.com/127.0.0.1#5335 +ipset=/whoreslag.com/gfwlist +server=/www-paypal.us/127.0.0.1#5335 +ipset=/www-paypal.us/gfwlist +server=/openthread.io/127.0.0.1#5335 +ipset=/openthread.io/gfwlist +server=/blowjobqueens.net/127.0.0.1#5335 +ipset=/blowjobqueens.net/gfwlist +server=/foxweatherwatch.com/127.0.0.1#5335 +ipset=/foxweatherwatch.com/gfwlist +server=/ipadair.tw/127.0.0.1#5335 +ipset=/ipadair.tw/gfwlist +server=/walmart-content.com/127.0.0.1#5335 +ipset=/walmart-content.com/gfwlist +server=/sirenxxxstudios.com/127.0.0.1#5335 +ipset=/sirenxxxstudios.com/gfwlist +server=/attwifi.com/127.0.0.1#5335 +ipset=/attwifi.com/gfwlist +server=/paypal-communications.com/127.0.0.1#5335 +ipset=/paypal-communications.com/gfwlist +server=/manoramanews.com/127.0.0.1#5335 +ipset=/manoramanews.com/gfwlist +server=/realgfporn.com/127.0.0.1#5335 +ipset=/realgfporn.com/gfwlist +server=/nikesportswear.com/127.0.0.1#5335 +ipset=/nikesportswear.com/gfwlist +server=/porno365.website/127.0.0.1#5335 +ipset=/porno365.website/gfwlist +server=/yahoo.com.do/127.0.0.1#5335 +ipset=/yahoo.com.do/gfwlist +server=/anacams.com/127.0.0.1#5335 +ipset=/anacams.com/gfwlist +server=/bestbuyrewards.com/127.0.0.1#5335 +ipset=/bestbuyrewards.com/gfwlist +server=/facebooklivestaging.org/127.0.0.1#5335 +ipset=/facebooklivestaging.org/gfwlist +server=/backdoorlesbians.com/127.0.0.1#5335 +ipset=/backdoorlesbians.com/gfwlist +server=/hentaiblue.com/127.0.0.1#5335 +ipset=/hentaiblue.com/gfwlist +server=/managedpki.com/127.0.0.1#5335 +ipset=/managedpki.com/gfwlist +server=/beascoremodel.com/127.0.0.1#5335 +ipset=/beascoremodel.com/gfwlist +server=/alpherafinance.com.hk/127.0.0.1#5335 +ipset=/alpherafinance.com.hk/gfwlist +server=/mini-oman.com/127.0.0.1#5335 +ipset=/mini-oman.com/gfwlist +server=/porngogo.supertop-100.com/127.0.0.1#5335 +ipset=/porngogo.supertop-100.com/gfwlist +server=/nintendo.pt/127.0.0.1#5335 +ipset=/nintendo.pt/gfwlist +server=/dollarphotosclub.com/127.0.0.1#5335 +ipset=/dollarphotosclub.com/gfwlist +server=/hot-sex-tube.com/127.0.0.1#5335 +ipset=/hot-sex-tube.com/gfwlist +server=/szabadeuropa.hu/127.0.0.1#5335 +ipset=/szabadeuropa.hu/gfwlist +server=/verisign.asia/127.0.0.1#5335 +ipset=/verisign.asia/gfwlist +server=/footstockings.com/127.0.0.1#5335 +ipset=/footstockings.com/gfwlist +server=/finishinfo.ru/127.0.0.1#5335 +ipset=/finishinfo.ru/gfwlist +server=/beatsaudios.net/127.0.0.1#5335 +ipset=/beatsaudios.net/gfwlist +server=/definebabe.com/127.0.0.1#5335 +ipset=/definebabe.com/gfwlist +server=/sankeishop.jp/127.0.0.1#5335 +ipset=/sankeishop.jp/gfwlist +server=/scientificlinux.org/127.0.0.1#5335 +ipset=/scientificlinux.org/gfwlist +server=/lolshop.co.kr/127.0.0.1#5335 +ipset=/lolshop.co.kr/gfwlist +server=/researchandcare.org/127.0.0.1#5335 +ipset=/researchandcare.org/gfwlist +server=/lovebeatsdr.com/127.0.0.1#5335 +ipset=/lovebeatsdr.com/gfwlist +server=/bmw-motorcycles.vn/127.0.0.1#5335 +ipset=/bmw-motorcycles.vn/gfwlist +server=/phxbmw.com/127.0.0.1#5335 +ipset=/phxbmw.com/gfwlist +server=/18push.com/127.0.0.1#5335 +ipset=/18push.com/gfwlist +server=/hpeurope.com/127.0.0.1#5335 +ipset=/hpeurope.com/gfwlist +server=/hardcore-sex-filme.com/127.0.0.1#5335 +ipset=/hardcore-sex-filme.com/gfwlist +server=/bobvoyeur.com/127.0.0.1#5335 +ipset=/bobvoyeur.com/gfwlist +server=/istripper.com/127.0.0.1#5335 +ipset=/istripper.com/gfwlist +server=/canon.hr/127.0.0.1#5335 +ipset=/canon.hr/gfwlist +server=/youngpornonly.com/127.0.0.1#5335 +ipset=/youngpornonly.com/gfwlist +server=/apple.it/127.0.0.1#5335 +ipset=/apple.it/gfwlist +server=/volvobuses.ma/127.0.0.1#5335 +ipset=/volvobuses.ma/gfwlist +server=/nintendo.com.hk/127.0.0.1#5335 +ipset=/nintendo.com.hk/gfwlist +server=/shopifysvc.com/127.0.0.1#5335 +ipset=/shopifysvc.com/gfwlist +server=/blackboxgames.com/127.0.0.1#5335 +ipset=/blackboxgames.com/gfwlist +server=/1pondo.tv/127.0.0.1#5335 +ipset=/1pondo.tv/gfwlist +server=/xn--mts47c3w9b1qr.net/127.0.0.1#5335 +ipset=/xn--mts47c3w9b1qr.net/gfwlist +server=/jade-net-home.com/127.0.0.1#5335 +ipset=/jade-net-home.com/gfwlist +server=/scholar.google.pl/127.0.0.1#5335 +ipset=/scholar.google.pl/gfwlist +server=/deepfreeze.co.uk/127.0.0.1#5335 +ipset=/deepfreeze.co.uk/gfwlist +server=/yahoo.co.tz/127.0.0.1#5335 +ipset=/yahoo.co.tz/gfwlist +server=/teatroporno.com/127.0.0.1#5335 +ipset=/teatroporno.com/gfwlist +server=/businesswebwise.com/127.0.0.1#5335 +ipset=/businesswebwise.com/gfwlist +server=/drdreprobeatssale.com/127.0.0.1#5335 +ipset=/drdreprobeatssale.com/gfwlist +server=/lokinet.org/127.0.0.1#5335 +ipset=/lokinet.org/gfwlist +server=/book18.org/127.0.0.1#5335 +ipset=/book18.org/gfwlist +server=/fapforfun.net/127.0.0.1#5335 +ipset=/fapforfun.net/gfwlist +server=/hot-cartoon.com/127.0.0.1#5335 +ipset=/hot-cartoon.com/gfwlist +server=/scival.com/127.0.0.1#5335 +ipset=/scival.com/gfwlist +server=/science.com/127.0.0.1#5335 +ipset=/science.com/gfwlist +server=/impala-media-production.s3.amazonaws.com/127.0.0.1#5335 +ipset=/impala-media-production.s3.amazonaws.com/gfwlist +server=/lol-europe.com/127.0.0.1#5335 +ipset=/lol-europe.com/gfwlist +server=/repe21.com/127.0.0.1#5335 +ipset=/repe21.com/gfwlist +server=/teacherfucksteens.com/127.0.0.1#5335 +ipset=/teacherfucksteens.com/gfwlist +server=/bmw.lc/127.0.0.1#5335 +ipset=/bmw.lc/gfwlist +server=/babesnetwork.com/127.0.0.1#5335 +ipset=/babesnetwork.com/gfwlist +server=/tube18.sex/127.0.0.1#5335 +ipset=/tube18.sex/gfwlist +server=/bmw-motorrad-now-or-never.com/127.0.0.1#5335 +ipset=/bmw-motorrad-now-or-never.com/gfwlist +server=/gab.com/127.0.0.1#5335 +ipset=/gab.com/gfwlist +server=/pornoorzel.com/127.0.0.1#5335 +ipset=/pornoorzel.com/gfwlist +server=/sego8.co/127.0.0.1#5335 +ipset=/sego8.co/gfwlist +server=/yaddal.tv/127.0.0.1#5335 +ipset=/yaddal.tv/gfwlist +server=/nikeplus.com/127.0.0.1#5335 +ipset=/nikeplus.com/gfwlist +server=/xn--m1abbbgjah.lol/127.0.0.1#5335 +ipset=/xn--m1abbbgjah.lol/gfwlist +server=/devopsassessment.net/127.0.0.1#5335 +ipset=/devopsassessment.net/gfwlist +server=/yahoo.hu/127.0.0.1#5335 +ipset=/yahoo.hu/gfwlist +server=/berlincompanions.com/127.0.0.1#5335 +ipset=/berlincompanions.com/gfwlist +server=/intel.vu/127.0.0.1#5335 +ipset=/intel.vu/gfwlist +server=/bmw-tahiti.com/127.0.0.1#5335 +ipset=/bmw-tahiti.com/gfwlist +server=/drdreheadphonekey.com/127.0.0.1#5335 +ipset=/drdreheadphonekey.com/gfwlist +server=/yahoo.com.kw/127.0.0.1#5335 +ipset=/yahoo.com.kw/gfwlist +server=/ebay.sg/127.0.0.1#5335 +ipset=/ebay.sg/gfwlist +server=/workstations.tv/127.0.0.1#5335 +ipset=/workstations.tv/gfwlist +server=/fcaebook.com/127.0.0.1#5335 +ipset=/fcaebook.com/gfwlist +server=/dicela.com/127.0.0.1#5335 +ipset=/dicela.com/gfwlist +server=/see.xxx/127.0.0.1#5335 +ipset=/see.xxx/gfwlist +server=/nytchina.com/127.0.0.1#5335 +ipset=/nytchina.com/gfwlist +server=/nikefr.com/127.0.0.1#5335 +ipset=/nikefr.com/gfwlist +server=/pdxbmw.com/127.0.0.1#5335 +ipset=/pdxbmw.com/gfwlist +server=/mmonsterheadphones.net/127.0.0.1#5335 +ipset=/mmonsterheadphones.net/gfwlist +server=/tiltbrush.com/127.0.0.1#5335 +ipset=/tiltbrush.com/gfwlist +server=/scholar.google.co.jp/127.0.0.1#5335 +ipset=/scholar.google.co.jp/gfwlist +server=/likuoo.video/127.0.0.1#5335 +ipset=/likuoo.video/gfwlist +server=/ftop.ru/127.0.0.1#5335 +ipset=/ftop.ru/gfwlist +server=/powerbeats2wireless.com/127.0.0.1#5335 +ipset=/powerbeats2wireless.com/gfwlist +server=/infolinker.com.tw/127.0.0.1#5335 +ipset=/infolinker.com.tw/gfwlist +server=/minimarkham.com/127.0.0.1#5335 +ipset=/minimarkham.com/gfwlist +server=/gittigidiyorsikayet.com/127.0.0.1#5335 +ipset=/gittigidiyorsikayet.com/gfwlist +server=/apple.sa/127.0.0.1#5335 +ipset=/apple.sa/gfwlist +server=/heartbreakers.gallery/127.0.0.1#5335 +ipset=/heartbreakers.gallery/gfwlist +server=/xxx.com/127.0.0.1#5335 +ipset=/xxx.com/gfwlist +server=/inkedravens.com/127.0.0.1#5335 +ipset=/inkedravens.com/gfwlist +server=/porndude2.com/127.0.0.1#5335 +ipset=/porndude2.com/gfwlist +server=/dirctv.com/127.0.0.1#5335 +ipset=/dirctv.com/gfwlist +server=/cams.com/127.0.0.1#5335 +ipset=/cams.com/gfwlist +server=/ecgapp.net/127.0.0.1#5335 +ipset=/ecgapp.net/gfwlist +server=/tastyblacks.com/127.0.0.1#5335 +ipset=/tastyblacks.com/gfwlist +server=/laowang.vip/127.0.0.1#5335 +ipset=/laowang.vip/gfwlist +server=/apple.kr/127.0.0.1#5335 +ipset=/apple.kr/gfwlist +server=/extensionworkshop.com/127.0.0.1#5335 +ipset=/extensionworkshop.com/gfwlist +server=/teraperk.com/127.0.0.1#5335 +ipset=/teraperk.com/gfwlist +server=/aljazeera.net/127.0.0.1#5335 +ipset=/aljazeera.net/gfwlist +server=/allhen.online/127.0.0.1#5335 +ipset=/allhen.online/gfwlist +server=/airwick.at/127.0.0.1#5335 +ipset=/airwick.at/gfwlist +server=/csgfnmdb.com/127.0.0.1#5335 +ipset=/csgfnmdb.com/gfwlist +server=/firewire.eu/127.0.0.1#5335 +ipset=/firewire.eu/gfwlist +server=/mobileme.dk/127.0.0.1#5335 +ipset=/mobileme.dk/gfwlist +server=/bmw-qatar.com/127.0.0.1#5335 +ipset=/bmw-qatar.com/gfwlist +server=/trust-provider.com/127.0.0.1#5335 +ipset=/trust-provider.com/gfwlist +server=/jav.dog/127.0.0.1#5335 +ipset=/jav.dog/gfwlist +server=/publicpornvideo.com/127.0.0.1#5335 +ipset=/publicpornvideo.com/gfwlist +server=/eablackbox.com/127.0.0.1#5335 +ipset=/eablackbox.com/gfwlist +server=/mypornfox.com/127.0.0.1#5335 +ipset=/mypornfox.com/gfwlist +server=/desiraesworld.com/127.0.0.1#5335 +ipset=/desiraesworld.com/gfwlist +server=/appule.com/127.0.0.1#5335 +ipset=/appule.com/gfwlist +server=/esmatube.com/127.0.0.1#5335 +ipset=/esmatube.com/gfwlist +server=/bmwgroup-plants.com/127.0.0.1#5335 +ipset=/bmwgroup-plants.com/gfwlist +server=/ntdtv.org/127.0.0.1#5335 +ipset=/ntdtv.org/gfwlist +server=/wwwmfacebook.com/127.0.0.1#5335 +ipset=/wwwmfacebook.com/gfwlist +server=/edu-research.org/127.0.0.1#5335 +ipset=/edu-research.org/gfwlist +server=/watchjavonline.com/127.0.0.1#5335 +ipset=/watchjavonline.com/gfwlist +server=/ptapjmp.com/127.0.0.1#5335 +ipset=/ptapjmp.com/gfwlist +server=/stream-mydirtyhobby.biz/127.0.0.1#5335 +ipset=/stream-mydirtyhobby.biz/gfwlist +server=/love7.xyz/127.0.0.1#5335 +ipset=/love7.xyz/gfwlist +server=/bdsmlibrary.com/127.0.0.1#5335 +ipset=/bdsmlibrary.com/gfwlist +server=/dart.dev/127.0.0.1#5335 +ipset=/dart.dev/gfwlist +server=/nakedasiansex.com/127.0.0.1#5335 +ipset=/nakedasiansex.com/gfwlist +server=/branchportal.com/127.0.0.1#5335 +ipset=/branchportal.com/gfwlist +server=/pornobrasil.org/127.0.0.1#5335 +ipset=/pornobrasil.org/gfwlist +server=/xvideosbrasil.com/127.0.0.1#5335 +ipset=/xvideosbrasil.com/gfwlist +server=/sexoquente.blog/127.0.0.1#5335 +ipset=/sexoquente.blog/gfwlist +server=/fb.watch/127.0.0.1#5335 +ipset=/fb.watch/gfwlist +server=/mono-project.com/127.0.0.1#5335 +ipset=/mono-project.com/gfwlist +server=/facebooa.com/127.0.0.1#5335 +ipset=/facebooa.com/gfwlist +server=/pinterest.com.au/127.0.0.1#5335 +ipset=/pinterest.com.au/gfwlist +server=/hornybutt.com/127.0.0.1#5335 +ipset=/hornybutt.com/gfwlist +server=/rokutime.com/127.0.0.1#5335 +ipset=/rokutime.com/gfwlist +server=/binads.com/127.0.0.1#5335 +ipset=/binads.com/gfwlist +server=/applewatch.wang/127.0.0.1#5335 +ipset=/applewatch.wang/gfwlist +server=/rtings.com/127.0.0.1#5335 +ipset=/rtings.com/gfwlist +server=/compass.is/127.0.0.1#5335 +ipset=/compass.is/gfwlist +server=/xn--tkry91n.com/127.0.0.1#5335 +ipset=/xn--tkry91n.com/gfwlist +server=/sextvx.com/127.0.0.1#5335 +ipset=/sextvx.com/gfwlist +server=/renzhe.cloud/127.0.0.1#5335 +ipset=/renzhe.cloud/gfwlist +server=/faceid99.net/127.0.0.1#5335 +ipset=/faceid99.net/gfwlist +server=/amz123.com/127.0.0.1#5335 +ipset=/amz123.com/gfwlist +server=/icuminside.com/127.0.0.1#5335 +ipset=/icuminside.com/gfwlist +server=/hypodermic-injection.com/127.0.0.1#5335 +ipset=/hypodermic-injection.com/gfwlist +server=/beatsbydrdresale.net/127.0.0.1#5335 +ipset=/beatsbydrdresale.net/gfwlist +server=/homemadepornclip.com/127.0.0.1#5335 +ipset=/homemadepornclip.com/gfwlist +server=/camwhores.video/127.0.0.1#5335 +ipset=/camwhores.video/gfwlist +server=/mmaaxx.com/127.0.0.1#5335 +ipset=/mmaaxx.com/gfwlist +server=/xxxporn.su/127.0.0.1#5335 +ipset=/xxxporn.su/gfwlist +server=/2013cheapestbeats.com/127.0.0.1#5335 +ipset=/2013cheapestbeats.com/gfwlist +server=/twitter.jp/127.0.0.1#5335 +ipset=/twitter.jp/gfwlist +server=/nike-uk.com/127.0.0.1#5335 +ipset=/nike-uk.com/gfwlist +server=/google.cat/127.0.0.1#5335 +ipset=/google.cat/gfwlist +server=/dazn-api.com/127.0.0.1#5335 +ipset=/dazn-api.com/gfwlist +server=/statics-marketingsites-eas-ms-com.akamaized.net/127.0.0.1#5335 +ipset=/statics-marketingsites-eas-ms-com.akamaized.net/gfwlist +server=/celebritystorysite.com/127.0.0.1#5335 +ipset=/celebritystorysite.com/gfwlist +server=/fuck55.net/127.0.0.1#5335 +ipset=/fuck55.net/gfwlist +server=/icevirtuallibrary.com/127.0.0.1#5335 +ipset=/icevirtuallibrary.com/gfwlist +server=/mastercard.lu/127.0.0.1#5335 +ipset=/mastercard.lu/gfwlist +server=/fbrpms.com/127.0.0.1#5335 +ipset=/fbrpms.com/gfwlist +server=/linkedin.at/127.0.0.1#5335 +ipset=/linkedin.at/gfwlist +server=/gettyimages.hk/127.0.0.1#5335 +ipset=/gettyimages.hk/gfwlist +server=/fontbook.com/127.0.0.1#5335 +ipset=/fontbook.com/gfwlist +server=/money-link.com.tw/127.0.0.1#5335 +ipset=/money-link.com.tw/gfwlist +server=/naked.com/127.0.0.1#5335 +ipset=/naked.com/gfwlist +server=/fox.com/127.0.0.1#5335 +ipset=/fox.com/gfwlist +server=/bmw.mq/127.0.0.1#5335 +ipset=/bmw.mq/gfwlist +server=/best-sex-games.com/127.0.0.1#5335 +ipset=/best-sex-games.com/gfwlist +server=/blackandstacked.com/127.0.0.1#5335 +ipset=/blackandstacked.com/gfwlist +server=/ebaymotors.org/127.0.0.1#5335 +ipset=/ebaymotors.org/gfwlist +server=/dirtydoglinks.com/127.0.0.1#5335 +ipset=/dirtydoglinks.com/gfwlist +server=/shooshtime.com/127.0.0.1#5335 +ipset=/shooshtime.com/gfwlist +server=/n3ro.wtf/127.0.0.1#5335 +ipset=/n3ro.wtf/gfwlist +server=/joyclub.de/127.0.0.1#5335 +ipset=/joyclub.de/gfwlist +server=/drebeatspill.com/127.0.0.1#5335 +ipset=/drebeatspill.com/gfwlist +server=/bmw.mn/127.0.0.1#5335 +ipset=/bmw.mn/gfwlist +server=/ebayshop.com/127.0.0.1#5335 +ipset=/ebayshop.com/gfwlist +server=/yandex.lt/127.0.0.1#5335 +ipset=/yandex.lt/gfwlist +server=/estudio360.com.co/127.0.0.1#5335 +ipset=/estudio360.com.co/gfwlist +server=/stxmosquitoproject.org/127.0.0.1#5335 +ipset=/stxmosquitoproject.org/gfwlist +server=/hentaiheroes.com/127.0.0.1#5335 +ipset=/hentaiheroes.com/gfwlist +server=/clickserver.googleads.com/127.0.0.1#5335 +ipset=/clickserver.googleads.com/gfwlist +server=/ipod.no/127.0.0.1#5335 +ipset=/ipod.no/gfwlist +server=/tubeenema.com/127.0.0.1#5335 +ipset=/tubeenema.com/gfwlist +server=/singtaobooks.com/127.0.0.1#5335 +ipset=/singtaobooks.com/gfwlist +server=/marketexecutive.net/127.0.0.1#5335 +ipset=/marketexecutive.net/gfwlist +server=/veet.ro/127.0.0.1#5335 +ipset=/veet.ro/gfwlist +server=/javgg.net/127.0.0.1#5335 +ipset=/javgg.net/gfwlist +server=/starwars.com/127.0.0.1#5335 +ipset=/starwars.com/gfwlist +server=/camwhores.tv/127.0.0.1#5335 +ipset=/camwhores.tv/gfwlist +server=/embs.org/127.0.0.1#5335 +ipset=/embs.org/gfwlist +server=/openmidas.com/127.0.0.1#5335 +ipset=/openmidas.com/gfwlist +server=/disney-studio.com/127.0.0.1#5335 +ipset=/disney-studio.com/gfwlist +server=/fakings.com/127.0.0.1#5335 +ipset=/fakings.com/gfwlist +server=/bmw.com.uy/127.0.0.1#5335 +ipset=/bmw.com.uy/gfwlist +server=/freexxxporn.org/127.0.0.1#5335 +ipset=/freexxxporn.org/gfwlist +server=/xxxhubvideos.com/127.0.0.1#5335 +ipset=/xxxhubvideos.com/gfwlist +server=/dartsearch.net/127.0.0.1#5335 +ipset=/dartsearch.net/gfwlist +server=/wheelpop.com/127.0.0.1#5335 +ipset=/wheelpop.com/gfwlist +server=/softbankci.com/127.0.0.1#5335 +ipset=/softbankci.com/gfwlist +server=/wikimediacloud.org/127.0.0.1#5335 +ipset=/wikimediacloud.org/gfwlist +server=/beatssbydredanmark.com/127.0.0.1#5335 +ipset=/beatssbydredanmark.com/gfwlist +server=/diddykongracing.com/127.0.0.1#5335 +ipset=/diddykongracing.com/gfwlist +server=/bugzilla.org/127.0.0.1#5335 +ipset=/bugzilla.org/gfwlist +server=/bgov.com/127.0.0.1#5335 +ipset=/bgov.com/gfwlist +server=/hpayshop.com/127.0.0.1#5335 +ipset=/hpayshop.com/gfwlist +server=/termux.org/127.0.0.1#5335 +ipset=/termux.org/gfwlist +server=/poshtestgallery.com/127.0.0.1#5335 +ipset=/poshtestgallery.com/gfwlist +server=/airport-gov-cn.com/127.0.0.1#5335 +ipset=/airport-gov-cn.com/gfwlist +server=/mspairlift.com/127.0.0.1#5335 +ipset=/mspairlift.com/gfwlist +server=/riotgames.tv/127.0.0.1#5335 +ipset=/riotgames.tv/gfwlist +server=/ankarazirvesi2018.com/127.0.0.1#5335 +ipset=/ankarazirvesi2018.com/gfwlist +server=/bmw-motorrad-authorities.com/127.0.0.1#5335 +ipset=/bmw-motorrad-authorities.com/gfwlist +server=/sony.kz/127.0.0.1#5335 +ipset=/sony.kz/gfwlist +server=/hdrplusdata.org/127.0.0.1#5335 +ipset=/hdrplusdata.org/gfwlist +server=/volvo.se/127.0.0.1#5335 +ipset=/volvo.se/gfwlist +server=/ebayhabit.com/127.0.0.1#5335 +ipset=/ebayhabit.com/gfwlist +server=/torcidadeouro.com/127.0.0.1#5335 +ipset=/torcidadeouro.com/gfwlist +server=/facebookhome.info/127.0.0.1#5335 +ipset=/facebookhome.info/gfwlist +server=/xbox.org/127.0.0.1#5335 +ipset=/xbox.org/gfwlist +server=/pinterest.engineering/127.0.0.1#5335 +ipset=/pinterest.engineering/gfwlist +server=/wegamedeveloper.com/127.0.0.1#5335 +ipset=/wegamedeveloper.com/gfwlist +server=/okx.com/127.0.0.1#5335 +ipset=/okx.com/gfwlist +server=/wzmyg.com/127.0.0.1#5335 +ipset=/wzmyg.com/gfwlist +server=/monsterbeats-solo.net/127.0.0.1#5335 +ipset=/monsterbeats-solo.net/gfwlist +server=/eaaccess.com/127.0.0.1#5335 +ipset=/eaaccess.com/gfwlist +server=/abclider.com/127.0.0.1#5335 +ipset=/abclider.com/gfwlist +server=/comodoca2.com/127.0.0.1#5335 +ipset=/comodoca2.com/gfwlist +server=/sakuralive.com/127.0.0.1#5335 +ipset=/sakuralive.com/gfwlist +server=/visa.se/127.0.0.1#5335 +ipset=/visa.se/gfwlist +server=/zootube1.com/127.0.0.1#5335 +ipset=/zootube1.com/gfwlist +server=/hp-webplatform.com/127.0.0.1#5335 +ipset=/hp-webplatform.com/gfwlist +server=/rbspeakup.com/127.0.0.1#5335 +ipset=/rbspeakup.com/gfwlist +server=/fetishpornfilms.com/127.0.0.1#5335 +ipset=/fetishpornfilms.com/gfwlist +server=/beatfactoryoutlets.com/127.0.0.1#5335 +ipset=/beatfactoryoutlets.com/gfwlist +server=/battlefield.com/127.0.0.1#5335 +ipset=/battlefield.com/gfwlist +server=/moveaws.com/127.0.0.1#5335 +ipset=/moveaws.com/gfwlist +server=/openwrt.org/127.0.0.1#5335 +ipset=/openwrt.org/gfwlist +server=/supermariogalaxy.com/127.0.0.1#5335 +ipset=/supermariogalaxy.com/gfwlist +server=/tuta.io/127.0.0.1#5335 +ipset=/tuta.io/gfwlist +server=/paaypal.com/127.0.0.1#5335 +ipset=/paaypal.com/gfwlist +server=/naiadsystems.com/127.0.0.1#5335 +ipset=/naiadsystems.com/gfwlist +server=/hpusertraining.com/127.0.0.1#5335 +ipset=/hpusertraining.com/gfwlist +server=/yahoo.cl/127.0.0.1#5335 +ipset=/yahoo.cl/gfwlist +server=/huluusa.com/127.0.0.1#5335 +ipset=/huluusa.com/gfwlist +server=/ebayimg.com/127.0.0.1#5335 +ipset=/ebayimg.com/gfwlist +server=/visa.com.tr/127.0.0.1#5335 +ipset=/visa.com.tr/gfwlist +server=/ok.ru/127.0.0.1#5335 +ipset=/ok.ru/gfwlist +server=/bmw-motorrad.co.za/127.0.0.1#5335 +ipset=/bmw-motorrad.co.za/gfwlist +server=/javextreme.net/127.0.0.1#5335 +ipset=/javextreme.net/gfwlist +server=/nowe.com/127.0.0.1#5335 +ipset=/nowe.com/gfwlist +server=/yinmh.com/127.0.0.1#5335 +ipset=/yinmh.com/gfwlist +server=/iporntoo.com/127.0.0.1#5335 +ipset=/iporntoo.com/gfwlist +server=/appl4e.com/127.0.0.1#5335 +ipset=/appl4e.com/gfwlist +server=/thisav.org/127.0.0.1#5335 +ipset=/thisav.org/gfwlist +server=/videosdesexo.br.com/127.0.0.1#5335 +ipset=/videosdesexo.br.com/gfwlist +server=/nbcuni.com/127.0.0.1#5335 +ipset=/nbcuni.com/gfwlist +server=/ubisoft.com/127.0.0.1#5335 +ipset=/ubisoft.com/gfwlist +server=/nudeteenboys.net/127.0.0.1#5335 +ipset=/nudeteenboys.net/gfwlist +server=/voasomali.com/127.0.0.1#5335 +ipset=/voasomali.com/gfwlist +server=/medow.ru/127.0.0.1#5335 +ipset=/medow.ru/gfwlist +server=/beatsbydreonlie2013-nl.com/127.0.0.1#5335 +ipset=/beatsbydreonlie2013-nl.com/gfwlist +server=/xboxab.com/127.0.0.1#5335 +ipset=/xboxab.com/gfwlist +server=/povr.com/127.0.0.1#5335 +ipset=/povr.com/gfwlist +server=/appletaiwan.com/127.0.0.1#5335 +ipset=/appletaiwan.com/gfwlist +server=/youtube.mx/127.0.0.1#5335 +ipset=/youtube.mx/gfwlist +server=/wirelessgroup.co.uk/127.0.0.1#5335 +ipset=/wirelessgroup.co.uk/gfwlist +server=/ya.ru/127.0.0.1#5335 +ipset=/ya.ru/gfwlist +server=/cheapheadsetshop.com/127.0.0.1#5335 +ipset=/cheapheadsetshop.com/gfwlist +server=/ltn.com.tw/127.0.0.1#5335 +ipset=/ltn.com.tw/gfwlist +server=/calgonit.com/127.0.0.1#5335 +ipset=/calgonit.com/gfwlist +server=/sonypcl.jp/127.0.0.1#5335 +ipset=/sonypcl.jp/gfwlist +server=/paypalhere.tv/127.0.0.1#5335 +ipset=/paypalhere.tv/gfwlist +server=/sexmadeathome.com/127.0.0.1#5335 +ipset=/sexmadeathome.com/gfwlist +server=/bmwconnecteddrive.com/127.0.0.1#5335 +ipset=/bmwconnecteddrive.com/gfwlist +server=/sexy-beauties.com/127.0.0.1#5335 +ipset=/sexy-beauties.com/gfwlist +server=/69games.xxx/127.0.0.1#5335 +ipset=/69games.xxx/gfwlist +server=/canon.cz/127.0.0.1#5335 +ipset=/canon.cz/gfwlist +server=/dajiyuan.eu/127.0.0.1#5335 +ipset=/dajiyuan.eu/gfwlist +server=/vod-thumb-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vod-thumb-uk-live.akamaized.net/gfwlist +server=/lgecareers.com/127.0.0.1#5335 +ipset=/lgecareers.com/gfwlist +server=/voacantonese.com/127.0.0.1#5335 +ipset=/voacantonese.com/gfwlist +server=/boobpedia.com/127.0.0.1#5335 +ipset=/boobpedia.com/gfwlist +server=/10musume.com/127.0.0.1#5335 +ipset=/10musume.com/gfwlist +server=/thumbzilla.com/127.0.0.1#5335 +ipset=/thumbzilla.com/gfwlist +server=/starbucks.com.mx/127.0.0.1#5335 +ipset=/starbucks.com.mx/gfwlist +server=/smartoneholdings.com/127.0.0.1#5335 +ipset=/smartoneholdings.com/gfwlist +server=/ikea.co.uk/127.0.0.1#5335 +ipset=/ikea.co.uk/gfwlist +server=/drebeats-studio.com/127.0.0.1#5335 +ipset=/drebeats-studio.com/gfwlist +server=/airwick.ca/127.0.0.1#5335 +ipset=/airwick.ca/gfwlist +server=/whispersystems.org/127.0.0.1#5335 +ipset=/whispersystems.org/gfwlist +server=/paypal-prepaid.com/127.0.0.1#5335 +ipset=/paypal-prepaid.com/gfwlist +server=/hentaiporn.com/127.0.0.1#5335 +ipset=/hentaiporn.com/gfwlist +server=/wwwinstagram.com/127.0.0.1#5335 +ipset=/wwwinstagram.com/gfwlist +server=/cartoon-sex.tv/127.0.0.1#5335 +ipset=/cartoon-sex.tv/gfwlist +server=/cheapbeatsbydrdrepro.com/127.0.0.1#5335 +ipset=/cheapbeatsbydrdrepro.com/gfwlist +server=/shemalespoiledwhore.com/127.0.0.1#5335 +ipset=/shemalespoiledwhore.com/gfwlist +server=/nike-usa.com/127.0.0.1#5335 +ipset=/nike-usa.com/gfwlist +server=/hpinstantink.ca/127.0.0.1#5335 +ipset=/hpinstantink.ca/gfwlist +server=/hshsxkj.com/127.0.0.1#5335 +ipset=/hshsxkj.com/gfwlist +server=/tvbeventpower.com.hk/127.0.0.1#5335 +ipset=/tvbeventpower.com.hk/gfwlist +server=/wwwicloud.com/127.0.0.1#5335 +ipset=/wwwicloud.com/gfwlist +server=/wuyefuli.org/127.0.0.1#5335 +ipset=/wuyefuli.org/gfwlist +server=/newschristmasshopping.com/127.0.0.1#5335 +ipset=/newschristmasshopping.com/gfwlist +server=/bloombergtaxtech.com/127.0.0.1#5335 +ipset=/bloombergtaxtech.com/gfwlist +server=/mymmode.com/127.0.0.1#5335 +ipset=/mymmode.com/gfwlist +server=/girlfriendvids.net/127.0.0.1#5335 +ipset=/girlfriendvids.net/gfwlist +server=/fapnado.com/127.0.0.1#5335 +ipset=/fapnado.com/gfwlist +server=/mypearsonshop.com.mx/127.0.0.1#5335 +ipset=/mypearsonshop.com.mx/gfwlist +server=/sony.com.bo/127.0.0.1#5335 +ipset=/sony.com.bo/gfwlist +server=/intelvmwarecybersecurity.com/127.0.0.1#5335 +ipset=/intelvmwarecybersecurity.com/gfwlist +server=/928.plus/127.0.0.1#5335 +ipset=/928.plus/gfwlist +server=/xozilla.com/127.0.0.1#5335 +ipset=/xozilla.com/gfwlist +server=/bitquick.co/127.0.0.1#5335 +ipset=/bitquick.co/gfwlist +server=/bidong25.com/127.0.0.1#5335 +ipset=/bidong25.com/gfwlist +server=/macosforge.org/127.0.0.1#5335 +ipset=/macosforge.org/gfwlist +server=/topescortbabes.com/127.0.0.1#5335 +ipset=/topescortbabes.com/gfwlist +server=/xxxhdvideo.mobi/127.0.0.1#5335 +ipset=/xxxhdvideo.mobi/gfwlist +server=/wwwebay.com/127.0.0.1#5335 +ipset=/wwwebay.com/gfwlist +server=/themilfmovies.com/127.0.0.1#5335 +ipset=/themilfmovies.com/gfwlist +server=/gizmoxxx.com/127.0.0.1#5335 +ipset=/gizmoxxx.com/gfwlist +server=/buyaapl.net/127.0.0.1#5335 +ipset=/buyaapl.net/gfwlist +server=/n15zev3w.shop/127.0.0.1#5335 +ipset=/n15zev3w.shop/gfwlist +server=/sis001.com/127.0.0.1#5335 +ipset=/sis001.com/gfwlist +server=/adobedc.net/127.0.0.1#5335 +ipset=/adobedc.net/gfwlist +server=/minivilledequebec.com/127.0.0.1#5335 +ipset=/minivilledequebec.com/gfwlist +server=/teachmyass.com/127.0.0.1#5335 +ipset=/teachmyass.com/gfwlist +server=/favelaporno.com/127.0.0.1#5335 +ipset=/favelaporno.com/gfwlist +server=/yandex.uz/127.0.0.1#5335 +ipset=/yandex.uz/gfwlist +server=/47gyosei.jp/127.0.0.1#5335 +ipset=/47gyosei.jp/gfwlist +server=/ebaymag.com/127.0.0.1#5335 +ipset=/ebaymag.com/gfwlist +server=/icloudhome.com/127.0.0.1#5335 +ipset=/icloudhome.com/gfwlist +server=/rtm.tnt-ea.com/127.0.0.1#5335 +ipset=/rtm.tnt-ea.com/gfwlist +server=/girls2see.ch/127.0.0.1#5335 +ipset=/girls2see.ch/gfwlist +server=/herokucdn.com/127.0.0.1#5335 +ipset=/herokucdn.com/gfwlist +server=/hpspeaker.com/127.0.0.1#5335 +ipset=/hpspeaker.com/gfwlist +server=/jav.gallery/127.0.0.1#5335 +ipset=/jav.gallery/gfwlist +server=/globalsecurity.org/127.0.0.1#5335 +ipset=/globalsecurity.org/gfwlist +server=/tubesex.me/127.0.0.1#5335 +ipset=/tubesex.me/gfwlist +server=/daoc.net/127.0.0.1#5335 +ipset=/daoc.net/gfwlist +server=/theav.cc/127.0.0.1#5335 +ipset=/theav.cc/gfwlist +server=/disney-asia.com/127.0.0.1#5335 +ipset=/disney-asia.com/gfwlist +server=/esposasymaridos.com/127.0.0.1#5335 +ipset=/esposasymaridos.com/gfwlist +server=/bustykerrymarie.com/127.0.0.1#5335 +ipset=/bustykerrymarie.com/gfwlist +server=/apple.hn/127.0.0.1#5335 +ipset=/apple.hn/gfwlist +server=/binance.cloud/127.0.0.1#5335 +ipset=/binance.cloud/gfwlist +server=/hackerguardian.com/127.0.0.1#5335 +ipset=/hackerguardian.com/gfwlist +server=/picacomic.xyz/127.0.0.1#5335 +ipset=/picacomic.xyz/gfwlist +server=/ams02.space/127.0.0.1#5335 +ipset=/ams02.space/gfwlist +server=/xvideos.blog/127.0.0.1#5335 +ipset=/xvideos.blog/gfwlist +server=/young-amateur-movies.com/127.0.0.1#5335 +ipset=/young-amateur-movies.com/gfwlist +server=/cheerwholesale.us/127.0.0.1#5335 +ipset=/cheerwholesale.us/gfwlist +server=/eamythic.net/127.0.0.1#5335 +ipset=/eamythic.net/gfwlist +server=/beatsbydrediscount.com/127.0.0.1#5335 +ipset=/beatsbydrediscount.com/gfwlist +server=/amazingcuckold.com/127.0.0.1#5335 +ipset=/amazingcuckold.com/gfwlist +server=/webcamgirls.chat/127.0.0.1#5335 +ipset=/webcamgirls.chat/gfwlist +server=/virtualearth.net/127.0.0.1#5335 +ipset=/virtualearth.net/gfwlist +server=/home-sex-tapes.com/127.0.0.1#5335 +ipset=/home-sex-tapes.com/gfwlist +server=/nvidia.com/127.0.0.1#5335 +ipset=/nvidia.com/gfwlist +server=/modelmediaus.com/127.0.0.1#5335 +ipset=/modelmediaus.com/gfwlist +server=/facebook-texas-holdem.com/127.0.0.1#5335 +ipset=/facebook-texas-holdem.com/gfwlist +server=/unstyle.us/127.0.0.1#5335 +ipset=/unstyle.us/gfwlist +server=/ccav69.info/127.0.0.1#5335 +ipset=/ccav69.info/gfwlist +server=/paypal-gift.com/127.0.0.1#5335 +ipset=/paypal-gift.com/gfwlist +server=/muji.eu/127.0.0.1#5335 +ipset=/muji.eu/gfwlist +server=/xoom-experience.com/127.0.0.1#5335 +ipset=/xoom-experience.com/gfwlist +server=/binancezh.live/127.0.0.1#5335 +ipset=/binancezh.live/gfwlist +server=/transpornsites.com/127.0.0.1#5335 +ipset=/transpornsites.com/gfwlist +server=/playartifact.com/127.0.0.1#5335 +ipset=/playartifact.com/gfwlist +server=/nomulus.foo/127.0.0.1#5335 +ipset=/nomulus.foo/gfwlist +server=/lliusno.com/127.0.0.1#5335 +ipset=/lliusno.com/gfwlist +server=/softbank-telecom.com/127.0.0.1#5335 +ipset=/softbank-telecom.com/gfwlist +server=/bmw-connecteddrive.no/127.0.0.1#5335 +ipset=/bmw-connecteddrive.no/gfwlist +server=/geeksquad.ca/127.0.0.1#5335 +ipset=/geeksquad.ca/gfwlist +server=/nakedmodelsxxx.com/127.0.0.1#5335 +ipset=/nakedmodelsxxx.com/gfwlist +server=/homemoviestube.com/127.0.0.1#5335 +ipset=/homemoviestube.com/gfwlist +server=/jmcomic.me/127.0.0.1#5335 +ipset=/jmcomic.me/gfwlist +server=/yourgynexam.com/127.0.0.1#5335 +ipset=/yourgynexam.com/gfwlist +server=/dettol.ie/127.0.0.1#5335 +ipset=/dettol.ie/gfwlist +server=/onefifteen.net/127.0.0.1#5335 +ipset=/onefifteen.net/gfwlist +server=/hentaigamer.org/127.0.0.1#5335 +ipset=/hentaigamer.org/gfwlist +server=/static-cisco.com/127.0.0.1#5335 +ipset=/static-cisco.com/gfwlist +server=/wanokokorosoh.com/127.0.0.1#5335 +ipset=/wanokokorosoh.com/gfwlist +server=/myappleid.com/127.0.0.1#5335 +ipset=/myappleid.com/gfwlist +server=/onlyincestporn.com/127.0.0.1#5335 +ipset=/onlyincestporn.com/gfwlist +server=/ladsp.com/127.0.0.1#5335 +ipset=/ladsp.com/gfwlist +server=/bmw.co.ao/127.0.0.1#5335 +ipset=/bmw.co.ao/gfwlist +server=/betterexplained.com/127.0.0.1#5335 +ipset=/betterexplained.com/gfwlist +server=/appletv.fr/127.0.0.1#5335 +ipset=/appletv.fr/gfwlist +server=/storyful.com/127.0.0.1#5335 +ipset=/storyful.com/gfwlist +server=/bmw.es/127.0.0.1#5335 +ipset=/bmw.es/gfwlist +server=/sub147.com/127.0.0.1#5335 +ipset=/sub147.com/gfwlist +server=/berkeley.edu/127.0.0.1#5335 +ipset=/berkeley.edu/gfwlist +server=/miniso.ca/127.0.0.1#5335 +ipset=/miniso.ca/gfwlist +server=/instaadder.com/127.0.0.1#5335 +ipset=/instaadder.com/gfwlist +server=/novinhasdozapzap.com/127.0.0.1#5335 +ipset=/novinhasdozapzap.com/gfwlist +server=/beatspascher-bydre.com/127.0.0.1#5335 +ipset=/beatspascher-bydre.com/gfwlist +server=/tawny-peaks.com/127.0.0.1#5335 +ipset=/tawny-peaks.com/gfwlist +server=/codeforaliving.io/127.0.0.1#5335 +ipset=/codeforaliving.io/gfwlist +server=/bmwauslieferungszentrum.com/127.0.0.1#5335 +ipset=/bmwauslieferungszentrum.com/gfwlist +server=/nbcnews.com/127.0.0.1#5335 +ipset=/nbcnews.com/gfwlist +server=/www-cdn.icloud.com.akadns.net/127.0.0.1#5335 +ipset=/www-cdn.icloud.com.akadns.net/gfwlist +server=/bbc.net.uk/127.0.0.1#5335 +ipset=/bbc.net.uk/gfwlist +server=/volvotrucks.co.za/127.0.0.1#5335 +ipset=/volvotrucks.co.za/gfwlist +server=/appleaustralia.net.au/127.0.0.1#5335 +ipset=/appleaustralia.net.au/gfwlist +server=/jav-1080.com/127.0.0.1#5335 +ipset=/jav-1080.com/gfwlist +server=/my-magazine.me/127.0.0.1#5335 +ipset=/my-magazine.me/gfwlist +server=/xlgirls.com/127.0.0.1#5335 +ipset=/xlgirls.com/gfwlist +server=/cnshopin.com/127.0.0.1#5335 +ipset=/cnshopin.com/gfwlist +server=/wisecoin.com/127.0.0.1#5335 +ipset=/wisecoin.com/gfwlist +server=/paypal-corp.com/127.0.0.1#5335 +ipset=/paypal-corp.com/gfwlist +server=/9to5google.com/127.0.0.1#5335 +ipset=/9to5google.com/gfwlist +server=/jmcomic.mobi/127.0.0.1#5335 +ipset=/jmcomic.mobi/gfwlist +server=/supjav.com/127.0.0.1#5335 +ipset=/supjav.com/gfwlist +server=/fappcelebs.com/127.0.0.1#5335 +ipset=/fappcelebs.com/gfwlist +server=/porngamesverse.com/127.0.0.1#5335 +ipset=/porngamesverse.com/gfwlist +server=/fox46.com/127.0.0.1#5335 +ipset=/fox46.com/gfwlist +server=/hornychat.net/127.0.0.1#5335 +ipset=/hornychat.net/gfwlist +server=/reddit.com/127.0.0.1#5335 +ipset=/reddit.com/gfwlist +server=/nikkansports.com/127.0.0.1#5335 +ipset=/nikkansports.com/gfwlist +server=/asianpornmovies.com/127.0.0.1#5335 +ipset=/asianpornmovies.com/gfwlist +server=/ieeemce.org/127.0.0.1#5335 +ipset=/ieeemce.org/gfwlist +server=/258porn.com/127.0.0.1#5335 +ipset=/258porn.com/gfwlist +server=/anal.media/127.0.0.1#5335 +ipset=/anal.media/gfwlist +server=/jjgirls.com/127.0.0.1#5335 +ipset=/jjgirls.com/gfwlist +server=/gopivotal.net/127.0.0.1#5335 +ipset=/gopivotal.net/gfwlist +server=/pornvideotube.online/127.0.0.1#5335 +ipset=/pornvideotube.online/gfwlist +server=/openvpn.net/127.0.0.1#5335 +ipset=/openvpn.net/gfwlist +server=/rosemarydoll.com/127.0.0.1#5335 +ipset=/rosemarydoll.com/gfwlist +server=/hdhole.com/127.0.0.1#5335 +ipset=/hdhole.com/gfwlist +server=/youtube.com.hk/127.0.0.1#5335 +ipset=/youtube.com.hk/gfwlist +server=/cdnpure.com/127.0.0.1#5335 +ipset=/cdnpure.com/gfwlist +server=/xvideostravestis.xxx/127.0.0.1#5335 +ipset=/xvideostravestis.xxx/gfwlist +server=/vrporn.com/127.0.0.1#5335 +ipset=/vrporn.com/gfwlist +server=/ppaypal.com/127.0.0.1#5335 +ipset=/ppaypal.com/gfwlist +server=/paypal-secure.net/127.0.0.1#5335 +ipset=/paypal-secure.net/gfwlist +server=/cliphunter.com/127.0.0.1#5335 +ipset=/cliphunter.com/gfwlist +server=/facebookgames.com/127.0.0.1#5335 +ipset=/facebookgames.com/gfwlist +server=/pornhost.com/127.0.0.1#5335 +ipset=/pornhost.com/gfwlist +server=/apl-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/apl-hamivideo.cdn.hinet.net/gfwlist +server=/vmwsalesrewards.com/127.0.0.1#5335 +ipset=/vmwsalesrewards.com/gfwlist +server=/xxx-files.org/127.0.0.1#5335 +ipset=/xxx-files.org/gfwlist +server=/allhorsesex.com/127.0.0.1#5335 +ipset=/allhorsesex.com/gfwlist +server=/xscale.com/127.0.0.1#5335 +ipset=/xscale.com/gfwlist +server=/babesandbitches.net/127.0.0.1#5335 +ipset=/babesandbitches.net/gfwlist +server=/settv.com.tw/127.0.0.1#5335 +ipset=/settv.com.tw/gfwlist +server=/nikefoamposites.com/127.0.0.1#5335 +ipset=/nikefoamposites.com/gfwlist +server=/pentium.com/127.0.0.1#5335 +ipset=/pentium.com/gfwlist +server=/azurestackvalidation.com/127.0.0.1#5335 +ipset=/azurestackvalidation.com/gfwlist +server=/bmwperformancecenter.com/127.0.0.1#5335 +ipset=/bmwperformancecenter.com/gfwlist +server=/ukipad.com/127.0.0.1#5335 +ipset=/ukipad.com/gfwlist +server=/yandex.st/127.0.0.1#5335 +ipset=/yandex.st/gfwlist +server=/ebaycoins.com/127.0.0.1#5335 +ipset=/ebaycoins.com/gfwlist +server=/gosq.com/127.0.0.1#5335 +ipset=/gosq.com/gfwlist +server=/sexiframe.com/127.0.0.1#5335 +ipset=/sexiframe.com/gfwlist +server=/citytourgirls.com/127.0.0.1#5335 +ipset=/citytourgirls.com/gfwlist +server=/pincong.rocks/127.0.0.1#5335 +ipset=/pincong.rocks/gfwlist +server=/hunk.ws/127.0.0.1#5335 +ipset=/hunk.ws/gfwlist +server=/blpprofessional.com/127.0.0.1#5335 +ipset=/blpprofessional.com/gfwlist +server=/tgirlcentral.com/127.0.0.1#5335 +ipset=/tgirlcentral.com/gfwlist +server=/uhub.com/127.0.0.1#5335 +ipset=/uhub.com/gfwlist +server=/datasheets360.com/127.0.0.1#5335 +ipset=/datasheets360.com/gfwlist +server=/airwick.us/127.0.0.1#5335 +ipset=/airwick.us/gfwlist +server=/hentaihaven.me/127.0.0.1#5335 +ipset=/hentaihaven.me/gfwlist +server=/shireyishunjian.com/127.0.0.1#5335 +ipset=/shireyishunjian.com/gfwlist +server=/adidas.cz/127.0.0.1#5335 +ipset=/adidas.cz/gfwlist +server=/rarbg.is/127.0.0.1#5335 +ipset=/rarbg.is/gfwlist +server=/businessinsider.com/127.0.0.1#5335 +ipset=/businessinsider.com/gfwlist +server=/visa.gr/127.0.0.1#5335 +ipset=/visa.gr/gfwlist +server=/storm.mg/127.0.0.1#5335 +ipset=/storm.mg/gfwlist +server=/cockyboys.com/127.0.0.1#5335 +ipset=/cockyboys.com/gfwlist +server=/netflix.com.edgesuite.net/127.0.0.1#5335 +ipset=/netflix.com.edgesuite.net/gfwlist +server=/monsterbeatsmall.com/127.0.0.1#5335 +ipset=/monsterbeatsmall.com/gfwlist +server=/18doujin.com/127.0.0.1#5335 +ipset=/18doujin.com/gfwlist +server=/itunes.us/127.0.0.1#5335 +ipset=/itunes.us/gfwlist +server=/thetimes.co.uk/127.0.0.1#5335 +ipset=/thetimes.co.uk/gfwlist +server=/tellapart.com/127.0.0.1#5335 +ipset=/tellapart.com/gfwlist +server=/smutindia.com/127.0.0.1#5335 +ipset=/smutindia.com/gfwlist +server=/netpornsex.net/127.0.0.1#5335 +ipset=/netpornsex.net/gfwlist +server=/qualcommlabs.com/127.0.0.1#5335 +ipset=/qualcommlabs.com/gfwlist +server=/applepaysupplies.net/127.0.0.1#5335 +ipset=/applepaysupplies.net/gfwlist +server=/faeboook.com/127.0.0.1#5335 +ipset=/faeboook.com/gfwlist +server=/ecimg.tw/127.0.0.1#5335 +ipset=/ecimg.tw/gfwlist +server=/duckduckgo.ke/127.0.0.1#5335 +ipset=/duckduckgo.ke/gfwlist +server=/gen.lib.rus.ec/127.0.0.1#5335 +ipset=/gen.lib.rus.ec/gfwlist +server=/nukemanga.com/127.0.0.1#5335 +ipset=/nukemanga.com/gfwlist +server=/guardianapps.co.uk/127.0.0.1#5335 +ipset=/guardianapps.co.uk/gfwlist +server=/durex.com.tr/127.0.0.1#5335 +ipset=/durex.com.tr/gfwlist +server=/earphonescheapest.com/127.0.0.1#5335 +ipset=/earphonescheapest.com/gfwlist +server=/c-ij.com/127.0.0.1#5335 +ipset=/c-ij.com/gfwlist +server=/desihoes.com/127.0.0.1#5335 +ipset=/desihoes.com/gfwlist +server=/exxxtra.net/127.0.0.1#5335 +ipset=/exxxtra.net/gfwlist +server=/reuters.com/127.0.0.1#5335 +ipset=/reuters.com/gfwlist +server=/payhulu.com/127.0.0.1#5335 +ipset=/payhulu.com/gfwlist +server=/veporn.com/127.0.0.1#5335 +ipset=/veporn.com/gfwlist +server=/homofans.blogspot.com/127.0.0.1#5335 +ipset=/homofans.blogspot.com/gfwlist +server=/amznl.com/127.0.0.1#5335 +ipset=/amznl.com/gfwlist +server=/thepornlistdude.com/127.0.0.1#5335 +ipset=/thepornlistdude.com/gfwlist +server=/incentivetravelgifts.com/127.0.0.1#5335 +ipset=/incentivetravelgifts.com/gfwlist +server=/volvotrucks.rs/127.0.0.1#5335 +ipset=/volvotrucks.rs/gfwlist +server=/reuters.tv/127.0.0.1#5335 +ipset=/reuters.tv/gfwlist +server=/intel.si/127.0.0.1#5335 +ipset=/intel.si/gfwlist +server=/vfsco.ie/127.0.0.1#5335 +ipset=/vfsco.ie/gfwlist +server=/ah-me.com/127.0.0.1#5335 +ipset=/ah-me.com/gfwlist +server=/sonybo.co.jp/127.0.0.1#5335 +ipset=/sonybo.co.jp/gfwlist +server=/sexwebvideo.com/127.0.0.1#5335 +ipset=/sexwebvideo.com/gfwlist +server=/businessinsider.fr/127.0.0.1#5335 +ipset=/businessinsider.fr/gfwlist +server=/digitalassetlinks.org/127.0.0.1#5335 +ipset=/digitalassetlinks.org/gfwlist +server=/javfor.me/127.0.0.1#5335 +ipset=/javfor.me/gfwlist +server=/monsterbeatstudio.com/127.0.0.1#5335 +ipset=/monsterbeatstudio.com/gfwlist +server=/booloo.com/127.0.0.1#5335 +ipset=/booloo.com/gfwlist +server=/php.net/127.0.0.1#5335 +ipset=/php.net/gfwlist +server=/snapcraft.io/127.0.0.1#5335 +ipset=/snapcraft.io/gfwlist +server=/beatsstudiohodetelefoner.com/127.0.0.1#5335 +ipset=/beatsstudiohodetelefoner.com/gfwlist +server=/redditmail.com/127.0.0.1#5335 +ipset=/redditmail.com/gfwlist +server=/ikea.om/127.0.0.1#5335 +ipset=/ikea.om/gfwlist +server=/canon.ee/127.0.0.1#5335 +ipset=/canon.ee/gfwlist +server=/marketolive.com/127.0.0.1#5335 +ipset=/marketolive.com/gfwlist +server=/4porn4.com/127.0.0.1#5335 +ipset=/4porn4.com/gfwlist +server=/reconinstruments.com/127.0.0.1#5335 +ipset=/reconinstruments.com/gfwlist +server=/scholar.google.com.ly/127.0.0.1#5335 +ipset=/scholar.google.com.ly/gfwlist +server=/asianporn.sexy/127.0.0.1#5335 +ipset=/asianporn.sexy/gfwlist +server=/emagic.de/127.0.0.1#5335 +ipset=/emagic.de/gfwlist +server=/qkjuyet.com/127.0.0.1#5335 +ipset=/qkjuyet.com/gfwlist +server=/xxxpornotuber.com/127.0.0.1#5335 +ipset=/xxxpornotuber.com/gfwlist +server=/ipple.com/127.0.0.1#5335 +ipset=/ipple.com/gfwlist +server=/jkbeats.com/127.0.0.1#5335 +ipset=/jkbeats.com/gfwlist +server=/topnudemalecelebs.com/127.0.0.1#5335 +ipset=/topnudemalecelebs.com/gfwlist +server=/universalpicturesinternational.com/127.0.0.1#5335 +ipset=/universalpicturesinternational.com/gfwlist +server=/vilavpn.com/127.0.0.1#5335 +ipset=/vilavpn.com/gfwlist +server=/skyoceanrescue.de/127.0.0.1#5335 +ipset=/skyoceanrescue.de/gfwlist +server=/namemybeats.com/127.0.0.1#5335 +ipset=/namemybeats.com/gfwlist +server=/facebooj.com/127.0.0.1#5335 +ipset=/facebooj.com/gfwlist +server=/shikorina.net/127.0.0.1#5335 +ipset=/shikorina.net/gfwlist +server=/moneywithfacebook.com/127.0.0.1#5335 +ipset=/moneywithfacebook.com/gfwlist +server=/facecbgook.com/127.0.0.1#5335 +ipset=/facecbgook.com/gfwlist +server=/sissy.game/127.0.0.1#5335 +ipset=/sissy.game/gfwlist +server=/wiipartyu.com/127.0.0.1#5335 +ipset=/wiipartyu.com/gfwlist +server=/chatwhores.org/127.0.0.1#5335 +ipset=/chatwhores.org/gfwlist +server=/awstrack.me/127.0.0.1#5335 +ipset=/awstrack.me/gfwlist +server=/anaconda.org/127.0.0.1#5335 +ipset=/anaconda.org/gfwlist +server=/bangbrosnetwork.com/127.0.0.1#5335 +ipset=/bangbrosnetwork.com/gfwlist +server=/discord.tools/127.0.0.1#5335 +ipset=/discord.tools/gfwlist +server=/hottestfilms.com/127.0.0.1#5335 +ipset=/hottestfilms.com/gfwlist +server=/chromeos.dev/127.0.0.1#5335 +ipset=/chromeos.dev/gfwlist +server=/xnxxx.cc/127.0.0.1#5335 +ipset=/xnxxx.cc/gfwlist +server=/signal.org/127.0.0.1#5335 +ipset=/signal.org/gfwlist +server=/intercom.io/127.0.0.1#5335 +ipset=/intercom.io/gfwlist +server=/starbucks.co.id/127.0.0.1#5335 +ipset=/starbucks.co.id/gfwlist +server=/imaypb.com/127.0.0.1#5335 +ipset=/imaypb.com/gfwlist +server=/hpdrivers.com/127.0.0.1#5335 +ipset=/hpdrivers.com/gfwlist +server=/taiwansex.tw/127.0.0.1#5335 +ipset=/taiwansex.tw/gfwlist +server=/hptv.fun/127.0.0.1#5335 +ipset=/hptv.fun/gfwlist +server=/typeisbeautiful.com/127.0.0.1#5335 +ipset=/typeisbeautiful.com/gfwlist +server=/svipshipin.store/127.0.0.1#5335 +ipset=/svipshipin.store/gfwlist +server=/vipergirls.to/127.0.0.1#5335 +ipset=/vipergirls.to/gfwlist +server=/archive.org/127.0.0.1#5335 +ipset=/archive.org/gfwlist +server=/qoo10.jp/127.0.0.1#5335 +ipset=/qoo10.jp/gfwlist +server=/zuckerberg.com/127.0.0.1#5335 +ipset=/zuckerberg.com/gfwlist +server=/cbsinteractive.com/127.0.0.1#5335 +ipset=/cbsinteractive.com/gfwlist +server=/awempire.com/127.0.0.1#5335 +ipset=/awempire.com/gfwlist +server=/empflix.com/127.0.0.1#5335 +ipset=/empflix.com/gfwlist +server=/onstream.cc/127.0.0.1#5335 +ipset=/onstream.cc/gfwlist +server=/mycomicsxxx.com/127.0.0.1#5335 +ipset=/mycomicsxxx.com/gfwlist +server=/github.dev/127.0.0.1#5335 +ipset=/github.dev/gfwlist +server=/cam4.com/127.0.0.1#5335 +ipset=/cam4.com/gfwlist +server=/shameless.com/127.0.0.1#5335 +ipset=/shameless.com/gfwlist +server=/pornjam.com/127.0.0.1#5335 +ipset=/pornjam.com/gfwlist +server=/nintendoswitchtogether.com/127.0.0.1#5335 +ipset=/nintendoswitchtogether.com/gfwlist +server=/moeero-library.com/127.0.0.1#5335 +ipset=/moeero-library.com/gfwlist +server=/noisullifb.com/127.0.0.1#5335 +ipset=/noisullifb.com/gfwlist +server=/perfectgirls.net/127.0.0.1#5335 +ipset=/perfectgirls.net/gfwlist +server=/intel.in/127.0.0.1#5335 +ipset=/intel.in/gfwlist +server=/primevideo.org/127.0.0.1#5335 +ipset=/primevideo.org/gfwlist +server=/authorxml.com/127.0.0.1#5335 +ipset=/authorxml.com/gfwlist +server=/wwwpornhub.pro/127.0.0.1#5335 +ipset=/wwwpornhub.pro/gfwlist +server=/logitechg.com/127.0.0.1#5335 +ipset=/logitechg.com/gfwlist +server=/hawaiibmw.com/127.0.0.1#5335 +ipset=/hawaiibmw.com/gfwlist +server=/management-azure-devices.net/127.0.0.1#5335 +ipset=/management-azure-devices.net/gfwlist +server=/xgames.zone/127.0.0.1#5335 +ipset=/xgames.zone/gfwlist +server=/xsela.cc/127.0.0.1#5335 +ipset=/xsela.cc/gfwlist +server=/netfapx.com/127.0.0.1#5335 +ipset=/netfapx.com/gfwlist +server=/vox-cdn.com/127.0.0.1#5335 +ipset=/vox-cdn.com/gfwlist +server=/youtube.ly/127.0.0.1#5335 +ipset=/youtube.ly/gfwlist +server=/hentai.desi/127.0.0.1#5335 +ipset=/hentai.desi/gfwlist +server=/javday.tv/127.0.0.1#5335 +ipset=/javday.tv/gfwlist +server=/enematube.com/127.0.0.1#5335 +ipset=/enematube.com/gfwlist +server=/dontbubble.us/127.0.0.1#5335 +ipset=/dontbubble.us/gfwlist +server=/services-exchange.com/127.0.0.1#5335 +ipset=/services-exchange.com/gfwlist +server=/brasilincesto.com/127.0.0.1#5335 +ipset=/brasilincesto.com/gfwlist +server=/marketo.co.uk/127.0.0.1#5335 +ipset=/marketo.co.uk/gfwlist +server=/nintendo-europe.com/127.0.0.1#5335 +ipset=/nintendo-europe.com/gfwlist +server=/nxtdig.com.tw/127.0.0.1#5335 +ipset=/nxtdig.com.tw/gfwlist +server=/blogspot.co.at/127.0.0.1#5335 +ipset=/blogspot.co.at/gfwlist +server=/watchanimeattheoffice.com/127.0.0.1#5335 +ipset=/watchanimeattheoffice.com/gfwlist +server=/dojin.com/127.0.0.1#5335 +ipset=/dojin.com/gfwlist +server=/intel.my/127.0.0.1#5335 +ipset=/intel.my/gfwlist +server=/nintendo.co.uk/127.0.0.1#5335 +ipset=/nintendo.co.uk/gfwlist +server=/bmw-motorrad.co.uk/127.0.0.1#5335 +ipset=/bmw-motorrad.co.uk/gfwlist +server=/tgirlpostop.com/127.0.0.1#5335 +ipset=/tgirlpostop.com/gfwlist +server=/minivaughanwest.com/127.0.0.1#5335 +ipset=/minivaughanwest.com/gfwlist +server=/ippog.org/127.0.0.1#5335 +ipset=/ippog.org/gfwlist +server=/aeasyshop.com/127.0.0.1#5335 +ipset=/aeasyshop.com/gfwlist +server=/bmw-eg.com/127.0.0.1#5335 +ipset=/bmw-eg.com/gfwlist +server=/visb.org/127.0.0.1#5335 +ipset=/visb.org/gfwlist +server=/faebok.com/127.0.0.1#5335 +ipset=/faebok.com/gfwlist +server=/mcdonalds.no/127.0.0.1#5335 +ipset=/mcdonalds.no/gfwlist +server=/paypal-special.com/127.0.0.1#5335 +ipset=/paypal-special.com/gfwlist +server=/bunnylust.com/127.0.0.1#5335 +ipset=/bunnylust.com/gfwlist +server=/scholar.google.com.pr/127.0.0.1#5335 +ipset=/scholar.google.com.pr/gfwlist +server=/itunesu.net/127.0.0.1#5335 +ipset=/itunesu.net/gfwlist +server=/directvforhotels.com/127.0.0.1#5335 +ipset=/directvforhotels.com/gfwlist +server=/youtube.co.nz/127.0.0.1#5335 +ipset=/youtube.co.nz/gfwlist +server=/moneyswift.online/127.0.0.1#5335 +ipset=/moneyswift.online/gfwlist +server=/durex.co.il/127.0.0.1#5335 +ipset=/durex.co.il/gfwlist +server=/microsoftnewskids.com/127.0.0.1#5335 +ipset=/microsoftnewskids.com/gfwlist +server=/hetzner.de/127.0.0.1#5335 +ipset=/hetzner.de/gfwlist +server=/bmw-military-sales.com/127.0.0.1#5335 +ipset=/bmw-military-sales.com/gfwlist +server=/buyitnow.com/127.0.0.1#5335 +ipset=/buyitnow.com/gfwlist +server=/goldteenporn.com/127.0.0.1#5335 +ipset=/goldteenporn.com/gfwlist +server=/pornmz.net/127.0.0.1#5335 +ipset=/pornmz.net/gfwlist +server=/oxforddnb.com/127.0.0.1#5335 +ipset=/oxforddnb.com/gfwlist +server=/applicationinsights.io/127.0.0.1#5335 +ipset=/applicationinsights.io/gfwlist +server=/get.new/127.0.0.1#5335 +ipset=/get.new/gfwlist +server=/sssins.com/127.0.0.1#5335 +ipset=/sssins.com/gfwlist +server=/mastercard.hr/127.0.0.1#5335 +ipset=/mastercard.hr/gfwlist +server=/playnintendo.com/127.0.0.1#5335 +ipset=/playnintendo.com/gfwlist +server=/amazon.co.jp/127.0.0.1#5335 +ipset=/amazon.co.jp/gfwlist +server=/visa.com.ge/127.0.0.1#5335 +ipset=/visa.com.ge/gfwlist +server=/didce.com/127.0.0.1#5335 +ipset=/didce.com/gfwlist +server=/milkmanbook.com/127.0.0.1#5335 +ipset=/milkmanbook.com/gfwlist +server=/itu.int/127.0.0.1#5335 +ipset=/itu.int/gfwlist +server=/beatscheap-nz.com/127.0.0.1#5335 +ipset=/beatscheap-nz.com/gfwlist +server=/zbporn.com/127.0.0.1#5335 +ipset=/zbporn.com/gfwlist +server=/verisigninc.com/127.0.0.1#5335 +ipset=/verisigninc.com/gfwlist +server=/lucasentertainment.com/127.0.0.1#5335 +ipset=/lucasentertainment.com/gfwlist +server=/intercomcdn.com/127.0.0.1#5335 +ipset=/intercomcdn.com/gfwlist +server=/embl.fr/127.0.0.1#5335 +ipset=/embl.fr/gfwlist +server=/tunsafe.com/127.0.0.1#5335 +ipset=/tunsafe.com/gfwlist +server=/editorx.com/127.0.0.1#5335 +ipset=/editorx.com/gfwlist +server=/pixanalytics.com/127.0.0.1#5335 +ipset=/pixanalytics.com/gfwlist +server=/wholeplanetfoundation.org/127.0.0.1#5335 +ipset=/wholeplanetfoundation.org/gfwlist +server=/txxx.com/127.0.0.1#5335 +ipset=/txxx.com/gfwlist +server=/lightxxxtube.com/127.0.0.1#5335 +ipset=/lightxxxtube.com/gfwlist +server=/trustsign.ch/127.0.0.1#5335 +ipset=/trustsign.ch/gfwlist +server=/schemer.com/127.0.0.1#5335 +ipset=/schemer.com/gfwlist +server=/pinterest.it/127.0.0.1#5335 +ipset=/pinterest.it/gfwlist +server=/milfpornonly.com/127.0.0.1#5335 +ipset=/milfpornonly.com/gfwlist +server=/msropendata.com/127.0.0.1#5335 +ipset=/msropendata.com/gfwlist +server=/zobry.site/127.0.0.1#5335 +ipset=/zobry.site/gfwlist +server=/ie10.com/127.0.0.1#5335 +ipset=/ie10.com/gfwlist +server=/google.com.py/127.0.0.1#5335 +ipset=/google.com.py/gfwlist +server=/azuredigitaltwins.net/127.0.0.1#5335 +ipset=/azuredigitaltwins.net/gfwlist +server=/pornobom.com.br/127.0.0.1#5335 +ipset=/pornobom.com.br/gfwlist +server=/jmlr.org/127.0.0.1#5335 +ipset=/jmlr.org/gfwlist +server=/bloombergtv.mn/127.0.0.1#5335 +ipset=/bloombergtv.mn/gfwlist +server=/link-o-rama.com/127.0.0.1#5335 +ipset=/link-o-rama.com/gfwlist +server=/drebeatstudio.com/127.0.0.1#5335 +ipset=/drebeatstudio.com/gfwlist +server=/milffox.com/127.0.0.1#5335 +ipset=/milffox.com/gfwlist +server=/digitalcertvalidation.com/127.0.0.1#5335 +ipset=/digitalcertvalidation.com/gfwlist +server=/facebookstories.com/127.0.0.1#5335 +ipset=/facebookstories.com/gfwlist +server=/themercury.com.au/127.0.0.1#5335 +ipset=/themercury.com.au/gfwlist +server=/zoom.com.cn/127.0.0.1#5335 +ipset=/zoom.com.cn/gfwlist +server=/trans500.com/127.0.0.1#5335 +ipset=/trans500.com/gfwlist +server=/faceboof.com/127.0.0.1#5335 +ipset=/faceboof.com/gfwlist +server=/radiofarda.com/127.0.0.1#5335 +ipset=/radiofarda.com/gfwlist +server=/warp.plus/127.0.0.1#5335 +ipset=/warp.plus/gfwlist +server=/paypalbenefits.com/127.0.0.1#5335 +ipset=/paypalbenefits.com/gfwlist +server=/qualcomm.co.id/127.0.0.1#5335 +ipset=/qualcomm.co.id/gfwlist +server=/findacard.com/127.0.0.1#5335 +ipset=/findacard.com/gfwlist +server=/nvidia.fr/127.0.0.1#5335 +ipset=/nvidia.fr/gfwlist +server=/bmw.pt/127.0.0.1#5335 +ipset=/bmw.pt/gfwlist +server=/yaptube.com/127.0.0.1#5335 +ipset=/yaptube.com/gfwlist +server=/studiobeatsbydrdre.com/127.0.0.1#5335 +ipset=/studiobeatsbydrdre.com/gfwlist +server=/rubygems.org/127.0.0.1#5335 +ipset=/rubygems.org/gfwlist +server=/yahoo.com.mx/127.0.0.1#5335 +ipset=/yahoo.com.mx/gfwlist +server=/makecode.org/127.0.0.1#5335 +ipset=/makecode.org/gfwlist +server=/caijinglengyan.com/127.0.0.1#5335 +ipset=/caijinglengyan.com/gfwlist +server=/hentaiworld.tv/127.0.0.1#5335 +ipset=/hentaiworld.tv/gfwlist +server=/nudistbeachporn.com/127.0.0.1#5335 +ipset=/nudistbeachporn.com/gfwlist +server=/ultradonkey.com/127.0.0.1#5335 +ipset=/ultradonkey.com/gfwlist +server=/cbssports.com/127.0.0.1#5335 +ipset=/cbssports.com/gfwlist +server=/tsthai.com/127.0.0.1#5335 +ipset=/tsthai.com/gfwlist +server=/durex.com/127.0.0.1#5335 +ipset=/durex.com/gfwlist +server=/monbeats2013.com/127.0.0.1#5335 +ipset=/monbeats2013.com/gfwlist +server=/tiaz.site/127.0.0.1#5335 +ipset=/tiaz.site/gfwlist +server=/atlantaminidealers.com/127.0.0.1#5335 +ipset=/atlantaminidealers.com/gfwlist +server=/slack-files.com/127.0.0.1#5335 +ipset=/slack-files.com/gfwlist +server=/ddh.gg/127.0.0.1#5335 +ipset=/ddh.gg/gfwlist +server=/espndotcom.tt.omtrdc.net/127.0.0.1#5335 +ipset=/espndotcom.tt.omtrdc.net/gfwlist +server=/lovegirls.cam/127.0.0.1#5335 +ipset=/lovegirls.cam/gfwlist +server=/mastercardworldwide.com/127.0.0.1#5335 +ipset=/mastercardworldwide.com/gfwlist +server=/hentai2read.com/127.0.0.1#5335 +ipset=/hentai2read.com/gfwlist +server=/jove.com/127.0.0.1#5335 +ipset=/jove.com/gfwlist +server=/amateur-fetish.com/127.0.0.1#5335 +ipset=/amateur-fetish.com/gfwlist +server=/illusionze.com/127.0.0.1#5335 +ipset=/illusionze.com/gfwlist +server=/amazon.nl/127.0.0.1#5335 +ipset=/amazon.nl/gfwlist +server=/x3vid.com/127.0.0.1#5335 +ipset=/x3vid.com/gfwlist +server=/bbcpornonly.com/127.0.0.1#5335 +ipset=/bbcpornonly.com/gfwlist +server=/nuki-dokoro.com/127.0.0.1#5335 +ipset=/nuki-dokoro.com/gfwlist +server=/hentai247.net/127.0.0.1#5335 +ipset=/hentai247.net/gfwlist +server=/casquebeatsofficiel-fr.com/127.0.0.1#5335 +ipset=/casquebeatsofficiel-fr.com/gfwlist +server=/dollnight.com/127.0.0.1#5335 +ipset=/dollnight.com/gfwlist +server=/appleone.chat/127.0.0.1#5335 +ipset=/appleone.chat/gfwlist +server=/javhdonline.com/127.0.0.1#5335 +ipset=/javhdonline.com/gfwlist +server=/hentaihub.xxx/127.0.0.1#5335 +ipset=/hentaihub.xxx/gfwlist +server=/latampartneruniversity.com/127.0.0.1#5335 +ipset=/latampartneruniversity.com/gfwlist +server=/facecbook.com/127.0.0.1#5335 +ipset=/facecbook.com/gfwlist +server=/60plusmilfs.com/127.0.0.1#5335 +ipset=/60plusmilfs.com/gfwlist +server=/50plusmilfs.com/127.0.0.1#5335 +ipset=/50plusmilfs.com/gfwlist +server=/myfreeblack.com/127.0.0.1#5335 +ipset=/myfreeblack.com/gfwlist +server=/bmw.com.bn/127.0.0.1#5335 +ipset=/bmw.com.bn/gfwlist +server=/fox49.tv/127.0.0.1#5335 +ipset=/fox49.tv/gfwlist +server=/pearsonelt.ch/127.0.0.1#5335 +ipset=/pearsonelt.ch/gfwlist +server=/collins.in/127.0.0.1#5335 +ipset=/collins.in/gfwlist +server=/thaicherry.com/127.0.0.1#5335 +ipset=/thaicherry.com/gfwlist +server=/chocam.com/127.0.0.1#5335 +ipset=/chocam.com/gfwlist +server=/brill.com/127.0.0.1#5335 +ipset=/brill.com/gfwlist +server=/internetexxxplorer.com/127.0.0.1#5335 +ipset=/internetexxxplorer.com/gfwlist +server=/hboasia.com/127.0.0.1#5335 +ipset=/hboasia.com/gfwlist +server=/mastercard.eu/127.0.0.1#5335 +ipset=/mastercard.eu/gfwlist +server=/accv.es/127.0.0.1#5335 +ipset=/accv.es/gfwlist +server=/bcvp0rtal.com/127.0.0.1#5335 +ipset=/bcvp0rtal.com/gfwlist +server=/fotoscaserasx.com/127.0.0.1#5335 +ipset=/fotoscaserasx.com/gfwlist +server=/udnfunlife.com/127.0.0.1#5335 +ipset=/udnfunlife.com/gfwlist +server=/newsmax.in/127.0.0.1#5335 +ipset=/newsmax.in/gfwlist +server=/youtube.ru/127.0.0.1#5335 +ipset=/youtube.ru/gfwlist +server=/nurofen.es/127.0.0.1#5335 +ipset=/nurofen.es/gfwlist +server=/pscp.tv/127.0.0.1#5335 +ipset=/pscp.tv/gfwlist +server=/excedo.com/127.0.0.1#5335 +ipset=/excedo.com/gfwlist +server=/stocking-tease.com/127.0.0.1#5335 +ipset=/stocking-tease.com/gfwlist +server=/topcartoonsites.com/127.0.0.1#5335 +ipset=/topcartoonsites.com/gfwlist +server=/adult-sex-games.com/127.0.0.1#5335 +ipset=/adult-sex-games.com/gfwlist +server=/homemadeanalporn.com/127.0.0.1#5335 +ipset=/homemadeanalporn.com/gfwlist +server=/adobeexperienceawards.com/127.0.0.1#5335 +ipset=/adobeexperienceawards.com/gfwlist +server=/pki-post.ch/127.0.0.1#5335 +ipset=/pki-post.ch/gfwlist +server=/hp3dsamplepromo.com/127.0.0.1#5335 +ipset=/hp3dsamplepromo.com/gfwlist +server=/mewe.com/127.0.0.1#5335 +ipset=/mewe.com/gfwlist +server=/gputechconf.eu/127.0.0.1#5335 +ipset=/gputechconf.eu/gfwlist +server=/tokyo-sports.co.jp/127.0.0.1#5335 +ipset=/tokyo-sports.co.jp/gfwlist +server=/mcdonalds.se/127.0.0.1#5335 +ipset=/mcdonalds.se/gfwlist +server=/2013beatsbydreshop.com/127.0.0.1#5335 +ipset=/2013beatsbydreshop.com/gfwlist +server=/zooporn.pro/127.0.0.1#5335 +ipset=/zooporn.pro/gfwlist +server=/pornosphere.com/127.0.0.1#5335 +ipset=/pornosphere.com/gfwlist +server=/i91av.org/127.0.0.1#5335 +ipset=/i91av.org/gfwlist +server=/erito.com/127.0.0.1#5335 +ipset=/erito.com/gfwlist +server=/fox9.com/127.0.0.1#5335 +ipset=/fox9.com/gfwlist +server=/durex.ie/127.0.0.1#5335 +ipset=/durex.ie/gfwlist +server=/facebook-program.com/127.0.0.1#5335 +ipset=/facebook-program.com/gfwlist +server=/amebaowndme.com/127.0.0.1#5335 +ipset=/amebaowndme.com/gfwlist +server=/bmwartjourney.com/127.0.0.1#5335 +ipset=/bmwartjourney.com/gfwlist +server=/volvotruckrental.be/127.0.0.1#5335 +ipset=/volvotruckrental.be/gfwlist +server=/paramount.com/127.0.0.1#5335 +ipset=/paramount.com/gfwlist +server=/scene7.com/127.0.0.1#5335 +ipset=/scene7.com/gfwlist +server=/indian-free-xnxx.com/127.0.0.1#5335 +ipset=/indian-free-xnxx.com/gfwlist +server=/easports.com/127.0.0.1#5335 +ipset=/easports.com/gfwlist +server=/avstar04.com/127.0.0.1#5335 +ipset=/avstar04.com/gfwlist +server=/apple.co.uk/127.0.0.1#5335 +ipset=/apple.co.uk/gfwlist +server=/bloombergsurvey.com/127.0.0.1#5335 +ipset=/bloombergsurvey.com/gfwlist +server=/javhdporn.com/127.0.0.1#5335 +ipset=/javhdporn.com/gfwlist +server=/huluapp.com/127.0.0.1#5335 +ipset=/huluapp.com/gfwlist +server=/icloudo.net/127.0.0.1#5335 +ipset=/icloudo.net/gfwlist +server=/vfsforgit.com/127.0.0.1#5335 +ipset=/vfsforgit.com/gfwlist +server=/icloud.sk/127.0.0.1#5335 +ipset=/icloud.sk/gfwlist +server=/adultgamereviews.com/127.0.0.1#5335 +ipset=/adultgamereviews.com/gfwlist +server=/swjedifallenorder.com/127.0.0.1#5335 +ipset=/swjedifallenorder.com/gfwlist +server=/kusugurizanmai.com/127.0.0.1#5335 +ipset=/kusugurizanmai.com/gfwlist +server=/nbcolympics.com/127.0.0.1#5335 +ipset=/nbcolympics.com/gfwlist +server=/sony.pl/127.0.0.1#5335 +ipset=/sony.pl/gfwlist +server=/nownews.com/127.0.0.1#5335 +ipset=/nownews.com/gfwlist +server=/kindle.it/127.0.0.1#5335 +ipset=/kindle.it/gfwlist +server=/foxsports.com.ve/127.0.0.1#5335 +ipset=/foxsports.com.ve/gfwlist +server=/161sex.com/127.0.0.1#5335 +ipset=/161sex.com/gfwlist +server=/jizzle.com/127.0.0.1#5335 +ipset=/jizzle.com/gfwlist +server=/docs.rs/127.0.0.1#5335 +ipset=/docs.rs/gfwlist +server=/verisign.es/127.0.0.1#5335 +ipset=/verisign.es/gfwlist +server=/scharferporno.com/127.0.0.1#5335 +ipset=/scharferporno.com/gfwlist +server=/hentaihaven.xxx/127.0.0.1#5335 +ipset=/hentaihaven.xxx/gfwlist +server=/bmw.com.pe/127.0.0.1#5335 +ipset=/bmw.com.pe/gfwlist +server=/hentaimovieplanet.com/127.0.0.1#5335 +ipset=/hentaimovieplanet.com/gfwlist +server=/democracy.earth/127.0.0.1#5335 +ipset=/democracy.earth/gfwlist +server=/ipodnano.net/127.0.0.1#5335 +ipset=/ipodnano.net/gfwlist +server=/discordcdn.com/127.0.0.1#5335 +ipset=/discordcdn.com/gfwlist +server=/lonestarnaughtygirls.com/127.0.0.1#5335 +ipset=/lonestarnaughtygirls.com/gfwlist +server=/drebeatsdeutschland.net/127.0.0.1#5335 +ipset=/drebeatsdeutschland.net/gfwlist +server=/bestbuyideax.com/127.0.0.1#5335 +ipset=/bestbuyideax.com/gfwlist +server=/xfreehd.com/127.0.0.1#5335 +ipset=/xfreehd.com/gfwlist +server=/ccnsite.com/127.0.0.1#5335 +ipset=/ccnsite.com/gfwlist +server=/volvotrucks.co.uk/127.0.0.1#5335 +ipset=/volvotrucks.co.uk/gfwlist +server=/attspecial.com/127.0.0.1#5335 +ipset=/attspecial.com/gfwlist +server=/momsteachsex.com/127.0.0.1#5335 +ipset=/momsteachsex.com/gfwlist +server=/janor6.net/127.0.0.1#5335 +ipset=/janor6.net/gfwlist +server=/uniswap.org/127.0.0.1#5335 +ipset=/uniswap.org/gfwlist +server=/washa.tv/127.0.0.1#5335 +ipset=/washa.tv/gfwlist +server=/idnike.com/127.0.0.1#5335 +ipset=/idnike.com/gfwlist +server=/bmw-connecteddrive.ch/127.0.0.1#5335 +ipset=/bmw-connecteddrive.ch/gfwlist +server=/directvdealer.com/127.0.0.1#5335 +ipset=/directvdealer.com/gfwlist +server=/awstrust.com/127.0.0.1#5335 +ipset=/awstrust.com/gfwlist +server=/bmw.hr/127.0.0.1#5335 +ipset=/bmw.hr/gfwlist +server=/finishinfo.se/127.0.0.1#5335 +ipset=/finishinfo.se/gfwlist +server=/realmilwaukeenow.com/127.0.0.1#5335 +ipset=/realmilwaukeenow.com/gfwlist +server=/pinterest.at/127.0.0.1#5335 +ipset=/pinterest.at/gfwlist +server=/itunesessentials.com/127.0.0.1#5335 +ipset=/itunesessentials.com/gfwlist +server=/eenike.com/127.0.0.1#5335 +ipset=/eenike.com/gfwlist +server=/cisco-returns.com/127.0.0.1#5335 +ipset=/cisco-returns.com/gfwlist +server=/apple.ro/127.0.0.1#5335 +ipset=/apple.ro/gfwlist +server=/volvotrucks.md/127.0.0.1#5335 +ipset=/volvotrucks.md/gfwlist +server=/appleipodsettlement.com/127.0.0.1#5335 +ipset=/appleipodsettlement.com/gfwlist +server=/shemalehd.sex/127.0.0.1#5335 +ipset=/shemalehd.sex/gfwlist +server=/starbucks.ad/127.0.0.1#5335 +ipset=/starbucks.ad/gfwlist +server=/h-flash.com/127.0.0.1#5335 +ipset=/h-flash.com/gfwlist +server=/rundf665.cyou/127.0.0.1#5335 +ipset=/rundf665.cyou/gfwlist +server=/fastlane.tools/127.0.0.1#5335 +ipset=/fastlane.tools/gfwlist +server=/kindgirls.com/127.0.0.1#5335 +ipset=/kindgirls.com/gfwlist +server=/famousinternetgirls.com/127.0.0.1#5335 +ipset=/famousinternetgirls.com/gfwlist +server=/mcdonalds.com/127.0.0.1#5335 +ipset=/mcdonalds.com/gfwlist +server=/sign.new/127.0.0.1#5335 +ipset=/sign.new/gfwlist +server=/chroniclesec.com/127.0.0.1#5335 +ipset=/chroniclesec.com/gfwlist +server=/ddd-smart.net/127.0.0.1#5335 +ipset=/ddd-smart.net/gfwlist +server=/sextop1.net/127.0.0.1#5335 +ipset=/sextop1.net/gfwlist +server=/xxxtubegf.com/127.0.0.1#5335 +ipset=/xxxtubegf.com/gfwlist +server=/hulugans.com/127.0.0.1#5335 +ipset=/hulugans.com/gfwlist +server=/paheal.net/127.0.0.1#5335 +ipset=/paheal.net/gfwlist +server=/allfet.net/127.0.0.1#5335 +ipset=/allfet.net/gfwlist +server=/pussyporntubes.com/127.0.0.1#5335 +ipset=/pussyporntubes.com/gfwlist +server=/favebook.com/127.0.0.1#5335 +ipset=/favebook.com/gfwlist +server=/beatselectronic.net/127.0.0.1#5335 +ipset=/beatselectronic.net/gfwlist +server=/meetandfuckgames.com/127.0.0.1#5335 +ipset=/meetandfuckgames.com/gfwlist +server=/marvelsuperwar.com/127.0.0.1#5335 +ipset=/marvelsuperwar.com/gfwlist +server=/spotify.map.fastlylb.net/127.0.0.1#5335 +ipset=/spotify.map.fastlylb.net/gfwlist +server=/fastlane.ci/127.0.0.1#5335 +ipset=/fastlane.ci/gfwlist +server=/shemaletrannypics.com/127.0.0.1#5335 +ipset=/shemaletrannypics.com/gfwlist +server=/adulti01.com/127.0.0.1#5335 +ipset=/adulti01.com/gfwlist +server=/applestore.com.tw/127.0.0.1#5335 +ipset=/applestore.com.tw/gfwlist +server=/xnxx-cdn.com/127.0.0.1#5335 +ipset=/xnxx-cdn.com/gfwlist +server=/porn-sex-video.me/127.0.0.1#5335 +ipset=/porn-sex-video.me/gfwlist +server=/raspberrypi.org/127.0.0.1#5335 +ipset=/raspberrypi.org/gfwlist +server=/bloomberg.fm/127.0.0.1#5335 +ipset=/bloomberg.fm/gfwlist +server=/vhxqa2.com/127.0.0.1#5335 +ipset=/vhxqa2.com/gfwlist +server=/mini.by/127.0.0.1#5335 +ipset=/mini.by/gfwlist +server=/girlsfuck-tube.com/127.0.0.1#5335 +ipset=/girlsfuck-tube.com/gfwlist +server=/40momporntube.com/127.0.0.1#5335 +ipset=/40momporntube.com/gfwlist +server=/pornyteen.com/127.0.0.1#5335 +ipset=/pornyteen.com/gfwlist +server=/epigeum.com/127.0.0.1#5335 +ipset=/epigeum.com/gfwlist +server=/salebeatslasteststyle4you.com/127.0.0.1#5335 +ipset=/salebeatslasteststyle4you.com/gfwlist +server=/xxxhentai.net/127.0.0.1#5335 +ipset=/xxxhentai.net/gfwlist +server=/ebay.ie/127.0.0.1#5335 +ipset=/ebay.ie/gfwlist +server=/e-tugra.com/127.0.0.1#5335 +ipset=/e-tugra.com/gfwlist +server=/esm.run/127.0.0.1#5335 +ipset=/esm.run/gfwlist +server=/yahoo.co.bw/127.0.0.1#5335 +ipset=/yahoo.co.bw/gfwlist +server=/dropbox.tech/127.0.0.1#5335 +ipset=/dropbox.tech/gfwlist +server=/badasianpussy.com/127.0.0.1#5335 +ipset=/badasianpussy.com/gfwlist +server=/monsterbeatsbydre-usa.com/127.0.0.1#5335 +ipset=/monsterbeatsbydre-usa.com/gfwlist +server=/coronavirusnow.com/127.0.0.1#5335 +ipset=/coronavirusnow.com/gfwlist +server=/blackamateurfuck.com/127.0.0.1#5335 +ipset=/blackamateurfuck.com/gfwlist +server=/xxxtubezoo.com/127.0.0.1#5335 +ipset=/xxxtubezoo.com/gfwlist +server=/paypal-secure.org/127.0.0.1#5335 +ipset=/paypal-secure.org/gfwlist +server=/ubuntu-touch.io/127.0.0.1#5335 +ipset=/ubuntu-touch.io/gfwlist +server=/venmo-touch.com/127.0.0.1#5335 +ipset=/venmo-touch.com/gfwlist +server=/notepad-plus-plus.org/127.0.0.1#5335 +ipset=/notepad-plus-plus.org/gfwlist +server=/bmw-sports.com/127.0.0.1#5335 +ipset=/bmw-sports.com/gfwlist +server=/creampieforgranny.com/127.0.0.1#5335 +ipset=/creampieforgranny.com/gfwlist +server=/bdsmland.org/127.0.0.1#5335 +ipset=/bdsmland.org/gfwlist +server=/jiuse905.com/127.0.0.1#5335 +ipset=/jiuse905.com/gfwlist +server=/beatscasque-france.com/127.0.0.1#5335 +ipset=/beatscasque-france.com/gfwlist +server=/bmw.ht/127.0.0.1#5335 +ipset=/bmw.ht/gfwlist +server=/yahoo.dk/127.0.0.1#5335 +ipset=/yahoo.dk/gfwlist +server=/hornygirlsonline.org/127.0.0.1#5335 +ipset=/hornygirlsonline.org/gfwlist +server=/yaoiotaku.com/127.0.0.1#5335 +ipset=/yaoiotaku.com/gfwlist +server=/bitsquare.io/127.0.0.1#5335 +ipset=/bitsquare.io/gfwlist +server=/starwarstheoldrepublic.com/127.0.0.1#5335 +ipset=/starwarstheoldrepublic.com/gfwlist +server=/asahicom.jp/127.0.0.1#5335 +ipset=/asahicom.jp/gfwlist +server=/golang.org/127.0.0.1#5335 +ipset=/golang.org/gfwlist +server=/visainfinite.ca/127.0.0.1#5335 +ipset=/visainfinite.ca/gfwlist +server=/bmw.cc/127.0.0.1#5335 +ipset=/bmw.cc/gfwlist +server=/foxnewsnetwork.com/127.0.0.1#5335 +ipset=/foxnewsnetwork.com/gfwlist +server=/visainfiniteluxuryhotels.ca/127.0.0.1#5335 +ipset=/visainfiniteluxuryhotels.ca/gfwlist +server=/bloombergstatus.com/127.0.0.1#5335 +ipset=/bloombergstatus.com/gfwlist +server=/yarininsuyu.com/127.0.0.1#5335 +ipset=/yarininsuyu.com/gfwlist +server=/xxxxvideo.uno/127.0.0.1#5335 +ipset=/xxxxvideo.uno/gfwlist +server=/melonbooks.co.jp/127.0.0.1#5335 +ipset=/melonbooks.co.jp/gfwlist +server=/realamericanstories.info/127.0.0.1#5335 +ipset=/realamericanstories.info/gfwlist +server=/disneyadsales.com/127.0.0.1#5335 +ipset=/disneyadsales.com/gfwlist +server=/needforspeedlightning.com/127.0.0.1#5335 +ipset=/needforspeedlightning.com/gfwlist +server=/ebaycom.com/127.0.0.1#5335 +ipset=/ebaycom.com/gfwlist +server=/d-trust.net/127.0.0.1#5335 +ipset=/d-trust.net/gfwlist +server=/gfpornmovies.com/127.0.0.1#5335 +ipset=/gfpornmovies.com/gfwlist +server=/iphoneacessorios.com.br/127.0.0.1#5335 +ipset=/iphoneacessorios.com.br/gfwlist +server=/redgifs.com/127.0.0.1#5335 +ipset=/redgifs.com/gfwlist +server=/fox26houston.com/127.0.0.1#5335 +ipset=/fox26houston.com/gfwlist +server=/upjav.cc/127.0.0.1#5335 +ipset=/upjav.cc/gfwlist +server=/blazor.net/127.0.0.1#5335 +ipset=/blazor.net/gfwlist +server=/nextwork.com.tw/127.0.0.1#5335 +ipset=/nextwork.com.tw/gfwlist +server=/blogspot.lt/127.0.0.1#5335 +ipset=/blogspot.lt/gfwlist +server=/merakigo.com/127.0.0.1#5335 +ipset=/merakigo.com/gfwlist +server=/onefifteen.org/127.0.0.1#5335 +ipset=/onefifteen.org/gfwlist +server=/life-global.org/127.0.0.1#5335 +ipset=/life-global.org/gfwlist +server=/shockingmovies.com/127.0.0.1#5335 +ipset=/shockingmovies.com/gfwlist +server=/pca.st/127.0.0.1#5335 +ipset=/pca.st/gfwlist +server=/drbizzaro.com/127.0.0.1#5335 +ipset=/drbizzaro.com/gfwlist +server=/camgoddess.tv/127.0.0.1#5335 +ipset=/camgoddess.tv/gfwlist +server=/gaythebest.com/127.0.0.1#5335 +ipset=/gaythebest.com/gfwlist +server=/databank.worldbank.org/127.0.0.1#5335 +ipset=/databank.worldbank.org/gfwlist +server=/6arabs.com/127.0.0.1#5335 +ipset=/6arabs.com/gfwlist +server=/xxxpicz.com/127.0.0.1#5335 +ipset=/xxxpicz.com/gfwlist +server=/volvotrucks.ee/127.0.0.1#5335 +ipset=/volvotrucks.ee/gfwlist +server=/xenoblade.com/127.0.0.1#5335 +ipset=/xenoblade.com/gfwlist +server=/icloud-content.com/127.0.0.1#5335 +ipset=/icloud-content.com/gfwlist +server=/gemfire.net/127.0.0.1#5335 +ipset=/gemfire.net/gfwlist +server=/udn.com.tw/127.0.0.1#5335 +ipset=/udn.com.tw/gfwlist +server=/vivaxnxx.com/127.0.0.1#5335 +ipset=/vivaxnxx.com/gfwlist +server=/forbiddenasian.com/127.0.0.1#5335 +ipset=/forbiddenasian.com/gfwlist +server=/ydn.com.tw/127.0.0.1#5335 +ipset=/ydn.com.tw/gfwlist +server=/mktorest.com/127.0.0.1#5335 +ipset=/mktorest.com/gfwlist +server=/epochtimes.com.tw/127.0.0.1#5335 +ipset=/epochtimes.com.tw/gfwlist +server=/pornhubdeutsch.net/127.0.0.1#5335 +ipset=/pornhubdeutsch.net/gfwlist +server=/ebay-us.com/127.0.0.1#5335 +ipset=/ebay-us.com/gfwlist +server=/volvopenta.com/127.0.0.1#5335 +ipset=/volvopenta.com/gfwlist +server=/faststone.org/127.0.0.1#5335 +ipset=/faststone.org/gfwlist +server=/googledrive.com/127.0.0.1#5335 +ipset=/googledrive.com/gfwlist +server=/mybmw.ca/127.0.0.1#5335 +ipset=/mybmw.ca/gfwlist +server=/iproperty.com/127.0.0.1#5335 +ipset=/iproperty.com/gfwlist +server=/truyen-hentai.fr/127.0.0.1#5335 +ipset=/truyen-hentai.fr/gfwlist +server=/brdteengal.com/127.0.0.1#5335 +ipset=/brdteengal.com/gfwlist +server=/attpurchasing.com/127.0.0.1#5335 +ipset=/attpurchasing.com/gfwlist +server=/hzmn.net/127.0.0.1#5335 +ipset=/hzmn.net/gfwlist +server=/xxxassfuck.com/127.0.0.1#5335 +ipset=/xxxassfuck.com/gfwlist +server=/xvideos-dl.top/127.0.0.1#5335 +ipset=/xvideos-dl.top/gfwlist +server=/adidas.dk/127.0.0.1#5335 +ipset=/adidas.dk/gfwlist +server=/yahoo.com.tj/127.0.0.1#5335 +ipset=/yahoo.com.tj/gfwlist +server=/gamer2-cds.cdn.hinet.net/127.0.0.1#5335 +ipset=/gamer2-cds.cdn.hinet.net/gfwlist +server=/mingky.org/127.0.0.1#5335 +ipset=/mingky.org/gfwlist +server=/ebayenterprise.info/127.0.0.1#5335 +ipset=/ebayenterprise.info/gfwlist +server=/yandex.ee/127.0.0.1#5335 +ipset=/yandex.ee/gfwlist +server=/beatsoutlet.net/127.0.0.1#5335 +ipset=/beatsoutlet.net/gfwlist +server=/amazonvideodirect.com/127.0.0.1#5335 +ipset=/amazonvideodirect.com/gfwlist +server=/bmwtampabay.com/127.0.0.1#5335 +ipset=/bmwtampabay.com/gfwlist +server=/dealbay.com/127.0.0.1#5335 +ipset=/dealbay.com/gfwlist +server=/opensuse.org/127.0.0.1#5335 +ipset=/opensuse.org/gfwlist +server=/zeronet.io/127.0.0.1#5335 +ipset=/zeronet.io/gfwlist +server=/finishinfo.jp/127.0.0.1#5335 +ipset=/finishinfo.jp/gfwlist +server=/pornstreams.tv/127.0.0.1#5335 +ipset=/pornstreams.tv/gfwlist +server=/newmonst1erbeatsto1re.com/127.0.0.1#5335 +ipset=/newmonst1erbeatsto1re.com/gfwlist +server=/qq.design/127.0.0.1#5335 +ipset=/qq.design/gfwlist +server=/townsvillebulletin.com.au/127.0.0.1#5335 +ipset=/townsvillebulletin.com.au/gfwlist +server=/javmuch.com/127.0.0.1#5335 +ipset=/javmuch.com/gfwlist +server=/jbe-platform.com/127.0.0.1#5335 +ipset=/jbe-platform.com/gfwlist +server=/huffpostbrasil.com/127.0.0.1#5335 +ipset=/huffpostbrasil.com/gfwlist +server=/totoleak.com/127.0.0.1#5335 +ipset=/totoleak.com/gfwlist +server=/facebook30.net/127.0.0.1#5335 +ipset=/facebook30.net/gfwlist +server=/mastercard.my/127.0.0.1#5335 +ipset=/mastercard.my/gfwlist +server=/sexarea.org/127.0.0.1#5335 +ipset=/sexarea.org/gfwlist +server=/digicert.com/127.0.0.1#5335 +ipset=/digicert.com/gfwlist +server=/straightouttasomewhere.com/127.0.0.1#5335 +ipset=/straightouttasomewhere.com/gfwlist +server=/vtvan.com/127.0.0.1#5335 +ipset=/vtvan.com/gfwlist +server=/filmesdesexo.blog/127.0.0.1#5335 +ipset=/filmesdesexo.blog/gfwlist +server=/netflixdnstest2.com/127.0.0.1#5335 +ipset=/netflixdnstest2.com/gfwlist +server=/pornoslon.me/127.0.0.1#5335 +ipset=/pornoslon.me/gfwlist +server=/cashpassport.com/127.0.0.1#5335 +ipset=/cashpassport.com/gfwlist +server=/osdn.net/127.0.0.1#5335 +ipset=/osdn.net/gfwlist +server=/doujin-eromanga.com/127.0.0.1#5335 +ipset=/doujin-eromanga.com/gfwlist +server=/youtube.com.ec/127.0.0.1#5335 +ipset=/youtube.com.ec/gfwlist +server=/icloudbox.net/127.0.0.1#5335 +ipset=/icloudbox.net/gfwlist +server=/google.kg/127.0.0.1#5335 +ipset=/google.kg/gfwlist +server=/paypal-proserv.com/127.0.0.1#5335 +ipset=/paypal-proserv.com/gfwlist +server=/cheapbeatsbydreonsale.com/127.0.0.1#5335 +ipset=/cheapbeatsbydreonsale.com/gfwlist +server=/facbool.com/127.0.0.1#5335 +ipset=/facbool.com/gfwlist +server=/tencent.design/127.0.0.1#5335 +ipset=/tencent.design/gfwlist +server=/localizecdn.com/127.0.0.1#5335 +ipset=/localizecdn.com/gfwlist +server=/shadowslaves.com/127.0.0.1#5335 +ipset=/shadowslaves.com/gfwlist +server=/office365tw.com/127.0.0.1#5335 +ipset=/office365tw.com/gfwlist +server=/onedrive.co.uk/127.0.0.1#5335 +ipset=/onedrive.co.uk/gfwlist +server=/xogogo.com/127.0.0.1#5335 +ipset=/xogogo.com/gfwlist +server=/github.blog/127.0.0.1#5335 +ipset=/github.blog/gfwlist +server=/yahoo.com.pk/127.0.0.1#5335 +ipset=/yahoo.com.pk/gfwlist +server=/macromedia.com/127.0.0.1#5335 +ipset=/macromedia.com/gfwlist +server=/appleone.club/127.0.0.1#5335 +ipset=/appleone.club/gfwlist +server=/volvobuses.tn/127.0.0.1#5335 +ipset=/volvobuses.tn/gfwlist +server=/nubilefilms.com/127.0.0.1#5335 +ipset=/nubilefilms.com/gfwlist +server=/admeld.com/127.0.0.1#5335 +ipset=/admeld.com/gfwlist +server=/worldsecuresystems.com/127.0.0.1#5335 +ipset=/worldsecuresystems.com/gfwlist +server=/freeanimalporn.net/127.0.0.1#5335 +ipset=/freeanimalporn.net/gfwlist +server=/redmatureporn.com/127.0.0.1#5335 +ipset=/redmatureporn.com/gfwlist +server=/3dsexgames.biz/127.0.0.1#5335 +ipset=/3dsexgames.biz/gfwlist +server=/voadeewanews.com/127.0.0.1#5335 +ipset=/voadeewanews.com/gfwlist +server=/bttzyw.com/127.0.0.1#5335 +ipset=/bttzyw.com/gfwlist +server=/gorin.jp/127.0.0.1#5335 +ipset=/gorin.jp/gfwlist +server=/pornprosnetwork.com/127.0.0.1#5335 +ipset=/pornprosnetwork.com/gfwlist +server=/singtaoopo.com/127.0.0.1#5335 +ipset=/singtaoopo.com/gfwlist +server=/xkeezmovies.com/127.0.0.1#5335 +ipset=/xkeezmovies.com/gfwlist +server=/bestialitytaboo.tv/127.0.0.1#5335 +ipset=/bestialitytaboo.tv/gfwlist +server=/sexy-models.net/127.0.0.1#5335 +ipset=/sexy-models.net/gfwlist +server=/centrino.com/127.0.0.1#5335 +ipset=/centrino.com/gfwlist +server=/paulsimon-music.com/127.0.0.1#5335 +ipset=/paulsimon-music.com/gfwlist +server=/beatsodre.com/127.0.0.1#5335 +ipset=/beatsodre.com/gfwlist +server=/simcity-buildit.com/127.0.0.1#5335 +ipset=/simcity-buildit.com/gfwlist +server=/jstor.org/127.0.0.1#5335 +ipset=/jstor.org/gfwlist +server=/urlgalleries.net/127.0.0.1#5335 +ipset=/urlgalleries.net/gfwlist +server=/businessinsider.com.pl/127.0.0.1#5335 +ipset=/businessinsider.com.pl/gfwlist +server=/wowyoungporn.com/127.0.0.1#5335 +ipset=/wowyoungporn.com/gfwlist +server=/rbeuroinfo.com/127.0.0.1#5335 +ipset=/rbeuroinfo.com/gfwlist +server=/265sdwe3.com/127.0.0.1#5335 +ipset=/265sdwe3.com/gfwlist +server=/iwank.tv/127.0.0.1#5335 +ipset=/iwank.tv/gfwlist +server=/cdnjs.com/127.0.0.1#5335 +ipset=/cdnjs.com/gfwlist +server=/privateclassics.com/127.0.0.1#5335 +ipset=/privateclassics.com/gfwlist +server=/feedly.com/127.0.0.1#5335 +ipset=/feedly.com/gfwlist +server=/xnxx.tv/127.0.0.1#5335 +ipset=/xnxx.tv/gfwlist +server=/bmw-connecteddrive.fr/127.0.0.1#5335 +ipset=/bmw-connecteddrive.fr/gfwlist +server=/rbnainternational.com/127.0.0.1#5335 +ipset=/rbnainternational.com/gfwlist +server=/wankoz.com/127.0.0.1#5335 +ipset=/wankoz.com/gfwlist +server=/analfuckvideo.com/127.0.0.1#5335 +ipset=/analfuckvideo.com/gfwlist +server=/microsofttradein.com/127.0.0.1#5335 +ipset=/microsofttradein.com/gfwlist +server=/statics-marketingsites-wcus-ms-com.akamaized.net/127.0.0.1#5335 +ipset=/statics-marketingsites-wcus-ms-com.akamaized.net/gfwlist +server=/c4rex.co/127.0.0.1#5335 +ipset=/c4rex.co/gfwlist +server=/fapopedia.net/127.0.0.1#5335 +ipset=/fapopedia.net/gfwlist +server=/kamababa.com/127.0.0.1#5335 +ipset=/kamababa.com/gfwlist +server=/videosdepornografia.blog.br/127.0.0.1#5335 +ipset=/videosdepornografia.blog.br/gfwlist +server=/thomsonreuters.com.au/127.0.0.1#5335 +ipset=/thomsonreuters.com.au/gfwlist +server=/thrixxx.com/127.0.0.1#5335 +ipset=/thrixxx.com/gfwlist +server=/amazontrust.com/127.0.0.1#5335 +ipset=/amazontrust.com/gfwlist +server=/porndroids.com/127.0.0.1#5335 +ipset=/porndroids.com/gfwlist +server=/viddeo-jav.net/127.0.0.1#5335 +ipset=/viddeo-jav.net/gfwlist +server=/qmov.com/127.0.0.1#5335 +ipset=/qmov.com/gfwlist +server=/seasidestory.tokyo/127.0.0.1#5335 +ipset=/seasidestory.tokyo/gfwlist +server=/nikebiz.info/127.0.0.1#5335 +ipset=/nikebiz.info/gfwlist +server=/4hu.tv/127.0.0.1#5335 +ipset=/4hu.tv/gfwlist +server=/crustwebsites.net/127.0.0.1#5335 +ipset=/crustwebsites.net/gfwlist +server=/srtcdn.net/127.0.0.1#5335 +ipset=/srtcdn.net/gfwlist +server=/facebookw.com/127.0.0.1#5335 +ipset=/facebookw.com/gfwlist +server=/monsterbeatsstore.com/127.0.0.1#5335 +ipset=/monsterbeatsstore.com/gfwlist +server=/volvotrucks.id/127.0.0.1#5335 +ipset=/volvotrucks.id/gfwlist +server=/sextubebox.com/127.0.0.1#5335 +ipset=/sextubebox.com/gfwlist +server=/femalefounderscomp.com/127.0.0.1#5335 +ipset=/femalefounderscomp.com/gfwlist +server=/sexecherche.com/127.0.0.1#5335 +ipset=/sexecherche.com/gfwlist +server=/classymomsex.com/127.0.0.1#5335 +ipset=/classymomsex.com/gfwlist +server=/pokemonblackwhite.com/127.0.0.1#5335 +ipset=/pokemonblackwhite.com/gfwlist +server=/monsterbeats-onsale.com/127.0.0.1#5335 +ipset=/monsterbeats-onsale.com/gfwlist +server=/amazonsdi.com/127.0.0.1#5335 +ipset=/amazonsdi.com/gfwlist +server=/iwantgalleries.com/127.0.0.1#5335 +ipset=/iwantgalleries.com/gfwlist +server=/kimosex.com/127.0.0.1#5335 +ipset=/kimosex.com/gfwlist +server=/bdsmstreak.com/127.0.0.1#5335 +ipset=/bdsmstreak.com/gfwlist +server=/optimumssl.com/127.0.0.1#5335 +ipset=/optimumssl.com/gfwlist +server=/sqlserveronlinux.com/127.0.0.1#5335 +ipset=/sqlserveronlinux.com/gfwlist +server=/ctee.com.tw/127.0.0.1#5335 +ipset=/ctee.com.tw/gfwlist +server=/eiu.com/127.0.0.1#5335 +ipset=/eiu.com/gfwlist +server=/doujin-info.net/127.0.0.1#5335 +ipset=/doujin-info.net/gfwlist +server=/dropboxpartners.com/127.0.0.1#5335 +ipset=/dropboxpartners.com/gfwlist +server=/scholar.google.gr/127.0.0.1#5335 +ipset=/scholar.google.gr/gfwlist +server=/bitflyer.com/127.0.0.1#5335 +ipset=/bitflyer.com/gfwlist +server=/appleworldwidedeveloper.hb-api.omtrdc.net/127.0.0.1#5335 +ipset=/appleworldwidedeveloper.hb-api.omtrdc.net/gfwlist +server=/oneapi.com/127.0.0.1#5335 +ipset=/oneapi.com/gfwlist +server=/amazon.it/127.0.0.1#5335 +ipset=/amazon.it/gfwlist +server=/mvideoporno.xxx/127.0.0.1#5335 +ipset=/mvideoporno.xxx/gfwlist +server=/fappeningthots.com/127.0.0.1#5335 +ipset=/fappeningthots.com/gfwlist +server=/buddymedia.com/127.0.0.1#5335 +ipset=/buddymedia.com/gfwlist +server=/ipod.com.fr/127.0.0.1#5335 +ipset=/ipod.com.fr/gfwlist +server=/thegithubshop.com/127.0.0.1#5335 +ipset=/thegithubshop.com/gfwlist +server=/mu6bce1c.xyz/127.0.0.1#5335 +ipset=/mu6bce1c.xyz/gfwlist +server=/google.com.gh/127.0.0.1#5335 +ipset=/google.com.gh/gfwlist +server=/stacksnippets.net/127.0.0.1#5335 +ipset=/stacksnippets.net/gfwlist +server=/shenyunperformingarts.org/127.0.0.1#5335 +ipset=/shenyunperformingarts.org/gfwlist +server=/gotporn.com/127.0.0.1#5335 +ipset=/gotporn.com/gfwlist +server=/voabambara.com/127.0.0.1#5335 +ipset=/voabambara.com/gfwlist +server=/porngub.com/127.0.0.1#5335 +ipset=/porngub.com/gfwlist +server=/vscode-cdn.net/127.0.0.1#5335 +ipset=/vscode-cdn.net/gfwlist +server=/sexsim.com/127.0.0.1#5335 +ipset=/sexsim.com/gfwlist +server=/veet.co.kr/127.0.0.1#5335 +ipset=/veet.co.kr/gfwlist +server=/pandamovies.pw/127.0.0.1#5335 +ipset=/pandamovies.pw/gfwlist +server=/paypal-center.info/127.0.0.1#5335 +ipset=/paypal-center.info/gfwlist +server=/watch-my-gf.com/127.0.0.1#5335 +ipset=/watch-my-gf.com/gfwlist +server=/zohowebstatic.com/127.0.0.1#5335 +ipset=/zohowebstatic.com/gfwlist +server=/paypal-marketing.com/127.0.0.1#5335 +ipset=/paypal-marketing.com/gfwlist +server=/hackthedrive.com/127.0.0.1#5335 +ipset=/hackthedrive.com/gfwlist +server=/liketwice.com/127.0.0.1#5335 +ipset=/liketwice.com/gfwlist +server=/target.com/127.0.0.1#5335 +ipset=/target.com/gfwlist +server=/viu.tv/127.0.0.1#5335 +ipset=/viu.tv/gfwlist +server=/art1lib.com/127.0.0.1#5335 +ipset=/art1lib.com/gfwlist +server=/theuab.net/127.0.0.1#5335 +ipset=/theuab.net/gfwlist +server=/djreprints.com/127.0.0.1#5335 +ipset=/djreprints.com/gfwlist +server=/sexu.com/127.0.0.1#5335 +ipset=/sexu.com/gfwlist +server=/2013pascherbeatsbydre.com/127.0.0.1#5335 +ipset=/2013pascherbeatsbydre.com/gfwlist +server=/sspanel.net/127.0.0.1#5335 +ipset=/sspanel.net/gfwlist +server=/vmwxw.com/127.0.0.1#5335 +ipset=/vmwxw.com/gfwlist +server=/proctoscopeexam.com/127.0.0.1#5335 +ipset=/proctoscopeexam.com/gfwlist +server=/facebook4business.com/127.0.0.1#5335 +ipset=/facebook4business.com/gfwlist +server=/mdnkids.com/127.0.0.1#5335 +ipset=/mdnkids.com/gfwlist +server=/realclearenergy.org/127.0.0.1#5335 +ipset=/realclearenergy.org/gfwlist +server=/jusmynote.wordpress.com/127.0.0.1#5335 +ipset=/jusmynote.wordpress.com/gfwlist +server=/monsterbeatsbydreshop.com/127.0.0.1#5335 +ipset=/monsterbeatsbydreshop.com/gfwlist +server=/silkengirl.com/127.0.0.1#5335 +ipset=/silkengirl.com/gfwlist +server=/pornbest.org/127.0.0.1#5335 +ipset=/pornbest.org/gfwlist +server=/visa.hk/127.0.0.1#5335 +ipset=/visa.hk/gfwlist +server=/bmw-connecteddrive.lt/127.0.0.1#5335 +ipset=/bmw-connecteddrive.lt/gfwlist +server=/monsterdrebeats-usa.net/127.0.0.1#5335 +ipset=/monsterdrebeats-usa.net/gfwlist +server=/foxneo.com/127.0.0.1#5335 +ipset=/foxneo.com/gfwlist +server=/cisco-warrantyfinder.com/127.0.0.1#5335 +ipset=/cisco-warrantyfinder.com/gfwlist +server=/weverse.io/127.0.0.1#5335 +ipset=/weverse.io/gfwlist +server=/ftvgirls.com/127.0.0.1#5335 +ipset=/ftvgirls.com/gfwlist +server=/bukkake.link/127.0.0.1#5335 +ipset=/bukkake.link/gfwlist +server=/snapchat.com/127.0.0.1#5335 +ipset=/snapchat.com/gfwlist +server=/primecurves.com/127.0.0.1#5335 +ipset=/primecurves.com/gfwlist +server=/ahpornotube.com/127.0.0.1#5335 +ipset=/ahpornotube.com/gfwlist +server=/iwantporn.net/127.0.0.1#5335 +ipset=/iwantporn.net/gfwlist +server=/bmwzentrum.com/127.0.0.1#5335 +ipset=/bmwzentrum.com/gfwlist +server=/mastercard.de/127.0.0.1#5335 +ipset=/mastercard.de/gfwlist +server=/alphabet.org.uk/127.0.0.1#5335 +ipset=/alphabet.org.uk/gfwlist +server=/umamusume.akamaized.net/127.0.0.1#5335 +ipset=/umamusume.akamaized.net/gfwlist +server=/yahoo.com.uy/127.0.0.1#5335 +ipset=/yahoo.com.uy/gfwlist +server=/mwhentai.net/127.0.0.1#5335 +ipset=/mwhentai.net/gfwlist +server=/hbogoasia.hk/127.0.0.1#5335 +ipset=/hbogoasia.hk/gfwlist +server=/bmw-connecteddrive.co.nz/127.0.0.1#5335 +ipset=/bmw-connecteddrive.co.nz/gfwlist +server=/hotmail.net/127.0.0.1#5335 +ipset=/hotmail.net/gfwlist +server=/youtube.com.ly/127.0.0.1#5335 +ipset=/youtube.com.ly/gfwlist +server=/caime.xyz/127.0.0.1#5335 +ipset=/caime.xyz/gfwlist +server=/curve.fi/127.0.0.1#5335 +ipset=/curve.fi/gfwlist +server=/monsterbeatsshops.net/127.0.0.1#5335 +ipset=/monsterbeatsshops.net/gfwlist +server=/vanish.sk/127.0.0.1#5335 +ipset=/vanish.sk/gfwlist +server=/hentai2.net/127.0.0.1#5335 +ipset=/hentai2.net/gfwlist +server=/enfabebe.com/127.0.0.1#5335 +ipset=/enfabebe.com/gfwlist +server=/bmwgroup.jobs/127.0.0.1#5335 +ipset=/bmwgroup.jobs/gfwlist +server=/lacomics.org/127.0.0.1#5335 +ipset=/lacomics.org/gfwlist +server=/homedepot-static.com/127.0.0.1#5335 +ipset=/homedepot-static.com/gfwlist +server=/postyourgirls.ws/127.0.0.1#5335 +ipset=/postyourgirls.ws/gfwlist +server=/onlynudes.org/127.0.0.1#5335 +ipset=/onlynudes.org/gfwlist +server=/leagueoflegends.co.kr/127.0.0.1#5335 +ipset=/leagueoflegends.co.kr/gfwlist +server=/mastercard.com.mx/127.0.0.1#5335 +ipset=/mastercard.com.mx/gfwlist +server=/duoweiweek.com/127.0.0.1#5335 +ipset=/duoweiweek.com/gfwlist +server=/sexvideos.tel/127.0.0.1#5335 +ipset=/sexvideos.tel/gfwlist +server=/integral7.com/127.0.0.1#5335 +ipset=/integral7.com/gfwlist +server=/now.sh/127.0.0.1#5335 +ipset=/now.sh/gfwlist +server=/madshi.net/127.0.0.1#5335 +ipset=/madshi.net/gfwlist +server=/visa.com/127.0.0.1#5335 +ipset=/visa.com/gfwlist +server=/techstreet.com/127.0.0.1#5335 +ipset=/techstreet.com/gfwlist +server=/vanish.es/127.0.0.1#5335 +ipset=/vanish.es/gfwlist +server=/adventofcode.com/127.0.0.1#5335 +ipset=/adventofcode.com/gfwlist +server=/mastercard.com.gt/127.0.0.1#5335 +ipset=/mastercard.com.gt/gfwlist +server=/applestore.co.uk/127.0.0.1#5335 +ipset=/applestore.co.uk/gfwlist +server=/sheflix.com/127.0.0.1#5335 +ipset=/sheflix.com/gfwlist +server=/9ccms.me/127.0.0.1#5335 +ipset=/9ccms.me/gfwlist +server=/verisign.com.vn/127.0.0.1#5335 +ipset=/verisign.com.vn/gfwlist +server=/apple.ca/127.0.0.1#5335 +ipset=/apple.ca/gfwlist +server=/thehulubraintrust.com/127.0.0.1#5335 +ipset=/thehulubraintrust.com/gfwlist +server=/older-women-porn.com/127.0.0.1#5335 +ipset=/older-women-porn.com/gfwlist +server=/5q5zu9f1.me/127.0.0.1#5335 +ipset=/5q5zu9f1.me/gfwlist +server=/whereilive.com.au/127.0.0.1#5335 +ipset=/whereilive.com.au/gfwlist +server=/microsoftsilverlight.com/127.0.0.1#5335 +ipset=/microsoftsilverlight.com/gfwlist +server=/bmw-motorrad.fi/127.0.0.1#5335 +ipset=/bmw-motorrad.fi/gfwlist +server=/sextubedot.com/127.0.0.1#5335 +ipset=/sextubedot.com/gfwlist +server=/whatbrowser.org/127.0.0.1#5335 +ipset=/whatbrowser.org/gfwlist +server=/amateurgirlfriends.net/127.0.0.1#5335 +ipset=/amateurgirlfriends.net/gfwlist +server=/globalsign.nl/127.0.0.1#5335 +ipset=/globalsign.nl/gfwlist +server=/mini.my/127.0.0.1#5335 +ipset=/mini.my/gfwlist +server=/clubhouseapi.com/127.0.0.1#5335 +ipset=/clubhouseapi.com/gfwlist +server=/sale-nikeshoes.com/127.0.0.1#5335 +ipset=/sale-nikeshoes.com/gfwlist +server=/fapxl.com/127.0.0.1#5335 +ipset=/fapxl.com/gfwlist +server=/hentaicore.net/127.0.0.1#5335 +ipset=/hentaicore.net/gfwlist +server=/wsjmediakit.com/127.0.0.1#5335 +ipset=/wsjmediakit.com/gfwlist +server=/haskell.org/127.0.0.1#5335 +ipset=/haskell.org/gfwlist +server=/moviesarena.com/127.0.0.1#5335 +ipset=/moviesarena.com/gfwlist +server=/beatsbydreaustraliaonline.com/127.0.0.1#5335 +ipset=/beatsbydreaustraliaonline.com/gfwlist +server=/scholar.google.fi/127.0.0.1#5335 +ipset=/scholar.google.fi/gfwlist +server=/visa.com.gy/127.0.0.1#5335 +ipset=/visa.com.gy/gfwlist +server=/ebaystore77.com/127.0.0.1#5335 +ipset=/ebaystore77.com/gfwlist +server=/cheapmonsterbeatsbydrdre.com/127.0.0.1#5335 +ipset=/cheapmonsterbeatsbydrdre.com/gfwlist +server=/scientificamerican.com/127.0.0.1#5335 +ipset=/scientificamerican.com/gfwlist +server=/ebayopensource.com/127.0.0.1#5335 +ipset=/ebayopensource.com/gfwlist +server=/xtube.com/127.0.0.1#5335 +ipset=/xtube.com/gfwlist +server=/0xxx.ws/127.0.0.1#5335 +ipset=/0xxx.ws/gfwlist +server=/omobi.cc/127.0.0.1#5335 +ipset=/omobi.cc/gfwlist +server=/bestbuy-audio.com/127.0.0.1#5335 +ipset=/bestbuy-audio.com/gfwlist +server=/herodex.org/127.0.0.1#5335 +ipset=/herodex.org/gfwlist +server=/deps.info/127.0.0.1#5335 +ipset=/deps.info/gfwlist +server=/hpsuresupply.com/127.0.0.1#5335 +ipset=/hpsuresupply.com/gfwlist +server=/worldflipper.jp/127.0.0.1#5335 +ipset=/worldflipper.jp/gfwlist +server=/foxneodigital.com/127.0.0.1#5335 +ipset=/foxneodigital.com/gfwlist +server=/hpccp.com/127.0.0.1#5335 +ipset=/hpccp.com/gfwlist +server=/mini.no/127.0.0.1#5335 +ipset=/mini.no/gfwlist +server=/amateursexstart.nl/127.0.0.1#5335 +ipset=/amateursexstart.nl/gfwlist +server=/accountkit.com/127.0.0.1#5335 +ipset=/accountkit.com/gfwlist +server=/facebookcovers.org/127.0.0.1#5335 +ipset=/facebookcovers.org/gfwlist +server=/besztbuy.com/127.0.0.1#5335 +ipset=/besztbuy.com/gfwlist +server=/digitaldesire.com/127.0.0.1#5335 +ipset=/digitaldesire.com/gfwlist +server=/canon.com.mk/127.0.0.1#5335 +ipset=/canon.com.mk/gfwlist +server=/applemusicfestival.com/127.0.0.1#5335 +ipset=/applemusicfestival.com/gfwlist +server=/xn--d4ty0ojsqzfd.com/127.0.0.1#5335 +ipset=/xn--d4ty0ojsqzfd.com/gfwlist +server=/notion.new/127.0.0.1#5335 +ipset=/notion.new/gfwlist +server=/scholar.google.co.th/127.0.0.1#5335 +ipset=/scholar.google.co.th/gfwlist +server=/4beatsbydre.com/127.0.0.1#5335 +ipset=/4beatsbydre.com/gfwlist +server=/5beatsbydre.com/127.0.0.1#5335 +ipset=/5beatsbydre.com/gfwlist +server=/erotera.blogo.jp/127.0.0.1#5335 +ipset=/erotera.blogo.jp/gfwlist +server=/beatsbydreheadphonesolo.com/127.0.0.1#5335 +ipset=/beatsbydreheadphonesolo.com/gfwlist +server=/mostly.jp/127.0.0.1#5335 +ipset=/mostly.jp/gfwlist +server=/drebeats-singapore.com/127.0.0.1#5335 +ipset=/drebeats-singapore.com/gfwlist +server=/google.lt/127.0.0.1#5335 +ipset=/google.lt/gfwlist +server=/disneylatino.com/127.0.0.1#5335 +ipset=/disneylatino.com/gfwlist +server=/grupobmw.com/127.0.0.1#5335 +ipset=/grupobmw.com/gfwlist +server=/minisolife.co.za/127.0.0.1#5335 +ipset=/minisolife.co.za/gfwlist +server=/fox-news.com/127.0.0.1#5335 +ipset=/fox-news.com/gfwlist +server=/monsterbeatsbydrdrecanada.com/127.0.0.1#5335 +ipset=/monsterbeatsbydrdrecanada.com/gfwlist +server=/pinterest.co.kr/127.0.0.1#5335 +ipset=/pinterest.co.kr/gfwlist +server=/localbitcoins.com/127.0.0.1#5335 +ipset=/localbitcoins.com/gfwlist +server=/propertysex.com/127.0.0.1#5335 +ipset=/propertysex.com/gfwlist +server=/h2porn.com/127.0.0.1#5335 +ipset=/h2porn.com/gfwlist +server=/acmvalidations.com/127.0.0.1#5335 +ipset=/acmvalidations.com/gfwlist +server=/appleid-uk.us/127.0.0.1#5335 +ipset=/appleid-uk.us/gfwlist +server=/appyq.com/127.0.0.1#5335 +ipset=/appyq.com/gfwlist +server=/wasmer.io/127.0.0.1#5335 +ipset=/wasmer.io/gfwlist +server=/enfamil.com/127.0.0.1#5335 +ipset=/enfamil.com/gfwlist +server=/pejyyah.com/127.0.0.1#5335 +ipset=/pejyyah.com/gfwlist +server=/enfamil.pl/127.0.0.1#5335 +ipset=/enfamil.pl/gfwlist +server=/cy22.tv/127.0.0.1#5335 +ipset=/cy22.tv/gfwlist +server=/ebayexpress.sg/127.0.0.1#5335 +ipset=/ebayexpress.sg/gfwlist +server=/casualhomemadesex.com/127.0.0.1#5335 +ipset=/casualhomemadesex.com/gfwlist +server=/91porn.com/127.0.0.1#5335 +ipset=/91porn.com/gfwlist +server=/ffotolia.com/127.0.0.1#5335 +ipset=/ffotolia.com/gfwlist +server=/gfotolia.com/127.0.0.1#5335 +ipset=/gfotolia.com/gfwlist +server=/bmw-tunisia.com/127.0.0.1#5335 +ipset=/bmw-tunisia.com/gfwlist +server=/alphera.ca/127.0.0.1#5335 +ipset=/alphera.ca/gfwlist +server=/tubinge.com/127.0.0.1#5335 +ipset=/tubinge.com/gfwlist +server=/ibeatsbydre.com/127.0.0.1#5335 +ipset=/ibeatsbydre.com/gfwlist +server=/spotify.design/127.0.0.1#5335 +ipset=/spotify.design/gfwlist +server=/zzcartoon.com/127.0.0.1#5335 +ipset=/zzcartoon.com/gfwlist +server=/ladyboygold.eu/127.0.0.1#5335 +ipset=/ladyboygold.eu/gfwlist +server=/lethalhardcorevr.com/127.0.0.1#5335 +ipset=/lethalhardcorevr.com/gfwlist +server=/retroclassicporn.com/127.0.0.1#5335 +ipset=/retroclassicporn.com/gfwlist +server=/ipadmini.lk/127.0.0.1#5335 +ipset=/ipadmini.lk/gfwlist +server=/9anime.cz/127.0.0.1#5335 +ipset=/9anime.cz/gfwlist +server=/shadowsocks.com/127.0.0.1#5335 +ipset=/shadowsocks.com/gfwlist +server=/chla3.com/127.0.0.1#5335 +ipset=/chla3.com/gfwlist +server=/young-webcam.net/127.0.0.1#5335 +ipset=/young-webcam.net/gfwlist +server=/vilavpn2.xyz/127.0.0.1#5335 +ipset=/vilavpn2.xyz/gfwlist +server=/durexindia.com/127.0.0.1#5335 +ipset=/durexindia.com/gfwlist +server=/protonmail.com/127.0.0.1#5335 +ipset=/protonmail.com/gfwlist +server=/aplestore.com/127.0.0.1#5335 +ipset=/aplestore.com/gfwlist +server=/scholar.google.hn/127.0.0.1#5335 +ipset=/scholar.google.hn/gfwlist +server=/youtube.com.es/127.0.0.1#5335 +ipset=/youtube.com.es/gfwlist +server=/letmejerk.fun/127.0.0.1#5335 +ipset=/letmejerk.fun/gfwlist +server=/movefrees.com/127.0.0.1#5335 +ipset=/movefrees.com/gfwlist +server=/medium.com/127.0.0.1#5335 +ipset=/medium.com/gfwlist +server=/insidemacintosh.com/127.0.0.1#5335 +ipset=/insidemacintosh.com/gfwlist +server=/gslink.us/127.0.0.1#5335 +ipset=/gslink.us/gfwlist +server=/ehwiki.org/127.0.0.1#5335 +ipset=/ehwiki.org/gfwlist +server=/twhentai.com/127.0.0.1#5335 +ipset=/twhentai.com/gfwlist +server=/terapeak.com/127.0.0.1#5335 +ipset=/terapeak.com/gfwlist +server=/fbooktaiwan.com/127.0.0.1#5335 +ipset=/fbooktaiwan.com/gfwlist +server=/bmw.am/127.0.0.1#5335 +ipset=/bmw.am/gfwlist +server=/gisplanning.com/127.0.0.1#5335 +ipset=/gisplanning.com/gfwlist +server=/bmw.com.ni/127.0.0.1#5335 +ipset=/bmw.com.ni/gfwlist +server=/bestlistofporn.com/127.0.0.1#5335 +ipset=/bestlistofporn.com/gfwlist +server=/beatspills.com/127.0.0.1#5335 +ipset=/beatspills.com/gfwlist +server=/volvobuses.ru/127.0.0.1#5335 +ipset=/volvobuses.ru/gfwlist +server=/18p2p.com/127.0.0.1#5335 +ipset=/18p2p.com/gfwlist +server=/pinterest.hu/127.0.0.1#5335 +ipset=/pinterest.hu/gfwlist +server=/hackfacebook.com/127.0.0.1#5335 +ipset=/hackfacebook.com/gfwlist +server=/f6988.com/127.0.0.1#5335 +ipset=/f6988.com/gfwlist +server=/luxuretv.fun/127.0.0.1#5335 +ipset=/luxuretv.fun/gfwlist +server=/veet.de/127.0.0.1#5335 +ipset=/veet.de/gfwlist +server=/wordpress.com/127.0.0.1#5335 +ipset=/wordpress.com/gfwlist +server=/bridgestone.com.co/127.0.0.1#5335 +ipset=/bridgestone.com.co/gfwlist +server=/ricefever.com/127.0.0.1#5335 +ipset=/ricefever.com/gfwlist +server=/spotify.com.edgesuite.net/127.0.0.1#5335 +ipset=/spotify.com.edgesuite.net/gfwlist +server=/paypal-optimizer.com/127.0.0.1#5335 +ipset=/paypal-optimizer.com/gfwlist +server=/xvds.tv/127.0.0.1#5335 +ipset=/xvds.tv/gfwlist +server=/soirt4.fun/127.0.0.1#5335 +ipset=/soirt4.fun/gfwlist +server=/jav-subtitles.com/127.0.0.1#5335 +ipset=/jav-subtitles.com/gfwlist +server=/rhodeislandbmw.com/127.0.0.1#5335 +ipset=/rhodeislandbmw.com/gfwlist +server=/videoxxxporn.biz/127.0.0.1#5335 +ipset=/videoxxxporn.biz/gfwlist +server=/xtubezoo.com/127.0.0.1#5335 +ipset=/xtubezoo.com/gfwlist +server=/beatsbydre-headphonesshop.com/127.0.0.1#5335 +ipset=/beatsbydre-headphonesshop.com/gfwlist +server=/beejp.net/127.0.0.1#5335 +ipset=/beejp.net/gfwlist +server=/pornvideobb.com/127.0.0.1#5335 +ipset=/pornvideobb.com/gfwlist +server=/famifun.com.tw/127.0.0.1#5335 +ipset=/famifun.com.tw/gfwlist +server=/beatsbestdeals.com/127.0.0.1#5335 +ipset=/beatsbestdeals.com/gfwlist +server=/24porn.com/127.0.0.1#5335 +ipset=/24porn.com/gfwlist +server=/uguisupapa.net/127.0.0.1#5335 +ipset=/uguisupapa.net/gfwlist +server=/xnxvideos.org/127.0.0.1#5335 +ipset=/xnxvideos.org/gfwlist +server=/bromite.org/127.0.0.1#5335 +ipset=/bromite.org/gfwlist +server=/airitilibrary.com/127.0.0.1#5335 +ipset=/airitilibrary.com/gfwlist +server=/applestore.cc/127.0.0.1#5335 +ipset=/applestore.cc/gfwlist +server=/itunbes.com/127.0.0.1#5335 +ipset=/itunbes.com/gfwlist +server=/btec.co.uk/127.0.0.1#5335 +ipset=/btec.co.uk/gfwlist +server=/intercomassets.com/127.0.0.1#5335 +ipset=/intercomassets.com/gfwlist +server=/rocksdb.org/127.0.0.1#5335 +ipset=/rocksdb.org/gfwlist +server=/foxnewssunday.com/127.0.0.1#5335 +ipset=/foxnewssunday.com/gfwlist +server=/flowtype.org/127.0.0.1#5335 +ipset=/flowtype.org/gfwlist +server=/alivercm.com/127.0.0.1#5335 +ipset=/alivercm.com/gfwlist +server=/clipsex.asia/127.0.0.1#5335 +ipset=/clipsex.asia/gfwlist +server=/futpromos.com/127.0.0.1#5335 +ipset=/futpromos.com/gfwlist +server=/hutpromos.com/127.0.0.1#5335 +ipset=/hutpromos.com/gfwlist +server=/science.org/127.0.0.1#5335 +ipset=/science.org/gfwlist +server=/blogspot.vn/127.0.0.1#5335 +ipset=/blogspot.vn/gfwlist +server=/webkitgtk.org/127.0.0.1#5335 +ipset=/webkitgtk.org/gfwlist +server=/bmw.co.id/127.0.0.1#5335 +ipset=/bmw.co.id/gfwlist +server=/mcrouter.org/127.0.0.1#5335 +ipset=/mcrouter.org/gfwlist +server=/nushemale.com/127.0.0.1#5335 +ipset=/nushemale.com/gfwlist +server=/hdpornvideo.xxx/127.0.0.1#5335 +ipset=/hdpornvideo.xxx/gfwlist +server=/planetsuzy.org/127.0.0.1#5335 +ipset=/planetsuzy.org/gfwlist +server=/avelip.com/127.0.0.1#5335 +ipset=/avelip.com/gfwlist +server=/akamaietpcompromisedcnctest.com/127.0.0.1#5335 +ipset=/akamaietpcompromisedcnctest.com/gfwlist +server=/falundafa.org.tw/127.0.0.1#5335 +ipset=/falundafa.org.tw/gfwlist +server=/darkcategories.com/127.0.0.1#5335 +ipset=/darkcategories.com/gfwlist +server=/japanesegirlspictures.com/127.0.0.1#5335 +ipset=/japanesegirlspictures.com/gfwlist +server=/hotescortdusseldorf.com/127.0.0.1#5335 +ipset=/hotescortdusseldorf.com/gfwlist +server=/sg1lib.org/127.0.0.1#5335 +ipset=/sg1lib.org/gfwlist +server=/monsterbeatsheadphone.com/127.0.0.1#5335 +ipset=/monsterbeatsheadphone.com/gfwlist +server=/videosporno.life/127.0.0.1#5335 +ipset=/videosporno.life/gfwlist +server=/intel.mk/127.0.0.1#5335 +ipset=/intel.mk/gfwlist +server=/paypalsurvey.com/127.0.0.1#5335 +ipset=/paypalsurvey.com/gfwlist +server=/bmw-calgary.ca/127.0.0.1#5335 +ipset=/bmw-calgary.ca/gfwlist +server=/foxmediacloud.com/127.0.0.1#5335 +ipset=/foxmediacloud.com/gfwlist +server=/cloudflaressl.com/127.0.0.1#5335 +ipset=/cloudflaressl.com/gfwlist +server=/kastatic.org/127.0.0.1#5335 +ipset=/kastatic.org/gfwlist +server=/via0.com/127.0.0.1#5335 +ipset=/via0.com/gfwlist +server=/kindleoasisnews.com/127.0.0.1#5335 +ipset=/kindleoasisnews.com/gfwlist +server=/hulugermany.com/127.0.0.1#5335 +ipset=/hulugermany.com/gfwlist +server=/el-ladies.com/127.0.0.1#5335 +ipset=/el-ladies.com/gfwlist +server=/foxnewsaffiliates.com/127.0.0.1#5335 +ipset=/foxnewsaffiliates.com/gfwlist +server=/beatsdreinau.com/127.0.0.1#5335 +ipset=/beatsdreinau.com/gfwlist +server=/supremacy.com/127.0.0.1#5335 +ipset=/supremacy.com/gfwlist +server=/appleaccount.net/127.0.0.1#5335 +ipset=/appleaccount.net/gfwlist +server=/paypal-support.com/127.0.0.1#5335 +ipset=/paypal-support.com/gfwlist +server=/trithucvn.org/127.0.0.1#5335 +ipset=/trithucvn.org/gfwlist +server=/visanet.net/127.0.0.1#5335 +ipset=/visanet.net/gfwlist +server=/appleid-applemx.com/127.0.0.1#5335 +ipset=/appleid-applemx.com/gfwlist +server=/google.co.id/127.0.0.1#5335 +ipset=/google.co.id/gfwlist +server=/computingreviews.com/127.0.0.1#5335 +ipset=/computingreviews.com/gfwlist +server=/nejm.org/127.0.0.1#5335 +ipset=/nejm.org/gfwlist +server=/qprize.com/127.0.0.1#5335 +ipset=/qprize.com/gfwlist +server=/huluhuluhuluhulu10.work/127.0.0.1#5335 +ipset=/huluhuluhuluhulu10.work/gfwlist +server=/mostpopularpornsites.com/127.0.0.1#5335 +ipset=/mostpopularpornsites.com/gfwlist +server=/directvmurfreesborotn.com/127.0.0.1#5335 +ipset=/directvmurfreesborotn.com/gfwlist +server=/xbox.eu/127.0.0.1#5335 +ipset=/xbox.eu/gfwlist +server=/18h.mm-cg.com/127.0.0.1#5335 +ipset=/18h.mm-cg.com/gfwlist +server=/porncrash.com/127.0.0.1#5335 +ipset=/porncrash.com/gfwlist +server=/foxsports.com/127.0.0.1#5335 +ipset=/foxsports.com/gfwlist +server=/advertisercommunity.com/127.0.0.1#5335 +ipset=/advertisercommunity.com/gfwlist +server=/bestporngames.com/127.0.0.1#5335 +ipset=/bestporngames.com/gfwlist +server=/3movs.xyz/127.0.0.1#5335 +ipset=/3movs.xyz/gfwlist +server=/travelex.fr/127.0.0.1#5335 +ipset=/travelex.fr/gfwlist +server=/facboox.com/127.0.0.1#5335 +ipset=/facboox.com/gfwlist +server=/newsexxxx.com/127.0.0.1#5335 +ipset=/newsexxxx.com/gfwlist +server=/lysol.co.cr/127.0.0.1#5335 +ipset=/lysol.co.cr/gfwlist +server=/unity.com/127.0.0.1#5335 +ipset=/unity.com/gfwlist +server=/hentai2012.com/127.0.0.1#5335 +ipset=/hentai2012.com/gfwlist +server=/vkmessenger.com/127.0.0.1#5335 +ipset=/vkmessenger.com/gfwlist +server=/nettyinternet.com/127.0.0.1#5335 +ipset=/nettyinternet.com/gfwlist +server=/youtube.de/127.0.0.1#5335 +ipset=/youtube.de/gfwlist +server=/amateurxx.org/127.0.0.1#5335 +ipset=/amateurxx.org/gfwlist +server=/guardianapis.com/127.0.0.1#5335 +ipset=/guardianapis.com/gfwlist +server=/veet.co.in/127.0.0.1#5335 +ipset=/veet.co.in/gfwlist +server=/harperacademic.com/127.0.0.1#5335 +ipset=/harperacademic.com/gfwlist +server=/keepmovingwithmovefree.com/127.0.0.1#5335 +ipset=/keepmovingwithmovefree.com/gfwlist +server=/bridgestone.com/127.0.0.1#5335 +ipset=/bridgestone.com/gfwlist +server=/vk-portal.net/127.0.0.1#5335 +ipset=/vk-portal.net/gfwlist +server=/webobjects.com/127.0.0.1#5335 +ipset=/webobjects.com/gfwlist +server=/nikestore.com/127.0.0.1#5335 +ipset=/nikestore.com/gfwlist +server=/ipfs.best-practice.se/127.0.0.1#5335 +ipset=/ipfs.best-practice.se/gfwlist +server=/pse.is/127.0.0.1#5335 +ipset=/pse.is/gfwlist +server=/volvobuses.it/127.0.0.1#5335 +ipset=/volvobuses.it/gfwlist +server=/ganjing.com/127.0.0.1#5335 +ipset=/ganjing.com/gfwlist +server=/crazy-amateurs.com/127.0.0.1#5335 +ipset=/crazy-amateurs.com/gfwlist +server=/youtube.co.tz/127.0.0.1#5335 +ipset=/youtube.co.tz/gfwlist +server=/fullhdxxx.com/127.0.0.1#5335 +ipset=/fullhdxxx.com/gfwlist +server=/paypal.so/127.0.0.1#5335 +ipset=/paypal.so/gfwlist +server=/aiv-cdn.net/127.0.0.1#5335 +ipset=/aiv-cdn.net/gfwlist +server=/pinterest.com/127.0.0.1#5335 +ipset=/pinterest.com/gfwlist +server=/mktdns.com/127.0.0.1#5335 +ipset=/mktdns.com/gfwlist +server=/api.ai/127.0.0.1#5335 +ipset=/api.ai/gfwlist +server=/iafd.com/127.0.0.1#5335 +ipset=/iafd.com/gfwlist +server=/videoleak.me/127.0.0.1#5335 +ipset=/videoleak.me/gfwlist +server=/meadjohnson.com.tw/127.0.0.1#5335 +ipset=/meadjohnson.com.tw/gfwlist +server=/googleearth.com/127.0.0.1#5335 +ipset=/googleearth.com/gfwlist +server=/celebsporno.com/127.0.0.1#5335 +ipset=/celebsporno.com/gfwlist +server=/megaphone.fm/127.0.0.1#5335 +ipset=/megaphone.fm/gfwlist +server=/xh-porn.com/127.0.0.1#5335 +ipset=/xh-porn.com/gfwlist +server=/sextreffen-portale.com/127.0.0.1#5335 +ipset=/sextreffen-portale.com/gfwlist +server=/hypodermicinjectiononline.com/127.0.0.1#5335 +ipset=/hypodermicinjectiononline.com/gfwlist +server=/akastream.net/127.0.0.1#5335 +ipset=/akastream.net/gfwlist +server=/appletvapp.apple/127.0.0.1#5335 +ipset=/appletvapp.apple/gfwlist +server=/clarivate.com/127.0.0.1#5335 +ipset=/clarivate.com/gfwlist +server=/blogspot.com.ee/127.0.0.1#5335 +ipset=/blogspot.com.ee/gfwlist +server=/pwabuilder.com/127.0.0.1#5335 +ipset=/pwabuilder.com/gfwlist +server=/rushporn.online/127.0.0.1#5335 +ipset=/rushporn.online/gfwlist +server=/hanzhen.xmulib.org/127.0.0.1#5335 +ipset=/hanzhen.xmulib.org/gfwlist +server=/centrino.net/127.0.0.1#5335 +ipset=/centrino.net/gfwlist +server=/facebooksignup.net/127.0.0.1#5335 +ipset=/facebooksignup.net/gfwlist +server=/vfsco.com.tr/127.0.0.1#5335 +ipset=/vfsco.com.tr/gfwlist +server=/milfs-gone-wild.com/127.0.0.1#5335 +ipset=/milfs-gone-wild.com/gfwlist +server=/chillingo.com/127.0.0.1#5335 +ipset=/chillingo.com/gfwlist +server=/pornvidhd.club/127.0.0.1#5335 +ipset=/pornvidhd.club/gfwlist +server=/hentaicovid.com/127.0.0.1#5335 +ipset=/hentaicovid.com/gfwlist +server=/adidas.se/127.0.0.1#5335 +ipset=/adidas.se/gfwlist +server=/vfsco.co.za/127.0.0.1#5335 +ipset=/vfsco.co.za/gfwlist +server=/artnudegalleries.com/127.0.0.1#5335 +ipset=/artnudegalleries.com/gfwlist +server=/sextubexxl.com/127.0.0.1#5335 +ipset=/sextubexxl.com/gfwlist +server=/redxxx.cc/127.0.0.1#5335 +ipset=/redxxx.cc/gfwlist +server=/arabxn.com/127.0.0.1#5335 +ipset=/arabxn.com/gfwlist +server=/camvideos.tv/127.0.0.1#5335 +ipset=/camvideos.tv/gfwlist +server=/herokuapp.com/127.0.0.1#5335 +ipset=/herokuapp.com/gfwlist +server=/beatsmusic.com/127.0.0.1#5335 +ipset=/beatsmusic.com/gfwlist +server=/youtube.jp/127.0.0.1#5335 +ipset=/youtube.jp/gfwlist +server=/scathd.com/127.0.0.1#5335 +ipset=/scathd.com/gfwlist +server=/sextoystop.com/127.0.0.1#5335 +ipset=/sextoystop.com/gfwlist +server=/camstagestudio.com/127.0.0.1#5335 +ipset=/camstagestudio.com/gfwlist +server=/ccstatic.org/127.0.0.1#5335 +ipset=/ccstatic.org/gfwlist +server=/gettyimages.fr/127.0.0.1#5335 +ipset=/gettyimages.fr/gfwlist +server=/fury.blog/127.0.0.1#5335 +ipset=/fury.blog/gfwlist +server=/maileoch.com/127.0.0.1#5335 +ipset=/maileoch.com/gfwlist +server=/nextwork.com.hk/127.0.0.1#5335 +ipset=/nextwork.com.hk/gfwlist +server=/1bigclub.com/127.0.0.1#5335 +ipset=/1bigclub.com/gfwlist +server=/bmw.by/127.0.0.1#5335 +ipset=/bmw.by/gfwlist +server=/mitpressjournals.org/127.0.0.1#5335 +ipset=/mitpressjournals.org/gfwlist +server=/gobeatsye.com/127.0.0.1#5335 +ipset=/gobeatsye.com/gfwlist +server=/xn--d1acpjx3f.xn--p1ai/127.0.0.1#5335 +ipset=/xn--d1acpjx3f.xn--p1ai/gfwlist +server=/lcgirls.com/127.0.0.1#5335 +ipset=/lcgirls.com/gfwlist +server=/spizoo.com/127.0.0.1#5335 +ipset=/spizoo.com/gfwlist +server=/pricelessafrica.com/127.0.0.1#5335 +ipset=/pricelessafrica.com/gfwlist +server=/fox42kptm.com/127.0.0.1#5335 +ipset=/fox42kptm.com/gfwlist +server=/xhot.pro/127.0.0.1#5335 +ipset=/xhot.pro/gfwlist +server=/html5rocks.com/127.0.0.1#5335 +ipset=/html5rocks.com/gfwlist +server=/ieee-aess.org/127.0.0.1#5335 +ipset=/ieee-aess.org/gfwlist +server=/zoo-hardcore.com/127.0.0.1#5335 +ipset=/zoo-hardcore.com/gfwlist +server=/pictocum.com/127.0.0.1#5335 +ipset=/pictocum.com/gfwlist +server=/zukunftswerkstatt.de/127.0.0.1#5335 +ipset=/zukunftswerkstatt.de/gfwlist +server=/mangahasu.se/127.0.0.1#5335 +ipset=/mangahasu.se/gfwlist +server=/fox10news.com/127.0.0.1#5335 +ipset=/fox10news.com/gfwlist +server=/intel.co.kr/127.0.0.1#5335 +ipset=/intel.co.kr/gfwlist +server=/seematureporn.com/127.0.0.1#5335 +ipset=/seematureporn.com/gfwlist +server=/vfsco.be/127.0.0.1#5335 +ipset=/vfsco.be/gfwlist +server=/atnext.com/127.0.0.1#5335 +ipset=/atnext.com/gfwlist +server=/zooyouporn.com/127.0.0.1#5335 +ipset=/zooyouporn.com/gfwlist +server=/damnhotz.com/127.0.0.1#5335 +ipset=/damnhotz.com/gfwlist +server=/asmhentai.com/127.0.0.1#5335 +ipset=/asmhentai.com/gfwlist +server=/fairmarket.com/127.0.0.1#5335 +ipset=/fairmarket.com/gfwlist +server=/scandalplanet.com/127.0.0.1#5335 +ipset=/scandalplanet.com/gfwlist +server=/chocolatey.org/127.0.0.1#5335 +ipset=/chocolatey.org/gfwlist +server=/iceporncasting.com/127.0.0.1#5335 +ipset=/iceporncasting.com/gfwlist +server=/imperial.insendi.com/127.0.0.1#5335 +ipset=/imperial.insendi.com/gfwlist +server=/illusnoi.com/127.0.0.1#5335 +ipset=/illusnoi.com/gfwlist +server=/intellij.com/127.0.0.1#5335 +ipset=/intellij.com/gfwlist +server=/wxoyt.com/127.0.0.1#5335 +ipset=/wxoyt.com/gfwlist +server=/shopeemobile.com/127.0.0.1#5335 +ipset=/shopeemobile.com/gfwlist +server=/mini-connected.com/127.0.0.1#5335 +ipset=/mini-connected.com/gfwlist +server=/pornfoolery.com/127.0.0.1#5335 +ipset=/pornfoolery.com/gfwlist +server=/wowgirls.com/127.0.0.1#5335 +ipset=/wowgirls.com/gfwlist +server=/polygon.com/127.0.0.1#5335 +ipset=/polygon.com/gfwlist +server=/sexbombo.com/127.0.0.1#5335 +ipset=/sexbombo.com/gfwlist +server=/intellij.net/127.0.0.1#5335 +ipset=/intellij.net/gfwlist +server=/sankei-kaihatsu.co.jp/127.0.0.1#5335 +ipset=/sankei-kaihatsu.co.jp/gfwlist +server=/truyen-hentai.com/127.0.0.1#5335 +ipset=/truyen-hentai.com/gfwlist +server=/minisexdoll.com/127.0.0.1#5335 +ipset=/minisexdoll.com/gfwlist +server=/yahoo.nl/127.0.0.1#5335 +ipset=/yahoo.nl/gfwlist +server=/telex.cc/127.0.0.1#5335 +ipset=/telex.cc/gfwlist +server=/volvopenta.com.br/127.0.0.1#5335 +ipset=/volvopenta.com.br/gfwlist +server=/golosameriki.com/127.0.0.1#5335 +ipset=/golosameriki.com/gfwlist +server=/videosmadeathome.com/127.0.0.1#5335 +ipset=/videosmadeathome.com/gfwlist +server=/chemnetbase.com/127.0.0.1#5335 +ipset=/chemnetbase.com/gfwlist +server=/facebookgroups.com/127.0.0.1#5335 +ipset=/facebookgroups.com/gfwlist +server=/akamaiphillipines.com/127.0.0.1#5335 +ipset=/akamaiphillipines.com/gfwlist +server=/thefacebook.net/127.0.0.1#5335 +ipset=/thefacebook.net/gfwlist +server=/cozydrdrebeats.com/127.0.0.1#5335 +ipset=/cozydrdrebeats.com/gfwlist +server=/onlineinstagram.com/127.0.0.1#5335 +ipset=/onlineinstagram.com/gfwlist +server=/velostrata.com/127.0.0.1#5335 +ipset=/velostrata.com/gfwlist +server=/ebay.pk/127.0.0.1#5335 +ipset=/ebay.pk/gfwlist +server=/hkcnews.com/127.0.0.1#5335 +ipset=/hkcnews.com/gfwlist +server=/yahoo.co.in/127.0.0.1#5335 +ipset=/yahoo.co.in/gfwlist +server=/anallivecams.com/127.0.0.1#5335 +ipset=/anallivecams.com/gfwlist +server=/kenyaraha.net/127.0.0.1#5335 +ipset=/kenyaraha.net/gfwlist +server=/bondagesm.xyz/127.0.0.1#5335 +ipset=/bondagesm.xyz/gfwlist +server=/openstreetmap.net/127.0.0.1#5335 +ipset=/openstreetmap.net/gfwlist +server=/scholar.google.at/127.0.0.1#5335 +ipset=/scholar.google.at/gfwlist +server=/llnwi.net/127.0.0.1#5335 +ipset=/llnwi.net/gfwlist +server=/vxnbbrs.xyz/127.0.0.1#5335 +ipset=/vxnbbrs.xyz/gfwlist +server=/githubhackathon.com/127.0.0.1#5335 +ipset=/githubhackathon.com/gfwlist +server=/beatsbydreuk.com/127.0.0.1#5335 +ipset=/beatsbydreuk.com/gfwlist +server=/hkgolden.media/127.0.0.1#5335 +ipset=/hkgolden.media/gfwlist +server=/erome.com/127.0.0.1#5335 +ipset=/erome.com/gfwlist +server=/realclearhistory.com/127.0.0.1#5335 +ipset=/realclearhistory.com/gfwlist +server=/ccdc.cam.ac.uk/127.0.0.1#5335 +ipset=/ccdc.cam.ac.uk/gfwlist +server=/wildfanny.com/127.0.0.1#5335 +ipset=/wildfanny.com/gfwlist +server=/duckduckgo.nl/127.0.0.1#5335 +ipset=/duckduckgo.nl/gfwlist +server=/furrypornvideos.com/127.0.0.1#5335 +ipset=/furrypornvideos.com/gfwlist +server=/xxxvideos247.com/127.0.0.1#5335 +ipset=/xxxvideos247.com/gfwlist +server=/studioluxus.com/127.0.0.1#5335 +ipset=/studioluxus.com/gfwlist +server=/1337x.gd/127.0.0.1#5335 +ipset=/1337x.gd/gfwlist +server=/alphabet.es/127.0.0.1#5335 +ipset=/alphabet.es/gfwlist +server=/sharethis.com/127.0.0.1#5335 +ipset=/sharethis.com/gfwlist +server=/japan-forward.com/127.0.0.1#5335 +ipset=/japan-forward.com/gfwlist +server=/docker.io/127.0.0.1#5335 +ipset=/docker.io/gfwlist +server=/firefox.com/127.0.0.1#5335 +ipset=/firefox.com/gfwlist +server=/tiktokcdn.com/127.0.0.1#5335 +ipset=/tiktokcdn.com/gfwlist +server=/logicoolg.com/127.0.0.1#5335 +ipset=/logicoolg.com/gfwlist +server=/youtube.ch/127.0.0.1#5335 +ipset=/youtube.ch/gfwlist +server=/boysfood.com/127.0.0.1#5335 +ipset=/boysfood.com/gfwlist +server=/babesinporn.com/127.0.0.1#5335 +ipset=/babesinporn.com/gfwlist +server=/ptt2.cc/127.0.0.1#5335 +ipset=/ptt2.cc/gfwlist +server=/applecomputer.co.in/127.0.0.1#5335 +ipset=/applecomputer.co.in/gfwlist +server=/ipodcentre.nl/127.0.0.1#5335 +ipset=/ipodcentre.nl/gfwlist +server=/byteoversea.com/127.0.0.1#5335 +ipset=/byteoversea.com/gfwlist +server=/nikeprice.com/127.0.0.1#5335 +ipset=/nikeprice.com/gfwlist +server=/seemilfporn.com/127.0.0.1#5335 +ipset=/seemilfporn.com/gfwlist +server=/vrpornmania.com/127.0.0.1#5335 +ipset=/vrpornmania.com/gfwlist +server=/jqueryui.com/127.0.0.1#5335 +ipset=/jqueryui.com/gfwlist +server=/planetminecraft.com/127.0.0.1#5335 +ipset=/planetminecraft.com/gfwlist +server=/cableav.tv/127.0.0.1#5335 +ipset=/cableav.tv/gfwlist +server=/disneycareers.com/127.0.0.1#5335 +ipset=/disneycareers.com/gfwlist +server=/dyttapi.com/127.0.0.1#5335 +ipset=/dyttapi.com/gfwlist +server=/redhdtube.xxx/127.0.0.1#5335 +ipset=/redhdtube.xxx/gfwlist +server=/dirtyflix.com/127.0.0.1#5335 +ipset=/dirtyflix.com/gfwlist +server=/vfsco.kr/127.0.0.1#5335 +ipset=/vfsco.kr/gfwlist +server=/apple-watch.com.ru/127.0.0.1#5335 +ipset=/apple-watch.com.ru/gfwlist +server=/thetimes.ie/127.0.0.1#5335 +ipset=/thetimes.ie/gfwlist +server=/paypalgivingfund.org/127.0.0.1#5335 +ipset=/paypalgivingfund.org/gfwlist +server=/volvobuses.com.br/127.0.0.1#5335 +ipset=/volvobuses.com.br/gfwlist +server=/drdreheadphonesusstore.com/127.0.0.1#5335 +ipset=/drdreheadphonesusstore.com/gfwlist +server=/minikelowna.com/127.0.0.1#5335 +ipset=/minikelowna.com/gfwlist +server=/k9vidz.com/127.0.0.1#5335 +ipset=/k9vidz.com/gfwlist +server=/msocdn.com/127.0.0.1#5335 +ipset=/msocdn.com/gfwlist +server=/gettyimages.fi/127.0.0.1#5335 +ipset=/gettyimages.fi/gfwlist +server=/voadeewaradio.com/127.0.0.1#5335 +ipset=/voadeewaradio.com/gfwlist +server=/3dhentaix.com/127.0.0.1#5335 +ipset=/3dhentaix.com/gfwlist +server=/instagramphoto.com/127.0.0.1#5335 +ipset=/instagramphoto.com/gfwlist +server=/zeenite.com/127.0.0.1#5335 +ipset=/zeenite.com/gfwlist +server=/truthordarepics.com/127.0.0.1#5335 +ipset=/truthordarepics.com/gfwlist +server=/hpdrivers.org/127.0.0.1#5335 +ipset=/hpdrivers.org/gfwlist +server=/opengraphprotocol.com/127.0.0.1#5335 +ipset=/opengraphprotocol.com/gfwlist +server=/adult789.futoka.jp/127.0.0.1#5335 +ipset=/adult789.futoka.jp/gfwlist +server=/fimfiction.net/127.0.0.1#5335 +ipset=/fimfiction.net/gfwlist +server=/bmw-carit.de/127.0.0.1#5335 +ipset=/bmw-carit.de/gfwlist +server=/thepornblender.com/127.0.0.1#5335 +ipset=/thepornblender.com/gfwlist +server=/machos.net/127.0.0.1#5335 +ipset=/machos.net/gfwlist +server=/onedrive.live.com/127.0.0.1#5335 +ipset=/onedrive.live.com/gfwlist +server=/att.tv/127.0.0.1#5335 +ipset=/att.tv/gfwlist +server=/pornmaster.fun/127.0.0.1#5335 +ipset=/pornmaster.fun/gfwlist +server=/latticedata.com/127.0.0.1#5335 +ipset=/latticedata.com/gfwlist +server=/imsrbx.xyz/127.0.0.1#5335 +ipset=/imsrbx.xyz/gfwlist +server=/bmwgroup-classic.com/127.0.0.1#5335 +ipset=/bmwgroup-classic.com/gfwlist +server=/vanish.co.uk/127.0.0.1#5335 +ipset=/vanish.co.uk/gfwlist +server=/fox2detroit.com/127.0.0.1#5335 +ipset=/fox2detroit.com/gfwlist +server=/heywire.com/127.0.0.1#5335 +ipset=/heywire.com/gfwlist +server=/intell.com/127.0.0.1#5335 +ipset=/intell.com/gfwlist +server=/91fans.org/127.0.0.1#5335 +ipset=/91fans.org/gfwlist +server=/roborecall.com/127.0.0.1#5335 +ipset=/roborecall.com/gfwlist +server=/collabora.org/127.0.0.1#5335 +ipset=/collabora.org/gfwlist +server=/syosetu.com/127.0.0.1#5335 +ipset=/syosetu.com/gfwlist +server=/hxcsxs.pro/127.0.0.1#5335 +ipset=/hxcsxs.pro/gfwlist +server=/lusthero.com/127.0.0.1#5335 +ipset=/lusthero.com/gfwlist +server=/xxmovz.com/127.0.0.1#5335 +ipset=/xxmovz.com/gfwlist +server=/ipadair.jp/127.0.0.1#5335 +ipset=/ipadair.jp/gfwlist +server=/ams.org/127.0.0.1#5335 +ipset=/ams.org/gfwlist +server=/disney.bg/127.0.0.1#5335 +ipset=/disney.bg/gfwlist +server=/bmw.at/127.0.0.1#5335 +ipset=/bmw.at/gfwlist +server=/ahentaitv.com/127.0.0.1#5335 +ipset=/ahentaitv.com/gfwlist +server=/drebeats-monster.com/127.0.0.1#5335 +ipset=/drebeats-monster.com/gfwlist +server=/canon.ca/127.0.0.1#5335 +ipset=/canon.ca/gfwlist +server=/neowin.net/127.0.0.1#5335 +ipset=/neowin.net/gfwlist +server=/wholefoods.com/127.0.0.1#5335 +ipset=/wholefoods.com/gfwlist +server=/now.com.hk/127.0.0.1#5335 +ipset=/now.com.hk/gfwlist +server=/mini.com.ec/127.0.0.1#5335 +ipset=/mini.com.ec/gfwlist +server=/mypornads.com/127.0.0.1#5335 +ipset=/mypornads.com/gfwlist +server=/xoxoteiras.com/127.0.0.1#5335 +ipset=/xoxoteiras.com/gfwlist +server=/midatlanticbmwmotorcycles.com/127.0.0.1#5335 +ipset=/midatlanticbmwmotorcycles.com/gfwlist +server=/imgbb.com/127.0.0.1#5335 +ipset=/imgbb.com/gfwlist +server=/1drv.com/127.0.0.1#5335 +ipset=/1drv.com/gfwlist +server=/nikedawn.com/127.0.0.1#5335 +ipset=/nikedawn.com/gfwlist +server=/kiji.ca/127.0.0.1#5335 +ipset=/kiji.ca/gfwlist +server=/bbc.co.uk/127.0.0.1#5335 +ipset=/bbc.co.uk/gfwlist +server=/ospray.org/127.0.0.1#5335 +ipset=/ospray.org/gfwlist +server=/universalstudioshollywood.com/127.0.0.1#5335 +ipset=/universalstudioshollywood.com/gfwlist +server=/pornhd8k.net/127.0.0.1#5335 +ipset=/pornhd8k.net/gfwlist +server=/mkt.com/127.0.0.1#5335 +ipset=/mkt.com/gfwlist +server=/seselah.com/127.0.0.1#5335 +ipset=/seselah.com/gfwlist +server=/rferl.org/127.0.0.1#5335 +ipset=/rferl.org/gfwlist +server=/boulx.com/127.0.0.1#5335 +ipset=/boulx.com/gfwlist +server=/google.com.tj/127.0.0.1#5335 +ipset=/google.com.tj/gfwlist +server=/yandex.sx/127.0.0.1#5335 +ipset=/yandex.sx/gfwlist +server=/xxxccc4.com/127.0.0.1#5335 +ipset=/xxxccc4.com/gfwlist +server=/x.company/127.0.0.1#5335 +ipset=/x.company/gfwlist +server=/itnel.com/127.0.0.1#5335 +ipset=/itnel.com/gfwlist +server=/wrds-www.wharton.upenn.edu/127.0.0.1#5335 +ipset=/wrds-www.wharton.upenn.edu/gfwlist +server=/crazyxxx3dworld.net/127.0.0.1#5335 +ipset=/crazyxxx3dworld.net/gfwlist +server=/voabangla.com/127.0.0.1#5335 +ipset=/voabangla.com/gfwlist +server=/weinvoiceit.com/127.0.0.1#5335 +ipset=/weinvoiceit.com/gfwlist +server=/googlefiber.net/127.0.0.1#5335 +ipset=/googlefiber.net/gfwlist +server=/pornditos.com/127.0.0.1#5335 +ipset=/pornditos.com/gfwlist +server=/yourporngod.com/127.0.0.1#5335 +ipset=/yourporngod.com/gfwlist +server=/pornhits.com/127.0.0.1#5335 +ipset=/pornhits.com/gfwlist +server=/muncloud.dog/127.0.0.1#5335 +ipset=/muncloud.dog/gfwlist +server=/eprintsw.com/127.0.0.1#5335 +ipset=/eprintsw.com/gfwlist +server=/adobegov.com/127.0.0.1#5335 +ipset=/adobegov.com/gfwlist +server=/vmwareviewpoint.com/127.0.0.1#5335 +ipset=/vmwareviewpoint.com/gfwlist +server=/momtube.club/127.0.0.1#5335 +ipset=/momtube.club/gfwlist +server=/barrons-conferences.com/127.0.0.1#5335 +ipset=/barrons-conferences.com/gfwlist +server=/beatsbydrestudio-australia.com/127.0.0.1#5335 +ipset=/beatsbydrestudio-australia.com/gfwlist +server=/foxdcg.com/127.0.0.1#5335 +ipset=/foxdcg.com/gfwlist +server=/canonfoundation.org/127.0.0.1#5335 +ipset=/canonfoundation.org/gfwlist +server=/netpornsex.com/127.0.0.1#5335 +ipset=/netpornsex.com/gfwlist +server=/maturescam.com/127.0.0.1#5335 +ipset=/maturescam.com/gfwlist +server=/b6b33.com/127.0.0.1#5335 +ipset=/b6b33.com/gfwlist +server=/applewatch.tw/127.0.0.1#5335 +ipset=/applewatch.tw/gfwlist +server=/papalah.com/127.0.0.1#5335 +ipset=/papalah.com/gfwlist +server=/facewbook.co/127.0.0.1#5335 +ipset=/facewbook.co/gfwlist +server=/rea.design/127.0.0.1#5335 +ipset=/rea.design/gfwlist +server=/sexyhumorgames.com/127.0.0.1#5335 +ipset=/sexyhumorgames.com/gfwlist +server=/facecbook.org/127.0.0.1#5335 +ipset=/facecbook.org/gfwlist +server=/foxcincy.net/127.0.0.1#5335 +ipset=/foxcincy.net/gfwlist +server=/foxsports.co/127.0.0.1#5335 +ipset=/foxsports.co/gfwlist +server=/bridgestone-asiapacific.com/127.0.0.1#5335 +ipset=/bridgestone-asiapacific.com/gfwlist +server=/xnxxhd.tv/127.0.0.1#5335 +ipset=/xnxxhd.tv/gfwlist +server=/fury.dev/127.0.0.1#5335 +ipset=/fury.dev/gfwlist +server=/blogspot.tw/127.0.0.1#5335 +ipset=/blogspot.tw/gfwlist +server=/cstatic.net/127.0.0.1#5335 +ipset=/cstatic.net/gfwlist +server=/rstatic.net/127.0.0.1#5335 +ipset=/rstatic.net/gfwlist +server=/annamilk.com/127.0.0.1#5335 +ipset=/annamilk.com/gfwlist +server=/itunes.ca/127.0.0.1#5335 +ipset=/itunes.ca/gfwlist +server=/nikeadidas.com/127.0.0.1#5335 +ipset=/nikeadidas.com/gfwlist +server=/huffpostarabi.com/127.0.0.1#5335 +ipset=/huffpostarabi.com/gfwlist +server=/connectionseducation.com/127.0.0.1#5335 +ipset=/connectionseducation.com/gfwlist +server=/notion-static.com/127.0.0.1#5335 +ipset=/notion-static.com/gfwlist +server=/asknudes.com/127.0.0.1#5335 +ipset=/asknudes.com/gfwlist +server=/yandex.aero/127.0.0.1#5335 +ipset=/yandex.aero/gfwlist +server=/freebeacon.com/127.0.0.1#5335 +ipset=/freebeacon.com/gfwlist +server=/google.com.bo/127.0.0.1#5335 +ipset=/google.com.bo/gfwlist +server=/esperanzagomez.org/127.0.0.1#5335 +ipset=/esperanzagomez.org/gfwlist +server=/ibeatsbydre.cc/127.0.0.1#5335 +ipset=/ibeatsbydre.cc/gfwlist +server=/azureedge-test.net/127.0.0.1#5335 +ipset=/azureedge-test.net/gfwlist +server=/disneyiejobs.com/127.0.0.1#5335 +ipset=/disneyiejobs.com/gfwlist +server=/post852.com/127.0.0.1#5335 +ipset=/post852.com/gfwlist +server=/services-apple.net/127.0.0.1#5335 +ipset=/services-apple.net/gfwlist +server=/55dndn.com/127.0.0.1#5335 +ipset=/55dndn.com/gfwlist +server=/beatsdrdrecuffie.net/127.0.0.1#5335 +ipset=/beatsdrdrecuffie.net/gfwlist +server=/fotiolia.com/127.0.0.1#5335 +ipset=/fotiolia.com/gfwlist +server=/sonytc.co.jp/127.0.0.1#5335 +ipset=/sonytc.co.jp/gfwlist +server=/new-akiba.com/127.0.0.1#5335 +ipset=/new-akiba.com/gfwlist +server=/asebay.com/127.0.0.1#5335 +ipset=/asebay.com/gfwlist +server=/sexhdmovs.com/127.0.0.1#5335 +ipset=/sexhdmovs.com/gfwlist +server=/yeyuehuachao13.com/127.0.0.1#5335 +ipset=/yeyuehuachao13.com/gfwlist +server=/intel.ga/127.0.0.1#5335 +ipset=/intel.ga/gfwlist +server=/webex.fr/127.0.0.1#5335 +ipset=/webex.fr/gfwlist +server=/paypal-community.com/127.0.0.1#5335 +ipset=/paypal-community.com/gfwlist +server=/foxsoccerplus.tv/127.0.0.1#5335 +ipset=/foxsoccerplus.tv/gfwlist +server=/foxnews.net/127.0.0.1#5335 +ipset=/foxnews.net/gfwlist +server=/collegejournal.com/127.0.0.1#5335 +ipset=/collegejournal.com/gfwlist +server=/digitalplaygroundnetwork.com/127.0.0.1#5335 +ipset=/digitalplaygroundnetwork.com/gfwlist +server=/adultgamingroom.com/127.0.0.1#5335 +ipset=/adultgamingroom.com/gfwlist +server=/yourpelvicexam.com/127.0.0.1#5335 +ipset=/yourpelvicexam.com/gfwlist +server=/minisokorea.com/127.0.0.1#5335 +ipset=/minisokorea.com/gfwlist +server=/durex.com.ng/127.0.0.1#5335 +ipset=/durex.com.ng/gfwlist +server=/redislabs.com/127.0.0.1#5335 +ipset=/redislabs.com/gfwlist +server=/dettol.com.au/127.0.0.1#5335 +ipset=/dettol.com.au/gfwlist +server=/kingofpics.com/127.0.0.1#5335 +ipset=/kingofpics.com/gfwlist +server=/freebrowser.org/127.0.0.1#5335 +ipset=/freebrowser.org/gfwlist +server=/originalhulu.com/127.0.0.1#5335 +ipset=/originalhulu.com/gfwlist +server=/pornsites.xxx/127.0.0.1#5335 +ipset=/pornsites.xxx/gfwlist +server=/yahoo.cz/127.0.0.1#5335 +ipset=/yahoo.cz/gfwlist +server=/wholefoodsmarket.com/127.0.0.1#5335 +ipset=/wholefoodsmarket.com/gfwlist +server=/youtube.pa/127.0.0.1#5335 +ipset=/youtube.pa/gfwlist +server=/firstpelvicexam.com/127.0.0.1#5335 +ipset=/firstpelvicexam.com/gfwlist +server=/av-channel.com/127.0.0.1#5335 +ipset=/av-channel.com/gfwlist +server=/lfai.foundation/127.0.0.1#5335 +ipset=/lfai.foundation/gfwlist +server=/urchin.com/127.0.0.1#5335 +ipset=/urchin.com/gfwlist +server=/extremetube.com/127.0.0.1#5335 +ipset=/extremetube.com/gfwlist +server=/mommystoytime.com/127.0.0.1#5335 +ipset=/mommystoytime.com/gfwlist +server=/dlmobilegarena-a.akamaihd.net/127.0.0.1#5335 +ipset=/dlmobilegarena-a.akamaihd.net/gfwlist +server=/lmmbtc.com/127.0.0.1#5335 +ipset=/lmmbtc.com/gfwlist +server=/hotindianxxxsex.com/127.0.0.1#5335 +ipset=/hotindianxxxsex.com/gfwlist +server=/shianyuanfang.com/127.0.0.1#5335 +ipset=/shianyuanfang.com/gfwlist +server=/txqzz34r.com/127.0.0.1#5335 +ipset=/txqzz34r.com/gfwlist +server=/vmwareusergroupstore.com/127.0.0.1#5335 +ipset=/vmwareusergroupstore.com/gfwlist +server=/asagaku.com/127.0.0.1#5335 +ipset=/asagaku.com/gfwlist +server=/qumingwz.com/127.0.0.1#5335 +ipset=/qumingwz.com/gfwlist +server=/babyzone.com/127.0.0.1#5335 +ipset=/babyzone.com/gfwlist +server=/girlfriendhomeporn.com/127.0.0.1#5335 +ipset=/girlfriendhomeporn.com/gfwlist +server=/sexlikereal.com/127.0.0.1#5335 +ipset=/sexlikereal.com/gfwlist +server=/ebaytv.org/127.0.0.1#5335 +ipset=/ebaytv.org/gfwlist +server=/newssyndication.com/127.0.0.1#5335 +ipset=/newssyndication.com/gfwlist +server=/bcove.video/127.0.0.1#5335 +ipset=/bcove.video/gfwlist +server=/freudbox.com/127.0.0.1#5335 +ipset=/freudbox.com/gfwlist +server=/xboxstudios.com/127.0.0.1#5335 +ipset=/xboxstudios.com/gfwlist +server=/fastlylabs.com/127.0.0.1#5335 +ipset=/fastlylabs.com/gfwlist +server=/ipod.tw/127.0.0.1#5335 +ipset=/ipod.tw/gfwlist +server=/hp3d.com/127.0.0.1#5335 +ipset=/hp3d.com/gfwlist +server=/scoreland2.com/127.0.0.1#5335 +ipset=/scoreland2.com/gfwlist +server=/ryokoyomiuri.co.jp/127.0.0.1#5335 +ipset=/ryokoyomiuri.co.jp/gfwlist +server=/burningcamel.com/127.0.0.1#5335 +ipset=/burningcamel.com/gfwlist +server=/xxvideos.xxx/127.0.0.1#5335 +ipset=/xxvideos.xxx/gfwlist +server=/twistedlinks.net/127.0.0.1#5335 +ipset=/twistedlinks.net/gfwlist +server=/hentai-archive.com/127.0.0.1#5335 +ipset=/hentai-archive.com/gfwlist +server=/myfoxphilly.com/127.0.0.1#5335 +ipset=/myfoxphilly.com/gfwlist +server=/bmw-motorrad.com.tr/127.0.0.1#5335 +ipset=/bmw-motorrad.com.tr/gfwlist +server=/skunkgirl.cc/127.0.0.1#5335 +ipset=/skunkgirl.cc/gfwlist +server=/facebuok.com/127.0.0.1#5335 +ipset=/facebuok.com/gfwlist +server=/finishinfo.no/127.0.0.1#5335 +ipset=/finishinfo.no/gfwlist +server=/paypal-network.org/127.0.0.1#5335 +ipset=/paypal-network.org/gfwlist +server=/xoomcom.com/127.0.0.1#5335 +ipset=/xoomcom.com/gfwlist +server=/abbywintersfree.com/127.0.0.1#5335 +ipset=/abbywintersfree.com/gfwlist +server=/airwick.pl/127.0.0.1#5335 +ipset=/airwick.pl/gfwlist +server=/dialga.com/127.0.0.1#5335 +ipset=/dialga.com/gfwlist +server=/tanflix.com/127.0.0.1#5335 +ipset=/tanflix.com/gfwlist +server=/nintendo.be/127.0.0.1#5335 +ipset=/nintendo.be/gfwlist +server=/vsmarketplacebadge.apphb.com/127.0.0.1#5335 +ipset=/vsmarketplacebadge.apphb.com/gfwlist +server=/vrpornjack.com/127.0.0.1#5335 +ipset=/vrpornjack.com/gfwlist +server=/fifastreet.com/127.0.0.1#5335 +ipset=/fifastreet.com/gfwlist +server=/tokyomotion.com/127.0.0.1#5335 +ipset=/tokyomotion.com/gfwlist +server=/tvbusa.com/127.0.0.1#5335 +ipset=/tvbusa.com/gfwlist +server=/xlovecam.com/127.0.0.1#5335 +ipset=/xlovecam.com/gfwlist +server=/cloudflare.net/127.0.0.1#5335 +ipset=/cloudflare.net/gfwlist +server=/fljmh.com/127.0.0.1#5335 +ipset=/fljmh.com/gfwlist +server=/m5ir5np1.shop/127.0.0.1#5335 +ipset=/m5ir5np1.shop/gfwlist +server=/cas.org/127.0.0.1#5335 +ipset=/cas.org/gfwlist +server=/starcraft2.com/127.0.0.1#5335 +ipset=/starcraft2.com/gfwlist +server=/eurogirlsescort.com/127.0.0.1#5335 +ipset=/eurogirlsescort.com/gfwlist +server=/4channel.org/127.0.0.1#5335 +ipset=/4channel.org/gfwlist +server=/cylink0122.icu/127.0.0.1#5335 +ipset=/cylink0122.icu/gfwlist +server=/appl-e.com/127.0.0.1#5335 +ipset=/appl-e.com/gfwlist +server=/6parkbbs.com/127.0.0.1#5335 +ipset=/6parkbbs.com/gfwlist +server=/xsrxpwvg.com/127.0.0.1#5335 +ipset=/xsrxpwvg.com/gfwlist +server=/beatsdrdre-solo.com/127.0.0.1#5335 +ipset=/beatsdrdre-solo.com/gfwlist +server=/porn2018.com/127.0.0.1#5335 +ipset=/porn2018.com/gfwlist +server=/ebaycar.com/127.0.0.1#5335 +ipset=/ebaycar.com/gfwlist +server=/neotokyo.supertop-100.com/127.0.0.1#5335 +ipset=/neotokyo.supertop-100.com/gfwlist +server=/ikea.jp/127.0.0.1#5335 +ipset=/ikea.jp/gfwlist +server=/mageconf.com.ua/127.0.0.1#5335 +ipset=/mageconf.com.ua/gfwlist +server=/uporno.xxx/127.0.0.1#5335 +ipset=/uporno.xxx/gfwlist +server=/nxta.org/127.0.0.1#5335 +ipset=/nxta.org/gfwlist +server=/xcafe.com/127.0.0.1#5335 +ipset=/xcafe.com/gfwlist +server=/root-signing.ch/127.0.0.1#5335 +ipset=/root-signing.ch/gfwlist +server=/lovemstudios.com/127.0.0.1#5335 +ipset=/lovemstudios.com/gfwlist +server=/google.ca/127.0.0.1#5335 +ipset=/google.ca/gfwlist +server=/microsoft.dk/127.0.0.1#5335 +ipset=/microsoft.dk/gfwlist +server=/txcloud.net/127.0.0.1#5335 +ipset=/txcloud.net/gfwlist +server=/ieeeday.org/127.0.0.1#5335 +ipset=/ieeeday.org/gfwlist +server=/scholar.google.nl/127.0.0.1#5335 +ipset=/scholar.google.nl/gfwlist +server=/acs.org/127.0.0.1#5335 +ipset=/acs.org/gfwlist +server=/masterwanker.com/127.0.0.1#5335 +ipset=/masterwanker.com/gfwlist +server=/hardsex8.com/127.0.0.1#5335 +ipset=/hardsex8.com/gfwlist +server=/ebay-vacation.com/127.0.0.1#5335 +ipset=/ebay-vacation.com/gfwlist +server=/qporno.xxx/127.0.0.1#5335 +ipset=/qporno.xxx/gfwlist +server=/playstation.com/127.0.0.1#5335 +ipset=/playstation.com/gfwlist +server=/custombeatsbydrebuy.com/127.0.0.1#5335 +ipset=/custombeatsbydrebuy.com/gfwlist +server=/xnxx-xxx.win/127.0.0.1#5335 +ipset=/xnxx-xxx.win/gfwlist +server=/att.com/127.0.0.1#5335 +ipset=/att.com/gfwlist +server=/pricelesspick.com/127.0.0.1#5335 +ipset=/pricelesspick.com/gfwlist +server=/microsoftreactor.org/127.0.0.1#5335 +ipset=/microsoftreactor.org/gfwlist +server=/tube.bz/127.0.0.1#5335 +ipset=/tube.bz/gfwlist +server=/91rb.com/127.0.0.1#5335 +ipset=/91rb.com/gfwlist +server=/cotweet.com/127.0.0.1#5335 +ipset=/cotweet.com/gfwlist +server=/hentainstream.com/127.0.0.1#5335 +ipset=/hentainstream.com/gfwlist +server=/powerofresolve.com/127.0.0.1#5335 +ipset=/powerofresolve.com/gfwlist +server=/bmwbkk.de/127.0.0.1#5335 +ipset=/bmwbkk.de/gfwlist +server=/s-books.com/127.0.0.1#5335 +ipset=/s-books.com/gfwlist +server=/rrtis.com/127.0.0.1#5335 +ipset=/rrtis.com/gfwlist +server=/xn--9trs65b.com/127.0.0.1#5335 +ipset=/xn--9trs65b.com/gfwlist +server=/desktopmovie.org/127.0.0.1#5335 +ipset=/desktopmovie.org/gfwlist +server=/dotfacebook.com/127.0.0.1#5335 +ipset=/dotfacebook.com/gfwlist +server=/mailonline.com/127.0.0.1#5335 +ipset=/mailonline.com/gfwlist +server=/bridgestone.co.jp/127.0.0.1#5335 +ipset=/bridgestone.co.jp/gfwlist +server=/pornohoo.com.mx/127.0.0.1#5335 +ipset=/pornohoo.com.mx/gfwlist +server=/videosamadoresreais.com/127.0.0.1#5335 +ipset=/videosamadoresreais.com/gfwlist +server=/javleak.com/127.0.0.1#5335 +ipset=/javleak.com/gfwlist +server=/protonmail.ch/127.0.0.1#5335 +ipset=/protonmail.ch/gfwlist +server=/netlifystatus.com/127.0.0.1#5335 +ipset=/netlifystatus.com/gfwlist +server=/pornfind.org/127.0.0.1#5335 +ipset=/pornfind.org/gfwlist +server=/mortein.co.nz/127.0.0.1#5335 +ipset=/mortein.co.nz/gfwlist +server=/honkaistarrail.com/127.0.0.1#5335 +ipset=/honkaistarrail.com/gfwlist +server=/volvogrouptruckcenter.nl/127.0.0.1#5335 +ipset=/volvogrouptruckcenter.nl/gfwlist +server=/rarbggo.org/127.0.0.1#5335 +ipset=/rarbggo.org/gfwlist +server=/joylovedolls.com/127.0.0.1#5335 +ipset=/joylovedolls.com/gfwlist +server=/hentaiverse.org/127.0.0.1#5335 +ipset=/hentaiverse.org/gfwlist +server=/javhd.com/127.0.0.1#5335 +ipset=/javhd.com/gfwlist +server=/playpornogames.com/127.0.0.1#5335 +ipset=/playpornogames.com/gfwlist +server=/blender.org/127.0.0.1#5335 +ipset=/blender.org/gfwlist +server=/topbeatsdealer.com/127.0.0.1#5335 +ipset=/topbeatsdealer.com/gfwlist +server=/bmw-adventskalender.com/127.0.0.1#5335 +ipset=/bmw-adventskalender.com/gfwlist +server=/nytstyle.com/127.0.0.1#5335 +ipset=/nytstyle.com/gfwlist +server=/www-bestbuystores.com/127.0.0.1#5335 +ipset=/www-bestbuystores.com/gfwlist +server=/huluitaly.com/127.0.0.1#5335 +ipset=/huluitaly.com/gfwlist +server=/shopdurex.com/127.0.0.1#5335 +ipset=/shopdurex.com/gfwlist +server=/mini.co.cr/127.0.0.1#5335 +ipset=/mini.co.cr/gfwlist +server=/scholar.google.cn/127.0.0.1#5335 +ipset=/scholar.google.cn/gfwlist +server=/bmw-connecteddrive.com.cy/127.0.0.1#5335 +ipset=/bmw-connecteddrive.com.cy/gfwlist +server=/ministcatharines.ca/127.0.0.1#5335 +ipset=/ministcatharines.ca/gfwlist +server=/thisvidscat.net/127.0.0.1#5335 +ipset=/thisvidscat.net/gfwlist +server=/hbogo.com/127.0.0.1#5335 +ipset=/hbogo.com/gfwlist +server=/ateam-oracle.com/127.0.0.1#5335 +ipset=/ateam-oracle.com/gfwlist +server=/foxnewspodcasts.com/127.0.0.1#5335 +ipset=/foxnewspodcasts.com/gfwlist +server=/ciattackers.com/127.0.0.1#5335 +ipset=/ciattackers.com/gfwlist +server=/pvue2.com/127.0.0.1#5335 +ipset=/pvue2.com/gfwlist +server=/vsassets.io/127.0.0.1#5335 +ipset=/vsassets.io/gfwlist +server=/volvotrucks.com.br/127.0.0.1#5335 +ipset=/volvotrucks.com.br/gfwlist +server=/apple-darwin.org/127.0.0.1#5335 +ipset=/apple-darwin.org/gfwlist +server=/venmo.net/127.0.0.1#5335 +ipset=/venmo.net/gfwlist +server=/z676869.com/127.0.0.1#5335 +ipset=/z676869.com/gfwlist +server=/hoolu.com/127.0.0.1#5335 +ipset=/hoolu.com/gfwlist +server=/hotgaylist.com/127.0.0.1#5335 +ipset=/hotgaylist.com/gfwlist +server=/reachporn.com/127.0.0.1#5335 +ipset=/reachporn.com/gfwlist +server=/blogspot.is/127.0.0.1#5335 +ipset=/blogspot.is/gfwlist +server=/orzqwq.com/127.0.0.1#5335 +ipset=/orzqwq.com/gfwlist +server=/femalestars.com/127.0.0.1#5335 +ipset=/femalestars.com/gfwlist +server=/google.co.in/127.0.0.1#5335 +ipset=/google.co.in/gfwlist +server=/brocaproject.com/127.0.0.1#5335 +ipset=/brocaproject.com/gfwlist +server=/strepsils.com.tw/127.0.0.1#5335 +ipset=/strepsils.com.tw/gfwlist +server=/aerogard.com.au/127.0.0.1#5335 +ipset=/aerogard.com.au/gfwlist +server=/airwick.co.in/127.0.0.1#5335 +ipset=/airwick.co.in/gfwlist +server=/applecentre.info/127.0.0.1#5335 +ipset=/applecentre.info/gfwlist +server=/ecpa.fr/127.0.0.1#5335 +ipset=/ecpa.fr/gfwlist +server=/pornoamateurlatino.net/127.0.0.1#5335 +ipset=/pornoamateurlatino.net/gfwlist +server=/vikiporn.com/127.0.0.1#5335 +ipset=/vikiporn.com/gfwlist +server=/facebook-corp.com/127.0.0.1#5335 +ipset=/facebook-corp.com/gfwlist +server=/scorepass.com/127.0.0.1#5335 +ipset=/scorepass.com/gfwlist +server=/javhub.me/127.0.0.1#5335 +ipset=/javhub.me/gfwlist +server=/16885858.com/127.0.0.1#5335 +ipset=/16885858.com/gfwlist +server=/shemaleporn.fun/127.0.0.1#5335 +ipset=/shemaleporn.fun/gfwlist +server=/xbabe.com/127.0.0.1#5335 +ipset=/xbabe.com/gfwlist +server=/xxxporn123.com/127.0.0.1#5335 +ipset=/xxxporn123.com/gfwlist +server=/volvotrucks.in/127.0.0.1#5335 +ipset=/volvotrucks.in/gfwlist +server=/intel.bo/127.0.0.1#5335 +ipset=/intel.bo/gfwlist +server=/sony.com.mx/127.0.0.1#5335 +ipset=/sony.com.mx/gfwlist +server=/hentaihere.com/127.0.0.1#5335 +ipset=/hentaihere.com/gfwlist +server=/beatsdrdrekaufenschweiz.net/127.0.0.1#5335 +ipset=/beatsdrdrekaufenschweiz.net/gfwlist +server=/apple.net/127.0.0.1#5335 +ipset=/apple.net/gfwlist +server=/riotgames.net/127.0.0.1#5335 +ipset=/riotgames.net/gfwlist +server=/tsyum.com/127.0.0.1#5335 +ipset=/tsyum.com/gfwlist +server=/intel.pl/127.0.0.1#5335 +ipset=/intel.pl/gfwlist +server=/ministjohns.ca/127.0.0.1#5335 +ipset=/ministjohns.ca/gfwlist +server=/aboutamazon.es/127.0.0.1#5335 +ipset=/aboutamazon.es/gfwlist +server=/asianpornonly.com/127.0.0.1#5335 +ipset=/asianpornonly.com/gfwlist +server=/entrust.net/127.0.0.1#5335 +ipset=/entrust.net/gfwlist +server=/foxtel.com.au/127.0.0.1#5335 +ipset=/foxtel.com.au/gfwlist +server=/uwpcommunitytoolkit.com/127.0.0.1#5335 +ipset=/uwpcommunitytoolkit.com/gfwlist +server=/ebay.es/127.0.0.1#5335 +ipset=/ebay.es/gfwlist +server=/getfedora.org/127.0.0.1#5335 +ipset=/getfedora.org/gfwlist +server=/pacopacomama.com/127.0.0.1#5335 +ipset=/pacopacomama.com/gfwlist +server=/blizzard.com/127.0.0.1#5335 +ipset=/blizzard.com/gfwlist +server=/foxpoker.com/127.0.0.1#5335 +ipset=/foxpoker.com/gfwlist +server=/30plusgirls.com/127.0.0.1#5335 +ipset=/30plusgirls.com/gfwlist +server=/iphone-zh.com/127.0.0.1#5335 +ipset=/iphone-zh.com/gfwlist +server=/radiotavisupleba.ge/127.0.0.1#5335 +ipset=/radiotavisupleba.ge/gfwlist +server=/facebook30.org/127.0.0.1#5335 +ipset=/facebook30.org/gfwlist +server=/aliveprofiler.com/127.0.0.1#5335 +ipset=/aliveprofiler.com/gfwlist +server=/1jjdg2.vip/127.0.0.1#5335 +ipset=/1jjdg2.vip/gfwlist +server=/minilat.com/127.0.0.1#5335 +ipset=/minilat.com/gfwlist +server=/9anime.to/127.0.0.1#5335 +ipset=/9anime.to/gfwlist +server=/dmmrex.com/127.0.0.1#5335 +ipset=/dmmrex.com/gfwlist +server=/movetv.com/127.0.0.1#5335 +ipset=/movetv.com/gfwlist +server=/apkmirror.com/127.0.0.1#5335 +ipset=/apkmirror.com/gfwlist +server=/aboutamazon.pl/127.0.0.1#5335 +ipset=/aboutamazon.pl/gfwlist +server=/next.hk/127.0.0.1#5335 +ipset=/next.hk/gfwlist +server=/applepay.co.rs/127.0.0.1#5335 +ipset=/applepay.co.rs/gfwlist +server=/madonna-av.com/127.0.0.1#5335 +ipset=/madonna-av.com/gfwlist +server=/firebaseapp.com/127.0.0.1#5335 +ipset=/firebaseapp.com/gfwlist +server=/yourporn.sexy/127.0.0.1#5335 +ipset=/yourporn.sexy/gfwlist +server=/porngem.com/127.0.0.1#5335 +ipset=/porngem.com/gfwlist +server=/gayheaven.org/127.0.0.1#5335 +ipset=/gayheaven.org/gfwlist +server=/bustymerilyn.com/127.0.0.1#5335 +ipset=/bustymerilyn.com/gfwlist +server=/qqgamedesign.com/127.0.0.1#5335 +ipset=/qqgamedesign.com/gfwlist +server=/ooni.org/127.0.0.1#5335 +ipset=/ooni.org/gfwlist +server=/viralporn.com/127.0.0.1#5335 +ipset=/viralporn.com/gfwlist +server=/imperial.ac.uk/127.0.0.1#5335 +ipset=/imperial.ac.uk/gfwlist +server=/huffpost.com/127.0.0.1#5335 +ipset=/huffpost.com/gfwlist +server=/foxtvdvd.com/127.0.0.1#5335 +ipset=/foxtvdvd.com/gfwlist +server=/fbmessenger.com/127.0.0.1#5335 +ipset=/fbmessenger.com/gfwlist +server=/tracking-location.com/127.0.0.1#5335 +ipset=/tracking-location.com/gfwlist +server=/a2z.com/127.0.0.1#5335 +ipset=/a2z.com/gfwlist +server=/thedreadwolfrises.com/127.0.0.1#5335 +ipset=/thedreadwolfrises.com/gfwlist +server=/9news.com.au/127.0.0.1#5335 +ipset=/9news.com.au/gfwlist +server=/getoutline.org/127.0.0.1#5335 +ipset=/getoutline.org/gfwlist +server=/exs8fkw0.xyz/127.0.0.1#5335 +ipset=/exs8fkw0.xyz/gfwlist +server=/xxeronetxx.info/127.0.0.1#5335 +ipset=/xxeronetxx.info/gfwlist +server=/youtube.com.my/127.0.0.1#5335 +ipset=/youtube.com.my/gfwlist +server=/hdgaytube.xxx/127.0.0.1#5335 +ipset=/hdgaytube.xxx/gfwlist +server=/ntdimg.com/127.0.0.1#5335 +ipset=/ntdimg.com/gfwlist +server=/flagrasamadores.net/127.0.0.1#5335 +ipset=/flagrasamadores.net/gfwlist +server=/jizzonline.com/127.0.0.1#5335 +ipset=/jizzonline.com/gfwlist +server=/visa.com.vi/127.0.0.1#5335 +ipset=/visa.com.vi/gfwlist +server=/xvideos-cdn.com/127.0.0.1#5335 +ipset=/xvideos-cdn.com/gfwlist +server=/nikkei.jp/127.0.0.1#5335 +ipset=/nikkei.jp/gfwlist +server=/pickinguppussy.com/127.0.0.1#5335 +ipset=/pickinguppussy.com/gfwlist +server=/burstly.net/127.0.0.1#5335 +ipset=/burstly.net/gfwlist +server=/intelfreepress.com/127.0.0.1#5335 +ipset=/intelfreepress.com/gfwlist +server=/ikea.co.de/127.0.0.1#5335 +ipset=/ikea.co.de/gfwlist +server=/sonypictures.com/127.0.0.1#5335 +ipset=/sonypictures.com/gfwlist +server=/pornojefe.com/127.0.0.1#5335 +ipset=/pornojefe.com/gfwlist +server=/amd.com.cn/127.0.0.1#5335 +ipset=/amd.com.cn/gfwlist +server=/gigaporn.org/127.0.0.1#5335 +ipset=/gigaporn.org/gfwlist +server=/prpops.com/127.0.0.1#5335 +ipset=/prpops.com/gfwlist +server=/itcfonts.com/127.0.0.1#5335 +ipset=/itcfonts.com/gfwlist +server=/sh-xuxingda.com/127.0.0.1#5335 +ipset=/sh-xuxingda.com/gfwlist +server=/public-sex-porn.com/127.0.0.1#5335 +ipset=/public-sex-porn.com/gfwlist +server=/instagram-press.net/127.0.0.1#5335 +ipset=/instagram-press.net/gfwlist +server=/uun78.com/127.0.0.1#5335 +ipset=/uun78.com/gfwlist +server=/bmwgroupclassic.com/127.0.0.1#5335 +ipset=/bmwgroupclassic.com/gfwlist +server=/beatsbydrdre-store.us/127.0.0.1#5335 +ipset=/beatsbydrdre-store.us/gfwlist +server=/seemygf.com/127.0.0.1#5335 +ipset=/seemygf.com/gfwlist +server=/javdisk.com/127.0.0.1#5335 +ipset=/javdisk.com/gfwlist +server=/castro.fm/127.0.0.1#5335 +ipset=/castro.fm/gfwlist +server=/startupjournal.com/127.0.0.1#5335 +ipset=/startupjournal.com/gfwlist +server=/attonlineoffers.com/127.0.0.1#5335 +ipset=/attonlineoffers.com/gfwlist +server=/protondb.com/127.0.0.1#5335 +ipset=/protondb.com/gfwlist +server=/washingtondcbmw.com/127.0.0.1#5335 +ipset=/washingtondcbmw.com/gfwlist +server=/mings.hk/127.0.0.1#5335 +ipset=/mings.hk/gfwlist +server=/mallheadphone.com/127.0.0.1#5335 +ipset=/mallheadphone.com/gfwlist +server=/fantasiasguatemala.com/127.0.0.1#5335 +ipset=/fantasiasguatemala.com/gfwlist +server=/ahtranny.com/127.0.0.1#5335 +ipset=/ahtranny.com/gfwlist +server=/code.org/127.0.0.1#5335 +ipset=/code.org/gfwlist +server=/niketracking.com/127.0.0.1#5335 +ipset=/niketracking.com/gfwlist +server=/xbahis44.com/127.0.0.1#5335 +ipset=/xbahis44.com/gfwlist +server=/paypal-recargacelular.com/127.0.0.1#5335 +ipset=/paypal-recargacelular.com/gfwlist +server=/ciscospark.com/127.0.0.1#5335 +ipset=/ciscospark.com/gfwlist +server=/18commic.com/127.0.0.1#5335 +ipset=/18commic.com/gfwlist +server=/spankingstudio.com/127.0.0.1#5335 +ipset=/spankingstudio.com/gfwlist +server=/facebookook.com/127.0.0.1#5335 +ipset=/facebookook.com/gfwlist +server=/zeebiz.com/127.0.0.1#5335 +ipset=/zeebiz.com/gfwlist +server=/jwpcdn.com/127.0.0.1#5335 +ipset=/jwpcdn.com/gfwlist +server=/vk-cdn.me/127.0.0.1#5335 +ipset=/vk-cdn.me/gfwlist +server=/zopim.com/127.0.0.1#5335 +ipset=/zopim.com/gfwlist +server=/libgen.is/127.0.0.1#5335 +ipset=/libgen.is/gfwlist +server=/omekinteractive.com/127.0.0.1#5335 +ipset=/omekinteractive.com/gfwlist +server=/bestbuy.info/127.0.0.1#5335 +ipset=/bestbuy.info/gfwlist +server=/huluaction.com/127.0.0.1#5335 +ipset=/huluaction.com/gfwlist +server=/blogspot.be/127.0.0.1#5335 +ipset=/blogspot.be/gfwlist +server=/beatsdre4cheap.com/127.0.0.1#5335 +ipset=/beatsdre4cheap.com/gfwlist +server=/hnext.jp/127.0.0.1#5335 +ipset=/hnext.jp/gfwlist +server=/youtu.be/127.0.0.1#5335 +ipset=/youtu.be/gfwlist +server=/fox51tns.net/127.0.0.1#5335 +ipset=/fox51tns.net/gfwlist +server=/annualreviews.org/127.0.0.1#5335 +ipset=/annualreviews.org/gfwlist +server=/p16-tiktokcdn-com.akamaized.net/127.0.0.1#5335 +ipset=/p16-tiktokcdn-com.akamaized.net/gfwlist +server=/minishop.ca/127.0.0.1#5335 +ipset=/minishop.ca/gfwlist +server=/rude.com/127.0.0.1#5335 +ipset=/rude.com/gfwlist +server=/rbrandlibrary.com/127.0.0.1#5335 +ipset=/rbrandlibrary.com/gfwlist +server=/iyalc.com/127.0.0.1#5335 +ipset=/iyalc.com/gfwlist +server=/sankei-tours.com/127.0.0.1#5335 +ipset=/sankei-tours.com/gfwlist +server=/asexdoll.com/127.0.0.1#5335 +ipset=/asexdoll.com/gfwlist +server=/sibreal.org/127.0.0.1#5335 +ipset=/sibreal.org/gfwlist +server=/myebay.com/127.0.0.1#5335 +ipset=/myebay.com/gfwlist +server=/pokemonsunmoon.com/127.0.0.1#5335 +ipset=/pokemonsunmoon.com/gfwlist +server=/unrealengine.com/127.0.0.1#5335 +ipset=/unrealengine.com/gfwlist +server=/sexemulator.com/127.0.0.1#5335 +ipset=/sexemulator.com/gfwlist +server=/git-scm.com/127.0.0.1#5335 +ipset=/git-scm.com/gfwlist +server=/adobexdplatform.com/127.0.0.1#5335 +ipset=/adobexdplatform.com/gfwlist +server=/hbonow.com/127.0.0.1#5335 +ipset=/hbonow.com/gfwlist +server=/bmw-connecteddrive.gr/127.0.0.1#5335 +ipset=/bmw-connecteddrive.gr/gfwlist +server=/emerald.com/127.0.0.1#5335 +ipset=/emerald.com/gfwlist +server=/kristenbjorn.com/127.0.0.1#5335 +ipset=/kristenbjorn.com/gfwlist +server=/pinterest.es/127.0.0.1#5335 +ipset=/pinterest.es/gfwlist +server=/forbesimg.com/127.0.0.1#5335 +ipset=/forbesimg.com/gfwlist +server=/mtt.org/127.0.0.1#5335 +ipset=/mtt.org/gfwlist +server=/bitnamiapp.com/127.0.0.1#5335 +ipset=/bitnamiapp.com/gfwlist +server=/shahvani.com/127.0.0.1#5335 +ipset=/shahvani.com/gfwlist +server=/hkbn.net/127.0.0.1#5335 +ipset=/hkbn.net/gfwlist +server=/sony.com.ni/127.0.0.1#5335 +ipset=/sony.com.ni/gfwlist +server=/yandex.eu/127.0.0.1#5335 +ipset=/yandex.eu/gfwlist +server=/appdynamics.info/127.0.0.1#5335 +ipset=/appdynamics.info/gfwlist +server=/flutterapp.com/127.0.0.1#5335 +ipset=/flutterapp.com/gfwlist +server=/amazon-fashions.com/127.0.0.1#5335 +ipset=/amazon-fashions.com/gfwlist +server=/iphoto.eu/127.0.0.1#5335 +ipset=/iphoto.eu/gfwlist +server=/facebookpmdcenter.com/127.0.0.1#5335 +ipset=/facebookpmdcenter.com/gfwlist +server=/bigcharts.com/127.0.0.1#5335 +ipset=/bigcharts.com/gfwlist +server=/mybeatsbydreuk.com/127.0.0.1#5335 +ipset=/mybeatsbydreuk.com/gfwlist +server=/emome.net/127.0.0.1#5335 +ipset=/emome.net/gfwlist +server=/pornfu.tv/127.0.0.1#5335 +ipset=/pornfu.tv/gfwlist +server=/sexflexible.com/127.0.0.1#5335 +ipset=/sexflexible.com/gfwlist +server=/kopfhorergunstigshop.com/127.0.0.1#5335 +ipset=/kopfhorergunstigshop.com/gfwlist +server=/bestbuyforbusiness.ca/127.0.0.1#5335 +ipset=/bestbuyforbusiness.ca/gfwlist +server=/sexsiam.com/127.0.0.1#5335 +ipset=/sexsiam.com/gfwlist +server=/hpeclipse.com/127.0.0.1#5335 +ipset=/hpeclipse.com/gfwlist +server=/nowe.hk/127.0.0.1#5335 +ipset=/nowe.hk/gfwlist +server=/xxx18teen.net/127.0.0.1#5335 +ipset=/xxx18teen.net/gfwlist +server=/anypornhd.com/127.0.0.1#5335 +ipset=/anypornhd.com/gfwlist +server=/yahoo.cd/127.0.0.1#5335 +ipset=/yahoo.cd/gfwlist +server=/zeetv.co.uk/127.0.0.1#5335 +ipset=/zeetv.co.uk/gfwlist +server=/9cdn.net/127.0.0.1#5335 +ipset=/9cdn.net/gfwlist +server=/nike.com/127.0.0.1#5335 +ipset=/nike.com/gfwlist +server=/like.com/127.0.0.1#5335 +ipset=/like.com/gfwlist +server=/finishinfo.be/127.0.0.1#5335 +ipset=/finishinfo.be/gfwlist +server=/facebvook.com/127.0.0.1#5335 +ipset=/facebvook.com/gfwlist +server=/drbeatsukmart.com/127.0.0.1#5335 +ipset=/drbeatsukmart.com/gfwlist +server=/cygames.co.jp/127.0.0.1#5335 +ipset=/cygames.co.jp/gfwlist +server=/3dsexplay.xyz/127.0.0.1#5335 +ipset=/3dsexplay.xyz/gfwlist +server=/nudedrawer.com/127.0.0.1#5335 +ipset=/nudedrawer.com/gfwlist +server=/definefetish.com/127.0.0.1#5335 +ipset=/definefetish.com/gfwlist +server=/bmw-lao.la/127.0.0.1#5335 +ipset=/bmw-lao.la/gfwlist +server=/highbolt.net/127.0.0.1#5335 +ipset=/highbolt.net/gfwlist +server=/wirelessreach.com/127.0.0.1#5335 +ipset=/wirelessreach.com/gfwlist +server=/ferabook.com/127.0.0.1#5335 +ipset=/ferabook.com/gfwlist +server=/mini-connected.pt/127.0.0.1#5335 +ipset=/mini-connected.pt/gfwlist +server=/mangahome.com/127.0.0.1#5335 +ipset=/mangahome.com/gfwlist +server=/blubrry.com/127.0.0.1#5335 +ipset=/blubrry.com/gfwlist +server=/toomadporn.pro/127.0.0.1#5335 +ipset=/toomadporn.pro/gfwlist +server=/verisign.com.hk/127.0.0.1#5335 +ipset=/verisign.com.hk/gfwlist +server=/uun85.com/127.0.0.1#5335 +ipset=/uun85.com/gfwlist +server=/tacamateurs.com/127.0.0.1#5335 +ipset=/tacamateurs.com/gfwlist +server=/akam.net/127.0.0.1#5335 +ipset=/akam.net/gfwlist +server=/infura.io/127.0.0.1#5335 +ipset=/infura.io/gfwlist +server=/dtsell.com/127.0.0.1#5335 +ipset=/dtsell.com/gfwlist +server=/missav.com/127.0.0.1#5335 +ipset=/missav.com/gfwlist +server=/mcdonalds.ca/127.0.0.1#5335 +ipset=/mcdonalds.ca/gfwlist +server=/atypi.org/127.0.0.1#5335 +ipset=/atypi.org/gfwlist +server=/msn.net/127.0.0.1#5335 +ipset=/msn.net/gfwlist +server=/nsfw.xxx/127.0.0.1#5335 +ipset=/nsfw.xxx/gfwlist +server=/discord.dev/127.0.0.1#5335 +ipset=/discord.dev/gfwlist +server=/kompoz2.com/127.0.0.1#5335 +ipset=/kompoz2.com/gfwlist +server=/pornovideow.com/127.0.0.1#5335 +ipset=/pornovideow.com/gfwlist +server=/sneakerskick.com/127.0.0.1#5335 +ipset=/sneakerskick.com/gfwlist +server=/firstasianpussy.com/127.0.0.1#5335 +ipset=/firstasianpussy.com/gfwlist +server=/intel.ru/127.0.0.1#5335 +ipset=/intel.ru/gfwlist +server=/bmwgroupinfobahn.com/127.0.0.1#5335 +ipset=/bmwgroupinfobahn.com/gfwlist +server=/metacpan.org/127.0.0.1#5335 +ipset=/metacpan.org/gfwlist +server=/hentaipros.com/127.0.0.1#5335 +ipset=/hentaipros.com/gfwlist +server=/real-mature-porn.com/127.0.0.1#5335 +ipset=/real-mature-porn.com/gfwlist +server=/hsex.men/127.0.0.1#5335 +ipset=/hsex.men/gfwlist +server=/stickofjoy.com/127.0.0.1#5335 +ipset=/stickofjoy.com/gfwlist +server=/wsj.jobs/127.0.0.1#5335 +ipset=/wsj.jobs/gfwlist +server=/dx9527.cc/127.0.0.1#5335 +ipset=/dx9527.cc/gfwlist +server=/studywatchbyverily.com/127.0.0.1#5335 +ipset=/studywatchbyverily.com/gfwlist +server=/mastercard.se/127.0.0.1#5335 +ipset=/mastercard.se/gfwlist +server=/photolia.net/127.0.0.1#5335 +ipset=/photolia.net/gfwlist +server=/hot-gayporn.com/127.0.0.1#5335 +ipset=/hot-gayporn.com/gfwlist +server=/flipfap.com/127.0.0.1#5335 +ipset=/flipfap.com/gfwlist +server=/sukebelinks.com/127.0.0.1#5335 +ipset=/sukebelinks.com/gfwlist +server=/vercel.app/127.0.0.1#5335 +ipset=/vercel.app/gfwlist +server=/imilfs.com/127.0.0.1#5335 +ipset=/imilfs.com/gfwlist +server=/bravotube.tv/127.0.0.1#5335 +ipset=/bravotube.tv/gfwlist +server=/neweconomyforum.com/127.0.0.1#5335 +ipset=/neweconomyforum.com/gfwlist +server=/volvotrucks.com.au/127.0.0.1#5335 +ipset=/volvotrucks.com.au/gfwlist +server=/princesscum.com/127.0.0.1#5335 +ipset=/princesscum.com/gfwlist +server=/my20dc.com/127.0.0.1#5335 +ipset=/my20dc.com/gfwlist +server=/xpornplease.com/127.0.0.1#5335 +ipset=/xpornplease.com/gfwlist +server=/applemusic.hamburg/127.0.0.1#5335 +ipset=/applemusic.hamburg/gfwlist +server=/verizonwireless.com/127.0.0.1#5335 +ipset=/verizonwireless.com/gfwlist +server=/qorno.com/127.0.0.1#5335 +ipset=/qorno.com/gfwlist +server=/issquaredown.com/127.0.0.1#5335 +ipset=/issquaredown.com/gfwlist +server=/nvidia.ch/127.0.0.1#5335 +ipset=/nvidia.ch/gfwlist +server=/ipfs.lain.la/127.0.0.1#5335 +ipset=/ipfs.lain.la/gfwlist +server=/googl.com/127.0.0.1#5335 +ipset=/googl.com/gfwlist +server=/beatsbydretoutlet.com/127.0.0.1#5335 +ipset=/beatsbydretoutlet.com/gfwlist +server=/mucinex.com.cn/127.0.0.1#5335 +ipset=/mucinex.com.cn/gfwlist +server=/bestbeats4u.com/127.0.0.1#5335 +ipset=/bestbeats4u.com/gfwlist +server=/intel.fr/127.0.0.1#5335 +ipset=/intel.fr/gfwlist +server=/imonsterbeats.com/127.0.0.1#5335 +ipset=/imonsterbeats.com/gfwlist +server=/swapsmut.com/127.0.0.1#5335 +ipset=/swapsmut.com/gfwlist +server=/gamepedia.com/127.0.0.1#5335 +ipset=/gamepedia.com/gfwlist +server=/youtube.uy/127.0.0.1#5335 +ipset=/youtube.uy/gfwlist +server=/dirtyasiantube.com/127.0.0.1#5335 +ipset=/dirtyasiantube.com/gfwlist +server=/billpoint.com/127.0.0.1#5335 +ipset=/billpoint.com/gfwlist +server=/q13fox.com/127.0.0.1#5335 +ipset=/q13fox.com/gfwlist +server=/bmwmotorcycles.com/127.0.0.1#5335 +ipset=/bmwmotorcycles.com/gfwlist +server=/mickybells.com/127.0.0.1#5335 +ipset=/mickybells.com/gfwlist +server=/fluidpreview.com/127.0.0.1#5335 +ipset=/fluidpreview.com/gfwlist +server=/vercel.com/127.0.0.1#5335 +ipset=/vercel.com/gfwlist +server=/kikdirty.com/127.0.0.1#5335 +ipset=/kikdirty.com/gfwlist +server=/pccwglobal.com/127.0.0.1#5335 +ipset=/pccwglobal.com/gfwlist +server=/nickscipio.com/127.0.0.1#5335 +ipset=/nickscipio.com/gfwlist +server=/carbon.com/127.0.0.1#5335 +ipset=/carbon.com/gfwlist +server=/ieee.org/127.0.0.1#5335 +ipset=/ieee.org/gfwlist +server=/gigantits.com/127.0.0.1#5335 +ipset=/gigantits.com/gfwlist +server=/nhentai.to/127.0.0.1#5335 +ipset=/nhentai.to/gfwlist +server=/nurofen.ru/127.0.0.1#5335 +ipset=/nurofen.ru/gfwlist +server=/facbeok.com/127.0.0.1#5335 +ipset=/facbeok.com/gfwlist +server=/lucahmelayu.club/127.0.0.1#5335 +ipset=/lucahmelayu.club/gfwlist +server=/conquerwithcharacter.com/127.0.0.1#5335 +ipset=/conquerwithcharacter.com/gfwlist +server=/wnoaissulli1.com/127.0.0.1#5335 +ipset=/wnoaissulli1.com/gfwlist +server=/sexnaweb.net/127.0.0.1#5335 +ipset=/sexnaweb.net/gfwlist +server=/blackmonsterterror.com/127.0.0.1#5335 +ipset=/blackmonsterterror.com/gfwlist +server=/porn-images-xxx.com/127.0.0.1#5335 +ipset=/porn-images-xxx.com/gfwlist +server=/intelcloudfinder.com/127.0.0.1#5335 +ipset=/intelcloudfinder.com/gfwlist +server=/xvideosincesto.com/127.0.0.1#5335 +ipset=/xvideosincesto.com/gfwlist +server=/highdefinitionbeatsbydre.com/127.0.0.1#5335 +ipset=/highdefinitionbeatsbydre.com/gfwlist +server=/eroshiko.net/127.0.0.1#5335 +ipset=/eroshiko.net/gfwlist +server=/momo.dm/127.0.0.1#5335 +ipset=/momo.dm/gfwlist +server=/ads.yahoo.com/127.0.0.1#5335 +ipset=/ads.yahoo.com/gfwlist +server=/lolislove.info/127.0.0.1#5335 +ipset=/lolislove.info/gfwlist +server=/facebookappcenter.info/127.0.0.1#5335 +ipset=/facebookappcenter.info/gfwlist +server=/pornguz.com/127.0.0.1#5335 +ipset=/pornguz.com/gfwlist +server=/hentai.tv/127.0.0.1#5335 +ipset=/hentai.tv/gfwlist +server=/javhard.net/127.0.0.1#5335 +ipset=/javhard.net/gfwlist +server=/facebooklikeexchange.com/127.0.0.1#5335 +ipset=/facebooklikeexchange.com/gfwlist +server=/hcaptchastatus.com/127.0.0.1#5335 +ipset=/hcaptchastatus.com/gfwlist +server=/t66y.com/127.0.0.1#5335 +ipset=/t66y.com/gfwlist +server=/mtalk.google.com/127.0.0.1#5335 +ipset=/mtalk.google.com/gfwlist +server=/9hentai.to/127.0.0.1#5335 +ipset=/9hentai.to/gfwlist +server=/duckduckco.de/127.0.0.1#5335 +ipset=/duckduckco.de/gfwlist +server=/xposed.info/127.0.0.1#5335 +ipset=/xposed.info/gfwlist +server=/pearson.com/127.0.0.1#5335 +ipset=/pearson.com/gfwlist +server=/gofundme.com/127.0.0.1#5335 +ipset=/gofundme.com/gfwlist +server=/onlyindianporn.tv/127.0.0.1#5335 +ipset=/onlyindianporn.tv/gfwlist +server=/apple.cm/127.0.0.1#5335 +ipset=/apple.cm/gfwlist +server=/edgemeplease.com/127.0.0.1#5335 +ipset=/edgemeplease.com/gfwlist +server=/githubstatus.com/127.0.0.1#5335 +ipset=/githubstatus.com/gfwlist +server=/v-has.com/127.0.0.1#5335 +ipset=/v-has.com/gfwlist +server=/documentforce.com/127.0.0.1#5335 +ipset=/documentforce.com/gfwlist +server=/ikea.ro/127.0.0.1#5335 +ipset=/ikea.ro/gfwlist +server=/ebay-course.com/127.0.0.1#5335 +ipset=/ebay-course.com/gfwlist +server=/imac-applecomputer.com/127.0.0.1#5335 +ipset=/imac-applecomputer.com/gfwlist +server=/bridgestonecomercial.co.cr/127.0.0.1#5335 +ipset=/bridgestonecomercial.co.cr/gfwlist +server=/ckck.fun/127.0.0.1#5335 +ipset=/ckck.fun/gfwlist +server=/news.net.au/127.0.0.1#5335 +ipset=/news.net.au/gfwlist +server=/playporngames.com/127.0.0.1#5335 +ipset=/playporngames.com/gfwlist +server=/40shopping.com/127.0.0.1#5335 +ipset=/40shopping.com/gfwlist +server=/businessinsider.es/127.0.0.1#5335 +ipset=/businessinsider.es/gfwlist +server=/erotikaweb.hu/127.0.0.1#5335 +ipset=/erotikaweb.hu/gfwlist +server=/marketing-nirvana.com/127.0.0.1#5335 +ipset=/marketing-nirvana.com/gfwlist +server=/dropboxinsiders.com/127.0.0.1#5335 +ipset=/dropboxinsiders.com/gfwlist +server=/slack-edge.com/127.0.0.1#5335 +ipset=/slack-edge.com/gfwlist +server=/cyyeshb.com/127.0.0.1#5335 +ipset=/cyyeshb.com/gfwlist +server=/hp3dmetals.com/127.0.0.1#5335 +ipset=/hp3dmetals.com/gfwlist +server=/buycheapbeatsbydre.com/127.0.0.1#5335 +ipset=/buycheapbeatsbydre.com/gfwlist +server=/voazimbabwe.com/127.0.0.1#5335 +ipset=/voazimbabwe.com/gfwlist +server=/adultblogranking.com/127.0.0.1#5335 +ipset=/adultblogranking.com/gfwlist +server=/visa.com.ng/127.0.0.1#5335 +ipset=/visa.com.ng/gfwlist +server=/theatlantic.com/127.0.0.1#5335 +ipset=/theatlantic.com/gfwlist +server=/qualcomm.com.br/127.0.0.1#5335 +ipset=/qualcomm.com.br/gfwlist +server=/vmware.tt.omtrdc.net/127.0.0.1#5335 +ipset=/vmware.tt.omtrdc.net/gfwlist +server=/3arabporn.com/127.0.0.1#5335 +ipset=/3arabporn.com/gfwlist +server=/pinterest.cl/127.0.0.1#5335 +ipset=/pinterest.cl/gfwlist +server=/litbus-anime.com/127.0.0.1#5335 +ipset=/litbus-anime.com/gfwlist +server=/hoolu.tv/127.0.0.1#5335 +ipset=/hoolu.tv/gfwlist +server=/directvplans.com/127.0.0.1#5335 +ipset=/directvplans.com/gfwlist +server=/bacsitinhyeu.vn/127.0.0.1#5335 +ipset=/bacsitinhyeu.vn/gfwlist +server=/beatsbydreoslo.com/127.0.0.1#5335 +ipset=/beatsbydreoslo.com/gfwlist +server=/visa.cz/127.0.0.1#5335 +ipset=/visa.cz/gfwlist +server=/youtube.co.ae/127.0.0.1#5335 +ipset=/youtube.co.ae/gfwlist +server=/monsterdrebeats-canada.net/127.0.0.1#5335 +ipset=/monsterdrebeats-canada.net/gfwlist +server=/azurecosmosdb.info/127.0.0.1#5335 +ipset=/azurecosmosdb.info/gfwlist +server=/scholar.google.com.tw/127.0.0.1#5335 +ipset=/scholar.google.com.tw/gfwlist +server=/hbogo.co.th/127.0.0.1#5335 +ipset=/hbogo.co.th/gfwlist +server=/rabbitsreviews.com/127.0.0.1#5335 +ipset=/rabbitsreviews.com/gfwlist +server=/jgg18.xyz/127.0.0.1#5335 +ipset=/jgg18.xyz/gfwlist +server=/vk.design/127.0.0.1#5335 +ipset=/vk.design/gfwlist +server=/xn--90wwvt03e.com/127.0.0.1#5335 +ipset=/xn--90wwvt03e.com/gfwlist +server=/thunderbird.net/127.0.0.1#5335 +ipset=/thunderbird.net/gfwlist +server=/tubxporn.xxx/127.0.0.1#5335 +ipset=/tubxporn.xxx/gfwlist +server=/cloudflarebolt.com/127.0.0.1#5335 +ipset=/cloudflarebolt.com/gfwlist +server=/cencoastbmw.com/127.0.0.1#5335 +ipset=/cencoastbmw.com/gfwlist +server=/bdsmcafe.com/127.0.0.1#5335 +ipset=/bdsmcafe.com/gfwlist +server=/pornogratis.vlog.br/127.0.0.1#5335 +ipset=/pornogratis.vlog.br/gfwlist +server=/appdynamics.de/127.0.0.1#5335 +ipset=/appdynamics.de/gfwlist +server=/erlang.org/127.0.0.1#5335 +ipset=/erlang.org/gfwlist +server=/mastercard.om/127.0.0.1#5335 +ipset=/mastercard.om/gfwlist +server=/sonybsc.com/127.0.0.1#5335 +ipset=/sonybsc.com/gfwlist +server=/groups.com/127.0.0.1#5335 +ipset=/groups.com/gfwlist +server=/go141.com/127.0.0.1#5335 +ipset=/go141.com/gfwlist +server=/nikeinc.com/127.0.0.1#5335 +ipset=/nikeinc.com/gfwlist +server=/awsglobalaccelerator.com/127.0.0.1#5335 +ipset=/awsglobalaccelerator.com/gfwlist +server=/playshowtv.com/127.0.0.1#5335 +ipset=/playshowtv.com/gfwlist +server=/24porn.pro/127.0.0.1#5335 +ipset=/24porn.pro/gfwlist +server=/hippyhillscomix.com/127.0.0.1#5335 +ipset=/hippyhillscomix.com/gfwlist +server=/anyshemale.com/127.0.0.1#5335 +ipset=/anyshemale.com/gfwlist +server=/findvrporn.com/127.0.0.1#5335 +ipset=/findvrporn.com/gfwlist +server=/pearsonclinical.es/127.0.0.1#5335 +ipset=/pearsonclinical.es/gfwlist +server=/monsterbeatsale.com/127.0.0.1#5335 +ipset=/monsterbeatsale.com/gfwlist +server=/porn300.online/127.0.0.1#5335 +ipset=/porn300.online/gfwlist +server=/catalinacruz.com/127.0.0.1#5335 +ipset=/catalinacruz.com/gfwlist +server=/faceboonk.com/127.0.0.1#5335 +ipset=/faceboonk.com/gfwlist +server=/asp-cc.com/127.0.0.1#5335 +ipset=/asp-cc.com/gfwlist +server=/twister.net.co/127.0.0.1#5335 +ipset=/twister.net.co/gfwlist +server=/binancezh.ink/127.0.0.1#5335 +ipset=/binancezh.ink/gfwlist +server=/qualcommhalo.com/127.0.0.1#5335 +ipset=/qualcommhalo.com/gfwlist +server=/visaeurope.at/127.0.0.1#5335 +ipset=/visaeurope.at/gfwlist +server=/porntrex.com/127.0.0.1#5335 +ipset=/porntrex.com/gfwlist +server=/hotteenfreecam.com/127.0.0.1#5335 +ipset=/hotteenfreecam.com/gfwlist +server=/flathub.org/127.0.0.1#5335 +ipset=/flathub.org/gfwlist +server=/fulldesisex.com/127.0.0.1#5335 +ipset=/fulldesisex.com/gfwlist +server=/monstersexporn.net/127.0.0.1#5335 +ipset=/monstersexporn.net/gfwlist +server=/gaito.xyz/127.0.0.1#5335 +ipset=/gaito.xyz/gfwlist +server=/hornybitches.org/127.0.0.1#5335 +ipset=/hornybitches.org/gfwlist +server=/misshotgirls.com/127.0.0.1#5335 +ipset=/misshotgirls.com/gfwlist +server=/icloudads.net/127.0.0.1#5335 +ipset=/icloudads.net/gfwlist +server=/bmw.com.ve/127.0.0.1#5335 +ipset=/bmw.com.ve/gfwlist +server=/airwick.com.au/127.0.0.1#5335 +ipset=/airwick.com.au/gfwlist +server=/heavy-r.com/127.0.0.1#5335 +ipset=/heavy-r.com/gfwlist +server=/amazonlumberyard.wang/127.0.0.1#5335 +ipset=/amazonlumberyard.wang/gfwlist +server=/javynow.com/127.0.0.1#5335 +ipset=/javynow.com/gfwlist +server=/vanish.dk/127.0.0.1#5335 +ipset=/vanish.dk/gfwlist +server=/hoyo.link/127.0.0.1#5335 +ipset=/hoyo.link/gfwlist +server=/inclusivegrowthscore.com/127.0.0.1#5335 +ipset=/inclusivegrowthscore.com/gfwlist +server=/speedfantasybid.com/127.0.0.1#5335 +ipset=/speedfantasybid.com/gfwlist +server=/gayasianxxx.com/127.0.0.1#5335 +ipset=/gayasianxxx.com/gfwlist +server=/tumblr.com/127.0.0.1#5335 +ipset=/tumblr.com/gfwlist +server=/dirtypornvids.com/127.0.0.1#5335 +ipset=/dirtypornvids.com/gfwlist +server=/69tubesex.com/127.0.0.1#5335 +ipset=/69tubesex.com/gfwlist +server=/ibm.us/127.0.0.1#5335 +ipset=/ibm.us/gfwlist +server=/fececbook.com/127.0.0.1#5335 +ipset=/fececbook.com/gfwlist +server=/oiobbs.com/127.0.0.1#5335 +ipset=/oiobbs.com/gfwlist +server=/jerkmate.tv/127.0.0.1#5335 +ipset=/jerkmate.tv/gfwlist +server=/disney-studio.net/127.0.0.1#5335 +ipset=/disney-studio.net/gfwlist +server=/shadowsocks.nl/127.0.0.1#5335 +ipset=/shadowsocks.nl/gfwlist +server=/acebooik.com/127.0.0.1#5335 +ipset=/acebooik.com/gfwlist +server=/appla.com/127.0.0.1#5335 +ipset=/appla.com/gfwlist +server=/mcdonaldsparties.com.au/127.0.0.1#5335 +ipset=/mcdonaldsparties.com.au/gfwlist +server=/www.sb/127.0.0.1#5335 +ipset=/www.sb/gfwlist +server=/vixen.com/127.0.0.1#5335 +ipset=/vixen.com/gfwlist +server=/namethatporn.com/127.0.0.1#5335 +ipset=/namethatporn.com/gfwlist +server=/ieee.tv/127.0.0.1#5335 +ipset=/ieee.tv/gfwlist +server=/dettol.ch/127.0.0.1#5335 +ipset=/dettol.ch/gfwlist +server=/sony.si/127.0.0.1#5335 +ipset=/sony.si/gfwlist +server=/beatsbydrehd.net/127.0.0.1#5335 +ipset=/beatsbydrehd.net/gfwlist +server=/famima.vn/127.0.0.1#5335 +ipset=/famima.vn/gfwlist +server=/office365love.com/127.0.0.1#5335 +ipset=/office365love.com/gfwlist +server=/fox5dc.com/127.0.0.1#5335 +ipset=/fox5dc.com/gfwlist +server=/pubmatic.co.jp/127.0.0.1#5335 +ipset=/pubmatic.co.jp/gfwlist +server=/amateur-cougar.com/127.0.0.1#5335 +ipset=/amateur-cougar.com/gfwlist +server=/beatsbydrdredanmark.com/127.0.0.1#5335 +ipset=/beatsbydrdredanmark.com/gfwlist +server=/pornelephant.com/127.0.0.1#5335 +ipset=/pornelephant.com/gfwlist +server=/vodafone.com.au/127.0.0.1#5335 +ipset=/vodafone.com.au/gfwlist +server=/camsoda.com/127.0.0.1#5335 +ipset=/camsoda.com/gfwlist +server=/appdynamics.com/127.0.0.1#5335 +ipset=/appdynamics.com/gfwlist +server=/scaleflex.com/127.0.0.1#5335 +ipset=/scaleflex.com/gfwlist +server=/absolutewhores.com/127.0.0.1#5335 +ipset=/absolutewhores.com/gfwlist +server=/wixipedia.net/127.0.0.1#5335 +ipset=/wixipedia.net/gfwlist +server=/ironna.jp/127.0.0.1#5335 +ipset=/ironna.jp/gfwlist +server=/google.cz/127.0.0.1#5335 +ipset=/google.cz/gfwlist +server=/cheapbeats4sale.net/127.0.0.1#5335 +ipset=/cheapbeats4sale.net/gfwlist +server=/j2objc.org/127.0.0.1#5335 +ipset=/j2objc.org/gfwlist +server=/beatsshop-usa.com/127.0.0.1#5335 +ipset=/beatsshop-usa.com/gfwlist +server=/greenend.org.uk/127.0.0.1#5335 +ipset=/greenend.org.uk/gfwlist +server=/gifnuki.com/127.0.0.1#5335 +ipset=/gifnuki.com/gfwlist +server=/sway.com/127.0.0.1#5335 +ipset=/sway.com/gfwlist +server=/lanasbigboobs.com/127.0.0.1#5335 +ipset=/lanasbigboobs.com/gfwlist +server=/hotpornfile.org/127.0.0.1#5335 +ipset=/hotpornfile.org/gfwlist +server=/bbcfmt.s.llnwi.net/127.0.0.1#5335 +ipset=/bbcfmt.s.llnwi.net/gfwlist +server=/freesexvideos2k.com/127.0.0.1#5335 +ipset=/freesexvideos2k.com/gfwlist +server=/whatboyswant.com/127.0.0.1#5335 +ipset=/whatboyswant.com/gfwlist +server=/fuckvideos.biz/127.0.0.1#5335 +ipset=/fuckvideos.biz/gfwlist +server=/clinical-videos.com/127.0.0.1#5335 +ipset=/clinical-videos.com/gfwlist +server=/kingkongapp.com/127.0.0.1#5335 +ipset=/kingkongapp.com/gfwlist +server=/wsjplus.com/127.0.0.1#5335 +ipset=/wsjplus.com/gfwlist +server=/content-ause1-ur-discovery1.uplynk.com/127.0.0.1#5335 +ipset=/content-ause1-ur-discovery1.uplynk.com/gfwlist +server=/hayabusa.io/127.0.0.1#5335 +ipset=/hayabusa.io/gfwlist +server=/ciscolearningsociety.org/127.0.0.1#5335 +ipset=/ciscolearningsociety.org/gfwlist +server=/yahoo.no/127.0.0.1#5335 +ipset=/yahoo.no/gfwlist +server=/fapsafari.com/127.0.0.1#5335 +ipset=/fapsafari.com/gfwlist +server=/lewdweb.net/127.0.0.1#5335 +ipset=/lewdweb.net/gfwlist +server=/coursera.org/127.0.0.1#5335 +ipset=/coursera.org/gfwlist +server=/cosplayporntube.com/127.0.0.1#5335 +ipset=/cosplayporntube.com/gfwlist +server=/stackoverflow.com/127.0.0.1#5335 +ipset=/stackoverflow.com/gfwlist +server=/tgtube.com/127.0.0.1#5335 +ipset=/tgtube.com/gfwlist +server=/scholar.google.ca/127.0.0.1#5335 +ipset=/scholar.google.ca/gfwlist +server=/volvotrucks.jp/127.0.0.1#5335 +ipset=/volvotrucks.jp/gfwlist +server=/canon.az/127.0.0.1#5335 +ipset=/canon.az/gfwlist +server=/hktshop.com/127.0.0.1#5335 +ipset=/hktshop.com/gfwlist +server=/hentai-vostfr.net/127.0.0.1#5335 +ipset=/hentai-vostfr.net/gfwlist +server=/manhwa24h.com/127.0.0.1#5335 +ipset=/manhwa24h.com/gfwlist +server=/incesto.blog.br/127.0.0.1#5335 +ipset=/incesto.blog.br/gfwlist +server=/ebay.co.uk/127.0.0.1#5335 +ipset=/ebay.co.uk/gfwlist +server=/rule34.xyz/127.0.0.1#5335 +ipset=/rule34.xyz/gfwlist +server=/xzxxporn.com/127.0.0.1#5335 +ipset=/xzxxporn.com/gfwlist +server=/mi9cdn.com/127.0.0.1#5335 +ipset=/mi9cdn.com/gfwlist +server=/orithegame.com/127.0.0.1#5335 +ipset=/orithegame.com/gfwlist +server=/applepaysupplies.berlin/127.0.0.1#5335 +ipset=/applepaysupplies.berlin/gfwlist +server=/sexypornpictures.org/127.0.0.1#5335 +ipset=/sexypornpictures.org/gfwlist +server=/alfera.my/127.0.0.1#5335 +ipset=/alfera.my/gfwlist +server=/microsoftaccountguard.com/127.0.0.1#5335 +ipset=/microsoftaccountguard.com/gfwlist +server=/mom50.com/127.0.0.1#5335 +ipset=/mom50.com/gfwlist +server=/doi.info/127.0.0.1#5335 +ipset=/doi.info/gfwlist +server=/volvotrucks.com.tr/127.0.0.1#5335 +ipset=/volvotrucks.com.tr/gfwlist +server=/sexjobs.it/127.0.0.1#5335 +ipset=/sexjobs.it/gfwlist +server=/ifuckedtheboss.com/127.0.0.1#5335 +ipset=/ifuckedtheboss.com/gfwlist +server=/bigboobswives.com/127.0.0.1#5335 +ipset=/bigboobswives.com/gfwlist +server=/finishinfo.cz/127.0.0.1#5335 +ipset=/finishinfo.cz/gfwlist +server=/oursexgames.com/127.0.0.1#5335 +ipset=/oursexgames.com/gfwlist +server=/uun83.com/127.0.0.1#5335 +ipset=/uun83.com/gfwlist +server=/bigbuckbunny.org/127.0.0.1#5335 +ipset=/bigbuckbunny.org/gfwlist +server=/myfonts.com/127.0.0.1#5335 +ipset=/myfonts.com/gfwlist +server=/fastindianporn.com/127.0.0.1#5335 +ipset=/fastindianporn.com/gfwlist +server=/kindleoasis.com/127.0.0.1#5335 +ipset=/kindleoasis.com/gfwlist +server=/facebook-privacy.com/127.0.0.1#5335 +ipset=/facebook-privacy.com/gfwlist +server=/enemasexfetish.com/127.0.0.1#5335 +ipset=/enemasexfetish.com/gfwlist +server=/canon.gr/127.0.0.1#5335 +ipset=/canon.gr/gfwlist +server=/burstlyrewards.com/127.0.0.1#5335 +ipset=/burstlyrewards.com/gfwlist +server=/applestore.com.ru/127.0.0.1#5335 +ipset=/applestore.com.ru/gfwlist +server=/cloudlatex.io/127.0.0.1#5335 +ipset=/cloudlatex.io/gfwlist +server=/paypal-signin.com/127.0.0.1#5335 +ipset=/paypal-signin.com/gfwlist +server=/topfantasyart.com/127.0.0.1#5335 +ipset=/topfantasyart.com/gfwlist +server=/intelcloudbuilders.com/127.0.0.1#5335 +ipset=/intelcloudbuilders.com/gfwlist +server=/mysims.com/127.0.0.1#5335 +ipset=/mysims.com/gfwlist +server=/foxsports.com.br/127.0.0.1#5335 +ipset=/foxsports.com.br/gfwlist +server=/mcdonalds.it/127.0.0.1#5335 +ipset=/mcdonalds.it/gfwlist +server=/take2games.com/127.0.0.1#5335 +ipset=/take2games.com/gfwlist +server=/water-and-power.com/127.0.0.1#5335 +ipset=/water-and-power.com/gfwlist +server=/mynike.com/127.0.0.1#5335 +ipset=/mynike.com/gfwlist +server=/binance.co/127.0.0.1#5335 +ipset=/binance.co/gfwlist +server=/milftugs.com/127.0.0.1#5335 +ipset=/milftugs.com/gfwlist +server=/youtube.in/127.0.0.1#5335 +ipset=/youtube.in/gfwlist +server=/sabuibo.net/127.0.0.1#5335 +ipset=/sabuibo.net/gfwlist +server=/ikea.fi/127.0.0.1#5335 +ipset=/ikea.fi/gfwlist +server=/picsee.co/127.0.0.1#5335 +ipset=/picsee.co/gfwlist +server=/zettai-ero.com/127.0.0.1#5335 +ipset=/zettai-ero.com/gfwlist +server=/taradinhos.com/127.0.0.1#5335 +ipset=/taradinhos.com/gfwlist +server=/mastercard.gr/127.0.0.1#5335 +ipset=/mastercard.gr/gfwlist +server=/wankz.com/127.0.0.1#5335 +ipset=/wankz.com/gfwlist +server=/voanews.com/127.0.0.1#5335 +ipset=/voanews.com/gfwlist +server=/sohfrance.org/127.0.0.1#5335 +ipset=/sohfrance.org/gfwlist +server=/madthumbs.com/127.0.0.1#5335 +ipset=/madthumbs.com/gfwlist +server=/bookshome.world/127.0.0.1#5335 +ipset=/bookshome.world/gfwlist +server=/bloombergsef.com/127.0.0.1#5335 +ipset=/bloombergsef.com/gfwlist +server=/flirt4free.com/127.0.0.1#5335 +ipset=/flirt4free.com/gfwlist +server=/letmejerk.com/127.0.0.1#5335 +ipset=/letmejerk.com/gfwlist +server=/microsofteca.com/127.0.0.1#5335 +ipset=/microsofteca.com/gfwlist +server=/beatsbydreaustraliasales.com/127.0.0.1#5335 +ipset=/beatsbydreaustraliasales.com/gfwlist +server=/fappenist.com/127.0.0.1#5335 +ipset=/fappenist.com/gfwlist +server=/paypalhere.net/127.0.0.1#5335 +ipset=/paypalhere.net/gfwlist +server=/calgoncarbon-china.com/127.0.0.1#5335 +ipset=/calgoncarbon-china.com/gfwlist +server=/directvgrandslam.com/127.0.0.1#5335 +ipset=/directvgrandslam.com/gfwlist +server=/primevideo.info/127.0.0.1#5335 +ipset=/primevideo.info/gfwlist +server=/javvids.com/127.0.0.1#5335 +ipset=/javvids.com/gfwlist +server=/mirailab.tech/127.0.0.1#5335 +ipset=/mirailab.tech/gfwlist +server=/cerdas.com/127.0.0.1#5335 +ipset=/cerdas.com/gfwlist +server=/mpweekly.com/127.0.0.1#5335 +ipset=/mpweekly.com/gfwlist +server=/erotic-artsites.com/127.0.0.1#5335 +ipset=/erotic-artsites.com/gfwlist +server=/yandex.org/127.0.0.1#5335 +ipset=/yandex.org/gfwlist +server=/userapi.com/127.0.0.1#5335 +ipset=/userapi.com/gfwlist +server=/amateurpornhouse.com/127.0.0.1#5335 +ipset=/amateurpornhouse.com/gfwlist +server=/myradio.hk/127.0.0.1#5335 +ipset=/myradio.hk/gfwlist +server=/pornstripgames.com/127.0.0.1#5335 +ipset=/pornstripgames.com/gfwlist +server=/100beatscheap.com/127.0.0.1#5335 +ipset=/100beatscheap.com/gfwlist +server=/starbucks.com.co/127.0.0.1#5335 +ipset=/starbucks.com.co/gfwlist +server=/msecnd.net/127.0.0.1#5335 +ipset=/msecnd.net/gfwlist +server=/intel.bi/127.0.0.1#5335 +ipset=/intel.bi/gfwlist +server=/vanishstains.com.au/127.0.0.1#5335 +ipset=/vanishstains.com.au/gfwlist +server=/exiporn.com/127.0.0.1#5335 +ipset=/exiporn.com/gfwlist +server=/bmwcustomapparel.com/127.0.0.1#5335 +ipset=/bmwcustomapparel.com/gfwlist +server=/pornhun.xyz/127.0.0.1#5335 +ipset=/pornhun.xyz/gfwlist +server=/pornoxo.com/127.0.0.1#5335 +ipset=/pornoxo.com/gfwlist +server=/fuckteenvids.com/127.0.0.1#5335 +ipset=/fuckteenvids.com/gfwlist +server=/walmart.pharmacy/127.0.0.1#5335 +ipset=/walmart.pharmacy/gfwlist +server=/facerbook.com/127.0.0.1#5335 +ipset=/facerbook.com/gfwlist +server=/kama-nk.ru/127.0.0.1#5335 +ipset=/kama-nk.ru/gfwlist +server=/cashify.com/127.0.0.1#5335 +ipset=/cashify.com/gfwlist +server=/cuckold69.com/127.0.0.1#5335 +ipset=/cuckold69.com/gfwlist +server=/cool-comics.com/127.0.0.1#5335 +ipset=/cool-comics.com/gfwlist +server=/realtype.co.jp/127.0.0.1#5335 +ipset=/realtype.co.jp/gfwlist +server=/karinahart.com/127.0.0.1#5335 +ipset=/karinahart.com/gfwlist +server=/cs.co/127.0.0.1#5335 +ipset=/cs.co/gfwlist +server=/rb.net/127.0.0.1#5335 +ipset=/rb.net/gfwlist +server=/redxxxvideos.com/127.0.0.1#5335 +ipset=/redxxxvideos.com/gfwlist +server=/dettol.cl/127.0.0.1#5335 +ipset=/dettol.cl/gfwlist +server=/xvideosup.com.br/127.0.0.1#5335 +ipset=/xvideosup.com.br/gfwlist +server=/applebk.net/127.0.0.1#5335 +ipset=/applebk.net/gfwlist +server=/flaru.com/127.0.0.1#5335 +ipset=/flaru.com/gfwlist +server=/intel.eg/127.0.0.1#5335 +ipset=/intel.eg/gfwlist +server=/hentaitk.com/127.0.0.1#5335 +ipset=/hentaitk.com/gfwlist +server=/amazonvideo.cc/127.0.0.1#5335 +ipset=/amazonvideo.cc/gfwlist +server=/applecare.hamburg/127.0.0.1#5335 +ipset=/applecare.hamburg/gfwlist +server=/bestbuy-giftcard.info/127.0.0.1#5335 +ipset=/bestbuy-giftcard.info/gfwlist +server=/scholar.google.com.cu/127.0.0.1#5335 +ipset=/scholar.google.com.cu/gfwlist +server=/drdrebeatsale.com/127.0.0.1#5335 +ipset=/drdrebeatsale.com/gfwlist +server=/sexpornpictures.com/127.0.0.1#5335 +ipset=/sexpornpictures.com/gfwlist +server=/bmw-worldfinal.com/127.0.0.1#5335 +ipset=/bmw-worldfinal.com/gfwlist +server=/chyoa.com/127.0.0.1#5335 +ipset=/chyoa.com/gfwlist +server=/townofsins.com/127.0.0.1#5335 +ipset=/townofsins.com/gfwlist +server=/bdsmsexgame.com/127.0.0.1#5335 +ipset=/bdsmsexgame.com/gfwlist +server=/u.nu/127.0.0.1#5335 +ipset=/u.nu/gfwlist +server=/xxx2022.com/127.0.0.1#5335 +ipset=/xxx2022.com/gfwlist +server=/sheshaft.com/127.0.0.1#5335 +ipset=/sheshaft.com/gfwlist +server=/picasaweb.com/127.0.0.1#5335 +ipset=/picasaweb.com/gfwlist +server=/hummingbird.ms/127.0.0.1#5335 +ipset=/hummingbird.ms/gfwlist +server=/jdavsp.pw/127.0.0.1#5335 +ipset=/jdavsp.pw/gfwlist +server=/bvdinfo.com/127.0.0.1#5335 +ipset=/bvdinfo.com/gfwlist +server=/trycuckold.com/127.0.0.1#5335 +ipset=/trycuckold.com/gfwlist +server=/erocurves.com/127.0.0.1#5335 +ipset=/erocurves.com/gfwlist +server=/onlinefucktube.com/127.0.0.1#5335 +ipset=/onlinefucktube.com/gfwlist +server=/9now.com.au/127.0.0.1#5335 +ipset=/9now.com.au/gfwlist +server=/apple.fi/127.0.0.1#5335 +ipset=/apple.fi/gfwlist +server=/moemax.net/127.0.0.1#5335 +ipset=/moemax.net/gfwlist +server=/whatthefox.com/127.0.0.1#5335 +ipset=/whatthefox.com/gfwlist +server=/terragraph.com/127.0.0.1#5335 +ipset=/terragraph.com/gfwlist +server=/facebook.us/127.0.0.1#5335 +ipset=/facebook.us/gfwlist +server=/logitech.biz/127.0.0.1#5335 +ipset=/logitech.biz/gfwlist +server=/messenger.com/127.0.0.1#5335 +ipset=/messenger.com/gfwlist +server=/wifehomeporn.com/127.0.0.1#5335 +ipset=/wifehomeporn.com/gfwlist +server=/disneymagicmoments.gr/127.0.0.1#5335 +ipset=/disneymagicmoments.gr/gfwlist +server=/mini.ie/127.0.0.1#5335 +ipset=/mini.ie/gfwlist +server=/eromangajukujo.com/127.0.0.1#5335 +ipset=/eromangajukujo.com/gfwlist +server=/39group.info/127.0.0.1#5335 +ipset=/39group.info/gfwlist +server=/ero-labs.site/127.0.0.1#5335 +ipset=/ero-labs.site/gfwlist +server=/womenwill.com.br/127.0.0.1#5335 +ipset=/womenwill.com.br/gfwlist +server=/my13la.com/127.0.0.1#5335 +ipset=/my13la.com/gfwlist +server=/quanben-xiaoshuo.com/127.0.0.1#5335 +ipset=/quanben-xiaoshuo.com/gfwlist +server=/applestore.co.hu/127.0.0.1#5335 +ipset=/applestore.co.hu/gfwlist +server=/mastercard.si/127.0.0.1#5335 +ipset=/mastercard.si/gfwlist +server=/ebay.com/127.0.0.1#5335 +ipset=/ebay.com/gfwlist +server=/intelcapital.net/127.0.0.1#5335 +ipset=/intelcapital.net/gfwlist +server=/beatsbydre-outletsale.net/127.0.0.1#5335 +ipset=/beatsbydre-outletsale.net/gfwlist +server=/nikeswim.com/127.0.0.1#5335 +ipset=/nikeswim.com/gfwlist +server=/adobecc.com/127.0.0.1#5335 +ipset=/adobecc.com/gfwlist +server=/businesstoday.com.tw/127.0.0.1#5335 +ipset=/businesstoday.com.tw/gfwlist +server=/newsprestigenetwork.com.au/127.0.0.1#5335 +ipset=/newsprestigenetwork.com.au/gfwlist +server=/foxcharlotte.com/127.0.0.1#5335 +ipset=/foxcharlotte.com/gfwlist +server=/epochtimes-romania.com/127.0.0.1#5335 +ipset=/epochtimes-romania.com/gfwlist +server=/bustydustystash.com/127.0.0.1#5335 +ipset=/bustydustystash.com/gfwlist +server=/acasadasbrasileirinhas.com.br/127.0.0.1#5335 +ipset=/acasadasbrasileirinhas.com.br/gfwlist +server=/lbtube.com/127.0.0.1#5335 +ipset=/lbtube.com/gfwlist +server=/disneymagicmoments.fr/127.0.0.1#5335 +ipset=/disneymagicmoments.fr/gfwlist +server=/nabtravellercard.com.au/127.0.0.1#5335 +ipset=/nabtravellercard.com.au/gfwlist +server=/paypal-center.net/127.0.0.1#5335 +ipset=/paypal-center.net/gfwlist +server=/watchout.tw/127.0.0.1#5335 +ipset=/watchout.tw/gfwlist +server=/banned.video/127.0.0.1#5335 +ipset=/banned.video/gfwlist +server=/sf.net/127.0.0.1#5335 +ipset=/sf.net/gfwlist +server=/popjav.tv/127.0.0.1#5335 +ipset=/popjav.tv/gfwlist +server=/he.net/127.0.0.1#5335 +ipset=/he.net/gfwlist +server=/xx9.app/127.0.0.1#5335 +ipset=/xx9.app/gfwlist +server=/ebay.co.nz/127.0.0.1#5335 +ipset=/ebay.co.nz/gfwlist +server=/spotifycdn.net/127.0.0.1#5335 +ipset=/spotifycdn.net/gfwlist +server=/blogspot.com.co/127.0.0.1#5335 +ipset=/blogspot.com.co/gfwlist +server=/brandproducts1688.com/127.0.0.1#5335 +ipset=/brandproducts1688.com/gfwlist +server=/sextube.desi/127.0.0.1#5335 +ipset=/sextube.desi/gfwlist +server=/shops-disney.com/127.0.0.1#5335 +ipset=/shops-disney.com/gfwlist +server=/instagram-help.com/127.0.0.1#5335 +ipset=/instagram-help.com/gfwlist +server=/justusboys.com/127.0.0.1#5335 +ipset=/justusboys.com/gfwlist +server=/lnstagram-help.com/127.0.0.1#5335 +ipset=/lnstagram-help.com/gfwlist +server=/sexwithhorse.net/127.0.0.1#5335 +ipset=/sexwithhorse.net/gfwlist +server=/instagramm.com/127.0.0.1#5335 +ipset=/instagramm.com/gfwlist +server=/new3dcomics.com/127.0.0.1#5335 +ipset=/new3dcomics.com/gfwlist +server=/xxxbule.com/127.0.0.1#5335 +ipset=/xxxbule.com/gfwlist +server=/skype.com/127.0.0.1#5335 +ipset=/skype.com/gfwlist +server=/visabusinessinsights.com/127.0.0.1#5335 +ipset=/visabusinessinsights.com/gfwlist +server=/sex-douga.jp/127.0.0.1#5335 +ipset=/sex-douga.jp/gfwlist +server=/appstore.ph/127.0.0.1#5335 +ipset=/appstore.ph/gfwlist +server=/nvidia.com.br/127.0.0.1#5335 +ipset=/nvidia.com.br/gfwlist +server=/topless.com.ua/127.0.0.1#5335 +ipset=/topless.com.ua/gfwlist +server=/coinone.co.kr/127.0.0.1#5335 +ipset=/coinone.co.kr/gfwlist +server=/universalorlando.com/127.0.0.1#5335 +ipset=/universalorlando.com/gfwlist +server=/huobi.pro/127.0.0.1#5335 +ipset=/huobi.pro/gfwlist +server=/steamcommunity-a.akamaihd.net/127.0.0.1#5335 +ipset=/steamcommunity-a.akamaihd.net/gfwlist +server=/volvotrucks.no/127.0.0.1#5335 +ipset=/volvotrucks.no/gfwlist +server=/paisapay.info/127.0.0.1#5335 +ipset=/paisapay.info/gfwlist +server=/vfsco.at/127.0.0.1#5335 +ipset=/vfsco.at/gfwlist +server=/hentaifox.tv/127.0.0.1#5335 +ipset=/hentaifox.tv/gfwlist +server=/sleazyneasy.com/127.0.0.1#5335 +ipset=/sleazyneasy.com/gfwlist +server=/sikiswap.com/127.0.0.1#5335 +ipset=/sikiswap.com/gfwlist +server=/magentocommerce.com/127.0.0.1#5335 +ipset=/magentocommerce.com/gfwlist +server=/xamarin.com/127.0.0.1#5335 +ipset=/xamarin.com/gfwlist +server=/ipfs.fleek.co/127.0.0.1#5335 +ipset=/ipfs.fleek.co/gfwlist +server=/dailymail.com.au/127.0.0.1#5335 +ipset=/dailymail.com.au/gfwlist +server=/mini-clubs-international.com/127.0.0.1#5335 +ipset=/mini-clubs-international.com/gfwlist +server=/paofu.cloud/127.0.0.1#5335 +ipset=/paofu.cloud/gfwlist +server=/bwbx.io/127.0.0.1#5335 +ipset=/bwbx.io/gfwlist +server=/japan18tube.com/127.0.0.1#5335 +ipset=/japan18tube.com/gfwlist +server=/qualphone.com/127.0.0.1#5335 +ipset=/qualphone.com/gfwlist +server=/viacbs.com/127.0.0.1#5335 +ipset=/viacbs.com/gfwlist +server=/ebay.com.ec/127.0.0.1#5335 +ipset=/ebay.com.ec/gfwlist +server=/pussymomsex.com/127.0.0.1#5335 +ipset=/pussymomsex.com/gfwlist +server=/skate2.com/127.0.0.1#5335 +ipset=/skate2.com/gfwlist +server=/faceobok.com/127.0.0.1#5335 +ipset=/faceobok.com/gfwlist +server=/thai69.com/127.0.0.1#5335 +ipset=/thai69.com/gfwlist +server=/aka-ai.com/127.0.0.1#5335 +ipset=/aka-ai.com/gfwlist +server=/boobieblog.com/127.0.0.1#5335 +ipset=/boobieblog.com/gfwlist +server=/askfacebook.net/127.0.0.1#5335 +ipset=/askfacebook.net/gfwlist +server=/minie.com/127.0.0.1#5335 +ipset=/minie.com/gfwlist +server=/hpstore-emea.com/127.0.0.1#5335 +ipset=/hpstore-emea.com/gfwlist +server=/mininanaimo.ca/127.0.0.1#5335 +ipset=/mininanaimo.ca/gfwlist +server=/greatergothammini.com/127.0.0.1#5335 +ipset=/greatergothammini.com/gfwlist +server=/facebookpoke.net/127.0.0.1#5335 +ipset=/facebookpoke.net/gfwlist +server=/gaypornhdfree.com/127.0.0.1#5335 +ipset=/gaypornhdfree.com/gfwlist +server=/dynacw.com.hk/127.0.0.1#5335 +ipset=/dynacw.com.hk/gfwlist +server=/ebayfrance.com/127.0.0.1#5335 +ipset=/ebayfrance.com/gfwlist +server=/bmw-motorrad.uy/127.0.0.1#5335 +ipset=/bmw-motorrad.uy/gfwlist +server=/chinese-porn-videos.com/127.0.0.1#5335 +ipset=/chinese-porn-videos.com/gfwlist +server=/geeksquadcares.com/127.0.0.1#5335 +ipset=/geeksquadcares.com/gfwlist +server=/bmwmc.net/127.0.0.1#5335 +ipset=/bmwmc.net/gfwlist +server=/microbit.org/127.0.0.1#5335 +ipset=/microbit.org/gfwlist +server=/ikea.co.om/127.0.0.1#5335 +ipset=/ikea.co.om/gfwlist +server=/hentai.pink/127.0.0.1#5335 +ipset=/hentai.pink/gfwlist +server=/asto.re/127.0.0.1#5335 +ipset=/asto.re/gfwlist +server=/cern.ch/127.0.0.1#5335 +ipset=/cern.ch/gfwlist +server=/beatscollection2014.com/127.0.0.1#5335 +ipset=/beatscollection2014.com/gfwlist +server=/microsoftdiplomados.com/127.0.0.1#5335 +ipset=/microsoftdiplomados.com/gfwlist +server=/mixasiansex.com/127.0.0.1#5335 +ipset=/mixasiansex.com/gfwlist +server=/literatumonline.com/127.0.0.1#5335 +ipset=/literatumonline.com/gfwlist +server=/facebookpaper.com/127.0.0.1#5335 +ipset=/facebookpaper.com/gfwlist +server=/visa.com.tw/127.0.0.1#5335 +ipset=/visa.com.tw/gfwlist +server=/apple.si/127.0.0.1#5335 +ipset=/apple.si/gfwlist +server=/callersbane.com/127.0.0.1#5335 +ipset=/callersbane.com/gfwlist +server=/agu.org/127.0.0.1#5335 +ipset=/agu.org/gfwlist +server=/ferronetwork.com/127.0.0.1#5335 +ipset=/ferronetwork.com/gfwlist +server=/motherless.com/127.0.0.1#5335 +ipset=/motherless.com/gfwlist +server=/paypal-forward.com/127.0.0.1#5335 +ipset=/paypal-forward.com/gfwlist +server=/xn--6eup7j.com/127.0.0.1#5335 +ipset=/xn--6eup7j.com/gfwlist +server=/londonmithraeum.com/127.0.0.1#5335 +ipset=/londonmithraeum.com/gfwlist +server=/dettol.co.id/127.0.0.1#5335 +ipset=/dettol.co.id/gfwlist +server=/doseofporn.com/127.0.0.1#5335 +ipset=/doseofporn.com/gfwlist +server=/paxful.com/127.0.0.1#5335 +ipset=/paxful.com/gfwlist +server=/vfsco.no/127.0.0.1#5335 +ipset=/vfsco.no/gfwlist +server=/lotcrap.com/127.0.0.1#5335 +ipset=/lotcrap.com/gfwlist +server=/digitalpack.com/127.0.0.1#5335 +ipset=/digitalpack.com/gfwlist +server=/bmwgroup-werke.com/127.0.0.1#5335 +ipset=/bmwgroup-werke.com/gfwlist +server=/finish.co.kr/127.0.0.1#5335 +ipset=/finish.co.kr/gfwlist +server=/mrskin.com/127.0.0.1#5335 +ipset=/mrskin.com/gfwlist +server=/comicunivers.com/127.0.0.1#5335 +ipset=/comicunivers.com/gfwlist +server=/haplorrhini.com/127.0.0.1#5335 +ipset=/haplorrhini.com/gfwlist +server=/intellij.org/127.0.0.1#5335 +ipset=/intellij.org/gfwlist +server=/zhaimankan.com/127.0.0.1#5335 +ipset=/zhaimankan.com/gfwlist +server=/youngamateursporn.com/127.0.0.1#5335 +ipset=/youngamateursporn.com/gfwlist +server=/lbfmaddiction.com/127.0.0.1#5335 +ipset=/lbfmaddiction.com/gfwlist +server=/theclub.com.hk/127.0.0.1#5335 +ipset=/theclub.com.hk/gfwlist +server=/google.com.ai/127.0.0.1#5335 +ipset=/google.com.ai/gfwlist +server=/solarcity.com/127.0.0.1#5335 +ipset=/solarcity.com/gfwlist +server=/kslive.tv/127.0.0.1#5335 +ipset=/kslive.tv/gfwlist +server=/pinimg.com/127.0.0.1#5335 +ipset=/pinimg.com/gfwlist +server=/xnxxarabsex.com/127.0.0.1#5335 +ipset=/xnxxarabsex.com/gfwlist +server=/realpornclip.com/127.0.0.1#5335 +ipset=/realpornclip.com/gfwlist +server=/vimeobusiness.com/127.0.0.1#5335 +ipset=/vimeobusiness.com/gfwlist +server=/eroxia.com/127.0.0.1#5335 +ipset=/eroxia.com/gfwlist +server=/sextube.fm/127.0.0.1#5335 +ipset=/sextube.fm/gfwlist +server=/bmwgroup.at/127.0.0.1#5335 +ipset=/bmwgroup.at/gfwlist +server=/bnetproduct-a.akamaihd.net/127.0.0.1#5335 +ipset=/bnetproduct-a.akamaihd.net/gfwlist +server=/12diasderegalosdeitunes.pe/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.pe/gfwlist +server=/ebay.pl/127.0.0.1#5335 +ipset=/ebay.pl/gfwlist +server=/fullsexmovs.com/127.0.0.1#5335 +ipset=/fullsexmovs.com/gfwlist +server=/sss.xxx/127.0.0.1#5335 +ipset=/sss.xxx/gfwlist +server=/quatrowireless.com/127.0.0.1#5335 +ipset=/quatrowireless.com/gfwlist +server=/123-hp.com/127.0.0.1#5335 +ipset=/123-hp.com/gfwlist +server=/hotasianbabes.com/127.0.0.1#5335 +ipset=/hotasianbabes.com/gfwlist +server=/acheter-followers-instagram.com/127.0.0.1#5335 +ipset=/acheter-followers-instagram.com/gfwlist +server=/steampowered.com/127.0.0.1#5335 +ipset=/steampowered.com/gfwlist +server=/cumswappingsis.com/127.0.0.1#5335 +ipset=/cumswappingsis.com/gfwlist +server=/dfp6rglgjqszk.cloudfront.net/127.0.0.1#5335 +ipset=/dfp6rglgjqszk.cloudfront.net/gfwlist +server=/clients1.google.com/127.0.0.1#5335 +ipset=/clients1.google.com/gfwlist +server=/vod-hls-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vod-hls-uk-live.akamaized.net/gfwlist +server=/bmw-motorrad.co.nz/127.0.0.1#5335 +ipset=/bmw-motorrad.co.nz/gfwlist +server=/applecarbon.com/127.0.0.1#5335 +ipset=/applecarbon.com/gfwlist +server=/nudevista.club/127.0.0.1#5335 +ipset=/nudevista.club/gfwlist +server=/amazon.com.tr/127.0.0.1#5335 +ipset=/amazon.com.tr/gfwlist +server=/javtorrent.tk/127.0.0.1#5335 +ipset=/javtorrent.tk/gfwlist +server=/boodigo.com/127.0.0.1#5335 +ipset=/boodigo.com/gfwlist +server=/riotgames.jp/127.0.0.1#5335 +ipset=/riotgames.jp/gfwlist +server=/gordonmoore.com/127.0.0.1#5335 +ipset=/gordonmoore.com/gfwlist +server=/adobecreativityawards.com/127.0.0.1#5335 +ipset=/adobecreativityawards.com/gfwlist +server=/scatvids.club/127.0.0.1#5335 +ipset=/scatvids.club/gfwlist +server=/ebayjob.com/127.0.0.1#5335 +ipset=/ebayjob.com/gfwlist +server=/viacomcbspressexpress.com/127.0.0.1#5335 +ipset=/viacomcbspressexpress.com/gfwlist +server=/nhentai.net/127.0.0.1#5335 +ipset=/nhentai.net/gfwlist +server=/holloporn.com/127.0.0.1#5335 +ipset=/holloporn.com/gfwlist +server=/foxnetworksinfo.com/127.0.0.1#5335 +ipset=/foxnetworksinfo.com/gfwlist +server=/swoo.sh/127.0.0.1#5335 +ipset=/swoo.sh/gfwlist +server=/fox28media.com/127.0.0.1#5335 +ipset=/fox28media.com/gfwlist +server=/desertbmw.com/127.0.0.1#5335 +ipset=/desertbmw.com/gfwlist +server=/voatibetanenglish.com/127.0.0.1#5335 +ipset=/voatibetanenglish.com/gfwlist +server=/arcadewank.com/127.0.0.1#5335 +ipset=/arcadewank.com/gfwlist +server=/epochtime.com/127.0.0.1#5335 +ipset=/epochtime.com/gfwlist +server=/1337xto.to/127.0.0.1#5335 +ipset=/1337xto.to/gfwlist +server=/cnix-gov-cn.com/127.0.0.1#5335 +ipset=/cnix-gov-cn.com/gfwlist +server=/ebaycommercenetwork.com/127.0.0.1#5335 +ipset=/ebaycommercenetwork.com/gfwlist +server=/managedmeetingrooms.com/127.0.0.1#5335 +ipset=/managedmeetingrooms.com/gfwlist +server=/ads-twitter.com/127.0.0.1#5335 +ipset=/ads-twitter.com/gfwlist +server=/myboylove.com/127.0.0.1#5335 +ipset=/myboylove.com/gfwlist +server=/xandr.com/127.0.0.1#5335 +ipset=/xandr.com/gfwlist +server=/mybmw.com/127.0.0.1#5335 +ipset=/mybmw.com/gfwlist +server=/rolls-roycemotorcarsna.com/127.0.0.1#5335 +ipset=/rolls-roycemotorcarsna.com/gfwlist +server=/drebeats-singaporecheap.com/127.0.0.1#5335 +ipset=/drebeats-singaporecheap.com/gfwlist +server=/ladyboypornonly.com/127.0.0.1#5335 +ipset=/ladyboypornonly.com/gfwlist +server=/ijavhd.com/127.0.0.1#5335 +ipset=/ijavhd.com/gfwlist +server=/api-extractor.com/127.0.0.1#5335 +ipset=/api-extractor.com/gfwlist +server=/guardianproject.info/127.0.0.1#5335 +ipset=/guardianproject.info/gfwlist +server=/truyen18.xyz/127.0.0.1#5335 +ipset=/truyen18.xyz/gfwlist +server=/firesidegatherings.com/127.0.0.1#5335 +ipset=/firesidegatherings.com/gfwlist +server=/x6av.com/127.0.0.1#5335 +ipset=/x6av.com/gfwlist +server=/nudistvoyeurbeach.com/127.0.0.1#5335 +ipset=/nudistvoyeurbeach.com/gfwlist +server=/3hentai.net/127.0.0.1#5335 +ipset=/3hentai.net/gfwlist +server=/zee5.in/127.0.0.1#5335 +ipset=/zee5.in/gfwlist +server=/bmw-iraq.com/127.0.0.1#5335 +ipset=/bmw-iraq.com/gfwlist +server=/azure-dns.net/127.0.0.1#5335 +ipset=/azure-dns.net/gfwlist +server=/youtubego.com.br/127.0.0.1#5335 +ipset=/youtubego.com.br/gfwlist +server=/90seconds.asia/127.0.0.1#5335 +ipset=/90seconds.asia/gfwlist +server=/ikea.lt/127.0.0.1#5335 +ipset=/ikea.lt/gfwlist +server=/flexsig.com/127.0.0.1#5335 +ipset=/flexsig.com/gfwlist +server=/babesource.com/127.0.0.1#5335 +ipset=/babesource.com/gfwlist +server=/ubereats.com/127.0.0.1#5335 +ipset=/ubereats.com/gfwlist +server=/facebookporn.net/127.0.0.1#5335 +ipset=/facebookporn.net/gfwlist +server=/smartexpos.com/127.0.0.1#5335 +ipset=/smartexpos.com/gfwlist +server=/hpcomputerservices.com/127.0.0.1#5335 +ipset=/hpcomputerservices.com/gfwlist +server=/avstar07.com/127.0.0.1#5335 +ipset=/avstar07.com/gfwlist +server=/ywbclx.top/127.0.0.1#5335 +ipset=/ywbclx.top/gfwlist +server=/yahoo.com.my/127.0.0.1#5335 +ipset=/yahoo.com.my/gfwlist +server=/egghead.io/127.0.0.1#5335 +ipset=/egghead.io/gfwlist +server=/volvogroup.pl/127.0.0.1#5335 +ipset=/volvogroup.pl/gfwlist +server=/amazon.jobs/127.0.0.1#5335 +ipset=/amazon.jobs/gfwlist +server=/silverchair-cdn.com/127.0.0.1#5335 +ipset=/silverchair-cdn.com/gfwlist +server=/intc.com/127.0.0.1#5335 +ipset=/intc.com/gfwlist +server=/addthis.com/127.0.0.1#5335 +ipset=/addthis.com/gfwlist +server=/bmw.ch/127.0.0.1#5335 +ipset=/bmw.ch/gfwlist +server=/slutdump.com/127.0.0.1#5335 +ipset=/slutdump.com/gfwlist +server=/visa.com.lk/127.0.0.1#5335 +ipset=/visa.com.lk/gfwlist +server=/airav.wiki/127.0.0.1#5335 +ipset=/airav.wiki/gfwlist +server=/accessfacebookfromschool.com/127.0.0.1#5335 +ipset=/accessfacebookfromschool.com/gfwlist +server=/teensloveporn.net/127.0.0.1#5335 +ipset=/teensloveporn.net/gfwlist +server=/fbcdn.net/127.0.0.1#5335 +ipset=/fbcdn.net/gfwlist +server=/edx-cdn.org/127.0.0.1#5335 +ipset=/edx-cdn.org/gfwlist +server=/footseen.com/127.0.0.1#5335 +ipset=/footseen.com/gfwlist +server=/pornoscanner.com/127.0.0.1#5335 +ipset=/pornoscanner.com/gfwlist +server=/javhdporn.net/127.0.0.1#5335 +ipset=/javhdporn.net/gfwlist +server=/ebay-inc.com/127.0.0.1#5335 +ipset=/ebay-inc.com/gfwlist +server=/avstar5.com/127.0.0.1#5335 +ipset=/avstar5.com/gfwlist +server=/topsexart.com/127.0.0.1#5335 +ipset=/topsexart.com/gfwlist +server=/calgon.pt/127.0.0.1#5335 +ipset=/calgon.pt/gfwlist +server=/91se.fun/127.0.0.1#5335 +ipset=/91se.fun/gfwlist +server=/karlajames.com/127.0.0.1#5335 +ipset=/karlajames.com/gfwlist +server=/sexmovies24.com/127.0.0.1#5335 +ipset=/sexmovies24.com/gfwlist +server=/nike.gy/127.0.0.1#5335 +ipset=/nike.gy/gfwlist +server=/milehighmedia.com/127.0.0.1#5335 +ipset=/milehighmedia.com/gfwlist +server=/xn--3et96bj49ahpq.com/127.0.0.1#5335 +ipset=/xn--3et96bj49ahpq.com/gfwlist +server=/trueamateurmodels.com/127.0.0.1#5335 +ipset=/trueamateurmodels.com/gfwlist +server=/volvogroup.pe/127.0.0.1#5335 +ipset=/volvogroup.pe/gfwlist +server=/engineeringvillage.com/127.0.0.1#5335 +ipset=/engineeringvillage.com/gfwlist +server=/youtube.fi/127.0.0.1#5335 +ipset=/youtube.fi/gfwlist +server=/ebay.vn/127.0.0.1#5335 +ipset=/ebay.vn/gfwlist +server=/livecamclips.com/127.0.0.1#5335 +ipset=/livecamclips.com/gfwlist +server=/flirtyhoookup.com/127.0.0.1#5335 +ipset=/flirtyhoookup.com/gfwlist +server=/microsofthouse.com/127.0.0.1#5335 +ipset=/microsofthouse.com/gfwlist +server=/speedxtra.com/127.0.0.1#5335 +ipset=/speedxtra.com/gfwlist +server=/ebayclassifiedsgroup.com/127.0.0.1#5335 +ipset=/ebayclassifiedsgroup.com/gfwlist +server=/bmw-motorrad.co.th/127.0.0.1#5335 +ipset=/bmw-motorrad.co.th/gfwlist +server=/garena.my/127.0.0.1#5335 +ipset=/garena.my/gfwlist +server=/instagramsepeti.com/127.0.0.1#5335 +ipset=/instagramsepeti.com/gfwlist +server=/globalsign.com/127.0.0.1#5335 +ipset=/globalsign.com/gfwlist +server=/iphone.cm/127.0.0.1#5335 +ipset=/iphone.cm/gfwlist +server=/ems-ph.org/127.0.0.1#5335 +ipset=/ems-ph.org/gfwlist +server=/pornwhite.com/127.0.0.1#5335 +ipset=/pornwhite.com/gfwlist +server=/gettyimages.in/127.0.0.1#5335 +ipset=/gettyimages.in/gfwlist +server=/hardcoregayblog.com/127.0.0.1#5335 +ipset=/hardcoregayblog.com/gfwlist +server=/bestescortgirls.nl/127.0.0.1#5335 +ipset=/bestescortgirls.nl/gfwlist +server=/nightclub.eu/127.0.0.1#5335 +ipset=/nightclub.eu/gfwlist +server=/ukwhoswho.com/127.0.0.1#5335 +ipset=/ukwhoswho.com/gfwlist +server=/coitustube.com/127.0.0.1#5335 +ipset=/coitustube.com/gfwlist +server=/beats4salecheap.com/127.0.0.1#5335 +ipset=/beats4salecheap.com/gfwlist +server=/pornmagnet.org/127.0.0.1#5335 +ipset=/pornmagnet.org/gfwlist +server=/applecare.wang/127.0.0.1#5335 +ipset=/applecare.wang/gfwlist +server=/wa.me/127.0.0.1#5335 +ipset=/wa.me/gfwlist +server=/needforspeedtakedown.com/127.0.0.1#5335 +ipset=/needforspeedtakedown.com/gfwlist +server=/cliphayho.com/127.0.0.1#5335 +ipset=/cliphayho.com/gfwlist +server=/runwayescorts.com/127.0.0.1#5335 +ipset=/runwayescorts.com/gfwlist +server=/riotforgegames.com/127.0.0.1#5335 +ipset=/riotforgegames.com/gfwlist +server=/x-fetish.org/127.0.0.1#5335 +ipset=/x-fetish.org/gfwlist +server=/s-xoom.com/127.0.0.1#5335 +ipset=/s-xoom.com/gfwlist +server=/gfleaks.com/127.0.0.1#5335 +ipset=/gfleaks.com/gfwlist +server=/eamythic.com/127.0.0.1#5335 +ipset=/eamythic.com/gfwlist +server=/tiffany-towers.com/127.0.0.1#5335 +ipset=/tiffany-towers.com/gfwlist +server=/hpwellnesscentral.com/127.0.0.1#5335 +ipset=/hpwellnesscentral.com/gfwlist +server=/myradio.com.hk/127.0.0.1#5335 +ipset=/myradio.com.hk/gfwlist +server=/cbsistatic.com/127.0.0.1#5335 +ipset=/cbsistatic.com/gfwlist +server=/hbogoasia.tw/127.0.0.1#5335 +ipset=/hbogoasia.tw/gfwlist +server=/wiifitu.com/127.0.0.1#5335 +ipset=/wiifitu.com/gfwlist +server=/airwatchqa.com/127.0.0.1#5335 +ipset=/airwatchqa.com/gfwlist +server=/futunited.com/127.0.0.1#5335 +ipset=/futunited.com/gfwlist +server=/spermyporn.com/127.0.0.1#5335 +ipset=/spermyporn.com/gfwlist +server=/eskimotube.com/127.0.0.1#5335 +ipset=/eskimotube.com/gfwlist +server=/slutclit.com/127.0.0.1#5335 +ipset=/slutclit.com/gfwlist +server=/adidas.com/127.0.0.1#5335 +ipset=/adidas.com/gfwlist +server=/durex-shop.ch/127.0.0.1#5335 +ipset=/durex-shop.ch/gfwlist +server=/iphonexs.tv/127.0.0.1#5335 +ipset=/iphonexs.tv/gfwlist +server=/yahoo.lu/127.0.0.1#5335 +ipset=/yahoo.lu/gfwlist +server=/myfoxtampabay.com/127.0.0.1#5335 +ipset=/myfoxtampabay.com/gfwlist +server=/gloryholefucking.com/127.0.0.1#5335 +ipset=/gloryholefucking.com/gfwlist +server=/microsoftnews.com/127.0.0.1#5335 +ipset=/microsoftnews.com/gfwlist +server=/standardsuniversity.org/127.0.0.1#5335 +ipset=/standardsuniversity.org/gfwlist +server=/gate.cc/127.0.0.1#5335 +ipset=/gate.cc/gfwlist +server=/iphonecases100.com/127.0.0.1#5335 +ipset=/iphonecases100.com/gfwlist +server=/bmw-pma.com.sg/127.0.0.1#5335 +ipset=/bmw-pma.com.sg/gfwlist +server=/akamaa.com/127.0.0.1#5335 +ipset=/akamaa.com/gfwlist +server=/swiftfinancial.com/127.0.0.1#5335 +ipset=/swiftfinancial.com/gfwlist +server=/zb.app/127.0.0.1#5335 +ipset=/zb.app/gfwlist +server=/sex.sex/127.0.0.1#5335 +ipset=/sex.sex/gfwlist +server=/applefinalcutproworld.net/127.0.0.1#5335 +ipset=/applefinalcutproworld.net/gfwlist +server=/afp.com/127.0.0.1#5335 +ipset=/afp.com/gfwlist +server=/bmw-werk-berlin.de/127.0.0.1#5335 +ipset=/bmw-werk-berlin.de/gfwlist +server=/zb.live/127.0.0.1#5335 +ipset=/zb.live/gfwlist +server=/get.app/127.0.0.1#5335 +ipset=/get.app/gfwlist +server=/scholar.google.ch/127.0.0.1#5335 +ipset=/scholar.google.ch/gfwlist +server=/mylittlenieces.com/127.0.0.1#5335 +ipset=/mylittlenieces.com/gfwlist +server=/megahdporno.net/127.0.0.1#5335 +ipset=/megahdporno.net/gfwlist +server=/adidas.it/127.0.0.1#5335 +ipset=/adidas.it/gfwlist +server=/youngheaven.com/127.0.0.1#5335 +ipset=/youngheaven.com/gfwlist +server=/pearson.com.ar/127.0.0.1#5335 +ipset=/pearson.com.ar/gfwlist +server=/alt4-mtalk.google.com/127.0.0.1#5335 +ipset=/alt4-mtalk.google.com/gfwlist +server=/gettyimages.se/127.0.0.1#5335 +ipset=/gettyimages.se/gfwlist +server=/nuddess.com/127.0.0.1#5335 +ipset=/nuddess.com/gfwlist +server=/onani-daisuki.com/127.0.0.1#5335 +ipset=/onani-daisuki.com/gfwlist +server=/coursera-for-business.org/127.0.0.1#5335 +ipset=/coursera-for-business.org/gfwlist +server=/gamesathletes.com/127.0.0.1#5335 +ipset=/gamesathletes.com/gfwlist +server=/alphabet.com.lv/127.0.0.1#5335 +ipset=/alphabet.com.lv/gfwlist +server=/hdreporn.com/127.0.0.1#5335 +ipset=/hdreporn.com/gfwlist +server=/decrypt.day/127.0.0.1#5335 +ipset=/decrypt.day/gfwlist +server=/espn.co.uk/127.0.0.1#5335 +ipset=/espn.co.uk/gfwlist +server=/sandisk.id/127.0.0.1#5335 +ipset=/sandisk.id/gfwlist +server=/scholar.google.hr/127.0.0.1#5335 +ipset=/scholar.google.hr/gfwlist +server=/beatsbydregot.com/127.0.0.1#5335 +ipset=/beatsbydregot.com/gfwlist +server=/tesla.com/127.0.0.1#5335 +ipset=/tesla.com/gfwlist +server=/dickhardon.com/127.0.0.1#5335 +ipset=/dickhardon.com/gfwlist +server=/imageshack.us/127.0.0.1#5335 +ipset=/imageshack.us/gfwlist +server=/baselinestudy.org/127.0.0.1#5335 +ipset=/baselinestudy.org/gfwlist +server=/mucinex.co.nz/127.0.0.1#5335 +ipset=/mucinex.co.nz/gfwlist +server=/xingrz.me/127.0.0.1#5335 +ipset=/xingrz.me/gfwlist +server=/cash2.com/127.0.0.1#5335 +ipset=/cash2.com/gfwlist +server=/unrealtournament.com/127.0.0.1#5335 +ipset=/unrealtournament.com/gfwlist +server=/travelex.de/127.0.0.1#5335 +ipset=/travelex.de/gfwlist +server=/jwplayer.com/127.0.0.1#5335 +ipset=/jwplayer.com/gfwlist +server=/swingercuckoldporn.com/127.0.0.1#5335 +ipset=/swingercuckoldporn.com/gfwlist +server=/pagespeedmobilizer.com/127.0.0.1#5335 +ipset=/pagespeedmobilizer.com/gfwlist +server=/casquebeatsdre2013.com/127.0.0.1#5335 +ipset=/casquebeatsdre2013.com/gfwlist +server=/homepornking.com/127.0.0.1#5335 +ipset=/homepornking.com/gfwlist +server=/iphone.net.gr/127.0.0.1#5335 +ipset=/iphone.net.gr/gfwlist +server=/blogspot.lu/127.0.0.1#5335 +ipset=/blogspot.lu/gfwlist +server=/intel.com/127.0.0.1#5335 +ipset=/intel.com/gfwlist +server=/bdsm-mov.net/127.0.0.1#5335 +ipset=/bdsm-mov.net/gfwlist +server=/iwaponline.com/127.0.0.1#5335 +ipset=/iwaponline.com/gfwlist +server=/applehongkong.com.hk/127.0.0.1#5335 +ipset=/applehongkong.com.hk/gfwlist +server=/visiontimes.fr/127.0.0.1#5335 +ipset=/visiontimes.fr/gfwlist +server=/69luolie.com/127.0.0.1#5335 +ipset=/69luolie.com/gfwlist +server=/ieee-into-focus.org/127.0.0.1#5335 +ipset=/ieee-into-focus.org/gfwlist +server=/hotladsworld.com/127.0.0.1#5335 +ipset=/hotladsworld.com/gfwlist +server=/edengay.net/127.0.0.1#5335 +ipset=/edengay.net/gfwlist +server=/beatsbydreexecutivesale.com/127.0.0.1#5335 +ipset=/beatsbydreexecutivesale.com/gfwlist +server=/akadns.com/127.0.0.1#5335 +ipset=/akadns.com/gfwlist +server=/googlemail.com/127.0.0.1#5335 +ipset=/googlemail.com/gfwlist +server=/jabcomix.com/127.0.0.1#5335 +ipset=/jabcomix.com/gfwlist +server=/fujinkoron.jp/127.0.0.1#5335 +ipset=/fujinkoron.jp/gfwlist +server=/ponyanimalsex.com/127.0.0.1#5335 +ipset=/ponyanimalsex.com/gfwlist +server=/facebookappcenter.net/127.0.0.1#5335 +ipset=/facebookappcenter.net/gfwlist +server=/bigtitsgallery.net/127.0.0.1#5335 +ipset=/bigtitsgallery.net/gfwlist +server=/crazyxxx3dworld.org/127.0.0.1#5335 +ipset=/crazyxxx3dworld.org/gfwlist +server=/gitbook.com/127.0.0.1#5335 +ipset=/gitbook.com/gfwlist +server=/absoluporn.com/127.0.0.1#5335 +ipset=/absoluporn.com/gfwlist +server=/paypal.com.hk/127.0.0.1#5335 +ipset=/paypal.com.hk/gfwlist +server=/worldpornvideos.com/127.0.0.1#5335 +ipset=/worldpornvideos.com/gfwlist +server=/indiansexstories.net/127.0.0.1#5335 +ipset=/indiansexstories.net/gfwlist +server=/nvidia.com.mx/127.0.0.1#5335 +ipset=/nvidia.com.mx/gfwlist +server=/qdiehzz7.me/127.0.0.1#5335 +ipset=/qdiehzz7.me/gfwlist +server=/arabnek.com/127.0.0.1#5335 +ipset=/arabnek.com/gfwlist +server=/nonktube.com/127.0.0.1#5335 +ipset=/nonktube.com/gfwlist +server=/nlm.io/127.0.0.1#5335 +ipset=/nlm.io/gfwlist +server=/pokemonultrasunmoon.com/127.0.0.1#5335 +ipset=/pokemonultrasunmoon.com/gfwlist +server=/sp.cool/127.0.0.1#5335 +ipset=/sp.cool/gfwlist +server=/facetook.com/127.0.0.1#5335 +ipset=/facetook.com/gfwlist +server=/animalporn.me/127.0.0.1#5335 +ipset=/animalporn.me/gfwlist +server=/desipornfilms.com/127.0.0.1#5335 +ipset=/desipornfilms.com/gfwlist +server=/casquedrdrebeatssfr.com/127.0.0.1#5335 +ipset=/casquedrdrebeatssfr.com/gfwlist +server=/milfmaturesex.net/127.0.0.1#5335 +ipset=/milfmaturesex.net/gfwlist +server=/bbc.in/127.0.0.1#5335 +ipset=/bbc.in/gfwlist +server=/hypnohub.net/127.0.0.1#5335 +ipset=/hypnohub.net/gfwlist +server=/paypal-online.info/127.0.0.1#5335 +ipset=/paypal-online.info/gfwlist +server=/scholar.google.com.bo/127.0.0.1#5335 +ipset=/scholar.google.com.bo/gfwlist +server=/masalabin.com/127.0.0.1#5335 +ipset=/masalabin.com/gfwlist +server=/twttr.com/127.0.0.1#5335 +ipset=/twttr.com/gfwlist +server=/mafia-linkz.to/127.0.0.1#5335 +ipset=/mafia-linkz.to/gfwlist +server=/awscommandlineinterface.com/127.0.0.1#5335 +ipset=/awscommandlineinterface.com/gfwlist +server=/vpro.net/127.0.0.1#5335 +ipset=/vpro.net/gfwlist +server=/bmw.ma/127.0.0.1#5335 +ipset=/bmw.ma/gfwlist +server=/pise.pw/127.0.0.1#5335 +ipset=/pise.pw/gfwlist +server=/pornobae.com/127.0.0.1#5335 +ipset=/pornobae.com/gfwlist +server=/minnano-av.com/127.0.0.1#5335 +ipset=/minnano-av.com/gfwlist +server=/gamesofdesire.com/127.0.0.1#5335 +ipset=/gamesofdesire.com/gfwlist +server=/xxxgratisfilms.com/127.0.0.1#5335 +ipset=/xxxgratisfilms.com/gfwlist +server=/autodesk.com/127.0.0.1#5335 +ipset=/autodesk.com/gfwlist +server=/tearapeak.com/127.0.0.1#5335 +ipset=/tearapeak.com/gfwlist +server=/foxphiladelphia.com/127.0.0.1#5335 +ipset=/foxphiladelphia.com/gfwlist +server=/livejasmin.com/127.0.0.1#5335 +ipset=/livejasmin.com/gfwlist +server=/bmw-motorrad.com.ar/127.0.0.1#5335 +ipset=/bmw-motorrad.com.ar/gfwlist +server=/nudelive.com/127.0.0.1#5335 +ipset=/nudelive.com/gfwlist +server=/gtv.org/127.0.0.1#5335 +ipset=/gtv.org/gfwlist +server=/blizzardgearstore.com/127.0.0.1#5335 +ipset=/blizzardgearstore.com/gfwlist +server=/hotsexydolls.com/127.0.0.1#5335 +ipset=/hotsexydolls.com/gfwlist +server=/thomsonreuters.co.jp/127.0.0.1#5335 +ipset=/thomsonreuters.co.jp/gfwlist +server=/oreilly.com/127.0.0.1#5335 +ipset=/oreilly.com/gfwlist +server=/mysql.com/127.0.0.1#5335 +ipset=/mysql.com/gfwlist +server=/kijji.ca/127.0.0.1#5335 +ipset=/kijji.ca/gfwlist +server=/visa.com.hr/127.0.0.1#5335 +ipset=/visa.com.hr/gfwlist +server=/ig.me/127.0.0.1#5335 +ipset=/ig.me/gfwlist +server=/2mdn.net/127.0.0.1#5335 +ipset=/2mdn.net/gfwlist +server=/steampipe.akamaized.net/127.0.0.1#5335 +ipset=/steampipe.akamaized.net/gfwlist +server=/travelex.com.tr/127.0.0.1#5335 +ipset=/travelex.com.tr/gfwlist +server=/takens.tw/127.0.0.1#5335 +ipset=/takens.tw/gfwlist +server=/moviesanywhere.com/127.0.0.1#5335 +ipset=/moviesanywhere.com/gfwlist +server=/youjizz.com/127.0.0.1#5335 +ipset=/youjizz.com/gfwlist +server=/tubemovies4k.com/127.0.0.1#5335 +ipset=/tubemovies4k.com/gfwlist +server=/superjapanesesex.com/127.0.0.1#5335 +ipset=/superjapanesesex.com/gfwlist +server=/kinklive.com/127.0.0.1#5335 +ipset=/kinklive.com/gfwlist +server=/pornone.com/127.0.0.1#5335 +ipset=/pornone.com/gfwlist +server=/infrapedia.com/127.0.0.1#5335 +ipset=/infrapedia.com/gfwlist +server=/apple.in/127.0.0.1#5335 +ipset=/apple.in/gfwlist +server=/ingka.com/127.0.0.1#5335 +ipset=/ingka.com/gfwlist +server=/facebocke.com/127.0.0.1#5335 +ipset=/facebocke.com/gfwlist +server=/realclearhealth.com/127.0.0.1#5335 +ipset=/realclearhealth.com/gfwlist +server=/rocketfishproducts.com/127.0.0.1#5335 +ipset=/rocketfishproducts.com/gfwlist +server=/facebookbrand.com/127.0.0.1#5335 +ipset=/facebookbrand.com/gfwlist +server=/facebookcheats.com/127.0.0.1#5335 +ipset=/facebookcheats.com/gfwlist +server=/modular.im/127.0.0.1#5335 +ipset=/modular.im/gfwlist +server=/duckduckgo.sg/127.0.0.1#5335 +ipset=/duckduckgo.sg/gfwlist +server=/pearsonassessment.fr/127.0.0.1#5335 +ipset=/pearsonassessment.fr/gfwlist +server=/now.com/127.0.0.1#5335 +ipset=/now.com/gfwlist +server=/bmw-connecteddrive.com.br/127.0.0.1#5335 +ipset=/bmw-connecteddrive.com.br/gfwlist +server=/xnxxporn.de/127.0.0.1#5335 +ipset=/xnxxporn.de/gfwlist +server=/pinterest.fr/127.0.0.1#5335 +ipset=/pinterest.fr/gfwlist +server=/facebooknews.com/127.0.0.1#5335 +ipset=/facebooknews.com/gfwlist +server=/faronics.eu/127.0.0.1#5335 +ipset=/faronics.eu/gfwlist +server=/adultvideotop.com/127.0.0.1#5335 +ipset=/adultvideotop.com/gfwlist +server=/abc.xyz/127.0.0.1#5335 +ipset=/abc.xyz/gfwlist +server=/linuxmint.com/127.0.0.1#5335 +ipset=/linuxmint.com/gfwlist +server=/girlswelustfor.com/127.0.0.1#5335 +ipset=/girlswelustfor.com/gfwlist +server=/wikawika.xyz/127.0.0.1#5335 +ipset=/wikawika.xyz/gfwlist +server=/intel.lu/127.0.0.1#5335 +ipset=/intel.lu/gfwlist +server=/zeit-world.co.uk/127.0.0.1#5335 +ipset=/zeit-world.co.uk/gfwlist +server=/realteengirls.com/127.0.0.1#5335 +ipset=/realteengirls.com/gfwlist +server=/unkoscene.com/127.0.0.1#5335 +ipset=/unkoscene.com/gfwlist +server=/is.gd/127.0.0.1#5335 +ipset=/is.gd/gfwlist +server=/mini-connected.lu/127.0.0.1#5335 +ipset=/mini-connected.lu/gfwlist +server=/47news.jp/127.0.0.1#5335 +ipset=/47news.jp/gfwlist +server=/rbgraduates.com/127.0.0.1#5335 +ipset=/rbgraduates.com/gfwlist +server=/google.lv/127.0.0.1#5335 +ipset=/google.lv/gfwlist +server=/mymasturbators.com/127.0.0.1#5335 +ipset=/mymasturbators.com/gfwlist +server=/8thstreetlatinas.com/127.0.0.1#5335 +ipset=/8thstreetlatinas.com/gfwlist +server=/juliamovies.com/127.0.0.1#5335 +ipset=/juliamovies.com/gfwlist +server=/nmbmw.com/127.0.0.1#5335 +ipset=/nmbmw.com/gfwlist +server=/trellocdn.com/127.0.0.1#5335 +ipset=/trellocdn.com/gfwlist +server=/devtools-paypal.com/127.0.0.1#5335 +ipset=/devtools-paypal.com/gfwlist +server=/swingers.theadulthub.com/127.0.0.1#5335 +ipset=/swingers.theadulthub.com/gfwlist +server=/qwant.de/127.0.0.1#5335 +ipset=/qwant.de/gfwlist +server=/wifewantstoplay.com/127.0.0.1#5335 +ipset=/wifewantstoplay.com/gfwlist +server=/vfsco.ee/127.0.0.1#5335 +ipset=/vfsco.ee/gfwlist +server=/youtube.am/127.0.0.1#5335 +ipset=/youtube.am/gfwlist +server=/pornoreino.com/127.0.0.1#5335 +ipset=/pornoreino.com/gfwlist +server=/vmw.com/127.0.0.1#5335 +ipset=/vmw.com/gfwlist +server=/canon.se/127.0.0.1#5335 +ipset=/canon.se/gfwlist +server=/nikeshoes21.com/127.0.0.1#5335 +ipset=/nikeshoes21.com/gfwlist +server=/beatsbydreaustraliaonlines.com/127.0.0.1#5335 +ipset=/beatsbydreaustraliaonlines.com/gfwlist +server=/flipshare.com/127.0.0.1#5335 +ipset=/flipshare.com/gfwlist +server=/camgirlfinder.net/127.0.0.1#5335 +ipset=/camgirlfinder.net/gfwlist +server=/ssx3.com/127.0.0.1#5335 +ipset=/ssx3.com/gfwlist +server=/candycumcity.com/127.0.0.1#5335 +ipset=/candycumcity.com/gfwlist +server=/scatville.com/127.0.0.1#5335 +ipset=/scatville.com/gfwlist +server=/applewatchseries3.net/127.0.0.1#5335 +ipset=/applewatchseries3.net/gfwlist +server=/mkto-c0100.com/127.0.0.1#5335 +ipset=/mkto-c0100.com/gfwlist +server=/bmw.bm/127.0.0.1#5335 +ipset=/bmw.bm/gfwlist +server=/skyoceanrescue.it/127.0.0.1#5335 +ipset=/skyoceanrescue.it/gfwlist +server=/withyoutube.com/127.0.0.1#5335 +ipset=/withyoutube.com/gfwlist +server=/pornqd.com/127.0.0.1#5335 +ipset=/pornqd.com/gfwlist +server=/moozporn.com/127.0.0.1#5335 +ipset=/moozporn.com/gfwlist +server=/sandisk.ae/127.0.0.1#5335 +ipset=/sandisk.ae/gfwlist +server=/hentaicomics.asia/127.0.0.1#5335 +ipset=/hentaicomics.asia/gfwlist +server=/bmw.co.th/127.0.0.1#5335 +ipset=/bmw.co.th/gfwlist +server=/bestcamsites.net/127.0.0.1#5335 +ipset=/bestcamsites.net/gfwlist +server=/boundhub.com/127.0.0.1#5335 +ipset=/boundhub.com/gfwlist +server=/youtube.hk/127.0.0.1#5335 +ipset=/youtube.hk/gfwlist +server=/pyhapp.com/127.0.0.1#5335 +ipset=/pyhapp.com/gfwlist +server=/xchina.co/127.0.0.1#5335 +ipset=/xchina.co/gfwlist +server=/bmw-i.jp/127.0.0.1#5335 +ipset=/bmw-i.jp/gfwlist +server=/tryengineering.org/127.0.0.1#5335 +ipset=/tryengineering.org/gfwlist +server=/hbogoasia.ph/127.0.0.1#5335 +ipset=/hbogoasia.ph/gfwlist +server=/chinadecoding.com/127.0.0.1#5335 +ipset=/chinadecoding.com/gfwlist +server=/ipoditouch.com/127.0.0.1#5335 +ipset=/ipoditouch.com/gfwlist +server=/faronics.com/127.0.0.1#5335 +ipset=/faronics.com/gfwlist +server=/88gals.com/127.0.0.1#5335 +ipset=/88gals.com/gfwlist +server=/zencdn.net/127.0.0.1#5335 +ipset=/zencdn.net/gfwlist +server=/mini-srilanka.com/127.0.0.1#5335 +ipset=/mini-srilanka.com/gfwlist +server=/mrporngeek.com/127.0.0.1#5335 +ipset=/mrporngeek.com/gfwlist +server=/visafulfillment.com/127.0.0.1#5335 +ipset=/visafulfillment.com/gfwlist +server=/volvobuses.ca/127.0.0.1#5335 +ipset=/volvobuses.ca/gfwlist +server=/selectyourgame.com/127.0.0.1#5335 +ipset=/selectyourgame.com/gfwlist +server=/q10.jp/127.0.0.1#5335 +ipset=/q10.jp/gfwlist +server=/tubetubetube.com/127.0.0.1#5335 +ipset=/tubetubetube.com/gfwlist +server=/tubous.com/127.0.0.1#5335 +ipset=/tubous.com/gfwlist +server=/spotify-everywhere.com/127.0.0.1#5335 +ipset=/spotify-everywhere.com/gfwlist +server=/dvdtrailertube.com/127.0.0.1#5335 +ipset=/dvdtrailertube.com/gfwlist +server=/friendfeed.com/127.0.0.1#5335 +ipset=/friendfeed.com/gfwlist +server=/hifixxx.fun/127.0.0.1#5335 +ipset=/hifixxx.fun/gfwlist +server=/google.co/127.0.0.1#5335 +ipset=/google.co/gfwlist +server=/kichikuou.com/127.0.0.1#5335 +ipset=/kichikuou.com/gfwlist +server=/babes34.com/127.0.0.1#5335 +ipset=/babes34.com/gfwlist +server=/elsevier.com/127.0.0.1#5335 +ipset=/elsevier.com/gfwlist +server=/tsquare.tv/127.0.0.1#5335 +ipset=/tsquare.tv/gfwlist +server=/starbucksslovakia.sk/127.0.0.1#5335 +ipset=/starbucksslovakia.sk/gfwlist +server=/darkageofcamelot.com/127.0.0.1#5335 +ipset=/darkageofcamelot.com/gfwlist +server=/starbucksromania.ro/127.0.0.1#5335 +ipset=/starbucksromania.ro/gfwlist +server=/avstar06.me/127.0.0.1#5335 +ipset=/avstar06.me/gfwlist +server=/cuckoldwifetube.com/127.0.0.1#5335 +ipset=/cuckoldwifetube.com/gfwlist +server=/yzzk.com/127.0.0.1#5335 +ipset=/yzzk.com/gfwlist +server=/mediawiki.org/127.0.0.1#5335 +ipset=/mediawiki.org/gfwlist +server=/starbucksreserve.com/127.0.0.1#5335 +ipset=/starbucksreserve.com/gfwlist +server=/starbucksforlife.ca/127.0.0.1#5335 +ipset=/starbucksforlife.ca/gfwlist +server=/starbuckscoffeegearstore.com/127.0.0.1#5335 +ipset=/starbuckscoffeegearstore.com/gfwlist +server=/sharks-lagoon.fr/127.0.0.1#5335 +ipset=/sharks-lagoon.fr/gfwlist +server=/starbuckscoffee.cz/127.0.0.1#5335 +ipset=/starbuckscoffee.cz/gfwlist +server=/starbuckscardb2b.com/127.0.0.1#5335 +ipset=/starbuckscardb2b.com/gfwlist +server=/volvobrandshop.com/127.0.0.1#5335 +ipset=/volvobrandshop.com/gfwlist +server=/starbucksavie.ca/127.0.0.1#5335 +ipset=/starbucksavie.ca/gfwlist +server=/ebayworlds.com/127.0.0.1#5335 +ipset=/ebayworlds.com/gfwlist +server=/starbucksathome.com/127.0.0.1#5335 +ipset=/starbucksathome.com/gfwlist +server=/insidevoa.com/127.0.0.1#5335 +ipset=/insidevoa.com/gfwlist +server=/starbucks.tt/127.0.0.1#5335 +ipset=/starbucks.tt/gfwlist +server=/webgirlsonline.net/127.0.0.1#5335 +ipset=/webgirlsonline.net/gfwlist +server=/starbucks.se/127.0.0.1#5335 +ipset=/starbucks.se/gfwlist +server=/starbucks.ru/127.0.0.1#5335 +ipset=/starbucks.ru/gfwlist +server=/starbucks.rs/127.0.0.1#5335 +ipset=/starbucks.rs/gfwlist +server=/freecodecamp.org/127.0.0.1#5335 +ipset=/freecodecamp.org/gfwlist +server=/starbucks.pt/127.0.0.1#5335 +ipset=/starbucks.pt/gfwlist +server=/bmw-motorrad.sa/127.0.0.1#5335 +ipset=/bmw-motorrad.sa/gfwlist +server=/paypal-portal.com/127.0.0.1#5335 +ipset=/paypal-portal.com/gfwlist +server=/starbucks.pl/127.0.0.1#5335 +ipset=/starbucks.pl/gfwlist +server=/apple.me/127.0.0.1#5335 +ipset=/apple.me/gfwlist +server=/b-ok.global/127.0.0.1#5335 +ipset=/b-ok.global/gfwlist +server=/kendralist.com/127.0.0.1#5335 +ipset=/kendralist.com/gfwlist +server=/erohentai.net/127.0.0.1#5335 +ipset=/erohentai.net/gfwlist +server=/screenwisetrends.com/127.0.0.1#5335 +ipset=/screenwisetrends.com/gfwlist +server=/starbucks.nl/127.0.0.1#5335 +ipset=/starbucks.nl/gfwlist +server=/cuckoldwifesexxx.com/127.0.0.1#5335 +ipset=/cuckoldwifesexxx.com/gfwlist +server=/sexfilmstube.com/127.0.0.1#5335 +ipset=/sexfilmstube.com/gfwlist +server=/starbucks.it/127.0.0.1#5335 +ipset=/starbucks.it/gfwlist +server=/ebayd.com/127.0.0.1#5335 +ipset=/ebayd.com/gfwlist +server=/xxxhd.pro/127.0.0.1#5335 +ipset=/xxxhd.pro/gfwlist +server=/ebay-fashion.com/127.0.0.1#5335 +ipset=/ebay-fashion.com/gfwlist +server=/starbucks.in/127.0.0.1#5335 +ipset=/starbucks.in/gfwlist +server=/koalaporn.com/127.0.0.1#5335 +ipset=/koalaporn.com/gfwlist +server=/pornofiles.ru/127.0.0.1#5335 +ipset=/pornofiles.ru/gfwlist +server=/zoomobileporn.com/127.0.0.1#5335 +ipset=/zoomobileporn.com/gfwlist +server=/paypalcreditcard.com/127.0.0.1#5335 +ipset=/paypalcreditcard.com/gfwlist +server=/starbucks.hu/127.0.0.1#5335 +ipset=/starbucks.hu/gfwlist +server=/faceboik.com/127.0.0.1#5335 +ipset=/faceboik.com/gfwlist +server=/bestbuyphotoworkshoptours.com/127.0.0.1#5335 +ipset=/bestbuyphotoworkshoptours.com/gfwlist +server=/starbucks.com.uy/127.0.0.1#5335 +ipset=/starbucks.com.uy/gfwlist +server=/starbucks.com.pe/127.0.0.1#5335 +ipset=/starbucks.com.pe/gfwlist +server=/starbucks.com.my/127.0.0.1#5335 +ipset=/starbucks.com.my/gfwlist +server=/starbucks.com.kh/127.0.0.1#5335 +ipset=/starbucks.com.kh/gfwlist +server=/starbucks.com.hk/127.0.0.1#5335 +ipset=/starbucks.com.hk/gfwlist +server=/starbucks.com.cy/127.0.0.1#5335 +ipset=/starbucks.com.cy/gfwlist +server=/durex.fr/127.0.0.1#5335 +ipset=/durex.fr/gfwlist +server=/starbucks.com/127.0.0.1#5335 +ipset=/starbucks.com/gfwlist +server=/hxdoll.com/127.0.0.1#5335 +ipset=/hxdoll.com/gfwlist +server=/starbucks.co.jp/127.0.0.1#5335 +ipset=/starbucks.co.jp/gfwlist +server=/starbucks.bg/127.0.0.1#5335 +ipset=/starbucks.bg/gfwlist +server=/starbucks.be/127.0.0.1#5335 +ipset=/starbucks.be/gfwlist +server=/starbucks.at/127.0.0.1#5335 +ipset=/starbucks.at/gfwlist +server=/apple.my/127.0.0.1#5335 +ipset=/apple.my/gfwlist +server=/disneymagicmoments.co.za/127.0.0.1#5335 +ipset=/disneymagicmoments.co.za/gfwlist +server=/starbucks-stars.com/127.0.0.1#5335 +ipset=/starbucks-stars.com/gfwlist +server=/sbuxcard.com/127.0.0.1#5335 +ipset=/sbuxcard.com/gfwlist +server=/hpto.net/127.0.0.1#5335 +ipset=/hpto.net/gfwlist +server=/sbux.com.my/127.0.0.1#5335 +ipset=/sbux.com.my/gfwlist +server=/hulu.tv/127.0.0.1#5335 +ipset=/hulu.tv/gfwlist +server=/scenesource.me/127.0.0.1#5335 +ipset=/scenesource.me/gfwlist +server=/thinkofliving.com/127.0.0.1#5335 +ipset=/thinkofliving.com/gfwlist +server=/javheroine.com/127.0.0.1#5335 +ipset=/javheroine.com/gfwlist +server=/realtor.com/127.0.0.1#5335 +ipset=/realtor.com/gfwlist +server=/caribbeancompr.com/127.0.0.1#5335 +ipset=/caribbeancompr.com/gfwlist +server=/porn-portal.com/127.0.0.1#5335 +ipset=/porn-portal.com/gfwlist +server=/realcommercial.com.au/127.0.0.1#5335 +ipset=/realcommercial.com.au/gfwlist +server=/rea.tech/127.0.0.1#5335 +ipset=/rea.tech/gfwlist +server=/adblockplus.org/127.0.0.1#5335 +ipset=/adblockplus.org/gfwlist +server=/rea.global/127.0.0.1#5335 +ipset=/rea.global/gfwlist +server=/rea-group.com/127.0.0.1#5335 +ipset=/rea-group.com/gfwlist +server=/iphonecollcase.com/127.0.0.1#5335 +ipset=/iphonecollcase.com/gfwlist +server=/adobe.com/127.0.0.1#5335 +ipset=/adobe.com/gfwlist +server=/8008206616.com/127.0.0.1#5335 +ipset=/8008206616.com/gfwlist +server=/adbkm.com/127.0.0.1#5335 +ipset=/adbkm.com/gfwlist +server=/proptiger.com/127.0.0.1#5335 +ipset=/proptiger.com/gfwlist +server=/myfun.com/127.0.0.1#5335 +ipset=/myfun.com/gfwlist +server=/move.com/127.0.0.1#5335 +ipset=/move.com/gfwlist +server=/technews.tw/127.0.0.1#5335 +ipset=/technews.tw/gfwlist +server=/makaan.com/127.0.0.1#5335 +ipset=/makaan.com/gfwlist +server=/iproperty.com.my/127.0.0.1#5335 +ipset=/iproperty.com.my/gfwlist +server=/housingcdn.com/127.0.0.1#5335 +ipset=/housingcdn.com/gfwlist +server=/hometrack.com.au/127.0.0.1#5335 +ipset=/hometrack.com.au/gfwlist +server=/bmwi.jp/127.0.0.1#5335 +ipset=/bmwi.jp/gfwlist +server=/facesounds.com/127.0.0.1#5335 +ipset=/facesounds.com/gfwlist +server=/azathabar.com/127.0.0.1#5335 +ipset=/azathabar.com/gfwlist +server=/playboyplus.com/127.0.0.1#5335 +ipset=/playboyplus.com/gfwlist +server=/123videos.tv/127.0.0.1#5335 +ipset=/123videos.tv/gfwlist +server=/shemalemodelstube.com/127.0.0.1#5335 +ipset=/shemalemodelstube.com/gfwlist +server=/reckittbenckiser.net/127.0.0.1#5335 +ipset=/reckittbenckiser.net/gfwlist +server=/reckittbenckiser.com/127.0.0.1#5335 +ipset=/reckittbenckiser.com/gfwlist +server=/reckitt.net/127.0.0.1#5335 +ipset=/reckitt.net/gfwlist +server=/rbplc.com/127.0.0.1#5335 +ipset=/rbplc.com/gfwlist +server=/rbgrads.com/127.0.0.1#5335 +ipset=/rbgrads.com/gfwlist +server=/pplusstatic.com/127.0.0.1#5335 +ipset=/pplusstatic.com/gfwlist +server=/rb.com/127.0.0.1#5335 +ipset=/rb.com/gfwlist +server=/porntry.com/127.0.0.1#5335 +ipset=/porntry.com/gfwlist +server=/offerairjordanlebron.com/127.0.0.1#5335 +ipset=/offerairjordanlebron.com/gfwlist +server=/gettr.com/127.0.0.1#5335 +ipset=/gettr.com/gfwlist +server=/avxhm.se/127.0.0.1#5335 +ipset=/avxhm.se/gfwlist +server=/woolite.us/127.0.0.1#5335 +ipset=/woolite.us/gfwlist +server=/kobe-pastel.com/127.0.0.1#5335 +ipset=/kobe-pastel.com/gfwlist +server=/woolite.pl/127.0.0.1#5335 +ipset=/woolite.pl/gfwlist +server=/woolite.ca/127.0.0.1#5335 +ipset=/woolite.ca/gfwlist +server=/veetcentroamerica.com/127.0.0.1#5335 +ipset=/veetcentroamerica.com/gfwlist +server=/veet.ru/127.0.0.1#5335 +ipset=/veet.ru/gfwlist +server=/visa.gp/127.0.0.1#5335 +ipset=/visa.gp/gfwlist +server=/veet.pt/127.0.0.1#5335 +ipset=/veet.pt/gfwlist +server=/veet.nl/127.0.0.1#5335 +ipset=/veet.nl/gfwlist +server=/creativecloud.com/127.0.0.1#5335 +ipset=/creativecloud.com/gfwlist +server=/veet.jp/127.0.0.1#5335 +ipset=/veet.jp/gfwlist +server=/thesffblog.com/127.0.0.1#5335 +ipset=/thesffblog.com/gfwlist +server=/nudevista.com/127.0.0.1#5335 +ipset=/nudevista.com/gfwlist +server=/veet.hu/127.0.0.1#5335 +ipset=/veet.hu/gfwlist +server=/sexbomba.ru/127.0.0.1#5335 +ipset=/sexbomba.ru/gfwlist +server=/veet.fi/127.0.0.1#5335 +ipset=/veet.fi/gfwlist +server=/veet.es/127.0.0.1#5335 +ipset=/veet.es/gfwlist +server=/myhentaicomics.com/127.0.0.1#5335 +ipset=/myhentaicomics.com/gfwlist +server=/newxxx24.cc/127.0.0.1#5335 +ipset=/newxxx24.cc/gfwlist +server=/veet.dk/127.0.0.1#5335 +ipset=/veet.dk/gfwlist +server=/veet.com.tr/127.0.0.1#5335 +ipset=/veet.com.tr/gfwlist +server=/veet.com.ph/127.0.0.1#5335 +ipset=/veet.com.ph/gfwlist +server=/beatsfactoryoutles.com/127.0.0.1#5335 +ipset=/beatsfactoryoutles.com/gfwlist +server=/veet.com.hk/127.0.0.1#5335 +ipset=/veet.com.hk/gfwlist +server=/veet.com.co/127.0.0.1#5335 +ipset=/veet.com.co/gfwlist +server=/veet.com.br/127.0.0.1#5335 +ipset=/veet.com.br/gfwlist +server=/swisssigngroup.com/127.0.0.1#5335 +ipset=/swisssigngroup.com/gfwlist +server=/veet.com.bd/127.0.0.1#5335 +ipset=/veet.com.bd/gfwlist +server=/fox5storm.com/127.0.0.1#5335 +ipset=/fox5storm.com/gfwlist +server=/newsupermariobrosu.com/127.0.0.1#5335 +ipset=/newsupermariobrosu.com/gfwlist +server=/veet.com.au/127.0.0.1#5335 +ipset=/veet.com.au/gfwlist +server=/discordapp.com/127.0.0.1#5335 +ipset=/discordapp.com/gfwlist +server=/veet.co.za/127.0.0.1#5335 +ipset=/veet.co.za/gfwlist +server=/18porncomic.com/127.0.0.1#5335 +ipset=/18porncomic.com/gfwlist +server=/mastercard.com.ve/127.0.0.1#5335 +ipset=/mastercard.com.ve/gfwlist +server=/veet.co.id/127.0.0.1#5335 +ipset=/veet.co.id/gfwlist +server=/veet.ch/127.0.0.1#5335 +ipset=/veet.ch/gfwlist +server=/porndeals.com/127.0.0.1#5335 +ipset=/porndeals.com/gfwlist +server=/icloudo.de/127.0.0.1#5335 +ipset=/icloudo.de/gfwlist +server=/phncdn.com/127.0.0.1#5335 +ipset=/phncdn.com/gfwlist +server=/tubepornup.com/127.0.0.1#5335 +ipset=/tubepornup.com/gfwlist +server=/vanishinfo.cz/127.0.0.1#5335 +ipset=/vanishinfo.cz/gfwlist +server=/vanishbancaseulook.com.br/127.0.0.1#5335 +ipset=/vanishbancaseulook.com.br/gfwlist +server=/vanisharabia.com/127.0.0.1#5335 +ipset=/vanisharabia.com/gfwlist +server=/renovacionxboxlive.com/127.0.0.1#5335 +ipset=/renovacionxboxlive.com/gfwlist +server=/mastercardbusinessnetwork.com/127.0.0.1#5335 +ipset=/mastercardbusinessnetwork.com/gfwlist +server=/vanish.hu/127.0.0.1#5335 +ipset=/vanish.hu/gfwlist +server=/nudefiles.net/127.0.0.1#5335 +ipset=/nudefiles.net/gfwlist +server=/abematv.akamaized.net/127.0.0.1#5335 +ipset=/abematv.akamaized.net/gfwlist +server=/milfthreesomes.com/127.0.0.1#5335 +ipset=/milfthreesomes.com/gfwlist +server=/vanish.fi/127.0.0.1#5335 +ipset=/vanish.fi/gfwlist +server=/xxxgames.biz/127.0.0.1#5335 +ipset=/xxxgames.biz/gfwlist +server=/vanish.de/127.0.0.1#5335 +ipset=/vanish.de/gfwlist +server=/vanish.com.sg/127.0.0.1#5335 +ipset=/vanish.com.sg/gfwlist +server=/nikeproduct.com/127.0.0.1#5335 +ipset=/nikeproduct.com/gfwlist +server=/vanish.com.my/127.0.0.1#5335 +ipset=/vanish.com.my/gfwlist +server=/royalcams.com/127.0.0.1#5335 +ipset=/royalcams.com/gfwlist +server=/niceanimegames.com/127.0.0.1#5335 +ipset=/niceanimegames.com/gfwlist +server=/epochtimestr.com/127.0.0.1#5335 +ipset=/epochtimestr.com/gfwlist +server=/seaporn.org/127.0.0.1#5335 +ipset=/seaporn.org/gfwlist +server=/mail.ru/127.0.0.1#5335 +ipset=/mail.ru/gfwlist +server=/hayabusa.media/127.0.0.1#5335 +ipset=/hayabusa.media/gfwlist +server=/mucinex.ca/127.0.0.1#5335 +ipset=/mucinex.ca/gfwlist +server=/vanish.co.nz/127.0.0.1#5335 +ipset=/vanish.co.nz/gfwlist +server=/game-platform.net/127.0.0.1#5335 +ipset=/game-platform.net/gfwlist +server=/ciscopartnermarketing.com/127.0.0.1#5335 +ipset=/ciscopartnermarketing.com/gfwlist +server=/vanish.co.il/127.0.0.1#5335 +ipset=/vanish.co.il/gfwlist +server=/sexei.net/127.0.0.1#5335 +ipset=/sexei.net/gfwlist +server=/area120.com/127.0.0.1#5335 +ipset=/area120.com/gfwlist +server=/vanish.cl/127.0.0.1#5335 +ipset=/vanish.cl/gfwlist +server=/verisign.co.uk/127.0.0.1#5335 +ipset=/verisign.co.uk/gfwlist +server=/static-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/static-hamivideo.cdn.hinet.net/gfwlist +server=/bmw-welt.net/127.0.0.1#5335 +ipset=/bmw-welt.net/gfwlist +server=/miniso.uz/127.0.0.1#5335 +ipset=/miniso.uz/gfwlist +server=/vanish.be/127.0.0.1#5335 +ipset=/vanish.be/gfwlist +server=/pornerbros.com/127.0.0.1#5335 +ipset=/pornerbros.com/gfwlist +server=/spraynwash.com/127.0.0.1#5335 +ipset=/spraynwash.com/gfwlist +server=/google.iq/127.0.0.1#5335 +ipset=/google.iq/gfwlist +server=/strepsils.us/127.0.0.1#5335 +ipset=/strepsils.us/gfwlist +server=/xn--hhr917d3fecva.xyz/127.0.0.1#5335 +ipset=/xn--hhr917d3fecva.xyz/gfwlist +server=/ntdca.com/127.0.0.1#5335 +ipset=/ntdca.com/gfwlist +server=/grabpussy.com/127.0.0.1#5335 +ipset=/grabpussy.com/gfwlist +server=/strepsils.ro/127.0.0.1#5335 +ipset=/strepsils.ro/gfwlist +server=/strepsils.pl/127.0.0.1#5335 +ipset=/strepsils.pl/gfwlist +server=/strepsils.net/127.0.0.1#5335 +ipset=/strepsils.net/gfwlist +server=/sextubehub.com/127.0.0.1#5335 +ipset=/sextubehub.com/gfwlist +server=/strepsils.ie/127.0.0.1#5335 +ipset=/strepsils.ie/gfwlist +server=/strepsils.hu/127.0.0.1#5335 +ipset=/strepsils.hu/gfwlist +server=/javfv.com/127.0.0.1#5335 +ipset=/javfv.com/gfwlist +server=/vhx.tv/127.0.0.1#5335 +ipset=/vhx.tv/gfwlist +server=/strepsils.fr/127.0.0.1#5335 +ipset=/strepsils.fr/gfwlist +server=/strepsils.fi/127.0.0.1#5335 +ipset=/strepsils.fi/gfwlist +server=/strepsils.com.au/127.0.0.1#5335 +ipset=/strepsils.com.au/gfwlist +server=/bustynudebabes.com/127.0.0.1#5335 +ipset=/bustynudebabes.com/gfwlist +server=/mastercard.com.bh/127.0.0.1#5335 +ipset=/mastercard.com.bh/gfwlist +server=/getfappy.com/127.0.0.1#5335 +ipset=/getfappy.com/gfwlist +server=/strepsils.com.br/127.0.0.1#5335 +ipset=/strepsils.com.br/gfwlist +server=/strepsils.co.za/127.0.0.1#5335 +ipset=/strepsils.co.za/gfwlist +server=/cdninstagram.com/127.0.0.1#5335 +ipset=/cdninstagram.com/gfwlist +server=/strepsils.co.nz/127.0.0.1#5335 +ipset=/strepsils.co.nz/gfwlist +server=/thtmod1.com/127.0.0.1#5335 +ipset=/thtmod1.com/gfwlist +server=/dobendan.de/127.0.0.1#5335 +ipset=/dobendan.de/gfwlist +server=/cepacol.com/127.0.0.1#5335 +ipset=/cepacol.com/gfwlist +server=/beatsdresolo2013.com/127.0.0.1#5335 +ipset=/beatsdresolo2013.com/gfwlist +server=/minimoncton.com/127.0.0.1#5335 +ipset=/minimoncton.com/gfwlist +server=/linguee.com/127.0.0.1#5335 +ipset=/linguee.com/gfwlist +server=/nurofensk-prod-env.eu-west-1.elasticbeanstalk.com/127.0.0.1#5335 +ipset=/nurofensk-prod-env.eu-west-1.elasticbeanstalk.com/gfwlist +server=/nurofen.sk/127.0.0.1#5335 +ipset=/nurofen.sk/gfwlist +server=/nurofen.ro/127.0.0.1#5335 +ipset=/nurofen.ro/gfwlist +server=/cmhalq.com/127.0.0.1#5335 +ipset=/cmhalq.com/gfwlist +server=/nurofen.pt/127.0.0.1#5335 +ipset=/nurofen.pt/gfwlist +server=/icloud.jp/127.0.0.1#5335 +ipset=/icloud.jp/gfwlist +server=/nurofen.pl/127.0.0.1#5335 +ipset=/nurofen.pl/gfwlist +server=/desktopmovie.com/127.0.0.1#5335 +ipset=/desktopmovie.com/gfwlist +server=/bridgestone.co.cr/127.0.0.1#5335 +ipset=/bridgestone.co.cr/gfwlist +server=/hentaiasmr.moe/127.0.0.1#5335 +ipset=/hentaiasmr.moe/gfwlist +server=/nurofen.co.za/127.0.0.1#5335 +ipset=/nurofen.co.za/gfwlist +server=/beatbydrekopen.com/127.0.0.1#5335 +ipset=/beatbydrekopen.com/gfwlist +server=/puresexmovies.com/127.0.0.1#5335 +ipset=/puresexmovies.com/gfwlist +server=/dldlinks.com/127.0.0.1#5335 +ipset=/dldlinks.com/gfwlist +server=/sorcerersarena.com/127.0.0.1#5335 +ipset=/sorcerersarena.com/gfwlist +server=/nurofen.fr/127.0.0.1#5335 +ipset=/nurofen.fr/gfwlist +server=/sandisk.sg/127.0.0.1#5335 +ipset=/sandisk.sg/gfwlist +server=/nurofen.com.sg/127.0.0.1#5335 +ipset=/nurofen.com.sg/gfwlist +server=/w3schools.com/127.0.0.1#5335 +ipset=/w3schools.com/gfwlist +server=/nurofen.com.au/127.0.0.1#5335 +ipset=/nurofen.com.au/gfwlist +server=/nurofen.net/127.0.0.1#5335 +ipset=/nurofen.net/gfwlist +server=/faceboon.com/127.0.0.1#5335 +ipset=/faceboon.com/gfwlist +server=/google.com.mm/127.0.0.1#5335 +ipset=/google.com.mm/gfwlist +server=/myfreepaysite.com/127.0.0.1#5335 +ipset=/myfreepaysite.com/gfwlist +server=/nurofen.co.il/127.0.0.1#5335 +ipset=/nurofen.co.il/gfwlist +server=/mucinex.tv/127.0.0.1#5335 +ipset=/mucinex.tv/gfwlist +server=/mucinex.net/127.0.0.1#5335 +ipset=/mucinex.net/gfwlist +server=/mucinex.com/127.0.0.1#5335 +ipset=/mucinex.com/gfwlist +server=/faceidglobal.com/127.0.0.1#5335 +ipset=/faceidglobal.com/gfwlist +server=/vanish.com.ar/127.0.0.1#5335 +ipset=/vanish.com.ar/gfwlist +server=/schiffvitamins.com/127.0.0.1#5335 +ipset=/schiffvitamins.com/gfwlist +server=/bestialityvideo.us/127.0.0.1#5335 +ipset=/bestialityvideo.us/gfwlist +server=/pifpafarabia.com/127.0.0.1#5335 +ipset=/pifpafarabia.com/gfwlist +server=/toosexyvaginas.com/127.0.0.1#5335 +ipset=/toosexyvaginas.com/gfwlist +server=/cheapheadphonesland.com/127.0.0.1#5335 +ipset=/cheapheadphonesland.com/gfwlist +server=/iphone-x.tv/127.0.0.1#5335 +ipset=/iphone-x.tv/gfwlist +server=/playnft.es.ht/127.0.0.1#5335 +ipset=/playnft.es.ht/gfwlist +server=/toppornguide.com/127.0.0.1#5335 +ipset=/toppornguide.com/gfwlist +server=/mortein.com/127.0.0.1#5335 +ipset=/mortein.com/gfwlist +server=/foxsportsracing.com/127.0.0.1#5335 +ipset=/foxsportsracing.com/gfwlist +server=/akasha.world/127.0.0.1#5335 +ipset=/akasha.world/gfwlist +server=/meadjohnson.com.hk/127.0.0.1#5335 +ipset=/meadjohnson.com.hk/gfwlist +server=/intel.gr/127.0.0.1#5335 +ipset=/intel.gr/gfwlist +server=/meadjohnson.com/127.0.0.1#5335 +ipset=/meadjohnson.com/gfwlist +server=/sandisk.com.au/127.0.0.1#5335 +ipset=/sandisk.com.au/gfwlist +server=/lysol.ca/127.0.0.1#5335 +ipset=/lysol.ca/gfwlist +server=/finishinfo.fi/127.0.0.1#5335 +ipset=/finishinfo.fi/gfwlist +server=/finishinfo.com.ar/127.0.0.1#5335 +ipset=/finishinfo.com.ar/gfwlist +server=/mini.com.co/127.0.0.1#5335 +ipset=/mini.com.co/gfwlist +server=/registry.google/127.0.0.1#5335 +ipset=/registry.google/gfwlist +server=/finishdishwashing.com/127.0.0.1#5335 +ipset=/finishdishwashing.com/gfwlist +server=/whengirlsplay.com/127.0.0.1#5335 +ipset=/whengirlsplay.com/gfwlist +server=/finishdishwashing.ca/127.0.0.1#5335 +ipset=/finishdishwashing.ca/gfwlist +server=/finisharabia.com/127.0.0.1#5335 +ipset=/finisharabia.com/gfwlist +server=/myfoxboston.com/127.0.0.1#5335 +ipset=/myfoxboston.com/gfwlist +server=/finish.sk/127.0.0.1#5335 +ipset=/finish.sk/gfwlist +server=/japanfist.org/127.0.0.1#5335 +ipset=/japanfist.org/gfwlist +server=/finish.si/127.0.0.1#5335 +ipset=/finish.si/gfwlist +server=/perverse.sex/127.0.0.1#5335 +ipset=/perverse.sex/gfwlist +server=/youtube.com.gr/127.0.0.1#5335 +ipset=/youtube.com.gr/gfwlist +server=/infinitetube.com/127.0.0.1#5335 +ipset=/infinitetube.com/gfwlist +server=/bridgestonegolf.com/127.0.0.1#5335 +ipset=/bridgestonegolf.com/gfwlist +server=/finish.pl/127.0.0.1#5335 +ipset=/finish.pl/gfwlist +server=/finish.hu/127.0.0.1#5335 +ipset=/finish.hu/gfwlist +server=/prostores.com/127.0.0.1#5335 +ipset=/prostores.com/gfwlist +server=/finish.gr/127.0.0.1#5335 +ipset=/finish.gr/gfwlist +server=/grannylovesyoungcock.com/127.0.0.1#5335 +ipset=/grannylovesyoungcock.com/gfwlist +server=/finish.fr/127.0.0.1#5335 +ipset=/finish.fr/gfwlist +server=/finish.es/127.0.0.1#5335 +ipset=/finish.es/gfwlist +server=/finish.de/127.0.0.1#5335 +ipset=/finish.de/gfwlist +server=/hqporner.com/127.0.0.1#5335 +ipset=/hqporner.com/gfwlist +server=/google.co.vi/127.0.0.1#5335 +ipset=/google.co.vi/gfwlist +server=/finish.com.hr/127.0.0.1#5335 +ipset=/finish.com.hr/gfwlist +server=/yahoo.com.tr/127.0.0.1#5335 +ipset=/yahoo.com.tr/gfwlist +server=/finish.co.nz/127.0.0.1#5335 +ipset=/finish.co.nz/gfwlist +server=/youtube.com.bh/127.0.0.1#5335 +ipset=/youtube.com.bh/gfwlist +server=/wpewebkit.org/127.0.0.1#5335 +ipset=/wpewebkit.org/gfwlist +server=/buyminibeatbox.com/127.0.0.1#5335 +ipset=/buyminibeatbox.com/gfwlist +server=/pornobrasil.com/127.0.0.1#5335 +ipset=/pornobrasil.com/gfwlist +server=/nutramigen.pl/127.0.0.1#5335 +ipset=/nutramigen.pl/gfwlist +server=/pornoecuadorxxx.com/127.0.0.1#5335 +ipset=/pornoecuadorxxx.com/gfwlist +server=/enspireformula.com/127.0.0.1#5335 +ipset=/enspireformula.com/gfwlist +server=/huobiasia.vip/127.0.0.1#5335 +ipset=/huobiasia.vip/gfwlist +server=/enfamil.pt/127.0.0.1#5335 +ipset=/enfamil.pt/gfwlist +server=/enfamil.ca/127.0.0.1#5335 +ipset=/enfamil.ca/gfwlist +server=/enfamama.com.ph/127.0.0.1#5335 +ipset=/enfamama.com.ph/gfwlist +server=/facebooll.com/127.0.0.1#5335 +ipset=/facebooll.com/gfwlist +server=/thomsonreuters.ca/127.0.0.1#5335 +ipset=/thomsonreuters.ca/gfwlist +server=/enfagrow.com.sg/127.0.0.1#5335 +ipset=/enfagrow.com.sg/gfwlist +server=/enfagrow.com.my/127.0.0.1#5335 +ipset=/enfagrow.com.my/gfwlist +server=/applestore.net.gr/127.0.0.1#5335 +ipset=/applestore.net.gr/gfwlist +server=/enfagrow.co.in/127.0.0.1#5335 +ipset=/enfagrow.co.in/gfwlist +server=/enfabebe3.com.ar/127.0.0.1#5335 +ipset=/enfabebe3.com.ar/gfwlist +server=/mini.at/127.0.0.1#5335 +ipset=/mini.at/gfwlist +server=/sexhd.pics/127.0.0.1#5335 +ipset=/sexhd.pics/gfwlist +server=/hentaiplay.net/127.0.0.1#5335 +ipset=/hentaiplay.net/gfwlist +server=/enfabebe.com.ve/127.0.0.1#5335 +ipset=/enfabebe.com.ve/gfwlist +server=/enfabebe.com.pe/127.0.0.1#5335 +ipset=/enfabebe.com.pe/gfwlist +server=/enfabebe.com.ec/127.0.0.1#5335 +ipset=/enfabebe.com.ec/gfwlist +server=/enfabebe.com.co/127.0.0.1#5335 +ipset=/enfabebe.com.co/gfwlist +server=/enfabebe.com.br/127.0.0.1#5335 +ipset=/enfabebe.com.br/gfwlist +server=/enfababy.com/127.0.0.1#5335 +ipset=/enfababy.com/gfwlist +server=/enfaaplus.com/127.0.0.1#5335 +ipset=/enfaaplus.com/gfwlist +server=/xxxn.tv/127.0.0.1#5335 +ipset=/xxxn.tv/gfwlist +server=/enfa.co.id/127.0.0.1#5335 +ipset=/enfa.co.id/gfwlist +server=/zoos.gold/127.0.0.1#5335 +ipset=/zoos.gold/gfwlist +server=/bannedbook.org/127.0.0.1#5335 +ipset=/bannedbook.org/gfwlist +server=/bebepremium3.com.bo/127.0.0.1#5335 +ipset=/bebepremium3.com.bo/gfwlist +server=/mrpinks.com/127.0.0.1#5335 +ipset=/mrpinks.com/gfwlist +server=/drdreheadphonebeats.com/127.0.0.1#5335 +ipset=/drdreheadphonebeats.com/gfwlist +server=/trydurex.tv/127.0.0.1#5335 +ipset=/trydurex.tv/gfwlist +server=/trydurex.net/127.0.0.1#5335 +ipset=/trydurex.net/gfwlist +server=/hooloo.tv/127.0.0.1#5335 +ipset=/hooloo.tv/gfwlist +server=/playbydurex.com/127.0.0.1#5335 +ipset=/playbydurex.com/gfwlist +server=/durexchina.com/127.0.0.1#5335 +ipset=/durexchina.com/gfwlist +server=/brutalfetish.com/127.0.0.1#5335 +ipset=/brutalfetish.com/gfwlist +server=/microsoft.it/127.0.0.1#5335 +ipset=/microsoft.it/gfwlist +server=/durexcam.com/127.0.0.1#5335 +ipset=/durexcam.com/gfwlist +server=/amateurarchiver.com/127.0.0.1#5335 +ipset=/amateurarchiver.com/gfwlist +server=/hentai4free.net/127.0.0.1#5335 +ipset=/hentai4free.net/gfwlist +server=/gputechconf.com.tw/127.0.0.1#5335 +ipset=/gputechconf.com.tw/gfwlist +server=/dodgersexcartoons.com/127.0.0.1#5335 +ipset=/dodgersexcartoons.com/gfwlist +server=/watchinese.com/127.0.0.1#5335 +ipset=/watchinese.com/gfwlist +server=/quanben.io/127.0.0.1#5335 +ipset=/quanben.io/gfwlist +server=/docs.com/127.0.0.1#5335 +ipset=/docs.com/gfwlist +server=/marketo.net/127.0.0.1#5335 +ipset=/marketo.net/gfwlist +server=/xxx-videos.tv/127.0.0.1#5335 +ipset=/xxx-videos.tv/gfwlist +server=/durex.mx/127.0.0.1#5335 +ipset=/durex.mx/gfwlist +server=/awsedstart.com/127.0.0.1#5335 +ipset=/awsedstart.com/gfwlist +server=/google.bf/127.0.0.1#5335 +ipset=/google.bf/gfwlist +server=/durex.it/127.0.0.1#5335 +ipset=/durex.it/gfwlist +server=/durex.hu/127.0.0.1#5335 +ipset=/durex.hu/gfwlist +server=/rolls-roycecullinan.com/127.0.0.1#5335 +ipset=/rolls-roycecullinan.com/gfwlist +server=/starbucks.com.ar/127.0.0.1#5335 +ipset=/starbucks.com.ar/gfwlist +server=/amateuranalporn.com/127.0.0.1#5335 +ipset=/amateuranalporn.com/gfwlist +server=/mcdonaldsarabia.com/127.0.0.1#5335 +ipset=/mcdonaldsarabia.com/gfwlist +server=/bmw-motorsport.com/127.0.0.1#5335 +ipset=/bmw-motorsport.com/gfwlist +server=/durex.fi/127.0.0.1#5335 +ipset=/durex.fi/gfwlist +server=/durex.ee/127.0.0.1#5335 +ipset=/durex.ee/gfwlist +server=/verisign.biz/127.0.0.1#5335 +ipset=/verisign.biz/gfwlist +server=/durex.de/127.0.0.1#5335 +ipset=/durex.de/gfwlist +server=/jetbrains.net/127.0.0.1#5335 +ipset=/jetbrains.net/gfwlist +server=/elixir-lang.org/127.0.0.1#5335 +ipset=/elixir-lang.org/gfwlist +server=/fap666.com/127.0.0.1#5335 +ipset=/fap666.com/gfwlist +server=/durex.com.pk/127.0.0.1#5335 +ipset=/durex.com.pk/gfwlist +server=/durex.com.ph/127.0.0.1#5335 +ipset=/durex.com.ph/gfwlist +server=/intel.yt/127.0.0.1#5335 +ipset=/intel.yt/gfwlist +server=/naughtymag.com/127.0.0.1#5335 +ipset=/naughtymag.com/gfwlist +server=/adhelpnews.com/127.0.0.1#5335 +ipset=/adhelpnews.com/gfwlist +server=/durex.com.bd/127.0.0.1#5335 +ipset=/durex.com.bd/gfwlist +server=/bmw.cz/127.0.0.1#5335 +ipset=/bmw.cz/gfwlist +server=/visiontimesjp.com/127.0.0.1#5335 +ipset=/visiontimesjp.com/gfwlist +server=/durex.com.au/127.0.0.1#5335 +ipset=/durex.com.au/gfwlist +server=/disney.com.hk/127.0.0.1#5335 +ipset=/disney.com.hk/gfwlist +server=/2buybeatsbydre.com/127.0.0.1#5335 +ipset=/2buybeatsbydre.com/gfwlist +server=/durex.co.uk/127.0.0.1#5335 +ipset=/durex.co.uk/gfwlist +server=/durex.co.id/127.0.0.1#5335 +ipset=/durex.co.id/gfwlist +server=/aimsciences.org/127.0.0.1#5335 +ipset=/aimsciences.org/gfwlist +server=/popcap.com/127.0.0.1#5335 +ipset=/popcap.com/gfwlist +server=/iphoneclaro.com.br/127.0.0.1#5335 +ipset=/iphoneclaro.com.br/gfwlist +server=/durex.be/127.0.0.1#5335 +ipset=/durex.be/gfwlist +server=/durex.at/127.0.0.1#5335 +ipset=/durex.at/gfwlist +server=/economistgroup.com/127.0.0.1#5335 +ipset=/economistgroup.com/gfwlist +server=/pricelesshonolulu.com/127.0.0.1#5335 +ipset=/pricelesshonolulu.com/gfwlist +server=/durex-shopline.com/127.0.0.1#5335 +ipset=/durex-shopline.com/gfwlist +server=/dotherex.com/127.0.0.1#5335 +ipset=/dotherex.com/gfwlist +server=/dewitwithdurex.com/127.0.0.1#5335 +ipset=/dewitwithdurex.com/gfwlist +server=/bloomberglive.com/127.0.0.1#5335 +ipset=/bloomberglive.com/gfwlist +server=/parler.com/127.0.0.1#5335 +ipset=/parler.com/gfwlist +server=/bmw.cw/127.0.0.1#5335 +ipset=/bmw.cw/gfwlist +server=/dettolcleannaija.com/127.0.0.1#5335 +ipset=/dettolcleannaija.com/gfwlist +server=/dettol.ru/127.0.0.1#5335 +ipset=/dettol.ru/gfwlist +server=/dettol.pl/127.0.0.1#5335 +ipset=/dettol.pl/gfwlist +server=/dettol.pk/127.0.0.1#5335 +ipset=/dettol.pk/gfwlist +server=/dettol.nl/127.0.0.1#5335 +ipset=/dettol.nl/gfwlist +server=/dettol.fr/127.0.0.1#5335 +ipset=/dettol.fr/gfwlist +server=/dettol.com.ng/127.0.0.1#5335 +ipset=/dettol.com.ng/gfwlist +server=/dettol.com.eg/127.0.0.1#5335 +ipset=/dettol.com.eg/gfwlist +server=/dettol.com.bd/127.0.0.1#5335 +ipset=/dettol.com.bd/gfwlist +server=/dettol.com/127.0.0.1#5335 +ipset=/dettol.com/gfwlist +server=/dettol.co.uk/127.0.0.1#5335 +ipset=/dettol.co.uk/gfwlist +server=/dettol.co.in/127.0.0.1#5335 +ipset=/dettol.co.in/gfwlist +server=/dettol.at/127.0.0.1#5335 +ipset=/dettol.at/gfwlist +server=/dettol-prize.com/127.0.0.1#5335 +ipset=/dettol-prize.com/gfwlist +server=/paypalbrasil.com/127.0.0.1#5335 +ipset=/paypalbrasil.com/gfwlist +server=/calgon.nl/127.0.0.1#5335 +ipset=/calgon.nl/gfwlist +server=/goldsexvideos.com/127.0.0.1#5335 +ipset=/goldsexvideos.com/gfwlist +server=/calgon.it/127.0.0.1#5335 +ipset=/calgon.it/gfwlist +server=/calgon.ie/127.0.0.1#5335 +ipset=/calgon.ie/gfwlist +server=/cht.com.tw/127.0.0.1#5335 +ipset=/cht.com.tw/gfwlist +server=/calgon.es/127.0.0.1#5335 +ipset=/calgon.es/gfwlist +server=/famousinternetgirlsgalleries.com/127.0.0.1#5335 +ipset=/famousinternetgirlsgalleries.com/gfwlist +server=/calgon.de/127.0.0.1#5335 +ipset=/calgon.de/gfwlist +server=/swiftbank.info/127.0.0.1#5335 +ipset=/swiftbank.info/gfwlist +server=/calgon.com.tr/127.0.0.1#5335 +ipset=/calgon.com.tr/gfwlist +server=/yahoo.com.nf/127.0.0.1#5335 +ipset=/yahoo.com.nf/gfwlist +server=/mastercardrestaurant.com/127.0.0.1#5335 +ipset=/mastercardrestaurant.com/gfwlist +server=/gamer.com.tw/127.0.0.1#5335 +ipset=/gamer.com.tw/gfwlist +server=/calgon.com/127.0.0.1#5335 +ipset=/calgon.com/gfwlist +server=/calgon.co.uk/127.0.0.1#5335 +ipset=/calgon.co.uk/gfwlist +server=/calgon.be/127.0.0.1#5335 +ipset=/calgon.be/gfwlist +server=/mobatek.net/127.0.0.1#5335 +ipset=/mobatek.net/gfwlist +server=/nvidia.com.pe/127.0.0.1#5335 +ipset=/nvidia.com.pe/gfwlist +server=/calgon.at/127.0.0.1#5335 +ipset=/calgon.at/gfwlist +server=/iphone-sh.com/127.0.0.1#5335 +ipset=/iphone-sh.com/gfwlist +server=/dotfreesex.com/127.0.0.1#5335 +ipset=/dotfreesex.com/gfwlist +server=/ipadair.com.es/127.0.0.1#5335 +ipset=/ipadair.com.es/gfwlist +server=/airwickarabia.com/127.0.0.1#5335 +ipset=/airwickarabia.com/gfwlist +server=/vfsco.mx/127.0.0.1#5335 +ipset=/vfsco.mx/gfwlist +server=/airwick.tv/127.0.0.1#5335 +ipset=/airwick.tv/gfwlist +server=/google.st/127.0.0.1#5335 +ipset=/google.st/gfwlist +server=/macbookair.jp/127.0.0.1#5335 +ipset=/macbookair.jp/gfwlist +server=/airwick.se/127.0.0.1#5335 +ipset=/airwick.se/gfwlist +server=/airwick.ru/127.0.0.1#5335 +ipset=/airwick.ru/gfwlist +server=/airwick.no/127.0.0.1#5335 +ipset=/airwick.no/gfwlist +server=/oxfordreference.com/127.0.0.1#5335 +ipset=/oxfordreference.com/gfwlist +server=/hotnudegirls.net/127.0.0.1#5335 +ipset=/hotnudegirls.net/gfwlist +server=/applecentar.rs/127.0.0.1#5335 +ipset=/applecentar.rs/gfwlist +server=/google.com.bz/127.0.0.1#5335 +ipset=/google.com.bz/gfwlist +server=/applestore.wang/127.0.0.1#5335 +ipset=/applestore.wang/gfwlist +server=/airwick.net/127.0.0.1#5335 +ipset=/airwick.net/gfwlist +server=/wifesexorgy.com/127.0.0.1#5335 +ipset=/wifesexorgy.com/gfwlist +server=/foxcorporation.com/127.0.0.1#5335 +ipset=/foxcorporation.com/gfwlist +server=/volvopenta.nl/127.0.0.1#5335 +ipset=/volvopenta.nl/gfwlist +server=/microsoft-give.com/127.0.0.1#5335 +ipset=/microsoft-give.com/gfwlist +server=/apple-online.com/127.0.0.1#5335 +ipset=/apple-online.com/gfwlist +server=/airwick.ie/127.0.0.1#5335 +ipset=/airwick.ie/gfwlist +server=/cheaperbeatsbydresale.com/127.0.0.1#5335 +ipset=/cheaperbeatsbydresale.com/gfwlist +server=/ethiosex2.wordpress.com/127.0.0.1#5335 +ipset=/ethiosex2.wordpress.com/gfwlist +server=/taknai.com/127.0.0.1#5335 +ipset=/taknai.com/gfwlist +server=/kobbeatssbydredk.com/127.0.0.1#5335 +ipset=/kobbeatssbydredk.com/gfwlist +server=/sony.ie/127.0.0.1#5335 +ipset=/sony.ie/gfwlist +server=/airwick.hr/127.0.0.1#5335 +ipset=/airwick.hr/gfwlist +server=/rarbgmirror.org/127.0.0.1#5335 +ipset=/rarbgmirror.org/gfwlist +server=/airwick.fr/127.0.0.1#5335 +ipset=/airwick.fr/gfwlist +server=/airwick.fi/127.0.0.1#5335 +ipset=/airwick.fi/gfwlist +server=/airwick.dk/127.0.0.1#5335 +ipset=/airwick.dk/gfwlist +server=/redtub3xxx.com/127.0.0.1#5335 +ipset=/redtub3xxx.com/gfwlist +server=/airwick.cz/127.0.0.1#5335 +ipset=/airwick.cz/gfwlist +server=/airwick.com.tr/127.0.0.1#5335 +ipset=/airwick.com.tr/gfwlist +server=/airwick.com.mx/127.0.0.1#5335 +ipset=/airwick.com.mx/gfwlist +server=/chinesespanking.com/127.0.0.1#5335 +ipset=/chinesespanking.com/gfwlist +server=/airwick.com/127.0.0.1#5335 +ipset=/airwick.com/gfwlist +server=/airwick.co.za/127.0.0.1#5335 +ipset=/airwick.co.za/gfwlist +server=/universalpictures.com/127.0.0.1#5335 +ipset=/universalpictures.com/gfwlist +server=/ktvu.com/127.0.0.1#5335 +ipset=/ktvu.com/gfwlist +server=/fafacebook.com/127.0.0.1#5335 +ipset=/fafacebook.com/gfwlist +server=/hpjav.tv/127.0.0.1#5335 +ipset=/hpjav.tv/gfwlist +server=/xn--qhrx81fxh2a.xn--55qx5d.hk/127.0.0.1#5335 +ipset=/xn--qhrx81fxh2a.xn--55qx5d.hk/gfwlist +server=/stackpath.dev/127.0.0.1#5335 +ipset=/stackpath.dev/gfwlist +server=/cnnmoney.ch/127.0.0.1#5335 +ipset=/cnnmoney.ch/gfwlist +server=/steamusercontent-a.akamaihd.net/127.0.0.1#5335 +ipset=/steamusercontent-a.akamaihd.net/gfwlist +server=/akafms.net/127.0.0.1#5335 +ipset=/akafms.net/gfwlist +server=/amazonliterarypartnership.com/127.0.0.1#5335 +ipset=/amazonliterarypartnership.com/gfwlist +server=/mcdonalds.co.uk/127.0.0.1#5335 +ipset=/mcdonalds.co.uk/gfwlist +server=/golang.net/127.0.0.1#5335 +ipset=/golang.net/gfwlist +server=/mcdelivery.com.sg/127.0.0.1#5335 +ipset=/mcdelivery.com.sg/gfwlist +server=/doubleclick.net/127.0.0.1#5335 +ipset=/doubleclick.net/gfwlist +server=/instagor.com/127.0.0.1#5335 +ipset=/instagor.com/gfwlist +server=/aboutmcdonalds.com/127.0.0.1#5335 +ipset=/aboutmcdonalds.com/gfwlist +server=/huanghuagang.org/127.0.0.1#5335 +ipset=/huanghuagang.org/gfwlist +server=/hkreadingcity.net/127.0.0.1#5335 +ipset=/hkreadingcity.net/gfwlist +server=/xn--r8jwklh769h2mc880dk1o431a.com/127.0.0.1#5335 +ipset=/xn--r8jwklh769h2mc880dk1o431a.com/gfwlist +server=/fffdm.com/127.0.0.1#5335 +ipset=/fffdm.com/gfwlist +server=/fzdm.com/127.0.0.1#5335 +ipset=/fzdm.com/gfwlist +server=/familymart.com.ph/127.0.0.1#5335 +ipset=/familymart.com.ph/gfwlist +server=/ebayedu.com/127.0.0.1#5335 +ipset=/ebayedu.com/gfwlist +server=/mastercard.com.tr/127.0.0.1#5335 +ipset=/mastercard.com.tr/gfwlist +server=/family.com.tw/127.0.0.1#5335 +ipset=/family.com.tw/gfwlist +server=/apina.biz/127.0.0.1#5335 +ipset=/apina.biz/gfwlist +server=/ikea.it/127.0.0.1#5335 +ipset=/ikea.it/gfwlist +server=/esp8266.com/127.0.0.1#5335 +ipset=/esp8266.com/gfwlist +server=/nijiyome.jp/127.0.0.1#5335 +ipset=/nijiyome.jp/gfwlist +server=/dlsite.com.tw/127.0.0.1#5335 +ipset=/dlsite.com.tw/gfwlist +server=/dlsite.com/127.0.0.1#5335 +ipset=/dlsite.com/gfwlist +server=/ci-en.net/127.0.0.1#5335 +ipset=/ci-en.net/gfwlist +server=/sankeibiz.jp/127.0.0.1#5335 +ipset=/sankeibiz.jp/gfwlist +server=/114av.xyz/127.0.0.1#5335 +ipset=/114av.xyz/gfwlist +server=/swtor.net/127.0.0.1#5335 +ipset=/swtor.net/gfwlist +server=/lilith-soft.com/127.0.0.1#5335 +ipset=/lilith-soft.com/gfwlist +server=/fackebook.com/127.0.0.1#5335 +ipset=/fackebook.com/gfwlist +server=/itasoftware.com/127.0.0.1#5335 +ipset=/itasoftware.com/gfwlist +server=/avxhm.is/127.0.0.1#5335 +ipset=/avxhm.is/gfwlist +server=/beatsbydrdreus.com/127.0.0.1#5335 +ipset=/beatsbydrdreus.com/gfwlist +server=/paipal.com/127.0.0.1#5335 +ipset=/paipal.com/gfwlist +server=/foxcincy.jobs/127.0.0.1#5335 +ipset=/foxcincy.jobs/gfwlist +server=/youtube.com.gh/127.0.0.1#5335 +ipset=/youtube.com.gh/gfwlist +server=/toolforge.org/127.0.0.1#5335 +ipset=/toolforge.org/gfwlist +server=/wiktionary.org/127.0.0.1#5335 +ipset=/wiktionary.org/gfwlist +server=/globalsign.com.hk/127.0.0.1#5335 +ipset=/globalsign.com.hk/gfwlist +server=/wikivoyage.org/127.0.0.1#5335 +ipset=/wikivoyage.org/gfwlist +server=/expresswifi.com/127.0.0.1#5335 +ipset=/expresswifi.com/gfwlist +server=/exascale-tech.com/127.0.0.1#5335 +ipset=/exascale-tech.com/gfwlist +server=/wikiversity.org/127.0.0.1#5335 +ipset=/wikiversity.org/gfwlist +server=/wikisource.org/127.0.0.1#5335 +ipset=/wikisource.org/gfwlist +server=/wikipedia.org/127.0.0.1#5335 +ipset=/wikipedia.org/gfwlist +server=/cinepornogratis.com/127.0.0.1#5335 +ipset=/cinepornogratis.com/gfwlist +server=/sexharlot.com/127.0.0.1#5335 +ipset=/sexharlot.com/gfwlist +server=/wikimedia.org/127.0.0.1#5335 +ipset=/wikimedia.org/gfwlist +server=/wikimediafoundation.org/127.0.0.1#5335 +ipset=/wikimediafoundation.org/gfwlist +server=/truyenkk1.com/127.0.0.1#5335 +ipset=/truyenkk1.com/gfwlist +server=/wikidata.org/127.0.0.1#5335 +ipset=/wikidata.org/gfwlist +server=/wikibooks.org/127.0.0.1#5335 +ipset=/wikibooks.org/gfwlist +server=/ebc.net.tw/127.0.0.1#5335 +ipset=/ebc.net.tw/gfwlist +server=/starbucksrewardsstarland.ca/127.0.0.1#5335 +ipset=/starbucksrewardsstarland.ca/gfwlist +server=/wdfiles.com/127.0.0.1#5335 +ipset=/wdfiles.com/gfwlist +server=/nftstorage.link/127.0.0.1#5335 +ipset=/nftstorage.link/gfwlist +server=/firstgynexam.com/127.0.0.1#5335 +ipset=/firstgynexam.com/gfwlist +server=/twcomix.com/127.0.0.1#5335 +ipset=/twcomix.com/gfwlist +server=/wholesaleonlinemart.com/127.0.0.1#5335 +ipset=/wholesaleonlinemart.com/gfwlist +server=/cortexrpg.com/127.0.0.1#5335 +ipset=/cortexrpg.com/gfwlist +server=/muthead.com/127.0.0.1#5335 +ipset=/muthead.com/gfwlist +server=/beatscheapforsale.com/127.0.0.1#5335 +ipset=/beatscheapforsale.com/gfwlist +server=/hutao.cloud/127.0.0.1#5335 +ipset=/hutao.cloud/gfwlist +server=/disney.hu/127.0.0.1#5335 +ipset=/disney.hu/gfwlist +server=/sweetsext.com/127.0.0.1#5335 +ipset=/sweetsext.com/gfwlist +server=/yabang.org/127.0.0.1#5335 +ipset=/yabang.org/gfwlist +server=/bmw-connecteddrive.es/127.0.0.1#5335 +ipset=/bmw-connecteddrive.es/gfwlist +server=/pornkai.com/127.0.0.1#5335 +ipset=/pornkai.com/gfwlist +server=/zeeentertainment.com/127.0.0.1#5335 +ipset=/zeeentertainment.com/gfwlist +server=/stc-server.com/127.0.0.1#5335 +ipset=/stc-server.com/gfwlist +server=/paper-attachments.s3.amazonaws.com/127.0.0.1#5335 +ipset=/paper-attachments.s3.amazonaws.com/gfwlist +server=/mailonsunday.ie/127.0.0.1#5335 +ipset=/mailonsunday.ie/gfwlist +server=/ssrpass.pw/127.0.0.1#5335 +ipset=/ssrpass.pw/gfwlist +server=/bmwmyanmar.com/127.0.0.1#5335 +ipset=/bmwmyanmar.com/gfwlist +server=/ssplive.pw/127.0.0.1#5335 +ipset=/ssplive.pw/gfwlist +server=/visa.lt/127.0.0.1#5335 +ipset=/visa.lt/gfwlist +server=/sony.com.gt/127.0.0.1#5335 +ipset=/sony.com.gt/gfwlist +server=/maying.co/127.0.0.1#5335 +ipset=/maying.co/gfwlist +server=/vaultify.net/127.0.0.1#5335 +ipset=/vaultify.net/gfwlist +server=/intel.wf/127.0.0.1#5335 +ipset=/intel.wf/gfwlist +server=/gfw.press/127.0.0.1#5335 +ipset=/gfw.press/gfwlist +server=/geph.io/127.0.0.1#5335 +ipset=/geph.io/gfwlist +server=/hottestheadphonesonline.com/127.0.0.1#5335 +ipset=/hottestheadphonesonline.com/gfwlist +server=/acheterfollowersinstagram.com/127.0.0.1#5335 +ipset=/acheterfollowersinstagram.com/gfwlist +server=/cloudn.me/127.0.0.1#5335 +ipset=/cloudn.me/gfwlist +server=/pinflix.com/127.0.0.1#5335 +ipset=/pinflix.com/gfwlist +server=/ark.to/127.0.0.1#5335 +ipset=/ark.to/gfwlist +server=/amytele.com/127.0.0.1#5335 +ipset=/amytele.com/gfwlist +server=/aaex.uk/127.0.0.1#5335 +ipset=/aaex.uk/gfwlist +server=/slack.com/127.0.0.1#5335 +ipset=/slack.com/gfwlist +server=/xcg123.com/127.0.0.1#5335 +ipset=/xcg123.com/gfwlist +server=/vilavpn7.xyz/127.0.0.1#5335 +ipset=/vilavpn7.xyz/gfwlist +server=/vilavpn5.xyz/127.0.0.1#5335 +ipset=/vilavpn5.xyz/gfwlist +server=/vilavpn4.xyz/127.0.0.1#5335 +ipset=/vilavpn4.xyz/gfwlist +server=/msfteducation.ca/127.0.0.1#5335 +ipset=/msfteducation.ca/gfwlist +server=/mastercard.ru/127.0.0.1#5335 +ipset=/mastercard.ru/gfwlist +server=/nvidia.co.jp/127.0.0.1#5335 +ipset=/nvidia.co.jp/gfwlist +server=/vilavpn1.xyz/127.0.0.1#5335 +ipset=/vilavpn1.xyz/gfwlist +server=/watchdisneyfe.com/127.0.0.1#5335 +ipset=/watchdisneyfe.com/gfwlist +server=/surflite.net/127.0.0.1#5335 +ipset=/surflite.net/gfwlist +server=/molesports.com/127.0.0.1#5335 +ipset=/molesports.com/gfwlist +server=/visa.com.ag/127.0.0.1#5335 +ipset=/visa.com.ag/gfwlist +server=/geek-squad.org/127.0.0.1#5335 +ipset=/geek-squad.org/gfwlist +server=/swisstsa.ch/127.0.0.1#5335 +ipset=/swisstsa.ch/gfwlist +server=/crunchyroll.com/127.0.0.1#5335 +ipset=/crunchyroll.com/gfwlist +server=/nexitcore.com/127.0.0.1#5335 +ipset=/nexitcore.com/gfwlist +server=/sexfilm.al.ru/127.0.0.1#5335 +ipset=/sexfilm.al.ru/gfwlist +server=/nexitallysafe.com/127.0.0.1#5335 +ipset=/nexitallysafe.com/gfwlist +server=/intel.mn/127.0.0.1#5335 +ipset=/intel.mn/gfwlist +server=/gog-statics.com/127.0.0.1#5335 +ipset=/gog-statics.com/gfwlist +server=/n3ro.net/127.0.0.1#5335 +ipset=/n3ro.net/gfwlist +server=/n3ro.lol/127.0.0.1#5335 +ipset=/n3ro.lol/gfwlist +server=/justmysocks2.net/127.0.0.1#5335 +ipset=/justmysocks2.net/gfwlist +server=/justmysocks.net/127.0.0.1#5335 +ipset=/justmysocks.net/gfwlist +server=/hitun.io/127.0.0.1#5335 +ipset=/hitun.io/gfwlist +server=/duyaossr.com/127.0.0.1#5335 +ipset=/duyaossr.com/gfwlist +server=/dleris.best/127.0.0.1#5335 +ipset=/dleris.best/gfwlist +server=/dlercloud.me/127.0.0.1#5335 +ipset=/dlercloud.me/gfwlist +server=/gyakusimei.com/127.0.0.1#5335 +ipset=/gyakusimei.com/gfwlist +server=/cortanaskills.com/127.0.0.1#5335 +ipset=/cortanaskills.com/gfwlist +server=/youtube.com.sa/127.0.0.1#5335 +ipset=/youtube.com.sa/gfwlist +server=/cylink.pro/127.0.0.1#5335 +ipset=/cylink.pro/gfwlist +server=/geeksquad.cc/127.0.0.1#5335 +ipset=/geeksquad.cc/gfwlist +server=/bmw-motorrad-abudhabi.com/127.0.0.1#5335 +ipset=/bmw-motorrad-abudhabi.com/gfwlist +server=/ubisoft-orbit-savegames.s3.amazonaws.com/127.0.0.1#5335 +ipset=/ubisoft-orbit-savegames.s3.amazonaws.com/gfwlist +server=/twinkboyfriends.tv/127.0.0.1#5335 +ipset=/twinkboyfriends.tv/gfwlist +server=/googleblog.com/127.0.0.1#5335 +ipset=/googleblog.com/gfwlist +server=/hpgift.com/127.0.0.1#5335 +ipset=/hpgift.com/gfwlist +server=/springerlink.com/127.0.0.1#5335 +ipset=/springerlink.com/gfwlist +server=/geodesummit.com/127.0.0.1#5335 +ipset=/geodesummit.com/gfwlist +server=/rarbgunblock.com/127.0.0.1#5335 +ipset=/rarbgunblock.com/gfwlist +server=/youtubei.googleapis.com/127.0.0.1#5335 +ipset=/youtubei.googleapis.com/gfwlist +server=/escapestudios.co.uk/127.0.0.1#5335 +ipset=/escapestudios.co.uk/gfwlist +server=/yimg.com/127.0.0.1#5335 +ipset=/yimg.com/gfwlist +server=/rarbgproxy.org/127.0.0.1#5335 +ipset=/rarbgproxy.org/gfwlist +server=/rarbgaccessed.org/127.0.0.1#5335 +ipset=/rarbgaccessed.org/gfwlist +server=/proxyrarbg.org/127.0.0.1#5335 +ipset=/proxyrarbg.org/gfwlist +server=/mamacitaz.com/127.0.0.1#5335 +ipset=/mamacitaz.com/gfwlist +server=/shapelcounset.xyz/127.0.0.1#5335 +ipset=/shapelcounset.xyz/gfwlist +server=/xdporner.com/127.0.0.1#5335 +ipset=/xdporner.com/gfwlist +server=/pornhub00.com/127.0.0.1#5335 +ipset=/pornhub00.com/gfwlist +server=/xjavporn.com/127.0.0.1#5335 +ipset=/xjavporn.com/gfwlist +server=/rarbg.to/127.0.0.1#5335 +ipset=/rarbg.to/gfwlist +server=/thepiratebay.org/127.0.0.1#5335 +ipset=/thepiratebay.org/gfwlist +server=/gayforit.eu/127.0.0.1#5335 +ipset=/gayforit.eu/gfwlist +server=/pirates-forum.org/127.0.0.1#5335 +ipset=/pirates-forum.org/gfwlist +server=/mastercard.com.ge/127.0.0.1#5335 +ipset=/mastercard.com.ge/gfwlist +server=/demonoid.is/127.0.0.1#5335 +ipset=/demonoid.is/gfwlist +server=/btdig.com/127.0.0.1#5335 +ipset=/btdig.com/gfwlist +server=/porntitan.com/127.0.0.1#5335 +ipset=/porntitan.com/gfwlist +server=/1337x.tw/127.0.0.1#5335 +ipset=/1337x.tw/gfwlist +server=/1337x.st/127.0.0.1#5335 +ipset=/1337x.st/gfwlist +server=/truyenwk.com/127.0.0.1#5335 +ipset=/truyenwk.com/gfwlist +server=/1337x.to/127.0.0.1#5335 +ipset=/1337x.to/gfwlist +server=/porkbun.com/127.0.0.1#5335 +ipset=/porkbun.com/gfwlist +server=/volvotrucks.kz/127.0.0.1#5335 +ipset=/volvotrucks.kz/gfwlist +server=/yastatic.net/127.0.0.1#5335 +ipset=/yastatic.net/gfwlist +server=/fcebook.com/127.0.0.1#5335 +ipset=/fcebook.com/gfwlist +server=/ebayaustralia.com/127.0.0.1#5335 +ipset=/ebayaustralia.com/gfwlist +server=/binanceapi.com/127.0.0.1#5335 +ipset=/binanceapi.com/gfwlist +server=/yandex.tm/127.0.0.1#5335 +ipset=/yandex.tm/gfwlist +server=/yandex.net/127.0.0.1#5335 +ipset=/yandex.net/gfwlist +server=/yandex.md/127.0.0.1#5335 +ipset=/yandex.md/gfwlist +server=/cnnikebrand.com/127.0.0.1#5335 +ipset=/cnnikebrand.com/gfwlist +server=/porndish.com/127.0.0.1#5335 +ipset=/porndish.com/gfwlist +server=/yandex.kg/127.0.0.1#5335 +ipset=/yandex.kg/gfwlist +server=/yandex.com.tr/127.0.0.1#5335 +ipset=/yandex.com.tr/gfwlist +server=/yandex.com.ru/127.0.0.1#5335 +ipset=/yandex.com.ru/gfwlist +server=/looporn.com/127.0.0.1#5335 +ipset=/looporn.com/gfwlist +server=/yandex.com/127.0.0.1#5335 +ipset=/yandex.com/gfwlist +server=/yandex.by/127.0.0.1#5335 +ipset=/yandex.by/gfwlist +server=/yandex.az/127.0.0.1#5335 +ipset=/yandex.az/gfwlist +server=/alicloud.com/127.0.0.1#5335 +ipset=/alicloud.com/gfwlist +server=/elephantsdream.org/127.0.0.1#5335 +ipset=/elephantsdream.org/gfwlist +server=/yimg.jp/127.0.0.1#5335 +ipset=/yimg.jp/gfwlist +server=/rarbgprx.org/127.0.0.1#5335 +ipset=/rarbgprx.org/gfwlist +server=/yho.com/127.0.0.1#5335 +ipset=/yho.com/gfwlist +server=/yahoomusic.com/127.0.0.1#5335 +ipset=/yahoomusic.com/gfwlist +server=/xvxx.stream/127.0.0.1#5335 +ipset=/xvxx.stream/gfwlist +server=/yahoohealth.com/127.0.0.1#5335 +ipset=/yahoohealth.com/gfwlist +server=/kavkazr.com/127.0.0.1#5335 +ipset=/kavkazr.com/gfwlist +server=/nikeitaly.com/127.0.0.1#5335 +ipset=/nikeitaly.com/gfwlist +server=/yahooapis.com/127.0.0.1#5335 +ipset=/yahooapis.com/gfwlist +server=/techcrunch.com/127.0.0.1#5335 +ipset=/techcrunch.com/gfwlist +server=/yasarang.net/127.0.0.1#5335 +ipset=/yasarang.net/gfwlist +server=/myguide.hk/127.0.0.1#5335 +ipset=/myguide.hk/gfwlist +server=/yahoo.ws/127.0.0.1#5335 +ipset=/yahoo.ws/gfwlist +server=/yahoo.tn/127.0.0.1#5335 +ipset=/yahoo.tn/gfwlist +server=/yahoo.tm/127.0.0.1#5335 +ipset=/yahoo.tm/gfwlist +server=/yahoo.tk/127.0.0.1#5335 +ipset=/yahoo.tk/gfwlist +server=/mastercardcenter.org/127.0.0.1#5335 +ipset=/mastercardcenter.org/gfwlist +server=/yahoo.sr/127.0.0.1#5335 +ipset=/yahoo.sr/gfwlist +server=/pornobox.net/127.0.0.1#5335 +ipset=/pornobox.net/gfwlist +server=/finish.co.uk/127.0.0.1#5335 +ipset=/finish.co.uk/gfwlist +server=/yahoo.sk/127.0.0.1#5335 +ipset=/yahoo.sk/gfwlist +server=/yahoo.sg/127.0.0.1#5335 +ipset=/yahoo.sg/gfwlist +server=/yahoo.se/127.0.0.1#5335 +ipset=/yahoo.se/gfwlist +server=/yahoo.ru/127.0.0.1#5335 +ipset=/yahoo.ru/gfwlist +server=/ggdiao.com/127.0.0.1#5335 +ipset=/ggdiao.com/gfwlist +server=/yahoo.pn/127.0.0.1#5335 +ipset=/yahoo.pn/gfwlist +server=/pearsonelt.com/127.0.0.1#5335 +ipset=/pearsonelt.com/gfwlist +server=/yahoo.net/127.0.0.1#5335 +ipset=/yahoo.net/gfwlist +server=/dragoniscoming.com/127.0.0.1#5335 +ipset=/dragoniscoming.com/gfwlist +server=/discord.new/127.0.0.1#5335 +ipset=/discord.new/gfwlist +server=/yahoo.mx/127.0.0.1#5335 +ipset=/yahoo.mx/gfwlist +server=/dailymailonline.com/127.0.0.1#5335 +ipset=/dailymailonline.com/gfwlist +server=/llnw.com/127.0.0.1#5335 +ipset=/llnw.com/gfwlist +server=/bmwgroup.com/127.0.0.1#5335 +ipset=/bmwgroup.com/gfwlist +server=/sverigebeatsbydrdre.com/127.0.0.1#5335 +ipset=/sverigebeatsbydrdre.com/gfwlist +server=/elog-ch.com/127.0.0.1#5335 +ipset=/elog-ch.com/gfwlist +server=/igoshopping.net/127.0.0.1#5335 +ipset=/igoshopping.net/gfwlist +server=/cumshotlist.com/127.0.0.1#5335 +ipset=/cumshotlist.com/gfwlist +server=/intel.sr/127.0.0.1#5335 +ipset=/intel.sr/gfwlist +server=/ikea.be/127.0.0.1#5335 +ipset=/ikea.be/gfwlist +server=/yahoo.mk/127.0.0.1#5335 +ipset=/yahoo.mk/gfwlist +server=/yahoo.md/127.0.0.1#5335 +ipset=/yahoo.md/gfwlist +server=/movenetworks.com/127.0.0.1#5335 +ipset=/movenetworks.com/gfwlist +server=/wisekey.com/127.0.0.1#5335 +ipset=/wisekey.com/gfwlist +server=/yahoo.lt/127.0.0.1#5335 +ipset=/yahoo.lt/gfwlist +server=/yahoo.jo/127.0.0.1#5335 +ipset=/yahoo.jo/gfwlist +server=/yahoo.je/127.0.0.1#5335 +ipset=/yahoo.je/gfwlist +server=/blogoverflow.com/127.0.0.1#5335 +ipset=/blogoverflow.com/gfwlist +server=/pigav.com/127.0.0.1#5335 +ipset=/pigav.com/gfwlist +server=/dogecoin.com/127.0.0.1#5335 +ipset=/dogecoin.com/gfwlist +server=/yahoo.in/127.0.0.1#5335 +ipset=/yahoo.in/gfwlist +server=/yahoo.hr/127.0.0.1#5335 +ipset=/yahoo.hr/gfwlist +server=/ahegao.online/127.0.0.1#5335 +ipset=/ahegao.online/gfwlist +server=/yahoo.hk/127.0.0.1#5335 +ipset=/yahoo.hk/gfwlist +server=/apexprint.com.hk/127.0.0.1#5335 +ipset=/apexprint.com.hk/gfwlist +server=/yahoo.gy/127.0.0.1#5335 +ipset=/yahoo.gy/gfwlist +server=/snapkit.co/127.0.0.1#5335 +ipset=/snapkit.co/gfwlist +server=/gettyimages.es/127.0.0.1#5335 +ipset=/gettyimages.es/gfwlist +server=/night.livedoor.biz/127.0.0.1#5335 +ipset=/night.livedoor.biz/gfwlist +server=/bmw.com.py/127.0.0.1#5335 +ipset=/bmw.com.py/gfwlist +server=/yahoo.gr/127.0.0.1#5335 +ipset=/yahoo.gr/gfwlist +server=/yahoo.gp/127.0.0.1#5335 +ipset=/yahoo.gp/gfwlist +server=/verizonfios.com/127.0.0.1#5335 +ipset=/verizonfios.com/gfwlist +server=/yahoo.gm/127.0.0.1#5335 +ipset=/yahoo.gm/gfwlist +server=/pinterest.ch/127.0.0.1#5335 +ipset=/pinterest.ch/gfwlist +server=/rocksdb.com/127.0.0.1#5335 +ipset=/rocksdb.com/gfwlist +server=/meraki.hk/127.0.0.1#5335 +ipset=/meraki.hk/gfwlist +server=/javmany.com/127.0.0.1#5335 +ipset=/javmany.com/gfwlist +server=/drunkenstepfather.com/127.0.0.1#5335 +ipset=/drunkenstepfather.com/gfwlist +server=/520aa.tv/127.0.0.1#5335 +ipset=/520aa.tv/gfwlist +server=/sony.rs/127.0.0.1#5335 +ipset=/sony.rs/gfwlist +server=/yahoo.gg/127.0.0.1#5335 +ipset=/yahoo.gg/gfwlist +server=/yahoo.fm/127.0.0.1#5335 +ipset=/yahoo.fm/gfwlist +server=/fbredex.com/127.0.0.1#5335 +ipset=/fbredex.com/gfwlist +server=/yahoo.ee/127.0.0.1#5335 +ipset=/yahoo.ee/gfwlist +server=/wballiance.com/127.0.0.1#5335 +ipset=/wballiance.com/gfwlist +server=/nvidia.lu/127.0.0.1#5335 +ipset=/nvidia.lu/gfwlist +server=/urukawa.com/127.0.0.1#5335 +ipset=/urukawa.com/gfwlist +server=/roughman.net/127.0.0.1#5335 +ipset=/roughman.net/gfwlist +server=/wapm.io/127.0.0.1#5335 +ipset=/wapm.io/gfwlist +server=/yahoo.com.vc/127.0.0.1#5335 +ipset=/yahoo.com.vc/gfwlist +server=/zlib.life/127.0.0.1#5335 +ipset=/zlib.life/gfwlist +server=/dreambmw.ca/127.0.0.1#5335 +ipset=/dreambmw.ca/gfwlist +server=/yahoo.com.ua/127.0.0.1#5335 +ipset=/yahoo.com.ua/gfwlist +server=/yahoo.sm/127.0.0.1#5335 +ipset=/yahoo.sm/gfwlist +server=/iw8j.cc/127.0.0.1#5335 +ipset=/iw8j.cc/gfwlist +server=/yahoo.com.sv/127.0.0.1#5335 +ipset=/yahoo.com.sv/gfwlist +server=/chickteases.com/127.0.0.1#5335 +ipset=/chickteases.com/gfwlist +server=/jwplatform.com/127.0.0.1#5335 +ipset=/jwplatform.com/gfwlist +server=/mypornolab.click/127.0.0.1#5335 +ipset=/mypornolab.click/gfwlist +server=/yahoo.com.py/127.0.0.1#5335 +ipset=/yahoo.com.py/gfwlist +server=/yahoo.com.ph/127.0.0.1#5335 +ipset=/yahoo.com.ph/gfwlist +server=/proporn.com/127.0.0.1#5335 +ipset=/proporn.com/gfwlist +server=/yahoo.com.pe/127.0.0.1#5335 +ipset=/yahoo.com.pe/gfwlist +server=/youporn-germany.com/127.0.0.1#5335 +ipset=/youporn-germany.com/gfwlist +server=/kubeapps.com/127.0.0.1#5335 +ipset=/kubeapps.com/gfwlist +server=/jerkdude.com/127.0.0.1#5335 +ipset=/jerkdude.com/gfwlist +server=/yahoo.com.ly/127.0.0.1#5335 +ipset=/yahoo.com.ly/gfwlist +server=/uoherald.com/127.0.0.1#5335 +ipset=/uoherald.com/gfwlist +server=/ebahy.com/127.0.0.1#5335 +ipset=/ebahy.com/gfwlist +server=/codecademy.com/127.0.0.1#5335 +ipset=/codecademy.com/gfwlist +server=/squareup.com/127.0.0.1#5335 +ipset=/squareup.com/gfwlist +server=/homedepot.com/127.0.0.1#5335 +ipset=/homedepot.com/gfwlist +server=/visa.com.tt/127.0.0.1#5335 +ipset=/visa.com.tt/gfwlist +server=/dragonagemovie.com/127.0.0.1#5335 +ipset=/dragonagemovie.com/gfwlist +server=/casquemonsterbeats.com/127.0.0.1#5335 +ipset=/casquemonsterbeats.com/gfwlist +server=/yahoo.com.eg/127.0.0.1#5335 +ipset=/yahoo.com.eg/gfwlist +server=/officecdn-microsoft-com.akamaized.net/127.0.0.1#5335 +ipset=/officecdn-microsoft-com.akamaized.net/gfwlist +server=/yahoo.com.co/127.0.0.1#5335 +ipset=/yahoo.com.co/gfwlist +server=/yahoo.com.bz/127.0.0.1#5335 +ipset=/yahoo.com.bz/gfwlist +server=/mastercard.inc/127.0.0.1#5335 +ipset=/mastercard.inc/gfwlist +server=/yahoo.com.br/127.0.0.1#5335 +ipset=/yahoo.com.br/gfwlist +server=/sony.com.tw/127.0.0.1#5335 +ipset=/sony.com.tw/gfwlist +server=/paypal-brandcentral.com/127.0.0.1#5335 +ipset=/paypal-brandcentral.com/gfwlist +server=/trustedanalytics.net/127.0.0.1#5335 +ipset=/trustedanalytics.net/gfwlist +server=/yahoo.com.au/127.0.0.1#5335 +ipset=/yahoo.com.au/gfwlist +server=/yahoo.com.ar/127.0.0.1#5335 +ipset=/yahoo.com.ar/gfwlist +server=/porn1videos.com/127.0.0.1#5335 +ipset=/porn1videos.com/gfwlist +server=/yahoo.com.ai/127.0.0.1#5335 +ipset=/yahoo.com.ai/gfwlist +server=/yahoo.com.af/127.0.0.1#5335 +ipset=/yahoo.com.af/gfwlist +server=/bmw-sudan.com/127.0.0.1#5335 +ipset=/bmw-sudan.com/gfwlist +server=/yahoo.co.za/127.0.0.1#5335 +ipset=/yahoo.co.za/gfwlist +server=/cloudburstresearch.com/127.0.0.1#5335 +ipset=/cloudburstresearch.com/gfwlist +server=/offrezdesipods.com/127.0.0.1#5335 +ipset=/offrezdesipods.com/gfwlist +server=/nude-share.com/127.0.0.1#5335 +ipset=/nude-share.com/gfwlist +server=/yahoo.co.uz/127.0.0.1#5335 +ipset=/yahoo.co.uz/gfwlist +server=/yahoo.co.uk/127.0.0.1#5335 +ipset=/yahoo.co.uk/gfwlist +server=/yahoo.co.nz/127.0.0.1#5335 +ipset=/yahoo.co.nz/gfwlist +server=/yahoo.co.kr/127.0.0.1#5335 +ipset=/yahoo.co.kr/gfwlist +server=/yahoo.co.cr/127.0.0.1#5335 +ipset=/yahoo.co.cr/gfwlist +server=/yahoo.co.ck/127.0.0.1#5335 +ipset=/yahoo.co.ck/gfwlist +server=/cheapwireless04.com/127.0.0.1#5335 +ipset=/cheapwireless04.com/gfwlist +server=/yahoo.co.ao/127.0.0.1#5335 +ipset=/yahoo.co.ao/gfwlist +server=/yahoo.cg/127.0.0.1#5335 +ipset=/yahoo.cg/gfwlist +server=/lustteens.net/127.0.0.1#5335 +ipset=/lustteens.net/gfwlist +server=/themarvelexperiencetour.com/127.0.0.1#5335 +ipset=/themarvelexperiencetour.com/gfwlist +server=/yahoo.cat/127.0.0.1#5335 +ipset=/yahoo.cat/gfwlist +server=/yahoo.ca/127.0.0.1#5335 +ipset=/yahoo.ca/gfwlist +server=/beatsinsingapore.com/127.0.0.1#5335 +ipset=/beatsinsingapore.com/gfwlist +server=/yahoo.bs/127.0.0.1#5335 +ipset=/yahoo.bs/gfwlist +server=/yahoo.bg/127.0.0.1#5335 +ipset=/yahoo.bg/gfwlist +server=/xxxstreams.watch/127.0.0.1#5335 +ipset=/xxxstreams.watch/gfwlist +server=/trannygem.com/127.0.0.1#5335 +ipset=/trannygem.com/gfwlist +server=/yahoo.ba/127.0.0.1#5335 +ipset=/yahoo.ba/gfwlist +server=/riotpoints.com/127.0.0.1#5335 +ipset=/riotpoints.com/gfwlist +server=/xv1.monster/127.0.0.1#5335 +ipset=/xv1.monster/gfwlist +server=/yahoo.am/127.0.0.1#5335 +ipset=/yahoo.am/gfwlist +server=/lanternal.com/127.0.0.1#5335 +ipset=/lanternal.com/gfwlist +server=/javhd.pro/127.0.0.1#5335 +ipset=/javhd.pro/gfwlist +server=/rapefilms.net/127.0.0.1#5335 +ipset=/rapefilms.net/gfwlist +server=/accountpaypal.org/127.0.0.1#5335 +ipset=/accountpaypal.org/gfwlist +server=/nurofen.de/127.0.0.1#5335 +ipset=/nurofen.de/gfwlist +server=/ycombinator.com/127.0.0.1#5335 +ipset=/ycombinator.com/gfwlist +server=/aps.org/127.0.0.1#5335 +ipset=/aps.org/gfwlist +server=/intel.com.ph/127.0.0.1#5335 +ipset=/intel.com.ph/gfwlist +server=/sandisk.nl/127.0.0.1#5335 +ipset=/sandisk.nl/gfwlist +server=/sandisk.hk/127.0.0.1#5335 +ipset=/sandisk.hk/gfwlist +server=/welcometobestbuy.ca/127.0.0.1#5335 +ipset=/welcometobestbuy.ca/gfwlist +server=/mini.co.uk/127.0.0.1#5335 +ipset=/mini.co.uk/gfwlist +server=/sandisk.de/127.0.0.1#5335 +ipset=/sandisk.de/gfwlist +server=/ichineseporn.com/127.0.0.1#5335 +ipset=/ichineseporn.com/gfwlist +server=/sandisk.com.tw/127.0.0.1#5335 +ipset=/sandisk.com.tw/gfwlist +server=/qwapi.com/127.0.0.1#5335 +ipset=/qwapi.com/gfwlist +server=/sandisk.com.tr/127.0.0.1#5335 +ipset=/sandisk.com.tr/gfwlist +server=/attsavings.com/127.0.0.1#5335 +ipset=/attsavings.com/gfwlist +server=/sandisk.com.br/127.0.0.1#5335 +ipset=/sandisk.com.br/gfwlist +server=/lysol.com/127.0.0.1#5335 +ipset=/lysol.com/gfwlist +server=/foxsportsla.com/127.0.0.1#5335 +ipset=/foxsportsla.com/gfwlist +server=/timelinestoryteller.com/127.0.0.1#5335 +ipset=/timelinestoryteller.com/gfwlist +server=/vmware-techcenter.com/127.0.0.1#5335 +ipset=/vmware-techcenter.com/gfwlist +server=/vmworld.com/127.0.0.1#5335 +ipset=/vmworld.com/gfwlist +server=/sonybuilding.jp/127.0.0.1#5335 +ipset=/sonybuilding.jp/gfwlist +server=/g-technology.com/127.0.0.1#5335 +ipset=/g-technology.com/gfwlist +server=/uber.com/127.0.0.1#5335 +ipset=/uber.com/gfwlist +server=/tonec.com/127.0.0.1#5335 +ipset=/tonec.com/gfwlist +server=/registeridm.com/127.0.0.1#5335 +ipset=/registeridm.com/gfwlist +server=/hornyelephant.com/127.0.0.1#5335 +ipset=/hornyelephant.com/gfwlist +server=/hairy-women-pussy.net/127.0.0.1#5335 +ipset=/hairy-women-pussy.net/gfwlist +server=/lewdthots.com/127.0.0.1#5335 +ipset=/lewdthots.com/gfwlist +server=/internetdownloadmanager.com/127.0.0.1#5335 +ipset=/internetdownloadmanager.com/gfwlist +server=/x.com/127.0.0.1#5335 +ipset=/x.com/gfwlist +server=/sonylatvija.com/127.0.0.1#5335 +ipset=/sonylatvija.com/gfwlist +server=/disneymagicmoments.gen.tr/127.0.0.1#5335 +ipset=/disneymagicmoments.gen.tr/gfwlist +server=/sonyglobalsolutions.jp/127.0.0.1#5335 +ipset=/sonyglobalsolutions.jp/gfwlist +server=/monster-beats-by-dr-dre.com/127.0.0.1#5335 +ipset=/monster-beats-by-dr-dre.com/gfwlist +server=/sonydna.com/127.0.0.1#5335 +ipset=/sonydna.com/gfwlist +server=/japanbeast.com/127.0.0.1#5335 +ipset=/japanbeast.com/gfwlist +server=/amazon-lantern.com/127.0.0.1#5335 +ipset=/amazon-lantern.com/gfwlist +server=/sony.se/127.0.0.1#5335 +ipset=/sony.se/gfwlist +server=/cheapbeatsshopbydre.com/127.0.0.1#5335 +ipset=/cheapbeatsshopbydre.com/gfwlist +server=/visakorea.com/127.0.0.1#5335 +ipset=/visakorea.com/gfwlist +server=/sony.nl/127.0.0.1#5335 +ipset=/sony.nl/gfwlist +server=/sony.net/127.0.0.1#5335 +ipset=/sony.net/gfwlist +server=/sony.lv/127.0.0.1#5335 +ipset=/sony.lv/gfwlist +server=/sony.hu/127.0.0.1#5335 +ipset=/sony.hu/gfwlist +server=/sony.hr/127.0.0.1#5335 +ipset=/sony.hr/gfwlist +server=/appexchange.com/127.0.0.1#5335 +ipset=/appexchange.com/gfwlist +server=/sony.gr/127.0.0.1#5335 +ipset=/sony.gr/gfwlist +server=/yaburi.men/127.0.0.1#5335 +ipset=/yaburi.men/gfwlist +server=/cnbeta.com/127.0.0.1#5335 +ipset=/cnbeta.com/gfwlist +server=/sony.fr/127.0.0.1#5335 +ipset=/sony.fr/gfwlist +server=/yibei.org/127.0.0.1#5335 +ipset=/yibei.org/gfwlist +server=/sony.fi/127.0.0.1#5335 +ipset=/sony.fi/gfwlist +server=/realamericanstories.org/127.0.0.1#5335 +ipset=/realamericanstories.org/gfwlist +server=/intel.ro/127.0.0.1#5335 +ipset=/intel.ro/gfwlist +server=/sony.es/127.0.0.1#5335 +ipset=/sony.es/gfwlist +server=/sony.ee/127.0.0.1#5335 +ipset=/sony.ee/gfwlist +server=/boyfriendtv.com/127.0.0.1#5335 +ipset=/boyfriendtv.com/gfwlist +server=/sony.dk/127.0.0.1#5335 +ipset=/sony.dk/gfwlist +server=/onlygayvideo.com/127.0.0.1#5335 +ipset=/onlygayvideo.com/gfwlist +server=/sony.de/127.0.0.1#5335 +ipset=/sony.de/gfwlist +server=/naked-girls.me/127.0.0.1#5335 +ipset=/naked-girls.me/gfwlist +server=/sony.com.tr/127.0.0.1#5335 +ipset=/sony.com.tr/gfwlist +server=/adidas.ch/127.0.0.1#5335 +ipset=/adidas.ch/gfwlist +server=/twvid.com/127.0.0.1#5335 +ipset=/twvid.com/gfwlist +server=/get.page/127.0.0.1#5335 +ipset=/get.page/gfwlist +server=/vmworld2010.com/127.0.0.1#5335 +ipset=/vmworld2010.com/gfwlist +server=/sony.com.ph/127.0.0.1#5335 +ipset=/sony.com.ph/gfwlist +server=/vfsco.fi/127.0.0.1#5335 +ipset=/vfsco.fi/gfwlist +server=/1to1conference.com.au/127.0.0.1#5335 +ipset=/1to1conference.com.au/gfwlist +server=/adultartlinks.supertop-100.com/127.0.0.1#5335 +ipset=/adultartlinks.supertop-100.com/gfwlist +server=/sony.com.pe/127.0.0.1#5335 +ipset=/sony.com.pe/gfwlist +server=/atom.io/127.0.0.1#5335 +ipset=/atom.io/gfwlist +server=/sony.com.pa/127.0.0.1#5335 +ipset=/sony.com.pa/gfwlist +server=/sony.com.my/127.0.0.1#5335 +ipset=/sony.com.my/gfwlist +server=/sony.com.mk/127.0.0.1#5335 +ipset=/sony.com.mk/gfwlist +server=/sony.com.do/127.0.0.1#5335 +ipset=/sony.com.do/gfwlist +server=/dependabot.com/127.0.0.1#5335 +ipset=/dependabot.com/gfwlist +server=/peacocktv.com/127.0.0.1#5335 +ipset=/peacocktv.com/gfwlist +server=/sony.co.uk/127.0.0.1#5335 +ipset=/sony.co.uk/gfwlist +server=/sony.co.th/127.0.0.1#5335 +ipset=/sony.co.th/gfwlist +server=/sony.co.jp/127.0.0.1#5335 +ipset=/sony.co.jp/gfwlist +server=/sony.co.in/127.0.0.1#5335 +ipset=/sony.co.in/gfwlist +server=/sony.co.id/127.0.0.1#5335 +ipset=/sony.co.id/gfwlist +server=/sony.co.cr/127.0.0.1#5335 +ipset=/sony.co.cr/gfwlist +server=/sony.ch/127.0.0.1#5335 +ipset=/sony.ch/gfwlist +server=/sony.ca/127.0.0.1#5335 +ipset=/sony.ca/gfwlist +server=/globalsign.co.uk/127.0.0.1#5335 +ipset=/globalsign.co.uk/gfwlist +server=/verisign.in/127.0.0.1#5335 +ipset=/verisign.in/gfwlist +server=/sony.bg/127.0.0.1#5335 +ipset=/sony.bg/gfwlist +server=/sony.ba/127.0.0.1#5335 +ipset=/sony.ba/gfwlist +server=/sony-promotion.eu/127.0.0.1#5335 +ipset=/sony-promotion.eu/gfwlist +server=/sony-mea.com/127.0.0.1#5335 +ipset=/sony-mea.com/gfwlist +server=/sony-latin.com/127.0.0.1#5335 +ipset=/sony-latin.com/gfwlist +server=/tensorflow.org/127.0.0.1#5335 +ipset=/tensorflow.org/gfwlist +server=/sony-europe.com/127.0.0.1#5335 +ipset=/sony-europe.com/gfwlist +server=/camwhoresbay.com/127.0.0.1#5335 +ipset=/camwhoresbay.com/gfwlist +server=/whychoosevmwareeuc.com/127.0.0.1#5335 +ipset=/whychoosevmwareeuc.com/gfwlist +server=/momsteachsex.info/127.0.0.1#5335 +ipset=/momsteachsex.info/gfwlist +server=/df-bet.com/127.0.0.1#5335 +ipset=/df-bet.com/gfwlist +server=/worldescortindex.com/127.0.0.1#5335 +ipset=/worldescortindex.com/gfwlist +server=/snap.com/127.0.0.1#5335 +ipset=/snap.com/gfwlist +server=/pornaxo.com/127.0.0.1#5335 +ipset=/pornaxo.com/gfwlist +server=/sc-cdn.net/127.0.0.1#5335 +ipset=/sc-cdn.net/gfwlist +server=/wise-research.com/127.0.0.1#5335 +ipset=/wise-research.com/gfwlist +server=/smartonerobotics.com/127.0.0.1#5335 +ipset=/smartonerobotics.com/gfwlist +server=/dialogflow.com/127.0.0.1#5335 +ipset=/dialogflow.com/gfwlist +server=/sony.com.sv/127.0.0.1#5335 +ipset=/sony.com.sv/gfwlist +server=/wiisports.com/127.0.0.1#5335 +ipset=/wiisports.com/gfwlist +server=/s-rewards.hk/127.0.0.1#5335 +ipset=/s-rewards.hk/gfwlist +server=/s-cashonmobile.com/127.0.0.1#5335 +ipset=/s-cashonmobile.com/gfwlist +server=/ip73.com/127.0.0.1#5335 +ipset=/ip73.com/gfwlist +server=/12diasderegalosdeitunes.co.ve/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.co.ve/gfwlist +server=/hkcircleapp.com/127.0.0.1#5335 +ipset=/hkcircleapp.com/gfwlist +server=/barkadahansasmartone.com/127.0.0.1#5335 +ipset=/barkadahansasmartone.com/gfwlist +server=/appleone.community/127.0.0.1#5335 +ipset=/appleone.community/gfwlist +server=/samsunggalaxyfriends.com/127.0.0.1#5335 +ipset=/samsunggalaxyfriends.com/gfwlist +server=/canon-cee.com/127.0.0.1#5335 +ipset=/canon-cee.com/gfwlist +server=/fcfacebook.com/127.0.0.1#5335 +ipset=/fcfacebook.com/gfwlist +server=/ntc.party/127.0.0.1#5335 +ipset=/ntc.party/gfwlist +server=/nuvid.com/127.0.0.1#5335 +ipset=/nuvid.com/gfwlist +server=/vmwarelearning.com/127.0.0.1#5335 +ipset=/vmwarelearning.com/gfwlist +server=/samsungapps.com/127.0.0.1#5335 +ipset=/samsungapps.com/gfwlist +server=/bloombergprep.com/127.0.0.1#5335 +ipset=/bloombergprep.com/gfwlist +server=/samsung.com/127.0.0.1#5335 +ipset=/samsung.com/gfwlist +server=/vanish.co.in/127.0.0.1#5335 +ipset=/vanish.co.in/gfwlist +server=/galaxyappstore.com/127.0.0.1#5335 +ipset=/galaxyappstore.com/gfwlist +server=/steelbrick.com/127.0.0.1#5335 +ipset=/steelbrick.com/gfwlist +server=/xvideosnovinha.com.br/127.0.0.1#5335 +ipset=/xvideosnovinha.com.br/gfwlist +server=/sforce.com/127.0.0.1#5335 +ipset=/sforce.com/gfwlist +server=/sfdcstatic.com/127.0.0.1#5335 +ipset=/sfdcstatic.com/gfwlist +server=/sequence.com/127.0.0.1#5335 +ipset=/sequence.com/gfwlist +server=/dataliberation.org/127.0.0.1#5335 +ipset=/dataliberation.org/gfwlist +server=/google.com.ni/127.0.0.1#5335 +ipset=/google.com.ni/gfwlist +server=/salesforceliveagent.com/127.0.0.1#5335 +ipset=/salesforceliveagent.com/gfwlist +server=/salesforceiq.com/127.0.0.1#5335 +ipset=/salesforceiq.com/gfwlist +server=/line-apps-beta.com/127.0.0.1#5335 +ipset=/line-apps-beta.com/gfwlist +server=/straightpornstuds.com/127.0.0.1#5335 +ipset=/straightpornstuds.com/gfwlist +server=/2chav.com/127.0.0.1#5335 +ipset=/2chav.com/gfwlist +server=/pearsonclinical.eu/127.0.0.1#5335 +ipset=/pearsonclinical.eu/gfwlist +server=/salesforce.org/127.0.0.1#5335 +ipset=/salesforce.org/gfwlist +server=/faceboook.com/127.0.0.1#5335 +ipset=/faceboook.com/gfwlist +server=/unbrandedproducts.com/127.0.0.1#5335 +ipset=/unbrandedproducts.com/gfwlist +server=/quotable.com/127.0.0.1#5335 +ipset=/quotable.com/gfwlist +server=/pardot.com/127.0.0.1#5335 +ipset=/pardot.com/gfwlist +server=/microsoft.ca/127.0.0.1#5335 +ipset=/microsoft.ca/gfwlist +server=/force.com/127.0.0.1#5335 +ipset=/force.com/gfwlist +server=/exacttarget.com/127.0.0.1#5335 +ipset=/exacttarget.com/gfwlist +server=/liboggirls.net/127.0.0.1#5335 +ipset=/liboggirls.net/gfwlist +server=/minikelowna.ca/127.0.0.1#5335 +ipset=/minikelowna.ca/gfwlist +server=/einstein.com/127.0.0.1#5335 +ipset=/einstein.com/gfwlist +server=/desk.com/127.0.0.1#5335 +ipset=/desk.com/gfwlist +server=/google.mk/127.0.0.1#5335 +ipset=/google.mk/gfwlist +server=/demandware.com/127.0.0.1#5335 +ipset=/demandware.com/gfwlist +server=/drdrebeatsforu.com/127.0.0.1#5335 +ipset=/drdrebeatsforu.com/gfwlist +server=/ilife.gr/127.0.0.1#5335 +ipset=/ilife.gr/gfwlist +server=/cloudcraze.com/127.0.0.1#5335 +ipset=/cloudcraze.com/gfwlist +server=/chatter.com/127.0.0.1#5335 +ipset=/chatter.com/gfwlist +server=/beyondcore.com/127.0.0.1#5335 +ipset=/beyondcore.com/gfwlist +server=/razerzone.jp/127.0.0.1#5335 +ipset=/razerzone.jp/gfwlist +server=/razerzone.com/127.0.0.1#5335 +ipset=/razerzone.com/gfwlist +server=/newhentai.org/127.0.0.1#5335 +ipset=/newhentai.org/gfwlist +server=/qwant.fr/127.0.0.1#5335 +ipset=/qwant.fr/gfwlist +server=/ieee-sensors.org/127.0.0.1#5335 +ipset=/ieee-sensors.org/gfwlist +server=/soso7778.com/127.0.0.1#5335 +ipset=/soso7778.com/gfwlist +server=/shemalestardb.com/127.0.0.1#5335 +ipset=/shemalestardb.com/gfwlist +server=/qwant.com/127.0.0.1#5335 +ipset=/qwant.com/gfwlist +server=/intel.ag/127.0.0.1#5335 +ipset=/intel.ag/gfwlist +server=/mongodb.org/127.0.0.1#5335 +ipset=/mongodb.org/gfwlist +server=/uplinq.com/127.0.0.1#5335 +ipset=/uplinq.com/gfwlist +server=/bestialitysextaboo.com/127.0.0.1#5335 +ipset=/bestialitysextaboo.com/gfwlist +server=/snapdragonbooth.com/127.0.0.1#5335 +ipset=/snapdragonbooth.com/gfwlist +server=/snapdragon.cn/127.0.0.1#5335 +ipset=/snapdragon.cn/gfwlist +server=/minilangley.ca/127.0.0.1#5335 +ipset=/minilangley.ca/gfwlist +server=/qualcommventures.cn/127.0.0.1#5335 +ipset=/qualcommventures.cn/gfwlist +server=/qualcommretail.com/127.0.0.1#5335 +ipset=/qualcommretail.com/gfwlist +server=/avfox.cc/127.0.0.1#5335 +ipset=/avfox.cc/gfwlist +server=/sexxxhd.com/127.0.0.1#5335 +ipset=/sexxxhd.com/gfwlist +server=/volvobuses.pk/127.0.0.1#5335 +ipset=/volvobuses.pk/gfwlist +server=/qualcommmea.com/127.0.0.1#5335 +ipset=/qualcommmea.com/gfwlist +server=/qualcomm.fr/127.0.0.1#5335 +ipset=/qualcomm.fr/gfwlist +server=/lexisnexis.com/127.0.0.1#5335 +ipset=/lexisnexis.com/gfwlist +server=/qualcomm.com.tw/127.0.0.1#5335 +ipset=/qualcomm.com.tw/gfwlist +server=/qualcomm.co.kr/127.0.0.1#5335 +ipset=/qualcomm.co.kr/gfwlist +server=/qualcomm.co.in/127.0.0.1#5335 +ipset=/qualcomm.co.in/gfwlist +server=/whatsapp-plus.net/127.0.0.1#5335 +ipset=/whatsapp-plus.net/gfwlist +server=/mypearson.com/127.0.0.1#5335 +ipset=/mypearson.com/gfwlist +server=/qctconnect.com/127.0.0.1#5335 +ipset=/qctconnect.com/gfwlist +server=/patenttruth.org/127.0.0.1#5335 +ipset=/patenttruth.org/gfwlist +server=/pavpal.com/127.0.0.1#5335 +ipset=/pavpal.com/gfwlist +server=/mhshosting.com/127.0.0.1#5335 +ipset=/mhshosting.com/gfwlist +server=/imod.com/127.0.0.1#5335 +ipset=/imod.com/gfwlist +server=/vip-beats.com/127.0.0.1#5335 +ipset=/vip-beats.com/gfwlist +server=/gobianywhere.com/127.0.0.1#5335 +ipset=/gobianywhere.com/gfwlist +server=/cdmatech.com/127.0.0.1#5335 +ipset=/cdmatech.com/gfwlist +server=/sexgames.xxx/127.0.0.1#5335 +ipset=/sexgames.xxx/gfwlist +server=/donmai.us/127.0.0.1#5335 +ipset=/donmai.us/gfwlist +server=/berkanawireless.com/127.0.0.1#5335 +ipset=/berkanawireless.com/gfwlist +server=/bridgestonemerchandise.com/127.0.0.1#5335 +ipset=/bridgestonemerchandise.com/gfwlist +server=/cheap-nike.com/127.0.0.1#5335 +ipset=/cheap-nike.com/gfwlist +server=/jpg4us.net/127.0.0.1#5335 +ipset=/jpg4us.net/gfwlist +server=/volvotrucks.az/127.0.0.1#5335 +ipset=/volvotrucks.az/gfwlist +server=/stockingfetishvideo.com/127.0.0.1#5335 +ipset=/stockingfetishvideo.com/gfwlist +server=/ebayfashion.com/127.0.0.1#5335 +ipset=/ebayfashion.com/gfwlist +server=/genkai-hounyo.com/127.0.0.1#5335 +ipset=/genkai-hounyo.com/gfwlist +server=/bmw-motorrad.ua/127.0.0.1#5335 +ipset=/bmw-motorrad.ua/gfwlist +server=/pccw.com/127.0.0.1#5335 +ipset=/pccw.com/gfwlist +server=/hktpremier.com/127.0.0.1#5335 +ipset=/hktpremier.com/gfwlist +server=/hkt.com/127.0.0.1#5335 +ipset=/hkt.com/gfwlist +server=/media-rockstargames-com.akamaized.net/127.0.0.1#5335 +ipset=/media-rockstargames-com.akamaized.net/gfwlist +server=/scholar.google.com.hk/127.0.0.1#5335 +ipset=/scholar.google.com.hk/gfwlist +server=/hkt-eye.com/127.0.0.1#5335 +ipset=/hkt-eye.com/gfwlist +server=/esmarthealth.com/127.0.0.1#5335 +ipset=/esmarthealth.com/gfwlist +server=/drdrebeats-headphone.com/127.0.0.1#5335 +ipset=/drdrebeats-headphone.com/gfwlist +server=/panasonic.com/127.0.0.1#5335 +ipset=/panasonic.com/gfwlist +server=/facebookofsex.com/127.0.0.1#5335 +ipset=/facebookofsex.com/gfwlist +server=/oracleinfinity.io/127.0.0.1#5335 +ipset=/oracleinfinity.io/gfwlist +server=/oracleimg.com/127.0.0.1#5335 +ipset=/oracleimg.com/gfwlist +server=/oraclecloud.com/127.0.0.1#5335 +ipset=/oraclecloud.com/gfwlist +server=/oracle.com/127.0.0.1#5335 +ipset=/oracle.com/gfwlist +server=/jquerymobile.com/127.0.0.1#5335 +ipset=/jquerymobile.com/gfwlist +server=/openweathermap.org/127.0.0.1#5335 +ipset=/openweathermap.org/gfwlist +server=/nvidia.tt.omtrdc.net/127.0.0.1#5335 +ipset=/nvidia.tt.omtrdc.net/gfwlist +server=/tegrazone.kr/127.0.0.1#5335 +ipset=/tegrazone.kr/gfwlist +server=/mini.com.pa/127.0.0.1#5335 +ipset=/mini.com.pa/gfwlist +server=/steamstore-a.akamaihd.net/127.0.0.1#5335 +ipset=/steamstore-a.akamaihd.net/gfwlist +server=/tegrazone.com/127.0.0.1#5335 +ipset=/tegrazone.com/gfwlist +server=/deno.land/127.0.0.1#5335 +ipset=/deno.land/gfwlist +server=/hdready.xxx/127.0.0.1#5335 +ipset=/hdready.xxx/gfwlist +server=/pensions-expert.com/127.0.0.1#5335 +ipset=/pensions-expert.com/gfwlist +server=/nvidiagrid.net/127.0.0.1#5335 +ipset=/nvidiagrid.net/gfwlist +server=/fans-here.com/127.0.0.1#5335 +ipset=/fans-here.com/gfwlist +server=/nvidia.tw/127.0.0.1#5335 +ipset=/nvidia.tw/gfwlist +server=/nvidia.se/127.0.0.1#5335 +ipset=/nvidia.se/gfwlist +server=/reckittprofessional.com/127.0.0.1#5335 +ipset=/reckittprofessional.com/gfwlist +server=/pornoprive.xxx/127.0.0.1#5335 +ipset=/pornoprive.xxx/gfwlist +server=/nvidia.mx/127.0.0.1#5335 +ipset=/nvidia.mx/gfwlist +server=/yahoo.de/127.0.0.1#5335 +ipset=/yahoo.de/gfwlist +server=/nvidia.in/127.0.0.1#5335 +ipset=/nvidia.in/gfwlist +server=/microsoft.pt/127.0.0.1#5335 +ipset=/microsoft.pt/gfwlist +server=/nvidia.fi/127.0.0.1#5335 +ipset=/nvidia.fi/gfwlist +server=/candidforum-videos.com/127.0.0.1#5335 +ipset=/candidforum-videos.com/gfwlist +server=/nvidia.de/127.0.0.1#5335 +ipset=/nvidia.de/gfwlist +server=/cncrivals.com/127.0.0.1#5335 +ipset=/cncrivals.com/gfwlist +server=/nvidia.cz/127.0.0.1#5335 +ipset=/nvidia.cz/gfwlist +server=/love-sextoys.co.uk/127.0.0.1#5335 +ipset=/love-sextoys.co.uk/gfwlist +server=/nvidia.com.tw/127.0.0.1#5335 +ipset=/nvidia.com.tw/gfwlist +server=/enemaprocedure.com/127.0.0.1#5335 +ipset=/enemaprocedure.com/gfwlist +server=/thunderbolttechnology.net/127.0.0.1#5335 +ipset=/thunderbolttechnology.net/gfwlist +server=/nvidia.co.uk/127.0.0.1#5335 +ipset=/nvidia.co.uk/gfwlist +server=/nvidia.at/127.0.0.1#5335 +ipset=/nvidia.at/gfwlist +server=/gputechconf.jp/127.0.0.1#5335 +ipset=/gputechconf.jp/gfwlist +server=/gputechconf.in/127.0.0.1#5335 +ipset=/gputechconf.in/gfwlist +server=/durex.se/127.0.0.1#5335 +ipset=/durex.se/gfwlist +server=/anon-v.lol/127.0.0.1#5335 +ipset=/anon-v.lol/gfwlist +server=/lolespor.com/127.0.0.1#5335 +ipset=/lolespor.com/gfwlist +server=/taxidrivermovie.com/127.0.0.1#5335 +ipset=/taxidrivermovie.com/gfwlist +server=/instagramtakipcisatinal.net/127.0.0.1#5335 +ipset=/instagramtakipcisatinal.net/gfwlist +server=/geforce.co.uk/127.0.0.1#5335 +ipset=/geforce.co.uk/gfwlist +server=/hdxx.tv/127.0.0.1#5335 +ipset=/hdxx.tv/gfwlist +server=/megaporno.com.br/127.0.0.1#5335 +ipset=/megaporno.com.br/gfwlist +server=/pstatic.net/127.0.0.1#5335 +ipset=/pstatic.net/gfwlist +server=/famosascalvas.com/127.0.0.1#5335 +ipset=/famosascalvas.com/gfwlist +server=/maxis.com/127.0.0.1#5335 +ipset=/maxis.com/gfwlist +server=/ywoos.com/127.0.0.1#5335 +ipset=/ywoos.com/gfwlist +server=/springernature.com/127.0.0.1#5335 +ipset=/springernature.com/gfwlist +server=/grafolio.com/127.0.0.1#5335 +ipset=/grafolio.com/gfwlist +server=/mxmcdn.net/127.0.0.1#5335 +ipset=/mxmcdn.net/gfwlist +server=/musixmatch.com/127.0.0.1#5335 +ipset=/musixmatch.com/gfwlist +server=/cafr.ca/127.0.0.1#5335 +ipset=/cafr.ca/gfwlist +server=/paypalinsuranceservices.org/127.0.0.1#5335 +ipset=/paypalinsuranceservices.org/gfwlist +server=/poofetish.com/127.0.0.1#5335 +ipset=/poofetish.com/gfwlist +server=/mozilla.org/127.0.0.1#5335 +ipset=/mozilla.org/gfwlist +server=/mozilla.net/127.0.0.1#5335 +ipset=/mozilla.net/gfwlist +server=/crocotube.com/127.0.0.1#5335 +ipset=/crocotube.com/gfwlist +server=/nordstrommedia.com/127.0.0.1#5335 +ipset=/nordstrommedia.com/gfwlist +server=/illusion111.com/127.0.0.1#5335 +ipset=/illusion111.com/gfwlist +server=/mozilla.com/127.0.0.1#5335 +ipset=/mozilla.com/gfwlist +server=/developer.mozilla.org/127.0.0.1#5335 +ipset=/developer.mozilla.org/gfwlist +server=/quoracdn.net/127.0.0.1#5335 +ipset=/quoracdn.net/gfwlist +server=/indiansexstories2.net/127.0.0.1#5335 +ipset=/indiansexstories2.net/gfwlist +server=/yahoo.com.ec/127.0.0.1#5335 +ipset=/yahoo.com.ec/gfwlist +server=/beatsoutletanytime.com/127.0.0.1#5335 +ipset=/beatsoutletanytime.com/gfwlist +server=/img-s-msn-com.akamaized.net/127.0.0.1#5335 +ipset=/img-s-msn-com.akamaized.net/gfwlist +server=/media-imdb.com/127.0.0.1#5335 +ipset=/media-imdb.com/gfwlist +server=/cityoflove.com/127.0.0.1#5335 +ipset=/cityoflove.com/gfwlist +server=/intelinsight.com/127.0.0.1#5335 +ipset=/intelinsight.com/gfwlist +server=/thinkquarterly.co.uk/127.0.0.1#5335 +ipset=/thinkquarterly.co.uk/gfwlist +server=/winhec.net/127.0.0.1#5335 +ipset=/winhec.net/gfwlist +server=/jadult.net/127.0.0.1#5335 +ipset=/jadult.net/gfwlist +server=/jerkmatelive.org/127.0.0.1#5335 +ipset=/jerkmatelive.org/gfwlist +server=/windowssearch.com/127.0.0.1#5335 +ipset=/windowssearch.com/gfwlist +server=/windows.nl/127.0.0.1#5335 +ipset=/windows.nl/gfwlist +server=/alphabet.lt/127.0.0.1#5335 +ipset=/alphabet.lt/gfwlist +server=/windows.com/127.0.0.1#5335 +ipset=/windows.com/gfwlist +server=/windows-int.net/127.0.0.1#5335 +ipset=/windows-int.net/gfwlist +server=/paypal-mainstreet.net/127.0.0.1#5335 +ipset=/paypal-mainstreet.net/gfwlist +server=/wbd.ms/127.0.0.1#5335 +ipset=/wbd.ms/gfwlist +server=/facebooksafety.com/127.0.0.1#5335 +ipset=/facebooksafety.com/gfwlist +server=/hsxhr.cc/127.0.0.1#5335 +ipset=/hsxhr.cc/gfwlist +server=/vsallin.net/127.0.0.1#5335 +ipset=/vsallin.net/gfwlist +server=/userpxt.io/127.0.0.1#5335 +ipset=/userpxt.io/gfwlist +server=/google.az/127.0.0.1#5335 +ipset=/google.az/gfwlist +server=/tfsallin.net/127.0.0.1#5335 +ipset=/tfsallin.net/gfwlist +server=/cruel-furies.com/127.0.0.1#5335 +ipset=/cruel-furies.com/gfwlist +server=/facebookshop.com/127.0.0.1#5335 +ipset=/facebookshop.com/gfwlist +server=/castingcouch-x.com/127.0.0.1#5335 +ipset=/castingcouch-x.com/gfwlist +server=/ipostnaked.com/127.0.0.1#5335 +ipset=/ipostnaked.com/gfwlist +server=/motorshowblog.com/127.0.0.1#5335 +ipset=/motorshowblog.com/gfwlist +server=/headphoneshotsales.com/127.0.0.1#5335 +ipset=/headphoneshotsales.com/gfwlist +server=/perfectjizz.com/127.0.0.1#5335 +ipset=/perfectjizz.com/gfwlist +server=/geceguby.ru/127.0.0.1#5335 +ipset=/geceguby.ru/gfwlist +server=/staffhub.ms/127.0.0.1#5335 +ipset=/staffhub.ms/gfwlist +server=/skypeassets.com/127.0.0.1#5335 +ipset=/skypeassets.com/gfwlist +server=/skype.net/127.0.0.1#5335 +ipset=/skype.net/gfwlist +server=/sharepointonline.com/127.0.0.1#5335 +ipset=/sharepointonline.com/gfwlist +server=/rou.video/127.0.0.1#5335 +ipset=/rou.video/gfwlist +server=/mini.mq/127.0.0.1#5335 +ipset=/mini.mq/gfwlist +server=/girlscanner.cc/127.0.0.1#5335 +ipset=/girlscanner.cc/gfwlist +server=/alt2-mtalk.google.com/127.0.0.1#5335 +ipset=/alt2-mtalk.google.com/gfwlist +server=/viacom.com/127.0.0.1#5335 +ipset=/viacom.com/gfwlist +server=/sfbassets.net/127.0.0.1#5335 +ipset=/sfbassets.net/gfwlist +server=/pinterest.com.ec/127.0.0.1#5335 +ipset=/pinterest.com.ec/gfwlist +server=/eyny.com/127.0.0.1#5335 +ipset=/eyny.com/gfwlist +server=/sfbassets.com/127.0.0.1#5335 +ipset=/sfbassets.com/gfwlist +server=/s-microsoft.com/127.0.0.1#5335 +ipset=/s-microsoft.com/gfwlist +server=/akamaietpcnctest.com/127.0.0.1#5335 +ipset=/akamaietpcnctest.com/gfwlist +server=/beatsbydreonlines-uk.com/127.0.0.1#5335 +ipset=/beatsbydreonlines-uk.com/gfwlist +server=/pearson-schule.ch/127.0.0.1#5335 +ipset=/pearson-schule.ch/gfwlist +server=/projectsangam.com/127.0.0.1#5335 +ipset=/projectsangam.com/gfwlist +server=/pixapp.net/127.0.0.1#5335 +ipset=/pixapp.net/gfwlist +server=/54647.org/127.0.0.1#5335 +ipset=/54647.org/gfwlist +server=/lowergiseries.com/127.0.0.1#5335 +ipset=/lowergiseries.com/gfwlist +server=/nikeshoponline.com/127.0.0.1#5335 +ipset=/nikeshoponline.com/gfwlist +server=/informs.org/127.0.0.1#5335 +ipset=/informs.org/gfwlist +server=/outingsapp.com/127.0.0.1#5335 +ipset=/outingsapp.com/gfwlist +server=/tubepatrol.org/127.0.0.1#5335 +ipset=/tubepatrol.org/gfwlist +server=/opticsforthecloud.net/127.0.0.1#5335 +ipset=/opticsforthecloud.net/gfwlist +server=/runningnike.com/127.0.0.1#5335 +ipset=/runningnike.com/gfwlist +server=/bitballoon.com/127.0.0.1#5335 +ipset=/bitballoon.com/gfwlist +server=/illusionas.com/127.0.0.1#5335 +ipset=/illusionas.com/gfwlist +server=/pugpig-stage.com/127.0.0.1#5335 +ipset=/pugpig-stage.com/gfwlist +server=/niosii.net/127.0.0.1#5335 +ipset=/niosii.net/gfwlist +server=/mymicrosoft.com/127.0.0.1#5335 +ipset=/mymicrosoft.com/gfwlist +server=/bmwgroupdesignworks.com/127.0.0.1#5335 +ipset=/bmwgroupdesignworks.com/gfwlist +server=/msudalosti.com/127.0.0.1#5335 +ipset=/msudalosti.com/gfwlist +server=/msturing.org/127.0.0.1#5335 +ipset=/msturing.org/gfwlist +server=/adanaatikhaber.com/127.0.0.1#5335 +ipset=/adanaatikhaber.com/gfwlist +server=/vilavpn3.xyz/127.0.0.1#5335 +ipset=/vilavpn3.xyz/gfwlist +server=/topporn.me/127.0.0.1#5335 +ipset=/topporn.me/gfwlist +server=/msft.info/127.0.0.1#5335 +ipset=/msft.info/gfwlist +server=/geraldoatlarge.com/127.0.0.1#5335 +ipset=/geraldoatlarge.com/gfwlist +server=/screens-lab.jp/127.0.0.1#5335 +ipset=/screens-lab.jp/gfwlist +server=/kanzhongguo.eu/127.0.0.1#5335 +ipset=/kanzhongguo.eu/gfwlist +server=/msedge.net/127.0.0.1#5335 +ipset=/msedge.net/gfwlist +server=/mschallenge2018.com/127.0.0.1#5335 +ipset=/mschallenge2018.com/gfwlist +server=/binancezh.info/127.0.0.1#5335 +ipset=/binancezh.info/gfwlist +server=/ms365surfaceoffer.com/127.0.0.1#5335 +ipset=/ms365surfaceoffer.com/gfwlist +server=/ms-studiosmedia.com/127.0.0.1#5335 +ipset=/ms-studiosmedia.com/gfwlist +server=/disneymagicmoments.pl/127.0.0.1#5335 +ipset=/disneymagicmoments.pl/gfwlist +server=/mpnevolution.com/127.0.0.1#5335 +ipset=/mpnevolution.com/gfwlist +server=/manoramaonline.com/127.0.0.1#5335 +ipset=/manoramaonline.com/gfwlist +server=/vepornhd.club/127.0.0.1#5335 +ipset=/vepornhd.club/gfwlist +server=/morphcharts.com/127.0.0.1#5335 +ipset=/morphcharts.com/gfwlist +server=/freeviewplus.net.au/127.0.0.1#5335 +ipset=/freeviewplus.net.au/gfwlist +server=/microsoftstream.com/127.0.0.1#5335 +ipset=/microsoftstream.com/gfwlist +server=/microsoftsiteselection.com/127.0.0.1#5335 +ipset=/microsoftsiteselection.com/gfwlist +server=/microsoftready.com/127.0.0.1#5335 +ipset=/microsoftready.com/gfwlist +server=/telegra.ph/127.0.0.1#5335 +ipset=/telegra.ph/gfwlist +server=/microsoftpartnercommunity.com/127.0.0.1#5335 +ipset=/microsoftpartnercommunity.com/gfwlist +server=/microsoftlinc.com/127.0.0.1#5335 +ipset=/microsoftlinc.com/gfwlist +server=/microsofthouse.net/127.0.0.1#5335 +ipset=/microsofthouse.net/gfwlist +server=/beatsdanmark2013.com/127.0.0.1#5335 +ipset=/beatsdanmark2013.com/gfwlist +server=/microsoftcommunitytraining.com/127.0.0.1#5335 +ipset=/microsoftcommunitytraining.com/gfwlist +server=/microsoftcloudworkshop.com/127.0.0.1#5335 +ipset=/microsoftcloudworkshop.com/gfwlist +server=/theporndude.vip/127.0.0.1#5335 +ipset=/theporndude.vip/gfwlist +server=/megacamz.com/127.0.0.1#5335 +ipset=/megacamz.com/gfwlist +server=/microsoftadvertisingregionalawards.com/127.0.0.1#5335 +ipset=/microsoftadvertisingregionalawards.com/gfwlist +server=/microsoft-sbs-domains.com/127.0.0.1#5335 +ipset=/microsoft-sbs-domains.com/gfwlist +server=/easportsfootball.com/127.0.0.1#5335 +ipset=/easportsfootball.com/gfwlist +server=/microsoft-int.com/127.0.0.1#5335 +ipset=/microsoft-int.com/gfwlist +server=/live.net/127.0.0.1#5335 +ipset=/live.net/gfwlist +server=/live.com/127.0.0.1#5335 +ipset=/live.com/gfwlist +server=/ameba.jp/127.0.0.1#5335 +ipset=/ameba.jp/gfwlist +server=/anthemgame.com/127.0.0.1#5335 +ipset=/anthemgame.com/gfwlist +server=/celeron.net/127.0.0.1#5335 +ipset=/celeron.net/gfwlist +server=/figma.com/127.0.0.1#5335 +ipset=/figma.com/gfwlist +server=/applecomputers.co.nz/127.0.0.1#5335 +ipset=/applecomputers.co.nz/gfwlist +server=/rink.hockeyapp.net/127.0.0.1#5335 +ipset=/rink.hockeyapp.net/gfwlist +server=/aka-ai.net/127.0.0.1#5335 +ipset=/aka-ai.net/gfwlist +server=/18comic.cc/127.0.0.1#5335 +ipset=/18comic.cc/gfwlist +server=/lgbtq.games/127.0.0.1#5335 +ipset=/lgbtq.games/gfwlist +server=/hamivideo.hinet.net/127.0.0.1#5335 +ipset=/hamivideo.hinet.net/gfwlist +server=/entrustdatacard.com/127.0.0.1#5335 +ipset=/entrustdatacard.com/gfwlist +server=/fundfire.com/127.0.0.1#5335 +ipset=/fundfire.com/gfwlist +server=/beats-headphones-buy-cheap.com/127.0.0.1#5335 +ipset=/beats-headphones-buy-cheap.com/gfwlist +server=/nintendo.nl/127.0.0.1#5335 +ipset=/nintendo.nl/gfwlist +server=/nubiles.net/127.0.0.1#5335 +ipset=/nubiles.net/gfwlist +server=/tik-tokapi.com/127.0.0.1#5335 +ipset=/tik-tokapi.com/gfwlist +server=/tvmost.com.hk/127.0.0.1#5335 +ipset=/tvmost.com.hk/gfwlist +server=/facebookadvertisingsecrets.com/127.0.0.1#5335 +ipset=/facebookadvertisingsecrets.com/gfwlist +server=/bmw-vancouver.ca/127.0.0.1#5335 +ipset=/bmw-vancouver.ca/gfwlist +server=/ieeeusa.org/127.0.0.1#5335 +ipset=/ieeeusa.org/gfwlist +server=/lspimg.com/127.0.0.1#5335 +ipset=/lspimg.com/gfwlist +server=/hoodamateurs.com/127.0.0.1#5335 +ipset=/hoodamateurs.com/gfwlist +server=/huffpostmaghreb.com/127.0.0.1#5335 +ipset=/huffpostmaghreb.com/gfwlist +server=/ingads.com/127.0.0.1#5335 +ipset=/ingads.com/gfwlist +server=/imaginecup.pl/127.0.0.1#5335 +ipset=/imaginecup.pl/gfwlist +server=/32bm.cc/127.0.0.1#5335 +ipset=/32bm.cc/gfwlist +server=/internetexplorer.com/127.0.0.1#5335 +ipset=/internetexplorer.com/gfwlist +server=/xb18.me/127.0.0.1#5335 +ipset=/xb18.me/gfwlist +server=/beatsbydresolohdonline-canada.com/127.0.0.1#5335 +ipset=/beatsbydresolohdonline-canada.com/gfwlist +server=/touchid.tv/127.0.0.1#5335 +ipset=/touchid.tv/gfwlist +server=/intelserveredge.com/127.0.0.1#5335 +ipset=/intelserveredge.com/gfwlist +server=/scholar.google.cat/127.0.0.1#5335 +ipset=/scholar.google.cat/gfwlist +server=/cambridgemaths.org/127.0.0.1#5335 +ipset=/cambridgemaths.org/gfwlist +server=/beatsbydrdre4sale.com/127.0.0.1#5335 +ipset=/beatsbydrdre4sale.com/gfwlist +server=/drebeatsoldes.com/127.0.0.1#5335 +ipset=/drebeatsoldes.com/gfwlist +server=/onahodouga.com/127.0.0.1#5335 +ipset=/onahodouga.com/gfwlist +server=/bmw.com.gt/127.0.0.1#5335 +ipset=/bmw.com.gt/gfwlist +server=/hotmail.org/127.0.0.1#5335 +ipset=/hotmail.org/gfwlist +server=/tvappstore.net/127.0.0.1#5335 +ipset=/tvappstore.net/gfwlist +server=/hotmail.eu/127.0.0.1#5335 +ipset=/hotmail.eu/gfwlist +server=/foxcredit.com/127.0.0.1#5335 +ipset=/foxcredit.com/gfwlist +server=/adulttoontube.com/127.0.0.1#5335 +ipset=/adulttoontube.com/gfwlist +server=/smutstone.com/127.0.0.1#5335 +ipset=/smutstone.com/gfwlist +server=/hololens.com/127.0.0.1#5335 +ipset=/hololens.com/gfwlist +server=/lepornofrais.com/127.0.0.1#5335 +ipset=/lepornofrais.com/gfwlist +server=/gigjam.com/127.0.0.1#5335 +ipset=/gigjam.com/gfwlist +server=/jpavcom.com/127.0.0.1#5335 +ipset=/jpavcom.com/gfwlist +server=/9to5toys.com/127.0.0.1#5335 +ipset=/9to5toys.com/gfwlist +server=/gearstactics.com/127.0.0.1#5335 +ipset=/gearstactics.com/gfwlist +server=/washingtonpost.com/127.0.0.1#5335 +ipset=/washingtonpost.com/gfwlist +server=/management-azure-devices-int.net/127.0.0.1#5335 +ipset=/management-azure-devices-int.net/gfwlist +server=/applehongkong.com/127.0.0.1#5335 +ipset=/applehongkong.com/gfwlist +server=/gears5.com/127.0.0.1#5335 +ipset=/gears5.com/gfwlist +server=/foxsports.co.ve/127.0.0.1#5335 +ipset=/foxsports.co.ve/gfwlist +server=/gettyimages.ae/127.0.0.1#5335 +ipset=/gettyimages.ae/gfwlist +server=/magento.net/127.0.0.1#5335 +ipset=/magento.net/gfwlist +server=/ulifestyle.com.hk/127.0.0.1#5335 +ipset=/ulifestyle.com.hk/gfwlist +server=/alphabet.at/127.0.0.1#5335 +ipset=/alphabet.at/gfwlist +server=/origin.tv/127.0.0.1#5335 +ipset=/origin.tv/gfwlist +server=/bmw-connecteddrive.com/127.0.0.1#5335 +ipset=/bmw-connecteddrive.com/gfwlist +server=/efproject.net/127.0.0.1#5335 +ipset=/efproject.net/gfwlist +server=/dat.foundation/127.0.0.1#5335 +ipset=/dat.foundation/gfwlist +server=/ebayauction.com/127.0.0.1#5335 +ipset=/ebayauction.com/gfwlist +server=/bookshome.info/127.0.0.1#5335 +ipset=/bookshome.info/gfwlist +server=/am730.com.hk/127.0.0.1#5335 +ipset=/am730.com.hk/gfwlist +server=/beats4outlets.com/127.0.0.1#5335 +ipset=/beats4outlets.com/gfwlist +server=/disney.ch/127.0.0.1#5335 +ipset=/disney.ch/gfwlist +server=/jav01.cc/127.0.0.1#5335 +ipset=/jav01.cc/gfwlist +server=/bmw-rrdays.com/127.0.0.1#5335 +ipset=/bmw-rrdays.com/gfwlist +server=/mini.fr/127.0.0.1#5335 +ipset=/mini.fr/gfwlist +server=/crmdynint.com/127.0.0.1#5335 +ipset=/crmdynint.com/gfwlist +server=/ciscoresearch.com/127.0.0.1#5335 +ipset=/ciscoresearch.com/gfwlist +server=/hentai-moon.com/127.0.0.1#5335 +ipset=/hentai-moon.com/gfwlist +server=/crmdynint-gcc.com/127.0.0.1#5335 +ipset=/crmdynint-gcc.com/gfwlist +server=/entermediadb.net/127.0.0.1#5335 +ipset=/entermediadb.net/gfwlist +server=/gu-web.net/127.0.0.1#5335 +ipset=/gu-web.net/gfwlist +server=/4u4c.com/127.0.0.1#5335 +ipset=/4u4c.com/gfwlist +server=/paypalindia.com/127.0.0.1#5335 +ipset=/paypalindia.com/gfwlist +server=/coreml.net/127.0.0.1#5335 +ipset=/coreml.net/gfwlist +server=/cloudappsecurity.com/127.0.0.1#5335 +ipset=/cloudappsecurity.com/gfwlist +server=/amateurwifefuck.com/127.0.0.1#5335 +ipset=/amateurwifefuck.com/gfwlist +server=/cloudapp.net/127.0.0.1#5335 +ipset=/cloudapp.net/gfwlist +server=/youtube.vn/127.0.0.1#5335 +ipset=/youtube.vn/gfwlist +server=/lubetube.com/127.0.0.1#5335 +ipset=/lubetube.com/gfwlist +server=/applecom.com/127.0.0.1#5335 +ipset=/applecom.com/gfwlist +server=/now-tv.com/127.0.0.1#5335 +ipset=/now-tv.com/gfwlist +server=/coinglass.com/127.0.0.1#5335 +ipset=/coinglass.com/gfwlist +server=/youtube.cz/127.0.0.1#5335 +ipset=/youtube.cz/gfwlist +server=/mini.ua/127.0.0.1#5335 +ipset=/mini.ua/gfwlist +server=/bmw.com.tw/127.0.0.1#5335 +ipset=/bmw.com.tw/gfwlist +server=/applestore.com.au/127.0.0.1#5335 +ipset=/applestore.com.au/gfwlist +server=/mini.ca/127.0.0.1#5335 +ipset=/mini.ca/gfwlist +server=/centralvalidation.com/127.0.0.1#5335 +ipset=/centralvalidation.com/gfwlist +server=/bmwgroup.net/127.0.0.1#5335 +ipset=/bmwgroup.net/gfwlist +server=/thesims4.com/127.0.0.1#5335 +ipset=/thesims4.com/gfwlist +server=/brazilpartneruniversity.com/127.0.0.1#5335 +ipset=/brazilpartneruniversity.com/gfwlist +server=/heroku.com/127.0.0.1#5335 +ipset=/heroku.com/gfwlist +server=/osakamotion.net/127.0.0.1#5335 +ipset=/osakamotion.net/gfwlist +server=/collector.xhamster.com/127.0.0.1#5335 +ipset=/collector.xhamster.com/gfwlist +server=/asp.net/127.0.0.1#5335 +ipset=/asp.net/gfwlist +server=/princeton.edu/127.0.0.1#5335 +ipset=/princeton.edu/gfwlist +server=/gdsrx888.com/127.0.0.1#5335 +ipset=/gdsrx888.com/gfwlist +server=/barelist.com/127.0.0.1#5335 +ipset=/barelist.com/gfwlist +server=/battlelog.com/127.0.0.1#5335 +ipset=/battlelog.com/gfwlist +server=/applicationinsights.net/127.0.0.1#5335 +ipset=/applicationinsights.net/gfwlist +server=/camfinder.com/127.0.0.1#5335 +ipset=/camfinder.com/gfwlist +server=/ebay.at/127.0.0.1#5335 +ipset=/ebay.at/gfwlist +server=/musicbay.net/127.0.0.1#5335 +ipset=/musicbay.net/gfwlist +server=/blogspot.com.ar/127.0.0.1#5335 +ipset=/blogspot.com.ar/gfwlist +server=/aka.ms/127.0.0.1#5335 +ipset=/aka.ms/gfwlist +server=/m12.vc/127.0.0.1#5335 +ipset=/m12.vc/gfwlist +server=/teensnow.link/127.0.0.1#5335 +ipset=/teensnow.link/gfwlist +server=/faceboop.com/127.0.0.1#5335 +ipset=/faceboop.com/gfwlist +server=/playshow.io/127.0.0.1#5335 +ipset=/playshow.io/gfwlist +server=/adobetarget.com/127.0.0.1#5335 +ipset=/adobetarget.com/gfwlist +server=/wwtbam.com/127.0.0.1#5335 +ipset=/wwtbam.com/gfwlist +server=/91sesex.xyz/127.0.0.1#5335 +ipset=/91sesex.xyz/gfwlist +server=/webcammedellin.co/127.0.0.1#5335 +ipset=/webcammedellin.co/gfwlist +server=/paypall.com/127.0.0.1#5335 +ipset=/paypall.com/gfwlist +server=/steam.eca.qtlglb.com/127.0.0.1#5335 +ipset=/steam.eca.qtlglb.com/gfwlist +server=/mini.cc/127.0.0.1#5335 +ipset=/mini.cc/gfwlist +server=/qualcommventures.com/127.0.0.1#5335 +ipset=/qualcommventures.com/gfwlist +server=/hdsexxx.net/127.0.0.1#5335 +ipset=/hdsexxx.net/gfwlist +server=/egotastic.com/127.0.0.1#5335 +ipset=/egotastic.com/gfwlist +server=/xn--hckl3e1e8a8ajin0czf.net/127.0.0.1#5335 +ipset=/xn--hckl3e1e8a8ajin0czf.net/gfwlist +server=/nike.ci/127.0.0.1#5335 +ipset=/nike.ci/gfwlist +server=/naughtyhentai.biz/127.0.0.1#5335 +ipset=/naughtyhentai.biz/gfwlist +server=/microsoft.si/127.0.0.1#5335 +ipset=/microsoft.si/gfwlist +server=/convrgencegame.com/127.0.0.1#5335 +ipset=/convrgencegame.com/gfwlist +server=/yourpelvicultrasound.com/127.0.0.1#5335 +ipset=/yourpelvicultrasound.com/gfwlist +server=/goodporno.cc/127.0.0.1#5335 +ipset=/goodporno.cc/gfwlist +server=/microsoft.red/127.0.0.1#5335 +ipset=/microsoft.red/gfwlist +server=/curbed.com/127.0.0.1#5335 +ipset=/curbed.com/gfwlist +server=/shemaleleaks.com/127.0.0.1#5335 +ipset=/shemaleleaks.com/gfwlist +server=/googlearth.com/127.0.0.1#5335 +ipset=/googlearth.com/gfwlist +server=/urduvoa.com/127.0.0.1#5335 +ipset=/urduvoa.com/gfwlist +server=/mastercardcenterforinclusivegrowth.org/127.0.0.1#5335 +ipset=/mastercardcenterforinclusivegrowth.org/gfwlist +server=/minipetfriendly.com/127.0.0.1#5335 +ipset=/minipetfriendly.com/gfwlist +server=/youtube.pl/127.0.0.1#5335 +ipset=/youtube.pl/gfwlist +server=/microsoft.net/127.0.0.1#5335 +ipset=/microsoft.net/gfwlist +server=/relateiq.com/127.0.0.1#5335 +ipset=/relateiq.com/gfwlist +server=/amateurest.com/127.0.0.1#5335 +ipset=/amateurest.com/gfwlist +server=/paypal-specialoffers.com/127.0.0.1#5335 +ipset=/paypal-specialoffers.com/gfwlist +server=/sandisk.es/127.0.0.1#5335 +ipset=/sandisk.es/gfwlist +server=/cloudlock.com/127.0.0.1#5335 +ipset=/cloudlock.com/gfwlist +server=/nudewifeporn.com/127.0.0.1#5335 +ipset=/nudewifeporn.com/gfwlist +server=/microsoft.lt/127.0.0.1#5335 +ipset=/microsoft.lt/gfwlist +server=/microsoft.jp/127.0.0.1#5335 +ipset=/microsoft.jp/gfwlist +server=/fdiintelligence.com/127.0.0.1#5335 +ipset=/fdiintelligence.com/gfwlist +server=/w3.org/127.0.0.1#5335 +ipset=/w3.org/gfwlist +server=/javlibrary.com/127.0.0.1#5335 +ipset=/javlibrary.com/gfwlist +server=/safechat.com/127.0.0.1#5335 +ipset=/safechat.com/gfwlist +server=/beatsbydre-store.com/127.0.0.1#5335 +ipset=/beatsbydre-store.com/gfwlist +server=/avbebe.com/127.0.0.1#5335 +ipset=/avbebe.com/gfwlist +server=/autodraw.com/127.0.0.1#5335 +ipset=/autodraw.com/gfwlist +server=/microsoft.io/127.0.0.1#5335 +ipset=/microsoft.io/gfwlist +server=/paypal-galactic.com/127.0.0.1#5335 +ipset=/paypal-galactic.com/gfwlist +server=/scholar.google.se/127.0.0.1#5335 +ipset=/scholar.google.se/gfwlist +server=/vaginal-ultrasound.com/127.0.0.1#5335 +ipset=/vaginal-ultrasound.com/gfwlist +server=/mac.com.au/127.0.0.1#5335 +ipset=/mac.com.au/gfwlist +server=/momsboysmovies.net/127.0.0.1#5335 +ipset=/momsboysmovies.net/gfwlist +server=/microsoft.eu/127.0.0.1#5335 +ipset=/microsoft.eu/gfwlist +server=/microsoft.es/127.0.0.1#5335 +ipset=/microsoft.es/gfwlist +server=/google.bg/127.0.0.1#5335 +ipset=/google.bg/gfwlist +server=/voatour.com/127.0.0.1#5335 +ipset=/voatour.com/gfwlist +server=/disneymovieinsiders.com/127.0.0.1#5335 +ipset=/disneymovieinsiders.com/gfwlist +server=/pypl.net/127.0.0.1#5335 +ipset=/pypl.net/gfwlist +server=/swisssign.ch/127.0.0.1#5335 +ipset=/swisssign.ch/gfwlist +server=/fbthirdpartypixel.net/127.0.0.1#5335 +ipset=/fbthirdpartypixel.net/gfwlist +server=/pieceofplastic.com/127.0.0.1#5335 +ipset=/pieceofplastic.com/gfwlist +server=/heaven-burns-red.com/127.0.0.1#5335 +ipset=/heaven-burns-red.com/gfwlist +server=/visa.pl/127.0.0.1#5335 +ipset=/visa.pl/gfwlist +server=/fantasticyoungporn.com/127.0.0.1#5335 +ipset=/fantasticyoungporn.com/gfwlist +server=/rocksdb.net/127.0.0.1#5335 +ipset=/rocksdb.net/gfwlist +server=/sony.com/127.0.0.1#5335 +ipset=/sony.com/gfwlist +server=/b-ok.africa/127.0.0.1#5335 +ipset=/b-ok.africa/gfwlist +server=/nikeincchemistry.com/127.0.0.1#5335 +ipset=/nikeincchemistry.com/gfwlist +server=/pornpair.com/127.0.0.1#5335 +ipset=/pornpair.com/gfwlist +server=/half.com/127.0.0.1#5335 +ipset=/half.com/gfwlist +server=/telegram.me/127.0.0.1#5335 +ipset=/telegram.me/gfwlist +server=/mastercard.by/127.0.0.1#5335 +ipset=/mastercard.by/gfwlist +server=/xxxclub.club/127.0.0.1#5335 +ipset=/xxxclub.club/gfwlist +server=/pornhat.tv/127.0.0.1#5335 +ipset=/pornhat.tv/gfwlist +server=/microsoft.ch/127.0.0.1#5335 +ipset=/microsoft.ch/gfwlist +server=/virtualrealgay.com/127.0.0.1#5335 +ipset=/virtualrealgay.com/gfwlist +server=/cbsnews.com/127.0.0.1#5335 +ipset=/cbsnews.com/gfwlist +server=/metamind.io/127.0.0.1#5335 +ipset=/metamind.io/gfwlist +server=/google.pn/127.0.0.1#5335 +ipset=/google.pn/gfwlist +server=/greginhollywood.com/127.0.0.1#5335 +ipset=/greginhollywood.com/gfwlist +server=/foxsportsgo.com/127.0.0.1#5335 +ipset=/foxsportsgo.com/gfwlist +server=/youtube.com.co/127.0.0.1#5335 +ipset=/youtube.com.co/gfwlist +server=/discountporn.club/127.0.0.1#5335 +ipset=/discountporn.club/gfwlist +server=/areyoucreditwise.com/127.0.0.1#5335 +ipset=/areyoucreditwise.com/gfwlist +server=/enemabasics.com/127.0.0.1#5335 +ipset=/enemabasics.com/gfwlist +server=/amateuroldsluts.com/127.0.0.1#5335 +ipset=/amateuroldsluts.com/gfwlist +server=/walmart.com/127.0.0.1#5335 +ipset=/walmart.com/gfwlist +server=/analpornhouse.com/127.0.0.1#5335 +ipset=/analpornhouse.com/gfwlist +server=/nikekd.com/127.0.0.1#5335 +ipset=/nikekd.com/gfwlist +server=/9to5mac.com/127.0.0.1#5335 +ipset=/9to5mac.com/gfwlist +server=/bubbaporn.com/127.0.0.1#5335 +ipset=/bubbaporn.com/gfwlist +server=/udemy.com/127.0.0.1#5335 +ipset=/udemy.com/gfwlist +server=/ozodi.org/127.0.0.1#5335 +ipset=/ozodi.org/gfwlist +server=/faronicslabs.com/127.0.0.1#5335 +ipset=/faronicslabs.com/gfwlist +server=/playerjs.io/127.0.0.1#5335 +ipset=/playerjs.io/gfwlist +server=/sprinklesapp.com/127.0.0.1#5335 +ipset=/sprinklesapp.com/gfwlist +server=/microsoft.az/127.0.0.1#5335 +ipset=/microsoft.az/gfwlist +server=/canon.de/127.0.0.1#5335 +ipset=/canon.de/gfwlist +server=/naoconto.com/127.0.0.1#5335 +ipset=/naoconto.com/gfwlist +server=/onedrive.org/127.0.0.1#5335 +ipset=/onedrive.org/gfwlist +server=/pvp.net/127.0.0.1#5335 +ipset=/pvp.net/gfwlist +server=/onedrive.net/127.0.0.1#5335 +ipset=/onedrive.net/gfwlist +server=/onedrive.eu/127.0.0.1#5335 +ipset=/onedrive.eu/gfwlist +server=/packagist.org/127.0.0.1#5335 +ipset=/packagist.org/gfwlist +server=/onedrive.com/127.0.0.1#5335 +ipset=/onedrive.com/gfwlist +server=/livefilestore.com/127.0.0.1#5335 +ipset=/livefilestore.com/gfwlist +server=/zoophilist.net/127.0.0.1#5335 +ipset=/zoophilist.net/gfwlist +server=/ebaymotors.ca/127.0.0.1#5335 +ipset=/ebaymotors.ca/gfwlist +server=/msnkids.com/127.0.0.1#5335 +ipset=/msnkids.com/gfwlist +server=/yahoo.az/127.0.0.1#5335 +ipset=/yahoo.az/gfwlist +server=/scholar.google.com.sg/127.0.0.1#5335 +ipset=/scholar.google.com.sg/gfwlist +server=/xnxx.com/127.0.0.1#5335 +ipset=/xnxx.com/gfwlist +server=/msnewskids.org/127.0.0.1#5335 +ipset=/msnewskids.org/gfwlist +server=/fecbook.com/127.0.0.1#5335 +ipset=/fecbook.com/gfwlist +server=/embl-hamburg.de/127.0.0.1#5335 +ipset=/embl-hamburg.de/gfwlist +server=/msnewskids.net/127.0.0.1#5335 +ipset=/msnewskids.net/gfwlist +server=/msnewskids.com/127.0.0.1#5335 +ipset=/msnewskids.com/gfwlist +server=/enjoyfuck.com/127.0.0.1#5335 +ipset=/enjoyfuck.com/gfwlist +server=/bs-awh.ne.jp/127.0.0.1#5335 +ipset=/bs-awh.ne.jp/gfwlist +server=/clannad-movie.jp/127.0.0.1#5335 +ipset=/clannad-movie.jp/gfwlist +server=/microsoftnewskids.org/127.0.0.1#5335 +ipset=/microsoftnewskids.org/gfwlist +server=/microsoftnewskids.net/127.0.0.1#5335 +ipset=/microsoftnewskids.net/gfwlist +server=/kimogirl.cc/127.0.0.1#5335 +ipset=/kimogirl.cc/gfwlist +server=/microsoftnewsforkids.org/127.0.0.1#5335 +ipset=/microsoftnewsforkids.org/gfwlist +server=/swiftfinancial.info/127.0.0.1#5335 +ipset=/swiftfinancial.info/gfwlist +server=/svaboda.org/127.0.0.1#5335 +ipset=/svaboda.org/gfwlist +server=/facbebook.com/127.0.0.1#5335 +ipset=/facbebook.com/gfwlist +server=/foxdeportes.net/127.0.0.1#5335 +ipset=/foxdeportes.net/gfwlist +server=/ahorsecock.com/127.0.0.1#5335 +ipset=/ahorsecock.com/gfwlist +server=/foxnation.com/127.0.0.1#5335 +ipset=/foxnation.com/gfwlist +server=/wiseid.com/127.0.0.1#5335 +ipset=/wiseid.com/gfwlist +server=/microsoftnewsforkids.com/127.0.0.1#5335 +ipset=/microsoftnewsforkids.com/gfwlist +server=/microsoftnews.net/127.0.0.1#5335 +ipset=/microsoftnews.net/gfwlist +server=/renovacionoffice.com/127.0.0.1#5335 +ipset=/renovacionoffice.com/gfwlist +server=/sstatic.net/127.0.0.1#5335 +ipset=/sstatic.net/gfwlist +server=/microsoftmxfilantropia.com/127.0.0.1#5335 +ipset=/microsoftmxfilantropia.com/gfwlist +server=/monsterbeatsbydrdre-nz.com/127.0.0.1#5335 +ipset=/monsterbeatsbydrdre-nz.com/gfwlist +server=/amabitch.com/127.0.0.1#5335 +ipset=/amabitch.com/gfwlist +server=/zeit-world.org/127.0.0.1#5335 +ipset=/zeit-world.org/gfwlist +server=/amateurpages.com/127.0.0.1#5335 +ipset=/amateurpages.com/gfwlist +server=/cilk.net/127.0.0.1#5335 +ipset=/cilk.net/gfwlist +server=/cheapbeatsaustraliasale.com/127.0.0.1#5335 +ipset=/cheapbeatsaustraliasale.com/gfwlist +server=/airwick.it/127.0.0.1#5335 +ipset=/airwick.it/gfwlist +server=/masalladeloslimites.com/127.0.0.1#5335 +ipset=/masalladeloslimites.com/gfwlist +server=/afriboyz.com/127.0.0.1#5335 +ipset=/afriboyz.com/gfwlist +server=/voanoticias.com/127.0.0.1#5335 +ipset=/voanoticias.com/gfwlist +server=/guambmw.com/127.0.0.1#5335 +ipset=/guambmw.com/gfwlist +server=/flipwithsurface.com/127.0.0.1#5335 +ipset=/flipwithsurface.com/gfwlist +server=/dictate.ms/127.0.0.1#5335 +ipset=/dictate.ms/gfwlist +server=/wellfuckedwife.com/127.0.0.1#5335 +ipset=/wellfuckedwife.com/gfwlist +server=/subscene.com/127.0.0.1#5335 +ipset=/subscene.com/gfwlist +server=/hentaix.me/127.0.0.1#5335 +ipset=/hentaix.me/gfwlist +server=/kkbox.com/127.0.0.1#5335 +ipset=/kkbox.com/gfwlist +server=/ads.pubmatic.com/127.0.0.1#5335 +ipset=/ads.pubmatic.com/gfwlist +server=/exgirlfriendmarket.com/127.0.0.1#5335 +ipset=/exgirlfriendmarket.com/gfwlist +server=/lepornochaud.com/127.0.0.1#5335 +ipset=/lepornochaud.com/gfwlist +server=/bisyoujyogyaruge.topaz.ne.jp/127.0.0.1#5335 +ipset=/bisyoujyogyaruge.topaz.ne.jp/gfwlist +server=/adobesign.com/127.0.0.1#5335 +ipset=/adobesign.com/gfwlist +server=/minihalifax.ca/127.0.0.1#5335 +ipset=/minihalifax.ca/gfwlist +server=/dailybasis.com/127.0.0.1#5335 +ipset=/dailybasis.com/gfwlist +server=/harpercollins.co.uk/127.0.0.1#5335 +ipset=/harpercollins.co.uk/gfwlist +server=/bing.net/127.0.0.1#5335 +ipset=/bing.net/gfwlist +server=/theinstagramhack.com/127.0.0.1#5335 +ipset=/theinstagramhack.com/gfwlist +server=/azure-dns.org/127.0.0.1#5335 +ipset=/azure-dns.org/gfwlist +server=/azure-dns.info/127.0.0.1#5335 +ipset=/azure-dns.info/gfwlist +server=/mocloudplus.com/127.0.0.1#5335 +ipset=/mocloudplus.com/gfwlist +server=/ebayincconnectedcommerce.net/127.0.0.1#5335 +ipset=/ebayincconnectedcommerce.net/gfwlist +server=/disney.it/127.0.0.1#5335 +ipset=/disney.it/gfwlist +server=/steamofporn.com/127.0.0.1#5335 +ipset=/steamofporn.com/gfwlist +server=/tomatespodres.com/127.0.0.1#5335 +ipset=/tomatespodres.com/gfwlist +server=/gsuite.com/127.0.0.1#5335 +ipset=/gsuite.com/gfwlist +server=/windowsazure.com/127.0.0.1#5335 +ipset=/windowsazure.com/gfwlist +server=/workspaceone.com/127.0.0.1#5335 +ipset=/workspaceone.com/gfwlist +server=/picacomic.com/127.0.0.1#5335 +ipset=/picacomic.com/gfwlist +server=/trafficmanager.net/127.0.0.1#5335 +ipset=/trafficmanager.net/gfwlist +server=/bestpornsites.eu/127.0.0.1#5335 +ipset=/bestpornsites.eu/gfwlist +server=/awsloft-johannesburg.com/127.0.0.1#5335 +ipset=/awsloft-johannesburg.com/gfwlist +server=/foxsoccermatchpass.com/127.0.0.1#5335 +ipset=/foxsoccermatchpass.com/gfwlist +server=/starbucks.co.za/127.0.0.1#5335 +ipset=/starbucks.co.za/gfwlist +server=/jetbrains.com/127.0.0.1#5335 +ipset=/jetbrains.com/gfwlist +server=/hotcumporn.com/127.0.0.1#5335 +ipset=/hotcumporn.com/gfwlist +server=/huffingtonpost.it/127.0.0.1#5335 +ipset=/huffingtonpost.it/gfwlist +server=/direcpath.com/127.0.0.1#5335 +ipset=/direcpath.com/gfwlist +server=/gotcosmos.com/127.0.0.1#5335 +ipset=/gotcosmos.com/gfwlist +server=/devopsms.com/127.0.0.1#5335 +ipset=/devopsms.com/gfwlist +server=/beats-bydreuk.com/127.0.0.1#5335 +ipset=/beats-bydreuk.com/gfwlist +server=/pricelesssantiago.com/127.0.0.1#5335 +ipset=/pricelesssantiago.com/gfwlist +server=/printeron.com/127.0.0.1#5335 +ipset=/printeron.com/gfwlist +server=/visa.com.ph/127.0.0.1#5335 +ipset=/visa.com.ph/gfwlist +server=/embed-cdn.com/127.0.0.1#5335 +ipset=/embed-cdn.com/gfwlist +server=/minidowntown.com/127.0.0.1#5335 +ipset=/minidowntown.com/gfwlist +server=/azurewebsites.net/127.0.0.1#5335 +ipset=/azurewebsites.net/gfwlist +server=/ebaypark.com/127.0.0.1#5335 +ipset=/ebaypark.com/gfwlist +server=/azuresmartspaces.net/127.0.0.1#5335 +ipset=/azuresmartspaces.net/gfwlist +server=/md.hkgolden.com/127.0.0.1#5335 +ipset=/md.hkgolden.com/gfwlist +server=/ero-mangalife.com/127.0.0.1#5335 +ipset=/ero-mangalife.com/gfwlist +server=/newbrazz.com/127.0.0.1#5335 +ipset=/newbrazz.com/gfwlist +server=/javdb.com/127.0.0.1#5335 +ipset=/javdb.com/gfwlist +server=/azureserviceprofiler.com/127.0.0.1#5335 +ipset=/azureserviceprofiler.com/gfwlist +server=/msgamesresearch.com/127.0.0.1#5335 +ipset=/msgamesresearch.com/gfwlist +server=/youlucky.com/127.0.0.1#5335 +ipset=/youlucky.com/gfwlist +server=/enemahistory.com/127.0.0.1#5335 +ipset=/enemahistory.com/gfwlist +server=/lovemarca.com/127.0.0.1#5335 +ipset=/lovemarca.com/gfwlist +server=/cheapbeatsdrdresolo.com/127.0.0.1#5335 +ipset=/cheapbeatsdrdresolo.com/gfwlist +server=/anal-pantyhose.com/127.0.0.1#5335 +ipset=/anal-pantyhose.com/gfwlist +server=/maddenseason.info/127.0.0.1#5335 +ipset=/maddenseason.info/gfwlist +server=/steampipe-partner.akamaized.net/127.0.0.1#5335 +ipset=/steampipe-partner.akamaized.net/gfwlist +server=/poisontube.com/127.0.0.1#5335 +ipset=/poisontube.com/gfwlist +server=/hpstore.corpmerchandise.com/127.0.0.1#5335 +ipset=/hpstore.corpmerchandise.com/gfwlist +server=/eafootballworld.com/127.0.0.1#5335 +ipset=/eafootballworld.com/gfwlist +server=/yahoo.com.es/127.0.0.1#5335 +ipset=/yahoo.com.es/gfwlist +server=/cam69.com/127.0.0.1#5335 +ipset=/cam69.com/gfwlist +server=/azuredns-prd.info/127.0.0.1#5335 +ipset=/azuredns-prd.info/gfwlist +server=/largecamtube.com/127.0.0.1#5335 +ipset=/largecamtube.com/gfwlist +server=/siri.com/127.0.0.1#5335 +ipset=/siri.com/gfwlist +server=/prd-priconne-redive.akamaized.net/127.0.0.1#5335 +ipset=/prd-priconne-redive.akamaized.net/gfwlist +server=/azuredigitaltwins.com/127.0.0.1#5335 +ipset=/azuredigitaltwins.com/gfwlist +server=/openapiplatform.com/127.0.0.1#5335 +ipset=/openapiplatform.com/gfwlist +server=/azuredigitaltwin.com/127.0.0.1#5335 +ipset=/azuredigitaltwin.com/gfwlist +server=/get.how/127.0.0.1#5335 +ipset=/get.how/gfwlist +server=/azuredatabricks.net/127.0.0.1#5335 +ipset=/azuredatabricks.net/gfwlist +server=/facebkkk.com/127.0.0.1#5335 +ipset=/facebkkk.com/gfwlist +server=/yahoo.lv/127.0.0.1#5335 +ipset=/yahoo.lv/gfwlist +server=/playz.jp/127.0.0.1#5335 +ipset=/playz.jp/gfwlist +server=/veryshortintroductions.com/127.0.0.1#5335 +ipset=/veryshortintroductions.com/gfwlist +server=/typekit.com/127.0.0.1#5335 +ipset=/typekit.com/gfwlist +server=/paypal-exchanges.com/127.0.0.1#5335 +ipset=/paypal-exchanges.com/gfwlist +server=/mini-e.com/127.0.0.1#5335 +ipset=/mini-e.com/gfwlist +server=/azurecosmosdb.com/127.0.0.1#5335 +ipset=/azurecosmosdb.com/gfwlist +server=/mobilepornmovies.com/127.0.0.1#5335 +ipset=/mobilepornmovies.com/gfwlist +server=/azurecosmos.net/127.0.0.1#5335 +ipset=/azurecosmos.net/gfwlist +server=/azurecontainer.io/127.0.0.1#5335 +ipset=/azurecontainer.io/gfwlist +server=/stadia.dev/127.0.0.1#5335 +ipset=/stadia.dev/gfwlist +server=/redkix.com/127.0.0.1#5335 +ipset=/redkix.com/gfwlist +server=/attwatchtv.com/127.0.0.1#5335 +ipset=/attwatchtv.com/gfwlist +server=/pearson.com.au/127.0.0.1#5335 +ipset=/pearson.com.au/gfwlist +server=/brokenteens.com/127.0.0.1#5335 +ipset=/brokenteens.com/gfwlist +server=/bestbuy.com.mx/127.0.0.1#5335 +ipset=/bestbuy.com.mx/gfwlist +server=/ebayclassifies.com/127.0.0.1#5335 +ipset=/ebayclassifies.com/gfwlist +server=/sexycandidgirls.com/127.0.0.1#5335 +ipset=/sexycandidgirls.com/gfwlist +server=/fullbookmm.blogspot.com/127.0.0.1#5335 +ipset=/fullbookmm.blogspot.com/gfwlist +server=/aflamsex.net/127.0.0.1#5335 +ipset=/aflamsex.net/gfwlist +server=/gucci.com/127.0.0.1#5335 +ipset=/gucci.com/gfwlist +server=/thetype.com/127.0.0.1#5335 +ipset=/thetype.com/gfwlist +server=/verilystudyhub.com/127.0.0.1#5335 +ipset=/verilystudyhub.com/gfwlist +server=/2014cheapbeatsbydre.com/127.0.0.1#5335 +ipset=/2014cheapbeatsbydre.com/gfwlist +server=/azure.com/127.0.0.1#5335 +ipset=/azure.com/gfwlist +server=/minivilledequebec.ca/127.0.0.1#5335 +ipset=/minivilledequebec.ca/gfwlist +server=/azure-test.net/127.0.0.1#5335 +ipset=/azure-test.net/gfwlist +server=/pki.goog/127.0.0.1#5335 +ipset=/pki.goog/gfwlist +server=/braintreepayments.com/127.0.0.1#5335 +ipset=/braintreepayments.com/gfwlist +server=/azure-devices-int.net/127.0.0.1#5335 +ipset=/azure-devices-int.net/gfwlist +server=/translatetheweb.com/127.0.0.1#5335 +ipset=/translatetheweb.com/gfwlist +server=/londonhotescort.com/127.0.0.1#5335 +ipset=/londonhotescort.com/gfwlist +server=/oculusvr.com/127.0.0.1#5335 +ipset=/oculusvr.com/gfwlist +server=/inaporn.com/127.0.0.1#5335 +ipset=/inaporn.com/gfwlist +server=/paypal-knowledge.com/127.0.0.1#5335 +ipset=/paypal-knowledge.com/gfwlist +server=/oculusconnect.com/127.0.0.1#5335 +ipset=/oculusconnect.com/gfwlist +server=/managed-pki.de/127.0.0.1#5335 +ipset=/managed-pki.de/gfwlist +server=/wiiugamepad.com/127.0.0.1#5335 +ipset=/wiiugamepad.com/gfwlist +server=/oculusbrand.com/127.0.0.1#5335 +ipset=/oculusbrand.com/gfwlist +server=/googlecompare.co.uk/127.0.0.1#5335 +ipset=/googlecompare.co.uk/gfwlist +server=/nikebetrue.com/127.0.0.1#5335 +ipset=/nikebetrue.com/gfwlist +server=/bmw-pakistan.com/127.0.0.1#5335 +ipset=/bmw-pakistan.com/gfwlist +server=/superadultgames.com/127.0.0.1#5335 +ipset=/superadultgames.com/gfwlist +server=/youtube.googleapis.com/127.0.0.1#5335 +ipset=/youtube.googleapis.com/gfwlist +server=/x18r.com/127.0.0.1#5335 +ipset=/x18r.com/gfwlist +server=/wsjbarrons.com/127.0.0.1#5335 +ipset=/wsjbarrons.com/gfwlist +server=/volvotrucks.com.pt/127.0.0.1#5335 +ipset=/volvotrucks.com.pt/gfwlist +server=/streamate.com/127.0.0.1#5335 +ipset=/streamate.com/gfwlist +server=/thisispolaris.com/127.0.0.1#5335 +ipset=/thisispolaris.com/gfwlist +server=/cloudflarestorage.com/127.0.0.1#5335 +ipset=/cloudflarestorage.com/gfwlist +server=/ikea.co.ca/127.0.0.1#5335 +ipset=/ikea.co.ca/gfwlist +server=/binoculus.com/127.0.0.1#5335 +ipset=/binoculus.com/gfwlist +server=/intel.pa/127.0.0.1#5335 +ipset=/intel.pa/gfwlist +server=/mycdn.me/127.0.0.1#5335 +ipset=/mycdn.me/gfwlist +server=/1degree.com.au/127.0.0.1#5335 +ipset=/1degree.com.au/gfwlist +server=/webgata.net/127.0.0.1#5335 +ipset=/webgata.net/gfwlist +server=/mydirectvchannels.com/127.0.0.1#5335 +ipset=/mydirectvchannels.com/gfwlist +server=/rocksextube.com/127.0.0.1#5335 +ipset=/rocksextube.com/gfwlist +server=/volvobuses.kr/127.0.0.1#5335 +ipset=/volvobuses.kr/gfwlist +server=/tube8.fr/127.0.0.1#5335 +ipset=/tube8.fr/gfwlist +server=/filmeporno.xxx/127.0.0.1#5335 +ipset=/filmeporno.xxx/gfwlist +server=/iutunes.com/127.0.0.1#5335 +ipset=/iutunes.com/gfwlist +server=/cartoontube.com/127.0.0.1#5335 +ipset=/cartoontube.com/gfwlist +server=/logitech.fr/127.0.0.1#5335 +ipset=/logitech.fr/gfwlist +server=/theaustralian.com.au/127.0.0.1#5335 +ipset=/theaustralian.com.au/gfwlist +server=/ieee-ceda.org/127.0.0.1#5335 +ipset=/ieee-ceda.org/gfwlist +server=/voathai.com/127.0.0.1#5335 +ipset=/voathai.com/gfwlist +server=/lolstatic.com/127.0.0.1#5335 +ipset=/lolstatic.com/gfwlist +server=/xxxtubedot.com/127.0.0.1#5335 +ipset=/xxxtubedot.com/gfwlist +server=/logitech.com/127.0.0.1#5335 +ipset=/logitech.com/gfwlist +server=/comicbox.xyz/127.0.0.1#5335 +ipset=/comicbox.xyz/gfwlist +server=/supersexeamateur.com/127.0.0.1#5335 +ipset=/supersexeamateur.com/gfwlist +server=/headphoneses.com/127.0.0.1#5335 +ipset=/headphoneses.com/gfwlist +server=/mini-connected.pl/127.0.0.1#5335 +ipset=/mini-connected.pl/gfwlist +server=/youtube.lv/127.0.0.1#5335 +ipset=/youtube.lv/gfwlist +server=/logi.com/127.0.0.1#5335 +ipset=/logi.com/gfwlist +server=/pinterest.dk/127.0.0.1#5335 +ipset=/pinterest.dk/gfwlist +server=/lgelectronics.122.2o7.net/127.0.0.1#5335 +ipset=/lgelectronics.122.2o7.net/gfwlist +server=/freesexgames.ws/127.0.0.1#5335 +ipset=/freesexgames.ws/gfwlist +server=/vipshoes2.com/127.0.0.1#5335 +ipset=/vipshoes2.com/gfwlist +server=/baazee.com/127.0.0.1#5335 +ipset=/baazee.com/gfwlist +server=/hotfucktube.com/127.0.0.1#5335 +ipset=/hotfucktube.com/gfwlist +server=/lgrecyclingprogram.com/127.0.0.1#5335 +ipset=/lgrecyclingprogram.com/gfwlist +server=/avple.tv/127.0.0.1#5335 +ipset=/avple.tv/gfwlist +server=/lghvac.com/127.0.0.1#5335 +ipset=/lghvac.com/gfwlist +server=/mandatewire.com/127.0.0.1#5335 +ipset=/mandatewire.com/gfwlist +server=/google.com.vc/127.0.0.1#5335 +ipset=/google.com.vc/gfwlist +server=/nintendo.fr/127.0.0.1#5335 +ipset=/nintendo.fr/gfwlist +server=/vcloudair.net/127.0.0.1#5335 +ipset=/vcloudair.net/gfwlist +server=/bmw.nc/127.0.0.1#5335 +ipset=/bmw.nc/gfwlist +server=/jfengtime.com/127.0.0.1#5335 +ipset=/jfengtime.com/gfwlist +server=/erotictube.me/127.0.0.1#5335 +ipset=/erotictube.me/gfwlist +server=/vfsco.com.au/127.0.0.1#5335 +ipset=/vfsco.com.au/gfwlist +server=/lg.com/127.0.0.1#5335 +ipset=/lg.com/gfwlist +server=/trustisfps.com/127.0.0.1#5335 +ipset=/trustisfps.com/gfwlist +server=/public-trust.com/127.0.0.1#5335 +ipset=/public-trust.com/gfwlist +server=/yaoimangaonline.com/127.0.0.1#5335 +ipset=/yaoimangaonline.com/gfwlist +server=/trustedanalytics.com/127.0.0.1#5335 +ipset=/trustedanalytics.com/gfwlist +server=/nvidia.com.au/127.0.0.1#5335 +ipset=/nvidia.com.au/gfwlist +server=/kink.com/127.0.0.1#5335 +ipset=/kink.com/gfwlist +server=/openvinotoolkit.org/127.0.0.1#5335 +ipset=/openvinotoolkit.org/gfwlist +server=/gothdporn.com/127.0.0.1#5335 +ipset=/gothdporn.com/gfwlist +server=/shopee.com.br/127.0.0.1#5335 +ipset=/shopee.com.br/gfwlist +server=/beatsdreus.com/127.0.0.1#5335 +ipset=/beatsdreus.com/gfwlist +server=/nextfilm.com.hk/127.0.0.1#5335 +ipset=/nextfilm.com.hk/gfwlist +server=/2adultflashgames.com/127.0.0.1#5335 +ipset=/2adultflashgames.com/gfwlist +server=/foxcollegesports.com/127.0.0.1#5335 +ipset=/foxcollegesports.com/gfwlist +server=/siport.com/127.0.0.1#5335 +ipset=/siport.com/gfwlist +server=/htvncdn.net/127.0.0.1#5335 +ipset=/htvncdn.net/gfwlist +server=/sensorynetworks.com/127.0.0.1#5335 +ipset=/sensorynetworks.com/gfwlist +server=/patreoncommunity.com/127.0.0.1#5335 +ipset=/patreoncommunity.com/gfwlist +server=/bloombergpolarlake.com/127.0.0.1#5335 +ipset=/bloombergpolarlake.com/gfwlist +server=/azattyq.org/127.0.0.1#5335 +ipset=/azattyq.org/gfwlist +server=/iphoto.se/127.0.0.1#5335 +ipset=/iphoto.se/gfwlist +server=/photonicssociety.org/127.0.0.1#5335 +ipset=/photonicssociety.org/gfwlist +server=/researchintel.com/127.0.0.1#5335 +ipset=/researchintel.com/gfwlist +server=/pintool.com/127.0.0.1#5335 +ipset=/pintool.com/gfwlist +server=/apnews.com/127.0.0.1#5335 +ipset=/apnews.com/gfwlist +server=/pentium.net/127.0.0.1#5335 +ipset=/pentium.net/gfwlist +server=/pc.com/127.0.0.1#5335 +ipset=/pc.com/gfwlist +server=/optanedifference.com/127.0.0.1#5335 +ipset=/optanedifference.com/gfwlist +server=/opendroneid.org/127.0.0.1#5335 +ipset=/opendroneid.org/gfwlist +server=/google.pl/127.0.0.1#5335 +ipset=/google.pl/gfwlist +server=/249dw7.cn/127.0.0.1#5335 +ipset=/249dw7.cn/gfwlist +server=/ibook.co.nz/127.0.0.1#5335 +ipset=/ibook.co.nz/gfwlist +server=/mastercard.com.br/127.0.0.1#5335 +ipset=/mastercard.com.br/gfwlist +server=/booksc.org/127.0.0.1#5335 +ipset=/booksc.org/gfwlist +server=/niken7.com/127.0.0.1#5335 +ipset=/niken7.com/gfwlist +server=/pornoaid.com/127.0.0.1#5335 +ipset=/pornoaid.com/gfwlist +server=/nextgenerationcenter.com/127.0.0.1#5335 +ipset=/nextgenerationcenter.com/gfwlist +server=/ciscocontest.com/127.0.0.1#5335 +ipset=/ciscocontest.com/gfwlist +server=/loverslab.com/127.0.0.1#5335 +ipset=/loverslab.com/gfwlist +server=/hipzoom.net/127.0.0.1#5335 +ipset=/hipzoom.net/gfwlist +server=/nevex.com/127.0.0.1#5335 +ipset=/nevex.com/gfwlist +server=/nist.gov/127.0.0.1#5335 +ipset=/nist.gov/gfwlist +server=/geelongadvertiser.com.au/127.0.0.1#5335 +ipset=/geelongadvertiser.com.au/gfwlist +server=/instantfap.com/127.0.0.1#5335 +ipset=/instantfap.com/gfwlist +server=/movidius.com/127.0.0.1#5335 +ipset=/movidius.com/gfwlist +server=/hpstorethailand.com/127.0.0.1#5335 +ipset=/hpstorethailand.com/gfwlist +server=/headphones-dre.com/127.0.0.1#5335 +ipset=/headphones-dre.com/gfwlist +server=/zeit-world.net/127.0.0.1#5335 +ipset=/zeit-world.net/gfwlist +server=/lookinside.com/127.0.0.1#5335 +ipset=/lookinside.com/gfwlist +server=/inteltechnologyprovider.com/127.0.0.1#5335 +ipset=/inteltechnologyprovider.com/gfwlist +server=/intelstore.com/127.0.0.1#5335 +ipset=/intelstore.com/gfwlist +server=/yaoyaomumu.com/127.0.0.1#5335 +ipset=/yaoyaomumu.com/gfwlist +server=/postimg.cc/127.0.0.1#5335 +ipset=/postimg.cc/gfwlist +server=/eu-consumer-empowerment.com/127.0.0.1#5335 +ipset=/eu-consumer-empowerment.com/gfwlist +server=/monsterbeatssydneyaustralia.com/127.0.0.1#5335 +ipset=/monsterbeatssydneyaustralia.com/gfwlist +server=/intelsoftwarenetwork.com/127.0.0.1#5335 +ipset=/intelsoftwarenetwork.com/gfwlist +server=/myavfun.com/127.0.0.1#5335 +ipset=/myavfun.com/gfwlist +server=/brew.sh/127.0.0.1#5335 +ipset=/brew.sh/gfwlist +server=/blogspot.sn/127.0.0.1#5335 +ipset=/blogspot.sn/gfwlist +server=/porn555.com/127.0.0.1#5335 +ipset=/porn555.com/gfwlist +server=/foxacrossamerica.com/127.0.0.1#5335 +ipset=/foxacrossamerica.com/gfwlist +server=/intelsalestraining.com/127.0.0.1#5335 +ipset=/intelsalestraining.com/gfwlist +server=/costco.com/127.0.0.1#5335 +ipset=/costco.com/gfwlist +server=/tittykings.com/127.0.0.1#5335 +ipset=/tittykings.com/gfwlist +server=/poringa.net/127.0.0.1#5335 +ipset=/poringa.net/gfwlist +server=/pypa.io/127.0.0.1#5335 +ipset=/pypa.io/gfwlist +server=/intelrealsense.com/127.0.0.1#5335 +ipset=/intelrealsense.com/gfwlist +server=/intelquark.com/127.0.0.1#5335 +ipset=/intelquark.com/gfwlist +server=/bmwmotorradhk.com/127.0.0.1#5335 +ipset=/bmwmotorradhk.com/gfwlist +server=/xxxjapanesemovies.com/127.0.0.1#5335 +ipset=/xxxjapanesemovies.com/gfwlist +server=/newsmart.jp/127.0.0.1#5335 +ipset=/newsmart.jp/gfwlist +server=/nhentai.io/127.0.0.1#5335 +ipset=/nhentai.io/gfwlist +server=/thomsonreutersmexico.com/127.0.0.1#5335 +ipset=/thomsonreutersmexico.com/gfwlist +server=/intelnervana.com/127.0.0.1#5335 +ipset=/intelnervana.com/gfwlist +server=/wankgames.com/127.0.0.1#5335 +ipset=/wankgames.com/gfwlist +server=/naughtyblog.org/127.0.0.1#5335 +ipset=/naughtyblog.org/gfwlist +server=/cuntempire.com/127.0.0.1#5335 +ipset=/cuntempire.com/gfwlist +server=/fbsupport-covid.net/127.0.0.1#5335 +ipset=/fbsupport-covid.net/gfwlist +server=/realzoomovies.com/127.0.0.1#5335 +ipset=/realzoomovies.com/gfwlist +server=/avnana5.com/127.0.0.1#5335 +ipset=/avnana5.com/gfwlist +server=/hcpdts.com/127.0.0.1#5335 +ipset=/hcpdts.com/gfwlist +server=/logicool.co.jp/127.0.0.1#5335 +ipset=/logicool.co.jp/gfwlist +server=/sexy3dtoon.com/127.0.0.1#5335 +ipset=/sexy3dtoon.com/gfwlist +server=/intelgo.net/127.0.0.1#5335 +ipset=/intelgo.net/gfwlist +server=/iphone4.com/127.0.0.1#5335 +ipset=/iphone4.com/gfwlist +server=/bandgirlz.com/127.0.0.1#5335 +ipset=/bandgirlz.com/gfwlist +server=/intelforchange.com/127.0.0.1#5335 +ipset=/intelforchange.com/gfwlist +server=/inteleventexpress.com/127.0.0.1#5335 +ipset=/inteleventexpress.com/gfwlist +server=/vpngate.jp/127.0.0.1#5335 +ipset=/vpngate.jp/gfwlist +server=/benliton.com/127.0.0.1#5335 +ipset=/benliton.com/gfwlist +server=/intelcapital.com/127.0.0.1#5335 +ipset=/intelcapital.com/gfwlist +server=/thepornlist.com/127.0.0.1#5335 +ipset=/thepornlist.com/gfwlist +server=/nikelink.com/127.0.0.1#5335 +ipset=/nikelink.com/gfwlist +server=/intelapacstore.com/127.0.0.1#5335 +ipset=/intelapacstore.com/gfwlist +server=/bmw-connecteddrive.ie/127.0.0.1#5335 +ipset=/bmw-connecteddrive.ie/gfwlist +server=/radiomarsho.com/127.0.0.1#5335 +ipset=/radiomarsho.com/gfwlist +server=/intelamericasstore.com/127.0.0.1#5335 +ipset=/intelamericasstore.com/gfwlist +server=/bmwlat.com/127.0.0.1#5335 +ipset=/bmwlat.com/gfwlist +server=/adobepress.ch/127.0.0.1#5335 +ipset=/adobepress.ch/gfwlist +server=/amazon.com.br/127.0.0.1#5335 +ipset=/amazon.com.br/gfwlist +server=/bttzyw.net/127.0.0.1#5335 +ipset=/bttzyw.net/gfwlist +server=/intel-university-collaboration.net/127.0.0.1#5335 +ipset=/intel-university-collaboration.net/gfwlist +server=/payypal.com/127.0.0.1#5335 +ipset=/payypal.com/gfwlist +server=/pornorips.com/127.0.0.1#5335 +ipset=/pornorips.com/gfwlist +server=/dandanzan.cc/127.0.0.1#5335 +ipset=/dandanzan.cc/gfwlist +server=/mini.dk/127.0.0.1#5335 +ipset=/mini.dk/gfwlist +server=/intel.tj/127.0.0.1#5335 +ipset=/intel.tj/gfwlist +server=/comicuniverse.org/127.0.0.1#5335 +ipset=/comicuniverse.org/gfwlist +server=/protonstatus.com/127.0.0.1#5335 +ipset=/protonstatus.com/gfwlist +server=/blogspot.hk/127.0.0.1#5335 +ipset=/blogspot.hk/gfwlist +server=/alterauserforums.net/127.0.0.1#5335 +ipset=/alterauserforums.net/gfwlist +server=/easic.com/127.0.0.1#5335 +ipset=/easic.com/gfwlist +server=/akamai-trials.com/127.0.0.1#5335 +ipset=/akamai-trials.com/gfwlist +server=/foxsoccerplus.net/127.0.0.1#5335 +ipset=/foxsoccerplus.net/gfwlist +server=/machigle-sp.com/127.0.0.1#5335 +ipset=/machigle-sp.com/gfwlist +server=/coreextreme.com/127.0.0.1#5335 +ipset=/coreextreme.com/gfwlist +server=/bmw.kz/127.0.0.1#5335 +ipset=/bmw.kz/gfwlist +server=/amateurcool.com/127.0.0.1#5335 +ipset=/amateurcool.com/gfwlist +server=/faacebook.com/127.0.0.1#5335 +ipset=/faacebook.com/gfwlist +server=/rentaride.com/127.0.0.1#5335 +ipset=/rentaride.com/gfwlist +server=/clusterconnection.com/127.0.0.1#5335 +ipset=/clusterconnection.com/gfwlist +server=/imhentai.xxx/127.0.0.1#5335 +ipset=/imhentai.xxx/gfwlist +server=/mrloli.com/127.0.0.1#5335 +ipset=/mrloli.com/gfwlist +server=/facebookexchange.net/127.0.0.1#5335 +ipset=/facebookexchange.net/gfwlist +server=/mini-connected.ee/127.0.0.1#5335 +ipset=/mini-connected.ee/gfwlist +server=/chips.com/127.0.0.1#5335 +ipset=/chips.com/gfwlist +server=/newyorker.com/127.0.0.1#5335 +ipset=/newyorker.com/gfwlist +server=/akami.com/127.0.0.1#5335 +ipset=/akami.com/gfwlist +server=/marvelsdoubleagent.com/127.0.0.1#5335 +ipset=/marvelsdoubleagent.com/gfwlist +server=/iwantavnow.com/127.0.0.1#5335 +ipset=/iwantavnow.com/gfwlist +server=/alphera.com.my/127.0.0.1#5335 +ipset=/alphera.com.my/gfwlist +server=/bigboss.video/127.0.0.1#5335 +ipset=/bigboss.video/gfwlist +server=/bmw-motorrad.bo/127.0.0.1#5335 +ipset=/bmw-motorrad.bo/gfwlist +server=/ipod.com/127.0.0.1#5335 +ipset=/ipod.com/gfwlist +server=/starbucksrtd.com/127.0.0.1#5335 +ipset=/starbucksrtd.com/gfwlist +server=/celeron.com/127.0.0.1#5335 +ipset=/celeron.com/gfwlist +server=/buyaltera.com/127.0.0.1#5335 +ipset=/buyaltera.com/gfwlist +server=/vfsco.hu/127.0.0.1#5335 +ipset=/vfsco.hu/gfwlist +server=/mini.com.tr/127.0.0.1#5335 +ipset=/mini.com.tr/gfwlist +server=/monsterbeatsalestore.com/127.0.0.1#5335 +ipset=/monsterbeatsalestore.com/gfwlist +server=/alterauserforum.net/127.0.0.1#5335 +ipset=/alterauserforum.net/gfwlist +server=/kingextre.me/127.0.0.1#5335 +ipset=/kingextre.me/gfwlist +server=/alteraforums.net/127.0.0.1#5335 +ipset=/alteraforums.net/gfwlist +server=/volvotrucks.mk/127.0.0.1#5335 +ipset=/volvotrucks.mk/gfwlist +server=/bestbuybusiness.com/127.0.0.1#5335 +ipset=/bestbuybusiness.com/gfwlist +server=/foxfaq.com/127.0.0.1#5335 +ipset=/foxfaq.com/gfwlist +server=/evilangel.com/127.0.0.1#5335 +ipset=/evilangel.com/gfwlist +server=/worldemojiawards.com/127.0.0.1#5335 +ipset=/worldemojiawards.com/gfwlist +server=/mini.com.ar/127.0.0.1#5335 +ipset=/mini.com.ar/gfwlist +server=/crysis.jp/127.0.0.1#5335 +ipset=/crysis.jp/gfwlist +server=/readthedocs-hosted.com/127.0.0.1#5335 +ipset=/readthedocs-hosted.com/gfwlist +server=/beats-bydreoutletsale.net/127.0.0.1#5335 +ipset=/beats-bydreoutletsale.net/gfwlist +server=/cbscorporation.com/127.0.0.1#5335 +ipset=/cbscorporation.com/gfwlist +server=/garenanow.com/127.0.0.1#5335 +ipset=/garenanow.com/gfwlist +server=/overcast.fm/127.0.0.1#5335 +ipset=/overcast.fm/gfwlist +server=/airwatchexpress.com/127.0.0.1#5335 +ipset=/airwatchexpress.com/gfwlist +server=/findmybeats.com/127.0.0.1#5335 +ipset=/findmybeats.com/gfwlist +server=/durex.com.co/127.0.0.1#5335 +ipset=/durex.com.co/gfwlist +server=/yourvoyeurvideos.com/127.0.0.1#5335 +ipset=/yourvoyeurvideos.com/gfwlist +server=/topsexygames.com/127.0.0.1#5335 +ipset=/topsexygames.com/gfwlist +server=/assylum.com/127.0.0.1#5335 +ipset=/assylum.com/gfwlist +server=/paypalcommunity.org/127.0.0.1#5335 +ipset=/paypalcommunity.org/gfwlist +server=/nikebetterworld.net/127.0.0.1#5335 +ipset=/nikebetterworld.net/gfwlist +server=/southfloridamini.com/127.0.0.1#5335 +ipset=/southfloridamini.com/gfwlist +server=/hkgolden.com/127.0.0.1#5335 +ipset=/hkgolden.com/gfwlist +server=/pogo.com/127.0.0.1#5335 +ipset=/pogo.com/gfwlist +server=/intel.vn/127.0.0.1#5335 +ipset=/intel.vn/gfwlist +server=/visualarts.gr.jp/127.0.0.1#5335 +ipset=/visualarts.gr.jp/gfwlist +server=/intel.vg/127.0.0.1#5335 +ipset=/intel.vg/gfwlist +server=/masterpassteststore.com/127.0.0.1#5335 +ipset=/masterpassteststore.com/gfwlist +server=/maximumerotica.com/127.0.0.1#5335 +ipset=/maximumerotica.com/gfwlist +server=/intel.lc/127.0.0.1#5335 +ipset=/intel.lc/gfwlist +server=/nextmgz.com/127.0.0.1#5335 +ipset=/nextmgz.com/gfwlist +server=/intel.uy/127.0.0.1#5335 +ipset=/intel.uy/gfwlist +server=/javscreens.com/127.0.0.1#5335 +ipset=/javscreens.com/gfwlist +server=/digicert-cn.com/127.0.0.1#5335 +ipset=/digicert-cn.com/gfwlist +server=/yahoo.com.hk/127.0.0.1#5335 +ipset=/yahoo.com.hk/gfwlist +server=/voandebele.com/127.0.0.1#5335 +ipset=/voandebele.com/gfwlist +server=/cyber-bay.info/127.0.0.1#5335 +ipset=/cyber-bay.info/gfwlist +server=/intel.tt/127.0.0.1#5335 +ipset=/intel.tt/gfwlist +server=/ebayseller.com/127.0.0.1#5335 +ipset=/ebayseller.com/gfwlist +server=/hentaivideos.net/127.0.0.1#5335 +ipset=/hentaivideos.net/gfwlist +server=/foxnewsgo.net/127.0.0.1#5335 +ipset=/foxnewsgo.net/gfwlist +server=/voyeurpapa.com/127.0.0.1#5335 +ipset=/voyeurpapa.com/gfwlist +server=/disqusservice.com/127.0.0.1#5335 +ipset=/disqusservice.com/gfwlist +server=/scholar.google.com.gt/127.0.0.1#5335 +ipset=/scholar.google.com.gt/gfwlist +server=/intel.tn/127.0.0.1#5335 +ipset=/intel.tn/gfwlist +server=/intel.tm/127.0.0.1#5335 +ipset=/intel.tm/gfwlist +server=/nikeseason.com/127.0.0.1#5335 +ipset=/nikeseason.com/gfwlist +server=/akamaized-staging.net/127.0.0.1#5335 +ipset=/akamaized-staging.net/gfwlist +server=/intel.tl/127.0.0.1#5335 +ipset=/intel.tl/gfwlist +server=/intel.tf/127.0.0.1#5335 +ipset=/intel.tf/gfwlist +server=/foxbet.com/127.0.0.1#5335 +ipset=/foxbet.com/gfwlist +server=/facebookads.com/127.0.0.1#5335 +ipset=/facebookads.com/gfwlist +server=/libgen.life/127.0.0.1#5335 +ipset=/libgen.life/gfwlist +server=/element.io/127.0.0.1#5335 +ipset=/element.io/gfwlist +server=/hentairank.supertop-100.com/127.0.0.1#5335 +ipset=/hentairank.supertop-100.com/gfwlist +server=/amazon.ca/127.0.0.1#5335 +ipset=/amazon.ca/gfwlist +server=/bestfreetube.net/127.0.0.1#5335 +ipset=/bestfreetube.net/gfwlist +server=/intel.st/127.0.0.1#5335 +ipset=/intel.st/gfwlist +server=/gold-gay.com/127.0.0.1#5335 +ipset=/gold-gay.com/gfwlist +server=/theindianleaks.com/127.0.0.1#5335 +ipset=/theindianleaks.com/gfwlist +server=/account-paypal.net/127.0.0.1#5335 +ipset=/account-paypal.net/gfwlist +server=/intel.sk/127.0.0.1#5335 +ipset=/intel.sk/gfwlist +server=/mywifecuckold.com/127.0.0.1#5335 +ipset=/mywifecuckold.com/gfwlist +server=/softbankbb.net/127.0.0.1#5335 +ipset=/softbankbb.net/gfwlist +server=/tex-talk.net/127.0.0.1#5335 +ipset=/tex-talk.net/gfwlist +server=/applecare.eu/127.0.0.1#5335 +ipset=/applecare.eu/gfwlist +server=/icloudpay.net/127.0.0.1#5335 +ipset=/icloudpay.net/gfwlist +server=/otbm.com/127.0.0.1#5335 +ipset=/otbm.com/gfwlist +server=/facevbook.com/127.0.0.1#5335 +ipset=/facevbook.com/gfwlist +server=/huffingtonpost.es/127.0.0.1#5335 +ipset=/huffingtonpost.es/gfwlist +server=/edgefonts.net/127.0.0.1#5335 +ipset=/edgefonts.net/gfwlist +server=/sony.eu/127.0.0.1#5335 +ipset=/sony.eu/gfwlist +server=/20thcenturystudios.jp/127.0.0.1#5335 +ipset=/20thcenturystudios.jp/gfwlist +server=/petardas.com/127.0.0.1#5335 +ipset=/petardas.com/gfwlist +server=/intel.pn/127.0.0.1#5335 +ipset=/intel.pn/gfwlist +server=/ahtops.com/127.0.0.1#5335 +ipset=/ahtops.com/gfwlist +server=/exhentai.org/127.0.0.1#5335 +ipset=/exhentai.org/gfwlist +server=/touchsmartpc.net/127.0.0.1#5335 +ipset=/touchsmartpc.net/gfwlist +server=/hqbutt.com/127.0.0.1#5335 +ipset=/hqbutt.com/gfwlist +server=/iloveinterracial.com/127.0.0.1#5335 +ipset=/iloveinterracial.com/gfwlist +server=/ftcdn.net/127.0.0.1#5335 +ipset=/ftcdn.net/gfwlist +server=/facebook.tv/127.0.0.1#5335 +ipset=/facebook.tv/gfwlist +server=/volvopenta.es/127.0.0.1#5335 +ipset=/volvopenta.es/gfwlist +server=/drdrebeatssale7.com/127.0.0.1#5335 +ipset=/drdrebeatssale7.com/gfwlist +server=/faceabook.com/127.0.0.1#5335 +ipset=/faceabook.com/gfwlist +server=/leagueoflegends.org/127.0.0.1#5335 +ipset=/leagueoflegends.org/gfwlist +server=/foxbusiness.com/127.0.0.1#5335 +ipset=/foxbusiness.com/gfwlist +server=/watchmygirlfriend.tv/127.0.0.1#5335 +ipset=/watchmygirlfriend.tv/gfwlist +server=/yespornplease.com/127.0.0.1#5335 +ipset=/yespornplease.com/gfwlist +server=/blpcareers.com/127.0.0.1#5335 +ipset=/blpcareers.com/gfwlist +server=/headphonepubs.com/127.0.0.1#5335 +ipset=/headphonepubs.com/gfwlist +server=/womenwill.id/127.0.0.1#5335 +ipset=/womenwill.id/gfwlist +server=/pearsonclinical.de/127.0.0.1#5335 +ipset=/pearsonclinical.de/gfwlist +server=/brazzers.xxx/127.0.0.1#5335 +ipset=/brazzers.xxx/gfwlist +server=/paxlicense.org/127.0.0.1#5335 +ipset=/paxlicense.org/gfwlist +server=/intel.mu/127.0.0.1#5335 +ipset=/intel.mu/gfwlist +server=/experiencebillmelater.com/127.0.0.1#5335 +ipset=/experiencebillmelater.com/gfwlist +server=/intel.mt/127.0.0.1#5335 +ipset=/intel.mt/gfwlist +server=/wixsite.com/127.0.0.1#5335 +ipset=/wixsite.com/gfwlist +server=/bmw.kg/127.0.0.1#5335 +ipset=/bmw.kg/gfwlist +server=/truefi.io/127.0.0.1#5335 +ipset=/truefi.io/gfwlist +server=/applestore.com.eg/127.0.0.1#5335 +ipset=/applestore.com.eg/gfwlist +server=/nexitally.com/127.0.0.1#5335 +ipset=/nexitally.com/gfwlist +server=/bmwlifestyle.ca/127.0.0.1#5335 +ipset=/bmwlifestyle.ca/gfwlist +server=/erabaru.net/127.0.0.1#5335 +ipset=/erabaru.net/gfwlist +server=/discord.co/127.0.0.1#5335 +ipset=/discord.co/gfwlist +server=/nhentaihaven.com/127.0.0.1#5335 +ipset=/nhentaihaven.com/gfwlist +server=/buyfast-paysmart.net/127.0.0.1#5335 +ipset=/buyfast-paysmart.net/gfwlist +server=/intel.mg/127.0.0.1#5335 +ipset=/intel.mg/gfwlist +server=/instagramci.com/127.0.0.1#5335 +ipset=/instagramci.com/gfwlist +server=/facebooknude.com/127.0.0.1#5335 +ipset=/facebooknude.com/gfwlist +server=/gauleporno.xxx/127.0.0.1#5335 +ipset=/gauleporno.xxx/gfwlist +server=/orlandohurricane.com/127.0.0.1#5335 +ipset=/orlandohurricane.com/gfwlist +server=/intel.me/127.0.0.1#5335 +ipset=/intel.me/gfwlist +server=/volvobuses.pl/127.0.0.1#5335 +ipset=/volvobuses.pl/gfwlist +server=/porndoepremium.com/127.0.0.1#5335 +ipset=/porndoepremium.com/gfwlist +server=/knovel.com/127.0.0.1#5335 +ipset=/knovel.com/gfwlist +server=/intel.ke/127.0.0.1#5335 +ipset=/intel.ke/gfwlist +server=/intel.jp/127.0.0.1#5335 +ipset=/intel.jp/gfwlist +server=/stripe.com/127.0.0.1#5335 +ipset=/stripe.com/gfwlist +server=/ebaytechblog.com/127.0.0.1#5335 +ipset=/ebaytechblog.com/gfwlist +server=/intel.je/127.0.0.1#5335 +ipset=/intel.je/gfwlist +server=/intel.io/127.0.0.1#5335 +ipset=/intel.io/gfwlist +server=/nivod.tv/127.0.0.1#5335 +ipset=/nivod.tv/gfwlist +server=/avcar.vip/127.0.0.1#5335 +ipset=/avcar.vip/gfwlist +server=/bingvisualsearch.com/127.0.0.1#5335 +ipset=/bingvisualsearch.com/gfwlist +server=/fucktube.com/127.0.0.1#5335 +ipset=/fucktube.com/gfwlist +server=/huffingtonpost.jp/127.0.0.1#5335 +ipset=/huffingtonpost.jp/gfwlist +server=/intel.ht/127.0.0.1#5335 +ipset=/intel.ht/gfwlist +server=/intel.hn/127.0.0.1#5335 +ipset=/intel.hn/gfwlist +server=/monitrix.net/127.0.0.1#5335 +ipset=/monitrix.net/gfwlist +server=/intel.hk/127.0.0.1#5335 +ipset=/intel.hk/gfwlist +server=/microsoft.cl/127.0.0.1#5335 +ipset=/microsoft.cl/gfwlist +server=/intel.gy/127.0.0.1#5335 +ipset=/intel.gy/gfwlist +server=/466453.com/127.0.0.1#5335 +ipset=/466453.com/gfwlist +server=/theguardian.com/127.0.0.1#5335 +ipset=/theguardian.com/gfwlist +server=/intel.gt/127.0.0.1#5335 +ipset=/intel.gt/gfwlist +server=/alphabet.uk/127.0.0.1#5335 +ipset=/alphabet.uk/gfwlist +server=/xshaker.net/127.0.0.1#5335 +ipset=/xshaker.net/gfwlist +server=/viralcum.com/127.0.0.1#5335 +ipset=/viralcum.com/gfwlist +server=/ebay.ch/127.0.0.1#5335 +ipset=/ebay.ch/gfwlist +server=/youtube.com.ni/127.0.0.1#5335 +ipset=/youtube.com.ni/gfwlist +server=/intel.gm/127.0.0.1#5335 +ipset=/intel.gm/gfwlist +server=/walmartimages.com/127.0.0.1#5335 +ipset=/walmartimages.com/gfwlist +server=/intel.ge/127.0.0.1#5335 +ipset=/intel.ge/gfwlist +server=/intel.gd/127.0.0.1#5335 +ipset=/intel.gd/gfwlist +server=/fc2ppv.tv/127.0.0.1#5335 +ipset=/fc2ppv.tv/gfwlist +server=/startpath.com/127.0.0.1#5335 +ipset=/startpath.com/gfwlist +server=/smartcommunitiescoalition.org/127.0.0.1#5335 +ipset=/smartcommunitiescoalition.org/gfwlist +server=/applepaysupplies.info/127.0.0.1#5335 +ipset=/applepaysupplies.info/gfwlist +server=/avstar02.me/127.0.0.1#5335 +ipset=/avstar02.me/gfwlist +server=/jav-legend.com/127.0.0.1#5335 +ipset=/jav-legend.com/gfwlist +server=/enterprisessl.com/127.0.0.1#5335 +ipset=/enterprisessl.com/gfwlist +server=/intel.es/127.0.0.1#5335 +ipset=/intel.es/gfwlist +server=/vitukali.com/127.0.0.1#5335 +ipset=/vitukali.com/gfwlist +server=/cheapbeatsbydre-au.com/127.0.0.1#5335 +ipset=/cheapbeatsbydre-au.com/gfwlist +server=/fssta.com/127.0.0.1#5335 +ipset=/fssta.com/gfwlist +server=/facebooksecurity.net/127.0.0.1#5335 +ipset=/facebooksecurity.net/gfwlist +server=/anaconda.cloud/127.0.0.1#5335 +ipset=/anaconda.cloud/gfwlist +server=/madvagina.com/127.0.0.1#5335 +ipset=/madvagina.com/gfwlist +server=/gigabyte.com/127.0.0.1#5335 +ipset=/gigabyte.com/gfwlist +server=/serving-sys.com/127.0.0.1#5335 +ipset=/serving-sys.com/gfwlist +server=/babes.com/127.0.0.1#5335 +ipset=/babes.com/gfwlist +server=/intel.com.ve/127.0.0.1#5335 +ipset=/intel.com.ve/gfwlist +server=/dachix.com/127.0.0.1#5335 +ipset=/dachix.com/gfwlist +server=/intel.com.uy/127.0.0.1#5335 +ipset=/intel.com.uy/gfwlist +server=/intel.com.tw/127.0.0.1#5335 +ipset=/intel.com.tw/gfwlist +server=/intel.com.tr/127.0.0.1#5335 +ipset=/intel.com.tr/gfwlist +server=/icloudo.com/127.0.0.1#5335 +ipset=/icloudo.com/gfwlist +server=/pichunter.com/127.0.0.1#5335 +ipset=/pichunter.com/gfwlist +server=/amzn.asia/127.0.0.1#5335 +ipset=/amzn.asia/gfwlist +server=/nunuyy.cc/127.0.0.1#5335 +ipset=/nunuyy.cc/gfwlist +server=/jav.guru/127.0.0.1#5335 +ipset=/jav.guru/gfwlist +server=/tellmewhygame.com/127.0.0.1#5335 +ipset=/tellmewhygame.com/gfwlist +server=/kemono.party/127.0.0.1#5335 +ipset=/kemono.party/gfwlist +server=/bridge-studio.co.uk/127.0.0.1#5335 +ipset=/bridge-studio.co.uk/gfwlist +server=/intel.com.pr/127.0.0.1#5335 +ipset=/intel.com.pr/gfwlist +server=/visaglobalfinance.com/127.0.0.1#5335 +ipset=/visaglobalfinance.com/gfwlist +server=/sxyprn.com/127.0.0.1#5335 +ipset=/sxyprn.com/gfwlist +server=/malvastudios.com/127.0.0.1#5335 +ipset=/malvastudios.com/gfwlist +server=/needforspeedproven.com/127.0.0.1#5335 +ipset=/needforspeedproven.com/gfwlist +server=/fxporn.net/127.0.0.1#5335 +ipset=/fxporn.net/gfwlist +server=/intel.com.mx/127.0.0.1#5335 +ipset=/intel.com.mx/gfwlist +server=/intel.com.jm/127.0.0.1#5335 +ipset=/intel.com.jm/gfwlist +server=/bmw.ro/127.0.0.1#5335 +ipset=/bmw.ro/gfwlist +server=/intel.com.hk/127.0.0.1#5335 +ipset=/intel.com.hk/gfwlist +server=/intel.com.co/127.0.0.1#5335 +ipset=/intel.com.co/gfwlist +server=/google.tt/127.0.0.1#5335 +ipset=/google.tt/gfwlist +server=/nuita.net/127.0.0.1#5335 +ipset=/nuita.net/gfwlist +server=/intel.com.bo/127.0.0.1#5335 +ipset=/intel.com.bo/gfwlist +server=/vercel.pub/127.0.0.1#5335 +ipset=/vercel.pub/gfwlist +server=/intel.com.au/127.0.0.1#5335 +ipset=/intel.com.au/gfwlist +server=/google.mw/127.0.0.1#5335 +ipset=/google.mw/gfwlist +server=/mangahentai.me/127.0.0.1#5335 +ipset=/mangahentai.me/gfwlist +server=/bmwgroupna.com/127.0.0.1#5335 +ipset=/bmwgroupna.com/gfwlist +server=/monsterbeatsbydrdre-usa.com/127.0.0.1#5335 +ipset=/monsterbeatsbydrdre-usa.com/gfwlist +server=/pugpig.com/127.0.0.1#5335 +ipset=/pugpig.com/gfwlist +server=/intel.co.il/127.0.0.1#5335 +ipset=/intel.co.il/gfwlist +server=/toget.com.tw/127.0.0.1#5335 +ipset=/toget.com.tw/gfwlist +server=/fapphub.com/127.0.0.1#5335 +ipset=/fapphub.com/gfwlist +server=/skypedata.akadns.net/127.0.0.1#5335 +ipset=/skypedata.akadns.net/gfwlist +server=/qmov.net/127.0.0.1#5335 +ipset=/qmov.net/gfwlist +server=/intel.co.id/127.0.0.1#5335 +ipset=/intel.co.id/gfwlist +server=/pornxxxplace.com/127.0.0.1#5335 +ipset=/pornxxxplace.com/gfwlist +server=/creativecommons.org/127.0.0.1#5335 +ipset=/creativecommons.org/gfwlist +server=/volvotrucks.at/127.0.0.1#5335 +ipset=/volvotrucks.at/gfwlist +server=/adobesc.com/127.0.0.1#5335 +ipset=/adobesc.com/gfwlist +server=/intel.co.ae/127.0.0.1#5335 +ipset=/intel.co.ae/gfwlist +server=/redtube.com.br/127.0.0.1#5335 +ipset=/redtube.com.br/gfwlist +server=/ieee-uffc.org/127.0.0.1#5335 +ipset=/ieee-uffc.org/gfwlist +server=/intel.cm/127.0.0.1#5335 +ipset=/intel.cm/gfwlist +server=/iphone-vip4.com/127.0.0.1#5335 +ipset=/iphone-vip4.com/gfwlist +server=/intel.cg/127.0.0.1#5335 +ipset=/intel.cg/gfwlist +server=/intel.cc/127.0.0.1#5335 +ipset=/intel.cc/gfwlist +server=/huobi.me/127.0.0.1#5335 +ipset=/huobi.me/gfwlist +server=/stackexchange.com/127.0.0.1#5335 +ipset=/stackexchange.com/gfwlist +server=/seamonkey-project.org/127.0.0.1#5335 +ipset=/seamonkey-project.org/gfwlist +server=/bmw.com.sg/127.0.0.1#5335 +ipset=/bmw.com.sg/gfwlist +server=/appleafrica.com/127.0.0.1#5335 +ipset=/appleafrica.com/gfwlist +server=/brepolis.net/127.0.0.1#5335 +ipset=/brepolis.net/gfwlist +server=/paypalcommunity.com/127.0.0.1#5335 +ipset=/paypalcommunity.com/gfwlist +server=/vagabundasdoorkut.net/127.0.0.1#5335 +ipset=/vagabundasdoorkut.net/gfwlist +server=/gayporno.fm/127.0.0.1#5335 +ipset=/gayporno.fm/gfwlist +server=/whoreteensex.com/127.0.0.1#5335 +ipset=/whoreteensex.com/gfwlist +server=/intel.bg/127.0.0.1#5335 +ipset=/intel.bg/gfwlist +server=/akamci.com/127.0.0.1#5335 +ipset=/akamci.com/gfwlist +server=/peach-cherry.com/127.0.0.1#5335 +ipset=/peach-cherry.com/gfwlist +server=/intel.at/127.0.0.1#5335 +ipset=/intel.at/gfwlist +server=/analdin.com/127.0.0.1#5335 +ipset=/analdin.com/gfwlist +server=/intel.ai/127.0.0.1#5335 +ipset=/intel.ai/gfwlist +server=/brewmp.com/127.0.0.1#5335 +ipset=/brewmp.com/gfwlist +server=/cocktailsandcocktalk.com/127.0.0.1#5335 +ipset=/cocktailsandcocktalk.com/gfwlist +server=/1vwapi4d.xyz/127.0.0.1#5335 +ipset=/1vwapi4d.xyz/gfwlist +server=/mgo.com/127.0.0.1#5335 +ipset=/mgo.com/gfwlist +server=/dailymail.dk/127.0.0.1#5335 +ipset=/dailymail.dk/gfwlist +server=/stripcamfun.com/127.0.0.1#5335 +ipset=/stripcamfun.com/gfwlist +server=/echosign.com/127.0.0.1#5335 +ipset=/echosign.com/gfwlist +server=/haskellstack.org/127.0.0.1#5335 +ipset=/haskellstack.org/gfwlist +server=/intel.ac/127.0.0.1#5335 +ipset=/intel.ac/gfwlist +server=/s81c.com/127.0.0.1#5335 +ipset=/s81c.com/gfwlist +server=/haveibeenpwned.com/127.0.0.1#5335 +ipset=/haveibeenpwned.com/gfwlist +server=/bmw.com.ec/127.0.0.1#5335 +ipset=/bmw.com.ec/gfwlist +server=/wwwapple.net/127.0.0.1#5335 +ipset=/wwwapple.net/gfwlist +server=/ibm.net/127.0.0.1#5335 +ipset=/ibm.net/gfwlist +server=/hq69.com/127.0.0.1#5335 +ipset=/hq69.com/gfwlist +server=/minuporno.com/127.0.0.1#5335 +ipset=/minuporno.com/gfwlist +server=/bnext.com.tw/127.0.0.1#5335 +ipset=/bnext.com.tw/gfwlist +server=/driving.co.uk/127.0.0.1#5335 +ipset=/driving.co.uk/gfwlist +server=/ivintageporn.com/127.0.0.1#5335 +ipset=/ivintageporn.com/gfwlist +server=/sunbingo.co.uk/127.0.0.1#5335 +ipset=/sunbingo.co.uk/gfwlist +server=/voakorea.com/127.0.0.1#5335 +ipset=/voakorea.com/gfwlist +server=/hpbundle.com/127.0.0.1#5335 +ipset=/hpbundle.com/gfwlist +server=/miktex.org/127.0.0.1#5335 +ipset=/miktex.org/gfwlist +server=/www8-hp.com/127.0.0.1#5335 +ipset=/www8-hp.com/gfwlist +server=/mini-me.com/127.0.0.1#5335 +ipset=/mini-me.com/gfwlist +server=/hbogoasia.com/127.0.0.1#5335 +ipset=/hbogoasia.com/gfwlist +server=/touchsmartpc.org/127.0.0.1#5335 +ipset=/touchsmartpc.org/gfwlist +server=/bmw-clubs-international.com/127.0.0.1#5335 +ipset=/bmw-clubs-international.com/gfwlist +server=/oup.com/127.0.0.1#5335 +ipset=/oup.com/gfwlist +server=/nine.com.au/127.0.0.1#5335 +ipset=/nine.com.au/gfwlist +server=/premobay.com/127.0.0.1#5335 +ipset=/premobay.com/gfwlist +server=/pornmz.com/127.0.0.1#5335 +ipset=/pornmz.com/gfwlist +server=/adulters.org/127.0.0.1#5335 +ipset=/adulters.org/gfwlist +server=/pinterest.id/127.0.0.1#5335 +ipset=/pinterest.id/gfwlist +server=/serviceshp.com/127.0.0.1#5335 +ipset=/serviceshp.com/gfwlist +server=/printspots.net/127.0.0.1#5335 +ipset=/printspots.net/gfwlist +server=/printspots.com/127.0.0.1#5335 +ipset=/printspots.com/gfwlist +server=/jenporno.cz/127.0.0.1#5335 +ipset=/jenporno.cz/gfwlist +server=/bmw-ksa.com/127.0.0.1#5335 +ipset=/bmw-ksa.com/gfwlist +server=/printersetupsupport.com/127.0.0.1#5335 +ipset=/printersetupsupport.com/gfwlist +server=/wholefoodsmarket.co.uk/127.0.0.1#5335 +ipset=/wholefoodsmarket.co.uk/gfwlist +server=/intel.by/127.0.0.1#5335 +ipset=/intel.by/gfwlist +server=/starbucks.no/127.0.0.1#5335 +ipset=/starbucks.no/gfwlist +server=/heads-ak-spotify-com.akamaized.net/127.0.0.1#5335 +ipset=/heads-ak-spotify-com.akamaized.net/gfwlist +server=/porstoporno.site/127.0.0.1#5335 +ipset=/porstoporno.site/gfwlist +server=/instantink.com/127.0.0.1#5335 +ipset=/instantink.com/gfwlist +server=/i-123-hp.com/127.0.0.1#5335 +ipset=/i-123-hp.com/gfwlist +server=/vivaldi.com/127.0.0.1#5335 +ipset=/vivaldi.com/gfwlist +server=/hpwallart.com/127.0.0.1#5335 +ipset=/hpwallart.com/gfwlist +server=/wsj.net/127.0.0.1#5335 +ipset=/wsj.net/gfwlist +server=/fbmarketing.com/127.0.0.1#5335 +ipset=/fbmarketing.com/gfwlist +server=/google.com.ly/127.0.0.1#5335 +ipset=/google.com.ly/gfwlist +server=/hpveer.com/127.0.0.1#5335 +ipset=/hpveer.com/gfwlist +server=/freeav.tv/127.0.0.1#5335 +ipset=/freeav.tv/gfwlist +server=/hptrainingcenter.com/127.0.0.1#5335 +ipset=/hptrainingcenter.com/gfwlist +server=/chatwhores.tv/127.0.0.1#5335 +ipset=/chatwhores.tv/gfwlist +server=/hptouch.com/127.0.0.1#5335 +ipset=/hptouch.com/gfwlist +server=/scholar.google.co.kr/127.0.0.1#5335 +ipset=/scholar.google.co.kr/gfwlist +server=/deiightfuidates.net/127.0.0.1#5335 +ipset=/deiightfuidates.net/gfwlist +server=/didilist.com/127.0.0.1#5335 +ipset=/didilist.com/gfwlist +server=/acces-vod.com/127.0.0.1#5335 +ipset=/acces-vod.com/gfwlist +server=/amodoll.com/127.0.0.1#5335 +ipset=/amodoll.com/gfwlist +server=/azureplanetscale.net/127.0.0.1#5335 +ipset=/azureplanetscale.net/gfwlist +server=/scnsrc.me/127.0.0.1#5335 +ipset=/scnsrc.me/gfwlist +server=/privatemarketplaces.net/127.0.0.1#5335 +ipset=/privatemarketplaces.net/gfwlist +server=/mobilemarketo.com/127.0.0.1#5335 +ipset=/mobilemarketo.com/gfwlist +server=/addthiscdn.com/127.0.0.1#5335 +ipset=/addthiscdn.com/gfwlist +server=/xvidzz.com/127.0.0.1#5335 +ipset=/xvidzz.com/gfwlist +server=/elog-ch.net/127.0.0.1#5335 +ipset=/elog-ch.net/gfwlist +server=/hpstore-china.com/127.0.0.1#5335 +ipset=/hpstore-china.com/gfwlist +server=/aflamporn.com/127.0.0.1#5335 +ipset=/aflamporn.com/gfwlist +server=/thanksloyalty.com/127.0.0.1#5335 +ipset=/thanksloyalty.com/gfwlist +server=/beatsireland.net/127.0.0.1#5335 +ipset=/beatsireland.net/gfwlist +server=/my29tv.com/127.0.0.1#5335 +ipset=/my29tv.com/gfwlist +server=/mini-ksa.com/127.0.0.1#5335 +ipset=/mini-ksa.com/gfwlist +server=/badvirtue.com/127.0.0.1#5335 +ipset=/badvirtue.com/gfwlist +server=/nextmedia.com/127.0.0.1#5335 +ipset=/nextmedia.com/gfwlist +server=/hpsprocket.com/127.0.0.1#5335 +ipset=/hpsprocket.com/gfwlist +server=/sandisk.it/127.0.0.1#5335 +ipset=/sandisk.it/gfwlist +server=/bby.com/127.0.0.1#5335 +ipset=/bby.com/gfwlist +server=/lolstatic-a.akamaihd.net/127.0.0.1#5335 +ipset=/lolstatic-a.akamaihd.net/gfwlist +server=/inikesneakers.com/127.0.0.1#5335 +ipset=/inikesneakers.com/gfwlist +server=/ghostgames.com/127.0.0.1#5335 +ipset=/ghostgames.com/gfwlist +server=/omafotze.com/127.0.0.1#5335 +ipset=/omafotze.com/gfwlist +server=/youtube.sk/127.0.0.1#5335 +ipset=/youtube.sk/gfwlist +server=/91tv.tw/127.0.0.1#5335 +ipset=/91tv.tw/gfwlist +server=/hpsmartupdate.com/127.0.0.1#5335 +ipset=/hpsmartupdate.com/gfwlist +server=/youtube.pe/127.0.0.1#5335 +ipset=/youtube.pe/gfwlist +server=/foxhq.com/127.0.0.1#5335 +ipset=/foxhq.com/gfwlist +server=/fedoramagazine.org/127.0.0.1#5335 +ipset=/fedoramagazine.org/gfwlist +server=/volvogroup.de/127.0.0.1#5335 +ipset=/volvogroup.de/gfwlist +server=/bridgestone.com.ar/127.0.0.1#5335 +ipset=/bridgestone.com.ar/gfwlist +server=/niketradeweb.com/127.0.0.1#5335 +ipset=/niketradeweb.com/gfwlist +server=/nsfw247.to/127.0.0.1#5335 +ipset=/nsfw247.to/gfwlist +server=/fosebook.com/127.0.0.1#5335 +ipset=/fosebook.com/gfwlist +server=/hpsmarts.com/127.0.0.1#5335 +ipset=/hpsmarts.com/gfwlist +server=/symcb.com/127.0.0.1#5335 +ipset=/symcb.com/gfwlist +server=/adsense.com/127.0.0.1#5335 +ipset=/adsense.com/gfwlist +server=/hpsmart.com/127.0.0.1#5335 +ipset=/hpsmart.com/gfwlist +server=/want-media.com/127.0.0.1#5335 +ipset=/want-media.com/gfwlist +server=/hpshopping.hk/127.0.0.1#5335 +ipset=/hpshopping.hk/gfwlist +server=/nikeairmax.com/127.0.0.1#5335 +ipset=/nikeairmax.com/gfwlist +server=/ratedgross.com/127.0.0.1#5335 +ipset=/ratedgross.com/gfwlist +server=/hpshoping.com/127.0.0.1#5335 +ipset=/hpshoping.com/gfwlist +server=/toppornoduro.com/127.0.0.1#5335 +ipset=/toppornoduro.com/gfwlist +server=/inmediahk.net/127.0.0.1#5335 +ipset=/inmediahk.net/gfwlist +server=/pcmarket.com.hk/127.0.0.1#5335 +ipset=/pcmarket.com.hk/gfwlist +server=/cometotheduckside.com/127.0.0.1#5335 +ipset=/cometotheduckside.com/gfwlist +server=/hpshop.com/127.0.0.1#5335 +ipset=/hpshop.com/gfwlist +server=/hpdesignjetl25500.com/127.0.0.1#5335 +ipset=/hpdesignjetl25500.com/gfwlist +server=/asiancamgirllive.com/127.0.0.1#5335 +ipset=/asiancamgirllive.com/gfwlist +server=/fapmovz.com/127.0.0.1#5335 +ipset=/fapmovz.com/gfwlist +server=/crowdtangle.com/127.0.0.1#5335 +ipset=/crowdtangle.com/gfwlist +server=/currenttime.tv/127.0.0.1#5335 +ipset=/currenttime.tv/gfwlist +server=/hpserver.com/127.0.0.1#5335 +ipset=/hpserver.com/gfwlist +server=/hpsalescentral.com/127.0.0.1#5335 +ipset=/hpsalescentral.com/gfwlist +server=/volvobuses.co/127.0.0.1#5335 +ipset=/volvobuses.co/gfwlist +server=/pornocomic.net/127.0.0.1#5335 +ipset=/pornocomic.net/gfwlist +server=/ipfs.io/127.0.0.1#5335 +ipset=/ipfs.io/gfwlist +server=/directvadsales.com/127.0.0.1#5335 +ipset=/directvadsales.com/gfwlist +server=/volvotrucks.com/127.0.0.1#5335 +ipset=/volvotrucks.com/gfwlist +server=/hentaiz.vip/127.0.0.1#5335 +ipset=/hentaiz.vip/gfwlist +server=/hpprinterdrivers.com/127.0.0.1#5335 +ipset=/hpprinterdrivers.com/gfwlist +server=/hpphotoscanners.com/127.0.0.1#5335 +ipset=/hpphotoscanners.com/gfwlist +server=/hppage5000.com/127.0.0.1#5335 +ipset=/hppage5000.com/gfwlist +server=/slack-redir.net/127.0.0.1#5335 +ipset=/slack-redir.net/gfwlist +server=/youtube.com.by/127.0.0.1#5335 +ipset=/youtube.com.by/gfwlist +server=/thaicuties.com/127.0.0.1#5335 +ipset=/thaicuties.com/gfwlist +server=/hponlinehelp.com/127.0.0.1#5335 +ipset=/hponlinehelp.com/gfwlist +server=/dengeamerika.com/127.0.0.1#5335 +ipset=/dengeamerika.com/gfwlist +server=/mastercardmoments.com/127.0.0.1#5335 +ipset=/mastercardmoments.com/gfwlist +server=/fesebook.com/127.0.0.1#5335 +ipset=/fesebook.com/gfwlist +server=/hpmobile.com/127.0.0.1#5335 +ipset=/hpmobile.com/gfwlist +server=/twitcomike.jp/127.0.0.1#5335 +ipset=/twitcomike.jp/gfwlist +server=/mut.ch/127.0.0.1#5335 +ipset=/mut.ch/gfwlist +server=/hpmicrcartridge.com/127.0.0.1#5335 +ipset=/hpmicrcartridge.com/gfwlist +server=/hpmemorychips.com/127.0.0.1#5335 +ipset=/hpmemorychips.com/gfwlist +server=/apple.be/127.0.0.1#5335 +ipset=/apple.be/gfwlist +server=/youtube.com.uy/127.0.0.1#5335 +ipset=/youtube.com.uy/gfwlist +server=/verizonbusinessfios.com/127.0.0.1#5335 +ipset=/verizonbusinessfios.com/gfwlist +server=/iphone4s.com/127.0.0.1#5335 +ipset=/iphone4s.com/gfwlist +server=/eporner.com/127.0.0.1#5335 +ipset=/eporner.com/gfwlist +server=/alibabacloud.com/127.0.0.1#5335 +ipset=/alibabacloud.com/gfwlist +server=/dettolthailand.com/127.0.0.1#5335 +ipset=/dettolthailand.com/gfwlist +server=/mastercard.qa/127.0.0.1#5335 +ipset=/mastercard.qa/gfwlist +server=/mythicentertainment.com/127.0.0.1#5335 +ipset=/mythicentertainment.com/gfwlist +server=/hpkeyboard.com/127.0.0.1#5335 +ipset=/hpkeyboard.com/gfwlist +server=/hpinstantink.com/127.0.0.1#5335 +ipset=/hpinstantink.com/gfwlist +server=/facebooklive.com/127.0.0.1#5335 +ipset=/facebooklive.com/gfwlist +server=/hpinc.net/127.0.0.1#5335 +ipset=/hpinc.net/gfwlist +server=/foxsports.com.gt/127.0.0.1#5335 +ipset=/foxsports.com.gt/gfwlist +server=/hpinc.info/127.0.0.1#5335 +ipset=/hpinc.info/gfwlist +server=/crystalmiss.com/127.0.0.1#5335 +ipset=/crystalmiss.com/gfwlist +server=/ekhokavkaza.com/127.0.0.1#5335 +ipset=/ekhokavkaza.com/gfwlist +server=/paypaly.com/127.0.0.1#5335 +ipset=/paypaly.com/gfwlist +server=/images-amazon.com/127.0.0.1#5335 +ipset=/images-amazon.com/gfwlist +server=/hpgpas.com/127.0.0.1#5335 +ipset=/hpgpas.com/gfwlist +server=/pornovesem.tv/127.0.0.1#5335 +ipset=/pornovesem.tv/gfwlist +server=/visaplus.com/127.0.0.1#5335 +ipset=/visaplus.com/gfwlist +server=/cheap-beats-by-dre.net/127.0.0.1#5335 +ipset=/cheap-beats-by-dre.net/gfwlist +server=/tube188.com/127.0.0.1#5335 +ipset=/tube188.com/gfwlist +server=/pornmate.com/127.0.0.1#5335 +ipset=/pornmate.com/gfwlist +server=/facebookmobile.com/127.0.0.1#5335 +ipset=/facebookmobile.com/gfwlist +server=/cashpassport.net/127.0.0.1#5335 +ipset=/cashpassport.net/gfwlist +server=/cheapdrebeats8.net/127.0.0.1#5335 +ipset=/cheapdrebeats8.net/gfwlist +server=/cnnmoney.com/127.0.0.1#5335 +ipset=/cnnmoney.com/gfwlist +server=/ntdtv.kr/127.0.0.1#5335 +ipset=/ntdtv.kr/gfwlist +server=/hpfaqs.com/127.0.0.1#5335 +ipset=/hpfaqs.com/gfwlist +server=/itunes.com/127.0.0.1#5335 +ipset=/itunes.com/gfwlist +server=/stripe.network/127.0.0.1#5335 +ipset=/stripe.network/gfwlist +server=/hpeprint.com/127.0.0.1#5335 +ipset=/hpeprint.com/gfwlist +server=/hpengage.com/127.0.0.1#5335 +ipset=/hpengage.com/gfwlist +server=/auricularemonsterbeats.com/127.0.0.1#5335 +ipset=/auricularemonsterbeats.com/gfwlist +server=/amazon-launchpad.com/127.0.0.1#5335 +ipset=/amazon-launchpad.com/gfwlist +server=/ubistatic3-a.akamaihd.net/127.0.0.1#5335 +ipset=/ubistatic3-a.akamaihd.net/gfwlist +server=/hpdownloadstore.com/127.0.0.1#5335 +ipset=/hpdownloadstore.com/gfwlist +server=/datawav.club/127.0.0.1#5335 +ipset=/datawav.club/gfwlist +server=/asus.com/127.0.0.1#5335 +ipset=/asus.com/gfwlist +server=/hpdesktopcomputer.com/127.0.0.1#5335 +ipset=/hpdesktopcomputer.com/gfwlist +server=/hpdaas.com/127.0.0.1#5335 +ipset=/hpdaas.com/gfwlist +server=/tvcastlive-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/tvcastlive-hamivideo.cdn.hinet.net/gfwlist +server=/bridgestone.cl/127.0.0.1#5335 +ipset=/bridgestone.cl/gfwlist +server=/hpcustomersupport.com/127.0.0.1#5335 +ipset=/hpcustomersupport.com/gfwlist +server=/hpcu.org/127.0.0.1#5335 +ipset=/hpcu.org/gfwlist +server=/your-server.de/127.0.0.1#5335 +ipset=/your-server.de/gfwlist +server=/bingads.com/127.0.0.1#5335 +ipset=/bingads.com/gfwlist +server=/scholar.google.is/127.0.0.1#5335 +ipset=/scholar.google.is/gfwlist +server=/eilieili.cc/127.0.0.1#5335 +ipset=/eilieili.cc/gfwlist +server=/scholar.google.com.pe/127.0.0.1#5335 +ipset=/scholar.google.com.pe/gfwlist +server=/foxsports.uy/127.0.0.1#5335 +ipset=/foxsports.uy/gfwlist +server=/jav19.com/127.0.0.1#5335 +ipset=/jav19.com/gfwlist +server=/faceid99.com/127.0.0.1#5335 +ipset=/faceid99.com/gfwlist +server=/voxfieldguide.com/127.0.0.1#5335 +ipset=/voxfieldguide.com/gfwlist +server=/hpconnectedstage.com/127.0.0.1#5335 +ipset=/hpconnectedstage.com/gfwlist +server=/bikaios.xyz/127.0.0.1#5335 +ipset=/bikaios.xyz/gfwlist +server=/freeporn.com/127.0.0.1#5335 +ipset=/freeporn.com/gfwlist +server=/dvdstudiopro.org/127.0.0.1#5335 +ipset=/dvdstudiopro.org/gfwlist +server=/hpconnected.org/127.0.0.1#5335 +ipset=/hpconnected.org/gfwlist +server=/coova.org/127.0.0.1#5335 +ipset=/coova.org/gfwlist +server=/kundun1069.com/127.0.0.1#5335 +ipset=/kundun1069.com/gfwlist +server=/hpcmw.net/127.0.0.1#5335 +ipset=/hpcmw.net/gfwlist +server=/ikea.co.il/127.0.0.1#5335 +ipset=/ikea.co.il/gfwlist +server=/shoers.com/127.0.0.1#5335 +ipset=/shoers.com/gfwlist +server=/vnanchoi.ca/127.0.0.1#5335 +ipset=/vnanchoi.ca/gfwlist +server=/change.org/127.0.0.1#5335 +ipset=/change.org/gfwlist +server=/google.so/127.0.0.1#5335 +ipset=/google.so/gfwlist +server=/paily.net/127.0.0.1#5335 +ipset=/paily.net/gfwlist +server=/wsjwine.com/127.0.0.1#5335 +ipset=/wsjwine.com/gfwlist +server=/hpbluecarpet.net/127.0.0.1#5335 +ipset=/hpbluecarpet.net/gfwlist +server=/hpbluecarpet.com/127.0.0.1#5335 +ipset=/hpbluecarpet.com/gfwlist +server=/ecert.gov.hk/127.0.0.1#5335 +ipset=/ecert.gov.hk/gfwlist +server=/9hentai.ru/127.0.0.1#5335 +ipset=/9hentai.ru/gfwlist +server=/fuckbookecuador.com/127.0.0.1#5335 +ipset=/fuckbookecuador.com/gfwlist +server=/hpallinoneprinter.com/127.0.0.1#5335 +ipset=/hpallinoneprinter.com/gfwlist +server=/mastercard.co.il/127.0.0.1#5335 +ipset=/mastercard.co.il/gfwlist +server=/bmw-motorrad.ca/127.0.0.1#5335 +ipset=/bmw-motorrad.ca/gfwlist +server=/adultcamslover.com/127.0.0.1#5335 +ipset=/adultcamslover.com/gfwlist +server=/ikea.hk/127.0.0.1#5335 +ipset=/ikea.hk/gfwlist +server=/api.viu.now.com/127.0.0.1#5335 +ipset=/api.viu.now.com/gfwlist +server=/disney.co.uk/127.0.0.1#5335 +ipset=/disney.co.uk/gfwlist +server=/mofos.com/127.0.0.1#5335 +ipset=/mofos.com/gfwlist +server=/mwf-service.akamaized.net/127.0.0.1#5335 +ipset=/mwf-service.akamaized.net/gfwlist +server=/unusualporn.net/127.0.0.1#5335 +ipset=/unusualporn.net/gfwlist +server=/financeleadsonline.com/127.0.0.1#5335 +ipset=/financeleadsonline.com/gfwlist +server=/hp.io/127.0.0.1#5335 +ipset=/hp.io/gfwlist +server=/adultmagazinespdf.com/127.0.0.1#5335 +ipset=/adultmagazinespdf.com/gfwlist +server=/4myminicard.com/127.0.0.1#5335 +ipset=/4myminicard.com/gfwlist +server=/69vj.com/127.0.0.1#5335 +ipset=/69vj.com/gfwlist +server=/sa78gs.wpc.edgecastcdn.net/127.0.0.1#5335 +ipset=/sa78gs.wpc.edgecastcdn.net/gfwlist +server=/alpherafs.in/127.0.0.1#5335 +ipset=/alpherafs.in/gfwlist +server=/duckduckgo.org/127.0.0.1#5335 +ipset=/duckduckgo.org/gfwlist +server=/hotmail.com/127.0.0.1#5335 +ipset=/hotmail.com/gfwlist +server=/hp-mns.com/127.0.0.1#5335 +ipset=/hp-mns.com/gfwlist +server=/hp-invent.info/127.0.0.1#5335 +ipset=/hp-invent.info/gfwlist +server=/hp-infolab.com/127.0.0.1#5335 +ipset=/hp-infolab.com/gfwlist +server=/nhentaihaven.org/127.0.0.1#5335 +ipset=/nhentaihaven.org/gfwlist +server=/hp-imagine.com/127.0.0.1#5335 +ipset=/hp-imagine.com/gfwlist +server=/gaming-notebooks.com/127.0.0.1#5335 +ipset=/gaming-notebooks.com/gfwlist +server=/e-cba.org/127.0.0.1#5335 +ipset=/e-cba.org/gfwlist +server=/cheapshoesvip.com/127.0.0.1#5335 +ipset=/cheapshoesvip.com/gfwlist +server=/optica.org/127.0.0.1#5335 +ipset=/optica.org/gfwlist +server=/businessinsider.de/127.0.0.1#5335 +ipset=/businessinsider.de/gfwlist +server=/compaq.org/127.0.0.1#5335 +ipset=/compaq.org/gfwlist +server=/filesmonster.vip/127.0.0.1#5335 +ipset=/filesmonster.vip/gfwlist +server=/dianepoppos.com/127.0.0.1#5335 +ipset=/dianepoppos.com/gfwlist +server=/campushp.com/127.0.0.1#5335 +ipset=/campushp.com/gfwlist +server=/pornlistdude.com/127.0.0.1#5335 +ipset=/pornlistdude.com/gfwlist +server=/diyarbakirescort.com/127.0.0.1#5335 +ipset=/diyarbakirescort.com/gfwlist +server=/supermariorun.com/127.0.0.1#5335 +ipset=/supermariorun.com/gfwlist +server=/faebookc.com/127.0.0.1#5335 +ipset=/faebookc.com/gfwlist +server=/fox5atlanta.com/127.0.0.1#5335 +ipset=/fox5atlanta.com/gfwlist +server=/fecbbok.com/127.0.0.1#5335 +ipset=/fecbbok.com/gfwlist +server=/hexdocs.pm/127.0.0.1#5335 +ipset=/hexdocs.pm/gfwlist +server=/travelex.qa/127.0.0.1#5335 +ipset=/travelex.qa/gfwlist +server=/nudeeroticteens.com/127.0.0.1#5335 +ipset=/nudeeroticteens.com/gfwlist +server=/scdn.co/127.0.0.1#5335 +ipset=/scdn.co/gfwlist +server=/fantasti.cc/127.0.0.1#5335 +ipset=/fantasti.cc/gfwlist +server=/ntdtv.com.tw/127.0.0.1#5335 +ipset=/ntdtv.com.tw/gfwlist +server=/fawgaf.xyz/127.0.0.1#5335 +ipset=/fawgaf.xyz/gfwlist +server=/jos.com/127.0.0.1#5335 +ipset=/jos.com/gfwlist +server=/coupang.com/127.0.0.1#5335 +ipset=/coupang.com/gfwlist +server=/bmw.ps/127.0.0.1#5335 +ipset=/bmw.ps/gfwlist +server=/analvids.com/127.0.0.1#5335 +ipset=/analvids.com/gfwlist +server=/fpacebook.com/127.0.0.1#5335 +ipset=/fpacebook.com/gfwlist +server=/damduc.org/127.0.0.1#5335 +ipset=/damduc.org/gfwlist +server=/vod-thumb-ww-live.akamaized.net/127.0.0.1#5335 +ipset=/vod-thumb-ww-live.akamaized.net/gfwlist +server=/kraken.com/127.0.0.1#5335 +ipset=/kraken.com/gfwlist +server=/instagramtips.com/127.0.0.1#5335 +ipset=/instagramtips.com/gfwlist +server=/csifund.org/127.0.0.1#5335 +ipset=/csifund.org/gfwlist +server=/durex.co.za/127.0.0.1#5335 +ipset=/durex.co.za/gfwlist +server=/shopminiusa.com/127.0.0.1#5335 +ipset=/shopminiusa.com/gfwlist +server=/thepervs.com/127.0.0.1#5335 +ipset=/thepervs.com/gfwlist +server=/chtf.org.tw/127.0.0.1#5335 +ipset=/chtf.org.tw/gfwlist +server=/steam.cdn.webra.ru/127.0.0.1#5335 +ipset=/steam.cdn.webra.ru/gfwlist +server=/onlyprime.ru/127.0.0.1#5335 +ipset=/onlyprime.ru/gfwlist +server=/orgyxxxhub.com/127.0.0.1#5335 +ipset=/orgyxxxhub.com/gfwlist +server=/16honeys.com/127.0.0.1#5335 +ipset=/16honeys.com/gfwlist +server=/appleiservices.com/127.0.0.1#5335 +ipset=/appleiservices.com/gfwlist +server=/love6.tv/127.0.0.1#5335 +ipset=/love6.tv/gfwlist +server=/kimchi.tv/127.0.0.1#5335 +ipset=/kimchi.tv/gfwlist +server=/bedstegratisporno.com/127.0.0.1#5335 +ipset=/bedstegratisporno.com/gfwlist +server=/hetzner.com/127.0.0.1#5335 +ipset=/hetzner.com/gfwlist +server=/hetzner.cloud/127.0.0.1#5335 +ipset=/hetzner.cloud/gfwlist +server=/dropboxusercontent.com/127.0.0.1#5335 +ipset=/dropboxusercontent.com/gfwlist +server=/quicktime.tv/127.0.0.1#5335 +ipset=/quicktime.tv/gfwlist +server=/att-idns.net/127.0.0.1#5335 +ipset=/att-idns.net/gfwlist +server=/lollipopescorts.com/127.0.0.1#5335 +ipset=/lollipopescorts.com/gfwlist +server=/nbcudigitaladops.com/127.0.0.1#5335 +ipset=/nbcudigitaladops.com/gfwlist +server=/authy.com/127.0.0.1#5335 +ipset=/authy.com/gfwlist +server=/mini-stjohns.com/127.0.0.1#5335 +ipset=/mini-stjohns.com/gfwlist +server=/bmw-motorrad.at/127.0.0.1#5335 +ipset=/bmw-motorrad.at/gfwlist +server=/xn--ggle-55da.com/127.0.0.1#5335 +ipset=/xn--ggle-55da.com/gfwlist +server=/xn--flw351e.com/127.0.0.1#5335 +ipset=/xn--flw351e.com/gfwlist +server=/mastercard.ie/127.0.0.1#5335 +ipset=/mastercard.ie/gfwlist +server=/swisssign.li/127.0.0.1#5335 +ipset=/swisssign.li/gfwlist +server=/pinkporno.com/127.0.0.1#5335 +ipset=/pinkporno.com/gfwlist +server=/oreil.ly/127.0.0.1#5335 +ipset=/oreil.ly/gfwlist +server=/intellinuxgraphics.net/127.0.0.1#5335 +ipset=/intellinuxgraphics.net/gfwlist +server=/lencr.org/127.0.0.1#5335 +ipset=/lencr.org/gfwlist +server=/avstar04.me/127.0.0.1#5335 +ipset=/avstar04.me/gfwlist +server=/waterdamagesandiego.org/127.0.0.1#5335 +ipset=/waterdamagesandiego.org/gfwlist +server=/ibeats-uk.com/127.0.0.1#5335 +ipset=/ibeats-uk.com/gfwlist +server=/homepornvideo.net/127.0.0.1#5335 +ipset=/homepornvideo.net/gfwlist +server=/reactjs.com/127.0.0.1#5335 +ipset=/reactjs.com/gfwlist +server=/apornotube.net/127.0.0.1#5335 +ipset=/apornotube.net/gfwlist +server=/ebay.com.au/127.0.0.1#5335 +ipset=/ebay.com.au/gfwlist +server=/gay.bingo/127.0.0.1#5335 +ipset=/gay.bingo/gfwlist +server=/withgoogle.com/127.0.0.1#5335 +ipset=/withgoogle.com/gfwlist +server=/hentai01.com/127.0.0.1#5335 +ipset=/hentai01.com/gfwlist +server=/apple.us/127.0.0.1#5335 +ipset=/apple.us/gfwlist +server=/keiba.net/127.0.0.1#5335 +ipset=/keiba.net/gfwlist +server=/dns.sb/127.0.0.1#5335 +ipset=/dns.sb/gfwlist +server=/erolabs.game/127.0.0.1#5335 +ipset=/erolabs.game/gfwlist +server=/launchpad.wang/127.0.0.1#5335 +ipset=/launchpad.wang/gfwlist +server=/forhertube.com/127.0.0.1#5335 +ipset=/forhertube.com/gfwlist +server=/teamskeet.com/127.0.0.1#5335 +ipset=/teamskeet.com/gfwlist +server=/mac-mini.com/127.0.0.1#5335 +ipset=/mac-mini.com/gfwlist +server=/stripecdn.com/127.0.0.1#5335 +ipset=/stripecdn.com/gfwlist +server=/koreanpornmovie.com/127.0.0.1#5335 +ipset=/koreanpornmovie.com/gfwlist +server=/vscode-sync-insiders.trafficmanager.net/127.0.0.1#5335 +ipset=/vscode-sync-insiders.trafficmanager.net/gfwlist +server=/bmw-motorrad-dubai.com/127.0.0.1#5335 +ipset=/bmw-motorrad-dubai.com/gfwlist +server=/webappfieldguide.com/127.0.0.1#5335 +ipset=/webappfieldguide.com/gfwlist +server=/vmwidm.com/127.0.0.1#5335 +ipset=/vmwidm.com/gfwlist +server=/waze.com/127.0.0.1#5335 +ipset=/waze.com/gfwlist +server=/waymo.com/127.0.0.1#5335 +ipset=/waymo.com/gfwlist +server=/fnacebook.com/127.0.0.1#5335 +ipset=/fnacebook.com/gfwlist +server=/fox10.tv/127.0.0.1#5335 +ipset=/fox10.tv/gfwlist +server=/fox7.com/127.0.0.1#5335 +ipset=/fox7.com/gfwlist +server=/ebayclub.com/127.0.0.1#5335 +ipset=/ebayclub.com/gfwlist +server=/bmw-grouparchiv.de/127.0.0.1#5335 +ipset=/bmw-grouparchiv.de/gfwlist +server=/verilystudywatch.org/127.0.0.1#5335 +ipset=/verilystudywatch.org/gfwlist +server=/casoneexchange.com/127.0.0.1#5335 +ipset=/casoneexchange.com/gfwlist +server=/verilystudywatch.com/127.0.0.1#5335 +ipset=/verilystudywatch.com/gfwlist +server=/aokwholesale.net/127.0.0.1#5335 +ipset=/aokwholesale.net/gfwlist +server=/fapcat.com/127.0.0.1#5335 +ipset=/fapcat.com/gfwlist +server=/cobatt.com/127.0.0.1#5335 +ipset=/cobatt.com/gfwlist +server=/soccerfinancier.ca/127.0.0.1#5335 +ipset=/soccerfinancier.ca/gfwlist +server=/cumteenporn.com/127.0.0.1#5335 +ipset=/cumteenporn.com/gfwlist +server=/seiroganmania.com/127.0.0.1#5335 +ipset=/seiroganmania.com/gfwlist +server=/watchindianporn.net/127.0.0.1#5335 +ipset=/watchindianporn.net/gfwlist +server=/discord.com/127.0.0.1#5335 +ipset=/discord.com/gfwlist +server=/hotmonsterbeats.com/127.0.0.1#5335 +ipset=/hotmonsterbeats.com/gfwlist +server=/bienvenuechezbestbuy.ca/127.0.0.1#5335 +ipset=/bienvenuechezbestbuy.ca/gfwlist +server=/minifs.com/127.0.0.1#5335 +ipset=/minifs.com/gfwlist +server=/pornaroma.com/127.0.0.1#5335 +ipset=/pornaroma.com/gfwlist +server=/unfiltered.news/127.0.0.1#5335 +ipset=/unfiltered.news/gfwlist +server=/aclweb.org/127.0.0.1#5335 +ipset=/aclweb.org/gfwlist +server=/ffprofile.com/127.0.0.1#5335 +ipset=/ffprofile.com/gfwlist +server=/scholar.google.com.ni/127.0.0.1#5335 +ipset=/scholar.google.com.ni/gfwlist +server=/txvia.com/127.0.0.1#5335 +ipset=/txvia.com/gfwlist +server=/cbsiam.com/127.0.0.1#5335 +ipset=/cbsiam.com/gfwlist +server=/vbejeyv.shop/127.0.0.1#5335 +ipset=/vbejeyv.shop/gfwlist +server=/youtube.com.mk/127.0.0.1#5335 +ipset=/youtube.com.mk/gfwlist +server=/mysocialworklab.com/127.0.0.1#5335 +ipset=/mysocialworklab.com/gfwlist +server=/thinkquarterly.com/127.0.0.1#5335 +ipset=/thinkquarterly.com/gfwlist +server=/youtube.co.ve/127.0.0.1#5335 +ipset=/youtube.co.ve/gfwlist +server=/vscode.dev/127.0.0.1#5335 +ipset=/vscode.dev/gfwlist +server=/yammer.com/127.0.0.1#5335 +ipset=/yammer.com/gfwlist +server=/analpornonly.com/127.0.0.1#5335 +ipset=/analpornonly.com/gfwlist +server=/02weqj32.com/127.0.0.1#5335 +ipset=/02weqj32.com/gfwlist +server=/volvogroup.jp/127.0.0.1#5335 +ipset=/volvogroup.jp/gfwlist +server=/launchpadlibrarian.com/127.0.0.1#5335 +ipset=/launchpadlibrarian.com/gfwlist +server=/vs-cmaf-push-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vs-cmaf-push-uk-live.akamaized.net/gfwlist +server=/hath.network/127.0.0.1#5335 +ipset=/hath.network/gfwlist +server=/mathoverflow.net/127.0.0.1#5335 +ipset=/mathoverflow.net/gfwlist +server=/sony-hes.co.jp/127.0.0.1#5335 +ipset=/sony-hes.co.jp/gfwlist +server=/synergyse.com/127.0.0.1#5335 +ipset=/synergyse.com/gfwlist +server=/blogspot.sg/127.0.0.1#5335 +ipset=/blogspot.sg/gfwlist +server=/matureladiesxxx.com/127.0.0.1#5335 +ipset=/matureladiesxxx.com/gfwlist +server=/casque-fr.com/127.0.0.1#5335 +ipset=/casque-fr.com/gfwlist +server=/stxmosquitoproject.com/127.0.0.1#5335 +ipset=/stxmosquitoproject.com/gfwlist +server=/beatsbydreausale.net/127.0.0.1#5335 +ipset=/beatsbydreausale.net/gfwlist +server=/amamanualofstyle.com/127.0.0.1#5335 +ipset=/amamanualofstyle.com/gfwlist +server=/getbraintree.com/127.0.0.1#5335 +ipset=/getbraintree.com/gfwlist +server=/realclearpublicaffairs.com/127.0.0.1#5335 +ipset=/realclearpublicaffairs.com/gfwlist +server=/webex.co.kr/127.0.0.1#5335 +ipset=/webex.co.kr/gfwlist +server=/animalpornxxx.me/127.0.0.1#5335 +ipset=/animalpornxxx.me/gfwlist +server=/faceboo.com/127.0.0.1#5335 +ipset=/faceboo.com/gfwlist +server=/stcroixmosquitoproject.com/127.0.0.1#5335 +ipset=/stcroixmosquitoproject.com/gfwlist +server=/beddit.tv/127.0.0.1#5335 +ipset=/beddit.tv/gfwlist +server=/stcroixmosquito.com/127.0.0.1#5335 +ipset=/stcroixmosquito.com/gfwlist +server=/mottainai.info/127.0.0.1#5335 +ipset=/mottainai.info/gfwlist +server=/mirrorsedge.com/127.0.0.1#5335 +ipset=/mirrorsedge.com/gfwlist +server=/realclearscience.com/127.0.0.1#5335 +ipset=/realclearscience.com/gfwlist +server=/fictionmania.tv/127.0.0.1#5335 +ipset=/fictionmania.tv/gfwlist +server=/solveforx.com/127.0.0.1#5335 +ipset=/solveforx.com/gfwlist +server=/cashpassport.com.br/127.0.0.1#5335 +ipset=/cashpassport.com.br/gfwlist +server=/alohatube.com/127.0.0.1#5335 +ipset=/alohatube.com/gfwlist +server=/xnxx18.pro/127.0.0.1#5335 +ipset=/xnxx18.pro/gfwlist +server=/screenwisetrendspanel.com/127.0.0.1#5335 +ipset=/screenwisetrendspanel.com/gfwlist +server=/webobjects.de/127.0.0.1#5335 +ipset=/webobjects.de/gfwlist +server=/saynow.com/127.0.0.1#5335 +ipset=/saynow.com/gfwlist +server=/fi11.cn/127.0.0.1#5335 +ipset=/fi11.cn/gfwlist +server=/run.app/127.0.0.1#5335 +ipset=/run.app/gfwlist +server=/ridepenguin.com/127.0.0.1#5335 +ipset=/ridepenguin.com/gfwlist +server=/setn.com/127.0.0.1#5335 +ipset=/setn.com/gfwlist +server=/revolv.com/127.0.0.1#5335 +ipset=/revolv.com/gfwlist +server=/gettyimages.de/127.0.0.1#5335 +ipset=/gettyimages.de/gfwlist +server=/bmwmotorsport.com/127.0.0.1#5335 +ipset=/bmwmotorsport.com/gfwlist +server=/colegialasdeverdad.com/127.0.0.1#5335 +ipset=/colegialasdeverdad.com/gfwlist +server=/pvr-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/pvr-hamivideo.cdn.hinet.net/gfwlist +server=/adwordsexpress.com/127.0.0.1#5335 +ipset=/adwordsexpress.com/gfwlist +server=/ajplus.net/127.0.0.1#5335 +ipset=/ajplus.net/gfwlist +server=/muji.tw/127.0.0.1#5335 +ipset=/muji.tw/gfwlist +server=/publishproxy.com/127.0.0.1#5335 +ipset=/publishproxy.com/gfwlist +server=/google.com.au/127.0.0.1#5335 +ipset=/google.com.au/gfwlist +server=/heavyfetish.com/127.0.0.1#5335 +ipset=/heavyfetish.com/gfwlist +server=/thehealthsite.com/127.0.0.1#5335 +ipset=/thehealthsite.com/gfwlist +server=/21naturals.com/127.0.0.1#5335 +ipset=/21naturals.com/gfwlist +server=/mytokenapi.com/127.0.0.1#5335 +ipset=/mytokenapi.com/gfwlist +server=/projectara.com/127.0.0.1#5335 +ipset=/projectara.com/gfwlist +server=/privacysandbox.com/127.0.0.1#5335 +ipset=/privacysandbox.com/gfwlist +server=/arewereadyyet.com/127.0.0.1#5335 +ipset=/arewereadyyet.com/gfwlist +server=/pixate.com/127.0.0.1#5335 +ipset=/pixate.com/gfwlist +server=/canon.com.au/127.0.0.1#5335 +ipset=/canon.com.au/gfwlist +server=/sorairi.info/127.0.0.1#5335 +ipset=/sorairi.info/gfwlist +server=/picnik.com/127.0.0.1#5335 +ipset=/picnik.com/gfwlist +server=/bejav.net/127.0.0.1#5335 +ipset=/bejav.net/gfwlist +server=/pornma.com/127.0.0.1#5335 +ipset=/pornma.com/gfwlist +server=/myyoungmomisnude.com/127.0.0.1#5335 +ipset=/myyoungmomisnude.com/gfwlist +server=/economistgroupcareers.com/127.0.0.1#5335 +ipset=/economistgroupcareers.com/gfwlist +server=/charmescorts.com/127.0.0.1#5335 +ipset=/charmescorts.com/gfwlist +server=/kijijii.ca/127.0.0.1#5335 +ipset=/kijijii.ca/gfwlist +server=/dogofcum.com/127.0.0.1#5335 +ipset=/dogofcum.com/gfwlist +server=/guo.media/127.0.0.1#5335 +ipset=/guo.media/gfwlist +server=/youtube.cl/127.0.0.1#5335 +ipset=/youtube.cl/gfwlist +server=/botframework.com/127.0.0.1#5335 +ipset=/botframework.com/gfwlist +server=/epochtimes.se/127.0.0.1#5335 +ipset=/epochtimes.se/gfwlist +server=/singlelogin.me/127.0.0.1#5335 +ipset=/singlelogin.me/gfwlist +server=/visiontimes.com/127.0.0.1#5335 +ipset=/visiontimes.com/gfwlist +server=/actalis.it/127.0.0.1#5335 +ipset=/actalis.it/gfwlist +server=/google.is/127.0.0.1#5335 +ipset=/google.is/gfwlist +server=/riot.com/127.0.0.1#5335 +ipset=/riot.com/gfwlist +server=/bmw-rp.com/127.0.0.1#5335 +ipset=/bmw-rp.com/gfwlist +server=/ebayca.org/127.0.0.1#5335 +ipset=/ebayca.org/gfwlist +server=/grandfuckauto.xxx/127.0.0.1#5335 +ipset=/grandfuckauto.xxx/gfwlist +server=/18schoolgirlz.me/127.0.0.1#5335 +ipset=/18schoolgirlz.me/gfwlist +server=/oneworldmanystories.com/127.0.0.1#5335 +ipset=/oneworldmanystories.com/gfwlist +server=/hpapplicationscenter.com/127.0.0.1#5335 +ipset=/hpapplicationscenter.com/gfwlist +server=/mastercard.com.my/127.0.0.1#5335 +ipset=/mastercard.com.my/gfwlist +server=/pornfuck.net/127.0.0.1#5335 +ipset=/pornfuck.net/gfwlist +server=/on2.com/127.0.0.1#5335 +ipset=/on2.com/gfwlist +server=/on.here/127.0.0.1#5335 +ipset=/on.here/gfwlist +server=/cbsi.com/127.0.0.1#5335 +ipset=/cbsi.com/gfwlist +server=/avseesee.com/127.0.0.1#5335 +ipset=/avseesee.com/gfwlist +server=/titsbox.com/127.0.0.1#5335 +ipset=/titsbox.com/gfwlist +server=/nest.com/127.0.0.1#5335 +ipset=/nest.com/gfwlist +server=/near.by/127.0.0.1#5335 +ipset=/near.by/gfwlist +server=/6sextube.com/127.0.0.1#5335 +ipset=/6sextube.com/gfwlist +server=/girlfur.com/127.0.0.1#5335 +ipset=/girlfur.com/gfwlist +server=/moodstocks.com/127.0.0.1#5335 +ipset=/moodstocks.com/gfwlist +server=/appleclub.com.hk/127.0.0.1#5335 +ipset=/appleclub.com.hk/gfwlist +server=/beatsdrdre-headphones.com/127.0.0.1#5335 +ipset=/beatsdrdre-headphones.com/gfwlist +server=/mfg-inspector.com/127.0.0.1#5335 +ipset=/mfg-inspector.com/gfwlist +server=/fucksexhub.com/127.0.0.1#5335 +ipset=/fucksexhub.com/gfwlist +server=/dragonhentai.net/127.0.0.1#5335 +ipset=/dragonhentai.net/gfwlist +server=/meet.new/127.0.0.1#5335 +ipset=/meet.new/gfwlist +server=/hifiporn.fun/127.0.0.1#5335 +ipset=/hifiporn.fun/gfwlist +server=/tx5ptbp7.com/127.0.0.1#5335 +ipset=/tx5ptbp7.com/gfwlist +server=/customizedbeatsbydre.com/127.0.0.1#5335 +ipset=/customizedbeatsbydre.com/gfwlist +server=/rapidssl.com/127.0.0.1#5335 +ipset=/rapidssl.com/gfwlist +server=/madewithcode.com/127.0.0.1#5335 +ipset=/madewithcode.com/gfwlist +server=/listinganalytics.net/127.0.0.1#5335 +ipset=/listinganalytics.net/gfwlist +server=/yahoo.ae/127.0.0.1#5335 +ipset=/yahoo.ae/gfwlist +server=/keytransparency.org/127.0.0.1#5335 +ipset=/keytransparency.org/gfwlist +server=/xcity.jp/127.0.0.1#5335 +ipset=/xcity.jp/gfwlist +server=/sexcord.com/127.0.0.1#5335 +ipset=/sexcord.com/gfwlist +server=/alpherafs.com.my/127.0.0.1#5335 +ipset=/alpherafs.com.my/gfwlist +server=/joeswall.com/127.0.0.1#5335 +ipset=/joeswall.com/gfwlist +server=/plantsvszombies2.com/127.0.0.1#5335 +ipset=/plantsvszombies2.com/gfwlist +server=/op.gg/127.0.0.1#5335 +ipset=/op.gg/gfwlist +server=/ebaya.com/127.0.0.1#5335 +ipset=/ebaya.com/gfwlist +server=/impermium.com/127.0.0.1#5335 +ipset=/impermium.com/gfwlist +server=/only3x.com/127.0.0.1#5335 +ipset=/only3x.com/gfwlist +server=/topadultgames.biz/127.0.0.1#5335 +ipset=/topadultgames.biz/gfwlist +server=/amateurbdsmporn.com/127.0.0.1#5335 +ipset=/amateurbdsmporn.com/gfwlist +server=/hwgo.com/127.0.0.1#5335 +ipset=/hwgo.com/gfwlist +server=/hereistheporn.com/127.0.0.1#5335 +ipset=/hereistheporn.com/gfwlist +server=/hentailabs.com/127.0.0.1#5335 +ipset=/hentailabs.com/gfwlist +server=/playforceone.com/127.0.0.1#5335 +ipset=/playforceone.com/gfwlist +server=/deepfake-porn.com/127.0.0.1#5335 +ipset=/deepfake-porn.com/gfwlist +server=/adorable-teens.net/127.0.0.1#5335 +ipset=/adorable-teens.net/gfwlist +server=/metro.co.uk/127.0.0.1#5335 +ipset=/metro.co.uk/gfwlist +server=/ikea.com.kw/127.0.0.1#5335 +ipset=/ikea.com.kw/gfwlist +server=/bmw-motorrad.it/127.0.0.1#5335 +ipset=/bmw-motorrad.it/gfwlist +server=/beatbydreheadphonesonsale.com/127.0.0.1#5335 +ipset=/beatbydreheadphonesonsale.com/gfwlist +server=/girls.xyz/127.0.0.1#5335 +ipset=/girls.xyz/gfwlist +server=/hobonichielog.com/127.0.0.1#5335 +ipset=/hobonichielog.com/gfwlist +server=/scholar.google.co.in/127.0.0.1#5335 +ipset=/scholar.google.co.in/gfwlist +server=/luscious.net/127.0.0.1#5335 +ipset=/luscious.net/gfwlist +server=/blogspot.ch/127.0.0.1#5335 +ipset=/blogspot.ch/gfwlist +server=/smartone.com/127.0.0.1#5335 +ipset=/smartone.com/gfwlist +server=/mobilelive-hamivideo.cdn.hinet.net/127.0.0.1#5335 +ipset=/mobilelive-hamivideo.cdn.hinet.net/gfwlist +server=/gvt9.com/127.0.0.1#5335 +ipset=/gvt9.com/gfwlist +server=/funshemale.com/127.0.0.1#5335 +ipset=/funshemale.com/gfwlist +server=/wwwapplemusic.com/127.0.0.1#5335 +ipset=/wwwapplemusic.com/gfwlist +server=/elephantlist.com/127.0.0.1#5335 +ipset=/elephantlist.com/gfwlist +server=/tidal.com/127.0.0.1#5335 +ipset=/tidal.com/gfwlist +server=/gvt6.com/127.0.0.1#5335 +ipset=/gvt6.com/gfwlist +server=/bmwmotorrad.co.kr/127.0.0.1#5335 +ipset=/bmwmotorrad.co.kr/gfwlist +server=/2013newbeatsworld.com/127.0.0.1#5335 +ipset=/2013newbeatsworld.com/gfwlist +server=/springer.com/127.0.0.1#5335 +ipset=/springer.com/gfwlist +server=/battlefield1943.com/127.0.0.1#5335 +ipset=/battlefield1943.com/gfwlist +server=/gvt2.com/127.0.0.1#5335 +ipset=/gvt2.com/gfwlist +server=/volvobuses.my/127.0.0.1#5335 +ipset=/volvobuses.my/gfwlist +server=/4everland.io/127.0.0.1#5335 +ipset=/4everland.io/gfwlist +server=/gvt1.com/127.0.0.1#5335 +ipset=/gvt1.com/gfwlist +server=/bmw.dz/127.0.0.1#5335 +ipset=/bmw.dz/gfwlist +server=/gstatic.com/127.0.0.1#5335 +ipset=/gstatic.com/gfwlist +server=/friendfed.com/127.0.0.1#5335 +ipset=/friendfed.com/gfwlist +server=/buyitnow.tv/127.0.0.1#5335 +ipset=/buyitnow.tv/gfwlist +server=/ysporn.com/127.0.0.1#5335 +ipset=/ysporn.com/gfwlist +server=/gooogle.com/127.0.0.1#5335 +ipset=/gooogle.com/gfwlist +server=/6twseb.com/127.0.0.1#5335 +ipset=/6twseb.com/gfwlist +server=/goolge.com/127.0.0.1#5335 +ipset=/goolge.com/gfwlist +server=/googlr.com/127.0.0.1#5335 +ipset=/googlr.com/gfwlist +server=/espadoldettol.com.ar/127.0.0.1#5335 +ipset=/espadoldettol.com.ar/gfwlist +server=/pornobrasil.blog.br/127.0.0.1#5335 +ipset=/pornobrasil.blog.br/gfwlist +server=/e621.net/127.0.0.1#5335 +ipset=/e621.net/gfwlist +server=/mini-connected.be/127.0.0.1#5335 +ipset=/mini-connected.be/gfwlist +server=/fasebook.com/127.0.0.1#5335 +ipset=/fasebook.com/gfwlist +server=/cloudflarewarp.com/127.0.0.1#5335 +ipset=/cloudflarewarp.com/gfwlist +server=/googlesverige.com/127.0.0.1#5335 +ipset=/googlesverige.com/gfwlist +server=/indaznlab.com/127.0.0.1#5335 +ipset=/indaznlab.com/gfwlist +server=/nikesku.com/127.0.0.1#5335 +ipset=/nikesku.com/gfwlist +server=/projectapex.com/127.0.0.1#5335 +ipset=/projectapex.com/gfwlist +server=/anime-pictures.net/127.0.0.1#5335 +ipset=/anime-pictures.net/gfwlist +server=/cheapnikedunks.com/127.0.0.1#5335 +ipset=/cheapnikedunks.com/gfwlist +server=/wariolandshakeit.com/127.0.0.1#5335 +ipset=/wariolandshakeit.com/gfwlist +server=/hentai24h.tv/127.0.0.1#5335 +ipset=/hentai24h.tv/gfwlist +server=/teenrave.org/127.0.0.1#5335 +ipset=/teenrave.org/gfwlist +server=/primeindianporn.com/127.0.0.1#5335 +ipset=/primeindianporn.com/gfwlist +server=/ebaypakistan.net/127.0.0.1#5335 +ipset=/ebaypakistan.net/gfwlist +server=/ebay.mn/127.0.0.1#5335 +ipset=/ebay.mn/gfwlist +server=/firestonebpco.com/127.0.0.1#5335 +ipset=/firestonebpco.com/gfwlist +server=/herringnetwork.com/127.0.0.1#5335 +ipset=/herringnetwork.com/gfwlist +server=/opinionjournal.com/127.0.0.1#5335 +ipset=/opinionjournal.com/gfwlist +server=/rule34.us/127.0.0.1#5335 +ipset=/rule34.us/gfwlist +server=/monsterbeatscommunity.com/127.0.0.1#5335 +ipset=/monsterbeatscommunity.com/gfwlist +server=/dynafleetonline.com/127.0.0.1#5335 +ipset=/dynafleetonline.com/gfwlist +server=/googleplus.com/127.0.0.1#5335 +ipset=/googleplus.com/gfwlist +server=/googleplay.com/127.0.0.1#5335 +ipset=/googleplay.com/gfwlist +server=/googlephotos.com/127.0.0.1#5335 +ipset=/googlephotos.com/gfwlist +server=/playmation.com/127.0.0.1#5335 +ipset=/playmation.com/gfwlist +server=/googlepagecreator.com/127.0.0.1#5335 +ipset=/googlepagecreator.com/gfwlist +server=/googlemaps.com/127.0.0.1#5335 +ipset=/googlemaps.com/gfwlist +server=/fgacebook.com/127.0.0.1#5335 +ipset=/fgacebook.com/gfwlist +server=/bestbuycanada.ca/127.0.0.1#5335 +ipset=/bestbuycanada.ca/gfwlist +server=/xfockers.com/127.0.0.1#5335 +ipset=/xfockers.com/gfwlist +server=/avinetworks.com/127.0.0.1#5335 +ipset=/avinetworks.com/gfwlist +server=/googlefiber.com/127.0.0.1#5335 +ipset=/googlefiber.com/gfwlist +server=/weiyuksj.com/127.0.0.1#5335 +ipset=/weiyuksj.com/gfwlist +server=/volvotrucks.net/127.0.0.1#5335 +ipset=/volvotrucks.net/gfwlist +server=/nikeoutletstores.com/127.0.0.1#5335 +ipset=/nikeoutletstores.com/gfwlist +server=/mastercardacademy.com/127.0.0.1#5335 +ipset=/mastercardacademy.com/gfwlist +server=/thefappeningblog.com/127.0.0.1#5335 +ipset=/thefappeningblog.com/gfwlist +server=/visabank.org/127.0.0.1#5335 +ipset=/visabank.org/gfwlist +server=/apple.news/127.0.0.1#5335 +ipset=/apple.news/gfwlist +server=/wenzhao.ca/127.0.0.1#5335 +ipset=/wenzhao.ca/gfwlist +server=/microad.co.jp/127.0.0.1#5335 +ipset=/microad.co.jp/gfwlist +server=/neow.in/127.0.0.1#5335 +ipset=/neow.in/gfwlist +server=/ocbmwdealers.com/127.0.0.1#5335 +ipset=/ocbmwdealers.com/gfwlist +server=/myfoxhouston.com/127.0.0.1#5335 +ipset=/myfoxhouston.com/gfwlist +server=/bmw.tm/127.0.0.1#5335 +ipset=/bmw.tm/gfwlist +server=/bitstream.com/127.0.0.1#5335 +ipset=/bitstream.com/gfwlist +server=/savitabhabhi.com/127.0.0.1#5335 +ipset=/savitabhabhi.com/gfwlist +server=/googlecommerce.com/127.0.0.1#5335 +ipset=/googlecommerce.com/gfwlist +server=/ikea.com.hk/127.0.0.1#5335 +ipset=/ikea.com.hk/gfwlist +server=/facebol.com/127.0.0.1#5335 +ipset=/facebol.com/gfwlist +server=/libraryofthumbs.com/127.0.0.1#5335 +ipset=/libraryofthumbs.com/gfwlist +server=/statuspage.io/127.0.0.1#5335 +ipset=/statuspage.io/gfwlist +server=/epochtimes.jp/127.0.0.1#5335 +ipset=/epochtimes.jp/gfwlist +server=/googlebot.com/127.0.0.1#5335 +ipset=/googlebot.com/gfwlist +server=/google.ventures/127.0.0.1#5335 +ipset=/google.ventures/gfwlist +server=/google.dev/127.0.0.1#5335 +ipset=/google.dev/gfwlist +server=/google.berlin/127.0.0.1#5335 +ipset=/google.berlin/gfwlist +server=/google-access.net/127.0.0.1#5335 +ipset=/google-access.net/gfwlist +server=/pornoincreible.com/127.0.0.1#5335 +ipset=/pornoincreible.com/gfwlist +server=/priceless.org/127.0.0.1#5335 +ipset=/priceless.org/gfwlist +server=/ffacebook.com/127.0.0.1#5335 +ipset=/ffacebook.com/gfwlist +server=/goo.gl/127.0.0.1#5335 +ipset=/goo.gl/gfwlist +server=/napiszex.com/127.0.0.1#5335 +ipset=/napiszex.com/gfwlist +server=/gonglchuangl.net/127.0.0.1#5335 +ipset=/gonglchuangl.net/gfwlist +server=/gogle.com/127.0.0.1#5335 +ipset=/gogle.com/gfwlist +server=/instagramtr.com/127.0.0.1#5335 +ipset=/instagramtr.com/gfwlist +server=/gmodules.com/127.0.0.1#5335 +ipset=/gmodules.com/gfwlist +server=/awsautopilot.com/127.0.0.1#5335 +ipset=/awsautopilot.com/gfwlist +server=/gipscorp.com/127.0.0.1#5335 +ipset=/gipscorp.com/gfwlist +server=/c-span.org/127.0.0.1#5335 +ipset=/c-span.org/gfwlist +server=/getbumptop.com/127.0.0.1#5335 +ipset=/getbumptop.com/gfwlist +server=/gerritcodereview.com/127.0.0.1#5335 +ipset=/gerritcodereview.com/gfwlist +server=/videodelivery.net/127.0.0.1#5335 +ipset=/videodelivery.net/gfwlist +server=/gimy.tv/127.0.0.1#5335 +ipset=/gimy.tv/gfwlist +server=/g.page/127.0.0.1#5335 +ipset=/g.page/gfwlist +server=/ctv.com.tw/127.0.0.1#5335 +ipset=/ctv.com.tw/gfwlist +server=/porngameshub.com/127.0.0.1#5335 +ipset=/porngameshub.com/gfwlist +server=/g-tun.com/127.0.0.1#5335 +ipset=/g-tun.com/gfwlist +server=/fuchsia.dev/127.0.0.1#5335 +ipset=/fuchsia.dev/gfwlist +server=/volvopenta.se/127.0.0.1#5335 +ipset=/volvopenta.se/gfwlist +server=/enf-cmnf.com/127.0.0.1#5335 +ipset=/enf-cmnf.com/gfwlist +server=/zooporn.video/127.0.0.1#5335 +ipset=/zooporn.video/gfwlist +server=/ad.games.dmm.com/127.0.0.1#5335 +ipset=/ad.games.dmm.com/gfwlist +server=/ikea.com/127.0.0.1#5335 +ipset=/ikea.com/gfwlist +server=/pinyinxiang.com/127.0.0.1#5335 +ipset=/pinyinxiang.com/gfwlist +server=/workplaceusecases.com/127.0.0.1#5335 +ipset=/workplaceusecases.com/gfwlist +server=/okkisokuho.com/127.0.0.1#5335 +ipset=/okkisokuho.com/gfwlist +server=/fflick.com/127.0.0.1#5335 +ipset=/fflick.com/gfwlist +server=/episodic.com/127.0.0.1#5335 +ipset=/episodic.com/gfwlist +server=/udndata.com/127.0.0.1#5335 +ipset=/udndata.com/gfwlist +server=/paidpornsites.com/127.0.0.1#5335 +ipset=/paidpornsites.com/gfwlist +server=/ganjingworld.com/127.0.0.1#5335 +ipset=/ganjingworld.com/gfwlist +server=/needforspeedoverdrive.com/127.0.0.1#5335 +ipset=/needforspeedoverdrive.com/gfwlist +server=/myfappening.org/127.0.0.1#5335 +ipset=/myfappening.org/gfwlist +server=/bmwchampionshipusa.com/127.0.0.1#5335 +ipset=/bmwchampionshipusa.com/gfwlist +server=/mastercard.hu/127.0.0.1#5335 +ipset=/mastercard.hu/gfwlist +server=/cherrynudes.com/127.0.0.1#5335 +ipset=/cherrynudes.com/gfwlist +server=/icloud.lv/127.0.0.1#5335 +ipset=/icloud.lv/gfwlist +server=/twnextdigital.com/127.0.0.1#5335 +ipset=/twnextdigital.com/gfwlist +server=/2013beatshdcybermonday.com/127.0.0.1#5335 +ipset=/2013beatshdcybermonday.com/gfwlist +server=/acgdg.com/127.0.0.1#5335 +ipset=/acgdg.com/gfwlist +server=/fuckmypakistanigf.com/127.0.0.1#5335 +ipset=/fuckmypakistanigf.com/gfwlist +server=/salesforcemarketingcloud.com/127.0.0.1#5335 +ipset=/salesforcemarketingcloud.com/gfwlist +server=/nubilesunscripted.com/127.0.0.1#5335 +ipset=/nubilesunscripted.com/gfwlist +server=/crossmediapanel.com/127.0.0.1#5335 +ipset=/crossmediapanel.com/gfwlist +server=/coova.net/127.0.0.1#5335 +ipset=/coova.net/gfwlist +server=/purelyceleb.com/127.0.0.1#5335 +ipset=/purelyceleb.com/gfwlist +server=/cookiechoices.org/127.0.0.1#5335 +ipset=/cookiechoices.org/gfwlist +server=/nekora.main.jp/127.0.0.1#5335 +ipset=/nekora.main.jp/gfwlist +server=/ieeecsc.org/127.0.0.1#5335 +ipset=/ieeecsc.org/gfwlist +server=/smpte.org/127.0.0.1#5335 +ipset=/smpte.org/gfwlist +server=/google.gr/127.0.0.1#5335 +ipset=/google.gr/gfwlist +server=/codespot.com/127.0.0.1#5335 +ipset=/codespot.com/gfwlist +server=/cobrasearch.com/127.0.0.1#5335 +ipset=/cobrasearch.com/gfwlist +server=/ciscowebseminars.com/127.0.0.1#5335 +ipset=/ciscowebseminars.com/gfwlist +server=/ixxx.com/127.0.0.1#5335 +ipset=/ixxx.com/gfwlist +server=/chronicle.security/127.0.0.1#5335 +ipset=/chronicle.security/gfwlist +server=/intel.sg/127.0.0.1#5335 +ipset=/intel.sg/gfwlist +server=/onlinemonsterbeatsonsale.com/127.0.0.1#5335 +ipset=/onlinemonsterbeatsonsale.com/gfwlist +server=/steam.cdn.orcon.net.nz/127.0.0.1#5335 +ipset=/steam.cdn.orcon.net.nz/gfwlist +server=/mastercard.md/127.0.0.1#5335 +ipset=/mastercard.md/gfwlist +server=/hbrowse.com/127.0.0.1#5335 +ipset=/hbrowse.com/gfwlist +server=/nutramigen.net/127.0.0.1#5335 +ipset=/nutramigen.net/gfwlist +server=/2ch.net/127.0.0.1#5335 +ipset=/2ch.net/gfwlist +server=/mini-antilles.fr/127.0.0.1#5335 +ipset=/mini-antilles.fr/gfwlist +server=/grandepornogratis.com/127.0.0.1#5335 +ipset=/grandepornogratis.com/gfwlist +server=/5ch.net/127.0.0.1#5335 +ipset=/5ch.net/gfwlist +server=/mzstatic.com/127.0.0.1#5335 +ipset=/mzstatic.com/gfwlist +server=/winticket.jp/127.0.0.1#5335 +ipset=/winticket.jp/gfwlist +server=/bumptunes.com/127.0.0.1#5335 +ipset=/bumptunes.com/gfwlist +server=/buycheapbeatsdreuk.com/127.0.0.1#5335 +ipset=/buycheapbeatsdreuk.com/gfwlist +server=/foxnewsradio.com/127.0.0.1#5335 +ipset=/foxnewsradio.com/gfwlist +server=/bumptop.net/127.0.0.1#5335 +ipset=/bumptop.net/gfwlist +server=/bumptop.com/127.0.0.1#5335 +ipset=/bumptop.com/gfwlist +server=/javpost.net/127.0.0.1#5335 +ipset=/javpost.net/gfwlist +server=/adulterfree.com/127.0.0.1#5335 +ipset=/adulterfree.com/gfwlist +server=/bumptop.ca/127.0.0.1#5335 +ipset=/bumptop.ca/gfwlist +server=/javcl.com/127.0.0.1#5335 +ipset=/javcl.com/gfwlist +server=/foxtelevisionstations.com/127.0.0.1#5335 +ipset=/foxtelevisionstations.com/gfwlist +server=/bmw-world.com/127.0.0.1#5335 +ipset=/bmw-world.com/gfwlist +server=/binance.cc/127.0.0.1#5335 +ipset=/binance.cc/gfwlist +server=/doujinland.info/127.0.0.1#5335 +ipset=/doujinland.info/gfwlist +server=/streamxxx.tv/127.0.0.1#5335 +ipset=/streamxxx.tv/gfwlist +server=/ebay.com.hk/127.0.0.1#5335 +ipset=/ebay.com.hk/gfwlist +server=/apture.com/127.0.0.1#5335 +ipset=/apture.com/gfwlist +server=/zooskoolvideos.com/127.0.0.1#5335 +ipset=/zooskoolvideos.com/gfwlist +server=/6park.com/127.0.0.1#5335 +ipset=/6park.com/gfwlist +server=/himalaya-exchange.zendesk.com/127.0.0.1#5335 +ipset=/himalaya-exchange.zendesk.com/gfwlist +server=/appbridge.it/127.0.0.1#5335 +ipset=/appbridge.it/gfwlist +server=/twinkybf.com/127.0.0.1#5335 +ipset=/twinkybf.com/gfwlist +server=/ipod.eu/127.0.0.1#5335 +ipset=/ipod.eu/gfwlist +server=/nikeshoes4u.com/127.0.0.1#5335 +ipset=/nikeshoes4u.com/gfwlist +server=/foxdeportes.tv/127.0.0.1#5335 +ipset=/foxdeportes.tv/gfwlist +server=/triballo.net/127.0.0.1#5335 +ipset=/triballo.net/gfwlist +server=/scholar.google.si/127.0.0.1#5335 +ipset=/scholar.google.si/gfwlist +server=/curvyerotic.com/127.0.0.1#5335 +ipset=/curvyerotic.com/gfwlist +server=/arabidopsis.org/127.0.0.1#5335 +ipset=/arabidopsis.org/gfwlist +server=/nflxso.net/127.0.0.1#5335 +ipset=/nflxso.net/gfwlist +server=/1ucrs.com/127.0.0.1#5335 +ipset=/1ucrs.com/gfwlist +server=/dreammovies.com/127.0.0.1#5335 +ipset=/dreammovies.com/gfwlist +server=/ciscokinetic.com/127.0.0.1#5335 +ipset=/ciscokinetic.com/gfwlist +server=/shopee.ph/127.0.0.1#5335 +ipset=/shopee.ph/gfwlist +server=/6xxxvideos.com/127.0.0.1#5335 +ipset=/6xxxvideos.com/gfwlist +server=/stonefoxproductions.com/127.0.0.1#5335 +ipset=/stonefoxproductions.com/gfwlist +server=/google.to/127.0.0.1#5335 +ipset=/google.to/gfwlist +server=/myoctocat.com/127.0.0.1#5335 +ipset=/myoctocat.com/gfwlist +server=/google.tn/127.0.0.1#5335 +ipset=/google.tn/gfwlist +server=/google.tm/127.0.0.1#5335 +ipset=/google.tm/gfwlist +server=/tubexclips.com/127.0.0.1#5335 +ipset=/tubexclips.com/gfwlist +server=/beatdrdres.com/127.0.0.1#5335 +ipset=/beatdrdres.com/gfwlist +server=/vmwareidentity.com/127.0.0.1#5335 +ipset=/vmwareidentity.com/gfwlist +server=/paypalhere.org/127.0.0.1#5335 +ipset=/paypalhere.org/gfwlist +server=/firestone.com.br/127.0.0.1#5335 +ipset=/firestone.com.br/gfwlist +server=/pornhub.org/127.0.0.1#5335 +ipset=/pornhub.org/gfwlist +server=/91avfuli.com/127.0.0.1#5335 +ipset=/91avfuli.com/gfwlist +server=/korewaeroi.com/127.0.0.1#5335 +ipset=/korewaeroi.com/gfwlist +server=/pchomeec.tw/127.0.0.1#5335 +ipset=/pchomeec.tw/gfwlist +server=/google.si/127.0.0.1#5335 +ipset=/google.si/gfwlist +server=/eromazofu.com/127.0.0.1#5335 +ipset=/eromazofu.com/gfwlist +server=/familysimulator.com/127.0.0.1#5335 +ipset=/familysimulator.com/gfwlist +server=/xn--7hv594h.com/127.0.0.1#5335 +ipset=/xn--7hv594h.com/gfwlist +server=/internetofeverything.com/127.0.0.1#5335 +ipset=/internetofeverything.com/gfwlist +server=/casquebeatssolo.net/127.0.0.1#5335 +ipset=/casquebeatssolo.net/gfwlist +server=/google.pt/127.0.0.1#5335 +ipset=/google.pt/gfwlist +server=/gtlsca.nat.gov.tw/127.0.0.1#5335 +ipset=/gtlsca.nat.gov.tw/gfwlist +server=/fracebook.com/127.0.0.1#5335 +ipset=/fracebook.com/gfwlist +server=/webofknowledge.com/127.0.0.1#5335 +ipset=/webofknowledge.com/gfwlist +server=/sextubespot.com/127.0.0.1#5335 +ipset=/sextubespot.com/gfwlist +server=/applemasters.info/127.0.0.1#5335 +ipset=/applemasters.info/gfwlist +server=/bestbuystores.com/127.0.0.1#5335 +ipset=/bestbuystores.com/gfwlist +server=/nikebetterworld.com/127.0.0.1#5335 +ipset=/nikebetterworld.com/gfwlist +server=/pearsoned.com/127.0.0.1#5335 +ipset=/pearsoned.com/gfwlist +server=/init.shop/127.0.0.1#5335 +ipset=/init.shop/gfwlist +server=/4kporn.xxx/127.0.0.1#5335 +ipset=/4kporn.xxx/gfwlist +server=/1lib.pl/127.0.0.1#5335 +ipset=/1lib.pl/gfwlist +server=/google.nu/127.0.0.1#5335 +ipset=/google.nu/gfwlist +server=/visa.co.cr/127.0.0.1#5335 +ipset=/visa.co.cr/gfwlist +server=/monster-beats-headphones.com/127.0.0.1#5335 +ipset=/monster-beats-headphones.com/gfwlist +server=/videochampion.com/127.0.0.1#5335 +ipset=/videochampion.com/gfwlist +server=/strepsils.hr/127.0.0.1#5335 +ipset=/strepsils.hr/gfwlist +server=/google.nl/127.0.0.1#5335 +ipset=/google.nl/gfwlist +server=/kidspot.com.au/127.0.0.1#5335 +ipset=/kidspot.com.au/gfwlist +server=/gitbook.io/127.0.0.1#5335 +ipset=/gitbook.io/gfwlist +server=/intel.com.ar/127.0.0.1#5335 +ipset=/intel.com.ar/gfwlist +server=/smashed.xxx/127.0.0.1#5335 +ipset=/smashed.xxx/gfwlist +server=/verisign.fr/127.0.0.1#5335 +ipset=/verisign.fr/gfwlist +server=/google.mg/127.0.0.1#5335 +ipset=/google.mg/gfwlist +server=/waterfox.net/127.0.0.1#5335 +ipset=/waterfox.net/gfwlist +server=/javfree.sh/127.0.0.1#5335 +ipset=/javfree.sh/gfwlist +server=/marketo.com/127.0.0.1#5335 +ipset=/marketo.com/gfwlist +server=/onlyindianporn2.com/127.0.0.1#5335 +ipset=/onlyindianporn2.com/gfwlist +server=/disney.com.au/127.0.0.1#5335 +ipset=/disney.com.au/gfwlist +server=/mini.com/127.0.0.1#5335 +ipset=/mini.com/gfwlist +server=/ebay.org/127.0.0.1#5335 +ipset=/ebay.org/gfwlist +server=/thesundaytimes.co.uk/127.0.0.1#5335 +ipset=/thesundaytimes.co.uk/gfwlist +server=/xxvideo.mobi/127.0.0.1#5335 +ipset=/xxvideo.mobi/gfwlist +server=/javqd.com/127.0.0.1#5335 +ipset=/javqd.com/gfwlist +server=/gfpornvideos.com/127.0.0.1#5335 +ipset=/gfpornvideos.com/gfwlist +server=/guccitimeless.com/127.0.0.1#5335 +ipset=/guccitimeless.com/gfwlist +server=/google.kz/127.0.0.1#5335 +ipset=/google.kz/gfwlist +server=/google.ki/127.0.0.1#5335 +ipset=/google.ki/gfwlist +server=/shufflesex.com/127.0.0.1#5335 +ipset=/shufflesex.com/gfwlist +server=/hentaimama.io/127.0.0.1#5335 +ipset=/hentaimama.io/gfwlist +server=/ieeesmc.org/127.0.0.1#5335 +ipset=/ieeesmc.org/gfwlist +server=/google.jo/127.0.0.1#5335 +ipset=/google.jo/gfwlist +server=/beatsbydrecasquesfr.com/127.0.0.1#5335 +ipset=/beatsbydrecasquesfr.com/gfwlist +server=/applestore.com.my/127.0.0.1#5335 +ipset=/applestore.com.my/gfwlist +server=/powerofresolve.ca/127.0.0.1#5335 +ipset=/powerofresolve.ca/gfwlist +server=/google.im/127.0.0.1#5335 +ipset=/google.im/gfwlist +server=/google.ie/127.0.0.1#5335 +ipset=/google.ie/gfwlist +server=/showybeauty.com/127.0.0.1#5335 +ipset=/showybeauty.com/gfwlist +server=/pinterest.ph/127.0.0.1#5335 +ipset=/pinterest.ph/gfwlist +server=/travelex.com/127.0.0.1#5335 +ipset=/travelex.com/gfwlist +server=/bmwccrc.ca/127.0.0.1#5335 +ipset=/bmwccrc.ca/gfwlist +server=/foxsoccer.net/127.0.0.1#5335 +ipset=/foxsoccer.net/gfwlist +server=/google.hr/127.0.0.1#5335 +ipset=/google.hr/gfwlist +server=/visa.co.ve/127.0.0.1#5335 +ipset=/visa.co.ve/gfwlist +server=/google.gl/127.0.0.1#5335 +ipset=/google.gl/gfwlist +server=/anigema.jp/127.0.0.1#5335 +ipset=/anigema.jp/gfwlist +server=/google.gg/127.0.0.1#5335 +ipset=/google.gg/gfwlist +server=/google.ge/127.0.0.1#5335 +ipset=/google.ge/gfwlist +server=/yahoo.dm/127.0.0.1#5335 +ipset=/yahoo.dm/gfwlist +server=/repo.new/127.0.0.1#5335 +ipset=/repo.new/gfwlist +server=/duckduckgo.co/127.0.0.1#5335 +ipset=/duckduckgo.co/gfwlist +server=/softbank-ipo.com/127.0.0.1#5335 +ipset=/softbank-ipo.com/gfwlist +server=/eroero69.work/127.0.0.1#5335 +ipset=/eroero69.work/gfwlist +server=/google.fi/127.0.0.1#5335 +ipset=/google.fi/gfwlist +server=/ebaysocial.com/127.0.0.1#5335 +ipset=/ebaysocial.com/gfwlist +server=/cartoon3thumbs.com/127.0.0.1#5335 +ipset=/cartoon3thumbs.com/gfwlist +server=/pornper.com/127.0.0.1#5335 +ipset=/pornper.com/gfwlist +server=/pearsonclinical.com.br/127.0.0.1#5335 +ipset=/pearsonclinical.com.br/gfwlist +server=/google.es/127.0.0.1#5335 +ipset=/google.es/gfwlist +server=/boyloves.cc/127.0.0.1#5335 +ipset=/boyloves.cc/gfwlist +server=/fbf8.com/127.0.0.1#5335 +ipset=/fbf8.com/gfwlist +server=/automobile.fr/127.0.0.1#5335 +ipset=/automobile.fr/gfwlist +server=/applestore.co.jp/127.0.0.1#5335 +ipset=/applestore.co.jp/gfwlist +server=/similar-porn.fun/127.0.0.1#5335 +ipset=/similar-porn.fun/gfwlist +server=/scat-enema.com/127.0.0.1#5335 +ipset=/scat-enema.com/gfwlist +server=/secom.co.jp/127.0.0.1#5335 +ipset=/secom.co.jp/gfwlist +server=/foxfdm.com/127.0.0.1#5335 +ipset=/foxfdm.com/gfwlist +server=/pornheed.com/127.0.0.1#5335 +ipset=/pornheed.com/gfwlist +server=/bmw-special-sales.com/127.0.0.1#5335 +ipset=/bmw-special-sales.com/gfwlist +server=/google.dj/127.0.0.1#5335 +ipset=/google.dj/gfwlist +server=/skysports.ie/127.0.0.1#5335 +ipset=/skysports.ie/gfwlist +server=/remirepo.net/127.0.0.1#5335 +ipset=/remirepo.net/gfwlist +server=/tubedna.com/127.0.0.1#5335 +ipset=/tubedna.com/gfwlist +server=/myfoxlubbock.com/127.0.0.1#5335 +ipset=/myfoxlubbock.com/gfwlist +server=/acaric.co.jp/127.0.0.1#5335 +ipset=/acaric.co.jp/gfwlist +server=/apple.ch/127.0.0.1#5335 +ipset=/apple.ch/gfwlist +server=/opensource.guide/127.0.0.1#5335 +ipset=/opensource.guide/gfwlist +server=/kindindianporn.com/127.0.0.1#5335 +ipset=/kindindianporn.com/gfwlist +server=/pvp.tv/127.0.0.1#5335 +ipset=/pvp.tv/gfwlist +server=/scholar.google.cl/127.0.0.1#5335 +ipset=/scholar.google.cl/gfwlist +server=/bmw-connecteddrive.hu/127.0.0.1#5335 +ipset=/bmw-connecteddrive.hu/gfwlist +server=/youtube.iq/127.0.0.1#5335 +ipset=/youtube.iq/gfwlist +server=/chomp.com/127.0.0.1#5335 +ipset=/chomp.com/gfwlist +server=/nikefootballcleats.com/127.0.0.1#5335 +ipset=/nikefootballcleats.com/gfwlist +server=/blznav.akamaized.net/127.0.0.1#5335 +ipset=/blznav.akamaized.net/gfwlist +server=/google.com.tr/127.0.0.1#5335 +ipset=/google.com.tr/gfwlist +server=/collegepornonly.com/127.0.0.1#5335 +ipset=/collegepornonly.com/gfwlist +server=/bloombergtradingchallenge.com/127.0.0.1#5335 +ipset=/bloombergtradingchallenge.com/gfwlist +server=/4ertik.one/127.0.0.1#5335 +ipset=/4ertik.one/gfwlist +server=/leagueoflegendsscripts.com/127.0.0.1#5335 +ipset=/leagueoflegendsscripts.com/gfwlist +server=/filmsexeporno.com/127.0.0.1#5335 +ipset=/filmsexeporno.com/gfwlist +server=/bridgestonevan.com/127.0.0.1#5335 +ipset=/bridgestonevan.com/gfwlist +server=/ipod.co.nz/127.0.0.1#5335 +ipset=/ipod.co.nz/gfwlist +server=/teen-lover.net/127.0.0.1#5335 +ipset=/teen-lover.net/gfwlist +server=/facebook.br/127.0.0.1#5335 +ipset=/facebook.br/gfwlist +server=/google.com.pr/127.0.0.1#5335 +ipset=/google.com.pr/gfwlist +server=/sweetandmaxwell.co.uk/127.0.0.1#5335 +ipset=/sweetandmaxwell.co.uk/gfwlist +server=/pinterest.ie/127.0.0.1#5335 +ipset=/pinterest.ie/gfwlist +server=/peachyforum.com/127.0.0.1#5335 +ipset=/peachyforum.com/gfwlist +server=/google.com.pk/127.0.0.1#5335 +ipset=/google.com.pk/gfwlist +server=/google.com.ph/127.0.0.1#5335 +ipset=/google.com.ph/gfwlist +server=/xnxx-teens.com/127.0.0.1#5335 +ipset=/xnxx-teens.com/gfwlist +server=/pornheli.com/127.0.0.1#5335 +ipset=/pornheli.com/gfwlist +server=/google.com.pa/127.0.0.1#5335 +ipset=/google.com.pa/gfwlist +server=/google.com.om/127.0.0.1#5335 +ipset=/google.com.om/gfwlist +server=/google.com.ng/127.0.0.1#5335 +ipset=/google.com.ng/gfwlist +server=/top100sexgames.com/127.0.0.1#5335 +ipset=/top100sexgames.com/gfwlist +server=/horse4sex.com/127.0.0.1#5335 +ipset=/horse4sex.com/gfwlist +server=/ebay.ph/127.0.0.1#5335 +ipset=/ebay.ph/gfwlist +server=/bookmark.xxx/127.0.0.1#5335 +ipset=/bookmark.xxx/gfwlist +server=/ero-manga-platinum.net/127.0.0.1#5335 +ipset=/ero-manga-platinum.net/gfwlist +server=/applecomputer.com.tw/127.0.0.1#5335 +ipset=/applecomputer.com.tw/gfwlist +server=/javdove8.xyz/127.0.0.1#5335 +ipset=/javdove8.xyz/gfwlist +server=/visa.co.id/127.0.0.1#5335 +ipset=/visa.co.id/gfwlist +server=/imoviegallery.com/127.0.0.1#5335 +ipset=/imoviegallery.com/gfwlist +server=/getlantern.org/127.0.0.1#5335 +ipset=/getlantern.org/gfwlist +server=/pleasuregirl.net/127.0.0.1#5335 +ipset=/pleasuregirl.net/gfwlist +server=/macmini.com/127.0.0.1#5335 +ipset=/macmini.com/gfwlist +server=/data.com/127.0.0.1#5335 +ipset=/data.com/gfwlist +server=/google.com.jm/127.0.0.1#5335 +ipset=/google.com.jm/gfwlist +server=/static9.net.au/127.0.0.1#5335 +ipset=/static9.net.au/gfwlist +server=/google.com.gi/127.0.0.1#5335 +ipset=/google.com.gi/gfwlist +server=/iphine.com/127.0.0.1#5335 +ipset=/iphine.com/gfwlist +server=/sexgamesclub.com/127.0.0.1#5335 +ipset=/sexgamesclub.com/gfwlist +server=/graphengine.io/127.0.0.1#5335 +ipset=/graphengine.io/gfwlist +server=/alivevue.com/127.0.0.1#5335 +ipset=/alivevue.com/gfwlist +server=/google.com.fj/127.0.0.1#5335 +ipset=/google.com.fj/gfwlist +server=/zooporno.biz/127.0.0.1#5335 +ipset=/zooporno.biz/gfwlist +server=/needforspeedshowdown.com/127.0.0.1#5335 +ipset=/needforspeedshowdown.com/gfwlist +server=/miniargentina.com/127.0.0.1#5335 +ipset=/miniargentina.com/gfwlist +server=/google.com.et/127.0.0.1#5335 +ipset=/google.com.et/gfwlist +server=/meijinsen.jp/127.0.0.1#5335 +ipset=/meijinsen.jp/gfwlist +server=/volvotrucks.ma/127.0.0.1#5335 +ipset=/volvotrucks.ma/gfwlist +server=/headset987.com/127.0.0.1#5335 +ipset=/headset987.com/gfwlist +server=/attinternetservice.com/127.0.0.1#5335 +ipset=/attinternetservice.com/gfwlist +server=/google.com.ec/127.0.0.1#5335 +ipset=/google.com.ec/gfwlist +server=/mobileinternational.com/127.0.0.1#5335 +ipset=/mobileinternational.com/gfwlist +server=/mini-connected.fr/127.0.0.1#5335 +ipset=/mini-connected.fr/gfwlist +server=/bridgestonecomercial.com.co/127.0.0.1#5335 +ipset=/bridgestonecomercial.com.co/gfwlist +server=/staticflickr.com/127.0.0.1#5335 +ipset=/staticflickr.com/gfwlist +server=/illusion.co.jp/127.0.0.1#5335 +ipset=/illusion.co.jp/gfwlist +server=/hdtube.co/127.0.0.1#5335 +ipset=/hdtube.co/gfwlist +server=/linuxfoundation.org/127.0.0.1#5335 +ipset=/linuxfoundation.org/gfwlist +server=/ciscoturk.net/127.0.0.1#5335 +ipset=/ciscoturk.net/gfwlist +server=/hentaistream.com/127.0.0.1#5335 +ipset=/hentaistream.com/gfwlist +server=/xn--ztsq84g.cn/127.0.0.1#5335 +ipset=/xn--ztsq84g.cn/gfwlist +server=/ladybaba.net/127.0.0.1#5335 +ipset=/ladybaba.net/gfwlist +server=/google.com.co/127.0.0.1#5335 +ipset=/google.com.co/gfwlist +server=/doubleclick.com/127.0.0.1#5335 +ipset=/doubleclick.com/gfwlist +server=/illusionl.com/127.0.0.1#5335 +ipset=/illusionl.com/gfwlist +server=/sbnation.com/127.0.0.1#5335 +ipset=/sbnation.com/gfwlist +server=/outdoorpublicsex.com/127.0.0.1#5335 +ipset=/outdoorpublicsex.com/gfwlist +server=/bmw.com.br/127.0.0.1#5335 +ipset=/bmw.com.br/gfwlist +server=/mox.moe/127.0.0.1#5335 +ipset=/mox.moe/gfwlist +server=/wifi-mx.com/127.0.0.1#5335 +ipset=/wifi-mx.com/gfwlist +server=/rpmfusion.org/127.0.0.1#5335 +ipset=/rpmfusion.org/gfwlist +server=/pornsites.com/127.0.0.1#5335 +ipset=/pornsites.com/gfwlist +server=/eastweek.com.hk/127.0.0.1#5335 +ipset=/eastweek.com.hk/gfwlist +server=/vl4x.net/127.0.0.1#5335 +ipset=/vl4x.net/gfwlist +server=/ouroath.com/127.0.0.1#5335 +ipset=/ouroath.com/gfwlist +server=/google.com.ar/127.0.0.1#5335 +ipset=/google.com.ar/gfwlist +server=/quatrum.com.br/127.0.0.1#5335 +ipset=/quatrum.com.br/gfwlist +server=/cybermondaybeats4sale.com/127.0.0.1#5335 +ipset=/cybermondaybeats4sale.com/gfwlist +server=/clipcake.com/127.0.0.1#5335 +ipset=/clipcake.com/gfwlist +server=/pagecdn.com/127.0.0.1#5335 +ipset=/pagecdn.com/gfwlist +server=/deviantart.net/127.0.0.1#5335 +ipset=/deviantart.net/gfwlist +server=/8teenxxx.com/127.0.0.1#5335 +ipset=/8teenxxx.com/gfwlist +server=/videos-rockstargames-com.akamaized.net/127.0.0.1#5335 +ipset=/videos-rockstargames-com.akamaized.net/gfwlist +server=/google.co.zw/127.0.0.1#5335 +ipset=/google.co.zw/gfwlist +server=/nikegolf.ca/127.0.0.1#5335 +ipset=/nikegolf.ca/gfwlist +server=/egta.com/127.0.0.1#5335 +ipset=/egta.com/gfwlist +server=/dungeonkeeper.com.cn/127.0.0.1#5335 +ipset=/dungeonkeeper.com.cn/gfwlist +server=/coinonecore.com/127.0.0.1#5335 +ipset=/coinonecore.com/gfwlist +server=/google.co.za/127.0.0.1#5335 +ipset=/google.co.za/gfwlist +server=/mini.md/127.0.0.1#5335 +ipset=/mini.md/gfwlist +server=/verizon.net/127.0.0.1#5335 +ipset=/verizon.net/gfwlist +server=/porntube.com/127.0.0.1#5335 +ipset=/porntube.com/gfwlist +server=/google.co.ve/127.0.0.1#5335 +ipset=/google.co.ve/gfwlist +server=/flashtranny.com/127.0.0.1#5335 +ipset=/flashtranny.com/gfwlist +server=/minisovietam.vn/127.0.0.1#5335 +ipset=/minisovietam.vn/gfwlist +server=/google.co.tz/127.0.0.1#5335 +ipset=/google.co.tz/gfwlist +server=/verygoodnike.com/127.0.0.1#5335 +ipset=/verygoodnike.com/gfwlist +server=/google.co.nz/127.0.0.1#5335 +ipset=/google.co.nz/gfwlist +server=/facebookhub.com/127.0.0.1#5335 +ipset=/facebookhub.com/gfwlist +server=/google.co.ls/127.0.0.1#5335 +ipset=/google.co.ls/gfwlist +server=/google.co.kr/127.0.0.1#5335 +ipset=/google.co.kr/gfwlist +server=/paypal-hrsystem.com/127.0.0.1#5335 +ipset=/paypal-hrsystem.com/gfwlist +server=/sexpornimg.com/127.0.0.1#5335 +ipset=/sexpornimg.com/gfwlist +server=/google.com.vn/127.0.0.1#5335 +ipset=/google.com.vn/gfwlist +server=/cloudvolumes.com/127.0.0.1#5335 +ipset=/cloudvolumes.com/gfwlist +server=/geinoueroch.com/127.0.0.1#5335 +ipset=/geinoueroch.com/gfwlist +server=/bloombergmedia.com/127.0.0.1#5335 +ipset=/bloombergmedia.com/gfwlist +server=/thesun.co.uk/127.0.0.1#5335 +ipset=/thesun.co.uk/gfwlist +server=/bokepseks.org/127.0.0.1#5335 +ipset=/bokepseks.org/gfwlist +server=/everia.club/127.0.0.1#5335 +ipset=/everia.club/gfwlist +server=/moxing.mobi/127.0.0.1#5335 +ipset=/moxing.mobi/gfwlist +server=/itaeromanga.com/127.0.0.1#5335 +ipset=/itaeromanga.com/gfwlist +server=/vidspornoduro.com/127.0.0.1#5335 +ipset=/vidspornoduro.com/gfwlist +server=/vfsco.lt/127.0.0.1#5335 +ipset=/vfsco.lt/gfwlist +server=/negoziomonsterbeats.com/127.0.0.1#5335 +ipset=/negoziomonsterbeats.com/gfwlist +server=/pirouvr.com/127.0.0.1#5335 +ipset=/pirouvr.com/gfwlist +server=/xnxx-sex-videos.com/127.0.0.1#5335 +ipset=/xnxx-sex-videos.com/gfwlist +server=/video.fc2.com/127.0.0.1#5335 +ipset=/video.fc2.com/gfwlist +server=/google.cm/127.0.0.1#5335 +ipset=/google.cm/gfwlist +server=/origin.com/127.0.0.1#5335 +ipset=/origin.com/gfwlist +server=/appleid.com/127.0.0.1#5335 +ipset=/appleid.com/gfwlist +server=/monsterproduct.net/127.0.0.1#5335 +ipset=/monsterproduct.net/gfwlist +server=/google.ch/127.0.0.1#5335 +ipset=/google.ch/gfwlist +server=/skyporn.online/127.0.0.1#5335 +ipset=/skyporn.online/gfwlist +server=/babestube.com/127.0.0.1#5335 +ipset=/babestube.com/gfwlist +server=/masturbate2gether.com/127.0.0.1#5335 +ipset=/masturbate2gether.com/gfwlist +server=/7tb.cc/127.0.0.1#5335 +ipset=/7tb.cc/gfwlist +server=/porn-bokep.com/127.0.0.1#5335 +ipset=/porn-bokep.com/gfwlist +server=/moapi1.online/127.0.0.1#5335 +ipset=/moapi1.online/gfwlist +server=/google.cf/127.0.0.1#5335 +ipset=/google.cf/gfwlist +server=/newscareers.co.uk/127.0.0.1#5335 +ipset=/newscareers.co.uk/gfwlist +server=/scholar.google.co.il/127.0.0.1#5335 +ipset=/scholar.google.co.il/gfwlist +server=/google.cd/127.0.0.1#5335 +ipset=/google.cd/gfwlist +server=/redzonechannel.com/127.0.0.1#5335 +ipset=/redzonechannel.com/gfwlist +server=/google.bi/127.0.0.1#5335 +ipset=/google.bi/gfwlist +server=/elpadrote.com/127.0.0.1#5335 +ipset=/elpadrote.com/gfwlist +server=/bridgestone-bandag.com/127.0.0.1#5335 +ipset=/bridgestone-bandag.com/gfwlist +server=/google.ba/127.0.0.1#5335 +ipset=/google.ba/gfwlist +server=/bmwcitychallenge.com/127.0.0.1#5335 +ipset=/bmwcitychallenge.com/gfwlist +server=/meta.com/127.0.0.1#5335 +ipset=/meta.com/gfwlist +server=/illusionn3.com/127.0.0.1#5335 +ipset=/illusionn3.com/gfwlist +server=/dobbyporn.com/127.0.0.1#5335 +ipset=/dobbyporn.com/gfwlist +server=/google.am/127.0.0.1#5335 +ipset=/google.am/gfwlist +server=/shopee.co.th/127.0.0.1#5335 +ipset=/shopee.co.th/gfwlist +server=/facebookck.com/127.0.0.1#5335 +ipset=/facebookck.com/gfwlist +server=/ministeagathe.com/127.0.0.1#5335 +ipset=/ministeagathe.com/gfwlist +server=/google.al/127.0.0.1#5335 +ipset=/google.al/gfwlist +server=/lih.kg/127.0.0.1#5335 +ipset=/lih.kg/gfwlist +server=/google.ad/127.0.0.1#5335 +ipset=/google.ad/gfwlist +server=/travelex.co.jp/127.0.0.1#5335 +ipset=/travelex.co.jp/gfwlist +server=/51pincha.cc/127.0.0.1#5335 +ipset=/51pincha.cc/gfwlist +server=/volvobuses.ph/127.0.0.1#5335 +ipset=/volvobuses.ph/gfwlist +server=/visagiftcard.us/127.0.0.1#5335 +ipset=/visagiftcard.us/gfwlist +server=/starbucks.ph/127.0.0.1#5335 +ipset=/starbucks.ph/gfwlist +server=/mirrorsedge.jp/127.0.0.1#5335 +ipset=/mirrorsedge.jp/gfwlist +server=/ebayheels.com/127.0.0.1#5335 +ipset=/ebayheels.com/gfwlist +server=/douwriteright.com/127.0.0.1#5335 +ipset=/douwriteright.com/gfwlist +server=/fdacebook.info/127.0.0.1#5335 +ipset=/fdacebook.info/gfwlist +server=/nintendonyc.com/127.0.0.1#5335 +ipset=/nintendonyc.com/gfwlist +server=/hentaidirectory.org/127.0.0.1#5335 +ipset=/hentaidirectory.org/gfwlist +server=/r18.clickme.net/127.0.0.1#5335 +ipset=/r18.clickme.net/gfwlist +server=/hnalady.com/127.0.0.1#5335 +ipset=/hnalady.com/gfwlist +server=/svscomics.com/127.0.0.1#5335 +ipset=/svscomics.com/gfwlist +server=/collection-3d.com/127.0.0.1#5335 +ipset=/collection-3d.com/gfwlist +server=/barium-enema.com/127.0.0.1#5335 +ipset=/barium-enema.com/gfwlist +server=/elrepo.org/127.0.0.1#5335 +ipset=/elrepo.org/gfwlist +server=/milfbundle.com/127.0.0.1#5335 +ipset=/milfbundle.com/gfwlist +server=/new.day/127.0.0.1#5335 +ipset=/new.day/gfwlist +server=/gfx.ms/127.0.0.1#5335 +ipset=/gfx.ms/gfwlist +server=/brazzers.com/127.0.0.1#5335 +ipset=/brazzers.com/gfwlist +server=/cougarsexmovies.com/127.0.0.1#5335 +ipset=/cougarsexmovies.com/gfwlist +server=/iam.soy/127.0.0.1#5335 +ipset=/iam.soy/gfwlist +server=/passiontimes.hk/127.0.0.1#5335 +ipset=/passiontimes.hk/gfwlist +server=/hey.boo/127.0.0.1#5335 +ipset=/hey.boo/gfwlist +server=/sony.com.sg/127.0.0.1#5335 +ipset=/sony.com.sg/gfwlist +server=/xoteens.com/127.0.0.1#5335 +ipset=/xoteens.com/gfwlist +server=/youtube.es/127.0.0.1#5335 +ipset=/youtube.es/gfwlist +server=/illianacomputerrecycling.com/127.0.0.1#5335 +ipset=/illianacomputerrecycling.com/gfwlist +server=/yahoo.nu/127.0.0.1#5335 +ipset=/yahoo.nu/gfwlist +server=/apole.com/127.0.0.1#5335 +ipset=/apole.com/gfwlist +server=/visa.ie/127.0.0.1#5335 +ipset=/visa.ie/gfwlist +server=/mini.co.id/127.0.0.1#5335 +ipset=/mini.co.id/gfwlist +server=/zooredtube.com/127.0.0.1#5335 +ipset=/zooredtube.com/gfwlist +server=/fireemblemawakening.com/127.0.0.1#5335 +ipset=/fireemblemawakening.com/gfwlist +server=/easports.jp/127.0.0.1#5335 +ipset=/easports.jp/gfwlist +server=/oxfordartonline.com/127.0.0.1#5335 +ipset=/oxfordartonline.com/gfwlist +server=/finishinfo.com/127.0.0.1#5335 +ipset=/finishinfo.com/gfwlist +server=/durex.nl/127.0.0.1#5335 +ipset=/durex.nl/gfwlist +server=/sfx.ms/127.0.0.1#5335 +ipset=/sfx.ms/gfwlist +server=/telega.one/127.0.0.1#5335 +ipset=/telega.one/gfwlist +server=/googlesyndication.com/127.0.0.1#5335 +ipset=/googlesyndication.com/gfwlist +server=/bigtitsmodelsdirectory.com/127.0.0.1#5335 +ipset=/bigtitsmodelsdirectory.com/gfwlist +server=/cbsaavideo.com/127.0.0.1#5335 +ipset=/cbsaavideo.com/gfwlist +server=/googleadservices.com/127.0.0.1#5335 +ipset=/googleadservices.com/gfwlist +server=/wikisexguide.com/127.0.0.1#5335 +ipset=/wikisexguide.com/gfwlist +server=/esbeatsbydrebuy.com/127.0.0.1#5335 +ipset=/esbeatsbydrebuy.com/gfwlist +server=/google-analytics.com/127.0.0.1#5335 +ipset=/google-analytics.com/gfwlist +server=/happymeal.co.nz/127.0.0.1#5335 +ipset=/happymeal.co.nz/gfwlist +server=/v2ray.com/127.0.0.1#5335 +ipset=/v2ray.com/gfwlist +server=/ragnaporn.com/127.0.0.1#5335 +ipset=/ragnaporn.com/gfwlist +server=/foxrobots.com/127.0.0.1#5335 +ipset=/foxrobots.com/gfwlist +server=/dtci.co/127.0.0.1#5335 +ipset=/dtci.co/gfwlist +server=/blogspot.ro/127.0.0.1#5335 +ipset=/blogspot.ro/gfwlist +server=/bmw-connecteddrive.mx/127.0.0.1#5335 +ipset=/bmw-connecteddrive.mx/gfwlist +server=/bmwmagazine.de/127.0.0.1#5335 +ipset=/bmwmagazine.de/gfwlist +server=/spiritclubs.com/127.0.0.1#5335 +ipset=/spiritclubs.com/gfwlist +server=/adservice.google.com/127.0.0.1#5335 +ipset=/adservice.google.com/gfwlist +server=/mt-ssul1.com/127.0.0.1#5335 +ipset=/mt-ssul1.com/gfwlist +server=/kindleoasis.us/127.0.0.1#5335 +ipset=/kindleoasis.us/gfwlist +server=/bmw-motorrad.de/127.0.0.1#5335 +ipset=/bmw-motorrad.de/gfwlist +server=/applestore.co.ug/127.0.0.1#5335 +ipset=/applestore.co.ug/gfwlist +server=/ntdtv.ca/127.0.0.1#5335 +ipset=/ntdtv.ca/gfwlist +server=/100shmar.net/127.0.0.1#5335 +ipset=/100shmar.net/gfwlist +server=/xxxshame.com/127.0.0.1#5335 +ipset=/xxxshame.com/gfwlist +server=/vox.com/127.0.0.1#5335 +ipset=/vox.com/gfwlist +server=/icloud.org/127.0.0.1#5335 +ipset=/icloud.org/gfwlist +server=/brand-protection-team.com/127.0.0.1#5335 +ipset=/brand-protection-team.com/gfwlist +server=/potenza.jp/127.0.0.1#5335 +ipset=/potenza.jp/gfwlist +server=/pornhuub.xyz/127.0.0.1#5335 +ipset=/pornhuub.xyz/gfwlist +server=/acer-group.com/127.0.0.1#5335 +ipset=/acer-group.com/gfwlist +server=/colorprotechnology.com/127.0.0.1#5335 +ipset=/colorprotechnology.com/gfwlist +server=/disney.de/127.0.0.1#5335 +ipset=/disney.de/gfwlist +server=/porntop.com/127.0.0.1#5335 +ipset=/porntop.com/gfwlist +server=/youav.com/127.0.0.1#5335 +ipset=/youav.com/gfwlist +server=/blackfridaydrebeatsnew.com/127.0.0.1#5335 +ipset=/blackfridaydrebeatsnew.com/gfwlist +server=/monsterheadphone.net/127.0.0.1#5335 +ipset=/monsterheadphone.net/gfwlist +server=/thegeorgiascene.com/127.0.0.1#5335 +ipset=/thegeorgiascene.com/gfwlist +server=/tubemature.tv/127.0.0.1#5335 +ipset=/tubemature.tv/gfwlist +server=/mundomais.com.br/127.0.0.1#5335 +ipset=/mundomais.com.br/gfwlist +server=/tug.org/127.0.0.1#5335 +ipset=/tug.org/gfwlist +server=/blogspot.ru/127.0.0.1#5335 +ipset=/blogspot.ru/gfwlist +server=/graias.com/127.0.0.1#5335 +ipset=/graias.com/gfwlist +server=/businessinsider.in/127.0.0.1#5335 +ipset=/businessinsider.in/gfwlist +server=/blogspot.qa/127.0.0.1#5335 +ipset=/blogspot.qa/gfwlist +server=/milfvr.com/127.0.0.1#5335 +ipset=/milfvr.com/gfwlist +server=/marranazas.com/127.0.0.1#5335 +ipset=/marranazas.com/gfwlist +server=/itunes.co/127.0.0.1#5335 +ipset=/itunes.co/gfwlist +server=/blogspot.mx/127.0.0.1#5335 +ipset=/blogspot.mx/gfwlist +server=/gettyimages.com.au/127.0.0.1#5335 +ipset=/gettyimages.com.au/gfwlist +server=/blogspot.md/127.0.0.1#5335 +ipset=/blogspot.md/gfwlist +server=/shemaleporn.xxx/127.0.0.1#5335 +ipset=/shemaleporn.xxx/gfwlist +server=/virtualrealtrans.com/127.0.0.1#5335 +ipset=/virtualrealtrans.com/gfwlist +server=/nikefree.com/127.0.0.1#5335 +ipset=/nikefree.com/gfwlist +server=/paypal-media.com/127.0.0.1#5335 +ipset=/paypal-media.com/gfwlist +server=/applecare.berlin/127.0.0.1#5335 +ipset=/applecare.berlin/gfwlist +server=/blogspot.li/127.0.0.1#5335 +ipset=/blogspot.li/gfwlist +server=/blogspot.it/127.0.0.1#5335 +ipset=/blogspot.it/gfwlist +server=/beatsbydredanmarks.com/127.0.0.1#5335 +ipset=/beatsbydredanmarks.com/gfwlist +server=/blogspot.in/127.0.0.1#5335 +ipset=/blogspot.in/gfwlist +server=/bmw-motorrad.cz/127.0.0.1#5335 +ipset=/bmw-motorrad.cz/gfwlist +server=/garena.live/127.0.0.1#5335 +ipset=/garena.live/gfwlist +server=/blogspot.hu/127.0.0.1#5335 +ipset=/blogspot.hu/gfwlist +server=/appleiphonecell.com/127.0.0.1#5335 +ipset=/appleiphonecell.com/gfwlist +server=/justporn.link/127.0.0.1#5335 +ipset=/justporn.link/gfwlist +server=/blogspot.gr/127.0.0.1#5335 +ipset=/blogspot.gr/gfwlist +server=/youtube.at/127.0.0.1#5335 +ipset=/youtube.at/gfwlist +server=/blogspot.fr/127.0.0.1#5335 +ipset=/blogspot.fr/gfwlist +server=/newsnowfox.com/127.0.0.1#5335 +ipset=/newsnowfox.com/gfwlist +server=/blogspot.fi/127.0.0.1#5335 +ipset=/blogspot.fi/gfwlist +server=/blogspot.dk/127.0.0.1#5335 +ipset=/blogspot.dk/gfwlist +server=/blogspot.de/127.0.0.1#5335 +ipset=/blogspot.de/gfwlist +server=/pricelessaruba.com/127.0.0.1#5335 +ipset=/pricelessaruba.com/gfwlist +server=/momo5188.com/127.0.0.1#5335 +ipset=/momo5188.com/gfwlist +server=/scholar.google.co.id/127.0.0.1#5335 +ipset=/scholar.google.co.id/gfwlist +server=/nudity911.com/127.0.0.1#5335 +ipset=/nudity911.com/gfwlist +server=/blogspot.com.tr/127.0.0.1#5335 +ipset=/blogspot.com.tr/gfwlist +server=/mofosex.com/127.0.0.1#5335 +ipset=/mofosex.com/gfwlist +server=/bwh88.net/127.0.0.1#5335 +ipset=/bwh88.net/gfwlist +server=/hentaihaven.red/127.0.0.1#5335 +ipset=/hentaihaven.red/gfwlist +server=/duckduckhack.com/127.0.0.1#5335 +ipset=/duckduckhack.com/gfwlist +server=/camsoda1.com/127.0.0.1#5335 +ipset=/camsoda1.com/gfwlist +server=/ninemsn.com.au/127.0.0.1#5335 +ipset=/ninemsn.com.au/gfwlist +server=/visa.dk/127.0.0.1#5335 +ipset=/visa.dk/gfwlist +server=/cc18tv.com/127.0.0.1#5335 +ipset=/cc18tv.com/gfwlist +server=/szwinnertechnology.com/127.0.0.1#5335 +ipset=/szwinnertechnology.com/gfwlist +server=/officialdrdre.com/127.0.0.1#5335 +ipset=/officialdrdre.com/gfwlist +server=/jiuse904.com/127.0.0.1#5335 +ipset=/jiuse904.com/gfwlist +server=/blogspot.com.cy/127.0.0.1#5335 +ipset=/blogspot.com.cy/gfwlist +server=/botorch.org/127.0.0.1#5335 +ipset=/botorch.org/gfwlist +server=/blogspot.com.br/127.0.0.1#5335 +ipset=/blogspot.com.br/gfwlist +server=/capitalgames.com/127.0.0.1#5335 +ipset=/capitalgames.com/gfwlist +server=/nurofen.no/127.0.0.1#5335 +ipset=/nurofen.no/gfwlist +server=/joyourself.com/127.0.0.1#5335 +ipset=/joyourself.com/gfwlist +server=/openapiservice.com/127.0.0.1#5335 +ipset=/openapiservice.com/gfwlist +server=/bannedbook.net/127.0.0.1#5335 +ipset=/bannedbook.net/gfwlist +server=/finish.pt/127.0.0.1#5335 +ipset=/finish.pt/gfwlist +server=/akamaitechnologies.net/127.0.0.1#5335 +ipset=/akamaitechnologies.net/gfwlist +server=/foxdeportes.com/127.0.0.1#5335 +ipset=/foxdeportes.com/gfwlist +server=/lsnzxzy1.com/127.0.0.1#5335 +ipset=/lsnzxzy1.com/gfwlist +server=/asiangirlsnextdoor.com/127.0.0.1#5335 +ipset=/asiangirlsnextdoor.com/gfwlist +server=/petardashd.com.ve/127.0.0.1#5335 +ipset=/petardashd.com.ve/gfwlist +server=/primeday.info/127.0.0.1#5335 +ipset=/primeday.info/gfwlist +server=/beatsbydredealscybermonday.com/127.0.0.1#5335 +ipset=/beatsbydredealscybermonday.com/gfwlist +server=/paypal-prepagata.net/127.0.0.1#5335 +ipset=/paypal-prepagata.net/gfwlist +server=/yale.edu/127.0.0.1#5335 +ipset=/yale.edu/gfwlist +server=/blogspot.am/127.0.0.1#5335 +ipset=/blogspot.am/gfwlist +server=/boobsrealm.com/127.0.0.1#5335 +ipset=/boobsrealm.com/gfwlist +server=/ecoforme.jp/127.0.0.1#5335 +ipset=/ecoforme.jp/gfwlist +server=/igpublish.com/127.0.0.1#5335 +ipset=/igpublish.com/gfwlist +server=/blogspot.ae/127.0.0.1#5335 +ipset=/blogspot.ae/gfwlist +server=/blogger.com/127.0.0.1#5335 +ipset=/blogger.com/gfwlist +server=/comixzilla.com/127.0.0.1#5335 +ipset=/comixzilla.com/gfwlist +server=/macintosh.eu/127.0.0.1#5335 +ipset=/macintosh.eu/gfwlist +server=/gigabyte2.azureedge.net/127.0.0.1#5335 +ipset=/gigabyte2.azureedge.net/gfwlist +server=/jokerlu1.info/127.0.0.1#5335 +ipset=/jokerlu1.info/gfwlist +server=/faronicswise.com/127.0.0.1#5335 +ipset=/faronicswise.com/gfwlist +server=/myclitgames.com/127.0.0.1#5335 +ipset=/myclitgames.com/gfwlist +server=/blogterest.net/127.0.0.1#5335 +ipset=/blogterest.net/gfwlist +server=/nikegrid.com/127.0.0.1#5335 +ipset=/nikegrid.com/gfwlist +server=/etwealth.com/127.0.0.1#5335 +ipset=/etwealth.com/gfwlist +server=/facebookinc.com/127.0.0.1#5335 +ipset=/facebookinc.com/gfwlist +server=/intelatom.net/127.0.0.1#5335 +ipset=/intelatom.net/gfwlist +server=/faronics.com.sg/127.0.0.1#5335 +ipset=/faronics.com.sg/gfwlist +server=/strepsils.com.co/127.0.0.1#5335 +ipset=/strepsils.com.co/gfwlist +server=/faronics.ca/127.0.0.1#5335 +ipset=/faronics.ca/gfwlist +server=/deepfreeze.net/127.0.0.1#5335 +ipset=/deepfreeze.net/gfwlist +server=/volvobuses.ch/127.0.0.1#5335 +ipset=/volvobuses.ch/gfwlist +server=/pornbraze.com/127.0.0.1#5335 +ipset=/pornbraze.com/gfwlist +server=/sci-hub.ee/127.0.0.1#5335 +ipset=/sci-hub.ee/gfwlist +server=/deepfreeze.eu/127.0.0.1#5335 +ipset=/deepfreeze.eu/gfwlist +server=/pornoingyen.hu/127.0.0.1#5335 +ipset=/pornoingyen.hu/gfwlist +server=/nvidia.pl/127.0.0.1#5335 +ipset=/nvidia.pl/gfwlist +server=/techliquidators.com/127.0.0.1#5335 +ipset=/techliquidators.com/gfwlist +server=/lolpcs.com/127.0.0.1#5335 +ipset=/lolpcs.com/gfwlist +server=/mainichi-athletepartners.jp/127.0.0.1#5335 +ipset=/mainichi-athletepartners.jp/gfwlist +server=/disney.com.br/127.0.0.1#5335 +ipset=/disney.com.br/gfwlist +server=/getwsone.com/127.0.0.1#5335 +ipset=/getwsone.com/gfwlist +server=/adultgamescollector.com/127.0.0.1#5335 +ipset=/adultgamescollector.com/gfwlist +server=/beatbd.com/127.0.0.1#5335 +ipset=/beatbd.com/gfwlist +server=/account-paypal.org/127.0.0.1#5335 +ipset=/account-paypal.org/gfwlist +server=/volvotrucks.co.il/127.0.0.1#5335 +ipset=/volvotrucks.co.il/gfwlist +server=/limertw.cc/127.0.0.1#5335 +ipset=/limertw.cc/gfwlist +server=/air-watch.com/127.0.0.1#5335 +ipset=/air-watch.com/gfwlist +server=/vsphere.net/127.0.0.1#5335 +ipset=/vsphere.net/gfwlist +server=/nfscdict.com/127.0.0.1#5335 +ipset=/nfscdict.com/gfwlist +server=/rakuya.com.tw/127.0.0.1#5335 +ipset=/rakuya.com.tw/gfwlist +server=/fox23maine.com/127.0.0.1#5335 +ipset=/fox23maine.com/gfwlist +server=/vsphere.com/127.0.0.1#5335 +ipset=/vsphere.com/gfwlist +server=/hyper.is/127.0.0.1#5335 +ipset=/hyper.is/gfwlist +server=/ghcr.io/127.0.0.1#5335 +ipset=/ghcr.io/gfwlist +server=/bmw.com.tr/127.0.0.1#5335 +ipset=/bmw.com.tr/gfwlist +server=/physiology.org/127.0.0.1#5335 +ipset=/physiology.org/gfwlist +server=/xbahis33.com/127.0.0.1#5335 +ipset=/xbahis33.com/gfwlist +server=/disney.cz/127.0.0.1#5335 +ipset=/disney.cz/gfwlist +server=/hentaicore.org/127.0.0.1#5335 +ipset=/hentaicore.org/gfwlist +server=/erofights.com/127.0.0.1#5335 +ipset=/erofights.com/gfwlist +server=/rakuten.ne.jp/127.0.0.1#5335 +ipset=/rakuten.ne.jp/gfwlist +server=/beatsbydrdre-officials5.com/127.0.0.1#5335 +ipset=/beatsbydrdre-officials5.com/gfwlist +server=/dombosco.com.br/127.0.0.1#5335 +ipset=/dombosco.com.br/gfwlist +server=/livesexasian.com/127.0.0.1#5335 +ipset=/livesexasian.com/gfwlist +server=/100classicbooks.com/127.0.0.1#5335 +ipset=/100classicbooks.com/gfwlist +server=/yahoo.com.na/127.0.0.1#5335 +ipset=/yahoo.com.na/gfwlist +server=/cloudhealthtech.com/127.0.0.1#5335 +ipset=/cloudhealthtech.com/gfwlist +server=/cloudcredibility.com/127.0.0.1#5335 +ipset=/cloudcredibility.com/gfwlist +server=/visa.de/127.0.0.1#5335 +ipset=/visa.de/gfwlist +server=/dockerizer.com/127.0.0.1#5335 +ipset=/dockerizer.com/gfwlist +server=/bitnamistudio.com/127.0.0.1#5335 +ipset=/bitnamistudio.com/gfwlist +server=/nikechosen.com/127.0.0.1#5335 +ipset=/nikechosen.com/gfwlist +server=/drkogyi.com/127.0.0.1#5335 +ipset=/drkogyi.com/gfwlist +server=/corporatecashpassport.com/127.0.0.1#5335 +ipset=/corporatecashpassport.com/gfwlist +server=/illusionh.com/127.0.0.1#5335 +ipset=/illusionh.com/gfwlist +server=/youtube.com.pa/127.0.0.1#5335 +ipset=/youtube.com.pa/gfwlist +server=/bitnami.com/127.0.0.1#5335 +ipset=/bitnami.com/gfwlist +server=/2kcoretech.online/127.0.0.1#5335 +ipset=/2kcoretech.online/gfwlist +server=/disneymagicmoments.es/127.0.0.1#5335 +ipset=/disneymagicmoments.es/gfwlist +server=/cosplayworld.net/127.0.0.1#5335 +ipset=/cosplayworld.net/gfwlist +server=/nginxconfig.io/127.0.0.1#5335 +ipset=/nginxconfig.io/gfwlist +server=/workspaceair.com/127.0.0.1#5335 +ipset=/workspaceair.com/gfwlist +server=/oranum.com/127.0.0.1#5335 +ipset=/oranum.com/gfwlist +server=/cashback69.com/127.0.0.1#5335 +ipset=/cashback69.com/gfwlist +server=/fox5ny.com/127.0.0.1#5335 +ipset=/fox5ny.com/gfwlist +server=/legsex.com/127.0.0.1#5335 +ipset=/legsex.com/gfwlist +server=/ikea.bh/127.0.0.1#5335 +ipset=/ikea.bh/gfwlist +server=/oculusrift.com/127.0.0.1#5335 +ipset=/oculusrift.com/gfwlist +server=/fffucked.com/127.0.0.1#5335 +ipset=/fffucked.com/gfwlist +server=/animalsporn.net/127.0.0.1#5335 +ipset=/animalsporn.net/gfwlist +server=/sony-africa.com/127.0.0.1#5335 +ipset=/sony-africa.com/gfwlist +server=/ncl.edu.tw/127.0.0.1#5335 +ipset=/ncl.edu.tw/gfwlist +server=/tabootube.xxx/127.0.0.1#5335 +ipset=/tabootube.xxx/gfwlist +server=/bloombergchina.com/127.0.0.1#5335 +ipset=/bloombergchina.com/gfwlist +server=/binancezh.net/127.0.0.1#5335 +ipset=/binancezh.net/gfwlist +server=/whychoosehorizon.com/127.0.0.1#5335 +ipset=/whychoosehorizon.com/gfwlist +server=/vmwservices.com/127.0.0.1#5335 +ipset=/vmwservices.com/gfwlist +server=/ebayshop111.com/127.0.0.1#5335 +ipset=/ebayshop111.com/gfwlist +server=/t21.nikkei.co.jp/127.0.0.1#5335 +ipset=/t21.nikkei.co.jp/gfwlist +server=/buyaple.com/127.0.0.1#5335 +ipset=/buyaple.com/gfwlist +server=/12diasdepresentesdeitunes.com/127.0.0.1#5335 +ipset=/12diasdepresentesdeitunes.com/gfwlist +server=/5mo.fun/127.0.0.1#5335 +ipset=/5mo.fun/gfwlist +server=/line.naver.jp/127.0.0.1#5335 +ipset=/line.naver.jp/gfwlist +server=/socialmediagirls.com/127.0.0.1#5335 +ipset=/socialmediagirls.com/gfwlist +server=/bmwcenternet.com/127.0.0.1#5335 +ipset=/bmwcenternet.com/gfwlist +server=/amazondevicesupport.com/127.0.0.1#5335 +ipset=/amazondevicesupport.com/gfwlist +server=/rclon.com/127.0.0.1#5335 +ipset=/rclon.com/gfwlist +server=/ikea.ma/127.0.0.1#5335 +ipset=/ikea.ma/gfwlist +server=/bmw-mdrivetour.com/127.0.0.1#5335 +ipset=/bmw-mdrivetour.com/gfwlist +server=/vmwlearningplatform.com/127.0.0.1#5335 +ipset=/vmwlearningplatform.com/gfwlist +server=/tteshop.com/127.0.0.1#5335 +ipset=/tteshop.com/gfwlist +server=/stateofthemap.com/127.0.0.1#5335 +ipset=/stateofthemap.com/gfwlist +server=/scatsite.com/127.0.0.1#5335 +ipset=/scatsite.com/gfwlist +server=/prodrive-japan.com/127.0.0.1#5335 +ipset=/prodrive-japan.com/gfwlist +server=/thomsonreuters.in/127.0.0.1#5335 +ipset=/thomsonreuters.in/gfwlist +server=/visa.co.ni/127.0.0.1#5335 +ipset=/visa.co.ni/gfwlist +server=/ikea.com.in/127.0.0.1#5335 +ipset=/ikea.com.in/gfwlist +server=/placemyad.com.au/127.0.0.1#5335 +ipset=/placemyad.com.au/gfwlist +server=/vmwarelearningplatform.com/127.0.0.1#5335 +ipset=/vmwarelearningplatform.com/gfwlist +server=/samsungcloud.com/127.0.0.1#5335 +ipset=/samsungcloud.com/gfwlist +server=/paypal-comunidad.com/127.0.0.1#5335 +ipset=/paypal-comunidad.com/gfwlist +server=/appleoriginalproductions.com/127.0.0.1#5335 +ipset=/appleoriginalproductions.com/gfwlist +server=/mirrorsedge.net/127.0.0.1#5335 +ipset=/mirrorsedge.net/gfwlist +server=/carcare-and-tireshop.jp/127.0.0.1#5335 +ipset=/carcare-and-tireshop.jp/gfwlist +server=/vmwaregrid.com/127.0.0.1#5335 +ipset=/vmwaregrid.com/gfwlist +server=/facebookbrand.net/127.0.0.1#5335 +ipset=/facebookbrand.net/gfwlist +server=/foxsoccer.tv/127.0.0.1#5335 +ipset=/foxsoccer.tv/gfwlist +server=/clubseventeen.com/127.0.0.1#5335 +ipset=/clubseventeen.com/gfwlist +server=/vmwaredemandcenter.com/127.0.0.1#5335 +ipset=/vmwaredemandcenter.com/gfwlist +server=/yande.re/127.0.0.1#5335 +ipset=/yande.re/gfwlist +server=/cindymovies.com/127.0.0.1#5335 +ipset=/cindymovies.com/gfwlist +server=/applefinalcutproworld.com/127.0.0.1#5335 +ipset=/applefinalcutproworld.com/gfwlist +server=/camfox.com/127.0.0.1#5335 +ipset=/camfox.com/gfwlist +server=/vmwareausnews.com/127.0.0.1#5335 +ipset=/vmwareausnews.com/gfwlist +server=/verisign.de/127.0.0.1#5335 +ipset=/verisign.de/gfwlist +server=/yahoo.ps/127.0.0.1#5335 +ipset=/yahoo.ps/gfwlist +server=/bamtoki.com/127.0.0.1#5335 +ipset=/bamtoki.com/gfwlist +server=/dlercloud.org/127.0.0.1#5335 +ipset=/dlercloud.org/gfwlist +server=/akamai-staging.net/127.0.0.1#5335 +ipset=/akamai-staging.net/gfwlist +server=/viet69.link/127.0.0.1#5335 +ipset=/viet69.link/gfwlist +server=/microsofttranslator.com/127.0.0.1#5335 +ipset=/microsofttranslator.com/gfwlist +server=/softbankrobotics.com/127.0.0.1#5335 +ipset=/softbankrobotics.com/gfwlist +server=/vmware-cloudmanagement.com/127.0.0.1#5335 +ipset=/vmware-cloudmanagement.com/gfwlist +server=/babesofindia.com/127.0.0.1#5335 +ipset=/babesofindia.com/gfwlist +server=/vmmark.com/127.0.0.1#5335 +ipset=/vmmark.com/gfwlist +server=/business-i.jp/127.0.0.1#5335 +ipset=/business-i.jp/gfwlist +server=/facebook30.com/127.0.0.1#5335 +ipset=/facebook30.com/gfwlist +server=/enemaexperiences.com/127.0.0.1#5335 +ipset=/enemaexperiences.com/gfwlist +server=/vmglobal.net/127.0.0.1#5335 +ipset=/vmglobal.net/gfwlist +server=/vfabric.net/127.0.0.1#5335 +ipset=/vfabric.net/gfwlist +server=/maxgo.com/127.0.0.1#5335 +ipset=/maxgo.com/gfwlist +server=/termux.com/127.0.0.1#5335 +ipset=/termux.com/gfwlist +server=/vcanedge.com/127.0.0.1#5335 +ipset=/vcanedge.com/gfwlist +server=/ssdevrd.com/127.0.0.1#5335 +ipset=/ssdevrd.com/gfwlist +server=/blackamateursvideos.com/127.0.0.1#5335 +ipset=/blackamateursvideos.com/gfwlist +server=/bmwusfactory.com/127.0.0.1#5335 +ipset=/bmwusfactory.com/gfwlist +server=/youtube.bo/127.0.0.1#5335 +ipset=/youtube.bo/gfwlist +server=/drdre-beats.com/127.0.0.1#5335 +ipset=/drdre-beats.com/gfwlist +server=/electbabe.com/127.0.0.1#5335 +ipset=/electbabe.com/gfwlist +server=/klik.me/127.0.0.1#5335 +ipset=/klik.me/gfwlist +server=/hwslabs.com/127.0.0.1#5335 +ipset=/hwslabs.com/gfwlist +server=/greenplum.net/127.0.0.1#5335 +ipset=/greenplum.net/gfwlist +server=/beatsbydre-club.com/127.0.0.1#5335 +ipset=/beatsbydre-club.com/gfwlist +server=/cisconetapp.com/127.0.0.1#5335 +ipset=/cisconetapp.com/gfwlist +server=/gelbooru.wjcodes.com/127.0.0.1#5335 +ipset=/gelbooru.wjcodes.com/gfwlist +server=/eliteindianporn.com/127.0.0.1#5335 +ipset=/eliteindianporn.com/gfwlist +server=/hochi.news/127.0.0.1#5335 +ipset=/hochi.news/gfwlist +server=/hentairead.info/127.0.0.1#5335 +ipset=/hentairead.info/gfwlist +server=/youngmommyfucksme.com/127.0.0.1#5335 +ipset=/youngmommyfucksme.com/gfwlist +server=/rarbgunblock.org/127.0.0.1#5335 +ipset=/rarbgunblock.org/gfwlist +server=/cpedge.com/127.0.0.1#5335 +ipset=/cpedge.com/gfwlist +server=/bollywoodlife.com/127.0.0.1#5335 +ipset=/bollywoodlife.com/gfwlist +server=/pornhubapparel.com/127.0.0.1#5335 +ipset=/pornhubapparel.com/gfwlist +server=/rolls-roycemotorcars.com/127.0.0.1#5335 +ipset=/rolls-roycemotorcars.com/gfwlist +server=/archiveofourown.org/127.0.0.1#5335 +ipset=/archiveofourown.org/gfwlist +server=/bookmybridgestonetyre.com/127.0.0.1#5335 +ipset=/bookmybridgestonetyre.com/gfwlist +server=/cfblob.com/127.0.0.1#5335 +ipset=/cfblob.com/gfwlist +server=/costco-static.com/127.0.0.1#5335 +ipset=/costco-static.com/gfwlist +server=/duckduckgo.pl/127.0.0.1#5335 +ipset=/duckduckgo.pl/gfwlist +server=/filmeleporno.xxx/127.0.0.1#5335 +ipset=/filmeleporno.xxx/gfwlist +server=/monsterbeatssales.com/127.0.0.1#5335 +ipset=/monsterbeatssales.com/gfwlist +server=/4cdn.org/127.0.0.1#5335 +ipset=/4cdn.org/gfwlist +server=/akamai.co.kr/127.0.0.1#5335 +ipset=/akamai.co.kr/gfwlist +server=/telegram.dog/127.0.0.1#5335 +ipset=/telegram.dog/gfwlist +server=/collabora.co.uk/127.0.0.1#5335 +ipset=/collabora.co.uk/gfwlist +server=/cloudcone.net/127.0.0.1#5335 +ipset=/cloudcone.net/gfwlist +server=/besthentaitube.com/127.0.0.1#5335 +ipset=/besthentaitube.com/gfwlist +server=/cnyes.com/127.0.0.1#5335 +ipset=/cnyes.com/gfwlist +server=/cloudcone.com/127.0.0.1#5335 +ipset=/cloudcone.com/gfwlist +server=/ikea.is/127.0.0.1#5335 +ipset=/ikea.is/gfwlist +server=/aweencore.com/127.0.0.1#5335 +ipset=/aweencore.com/gfwlist +server=/melonstube.com/127.0.0.1#5335 +ipset=/melonstube.com/gfwlist +server=/jilhub.com/127.0.0.1#5335 +ipset=/jilhub.com/gfwlist +server=/armovs.com/127.0.0.1#5335 +ipset=/armovs.com/gfwlist +server=/hitxhot.com/127.0.0.1#5335 +ipset=/hitxhot.com/gfwlist +server=/cisco.evergage.com/127.0.0.1#5335 +ipset=/cisco.evergage.com/gfwlist +server=/nikeshoesgroup.com/127.0.0.1#5335 +ipset=/nikeshoesgroup.com/gfwlist +server=/tettediferro.it/127.0.0.1#5335 +ipset=/tettediferro.it/gfwlist +server=/tailf.com/127.0.0.1#5335 +ipset=/tailf.com/gfwlist +server=/hindawi.com/127.0.0.1#5335 +ipset=/hindawi.com/gfwlist +server=/thomsonreuters.com.hk/127.0.0.1#5335 +ipset=/thomsonreuters.com.hk/gfwlist +server=/thecamdude.com/127.0.0.1#5335 +ipset=/thecamdude.com/gfwlist +server=/wet-ass-pussy.com/127.0.0.1#5335 +ipset=/wet-ass-pussy.com/gfwlist +server=/toplayerserver.com/127.0.0.1#5335 +ipset=/toplayerserver.com/gfwlist +server=/appdynamics.org/127.0.0.1#5335 +ipset=/appdynamics.org/gfwlist +server=/dmm.co.jp/127.0.0.1#5335 +ipset=/dmm.co.jp/gfwlist +server=/climateone.blogspot.co.id/127.0.0.1#5335 +ipset=/climateone.blogspot.co.id/gfwlist +server=/appdynamics.jp/127.0.0.1#5335 +ipset=/appdynamics.jp/gfwlist +server=/foxandfriends.com/127.0.0.1#5335 +ipset=/foxandfriends.com/gfwlist +server=/beatsbydre-sell.com/127.0.0.1#5335 +ipset=/beatsbydre-sell.com/gfwlist +server=/appdynamics.co.uk/127.0.0.1#5335 +ipset=/appdynamics.co.uk/gfwlist +server=/rule34.asia/127.0.0.1#5335 +ipset=/rule34.asia/gfwlist +server=/facebookcom.com/127.0.0.1#5335 +ipset=/facebookcom.com/gfwlist +server=/konachan.wjcodes.com/127.0.0.1#5335 +ipset=/konachan.wjcodes.com/gfwlist +server=/nytco.com/127.0.0.1#5335 +ipset=/nytco.com/gfwlist +server=/boylove.cc/127.0.0.1#5335 +ipset=/boylove.cc/gfwlist +server=/elite.com/127.0.0.1#5335 +ipset=/elite.com/gfwlist +server=/vfsco.pe/127.0.0.1#5335 +ipset=/vfsco.pe/gfwlist +server=/bcovlive-a.akamaihd.net/127.0.0.1#5335 +ipset=/bcovlive-a.akamaihd.net/gfwlist +server=/virtuata.com/127.0.0.1#5335 +ipset=/virtuata.com/gfwlist +server=/ssl.com/127.0.0.1#5335 +ipset=/ssl.com/gfwlist +server=/ciscoinvestments.com/127.0.0.1#5335 +ipset=/ciscoinvestments.com/gfwlist +server=/worldofwarcraft.com/127.0.0.1#5335 +ipset=/worldofwarcraft.com/gfwlist +server=/versly.com/127.0.0.1#5335 +ipset=/versly.com/gfwlist +server=/cowboom.com/127.0.0.1#5335 +ipset=/cowboom.com/gfwlist +server=/accountpaypal.com/127.0.0.1#5335 +ipset=/accountpaypal.com/gfwlist +server=/tandberg-china.com/127.0.0.1#5335 +ipset=/tandberg-china.com/gfwlist +server=/myfoxtampa.com/127.0.0.1#5335 +ipset=/myfoxtampa.com/gfwlist +server=/hoyolab.com/127.0.0.1#5335 +ipset=/hoyolab.com/gfwlist +server=/nintendo.no/127.0.0.1#5335 +ipset=/nintendo.no/gfwlist +server=/mornporn.com/127.0.0.1#5335 +ipset=/mornporn.com/gfwlist +server=/regiongold.com/127.0.0.1#5335 +ipset=/regiongold.com/gfwlist +server=/parstream.org/127.0.0.1#5335 +ipset=/parstream.org/gfwlist +server=/top100nl.net/127.0.0.1#5335 +ipset=/top100nl.net/gfwlist +server=/greatfire.org/127.0.0.1#5335 +ipset=/greatfire.org/gfwlist +server=/free-sns.com/127.0.0.1#5335 +ipset=/free-sns.com/gfwlist +server=/camelspaceeffect.com/127.0.0.1#5335 +ipset=/camelspaceeffect.com/gfwlist +server=/githubusercontent.com/127.0.0.1#5335 +ipset=/githubusercontent.com/gfwlist +server=/obsrvbl.com/127.0.0.1#5335 +ipset=/obsrvbl.com/gfwlist +server=/allporncomic.com/127.0.0.1#5335 +ipset=/allporncomic.com/gfwlist +server=/netacad.com/127.0.0.1#5335 +ipset=/netacad.com/gfwlist +server=/cloudflare.com/127.0.0.1#5335 +ipset=/cloudflare.com/gfwlist +server=/mysdn.info/127.0.0.1#5335 +ipset=/mysdn.info/gfwlist +server=/zoofiction.com/127.0.0.1#5335 +ipset=/zoofiction.com/gfwlist +server=/mysdn.com/127.0.0.1#5335 +ipset=/mysdn.com/gfwlist +server=/myciscobenefits.com/127.0.0.1#5335 +ipset=/myciscobenefits.com/gfwlist +server=/multiplydiversity.com/127.0.0.1#5335 +ipset=/multiplydiversity.com/gfwlist +server=/adultgames.games/127.0.0.1#5335 +ipset=/adultgames.games/gfwlist +server=/securepaypal.info/127.0.0.1#5335 +ipset=/securepaypal.info/gfwlist +server=/beatsbydrefriday.com/127.0.0.1#5335 +ipset=/beatsbydrefriday.com/gfwlist +server=/bmw-motorrad.ch/127.0.0.1#5335 +ipset=/bmw-motorrad.ch/gfwlist +server=/onlyams.com/127.0.0.1#5335 +ipset=/onlyams.com/gfwlist +server=/matters.news/127.0.0.1#5335 +ipset=/matters.news/gfwlist +server=/facebookdevelopergarage.com/127.0.0.1#5335 +ipset=/facebookdevelopergarage.com/gfwlist +server=/scholar.google.it/127.0.0.1#5335 +ipset=/scholar.google.it/gfwlist +server=/gpstheseries.com/127.0.0.1#5335 +ipset=/gpstheseries.com/gfwlist +server=/devm2m.com/127.0.0.1#5335 +ipset=/devm2m.com/gfwlist +server=/xxxdinotube.com/127.0.0.1#5335 +ipset=/xxxdinotube.com/gfwlist +server=/careerfundas.com/127.0.0.1#5335 +ipset=/careerfundas.com/gfwlist +server=/badsexygirl.com/127.0.0.1#5335 +ipset=/badsexygirl.com/gfwlist +server=/coreoptics.net/127.0.0.1#5335 +ipset=/coreoptics.net/gfwlist +server=/managedpki.ne.jp/127.0.0.1#5335 +ipset=/managedpki.ne.jp/gfwlist +server=/beatthatquote.com/127.0.0.1#5335 +ipset=/beatthatquote.com/gfwlist +server=/foxnewshealth.com/127.0.0.1#5335 +ipset=/foxnewshealth.com/gfwlist +server=/connect-in-canada.com/127.0.0.1#5335 +ipset=/connect-in-canada.com/gfwlist +server=/celebritygay.com/127.0.0.1#5335 +ipset=/celebritygay.com/gfwlist +server=/mdialog.com/127.0.0.1#5335 +ipset=/mdialog.com/gfwlist +server=/seancody.com/127.0.0.1#5335 +ipset=/seancody.com/gfwlist +server=/ciscovideo.com/127.0.0.1#5335 +ipset=/ciscovideo.com/gfwlist +server=/ciscotaccc.com/127.0.0.1#5335 +ipset=/ciscotaccc.com/gfwlist +server=/psiphon3.com/127.0.0.1#5335 +ipset=/psiphon3.com/gfwlist +server=/ciscospark.jp/127.0.0.1#5335 +ipset=/ciscospark.jp/gfwlist +server=/dutrai.com/127.0.0.1#5335 +ipset=/dutrai.com/gfwlist +server=/severreal.org/127.0.0.1#5335 +ipset=/severreal.org/gfwlist +server=/mini.co.me/127.0.0.1#5335 +ipset=/mini.co.me/gfwlist +server=/bmw-oman.com/127.0.0.1#5335 +ipset=/bmw-oman.com/gfwlist +server=/acheterdesfollowersinstagram.com/127.0.0.1#5335 +ipset=/acheterdesfollowersinstagram.com/gfwlist +server=/beatsdresale2013.com/127.0.0.1#5335 +ipset=/beatsdresale2013.com/gfwlist +server=/fbwat.ch/127.0.0.1#5335 +ipset=/fbwat.ch/gfwlist +server=/volvotrucks.it/127.0.0.1#5335 +ipset=/volvotrucks.it/gfwlist +server=/sex-teen.net/127.0.0.1#5335 +ipset=/sex-teen.net/gfwlist +server=/ciscoprice.com/127.0.0.1#5335 +ipset=/ciscoprice.com/gfwlist +server=/gfrevenge.com/127.0.0.1#5335 +ipset=/gfrevenge.com/gfwlist +server=/ciscopowercube.com/127.0.0.1#5335 +ipset=/ciscopowercube.com/gfwlist +server=/cisconetspace.net/127.0.0.1#5335 +ipset=/cisconetspace.net/gfwlist +server=/cisconetspace.com/127.0.0.1#5335 +ipset=/cisconetspace.com/gfwlist +server=/ciscolearningsystem.com/127.0.0.1#5335 +ipset=/ciscolearningsystem.com/gfwlist +server=/horsedick.net/127.0.0.1#5335 +ipset=/horsedick.net/gfwlist +server=/mol.im/127.0.0.1#5335 +ipset=/mol.im/gfwlist +server=/mastercardidtheftalerts.com/127.0.0.1#5335 +ipset=/mastercardidtheftalerts.com/gfwlist +server=/777xporn.com/127.0.0.1#5335 +ipset=/777xporn.com/gfwlist +server=/ciscoerate.com/127.0.0.1#5335 +ipset=/ciscoerate.com/gfwlist +server=/ciscoconnectcloud.org/127.0.0.1#5335 +ipset=/ciscoconnectcloud.org/gfwlist +server=/ciscoconnectcloud.net/127.0.0.1#5335 +ipset=/ciscoconnectcloud.net/gfwlist +server=/myporngay.com/127.0.0.1#5335 +ipset=/myporngay.com/gfwlist +server=/ciscoccservice.com/127.0.0.1#5335 +ipset=/ciscoccservice.com/gfwlist +server=/twitchcdn.net/127.0.0.1#5335 +ipset=/twitchcdn.net/gfwlist +server=/airav.cc/127.0.0.1#5335 +ipset=/airav.cc/gfwlist +server=/tssp.best/127.0.0.1#5335 +ipset=/tssp.best/gfwlist +server=/cdnlab.live/127.0.0.1#5335 +ipset=/cdnlab.live/gfwlist +server=/barrons-advisor.com/127.0.0.1#5335 +ipset=/barrons-advisor.com/gfwlist +server=/beatsheadphonesale.com/127.0.0.1#5335 +ipset=/beatsheadphonesale.com/gfwlist +server=/cciesecuritylabs.com/127.0.0.1#5335 +ipset=/cciesecuritylabs.com/gfwlist +server=/disneynewseries.com/127.0.0.1#5335 +ipset=/disneynewseries.com/gfwlist +server=/pornodoido.com/127.0.0.1#5335 +ipset=/pornodoido.com/gfwlist +server=/cciernslabs.com/127.0.0.1#5335 +ipset=/cciernslabs.com/gfwlist +server=/academynetriders.com/127.0.0.1#5335 +ipset=/academynetriders.com/gfwlist +server=/volvotrucks.com.co/127.0.0.1#5335 +ipset=/volvotrucks.com.co/gfwlist +server=/dierectv.com/127.0.0.1#5335 +ipset=/dierectv.com/gfwlist +server=/webex.com.br/127.0.0.1#5335 +ipset=/webex.com.br/gfwlist +server=/discord.gift/127.0.0.1#5335 +ipset=/discord.gift/gfwlist +server=/evgld7cg58l8.com/127.0.0.1#5335 +ipset=/evgld7cg58l8.com/gfwlist +server=/womensnikeshox.com/127.0.0.1#5335 +ipset=/womensnikeshox.com/gfwlist +server=/bmw-security-vehicles.com/127.0.0.1#5335 +ipset=/bmw-security-vehicles.com/gfwlist +server=/beatsbydre-outletstore.com/127.0.0.1#5335 +ipset=/beatsbydre-outletstore.com/gfwlist +server=/finish.at/127.0.0.1#5335 +ipset=/finish.at/gfwlist +server=/shemalez.com/127.0.0.1#5335 +ipset=/shemalez.com/gfwlist +server=/webex.co.jp/127.0.0.1#5335 +ipset=/webex.co.jp/gfwlist +server=/webex.co.it/127.0.0.1#5335 +ipset=/webex.co.it/gfwlist +server=/as-dash-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/as-dash-uk-live.akamaized.net/gfwlist +server=/webex.co.in/127.0.0.1#5335 +ipset=/webex.co.in/gfwlist +server=/faceebot.com/127.0.0.1#5335 +ipset=/faceebot.com/gfwlist +server=/instagainer.com/127.0.0.1#5335 +ipset=/instagainer.com/gfwlist +server=/platinumlinks.org/127.0.0.1#5335 +ipset=/platinumlinks.org/gfwlist +server=/hp.company/127.0.0.1#5335 +ipset=/hp.company/gfwlist +server=/vpejey.xyz/127.0.0.1#5335 +ipset=/vpejey.xyz/gfwlist +server=/tradevip1.com/127.0.0.1#5335 +ipset=/tradevip1.com/gfwlist +server=/canon.si/127.0.0.1#5335 +ipset=/canon.si/gfwlist +server=/uux68.com/127.0.0.1#5335 +ipset=/uux68.com/gfwlist +server=/papermc.io/127.0.0.1#5335 +ipset=/papermc.io/gfwlist +server=/blizzak-juken.jp/127.0.0.1#5335 +ipset=/blizzak-juken.jp/gfwlist +server=/xvirtual.com/127.0.0.1#5335 +ipset=/xvirtual.com/gfwlist +server=/foxinc.com/127.0.0.1#5335 +ipset=/foxinc.com/gfwlist +server=/free-avx.jp/127.0.0.1#5335 +ipset=/free-avx.jp/gfwlist +server=/nintendo.se/127.0.0.1#5335 +ipset=/nintendo.se/gfwlist +server=/hentai-gamer.com/127.0.0.1#5335 +ipset=/hentai-gamer.com/gfwlist +server=/appstore.co.id/127.0.0.1#5335 +ipset=/appstore.co.id/gfwlist +server=/newsukadops.com/127.0.0.1#5335 +ipset=/newsukadops.com/gfwlist +server=/akamaitech.com/127.0.0.1#5335 +ipset=/akamaitech.com/gfwlist +server=/applehealth.com.hk/127.0.0.1#5335 +ipset=/applehealth.com.hk/gfwlist +server=/canon.no/127.0.0.1#5335 +ipset=/canon.no/gfwlist +server=/wiisportsresort.com/127.0.0.1#5335 +ipset=/wiisportsresort.com/gfwlist +server=/nverxs.xyz/127.0.0.1#5335 +ipset=/nverxs.xyz/gfwlist +server=/binancezh.com/127.0.0.1#5335 +ipset=/binancezh.com/gfwlist +server=/visadigital.com/127.0.0.1#5335 +ipset=/visadigital.com/gfwlist +server=/riotpin.com/127.0.0.1#5335 +ipset=/riotpin.com/gfwlist +server=/canon.it/127.0.0.1#5335 +ipset=/canon.it/gfwlist +server=/google.dz/127.0.0.1#5335 +ipset=/google.dz/gfwlist +server=/canon.ie/127.0.0.1#5335 +ipset=/canon.ie/gfwlist +server=/adobetcstrialdvd.com/127.0.0.1#5335 +ipset=/adobetcstrialdvd.com/gfwlist +server=/nfscofficial.com/127.0.0.1#5335 +ipset=/nfscofficial.com/gfwlist +server=/monsterbeats8beatsbydre.com/127.0.0.1#5335 +ipset=/monsterbeats8beatsbydre.com/gfwlist +server=/bmw.com.my/127.0.0.1#5335 +ipset=/bmw.com.my/gfwlist +server=/gfysex.com/127.0.0.1#5335 +ipset=/gfysex.com/gfwlist +server=/dogatch.jp/127.0.0.1#5335 +ipset=/dogatch.jp/gfwlist +server=/otokonokoland.com/127.0.0.1#5335 +ipset=/otokonokoland.com/gfwlist +server=/amakings.com/127.0.0.1#5335 +ipset=/amakings.com/gfwlist +server=/visaeurope.ch/127.0.0.1#5335 +ipset=/visaeurope.ch/gfwlist +server=/geileomas.com/127.0.0.1#5335 +ipset=/geileomas.com/gfwlist +server=/canon.es/127.0.0.1#5335 +ipset=/canon.es/gfwlist +server=/canon-cna.com/127.0.0.1#5335 +ipset=/canon-cna.com/gfwlist +server=/beatsbydrdre-onsale.com/127.0.0.1#5335 +ipset=/beatsbydrdre-onsale.com/gfwlist +server=/amazonprimevideos.com/127.0.0.1#5335 +ipset=/amazonprimevideos.com/gfwlist +server=/kaktuz.com/127.0.0.1#5335 +ipset=/kaktuz.com/gfwlist +server=/sexyhub.com/127.0.0.1#5335 +ipset=/sexyhub.com/gfwlist +server=/forbes.com/127.0.0.1#5335 +ipset=/forbes.com/gfwlist +server=/debugproject.com/127.0.0.1#5335 +ipset=/debugproject.com/gfwlist +server=/firestonecompleteautocare.com/127.0.0.1#5335 +ipset=/firestonecompleteautocare.com/gfwlist +server=/canon.com.tw/127.0.0.1#5335 +ipset=/canon.com.tw/gfwlist +server=/canon.com.tr/127.0.0.1#5335 +ipset=/canon.com.tr/gfwlist +server=/canon.com.my/127.0.0.1#5335 +ipset=/canon.com.my/gfwlist +server=/javjunkies.com/127.0.0.1#5335 +ipset=/javjunkies.com/gfwlist +server=/ebayenterprise.com/127.0.0.1#5335 +ipset=/ebayenterprise.com/gfwlist +server=/brourou.com/127.0.0.1#5335 +ipset=/brourou.com/gfwlist +server=/deutschewelle.h-cdn.com/127.0.0.1#5335 +ipset=/deutschewelle.h-cdn.com/gfwlist +server=/canon.com/127.0.0.1#5335 +ipset=/canon.com/gfwlist +server=/canon.co.uk/127.0.0.1#5335 +ipset=/canon.co.uk/gfwlist +server=/aiasahi.jp/127.0.0.1#5335 +ipset=/aiasahi.jp/gfwlist +server=/canon.be/127.0.0.1#5335 +ipset=/canon.be/gfwlist +server=/mini.com.br/127.0.0.1#5335 +ipset=/mini.com.br/gfwlist +server=/applestor.com/127.0.0.1#5335 +ipset=/applestor.com/gfwlist +server=/google.com.bh/127.0.0.1#5335 +ipset=/google.com.bh/gfwlist +server=/canon.at/127.0.0.1#5335 +ipset=/canon.at/gfwlist +server=/mainichi.jp/127.0.0.1#5335 +ipset=/mainichi.jp/gfwlist +server=/canon.am/127.0.0.1#5335 +ipset=/canon.am/gfwlist +server=/scholar.google.ro/127.0.0.1#5335 +ipset=/scholar.google.ro/gfwlist +server=/virginpornlinks.com/127.0.0.1#5335 +ipset=/virginpornlinks.com/gfwlist +server=/verisign.jobs/127.0.0.1#5335 +ipset=/verisign.jobs/gfwlist +server=/mini-connected.cz/127.0.0.1#5335 +ipset=/mini-connected.cz/gfwlist +server=/canon-se.com.tw/127.0.0.1#5335 +ipset=/canon-se.com.tw/gfwlist +server=/macbook.co/127.0.0.1#5335 +ipset=/macbook.co/gfwlist +server=/enema-videos.com/127.0.0.1#5335 +ipset=/enema-videos.com/gfwlist +server=/ero-ma-nia.com/127.0.0.1#5335 +ipset=/ero-ma-nia.com/gfwlist +server=/canon-europa.com/127.0.0.1#5335 +ipset=/canon-europa.com/gfwlist +server=/magicmovies.com/127.0.0.1#5335 +ipset=/magicmovies.com/gfwlist +server=/canon.pl/127.0.0.1#5335 +ipset=/canon.pl/gfwlist +server=/scatkings.com/127.0.0.1#5335 +ipset=/scatkings.com/gfwlist +server=/kijjiji.ca/127.0.0.1#5335 +ipset=/kijjiji.ca/gfwlist +server=/repswing.com/127.0.0.1#5335 +ipset=/repswing.com/gfwlist +server=/xvideos.red/127.0.0.1#5335 +ipset=/xvideos.red/gfwlist +server=/canon-emirates.ae/127.0.0.1#5335 +ipset=/canon-emirates.ae/gfwlist +server=/canon-ebm.com.hk/127.0.0.1#5335 +ipset=/canon-ebm.com.hk/gfwlist +server=/paypal-redeem.com/127.0.0.1#5335 +ipset=/paypal-redeem.com/gfwlist +server=/18av.pro/127.0.0.1#5335 +ipset=/18av.pro/gfwlist +server=/brilliant.org/127.0.0.1#5335 +ipset=/brilliant.org/gfwlist +server=/facebook-texas-holdem.net/127.0.0.1#5335 +ipset=/facebook-texas-holdem.net/gfwlist +server=/mastercardbiz.ca/127.0.0.1#5335 +ipset=/mastercardbiz.ca/gfwlist +server=/adultism.com/127.0.0.1#5335 +ipset=/adultism.com/gfwlist +server=/avstar4.com/127.0.0.1#5335 +ipset=/avstar4.com/gfwlist +server=/samsungdm.com/127.0.0.1#5335 +ipset=/samsungdm.com/gfwlist +server=/puripuriunkomura.com/127.0.0.1#5335 +ipset=/puripuriunkomura.com/gfwlist +server=/asianprivatetube.com/127.0.0.1#5335 +ipset=/asianprivatetube.com/gfwlist +server=/scienceonline.org/127.0.0.1#5335 +ipset=/scienceonline.org/gfwlist +server=/wifeinterracialfuck.com/127.0.0.1#5335 +ipset=/wifeinterracialfuck.com/gfwlist +server=/sony.ru/127.0.0.1#5335 +ipset=/sony.ru/gfwlist +server=/bwh1.net/127.0.0.1#5335 +ipset=/bwh1.net/gfwlist +server=/pugetsoundmini.com/127.0.0.1#5335 +ipset=/pugetsoundmini.com/gfwlist +server=/mega.co.nz/127.0.0.1#5335 +ipset=/mega.co.nz/gfwlist +server=/google.com.sg/127.0.0.1#5335 +ipset=/google.com.sg/gfwlist +server=/googleanalytics.com/127.0.0.1#5335 +ipset=/googleanalytics.com/gfwlist +server=/mydirectgroove.com/127.0.0.1#5335 +ipset=/mydirectgroove.com/gfwlist +server=/le-direct.tv/127.0.0.1#5335 +ipset=/le-direct.tv/gfwlist +server=/youtube.mk/127.0.0.1#5335 +ipset=/youtube.mk/gfwlist +server=/newsprinters.co.uk/127.0.0.1#5335 +ipset=/newsprinters.co.uk/gfwlist +server=/dropboxcaptcha.com/127.0.0.1#5335 +ipset=/dropboxcaptcha.com/gfwlist +server=/successwithteams.com/127.0.0.1#5335 +ipset=/successwithteams.com/gfwlist +server=/diretv.com/127.0.0.1#5335 +ipset=/diretv.com/gfwlist +server=/directvsundayticket.com/127.0.0.1#5335 +ipset=/directvsundayticket.com/gfwlist +server=/paypalservice.com/127.0.0.1#5335 +ipset=/paypalservice.com/gfwlist +server=/bestbhy.com/127.0.0.1#5335 +ipset=/bestbhy.com/gfwlist +server=/directvrebate.com/127.0.0.1#5335 +ipset=/directvrebate.com/gfwlist +server=/directvpromotions.com/127.0.0.1#5335 +ipset=/directvpromotions.com/gfwlist +server=/directvpromise.com/127.0.0.1#5335 +ipset=/directvpromise.com/gfwlist +server=/barrons.com/127.0.0.1#5335 +ipset=/barrons.com/gfwlist +server=/directvnow.com/127.0.0.1#5335 +ipset=/directvnow.com/gfwlist +server=/airwick.be/127.0.0.1#5335 +ipset=/airwick.be/gfwlist +server=/directvnewhampshire.com/127.0.0.1#5335 +ipset=/directvnewhampshire.com/gfwlist +server=/superearsenjoy.com/127.0.0.1#5335 +ipset=/superearsenjoy.com/gfwlist +server=/kijii.ca/127.0.0.1#5335 +ipset=/kijii.ca/gfwlist +server=/myfoxtwincities.com/127.0.0.1#5335 +ipset=/myfoxtwincities.com/gfwlist +server=/directvkentucky.com/127.0.0.1#5335 +ipset=/directvkentucky.com/gfwlist +server=/cashpassport.ca/127.0.0.1#5335 +ipset=/cashpassport.ca/gfwlist +server=/grannylister.com/127.0.0.1#5335 +ipset=/grannylister.com/gfwlist +server=/fritchy.com/127.0.0.1#5335 +ipset=/fritchy.com/gfwlist +server=/attstadium.com/127.0.0.1#5335 +ipset=/attstadium.com/gfwlist +server=/moov.hk/127.0.0.1#5335 +ipset=/moov.hk/gfwlist +server=/toonsexblog.com/127.0.0.1#5335 +ipset=/toonsexblog.com/gfwlist +server=/laracasts.com/127.0.0.1#5335 +ipset=/laracasts.com/gfwlist +server=/directvdsl.tv/127.0.0.1#5335 +ipset=/directvdsl.tv/gfwlist +server=/tiktok.com/127.0.0.1#5335 +ipset=/tiktok.com/gfwlist +server=/yogify.com/127.0.0.1#5335 +ipset=/yogify.com/gfwlist +server=/directvdealsnow.com/127.0.0.1#5335 +ipset=/directvdealsnow.com/gfwlist +server=/fox32chicago.com/127.0.0.1#5335 +ipset=/fox32chicago.com/gfwlist +server=/hentairox.com/127.0.0.1#5335 +ipset=/hentairox.com/gfwlist +server=/realclearpolitics.com/127.0.0.1#5335 +ipset=/realclearpolitics.com/gfwlist +server=/directvbusiness.com/127.0.0.1#5335 +ipset=/directvbusiness.com/gfwlist +server=/nikestyles.com/127.0.0.1#5335 +ipset=/nikestyles.com/gfwlist +server=/routledgehandbooks.com/127.0.0.1#5335 +ipset=/routledgehandbooks.com/gfwlist +server=/book.com.tw/127.0.0.1#5335 +ipset=/book.com.tw/gfwlist +server=/ajtalk.com/127.0.0.1#5335 +ipset=/ajtalk.com/gfwlist +server=/verizondigitalmedia.com/127.0.0.1#5335 +ipset=/verizondigitalmedia.com/gfwlist +server=/directvboston.com/127.0.0.1#5335 +ipset=/directvboston.com/gfwlist +server=/bestbuys.com/127.0.0.1#5335 +ipset=/bestbuys.com/gfwlist +server=/directv-newyork.com/127.0.0.1#5335 +ipset=/directv-newyork.com/gfwlist +server=/instafallow.com/127.0.0.1#5335 +ipset=/instafallow.com/gfwlist +server=/firstsearch.oclc.org/127.0.0.1#5335 +ipset=/firstsearch.oclc.org/gfwlist +server=/freeb.com/127.0.0.1#5335 +ipset=/freeb.com/gfwlist +server=/dkrecttv.com/127.0.0.1#5335 +ipset=/dkrecttv.com/gfwlist +server=/young-xxx.net/127.0.0.1#5335 +ipset=/young-xxx.net/gfwlist +server=/meme111.com/127.0.0.1#5335 +ipset=/meme111.com/gfwlist +server=/hdvideosporn.net/127.0.0.1#5335 +ipset=/hdvideosporn.net/gfwlist +server=/direcpath.net/127.0.0.1#5335 +ipset=/direcpath.net/gfwlist +server=/hentaistream.tv/127.0.0.1#5335 +ipset=/hentaistream.tv/gfwlist +server=/mcdonalds.hk/127.0.0.1#5335 +ipset=/mcdonalds.hk/gfwlist +server=/softbanktelecom.com/127.0.0.1#5335 +ipset=/softbanktelecom.com/gfwlist +server=/hotgoo.com/127.0.0.1#5335 +ipset=/hotgoo.com/gfwlist +server=/boylove.com/127.0.0.1#5335 +ipset=/boylove.com/gfwlist +server=/zorglist.com/127.0.0.1#5335 +ipset=/zorglist.com/gfwlist +server=/loveamateurfacials.com/127.0.0.1#5335 +ipset=/loveamateurfacials.com/gfwlist +server=/booru.org/127.0.0.1#5335 +ipset=/booru.org/gfwlist +server=/3danimeworld.com/127.0.0.1#5335 +ipset=/3danimeworld.com/gfwlist +server=/infocert.digital/127.0.0.1#5335 +ipset=/infocert.digital/gfwlist +server=/mini.si/127.0.0.1#5335 +ipset=/mini.si/gfwlist +server=/tvpromise.com/127.0.0.1#5335 +ipset=/tvpromise.com/gfwlist +server=/porngames.tv/127.0.0.1#5335 +ipset=/porngames.tv/gfwlist +server=/pinkworld.com/127.0.0.1#5335 +ipset=/pinkworld.com/gfwlist +server=/yes123.com.tw/127.0.0.1#5335 +ipset=/yes123.com.tw/gfwlist +server=/synaptic.net/127.0.0.1#5335 +ipset=/synaptic.net/gfwlist +server=/safebooru.org/127.0.0.1#5335 +ipset=/safebooru.org/gfwlist +server=/sundayready.com/127.0.0.1#5335 +ipset=/sundayready.com/gfwlist +server=/susiewildin.com/127.0.0.1#5335 +ipset=/susiewildin.com/gfwlist +server=/girlsdelta.com/127.0.0.1#5335 +ipset=/girlsdelta.com/gfwlist +server=/hotbeatsonsale.com/127.0.0.1#5335 +ipset=/hotbeatsonsale.com/gfwlist +server=/bmw-motorrad.ro/127.0.0.1#5335 +ipset=/bmw-motorrad.ro/gfwlist +server=/visa.com.cy/127.0.0.1#5335 +ipset=/visa.com.cy/gfwlist +server=/8xxx.net/127.0.0.1#5335 +ipset=/8xxx.net/gfwlist +server=/bmwsafari.com/127.0.0.1#5335 +ipset=/bmwsafari.com/gfwlist +server=/enterprisepaging.com/127.0.0.1#5335 +ipset=/enterprisepaging.com/gfwlist +server=/foxaffiliateportal.com/127.0.0.1#5335 +ipset=/foxaffiliateportal.com/gfwlist +server=/directvbusinessmarket.com/127.0.0.1#5335 +ipset=/directvbusinessmarket.com/gfwlist +server=/naizitv.top/127.0.0.1#5335 +ipset=/naizitv.top/gfwlist +server=/swissstick.com/127.0.0.1#5335 +ipset=/swissstick.com/gfwlist +server=/bmw-connecteddrive.sk/127.0.0.1#5335 +ipset=/bmw-connecteddrive.sk/gfwlist +server=/microsoft.ro/127.0.0.1#5335 +ipset=/microsoft.ro/gfwlist +server=/cbs.com/127.0.0.1#5335 +ipset=/cbs.com/gfwlist +server=/customdrdrebeats.com/127.0.0.1#5335 +ipset=/customdrdrebeats.com/gfwlist +server=/currently.net/127.0.0.1#5335 +ipset=/currently.net/gfwlist +server=/ntdtv.com/127.0.0.1#5335 +ipset=/ntdtv.com/gfwlist +server=/oudoll.com/127.0.0.1#5335 +ipset=/oudoll.com/gfwlist +server=/ebaychina.net/127.0.0.1#5335 +ipset=/ebaychina.net/gfwlist +server=/enablementadobe.com/127.0.0.1#5335 +ipset=/enablementadobe.com/gfwlist +server=/18comic.vip/127.0.0.1#5335 +ipset=/18comic.vip/gfwlist +server=/acgvipss.com/127.0.0.1#5335 +ipset=/acgvipss.com/gfwlist +server=/nexpart.com/127.0.0.1#5335 +ipset=/nexpart.com/gfwlist +server=/headphonesol.com/127.0.0.1#5335 +ipset=/headphonesol.com/gfwlist +server=/pearsonvue.com/127.0.0.1#5335 +ipset=/pearsonvue.com/gfwlist +server=/beatsmonstersales.com/127.0.0.1#5335 +ipset=/beatsmonstersales.com/gfwlist +server=/attuverseonline.com/127.0.0.1#5335 +ipset=/attuverseonline.com/gfwlist +server=/attuverseoffers.com/127.0.0.1#5335 +ipset=/attuverseoffers.com/gfwlist +server=/attsuppliers.com/127.0.0.1#5335 +ipset=/attsuppliers.com/gfwlist +server=/opencollective.com/127.0.0.1#5335 +ipset=/opencollective.com/gfwlist +server=/anidom.com/127.0.0.1#5335 +ipset=/anidom.com/gfwlist +server=/slackb.com/127.0.0.1#5335 +ipset=/slackb.com/gfwlist +server=/niketaiwan.net/127.0.0.1#5335 +ipset=/niketaiwan.net/gfwlist +server=/m.me/127.0.0.1#5335 +ipset=/m.me/gfwlist +server=/matures-loving-sex.com/127.0.0.1#5335 +ipset=/matures-loving-sex.com/gfwlist +server=/musickit.net/127.0.0.1#5335 +ipset=/musickit.net/gfwlist +server=/attpublicpolicy.com/127.0.0.1#5335 +ipset=/attpublicpolicy.com/gfwlist +server=/gitlab-assets.oss-cn-hongkong.aliyuncs.com/127.0.0.1#5335 +ipset=/gitlab-assets.oss-cn-hongkong.aliyuncs.com/gfwlist +server=/attnetclient.com/127.0.0.1#5335 +ipset=/attnetclient.com/gfwlist +server=/attjoy.com/127.0.0.1#5335 +ipset=/attjoy.com/gfwlist +server=/attcollaborate.com/127.0.0.1#5335 +ipset=/attcollaborate.com/gfwlist +server=/goldengate.hu/127.0.0.1#5335 +ipset=/goldengate.hu/gfwlist +server=/attbusiness.net/127.0.0.1#5335 +ipset=/attbusiness.net/gfwlist +server=/sexbebin.com/127.0.0.1#5335 +ipset=/sexbebin.com/gfwlist +server=/iphoneimessage.com/127.0.0.1#5335 +ipset=/iphoneimessage.com/gfwlist +server=/1pornlist.com/127.0.0.1#5335 +ipset=/1pornlist.com/gfwlist +server=/eadultgames.com/127.0.0.1#5335 +ipset=/eadultgames.com/gfwlist +server=/fameregistry.com/127.0.0.1#5335 +ipset=/fameregistry.com/gfwlist +server=/cumfox.com/127.0.0.1#5335 +ipset=/cumfox.com/gfwlist +server=/att.jobs/127.0.0.1#5335 +ipset=/att.jobs/gfwlist +server=/gwktravelex.nl/127.0.0.1#5335 +ipset=/gwktravelex.nl/gfwlist +server=/youngermommy.com/127.0.0.1#5335 +ipset=/youngermommy.com/gfwlist +server=/porn-discounts.xxx/127.0.0.1#5335 +ipset=/porn-discounts.xxx/gfwlist +server=/pixnet.cc/127.0.0.1#5335 +ipset=/pixnet.cc/gfwlist +server=/att-promotions.com/127.0.0.1#5335 +ipset=/att-promotions.com/gfwlist +server=/digital-id.ch/127.0.0.1#5335 +ipset=/digital-id.ch/gfwlist +server=/t.me/127.0.0.1#5335 +ipset=/t.me/gfwlist +server=/att-mail.com/127.0.0.1#5335 +ipset=/att-mail.com/gfwlist +server=/f-droid.org/127.0.0.1#5335 +ipset=/f-droid.org/gfwlist +server=/sarapbabe.com/127.0.0.1#5335 +ipset=/sarapbabe.com/gfwlist +server=/att-bundles.com/127.0.0.1#5335 +ipset=/att-bundles.com/gfwlist +server=/accbusiness.com/127.0.0.1#5335 +ipset=/accbusiness.com/gfwlist +server=/miohentai.com/127.0.0.1#5335 +ipset=/miohentai.com/gfwlist +server=/bitbucket.org/127.0.0.1#5335 +ipset=/bitbucket.org/gfwlist +server=/volvobuses.in/127.0.0.1#5335 +ipset=/volvobuses.in/gfwlist +server=/person.com/127.0.0.1#5335 +ipset=/person.com/gfwlist +server=/xn--kput3imi374g.xn--hxt814e/127.0.0.1#5335 +ipset=/xn--kput3imi374g.xn--hxt814e/gfwlist +server=/ebayhots.com/127.0.0.1#5335 +ipset=/ebayhots.com/gfwlist +server=/mini.tm/127.0.0.1#5335 +ipset=/mini.tm/gfwlist +server=/line-cdn.net/127.0.0.1#5335 +ipset=/line-cdn.net/gfwlist +server=/beatsallsale.com/127.0.0.1#5335 +ipset=/beatsallsale.com/gfwlist +server=/ao3.org/127.0.0.1#5335 +ipset=/ao3.org/gfwlist +server=/xn--fiqs8sxootzz.cn/127.0.0.1#5335 +ipset=/xn--fiqs8sxootzz.cn/gfwlist +server=/qinav.com/127.0.0.1#5335 +ipset=/qinav.com/gfwlist +server=/wwapple.net/127.0.0.1#5335 +ipset=/wwapple.net/gfwlist +server=/gobuyonlinestore.net/127.0.0.1#5335 +ipset=/gobuyonlinestore.net/gfwlist +server=/pornhub.com/127.0.0.1#5335 +ipset=/pornhub.com/gfwlist +server=/applestore.com.pt/127.0.0.1#5335 +ipset=/applestore.com.pt/gfwlist +server=/webobjects.eu/127.0.0.1#5335 +ipset=/webobjects.eu/gfwlist +server=/freeomovie.to/127.0.0.1#5335 +ipset=/freeomovie.to/gfwlist +server=/kubakuba.global/127.0.0.1#5335 +ipset=/kubakuba.global/gfwlist +server=/freearabsexx.com/127.0.0.1#5335 +ipset=/freearabsexx.com/gfwlist +server=/canon-me.com/127.0.0.1#5335 +ipset=/canon-me.com/gfwlist +server=/pearsonclinical.fr/127.0.0.1#5335 +ipset=/pearsonclinical.fr/gfwlist +server=/etbc.com.hk/127.0.0.1#5335 +ipset=/etbc.com.hk/gfwlist +server=/quicktime.net/127.0.0.1#5335 +ipset=/quicktime.net/gfwlist +server=/rprimelab.com/127.0.0.1#5335 +ipset=/rprimelab.com/gfwlist +server=/speedhunters.com/127.0.0.1#5335 +ipset=/speedhunters.com/gfwlist +server=/177picyy.com/127.0.0.1#5335 +ipset=/177picyy.com/gfwlist +server=/pornovenezolanox.com/127.0.0.1#5335 +ipset=/pornovenezolanox.com/gfwlist +server=/quicktime.com.au/127.0.0.1#5335 +ipset=/quicktime.com.au/gfwlist +server=/quicktime.cc/127.0.0.1#5335 +ipset=/quicktime.cc/gfwlist +server=/camelot-europe.com/127.0.0.1#5335 +ipset=/camelot-europe.com/gfwlist +server=/xn--xsq959n.com/127.0.0.1#5335 +ipset=/xn--xsq959n.com/gfwlist +server=/xn--gmq92kd2rm1kx34a.com/127.0.0.1#5335 +ipset=/xn--gmq92kd2rm1kx34a.com/gfwlist +server=/catmiimi.com/127.0.0.1#5335 +ipset=/catmiimi.com/gfwlist +server=/la-mama.ru/127.0.0.1#5335 +ipset=/la-mama.ru/gfwlist +server=/oanencore.com/127.0.0.1#5335 +ipset=/oanencore.com/gfwlist +server=/newton.com/127.0.0.1#5335 +ipset=/newton.com/gfwlist +server=/achat-followers-instagram.com/127.0.0.1#5335 +ipset=/achat-followers-instagram.com/gfwlist +server=/macreach.net/127.0.0.1#5335 +ipset=/macreach.net/gfwlist +server=/macpazar.com/127.0.0.1#5335 +ipset=/macpazar.com/gfwlist +server=/practicalbusinessskills.com/127.0.0.1#5335 +ipset=/practicalbusinessskills.com/gfwlist +server=/kphimsex.net/127.0.0.1#5335 +ipset=/kphimsex.net/gfwlist +server=/macosx.info/127.0.0.1#5335 +ipset=/macosx.info/gfwlist +server=/volvobuses.fr/127.0.0.1#5335 +ipset=/volvobuses.fr/gfwlist +server=/visa.so/127.0.0.1#5335 +ipset=/visa.so/gfwlist +server=/youtube.com.az/127.0.0.1#5335 +ipset=/youtube.com.az/gfwlist +server=/bikac.xyz/127.0.0.1#5335 +ipset=/bikac.xyz/gfwlist +server=/google.com.lb/127.0.0.1#5335 +ipset=/google.com.lb/gfwlist +server=/icashpassport.com.mx/127.0.0.1#5335 +ipset=/icashpassport.com.mx/gfwlist +server=/bmw-motorrad.dk/127.0.0.1#5335 +ipset=/bmw-motorrad.dk/gfwlist +server=/bmw-int1.com/127.0.0.1#5335 +ipset=/bmw-int1.com/gfwlist +server=/yomiuri-systec.co.jp/127.0.0.1#5335 +ipset=/yomiuri-systec.co.jp/gfwlist +server=/disney.fi/127.0.0.1#5335 +ipset=/disney.fi/gfwlist +server=/disney.io/127.0.0.1#5335 +ipset=/disney.io/gfwlist +server=/eac-cdn.com/127.0.0.1#5335 +ipset=/eac-cdn.com/gfwlist +server=/supercell.com/127.0.0.1#5335 +ipset=/supercell.com/gfwlist +server=/macboxset.com/127.0.0.1#5335 +ipset=/macboxset.com/gfwlist +server=/scholar.google.com/127.0.0.1#5335 +ipset=/scholar.google.com/gfwlist +server=/emblstatic.net/127.0.0.1#5335 +ipset=/emblstatic.net/gfwlist +server=/mac.rs/127.0.0.1#5335 +ipset=/mac.rs/gfwlist +server=/singpao.com.hk/127.0.0.1#5335 +ipset=/singpao.com.hk/gfwlist +server=/oxfordhandbooks.com/127.0.0.1#5335 +ipset=/oxfordhandbooks.com/gfwlist +server=/mac.eu/127.0.0.1#5335 +ipset=/mac.eu/gfwlist +server=/javpub.me/127.0.0.1#5335 +ipset=/javpub.me/gfwlist +server=/familypornhd.com/127.0.0.1#5335 +ipset=/familypornhd.com/gfwlist +server=/mac.com/127.0.0.1#5335 +ipset=/mac.com/gfwlist +server=/milfporn.pro/127.0.0.1#5335 +ipset=/milfporn.pro/gfwlist +server=/noodlemagazine.com/127.0.0.1#5335 +ipset=/noodlemagazine.com/gfwlist +server=/bangyourwife.com/127.0.0.1#5335 +ipset=/bangyourwife.com/gfwlist +server=/facebookblueprint.net/127.0.0.1#5335 +ipset=/facebookblueprint.net/gfwlist +server=/ksd235qw.com/127.0.0.1#5335 +ipset=/ksd235qw.com/gfwlist +server=/bmwmagazine.com/127.0.0.1#5335 +ipset=/bmwmagazine.com/gfwlist +server=/vgcareers.net/127.0.0.1#5335 +ipset=/vgcareers.net/gfwlist +server=/anyxxx.pro/127.0.0.1#5335 +ipset=/anyxxx.pro/gfwlist +server=/instaplayer.net/127.0.0.1#5335 +ipset=/instaplayer.net/gfwlist +server=/volvotrucks.qa/127.0.0.1#5335 +ipset=/volvotrucks.qa/gfwlist +server=/foxsportsuniversity.com/127.0.0.1#5335 +ipset=/foxsportsuniversity.com/gfwlist +server=/nudecams.cam/127.0.0.1#5335 +ipset=/nudecams.cam/gfwlist +server=/minivictoria.ca/127.0.0.1#5335 +ipset=/minivictoria.ca/gfwlist +server=/yahoo.co.vi/127.0.0.1#5335 +ipset=/yahoo.co.vi/gfwlist +server=/iwork.wang/127.0.0.1#5335 +ipset=/iwork.wang/gfwlist +server=/ischool.com/127.0.0.1#5335 +ipset=/ischool.com/gfwlist +server=/applenews.hamburg/127.0.0.1#5335 +ipset=/applenews.hamburg/gfwlist +server=/ipa-iphone.net/127.0.0.1#5335 +ipset=/ipa-iphone.net/gfwlist +server=/akamaimagicmath.net/127.0.0.1#5335 +ipset=/akamaimagicmath.net/gfwlist +server=/iosinthecar.com/127.0.0.1#5335 +ipset=/iosinthecar.com/gfwlist +server=/voxmedia.com/127.0.0.1#5335 +ipset=/voxmedia.com/gfwlist +server=/hentaipapa.com/127.0.0.1#5335 +ipset=/hentaipapa.com/gfwlist +server=/bestiphonestuff.com/127.0.0.1#5335 +ipset=/bestiphonestuff.com/gfwlist +server=/amerikaovozi.com/127.0.0.1#5335 +ipset=/amerikaovozi.com/gfwlist +server=/imessage.tv/127.0.0.1#5335 +ipset=/imessage.tv/gfwlist +server=/ikids.com/127.0.0.1#5335 +ipset=/ikids.com/gfwlist +server=/epochstories.com/127.0.0.1#5335 +ipset=/epochstories.com/gfwlist +server=/beatsbydrecheap-outletstore.com/127.0.0.1#5335 +ipset=/beatsbydrecheap-outletstore.com/gfwlist +server=/swisstsa.li/127.0.0.1#5335 +ipset=/swisstsa.li/gfwlist +server=/firewire.cl/127.0.0.1#5335 +ipset=/firewire.cl/gfwlist +server=/finalcutpro.com/127.0.0.1#5335 +ipset=/finalcutpro.com/gfwlist +server=/freefacebook.net/127.0.0.1#5335 +ipset=/freefacebook.net/gfwlist +server=/facetime.net/127.0.0.1#5335 +ipset=/facetime.net/gfwlist +server=/hulunetwork.com/127.0.0.1#5335 +ipset=/hulunetwork.com/gfwlist +server=/promonsterbeatsbydre.com/127.0.0.1#5335 +ipset=/promonsterbeatsbydre.com/gfwlist +server=/shopbeatsdre.com/127.0.0.1#5335 +ipset=/shopbeatsdre.com/gfwlist +server=/lostbetsgames.com/127.0.0.1#5335 +ipset=/lostbetsgames.com/gfwlist +server=/park-now.com/127.0.0.1#5335 +ipset=/park-now.com/gfwlist +server=/bbyintl.com/127.0.0.1#5335 +ipset=/bbyintl.com/gfwlist +server=/bdsmbunker.com/127.0.0.1#5335 +ipset=/bdsmbunker.com/gfwlist +server=/google.com.bd/127.0.0.1#5335 +ipset=/google.com.bd/gfwlist +server=/leaguesharp.info/127.0.0.1#5335 +ipset=/leaguesharp.info/gfwlist +server=/ipfs.eth.aragon.network/127.0.0.1#5335 +ipset=/ipfs.eth.aragon.network/gfwlist +server=/emac.in/127.0.0.1#5335 +ipset=/emac.in/gfwlist +server=/pogobeta.com/127.0.0.1#5335 +ipset=/pogobeta.com/gfwlist +server=/uun95.com/127.0.0.1#5335 +ipset=/uun95.com/gfwlist +server=/dvdstudiopro.us/127.0.0.1#5335 +ipset=/dvdstudiopro.us/gfwlist +server=/only-xxx-porn.com/127.0.0.1#5335 +ipset=/only-xxx-porn.com/gfwlist +server=/mini.com.py/127.0.0.1#5335 +ipset=/mini.com.py/gfwlist +server=/azure.net/127.0.0.1#5335 +ipset=/azure.net/gfwlist +server=/embl.de/127.0.0.1#5335 +ipset=/embl.de/gfwlist +server=/dvdstudiopro.com/127.0.0.1#5335 +ipset=/dvdstudiopro.com/gfwlist +server=/beatsbydre2081.com/127.0.0.1#5335 +ipset=/beatsbydre2081.com/gfwlist +server=/whonix.org/127.0.0.1#5335 +ipset=/whonix.org/gfwlist +server=/dvdstudiopro.biz/127.0.0.1#5335 +ipset=/dvdstudiopro.biz/gfwlist +server=/macrumors.com/127.0.0.1#5335 +ipset=/macrumors.com/gfwlist +server=/dotmac.de/127.0.0.1#5335 +ipset=/dotmac.de/gfwlist +server=/bmw-m.com/127.0.0.1#5335 +ipset=/bmw-m.com/gfwlist +server=/digitalhub.com/127.0.0.1#5335 +ipset=/digitalhub.com/gfwlist +server=/cheapestbeatsdrdre.com/127.0.0.1#5335 +ipset=/cheapestbeatsdrdre.com/gfwlist +server=/nextechafrica.net/127.0.0.1#5335 +ipset=/nextechafrica.net/gfwlist +server=/appcenter.ms/127.0.0.1#5335 +ipset=/appcenter.ms/gfwlist +server=/desktopmovies.net/127.0.0.1#5335 +ipset=/desktopmovies.net/gfwlist +server=/gcrtires.com/127.0.0.1#5335 +ipset=/gcrtires.com/gfwlist +server=/desktopmovie.net/127.0.0.1#5335 +ipset=/desktopmovie.net/gfwlist +server=/online-deals.net/127.0.0.1#5335 +ipset=/online-deals.net/gfwlist +server=/dashwood360.com/127.0.0.1#5335 +ipset=/dashwood360.com/gfwlist +server=/fotolia.tv/127.0.0.1#5335 +ipset=/fotolia.tv/gfwlist +server=/niziero.info/127.0.0.1#5335 +ipset=/niziero.info/gfwlist +server=/parstream.com/127.0.0.1#5335 +ipset=/parstream.com/gfwlist +server=/boxun.com/127.0.0.1#5335 +ipset=/boxun.com/gfwlist +server=/disneyinternationalhd.com/127.0.0.1#5335 +ipset=/disneyinternationalhd.com/gfwlist +server=/dropboxbusiness.com/127.0.0.1#5335 +ipset=/dropboxbusiness.com/gfwlist +server=/nurofen.ie/127.0.0.1#5335 +ipset=/nurofen.ie/gfwlist +server=/faccebook.com/127.0.0.1#5335 +ipset=/faccebook.com/gfwlist +server=/ssl-certificate.ch/127.0.0.1#5335 +ipset=/ssl-certificate.ch/gfwlist +server=/volvotruckcenter.se/127.0.0.1#5335 +ipset=/volvotruckcenter.se/gfwlist +server=/xxnxx-sex.com/127.0.0.1#5335 +ipset=/xxnxx-sex.com/gfwlist +server=/alphabet.biz/127.0.0.1#5335 +ipset=/alphabet.biz/gfwlist +server=/faacebok.com/127.0.0.1#5335 +ipset=/faacebok.com/gfwlist +server=/duckduckgo.com/127.0.0.1#5335 +ipset=/duckduckgo.com/gfwlist +server=/forzamotorsport.net/127.0.0.1#5335 +ipset=/forzamotorsport.net/gfwlist +server=/paypal-search.com/127.0.0.1#5335 +ipset=/paypal-search.com/gfwlist +server=/dreamteamfc.com/127.0.0.1#5335 +ipset=/dreamteamfc.com/gfwlist +server=/apyle.com/127.0.0.1#5335 +ipset=/apyle.com/gfwlist +server=/epochtimes.co.uk/127.0.0.1#5335 +ipset=/epochtimes.co.uk/gfwlist +server=/appye.com/127.0.0.1#5335 +ipset=/appye.com/gfwlist +server=/appmediagroup.com/127.0.0.1#5335 +ipset=/appmediagroup.com/gfwlist +server=/12diasderegalosdeitunes.com.hn/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.com.hn/gfwlist +server=/blogebay.com/127.0.0.1#5335 +ipset=/blogebay.com/gfwlist +server=/indian-pornstars.com/127.0.0.1#5335 +ipset=/indian-pornstars.com/gfwlist +server=/applle.com/127.0.0.1#5335 +ipset=/applle.com/gfwlist +server=/xxx-fap.com/127.0.0.1#5335 +ipset=/xxx-fap.com/gfwlist +server=/swisssign.net/127.0.0.1#5335 +ipset=/swisssign.net/gfwlist +server=/applezh.com/127.0.0.1#5335 +ipset=/applezh.com/gfwlist +server=/ebayt.com/127.0.0.1#5335 +ipset=/ebayt.com/gfwlist +server=/paisapay.cc/127.0.0.1#5335 +ipset=/paisapay.cc/gfwlist +server=/appleweb.net/127.0.0.1#5335 +ipset=/appleweb.net/gfwlist +server=/statics-marketingsites-eus-ms-com.akamaized.net/127.0.0.1#5335 +ipset=/statics-marketingsites-eus-ms-com.akamaized.net/gfwlist +server=/ctwant.com/127.0.0.1#5335 +ipset=/ctwant.com/gfwlist +server=/gonike.com/127.0.0.1#5335 +ipset=/gonike.com/gfwlist +server=/facebookclub.com/127.0.0.1#5335 +ipset=/facebookclub.com/gfwlist +server=/bowsersinsidestory.com/127.0.0.1#5335 +ipset=/bowsersinsidestory.com/gfwlist +server=/orgypornonly.com/127.0.0.1#5335 +ipset=/orgypornonly.com/gfwlist +server=/boslife.net/127.0.0.1#5335 +ipset=/boslife.net/gfwlist +server=/appleshop.co.uk/127.0.0.1#5335 +ipset=/appleshop.co.uk/gfwlist +server=/appleshare.info/127.0.0.1#5335 +ipset=/appleshare.info/gfwlist +server=/cpan.org/127.0.0.1#5335 +ipset=/cpan.org/gfwlist +server=/pricelesstv.com/127.0.0.1#5335 +ipset=/pricelesstv.com/gfwlist +server=/ntnews.com.au/127.0.0.1#5335 +ipset=/ntnews.com.au/gfwlist +server=/apples-msk.ru/127.0.0.1#5335 +ipset=/apples-msk.ru/gfwlist +server=/minidealernet.com/127.0.0.1#5335 +ipset=/minidealernet.com/gfwlist +server=/bestxxxsites.com/127.0.0.1#5335 +ipset=/bestxxxsites.com/gfwlist +server=/secretbabes.co.uk/127.0.0.1#5335 +ipset=/secretbabes.co.uk/gfwlist +server=/applereach.net/127.0.0.1#5335 +ipset=/applereach.net/gfwlist +server=/applepremiumresellers.com.au/127.0.0.1#5335 +ipset=/applepremiumresellers.com.au/gfwlist +server=/amazon.co.uk/127.0.0.1#5335 +ipset=/amazon.co.uk/gfwlist +server=/visiontimes.net/127.0.0.1#5335 +ipset=/visiontimes.net/gfwlist +server=/biomedcentral.com/127.0.0.1#5335 +ipset=/biomedcentral.com/gfwlist +server=/iceporn.com/127.0.0.1#5335 +ipset=/iceporn.com/gfwlist +server=/bossagency.co.uk/127.0.0.1#5335 +ipset=/bossagency.co.uk/gfwlist +server=/appleonline.net/127.0.0.1#5335 +ipset=/appleonline.net/gfwlist +server=/applemagickeyboard.com/127.0.0.1#5335 +ipset=/applemagickeyboard.com/gfwlist +server=/ygugu4.com/127.0.0.1#5335 +ipset=/ygugu4.com/gfwlist +server=/pearsoncanada.ca/127.0.0.1#5335 +ipset=/pearsoncanada.ca/gfwlist +server=/brazzersnetwork.com/127.0.0.1#5335 +ipset=/brazzersnetwork.com/gfwlist +server=/yourlust.com/127.0.0.1#5335 +ipset=/yourlust.com/gfwlist +server=/huffingtonpost.ca/127.0.0.1#5335 +ipset=/huffingtonpost.ca/gfwlist +server=/mtvnservices.com/127.0.0.1#5335 +ipset=/mtvnservices.com/gfwlist +server=/muji.com.hk/127.0.0.1#5335 +ipset=/muji.com.hk/gfwlist +server=/huloo.cc/127.0.0.1#5335 +ipset=/huloo.cc/gfwlist +server=/oreno3d.com/127.0.0.1#5335 +ipset=/oreno3d.com/gfwlist +server=/httpwwwfacebook.com/127.0.0.1#5335 +ipset=/httpwwwfacebook.com/gfwlist +server=/omgteens.com/127.0.0.1#5335 +ipset=/omgteens.com/gfwlist +server=/vmwarecloud.com/127.0.0.1#5335 +ipset=/vmwarecloud.com/gfwlist +server=/sharepoint.com/127.0.0.1#5335 +ipset=/sharepoint.com/gfwlist +server=/pornmaturetube.com/127.0.0.1#5335 +ipset=/pornmaturetube.com/gfwlist +server=/applefilmmaker.com/127.0.0.1#5335 +ipset=/applefilmmaker.com/gfwlist +server=/iamakamai.net/127.0.0.1#5335 +ipset=/iamakamai.net/gfwlist +server=/monsterbeatshere.com/127.0.0.1#5335 +ipset=/monsterbeatshere.com/gfwlist +server=/disneytvajobs.com/127.0.0.1#5335 +ipset=/disneytvajobs.com/gfwlist +server=/animesex.me/127.0.0.1#5335 +ipset=/animesex.me/gfwlist +server=/appleexpo.eu/127.0.0.1#5335 +ipset=/appleexpo.eu/gfwlist +server=/secretchina.com/127.0.0.1#5335 +ipset=/secretchina.com/gfwlist +server=/foxredeem.com/127.0.0.1#5335 +ipset=/foxredeem.com/gfwlist +server=/belamionline.com/127.0.0.1#5335 +ipset=/belamionline.com/gfwlist +server=/dojinmanga.net/127.0.0.1#5335 +ipset=/dojinmanga.net/gfwlist +server=/applecomputerinc.info/127.0.0.1#5335 +ipset=/applecomputerinc.info/gfwlist +server=/ebayetc.com/127.0.0.1#5335 +ipset=/ebayetc.com/gfwlist +server=/pornnetworkdeals.com/127.0.0.1#5335 +ipset=/pornnetworkdeals.com/gfwlist +server=/ikea.ca/127.0.0.1#5335 +ipset=/ikea.ca/gfwlist +server=/applecomputerimac.com/127.0.0.1#5335 +ipset=/applecomputerimac.com/gfwlist +server=/applecomputer.kr/127.0.0.1#5335 +ipset=/applecomputer.kr/gfwlist +server=/hhtdq17.com/127.0.0.1#5335 +ipset=/hhtdq17.com/gfwlist +server=/magento.com/127.0.0.1#5335 +ipset=/magento.com/gfwlist +server=/google.com.mt/127.0.0.1#5335 +ipset=/google.com.mt/gfwlist +server=/bridgestonegz.com/127.0.0.1#5335 +ipset=/bridgestonegz.com/gfwlist +server=/applecomputer.com/127.0.0.1#5335 +ipset=/applecomputer.com/gfwlist +server=/applecomputer.co.nz/127.0.0.1#5335 +ipset=/applecomputer.co.nz/gfwlist +server=/applecomputer-imac.com/127.0.0.1#5335 +ipset=/applecomputer-imac.com/gfwlist +server=/borwap.com/127.0.0.1#5335 +ipset=/borwap.com/gfwlist +server=/disneyplus.bn5x.net/127.0.0.1#5335 +ipset=/disneyplus.bn5x.net/gfwlist +server=/mobileview.page/127.0.0.1#5335 +ipset=/mobileview.page/gfwlist +server=/youtube.co.za/127.0.0.1#5335 +ipset=/youtube.co.za/gfwlist +server=/simility.com/127.0.0.1#5335 +ipset=/simility.com/gfwlist +server=/beatsbydreblackfridaypro.com/127.0.0.1#5335 +ipset=/beatsbydreblackfridaypro.com/gfwlist +server=/pinkcore.net/127.0.0.1#5335 +ipset=/pinkcore.net/gfwlist +server=/now-ashare.com/127.0.0.1#5335 +ipset=/now-ashare.com/gfwlist +server=/reurl.cc/127.0.0.1#5335 +ipset=/reurl.cc/gfwlist +server=/rockettube.com/127.0.0.1#5335 +ipset=/rockettube.com/gfwlist +server=/evernote.com/127.0.0.1#5335 +ipset=/evernote.com/gfwlist +server=/voacambodia.com/127.0.0.1#5335 +ipset=/voacambodia.com/gfwlist +server=/appleaustralia.com.au/127.0.0.1#5335 +ipset=/appleaustralia.com.au/gfwlist +server=/talentlens.com/127.0.0.1#5335 +ipset=/talentlens.com/gfwlist +server=/electricluxury.com/127.0.0.1#5335 +ipset=/electricluxury.com/gfwlist +server=/ebaydlassifieds.com/127.0.0.1#5335 +ipset=/ebaydlassifieds.com/gfwlist +server=/gay0day.com/127.0.0.1#5335 +ipset=/gay0day.com/gfwlist +server=/thotbook.tv/127.0.0.1#5335 +ipset=/thotbook.tv/gfwlist +server=/realamericanstories.tv/127.0.0.1#5335 +ipset=/realamericanstories.tv/gfwlist +server=/bmw-gta.ca/127.0.0.1#5335 +ipset=/bmw-gta.ca/gfwlist +server=/kisscos.net/127.0.0.1#5335 +ipset=/kisscos.net/gfwlist +server=/apple-usa.net/127.0.0.1#5335 +ipset=/apple-usa.net/gfwlist +server=/beatsbydre-headphones.com/127.0.0.1#5335 +ipset=/beatsbydre-headphones.com/gfwlist +server=/youtube.com.jo/127.0.0.1#5335 +ipset=/youtube.com.jo/gfwlist +server=/tubesafari.com/127.0.0.1#5335 +ipset=/tubesafari.com/gfwlist +server=/forzarc.com/127.0.0.1#5335 +ipset=/forzarc.com/gfwlist +server=/erogazopple.com/127.0.0.1#5335 +ipset=/erogazopple.com/gfwlist +server=/bml.info/127.0.0.1#5335 +ipset=/bml.info/gfwlist +server=/duckduckgo.de/127.0.0.1#5335 +ipset=/duckduckgo.de/gfwlist +server=/ebaysoho.com/127.0.0.1#5335 +ipset=/ebaysoho.com/gfwlist +server=/itunes-radio.net/127.0.0.1#5335 +ipset=/itunes-radio.net/gfwlist +server=/apple-livephotoskit.com/127.0.0.1#5335 +ipset=/apple-livephotoskit.com/gfwlist +server=/rgpub.io/127.0.0.1#5335 +ipset=/rgpub.io/gfwlist +server=/savethedate.foo/127.0.0.1#5335 +ipset=/savethedate.foo/gfwlist +server=/apple-inc.net/127.0.0.1#5335 +ipset=/apple-inc.net/gfwlist +server=/apple-hk.com/127.0.0.1#5335 +ipset=/apple-hk.com/gfwlist +server=/illusiongw.com/127.0.0.1#5335 +ipset=/illusiongw.com/gfwlist +server=/adultsexgames.biz/127.0.0.1#5335 +ipset=/adultsexgames.biz/gfwlist +server=/ebayuae.net/127.0.0.1#5335 +ipset=/ebayuae.net/gfwlist +server=/thenewgirlspooping.com/127.0.0.1#5335 +ipset=/thenewgirlspooping.com/gfwlist +server=/apple-dns.net/127.0.0.1#5335 +ipset=/apple-dns.net/gfwlist +server=/alliancesages.com/127.0.0.1#5335 +ipset=/alliancesages.com/gfwlist +server=/apple-dns.com/127.0.0.1#5335 +ipset=/apple-dns.com/gfwlist +server=/vintage-erotica-forum.com/127.0.0.1#5335 +ipset=/vintage-erotica-forum.com/gfwlist +server=/apple-darwin.net/127.0.0.1#5335 +ipset=/apple-darwin.net/gfwlist +server=/cdngarenanow-a.akamaihd.net/127.0.0.1#5335 +ipset=/cdngarenanow-a.akamaihd.net/gfwlist +server=/apple-darwin.com/127.0.0.1#5335 +ipset=/apple-darwin.com/gfwlist +server=/nijiclamp.com/127.0.0.1#5335 +ipset=/nijiclamp.com/gfwlist +server=/mystrikingly.com/127.0.0.1#5335 +ipset=/mystrikingly.com/gfwlist +server=/mastercard.co.za/127.0.0.1#5335 +ipset=/mastercard.co.za/gfwlist +server=/eakorea.co.kr/127.0.0.1#5335 +ipset=/eakorea.co.kr/gfwlist +server=/nikefreeshoes.com/127.0.0.1#5335 +ipset=/nikefreeshoes.com/gfwlist +server=/doom.com/127.0.0.1#5335 +ipset=/doom.com/gfwlist +server=/jodic-forum.org/127.0.0.1#5335 +ipset=/jodic-forum.org/gfwlist +server=/tyms2022.com/127.0.0.1#5335 +ipset=/tyms2022.com/gfwlist +server=/miniccrc.ca/127.0.0.1#5335 +ipset=/miniccrc.ca/gfwlist +server=/viet69.dev/127.0.0.1#5335 +ipset=/viet69.dev/gfwlist +server=/ap0le.com/127.0.0.1#5335 +ipset=/ap0le.com/gfwlist +server=/airtunes.net/127.0.0.1#5335 +ipset=/airtunes.net/gfwlist +server=/diabloimmortal.com/127.0.0.1#5335 +ipset=/diabloimmortal.com/gfwlist +server=/tnntoday.com/127.0.0.1#5335 +ipset=/tnntoday.com/gfwlist +server=/airtunes.info/127.0.0.1#5335 +ipset=/airtunes.info/gfwlist +server=/alt.com/127.0.0.1#5335 +ipset=/alt.com/gfwlist +server=/airport.brussels/127.0.0.1#5335 +ipset=/airport.brussels/gfwlist +server=/a0pple.net/127.0.0.1#5335 +ipset=/a0pple.net/gfwlist +server=/2022.dev/127.0.0.1#5335 +ipset=/2022.dev/gfwlist +server=/wixapps.net/127.0.0.1#5335 +ipset=/wixapps.net/gfwlist +server=/18avx.com/127.0.0.1#5335 +ipset=/18avx.com/gfwlist +server=/shazam.com/127.0.0.1#5335 +ipset=/shazam.com/gfwlist +server=/huobigroup.com/127.0.0.1#5335 +ipset=/huobigroup.com/gfwlist +server=/eroticbeauties.net/127.0.0.1#5335 +ipset=/eroticbeauties.net/gfwlist +server=/horsedicks.net/127.0.0.1#5335 +ipset=/horsedicks.net/gfwlist +server=/dnsvisa.com/127.0.0.1#5335 +ipset=/dnsvisa.com/gfwlist +server=/appleone.host/127.0.0.1#5335 +ipset=/appleone.host/gfwlist +server=/appleone.guide/127.0.0.1#5335 +ipset=/appleone.guide/gfwlist +server=/paypal-prepagata.com/127.0.0.1#5335 +ipset=/paypal-prepagata.com/gfwlist +server=/terapeack.com/127.0.0.1#5335 +ipset=/terapeack.com/gfwlist +server=/cheapbagshoes.com/127.0.0.1#5335 +ipset=/cheapbagshoes.com/gfwlist +server=/123hplaserjet.com/127.0.0.1#5335 +ipset=/123hplaserjet.com/gfwlist +server=/cdn.jsdelivr.net/127.0.0.1#5335 +ipset=/cdn.jsdelivr.net/gfwlist +server=/appleone.blog/127.0.0.1#5335 +ipset=/appleone.blog/gfwlist +server=/appleone.audio/127.0.0.1#5335 +ipset=/appleone.audio/gfwlist +server=/appletv.wang/127.0.0.1#5335 +ipset=/appletv.wang/gfwlist +server=/shopcustomizedbeats.com/127.0.0.1#5335 +ipset=/shopcustomizedbeats.com/gfwlist +server=/vkmessenger.app/127.0.0.1#5335 +ipset=/vkmessenger.app/gfwlist +server=/appletv.com/127.0.0.1#5335 +ipset=/appletv.com/gfwlist +server=/sevgikurtulmaz.com/127.0.0.1#5335 +ipset=/sevgikurtulmaz.com/gfwlist +server=/kenxxx.com/127.0.0.1#5335 +ipset=/kenxxx.com/gfwlist +server=/redsexhub.com/127.0.0.1#5335 +ipset=/redsexhub.com/gfwlist +server=/paypal-donations.com/127.0.0.1#5335 +ipset=/paypal-donations.com/gfwlist +server=/appleid.berlin/127.0.0.1#5335 +ipset=/appleid.berlin/gfwlist +server=/deeper.com/127.0.0.1#5335 +ipset=/deeper.com/gfwlist +server=/colorfulstage.com/127.0.0.1#5335 +ipset=/colorfulstage.com/gfwlist +server=/microsoft.cz/127.0.0.1#5335 +ipset=/microsoft.cz/gfwlist +server=/lesbianpics.org/127.0.0.1#5335 +ipset=/lesbianpics.org/gfwlist +server=/appleid-iclou.com/127.0.0.1#5335 +ipset=/appleid-iclou.com/gfwlist +server=/appleid-applemx.us/127.0.0.1#5335 +ipset=/appleid-applemx.us/gfwlist +server=/ertk.net/127.0.0.1#5335 +ipset=/ertk.net/gfwlist +server=/the-monster-beats.com/127.0.0.1#5335 +ipset=/the-monster-beats.com/gfwlist +server=/mypornhere.com/127.0.0.1#5335 +ipset=/mypornhere.com/gfwlist +server=/beatswirelesscuffie.com/127.0.0.1#5335 +ipset=/beatswirelesscuffie.com/gfwlist +server=/binance.org/127.0.0.1#5335 +ipset=/binance.org/gfwlist +server=/betternike.com/127.0.0.1#5335 +ipset=/betternike.com/gfwlist +server=/technologyandsociety.org/127.0.0.1#5335 +ipset=/technologyandsociety.org/gfwlist +server=/foxnewsb2b.com/127.0.0.1#5335 +ipset=/foxnewsb2b.com/gfwlist +server=/benaughty.fun/127.0.0.1#5335 +ipset=/benaughty.fun/gfwlist +server=/vfsco.ca/127.0.0.1#5335 +ipset=/vfsco.ca/gfwlist +server=/sexy-babe-pics.com/127.0.0.1#5335 +ipset=/sexy-babe-pics.com/gfwlist +server=/duga.jp/127.0.0.1#5335 +ipset=/duga.jp/gfwlist +server=/facebcook.com/127.0.0.1#5335 +ipset=/facebcook.com/gfwlist +server=/canonproprinters.com/127.0.0.1#5335 +ipset=/canonproprinters.com/gfwlist +server=/beatsbydreonlines-ireland.com/127.0.0.1#5335 +ipset=/beatsbydreonlines-ireland.com/gfwlist +server=/npmjs.com/127.0.0.1#5335 +ipset=/npmjs.com/gfwlist +server=/affect3dstore.com/127.0.0.1#5335 +ipset=/affect3dstore.com/gfwlist +server=/largeporntube.com/127.0.0.1#5335 +ipset=/largeporntube.com/gfwlist +server=/ebay-authenticate.net/127.0.0.1#5335 +ipset=/ebay-authenticate.net/gfwlist +server=/google.co.uk/127.0.0.1#5335 +ipset=/google.co.uk/gfwlist +server=/cuntwars.com/127.0.0.1#5335 +ipset=/cuntwars.com/gfwlist +server=/nationalgeographic.com/127.0.0.1#5335 +ipset=/nationalgeographic.com/gfwlist +server=/amazon.fr/127.0.0.1#5335 +ipset=/amazon.fr/gfwlist +server=/botstop.com/127.0.0.1#5335 +ipset=/botstop.com/gfwlist +server=/arphic.com/127.0.0.1#5335 +ipset=/arphic.com/gfwlist +server=/ibooksauthor.com/127.0.0.1#5335 +ipset=/ibooksauthor.com/gfwlist +server=/wiremoneytoirelandwithxoomeasierandcheaper.com/127.0.0.1#5335 +ipset=/wiremoneytoirelandwithxoomeasierandcheaper.com/gfwlist +server=/wionews.com/127.0.0.1#5335 +ipset=/wionews.com/gfwlist +server=/kindle.com/127.0.0.1#5335 +ipset=/kindle.com/gfwlist +server=/alphabet.no/127.0.0.1#5335 +ipset=/alphabet.no/gfwlist +server=/anon-v.com/127.0.0.1#5335 +ipset=/anon-v.com/gfwlist +server=/bmw.dk/127.0.0.1#5335 +ipset=/bmw.dk/gfwlist +server=/ibook.com/127.0.0.1#5335 +ipset=/ibook.com/gfwlist +server=/ithaisex.com/127.0.0.1#5335 +ipset=/ithaisex.com/gfwlist +server=/magentoliveconference.com/127.0.0.1#5335 +ipset=/magentoliveconference.com/gfwlist +server=/applewallet.com/127.0.0.1#5335 +ipset=/applewallet.com/gfwlist +server=/torrentleen.com/127.0.0.1#5335 +ipset=/torrentleen.com/gfwlist +server=/mywaytopay.info/127.0.0.1#5335 +ipset=/mywaytopay.info/gfwlist +server=/firestonecomercial.com.mx/127.0.0.1#5335 +ipset=/firestonecomercial.com.mx/gfwlist +server=/bondagecomixxx.net/127.0.0.1#5335 +ipset=/bondagecomixxx.net/gfwlist +server=/kmff17.com/127.0.0.1#5335 +ipset=/kmff17.com/gfwlist +server=/applepay.info/127.0.0.1#5335 +ipset=/applepay.info/gfwlist +server=/hentai-books.com/127.0.0.1#5335 +ipset=/hentai-books.com/gfwlist +server=/youtube.co.zw/127.0.0.1#5335 +ipset=/youtube.co.zw/gfwlist +server=/shemaleporntube.tv/127.0.0.1#5335 +ipset=/shemaleporntube.tv/gfwlist +server=/beatsbeatsmonster.com/127.0.0.1#5335 +ipset=/beatsbeatsmonster.com/gfwlist +server=/zind.cloud/127.0.0.1#5335 +ipset=/zind.cloud/gfwlist +server=/easysexporn.com/127.0.0.1#5335 +ipset=/easysexporn.com/gfwlist +server=/apple-pay.com/127.0.0.1#5335 +ipset=/apple-pay.com/gfwlist +server=/needforspeedboost.com/127.0.0.1#5335 +ipset=/needforspeedboost.com/gfwlist +server=/gayboystube.com/127.0.0.1#5335 +ipset=/gayboystube.com/gfwlist +server=/applenews.berlin/127.0.0.1#5335 +ipset=/applenews.berlin/gfwlist +server=/cex.io/127.0.0.1#5335 +ipset=/cex.io/gfwlist +server=/download.visualstudio.microsoft.com/127.0.0.1#5335 +ipset=/download.visualstudio.microsoft.com/gfwlist +server=/pornokrol.com/127.0.0.1#5335 +ipset=/pornokrol.com/gfwlist +server=/nsfwmemes.com/127.0.0.1#5335 +ipset=/nsfwmemes.com/gfwlist +server=/biorxiv.org/127.0.0.1#5335 +ipset=/biorxiv.org/gfwlist +server=/hkopentv.com/127.0.0.1#5335 +ipset=/hkopentv.com/gfwlist +server=/applemusic.wang/127.0.0.1#5335 +ipset=/applemusic.wang/gfwlist +server=/sextreffensite.com/127.0.0.1#5335 +ipset=/sextreffensite.com/gfwlist +server=/espnqa.com/127.0.0.1#5335 +ipset=/espnqa.com/gfwlist +server=/myrewardzone.com/127.0.0.1#5335 +ipset=/myrewardzone.com/gfwlist +server=/beautyandthebeastmusical.co.uk/127.0.0.1#5335 +ipset=/beautyandthebeastmusical.co.uk/gfwlist +server=/applemusic.com/127.0.0.1#5335 +ipset=/applemusic.com/gfwlist +server=/bmw.com.co/127.0.0.1#5335 +ipset=/bmw.com.co/gfwlist +server=/xxxpornzeed.com/127.0.0.1#5335 +ipset=/xxxpornzeed.com/gfwlist +server=/javbangers.com/127.0.0.1#5335 +ipset=/javbangers.com/gfwlist +server=/stackoverflowbusiness.com/127.0.0.1#5335 +ipset=/stackoverflowbusiness.com/gfwlist +server=/applemusic.berlin/127.0.0.1#5335 +ipset=/applemusic.berlin/gfwlist +server=/cheapbeatssale4u.com/127.0.0.1#5335 +ipset=/cheapbeatssale4u.com/gfwlist +server=/rakuten.tw/127.0.0.1#5335 +ipset=/rakuten.tw/gfwlist +server=/verisign.info/127.0.0.1#5335 +ipset=/verisign.info/gfwlist +server=/typekit.net/127.0.0.1#5335 +ipset=/typekit.net/gfwlist +server=/home-made-videos.com/127.0.0.1#5335 +ipset=/home-made-videos.com/gfwlist +server=/fujossy.jp/127.0.0.1#5335 +ipset=/fujossy.jp/gfwlist +server=/blizzcon-a.akamaihd.net/127.0.0.1#5335 +ipset=/blizzcon-a.akamaihd.net/gfwlist +server=/nsimg.net/127.0.0.1#5335 +ipset=/nsimg.net/gfwlist +server=/starwarskids.com/127.0.0.1#5335 +ipset=/starwarskids.com/gfwlist +server=/francecasquebeatssolde.com/127.0.0.1#5335 +ipset=/francecasquebeatssolde.com/gfwlist +server=/ehv.cc/127.0.0.1#5335 +ipset=/ehv.cc/gfwlist +server=/wwwpaypass.com/127.0.0.1#5335 +ipset=/wwwpaypass.com/gfwlist +server=/trycloudflare.com/127.0.0.1#5335 +ipset=/trycloudflare.com/gfwlist +server=/wwwmacbookair.com/127.0.0.1#5335 +ipset=/wwwmacbookair.com/gfwlist +server=/macbooksale.com/127.0.0.1#5335 +ipset=/macbooksale.com/gfwlist +server=/facebook-pmdcenter.org/127.0.0.1#5335 +ipset=/facebook-pmdcenter.org/gfwlist +server=/clipsaoyai.com/127.0.0.1#5335 +ipset=/clipsaoyai.com/gfwlist +server=/gvt3.com/127.0.0.1#5335 +ipset=/gvt3.com/gfwlist +server=/macbookpro.us/127.0.0.1#5335 +ipset=/macbookpro.us/gfwlist +server=/macbookpro.net/127.0.0.1#5335 +ipset=/macbookpro.net/gfwlist +server=/macbookpro.com.au/127.0.0.1#5335 +ipset=/macbookpro.com.au/gfwlist +server=/epochtimes.pl/127.0.0.1#5335 +ipset=/epochtimes.pl/gfwlist +server=/macbookpro.co/127.0.0.1#5335 +ipset=/macbookpro.co/gfwlist +server=/wonporn.net/127.0.0.1#5335 +ipset=/wonporn.net/gfwlist +server=/facebhook.com/127.0.0.1#5335 +ipset=/facebhook.com/gfwlist +server=/macbookair.net/127.0.0.1#5335 +ipset=/macbookair.net/gfwlist +server=/apple.es/127.0.0.1#5335 +ipset=/apple.es/gfwlist +server=/macbookair.es/127.0.0.1#5335 +ipset=/macbookair.es/gfwlist +server=/macbookair.com.au/127.0.0.1#5335 +ipset=/macbookair.com.au/gfwlist +server=/bmwm.com/127.0.0.1#5335 +ipset=/bmwm.com/gfwlist +server=/macbookair.co.kr/127.0.0.1#5335 +ipset=/macbookair.co.kr/gfwlist +server=/redwap-xxx.com/127.0.0.1#5335 +ipset=/redwap-xxx.com/gfwlist +server=/iana.org/127.0.0.1#5335 +ipset=/iana.org/gfwlist +server=/redamateurtube.com/127.0.0.1#5335 +ipset=/redamateurtube.com/gfwlist +server=/blzmedia-a.akamaihd.net/127.0.0.1#5335 +ipset=/blzmedia-a.akamaihd.net/gfwlist +server=/dragonage.com/127.0.0.1#5335 +ipset=/dragonage.com/gfwlist +server=/braintreepayments.org/127.0.0.1#5335 +ipset=/braintreepayments.org/gfwlist +server=/hammerandchisel.ssl.zendesk.com/127.0.0.1#5335 +ipset=/hammerandchisel.ssl.zendesk.com/gfwlist +server=/gfpornbox.com/127.0.0.1#5335 +ipset=/gfpornbox.com/gfwlist +server=/21centuryaccess.com/127.0.0.1#5335 +ipset=/21centuryaccess.com/gfwlist +server=/wwwipodlounge.com/127.0.0.1#5335 +ipset=/wwwipodlounge.com/gfwlist +server=/bmw.be/127.0.0.1#5335 +ipset=/bmw.be/gfwlist +server=/cwcams.com/127.0.0.1#5335 +ipset=/cwcams.com/gfwlist +server=/starfieldtech.com/127.0.0.1#5335 +ipset=/starfieldtech.com/gfwlist +server=/myipod.net/127.0.0.1#5335 +ipset=/myipod.net/gfwlist +server=/bestbuy24x7solutions.com/127.0.0.1#5335 +ipset=/bestbuy24x7solutions.com/gfwlist +server=/zzycdz.com/127.0.0.1#5335 +ipset=/zzycdz.com/gfwlist +server=/thomsonreuters.com.br/127.0.0.1#5335 +ipset=/thomsonreuters.com.br/gfwlist +server=/audiobeatsau.com/127.0.0.1#5335 +ipset=/audiobeatsau.com/gfwlist +server=/ipods.com/127.0.0.1#5335 +ipset=/ipods.com/gfwlist +server=/ipodrocks.com.au/127.0.0.1#5335 +ipset=/ipodrocks.com.au/gfwlist +server=/hplatexknowledgecenter.com/127.0.0.1#5335 +ipset=/hplatexknowledgecenter.com/gfwlist +server=/ipodrip.ca/127.0.0.1#5335 +ipset=/ipodrip.ca/gfwlist +server=/ipodprices.com/127.0.0.1#5335 +ipset=/ipodprices.com/gfwlist +server=/modrinth.com/127.0.0.1#5335 +ipset=/modrinth.com/gfwlist +server=/sourcingforebay.net/127.0.0.1#5335 +ipset=/sourcingforebay.net/gfwlist +server=/allpornsites.net/127.0.0.1#5335 +ipset=/allpornsites.net/gfwlist +server=/ipod.rs/127.0.0.1#5335 +ipset=/ipod.rs/gfwlist +server=/ipod.pk/127.0.0.1#5335 +ipset=/ipod.pk/gfwlist +server=/justporn.com/127.0.0.1#5335 +ipset=/justporn.com/gfwlist +server=/ipod.hk/127.0.0.1#5335 +ipset=/ipod.hk/gfwlist +server=/ipod.gr/127.0.0.1#5335 +ipset=/ipod.gr/gfwlist +server=/ipod.fr/127.0.0.1#5335 +ipset=/ipod.fr/gfwlist +server=/gostosanovinha.com/127.0.0.1#5335 +ipset=/gostosanovinha.com/gfwlist +server=/thinkdifferent.us/127.0.0.1#5335 +ipset=/thinkdifferent.us/gfwlist +server=/coliriodemacho.com.br/127.0.0.1#5335 +ipset=/coliriodemacho.com.br/gfwlist +server=/ipod.de/127.0.0.1#5335 +ipset=/ipod.de/gfwlist +server=/pixiv.net/127.0.0.1#5335 +ipset=/pixiv.net/gfwlist +server=/fastly.net/127.0.0.1#5335 +ipset=/fastly.net/gfwlist +server=/iphone-cd.com/127.0.0.1#5335 +ipset=/iphone-cd.com/gfwlist +server=/canon.com.cy/127.0.0.1#5335 +ipset=/canon.com.cy/gfwlist +server=/vanish.ch/127.0.0.1#5335 +ipset=/vanish.ch/gfwlist +server=/yourmonsterbeats.com/127.0.0.1#5335 +ipset=/yourmonsterbeats.com/gfwlist +server=/sci.hubg.org/127.0.0.1#5335 +ipset=/sci.hubg.org/gfwlist +server=/workers.dev/127.0.0.1#5335 +ipset=/workers.dev/gfwlist +server=/bmw.no/127.0.0.1#5335 +ipset=/bmw.no/gfwlist +server=/cocksuckersguide.com/127.0.0.1#5335 +ipset=/cocksuckersguide.com/gfwlist +server=/foxsportsneworleans.com/127.0.0.1#5335 +ipset=/foxsportsneworleans.com/gfwlist +server=/camdolls.com/127.0.0.1#5335 +ipset=/camdolls.com/gfwlist +server=/steemit.com/127.0.0.1#5335 +ipset=/steemit.com/gfwlist +server=/ipod.com.au/127.0.0.1#5335 +ipset=/ipod.com.au/gfwlist +server=/eamirrorsedge.com/127.0.0.1#5335 +ipset=/eamirrorsedge.com/gfwlist +server=/ipod.co.uk/127.0.0.1#5335 +ipset=/ipod.co.uk/gfwlist +server=/ipod.co/127.0.0.1#5335 +ipset=/ipod.co/gfwlist +server=/igtv.com/127.0.0.1#5335 +ipset=/igtv.com/gfwlist +server=/91rb.net/127.0.0.1#5335 +ipset=/91rb.net/gfwlist +server=/fb.careers/127.0.0.1#5335 +ipset=/fb.careers/gfwlist +server=/sexfilm4free.com/127.0.0.1#5335 +ipset=/sexfilm4free.com/gfwlist +server=/volvobuses.se/127.0.0.1#5335 +ipset=/volvobuses.se/gfwlist +server=/volvopenta.de/127.0.0.1#5335 +ipset=/volvopenta.de/gfwlist +server=/ebuyheadphones.com/127.0.0.1#5335 +ipset=/ebuyheadphones.com/gfwlist +server=/mastercard.com.sg/127.0.0.1#5335 +ipset=/mastercard.com.sg/gfwlist +server=/ipod.ca/127.0.0.1#5335 +ipset=/ipod.ca/gfwlist +server=/palestineremix.com/127.0.0.1#5335 +ipset=/palestineremix.com/gfwlist +server=/mycams.com/127.0.0.1#5335 +ipset=/mycams.com/gfwlist +server=/etvonline.hk/127.0.0.1#5335 +ipset=/etvonline.hk/gfwlist +server=/swingexpert.nl/127.0.0.1#5335 +ipset=/swingexpert.nl/gfwlist +server=/battlefront2.com/127.0.0.1#5335 +ipset=/battlefront2.com/gfwlist +server=/appleclassicipod.com/127.0.0.1#5335 +ipset=/appleclassicipod.com/gfwlist +server=/gannettdigital.com/127.0.0.1#5335 +ipset=/gannettdigital.com/gfwlist +server=/thomsonreuters.com.ar/127.0.0.1#5335 +ipset=/thomsonreuters.com.ar/gfwlist +server=/aplleipods.com/127.0.0.1#5335 +ipset=/aplleipods.com/gfwlist +server=/s2stagehance.com/127.0.0.1#5335 +ipset=/s2stagehance.com/gfwlist +server=/comicscartoonporn.com/127.0.0.1#5335 +ipset=/comicscartoonporn.com/gfwlist +server=/gitlab-static.net/127.0.0.1#5335 +ipset=/gitlab-static.net/gfwlist +server=/bmw-connecteddrive.it/127.0.0.1#5335 +ipset=/bmw-connecteddrive.it/gfwlist +server=/iphonerip.net/127.0.0.1#5335 +ipset=/iphonerip.net/gfwlist +server=/1lib.limited/127.0.0.1#5335 +ipset=/1lib.limited/gfwlist +server=/miniofmonrovia.com/127.0.0.1#5335 +ipset=/miniofmonrovia.com/gfwlist +server=/wireguard.com/127.0.0.1#5335 +ipset=/wireguard.com/gfwlist +server=/newscdn.com.au/127.0.0.1#5335 +ipset=/newscdn.com.au/gfwlist +server=/linetv.tw/127.0.0.1#5335 +ipset=/linetv.tw/gfwlist +server=/hpcustomersupport.net/127.0.0.1#5335 +ipset=/hpcustomersupport.net/gfwlist +server=/iphonegermany.com/127.0.0.1#5335 +ipset=/iphonegermany.com/gfwlist +server=/adobecce.com/127.0.0.1#5335 +ipset=/adobecce.com/gfwlist +server=/durex.cl/127.0.0.1#5335 +ipset=/durex.cl/gfwlist +server=/iphonecases5.com/127.0.0.1#5335 +ipset=/iphonecases5.com/gfwlist +server=/intagrm.com/127.0.0.1#5335 +ipset=/intagrm.com/gfwlist +server=/iphonecase2013.com/127.0.0.1#5335 +ipset=/iphonecase2013.com/gfwlist +server=/iphone5s5case.com/127.0.0.1#5335 +ipset=/iphone5s5case.com/gfwlist +server=/mini.cl/127.0.0.1#5335 +ipset=/mini.cl/gfwlist +server=/xoom.us/127.0.0.1#5335 +ipset=/xoom.us/gfwlist +server=/bronto.com/127.0.0.1#5335 +ipset=/bronto.com/gfwlist +server=/discordstatus.com/127.0.0.1#5335 +ipset=/discordstatus.com/gfwlist +server=/sway-cdn.com/127.0.0.1#5335 +ipset=/sway-cdn.com/gfwlist +server=/bridgestone.co.id/127.0.0.1#5335 +ipset=/bridgestone.co.id/gfwlist +server=/cyber-bay.org/127.0.0.1#5335 +ipset=/cyber-bay.org/gfwlist +server=/megafilmporno.com/127.0.0.1#5335 +ipset=/megafilmporno.com/gfwlist +server=/forzaracingchampionship.com/127.0.0.1#5335 +ipset=/forzaracingchampionship.com/gfwlist +server=/wwwebay.net/127.0.0.1#5335 +ipset=/wwwebay.net/gfwlist +server=/arabysexy.com/127.0.0.1#5335 +ipset=/arabysexy.com/gfwlist +server=/vs-hls-pushb-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/vs-hls-pushb-uk-live.akamaized.net/gfwlist +server=/viu.com/127.0.0.1#5335 +ipset=/viu.com/gfwlist +server=/karupspc.com/127.0.0.1#5335 +ipset=/karupspc.com/gfwlist +server=/iphone.rs/127.0.0.1#5335 +ipset=/iphone.rs/gfwlist +server=/hitomi.la/127.0.0.1#5335 +ipset=/hitomi.la/gfwlist +server=/iphone.pt/127.0.0.1#5335 +ipset=/iphone.pt/gfwlist +server=/opensea.io/127.0.0.1#5335 +ipset=/opensea.io/gfwlist +server=/vipissy.com/127.0.0.1#5335 +ipset=/vipissy.com/gfwlist +server=/awsautoscaling.com/127.0.0.1#5335 +ipset=/awsautoscaling.com/gfwlist +server=/warroom.org/127.0.0.1#5335 +ipset=/warroom.org/gfwlist +server=/ikea.com.au/127.0.0.1#5335 +ipset=/ikea.com.au/gfwlist +server=/uchicago.edu/127.0.0.1#5335 +ipset=/uchicago.edu/gfwlist +server=/iphone.com.gr/127.0.0.1#5335 +ipset=/iphone.com.gr/gfwlist +server=/myminisexdoll.com/127.0.0.1#5335 +ipset=/myminisexdoll.com/gfwlist +server=/scholar.google.co.nz/127.0.0.1#5335 +ipset=/scholar.google.co.nz/gfwlist +server=/realitykings.com/127.0.0.1#5335 +ipset=/realitykings.com/gfwlist +server=/hulupurchase.com/127.0.0.1#5335 +ipset=/hulupurchase.com/gfwlist +server=/drebeatsbydreoutlet.com/127.0.0.1#5335 +ipset=/drebeatsbydreoutlet.com/gfwlist +server=/iphone.com.au/127.0.0.1#5335 +ipset=/iphone.com.au/gfwlist +server=/jpboy1069.net/127.0.0.1#5335 +ipset=/jpboy1069.net/gfwlist +server=/alphassl.com/127.0.0.1#5335 +ipset=/alphassl.com/gfwlist +server=/e-hentai.org/127.0.0.1#5335 +ipset=/e-hentai.org/gfwlist +server=/cdn77.com/127.0.0.1#5335 +ipset=/cdn77.com/gfwlist +server=/sonypicturesstudios.com/127.0.0.1#5335 +ipset=/sonypicturesstudios.com/gfwlist +server=/feacebook.com/127.0.0.1#5335 +ipset=/feacebook.com/gfwlist +server=/ampproject.org/127.0.0.1#5335 +ipset=/ampproject.org/gfwlist +server=/iphone-yh.com/127.0.0.1#5335 +ipset=/iphone-yh.com/gfwlist +server=/iphone-vip3.com/127.0.0.1#5335 +ipset=/iphone-vip3.com/gfwlist +server=/rabbitscams.sex/127.0.0.1#5335 +ipset=/rabbitscams.sex/gfwlist +server=/iphone-vip2.com/127.0.0.1#5335 +ipset=/iphone-vip2.com/gfwlist +server=/nentindo.net/127.0.0.1#5335 +ipset=/nentindo.net/gfwlist +server=/tubxporn.com/127.0.0.1#5335 +ipset=/tubxporn.com/gfwlist +server=/grooby.com/127.0.0.1#5335 +ipset=/grooby.com/gfwlist +server=/iphone-cn.com/127.0.0.1#5335 +ipset=/iphone-cn.com/gfwlist +server=/facfacebook.com/127.0.0.1#5335 +ipset=/facfacebook.com/gfwlist +server=/hf-iphone.com/127.0.0.1#5335 +ipset=/hf-iphone.com/gfwlist +server=/npr.org/127.0.0.1#5335 +ipset=/npr.org/gfwlist +server=/hebiphone.com/127.0.0.1#5335 +ipset=/hebiphone.com/gfwlist +server=/pornvibe.org/127.0.0.1#5335 +ipset=/pornvibe.org/gfwlist +server=/dgaqp.com/127.0.0.1#5335 +ipset=/dgaqp.com/gfwlist +server=/udtrucksmeena.com/127.0.0.1#5335 +ipset=/udtrucksmeena.com/gfwlist +server=/fundaiphone5s.com/127.0.0.1#5335 +ipset=/fundaiphone5s.com/gfwlist +server=/bestjapanesepornsites.com/127.0.0.1#5335 +ipset=/bestjapanesepornsites.com/gfwlist +server=/cloudflarepreview.com/127.0.0.1#5335 +ipset=/cloudflarepreview.com/gfwlist +server=/91porny.com/127.0.0.1#5335 +ipset=/91porny.com/gfwlist +server=/starbucks.de/127.0.0.1#5335 +ipset=/starbucks.de/gfwlist +server=/bowlroll.net/127.0.0.1#5335 +ipset=/bowlroll.net/gfwlist +server=/symcd.com/127.0.0.1#5335 +ipset=/symcd.com/gfwlist +server=/sneakerpage.net/127.0.0.1#5335 +ipset=/sneakerpage.net/gfwlist +server=/perfectgonzo.com/127.0.0.1#5335 +ipset=/perfectgonzo.com/gfwlist +server=/9anime.id/127.0.0.1#5335 +ipset=/9anime.id/gfwlist +server=/ntdtv.co.kr/127.0.0.1#5335 +ipset=/ntdtv.co.kr/gfwlist +server=/bloggrowup.com/127.0.0.1#5335 +ipset=/bloggrowup.com/gfwlist +server=/fbacebook.com/127.0.0.1#5335 +ipset=/fbacebook.com/gfwlist +server=/geek-squad-support.com/127.0.0.1#5335 +ipset=/geek-squad-support.com/gfwlist +server=/businessinsider.sg/127.0.0.1#5335 +ipset=/businessinsider.sg/gfwlist +server=/itunesstore.co/127.0.0.1#5335 +ipset=/itunesstore.co/gfwlist +server=/ipadmini.com.lk/127.0.0.1#5335 +ipset=/ipadmini.com.lk/gfwlist +server=/bbcverticals.com/127.0.0.1#5335 +ipset=/bbcverticals.com/gfwlist +server=/barefootnetworks.com/127.0.0.1#5335 +ipset=/barefootnetworks.com/gfwlist +server=/ipadair.fr/127.0.0.1#5335 +ipset=/ipadair.fr/gfwlist +server=/gettyimages.com.br/127.0.0.1#5335 +ipset=/gettyimages.com.br/gfwlist +server=/minimotoringrewards.com/127.0.0.1#5335 +ipset=/minimotoringrewards.com/gfwlist +server=/howtogetmo.co.uk/127.0.0.1#5335 +ipset=/howtogetmo.co.uk/gfwlist +server=/yandex.lv/127.0.0.1#5335 +ipset=/yandex.lv/gfwlist +server=/analsaga.com/127.0.0.1#5335 +ipset=/analsaga.com/gfwlist +server=/adultgeek.net/127.0.0.1#5335 +ipset=/adultgeek.net/gfwlist +server=/ipadair.com.br/127.0.0.1#5335 +ipset=/ipadair.com.br/gfwlist +server=/scholar.google.com.co/127.0.0.1#5335 +ipset=/scholar.google.com.co/gfwlist +server=/cloudflareresolve.com/127.0.0.1#5335 +ipset=/cloudflareresolve.com/gfwlist +server=/4tube.com/127.0.0.1#5335 +ipset=/4tube.com/gfwlist +server=/mini.co.za/127.0.0.1#5335 +ipset=/mini.co.za/gfwlist +server=/oxfordlawtrove.com/127.0.0.1#5335 +ipset=/oxfordlawtrove.com/gfwlist +server=/xacmbq.xyz/127.0.0.1#5335 +ipset=/xacmbq.xyz/gfwlist +server=/svpply.com/127.0.0.1#5335 +ipset=/svpply.com/gfwlist +server=/ipadair.cm/127.0.0.1#5335 +ipset=/ipadair.cm/gfwlist +server=/electronicarts.fr/127.0.0.1#5335 +ipset=/electronicarts.fr/gfwlist +server=/dukgo.com/127.0.0.1#5335 +ipset=/dukgo.com/gfwlist +server=/zlibcdn.com/127.0.0.1#5335 +ipset=/zlibcdn.com/gfwlist +server=/ipad.host/127.0.0.1#5335 +ipset=/ipad.host/gfwlist +server=/camvideoshub.com/127.0.0.1#5335 +ipset=/camvideoshub.com/gfwlist +server=/pornky.com/127.0.0.1#5335 +ipset=/pornky.com/gfwlist +server=/fbthirdpartypixel.org/127.0.0.1#5335 +ipset=/fbthirdpartypixel.org/gfwlist +server=/steamcdn-a.akamaihd.net/127.0.0.1#5335 +ipset=/steamcdn-a.akamaihd.net/gfwlist +server=/tiresplus.com/127.0.0.1#5335 +ipset=/tiresplus.com/gfwlist +server=/ebaynow.com/127.0.0.1#5335 +ipset=/ebaynow.com/gfwlist +server=/fcacebook.com/127.0.0.1#5335 +ipset=/fcacebook.com/gfwlist +server=/quovadisglobal.com/127.0.0.1#5335 +ipset=/quovadisglobal.com/gfwlist +server=/ebookforipad.com/127.0.0.1#5335 +ipset=/ebookforipad.com/gfwlist +server=/imac.rs/127.0.0.1#5335 +ipset=/imac.rs/gfwlist +server=/kindleproject.com/127.0.0.1#5335 +ipset=/kindleproject.com/gfwlist +server=/futureofbusinesssurvey.org/127.0.0.1#5335 +ipset=/futureofbusinesssurvey.org/gfwlist +server=/itunes.hk/127.0.0.1#5335 +ipset=/itunes.hk/gfwlist +server=/hpofficejetprinter.com/127.0.0.1#5335 +ipset=/hpofficejetprinter.com/gfwlist +server=/bbyurl.us/127.0.0.1#5335 +ipset=/bbyurl.us/gfwlist +server=/monsterbeatsbydre2015.com/127.0.0.1#5335 +ipset=/monsterbeatsbydre2015.com/gfwlist +server=/imac.gr/127.0.0.1#5335 +ipset=/imac.gr/gfwlist +server=/julesjordan.com/127.0.0.1#5335 +ipset=/julesjordan.com/gfwlist +server=/imac.co.nz/127.0.0.1#5335 +ipset=/imac.co.nz/gfwlist +server=/bgr.in/127.0.0.1#5335 +ipset=/bgr.in/gfwlist +server=/ma1lib.org/127.0.0.1#5335 +ipset=/ma1lib.org/gfwlist +server=/hentai-fun.com/127.0.0.1#5335 +ipset=/hentai-fun.com/gfwlist +server=/xxxvideoszoo.com/127.0.0.1#5335 +ipset=/xxxvideoszoo.com/gfwlist +server=/adobeplatinumclub.com/127.0.0.1#5335 +ipset=/adobeplatinumclub.com/gfwlist +server=/apple-imac.com/127.0.0.1#5335 +ipset=/apple-imac.com/gfwlist +server=/osapublishing.org/127.0.0.1#5335 +ipset=/osapublishing.org/gfwlist +server=/appstore.hk/127.0.0.1#5335 +ipset=/appstore.hk/gfwlist +server=/bmwgroupfs.com/127.0.0.1#5335 +ipset=/bmwgroupfs.com/gfwlist +server=/e122475.dscg.akamaiedge.net/127.0.0.1#5335 +ipset=/e122475.dscg.akamaiedge.net/gfwlist +server=/sex-young.com/127.0.0.1#5335 +ipset=/sex-young.com/gfwlist +server=/jmcomic1.mobi/127.0.0.1#5335 +ipset=/jmcomic1.mobi/gfwlist +server=/pvzheroes.com/127.0.0.1#5335 +ipset=/pvzheroes.com/gfwlist +server=/persagg.com/127.0.0.1#5335 +ipset=/persagg.com/gfwlist +server=/appsto.re/127.0.0.1#5335 +ipset=/appsto.re/gfwlist +server=/dungeonkeeper.cn/127.0.0.1#5335 +ipset=/dungeonkeeper.cn/gfwlist +server=/jafgrown.com/127.0.0.1#5335 +ipset=/jafgrown.com/gfwlist +server=/foxporns.com/127.0.0.1#5335 +ipset=/foxporns.com/gfwlist +server=/erotichdworld.com/127.0.0.1#5335 +ipset=/erotichdworld.com/gfwlist +server=/applestorepro.eu/127.0.0.1#5335 +ipset=/applestorepro.eu/gfwlist +server=/handjobhub.com/127.0.0.1#5335 +ipset=/handjobhub.com/gfwlist +server=/applestore.net/127.0.0.1#5335 +ipset=/applestore.net/gfwlist +server=/imtagram.com/127.0.0.1#5335 +ipset=/imtagram.com/gfwlist +server=/applestore.kr/127.0.0.1#5335 +ipset=/applestore.kr/gfwlist +server=/applestore.hk/127.0.0.1#5335 +ipset=/applestore.hk/gfwlist +server=/applestore.com.sn/127.0.0.1#5335 +ipset=/applestore.com.sn/gfwlist +server=/bmw-motorrad.co.kr/127.0.0.1#5335 +ipset=/bmw-motorrad.co.kr/gfwlist +server=/microsoftsilverlight.net/127.0.0.1#5335 +ipset=/microsoftsilverlight.net/gfwlist +server=/tiny4k.com/127.0.0.1#5335 +ipset=/tiny4k.com/gfwlist +server=/i-mobile.co.jp/127.0.0.1#5335 +ipset=/i-mobile.co.jp/gfwlist +server=/applestore.com.ph/127.0.0.1#5335 +ipset=/applestore.com.ph/gfwlist +server=/applestore.com.jo/127.0.0.1#5335 +ipset=/applestore.com.jo/gfwlist +server=/applestore.com.hr/127.0.0.1#5335 +ipset=/applestore.com.hr/gfwlist +server=/applestore.com.gr/127.0.0.1#5335 +ipset=/applestore.com.gr/gfwlist +server=/kkbox.com.tw/127.0.0.1#5335 +ipset=/kkbox.com.tw/gfwlist +server=/mtao.fun/127.0.0.1#5335 +ipset=/mtao.fun/gfwlist +server=/severeporn.com/127.0.0.1#5335 +ipset=/severeporn.com/gfwlist +server=/applestore.com/127.0.0.1#5335 +ipset=/applestore.com/gfwlist +server=/matrix.org/127.0.0.1#5335 +ipset=/matrix.org/gfwlist +server=/froogle.com/127.0.0.1#5335 +ipset=/froogle.com/gfwlist +server=/apisof.net/127.0.0.1#5335 +ipset=/apisof.net/gfwlist +server=/pornbrb.com/127.0.0.1#5335 +ipset=/pornbrb.com/gfwlist +server=/nikehightops.com/127.0.0.1#5335 +ipset=/nikehightops.com/gfwlist +server=/volvogroup.be/127.0.0.1#5335 +ipset=/volvogroup.be/gfwlist +server=/icloudmail.net/127.0.0.1#5335 +ipset=/icloudmail.net/gfwlist +server=/whatsapp.net/127.0.0.1#5335 +ipset=/whatsapp.net/gfwlist +server=/paypal.jp/127.0.0.1#5335 +ipset=/paypal.jp/gfwlist +server=/apple-store.net/127.0.0.1#5335 +ipset=/apple-store.net/gfwlist +server=/mypearsonenglish.ch/127.0.0.1#5335 +ipset=/mypearsonenglish.ch/gfwlist +server=/msocsp.com/127.0.0.1#5335 +ipset=/msocsp.com/gfwlist +server=/uusexdoll.com/127.0.0.1#5335 +ipset=/uusexdoll.com/gfwlist +server=/apple.xn--fiqs8s/127.0.0.1#5335 +ipset=/apple.xn--fiqs8s/gfwlist +server=/apple.xn--czr694b/127.0.0.1#5335 +ipset=/apple.xn--czr694b/gfwlist +server=/youtube.cat/127.0.0.1#5335 +ipset=/youtube.cat/gfwlist +server=/finish.ro/127.0.0.1#5335 +ipset=/finish.ro/gfwlist +server=/apple.tw/127.0.0.1#5335 +ipset=/apple.tw/gfwlist +server=/ikea.do/127.0.0.1#5335 +ipset=/ikea.do/gfwlist +server=/bayareabmw.com/127.0.0.1#5335 +ipset=/bayareabmw.com/gfwlist +server=/youtube.lk/127.0.0.1#5335 +ipset=/youtube.lk/gfwlist +server=/porn62.com/127.0.0.1#5335 +ipset=/porn62.com/gfwlist +server=/longtailvideo.com/127.0.0.1#5335 +ipset=/longtailvideo.com/gfwlist +server=/minibrossard.ca/127.0.0.1#5335 +ipset=/minibrossard.ca/gfwlist +server=/apple.tt/127.0.0.1#5335 +ipset=/apple.tt/gfwlist +server=/apple.so/127.0.0.1#5335 +ipset=/apple.so/gfwlist +server=/facebdok.com/127.0.0.1#5335 +ipset=/facebdok.com/gfwlist +server=/apple.sk/127.0.0.1#5335 +ipset=/apple.sk/gfwlist +server=/instagy.com/127.0.0.1#5335 +ipset=/instagy.com/gfwlist +server=/appledaily.hk/127.0.0.1#5335 +ipset=/appledaily.hk/gfwlist +server=/charlotte-anime.jp/127.0.0.1#5335 +ipset=/charlotte-anime.jp/gfwlist +server=/bmw-motorcycle.com/127.0.0.1#5335 +ipset=/bmw-motorcycle.com/gfwlist +server=/verpeliculasporno.gratis/127.0.0.1#5335 +ipset=/verpeliculasporno.gratis/gfwlist +server=/apple.rs/127.0.0.1#5335 +ipset=/apple.rs/gfwlist +server=/xxxvideo.vip/127.0.0.1#5335 +ipset=/xxxvideo.vip/gfwlist +server=/apple.pl/127.0.0.1#5335 +ipset=/apple.pl/gfwlist +server=/beatsforcheap-usa.com/127.0.0.1#5335 +ipset=/beatsforcheap-usa.com/gfwlist +server=/disney.co.il/127.0.0.1#5335 +ipset=/disney.co.il/gfwlist +server=/apple.net.gr/127.0.0.1#5335 +ipset=/apple.net.gr/gfwlist +server=/fanaken.com/127.0.0.1#5335 +ipset=/fanaken.com/gfwlist +server=/petitehdporn.com/127.0.0.1#5335 +ipset=/petitehdporn.com/gfwlist +server=/tg.dev/127.0.0.1#5335 +ipset=/tg.dev/gfwlist +server=/volvotrucks.co.na/127.0.0.1#5335 +ipset=/volvotrucks.co.na/gfwlist +server=/dynacw.co.jp/127.0.0.1#5335 +ipset=/dynacw.co.jp/gfwlist +server=/geeksquadforums.com/127.0.0.1#5335 +ipset=/geeksquadforums.com/gfwlist +server=/apple.lv/127.0.0.1#5335 +ipset=/apple.lv/gfwlist +server=/d100.net/127.0.0.1#5335 +ipset=/d100.net/gfwlist +server=/apple.lt/127.0.0.1#5335 +ipset=/apple.lt/gfwlist +server=/apple.jp/127.0.0.1#5335 +ipset=/apple.jp/gfwlist +server=/beatsbydresdanmark.net/127.0.0.1#5335 +ipset=/beatsbydresdanmark.net/gfwlist +server=/login-paypal.com/127.0.0.1#5335 +ipset=/login-paypal.com/gfwlist +server=/ultimaforever.com/127.0.0.1#5335 +ipset=/ultimaforever.com/gfwlist +server=/bigboobsonline.org/127.0.0.1#5335 +ipset=/bigboobsonline.org/gfwlist +server=/mediasama.com/127.0.0.1#5335 +ipset=/mediasama.com/gfwlist +server=/minitroisrivieres.ca/127.0.0.1#5335 +ipset=/minitroisrivieres.ca/gfwlist +server=/pearsoncred.com/127.0.0.1#5335 +ipset=/pearsoncred.com/gfwlist +server=/mypornvid.fun/127.0.0.1#5335 +ipset=/mypornvid.fun/gfwlist +server=/opengw.net/127.0.0.1#5335 +ipset=/opengw.net/gfwlist +server=/makeeu.com/127.0.0.1#5335 +ipset=/makeeu.com/gfwlist +server=/mybeatscheapbydre.com/127.0.0.1#5335 +ipset=/mybeatscheapbydre.com/gfwlist +server=/macbookair.kr/127.0.0.1#5335 +ipset=/macbookair.kr/gfwlist +server=/lp99.pw/127.0.0.1#5335 +ipset=/lp99.pw/gfwlist +server=/ieeeaps.org/127.0.0.1#5335 +ipset=/ieeeaps.org/gfwlist +server=/faptitans.com/127.0.0.1#5335 +ipset=/faptitans.com/gfwlist +server=/fecebook.net/127.0.0.1#5335 +ipset=/fecebook.net/gfwlist +server=/apple.co.mz/127.0.0.1#5335 +ipset=/apple.co.mz/gfwlist +server=/dotfacebook.net/127.0.0.1#5335 +ipset=/dotfacebook.net/gfwlist +server=/yinac.xyz/127.0.0.1#5335 +ipset=/yinac.xyz/gfwlist +server=/digitaloceanspaces.com/127.0.0.1#5335 +ipset=/digitaloceanspaces.com/gfwlist +server=/rewrite-anime.tv/127.0.0.1#5335 +ipset=/rewrite-anime.tv/gfwlist +server=/epochtimes.co.il/127.0.0.1#5335 +ipset=/epochtimes.co.il/gfwlist +server=/boyvid.com/127.0.0.1#5335 +ipset=/boyvid.com/gfwlist +server=/apple.co.cr/127.0.0.1#5335 +ipset=/apple.co.cr/gfwlist +server=/pornfinder.biz/127.0.0.1#5335 +ipset=/pornfinder.biz/gfwlist +server=/bridgestoneamericas.com/127.0.0.1#5335 +ipset=/bridgestoneamericas.com/gfwlist +server=/assetsadobe.com/127.0.0.1#5335 +ipset=/assetsadobe.com/gfwlist +server=/momami18.livedoor.blog/127.0.0.1#5335 +ipset=/momami18.livedoor.blog/gfwlist +server=/avxlive.icu/127.0.0.1#5335 +ipset=/avxlive.icu/gfwlist +server=/aboutfacebook.com/127.0.0.1#5335 +ipset=/aboutfacebook.com/gfwlist +server=/air-nike-shoes.com/127.0.0.1#5335 +ipset=/air-nike-shoes.com/gfwlist +server=/etviet.com/127.0.0.1#5335 +ipset=/etviet.com/gfwlist +server=/verisign.tw/127.0.0.1#5335 +ipset=/verisign.tw/gfwlist +server=/oxfordmedicine.com/127.0.0.1#5335 +ipset=/oxfordmedicine.com/gfwlist +server=/ruleporn.com/127.0.0.1#5335 +ipset=/ruleporn.com/gfwlist +server=/ebay.ca/127.0.0.1#5335 +ipset=/ebay.ca/gfwlist +server=/the-tls.co.uk/127.0.0.1#5335 +ipset=/the-tls.co.uk/gfwlist +server=/logitech.io/127.0.0.1#5335 +ipset=/logitech.io/gfwlist +server=/pornhoho.com/127.0.0.1#5335 +ipset=/pornhoho.com/gfwlist +server=/itunesu.com/127.0.0.1#5335 +ipset=/itunesu.com/gfwlist +server=/humblebundle.com/127.0.0.1#5335 +ipset=/humblebundle.com/gfwlist +server=/punishworld.com/127.0.0.1#5335 +ipset=/punishworld.com/gfwlist +server=/itunesradio.tv/127.0.0.1#5335 +ipset=/itunesradio.tv/gfwlist +server=/verisign.us/127.0.0.1#5335 +ipset=/verisign.us/gfwlist +server=/rumble.com/127.0.0.1#5335 +ipset=/rumble.com/gfwlist +server=/itunesradio.rio/127.0.0.1#5335 +ipset=/itunesradio.rio/gfwlist +server=/itunesradio.com/127.0.0.1#5335 +ipset=/itunesradio.com/gfwlist +server=/ituneslatino.com/127.0.0.1#5335 +ipset=/ituneslatino.com/gfwlist +server=/yahoo.com.gi/127.0.0.1#5335 +ipset=/yahoo.com.gi/gfwlist +server=/itunesiradio.com/127.0.0.1#5335 +ipset=/itunesiradio.com/gfwlist +server=/bmw-connecteddrive.si/127.0.0.1#5335 +ipset=/bmw-connecteddrive.si/gfwlist +server=/itunes.rio/127.0.0.1#5335 +ipset=/itunes.rio/gfwlist +server=/imgurinc.com/127.0.0.1#5335 +ipset=/imgurinc.com/gfwlist +server=/alphera.de/127.0.0.1#5335 +ipset=/alphera.de/gfwlist +server=/tubsexer.com/127.0.0.1#5335 +ipset=/tubsexer.com/gfwlist +server=/mini.pt/127.0.0.1#5335 +ipset=/mini.pt/gfwlist +server=/myfoxsanfran.com/127.0.0.1#5335 +ipset=/myfoxsanfran.com/gfwlist +server=/baraero.com/127.0.0.1#5335 +ipset=/baraero.com/gfwlist +server=/vklive.app/127.0.0.1#5335 +ipset=/vklive.app/gfwlist +server=/hpeprintcenter.com/127.0.0.1#5335 +ipset=/hpeprintcenter.com/gfwlist +server=/myfoxdfw.com/127.0.0.1#5335 +ipset=/myfoxdfw.com/gfwlist +server=/quantil.com/127.0.0.1#5335 +ipset=/quantil.com/gfwlist +server=/itunes.co.th/127.0.0.1#5335 +ipset=/itunes.co.th/gfwlist +server=/javporn.ws/127.0.0.1#5335 +ipset=/javporn.ws/gfwlist +server=/mmdnn.com/127.0.0.1#5335 +ipset=/mmdnn.com/gfwlist +server=/google.com.sb/127.0.0.1#5335 +ipset=/google.com.sb/gfwlist +server=/fi11av1.com/127.0.0.1#5335 +ipset=/fi11av1.com/gfwlist +server=/realtype.jp/127.0.0.1#5335 +ipset=/realtype.jp/gfwlist +server=/mini.com.mx/127.0.0.1#5335 +ipset=/mini.com.mx/gfwlist +server=/livesex.com/127.0.0.1#5335 +ipset=/livesex.com/gfwlist +server=/itun.es/127.0.0.1#5335 +ipset=/itun.es/gfwlist +server=/pixfs.net/127.0.0.1#5335 +ipset=/pixfs.net/gfwlist +server=/12joursdecadeauxdeitunes.com/127.0.0.1#5335 +ipset=/12joursdecadeauxdeitunes.com/gfwlist +server=/hk1lib.org/127.0.0.1#5335 +ipset=/hk1lib.org/gfwlist +server=/12diasderegalosdeitunes.hn/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.hn/gfwlist +server=/disneyredirects.com/127.0.0.1#5335 +ipset=/disneyredirects.com/gfwlist +server=/hairynature.com/127.0.0.1#5335 +ipset=/hairynature.com/gfwlist +server=/pornovideoshub.com/127.0.0.1#5335 +ipset=/pornovideoshub.com/gfwlist +server=/cheapbeatsbydr.com/127.0.0.1#5335 +ipset=/cheapbeatsbydr.com/gfwlist +server=/fecbooc.com/127.0.0.1#5335 +ipset=/fecbooc.com/gfwlist +server=/wsjshop.com/127.0.0.1#5335 +ipset=/wsjshop.com/gfwlist +server=/12diasderegalosdeitunes.cr/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.cr/gfwlist +server=/originalindianporn.com/127.0.0.1#5335 +ipset=/originalindianporn.com/gfwlist +server=/beatsbydrefrcasquepascher.com/127.0.0.1#5335 +ipset=/beatsbydrefrcasquepascher.com/gfwlist +server=/xxbrits.com/127.0.0.1#5335 +ipset=/xxbrits.com/gfwlist +server=/fetishshrine.com/127.0.0.1#5335 +ipset=/fetishshrine.com/gfwlist +server=/sinoinsider.com/127.0.0.1#5335 +ipset=/sinoinsider.com/gfwlist +server=/12diasderegalosdeitunes.cl/127.0.0.1#5335 +ipset=/12diasderegalosdeitunes.cl/gfwlist +server=/foxnews.com/127.0.0.1#5335 +ipset=/foxnews.com/gfwlist +server=/iloveprettylolimm.com/127.0.0.1#5335 +ipset=/iloveprettylolimm.com/gfwlist +server=/mylcloud.net/127.0.0.1#5335 +ipset=/mylcloud.net/gfwlist +server=/ingkacentres.com/127.0.0.1#5335 +ipset=/ingkacentres.com/gfwlist +server=/easportsfootballclub.com/127.0.0.1#5335 +ipset=/easportsfootballclub.com/gfwlist +server=/prepsure.com/127.0.0.1#5335 +ipset=/prepsure.com/gfwlist +server=/myicloud.net/127.0.0.1#5335 +ipset=/myicloud.net/gfwlist +server=/myferrariheadphones.com/127.0.0.1#5335 +ipset=/myferrariheadphones.com/gfwlist +server=/disneyplus.com.ssl.sc.omtrdc.net/127.0.0.1#5335 +ipset=/disneyplus.com.ssl.sc.omtrdc.net/gfwlist +server=/de1lib.org/127.0.0.1#5335 +ipset=/de1lib.org/gfwlist +server=/icloudsecure.net/127.0.0.1#5335 +ipset=/icloudsecure.net/gfwlist +server=/multporn.net/127.0.0.1#5335 +ipset=/multporn.net/gfwlist +server=/globalsign.be/127.0.0.1#5335 +ipset=/globalsign.be/gfwlist +server=/storesense.com/127.0.0.1#5335 +ipset=/storesense.com/gfwlist +server=/youtubego.com/127.0.0.1#5335 +ipset=/youtubego.com/gfwlist +server=/foxnews.org/127.0.0.1#5335 +ipset=/foxnews.org/gfwlist +server=/directv.com/127.0.0.1#5335 +ipset=/directv.com/gfwlist +server=/macbookpros.com/127.0.0.1#5335 +ipset=/macbookpros.com/gfwlist +server=/freebdsmxxx.org/127.0.0.1#5335 +ipset=/freebdsmxxx.org/gfwlist +server=/arzon.jp/127.0.0.1#5335 +ipset=/arzon.jp/gfwlist +server=/youtube.com.ee/127.0.0.1#5335 +ipset=/youtube.com.ee/gfwlist +server=/yahoo.com.fj/127.0.0.1#5335 +ipset=/yahoo.com.fj/gfwlist +server=/microad.jp/127.0.0.1#5335 +ipset=/microad.jp/gfwlist +server=/foxdigitalmovies.com/127.0.0.1#5335 +ipset=/foxdigitalmovies.com/gfwlist +server=/veet.at/127.0.0.1#5335 +ipset=/veet.at/gfwlist +server=/icloudnet.net/127.0.0.1#5335 +ipset=/icloudnet.net/gfwlist +server=/icloudbrowser.net/127.0.0.1#5335 +ipset=/icloudbrowser.net/gfwlist +server=/facebook.hu/127.0.0.1#5335 +ipset=/facebook.hu/gfwlist +server=/icloud.vn/127.0.0.1#5335 +ipset=/icloud.vn/gfwlist +server=/sexsex1.com/127.0.0.1#5335 +ipset=/sexsex1.com/gfwlist +server=/disneymagicmoments.co.il/127.0.0.1#5335 +ipset=/disneymagicmoments.co.il/gfwlist +server=/hotamateurblowjobs.com/127.0.0.1#5335 +ipset=/hotamateurblowjobs.com/gfwlist +server=/girlspoopingtube.com/127.0.0.1#5335 +ipset=/girlspoopingtube.com/gfwlist +server=/icloud.pt/127.0.0.1#5335 +ipset=/icloud.pt/gfwlist +server=/avstar03.me/127.0.0.1#5335 +ipset=/avstar03.me/gfwlist +server=/icloud.om/127.0.0.1#5335 +ipset=/icloud.om/gfwlist +server=/vrcams.io/127.0.0.1#5335 +ipset=/vrcams.io/gfwlist +server=/icloud.ie/127.0.0.1#5335 +ipset=/icloud.ie/gfwlist +server=/canon.dk/127.0.0.1#5335 +ipset=/canon.dk/gfwlist +server=/henti-night.com/127.0.0.1#5335 +ipset=/henti-night.com/gfwlist +server=/mastercard.co.jp/127.0.0.1#5335 +ipset=/mastercard.co.jp/gfwlist +server=/older-women-movies.com/127.0.0.1#5335 +ipset=/older-women-movies.com/gfwlist +server=/instawank.com/127.0.0.1#5335 +ipset=/instawank.com/gfwlist +server=/mi9.com.au/127.0.0.1#5335 +ipset=/mi9.com.au/gfwlist +server=/supportfacebook.com/127.0.0.1#5335 +ipset=/supportfacebook.com/gfwlist +server=/bmw-connecteddrive.de/127.0.0.1#5335 +ipset=/bmw-connecteddrive.de/gfwlist +server=/vrsmash.com/127.0.0.1#5335 +ipset=/vrsmash.com/gfwlist +server=/alljapanesepass.com/127.0.0.1#5335 +ipset=/alljapanesepass.com/gfwlist +server=/mask-h2.icloud.com/127.0.0.1#5335 +ipset=/mask-h2.icloud.com/gfwlist +server=/facecook.com/127.0.0.1#5335 +ipset=/facecook.com/gfwlist +server=/scp-wiki.net/127.0.0.1#5335 +ipset=/scp-wiki.net/gfwlist +server=/wholesalefine.com/127.0.0.1#5335 +ipset=/wholesalefine.com/gfwlist +server=/bmwi.ca/127.0.0.1#5335 +ipset=/bmwi.ca/gfwlist +server=/wholesale-exporter1.com/127.0.0.1#5335 +ipset=/wholesale-exporter1.com/gfwlist +server=/digicert-validation.com/127.0.0.1#5335 +ipset=/digicert-validation.com/gfwlist +server=/kyurem.com/127.0.0.1#5335 +ipset=/kyurem.com/gfwlist +server=/foxsports-chicago.com/127.0.0.1#5335 +ipset=/foxsports-chicago.com/gfwlist +server=/canon.com.hk/127.0.0.1#5335 +ipset=/canon.com.hk/gfwlist +server=/hellosmartbook.com/127.0.0.1#5335 +ipset=/hellosmartbook.com/gfwlist +server=/online-instagram.com/127.0.0.1#5335 +ipset=/online-instagram.com/gfwlist +server=/alphera.my/127.0.0.1#5335 +ipset=/alphera.my/gfwlist +server=/nervanasys.com/127.0.0.1#5335 +ipset=/nervanasys.com/gfwlist +server=/advancediddetection.com/127.0.0.1#5335 +ipset=/advancediddetection.com/gfwlist +server=/xboxplayanywhere.com/127.0.0.1#5335 +ipset=/xboxplayanywhere.com/gfwlist +server=/vimeo-staging2.com/127.0.0.1#5335 +ipset=/vimeo-staging2.com/gfwlist +server=/18comic.org/127.0.0.1#5335 +ipset=/18comic.org/gfwlist +server=/pornburger.com/127.0.0.1#5335 +ipset=/pornburger.com/gfwlist +server=/gofuckmenow.com/127.0.0.1#5335 +ipset=/gofuckmenow.com/gfwlist +server=/adidas.ie/127.0.0.1#5335 +ipset=/adidas.ie/gfwlist +server=/bmw.gr/127.0.0.1#5335 +ipset=/bmw.gr/gfwlist +server=/voashona.com/127.0.0.1#5335 +ipset=/voashona.com/gfwlist +server=/fcebookk.com/127.0.0.1#5335 +ipset=/fcebookk.com/gfwlist +server=/google.gy/127.0.0.1#5335 +ipset=/google.gy/gfwlist +server=/volvogroup.com/127.0.0.1#5335 +ipset=/volvogroup.com/gfwlist +server=/bloombergbreakaway.com/127.0.0.1#5335 +ipset=/bloombergbreakaway.com/gfwlist +server=/volvotrucks.ae/127.0.0.1#5335 +ipset=/volvotrucks.ae/gfwlist +server=/adultsextoys.com/127.0.0.1#5335 +ipset=/adultsextoys.com/gfwlist +server=/akiba-online.com/127.0.0.1#5335 +ipset=/akiba-online.com/gfwlist +server=/beibao.com/127.0.0.1#5335 +ipset=/beibao.com/gfwlist +server=/faccebookk.com/127.0.0.1#5335 +ipset=/faccebookk.com/gfwlist +server=/www-facebook.com/127.0.0.1#5335 +ipset=/www-facebook.com/gfwlist +server=/pearsonclinical.dk/127.0.0.1#5335 +ipset=/pearsonclinical.dk/gfwlist +server=/eanordic.com/127.0.0.1#5335 +ipset=/eanordic.com/gfwlist +server=/dynamics.com/127.0.0.1#5335 +ipset=/dynamics.com/gfwlist +server=/bmwshop.ca/127.0.0.1#5335 +ipset=/bmwshop.ca/gfwlist +server=/sulwerphoto.com/127.0.0.1#5335 +ipset=/sulwerphoto.com/gfwlist +server=/couriermail.com.au/127.0.0.1#5335 +ipset=/couriermail.com.au/gfwlist +server=/freebigmovies.com/127.0.0.1#5335 +ipset=/freebigmovies.com/gfwlist +server=/specialtyheadphones.com/127.0.0.1#5335 +ipset=/specialtyheadphones.com/gfwlist +server=/mastercard.ke/127.0.0.1#5335 +ipset=/mastercard.ke/gfwlist +server=/xbeegtube.com/127.0.0.1#5335 +ipset=/xbeegtube.com/gfwlist +server=/solostudioksale.com/127.0.0.1#5335 +ipset=/solostudioksale.com/gfwlist +server=/gotgayporn.com/127.0.0.1#5335 +ipset=/gotgayporn.com/gfwlist +server=/mini.es/127.0.0.1#5335 +ipset=/mini.es/gfwlist +server=/mini-egypt.com/127.0.0.1#5335 +ipset=/mini-egypt.com/gfwlist +server=/sneaker666.com/127.0.0.1#5335 +ipset=/sneaker666.com/gfwlist +server=/shoppinguheadphones.com/127.0.0.1#5335 +ipset=/shoppinguheadphones.com/gfwlist +server=/webtype.com/127.0.0.1#5335 +ipset=/webtype.com/gfwlist +server=/pinterest.com.mx/127.0.0.1#5335 +ipset=/pinterest.com.mx/gfwlist +server=/bmw-motorrad.sv/127.0.0.1#5335 +ipset=/bmw-motorrad.sv/gfwlist +server=/gallery-dump.club/127.0.0.1#5335 +ipset=/gallery-dump.club/gfwlist +server=/shop-headphones.net/127.0.0.1#5335 +ipset=/shop-headphones.net/gfwlist +server=/myrz.com/127.0.0.1#5335 +ipset=/myrz.com/gfwlist +server=/femscat.com/127.0.0.1#5335 +ipset=/femscat.com/gfwlist +server=/volvobuses.es/127.0.0.1#5335 +ipset=/volvobuses.es/gfwlist +server=/shoestop2.com/127.0.0.1#5335 +ipset=/shoestop2.com/gfwlist +server=/sanvaras.com/127.0.0.1#5335 +ipset=/sanvaras.com/gfwlist +server=/spoti.fi/127.0.0.1#5335 +ipset=/spoti.fi/gfwlist +server=/mini.com.mo/127.0.0.1#5335 +ipset=/mini.com.mo/gfwlist +server=/como-hackearfacebook.com/127.0.0.1#5335 +ipset=/como-hackearfacebook.com/gfwlist +server=/chloesworld.com/127.0.0.1#5335 +ipset=/chloesworld.com/gfwlist +server=/repsneakermall.com/127.0.0.1#5335 +ipset=/repsneakermall.com/gfwlist +server=/prostudiobeatscybersale.com/127.0.0.1#5335 +ipset=/prostudiobeatscybersale.com/gfwlist +server=/haori888.com/127.0.0.1#5335 +ipset=/haori888.com/gfwlist +server=/mini-bosnia.com/127.0.0.1#5335 +ipset=/mini-bosnia.com/gfwlist +server=/flatmates.com.au/127.0.0.1#5335 +ipset=/flatmates.com.au/gfwlist +server=/powerbeatsbydre.com/127.0.0.1#5335 +ipset=/powerbeatsbydre.com/gfwlist +server=/powerbeatsbydrdre.com/127.0.0.1#5335 +ipset=/powerbeatsbydrdre.com/gfwlist +server=/bamgrid.com/127.0.0.1#5335 +ipset=/bamgrid.com/gfwlist +server=/pocketbiketrader.com/127.0.0.1#5335 +ipset=/pocketbiketrader.com/gfwlist +server=/iporntv.net/127.0.0.1#5335 +ipset=/iporntv.net/gfwlist +server=/pillbeatsblackfridaysale.com/127.0.0.1#5335 +ipset=/pillbeatsblackfridaysale.com/gfwlist +server=/pickshoesclothes.com/127.0.0.1#5335 +ipset=/pickshoesclothes.com/gfwlist +server=/picknicekicks.net/127.0.0.1#5335 +ipset=/picknicekicks.net/gfwlist +server=/personeelsland.com/127.0.0.1#5335 +ipset=/personeelsland.com/gfwlist +server=/monsterbeatssalg.com/127.0.0.1#5335 +ipset=/monsterbeatssalg.com/gfwlist +server=/breitbart.com/127.0.0.1#5335 +ipset=/breitbart.com/gfwlist +server=/pugetsoundbmw.com/127.0.0.1#5335 +ipset=/pugetsoundbmw.com/gfwlist +server=/cmu.edu/127.0.0.1#5335 +ipset=/cmu.edu/gfwlist +server=/edx.org/127.0.0.1#5335 +ipset=/edx.org/gfwlist +server=/javprice.com/127.0.0.1#5335 +ipset=/javprice.com/gfwlist +server=/mastercard-email.com/127.0.0.1#5335 +ipset=/mastercard-email.com/gfwlist +server=/zee5.tv/127.0.0.1#5335 +ipset=/zee5.tv/gfwlist +server=/officialbeatsbydrestore.com/127.0.0.1#5335 +ipset=/officialbeatsbydrestore.com/gfwlist +server=/mega.nz/127.0.0.1#5335 +ipset=/mega.nz/gfwlist +server=/disquscdn.com/127.0.0.1#5335 +ipset=/disquscdn.com/gfwlist +server=/theclasshroom.com/127.0.0.1#5335 +ipset=/theclasshroom.com/gfwlist +server=/bmw.fi/127.0.0.1#5335 +ipset=/bmw.fi/gfwlist +server=/newlysprung.net/127.0.0.1#5335 +ipset=/newlysprung.net/gfwlist +server=/ficeboock.com/127.0.0.1#5335 +ipset=/ficeboock.com/gfwlist +server=/xdsummit.com/127.0.0.1#5335 +ipset=/xdsummit.com/gfwlist +server=/thetvdb.com/127.0.0.1#5335 +ipset=/thetvdb.com/gfwlist +server=/1lib.domains/127.0.0.1#5335 +ipset=/1lib.domains/gfwlist +server=/acgnmanhua.com/127.0.0.1#5335 +ipset=/acgnmanhua.com/gfwlist +server=/newbemany.com/127.0.0.1#5335 +ipset=/newbemany.com/gfwlist +server=/bmwmotorrad.com.ph/127.0.0.1#5335 +ipset=/bmwmotorrad.com.ph/gfwlist +server=/atkgallery.com/127.0.0.1#5335 +ipset=/atkgallery.com/gfwlist +server=/cheapbeatsbydre99.com/127.0.0.1#5335 +ipset=/cheapbeatsbydre99.com/gfwlist +server=/negozimonsterbeats.com/127.0.0.1#5335 +ipset=/negozimonsterbeats.com/gfwlist +server=/zohostatic.com/127.0.0.1#5335 +ipset=/zohostatic.com/gfwlist +server=/paypalnet.org/127.0.0.1#5335 +ipset=/paypalnet.org/gfwlist +server=/skyassets.com/127.0.0.1#5335 +ipset=/skyassets.com/gfwlist +server=/bmwmuseum.net/127.0.0.1#5335 +ipset=/bmwmuseum.net/gfwlist +server=/bmw-arts-design.com/127.0.0.1#5335 +ipset=/bmw-arts-design.com/gfwlist +server=/neborder.com/127.0.0.1#5335 +ipset=/neborder.com/gfwlist +server=/cool18.com/127.0.0.1#5335 +ipset=/cool18.com/gfwlist +server=/apple.eu/127.0.0.1#5335 +ipset=/apple.eu/gfwlist +server=/disney.co.th/127.0.0.1#5335 +ipset=/disney.co.th/gfwlist +server=/facecook.org/127.0.0.1#5335 +ipset=/facecook.org/gfwlist +server=/bioporno.com/127.0.0.1#5335 +ipset=/bioporno.com/gfwlist +server=/mini.rs/127.0.0.1#5335 +ipset=/mini.rs/gfwlist +server=/starbucks.es/127.0.0.1#5335 +ipset=/starbucks.es/gfwlist +server=/ms4dre.com/127.0.0.1#5335 +ipset=/ms4dre.com/gfwlist +server=/google.ae/127.0.0.1#5335 +ipset=/google.ae/gfwlist +server=/ccav69.me/127.0.0.1#5335 +ipset=/ccav69.me/gfwlist +server=/goldcoastbulletin.com.au/127.0.0.1#5335 +ipset=/goldcoastbulletin.com.au/gfwlist +server=/minidurham.com/127.0.0.1#5335 +ipset=/minidurham.com/gfwlist +server=/aishegw.com/127.0.0.1#5335 +ipset=/aishegw.com/gfwlist +server=/socdm.com/127.0.0.1#5335 +ipset=/socdm.com/gfwlist +server=/xxxymovies.com/127.0.0.1#5335 +ipset=/xxxymovies.com/gfwlist +server=/nikepromax.com/127.0.0.1#5335 +ipset=/nikepromax.com/gfwlist +server=/facebooksupplier.com/127.0.0.1#5335 +ipset=/facebooksupplier.com/gfwlist +server=/monstersdebea.com/127.0.0.1#5335 +ipset=/monstersdebea.com/gfwlist +server=/10xfotolia.com/127.0.0.1#5335 +ipset=/10xfotolia.com/gfwlist +server=/scatfinder.com/127.0.0.1#5335 +ipset=/scatfinder.com/gfwlist +server=/flbjc.net/127.0.0.1#5335 +ipset=/flbjc.net/gfwlist +server=/ebayeletro.com/127.0.0.1#5335 +ipset=/ebayeletro.com/gfwlist +server=/icsd.fiz-karlsruhe.de/127.0.0.1#5335 +ipset=/icsd.fiz-karlsruhe.de/gfwlist +server=/xbox360.com/127.0.0.1#5335 +ipset=/xbox360.com/gfwlist +server=/gayfuckporn.com/127.0.0.1#5335 +ipset=/gayfuckporn.com/gfwlist +server=/waa.tw/127.0.0.1#5335 +ipset=/waa.tw/gfwlist +server=/cloudflareaccess.com/127.0.0.1#5335 +ipset=/cloudflareaccess.com/gfwlist +server=/beatsbydremonsteraustralia.com/127.0.0.1#5335 +ipset=/beatsbydremonsteraustralia.com/gfwlist +server=/s-nbcnews.com/127.0.0.1#5335 +ipset=/s-nbcnews.com/gfwlist +server=/visasignature.co.kr/127.0.0.1#5335 +ipset=/visasignature.co.kr/gfwlist +server=/monsterbeatsru.com/127.0.0.1#5335 +ipset=/monsterbeatsru.com/gfwlist +server=/monsterbeatsonlinestoreuk.com/127.0.0.1#5335 +ipset=/monsterbeatsonlinestoreuk.com/gfwlist +server=/vfsco.dk/127.0.0.1#5335 +ipset=/vfsco.dk/gfwlist +server=/monsterbeatsok.com/127.0.0.1#5335 +ipset=/monsterbeatsok.com/gfwlist +server=/monsterbeatsnegozi.net/127.0.0.1#5335 +ipset=/monsterbeatsnegozi.net/gfwlist +server=/porngames.com/127.0.0.1#5335 +ipset=/porngames.com/gfwlist +server=/monsterbeatsitaly.com/127.0.0.1#5335 +ipset=/monsterbeatsitaly.com/gfwlist +server=/stunnel.org/127.0.0.1#5335 +ipset=/stunnel.org/gfwlist +server=/monsterbeatsfinland.com/127.0.0.1#5335 +ipset=/monsterbeatsfinland.com/gfwlist +server=/mastercard.kz/127.0.0.1#5335 +ipset=/mastercard.kz/gfwlist +server=/bmw-motorrad.bg/127.0.0.1#5335 +ipset=/bmw-motorrad.bg/gfwlist +server=/siam.org/127.0.0.1#5335 +ipset=/siam.org/gfwlist +server=/kicksnike1.com/127.0.0.1#5335 +ipset=/kicksnike1.com/gfwlist +server=/squarecloudservices.com/127.0.0.1#5335 +ipset=/squarecloudservices.com/gfwlist +server=/bmw-connecteddrive.ae/127.0.0.1#5335 +ipset=/bmw-connecteddrive.ae/gfwlist +server=/youyu.services/127.0.0.1#5335 +ipset=/youyu.services/gfwlist +server=/phimsexhentai.me/127.0.0.1#5335 +ipset=/phimsexhentai.me/gfwlist +server=/nginx.com/127.0.0.1#5335 +ipset=/nginx.com/gfwlist +server=/binancezh.sh/127.0.0.1#5335 +ipset=/binancezh.sh/gfwlist +server=/gonzo-movies.com/127.0.0.1#5335 +ipset=/gonzo-movies.com/gfwlist +server=/monsterbeatsbydrebilligde.com/127.0.0.1#5335 +ipset=/monsterbeatsbydrebilligde.com/gfwlist +server=/starwarsgalacticstarcruiser.com/127.0.0.1#5335 +ipset=/starwarsgalacticstarcruiser.com/gfwlist +server=/gaycock4u.com/127.0.0.1#5335 +ipset=/gaycock4u.com/gfwlist +server=/nikesbdunks.net/127.0.0.1#5335 +ipset=/nikesbdunks.net/gfwlist +server=/bandag.cc/127.0.0.1#5335 +ipset=/bandag.cc/gfwlist +server=/manhuagui.com/127.0.0.1#5335 +ipset=/manhuagui.com/gfwlist +server=/artoferotica.info/127.0.0.1#5335 +ipset=/artoferotica.info/gfwlist +server=/gaypornforyou.com/127.0.0.1#5335 +ipset=/gaypornforyou.com/gfwlist +server=/hentaigamesplanet.com/127.0.0.1#5335 +ipset=/hentaigamesplanet.com/gfwlist +server=/youtube.com.qa/127.0.0.1#5335 +ipset=/youtube.com.qa/gfwlist +server=/mzed.com/127.0.0.1#5335 +ipset=/mzed.com/gfwlist +server=/heavenlyhentai.com/127.0.0.1#5335 +ipset=/heavenlyhentai.com/gfwlist +server=/youtube.la/127.0.0.1#5335 +ipset=/youtube.la/gfwlist +server=/bmwworld.com/127.0.0.1#5335 +ipset=/bmwworld.com/gfwlist +server=/micstl.com/127.0.0.1#5335 +ipset=/micstl.com/gfwlist +server=/8muses.io/127.0.0.1#5335 +ipset=/8muses.io/gfwlist +server=/visapcsdirect.com/127.0.0.1#5335 +ipset=/visapcsdirect.com/gfwlist +server=/gettyimages.at/127.0.0.1#5335 +ipset=/gettyimages.at/gfwlist +server=/media-amazon.com/127.0.0.1#5335 +ipset=/media-amazon.com/gfwlist +server=/instagrm.com/127.0.0.1#5335 +ipset=/instagrm.com/gfwlist +server=/mairbeats.com/127.0.0.1#5335 +ipset=/mairbeats.com/gfwlist +server=/dtci.technology/127.0.0.1#5335 +ipset=/dtci.technology/gfwlist +server=/airwick.hu/127.0.0.1#5335 +ipset=/airwick.hu/gfwlist +server=/kickshatchannel.com/127.0.0.1#5335 +ipset=/kickshatchannel.com/gfwlist +server=/sacredhentai.com/127.0.0.1#5335 +ipset=/sacredhentai.com/gfwlist +server=/lifeselector.com/127.0.0.1#5335 +ipset=/lifeselector.com/gfwlist +server=/italiabeatsbydrdre.com/127.0.0.1#5335 +ipset=/italiabeatsbydrdre.com/gfwlist +server=/chinapower.csis.org/127.0.0.1#5335 +ipset=/chinapower.csis.org/gfwlist +server=/kijijiauto.ca/127.0.0.1#5335 +ipset=/kijijiauto.ca/gfwlist +server=/bmw-motorrad.si/127.0.0.1#5335 +ipset=/bmw-motorrad.si/gfwlist +server=/topcelebnudes.com/127.0.0.1#5335 +ipset=/topcelebnudes.com/gfwlist +server=/marketo.tv/127.0.0.1#5335 +ipset=/marketo.tv/gfwlist +server=/billmelater.info/127.0.0.1#5335 +ipset=/billmelater.info/gfwlist +server=/canon.net/127.0.0.1#5335 +ipset=/canon.net/gfwlist +server=/geforce.com.tw/127.0.0.1#5335 +ipset=/geforce.com.tw/gfwlist +server=/yomikyo.or.jp/127.0.0.1#5335 +ipset=/yomikyo.or.jp/gfwlist +server=/omghk.com/127.0.0.1#5335 +ipset=/omghk.com/gfwlist +server=/bridgestonenationalfleet.com/127.0.0.1#5335 +ipset=/bridgestonenationalfleet.com/gfwlist +server=/anb.org/127.0.0.1#5335 +ipset=/anb.org/gfwlist +server=/milftube.pro/127.0.0.1#5335 +ipset=/milftube.pro/gfwlist +server=/csis.org/127.0.0.1#5335 +ipset=/csis.org/gfwlist +server=/librarylovefest.com/127.0.0.1#5335 +ipset=/librarylovefest.com/gfwlist +server=/dlgarenanow-a.akamaihd.net/127.0.0.1#5335 +ipset=/dlgarenanow-a.akamaihd.net/gfwlist +server=/milfprime.com/127.0.0.1#5335 +ipset=/milfprime.com/gfwlist +server=/facebook-support.org/127.0.0.1#5335 +ipset=/facebook-support.org/gfwlist +server=/fifastreet3.com/127.0.0.1#5335 +ipset=/fifastreet3.com/gfwlist +server=/lexuemei.com/127.0.0.1#5335 +ipset=/lexuemei.com/gfwlist +server=/appbridge.ca/127.0.0.1#5335 +ipset=/appbridge.ca/gfwlist +server=/slobodnaevropa.mk/127.0.0.1#5335 +ipset=/slobodnaevropa.mk/gfwlist +server=/3dfuckhouse.com/127.0.0.1#5335 +ipset=/3dfuckhouse.com/gfwlist +server=/japaneselovelygirl.com/127.0.0.1#5335 +ipset=/japaneselovelygirl.com/gfwlist +server=/faronics.com.au/127.0.0.1#5335 +ipset=/faronics.com.au/gfwlist +server=/intelplay.com/127.0.0.1#5335 +ipset=/intelplay.com/gfwlist +server=/fuhouse.club/127.0.0.1#5335 +ipset=/fuhouse.club/gfwlist +server=/headphonezip.com/127.0.0.1#5335 +ipset=/headphonezip.com/gfwlist +server=/bexjt5wz.xyz/127.0.0.1#5335 +ipset=/bexjt5wz.xyz/gfwlist +server=/travelex.co.uk/127.0.0.1#5335 +ipset=/travelex.co.uk/gfwlist +server=/headphonesretailer.com/127.0.0.1#5335 +ipset=/headphonesretailer.com/gfwlist +server=/sysinternals.com/127.0.0.1#5335 +ipset=/sysinternals.com/gfwlist +server=/nike.us/127.0.0.1#5335 +ipset=/nike.us/gfwlist +server=/jquery.com/127.0.0.1#5335 +ipset=/jquery.com/gfwlist +server=/volvotrucks.sk/127.0.0.1#5335 +ipset=/volvotrucks.sk/gfwlist +server=/ebayde.com/127.0.0.1#5335 +ipset=/ebayde.com/gfwlist +server=/lesbianpornvideos.com/127.0.0.1#5335 +ipset=/lesbianpornvideos.com/gfwlist +server=/cloudinary.net/127.0.0.1#5335 +ipset=/cloudinary.net/gfwlist +server=/volvobuses.at/127.0.0.1#5335 +ipset=/volvobuses.at/gfwlist +server=/mythicgames.com/127.0.0.1#5335 +ipset=/mythicgames.com/gfwlist +server=/atlasdmt.com/127.0.0.1#5335 +ipset=/atlasdmt.com/gfwlist +server=/verisign.com.es/127.0.0.1#5335 +ipset=/verisign.com.es/gfwlist +server=/jdbstatic.com/127.0.0.1#5335 +ipset=/jdbstatic.com/gfwlist +server=/minid.no/127.0.0.1#5335 +ipset=/minid.no/gfwlist +server=/pornlegendsclub.com/127.0.0.1#5335 +ipset=/pornlegendsclub.com/gfwlist +server=/amatura.com/127.0.0.1#5335 +ipset=/amatura.com/gfwlist +server=/ballbustingtube.com/127.0.0.1#5335 +ipset=/ballbustingtube.com/gfwlist +server=/jav101.com/127.0.0.1#5335 +ipset=/jav101.com/gfwlist +server=/nationalaustraliaban.tt.omtrdc.net/127.0.0.1#5335 +ipset=/nationalaustraliaban.tt.omtrdc.net/gfwlist +server=/gmnetworks.net/127.0.0.1#5335 +ipset=/gmnetworks.net/gfwlist +server=/frishoes.com/127.0.0.1#5335 +ipset=/frishoes.com/gfwlist +server=/frcasquesbeats.com/127.0.0.1#5335 +ipset=/frcasquesbeats.com/gfwlist +server=/fr-beatsbydrestore.com/127.0.0.1#5335 +ipset=/fr-beatsbydrestore.com/gfwlist +server=/fox26.com/127.0.0.1#5335 +ipset=/fox26.com/gfwlist +server=/foxsports.com.ar/127.0.0.1#5335 +ipset=/foxsports.com.ar/gfwlist +server=/mastercardcenter.com/127.0.0.1#5335 +ipset=/mastercardcenter.com/gfwlist +server=/vimeo.com/127.0.0.1#5335 +ipset=/vimeo.com/gfwlist +server=/naver.net/127.0.0.1#5335 +ipset=/naver.net/gfwlist +server=/ebaka.ru/127.0.0.1#5335 +ipset=/ebaka.ru/gfwlist +server=/awsloft-stockholm.com/127.0.0.1#5335 +ipset=/awsloft-stockholm.com/gfwlist +server=/attinnovationspace.com/127.0.0.1#5335 +ipset=/attinnovationspace.com/gfwlist +server=/ts.la/127.0.0.1#5335 +ipset=/ts.la/gfwlist +server=/pinduck.com/127.0.0.1#5335 +ipset=/pinduck.com/gfwlist +server=/dreprobeats.com/127.0.0.1#5335 +ipset=/dreprobeats.com/gfwlist +server=/kicu.tv/127.0.0.1#5335 +ipset=/kicu.tv/gfwlist +server=/frescolib.org/127.0.0.1#5335 +ipset=/frescolib.org/gfwlist +server=/drebeatsaustralia-cheap.com/127.0.0.1#5335 +ipset=/drebeatsaustralia-cheap.com/gfwlist +server=/limer.tw/127.0.0.1#5335 +ipset=/limer.tw/gfwlist +server=/newscorpaustralia.com/127.0.0.1#5335 +ipset=/newscorpaustralia.com/gfwlist +server=/ak1.net/127.0.0.1#5335 +ipset=/ak1.net/gfwlist +server=/google.com.my/127.0.0.1#5335 +ipset=/google.com.my/gfwlist +server=/tryquinn.com/127.0.0.1#5335 +ipset=/tryquinn.com/gfwlist +server=/yandex.kz/127.0.0.1#5335 +ipset=/yandex.kz/gfwlist +server=/microsoftaffiliates.com/127.0.0.1#5335 +ipset=/microsoftaffiliates.com/gfwlist +server=/twgreatnews.com/127.0.0.1#5335 +ipset=/twgreatnews.com/gfwlist +server=/albagals.com/127.0.0.1#5335 +ipset=/albagals.com/gfwlist +server=/hentaiyes.com/127.0.0.1#5335 +ipset=/hentaiyes.com/gfwlist +server=/drebeatsaustralia-cheap.net/127.0.0.1#5335 +ipset=/drebeatsaustralia-cheap.net/gfwlist +server=/naughtyamerica.com/127.0.0.1#5335 +ipset=/naughtyamerica.com/gfwlist +server=/mini.com.gt/127.0.0.1#5335 +ipset=/mini.com.gt/gfwlist +server=/drebeats-monsteraustralia.com/127.0.0.1#5335 +ipset=/drebeats-monsteraustralia.com/gfwlist +server=/akami.net/127.0.0.1#5335 +ipset=/akami.net/gfwlist +server=/erogames.com/127.0.0.1#5335 +ipset=/erogames.com/gfwlist +server=/sectigo.com/127.0.0.1#5335 +ipset=/sectigo.com/gfwlist +server=/mengnan.shop/127.0.0.1#5335 +ipset=/mengnan.shop/gfwlist +server=/tx5254.com/127.0.0.1#5335 +ipset=/tx5254.com/gfwlist +server=/xbox.com/127.0.0.1#5335 +ipset=/xbox.com/gfwlist +server=/nintendodsi.com/127.0.0.1#5335 +ipset=/nintendodsi.com/gfwlist +server=/my20houston.com/127.0.0.1#5335 +ipset=/my20houston.com/gfwlist +server=/bmw-fleet.net/127.0.0.1#5335 +ipset=/bmw-fleet.net/gfwlist +server=/mortein.co.za/127.0.0.1#5335 +ipset=/mortein.co.za/gfwlist +server=/visa.ky/127.0.0.1#5335 +ipset=/visa.ky/gfwlist +server=/bmw-yemen.com/127.0.0.1#5335 +ipset=/bmw-yemen.com/gfwlist +server=/enanyang.my/127.0.0.1#5335 +ipset=/enanyang.my/gfwlist +server=/drdremonster-beats.com/127.0.0.1#5335 +ipset=/drdremonster-beats.com/gfwlist +server=/attdns.net/127.0.0.1#5335 +ipset=/attdns.net/gfwlist +server=/signal.art/127.0.0.1#5335 +ipset=/signal.art/gfwlist +server=/cuckoldplacetube.com/127.0.0.1#5335 +ipset=/cuckoldplacetube.com/gfwlist +server=/drdrebeatsretail2013.com/127.0.0.1#5335 +ipset=/drdrebeatsretail2013.com/gfwlist +server=/xindelu.com/127.0.0.1#5335 +ipset=/xindelu.com/gfwlist +server=/nhentai.com/127.0.0.1#5335 +ipset=/nhentai.com/gfwlist +server=/doodhwali.com/127.0.0.1#5335 +ipset=/doodhwali.com/gfwlist +server=/wankzvr.com/127.0.0.1#5335 +ipset=/wankzvr.com/gfwlist +server=/slutload.com/127.0.0.1#5335 +ipset=/slutload.com/gfwlist +server=/radian6.com/127.0.0.1#5335 +ipset=/radian6.com/gfwlist +server=/audible.com/127.0.0.1#5335 +ipset=/audible.com/gfwlist +server=/disneyworld-go.com/127.0.0.1#5335 +ipset=/disneyworld-go.com/gfwlist +server=/npm.community/127.0.0.1#5335 +ipset=/npm.community/gfwlist +server=/mini-connected.es/127.0.0.1#5335 +ipset=/mini-connected.es/gfwlist +server=/gyutto.com/127.0.0.1#5335 +ipset=/gyutto.com/gfwlist +server=/computer.org/127.0.0.1#5335 +ipset=/computer.org/gfwlist +server=/1010.com.hk/127.0.0.1#5335 +ipset=/1010.com.hk/gfwlist +server=/yourspeculumexam.com/127.0.0.1#5335 +ipset=/yourspeculumexam.com/gfwlist +server=/59mvmv.com/127.0.0.1#5335 +ipset=/59mvmv.com/gfwlist +server=/codei.sh/127.0.0.1#5335 +ipset=/codei.sh/gfwlist +server=/tferwq.com/127.0.0.1#5335 +ipset=/tferwq.com/gfwlist +server=/discountbeatsstore.com/127.0.0.1#5335 +ipset=/discountbeatsstore.com/gfwlist +server=/taylorfrancis.com/127.0.0.1#5335 +ipset=/taylorfrancis.com/gfwlist +server=/yoshisnewisland.com/127.0.0.1#5335 +ipset=/yoshisnewisland.com/gfwlist +server=/wikileaks.org/127.0.0.1#5335 +ipset=/wikileaks.org/gfwlist +server=/adidas.de/127.0.0.1#5335 +ipset=/adidas.de/gfwlist +server=/custombeatssbydreus.com/127.0.0.1#5335 +ipset=/custombeatssbydreus.com/gfwlist +server=/custombeatsdeals.com/127.0.0.1#5335 +ipset=/custombeatsdeals.com/gfwlist +server=/beatsbydreus.com/127.0.0.1#5335 +ipset=/beatsbydreus.com/gfwlist +server=/nintendo.fi/127.0.0.1#5335 +ipset=/nintendo.fi/gfwlist +server=/cuffiesaldi.com/127.0.0.1#5335 +ipset=/cuffiesaldi.com/gfwlist +server=/eamobile.com/127.0.0.1#5335 +ipset=/eamobile.com/gfwlist +server=/acgww.cyou/127.0.0.1#5335 +ipset=/acgww.cyou/gfwlist +server=/coolmonster.net/127.0.0.1#5335 +ipset=/coolmonster.net/gfwlist +server=/miniwindsor.com/127.0.0.1#5335 +ipset=/miniwindsor.com/gfwlist +server=/chihair-straightener.com/127.0.0.1#5335 +ipset=/chihair-straightener.com/gfwlist +server=/pearsonlongman.ch/127.0.0.1#5335 +ipset=/pearsonlongman.ch/gfwlist +server=/cheapsalemonster.com/127.0.0.1#5335 +ipset=/cheapsalemonster.com/gfwlist +server=/cheapnewbeatsbydre.com/127.0.0.1#5335 +ipset=/cheapnewbeatsbydre.com/gfwlist +server=/xbox360.co/127.0.0.1#5335 +ipset=/xbox360.co/gfwlist +server=/bobs-tube.com/127.0.0.1#5335 +ipset=/bobs-tube.com/gfwlist +server=/cheapmonsterbeatsheadsets.com/127.0.0.1#5335 +ipset=/cheapmonsterbeatsheadsets.com/gfwlist +server=/ea.tt.omtrdc.net/127.0.0.1#5335 +ipset=/ea.tt.omtrdc.net/gfwlist +server=/cheapheadphonessale.com/127.0.0.1#5335 +ipset=/cheapheadphonessale.com/gfwlist +server=/xxx4hindi.com/127.0.0.1#5335 +ipset=/xxx4hindi.com/gfwlist +server=/cheapdrdrebeatsca.com/127.0.0.1#5335 +ipset=/cheapdrdrebeatsca.com/gfwlist +server=/chuokoron.jp/127.0.0.1#5335 +ipset=/chuokoron.jp/gfwlist +server=/cheapdrdrebeats8.com/127.0.0.1#5335 +ipset=/cheapdrdrebeats8.com/gfwlist +server=/infocert.it/127.0.0.1#5335 +ipset=/infocert.it/gfwlist +server=/fox13news.com/127.0.0.1#5335 +ipset=/fox13news.com/gfwlist +server=/mini-vietnam.com/127.0.0.1#5335 +ipset=/mini-vietnam.com/gfwlist +server=/freexvideos.org/127.0.0.1#5335 +ipset=/freexvideos.org/gfwlist +server=/bridgestoneperformance.com/127.0.0.1#5335 +ipset=/bridgestoneperformance.com/gfwlist +server=/myfoxaustin.com/127.0.0.1#5335 +ipset=/myfoxaustin.com/gfwlist +server=/cheapbeatsheadphones.us/127.0.0.1#5335 +ipset=/cheapbeatsheadphones.us/gfwlist +server=/cheapbeatsheadphone2014.com/127.0.0.1#5335 +ipset=/cheapbeatsheadphone2014.com/gfwlist +server=/ilovexs.com/127.0.0.1#5335 +ipset=/ilovexs.com/gfwlist +server=/99thz.com/127.0.0.1#5335 +ipset=/99thz.com/gfwlist +server=/fteproxy.org/127.0.0.1#5335 +ipset=/fteproxy.org/gfwlist +server=/xxxbunker.com/127.0.0.1#5335 +ipset=/xxxbunker.com/gfwlist +server=/xnxxhd.biz/127.0.0.1#5335 +ipset=/xnxxhd.biz/gfwlist +server=/cheapbeatsbydreoutlets2013.com/127.0.0.1#5335 +ipset=/cheapbeatsbydreoutlets2013.com/gfwlist +server=/beatsheadphonesdealer.com/127.0.0.1#5335 +ipset=/beatsheadphonesdealer.com/gfwlist +server=/18tube.xxx/127.0.0.1#5335 +ipset=/18tube.xxx/gfwlist +server=/czechvideo.org/127.0.0.1#5335 +ipset=/czechvideo.org/gfwlist +server=/gfacecbook.com/127.0.0.1#5335 +ipset=/gfacecbook.com/gfwlist +server=/xhamster.com/127.0.0.1#5335 +ipset=/xhamster.com/gfwlist +server=/ipod.net/127.0.0.1#5335 +ipset=/ipod.net/gfwlist +server=/verizonmedia.com/127.0.0.1#5335 +ipset=/verizonmedia.com/gfwlist +server=/apple.jo/127.0.0.1#5335 +ipset=/apple.jo/gfwlist +server=/casquebeatspascher2013.com/127.0.0.1#5335 +ipset=/casquebeatspascher2013.com/gfwlist +server=/yourphysicalexam.com/127.0.0.1#5335 +ipset=/yourphysicalexam.com/gfwlist +server=/casquebeatsmer.net/127.0.0.1#5335 +ipset=/casquebeatsmer.net/gfwlist +server=/blpevents.com/127.0.0.1#5335 +ipset=/blpevents.com/gfwlist +server=/xbox.co/127.0.0.1#5335 +ipset=/xbox.co/gfwlist +server=/gentoo.org/127.0.0.1#5335 +ipset=/gentoo.org/gfwlist +server=/camonster.com/127.0.0.1#5335 +ipset=/camonster.com/gfwlist +server=/namethatpornad.com/127.0.0.1#5335 +ipset=/namethatpornad.com/gfwlist +server=/stxmosquitoproject.net/127.0.0.1#5335 +ipset=/stxmosquitoproject.net/gfwlist +server=/easylist.to/127.0.0.1#5335 +ipset=/easylist.to/gfwlist +server=/buyshoponly.com/127.0.0.1#5335 +ipset=/buyshoponly.com/gfwlist +server=/hentaiheadlines.com/127.0.0.1#5335 +ipset=/hentaiheadlines.com/gfwlist +server=/justfamilyporn.com/127.0.0.1#5335 +ipset=/justfamilyporn.com/gfwlist +server=/dailym.ai/127.0.0.1#5335 +ipset=/dailym.ai/gfwlist +server=/vodafone.it/127.0.0.1#5335 +ipset=/vodafone.it/gfwlist +server=/buybeatsheadphonesbydre.com/127.0.0.1#5335 +ipset=/buybeatsheadphonesbydre.com/gfwlist +server=/bmwusa.com/127.0.0.1#5335 +ipset=/bmwusa.com/gfwlist +server=/buybeatsbydre-uk.com/127.0.0.1#5335 +ipset=/buybeatsbydre-uk.com/gfwlist +server=/nintendo.co.jp/127.0.0.1#5335 +ipset=/nintendo.co.jp/gfwlist +server=/firestone.com.ar/127.0.0.1#5335 +ipset=/firestone.com.ar/gfwlist +server=/buy-from-shanghai.com/127.0.0.1#5335 +ipset=/buy-from-shanghai.com/gfwlist +server=/brands098.com/127.0.0.1#5335 +ipset=/brands098.com/gfwlist +server=/steam.cdn.on.net/127.0.0.1#5335 +ipset=/steam.cdn.on.net/gfwlist +server=/thegooglestore.com/127.0.0.1#5335 +ipset=/thegooglestore.com/gfwlist +server=/nokiantyres.com/127.0.0.1#5335 +ipset=/nokiantyres.com/gfwlist +server=/isfocus.net/127.0.0.1#5335 +ipset=/isfocus.net/gfwlist +server=/badgen.net/127.0.0.1#5335 +ipset=/badgen.net/gfwlist +server=/maturewomenanal.com/127.0.0.1#5335 +ipset=/maturewomenanal.com/gfwlist +server=/scatshop.com/127.0.0.1#5335 +ipset=/scatshop.com/gfwlist +server=/youtube.com.kw/127.0.0.1#5335 +ipset=/youtube.com.kw/gfwlist +server=/bookonsky.net/127.0.0.1#5335 +ipset=/bookonsky.net/gfwlist +server=/bloommicroventures.com/127.0.0.1#5335 +ipset=/bloommicroventures.com/gfwlist +server=/biitii.com/127.0.0.1#5335 +ipset=/biitii.com/gfwlist +server=/azatutyun.am/127.0.0.1#5335 +ipset=/azatutyun.am/gfwlist +server=/thecandidforum-voyeur.ru/127.0.0.1#5335 +ipset=/thecandidforum-voyeur.ru/gfwlist +server=/facebooks.com/127.0.0.1#5335 +ipset=/facebooks.com/gfwlist +server=/54647.io/127.0.0.1#5335 +ipset=/54647.io/gfwlist +server=/playparagon.com/127.0.0.1#5335 +ipset=/playparagon.com/gfwlist +server=/eebay.com/127.0.0.1#5335 +ipset=/eebay.com/gfwlist +server=/xn--ubt498knmf.com/127.0.0.1#5335 +ipset=/xn--ubt498knmf.com/gfwlist +server=/javfree.me/127.0.0.1#5335 +ipset=/javfree.me/gfwlist +server=/beatssingapores.com/127.0.0.1#5335 +ipset=/beatssingapores.com/gfwlist +server=/pythonhosted.org/127.0.0.1#5335 +ipset=/pythonhosted.org/gfwlist +server=/eurekaselect.com/127.0.0.1#5335 +ipset=/eurekaselect.com/gfwlist +server=/ocsp-certum.com/127.0.0.1#5335 +ipset=/ocsp-certum.com/gfwlist +server=/porncoil.com/127.0.0.1#5335 +ipset=/porncoil.com/gfwlist +server=/xbox360.org/127.0.0.1#5335 +ipset=/xbox360.org/gfwlist +server=/advertiserscommunity.com/127.0.0.1#5335 +ipset=/advertiserscommunity.com/gfwlist +server=/beatspromonsterjp.com/127.0.0.1#5335 +ipset=/beatspromonsterjp.com/gfwlist +server=/bmwfilms.com/127.0.0.1#5335 +ipset=/bmwfilms.com/gfwlist +server=/xero.porn/127.0.0.1#5335 +ipset=/xero.porn/gfwlist +server=/appledaily.com/127.0.0.1#5335 +ipset=/appledaily.com/gfwlist +server=/uselessjunk.com/127.0.0.1#5335 +ipset=/uselessjunk.com/gfwlist +server=/bcsecure01-a.akamaihd.net/127.0.0.1#5335 +ipset=/bcsecure01-a.akamaihd.net/gfwlist +server=/soasta-dswb.com/127.0.0.1#5335 +ipset=/soasta-dswb.com/gfwlist +server=/jav9999.com/127.0.0.1#5335 +ipset=/jav9999.com/gfwlist +server=/beatsofdre-usa.com/127.0.0.1#5335 +ipset=/beatsofdre-usa.com/gfwlist +server=/adulto.vip/127.0.0.1#5335 +ipset=/adulto.vip/gfwlist +server=/aznude.com/127.0.0.1#5335 +ipset=/aznude.com/gfwlist +server=/my3dhentai.com/127.0.0.1#5335 +ipset=/my3dhentai.com/gfwlist +server=/volvotrucks.ps/127.0.0.1#5335 +ipset=/volvotrucks.ps/gfwlist +server=/miiverse.com/127.0.0.1#5335 +ipset=/miiverse.com/gfwlist +server=/huobi.sc/127.0.0.1#5335 +ipset=/huobi.sc/gfwlist +server=/dokusho-ojikan.jp/127.0.0.1#5335 +ipset=/dokusho-ojikan.jp/gfwlist +server=/pinkteentube.net/127.0.0.1#5335 +ipset=/pinkteentube.net/gfwlist +server=/airgonetworks.com/127.0.0.1#5335 +ipset=/airgonetworks.com/gfwlist +server=/bestshoesale2014.net/127.0.0.1#5335 +ipset=/bestshoesale2014.net/gfwlist +server=/beatsheadphonestudio.com/127.0.0.1#5335 +ipset=/beatsheadphonestudio.com/gfwlist +server=/bmw-motorrad.in/127.0.0.1#5335 +ipset=/bmw-motorrad.in/gfwlist +server=/bestfreesexgames.com/127.0.0.1#5335 +ipset=/bestfreesexgames.com/gfwlist +server=/freesexyindians.com/127.0.0.1#5335 +ipset=/freesexyindians.com/gfwlist +server=/yahoo.so/127.0.0.1#5335 +ipset=/yahoo.so/gfwlist +server=/oninstagram.com/127.0.0.1#5335 +ipset=/oninstagram.com/gfwlist +server=/cambb.xxx/127.0.0.1#5335 +ipset=/cambb.xxx/gfwlist +server=/bmw-motorrad.es/127.0.0.1#5335 +ipset=/bmw-motorrad.es/gfwlist +server=/beatsheadphones2u.com/127.0.0.1#5335 +ipset=/beatsheadphones2u.com/gfwlist +server=/beatsheadphones1.com/127.0.0.1#5335 +ipset=/beatsheadphones1.com/gfwlist +server=/jupyter.org/127.0.0.1#5335 +ipset=/jupyter.org/gfwlist +server=/yahoo.fi/127.0.0.1#5335 +ipset=/yahoo.fi/gfwlist +server=/joox.com/127.0.0.1#5335 +ipset=/joox.com/gfwlist +server=/test-ipv6.com/127.0.0.1#5335 +ipset=/test-ipv6.com/gfwlist +server=/dajiyuan.com/127.0.0.1#5335 +ipset=/dajiyuan.com/gfwlist +server=/cygwin.com/127.0.0.1#5335 +ipset=/cygwin.com/gfwlist +server=/whynotbi.com/127.0.0.1#5335 +ipset=/whynotbi.com/gfwlist +server=/hulu.jp/127.0.0.1#5335 +ipset=/hulu.jp/gfwlist +server=/vrv.co/127.0.0.1#5335 +ipset=/vrv.co/gfwlist +server=/girlscv.com/127.0.0.1#5335 +ipset=/girlscv.com/gfwlist +server=/beatsfacstore.com/127.0.0.1#5335 +ipset=/beatsfacstore.com/gfwlist +server=/beatsearbudsheadphoness.com/127.0.0.1#5335 +ipset=/beatsearbudsheadphoness.com/gfwlist +server=/nyt.com/127.0.0.1#5335 +ipset=/nyt.com/gfwlist +server=/doujincg.blog.jp/127.0.0.1#5335 +ipset=/doujincg.blog.jp/gfwlist +server=/fontsinuse.com/127.0.0.1#5335 +ipset=/fontsinuse.com/gfwlist +server=/pplah.com/127.0.0.1#5335 +ipset=/pplah.com/gfwlist +server=/googleusercontent.com/127.0.0.1#5335 +ipset=/googleusercontent.com/gfwlist +server=/cepacol.ca/127.0.0.1#5335 +ipset=/cepacol.ca/gfwlist +server=/beatsdresalestore.com/127.0.0.1#5335 +ipset=/beatsdresalestore.com/gfwlist +server=/beatsdremonster-uk.com/127.0.0.1#5335 +ipset=/beatsdremonster-uk.com/gfwlist +server=/beatsdredreheadphones.com/127.0.0.1#5335 +ipset=/beatsdredreheadphones.com/gfwlist +server=/cnpmjs.org/127.0.0.1#5335 +ipset=/cnpmjs.org/gfwlist +server=/ipfs.runfission.com/127.0.0.1#5335 +ipset=/ipfs.runfission.com/gfwlist +server=/visa.co.th/127.0.0.1#5335 +ipset=/visa.co.th/gfwlist +server=/beatsdrecheap.com/127.0.0.1#5335 +ipset=/beatsdrecheap.com/gfwlist +server=/82mvmv.com/127.0.0.1#5335 +ipset=/82mvmv.com/gfwlist +server=/wwwhuluplus.com/127.0.0.1#5335 +ipset=/wwwhuluplus.com/gfwlist +server=/beatsdrdreneon.com/127.0.0.1#5335 +ipset=/beatsdrdreneon.com/gfwlist +server=/18yiren.tv/127.0.0.1#5335 +ipset=/18yiren.tv/gfwlist +server=/amazonfctours.com/127.0.0.1#5335 +ipset=/amazonfctours.com/gfwlist +server=/ss2.us/127.0.0.1#5335 +ipset=/ss2.us/gfwlist +server=/hentairead.vip/127.0.0.1#5335 +ipset=/hentairead.vip/gfwlist +server=/eater.com/127.0.0.1#5335 +ipset=/eater.com/gfwlist +server=/bmw.com.bo/127.0.0.1#5335 +ipset=/bmw.com.bo/gfwlist +server=/bridgestonecntc.com/127.0.0.1#5335 +ipset=/bridgestonecntc.com/gfwlist +server=/beatsdrdre-it.com/127.0.0.1#5335 +ipset=/beatsdrdre-it.com/gfwlist +server=/freehqtube.com/127.0.0.1#5335 +ipset=/freehqtube.com/gfwlist +server=/microsoftedge.com/127.0.0.1#5335 +ipset=/microsoftedge.com/gfwlist +server=/mini-kuwait.com/127.0.0.1#5335 +ipset=/mini-kuwait.com/gfwlist +server=/epochtimes.cz/127.0.0.1#5335 +ipset=/epochtimes.cz/gfwlist +server=/calvappd.me/127.0.0.1#5335 +ipset=/calvappd.me/gfwlist +server=/fundpaypal.com/127.0.0.1#5335 +ipset=/fundpaypal.com/gfwlist +server=/openstreetmap.org/127.0.0.1#5335 +ipset=/openstreetmap.org/gfwlist +server=/smokinmovies.com/127.0.0.1#5335 +ipset=/smokinmovies.com/gfwlist +server=/feceboock.com/127.0.0.1#5335 +ipset=/feceboock.com/gfwlist +server=/futhead.com/127.0.0.1#5335 +ipset=/futhead.com/gfwlist +server=/pornwatchers.com/127.0.0.1#5335 +ipset=/pornwatchers.com/gfwlist +server=/jav168.cc/127.0.0.1#5335 +ipset=/jav168.cc/gfwlist +server=/scholar.google.be/127.0.0.1#5335 +ipset=/scholar.google.be/gfwlist +server=/directvlebanontn.com/127.0.0.1#5335 +ipset=/directvlebanontn.com/gfwlist +server=/battlefield3.com/127.0.0.1#5335 +ipset=/battlefield3.com/gfwlist +server=/beatsbydrew.com/127.0.0.1#5335 +ipset=/beatsbydrew.com/gfwlist +server=/earlyob.com/127.0.0.1#5335 +ipset=/earlyob.com/gfwlist +server=/beatsbydrevipde.com/127.0.0.1#5335 +ipset=/beatsbydrevipde.com/gfwlist +server=/69xporn.com/127.0.0.1#5335 +ipset=/69xporn.com/gfwlist +server=/bstatic.com/127.0.0.1#5335 +ipset=/bstatic.com/gfwlist +server=/taboola.com/127.0.0.1#5335 +ipset=/taboola.com/gfwlist +server=/google.lk/127.0.0.1#5335 +ipset=/google.lk/gfwlist +server=/beatsbydresingaporesale.com/127.0.0.1#5335 +ipset=/beatsbydresingaporesale.com/gfwlist +server=/littlesexdolls.com/127.0.0.1#5335 +ipset=/littlesexdolls.com/gfwlist +server=/hponlineprinting.com/127.0.0.1#5335 +ipset=/hponlineprinting.com/gfwlist +server=/pokemonplatinum.com/127.0.0.1#5335 +ipset=/pokemonplatinum.com/gfwlist +server=/steamuserimages-a.akamaihd.net/127.0.0.1#5335 +ipset=/steamuserimages-a.akamaihd.net/gfwlist +server=/bmw-bahrain.com/127.0.0.1#5335 +ipset=/bmw-bahrain.com/gfwlist +server=/beatsbydreshop-uk.com/127.0.0.1#5335 +ipset=/beatsbydreshop-uk.com/gfwlist +server=/nikeby.com/127.0.0.1#5335 +ipset=/nikeby.com/gfwlist +server=/linkedin.sc.omtrdc.net/127.0.0.1#5335 +ipset=/linkedin.sc.omtrdc.net/gfwlist +server=/myfoxhurricane.com/127.0.0.1#5335 +ipset=/myfoxhurricane.com/gfwlist +server=/facebooklivestaging.net/127.0.0.1#5335 +ipset=/facebooklivestaging.net/gfwlist +server=/beatsbydrerealstore.com/127.0.0.1#5335 +ipset=/beatsbydrerealstore.com/gfwlist +server=/xxxbit.com/127.0.0.1#5335 +ipset=/xxxbit.com/gfwlist +server=/privilege.hk/127.0.0.1#5335 +ipset=/privilege.hk/gfwlist +server=/mastercard.it/127.0.0.1#5335 +ipset=/mastercard.it/gfwlist +server=/beatsbydreonlinesale-nz.com/127.0.0.1#5335 +ipset=/beatsbydreonlinesale-nz.com/gfwlist +server=/mozilla.community/127.0.0.1#5335 +ipset=/mozilla.community/gfwlist +server=/kismia.com/127.0.0.1#5335 +ipset=/kismia.com/gfwlist +server=/pxt.io/127.0.0.1#5335 +ipset=/pxt.io/gfwlist +server=/testonfox.com/127.0.0.1#5335 +ipset=/testonfox.com/gfwlist +server=/pussyboy.net/127.0.0.1#5335 +ipset=/pussyboy.net/gfwlist +server=/enfasmart.com/127.0.0.1#5335 +ipset=/enfasmart.com/gfwlist +server=/taste.com.au/127.0.0.1#5335 +ipset=/taste.com.au/gfwlist +server=/porndiscounts.com/127.0.0.1#5335 +ipset=/porndiscounts.com/gfwlist +server=/beatsbydrenorge1.net/127.0.0.1#5335 +ipset=/beatsbydrenorge1.net/gfwlist +server=/beatsbydrenls.com/127.0.0.1#5335 +ipset=/beatsbydrenls.com/gfwlist +server=/nikezoom.com/127.0.0.1#5335 +ipset=/nikezoom.com/gfwlist +server=/lilhumpers.com/127.0.0.1#5335 +ipset=/lilhumpers.com/gfwlist +server=/crypton.co.jp/127.0.0.1#5335 +ipset=/crypton.co.jp/gfwlist +server=/blzddistkr1-a.akamaihd.net/127.0.0.1#5335 +ipset=/blzddistkr1-a.akamaihd.net/gfwlist +server=/beatsbydreirelandsonline.com/127.0.0.1#5335 +ipset=/beatsbydreirelandsonline.com/gfwlist +server=/ign.jp/127.0.0.1#5335 +ipset=/ign.jp/gfwlist +server=/beatsbydreirelandsale.com/127.0.0.1#5335 +ipset=/beatsbydreirelandsale.com/gfwlist +server=/emcs.org/127.0.0.1#5335 +ipset=/emcs.org/gfwlist +server=/paypal-learning.com/127.0.0.1#5335 +ipset=/paypal-learning.com/gfwlist +server=/beatsbydrehut.com/127.0.0.1#5335 +ipset=/beatsbydrehut.com/gfwlist +server=/daylenerio.com/127.0.0.1#5335 +ipset=/daylenerio.com/gfwlist +server=/stackmod.blog/127.0.0.1#5335 +ipset=/stackmod.blog/gfwlist +server=/sextime.tv/127.0.0.1#5335 +ipset=/sextime.tv/gfwlist +server=/yeyuehuachao12.com/127.0.0.1#5335 +ipset=/yeyuehuachao12.com/gfwlist +server=/libsolutions.app/127.0.0.1#5335 +ipset=/libsolutions.app/gfwlist +server=/beatsbydredr.com/127.0.0.1#5335 +ipset=/beatsbydredr.com/gfwlist +server=/f95zone.to/127.0.0.1#5335 +ipset=/f95zone.to/gfwlist +server=/imagetwist.com/127.0.0.1#5335 +ipset=/imagetwist.com/gfwlist +server=/youtube.com.mt/127.0.0.1#5335 +ipset=/youtube.com.mt/gfwlist +server=/beatsjoy.com/127.0.0.1#5335 +ipset=/beatsjoy.com/gfwlist +server=/dropboxapi.com/127.0.0.1#5335 +ipset=/dropboxapi.com/gfwlist +server=/blogspot.ba/127.0.0.1#5335 +ipset=/blogspot.ba/gfwlist +server=/beatsbydredealsblackfriday.com/127.0.0.1#5335 +ipset=/beatsbydredealsblackfriday.com/gfwlist +server=/playporngame.com/127.0.0.1#5335 +ipset=/playporngame.com/gfwlist +server=/oxfordbibliographies.com/127.0.0.1#5335 +ipset=/oxfordbibliographies.com/gfwlist +server=/akamak.com/127.0.0.1#5335 +ipset=/akamak.com/gfwlist +server=/buhidoh.net/127.0.0.1#5335 +ipset=/buhidoh.net/gfwlist +server=/spotify.map.fastly.net/127.0.0.1#5335 +ipset=/spotify.map.fastly.net/gfwlist +server=/braintreegateway.tv/127.0.0.1#5335 +ipset=/braintreegateway.tv/gfwlist +server=/fadebook.com/127.0.0.1#5335 +ipset=/fadebook.com/gfwlist +server=/bmw-routes.com/127.0.0.1#5335 +ipset=/bmw-routes.com/gfwlist +server=/beatsbydreblackfriday2013.com/127.0.0.1#5335 +ipset=/beatsbydreblackfriday2013.com/gfwlist +server=/hnntube.com/127.0.0.1#5335 +ipset=/hnntube.com/gfwlist +server=/boypost.com/127.0.0.1#5335 +ipset=/boypost.com/gfwlist +server=/beatsbydre4usales.com/127.0.0.1#5335 +ipset=/beatsbydre4usales.com/gfwlist +server=/beatsbydre411.com/127.0.0.1#5335 +ipset=/beatsbydre411.com/gfwlist +server=/rsc.org/127.0.0.1#5335 +ipset=/rsc.org/gfwlist +server=/mrchewsasianbeaver.com/127.0.0.1#5335 +ipset=/mrchewsasianbeaver.com/gfwlist +server=/verisign.org/127.0.0.1#5335 +ipset=/verisign.org/gfwlist +server=/huluplus.com/127.0.0.1#5335 +ipset=/huluplus.com/gfwlist +server=/beatsbydre-mall.com/127.0.0.1#5335 +ipset=/beatsbydre-mall.com/gfwlist +server=/nextplus.com.hk/127.0.0.1#5335 +ipset=/nextplus.com.hk/gfwlist +server=/joinclubhouse.com/127.0.0.1#5335 +ipset=/joinclubhouse.com/gfwlist +server=/88square.com/127.0.0.1#5335 +ipset=/88square.com/gfwlist +server=/69gayporno.com/127.0.0.1#5335 +ipset=/69gayporno.com/gfwlist +server=/beatsbydre-beatsheadphone.com/127.0.0.1#5335 +ipset=/beatsbydre-beatsheadphone.com/gfwlist +server=/avh.world/127.0.0.1#5335 +ipset=/avh.world/gfwlist +server=/bdn.dev/127.0.0.1#5335 +ipset=/bdn.dev/gfwlist +server=/alphaporno.com/127.0.0.1#5335 +ipset=/alphaporno.com/gfwlist +server=/mastercard.nl/127.0.0.1#5335 +ipset=/mastercard.nl/gfwlist +server=/miniitalianjob.com/127.0.0.1#5335 +ipset=/miniitalianjob.com/gfwlist +server=/cuckoldfuck.com/127.0.0.1#5335 +ipset=/cuckoldfuck.com/gfwlist +server=/volvobuses.com.kw/127.0.0.1#5335 +ipset=/volvobuses.com.kw/gfwlist +server=/favjapaneseporn.com/127.0.0.1#5335 +ipset=/favjapaneseporn.com/gfwlist +server=/cbsivideo.com/127.0.0.1#5335 +ipset=/cbsivideo.com/gfwlist +server=/businessweek.com/127.0.0.1#5335 +ipset=/businessweek.com/gfwlist +server=/beatsbydrdre-store.com/127.0.0.1#5335 +ipset=/beatsbydrdre-store.com/gfwlist +server=/forgecdn.net/127.0.0.1#5335 +ipset=/forgecdn.net/gfwlist +server=/beatsbydrdre-online.com/127.0.0.1#5335 +ipset=/beatsbydrdre-online.com/gfwlist +server=/graph.org/127.0.0.1#5335 +ipset=/graph.org/gfwlist +server=/ikea.ua/127.0.0.1#5335 +ipset=/ikea.ua/gfwlist +server=/pokemonmysterydungeon.com/127.0.0.1#5335 +ipset=/pokemonmysterydungeon.com/gfwlist +server=/volvobuses.co.uk/127.0.0.1#5335 +ipset=/volvobuses.co.uk/gfwlist +server=/aga-expo.com/127.0.0.1#5335 +ipset=/aga-expo.com/gfwlist +server=/beatsaudiobydre.com/127.0.0.1#5335 +ipset=/beatsaudiobydre.com/gfwlist +server=/jfrog.org/127.0.0.1#5335 +ipset=/jfrog.org/gfwlist +server=/beatsaudifonos.com/127.0.0.1#5335 +ipset=/beatsaudifonos.com/gfwlist +server=/sexysexdoll.com/127.0.0.1#5335 +ipset=/sexysexdoll.com/gfwlist +server=/fetishfishcams.com/127.0.0.1#5335 +ipset=/fetishfishcams.com/gfwlist +server=/marioandluigidreamteam.com/127.0.0.1#5335 +ipset=/marioandluigidreamteam.com/gfwlist +server=/xn--hxtr4rozx.xn--czr694b/127.0.0.1#5335 +ipset=/xn--hxtr4rozx.xn--czr694b/gfwlist +server=/beats4.net/127.0.0.1#5335 +ipset=/beats4.net/gfwlist +server=/igsonar.com/127.0.0.1#5335 +ipset=/igsonar.com/gfwlist +server=/beats123.com/127.0.0.1#5335 +ipset=/beats123.com/gfwlist +server=/javfilms.com/127.0.0.1#5335 +ipset=/javfilms.com/gfwlist +server=/beats1.cc/127.0.0.1#5335 +ipset=/beats1.cc/gfwlist +server=/nineentertainmentco.com.au/127.0.0.1#5335 +ipset=/nineentertainmentco.com.au/gfwlist +server=/visa.mq/127.0.0.1#5335 +ipset=/visa.mq/gfwlist +server=/bmwmperformance.com/127.0.0.1#5335 +ipset=/bmwmperformance.com/gfwlist +server=/lordofultima.com/127.0.0.1#5335 +ipset=/lordofultima.com/gfwlist +server=/cloudflare.tv/127.0.0.1#5335 +ipset=/cloudflare.tv/gfwlist +server=/mini.bg/127.0.0.1#5335 +ipset=/mini.bg/gfwlist +server=/hugedildo.com/127.0.0.1#5335 +ipset=/hugedildo.com/gfwlist +server=/connectionsacademy.com/127.0.0.1#5335 +ipset=/connectionsacademy.com/gfwlist +server=/citasecuador.com/127.0.0.1#5335 +ipset=/citasecuador.com/gfwlist +server=/cartoonpornvideos.com/127.0.0.1#5335 +ipset=/cartoonpornvideos.com/gfwlist +server=/mini-abudhabi.com/127.0.0.1#5335 +ipset=/mini-abudhabi.com/gfwlist +server=/beats-bydreoutletssale.net/127.0.0.1#5335 +ipset=/beats-bydreoutletssale.net/gfwlist +server=/hibdontire.com/127.0.0.1#5335 +ipset=/hibdontire.com/gfwlist +server=/beats-bydreoutletsale.com/127.0.0.1#5335 +ipset=/beats-bydreoutletsale.com/gfwlist +server=/minimontroyal.com/127.0.0.1#5335 +ipset=/minimontroyal.com/gfwlist +server=/8111y.top/127.0.0.1#5335 +ipset=/8111y.top/gfwlist +server=/nikeshoxsale.com/127.0.0.1#5335 +ipset=/nikeshoxsale.com/gfwlist +server=/beats-bydrdre.net/127.0.0.1#5335 +ipset=/beats-bydrdre.net/gfwlist +server=/beats-by-dre-australia.com/127.0.0.1#5335 +ipset=/beats-by-dre-australia.com/gfwlist +server=/volvotrucks.dk/127.0.0.1#5335 +ipset=/volvotrucks.dk/gfwlist +server=/9zipai.net/127.0.0.1#5335 +ipset=/9zipai.net/gfwlist +server=/volvotrucks.fi/127.0.0.1#5335 +ipset=/volvotrucks.fi/gfwlist +server=/mini.ro/127.0.0.1#5335 +ipset=/mini.ro/gfwlist +server=/porn7.xxx/127.0.0.1#5335 +ipset=/porn7.xxx/gfwlist +server=/beatmonstersaustralia.net/127.0.0.1#5335 +ipset=/beatmonstersaustralia.net/gfwlist +server=/lxxlxx.com/127.0.0.1#5335 +ipset=/lxxlxx.com/gfwlist +server=/beatbydremonster.com/127.0.0.1#5335 +ipset=/beatbydremonster.com/gfwlist +server=/beatbydre2013.com/127.0.0.1#5335 +ipset=/beatbydre2013.com/gfwlist +server=/getws1.com/127.0.0.1#5335 +ipset=/getws1.com/gfwlist +server=/baxsound.com/127.0.0.1#5335 +ipset=/baxsound.com/gfwlist +server=/auricularesbeatsmarkt.com/127.0.0.1#5335 +ipset=/auricularesbeatsmarkt.com/gfwlist +server=/nudegfporn.com/127.0.0.1#5335 +ipset=/nudegfporn.com/gfwlist +server=/epochbuy.com/127.0.0.1#5335 +ipset=/epochbuy.com/gfwlist +server=/faceboock.com/127.0.0.1#5335 +ipset=/faceboock.com/gfwlist +server=/anandtech.com/127.0.0.1#5335 +ipset=/anandtech.com/gfwlist +server=/audiobeatsbydre.com/127.0.0.1#5335 +ipset=/audiobeatsbydre.com/gfwlist +server=/app-store.wang/127.0.0.1#5335 +ipset=/app-store.wang/gfwlist +server=/historyofdota.net/127.0.0.1#5335 +ipset=/historyofdota.net/gfwlist +server=/foxrelease.com/127.0.0.1#5335 +ipset=/foxrelease.com/gfwlist +server=/stepdaughter.love/127.0.0.1#5335 +ipset=/stepdaughter.love/gfwlist +server=/alphera-finance.co.in/127.0.0.1#5335 +ipset=/alphera-finance.co.in/gfwlist +server=/farfetch-contents.com/127.0.0.1#5335 +ipset=/farfetch-contents.com/gfwlist +server=/gay1069sex.com/127.0.0.1#5335 +ipset=/gay1069sex.com/gfwlist +server=/aws-iot-hackathon.com/127.0.0.1#5335 +ipset=/aws-iot-hackathon.com/gfwlist +server=/volvo-truck.nl/127.0.0.1#5335 +ipset=/volvo-truck.nl/gfwlist +server=/aanaan.com/127.0.0.1#5335 +ipset=/aanaan.com/gfwlist +server=/pearsonassessment.no/127.0.0.1#5335 +ipset=/pearsonassessment.no/gfwlist +server=/adobelogin.com/127.0.0.1#5335 +ipset=/adobelogin.com/gfwlist +server=/bridgestone-brand.com/127.0.0.1#5335 +ipset=/bridgestone-brand.com/gfwlist +server=/bmw-motorrad.com.do/127.0.0.1#5335 +ipset=/bmw-motorrad.com.do/gfwlist +server=/2drdrebeats.com/127.0.0.1#5335 +ipset=/2drdrebeats.com/gfwlist +server=/ultrayoungsex.com/127.0.0.1#5335 +ipset=/ultrayoungsex.com/gfwlist +server=/allpasswords.com/127.0.0.1#5335 +ipset=/allpasswords.com/gfwlist +server=/xn--4vq477m.com/127.0.0.1#5335 +ipset=/xn--4vq477m.com/gfwlist +server=/metcams.com/127.0.0.1#5335 +ipset=/metcams.com/gfwlist +server=/caribbeancom.com/127.0.0.1#5335 +ipset=/caribbeancom.com/gfwlist +server=/voaswahili.com/127.0.0.1#5335 +ipset=/voaswahili.com/gfwlist +server=/fanqianglu.com/127.0.0.1#5335 +ipset=/fanqianglu.com/gfwlist +server=/pearsonplaces.com.au/127.0.0.1#5335 +ipset=/pearsonplaces.com.au/gfwlist +server=/starwarsfallenorder.com/127.0.0.1#5335 +ipset=/starwarsfallenorder.com/gfwlist +server=/womenwill.mx/127.0.0.1#5335 +ipset=/womenwill.mx/gfwlist +server=/bizographics.com/127.0.0.1#5335 +ipset=/bizographics.com/gfwlist +server=/certum.pl/127.0.0.1#5335 +ipset=/certum.pl/gfwlist +server=/disneyplus.com/127.0.0.1#5335 +ipset=/disneyplus.com/gfwlist +server=/bluffyporn.com/127.0.0.1#5335 +ipset=/bluffyporn.com/gfwlist +server=/terrlficdates.com/127.0.0.1#5335 +ipset=/terrlficdates.com/gfwlist +server=/gameon-masters.com/127.0.0.1#5335 +ipset=/gameon-masters.com/gfwlist +server=/associates-amazon.com/127.0.0.1#5335 +ipset=/associates-amazon.com/gfwlist +server=/3xplanet.com/127.0.0.1#5335 +ipset=/3xplanet.com/gfwlist +server=/amzn.com/127.0.0.1#5335 +ipset=/amzn.com/gfwlist +server=/sex021.net/127.0.0.1#5335 +ipset=/sex021.net/gfwlist +server=/ulrichsweb.serialssolutions.com/127.0.0.1#5335 +ipset=/ulrichsweb.serialssolutions.com/gfwlist +server=/espn.api.edge.bamgrid.com/127.0.0.1#5335 +ipset=/espn.api.edge.bamgrid.com/gfwlist +server=/halfcanada.com/127.0.0.1#5335 +ipset=/halfcanada.com/gfwlist +server=/ebayboutique.com/127.0.0.1#5335 +ipset=/ebayboutique.com/gfwlist +server=/amazonpay.com/127.0.0.1#5335 +ipset=/amazonpay.com/gfwlist +server=/battlefield4.com/127.0.0.1#5335 +ipset=/battlefield4.com/gfwlist +server=/opencreate.org/127.0.0.1#5335 +ipset=/opencreate.org/gfwlist +server=/hentaivvz.com/127.0.0.1#5335 +ipset=/hentaivvz.com/gfwlist +server=/paypal-community.net/127.0.0.1#5335 +ipset=/paypal-community.net/gfwlist +server=/gvt5.com/127.0.0.1#5335 +ipset=/gvt5.com/gfwlist +server=/amazonimages.com/127.0.0.1#5335 +ipset=/amazonimages.com/gfwlist +server=/ipfs-gateway.cloud/127.0.0.1#5335 +ipset=/ipfs-gateway.cloud/gfwlist +server=/iwork.com/127.0.0.1#5335 +ipset=/iwork.com/gfwlist +server=/amazonbusiness.org/127.0.0.1#5335 +ipset=/amazonbusiness.org/gfwlist +server=/hentai-img.com/127.0.0.1#5335 +ipset=/hentai-img.com/gfwlist +server=/gendai.net/127.0.0.1#5335 +ipset=/gendai.net/gfwlist +server=/eubluecardvisa.com/127.0.0.1#5335 +ipset=/eubluecardvisa.com/gfwlist +server=/pornproxy.app/127.0.0.1#5335 +ipset=/pornproxy.app/gfwlist +server=/researchgate.net/127.0.0.1#5335 +ipset=/researchgate.net/gfwlist +server=/bestbuyethics.com/127.0.0.1#5335 +ipset=/bestbuyethics.com/gfwlist +server=/amazon.com.au/127.0.0.1#5335 +ipset=/amazon.com.au/gfwlist +server=/imageworks.com/127.0.0.1#5335 +ipset=/imageworks.com/gfwlist +server=/youtube.co.il/127.0.0.1#5335 +ipset=/youtube.co.il/gfwlist +server=/sony.sk/127.0.0.1#5335 +ipset=/sony.sk/gfwlist +server=/aboutamazon.in/127.0.0.1#5335 +ipset=/aboutamazon.in/gfwlist +server=/aboutamazon.de/127.0.0.1#5335 +ipset=/aboutamazon.de/gfwlist +server=/rthk.hk/127.0.0.1#5335 +ipset=/rthk.hk/gfwlist +server=/aboutamazon.com.au/127.0.0.1#5335 +ipset=/aboutamazon.com.au/gfwlist +server=/bloombergenvironment.com/127.0.0.1#5335 +ipset=/bloombergenvironment.com/gfwlist +server=/wfm.com/127.0.0.1#5335 +ipset=/wfm.com/gfwlist +server=/heydoga.com/127.0.0.1#5335 +ipset=/heydoga.com/gfwlist +server=/pearson.com.uy/127.0.0.1#5335 +ipset=/pearson.com.uy/gfwlist +server=/demfhz.xyz/127.0.0.1#5335 +ipset=/demfhz.xyz/gfwlist +server=/bridgestonecomercial.cl/127.0.0.1#5335 +ipset=/bridgestonecomercial.cl/gfwlist +server=/libsolutions.domains/127.0.0.1#5335 +ipset=/libsolutions.domains/gfwlist +server=/zohomeetups.com/127.0.0.1#5335 +ipset=/zohomeetups.com/gfwlist +server=/mastercard.com.vn/127.0.0.1#5335 +ipset=/mastercard.com.vn/gfwlist +server=/kindle.co.uk/127.0.0.1#5335 +ipset=/kindle.co.uk/gfwlist +server=/containersonaws.com/127.0.0.1#5335 +ipset=/containersonaws.com/gfwlist +server=/cloudfront.net/127.0.0.1#5335 +ipset=/cloudfront.net/gfwlist +server=/gaypornlinks.com/127.0.0.1#5335 +ipset=/gaypornlinks.com/gfwlist +server=/monsterbeatspascher.net/127.0.0.1#5335 +ipset=/monsterbeatspascher.net/gfwlist +server=/hulu.playback.edge.bamgrid.com/127.0.0.1#5335 +ipset=/hulu.playback.edge.bamgrid.com/gfwlist +server=/bcbits.com/127.0.0.1#5335 +ipset=/bcbits.com/gfwlist +server=/appl.com/127.0.0.1#5335 +ipset=/appl.com/gfwlist +server=/awseducate.com/127.0.0.1#5335 +ipset=/awseducate.com/gfwlist +server=/durex.jp/127.0.0.1#5335 +ipset=/durex.jp/gfwlist +server=/kinkbook.com/127.0.0.1#5335 +ipset=/kinkbook.com/gfwlist +server=/origin-a.akamaihd.net/127.0.0.1#5335 +ipset=/origin-a.akamaihd.net/gfwlist +server=/alfera.in/127.0.0.1#5335 +ipset=/alfera.in/gfwlist +server=/mhradio.org/127.0.0.1#5335 +ipset=/mhradio.org/gfwlist +server=/gmail.com/127.0.0.1#5335 +ipset=/gmail.com/gfwlist +server=/minidowntown.ca/127.0.0.1#5335 +ipset=/minidowntown.ca/gfwlist +server=/ikea.de/127.0.0.1#5335 +ipset=/ikea.de/gfwlist +server=/uun92.com/127.0.0.1#5335 +ipset=/uun92.com/gfwlist +server=/visa.com.ua/127.0.0.1#5335 +ipset=/visa.com.ua/gfwlist +server=/ebayclassifieds.org/127.0.0.1#5335 +ipset=/ebayclassifieds.org/gfwlist +server=/product.co.jp/127.0.0.1#5335 +ipset=/product.co.jp/gfwlist +server=/amazonses.com/127.0.0.1#5335 +ipset=/amazonses.com/gfwlist +server=/cheapbeatsdrestudios.com/127.0.0.1#5335 +ipset=/cheapbeatsdrestudios.com/gfwlist +server=/amazonaws.tv/127.0.0.1#5335 +ipset=/amazonaws.tv/gfwlist +server=/6japaneseporn.com/127.0.0.1#5335 +ipset=/6japaneseporn.com/gfwlist +server=/amazonaws-china.com/127.0.0.1#5335 +ipset=/amazonaws-china.com/gfwlist +server=/digital-rb.com/127.0.0.1#5335 +ipset=/digital-rb.com/gfwlist +server=/hopstop.tv/127.0.0.1#5335 +ipset=/hopstop.tv/gfwlist +server=/ymail.com/127.0.0.1#5335 +ipset=/ymail.com/gfwlist +server=/69flv.com/127.0.0.1#5335 +ipset=/69flv.com/gfwlist +server=/bootstrapcdn.com/127.0.0.1#5335 +ipset=/bootstrapcdn.com/gfwlist +server=/mastercard.ro/127.0.0.1#5335 +ipset=/mastercard.ro/gfwlist +server=/alibabacloud.com.sg/127.0.0.1#5335 +ipset=/alibabacloud.com.sg/gfwlist +server=/nintendoswitch.com/127.0.0.1#5335 +ipset=/nintendoswitch.com/gfwlist +server=/b-ok.asia/127.0.0.1#5335 +ipset=/b-ok.asia/gfwlist +server=/medrxiv.org/127.0.0.1#5335 +ipset=/medrxiv.org/gfwlist +server=/fetlife.com/127.0.0.1#5335 +ipset=/fetlife.com/gfwlist +server=/fzdshare.net/127.0.0.1#5335 +ipset=/fzdshare.net/gfwlist +server=/omscr.com/127.0.0.1#5335 +ipset=/omscr.com/gfwlist +server=/pearsonclinical.com.au/127.0.0.1#5335 +ipset=/pearsonclinical.com.au/gfwlist +server=/alibabacloud.co.in/127.0.0.1#5335 +ipset=/alibabacloud.co.in/gfwlist +server=/hptechventures.com/127.0.0.1#5335 +ipset=/hptechventures.com/gfwlist +server=/sonyclassics.com/127.0.0.1#5335 +ipset=/sonyclassics.com/gfwlist +server=/rexcha.com/127.0.0.1#5335 +ipset=/rexcha.com/gfwlist +server=/redditstatic.com/127.0.0.1#5335 +ipset=/redditstatic.com/gfwlist +server=/amateurwifevideos.com/127.0.0.1#5335 +ipset=/amateurwifevideos.com/gfwlist +server=/nikefootballgloves.com/127.0.0.1#5335 +ipset=/nikefootballgloves.com/gfwlist +server=/rimg.com.tw/127.0.0.1#5335 +ipset=/rimg.com.tw/gfwlist +server=/orbitera.com/127.0.0.1#5335 +ipset=/orbitera.com/gfwlist +server=/sex-ly.com/127.0.0.1#5335 +ipset=/sex-ly.com/gfwlist +server=/youtube.com.ar/127.0.0.1#5335 +ipset=/youtube.com.ar/gfwlist +server=/juggsjoy.com/127.0.0.1#5335 +ipset=/juggsjoy.com/gfwlist +server=/ntd.tv/127.0.0.1#5335 +ipset=/ntd.tv/gfwlist +server=/motolia.com/127.0.0.1#5335 +ipset=/motolia.com/gfwlist +server=/wife-home-videos.com/127.0.0.1#5335 +ipset=/wife-home-videos.com/gfwlist +server=/netname.com.br/127.0.0.1#5335 +ipset=/netname.com.br/gfwlist +server=/fptolia.com/127.0.0.1#5335 +ipset=/fptolia.com/gfwlist +server=/deviantclip.com/127.0.0.1#5335 +ipset=/deviantclip.com/gfwlist +server=/fotolia-noticias.com/127.0.0.1#5335 +ipset=/fotolia-noticias.com/gfwlist +server=/worldflipper.akamaized.net/127.0.0.1#5335 +ipset=/worldflipper.akamaized.net/gfwlist +server=/fonolia.com/127.0.0.1#5335 +ipset=/fonolia.com/gfwlist +server=/disneymeetingsandevents.com/127.0.0.1#5335 +ipset=/disneymeetingsandevents.com/gfwlist +server=/bridgestone-business-service.jp/127.0.0.1#5335 +ipset=/bridgestone-business-service.jp/gfwlist +server=/huffingtonpost.co.za/127.0.0.1#5335 +ipset=/huffingtonpost.co.za/gfwlist +server=/foftolia.com/127.0.0.1#5335 +ipset=/foftolia.com/gfwlist +server=/fiotolia.com/127.0.0.1#5335 +ipset=/fiotolia.com/gfwlist +server=/visa.com.bz/127.0.0.1#5335 +ipset=/visa.com.bz/gfwlist +server=/webex.co.nz/127.0.0.1#5335 +ipset=/webex.co.nz/gfwlist +server=/nexttv.com.tw/127.0.0.1#5335 +ipset=/nexttv.com.tw/gfwlist +server=/adobeccstatic.com/127.0.0.1#5335 +ipset=/adobeccstatic.com/gfwlist +server=/worldsecureemail.com/127.0.0.1#5335 +ipset=/worldsecureemail.com/gfwlist +server=/ettoday.net/127.0.0.1#5335 +ipset=/ettoday.net/gfwlist +server=/dirtyhomefuck.com/127.0.0.1#5335 +ipset=/dirtyhomefuck.com/gfwlist +server=/battlefrontii.com/127.0.0.1#5335 +ipset=/battlefrontii.com/gfwlist +server=/imagineecommerce.com/127.0.0.1#5335 +ipset=/imagineecommerce.com/gfwlist +server=/wiz-s.jp/127.0.0.1#5335 +ipset=/wiz-s.jp/gfwlist +server=/zee.com/127.0.0.1#5335 +ipset=/zee.com/gfwlist +server=/fuckingthreesome.com/127.0.0.1#5335 +ipset=/fuckingthreesome.com/gfwlist +server=/tx.me/127.0.0.1#5335 +ipset=/tx.me/gfwlist +server=/kidgrid.tv/127.0.0.1#5335 +ipset=/kidgrid.tv/gfwlist +server=/porno-erotica.com/127.0.0.1#5335 +ipset=/porno-erotica.com/gfwlist +server=/flyingjizz.com/127.0.0.1#5335 +ipset=/flyingjizz.com/gfwlist +server=/pornobrasileiro.xyz/127.0.0.1#5335 +ipset=/pornobrasileiro.xyz/gfwlist +server=/microsoft.md/127.0.0.1#5335 +ipset=/microsoft.md/gfwlist +server=/bestfreecams.club/127.0.0.1#5335 +ipset=/bestfreecams.club/gfwlist +server=/9nation.com.au/127.0.0.1#5335 +ipset=/9nation.com.au/gfwlist +server=/watersex.com/127.0.0.1#5335 +ipset=/watersex.com/gfwlist +server=/mailonline.co.uk/127.0.0.1#5335 +ipset=/mailonline.co.uk/gfwlist +server=/adobetechcomm.com/127.0.0.1#5335 +ipset=/adobetechcomm.com/gfwlist +server=/adobestock.com/127.0.0.1#5335 +ipset=/adobestock.com/gfwlist +server=/jinnaju.com/127.0.0.1#5335 +ipset=/jinnaju.com/gfwlist +server=/sci-hub.it.nf/127.0.0.1#5335 +ipset=/sci-hub.it.nf/gfwlist +server=/bmw-motorrad.tw/127.0.0.1#5335 +ipset=/bmw-motorrad.tw/gfwlist +server=/albeats.com/127.0.0.1#5335 +ipset=/albeats.com/gfwlist +server=/gaypornonly.com/127.0.0.1#5335 +ipset=/gaypornonly.com/gfwlist +server=/adobelanding.com/127.0.0.1#5335 +ipset=/adobelanding.com/gfwlist +server=/adobejanus.com/127.0.0.1#5335 +ipset=/adobejanus.com/gfwlist +server=/adultvideodump.com/127.0.0.1#5335 +ipset=/adultvideodump.com/gfwlist +server=/google.co.zm/127.0.0.1#5335 +ipset=/google.co.zm/gfwlist +server=/visa.com.ai/127.0.0.1#5335 +ipset=/visa.com.ai/gfwlist +server=/nytimes.com/127.0.0.1#5335 +ipset=/nytimes.com/gfwlist +server=/mastercard.com.bz/127.0.0.1#5335 +ipset=/mastercard.com.bz/gfwlist +server=/adobedemo.com/127.0.0.1#5335 +ipset=/adobedemo.com/gfwlist +server=/facebopk.com/127.0.0.1#5335 +ipset=/facebopk.com/gfwlist +server=/imacapplecomputer.com/127.0.0.1#5335 +ipset=/imacapplecomputer.com/gfwlist +server=/youtube.com/127.0.0.1#5335 +ipset=/youtube.com/gfwlist +server=/vhxqa4.com/127.0.0.1#5335 +ipset=/vhxqa4.com/gfwlist +server=/indianpornvideo.org/127.0.0.1#5335 +ipset=/indianpornvideo.org/gfwlist +server=/voachinese.com/127.0.0.1#5335 +ipset=/voachinese.com/gfwlist +server=/indianfuck2.com/127.0.0.1#5335 +ipset=/indianfuck2.com/gfwlist +server=/manoramayearbook.in/127.0.0.1#5335 +ipset=/manoramayearbook.in/gfwlist +server=/airtunes.com/127.0.0.1#5335 +ipset=/airtunes.com/gfwlist +server=/adobe.ly/127.0.0.1#5335 +ipset=/adobe.ly/gfwlist +server=/mymusclevideo.com/127.0.0.1#5335 +ipset=/mymusclevideo.com/gfwlist +server=/targetimg1.com/127.0.0.1#5335 +ipset=/targetimg1.com/gfwlist +server=/visa.com.pr/127.0.0.1#5335 +ipset=/visa.com.pr/gfwlist +server=/elderscrolls.com/127.0.0.1#5335 +ipset=/elderscrolls.com/gfwlist +server=/scholar.google.com.tr/127.0.0.1#5335 +ipset=/scholar.google.com.tr/gfwlist +server=/uun96.com/127.0.0.1#5335 +ipset=/uun96.com/gfwlist +server=/hbabit.com/127.0.0.1#5335 +ipset=/hbabit.com/gfwlist +server=/adobe-audience-finder.com/127.0.0.1#5335 +ipset=/adobe-audience-finder.com/gfwlist +server=/allpornsitespass.com/127.0.0.1#5335 +ipset=/allpornsitespass.com/gfwlist +server=/beatsoutletonlines.com/127.0.0.1#5335 +ipset=/beatsoutletonlines.com/gfwlist +server=/bybeatsdre.com/127.0.0.1#5335 +ipset=/bybeatsdre.com/gfwlist +server=/qualcomm-email.com/127.0.0.1#5335 +ipset=/qualcomm-email.com/gfwlist +server=/vod-dash-ww-live.akamaized.net/127.0.0.1#5335 +ipset=/vod-dash-ww-live.akamaized.net/gfwlist +server=/onxxxtube.com/127.0.0.1#5335 +ipset=/onxxxtube.com/gfwlist +server=/goldjizz.com/127.0.0.1#5335 +ipset=/goldjizz.com/gfwlist +server=/electronicarts.com/127.0.0.1#5335 +ipset=/electronicarts.com/gfwlist +server=/advertising.adobe.com/127.0.0.1#5335 +ipset=/advertising.adobe.com/gfwlist +server=/acer.com/127.0.0.1#5335 +ipset=/acer.com/gfwlist +server=/ikea.co.th/127.0.0.1#5335 +ipset=/ikea.co.th/gfwlist +server=/zsh.org/127.0.0.1#5335 +ipset=/zsh.org/gfwlist +server=/readmoo.com/127.0.0.1#5335 +ipset=/readmoo.com/gfwlist +server=/unpkg.com/127.0.0.1#5335 +ipset=/unpkg.com/gfwlist +server=/sqlite.org/127.0.0.1#5335 +ipset=/sqlite.org/gfwlist +server=/maddenseason.org/127.0.0.1#5335 +ipset=/maddenseason.org/gfwlist +server=/r-project.org/127.0.0.1#5335 +ipset=/r-project.org/gfwlist +server=/betterhdporn.com/127.0.0.1#5335 +ipset=/betterhdporn.com/gfwlist +server=/macappsto.re/127.0.0.1#5335 +ipset=/macappsto.re/gfwlist +server=/phantomjs.org/127.0.0.1#5335 +ipset=/phantomjs.org/gfwlist +server=/im-apps.net/127.0.0.1#5335 +ipset=/im-apps.net/gfwlist +server=/gayfuror.com/127.0.0.1#5335 +ipset=/gayfuror.com/gfwlist +server=/pornmonde.com/127.0.0.1#5335 +ipset=/pornmonde.com/gfwlist +server=/openai.com/127.0.0.1#5335 +ipset=/openai.com/gfwlist +server=/porncomixonline.net/127.0.0.1#5335 +ipset=/porncomixonline.net/gfwlist +server=/apple.bg/127.0.0.1#5335 +ipset=/apple.bg/gfwlist +server=/sunglassessale2014.com/127.0.0.1#5335 +ipset=/sunglassessale2014.com/gfwlist +server=/exploitedcollegegirls.com/127.0.0.1#5335 +ipset=/exploitedcollegegirls.com/gfwlist +server=/lua.org/127.0.0.1#5335 +ipset=/lua.org/gfwlist +server=/visasignaturehotels.com/127.0.0.1#5335 +ipset=/visasignaturehotels.com/gfwlist +server=/js.org/127.0.0.1#5335 +ipset=/js.org/gfwlist +server=/mastercard.co.ve/127.0.0.1#5335 +ipset=/mastercard.co.ve/gfwlist +server=/ebaysohos.com/127.0.0.1#5335 +ipset=/ebaysohos.com/gfwlist +server=/nuespournous.com/127.0.0.1#5335 +ipset=/nuespournous.com/gfwlist +server=/deepfreeze.com.br/127.0.0.1#5335 +ipset=/deepfreeze.com.br/gfwlist +server=/pypi.io/127.0.0.1#5335 +ipset=/pypi.io/gfwlist +server=/gnu.org/127.0.0.1#5335 +ipset=/gnu.org/gfwlist +server=/icloudmusic.net/127.0.0.1#5335 +ipset=/icloudmusic.net/gfwlist +server=/juicytwink.com/127.0.0.1#5335 +ipset=/juicytwink.com/gfwlist +server=/drdremonsterdre.com/127.0.0.1#5335 +ipset=/drdremonsterdre.com/gfwlist +server=/dditsadn.com/127.0.0.1#5335 +ipset=/dditsadn.com/gfwlist +server=/meetandfuck.games/127.0.0.1#5335 +ipset=/meetandfuck.games/gfwlist +server=/steamygamer.com/127.0.0.1#5335 +ipset=/steamygamer.com/gfwlist +server=/bdsmlr.com/127.0.0.1#5335 +ipset=/bdsmlr.com/gfwlist +server=/apache.org/127.0.0.1#5335 +ipset=/apache.org/gfwlist +server=/mini.com.mt/127.0.0.1#5335 +ipset=/mini.com.mt/gfwlist +server=/fox-corporation.com/127.0.0.1#5335 +ipset=/fox-corporation.com/gfwlist +server=/webex.com.au/127.0.0.1#5335 +ipset=/webex.com.au/gfwlist +server=/swoosh.tv/127.0.0.1#5335 +ipset=/swoosh.tv/gfwlist +server=/bmw-motorrad.ma/127.0.0.1#5335 +ipset=/bmw-motorrad.ma/gfwlist +server=/xda-cdn.com/127.0.0.1#5335 +ipset=/xda-cdn.com/gfwlist +server=/intelnet.component/127.0.0.1#5335 +ipset=/intelnet.component/gfwlist +server=/bukkake-jav.com/127.0.0.1#5335 +ipset=/bukkake-jav.com/gfwlist +server=/adult.toonsearch.net/127.0.0.1#5335 +ipset=/adult.toonsearch.net/gfwlist +server=/kav.tw/127.0.0.1#5335 +ipset=/kav.tw/gfwlist +server=/dealtime.com/127.0.0.1#5335 +ipset=/dealtime.com/gfwlist +server=/girlfriendvideos.com/127.0.0.1#5335 +ipset=/girlfriendvideos.com/gfwlist +server=/unity3d.com/127.0.0.1#5335 +ipset=/unity3d.com/gfwlist +server=/disp.cc/127.0.0.1#5335 +ipset=/disp.cc/gfwlist +server=/xn--yf1at58a.com/127.0.0.1#5335 +ipset=/xn--yf1at58a.com/gfwlist +server=/dlsitenews.com/127.0.0.1#5335 +ipset=/dlsitenews.com/gfwlist +server=/booksc.xyz/127.0.0.1#5335 +ipset=/booksc.xyz/gfwlist +server=/ampproject.com/127.0.0.1#5335 +ipset=/ampproject.com/gfwlist +server=/applecare.cc/127.0.0.1#5335 +ipset=/applecare.cc/gfwlist +server=/fstopimages.com/127.0.0.1#5335 +ipset=/fstopimages.com/gfwlist +server=/camelotherald.net/127.0.0.1#5335 +ipset=/camelotherald.net/gfwlist +server=/kernel.org/127.0.0.1#5335 +ipset=/kernel.org/gfwlist +server=/dropboxstatic.com/127.0.0.1#5335 +ipset=/dropboxstatic.com/gfwlist +server=/privilege.tw/127.0.0.1#5335 +ipset=/privilege.tw/gfwlist +server=/android.com/127.0.0.1#5335 +ipset=/android.com/gfwlist +server=/batsa.me/127.0.0.1#5335 +ipset=/batsa.me/gfwlist +server=/vanish.fr/127.0.0.1#5335 +ipset=/vanish.fr/gfwlist +server=/alphera.net/127.0.0.1#5335 +ipset=/alphera.net/gfwlist +server=/wifevideos.net/127.0.0.1#5335 +ipset=/wifevideos.net/gfwlist +server=/dremonsterbeatsoutlets.com/127.0.0.1#5335 +ipset=/dremonsterbeatsoutlets.com/gfwlist +server=/fox2news.com/127.0.0.1#5335 +ipset=/fox2news.com/gfwlist +server=/beatsnzsale.com/127.0.0.1#5335 +ipset=/beatsnzsale.com/gfwlist +server=/intel.sc/127.0.0.1#5335 +ipset=/intel.sc/gfwlist +server=/stackoverflowcareers.com/127.0.0.1#5335 +ipset=/stackoverflowcareers.com/gfwlist +server=/uun79.com/127.0.0.1#5335 +ipset=/uun79.com/gfwlist +server=/volvobuses.jo/127.0.0.1#5335 +ipset=/volvobuses.jo/gfwlist +server=/ecuatorianas.best/127.0.0.1#5335 +ipset=/ecuatorianas.best/gfwlist +server=/stackoverflow.co/127.0.0.1#5335 +ipset=/stackoverflow.co/gfwlist +server=/stackoverflow.blog/127.0.0.1#5335 +ipset=/stackoverflow.blog/gfwlist +server=/connectedcommerce.com/127.0.0.1#5335 +ipset=/connectedcommerce.com/gfwlist +server=/orsm.net/127.0.0.1#5335 +ipset=/orsm.net/gfwlist +server=/paypal-business.com/127.0.0.1#5335 +ipset=/paypal-business.com/gfwlist +server=/momoniji.com/127.0.0.1#5335 +ipset=/momoniji.com/gfwlist +server=/homegrownfreaks.net/127.0.0.1#5335 +ipset=/homegrownfreaks.net/gfwlist +server=/youtube.co.ke/127.0.0.1#5335 +ipset=/youtube.co.ke/gfwlist +server=/goodporn.to/127.0.0.1#5335 +ipset=/goodporn.to/gfwlist +server=/kindle.fr/127.0.0.1#5335 +ipset=/kindle.fr/gfwlist +server=/javher.com/127.0.0.1#5335 +ipset=/javher.com/gfwlist +server=/pypi.org/127.0.0.1#5335 +ipset=/pypi.org/gfwlist +server=/lustery.com/127.0.0.1#5335 +ipset=/lustery.com/gfwlist +server=/polymerproject.org/127.0.0.1#5335 +ipset=/polymerproject.org/gfwlist +server=/facebook-covid-19.com/127.0.0.1#5335 +ipset=/facebook-covid-19.com/gfwlist +server=/hairy-amateurs.com/127.0.0.1#5335 +ipset=/hairy-amateurs.com/gfwlist +server=/jetbrains.space/127.0.0.1#5335 +ipset=/jetbrains.space/gfwlist +server=/hinet.net/127.0.0.1#5335 +ipset=/hinet.net/gfwlist +server=/perl.org/127.0.0.1#5335 +ipset=/perl.org/gfwlist +server=/maya5.net/127.0.0.1#5335 +ipset=/maya5.net/gfwlist +server=/disney.nl/127.0.0.1#5335 +ipset=/disney.nl/gfwlist +server=/garena.tv/127.0.0.1#5335 +ipset=/garena.tv/gfwlist +server=/hentaizz.net/127.0.0.1#5335 +ipset=/hentaizz.net/gfwlist +server=/mongodb.com/127.0.0.1#5335 +ipset=/mongodb.com/gfwlist +server=/eroan.xyz/127.0.0.1#5335 +ipset=/eroan.xyz/gfwlist +server=/ikea.si/127.0.0.1#5335 +ipset=/ikea.si/gfwlist +server=/visa.co.ke/127.0.0.1#5335 +ipset=/visa.co.ke/gfwlist +server=/volvotrucks.by/127.0.0.1#5335 +ipset=/volvotrucks.by/gfwlist +server=/babylongirls.co.uk/127.0.0.1#5335 +ipset=/babylongirls.co.uk/gfwlist +server=/cairn.info/127.0.0.1#5335 +ipset=/cairn.info/gfwlist +server=/alphera.in/127.0.0.1#5335 +ipset=/alphera.in/gfwlist +server=/alpherafs.com.hk/127.0.0.1#5335 +ipset=/alpherafs.com.hk/gfwlist +server=/volvotrucks.fr/127.0.0.1#5335 +ipset=/volvotrucks.fr/gfwlist +server=/vscode-unpkg.net/127.0.0.1#5335 +ipset=/vscode-unpkg.net/gfwlist +server=/vfsforgit.org/127.0.0.1#5335 +ipset=/vfsforgit.org/gfwlist +server=/nexpart.tv/127.0.0.1#5335 +ipset=/nexpart.tv/gfwlist +server=/visualstudio.co.uk/127.0.0.1#5335 +ipset=/visualstudio.co.uk/gfwlist +server=/volvogroup.se/127.0.0.1#5335 +ipset=/volvogroup.se/gfwlist +server=/visualstudio.co/127.0.0.1#5335 +ipset=/visualstudio.co/gfwlist +server=/bmw-motorrad.cr/127.0.0.1#5335 +ipset=/bmw-motorrad.cr/gfwlist +server=/blacked.com/127.0.0.1#5335 +ipset=/blacked.com/gfwlist +server=/escape.com.au/127.0.0.1#5335 +ipset=/escape.com.au/gfwlist +server=/bag-glasses1.com/127.0.0.1#5335 +ipset=/bag-glasses1.com/gfwlist +server=/cloudflaretest.com/127.0.0.1#5335 +ipset=/cloudflaretest.com/gfwlist +server=/microsoftsilverlight.org/127.0.0.1#5335 +ipset=/microsoftsilverlight.org/gfwlist +server=/bill-safe.com/127.0.0.1#5335 +ipset=/bill-safe.com/gfwlist +server=/priceless.com/127.0.0.1#5335 +ipset=/priceless.com/gfwlist +server=/bmw.re/127.0.0.1#5335 +ipset=/bmw.re/gfwlist +server=/analtime.org/127.0.0.1#5335 +ipset=/analtime.org/gfwlist +server=/nikelives.com/127.0.0.1#5335 +ipset=/nikelives.com/gfwlist +server=/google.com.sa/127.0.0.1#5335 +ipset=/google.com.sa/gfwlist +server=/camelotherald.com/127.0.0.1#5335 +ipset=/camelotherald.com/gfwlist +server=/gay4tube.com/127.0.0.1#5335 +ipset=/gay4tube.com/gfwlist +server=/d29vzk4ow07wi7.cloudfront.net/127.0.0.1#5335 +ipset=/d29vzk4ow07wi7.cloudfront.net/gfwlist +server=/av-th.net/127.0.0.1#5335 +ipset=/av-th.net/gfwlist +server=/adobespark.com/127.0.0.1#5335 +ipset=/adobespark.com/gfwlist +server=/jfrog.com/127.0.0.1#5335 +ipset=/jfrog.com/gfwlist +server=/kijiji.ca/127.0.0.1#5335 +ipset=/kijiji.ca/gfwlist +server=/oxfordre.com/127.0.0.1#5335 +ipset=/oxfordre.com/gfwlist +server=/i69.com.tw/127.0.0.1#5335 +ipset=/i69.com.tw/gfwlist +server=/upornia.com/127.0.0.1#5335 +ipset=/upornia.com/gfwlist +server=/jjaaxyz.com/127.0.0.1#5335 +ipset=/jjaaxyz.com/gfwlist +server=/mcpeaceofmind.com/127.0.0.1#5335 +ipset=/mcpeaceofmind.com/gfwlist +server=/18novel.xyz/127.0.0.1#5335 +ipset=/18novel.xyz/gfwlist +server=/bridgestone.com.vn/127.0.0.1#5335 +ipset=/bridgestone.com.vn/gfwlist +server=/cbart.net/127.0.0.1#5335 +ipset=/cbart.net/gfwlist +server=/piapro.net/127.0.0.1#5335 +ipset=/piapro.net/gfwlist +server=/facebokc.com/127.0.0.1#5335 +ipset=/facebokc.com/gfwlist +server=/mastercad.com/127.0.0.1#5335 +ipset=/mastercad.com/gfwlist +server=/girl7942.com/127.0.0.1#5335 +ipset=/girl7942.com/gfwlist +server=/snap-telemetry.io/127.0.0.1#5335 +ipset=/snap-telemetry.io/gfwlist +server=/bidi.net.uk/127.0.0.1#5335 +ipset=/bidi.net.uk/gfwlist +server=/soundcloud.com/127.0.0.1#5335 +ipset=/soundcloud.com/gfwlist +server=/canon.rs/127.0.0.1#5335 +ipset=/canon.rs/gfwlist +server=/ebaycdn.net/127.0.0.1#5335 +ipset=/ebaycdn.net/gfwlist +server=/instagram.com/127.0.0.1#5335 +ipset=/instagram.com/gfwlist +server=/mastercard.ca/127.0.0.1#5335 +ipset=/mastercard.ca/gfwlist +server=/foxnewslatino.com/127.0.0.1#5335 +ipset=/foxnewslatino.com/gfwlist +server=/google.md/127.0.0.1#5335 +ipset=/google.md/gfwlist +server=/simcity.com/127.0.0.1#5335 +ipset=/simcity.com/gfwlist +server=/newslicensing.co.uk/127.0.0.1#5335 +ipset=/newslicensing.co.uk/gfwlist +server=/niketrainers.com/127.0.0.1#5335 +ipset=/niketrainers.com/gfwlist +server=/marvelspotlightplays.com/127.0.0.1#5335 +ipset=/marvelspotlightplays.com/gfwlist +server=/beatssaustraliabuy.com/127.0.0.1#5335 +ipset=/beatssaustraliabuy.com/gfwlist +server=/stackage.org/127.0.0.1#5335 +ipset=/stackage.org/gfwlist +server=/ebay.fr/127.0.0.1#5335 +ipset=/ebay.fr/gfwlist +server=/theleakbay.com/127.0.0.1#5335 +ipset=/theleakbay.com/gfwlist +server=/youtube.fr/127.0.0.1#5335 +ipset=/youtube.fr/gfwlist +server=/dogcumshot.net/127.0.0.1#5335 +ipset=/dogcumshot.net/gfwlist +server=/slidesharecdn.com/127.0.0.1#5335 +ipset=/slidesharecdn.com/gfwlist +server=/vagrantcloud.com/127.0.0.1#5335 +ipset=/vagrantcloud.com/gfwlist +server=/mcdelivery.com.tw/127.0.0.1#5335 +ipset=/mcdelivery.com.tw/gfwlist +server=/netflix.ca/127.0.0.1#5335 +ipset=/netflix.ca/gfwlist +server=/nijigen-daiaru.com/127.0.0.1#5335 +ipset=/nijigen-daiaru.com/gfwlist +server=/99re.com/127.0.0.1#5335 +ipset=/99re.com/gfwlist +server=/ebaystore.com/127.0.0.1#5335 +ipset=/ebaystore.com/gfwlist +server=/go-lang.com/127.0.0.1#5335 +ipset=/go-lang.com/gfwlist +server=/rajwaphq.com/127.0.0.1#5335 +ipset=/rajwaphq.com/gfwlist +server=/ieeer5.org/127.0.0.1#5335 +ipset=/ieeer5.org/gfwlist +server=/gettyimages.com/127.0.0.1#5335 +ipset=/gettyimages.com/gfwlist +server=/filipino-music.net/127.0.0.1#5335 +ipset=/filipino-music.net/gfwlist +server=/costcobusinessdelivery.com/127.0.0.1#5335 +ipset=/costcobusinessdelivery.com/gfwlist +server=/mini-connected.it/127.0.0.1#5335 +ipset=/mini-connected.it/gfwlist +server=/jwkcgd.xyz/127.0.0.1#5335 +ipset=/jwkcgd.xyz/gfwlist +server=/blzddist1-a.akamaihd.net/127.0.0.1#5335 +ipset=/blzddist1-a.akamaihd.net/gfwlist +server=/fasebokk.com/127.0.0.1#5335 +ipset=/fasebokk.com/gfwlist +server=/industrialtoys.com/127.0.0.1#5335 +ipset=/industrialtoys.com/gfwlist +server=/bloombergbna.com/127.0.0.1#5335 +ipset=/bloombergbna.com/gfwlist +server=/gitlab.io/127.0.0.1#5335 +ipset=/gitlab.io/gfwlist +server=/gitlab.com/127.0.0.1#5335 +ipset=/gitlab.com/gfwlist +server=/disney.com/127.0.0.1#5335 +ipset=/disney.com/gfwlist +server=/github-cloud.s3.amazonaws.com/127.0.0.1#5335 +ipset=/github-cloud.s3.amazonaws.com/gfwlist +server=/apexlegends.com/127.0.0.1#5335 +ipset=/apexlegends.com/gfwlist +server=/githubuniverse.com/127.0.0.1#5335 +ipset=/githubuniverse.com/gfwlist +server=/instantfapgay.com/127.0.0.1#5335 +ipset=/instantfapgay.com/gfwlist +server=/sankei.com/127.0.0.1#5335 +ipset=/sankei.com/gfwlist +server=/googlesource.com/127.0.0.1#5335 +ipset=/googlesource.com/gfwlist +server=/freecamstars.com/127.0.0.1#5335 +ipset=/freecamstars.com/gfwlist +server=/xnxxfap.info/127.0.0.1#5335 +ipset=/xnxxfap.info/gfwlist +server=/marvel10thanniversary.com/127.0.0.1#5335 +ipset=/marvel10thanniversary.com/gfwlist +server=/pypl.com/127.0.0.1#5335 +ipset=/pypl.com/gfwlist +server=/dnai.in/127.0.0.1#5335 +ipset=/dnai.in/gfwlist +server=/shoppercentre.com/127.0.0.1#5335 +ipset=/shoppercentre.com/gfwlist +server=/mini-connected.lt/127.0.0.1#5335 +ipset=/mini-connected.lt/gfwlist +server=/pki.google.com/127.0.0.1#5335 +ipset=/pki.google.com/gfwlist +server=/besttitstube.com/127.0.0.1#5335 +ipset=/besttitstube.com/gfwlist +server=/vfsco.ro/127.0.0.1#5335 +ipset=/vfsco.ro/gfwlist +server=/hsfacebook.com/127.0.0.1#5335 +ipset=/hsfacebook.com/gfwlist +server=/virtualrealporn.com/127.0.0.1#5335 +ipset=/virtualrealporn.com/gfwlist +server=/riot.net/127.0.0.1#5335 +ipset=/riot.net/gfwlist +server=/bmw-motorrad.com.br/127.0.0.1#5335 +ipset=/bmw-motorrad.com.br/gfwlist +server=/nude.hu/127.0.0.1#5335 +ipset=/nude.hu/gfwlist +server=/foxnewsmagazine.com/127.0.0.1#5335 +ipset=/foxnewsmagazine.com/gfwlist +server=/flutter.dev/127.0.0.1#5335 +ipset=/flutter.dev/gfwlist +server=/pearsonclinical.nl/127.0.0.1#5335 +ipset=/pearsonclinical.nl/gfwlist +server=/facebboook.com/127.0.0.1#5335 +ipset=/facebboook.com/gfwlist +server=/fedoraproject.org/127.0.0.1#5335 +ipset=/fedoraproject.org/gfwlist +server=/baltimorebmw.com/127.0.0.1#5335 +ipset=/baltimorebmw.com/gfwlist +server=/ieee-ies.org/127.0.0.1#5335 +ipset=/ieee-ies.org/gfwlist +server=/symantec.com/127.0.0.1#5335 +ipset=/symantec.com/gfwlist +server=/taipeitimes.com/127.0.0.1#5335 +ipset=/taipeitimes.com/gfwlist +server=/payserve.com/127.0.0.1#5335 +ipset=/payserve.com/gfwlist +server=/pornotube.blog.br/127.0.0.1#5335 +ipset=/pornotube.blog.br/gfwlist +server=/yahoo.it/127.0.0.1#5335 +ipset=/yahoo.it/gfwlist +server=/reactjs.org/127.0.0.1#5335 +ipset=/reactjs.org/gfwlist +server=/garotoesperto.com/127.0.0.1#5335 +ipset=/garotoesperto.com/gfwlist +server=/7mmtv.tv/127.0.0.1#5335 +ipset=/7mmtv.tv/gfwlist +server=/minispygear.com/127.0.0.1#5335 +ipset=/minispygear.com/gfwlist +server=/keezmovies.com/127.0.0.1#5335 +ipset=/keezmovies.com/gfwlist +server=/minidrivingexperienceusa.com/127.0.0.1#5335 +ipset=/minidrivingexperienceusa.com/gfwlist +server=/react.com/127.0.0.1#5335 +ipset=/react.com/gfwlist +server=/rockstargames.com/127.0.0.1#5335 +ipset=/rockstargames.com/gfwlist +server=/messengerdevelopers.com/127.0.0.1#5335 +ipset=/messengerdevelopers.com/gfwlist +server=/dollarfotoclub.com/127.0.0.1#5335 +ipset=/dollarfotoclub.com/gfwlist +server=/globalvoices.org/127.0.0.1#5335 +ipset=/globalvoices.org/gfwlist +server=/projecteuclid.org/127.0.0.1#5335 +ipset=/projecteuclid.org/gfwlist +server=/foxsports.com.bo/127.0.0.1#5335 +ipset=/foxsports.com.bo/gfwlist +server=/hbomaxcdn.com/127.0.0.1#5335 +ipset=/hbomaxcdn.com/gfwlist +server=/fasttext.cc/127.0.0.1#5335 +ipset=/fasttext.cc/gfwlist +server=/faciometrics.com/127.0.0.1#5335 +ipset=/faciometrics.com/gfwlist +server=/hentaispark.com/127.0.0.1#5335 +ipset=/hentaispark.com/gfwlist +server=/google.ro/127.0.0.1#5335 +ipset=/google.ro/gfwlist +server=/porn.com/127.0.0.1#5335 +ipset=/porn.com/gfwlist +server=/hlbelygl.com/127.0.0.1#5335 +ipset=/hlbelygl.com/gfwlist +server=/paydiant.com/127.0.0.1#5335 +ipset=/paydiant.com/gfwlist +server=/f8.com/127.0.0.1#5335 +ipset=/f8.com/gfwlist +server=/buck.build/127.0.0.1#5335 +ipset=/buck.build/gfwlist +server=/embedly.com/127.0.0.1#5335 +ipset=/embedly.com/gfwlist +server=/star-brasil.com/127.0.0.1#5335 +ipset=/star-brasil.com/gfwlist +server=/nikeoutletstore.com/127.0.0.1#5335 +ipset=/nikeoutletstore.com/gfwlist +server=/imstagram.com/127.0.0.1#5335 +ipset=/imstagram.com/gfwlist +server=/twitter.com/127.0.0.1#5335 +ipset=/twitter.com/gfwlist +server=/stackapps.com/127.0.0.1#5335 +ipset=/stackapps.com/gfwlist +server=/cispaletter.org/127.0.0.1#5335 +ipset=/cispaletter.org/gfwlist +server=/dotdeb.org/127.0.0.1#5335 +ipset=/dotdeb.org/gfwlist +server=/ubuntuforums.org/127.0.0.1#5335 +ipset=/ubuntuforums.org/gfwlist +server=/ubuntu.com/127.0.0.1#5335 +ipset=/ubuntu.com/gfwlist +server=/xn--yt8h.la/127.0.0.1#5335 +ipset=/xn--yt8h.la/gfwlist +server=/nintendoeurope.com/127.0.0.1#5335 +ipset=/nintendoeurope.com/gfwlist +server=/launchpadlibrarian.net/127.0.0.1#5335 +ipset=/launchpadlibrarian.net/gfwlist +server=/getbootstrap.com/127.0.0.1#5335 +ipset=/getbootstrap.com/gfwlist +server=/applecensorship.com/127.0.0.1#5335 +ipset=/applecensorship.com/gfwlist +server=/cloudflareapps.com/127.0.0.1#5335 +ipset=/cloudflareapps.com/gfwlist +server=/muji.us/127.0.0.1#5335 +ipset=/muji.us/gfwlist +server=/lanik.us/127.0.0.1#5335 +ipset=/lanik.us/gfwlist +server=/star-latam.com/127.0.0.1#5335 +ipset=/star-latam.com/gfwlist +server=/videosdemadurasx.com/127.0.0.1#5335 +ipset=/videosdemadurasx.com/gfwlist +server=/netflixdnstest6.com/127.0.0.1#5335 +ipset=/netflixdnstest6.com/gfwlist +server=/as-hp.ca/127.0.0.1#5335 +ipset=/as-hp.ca/gfwlist +server=/volvotrucks.com.ar/127.0.0.1#5335 +ipset=/volvotrucks.com.ar/gfwlist +server=/visual-arts.jp/127.0.0.1#5335 +ipset=/visual-arts.jp/gfwlist +server=/18exgfs.com/127.0.0.1#5335 +ipset=/18exgfs.com/gfwlist +server=/argotunnel.com/127.0.0.1#5335 +ipset=/argotunnel.com/gfwlist +server=/audiencenetwork.com/127.0.0.1#5335 +ipset=/audiencenetwork.com/gfwlist +server=/swift.org/127.0.0.1#5335 +ipset=/swift.org/gfwlist +server=/parkinfo.com/127.0.0.1#5335 +ipset=/parkinfo.com/gfwlist +server=/appleswift.com/127.0.0.1#5335 +ipset=/appleswift.com/gfwlist +server=/acebook.com/127.0.0.1#5335 +ipset=/acebook.com/gfwlist +server=/upmedia.mg/127.0.0.1#5335 +ipset=/upmedia.mg/gfwlist +server=/auroraoss.com/127.0.0.1#5335 +ipset=/auroraoss.com/gfwlist +server=/harpercollinsadvantage.com/127.0.0.1#5335 +ipset=/harpercollinsadvantage.com/gfwlist +server=/zohostatic.in/127.0.0.1#5335 +ipset=/zohostatic.in/gfwlist +server=/zeplin.dev/127.0.0.1#5335 +ipset=/zeplin.dev/gfwlist +server=/bsersd.xyz/127.0.0.1#5335 +ipset=/bsersd.xyz/gfwlist +server=/facebooknfl.com/127.0.0.1#5335 +ipset=/facebooknfl.com/gfwlist +server=/zendesk.com/127.0.0.1#5335 +ipset=/zendesk.com/gfwlist +server=/wpvip.com/127.0.0.1#5335 +ipset=/wpvip.com/gfwlist +server=/wordpress.tv/127.0.0.1#5335 +ipset=/wordpress.tv/gfwlist +server=/uun89.com/127.0.0.1#5335 +ipset=/uun89.com/gfwlist +server=/scholar.google.com.ph/127.0.0.1#5335 +ipset=/scholar.google.com.ph/gfwlist +server=/reutersagency.cn/127.0.0.1#5335 +ipset=/reutersagency.cn/gfwlist +server=/dailymail.co.uk/127.0.0.1#5335 +ipset=/dailymail.co.uk/gfwlist +server=/projectbaseline.com/127.0.0.1#5335 +ipset=/projectbaseline.com/gfwlist +server=/dditscdn.com/127.0.0.1#5335 +ipset=/dditscdn.com/gfwlist +server=/mastercard.com.au/127.0.0.1#5335 +ipset=/mastercard.com.au/gfwlist +server=/geeksquadservices.org/127.0.0.1#5335 +ipset=/geeksquadservices.org/gfwlist +server=/webflow.com/127.0.0.1#5335 +ipset=/webflow.com/gfwlist +server=/1xbet.cm/127.0.0.1#5335 +ipset=/1xbet.cm/gfwlist +server=/vercel.sh/127.0.0.1#5335 +ipset=/vercel.sh/gfwlist +server=/nijidoujin.com/127.0.0.1#5335 +ipset=/nijidoujin.com/gfwlist +server=/instagramhilecim.com/127.0.0.1#5335 +ipset=/instagramhilecim.com/gfwlist +server=/imgix.net/127.0.0.1#5335 +ipset=/imgix.net/gfwlist +server=/streamingporn.xyz/127.0.0.1#5335 +ipset=/streamingporn.xyz/gfwlist +server=/visa.cl/127.0.0.1#5335 +ipset=/visa.cl/gfwlist +server=/scholar.google.co.uk/127.0.0.1#5335 +ipset=/scholar.google.co.uk/gfwlist +server=/i-cable.com/127.0.0.1#5335 +ipset=/i-cable.com/gfwlist +server=/err.sh/127.0.0.1#5335 +ipset=/err.sh/gfwlist +server=/ctan.org/127.0.0.1#5335 +ipset=/ctan.org/gfwlist +server=/svp-team.com/127.0.0.1#5335 +ipset=/svp-team.com/gfwlist +server=/bingsettingssearch.trafficmanager.net/127.0.0.1#5335 +ipset=/bingsettingssearch.trafficmanager.net/gfwlist +server=/facebookmarketingpartner.com/127.0.0.1#5335 +ipset=/facebookmarketingpartner.com/gfwlist +server=/creditcardsbay.com/127.0.0.1#5335 +ipset=/creditcardsbay.com/gfwlist +server=/biguz.net/127.0.0.1#5335 +ipset=/biguz.net/gfwlist +server=/scholar.l.google.com/127.0.0.1#5335 +ipset=/scholar.l.google.com/gfwlist +server=/steam.naeu.qtlglb.com/127.0.0.1#5335 +ipset=/steam.naeu.qtlglb.com/gfwlist +server=/thescottishsun.co.uk/127.0.0.1#5335 +ipset=/thescottishsun.co.uk/gfwlist +server=/bmw.com/127.0.0.1#5335 +ipset=/bmw.com/gfwlist +server=/analamateursex.com/127.0.0.1#5335 +ipset=/analamateursex.com/gfwlist +server=/startpage.com/127.0.0.1#5335 +ipset=/startpage.com/gfwlist +server=/squarecapital.com/127.0.0.1#5335 +ipset=/squarecapital.com/gfwlist +server=/git.io/127.0.0.1#5335 +ipset=/git.io/gfwlist +server=/exporntoons.net/127.0.0.1#5335 +ipset=/exporntoons.net/gfwlist +server=/itripto.com/127.0.0.1#5335 +ipset=/itripto.com/gfwlist +server=/91porn.best/127.0.0.1#5335 +ipset=/91porn.best/gfwlist +server=/rplay.live/127.0.0.1#5335 +ipset=/rplay.live/gfwlist +server=/slideshare.com/127.0.0.1#5335 +ipset=/slideshare.com/gfwlist +server=/shorturl.at/127.0.0.1#5335 +ipset=/shorturl.at/gfwlist +server=/visa.co.in/127.0.0.1#5335 +ipset=/visa.co.in/gfwlist +server=/dl.begellhouse.com/127.0.0.1#5335 +ipset=/dl.begellhouse.com/gfwlist +server=/nyansa.com/127.0.0.1#5335 +ipset=/nyansa.com/gfwlist +server=/spaindisney.com/127.0.0.1#5335 +ipset=/spaindisney.com/gfwlist +server=/shop.app/127.0.0.1#5335 +ipset=/shop.app/gfwlist +server=/myshopify.com/127.0.0.1#5335 +ipset=/myshopify.com/gfwlist +server=/setapp.com/127.0.0.1#5335 +ipset=/setapp.com/gfwlist +server=/bellebound.com/127.0.0.1#5335 +ipset=/bellebound.com/gfwlist +server=/loli.net/127.0.0.1#5335 +ipset=/loli.net/gfwlist +server=/rb.gy/127.0.0.1#5335 +ipset=/rb.gy/gfwlist +server=/6neek.com/127.0.0.1#5335 +ipset=/6neek.com/gfwlist +server=/thebeatsheadphonesale.com/127.0.0.1#5335 +ipset=/thebeatsheadphonesale.com/gfwlist +server=/lqh0bon3.xyz/127.0.0.1#5335 +ipset=/lqh0bon3.xyz/gfwlist +server=/stackauth.com/127.0.0.1#5335 +ipset=/stackauth.com/gfwlist +server=/pacloudflare.com/127.0.0.1#5335 +ipset=/pacloudflare.com/gfwlist +server=/foxsmallbusinesscenter.org/127.0.0.1#5335 +ipset=/foxsmallbusinesscenter.org/gfwlist +server=/tnatryouts.com/127.0.0.1#5335 +ipset=/tnatryouts.com/gfwlist +server=/teenqueens.net/127.0.0.1#5335 +ipset=/teenqueens.net/gfwlist +server=/cdn-terapeak.com/127.0.0.1#5335 +ipset=/cdn-terapeak.com/gfwlist +server=/rolfoundation.org/127.0.0.1#5335 +ipset=/rolfoundation.org/gfwlist +server=/patreonusercontent.com/127.0.0.1#5335 +ipset=/patreonusercontent.com/gfwlist +server=/miniusa.com/127.0.0.1#5335 +ipset=/miniusa.com/gfwlist +server=/omaps.app/127.0.0.1#5335 +ipset=/omaps.app/gfwlist +server=/cloudimg.io/127.0.0.1#5335 +ipset=/cloudimg.io/gfwlist +server=/notion.so/127.0.0.1#5335 +ipset=/notion.so/gfwlist +server=/notion.com/127.0.0.1#5335 +ipset=/notion.com/gfwlist +server=/nintendo.com/127.0.0.1#5335 +ipset=/nintendo.com/gfwlist +server=/newsextv.com/127.0.0.1#5335 +ipset=/newsextv.com/gfwlist +server=/d33wubrfki0l68.cloudfront.net/127.0.0.1#5335 +ipset=/d33wubrfki0l68.cloudfront.net/gfwlist +server=/mpv.io/127.0.0.1#5335 +ipset=/mpv.io/gfwlist +server=/huffingtonpost.kr/127.0.0.1#5335 +ipset=/huffingtonpost.kr/gfwlist +server=/madvrlabs.llc/127.0.0.1#5335 +ipset=/madvrlabs.llc/gfwlist +server=/crl.microsoft.com/127.0.0.1#5335 +ipset=/crl.microsoft.com/gfwlist +server=/madvr.net/127.0.0.1#5335 +ipset=/madvr.net/gfwlist +server=/awayoutgame.com/127.0.0.1#5335 +ipset=/awayoutgame.com/gfwlist +server=/amazonbusinessblog.com/127.0.0.1#5335 +ipset=/amazonbusinessblog.com/gfwlist +server=/madvr.com/127.0.0.1#5335 +ipset=/madvr.com/gfwlist +server=/ebay-confirm.com/127.0.0.1#5335 +ipset=/ebay-confirm.com/gfwlist +server=/chunja19.net/127.0.0.1#5335 +ipset=/chunja19.net/gfwlist +server=/swiftcapital.com/127.0.0.1#5335 +ipset=/swiftcapital.com/gfwlist +server=/liberapay.com/127.0.0.1#5335 +ipset=/liberapay.com/gfwlist +server=/venezporn.com/127.0.0.1#5335 +ipset=/venezporn.com/gfwlist +server=/bustyangelique.com/127.0.0.1#5335 +ipset=/bustyangelique.com/gfwlist +server=/jwpltx.com/127.0.0.1#5335 +ipset=/jwpltx.com/gfwlist +server=/xxx-com.cfd/127.0.0.1#5335 +ipset=/xxx-com.cfd/gfwlist +server=/xxxner.com/127.0.0.1#5335 +ipset=/xxxner.com/gfwlist +server=/visa.co.uk/127.0.0.1#5335 +ipset=/visa.co.uk/gfwlist +server=/disney.pt/127.0.0.1#5335 +ipset=/disney.pt/gfwlist +server=/teslamotors.com/127.0.0.1#5335 +ipset=/teslamotors.com/gfwlist +server=/bowenpress.com/127.0.0.1#5335 +ipset=/bowenpress.com/gfwlist +server=/3dhentai.tv/127.0.0.1#5335 +ipset=/3dhentai.tv/gfwlist +server=/dlfacebook.com/127.0.0.1#5335 +ipset=/dlfacebook.com/gfwlist +server=/heroku-app.com/127.0.0.1#5335 +ipset=/heroku-app.com/gfwlist +server=/secomtrust.net/127.0.0.1#5335 +ipset=/secomtrust.net/gfwlist +server=/predictivetechnologies.com/127.0.0.1#5335 +ipset=/predictivetechnologies.com/gfwlist +server=/fabuye.top/127.0.0.1#5335 +ipset=/fabuye.top/gfwlist +server=/appleexpo.info/127.0.0.1#5335 +ipset=/appleexpo.info/gfwlist +server=/xxxland.net/127.0.0.1#5335 +ipset=/xxxland.net/gfwlist +server=/translatewiki.org/127.0.0.1#5335 +ipset=/translatewiki.org/gfwlist +server=/sexcelebrity.net/127.0.0.1#5335 +ipset=/sexcelebrity.net/gfwlist +server=/arcgis.com/127.0.0.1#5335 +ipset=/arcgis.com/gfwlist +server=/duckside.com/127.0.0.1#5335 +ipset=/duckside.com/gfwlist +server=/intel.eu/127.0.0.1#5335 +ipset=/intel.eu/gfwlist +server=/chatterbate.io/127.0.0.1#5335 +ipset=/chatterbate.io/gfwlist +server=/streetmeatasia.com/127.0.0.1#5335 +ipset=/streetmeatasia.com/gfwlist +server=/xxxhomefuck.com/127.0.0.1#5335 +ipset=/xxxhomefuck.com/gfwlist +server=/hotscope.tv/127.0.0.1#5335 +ipset=/hotscope.tv/gfwlist +server=/pornomasse.com/127.0.0.1#5335 +ipset=/pornomasse.com/gfwlist +server=/xvideosnovinha.com/127.0.0.1#5335 +ipset=/xvideosnovinha.com/gfwlist +server=/byjav.me/127.0.0.1#5335 +ipset=/byjav.me/gfwlist +server=/duckduckgo.com.tw/127.0.0.1#5335 +ipset=/duckduckgo.com.tw/gfwlist +server=/nike.com.br/127.0.0.1#5335 +ipset=/nike.com.br/gfwlist +server=/asiancamly.com/127.0.0.1#5335 +ipset=/asiancamly.com/gfwlist +server=/zlibcdn2.com/127.0.0.1#5335 +ipset=/zlibcdn2.com/gfwlist +server=/ahswingerporno.com/127.0.0.1#5335 +ipset=/ahswingerporno.com/gfwlist +server=/pornenix.com/127.0.0.1#5335 +ipset=/pornenix.com/gfwlist +server=/ddg.co/127.0.0.1#5335 +ipset=/ddg.co/gfwlist +server=/bondagesex-xxx.com/127.0.0.1#5335 +ipset=/bondagesex-xxx.com/gfwlist +server=/erodou.tousatu.fun/127.0.0.1#5335 +ipset=/erodou.tousatu.fun/gfwlist +server=/disqus.com/127.0.0.1#5335 +ipset=/disqus.com/gfwlist +server=/pornxxxweb.com/127.0.0.1#5335 +ipset=/pornxxxweb.com/gfwlist +server=/digitalocean.com/127.0.0.1#5335 +ipset=/digitalocean.com/gfwlist +server=/cloudconvert.com/127.0.0.1#5335 +ipset=/cloudconvert.com/gfwlist +server=/steam-chat.com/127.0.0.1#5335 +ipset=/steam-chat.com/gfwlist +server=/buymeacoff.ee/127.0.0.1#5335 +ipset=/buymeacoff.ee/gfwlist +server=/myfoxorlando.com/127.0.0.1#5335 +ipset=/myfoxorlando.com/gfwlist +server=/anyxxx.me/127.0.0.1#5335 +ipset=/anyxxx.me/gfwlist +server=/sexyfeet.tv/127.0.0.1#5335 +ipset=/sexyfeet.tv/gfwlist +server=/volvotrucks.ph/127.0.0.1#5335 +ipset=/volvotrucks.ph/gfwlist +server=/youtube.com.lv/127.0.0.1#5335 +ipset=/youtube.com.lv/gfwlist +server=/fonts.net/127.0.0.1#5335 +ipset=/fonts.net/gfwlist +server=/horsemecum.com/127.0.0.1#5335 +ipset=/horsemecum.com/gfwlist +server=/brightcove.services/127.0.0.1#5335 +ipset=/brightcove.services/gfwlist +server=/thri.xxx/127.0.0.1#5335 +ipset=/thri.xxx/gfwlist +server=/hrecords.jp/127.0.0.1#5335 +ipset=/hrecords.jp/gfwlist +server=/isiknowledge.com/127.0.0.1#5335 +ipset=/isiknowledge.com/gfwlist +server=/doom9.org/127.0.0.1#5335 +ipset=/doom9.org/gfwlist +server=/bahamut.akamaized.net/127.0.0.1#5335 +ipset=/bahamut.akamaized.net/gfwlist +server=/arphic.com.tw/127.0.0.1#5335 +ipset=/arphic.com.tw/gfwlist +server=/literotica.com/127.0.0.1#5335 +ipset=/literotica.com/gfwlist +server=/fabhairypussy.com/127.0.0.1#5335 +ipset=/fabhairypussy.com/gfwlist +server=/fbsbx.com/127.0.0.1#5335 +ipset=/fbsbx.com/gfwlist +server=/kaggle.io/127.0.0.1#5335 +ipset=/kaggle.io/gfwlist +server=/abcheadphones.com/127.0.0.1#5335 +ipset=/abcheadphones.com/gfwlist +server=/gamer-cds.cdn.hinet.net/127.0.0.1#5335 +ipset=/gamer-cds.cdn.hinet.net/gfwlist +server=/ikea.com.eg/127.0.0.1#5335 +ipset=/ikea.com.eg/gfwlist +server=/msads.net/127.0.0.1#5335 +ipset=/msads.net/gfwlist +server=/addtoany.com/127.0.0.1#5335 +ipset=/addtoany.com/gfwlist +server=/konachan.net/127.0.0.1#5335 +ipset=/konachan.net/gfwlist +server=/gscanada.info/127.0.0.1#5335 +ipset=/gscanada.info/gfwlist +server=/globalspec.com/127.0.0.1#5335 +ipset=/globalspec.com/gfwlist +server=/avstar3.com/127.0.0.1#5335 +ipset=/avstar3.com/gfwlist +server=/zoo-xnxx.com/127.0.0.1#5335 +ipset=/zoo-xnxx.com/gfwlist +server=/zh99.net/127.0.0.1#5335 +ipset=/zh99.net/gfwlist +server=/firefoxusercontent.com/127.0.0.1#5335 +ipset=/firefoxusercontent.com/gfwlist +server=/yepporn.com/127.0.0.1#5335 +ipset=/yepporn.com/gfwlist +server=/binance.us/127.0.0.1#5335 +ipset=/binance.us/gfwlist +server=/a-hentai.tv/127.0.0.1#5335 +ipset=/a-hentai.tv/gfwlist +server=/thomsonreuters.es/127.0.0.1#5335 +ipset=/thomsonreuters.es/gfwlist +server=/easportsactive.com/127.0.0.1#5335 +ipset=/easportsactive.com/gfwlist +server=/shenyun.com/127.0.0.1#5335 +ipset=/shenyun.com/gfwlist +server=/foxcanvasroom.com/127.0.0.1#5335 +ipset=/foxcanvasroom.com/gfwlist +server=/devsitetest.how/127.0.0.1#5335 +ipset=/devsitetest.how/gfwlist +server=/rule34video.com/127.0.0.1#5335 +ipset=/rule34video.com/gfwlist +server=/hkedcity.net/127.0.0.1#5335 +ipset=/hkedcity.net/gfwlist +server=/zohoschools.com/127.0.0.1#5335 +ipset=/zohoschools.com/gfwlist +server=/yavtube.com/127.0.0.1#5335 +ipset=/yavtube.com/gfwlist +server=/volvodefense.com/127.0.0.1#5335 +ipset=/volvodefense.com/gfwlist +server=/zzitube.com/127.0.0.1#5335 +ipset=/zzitube.com/gfwlist +server=/realdoll.com/127.0.0.1#5335 +ipset=/realdoll.com/gfwlist +server=/zqqpwz.com/127.0.0.1#5335 +ipset=/zqqpwz.com/gfwlist +server=/xboxgamepass.com/127.0.0.1#5335 +ipset=/xboxgamepass.com/gfwlist +server=/xemales.com/127.0.0.1#5335 +ipset=/xemales.com/gfwlist +server=/web-instagram.net/127.0.0.1#5335 +ipset=/web-instagram.net/gfwlist +server=/bridgestonela.com/127.0.0.1#5335 +ipset=/bridgestonela.com/gfwlist +server=/faebook.com/127.0.0.1#5335 +ipset=/faebook.com/gfwlist +server=/adult.contents.fc2.com/127.0.0.1#5335 +ipset=/adult.contents.fc2.com/gfwlist +server=/gayporn.pro/127.0.0.1#5335 +ipset=/gayporn.pro/gfwlist +server=/drdrefnac.com/127.0.0.1#5335 +ipset=/drdrefnac.com/gfwlist +server=/javtube.com/127.0.0.1#5335 +ipset=/javtube.com/gfwlist +server=/swag.live/127.0.0.1#5335 +ipset=/swag.live/gfwlist +server=/visiontimes.de/127.0.0.1#5335 +ipset=/visiontimes.de/gfwlist +server=/nikkeibp.co.jp/127.0.0.1#5335 +ipset=/nikkeibp.co.jp/gfwlist +server=/zhainanjidi.xyz/127.0.0.1#5335 +ipset=/zhainanjidi.xyz/gfwlist +server=/pearsonclinical.in/127.0.0.1#5335 +ipset=/pearsonclinical.in/gfwlist +server=/daddyslilangel.com/127.0.0.1#5335 +ipset=/daddyslilangel.com/gfwlist +server=/nikesoccercleats.com/127.0.0.1#5335 +ipset=/nikesoccercleats.com/gfwlist +server=/naughtyfootjobs.com/127.0.0.1#5335 +ipset=/naughtyfootjobs.com/gfwlist +server=/pornobengala.com/127.0.0.1#5335 +ipset=/pornobengala.com/gfwlist +server=/diamondgirlstudio.com/127.0.0.1#5335 +ipset=/diamondgirlstudio.com/gfwlist +server=/spyjinx.com/127.0.0.1#5335 +ipset=/spyjinx.com/gfwlist +server=/geek-squads.net/127.0.0.1#5335 +ipset=/geek-squads.net/gfwlist +server=/zerochan.net/127.0.0.1#5335 +ipset=/zerochan.net/gfwlist +server=/zen8ok.xyz/127.0.0.1#5335 +ipset=/zen8ok.xyz/gfwlist +server=/zazzybabes.com/127.0.0.1#5335 +ipset=/zazzybabes.com/gfwlist +server=/z00.world/127.0.0.1#5335 +ipset=/z00.world/gfwlist +server=/leagueoflegends.com/127.0.0.1#5335 +ipset=/leagueoflegends.com/gfwlist +server=/cashpassport.co.za/127.0.0.1#5335 +ipset=/cashpassport.co.za/gfwlist +server=/adulttime.com/127.0.0.1#5335 +ipset=/adulttime.com/gfwlist +server=/ospray.net/127.0.0.1#5335 +ipset=/ospray.net/gfwlist +server=/bigtitvenera.com/127.0.0.1#5335 +ipset=/bigtitvenera.com/gfwlist +server=/facebbook.com/127.0.0.1#5335 +ipset=/facebbook.com/gfwlist +server=/721av.com/127.0.0.1#5335 +ipset=/721av.com/gfwlist +server=/verisign.mobi/127.0.0.1#5335 +ipset=/verisign.mobi/gfwlist +server=/unravel2.com/127.0.0.1#5335 +ipset=/unravel2.com/gfwlist +server=/cf-ipfs.com/127.0.0.1#5335 +ipset=/cf-ipfs.com/gfwlist +server=/bmw-nigeria.com/127.0.0.1#5335 +ipset=/bmw-nigeria.com/gfwlist +server=/easportsactiveonline.com/127.0.0.1#5335 +ipset=/easportsactiveonline.com/gfwlist +server=/bmw.mu/127.0.0.1#5335 +ipset=/bmw.mu/gfwlist +server=/youramateurporn.com/127.0.0.1#5335 +ipset=/youramateurporn.com/gfwlist +server=/youporn.com/127.0.0.1#5335 +ipset=/youporn.com/gfwlist +server=/pornve.com/127.0.0.1#5335 +ipset=/pornve.com/gfwlist +server=/telesell.com/127.0.0.1#5335 +ipset=/telesell.com/gfwlist +server=/screw-my-wife.com/127.0.0.1#5335 +ipset=/screw-my-wife.com/gfwlist +server=/youngsex.video/127.0.0.1#5335 +ipset=/youngsex.video/gfwlist +server=/youngsex.sexy/127.0.0.1#5335 +ipset=/youngsex.sexy/gfwlist +server=/facebookhome.com/127.0.0.1#5335 +ipset=/facebookhome.com/gfwlist +server=/howfuck.me/127.0.0.1#5335 +ipset=/howfuck.me/gfwlist +server=/youngerbabes.com/127.0.0.1#5335 +ipset=/youngerbabes.com/gfwlist +server=/airhornbot.com/127.0.0.1#5335 +ipset=/airhornbot.com/gfwlist +server=/youjism.com/127.0.0.1#5335 +ipset=/youjism.com/gfwlist +server=/troisrivieresmini.com/127.0.0.1#5335 +ipset=/troisrivieresmini.com/gfwlist +server=/pornaffected.com/127.0.0.1#5335 +ipset=/pornaffected.com/gfwlist +server=/hardx.com/127.0.0.1#5335 +ipset=/hardx.com/gfwlist +server=/gbnews.uk/127.0.0.1#5335 +ipset=/gbnews.uk/gfwlist +server=/cup.com.hk/127.0.0.1#5335 +ipset=/cup.com.hk/gfwlist +server=/goshemalecams.com/127.0.0.1#5335 +ipset=/goshemalecams.com/gfwlist +server=/aod-pod-uk-live.akamaized.net/127.0.0.1#5335 +ipset=/aod-pod-uk-live.akamaized.net/gfwlist +server=/yinac5.top/127.0.0.1#5335 +ipset=/yinac5.top/gfwlist +server=/yieamnd.com/127.0.0.1#5335 +ipset=/yieamnd.com/gfwlist +server=/adobedtm.com/127.0.0.1#5335 +ipset=/adobedtm.com/gfwlist +server=/yhy.cool/127.0.0.1#5335 +ipset=/yhy.cool/gfwlist +server=/vfsco.cz/127.0.0.1#5335 +ipset=/vfsco.cz/gfwlist +server=/yespornpleasexxx.com/127.0.0.1#5335 +ipset=/yespornpleasexxx.com/gfwlist +server=/mastercard.com.cy/127.0.0.1#5335 +ipset=/mastercard.com.cy/gfwlist +server=/disney-portal.my.onetrust.com/127.0.0.1#5335 +ipset=/disney-portal.my.onetrust.com/gfwlist +server=/yespornfree.com/127.0.0.1#5335 +ipset=/yespornfree.com/gfwlist +server=/yes.xxx/127.0.0.1#5335 +ipset=/yes.xxx/gfwlist +server=/hentaiworld.eu/127.0.0.1#5335 +ipset=/hentaiworld.eu/gfwlist +server=/volvobuses.dk/127.0.0.1#5335 +ipset=/volvobuses.dk/gfwlist +server=/buyitnowshop.net/127.0.0.1#5335 +ipset=/buyitnowshop.net/gfwlist +server=/galegroup.com/127.0.0.1#5335 +ipset=/galegroup.com/gfwlist +server=/yazhouse8.com/127.0.0.1#5335 +ipset=/yazhouse8.com/gfwlist +server=/jessicaturner.com/127.0.0.1#5335 +ipset=/jessicaturner.com/gfwlist +server=/foxsports.gt/127.0.0.1#5335 +ipset=/foxsports.gt/gfwlist +server=/bmw-motorrad.ec/127.0.0.1#5335 +ipset=/bmw-motorrad.ec/gfwlist +server=/yatong.info/127.0.0.1#5335 +ipset=/yatong.info/gfwlist +server=/theteenhome.com/127.0.0.1#5335 +ipset=/theteenhome.com/gfwlist +server=/visa.gd/127.0.0.1#5335 +ipset=/visa.gd/gfwlist +server=/yadori.club/127.0.0.1#5335 +ipset=/yadori.club/gfwlist +server=/jasmin.com/127.0.0.1#5335 +ipset=/jasmin.com/gfwlist +server=/sumomo-ch.com/127.0.0.1#5335 +ipset=/sumomo-ch.com/gfwlist +server=/avwong.com/127.0.0.1#5335 +ipset=/avwong.com/gfwlist +server=/132288.cc/127.0.0.1#5335 +ipset=/132288.cc/gfwlist +server=/supremacy.net/127.0.0.1#5335 +ipset=/supremacy.net/gfwlist +server=/facebyook.com/127.0.0.1#5335 +ipset=/facebyook.com/gfwlist +server=/gaytopcams.com/127.0.0.1#5335 +ipset=/gaytopcams.com/gfwlist +server=/veet.co.uk/127.0.0.1#5335 +ipset=/veet.co.uk/gfwlist +server=/xxxvogue.net/127.0.0.1#5335 +ipset=/xxxvogue.net/gfwlist +server=/paypal-cardcash.com/127.0.0.1#5335 +ipset=/paypal-cardcash.com/gfwlist +server=/xxxvideo.blog.br/127.0.0.1#5335 +ipset=/xxxvideo.blog.br/gfwlist +server=/bigtitterrynova.com/127.0.0.1#5335 +ipset=/bigtitterrynova.com/gfwlist +server=/epochweekly.com/127.0.0.1#5335 +ipset=/epochweekly.com/gfwlist +server=/aimei133.com/127.0.0.1#5335 +ipset=/aimei133.com/gfwlist +server=/xx159.com.cn/127.0.0.1#5335 +ipset=/xx159.com.cn/gfwlist +server=/xxxsexocasero.com/127.0.0.1#5335 +ipset=/xxxsexocasero.com/gfwlist +server=/xxxsexcinema.com/127.0.0.1#5335 +ipset=/xxxsexcinema.com/gfwlist +server=/browserleaks.com/127.0.0.1#5335 +ipset=/browserleaks.com/gfwlist +server=/xxxpornhd.pro/127.0.0.1#5335 +ipset=/xxxpornhd.pro/gfwlist +server=/disneychannelroadtrip.com/127.0.0.1#5335 +ipset=/disneychannelroadtrip.com/gfwlist +server=/bethesda.net/127.0.0.1#5335 +ipset=/bethesda.net/gfwlist +server=/ausbeatsbydrdre.com/127.0.0.1#5335 +ipset=/ausbeatsbydrdre.com/gfwlist +server=/citizenlab.org/127.0.0.1#5335 +ipset=/citizenlab.org/gfwlist +server=/xxxmovies.fun/127.0.0.1#5335 +ipset=/xxxmovies.fun/gfwlist +server=/alphabet.fr/127.0.0.1#5335 +ipset=/alphabet.fr/gfwlist +server=/xxxmomporn.tube/127.0.0.1#5335 +ipset=/xxxmomporn.tube/gfwlist +server=/facebooksuppliers.com/127.0.0.1#5335 +ipset=/facebooksuppliers.com/gfwlist +server=/paypal-pages.com/127.0.0.1#5335 +ipset=/paypal-pages.com/gfwlist +server=/chickstagram.com/127.0.0.1#5335 +ipset=/chickstagram.com/gfwlist +server=/thepornlist.net/127.0.0.1#5335 +ipset=/thepornlist.net/gfwlist +server=/bloombergvault.com/127.0.0.1#5335 +ipset=/bloombergvault.com/gfwlist +server=/xfantazy.com/127.0.0.1#5335 +ipset=/xfantazy.com/gfwlist +server=/bonyu.cyou/127.0.0.1#5335 +ipset=/bonyu.cyou/gfwlist +server=/8muses.com/127.0.0.1#5335 +ipset=/8muses.com/gfwlist +server=/xxxfuckmom.com/127.0.0.1#5335 +ipset=/xxxfuckmom.com/gfwlist +server=/xxxforte.com/127.0.0.1#5335 +ipset=/xxxforte.com/gfwlist +server=/xxxflare.com/127.0.0.1#5335 +ipset=/xxxflare.com/gfwlist +server=/mastercard.ba/127.0.0.1#5335 +ipset=/mastercard.ba/gfwlist +server=/hitbdsm.com/127.0.0.1#5335 +ipset=/hitbdsm.com/gfwlist +server=/hardanalfucking.com/127.0.0.1#5335 +ipset=/hardanalfucking.com/gfwlist +server=/mistresskym.com/127.0.0.1#5335 +ipset=/mistresskym.com/gfwlist +server=/xxxbolivianas.com/127.0.0.1#5335 +ipset=/xxxbolivianas.com/gfwlist +server=/paypal.ca/127.0.0.1#5335 +ipset=/paypal.ca/gfwlist +server=/disney-discount.com/127.0.0.1#5335 +ipset=/disney-discount.com/gfwlist +server=/bijukujo.club/127.0.0.1#5335 +ipset=/bijukujo.club/gfwlist +server=/fb.me/127.0.0.1#5335 +ipset=/fb.me/gfwlist +server=/xxx-video.cfd/127.0.0.1#5335 +ipset=/xxx-video.cfd/gfwlist +server=/xxu.mobi/127.0.0.1#5335 +ipset=/xxu.mobi/gfwlist +server=/needforspeedstreetkings.com/127.0.0.1#5335 +ipset=/needforspeedstreetkings.com/gfwlist +server=/facebook123.org/127.0.0.1#5335 +ipset=/facebook123.org/gfwlist +server=/clips4sale.com/127.0.0.1#5335 +ipset=/clips4sale.com/gfwlist +server=/volvotrucks.co.zw/127.0.0.1#5335 +ipset=/volvotrucks.co.zw/gfwlist +server=/xxindianporn.com/127.0.0.1#5335 +ipset=/xxindianporn.com/gfwlist +server=/calgoncarbon.com/127.0.0.1#5335 +ipset=/calgoncarbon.com/gfwlist +server=/pjgirls.com/127.0.0.1#5335 +ipset=/pjgirls.com/gfwlist +server=/bahamut.com.tw/127.0.0.1#5335 +ipset=/bahamut.com.tw/gfwlist +server=/minivancouver.ca/127.0.0.1#5335 +ipset=/minivancouver.ca/gfwlist +server=/ngeo.com/127.0.0.1#5335 +ipset=/ngeo.com/gfwlist +server=/minigrandriver.com/127.0.0.1#5335 +ipset=/minigrandriver.com/gfwlist +server=/biologists.com/127.0.0.1#5335 +ipset=/biologists.com/gfwlist +server=/ikea.ie/127.0.0.1#5335 +ipset=/ikea.ie/gfwlist +server=/foxsports.net.br/127.0.0.1#5335 +ipset=/foxsports.net.br/gfwlist +server=/durex.us/127.0.0.1#5335 +ipset=/durex.us/gfwlist +server=/thechronicle.com.au/127.0.0.1#5335 +ipset=/thechronicle.com.au/gfwlist +server=/watchespn.com/127.0.0.1#5335 +ipset=/watchespn.com/gfwlist +server=/mirrormedia.com.tw/127.0.0.1#5335 +ipset=/mirrormedia.com.tw/gfwlist +server=/xvideos.la/127.0.0.1#5335 +ipset=/xvideos.la/gfwlist +server=/xvideo-jp.com/127.0.0.1#5335 +ipset=/xvideo-jp.com/gfwlist +server=/faesebook.com/127.0.0.1#5335 +ipset=/faesebook.com/gfwlist +server=/mini.fi/127.0.0.1#5335 +ipset=/mini.fi/gfwlist +server=/vine.co/127.0.0.1#5335 +ipset=/vine.co/gfwlist +server=/epinions.com/127.0.0.1#5335 +ipset=/epinions.com/gfwlist +server=/adultrental.com/127.0.0.1#5335 +ipset=/adultrental.com/gfwlist +server=/microsoftcloud.com/127.0.0.1#5335 +ipset=/microsoftcloud.com/gfwlist +server=/fanbox.cc/127.0.0.1#5335 +ipset=/fanbox.cc/gfwlist +server=/xpornblog.com/127.0.0.1#5335 +ipset=/xpornblog.com/gfwlist +server=/xpaja.net/127.0.0.1#5335 +ipset=/xpaja.net/gfwlist +server=/mr-tireman.jp/127.0.0.1#5335 +ipset=/mr-tireman.jp/gfwlist +server=/xnxxporn.fun/127.0.0.1#5335 +ipset=/xnxxporn.fun/gfwlist +server=/xnxxmovies.com/127.0.0.1#5335 +ipset=/xnxxmovies.com/gfwlist +server=/trithucvn.net/127.0.0.1#5335 +ipset=/trithucvn.net/gfwlist +server=/xnxxcomvideos.com/127.0.0.1#5335 +ipset=/xnxxcomvideos.com/gfwlist +server=/physicalexam.info/127.0.0.1#5335 +ipset=/physicalexam.info/gfwlist +server=/fank.ru/127.0.0.1#5335 +ipset=/fank.ru/gfwlist +server=/zert.ch/127.0.0.1#5335 +ipset=/zert.ch/gfwlist +server=/scholar.google.lv/127.0.0.1#5335 +ipset=/scholar.google.lv/gfwlist +server=/hentaitalk.com/127.0.0.1#5335 +ipset=/hentaitalk.com/gfwlist +server=/ebayads.com/127.0.0.1#5335 +ipset=/ebayads.com/gfwlist +server=/xmissy.nl/127.0.0.1#5335 +ipset=/xmissy.nl/gfwlist +server=/pokemonpicross.com/127.0.0.1#5335 +ipset=/pokemonpicross.com/gfwlist +server=/drdrebeatsdiscount.com/127.0.0.1#5335 +ipset=/drdrebeatsdiscount.com/gfwlist +server=/anudetube.com/127.0.0.1#5335 +ipset=/anudetube.com/gfwlist +server=/ibook.net/127.0.0.1#5335 +ipset=/ibook.net/gfwlist +server=/wholecitiesfoundation.org/127.0.0.1#5335 +ipset=/wholecitiesfoundation.org/gfwlist +server=/gvt0.com/127.0.0.1#5335 +ipset=/gvt0.com/gfwlist +server=/silversluts.com/127.0.0.1#5335 +ipset=/silversluts.com/gfwlist +server=/minghui.org/127.0.0.1#5335 +ipset=/minghui.org/gfwlist +server=/xdaddy.in/127.0.0.1#5335 +ipset=/xdaddy.in/gfwlist +server=/soccermatchpass.com/127.0.0.1#5335 +ipset=/soccermatchpass.com/gfwlist +server=/faceebook.com/127.0.0.1#5335 +ipset=/faceebook.com/gfwlist +server=/xchina.fun/127.0.0.1#5335 +ipset=/xchina.fun/gfwlist +server=/volvotrucks.ba/127.0.0.1#5335 +ipset=/volvotrucks.ba/gfwlist +server=/facrbook.com/127.0.0.1#5335 +ipset=/facrbook.com/gfwlist +server=/mastercard.sk/127.0.0.1#5335 +ipset=/mastercard.sk/gfwlist +server=/cheapnikeoutlet.com/127.0.0.1#5335 +ipset=/cheapnikeoutlet.com/gfwlist +server=/cbsimg.net/127.0.0.1#5335 +ipset=/cbsimg.net/gfwlist +server=/foxentertainment.com/127.0.0.1#5335 +ipset=/foxentertainment.com/gfwlist +server=/xbahis55.com/127.0.0.1#5335 +ipset=/xbahis55.com/gfwlist +server=/kissjav.com/127.0.0.1#5335 +ipset=/kissjav.com/gfwlist +server=/xanimeporn.tv/127.0.0.1#5335 +ipset=/xanimeporn.tv/gfwlist +server=/douyintt10.me/127.0.0.1#5335 +ipset=/douyintt10.me/gfwlist +server=/shemalepornonly.com/127.0.0.1#5335 +ipset=/shemalepornonly.com/gfwlist +server=/embl.org/127.0.0.1#5335 +ipset=/embl.org/gfwlist +server=/durex-slovenia.si/127.0.0.1#5335 +ipset=/durex-slovenia.si/gfwlist +server=/ntdtvla.com/127.0.0.1#5335 +ipset=/ntdtvla.com/gfwlist +server=/x3guide.com/127.0.0.1#5335 +ipset=/x3guide.com/gfwlist +server=/yjcontentdelivery.com/127.0.0.1#5335 +ipset=/yjcontentdelivery.com/gfwlist +server=/buypass.se/127.0.0.1#5335 +ipset=/buypass.se/gfwlist +server=/alpherafs.co.nz/127.0.0.1#5335 +ipset=/alpherafs.co.nz/gfwlist +server=/bestbuysgeeksquad.com/127.0.0.1#5335 +ipset=/bestbuysgeeksquad.com/gfwlist +server=/myteenwebcam.com/127.0.0.1#5335 +ipset=/myteenwebcam.com/gfwlist +server=/douya.org/127.0.0.1#5335 +ipset=/douya.org/gfwlist +server=/ginzasonypark.jp/127.0.0.1#5335 +ipset=/ginzasonypark.jp/gfwlist +server=/braintreepaymentsolutions.com/127.0.0.1#5335 +ipset=/braintreepaymentsolutions.com/gfwlist +server=/winning11.com/127.0.0.1#5335 +ipset=/winning11.com/gfwlist +server=/willyporn.com/127.0.0.1#5335 +ipset=/willyporn.com/gfwlist +server=/wifemovies.net/127.0.0.1#5335 +ipset=/wifemovies.net/gfwlist +server=/wifeloversporn.com/127.0.0.1#5335 +ipset=/wifeloversporn.com/gfwlist +server=/minimontrealcentre.ca/127.0.0.1#5335 +ipset=/minimontrealcentre.ca/gfwlist +server=/playmeow.com/127.0.0.1#5335 +ipset=/playmeow.com/gfwlist +server=/allmomsex.com/127.0.0.1#5335 +ipset=/allmomsex.com/gfwlist +server=/freegaypornfinder.com/127.0.0.1#5335 +ipset=/freegaypornfinder.com/gfwlist +server=/hpvirtualthin.com/127.0.0.1#5335 +ipset=/hpvirtualthin.com/gfwlist +server=/whitexxxtube.com/127.0.0.1#5335 +ipset=/whitexxxtube.com/gfwlist +server=/nike-dunksb.com/127.0.0.1#5335 +ipset=/nike-dunksb.com/gfwlist +server=/monstercheapbeatss.com/127.0.0.1#5335 +ipset=/monstercheapbeatss.com/gfwlist +server=/whentai.com/127.0.0.1#5335 +ipset=/whentai.com/gfwlist +server=/visa.com.pa/127.0.0.1#5335 +ipset=/visa.com.pa/gfwlist +server=/maskedsingerfox.com/127.0.0.1#5335 +ipset=/maskedsingerfox.com/gfwlist +server=/facebook-newsroom.com/127.0.0.1#5335 +ipset=/facebook-newsroom.com/gfwlist +server=/ebay-discoveries.com/127.0.0.1#5335 +ipset=/ebay-discoveries.com/gfwlist +server=/weknowporn.com/127.0.0.1#5335 +ipset=/weknowporn.com/gfwlist +server=/cfna.com/127.0.0.1#5335 +ipset=/cfna.com/gfwlist +server=/pornworld.to/127.0.0.1#5335 +ipset=/pornworld.to/gfwlist +server=/pinterest.nl/127.0.0.1#5335 +ipset=/pinterest.nl/gfwlist +server=/tospo-keiba.jp/127.0.0.1#5335 +ipset=/tospo-keiba.jp/gfwlist +server=/linkedin.com/127.0.0.1#5335 +ipset=/linkedin.com/gfwlist +server=/outletbeatsshop.com/127.0.0.1#5335 +ipset=/outletbeatsshop.com/gfwlist +server=/tvbs.com.tw/127.0.0.1#5335 +ipset=/tvbs.com.tw/gfwlist +server=/binancezh.co/127.0.0.1#5335 +ipset=/binancezh.co/gfwlist +server=/watchersweb.com/127.0.0.1#5335 +ipset=/watchersweb.com/gfwlist +server=/warddogs.com/127.0.0.1#5335 +ipset=/warddogs.com/gfwlist +server=/vrfdgswx.xyz/127.0.0.1#5335 +ipset=/vrfdgswx.xyz/gfwlist +server=/youtube.cr/127.0.0.1#5335 +ipset=/youtube.cr/gfwlist +server=/newsmaxtv.com/127.0.0.1#5335 +ipset=/newsmaxtv.com/gfwlist +server=/visa.com.kn/127.0.0.1#5335 +ipset=/visa.com.kn/gfwlist +server=/pornohutdeutsch.net/127.0.0.1#5335 +ipset=/pornohutdeutsch.net/gfwlist +server=/watchmygf.net/127.0.0.1#5335 +ipset=/watchmygf.net/gfwlist +server=/mini-connected.co.uk/127.0.0.1#5335 +ipset=/mini-connected.co.uk/gfwlist +server=/voyeurhouse.com/127.0.0.1#5335 +ipset=/voyeurhouse.com/gfwlist +server=/pornovenezolano.com.ve/127.0.0.1#5335 +ipset=/pornovenezolano.com.ve/gfwlist +server=/vomitkings.com/127.0.0.1#5335 +ipset=/vomitkings.com/gfwlist +server=/onesiterip.com/127.0.0.1#5335 +ipset=/onesiterip.com/gfwlist +server=/4kup.net/127.0.0.1#5335 +ipset=/4kup.net/gfwlist +server=/virtualpartyworld.com/127.0.0.1#5335 +ipset=/virtualpartyworld.com/gfwlist +server=/vintagexxxfilms.com/127.0.0.1#5335 +ipset=/vintagexxxfilms.com/gfwlist +server=/megatitsminka.com/127.0.0.1#5335 +ipset=/megatitsminka.com/gfwlist +server=/hycgm1324.shop/127.0.0.1#5335 +ipset=/hycgm1324.shop/gfwlist +server=/celebritynakeds.com/127.0.0.1#5335 +ipset=/celebritynakeds.com/gfwlist +server=/viet.sex/127.0.0.1#5335 +ipset=/viet.sex/gfwlist +server=/bmw-connecteddrive.com.mt/127.0.0.1#5335 +ipset=/bmw-connecteddrive.com.mt/gfwlist +server=/kenyasexparadise.com/127.0.0.1#5335 +ipset=/kenyasexparadise.com/gfwlist +server=/only-xxx.com/127.0.0.1#5335 +ipset=/only-xxx.com/gfwlist +server=/menhdv.com/127.0.0.1#5335 +ipset=/menhdv.com/gfwlist +server=/malayporn.site/127.0.0.1#5335 +ipset=/malayporn.site/gfwlist +server=/nike.shop/127.0.0.1#5335 +ipset=/nike.shop/gfwlist +server=/bookshome.net/127.0.0.1#5335 +ipset=/bookshome.net/gfwlist +server=/youtube.ca/127.0.0.1#5335 +ipset=/youtube.ca/gfwlist +server=/harpercollinschildrensbooks.co.uk/127.0.0.1#5335 +ipset=/harpercollinschildrensbooks.co.uk/gfwlist +server=/volvobuses.com.ar/127.0.0.1#5335 +ipset=/volvobuses.com.ar/gfwlist +server=/4ksex.me/127.0.0.1#5335 +ipset=/4ksex.me/gfwlist +server=/videosxxxnicaragua.top/127.0.0.1#5335 +ipset=/videosxxxnicaragua.top/gfwlist +server=/disney.co.za/127.0.0.1#5335 +ipset=/disney.co.za/gfwlist +server=/apress.com/127.0.0.1#5335 +ipset=/apress.com/gfwlist +server=/nikefactorystore.com/127.0.0.1#5335 +ipset=/nikefactorystore.com/gfwlist +server=/starwarsjedifallenorder.com/127.0.0.1#5335 +ipset=/starwarsjedifallenorder.com/gfwlist +server=/mcisco.com/127.0.0.1#5335 +ipset=/mcisco.com/gfwlist +server=/drebeatsoutletstore.com/127.0.0.1#5335 +ipset=/drebeatsoutletstore.com/gfwlist +server=/choicereviews.org/127.0.0.1#5335 +ipset=/choicereviews.org/gfwlist +server=/vanish.pt/127.0.0.1#5335 +ipset=/vanish.pt/gfwlist +server=/simg.jp/127.0.0.1#5335 +ipset=/simg.jp/gfwlist +server=/picsee.pro/127.0.0.1#5335 +ipset=/picsee.pro/gfwlist +server=/natgeomaps.com/127.0.0.1#5335 +ipset=/natgeomaps.com/gfwlist +server=/free18.net/127.0.0.1#5335 +ipset=/free18.net/gfwlist +server=/alphabet.com.pl/127.0.0.1#5335 +ipset=/alphabet.com.pl/gfwlist +server=/vercomicsporno.xxx/127.0.0.1#5335 +ipset=/vercomicsporno.xxx/gfwlist +server=/ftiecla.com/127.0.0.1#5335 +ipset=/ftiecla.com/gfwlist +server=/vaginalultrasound.info/127.0.0.1#5335 +ipset=/vaginalultrasound.info/gfwlist +server=/v7hds.com/127.0.0.1#5335 +ipset=/v7hds.com/gfwlist +server=/visaluxuryhotelcollection.com/127.0.0.1#5335 +ipset=/visaluxuryhotelcollection.com/gfwlist +server=/face-book.com/127.0.0.1#5335 +ipset=/face-book.com/gfwlist +server=/fnlondon.com/127.0.0.1#5335 +ipset=/fnlondon.com/gfwlist +server=/ikea.com.ru/127.0.0.1#5335 +ipset=/ikea.com.ru/gfwlist +server=/pearson.es/127.0.0.1#5335 +ipset=/pearson.es/gfwlist +server=/tgutube.com/127.0.0.1#5335 +ipset=/tgutube.com/gfwlist +server=/urasma.com/127.0.0.1#5335 +ipset=/urasma.com/gfwlist +server=/akaeai.com/127.0.0.1#5335 +ipset=/akaeai.com/gfwlist +server=/beautifulandbusty.com/127.0.0.1#5335 +ipset=/beautifulandbusty.com/gfwlist +server=/reutersmedia.net/127.0.0.1#5335 +ipset=/reutersmedia.net/gfwlist +server=/icloud.hu/127.0.0.1#5335 +ipset=/icloud.hu/gfwlist +server=/ibm.com/127.0.0.1#5335 +ipset=/ibm.com/gfwlist +server=/uncensoredsexparties.com/127.0.0.1#5335 +ipset=/uncensoredsexparties.com/gfwlist +server=/bridgestonetire.ca/127.0.0.1#5335 +ipset=/bridgestonetire.ca/gfwlist +server=/openssl.org/127.0.0.1#5335 +ipset=/openssl.org/gfwlist +server=/ujapanesesex.com/127.0.0.1#5335 +ipset=/ujapanesesex.com/gfwlist +server=/telegram.org/127.0.0.1#5335 +ipset=/telegram.org/gfwlist +server=/tytng189.com/127.0.0.1#5335 +ipset=/tytng189.com/gfwlist +server=/aple.com/127.0.0.1#5335 +ipset=/aple.com/gfwlist +server=/tomovie.net/127.0.0.1#5335 +ipset=/tomovie.net/gfwlist +server=/ius.io/127.0.0.1#5335 +ipset=/ius.io/gfwlist +server=/tushy.com/127.0.0.1#5335 +ipset=/tushy.com/gfwlist +server=/glyphsapp.com/127.0.0.1#5335 +ipset=/glyphsapp.com/gfwlist +server=/nikelunarglide.com/127.0.0.1#5335 +ipset=/nikelunarglide.com/gfwlist +server=/fxn.ws/127.0.0.1#5335 +ipset=/fxn.ws/gfwlist +server=/bmw.lt/127.0.0.1#5335 +ipset=/bmw.lt/gfwlist +server=/ebayforcharity.org/127.0.0.1#5335 +ipset=/ebayforcharity.org/gfwlist +server=/ebay-inc.net/127.0.0.1#5335 +ipset=/ebay-inc.net/gfwlist +server=/eracom.com.tw/127.0.0.1#5335 +ipset=/eracom.com.tw/gfwlist +server=/thesims3.com/127.0.0.1#5335 +ipset=/thesims3.com/gfwlist +server=/tubepornstars.com/127.0.0.1#5335 +ipset=/tubepornstars.com/gfwlist +server=/webkit.org/127.0.0.1#5335 +ipset=/webkit.org/gfwlist +server=/youtubegaming.com/127.0.0.1#5335 +ipset=/youtubegaming.com/gfwlist +server=/hcbdsm.com/127.0.0.1#5335 +ipset=/hcbdsm.com/gfwlist +server=/tubeorigin.com/127.0.0.1#5335 +ipset=/tubeorigin.com/gfwlist +server=/youtube.tv/127.0.0.1#5335 +ipset=/youtube.tv/gfwlist +server=/monsterbeatsbydreaustraliacheap.com/127.0.0.1#5335 +ipset=/monsterbeatsbydreaustraliacheap.com/gfwlist +server=/connaissancesfinancierespratiques.ca/127.0.0.1#5335 +ipset=/connaissancesfinancierespratiques.ca/gfwlist +server=/tiendabestbuy.com/127.0.0.1#5335 +ipset=/tiendabestbuy.com/gfwlist +server=/tubedupe.com/127.0.0.1#5335 +ipset=/tubedupe.com/gfwlist +server=/tubecaptain.com/127.0.0.1#5335 +ipset=/tubecaptain.com/gfwlist +server=/tube8zoo.com/127.0.0.1#5335 +ipset=/tube8zoo.com/gfwlist +server=/tube-pornomovs.com/127.0.0.1#5335 +ipset=/tube-pornomovs.com/gfwlist +server=/alphera.com.hk/127.0.0.1#5335 +ipset=/alphera.com.hk/gfwlist +server=/ftopx.com/127.0.0.1#5335 +ipset=/ftopx.com/gfwlist +server=/tiohentai.com/127.0.0.1#5335 +ipset=/tiohentai.com/gfwlist +server=/uug23.com/127.0.0.1#5335 +ipset=/uug23.com/gfwlist +server=/kbdxlesx.xyz/127.0.0.1#5335 +ipset=/kbdxlesx.xyz/gfwlist +server=/audiomonsterbeatsonline.com/127.0.0.1#5335 +ipset=/audiomonsterbeatsonline.com/gfwlist +server=/justhd.xyz/127.0.0.1#5335 +ipset=/justhd.xyz/gfwlist +server=/mastercard.dk/127.0.0.1#5335 +ipset=/mastercard.dk/gfwlist +server=/travelgirls.com/127.0.0.1#5335 +ipset=/travelgirls.com/gfwlist +server=/sexgame.com/127.0.0.1#5335 +ipset=/sexgame.com/gfwlist +server=/transangels.com/127.0.0.1#5335 +ipset=/transangels.com/gfwlist +server=/yahoo.be/127.0.0.1#5335 +ipset=/yahoo.be/gfwlist +server=/colegialasreales.com/127.0.0.1#5335 +ipset=/colegialasreales.com/gfwlist +server=/cbssvideo.com/127.0.0.1#5335 +ipset=/cbssvideo.com/gfwlist +server=/imac.eu/127.0.0.1#5335 +ipset=/imac.eu/gfwlist +server=/msftauth.net/127.0.0.1#5335 +ipset=/msftauth.net/gfwlist +server=/binancezh.top/127.0.0.1#5335 +ipset=/binancezh.top/gfwlist +server=/foxnewsrundown.com/127.0.0.1#5335 +ipset=/foxnewsrundown.com/gfwlist +server=/akamai-platform-staging.com/127.0.0.1#5335 +ipset=/akamai-platform-staging.com/gfwlist +server=/tophentaicomics.com/127.0.0.1#5335 +ipset=/tophentaicomics.com/gfwlist +server=/tophentai.biz/127.0.0.1#5335 +ipset=/tophentai.biz/gfwlist +server=/facebooktv.net/127.0.0.1#5335 +ipset=/facebooktv.net/gfwlist +server=/etherscan.io/127.0.0.1#5335 +ipset=/etherscan.io/gfwlist +server=/mingwatch.com/127.0.0.1#5335 +ipset=/mingwatch.com/gfwlist +server=/natgeokidsbooks.co.uk/127.0.0.1#5335 +ipset=/natgeokidsbooks.co.uk/gfwlist +server=/airwick.co.nz/127.0.0.1#5335 +ipset=/airwick.co.nz/gfwlist +server=/toperoticartsites.com/127.0.0.1#5335 +ipset=/toperoticartsites.com/gfwlist +server=/intel.uk/127.0.0.1#5335 +ipset=/intel.uk/gfwlist +server=/tokyomotion.net/127.0.0.1#5335 +ipset=/tokyomotion.net/gfwlist +server=/mariosupersluggers.com/127.0.0.1#5335 +ipset=/mariosupersluggers.com/gfwlist +server=/byspotify.com/127.0.0.1#5335 +ipset=/byspotify.com/gfwlist +server=/ebayon.net/127.0.0.1#5335 +ipset=/ebayon.net/gfwlist +server=/titsintops.com/127.0.0.1#5335 +ipset=/titsintops.com/gfwlist +server=/collabora.com/127.0.0.1#5335 +ipset=/collabora.com/gfwlist +server=/sonyentertainmentnetwork.com/127.0.0.1#5335 +ipset=/sonyentertainmentnetwork.com/gfwlist +server=/hentai24h.org/127.0.0.1#5335 +ipset=/hentai24h.org/gfwlist +server=/visa.com.au/127.0.0.1#5335 +ipset=/visa.com.au/gfwlist +server=/3dsexmovies.biz/127.0.0.1#5335 +ipset=/3dsexmovies.biz/gfwlist +server=/tinhduc.org/127.0.0.1#5335 +ipset=/tinhduc.org/gfwlist +server=/timo0.com/127.0.0.1#5335 +ipset=/timo0.com/gfwlist +server=/fbsbx.net/127.0.0.1#5335 +ipset=/fbsbx.net/gfwlist +server=/thumbnailseries.com/127.0.0.1#5335 +ipset=/thumbnailseries.com/gfwlist +server=/graneodin.com.mx/127.0.0.1#5335 +ipset=/graneodin.com.mx/gfwlist +server=/porndig.com/127.0.0.1#5335 +ipset=/porndig.com/gfwlist +server=/pornscum.com/127.0.0.1#5335 +ipset=/pornscum.com/gfwlist +server=/akamai-sucks.net/127.0.0.1#5335 +ipset=/akamai-sucks.net/gfwlist +server=/facebookporno.net/127.0.0.1#5335 +ipset=/facebookporno.net/gfwlist +server=/metartnetwork.com/127.0.0.1#5335 +ipset=/metartnetwork.com/gfwlist +server=/r34porn.net/127.0.0.1#5335 +ipset=/r34porn.net/gfwlist +server=/hairy-beauty.com/127.0.0.1#5335 +ipset=/hairy-beauty.com/gfwlist +server=/scoreclassics.com/127.0.0.1#5335 +ipset=/scoreclassics.com/gfwlist +server=/onionshare.org/127.0.0.1#5335 +ipset=/onionshare.org/gfwlist +server=/pscdn.co/127.0.0.1#5335 +ipset=/pscdn.co/gfwlist +server=/uncensoredhentai.xxx/127.0.0.1#5335 +ipset=/uncensoredhentai.xxx/gfwlist +server=/smyw.org/127.0.0.1#5335 +ipset=/smyw.org/gfwlist +server=/porn93.cc/127.0.0.1#5335 +ipset=/porn93.cc/gfwlist +server=/redino.tw/127.0.0.1#5335 +ipset=/redino.tw/gfwlist +server=/thehabibshow.com/127.0.0.1#5335 +ipset=/thehabibshow.com/gfwlist +server=/thefappening.wiki/127.0.0.1#5335 +ipset=/thefappening.wiki/gfwlist +server=/mini.de/127.0.0.1#5335 +ipset=/mini.de/gfwlist +server=/academic.eb.com/127.0.0.1#5335 +ipset=/academic.eb.com/gfwlist +server=/rsf.org/127.0.0.1#5335 +ipset=/rsf.org/gfwlist +server=/thebondagefiles.com/127.0.0.1#5335 +ipset=/thebondagefiles.com/gfwlist +server=/russianrape.org/127.0.0.1#5335 +ipset=/russianrape.org/gfwlist +server=/gaysonic.eu/127.0.0.1#5335 +ipset=/gaysonic.eu/gfwlist +server=/xxxpenguin.com/127.0.0.1#5335 +ipset=/xxxpenguin.com/gfwlist +server=/travelcontroller.com/127.0.0.1#5335 +ipset=/travelcontroller.com/gfwlist +server=/thaigirls100.net/127.0.0.1#5335 +ipset=/thaigirls100.net/gfwlist +server=/amsterdamhotescort.com/127.0.0.1#5335 +ipset=/amsterdamhotescort.com/gfwlist +server=/msnbc.com/127.0.0.1#5335 +ipset=/msnbc.com/gfwlist +server=/hpcpi.com/127.0.0.1#5335 +ipset=/hpcpi.com/gfwlist +server=/cartoonville.net/127.0.0.1#5335 +ipset=/cartoonville.net/gfwlist +server=/boyztube.com/127.0.0.1#5335 +ipset=/boyztube.com/gfwlist +server=/teenwebcamtube.com/127.0.0.1#5335 +ipset=/teenwebcamtube.com/gfwlist +server=/illusionchn.com/127.0.0.1#5335 +ipset=/illusionchn.com/gfwlist +server=/azatliq.org/127.0.0.1#5335 +ipset=/azatliq.org/gfwlist +server=/devilsfilm.com/127.0.0.1#5335 +ipset=/devilsfilm.com/gfwlist +server=/ic.ac.uk/127.0.0.1#5335 +ipset=/ic.ac.uk/gfwlist +server=/blowjobit.com/127.0.0.1#5335 +ipset=/blowjobit.com/gfwlist +server=/teen3x.mobi/127.0.0.1#5335 +ipset=/teen3x.mobi/gfwlist +server=/ciscofax.com/127.0.0.1#5335 +ipset=/ciscofax.com/gfwlist +server=/friendfeedmedia.com/127.0.0.1#5335 +ipset=/friendfeedmedia.com/gfwlist +server=/netflixdnstest7.com/127.0.0.1#5335 +ipset=/netflixdnstest7.com/gfwlist +server=/mirrorsedge2d.com/127.0.0.1#5335 +ipset=/mirrorsedge2d.com/gfwlist +server=/prastitutki.ru/127.0.0.1#5335 +ipset=/prastitutki.ru/gfwlist +server=/disneycruisebrasil.com/127.0.0.1#5335 +ipset=/disneycruisebrasil.com/gfwlist +server=/uk-exhibitionist.com/127.0.0.1#5335 +ipset=/uk-exhibitionist.com/gfwlist +server=/taxi69.com/127.0.0.1#5335 +ipset=/taxi69.com/gfwlist +server=/disney.id/127.0.0.1#5335 +ipset=/disney.id/gfwlist +server=/ovid.com/127.0.0.1#5335 +ipset=/ovid.com/gfwlist +server=/tabooporns.com/127.0.0.1#5335 +ipset=/tabooporns.com/gfwlist +server=/foxsports.sv/127.0.0.1#5335 +ipset=/foxsports.sv/gfwlist +server=/sxshentai.com/127.0.0.1#5335 +ipset=/sxshentai.com/gfwlist +server=/paysitesreviews.net/127.0.0.1#5335 +ipset=/paysitesreviews.net/gfwlist +server=/youtube.ie/127.0.0.1#5335 +ipset=/youtube.ie/gfwlist +server=/cloudimage.io/127.0.0.1#5335 +ipset=/cloudimage.io/gfwlist +server=/disneyaulani.com/127.0.0.1#5335 +ipset=/disneyaulani.com/gfwlist +server=/superhqporn.com/127.0.0.1#5335 +ipset=/superhqporn.com/gfwlist +server=/supergratisporno.com/127.0.0.1#5335 +ipset=/supergratisporno.com/gfwlist +server=/beatstoreusa.com/127.0.0.1#5335 +ipset=/beatstoreusa.com/gfwlist +server=/deviantart.com/127.0.0.1#5335 +ipset=/deviantart.com/gfwlist +server=/sunporno.com/127.0.0.1#5335 +ipset=/sunporno.com/gfwlist +server=/globalsign-media.com/127.0.0.1#5335 +ipset=/globalsign-media.com/gfwlist +server=/mediachinese.com/127.0.0.1#5335 +ipset=/mediachinese.com/gfwlist +server=/streamsex.com/127.0.0.1#5335 +ipset=/streamsex.com/gfwlist +server=/stileproject.com/127.0.0.1#5335 +ipset=/stileproject.com/gfwlist +server=/taiav.com/127.0.0.1#5335 +ipset=/taiav.com/gfwlist +server=/amateursvid.com/127.0.0.1#5335 +ipset=/amateursvid.com/gfwlist +server=/ikea.net/127.0.0.1#5335 +ipset=/ikea.net/gfwlist +server=/jennylist.xyz/127.0.0.1#5335 +ipset=/jennylist.xyz/gfwlist +server=/microsoft-ppe.com/127.0.0.1#5335 +ipset=/microsoft-ppe.com/gfwlist +server=/supplybestjerseys.com/127.0.0.1#5335 +ipset=/supplybestjerseys.com/gfwlist +server=/sshs.pw/127.0.0.1#5335 +ipset=/sshs.pw/gfwlist +server=/nexusmods.com/127.0.0.1#5335 +ipset=/nexusmods.com/gfwlist +server=/ebayclassifiedsgroup.org/127.0.0.1#5335 +ipset=/ebayclassifiedsgroup.org/gfwlist +server=/riot-games.com/127.0.0.1#5335 +ipset=/riot-games.com/gfwlist +server=/spectraltube.com/127.0.0.1#5335 +ipset=/spectraltube.com/gfwlist +server=/youtube.me/127.0.0.1#5335 +ipset=/youtube.me/gfwlist +server=/hbo.com.c.footprint.net/127.0.0.1#5335 +ipset=/hbo.com.c.footprint.net/gfwlist +server=/thehun.net/127.0.0.1#5335 +ipset=/thehun.net/gfwlist +server=/smutcam.com/127.0.0.1#5335 +ipset=/smutcam.com/gfwlist +server=/sksarab.top/127.0.0.1#5335 +ipset=/sksarab.top/gfwlist +server=/millymarks.com/127.0.0.1#5335 +ipset=/millymarks.com/gfwlist +server=/nike.hk/127.0.0.1#5335 +ipset=/nike.hk/gfwlist +server=/pki-poste.ch/127.0.0.1#5335 +ipset=/pki-poste.ch/gfwlist +server=/electrochem.org/127.0.0.1#5335 +ipset=/electrochem.org/gfwlist +server=/newsmax.com/127.0.0.1#5335 +ipset=/newsmax.com/gfwlist +server=/cashvideotube.com/127.0.0.1#5335 +ipset=/cashvideotube.com/gfwlist +server=/firestone.com.mx/127.0.0.1#5335 +ipset=/firestone.com.mx/gfwlist +server=/sisisl.com/127.0.0.1#5335 +ipset=/sisisl.com/gfwlist +server=/bloombergindices.com/127.0.0.1#5335 +ipset=/bloombergindices.com/gfwlist +server=/instagramq.com/127.0.0.1#5335 +ipset=/instagramq.com/gfwlist +server=/hpshooping.com/127.0.0.1#5335 +ipset=/hpshooping.com/gfwlist +server=/orl.ly/127.0.0.1#5335 +ipset=/orl.ly/gfwlist +server=/nikeshoemarket.com/127.0.0.1#5335 +ipset=/nikeshoemarket.com/gfwlist +server=/chromium.org/127.0.0.1#5335 +ipset=/chromium.org/gfwlist +server=/free-3d-porn.com/127.0.0.1#5335 +ipset=/free-3d-porn.com/gfwlist +server=/av1688.cc/127.0.0.1#5335 +ipset=/av1688.cc/gfwlist +server=/shittytube.com/127.0.0.1#5335 +ipset=/shittytube.com/gfwlist +server=/mini-bahrain.com/127.0.0.1#5335 +ipset=/mini-bahrain.com/gfwlist +server=/bloomberg.com.br/127.0.0.1#5335 +ipset=/bloomberg.com.br/gfwlist +server=/shithd.com/127.0.0.1#5335 +ipset=/shithd.com/gfwlist +server=/javmix.tv/127.0.0.1#5335 +ipset=/javmix.tv/gfwlist +server=/humoron.com/127.0.0.1#5335 +ipset=/humoron.com/gfwlist +server=/shemale-porn-galls.com/127.0.0.1#5335 +ipset=/shemale-porn-galls.com/gfwlist +server=/masterclass.com/127.0.0.1#5335 +ipset=/masterclass.com/gfwlist +server=/accuweather.com/127.0.0.1#5335 +ipset=/accuweather.com/gfwlist +server=/volvobuses.co.za/127.0.0.1#5335 +ipset=/volvobuses.co.za/gfwlist +server=/sexywetpussy.com/127.0.0.1#5335 +ipset=/sexywetpussy.com/gfwlist +server=/sexyteenssite.com/127.0.0.1#5335 +ipset=/sexyteenssite.com/gfwlist +server=/sexysites.com.ph/127.0.0.1#5335 +ipset=/sexysites.com.ph/gfwlist +server=/theepochtimes.com/127.0.0.1#5335 +ipset=/theepochtimes.com/gfwlist +server=/asredas.com/127.0.0.1#5335 +ipset=/asredas.com/gfwlist +server=/jav.land/127.0.0.1#5335 +ipset=/jav.land/gfwlist +server=/hot2048.com/127.0.0.1#5335 +ipset=/hot2048.com/gfwlist +server=/sexyfuckgames.com/127.0.0.1#5335 +ipset=/sexyfuckgames.com/gfwlist +server=/youtubeembeddedplayer.googleapis.com/127.0.0.1#5335 +ipset=/youtubeembeddedplayer.googleapis.com/gfwlist +server=/gladporn.com/127.0.0.1#5335 +ipset=/gladporn.com/gfwlist server=/4ebaytraders.com/127.0.0.1#5335 ipset=/4ebaytraders.com/gfwlist server=/youtube.kz/127.0.0.1#5335 ipset=/youtube.kz/gfwlist server=/bmw-dubai.com/127.0.0.1#5335 ipset=/bmw-dubai.com/gfwlist -server=/gdansk-amazon.com/127.0.0.1#5335 -ipset=/gdansk-amazon.com/gfwlist -server=/rentaride.de/127.0.0.1#5335 -ipset=/rentaride.de/gfwlist +server=/ac-pocketcamp.com/127.0.0.1#5335 +ipset=/ac-pocketcamp.com/gfwlist +server=/bmw.uz/127.0.0.1#5335 +ipset=/bmw.uz/gfwlist server=/google.com.br/127.0.0.1#5335 ipset=/google.com.br/gfwlist -server=/solostudioksale.com/127.0.0.1#5335 -ipset=/solostudioksale.com/gfwlist -server=/bmw-asia.com/127.0.0.1#5335 -ipset=/bmw-asia.com/gfwlist -server=/scholar.google.lt/127.0.0.1#5335 -ipset=/scholar.google.lt/gfwlist -server=/pixiv.org/127.0.0.1#5335 -ipset=/pixiv.org/gfwlist -server=/dropboxcaptcha.com/127.0.0.1#5335 -ipset=/dropboxcaptcha.com/gfwlist -server=/downloadsforipod.com/127.0.0.1#5335 -ipset=/downloadsforipod.com/gfwlist -server=/akamai-access.net/127.0.0.1#5335 -ipset=/akamai-access.net/gfwlist -server=/alphabet.lv/127.0.0.1#5335 -ipset=/alphabet.lv/gfwlist -server=/amazonsdi.com/127.0.0.1#5335 -ipset=/amazonsdi.com/gfwlist -server=/amazonpay.in/127.0.0.1#5335 -ipset=/amazonpay.in/gfwlist -server=/ieee-cas.org/127.0.0.1#5335 -ipset=/ieee-cas.org/gfwlist +server=/redtube.blog/127.0.0.1#5335 +ipset=/redtube.blog/gfwlist +server=/sexxxdoll.com/127.0.0.1#5335 +ipset=/sexxxdoll.com/gfwlist +server=/sexxhd.de/127.0.0.1#5335 +ipset=/sexxhd.de/gfwlist +server=/nike0594.com/127.0.0.1#5335 +ipset=/nike0594.com/gfwlist +server=/sexualhentai.net/127.0.0.1#5335 +ipset=/sexualhentai.net/gfwlist +server=/infowarsmedia.com/127.0.0.1#5335 +ipset=/infowarsmedia.com/gfwlist +server=/youwuss.com/127.0.0.1#5335 +ipset=/youwuss.com/gfwlist +server=/qr.ae/127.0.0.1#5335 +ipset=/qr.ae/gfwlist +server=/sapphicerotica.com/127.0.0.1#5335 +ipset=/sapphicerotica.com/gfwlist +server=/sexstoriespost.com/127.0.0.1#5335 +ipset=/sexstoriespost.com/gfwlist +server=/sexsimulator.com/127.0.0.1#5335 +ipset=/sexsimulator.com/gfwlist server=/scholar.google.com.ar/127.0.0.1#5335 ipset=/scholar.google.com.ar/gfwlist -server=/free-aa.com/127.0.0.1#5335 -ipset=/free-aa.com/gfwlist +server=/sexopornolive.com/127.0.0.1#5335 +ipset=/sexopornolive.com/gfwlist server=/bmw-kuwait.com/127.0.0.1#5335 ipset=/bmw-kuwait.com/gfwlist -server=/paypalservice.com/127.0.0.1#5335 -ipset=/paypalservice.com/gfwlist -server=/cbspressexpress.com/127.0.0.1#5335 -ipset=/cbspressexpress.com/gfwlist -server=/huanyuju.com/127.0.0.1#5335 -ipset=/huanyuju.com/gfwlist +server=/drbl.in/127.0.0.1#5335 +ipset=/drbl.in/gfwlist +server=/applecentre.com.au/127.0.0.1#5335 +ipset=/applecentre.com.au/gfwlist +server=/xhcdn.com/127.0.0.1#5335 +ipset=/xhcdn.com/gfwlist server=/mearki.com/127.0.0.1#5335 ipset=/mearki.com/gfwlist -server=/bloombergbeta.com/127.0.0.1#5335 -ipset=/bloombergbeta.com/gfwlist -server=/raspberrypi.org/127.0.0.1#5335 -ipset=/raspberrypi.org/gfwlist -server=/eaassets-a.akamaihd.net/127.0.0.1#5335 -ipset=/eaassets-a.akamaihd.net/gfwlist -server=/titanfall.com/127.0.0.1#5335 -ipset=/titanfall.com/gfwlist +server=/sexmix.net/127.0.0.1#5335 +ipset=/sexmix.net/gfwlist +server=/spiceworks.com/127.0.0.1#5335 +ipset=/spiceworks.com/gfwlist +server=/sexkorea.net/127.0.0.1#5335 +ipset=/sexkorea.net/gfwlist +server=/sexiranian.party/127.0.0.1#5335 +ipset=/sexiranian.party/gfwlist server=/itunes12days.com/127.0.0.1#5335 ipset=/itunes12days.com/gfwlist -server=/playartifact.com/127.0.0.1#5335 -ipset=/playartifact.com/gfwlist +server=/sexhotgames.com/127.0.0.1#5335 +ipset=/sexhotgames.com/gfwlist server=/ebaystatic.com/127.0.0.1#5335 ipset=/ebaystatic.com/gfwlist server=/my45.com/127.0.0.1#5335 ipset=/my45.com/gfwlist -server=/pricelessarabia.com/127.0.0.1#5335 -ipset=/pricelessarabia.com/gfwlist +server=/youtube-ui.l.google.com/127.0.0.1#5335 +ipset=/youtube-ui.l.google.com/gfwlist server=/directvcinema.com/127.0.0.1#5335 ipset=/directvcinema.com/gfwlist -server=/skyoceanrescue.it/127.0.0.1#5335 -ipset=/skyoceanrescue.it/gfwlist +server=/sexgames.cc/127.0.0.1#5335 +ipset=/sexgames.cc/gfwlist server=/appledarwin.net/127.0.0.1#5335 ipset=/appledarwin.net/gfwlist -server=/volvotrucks.co.ao/127.0.0.1#5335 -ipset=/volvotrucks.co.ao/gfwlist +server=/lolesports.com/127.0.0.1#5335 +ipset=/lolesports.com/gfwlist server=/bioware.com/127.0.0.1#5335 ipset=/bioware.com/gfwlist -server=/openapiservice.com/127.0.0.1#5335 -ipset=/openapiservice.com/gfwlist -server=/amazon.it/127.0.0.1#5335 -ipset=/amazon.it/gfwlist -server=/amazon.fr/127.0.0.1#5335 -ipset=/amazon.fr/gfwlist -server=/amazon.com/127.0.0.1#5335 -ipset=/amazon.com/gfwlist +server=/sexfilmeporno.com/127.0.0.1#5335 +ipset=/sexfilmeporno.com/gfwlist +server=/joanabliss.com/127.0.0.1#5335 +ipset=/joanabliss.com/gfwlist +server=/sexedanslepre.net/127.0.0.1#5335 +ipset=/sexedanslepre.net/gfwlist +server=/sexdug.com/127.0.0.1#5335 +ipset=/sexdug.com/gfwlist server=/facebookappcenter.org/127.0.0.1#5335 ipset=/facebookappcenter.org/gfwlist -server=/cam4.com/127.0.0.1#5335 -ipset=/cam4.com/gfwlist -server=/12diasderegalosdeitunes.co.cr/127.0.0.1#5335 -ipset=/12diasderegalosdeitunes.co.cr/gfwlist -server=/book.com.tw/127.0.0.1#5335 -ipset=/book.com.tw/gfwlist -server=/thegatewaypundit.com/127.0.0.1#5335 -ipset=/thegatewaypundit.com/gfwlist +server=/sexdolls.com/127.0.0.1#5335 +ipset=/sexdolls.com/gfwlist +server=/ieee-ims.org/127.0.0.1#5335 +ipset=/ieee-ims.org/gfwlist +server=/eromanga-ace.com/127.0.0.1#5335 +ipset=/eromanga-ace.com/gfwlist +server=/pinterest.th/127.0.0.1#5335 +ipset=/pinterest.th/gfwlist server=/nikecompany.com/127.0.0.1#5335 ipset=/nikecompany.com/gfwlist -server=/amazon.co.uk/127.0.0.1#5335 -ipset=/amazon.co.uk/gfwlist -server=/amazon.ca/127.0.0.1#5335 -ipset=/amazon.ca/gfwlist -server=/amazon.ae/127.0.0.1#5335 -ipset=/amazon.ae/gfwlist +server=/marvelpinball.com/127.0.0.1#5335 +ipset=/marvelpinball.com/gfwlist +server=/sexanimalvideos.com/127.0.0.1#5335 +ipset=/sexanimalvideos.com/gfwlist +server=/sexalarab.com/127.0.0.1#5335 +ipset=/sexalarab.com/gfwlist server=/paily.org/127.0.0.1#5335 ipset=/paily.org/gfwlist server=/bmw.si/127.0.0.1#5335 ipset=/bmw.si/gfwlist -server=/amazonauthorinsights.com/127.0.0.1#5335 -ipset=/amazonauthorinsights.com/gfwlist -server=/bitly.com/127.0.0.1#5335 -ipset=/bitly.com/gfwlist -server=/amaaozn.com/127.0.0.1#5335 -ipset=/amaaozn.com/gfwlist -server=/aboutamazon.pl/127.0.0.1#5335 -ipset=/aboutamazon.pl/gfwlist +server=/pinterest.tw/127.0.0.1#5335 +ipset=/pinterest.tw/gfwlist +server=/sex-hay.pro/127.0.0.1#5335 +ipset=/sex-hay.pro/gfwlist +server=/mpfinance.com/127.0.0.1#5335 +ipset=/mpfinance.com/gfwlist +server=/familypies.net/127.0.0.1#5335 +ipset=/familypies.net/gfwlist server=/paypalx.com/127.0.0.1#5335 ipset=/paypalx.com/gfwlist -server=/webtype.com/127.0.0.1#5335 -ipset=/webtype.com/gfwlist +server=/sex-gif.org/127.0.0.1#5335 +ipset=/sex-gif.org/gfwlist server=/fortuneinsight.com/127.0.0.1#5335 ipset=/fortuneinsight.com/gfwlist -server=/xn--fiqs8sxootzz.xn--hxt814e/127.0.0.1#5335 -ipset=/xn--fiqs8sxootzz.xn--hxt814e/gfwlist -server=/nintendowii.com/127.0.0.1#5335 -ipset=/nintendowii.com/gfwlist -server=/oculusforbusiness.com/127.0.0.1#5335 -ipset=/oculusforbusiness.com/gfwlist -server=/aboutamazon.fr/127.0.0.1#5335 -ipset=/aboutamazon.fr/gfwlist -server=/azure.com/127.0.0.1#5335 -ipset=/azure.com/gfwlist -server=/carebay.com/127.0.0.1#5335 -ipset=/carebay.com/gfwlist -server=/a2z.com/127.0.0.1#5335 -ipset=/a2z.com/gfwlist +server=/sessoamatorialeitaliano.com/127.0.0.1#5335 +ipset=/sessoamatorialeitaliano.com/gfwlist +server=/g-tvapp.com/127.0.0.1#5335 +ipset=/g-tvapp.com/gfwlist +server=/camcam.cc/127.0.0.1#5335 +ipset=/camcam.cc/gfwlist +server=/texttobuy.org/127.0.0.1#5335 +ipset=/texttobuy.org/gfwlist +server=/publicagentxxx.com/127.0.0.1#5335 +ipset=/publicagentxxx.com/gfwlist +server=/pokedex3d.com/127.0.0.1#5335 +ipset=/pokedex3d.com/gfwlist +server=/search.xxx/127.0.0.1#5335 +ipset=/search.xxx/gfwlist server=/myfoxlosangeles.com/127.0.0.1#5335 ipset=/myfoxlosangeles.com/gfwlist server=/vanish.com.co/127.0.0.1#5335 @@ -21474,806 +34046,806 @@ server=/comodoca3.com/127.0.0.1#5335 ipset=/comodoca3.com/gfwlist server=/bextbuy.com/127.0.0.1#5335 ipset=/bextbuy.com/gfwlist -server=/foxcincy.com/127.0.0.1#5335 -ipset=/foxcincy.com/gfwlist -server=/accountpaypal.net/127.0.0.1#5335 -ipset=/accountpaypal.net/gfwlist +server=/avhome.one/127.0.0.1#5335 +ipset=/avhome.one/gfwlist +server=/yingpianqu.com/127.0.0.1#5335 +ipset=/yingpianqu.com/gfwlist server=/riotgames.co.kr/127.0.0.1#5335 ipset=/riotgames.co.kr/gfwlist -server=/facebookatschool.com/127.0.0.1#5335 -ipset=/facebookatschool.com/gfwlist -server=/alphera-finance.com.hk/127.0.0.1#5335 -ipset=/alphera-finance.com.hk/gfwlist -server=/ikids.com/127.0.0.1#5335 -ipset=/ikids.com/gfwlist -server=/applexpo.net/127.0.0.1#5335 -ipset=/applexpo.net/gfwlist -server=/justmysocks1.net/127.0.0.1#5335 -ipset=/justmysocks1.net/gfwlist -server=/fox247.tv/127.0.0.1#5335 -ipset=/fox247.tv/gfwlist -server=/bmwsafari.com/127.0.0.1#5335 -ipset=/bmwsafari.com/gfwlist -server=/weeklytimesnow.com.au/127.0.0.1#5335 -ipset=/weeklytimesnow.com.au/gfwlist -server=/kindle.com/127.0.0.1#5335 -ipset=/kindle.com/gfwlist -server=/elasticbeanstalk.com/127.0.0.1#5335 -ipset=/elasticbeanstalk.com/gfwlist -server=/minisovietam.vn/127.0.0.1#5335 -ipset=/minisovietam.vn/gfwlist -server=/pixplug.in/127.0.0.1#5335 -ipset=/pixplug.in/gfwlist -server=/iaablog.com/127.0.0.1#5335 -ipset=/iaablog.com/gfwlist -server=/verygoodnike.com/127.0.0.1#5335 -ipset=/verygoodnike.com/gfwlist +server=/scorediscounts.club/127.0.0.1#5335 +ipset=/scorediscounts.club/gfwlist +server=/bigtithooker.com/127.0.0.1#5335 +ipset=/bigtithooker.com/gfwlist +server=/azattyk.org/127.0.0.1#5335 +ipset=/azattyk.org/gfwlist +server=/callhulu.com/127.0.0.1#5335 +ipset=/callhulu.com/gfwlist +server=/cartoon18.com/127.0.0.1#5335 +ipset=/cartoon18.com/gfwlist +server=/savitabhabhi.vip/127.0.0.1#5335 +ipset=/savitabhabhi.vip/gfwlist +server=/krakenjs.com/127.0.0.1#5335 +ipset=/krakenjs.com/gfwlist +server=/facegbok.com/127.0.0.1#5335 +ipset=/facegbok.com/gfwlist +server=/gaypornsky.com/127.0.0.1#5335 +ipset=/gaypornsky.com/gfwlist +server=/xoom.io/127.0.0.1#5335 +ipset=/xoom.io/gfwlist +server=/ebayshopping.org/127.0.0.1#5335 +ipset=/ebayshopping.org/gfwlist +server=/blogspot.com.eg/127.0.0.1#5335 +ipset=/blogspot.com.eg/gfwlist +server=/ruvideos.net/127.0.0.1#5335 +ipset=/ruvideos.net/gfwlist +server=/paypal-japan.com/127.0.0.1#5335 +ipset=/paypal-japan.com/gfwlist server=/isexlove.tw/127.0.0.1#5335 ipset=/isexlove.tw/gfwlist -server=/containersonaws.com/127.0.0.1#5335 -ipset=/containersonaws.com/gfwlist +server=/taylorandfrancis.com/127.0.0.1#5335 +ipset=/taylorandfrancis.com/gfwlist server=/moreheadphones.com/127.0.0.1#5335 ipset=/moreheadphones.com/gfwlist -server=/usa-beatsbydreheadphonesonsale.net/127.0.0.1#5335 -ipset=/usa-beatsbydreheadphonesonsale.net/gfwlist -server=/mingpaotor.com/127.0.0.1#5335 -ipset=/mingpaotor.com/gfwlist -server=/ebaychina.net/127.0.0.1#5335 -ipset=/ebaychina.net/gfwlist -server=/paypal-hrsystem.com/127.0.0.1#5335 -ipset=/paypal-hrsystem.com/gfwlist -server=/cloudfront.net/127.0.0.1#5335 -ipset=/cloudfront.net/gfwlist -server=/awstrust.com/127.0.0.1#5335 -ipset=/awstrust.com/gfwlist -server=/awsedstart.com/127.0.0.1#5335 -ipset=/awsedstart.com/gfwlist -server=/akahost.net/127.0.0.1#5335 -ipset=/akahost.net/gfwlist -server=/cabletv.com.hk/127.0.0.1#5335 -ipset=/cabletv.com.hk/gfwlist -server=/awsautopilot.com/127.0.0.1#5335 -ipset=/awsautopilot.com/gfwlist -server=/mythicentertainment.net/127.0.0.1#5335 -ipset=/mythicentertainment.net/gfwlist -server=/ehtracker.org/127.0.0.1#5335 -ipset=/ehtracker.org/gfwlist +server=/apple.ae/127.0.0.1#5335 +ipset=/apple.ae/gfwlist +server=/ebaymotors.com/127.0.0.1#5335 +ipset=/ebaymotors.com/gfwlist +server=/6e8xr2gk.me/127.0.0.1#5335 +ipset=/6e8xr2gk.me/gfwlist +server=/rule34pornvids.com/127.0.0.1#5335 +ipset=/rule34pornvids.com/gfwlist +server=/scholar.google.com.ua/127.0.0.1#5335 +ipset=/scholar.google.com.ua/gfwlist +server=/jdforum.net/127.0.0.1#5335 +ipset=/jdforum.net/gfwlist +server=/10bet.com/127.0.0.1#5335 +ipset=/10bet.com/gfwlist +server=/romantic-sex-video.com/127.0.0.1#5335 +ipset=/romantic-sex-video.com/gfwlist +server=/gimy.to/127.0.0.1#5335 +ipset=/gimy.to/gfwlist +server=/hentaicomic.ru/127.0.0.1#5335 +ipset=/hentaicomic.ru/gfwlist +server=/risextube.com/127.0.0.1#5335 +ipset=/risextube.com/gfwlist +server=/volvotrucks.si/127.0.0.1#5335 +ipset=/volvotrucks.si/gfwlist server=/instagramium.com/127.0.0.1#5335 ipset=/instagramium.com/gfwlist server=/heroku.me/127.0.0.1#5335 ipset=/heroku.me/gfwlist -server=/amazonaws.tv/127.0.0.1#5335 -ipset=/amazonaws.tv/gfwlist -server=/bluemix.net/127.0.0.1#5335 -ipset=/bluemix.net/gfwlist +server=/ikea.nl/127.0.0.1#5335 +ipset=/ikea.nl/gfwlist +server=/alphabet.be/127.0.0.1#5335 +ipset=/alphabet.be/gfwlist server=/airwick.de/127.0.0.1#5335 ipset=/airwick.de/gfwlist server=/durex.cz/127.0.0.1#5335 ipset=/durex.cz/gfwlist server=/kirbysepicyarn.com/127.0.0.1#5335 ipset=/kirbysepicyarn.com/gfwlist -server=/alicloud.com/127.0.0.1#5335 -ipset=/alicloud.com/gfwlist -server=/alibabacloud.com.sg/127.0.0.1#5335 -ipset=/alibabacloud.com.sg/gfwlist -server=/alibabacloud.com.hk/127.0.0.1#5335 -ipset=/alibabacloud.com.hk/gfwlist -server=/half.tv/127.0.0.1#5335 -ipset=/half.tv/gfwlist -server=/microsoftadvertising.com/127.0.0.1#5335 -ipset=/microsoftadvertising.com/gfwlist -server=/toutapp.com/127.0.0.1#5335 -ipset=/toutapp.com/gfwlist -server=/digital-id.ch/127.0.0.1#5335 -ipset=/digital-id.ch/gfwlist -server=/spacex.com/127.0.0.1#5335 -ipset=/spacex.com/gfwlist -server=/volvotrucks.com/127.0.0.1#5335 -ipset=/volvotrucks.com/gfwlist +server=/realsexdoll.com/127.0.0.1#5335 +ipset=/realsexdoll.com/gfwlist +server=/blizzard.nefficient.co.kr/127.0.0.1#5335 +ipset=/blizzard.nefficient.co.kr/gfwlist +server=/myfoxphoenix.com/127.0.0.1#5335 +ipset=/myfoxphoenix.com/gfwlist +server=/vzw.com/127.0.0.1#5335 +ipset=/vzw.com/gfwlist +server=/fetishdreamz.com/127.0.0.1#5335 +ipset=/fetishdreamz.com/gfwlist +server=/real-thaipussy.com/127.0.0.1#5335 +ipset=/real-thaipussy.com/gfwlist +server=/real-homemade-movies.com/127.0.0.1#5335 +ipset=/real-homemade-movies.com/gfwlist +server=/readerswivesonline.com/127.0.0.1#5335 +ipset=/readerswivesonline.com/gfwlist +server=/ebaycareers.com/127.0.0.1#5335 +ipset=/ebaycareers.com/gfwlist server=/ogameblog.com/127.0.0.1#5335 ipset=/ogameblog.com/gfwlist -server=/yimg.com/127.0.0.1#5335 -ipset=/yimg.com/gfwlist -server=/oxfordartonline.com/127.0.0.1#5335 -ipset=/oxfordartonline.com/gfwlist -server=/magento.net/127.0.0.1#5335 -ipset=/magento.net/gfwlist +server=/funimation.com/127.0.0.1#5335 +ipset=/funimation.com/gfwlist +server=/rbeopp.com/127.0.0.1#5335 +ipset=/rbeopp.com/gfwlist +server=/petiteamateurteen.com/127.0.0.1#5335 +ipset=/petiteamateurteen.com/gfwlist server=/s.team/127.0.0.1#5335 ipset=/s.team/gfwlist server=/google.co.ck/127.0.0.1#5335 ipset=/google.co.ck/gfwlist -server=/mastercard.cl/127.0.0.1#5335 -ipset=/mastercard.cl/gfwlist +server=/yourmomlovesanal.com/127.0.0.1#5335 +ipset=/yourmomlovesanal.com/gfwlist server=/westerndigital.com/127.0.0.1#5335 ipset=/westerndigital.com/gfwlist server=/quipelements.com/127.0.0.1#5335 ipset=/quipelements.com/gfwlist -server=/nikefrance.com/127.0.0.1#5335 -ipset=/nikefrance.com/gfwlist -server=/justduckit.com/127.0.0.1#5335 -ipset=/justduckit.com/gfwlist +server=/irribay.com/127.0.0.1#5335 +ipset=/irribay.com/gfwlist +server=/store-bridgestonesports.com/127.0.0.1#5335 +ipset=/store-bridgestonesports.com/gfwlist server=/beijingnike.com/127.0.0.1#5335 ipset=/beijingnike.com/gfwlist -server=/bmw-drivingexperience.com/127.0.0.1#5335 -ipset=/bmw-drivingexperience.com/gfwlist -server=/bypasscensorship.org/127.0.0.1#5335 -ipset=/bypasscensorship.org/gfwlist -server=/motolia.com/127.0.0.1#5335 -ipset=/motolia.com/gfwlist +server=/enjoyasianporn.com/127.0.0.1#5335 +ipset=/enjoyasianporn.com/gfwlist +server=/verisign.com.sg/127.0.0.1#5335 +ipset=/verisign.com.sg/gfwlist +server=/qombol.com/127.0.0.1#5335 +ipset=/qombol.com/gfwlist server=/x.team/127.0.0.1#5335 ipset=/x.team/gfwlist -server=/bmw-motorrad.de/127.0.0.1#5335 -ipset=/bmw-motorrad.de/gfwlist -server=/google.fi/127.0.0.1#5335 -ipset=/google.fi/gfwlist +server=/66wwmm.com/127.0.0.1#5335 +ipset=/66wwmm.com/gfwlist +server=/scatnetwork.com/127.0.0.1#5335 +ipset=/scatnetwork.com/gfwlist server=/faceboks.com/127.0.0.1#5335 ipset=/faceboks.com/gfwlist -server=/heroku.com/127.0.0.1#5335 -ipset=/heroku.com/gfwlist -server=/ffotolia.com/127.0.0.1#5335 -ipset=/ffotolia.com/gfwlist -server=/zoho.in/127.0.0.1#5335 -ipset=/zoho.in/gfwlist -server=/newslicensing.co.uk/127.0.0.1#5335 -ipset=/newslicensing.co.uk/gfwlist +server=/paypal.me/127.0.0.1#5335 +ipset=/paypal.me/gfwlist +server=/xanimeporn.com/127.0.0.1#5335 +ipset=/xanimeporn.com/gfwlist +server=/toutapp.com/127.0.0.1#5335 +ipset=/toutapp.com/gfwlist +server=/luxuretv.com/127.0.0.1#5335 +ipset=/luxuretv.com/gfwlist server=/o365weve-dev.com/127.0.0.1#5335 ipset=/o365weve-dev.com/gfwlist -server=/etpress.com.hk/127.0.0.1#5335 -ipset=/etpress.com.hk/gfwlist -server=/warp.plus/127.0.0.1#5335 -ipset=/warp.plus/gfwlist -server=/disneyworld-go.com/127.0.0.1#5335 -ipset=/disneyworld-go.com/gfwlist -server=/faciometrics.com/127.0.0.1#5335 -ipset=/faciometrics.com/gfwlist -server=/sonypicturesanimation.com/127.0.0.1#5335 -ipset=/sonypicturesanimation.com/gfwlist -server=/ebayclassifieds.tv/127.0.0.1#5335 -ipset=/ebayclassifieds.tv/gfwlist -server=/bmw.pt/127.0.0.1#5335 -ipset=/bmw.pt/gfwlist +server=/g1d1goob.xyz/127.0.0.1#5335 +ipset=/g1d1goob.xyz/gfwlist +server=/twitter.biz/127.0.0.1#5335 +ipset=/twitter.biz/gfwlist +server=/christymarks.com/127.0.0.1#5335 +ipset=/christymarks.com/gfwlist +server=/uproxy.org/127.0.0.1#5335 +ipset=/uproxy.org/gfwlist +server=/nikeplus.org/127.0.0.1#5335 +ipset=/nikeplus.org/gfwlist +server=/pheonix.money/127.0.0.1#5335 +ipset=/pheonix.money/gfwlist +server=/prostoporno.net/127.0.0.1#5335 +ipset=/prostoporno.net/gfwlist server=/mastercard.no/127.0.0.1#5335 ipset=/mastercard.no/gfwlist -server=/enablementadobe.com/127.0.0.1#5335 -ipset=/enablementadobe.com/gfwlist +server=/profreeporno.com/127.0.0.1#5335 +ipset=/profreeporno.com/gfwlist server=/disneymagicmomentsme.com/127.0.0.1#5335 ipset=/disneymagicmomentsme.com/gfwlist -server=/maddenchampionship.com/127.0.0.1#5335 -ipset=/maddenchampionship.com/gfwlist -server=/ozvoice.org/127.0.0.1#5335 -ipset=/ozvoice.org/gfwlist -server=/longman.ch/127.0.0.1#5335 -ipset=/longman.ch/gfwlist -server=/thedailysnkr.com/127.0.0.1#5335 -ipset=/thedailysnkr.com/gfwlist -server=/adobespark.com/127.0.0.1#5335 -ipset=/adobespark.com/gfwlist +server=/private.com/127.0.0.1#5335 +ipset=/private.com/gfwlist +server=/fbthirdpartypixel.com/127.0.0.1#5335 +ipset=/fbthirdpartypixel.com/gfwlist +server=/primematures.com/127.0.0.1#5335 +ipset=/primematures.com/gfwlist +server=/ciscopress.ch/127.0.0.1#5335 +ipset=/ciscopress.ch/gfwlist +server=/hentaiprn.com/127.0.0.1#5335 +ipset=/hentaiprn.com/gfwlist server=/pricelesssydney.com/127.0.0.1#5335 ipset=/pricelesssydney.com/gfwlist -server=/adobeplatinumclub.com/127.0.0.1#5335 -ipset=/adobeplatinumclub.com/gfwlist -server=/finishinfo.it/127.0.0.1#5335 -ipset=/finishinfo.it/gfwlist -server=/akamai-regression.net/127.0.0.1#5335 -ipset=/akamai-regression.net/gfwlist -server=/adobelanding.com/127.0.0.1#5335 -ipset=/adobelanding.com/gfwlist -server=/akamaimagicmath.net/127.0.0.1#5335 -ipset=/akamaimagicmath.net/gfwlist -server=/americasvoice.news/127.0.0.1#5335 -ipset=/americasvoice.news/gfwlist -server=/redis.io/127.0.0.1#5335 -ipset=/redis.io/gfwlist -server=/tiktokcdn.com/127.0.0.1#5335 -ipset=/tiktokcdn.com/gfwlist -server=/deadspacegame.com/127.0.0.1#5335 -ipset=/deadspacegame.com/gfwlist -server=/adobe.ly/127.0.0.1#5335 -ipset=/adobe.ly/gfwlist -server=/pearsonelt.ch/127.0.0.1#5335 -ipset=/pearsonelt.ch/gfwlist -server=/weiyuksj.com/127.0.0.1#5335 -ipset=/weiyuksj.com/gfwlist -server=/10xfotolia.com/127.0.0.1#5335 -ipset=/10xfotolia.com/gfwlist -server=/typekit.com/127.0.0.1#5335 -ipset=/typekit.com/gfwlist +server=/businessfocus.io/127.0.0.1#5335 +ipset=/businessfocus.io/gfwlist +server=/disneypeoplesurveys.com/127.0.0.1#5335 +ipset=/disneypeoplesurveys.com/gfwlist +server=/getscorecash.com/127.0.0.1#5335 +ipset=/getscorecash.com/gfwlist +server=/rakuten.com/127.0.0.1#5335 +ipset=/rakuten.com/gfwlist +server=/pornwhitelist.com/127.0.0.1#5335 +ipset=/pornwhitelist.com/gfwlist +server=/aucheapbeats.com/127.0.0.1#5335 +ipset=/aucheapbeats.com/gfwlist +server=/fox247.tv/127.0.0.1#5335 +ipset=/fox247.tv/gfwlist +server=/porntn.com/127.0.0.1#5335 +ipset=/porntn.com/gfwlist +server=/pornstarbyface.com/127.0.0.1#5335 +ipset=/pornstarbyface.com/gfwlist +server=/pornsocket.com/127.0.0.1#5335 +ipset=/pornsocket.com/gfwlist +server=/ebay.lt/127.0.0.1#5335 +ipset=/ebay.lt/gfwlist +server=/pornsitesnow.com/127.0.0.1#5335 +ipset=/pornsitesnow.com/gfwlist +server=/pornrips.cc/127.0.0.1#5335 +ipset=/pornrips.cc/gfwlist +server=/nineentertainment.com.au/127.0.0.1#5335 +ipset=/nineentertainment.com.au/gfwlist server=/xn--ruq8a011kt6y.xn--hxt814e/127.0.0.1#5335 ipset=/xn--ruq8a011kt6y.xn--hxt814e/gfwlist server=/needforspeed.com/127.0.0.1#5335 ipset=/needforspeed.com/gfwlist -server=/liverail.com/127.0.0.1#5335 -ipset=/liverail.com/gfwlist -server=/postgresql.org/127.0.0.1#5335 -ipset=/postgresql.org/gfwlist +server=/pornrabbit.com/127.0.0.1#5335 +ipset=/pornrabbit.com/gfwlist +server=/tellme.pw/127.0.0.1#5335 +ipset=/tellme.pw/gfwlist server=/azure-dns.com/127.0.0.1#5335 ipset=/azure-dns.com/gfwlist -server=/contest.com/127.0.0.1#5335 -ipset=/contest.com/gfwlist -server=/githubassets.com/127.0.0.1#5335 -ipset=/githubassets.com/gfwlist -server=/openai.com/127.0.0.1#5335 -ipset=/openai.com/gfwlist -server=/notepad-plus-plus.org/127.0.0.1#5335 -ipset=/notepad-plus-plus.org/gfwlist -server=/pahabicilemezsurprizler.com/127.0.0.1#5335 -ipset=/pahabicilemezsurprizler.com/gfwlist -server=/verisign.dk/127.0.0.1#5335 -ipset=/verisign.dk/gfwlist -server=/lua.org/127.0.0.1#5335 -ipset=/lua.org/gfwlist +server=/foxnewsopinion.com/127.0.0.1#5335 +ipset=/foxnewsopinion.com/gfwlist +server=/aspenpublishing.com/127.0.0.1#5335 +ipset=/aspenpublishing.com/gfwlist +server=/enemaporn.blogspot.com/127.0.0.1#5335 +ipset=/enemaporn.blogspot.com/gfwlist +server=/facedbook.com/127.0.0.1#5335 +ipset=/facedbook.com/gfwlist +server=/hiddenvoyeurspy.com/127.0.0.1#5335 +ipset=/hiddenvoyeurspy.com/gfwlist +server=/hkcitizenmedia.com/127.0.0.1#5335 +ipset=/hkcitizenmedia.com/gfwlist +server=/pornotron.net/127.0.0.1#5335 +ipset=/pornotron.net/gfwlist server=/bridgestonesyb.com/127.0.0.1#5335 ipset=/bridgestonesyb.com/gfwlist -server=/jupyter.org/127.0.0.1#5335 -ipset=/jupyter.org/gfwlist -server=/swissign.li/127.0.0.1#5335 -ipset=/swissign.li/gfwlist -server=/mastercardservices.com/127.0.0.1#5335 -ipset=/mastercardservices.com/gfwlist +server=/gayonthenet.net/127.0.0.1#5335 +ipset=/gayonthenet.net/gfwlist +server=/pornosfilmes.com/127.0.0.1#5335 +ipset=/pornosfilmes.com/gfwlist +server=/bmw.com.cy/127.0.0.1#5335 +ipset=/bmw.com.cy/gfwlist server=/nvidia.nl/127.0.0.1#5335 ipset=/nvidia.nl/gfwlist -server=/iphoneplus.wang/127.0.0.1#5335 -ipset=/iphoneplus.wang/gfwlist +server=/pornolandia.xxx/127.0.0.1#5335 +ipset=/pornolandia.xxx/gfwlist server=/doi.org/127.0.0.1#5335 ipset=/doi.org/gfwlist -server=/ituneslogin.net/127.0.0.1#5335 -ipset=/ituneslogin.net/gfwlist -server=/instituteofwar.org/127.0.0.1#5335 -ipset=/instituteofwar.org/gfwlist +server=/pornoirado.com/127.0.0.1#5335 +ipset=/pornoirado.com/gfwlist +server=/c0930.com/127.0.0.1#5335 +ipset=/c0930.com/gfwlist server=/53worldsweeps.com/127.0.0.1#5335 ipset=/53worldsweeps.com/gfwlist -server=/nikesellorder.com/127.0.0.1#5335 -ipset=/nikesellorder.com/gfwlist -server=/apache.org/127.0.0.1#5335 -ipset=/apache.org/gfwlist -server=/msnbc.com/127.0.0.1#5335 -ipset=/msnbc.com/gfwlist -server=/whimn.com.au/127.0.0.1#5335 -ipset=/whimn.com.au/gfwlist -server=/volvobuses.in/127.0.0.1#5335 -ipset=/volvobuses.in/gfwlist -server=/blogebay.com/127.0.0.1#5335 -ipset=/blogebay.com/gfwlist -server=/xda-cdn.com/127.0.0.1#5335 -ipset=/xda-cdn.com/gfwlist -server=/volvotrucks.kg/127.0.0.1#5335 -ipset=/volvotrucks.kg/gfwlist -server=/r-project.org/127.0.0.1#5335 -ipset=/r-project.org/gfwlist -server=/watch-ebay.org/127.0.0.1#5335 -ipset=/watch-ebay.org/gfwlist +server=/assoass.com/127.0.0.1#5335 +ipset=/assoass.com/gfwlist +server=/98916.tv/127.0.0.1#5335 +ipset=/98916.tv/gfwlist +server=/tpornstars.com/127.0.0.1#5335 +ipset=/tpornstars.com/gfwlist +server=/ikea.us/127.0.0.1#5335 +ipset=/ikea.us/gfwlist +server=/pornogids.net/127.0.0.1#5335 +ipset=/pornogids.net/gfwlist +server=/socalbmw.com/127.0.0.1#5335 +ipset=/socalbmw.com/gfwlist +server=/pornnut.com/127.0.0.1#5335 +ipset=/pornnut.com/gfwlist +server=/pornmaki.com/127.0.0.1#5335 +ipset=/pornmaki.com/gfwlist +server=/fuck-xxx-movies.com/127.0.0.1#5335 +ipset=/fuck-xxx-movies.com/gfwlist +server=/sourcingforebay.com.cn/127.0.0.1#5335 +ipset=/sourcingforebay.com.cn/gfwlist server=/visa.co.jp/127.0.0.1#5335 ipset=/visa.co.jp/gfwlist -server=/ted.com/127.0.0.1#5335 -ipset=/ted.com/gfwlist -server=/swisssign.com/127.0.0.1#5335 -ipset=/swisssign.com/gfwlist -server=/swjedifallenorder.com/127.0.0.1#5335 -ipset=/swjedifallenorder.com/gfwlist -server=/itunesstore.co/127.0.0.1#5335 -ipset=/itunesstore.co/gfwlist -server=/unity3d.com/127.0.0.1#5335 -ipset=/unity3d.com/gfwlist -server=/vfsco.es/127.0.0.1#5335 -ipset=/vfsco.es/gfwlist +server=/pornjizz.co/127.0.0.1#5335 +ipset=/pornjizz.co/gfwlist +server=/novojoy.com/127.0.0.1#5335 +ipset=/novojoy.com/gfwlist +server=/faceook.com/127.0.0.1#5335 +ipset=/faceook.com/gfwlist +server=/leagueoflegends.kr/127.0.0.1#5335 +ipset=/leagueoflegends.kr/gfwlist +server=/pornhd3x.tv/127.0.0.1#5335 +ipset=/pornhd3x.tv/gfwlist +server=/pornhd.com/127.0.0.1#5335 +ipset=/pornhd.com/gfwlist server=/hkheadline.com/127.0.0.1#5335 ipset=/hkheadline.com/gfwlist -server=/uplay.com/127.0.0.1#5335 -ipset=/uplay.com/gfwlist -server=/outletnike.com/127.0.0.1#5335 -ipset=/outletnike.com/gfwlist -server=/jquery.com/127.0.0.1#5335 -ipset=/jquery.com/gfwlist +server=/rushporn.xxx/127.0.0.1#5335 +ipset=/rushporn.xxx/gfwlist +server=/porngrabbz.com/127.0.0.1#5335 +ipset=/porngrabbz.com/gfwlist +server=/kum.com/127.0.0.1#5335 +ipset=/kum.com/gfwlist server=/beatssales.com/127.0.0.1#5335 ipset=/beatssales.com/gfwlist -server=/mini.tn/127.0.0.1#5335 -ipset=/mini.tn/gfwlist -server=/ampproject.com/127.0.0.1#5335 -ipset=/ampproject.com/gfwlist +server=/chinatimes.com/127.0.0.1#5335 +ipset=/chinatimes.com/gfwlist +server=/hackyourconsole.com/127.0.0.1#5335 +ipset=/hackyourconsole.com/gfwlist server=/volvotrucks.pk/127.0.0.1#5335 ipset=/volvotrucks.pk/gfwlist -server=/nke6.com/127.0.0.1#5335 -ipset=/nke6.com/gfwlist +server=/discord.gg/127.0.0.1#5335 +ipset=/discord.gg/gfwlist server=/adobeprojectm.com/127.0.0.1#5335 ipset=/adobeprojectm.com/gfwlist -server=/amp.dev/127.0.0.1#5335 -ipset=/amp.dev/gfwlist +server=/porngames.club/127.0.0.1#5335 +ipset=/porngames.club/gfwlist server=/microsoft.lu/127.0.0.1#5335 ipset=/microsoft.lu/gfwlist -server=/pearsonassessment.no/127.0.0.1#5335 -ipset=/pearsonassessment.no/gfwlist -server=/ebayclassifieds.org/127.0.0.1#5335 -ipset=/ebayclassifieds.org/gfwlist +server=/manorama.com/127.0.0.1#5335 +ipset=/manorama.com/gfwlist +server=/czechav.com/127.0.0.1#5335 +ipset=/czechav.com/gfwlist server=/finenike.com/127.0.0.1#5335 ipset=/finenike.com/gfwlist -server=/sstatic.net/127.0.0.1#5335 -ipset=/sstatic.net/gfwlist -server=/mastercard.com.ge/127.0.0.1#5335 -ipset=/mastercard.com.ge/gfwlist +server=/pornfactory.info/127.0.0.1#5335 +ipset=/pornfactory.info/gfwlist +server=/pinterest.in/127.0.0.1#5335 +ipset=/pinterest.in/gfwlist server=/mini.ma/127.0.0.1#5335 ipset=/mini.ma/gfwlist -server=/fonts.com/127.0.0.1#5335 -ipset=/fonts.com/gfwlist -server=/mathoverflow.net/127.0.0.1#5335 -ipset=/mathoverflow.net/gfwlist +server=/porndoe.com/127.0.0.1#5335 +ipset=/porndoe.com/gfwlist +server=/bmwsfl.com/127.0.0.1#5335 +ipset=/bmwsfl.com/gfwlist server=/disney.ca/127.0.0.1#5335 ipset=/disney.ca/gfwlist -server=/remirepo.net/127.0.0.1#5335 -ipset=/remirepo.net/gfwlist -server=/redislabs.com/127.0.0.1#5335 -ipset=/redislabs.com/gfwlist -server=/playapex.com/127.0.0.1#5335 -ipset=/playapex.com/gfwlist -server=/mit.net/127.0.0.1#5335 -ipset=/mit.net/gfwlist -server=/javfull.net/127.0.0.1#5335 -ipset=/javfull.net/gfwlist -server=/pythonhosted.org/127.0.0.1#5335 -ipset=/pythonhosted.org/gfwlist -server=/huluad.com/127.0.0.1#5335 -ipset=/huluad.com/gfwlist -server=/golos-ameriki.ru/127.0.0.1#5335 -ipset=/golos-ameriki.ru/gfwlist -server=/bmwspecialoffers.ca/127.0.0.1#5335 -ipset=/bmwspecialoffers.ca/gfwlist +server=/moapi.site/127.0.0.1#5335 +ipset=/moapi.site/gfwlist +server=/porndiamond.com/127.0.0.1#5335 +ipset=/porndiamond.com/gfwlist +server=/playapex.com/127.0.0.1#5335 +ipset=/playapex.com/gfwlist +server=/porndabster.com/127.0.0.1#5335 +ipset=/porndabster.com/gfwlist +server=/porncore.net/127.0.0.1#5335 +ipset=/porncore.net/gfwlist +server=/ulol.com/127.0.0.1#5335 +ipset=/ulol.com/gfwlist +server=/gcr.io/127.0.0.1#5335 +ipset=/gcr.io/gfwlist +server=/pornagent.xyz/127.0.0.1#5335 +ipset=/pornagent.xyz/gfwlist +server=/macossierra.com/127.0.0.1#5335 +ipset=/macossierra.com/gfwlist server=/apple.ie/127.0.0.1#5335 ipset=/apple.ie/gfwlist -server=/abema.io/127.0.0.1#5335 -ipset=/abema.io/gfwlist -server=/metacpan.org/127.0.0.1#5335 -ipset=/metacpan.org/gfwlist -server=/pearson.fr/127.0.0.1#5335 -ipset=/pearson.fr/gfwlist -server=/yahoo.mw/127.0.0.1#5335 -ipset=/yahoo.mw/gfwlist +server=/freeadultcomix.com/127.0.0.1#5335 +ipset=/freeadultcomix.com/gfwlist +server=/afewmomentswith.com/127.0.0.1#5335 +ipset=/afewmomentswith.com/gfwlist +server=/pearsonclinical.co.uk/127.0.0.1#5335 +ipset=/pearsonclinical.co.uk/gfwlist +server=/porn.xxx/127.0.0.1#5335 +ipset=/porn.xxx/gfwlist server=/askfacebook.org/127.0.0.1#5335 ipset=/askfacebook.org/gfwlist -server=/bmw-fleet.net/127.0.0.1#5335 -ipset=/bmw-fleet.net/gfwlist -server=/bandcamp.com/127.0.0.1#5335 -ipset=/bandcamp.com/gfwlist -server=/dtlgalleryint.cloudapp.net/127.0.0.1#5335 -ipset=/dtlgalleryint.cloudapp.net/gfwlist -server=/hkgolden.media/127.0.0.1#5335 -ipset=/hkgolden.media/gfwlist -server=/fury.io/127.0.0.1#5335 -ipset=/fury.io/gfwlist +server=/pussyspace.com/127.0.0.1#5335 +ipset=/pussyspace.com/gfwlist +server=/porn-gratis.info/127.0.0.1#5335 +ipset=/porn-gratis.info/gfwlist +server=/porn-comic.com/127.0.0.1#5335 +ipset=/porn-comic.com/gfwlist +server=/freeporno.asia/127.0.0.1#5335 +ipset=/freeporno.asia/gfwlist +server=/playyoungtube.com/127.0.0.1#5335 +ipset=/playyoungtube.com/gfwlist server=/foxla.tv/127.0.0.1#5335 ipset=/foxla.tv/gfwlist -server=/visualstudio.eu/127.0.0.1#5335 -ipset=/visualstudio.eu/gfwlist -server=/visualstudio.co/127.0.0.1#5335 -ipset=/visualstudio.co/gfwlist -server=/sqlserveronlinux.com/127.0.0.1#5335 -ipset=/sqlserveronlinux.com/gfwlist -server=/talentlens.com/127.0.0.1#5335 -ipset=/talentlens.com/gfwlist +server=/piratecams.com/127.0.0.1#5335 +ipset=/piratecams.com/gfwlist +server=/paradisehill.cc/127.0.0.1#5335 +ipset=/paradisehill.cc/gfwlist +server=/pinkdino.com/127.0.0.1#5335 +ipset=/pinkdino.com/gfwlist +server=/picacg2022.com/127.0.0.1#5335 +ipset=/picacg2022.com/gfwlist server=/kindleoasis.org/127.0.0.1#5335 ipset=/kindleoasis.org/gfwlist -server=/sankie.net/127.0.0.1#5335 -ipset=/sankie.net/gfwlist -server=/nugettest.org/127.0.0.1#5335 -ipset=/nugettest.org/gfwlist -server=/appleinclegal.com/127.0.0.1#5335 -ipset=/appleinclegal.com/gfwlist -server=/nintendo.se/127.0.0.1#5335 -ipset=/nintendo.se/gfwlist +server=/fuckmeplease.net/127.0.0.1#5335 +ipset=/fuckmeplease.net/gfwlist +server=/doujin-night.com/127.0.0.1#5335 +ipset=/doujin-night.com/gfwlist +server=/facebookmail.tv/127.0.0.1#5335 +ipset=/facebookmail.tv/gfwlist +server=/pervclips.com/127.0.0.1#5335 +ipset=/pervclips.com/gfwlist server=/apple.co.nz/127.0.0.1#5335 ipset=/apple.co.nz/gfwlist -server=/hulupremium.com/127.0.0.1#5335 -ipset=/hulupremium.com/gfwlist -server=/nike-usa.com/127.0.0.1#5335 -ipset=/nike-usa.com/gfwlist -server=/bmw-group.net/127.0.0.1#5335 -ipset=/bmw-group.net/gfwlist -server=/leagueoflegends.info/127.0.0.1#5335 -ipset=/leagueoflegends.info/gfwlist -server=/msdn.com/127.0.0.1#5335 -ipset=/msdn.com/gfwlist -server=/microsoftreactor.org/127.0.0.1#5335 -ipset=/microsoftreactor.org/gfwlist -server=/att.net/127.0.0.1#5335 -ipset=/att.net/gfwlist -server=/bmw.lk/127.0.0.1#5335 -ipset=/bmw.lk/gfwlist -server=/epigeum.com/127.0.0.1#5335 -ipset=/epigeum.com/gfwlist -server=/nextdigital.com.hk/127.0.0.1#5335 -ipset=/nextdigital.com.hk/gfwlist -server=/appcenter.ms/127.0.0.1#5335 -ipset=/appcenter.ms/gfwlist +server=/ikea.kr/127.0.0.1#5335 +ipset=/ikea.kr/gfwlist +server=/deutsche-pornos-kostenlos.xxx/127.0.0.1#5335 +ipset=/deutsche-pornos-kostenlos.xxx/gfwlist +server=/peopledreamfunding.com/127.0.0.1#5335 +ipset=/peopledreamfunding.com/gfwlist +server=/xtapes.to/127.0.0.1#5335 +ipset=/xtapes.to/gfwlist +server=/kijijiforbusiness.ca/127.0.0.1#5335 +ipset=/kijijiforbusiness.ca/gfwlist +server=/lifewire.com/127.0.0.1#5335 +ipset=/lifewire.com/gfwlist +server=/youtube.com.eg/127.0.0.1#5335 +ipset=/youtube.com.eg/gfwlist +server=/sweetadult-tube.com/127.0.0.1#5335 +ipset=/sweetadult-tube.com/gfwlist +server=/pasionmujeres.com/127.0.0.1#5335 +ipset=/pasionmujeres.com/gfwlist +server=/pancolle-movie.jp/127.0.0.1#5335 +ipset=/pancolle-movie.jp/gfwlist +server=/paidpornguide.com/127.0.0.1#5335 +ipset=/paidpornguide.com/gfwlist server=/hhvm.com/127.0.0.1#5335 ipset=/hhvm.com/gfwlist -server=/guccitimeless.com/127.0.0.1#5335 -ipset=/guccitimeless.com/gfwlist -server=/acpica.com/127.0.0.1#5335 -ipset=/acpica.com/gfwlist -server=/snap-telemetry.io/127.0.0.1#5335 -ipset=/snap-telemetry.io/gfwlist -server=/openvinotoolkit.org/127.0.0.1#5335 -ipset=/openvinotoolkit.org/gfwlist -server=/protonmail.ch/127.0.0.1#5335 -ipset=/protonmail.ch/gfwlist -server=/intellinuxgraphics.net/127.0.0.1#5335 -ipset=/intellinuxgraphics.net/gfwlist +server=/bitmex.com/127.0.0.1#5335 +ipset=/bitmex.com/gfwlist +server=/candypleasure.com/127.0.0.1#5335 +ipset=/candypleasure.com/gfwlist +server=/pelvicexam.info/127.0.0.1#5335 +ipset=/pelvicexam.info/gfwlist +server=/op7979.com/127.0.0.1#5335 +ipset=/op7979.com/gfwlist +server=/onlyfanspw.com/127.0.0.1#5335 +ipset=/onlyfanspw.com/gfwlist +server=/onlydudes.com/127.0.0.1#5335 +ipset=/onlydudes.com/gfwlist server=/binance.vision/127.0.0.1#5335 ipset=/binance.vision/gfwlist -server=/epochtimes.de/127.0.0.1#5335 -ipset=/epochtimes.de/gfwlist +server=/fscebook.com/127.0.0.1#5335 +ipset=/fscebook.com/gfwlist server=/bmw-connecteddrive.kr/127.0.0.1#5335 ipset=/bmw-connecteddrive.kr/gfwlist -server=/golang.org/127.0.0.1#5335 -ipset=/golang.org/gfwlist -server=/go.dev/127.0.0.1#5335 -ipset=/go.dev/gfwlist -server=/go-lang.org/127.0.0.1#5335 -ipset=/go-lang.org/gfwlist -server=/scholar.google.lu/127.0.0.1#5335 -ipset=/scholar.google.lu/gfwlist -server=/gitlab-static.net/127.0.0.1#5335 -ipset=/gitlab-static.net/gfwlist +server=/onejav.com/127.0.0.1#5335 +ipset=/onejav.com/gfwlist +server=/omorashi.org/127.0.0.1#5335 +ipset=/omorashi.org/gfwlist +server=/axbdoll.com.tw/127.0.0.1#5335 +ipset=/axbdoll.com.tw/gfwlist +server=/fandango.com/127.0.0.1#5335 +ipset=/fandango.com/gfwlist +server=/obutu.com/127.0.0.1#5335 +ipset=/obutu.com/gfwlist server=/findyourlimits.com/127.0.0.1#5335 ipset=/findyourlimits.com/gfwlist -server=/eastore.com/127.0.0.1#5335 -ipset=/eastore.com/gfwlist -server=/whisolutions.com/127.0.0.1#5335 -ipset=/whisolutions.com/gfwlist +server=/nintendostore.com/127.0.0.1#5335 +ipset=/nintendostore.com/gfwlist +server=/ebaycbt.co.kr/127.0.0.1#5335 +ipset=/ebaycbt.co.kr/gfwlist server=/expertmaker.com/127.0.0.1#5335 ipset=/expertmaker.com/gfwlist -server=/akamah.com/127.0.0.1#5335 -ipset=/akamah.com/gfwlist -server=/mini-ksa.com/127.0.0.1#5335 -ipset=/mini-ksa.com/gfwlist -server=/github.dev/127.0.0.1#5335 -ipset=/github.dev/gfwlist -server=/page.link/127.0.0.1#5335 -ipset=/page.link/gfwlist -server=/npmjs.org/127.0.0.1#5335 -ipset=/npmjs.org/gfwlist -server=/gputechconf.com.au/127.0.0.1#5335 -ipset=/gputechconf.com.au/gfwlist -server=/oath.cloud/127.0.0.1#5335 -ipset=/oath.cloud/gfwlist +server=/iyottube.com/127.0.0.1#5335 +ipset=/iyottube.com/gfwlist +server=/jiyu-kobo.co.jp/127.0.0.1#5335 +ipset=/jiyu-kobo.co.jp/gfwlist +server=/disney.ro/127.0.0.1#5335 +ipset=/disney.ro/gfwlist +server=/flickr.net/127.0.0.1#5335 +ipset=/flickr.net/gfwlist +server=/noveltrove.com/127.0.0.1#5335 +ipset=/noveltrove.com/gfwlist +server=/theopportunityproject.org/127.0.0.1#5335 +ipset=/theopportunityproject.org/gfwlist +server=/rarbgway.org/127.0.0.1#5335 +ipset=/rarbgway.org/gfwlist server=/youtube.pk/127.0.0.1#5335 ipset=/youtube.pk/gfwlist -server=/paypal-apps.com/127.0.0.1#5335 -ipset=/paypal-apps.com/gfwlist +server=/embl.it/127.0.0.1#5335 +ipset=/embl.it/gfwlist server=/terapeak.ca/127.0.0.1#5335 ipset=/terapeak.ca/gfwlist -server=/google.tn/127.0.0.1#5335 -ipset=/google.tn/gfwlist -server=/flutter.dev/127.0.0.1#5335 -ipset=/flutter.dev/gfwlist -server=/newenergyfinance.com/127.0.0.1#5335 -ipset=/newenergyfinance.com/gfwlist -server=/pearsonvue.com/127.0.0.1#5335 -ipset=/pearsonvue.com/gfwlist -server=/fedoraproject.org/127.0.0.1#5335 -ipset=/fedoraproject.org/gfwlist +server=/livejasminbabes.net/127.0.0.1#5335 +ipset=/livejasminbabes.net/gfwlist +server=/nichepornsites.com/127.0.0.1#5335 +ipset=/nichepornsites.com/gfwlist +server=/dragonagekeep.com/127.0.0.1#5335 +ipset=/dragonagekeep.com/gfwlist +server=/new-redtube.com/127.0.0.1#5335 +ipset=/new-redtube.com/gfwlist +server=/neswangy.net/127.0.0.1#5335 +ipset=/neswangy.net/gfwlist server=/simplify.com/127.0.0.1#5335 ipset=/simplify.com/gfwlist -server=/hpconnected.us/127.0.0.1#5335 -ipset=/hpconnected.us/gfwlist +server=/hdpornfree.xxx/127.0.0.1#5335 +ipset=/hdpornfree.xxx/gfwlist server=/identrust.com/127.0.0.1#5335 ipset=/identrust.com/gfwlist -server=/volvobuses.com.pt/127.0.0.1#5335 -ipset=/volvobuses.com.pt/gfwlist -server=/reactjs.com/127.0.0.1#5335 -ipset=/reactjs.com/gfwlist -server=/react.com/127.0.0.1#5335 -ipset=/react.com/gfwlist -server=/airwick.es/127.0.0.1#5335 -ipset=/airwick.es/gfwlist +server=/mini-connected.fi/127.0.0.1#5335 +ipset=/mini-connected.fi/gfwlist +server=/nakednews.com/127.0.0.1#5335 +ipset=/nakednews.com/gfwlist +server=/airiti.com/127.0.0.1#5335 +ipset=/airiti.com/gfwlist +server=/naijauncut.com/127.0.0.1#5335 +ipset=/naijauncut.com/gfwlist server=/blogspot.bg/127.0.0.1#5335 ipset=/blogspot.bg/gfwlist server=/nomadproject.io/127.0.0.1#5335 ipset=/nomadproject.io/gfwlist -server=/ebayhots.com/127.0.0.1#5335 -ipset=/ebayhots.com/gfwlist +server=/myyoungwifeisnude.com/127.0.0.1#5335 +ipset=/myyoungwifeisnude.com/gfwlist server=/partylikeits1986.org/127.0.0.1#5335 ipset=/partylikeits1986.org/gfwlist -server=/google.ht/127.0.0.1#5335 -ipset=/google.ht/gfwlist -server=/finlitsummit.org/127.0.0.1#5335 -ipset=/finlitsummit.org/gfwlist -server=/bridgestonerapiddelivery.com/127.0.0.1#5335 -ipset=/bridgestonerapiddelivery.com/gfwlist -server=/botorch.org/127.0.0.1#5335 -ipset=/botorch.org/gfwlist +server=/globalsign.eu/127.0.0.1#5335 +ipset=/globalsign.eu/gfwlist +server=/gaycamvideos.net/127.0.0.1#5335 +ipset=/gaycamvideos.net/gfwlist +server=/mysexygfs.com/127.0.0.1#5335 +ipset=/mysexygfs.com/gfwlist +server=/mysexgames.com/127.0.0.1#5335 +ipset=/mysexgames.com/gfwlist server=/bmw-powertrain.com/127.0.0.1#5335 ipset=/bmw-powertrain.com/gfwlist -server=/atscaleconference.com/127.0.0.1#5335 -ipset=/atscaleconference.com/gfwlist +server=/fox11.com/127.0.0.1#5335 +ipset=/fox11.com/gfwlist server=/yahoo.com.sa/127.0.0.1#5335 ipset=/yahoo.com.sa/gfwlist -server=/disneyinternational.com/127.0.0.1#5335 -ipset=/disneyinternational.com/gfwlist -server=/dotdeb.org/127.0.0.1#5335 -ipset=/dotdeb.org/gfwlist -server=/masterintelligence.com/127.0.0.1#5335 -ipset=/masterintelligence.com/gfwlist +server=/nurofen.co.nz/127.0.0.1#5335 +ipset=/nurofen.co.nz/gfwlist +server=/javporn.tech/127.0.0.1#5335 +ipset=/javporn.tech/gfwlist +server=/gannett.com/127.0.0.1#5335 +ipset=/gannett.com/gfwlist server=/wimpmusic.com/127.0.0.1#5335 ipset=/wimpmusic.com/gfwlist server=/xn--q41am8x.com/127.0.0.1#5335 ipset=/xn--q41am8x.com/gfwlist -server=/eac-cdn.com/127.0.0.1#5335 -ipset=/eac-cdn.com/gfwlist -server=/deepl.com/127.0.0.1#5335 -ipset=/deepl.com/gfwlist +server=/donpornogratis.com/127.0.0.1#5335 +ipset=/donpornogratis.com/gfwlist +server=/hentaimangaporn.com/127.0.0.1#5335 +ipset=/hentaimangaporn.com/gfwlist server=/slack-imgs.com/127.0.0.1#5335 ipset=/slack-imgs.com/gfwlist -server=/ubuntuforums.org/127.0.0.1#5335 -ipset=/ubuntuforums.org/gfwlist -server=/paypal-team.com/127.0.0.1#5335 -ipset=/paypal-team.com/gfwlist +server=/bestkinky.com/127.0.0.1#5335 +ipset=/bestkinky.com/gfwlist +server=/ero-labs.online/127.0.0.1#5335 +ipset=/ero-labs.online/gfwlist server=/officialbeatsbydreshop.com/127.0.0.1#5335 ipset=/officialbeatsbydreshop.com/gfwlist -server=/instagramtakiphilesi.com/127.0.0.1#5335 -ipset=/instagramtakiphilesi.com/gfwlist -server=/ubuntu.net/127.0.0.1#5335 -ipset=/ubuntu.net/gfwlist -server=/durex.com.au/127.0.0.1#5335 -ipset=/durex.com.au/gfwlist -server=/yahoo.com.py/127.0.0.1#5335 -ipset=/yahoo.com.py/gfwlist -server=/bmw.nc/127.0.0.1#5335 -ipset=/bmw.nc/gfwlist -server=/apple.me/127.0.0.1#5335 -ipset=/apple.me/gfwlist -server=/afpforum.com/127.0.0.1#5335 -ipset=/afpforum.com/gfwlist -server=/park-now.com/127.0.0.1#5335 -ipset=/park-now.com/gfwlist +server=/dyttapis.com/127.0.0.1#5335 +ipset=/dyttapis.com/gfwlist +server=/xboxgamestudios.com/127.0.0.1#5335 +ipset=/xboxgamestudios.com/gfwlist +server=/mrdeepfakes.com/127.0.0.1#5335 +ipset=/mrdeepfakes.com/gfwlist +server=/menatplay.com/127.0.0.1#5335 +ipset=/menatplay.com/gfwlist +server=/bizarresexuality.com/127.0.0.1#5335 +ipset=/bizarresexuality.com/gfwlist +server=/bloomberg.co.jp/127.0.0.1#5335 +ipset=/bloomberg.co.jp/gfwlist +server=/lethalhardcore.com/127.0.0.1#5335 +ipset=/lethalhardcore.com/gfwlist +server=/morazzia.com/127.0.0.1#5335 +ipset=/morazzia.com/gfwlist server=/appleiphone.hu/127.0.0.1#5335 ipset=/appleiphone.hu/gfwlist -server=/macruby.net/127.0.0.1#5335 -ipset=/macruby.net/gfwlist -server=/webflow.com/127.0.0.1#5335 -ipset=/webflow.com/gfwlist -server=/swift.org/127.0.0.1#5335 -ipset=/swift.org/gfwlist +server=/hotntubes.com/127.0.0.1#5335 +ipset=/hotntubes.com/gfwlist +server=/hentaisea.com/127.0.0.1#5335 +ipset=/hentaisea.com/gfwlist +server=/momshardcoreporn.com/127.0.0.1#5335 +ipset=/momshardcoreporn.com/gfwlist server=/fantv.hk/127.0.0.1#5335 ipset=/fantv.hk/gfwlist server=/singtaousa.com/127.0.0.1#5335 ipset=/singtaousa.com/gfwlist server=/foxsports.com.uy/127.0.0.1#5335 ipset=/foxsports.com.uy/gfwlist -server=/mytvsuper.com/127.0.0.1#5335 -ipset=/mytvsuper.com/gfwlist -server=/zohouniversity.com/127.0.0.1#5335 -ipset=/zohouniversity.com/gfwlist -server=/scholar.google.de/127.0.0.1#5335 -ipset=/scholar.google.de/gfwlist +server=/snowmiku.com/127.0.0.1#5335 +ipset=/snowmiku.com/gfwlist +server=/momsfuckingboys.net/127.0.0.1#5335 +ipset=/momsfuckingboys.net/gfwlist +server=/foxcareers.com/127.0.0.1#5335 +ipset=/foxcareers.com/gfwlist server=/serverfault.com/127.0.0.1#5335 ipset=/serverfault.com/gfwlist -server=/zohostatic.com/127.0.0.1#5335 -ipset=/zohostatic.com/gfwlist +server=/dentalhypotheses.com/127.0.0.1#5335 +ipset=/dentalhypotheses.com/gfwlist server=/tasteofpremium.jp/127.0.0.1#5335 ipset=/tasteofpremium.jp/gfwlist -server=/disneyinternationalhd.com/127.0.0.1#5335 -ipset=/disneyinternationalhd.com/gfwlist -server=/zohomerchandise.com/127.0.0.1#5335 -ipset=/zohomerchandise.com/gfwlist -server=/epochtimes.co.uk/127.0.0.1#5335 -ipset=/epochtimes.co.uk/gfwlist -server=/shopee.sg/127.0.0.1#5335 -ipset=/shopee.sg/gfwlist -server=/minneapolisbmw.com/127.0.0.1#5335 -ipset=/minneapolisbmw.com/gfwlist -server=/cloudflareinsights.com/127.0.0.1#5335 -ipset=/cloudflareinsights.com/gfwlist -server=/pokemongoldsilver.com/127.0.0.1#5335 -ipset=/pokemongoldsilver.com/gfwlist +server=/exotic-ghana.com/127.0.0.1#5335 +ipset=/exotic-ghana.com/gfwlist +server=/ebay25.com/127.0.0.1#5335 +ipset=/ebay25.com/gfwlist +server=/nna.jp/127.0.0.1#5335 +ipset=/nna.jp/gfwlist +server=/mixmaturesex.com/127.0.0.1#5335 +ipset=/mixmaturesex.com/gfwlist +server=/gtv1.org/127.0.0.1#5335 +ipset=/gtv1.org/gfwlist +server=/mitnaka.com/127.0.0.1#5335 +ipset=/mitnaka.com/gfwlist +server=/blogspot.no/127.0.0.1#5335 +ipset=/blogspot.no/gfwlist server=/pin.it/127.0.0.1#5335 ipset=/pin.it/gfwlist -server=/bmw.no/127.0.0.1#5335 -ipset=/bmw.no/gfwlist -server=/wpvip.com/127.0.0.1#5335 -ipset=/wpvip.com/gfwlist -server=/hpdriver.com/127.0.0.1#5335 -ipset=/hpdriver.com/gfwlist +server=/milfsover30.com/127.0.0.1#5335 +ipset=/milfsover30.com/gfwlist +server=/imperialbusiness.school/127.0.0.1#5335 +ipset=/imperialbusiness.school/gfwlist +server=/ftv.com.tw/127.0.0.1#5335 +ipset=/ftv.com.tw/gfwlist server=/akamai-access.com/127.0.0.1#5335 ipset=/akamai-access.com/gfwlist -server=/webofscience.com/127.0.0.1#5335 -ipset=/webofscience.com/gfwlist +server=/18comic.company/127.0.0.1#5335 +ipset=/18comic.company/gfwlist server=/huobi.com/127.0.0.1#5335 ipset=/huobi.com/gfwlist -server=/veet.jp/127.0.0.1#5335 -ipset=/veet.jp/gfwlist -server=/hkopentv.com/127.0.0.1#5335 -ipset=/hkopentv.com/gfwlist -server=/nikebbn.com/127.0.0.1#5335 -ipset=/nikebbn.com/gfwlist -server=/valvesoftware.com/127.0.0.1#5335 -ipset=/valvesoftware.com/gfwlist -server=/rsshub.app/127.0.0.1#5335 -ipset=/rsshub.app/gfwlist -server=/softbank-robotics.com/127.0.0.1#5335 -ipset=/softbank-robotics.com/gfwlist -server=/jstor.org/127.0.0.1#5335 -ipset=/jstor.org/gfwlist +server=/milfed.com/127.0.0.1#5335 +ipset=/milfed.com/gfwlist +server=/deepfreeze.com/127.0.0.1#5335 +ipset=/deepfreeze.com/gfwlist +server=/paypal-login.info/127.0.0.1#5335 +ipset=/paypal-login.info/gfwlist +server=/bestmallawards.com/127.0.0.1#5335 +ipset=/bestmallawards.com/gfwlist +server=/mantochichi.com/127.0.0.1#5335 +ipset=/mantochichi.com/gfwlist +server=/kfs.io/127.0.0.1#5335 +ipset=/kfs.io/gfwlist +server=/manga18.art/127.0.0.1#5335 +ipset=/manga18.art/gfwlist server=/realclearlife.com/127.0.0.1#5335 ipset=/realclearlife.com/gfwlist -server=/cheapsalemonster.com/127.0.0.1#5335 -ipset=/cheapsalemonster.com/gfwlist -server=/attbusiness.net/127.0.0.1#5335 -ipset=/attbusiness.net/gfwlist -server=/shopify.dev/127.0.0.1#5335 -ipset=/shopify.dev/gfwlist -server=/xn--74q035i.xn--hxt814e/127.0.0.1#5335 -ipset=/xn--74q035i.xn--hxt814e/gfwlist -server=/calendarserver.org/127.0.0.1#5335 -ipset=/calendarserver.org/gfwlist -server=/zeit-world.net/127.0.0.1#5335 -ipset=/zeit-world.net/gfwlist -server=/scholar.google.com.sv/127.0.0.1#5335 -ipset=/scholar.google.com.sv/gfwlist +server=/diao.asia/127.0.0.1#5335 +ipset=/diao.asia/gfwlist +server=/fatstube.com/127.0.0.1#5335 +ipset=/fatstube.com/gfwlist +server=/singtaonewscorp.com/127.0.0.1#5335 +ipset=/singtaonewscorp.com/gfwlist +server=/intel.cu/127.0.0.1#5335 +ipset=/intel.cu/gfwlist +server=/asminternational.org/127.0.0.1#5335 +ipset=/asminternational.org/gfwlist +server=/ikea.com.sa/127.0.0.1#5335 +ipset=/ikea.com.sa/gfwlist +server=/madchensex.com/127.0.0.1#5335 +ipset=/madchensex.com/gfwlist server=/getprintersupports.com/127.0.0.1#5335 ipset=/getprintersupports.com/gfwlist -server=/tinyurl.com/127.0.0.1#5335 -ipset=/tinyurl.com/gfwlist -server=/miktex.org/127.0.0.1#5335 -ipset=/miktex.org/gfwlist -server=/github-avatars.oss-cn-hongkong.aliyuncs.com/127.0.0.1#5335 -ipset=/github-avatars.oss-cn-hongkong.aliyuncs.com/gfwlist -server=/dditscdn.com/127.0.0.1#5335 -ipset=/dditscdn.com/gfwlist -server=/pinterest.ec/127.0.0.1#5335 -ipset=/pinterest.ec/gfwlist -server=/d2anahhhmp1ffz.cloudfront.net/127.0.0.1#5335 -ipset=/d2anahhhmp1ffz.cloudfront.net/gfwlist +server=/businessinsider.my/127.0.0.1#5335 +ipset=/businessinsider.my/gfwlist +server=/gettyimages.ca/127.0.0.1#5335 +ipset=/gettyimages.ca/gfwlist +server=/pugpig-dev.com/127.0.0.1#5335 +ipset=/pugpig-dev.com/gfwlist +server=/singtao.com/127.0.0.1#5335 +ipset=/singtao.com/gfwlist +server=/lovepartners.life/127.0.0.1#5335 +ipset=/lovepartners.life/gfwlist +server=/lovehomeporn.com/127.0.0.1#5335 +ipset=/lovehomeporn.com/gfwlist server=/vk-cdn.net/127.0.0.1#5335 ipset=/vk-cdn.net/gfwlist -server=/forzarc.com/127.0.0.1#5335 -ipset=/forzarc.com/gfwlist -server=/fontexplorerx.com/127.0.0.1#5335 -ipset=/fontexplorerx.com/gfwlist -server=/discordstatus.com/127.0.0.1#5335 -ipset=/discordstatus.com/gfwlist -server=/foxsoccershop.com/127.0.0.1#5335 -ipset=/foxsoccershop.com/gfwlist -server=/bridgestone.co.id/127.0.0.1#5335 -ipset=/bridgestone.co.id/gfwlist -server=/fbhome.com/127.0.0.1#5335 -ipset=/fbhome.com/gfwlist -server=/travelex.com/127.0.0.1#5335 -ipset=/travelex.com/gfwlist +server=/ltsports.com.tw/127.0.0.1#5335 +ipset=/ltsports.com.tw/gfwlist +server=/lolhentai.net/127.0.0.1#5335 +ipset=/lolhentai.net/gfwlist +server=/loholidayhk.com/127.0.0.1#5335 +ipset=/loholidayhk.com/gfwlist +server=/localxlist.org/127.0.0.1#5335 +ipset=/localxlist.org/gfwlist +server=/liveprivates.com/127.0.0.1#5335 +ipset=/liveprivates.com/gfwlist +server=/diamantewebcam.com/127.0.0.1#5335 +ipset=/diamantewebcam.com/gfwlist +server=/ikea.ru/127.0.0.1#5335 +ipset=/ikea.ru/gfwlist server=/nintendo.es/127.0.0.1#5335 ipset=/nintendo.es/gfwlist -server=/terapeak.info/127.0.0.1#5335 -ipset=/terapeak.info/gfwlist -server=/rb.gy/127.0.0.1#5335 -ipset=/rb.gy/gfwlist -server=/privatemarketplaces.us/127.0.0.1#5335 -ipset=/privatemarketplaces.us/gfwlist +server=/letsfuckme.net/127.0.0.1#5335 +ipset=/letsfuckme.net/gfwlist +server=/letsdoeit.com/127.0.0.1#5335 +ipset=/letsdoeit.com/gfwlist +server=/lemoncams.com/127.0.0.1#5335 +ipset=/lemoncams.com/gfwlist server=/kindle.es/127.0.0.1#5335 ipset=/kindle.es/gfwlist server=/egmontbooks.co.uk/127.0.0.1#5335 ipset=/egmontbooks.co.uk/gfwlist -server=/quip.com/127.0.0.1#5335 -ipset=/quip.com/gfwlist -server=/typenetwork.com/127.0.0.1#5335 -ipset=/typenetwork.com/gfwlist -server=/sony.hu/127.0.0.1#5335 -ipset=/sony.hu/gfwlist -server=/volvotrucks.sk/127.0.0.1#5335 -ipset=/volvotrucks.sk/gfwlist -server=/pse.is/127.0.0.1#5335 -ipset=/pse.is/gfwlist -server=/foxbusinessgo.com/127.0.0.1#5335 -ipset=/foxbusinessgo.com/gfwlist -server=/mpv.io/127.0.0.1#5335 -ipset=/mpv.io/gfwlist -server=/madvrlabs.llc/127.0.0.1#5335 -ipset=/madvrlabs.llc/gfwlist -server=/secure-paypal.info/127.0.0.1#5335 -ipset=/secure-paypal.info/gfwlist +server=/lazymike.com/127.0.0.1#5335 +ipset=/lazymike.com/gfwlist +server=/101boyvideos.com/127.0.0.1#5335 +ipset=/101boyvideos.com/gfwlist +server=/voyeurmonkey.com/127.0.0.1#5335 +ipset=/voyeurmonkey.com/gfwlist +server=/javprime.net/127.0.0.1#5335 +ipset=/javprime.net/gfwlist +server=/avstar01.me/127.0.0.1#5335 +ipset=/avstar01.me/gfwlist +server=/igi-global.com/127.0.0.1#5335 +ipset=/igi-global.com/gfwlist +server=/nyaa.si/127.0.0.1#5335 +ipset=/nyaa.si/gfwlist +server=/api-priconne-redive.cygames.jp/127.0.0.1#5335 +ipset=/api-priconne-redive.cygames.jp/gfwlist +server=/jetbrains.team/127.0.0.1#5335 +ipset=/jetbrains.team/gfwlist server=/freefacebook.com/127.0.0.1#5335 ipset=/freefacebook.com/gfwlist -server=/garena.ph/127.0.0.1#5335 -ipset=/garena.ph/gfwlist +server=/kostenlosepornoclips.com/127.0.0.1#5335 +ipset=/kostenlosepornoclips.com/gfwlist server=/visa-news.jp/127.0.0.1#5335 ipset=/visa-news.jp/gfwlist -server=/liberapay.com/127.0.0.1#5335 -ipset=/liberapay.com/gfwlist -server=/codeish.co/127.0.0.1#5335 -ipset=/codeish.co/gfwlist +server=/marveldimensionofheroes.com/127.0.0.1#5335 +ipset=/marveldimensionofheroes.com/gfwlist +server=/kir2kos.net/127.0.0.1#5335 +ipset=/kir2kos.net/gfwlist server=/swjfo.com/127.0.0.1#5335 ipset=/swjfo.com/gfwlist -server=/mini.co.za/127.0.0.1#5335 -ipset=/mini.co.za/gfwlist +server=/iaablog.com/127.0.0.1#5335 +ipset=/iaablog.com/gfwlist server=/mastercard.co.nz/127.0.0.1#5335 ipset=/mastercard.co.nz/gfwlist server=/xdty.org/127.0.0.1#5335 ipset=/xdty.org/gfwlist -server=/ebaynow.com/127.0.0.1#5335 -ipset=/ebaynow.com/gfwlist +server=/nakedgirls.biz/127.0.0.1#5335 +ipset=/nakedgirls.biz/gfwlist server=/card.io/127.0.0.1#5335 ipset=/card.io/gfwlist -server=/bayareabmw.com/127.0.0.1#5335 -ipset=/bayareabmw.com/gfwlist -server=/mini-lebanon.com/127.0.0.1#5335 -ipset=/mini-lebanon.com/gfwlist -server=/hitun.io/127.0.0.1#5335 -ipset=/hitun.io/gfwlist +server=/disney.fr/127.0.0.1#5335 +ipset=/disney.fr/gfwlist +server=/karupsha.com/127.0.0.1#5335 +ipset=/karupsha.com/gfwlist +server=/faronicswise.co.uk/127.0.0.1#5335 +ipset=/faronicswise.co.uk/gfwlist server=/guim.co.uk/127.0.0.1#5335 ipset=/guim.co.uk/gfwlist -server=/paradisehotelquizfox.com/127.0.0.1#5335 -ipset=/paradisehotelquizfox.com/gfwlist -server=/duckgo.com/127.0.0.1#5335 -ipset=/duckgo.com/gfwlist +server=/kairakudoujin.net/127.0.0.1#5335 +ipset=/kairakudoujin.net/gfwlist +server=/bmw.com.do/127.0.0.1#5335 +ipset=/bmw.com.do/gfwlist server=/peerj.com/127.0.0.1#5335 ipset=/peerj.com/gfwlist server=/universitypressscholarship.com/127.0.0.1#5335 ipset=/universitypressscholarship.com/gfwlist -server=/duckduckgo.nl/127.0.0.1#5335 -ipset=/duckduckgo.nl/gfwlist -server=/businessinsider.jp/127.0.0.1#5335 -ipset=/businessinsider.jp/gfwlist -server=/duckduckgo.co.uk/127.0.0.1#5335 -ipset=/duckduckgo.co.uk/gfwlist -server=/vod-thumb-ww-live.akamaized.net/127.0.0.1#5335 -ipset=/vod-thumb-ww-live.akamaized.net/gfwlist -server=/internationalconnectionsacademy.com/127.0.0.1#5335 -ipset=/internationalconnectionsacademy.com/gfwlist -server=/www-paypal.info/127.0.0.1#5335 -ipset=/www-paypal.info/gfwlist +server=/alphabet.co.hu/127.0.0.1#5335 +ipset=/alphabet.co.hu/gfwlist +server=/vrsumo.com/127.0.0.1#5335 +ipset=/vrsumo.com/gfwlist +server=/justfullporn.org/127.0.0.1#5335 +ipset=/justfullporn.org/gfwlist +server=/appsonebay.net/127.0.0.1#5335 +ipset=/appsonebay.net/gfwlist +server=/sankei-books.co.jp/127.0.0.1#5335 +ipset=/sankei-books.co.jp/gfwlist +server=/tenbyfotolia.com/127.0.0.1#5335 +ipset=/tenbyfotolia.com/gfwlist server=/joinmaidez.com/127.0.0.1#5335 ipset=/joinmaidez.com/gfwlist -server=/braintreepayments.com/127.0.0.1#5335 -ipset=/braintreepayments.com/gfwlist -server=/cispaletter.org/127.0.0.1#5335 -ipset=/cispaletter.org/gfwlist +server=/jpg4.biz/127.0.0.1#5335 +ipset=/jpg4.biz/gfwlist +server=/degruyter.com/127.0.0.1#5335 +ipset=/degruyter.com/gfwlist server=/vuvuzela.io/127.0.0.1#5335 ipset=/vuvuzela.io/gfwlist -server=/demdex.net/127.0.0.1#5335 -ipset=/demdex.net/gfwlist +server=/erolabs.cloud/127.0.0.1#5335 +ipset=/erolabs.cloud/gfwlist server=/softbank.tv/127.0.0.1#5335 ipset=/softbank.tv/gfwlist -server=/contentful.com/127.0.0.1#5335 -ipset=/contentful.com/gfwlist +server=/pixnet.pro/127.0.0.1#5335 +ipset=/pixnet.pro/gfwlist server=/akadns6.net/127.0.0.1#5335 ipset=/akadns6.net/gfwlist -server=/cloudconvert.com/127.0.0.1#5335 -ipset=/cloudconvert.com/gfwlist -server=/adidas.nl/127.0.0.1#5335 -ipset=/adidas.nl/gfwlist +server=/hentaihaven.com/127.0.0.1#5335 +ipset=/hentaihaven.com/gfwlist +server=/penthouse.com/127.0.0.1#5335 +ipset=/penthouse.com/gfwlist server=/vanish.ro/127.0.0.1#5335 ipset=/vanish.ro/gfwlist -server=/myconstructionworld.net/127.0.0.1#5335 -ipset=/myconstructionworld.net/gfwlist -server=/epochtimes.com.br/127.0.0.1#5335 -ipset=/epochtimes.com.br/gfwlist -server=/xtube.com/127.0.0.1#5335 -ipset=/xtube.com/gfwlist -server=/bmw.co.il/127.0.0.1#5335 -ipset=/bmw.co.il/gfwlist +server=/zwtvusa.com/127.0.0.1#5335 +ipset=/zwtvusa.com/gfwlist +server=/facebookconsultant.org/127.0.0.1#5335 +ipset=/facebookconsultant.org/gfwlist +server=/javhdfree.net/127.0.0.1#5335 +ipset=/javhdfree.net/gfwlist +server=/javhaven.com/127.0.0.1#5335 +ipset=/javhaven.com/gfwlist server=/harperapps.com/127.0.0.1#5335 ipset=/harperapps.com/gfwlist -server=/thtmod1.com/127.0.0.1#5335 -ipset=/thtmod1.com/gfwlist -server=/customnikeshoes.com/127.0.0.1#5335 -ipset=/customnikeshoes.com/gfwlist -server=/volvotruckcenter.kr/127.0.0.1#5335 -ipset=/volvotruckcenter.kr/gfwlist -server=/wwwmacbookair.com/127.0.0.1#5335 -ipset=/wwwmacbookair.com/gfwlist -server=/monsterbeatsfactory.net/127.0.0.1#5335 -ipset=/monsterbeatsfactory.net/gfwlist -server=/clubhouseapi.com/127.0.0.1#5335 -ipset=/clubhouseapi.com/gfwlist -server=/directvrichmond.com/127.0.0.1#5335 -ipset=/directvrichmond.com/gfwlist -server=/tbr.tangbr.net/127.0.0.1#5335 -ipset=/tbr.tangbr.net/gfwlist -server=/t66y.com/127.0.0.1#5335 -ipset=/t66y.com/gfwlist -server=/babble.com/127.0.0.1#5335 -ipset=/babble.com/gfwlist -server=/mozilla.org/127.0.0.1#5335 -ipset=/mozilla.org/gfwlist -server=/bmw-motorcycle.com/127.0.0.1#5335 -ipset=/bmw-motorcycle.com/gfwlist +server=/pussysexgames.com/127.0.0.1#5335 +ipset=/pussysexgames.com/gfwlist +server=/newbeatsblackfriday.com/127.0.0.1#5335 +ipset=/newbeatsblackfriday.com/gfwlist +server=/ggsrv.com/127.0.0.1#5335 +ipset=/ggsrv.com/gfwlist +server=/tube4world.com/127.0.0.1#5335 +ipset=/tube4world.com/gfwlist +server=/jav.place/127.0.0.1#5335 +ipset=/jav.place/gfwlist +server=/japon-girls.com/127.0.0.1#5335 +ipset=/japon-girls.com/gfwlist +server=/youtubego.in/127.0.0.1#5335 +ipset=/youtubego.in/gfwlist +server=/ita-do.com/127.0.0.1#5335 +ipset=/ita-do.com/gfwlist +server=/iranx.net/127.0.0.1#5335 +ipset=/iranx.net/gfwlist +server=/umagazine.com.hk/127.0.0.1#5335 +ipset=/umagazine.com.hk/gfwlist +server=/intescort.com/127.0.0.1#5335 +ipset=/intescort.com/gfwlist +server=/instabang.com/127.0.0.1#5335 +ipset=/instabang.com/gfwlist server=/ipodtouch.com/127.0.0.1#5335 ipset=/ipodtouch.com/gfwlist server=/visa.lv/127.0.0.1#5335 @@ -22282,755 +34854,755 @@ server=/verisign.name/127.0.0.1#5335 ipset=/verisign.name/gfwlist server=/akamai.net/127.0.0.1#5335 ipset=/akamai.net/gfwlist -server=/prime-video.com/127.0.0.1#5335 -ipset=/prime-video.com/gfwlist +server=/indianhiddencams.com/127.0.0.1#5335 +ipset=/indianhiddencams.com/gfwlist server=/foxsports-world.com/127.0.0.1#5335 ipset=/foxsports-world.com/gfwlist server=/oculuscasino.net/127.0.0.1#5335 ipset=/oculuscasino.net/gfwlist server=/adobeawards.com/127.0.0.1#5335 ipset=/adobeawards.com/gfwlist -server=/canon.ge/127.0.0.1#5335 -ipset=/canon.ge/gfwlist -server=/osakamotion.net/127.0.0.1#5335 -ipset=/osakamotion.net/gfwlist +server=/independentdubaiescorts.com/127.0.0.1#5335 +ipset=/independentdubaiescorts.com/gfwlist +server=/incestporn.xxx/127.0.0.1#5335 +ipset=/incestporn.xxx/gfwlist server=/visaluxuryhotels.com.ar/127.0.0.1#5335 ipset=/visaluxuryhotels.com.ar/gfwlist -server=/volvotrucks.tm/127.0.0.1#5335 -ipset=/volvotrucks.tm/gfwlist +server=/sciencedirect.com/127.0.0.1#5335 +ipset=/sciencedirect.com/gfwlist server=/readthedocs.org/127.0.0.1#5335 ipset=/readthedocs.org/gfwlist -server=/openmaps.org/127.0.0.1#5335 -ipset=/openmaps.org/gfwlist -server=/durex.dk/127.0.0.1#5335 -ipset=/durex.dk/gfwlist -server=/javhd.com/127.0.0.1#5335 -ipset=/javhd.com/gfwlist -server=/theinitium.com/127.0.0.1#5335 -ipset=/theinitium.com/gfwlist -server=/isexomega.tw/127.0.0.1#5335 -ipset=/isexomega.tw/gfwlist -server=/iijav.com/127.0.0.1#5335 -ipset=/iijav.com/gfwlist +server=/duckgo.com/127.0.0.1#5335 +ipset=/duckgo.com/gfwlist +server=/igotpornpics.com/127.0.0.1#5335 +ipset=/igotpornpics.com/gfwlist +server=/pcstore.com.tw/127.0.0.1#5335 +ipset=/pcstore.com.tw/gfwlist +server=/hypnotube.com/127.0.0.1#5335 +ipset=/hypnotube.com/gfwlist +server=/premiumfs.de/127.0.0.1#5335 +ipset=/premiumfs.de/gfwlist +server=/mastercardservices.com/127.0.0.1#5335 +ipset=/mastercardservices.com/gfwlist server=/dmm.com/127.0.0.1#5335 ipset=/dmm.com/gfwlist -server=/gouri.xyz/127.0.0.1#5335 -ipset=/gouri.xyz/gfwlist -server=/bridgestoneamericas.com/127.0.0.1#5335 -ipset=/bridgestoneamericas.com/gfwlist -server=/fanhaodian.com/127.0.0.1#5335 -ipset=/fanhaodian.com/gfwlist -server=/verisign.tw/127.0.0.1#5335 -ipset=/verisign.tw/gfwlist -server=/zoho.com/127.0.0.1#5335 -ipset=/zoho.com/gfwlist -server=/paipal.com/127.0.0.1#5335 -ipset=/paipal.com/gfwlist -server=/cheapbeatsbydrenz.net/127.0.0.1#5335 -ipset=/cheapbeatsbydrenz.net/gfwlist -server=/520aa.tv/127.0.0.1#5335 -ipset=/520aa.tv/gfwlist +server=/hussiepass.com/127.0.0.1#5335 +ipset=/hussiepass.com/gfwlist +server=/jinsilubanzhao.com/127.0.0.1#5335 +ipset=/jinsilubanzhao.com/gfwlist +server=/huangse.love/127.0.0.1#5335 +ipset=/huangse.love/gfwlist +server=/nextmedia.com.tw/127.0.0.1#5335 +ipset=/nextmedia.com.tw/gfwlist +server=/zoho.com/127.0.0.1#5335 +ipset=/zoho.com/gfwlist +server=/hottystop.com/127.0.0.1#5335 +ipset=/hottystop.com/gfwlist +server=/av4.us/127.0.0.1#5335 +ipset=/av4.us/gfwlist +server=/hotsexvideo.mobi/127.0.0.1#5335 +ipset=/hotsexvideo.mobi/gfwlist server=/ebay-sales.com/127.0.0.1#5335 ipset=/ebay-sales.com/gfwlist -server=/pc.com/127.0.0.1#5335 -ipset=/pc.com/gfwlist -server=/dmgmediaprivacy.co.uk/127.0.0.1#5335 -ipset=/dmgmediaprivacy.co.uk/gfwlist -server=/nintendo.eu/127.0.0.1#5335 -ipset=/nintendo.eu/gfwlist -server=/gettyimages.com.br/127.0.0.1#5335 -ipset=/gettyimages.com.br/gfwlist -server=/terapeak.com/127.0.0.1#5335 -ipset=/terapeak.com/gfwlist -server=/uun92.com/127.0.0.1#5335 -ipset=/uun92.com/gfwlist +server=/javrave.club/127.0.0.1#5335 +ipset=/javrave.club/gfwlist +server=/steam-api.com/127.0.0.1#5335 +ipset=/steam-api.com/gfwlist +server=/airwick.nl/127.0.0.1#5335 +ipset=/airwick.nl/gfwlist +server=/historyofdota.org/127.0.0.1#5335 +ipset=/historyofdota.org/gfwlist +server=/nikefoampositeshoes.com/127.0.0.1#5335 +ipset=/nikefoampositeshoes.com/gfwlist +server=/illusionfb.cn/127.0.0.1#5335 +ipset=/illusionfb.cn/gfwlist server=/paypal-here.com/127.0.0.1#5335 ipset=/paypal-here.com/gfwlist -server=/cheapbeatsbus.com/127.0.0.1#5335 -ipset=/cheapbeatsbus.com/gfwlist -server=/uun87.com/127.0.0.1#5335 -ipset=/uun87.com/gfwlist -server=/bestbuy-jobs.com/127.0.0.1#5335 -ipset=/bestbuy-jobs.com/gfwlist -server=/imac.one/127.0.0.1#5335 -ipset=/imac.one/gfwlist -server=/pinterest.hu/127.0.0.1#5335 -ipset=/pinterest.hu/gfwlist -server=/p3.csgfnmdb.com/127.0.0.1#5335 -ipset=/p3.csgfnmdb.com/gfwlist +server=/akamqi.com/127.0.0.1#5335 +ipset=/akamqi.com/gfwlist +server=/newsapi.com.au/127.0.0.1#5335 +ipset=/newsapi.com.au/gfwlist +server=/sexygirlspics.com/127.0.0.1#5335 +ipset=/sexygirlspics.com/gfwlist +server=/mcdonaldsparties.co.nz/127.0.0.1#5335 +ipset=/mcdonaldsparties.co.nz/gfwlist +server=/horsecumshot.net/127.0.0.1#5335 +ipset=/horsecumshot.net/gfwlist +server=/kuke.com/127.0.0.1#5335 +ipset=/kuke.com/gfwlist server=/press.vin/127.0.0.1#5335 ipset=/press.vin/gfwlist -server=/viewpointsfromfacebook.com/127.0.0.1#5335 -ipset=/viewpointsfromfacebook.com/gfwlist -server=/dlmobilegarena-a.akamaihd.net/127.0.0.1#5335 -ipset=/dlmobilegarena-a.akamaihd.net/gfwlist -server=/achievementanalytics.com/127.0.0.1#5335 -ipset=/achievementanalytics.com/gfwlist -server=/latex-project.org/127.0.0.1#5335 -ipset=/latex-project.org/gfwlist -server=/javwide.com/127.0.0.1#5335 -ipset=/javwide.com/gfwlist +server=/stepsiblingscaught.com/127.0.0.1#5335 +ipset=/stepsiblingscaught.com/gfwlist +server=/hidefporn.ws/127.0.0.1#5335 +ipset=/hidefporn.ws/gfwlist +server=/hernudepics.com/127.0.0.1#5335 +ipset=/hernudepics.com/gfwlist +server=/nypost.com/127.0.0.1#5335 +ipset=/nypost.com/gfwlist +server=/hentaiworldporn.com/127.0.0.1#5335 +ipset=/hentaiworldporn.com/gfwlist server=/pureapk.com/127.0.0.1#5335 ipset=/pureapk.com/gfwlist server=/ucla.edu/127.0.0.1#5335 ipset=/ucla.edu/gfwlist -server=/fxn.ws/127.0.0.1#5335 -ipset=/fxn.ws/gfwlist +server=/hgamer.pro/127.0.0.1#5335 +ipset=/hgamer.pro/gfwlist server=/verisign.com.au/127.0.0.1#5335 ipset=/verisign.com.au/gfwlist -server=/epochtimes.com.au/127.0.0.1#5335 -ipset=/epochtimes.com.au/gfwlist -server=/yourtv.com.au/127.0.0.1#5335 -ipset=/yourtv.com.au/gfwlist -server=/alphabet.cz/127.0.0.1#5335 -ipset=/alphabet.cz/gfwlist -server=/adguard.com/127.0.0.1#5335 -ipset=/adguard.com/gfwlist +server=/tube2017.com/127.0.0.1#5335 +ipset=/tube2017.com/gfwlist +server=/cock4stepmom.com/127.0.0.1#5335 +ipset=/cock4stepmom.com/gfwlist +server=/indazn.com/127.0.0.1#5335 +ipset=/indazn.com/gfwlist +server=/chatwhores.sex/127.0.0.1#5335 +ipset=/chatwhores.sex/gfwlist server=/facebook-pmdcenter.com/127.0.0.1#5335 ipset=/facebook-pmdcenter.com/gfwlist -server=/visa.com.tt/127.0.0.1#5335 -ipset=/visa.com.tt/gfwlist +server=/hulupremium.com/127.0.0.1#5335 +ipset=/hulupremium.com/gfwlist server=/yahoo.com.sb/127.0.0.1#5335 ipset=/yahoo.com.sb/gfwlist -server=/airitilibrary.com/127.0.0.1#5335 -ipset=/airitilibrary.com/gfwlist -server=/atypi.org/127.0.0.1#5335 -ipset=/atypi.org/gfwlist -server=/blogspot.sg/127.0.0.1#5335 -ipset=/blogspot.sg/gfwlist -server=/osmfoundation.org/127.0.0.1#5335 -ipset=/osmfoundation.org/gfwlist +server=/foxsports.com.mx/127.0.0.1#5335 +ipset=/foxsports.com.mx/gfwlist +server=/leagueoflegends.info/127.0.0.1#5335 +ipset=/leagueoflegends.info/gfwlist +server=/vkcache.com/127.0.0.1#5335 +ipset=/vkcache.com/gfwlist +server=/hentaihaven.io/127.0.0.1#5335 +ipset=/hentaihaven.io/gfwlist server=/postini.com/127.0.0.1#5335 ipset=/postini.com/gfwlist -server=/hutpromos.com/127.0.0.1#5335 -ipset=/hutpromos.com/gfwlist -server=/creativecommons.engineering/127.0.0.1#5335 -ipset=/creativecommons.engineering/gfwlist -server=/ccstatic.org/127.0.0.1#5335 -ipset=/ccstatic.org/gfwlist -server=/scholar.google.bg/127.0.0.1#5335 -ipset=/scholar.google.bg/gfwlist -server=/bmw-motorrad.com.my/127.0.0.1#5335 -ipset=/bmw-motorrad.com.my/gfwlist -server=/unwire.hk/127.0.0.1#5335 -ipset=/unwire.hk/gfwlist -server=/nikeselling.com/127.0.0.1#5335 -ipset=/nikeselling.com/gfwlist -server=/ssl-lvlt.cdn.ea.com/127.0.0.1#5335 -ipset=/ssl-lvlt.cdn.ea.com/gfwlist -server=/alphera.com.hk/127.0.0.1#5335 -ipset=/alphera.com.hk/gfwlist -server=/rsf.org/127.0.0.1#5335 -ipset=/rsf.org/gfwlist -server=/ieeeusa.org/127.0.0.1#5335 -ipset=/ieeeusa.org/gfwlist -server=/mingpaomonthly.com/127.0.0.1#5335 -ipset=/mingpaomonthly.com/gfwlist -server=/foxsports.info/127.0.0.1#5335 -ipset=/foxsports.info/gfwlist -server=/embed.ly/127.0.0.1#5335 -ipset=/embed.ly/gfwlist -server=/businessinsider.nl/127.0.0.1#5335 -ipset=/businessinsider.nl/gfwlist +server=/hentai-space.supertop-100.com/127.0.0.1#5335 +ipset=/hentai-space.supertop-100.com/gfwlist +server=/visa.com.ec/127.0.0.1#5335 +ipset=/visa.com.ec/gfwlist +server=/hentai-cosplays.com/127.0.0.1#5335 +ipset=/hentai-cosplays.com/gfwlist +server=/bmw-motorrad.ru/127.0.0.1#5335 +ipset=/bmw-motorrad.ru/gfwlist +server=/identrust.co.uk/127.0.0.1#5335 +ipset=/identrust.co.uk/gfwlist +server=/hdsex.pro/127.0.0.1#5335 +ipset=/hdsex.pro/gfwlist +server=/hotindianbabe.com/127.0.0.1#5335 +ipset=/hotindianbabe.com/gfwlist +server=/9anime.ws/127.0.0.1#5335 +ipset=/9anime.ws/gfwlist +server=/youtube.com.mx/127.0.0.1#5335 +ipset=/youtube.com.mx/gfwlist +server=/familyswap.xxx/127.0.0.1#5335 +ipset=/familyswap.xxx/gfwlist +server=/china-facebook.com/127.0.0.1#5335 +ipset=/china-facebook.com/gfwlist +server=/bikaa.xyz/127.0.0.1#5335 +ipset=/bikaa.xyz/gfwlist +server=/scholar.google.lu/127.0.0.1#5335 +ipset=/scholar.google.lu/gfwlist +server=/hentaivn.net/127.0.0.1#5335 +ipset=/hentaivn.net/gfwlist +server=/thepornguy.org/127.0.0.1#5335 +ipset=/thepornguy.org/gfwlist server=/supermario.com/127.0.0.1#5335 ipset=/supermario.com/gfwlist -server=/starbucks.com.tr/127.0.0.1#5335 -ipset=/starbucks.com.tr/gfwlist -server=/sonypicturesmuseum.com/127.0.0.1#5335 -ipset=/sonypicturesmuseum.com/gfwlist -server=/volvospares.com/127.0.0.1#5335 -ipset=/volvospares.com/gfwlist -server=/mini.hu/127.0.0.1#5335 -ipset=/mini.hu/gfwlist +server=/thetread.com/127.0.0.1#5335 +ipset=/thetread.com/gfwlist +server=/guysnightlife.com/127.0.0.1#5335 +ipset=/guysnightlife.com/gfwlist +server=/youtube.com.au/127.0.0.1#5335 +ipset=/youtube.com.au/gfwlist +server=/guaranitermal.com/127.0.0.1#5335 +ipset=/guaranitermal.com/gfwlist server=/cheapheadsetmall.com/127.0.0.1#5335 ipset=/cheapheadsetmall.com/gfwlist -server=/bloombergbreakaway.com/127.0.0.1#5335 -ipset=/bloombergbreakaway.com/gfwlist +server=/grabhentai.com/127.0.0.1#5335 +ipset=/grabhentai.com/gfwlist server=/chrome.com/127.0.0.1#5335 ipset=/chrome.com/gfwlist -server=/wd.com/127.0.0.1#5335 -ipset=/wd.com/gfwlist -server=/bmw.se/127.0.0.1#5335 -ipset=/bmw.se/gfwlist +server=/mastercard.co.kr/127.0.0.1#5335 +ipset=/mastercard.co.kr/gfwlist +server=/beeg.rest/127.0.0.1#5335 +ipset=/beeg.rest/gfwlist server=/iphoneunlockimei.com/127.0.0.1#5335 ipset=/iphoneunlockimei.com/gfwlist -server=/travelex.fr/127.0.0.1#5335 -ipset=/travelex.fr/gfwlist -server=/ebayauthenticate.com.cn/127.0.0.1#5335 -ipset=/ebayauthenticate.com.cn/gfwlist -server=/scholar.google.ru/127.0.0.1#5335 -ipset=/scholar.google.ru/gfwlist -server=/dotcernpilot.info/127.0.0.1#5335 -ipset=/dotcernpilot.info/gfwlist -server=/minimotorsport.com/127.0.0.1#5335 -ipset=/minimotorsport.com/gfwlist +server=/yourtv.com.au/127.0.0.1#5335 +ipset=/yourtv.com.au/gfwlist +server=/proquest.com/127.0.0.1#5335 +ipset=/proquest.com/gfwlist +server=/binance.charity/127.0.0.1#5335 +ipset=/binance.charity/gfwlist +server=/udfs.com/127.0.0.1#5335 +ipset=/udfs.com/gfwlist +server=/cambiaip.org/127.0.0.1#5335 +ipset=/cambiaip.org/gfwlist server=/fflnk.net/127.0.0.1#5335 ipset=/fflnk.net/gfwlist -server=/lolesports.com/127.0.0.1#5335 -ipset=/lolesports.com/gfwlist -server=/foxcreativeuniversity.com/127.0.0.1#5335 -ipset=/foxcreativeuniversity.com/gfwlist -server=/ea.tt.omtrdc.net/127.0.0.1#5335 -ipset=/ea.tt.omtrdc.net/gfwlist -server=/indiancolleges.com/127.0.0.1#5335 -ipset=/indiancolleges.com/gfwlist +server=/gaystarnews.com/127.0.0.1#5335 +ipset=/gaystarnews.com/gfwlist +server=/mastercard.rs/127.0.0.1#5335 +ipset=/mastercard.rs/gfwlist +server=/roloxxx.com/127.0.0.1#5335 +ipset=/roloxxx.com/gfwlist +server=/swtor.com/127.0.0.1#5335 +ipset=/swtor.com/gfwlist server=/mariokart7.com/127.0.0.1#5335 ipset=/mariokart7.com/gfwlist -server=/mastercardcenter.com/127.0.0.1#5335 -ipset=/mastercardcenter.com/gfwlist -server=/bestbuyrewardzone.ca/127.0.0.1#5335 -ipset=/bestbuyrewardzone.ca/gfwlist -server=/zaobao.com.sg/127.0.0.1#5335 -ipset=/zaobao.com.sg/gfwlist -server=/theguardiandns.com/127.0.0.1#5335 -ipset=/theguardiandns.com/gfwlist -server=/managed-pki.de/127.0.0.1#5335 -ipset=/managed-pki.de/gfwlist +server=/pornaf.com/127.0.0.1#5335 +ipset=/pornaf.com/gfwlist +server=/flatandfuckedmilfs.com/127.0.0.1#5335 +ipset=/flatandfuckedmilfs.com/gfwlist +server=/gaybeeg.info/127.0.0.1#5335 +ipset=/gaybeeg.info/gfwlist +server=/gamerotic.com/127.0.0.1#5335 +ipset=/gamerotic.com/gfwlist +server=/escandinavia-arg.com/127.0.0.1#5335 +ipset=/escandinavia-arg.com/gfwlist server=/ox.ac.uk/127.0.0.1#5335 ipset=/ox.ac.uk/gfwlist -server=/nytstyle.com/127.0.0.1#5335 -ipset=/nytstyle.com/gfwlist -server=/vox-cdn.com/127.0.0.1#5335 -ipset=/vox-cdn.com/gfwlist -server=/visa.com.co/127.0.0.1#5335 -ipset=/visa.com.co/gfwlist -server=/bmwi.jp/127.0.0.1#5335 -ipset=/bmwi.jp/gfwlist -server=/polygon.com/127.0.0.1#5335 -ipset=/polygon.com/gfwlist -server=/foxtelevisionstations.com/127.0.0.1#5335 -ipset=/foxtelevisionstations.com/gfwlist -server=/yours-customised.mini.com/127.0.0.1#5335 -ipset=/yours-customised.mini.com/gfwlist -server=/voazimbabwe.com/127.0.0.1#5335 -ipset=/voazimbabwe.com/gfwlist -server=/runningnike.com/127.0.0.1#5335 -ipset=/runningnike.com/gfwlist -server=/voatibetan.com/127.0.0.1#5335 -ipset=/voatibetan.com/gfwlist +server=/bdsmpornonly.com/127.0.0.1#5335 +ipset=/bdsmpornonly.com/gfwlist +server=/fuq.com/127.0.0.1#5335 +ipset=/fuq.com/gfwlist +server=/gameroom.com/127.0.0.1#5335 +ipset=/gameroom.com/gfwlist +server=/bloomsburycollections.com/127.0.0.1#5335 +ipset=/bloomsburycollections.com/gfwlist +server=/nonstopfap.com/127.0.0.1#5335 +ipset=/nonstopfap.com/gfwlist +server=/fuckingmatures.com/127.0.0.1#5335 +ipset=/fuckingmatures.com/gfwlist +server=/mini-windsor.ca/127.0.0.1#5335 +ipset=/mini-windsor.ca/gfwlist +server=/uplynk.com/127.0.0.1#5335 +ipset=/uplynk.com/gfwlist +server=/xn--hb4aw0g.com/127.0.0.1#5335 +ipset=/xn--hb4aw0g.com/gfwlist +server=/freelifetimefuckbook.com/127.0.0.1#5335 +ipset=/freelifetimefuckbook.com/gfwlist server=/vfsco.co.uk/127.0.0.1#5335 ipset=/vfsco.co.uk/gfwlist -server=/voanews.eu/127.0.0.1#5335 -ipset=/voanews.eu/gfwlist +server=/paypalprepagata.com/127.0.0.1#5335 +ipset=/paypalprepagata.com/gfwlist server=/0plkijj.vip/127.0.0.1#5335 ipset=/0plkijj.vip/gfwlist server=/shopspeedtv.com/127.0.0.1#5335 ipset=/shopspeedtv.com/gfwlist -server=/billmelater.info/127.0.0.1#5335 -ipset=/billmelater.info/gfwlist +server=/mastercard.jo/127.0.0.1#5335 +ipset=/mastercard.jo/gfwlist server=/sipriyearbook.org/127.0.0.1#5335 ipset=/sipriyearbook.org/gfwlist -server=/addison-wesley.ch/127.0.0.1#5335 -ipset=/addison-wesley.ch/gfwlist +server=/freejavbt.com/127.0.0.1#5335 +ipset=/freejavbt.com/gfwlist server=/naver.com/127.0.0.1#5335 ipset=/naver.com/gfwlist -server=/battle.net/127.0.0.1#5335 -ipset=/battle.net/gfwlist -server=/voaafrique.com/127.0.0.1#5335 -ipset=/voaafrique.com/gfwlist -server=/amerikaninsesi.com/127.0.0.1#5335 -ipset=/amerikaninsesi.com/gfwlist -server=/intel.us/127.0.0.1#5335 -ipset=/intel.us/gfwlist -server=/livrariart.com.br/127.0.0.1#5335 -ipset=/livrariart.com.br/gfwlist -server=/psg-int-centralus.cloudapp.net/127.0.0.1#5335 -ipset=/psg-int-centralus.cloudapp.net/gfwlist -server=/mini.gp/127.0.0.1#5335 -ipset=/mini.gp/gfwlist -server=/fb.com/127.0.0.1#5335 -ipset=/fb.com/gfwlist -server=/visa.com.do/127.0.0.1#5335 -ipset=/visa.com.do/gfwlist -server=/passport.net/127.0.0.1#5335 -ipset=/passport.net/gfwlist -server=/hplaptop.com/127.0.0.1#5335 -ipset=/hplaptop.com/gfwlist -server=/skyoceanrescue.com/127.0.0.1#5335 -ipset=/skyoceanrescue.com/gfwlist -server=/easttouch.com.hk/127.0.0.1#5335 -ipset=/easttouch.com.hk/gfwlist +server=/pinterest.ec/127.0.0.1#5335 +ipset=/pinterest.ec/gfwlist +server=/fitnakedgirls.com/127.0.0.1#5335 +ipset=/fitnakedgirls.com/gfwlist +server=/minicooper.ca/127.0.0.1#5335 +ipset=/minicooper.ca/gfwlist +server=/hbox.jp/127.0.0.1#5335 +ipset=/hbox.jp/gfwlist +server=/bmw.com.mk/127.0.0.1#5335 +ipset=/bmw.com.mk/gfwlist +server=/kijijiautos.ca/127.0.0.1#5335 +ipset=/kijijiautos.ca/gfwlist +server=/mini.gp/127.0.0.1#5335 +ipset=/mini.gp/gfwlist +server=/av6k.com/127.0.0.1#5335 +ipset=/av6k.com/gfwlist +server=/amlg.io/127.0.0.1#5335 +ipset=/amlg.io/gfwlist +server=/fapality.com/127.0.0.1#5335 +ipset=/fapality.com/gfwlist +server=/fansteek.com/127.0.0.1#5335 +ipset=/fansteek.com/gfwlist +server=/fanleakstoday.com/127.0.0.1#5335 +ipset=/fanleakstoday.com/gfwlist +server=/trustcor.ca/127.0.0.1#5335 +ipset=/trustcor.ca/gfwlist server=/facebooc.com/127.0.0.1#5335 ipset=/facebooc.com/gfwlist -server=/bmw.com.tr/127.0.0.1#5335 -ipset=/bmw.com.tr/gfwlist +server=/ext-twitch.tv/127.0.0.1#5335 +ipset=/ext-twitch.tv/gfwlist server=/facebolk.com/127.0.0.1#5335 ipset=/facebolk.com/gfwlist -server=/telekom.de/127.0.0.1#5335 -ipset=/telekom.de/gfwlist -server=/bandag.cc/127.0.0.1#5335 -ipset=/bandag.cc/gfwlist -server=/realclearhistory.com/127.0.0.1#5335 -ipset=/realclearhistory.com/gfwlist -server=/realclearfoundation.org/127.0.0.1#5335 -ipset=/realclearfoundation.org/gfwlist +server=/amateur-exhibitionist.org/127.0.0.1#5335 +ipset=/amateur-exhibitionist.org/gfwlist +server=/amebaownd.com/127.0.0.1#5335 +ipset=/amebaownd.com/gfwlist +server=/evaelfie.com/127.0.0.1#5335 +ipset=/evaelfie.com/gfwlist +server=/escortamsterdam1.com/127.0.0.1#5335 +ipset=/escortamsterdam1.com/gfwlist server=/airwick.jp/127.0.0.1#5335 ipset=/airwick.jp/gfwlist -server=/ea.com/127.0.0.1#5335 -ipset=/ea.com/gfwlist -server=/jtvnw.net/127.0.0.1#5335 -ipset=/jtvnw.net/gfwlist -server=/voxcreative.com/127.0.0.1#5335 -ipset=/voxcreative.com/gfwlist +server=/vhxqa1.com/127.0.0.1#5335 +ipset=/vhxqa1.com/gfwlist +server=/nintendo.tw/127.0.0.1#5335 +ipset=/nintendo.tw/gfwlist +server=/canon-europe.com/127.0.0.1#5335 +ipset=/canon-europe.com/gfwlist server=/volvopenta.it/127.0.0.1#5335 ipset=/volvopenta.it/gfwlist -server=/youtube.com.ph/127.0.0.1#5335 -ipset=/youtube.com.ph/gfwlist -server=/andysparis.com/127.0.0.1#5335 -ipset=/andysparis.com/gfwlist -server=/zb.com/127.0.0.1#5335 -ipset=/zb.com/gfwlist +server=/volvogroup.nl/127.0.0.1#5335 +ipset=/volvogroup.nl/gfwlist +server=/entensity.net/127.0.0.1#5335 +ipset=/entensity.net/gfwlist +server=/instagramdi.com/127.0.0.1#5335 +ipset=/instagramdi.com/gfwlist server=/harpercollins.com/127.0.0.1#5335 ipset=/harpercollins.com/gfwlist -server=/volvopenta.com.br/127.0.0.1#5335 -ipset=/volvopenta.com.br/gfwlist -server=/9to5terminal.com/127.0.0.1#5335 -ipset=/9to5terminal.com/gfwlist -server=/nikedunksshoes.com/127.0.0.1#5335 -ipset=/nikedunksshoes.com/gfwlist -server=/placemyad.com.au/127.0.0.1#5335 -ipset=/placemyad.com.au/gfwlist +server=/nubiles-casting.com/127.0.0.1#5335 +ipset=/nubiles-casting.com/gfwlist +server=/twtrdns.net/127.0.0.1#5335 +ipset=/twtrdns.net/gfwlist +server=/enema-porn.com/127.0.0.1#5335 +ipset=/enema-porn.com/gfwlist +server=/adultlister.com/127.0.0.1#5335 +ipset=/adultlister.com/gfwlist server=/mylogiclab.com/127.0.0.1#5335 ipset=/mylogiclab.com/gfwlist server=/microsoft.pl/127.0.0.1#5335 ipset=/microsoft.pl/gfwlist server=/youtube.co.in/127.0.0.1#5335 ipset=/youtube.co.in/gfwlist -server=/newsapi.com.au/127.0.0.1#5335 -ipset=/newsapi.com.au/gfwlist -server=/farfetch.net/127.0.0.1#5335 -ipset=/farfetch.net/gfwlist +server=/adidas.nl/127.0.0.1#5335 +ipset=/adidas.nl/gfwlist +server=/extreme-board.com/127.0.0.1#5335 +ipset=/extreme-board.com/gfwlist server=/thewonderful101.com/127.0.0.1#5335 ipset=/thewonderful101.com/gfwlist -server=/llnwi.net/127.0.0.1#5335 -ipset=/llnwi.net/gfwlist -server=/newcastlenewslocal.com.au/127.0.0.1#5335 -ipset=/newcastlenewslocal.com.au/gfwlist -server=/geelongadvertiser.com.au/127.0.0.1#5335 -ipset=/geelongadvertiser.com.au/gfwlist -server=/officecdn-microsoft-com.akamaized.net/127.0.0.1#5335 -ipset=/officecdn-microsoft-com.akamaized.net/gfwlist -server=/scholar.google.be/127.0.0.1#5335 -ipset=/scholar.google.be/gfwlist +server=/dumps69.com/127.0.0.1#5335 +ipset=/dumps69.com/gfwlist +server=/dswz88.xyz/127.0.0.1#5335 +ipset=/dswz88.xyz/gfwlist +server=/drunkentop.com/127.0.0.1#5335 +ipset=/drunkentop.com/gfwlist +server=/drtuber.com/127.0.0.1#5335 +ipset=/drtuber.com/gfwlist +server=/beautyescortsamsterdam.com/127.0.0.1#5335 +ipset=/beautyescortsamsterdam.com/gfwlist server=/lawdata.com.tw/127.0.0.1#5335 ipset=/lawdata.com.tw/gfwlist -server=/volvobuses.be/127.0.0.1#5335 -ipset=/volvobuses.be/gfwlist +server=/tvb.com/127.0.0.1#5335 +ipset=/tvb.com/gfwlist server=/bossae.com/127.0.0.1#5335 ipset=/bossae.com/gfwlist -server=/nikeby.com/127.0.0.1#5335 -ipset=/nikeby.com/gfwlist -server=/nikeprice.com/127.0.0.1#5335 -ipset=/nikeprice.com/gfwlist -server=/nypostreprints.com/127.0.0.1#5335 -ipset=/nypostreprints.com/gfwlist -server=/nbcsports.com/127.0.0.1#5335 -ipset=/nbcsports.com/gfwlist -server=/connectedcommerce.tv/127.0.0.1#5335 -ipset=/connectedcommerce.tv/gfwlist +server=/bmwofcentralpa.com/127.0.0.1#5335 +ipset=/bmwofcentralpa.com/gfwlist +server=/dirtyonline.com/127.0.0.1#5335 +ipset=/dirtyonline.com/gfwlist +server=/illusionn2.com/127.0.0.1#5335 +ipset=/illusionn2.com/gfwlist +server=/yy55.tv/127.0.0.1#5335 +ipset=/yy55.tv/gfwlist +server=/dirtyfarmer.com/127.0.0.1#5335 +ipset=/dirtyfarmer.com/gfwlist server=/rbdigitalab.com/127.0.0.1#5335 ipset=/rbdigitalab.com/gfwlist server=/bmw-yeg.ca/127.0.0.1#5335 ipset=/bmw-yeg.ca/gfwlist -server=/minimontroyal.com/127.0.0.1#5335 -ipset=/minimontroyal.com/gfwlist -server=/akami.net/127.0.0.1#5335 -ipset=/akami.net/gfwlist -server=/paypalnetwork.org/127.0.0.1#5335 -ipset=/paypalnetwork.org/gfwlist -server=/chips.com/127.0.0.1#5335 -ipset=/chips.com/gfwlist -server=/banned.video/127.0.0.1#5335 -ipset=/banned.video/gfwlist -server=/bmw-world.tv/127.0.0.1#5335 -ipset=/bmw-world.tv/gfwlist -server=/facebookworld.com/127.0.0.1#5335 -ipset=/facebookworld.com/gfwlist +server=/dhlestudio.com.co/127.0.0.1#5335 +ipset=/dhlestudio.com.co/gfwlist +server=/deasians.com/127.0.0.1#5335 +ipset=/deasians.com/gfwlist +server=/bmw-motorrad.sk/127.0.0.1#5335 +ipset=/bmw-motorrad.sk/gfwlist +server=/rapetube.me/127.0.0.1#5335 +ipset=/rapetube.me/gfwlist +server=/czechcasting.com/127.0.0.1#5335 +ipset=/czechcasting.com/gfwlist +server=/paypal.hk/127.0.0.1#5335 +ipset=/paypal.hk/gfwlist +server=/hifacebook.info/127.0.0.1#5335 +ipset=/hifacebook.info/gfwlist server=/adcommerce.tv/127.0.0.1#5335 ipset=/adcommerce.tv/gfwlist -server=/my13la.com/127.0.0.1#5335 -ipset=/my13la.com/gfwlist -server=/16fhgdty.xyz/127.0.0.1#5335 -ipset=/16fhgdty.xyz/gfwlist +server=/czechbiporn.com/127.0.0.1#5335 +ipset=/czechbiporn.com/gfwlist +server=/mybridgestoneeducation.com/127.0.0.1#5335 +ipset=/mybridgestoneeducation.com/gfwlist server=/developers.facebook.com/127.0.0.1#5335 ipset=/developers.facebook.com/gfwlist -server=/camelotherald.com/127.0.0.1#5335 -ipset=/camelotherald.com/gfwlist +server=/ebaydts.com/127.0.0.1#5335 +ipset=/ebaydts.com/gfwlist server=/yandex.ua/127.0.0.1#5335 ipset=/yandex.ua/gfwlist -server=/hket.com/127.0.0.1#5335 -ipset=/hket.com/gfwlist +server=/starwarsbattlefront2.com/127.0.0.1#5335 +ipset=/starwarsbattlefront2.com/gfwlist server=/wmcloud.org/127.0.0.1#5335 ipset=/wmcloud.org/gfwlist server=/tegrazone.co/127.0.0.1#5335 ipset=/tegrazone.co/gfwlist server=/gvt7.com/127.0.0.1#5335 ipset=/gvt7.com/gfwlist -server=/hulustream.com/127.0.0.1#5335 -ipset=/hulustream.com/gfwlist -server=/whatthefox.com/127.0.0.1#5335 -ipset=/whatthefox.com/gfwlist +server=/crabporn.com/127.0.0.1#5335 +ipset=/crabporn.com/gfwlist +server=/okazudouga.blog.jp/127.0.0.1#5335 +ipset=/okazudouga.blog.jp/gfwlist server=/scholar.google.sk/127.0.0.1#5335 ipset=/scholar.google.sk/gfwlist server=/indiaipad.com/127.0.0.1#5335 ipset=/indiaipad.com/gfwlist -server=/bridgestonecomercial.cl/127.0.0.1#5335 -ipset=/bridgestonecomercial.cl/gfwlist +server=/sportsfacebook.com/127.0.0.1#5335 +ipset=/sportsfacebook.com/gfwlist server=/discountbeatsbydre-us.com/127.0.0.1#5335 ipset=/discountbeatsbydre-us.com/gfwlist -server=/scholar.l.google.com/127.0.0.1#5335 -ipset=/scholar.l.google.com/gfwlist -server=/historyofdota.com/127.0.0.1#5335 -ipset=/historyofdota.com/gfwlist -server=/alpherafs.ie/127.0.0.1#5335 -ipset=/alpherafs.ie/gfwlist -server=/finishkilpailu.fi/127.0.0.1#5335 -ipset=/finishkilpailu.fi/gfwlist -server=/myfoxorlando.com/127.0.0.1#5335 -ipset=/myfoxorlando.com/gfwlist +server=/hentairead.com/127.0.0.1#5335 +ipset=/hentairead.com/gfwlist +server=/lapriere.jp/127.0.0.1#5335 +ipset=/lapriere.jp/gfwlist +server=/netlock.hu/127.0.0.1#5335 +ipset=/netlock.hu/gfwlist +server=/mastercardbiz.com/127.0.0.1#5335 +ipset=/mastercardbiz.com/gfwlist +server=/webofscience.com/127.0.0.1#5335 +ipset=/webofscience.com/gfwlist server=/ch9.ms/127.0.0.1#5335 ipset=/ch9.ms/gfwlist -server=/my20houston.com/127.0.0.1#5335 -ipset=/my20houston.com/gfwlist -server=/google.rw/127.0.0.1#5335 -ipset=/google.rw/gfwlist -server=/bentobox.tv/127.0.0.1#5335 -ipset=/bentobox.tv/gfwlist +server=/miamifintechfestival.com/127.0.0.1#5335 +ipset=/miamifintechfestival.com/gfwlist +server=/cc18.biz/127.0.0.1#5335 +ipset=/cc18.biz/gfwlist +server=/gaypornmenu.com/127.0.0.1#5335 +ipset=/gaypornmenu.com/gfwlist server=/vfsco.jp/127.0.0.1#5335 ipset=/vfsco.jp/gfwlist -server=/fssta.com/127.0.0.1#5335 -ipset=/fssta.com/gfwlist +server=/ilongman.com/127.0.0.1#5335 +ipset=/ilongman.com/gfwlist server=/ieeeoes.org/127.0.0.1#5335 ipset=/ieeeoes.org/gfwlist server=/ebaylocationsdevacances.com/127.0.0.1#5335 ipset=/ebaylocationsdevacances.com/gfwlist -server=/alivevm.com/127.0.0.1#5335 -ipset=/alivevm.com/gfwlist -server=/aranzadi.es/127.0.0.1#5335 -ipset=/aranzadi.es/gfwlist -server=/foxsports.net.br/127.0.0.1#5335 -ipset=/foxsports.net.br/gfwlist -server=/paypal-cardcash.com/127.0.0.1#5335 -ipset=/paypal-cardcash.com/gfwlist +server=/iotinactionevents.com/127.0.0.1#5335 +ipset=/iotinactionevents.com/gfwlist +server=/sonypicturesmuseum.com/127.0.0.1#5335 +ipset=/sonypicturesmuseum.com/gfwlist +server=/scatfap.com/127.0.0.1#5335 +ipset=/scatfap.com/gfwlist +server=/ebay.com.sg/127.0.0.1#5335 +ipset=/ebay.com.sg/gfwlist server=/yahoo.com/127.0.0.1#5335 ipset=/yahoo.com/gfwlist -server=/foxcareers.com/127.0.0.1#5335 -ipset=/foxcareers.com/gfwlist +server=/scholar.google.ru/127.0.0.1#5335 +ipset=/scholar.google.ru/gfwlist server=/nikebetterworld.org/127.0.0.1#5335 ipset=/nikebetterworld.org/gfwlist -server=/ipod.co/127.0.0.1#5335 -ipset=/ipod.co/gfwlist -server=/me.com/127.0.0.1#5335 -ipset=/me.com/gfwlist +server=/learnwithleague.com/127.0.0.1#5335 +ipset=/learnwithleague.com/gfwlist +server=/zakzak.co.jp/127.0.0.1#5335 +ipset=/zakzak.co.jp/gfwlist server=/drdrebeats-usa.com/127.0.0.1#5335 ipset=/drdrebeats-usa.com/gfwlist -server=/mastercard.com.br/127.0.0.1#5335 -ipset=/mastercard.com.br/gfwlist +server=/camstreams.tv/127.0.0.1#5335 +ipset=/camstreams.tv/gfwlist server=/privacysimplified.com/127.0.0.1#5335 ipset=/privacysimplified.com/gfwlist -server=/javbus.com/127.0.0.1#5335 -ipset=/javbus.com/gfwlist -server=/nebay.net/127.0.0.1#5335 -ipset=/nebay.net/gfwlist -server=/paypal-business.net/127.0.0.1#5335 -ipset=/paypal-business.net/gfwlist +server=/softether-download.com/127.0.0.1#5335 +ipset=/softether-download.com/gfwlist +server=/bigboobsandhotsex.com/127.0.0.1#5335 +ipset=/bigboobsandhotsex.com/gfwlist +server=/xboxone.co/127.0.0.1#5335 +ipset=/xboxone.co/gfwlist server=/headphonesbeatsaudio.com/127.0.0.1#5335 ipset=/headphonesbeatsaudio.com/gfwlist -server=/blogspot.td/127.0.0.1#5335 -ipset=/blogspot.td/gfwlist -server=/volvogroup.se/127.0.0.1#5335 -ipset=/volvogroup.se/gfwlist -server=/epochtimes.nl/127.0.0.1#5335 -ipset=/epochtimes.nl/gfwlist -server=/volvotrucks.az/127.0.0.1#5335 -ipset=/volvotrucks.az/gfwlist +server=/newpppp.com/127.0.0.1#5335 +ipset=/newpppp.com/gfwlist +server=/paypal-business.net/127.0.0.1#5335 +ipset=/paypal-business.net/gfwlist +server=/bdsmboard.org/127.0.0.1#5335 +ipset=/bdsmboard.org/gfwlist +server=/sex-av.com/127.0.0.1#5335 +ipset=/sex-av.com/gfwlist server=/r10s.jp/127.0.0.1#5335 ipset=/r10s.jp/gfwlist server=/bmw.cl/127.0.0.1#5335 ipset=/bmw.cl/gfwlist -server=/ciscopress.ch/127.0.0.1#5335 -ipset=/ciscopress.ch/gfwlist -server=/canon.co.il/127.0.0.1#5335 -ipset=/canon.co.il/gfwlist +server=/youtube.ma/127.0.0.1#5335 +ipset=/youtube.ma/gfwlist +server=/kkff2484.live/127.0.0.1#5335 +ipset=/kkff2484.live/gfwlist server=/youtube.jo/127.0.0.1#5335 ipset=/youtube.jo/gfwlist -server=/anm.co.uk/127.0.0.1#5335 -ipset=/anm.co.uk/gfwlist -server=/kijijiraps.ca/127.0.0.1#5335 -ipset=/kijijiraps.ca/gfwlist -server=/ebayads.com/127.0.0.1#5335 -ipset=/ebayads.com/gfwlist +server=/byjhd.com/127.0.0.1#5335 +ipset=/byjhd.com/gfwlist +server=/ebaylocal.net/127.0.0.1#5335 +ipset=/ebaylocal.net/gfwlist +server=/visa.com.my/127.0.0.1#5335 +ipset=/visa.com.my/gfwlist server=/playstation.net/127.0.0.1#5335 ipset=/playstation.net/gfwlist -server=/geek-squad.net/127.0.0.1#5335 -ipset=/geek-squad.net/gfwlist -server=/gettyimages.pt/127.0.0.1#5335 -ipset=/gettyimages.pt/gfwlist -server=/applemagickeyboard.com/127.0.0.1#5335 -ipset=/applemagickeyboard.com/gfwlist -server=/easynike.com/127.0.0.1#5335 -ipset=/easynike.com/gfwlist -server=/slackcertified.com/127.0.0.1#5335 -ipset=/slackcertified.com/gfwlist -server=/volvogroup.com/127.0.0.1#5335 -ipset=/volvogroup.com/gfwlist -server=/neweconomyforum.com/127.0.0.1#5335 -ipset=/neweconomyforum.com/gfwlist -server=/microsoft.uz/127.0.0.1#5335 -ipset=/microsoft.uz/gfwlist -server=/pinterest.com.vn/127.0.0.1#5335 -ipset=/pinterest.com.vn/gfwlist +server=/tver.jp/127.0.0.1#5335 +ipset=/tver.jp/gfwlist +server=/vercel-dns.com/127.0.0.1#5335 +ipset=/vercel-dns.com/gfwlist +server=/brazzers-xxx.net/127.0.0.1#5335 +ipset=/brazzers-xxx.net/gfwlist +server=/gynoexam.info/127.0.0.1#5335 +ipset=/gynoexam.info/gfwlist +server=/yours-customised.mini.com/127.0.0.1#5335 +ipset=/yours-customised.mini.com/gfwlist +server=/dojinwatch.com/127.0.0.1#5335 +ipset=/dojinwatch.com/gfwlist +server=/acgcf.com/127.0.0.1#5335 +ipset=/acgcf.com/gfwlist +server=/miniso.pk/127.0.0.1#5335 +ipset=/miniso.pk/gfwlist +server=/dcard.link/127.0.0.1#5335 +ipset=/dcard.link/gfwlist server=/volvotruckcenter.no/127.0.0.1#5335 ipset=/volvotruckcenter.no/gfwlist -server=/paypal-center.net/127.0.0.1#5335 -ipset=/paypal-center.net/gfwlist -server=/paypa1.com/127.0.0.1#5335 -ipset=/paypa1.com/gfwlist -server=/diablo3.com/127.0.0.1#5335 -ipset=/diablo3.com/gfwlist -server=/visasignaturehotels.com/127.0.0.1#5335 -ipset=/visasignaturehotels.com/gfwlist -server=/gfw.report/127.0.0.1#5335 -ipset=/gfw.report/gfwlist -server=/thetread.com/127.0.0.1#5335 -ipset=/thetread.com/gfwlist +server=/visa.com.do/127.0.0.1#5335 +ipset=/visa.com.do/gfwlist +server=/blacksonblondes.com/127.0.0.1#5335 +ipset=/blacksonblondes.com/gfwlist +server=/sonypicturestelevision.com/127.0.0.1#5335 +ipset=/sonypicturestelevision.com/gfwlist +server=/sexflashgame.org/127.0.0.1#5335 +ipset=/sexflashgame.org/gfwlist +server=/toppornsites.com/127.0.0.1#5335 +ipset=/toppornsites.com/gfwlist +server=/amateurporn.photos/127.0.0.1#5335 +ipset=/amateurporn.photos/gfwlist server=/texture.com/127.0.0.1#5335 ipset=/texture.com/gfwlist -server=/swoosh.com/127.0.0.1#5335 -ipset=/swoosh.com/gfwlist -server=/next.hk/127.0.0.1#5335 -ipset=/next.hk/gfwlist -server=/creditcardsbay.com/127.0.0.1#5335 -ipset=/creditcardsbay.com/gfwlist +server=/elitvip.ru/127.0.0.1#5335 +ipset=/elitvip.ru/gfwlist +server=/ikea.qa/127.0.0.1#5335 +ipset=/ikea.qa/gfwlist +server=/sextop.net/127.0.0.1#5335 +ipset=/sextop.net/gfwlist server=/vtsociety.org/127.0.0.1#5335 ipset=/vtsociety.org/gfwlist -server=/thisav.com/127.0.0.1#5335 -ipset=/thisav.com/gfwlist +server=/scholar.google.pt/127.0.0.1#5335 +ipset=/scholar.google.pt/gfwlist server=/visaeurope.lu/127.0.0.1#5335 ipset=/visaeurope.lu/gfwlist -server=/oreilly.review/127.0.0.1#5335 -ipset=/oreilly.review/gfwlist -server=/nineentertainmentco.com.au/127.0.0.1#5335 -ipset=/nineentertainmentco.com.au/gfwlist -server=/mini.co.cr/127.0.0.1#5335 -ipset=/mini.co.cr/gfwlist -server=/paypal-learning.com/127.0.0.1#5335 -ipset=/paypal-learning.com/gfwlist -server=/minilondon.co/127.0.0.1#5335 -ipset=/minilondon.co/gfwlist -server=/makeitopen.com/127.0.0.1#5335 -ipset=/makeitopen.com/gfwlist -server=/pokemonletsgoeevee.com/127.0.0.1#5335 -ipset=/pokemonletsgoeevee.com/gfwlist +server=/swisssign.org/127.0.0.1#5335 +ipset=/swisssign.org/gfwlist +server=/ikea.cl/127.0.0.1#5335 +ipset=/ikea.cl/gfwlist +server=/teslaenergy.services/127.0.0.1#5335 +ipset=/teslaenergy.services/gfwlist +server=/ggpht.com/127.0.0.1#5335 +ipset=/ggpht.com/gfwlist +server=/mastercardezsavings.com/127.0.0.1#5335 +ipset=/mastercardezsavings.com/gfwlist +server=/pximg.net/127.0.0.1#5335 +ipset=/pximg.net/gfwlist +server=/gettyimages.dk/127.0.0.1#5335 +ipset=/gettyimages.dk/gfwlist server=/mini.com.hr/127.0.0.1#5335 ipset=/mini.com.hr/gfwlist server=/customizedbeatbydre.com/127.0.0.1#5335 ipset=/customizedbeatbydre.com/gfwlist -server=/weverse.io/127.0.0.1#5335 -ipset=/weverse.io/gfwlist -server=/bitmex.com/127.0.0.1#5335 -ipset=/bitmex.com/gfwlist -server=/dynacw.com/127.0.0.1#5335 -ipset=/dynacw.com/gfwlist -server=/lede-project.org/127.0.0.1#5335 -ipset=/lede-project.org/gfwlist +server=/tickdata.com/127.0.0.1#5335 +ipset=/tickdata.com/gfwlist +server=/animepornhd.com/127.0.0.1#5335 +ipset=/animepornhd.com/gfwlist +server=/ibook.eu/127.0.0.1#5335 +ipset=/ibook.eu/gfwlist +server=/handbags-nike.com/127.0.0.1#5335 +ipset=/handbags-nike.com/gfwlist server=/oculuscdn.com/127.0.0.1#5335 ipset=/oculuscdn.com/gfwlist server=/realamericanstories.net/127.0.0.1#5335 ipset=/realamericanstories.net/gfwlist -server=/beatsbydresonline-nz.com/127.0.0.1#5335 -ipset=/beatsbydresonline-nz.com/gfwlist -server=/wwe9.com/127.0.0.1#5335 -ipset=/wwe9.com/gfwlist -server=/volvotrucks.id/127.0.0.1#5335 -ipset=/volvotrucks.id/gfwlist -server=/pearsonclinical.fr/127.0.0.1#5335 -ipset=/pearsonclinical.fr/gfwlist -server=/cloudflareapps.com/127.0.0.1#5335 -ipset=/cloudflareapps.com/gfwlist -server=/beatsbydresalemall2013.com/127.0.0.1#5335 -ipset=/beatsbydresalemall2013.com/gfwlist -server=/disneymagicmoments.it/127.0.0.1#5335 -ipset=/disneymagicmoments.it/gfwlist +server=/citylab.com/127.0.0.1#5335 +ipset=/citylab.com/gfwlist +server=/aptoide.com/127.0.0.1#5335 +ipset=/aptoide.com/gfwlist +server=/scholar.google.ae/127.0.0.1#5335 +ipset=/scholar.google.ae/gfwlist +server=/pricelesstoronto.ca/127.0.0.1#5335 +ipset=/pricelesstoronto.ca/gfwlist +server=/amateurs-gone-wild.com/127.0.0.1#5335 +ipset=/amateurs-gone-wild.com/gfwlist +server=/instagrem.com/127.0.0.1#5335 +ipset=/instagrem.com/gfwlist +server=/bmw.ie/127.0.0.1#5335 +ipset=/bmw.ie/gfwlist server=/paypalprepagata.net/127.0.0.1#5335 ipset=/paypalprepagata.net/gfwlist -server=/geti2p.net/127.0.0.1#5335 -ipset=/geti2p.net/gfwlist -server=/rakuten.ca/127.0.0.1#5335 -ipset=/rakuten.ca/gfwlist +server=/nhentai.xxx/127.0.0.1#5335 +ipset=/nhentai.xxx/gfwlist +server=/my-formosa.com/127.0.0.1#5335 +ipset=/my-formosa.com/gfwlist server=/scholar.google.com.mx/127.0.0.1#5335 ipset=/scholar.google.com.mx/gfwlist -server=/graph.org/127.0.0.1#5335 -ipset=/graph.org/gfwlist +server=/allinternal.com/127.0.0.1#5335 +ipset=/allinternal.com/gfwlist server=/bisq.io/127.0.0.1#5335 ipset=/bisq.io/gfwlist server=/opgg-static.akamaized.net/127.0.0.1#5335 ipset=/opgg-static.akamaized.net/gfwlist -server=/ttvnw.net/127.0.0.1#5335 -ipset=/ttvnw.net/gfwlist -server=/desktopmovie.net/127.0.0.1#5335 -ipset=/desktopmovie.net/gfwlist +server=/9cao9.com/127.0.0.1#5335 +ipset=/9cao9.com/gfwlist +server=/bmw.ua/127.0.0.1#5335 +ipset=/bmw.ua/gfwlist server=/ioffergift.com/127.0.0.1#5335 ipset=/ioffergift.com/gfwlist -server=/internationalsaimoe.com/127.0.0.1#5335 -ipset=/internationalsaimoe.com/gfwlist -server=/idservice.inc/127.0.0.1#5335 -ipset=/idservice.inc/gfwlist -server=/beatsbydreblackfridaypro.com/127.0.0.1#5335 -ipset=/beatsbydreblackfridaypro.com/gfwlist -server=/squirrelgroup.net/127.0.0.1#5335 -ipset=/squirrelgroup.net/gfwlist -server=/volvotrucks.dk/127.0.0.1#5335 -ipset=/volvotrucks.dk/gfwlist -server=/blogspot.sk/127.0.0.1#5335 -ipset=/blogspot.sk/gfwlist +server=/adultvirtualworlds.net/127.0.0.1#5335 +ipset=/adultvirtualworlds.net/gfwlist +server=/sexsexe1.com/127.0.0.1#5335 +ipset=/sexsexe1.com/gfwlist +server=/adultinfojpn.com/127.0.0.1#5335 +ipset=/adultinfojpn.com/gfwlist +server=/twimg.com/127.0.0.1#5335 +ipset=/twimg.com/gfwlist +server=/adultblogtoplist.com/127.0.0.1#5335 +ipset=/adultblogtoplist.com/gfwlist +server=/intellearningseries.com/127.0.0.1#5335 +ipset=/intellearningseries.com/gfwlist server=/alphabet.ch/127.0.0.1#5335 ipset=/alphabet.ch/gfwlist -server=/paypal-pages.com/127.0.0.1#5335 -ipset=/paypal-pages.com/gfwlist -server=/microsoft.ua/127.0.0.1#5335 -ipset=/microsoft.ua/gfwlist +server=/adult3dporno.com/127.0.0.1#5335 +ipset=/adult3dporno.com/gfwlist +server=/9xlove.xyz/127.0.0.1#5335 +ipset=/9xlove.xyz/gfwlist server=/cnn.it/127.0.0.1#5335 ipset=/cnn.it/gfwlist -server=/bmw-motorrad.com.do/127.0.0.1#5335 -ipset=/bmw-motorrad.com.do/gfwlist -server=/ieeecss.org/127.0.0.1#5335 -ipset=/ieeecss.org/gfwlist +server=/91cy.app/127.0.0.1#5335 +ipset=/91cy.app/gfwlist +server=/61jxbs42.xyz/127.0.0.1#5335 +ipset=/61jxbs42.xyz/gfwlist server=/rsg.sc/127.0.0.1#5335 ipset=/rsg.sc/gfwlist -server=/mini-grouparchive.com/127.0.0.1#5335 -ipset=/mini-grouparchive.com/gfwlist -server=/paypal.hk/127.0.0.1#5335 -ipset=/paypal.hk/gfwlist +server=/vfsco.in/127.0.0.1#5335 +ipset=/vfsco.in/gfwlist +server=/sg120.me/127.0.0.1#5335 +ipset=/sg120.me/gfwlist server=/intel.jo/127.0.0.1#5335 ipset=/intel.jo/gfwlist -server=/takegoto.com/127.0.0.1#5335 -ipset=/takegoto.com/gfwlist -server=/sb-mobile.jp/127.0.0.1#5335 -ipset=/sb-mobile.jp/gfwlist -server=/scholar.google.ro/127.0.0.1#5335 -ipset=/scholar.google.ro/gfwlist +server=/18pornsex.com/127.0.0.1#5335 +ipset=/18pornsex.com/gfwlist +server=/akamaitech.net/127.0.0.1#5335 +ipset=/akamaitech.net/gfwlist +server=/gale.com/127.0.0.1#5335 +ipset=/gale.com/gfwlist server=/fox10phoenix.com/127.0.0.1#5335 ipset=/fox10phoenix.com/gfwlist -server=/socalbmw.com/127.0.0.1#5335 -ipset=/socalbmw.com/gfwlist -server=/eubluecardvisa.com/127.0.0.1#5335 -ipset=/eubluecardvisa.com/gfwlist -server=/tiendabestbuy.com/127.0.0.1#5335 -ipset=/tiendabestbuy.com/gfwlist +server=/avstar07.me/127.0.0.1#5335 +ipset=/avstar07.me/gfwlist +server=/youtubekids.com/127.0.0.1#5335 +ipset=/youtubekids.com/gfwlist +server=/bmwusatires.com/127.0.0.1#5335 +ipset=/bmwusatires.com/gfwlist server=/bloomberg.com/127.0.0.1#5335 ipset=/bloomberg.com/gfwlist -server=/moviesanywhere.com/127.0.0.1#5335 -ipset=/moviesanywhere.com/gfwlist -server=/bmwtampabay.com/127.0.0.1#5335 -ipset=/bmwtampabay.com/gfwlist -server=/mini.md/127.0.0.1#5335 -ipset=/mini.md/gfwlist +server=/nikeb.com/127.0.0.1#5335 +ipset=/nikeb.com/gfwlist +server=/minispecialoffers.ca/127.0.0.1#5335 +ipset=/minispecialoffers.ca/gfwlist +server=/cw.com.tw/127.0.0.1#5335 +ipset=/cw.com.tw/gfwlist server=/appleantilles.com/127.0.0.1#5335 ipset=/appleantilles.com/gfwlist -server=/hpprinterinstalls.com/127.0.0.1#5335 -ipset=/hpprinterinstalls.com/gfwlist -server=/disney-studio.net/127.0.0.1#5335 -ipset=/disney-studio.net/gfwlist -server=/verisign.com.hk/127.0.0.1#5335 -ipset=/verisign.com.hk/gfwlist +server=/bigboobspov.com/127.0.0.1#5335 +ipset=/bigboobspov.com/gfwlist +server=/pokemonletsgoeevee.com/127.0.0.1#5335 +ipset=/pokemonletsgoeevee.com/gfwlist +server=/bmw-welt.tv/127.0.0.1#5335 +ipset=/bmw-welt.tv/gfwlist server=/ebayparts.com/127.0.0.1#5335 ipset=/ebayparts.com/gfwlist server=/visa.com.uy/127.0.0.1#5335 ipset=/visa.com.uy/gfwlist -server=/disney.de/127.0.0.1#5335 -ipset=/disney.de/gfwlist -server=/mastercard.com.ve/127.0.0.1#5335 -ipset=/mastercard.com.ve/gfwlist -server=/intercom.com/127.0.0.1#5335 -ipset=/intercom.com/gfwlist -server=/stripe.com/127.0.0.1#5335 -ipset=/stripe.com/gfwlist +server=/ikea.rs/127.0.0.1#5335 +ipset=/ikea.rs/gfwlist +server=/kubakuba1996.com/127.0.0.1#5335 +ipset=/kubakuba1996.com/gfwlist +server=/nikesb.com/127.0.0.1#5335 +ipset=/nikesb.com/gfwlist +server=/vkuseraudio.com/127.0.0.1#5335 +ipset=/vkuseraudio.com/gfwlist server=/paypalobjects.com/127.0.0.1#5335 ipset=/paypalobjects.com/gfwlist server=/alphabet.info/127.0.0.1#5335 ipset=/alphabet.info/gfwlist -server=/bmw.ua/127.0.0.1#5335 -ipset=/bmw.ua/gfwlist -server=/nikehelp.com/127.0.0.1#5335 -ipset=/nikehelp.com/gfwlist -server=/adidas.hu/127.0.0.1#5335 -ipset=/adidas.hu/gfwlist -server=/verisign.com.sg/127.0.0.1#5335 -ipset=/verisign.com.sg/gfwlist -server=/cdn77.org/127.0.0.1#5335 -ipset=/cdn77.org/gfwlist +server=/pinterest.vn/127.0.0.1#5335 +ipset=/pinterest.vn/gfwlist +server=/sitepoint.com/127.0.0.1#5335 +ipset=/sitepoint.com/gfwlist +server=/sci-hub.st/127.0.0.1#5335 +ipset=/sci-hub.st/gfwlist +server=/amateur-threesomes.com/127.0.0.1#5335 +ipset=/amateur-threesomes.com/gfwlist +server=/aomedia.org/127.0.0.1#5335 +ipset=/aomedia.org/gfwlist server=/ea-anz-press.com/127.0.0.1#5335 ipset=/ea-anz-press.com/gfwlist -server=/xbox.co/127.0.0.1#5335 -ipset=/xbox.co/gfwlist +server=/delvenetworks.com/127.0.0.1#5335 +ipset=/delvenetworks.com/gfwlist server=/vk.link/127.0.0.1#5335 ipset=/vk.link/gfwlist server=/squirrelvpn.com/127.0.0.1#5335 ipset=/squirrelvpn.com/gfwlist -server=/molesports.com/127.0.0.1#5335 -ipset=/molesports.com/gfwlist +server=/ebayinternetsalestax.com/127.0.0.1#5335 +ipset=/ebayinternetsalestax.com/gfwlist server=/stheadline.com/127.0.0.1#5335 ipset=/stheadline.com/gfwlist -server=/gettyimages.be/127.0.0.1#5335 -ipset=/gettyimages.be/gfwlist -server=/irribay.com/127.0.0.1#5335 -ipset=/irribay.com/gfwlist -server=/walmart.pharmacy/127.0.0.1#5335 -ipset=/walmart.pharmacy/gfwlist +server=/tiburon.com/127.0.0.1#5335 +ipset=/tiburon.com/gfwlist +server=/boyspornpics.com/127.0.0.1#5335 +ipset=/boyspornpics.com/gfwlist +server=/oecd-ilibrary.org/127.0.0.1#5335 +ipset=/oecd-ilibrary.org/gfwlist server=/bmw-connecteddrive.fi/127.0.0.1#5335 ipset=/bmw-connecteddrive.fi/gfwlist -server=/handbagsoutletebay.com/127.0.0.1#5335 -ipset=/handbagsoutletebay.com/gfwlist -server=/terrapeak.com/127.0.0.1#5335 -ipset=/terrapeak.com/gfwlist +server=/anfutong.com/127.0.0.1#5335 +ipset=/anfutong.com/gfwlist +server=/libsolutions.net/127.0.0.1#5335 +ipset=/libsolutions.net/gfwlist server=/travelexmoneycard.com/127.0.0.1#5335 ipset=/travelexmoneycard.com/gfwlist server=/paypal-dynamic.com/127.0.0.1#5335 ipset=/paypal-dynamic.com/gfwlist -server=/dealtree.org/127.0.0.1#5335 -ipset=/dealtree.org/gfwlist +server=/easyanticheat.net/127.0.0.1#5335 +ipset=/easyanticheat.net/gfwlist server=/thepaypalshop.com/127.0.0.1#5335 ipset=/thepaypalshop.com/gfwlist -server=/dreambmw.ca/127.0.0.1#5335 -ipset=/dreambmw.ca/gfwlist -server=/bmw-connecteddrive.ca/127.0.0.1#5335 -ipset=/bmw-connecteddrive.ca/gfwlist +server=/eaassets-a.akamaihd.net/127.0.0.1#5335 +ipset=/eaassets-a.akamaihd.net/gfwlist +server=/swisssign.com/127.0.0.1#5335 +ipset=/swisssign.com/gfwlist server=/softbankworld.com/127.0.0.1#5335 ipset=/softbankworld.com/gfwlist -server=/bastropfirestone.com/127.0.0.1#5335 -ipset=/bastropfirestone.com/gfwlist -server=/buypass-ssl.com/127.0.0.1#5335 -ipset=/buypass-ssl.com/gfwlist -server=/geeksquad.tv/127.0.0.1#5335 -ipset=/geeksquad.tv/gfwlist +server=/huffingtonpost.fr/127.0.0.1#5335 +ipset=/huffingtonpost.fr/gfwlist +server=/volvoce.com/127.0.0.1#5335 +ipset=/volvoce.com/gfwlist +server=/ascelibrary.org/127.0.0.1#5335 +ipset=/ascelibrary.org/gfwlist server=/disney.co.kr/127.0.0.1#5335 ipset=/disney.co.kr/gfwlist -server=/proquest.com/127.0.0.1#5335 -ipset=/proquest.com/gfwlist -server=/mini.ua/127.0.0.1#5335 -ipset=/mini.ua/gfwlist +server=/mytvsuper.com/127.0.0.1#5335 +ipset=/mytvsuper.com/gfwlist +server=/bestsexcam.com/127.0.0.1#5335 +ipset=/bestsexcam.com/gfwlist server=/bestbuycoffeemakers.com/127.0.0.1#5335 ipset=/bestbuycoffeemakers.com/gfwlist server=/bmw-m-safetycar.com/127.0.0.1#5335 ipset=/bmw-m-safetycar.com/gfwlist -server=/apple.is/127.0.0.1#5335 -ipset=/apple.is/gfwlist -server=/pinterest.co.nz/127.0.0.1#5335 -ipset=/pinterest.co.nz/gfwlist -server=/finishbrasil.com.br/127.0.0.1#5335 -ipset=/finishbrasil.com.br/gfwlist +server=/foxbusinessgo.com/127.0.0.1#5335 +ipset=/foxbusinessgo.com/gfwlist +server=/static-verizon.com/127.0.0.1#5335 +ipset=/static-verizon.com/gfwlist +server=/decorativemodels.com/127.0.0.1#5335 +ipset=/decorativemodels.com/gfwlist server=/surflite.co/127.0.0.1#5335 ipset=/surflite.co/gfwlist -server=/mastercard.com.co/127.0.0.1#5335 -ipset=/mastercard.com.co/gfwlist -server=/paypalhere.net/127.0.0.1#5335 -ipset=/paypalhere.net/gfwlist -server=/psyccareers.com/127.0.0.1#5335 -ipset=/psyccareers.com/gfwlist -server=/microsoft.ee/127.0.0.1#5335 -ipset=/microsoft.ee/gfwlist -server=/vfsco.in/127.0.0.1#5335 -ipset=/vfsco.in/gfwlist +server=/babble.com/127.0.0.1#5335 +ipset=/babble.com/gfwlist +server=/achievementanalytics.com/127.0.0.1#5335 +ipset=/achievementanalytics.com/gfwlist +server=/javfun.me/127.0.0.1#5335 +ipset=/javfun.me/gfwlist +server=/ebayauthenticate.com.cn/127.0.0.1#5335 +ipset=/ebayauthenticate.com.cn/gfwlist +server=/mini-grouparchive.com/127.0.0.1#5335 +ipset=/mini-grouparchive.com/gfwlist server=/bmw.gp/127.0.0.1#5335 ipset=/bmw.gp/gfwlist diff --git a/luci-app-ssr-plus/root/etc/ssrplus/netflixip.list b/luci-app-ssr-plus/root/etc/ssrplus/netflixip.list index 540579968fb..445ff62f53a 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/netflixip.list +++ b/luci-app-ssr-plus/root/etc/ssrplus/netflixip.list @@ -1,7 +1,17 @@ +8.41.4.0/24 +23.23.189.144/28 23.246.0.0/18 +34.195.253.0/25 +34.210.42.111/32 37.77.184.0/21 38.72.126.0/24 45.57.0.0/17 +52.24.178.0/24 +52.35.140.0/24 +52.89.124.203/32 +54.148.37.5/32 +54.204.25.0/28 +54.213.167.0/24 64.120.128.0/17 66.197.128.0/17 69.53.224.0/19 @@ -12,4 +22,9 @@ 192.173.64.0/18 198.38.96.0/19 198.45.48.0/20 +203.75.84.0/24 +203.198.13.0/24 +203.198.80.0/24 +207.45.72.0/22 208.75.76.0/22 +210.0.153.0/24 From e3ac9f37b53de4eb82bedb2ea47134e9469679fa Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 20 Feb 2023 00:26:50 +0800 Subject: [PATCH 286/972] v2ray-core: update to 5.4.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 84fa927aa51..54bd0be2d71 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.3.0 +PKG_VERSION:=5.4.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8e97e2647cb1dee8aa7e71df276c56d74258b2d97bb490a362afa84bdf1b9e25 +PKG_HASH:=86be35461a9dc7d037e0045771d99f1eae284fdb7aa0818a6782d18b6b003fca PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 777cc42cdd4d200015024c9f019130f4cf0b6bf7 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 21 Feb 2023 00:13:26 +0800 Subject: [PATCH 287/972] v2ray-plugin: update to 5.4.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index db5c008acb6..6038f64a55e 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.3.0 +PKG_VERSION:=5.4.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d8394ee4e01c8ad73f13b4cd769e02d3a5ac6a737be9bcc7587332ce92db619a +PKG_HASH:=d0034df2a3f2c00405673d77dd88127933532064115a2e096131143a83fbb949 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 6e71f59e5b38a18177f188e6c9f3664a2c090dac Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 24 Feb 2023 07:03:28 +0800 Subject: [PATCH 288/972] naiveproxy: update to 110.0.5481.100-1 --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 2bcffa5e1c7..3c90eb670c9 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=109.0.5414.74-2 +PKG_VERSION:=110.0.5481.100-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3c1e9e276e4ae79c8192c25a15df2f564741602ae403712565c48aa6db9d78e7 +PKG_HASH:=b20ea791927426d2da9ba19bc448e902a6aa667706f1cda8f24323546e3b994f PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -57,31 +57,31 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-8697-g60809cd2-1 +CLANG_VER:=16-init-12251-g87d0ff91-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=5ae35f85e0d32136795c6b223bf64263d46678dd4a24fea4e9039e58a32670de + HASH:=902060c5657cb99e58332ef33eed52262373734abf841a38efac239b9382969c endef -GN_VER:=1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41 +GN_VER:=5e19d2fb166fbd4f6f32147fbb2f497091a54ad8 GN_FILE:=gn-git_revision-$(GN_VER).zip define Download/GN_TOOL URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ URL_FILE:=git_revision:$(GN_VER) FILE:=$(GN_FILE) - HASH:=7195291488d08f3a10e85b85d8c4816e077015f1c5f196f770003a97aa42caf8 + HASH:=a95c29544e581b56c1d3f1920637a9f518989b3b744d6b2234fe8de634acddf1 endef -PGO_VER:=5414-1672766927-26b17aa1745606599e619feccfe46371e879e7c4 +PGO_VER:=5481-1675162426-393d781cbc3753d814a299bfd43435032b5acfd9 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=e9a52f7a60d46fd6e682b0e908b1363faeb6f96bc2e95d5d95095b33fa67e34a + HASH:=c58a2775b7287f80ec21b503a0d18bb7b8777d943b16bb2c7b3135c5a89d7acc endef define Build/Prepare From dfee24545b93f36296c72a8ce578573349520046 Mon Sep 17 00:00:00 2001 From: Howe Huang Date: Sun, 26 Feb 2023 15:11:37 +0800 Subject: [PATCH 289/972] Update subscribe.lua Fix missing `tls_flow` when using new config of flow='xtls-rprx-vision' and security='tls' --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 518bb987cc6..9db06b6a8c2 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -364,6 +364,7 @@ local function processData(szType, content) result.packet_encoding = packet_encoding result.tls = (params.security == "tls") and "1" or "0" result.tls_host = params.sni + result.tls_flow = params.flow result.xtls = params.security == "xtls" and "1" or nil result.vless_flow = params.flow result.fingerprint = params.fp From 85c1b110650fdd13feb361970787b30084372b68 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 3 Mar 2023 11:52:58 +0800 Subject: [PATCH 290/972] v2raya: drop wrong patches These patches should not be backported to OpenWrt, otherwise tproxy won't work for devices connected to br-lan (bypassed by the fw rules). We have introduced a new compile-time flag for new version (which is not released yet), but it's unnecessray to backport redudant patches as here is still at the old version. Fixes: #1042 Signed-off-by: Tianling Shen --- v2raya/Makefile | 2 +- .../010-fixed-for-Docker-Compose.patch | 46 ------------------- v2raya/patches/011-cleaned-up.patch | 37 --------------- v2raya/patches/012-improved.patch | 38 --------------- ...-interface-ppp-to-avoid-to-break-net.patch | 4 +- 5 files changed, 3 insertions(+), 124 deletions(-) delete mode 100644 v2raya/patches/010-fixed-for-Docker-Compose.patch delete mode 100644 v2raya/patches/011-cleaned-up.patch delete mode 100644 v2raya/patches/012-improved.patch diff --git a/v2raya/Makefile b/v2raya/Makefile index 2f6828a2e16..e0912055392 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA PKG_VERSION:=1.5.9.1698.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? diff --git a/v2raya/patches/010-fixed-for-Docker-Compose.patch b/v2raya/patches/010-fixed-for-Docker-Compose.patch deleted file mode 100644 index 8461660f7bb..00000000000 --- a/v2raya/patches/010-fixed-for-Docker-Compose.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 78336e55a31db578c139a5bb472aa0fc219c169d Mon Sep 17 00:00:00 2001 -From: Xiaoxu Guo -Date: Thu, 4 Aug 2022 16:24:04 +0800 -Subject: [PATCH] fixed for Docker Compose - ---- - service/core/iptables/tproxy.go | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - ---- a/core/iptables/tproxy.go -+++ b/core/iptables/tproxy.go -@@ -65,6 +65,7 @@ iptables -w 2 -t mangle -A TP_PRE -p udp - - iptables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark - iptables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN -+iptables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN - ` -@@ -123,6 +124,8 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud - - ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark - ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN -+ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN -+ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN - ` -@@ -156,7 +159,7 @@ ip6tables -w 2 -t mangle -A TP_MARK -j C - - func (t *tproxy) GetCleanCommands() Setter { - commands := ` --ip rule del fwmark 0x40/0xc0 table 100 -+ip rule del fwmark 0x40/0xc0 table 100 - ip route del local 0.0.0.0/0 dev lo table 100 - - iptables -w 2 -t mangle -F TP_OUT -@@ -172,7 +175,7 @@ iptables -w 2 -t mangle -X TP_MARK - ` - if IsIPv6Supported() { - commands += ` --ip -6 rule del fwmark 0x40/0xc0 table 100 -+ip -6 rule del fwmark 0x40/0xc0 table 100 - ip -6 route del local ::/0 dev lo table 100 - - ip6tables -w 2 -t mangle -F TP_OUT diff --git a/v2raya/patches/011-cleaned-up.patch b/v2raya/patches/011-cleaned-up.patch deleted file mode 100644 index 74dc502ec4f..00000000000 --- a/v2raya/patches/011-cleaned-up.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 0db405f50fd652d494f2066fc5e47c41666c96db Mon Sep 17 00:00:00 2001 -From: Xiaoxu Guo -Date: Thu, 4 Aug 2022 16:32:42 +0800 -Subject: [PATCH] cleaned up - ---- - service/core/iptables/tproxy.go | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - ---- a/core/iptables/tproxy.go -+++ b/core/iptables/tproxy.go -@@ -124,7 +124,6 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud - - ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark - ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN --ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN -@@ -159,7 +158,7 @@ ip6tables -w 2 -t mangle -A TP_MARK -j C - - func (t *tproxy) GetCleanCommands() Setter { - commands := ` --ip rule del fwmark 0x40/0xc0 table 100 -+ip rule del fwmark 0x40/0xc0 table 100 - ip route del local 0.0.0.0/0 dev lo table 100 - - iptables -w 2 -t mangle -F TP_OUT -@@ -175,7 +174,7 @@ iptables -w 2 -t mangle -X TP_MARK - ` - if IsIPv6Supported() { - commands += ` --ip -6 rule del fwmark 0x40/0xc0 table 100 -+ip -6 rule del fwmark 0x40/0xc0 table 100 - ip -6 route del local ::/0 dev lo table 100 - - ip6tables -w 2 -t mangle -F TP_OUT diff --git a/v2raya/patches/012-improved.patch b/v2raya/patches/012-improved.patch deleted file mode 100644 index 1c755d01530..00000000000 --- a/v2raya/patches/012-improved.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4a87a6fc9a17939cc0fc54058b2128b1f688045a Mon Sep 17 00:00:00 2001 -From: Xiaoxu Guo -Date: Thu, 4 Aug 2022 22:56:46 +0800 -Subject: [PATCH] improved - ---- - service/core/iptables/tproxy.go | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - ---- a/core/iptables/tproxy.go -+++ b/core/iptables/tproxy.go -@@ -16,7 +16,7 @@ var Tproxy tproxy - func (t *tproxy) AddIPWhitelist(cidr string) { - // avoid duplication - t.RemoveIPWhitelist(cidr) -- pos := 5 -+ pos := 6 - if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { - pos += 3 - } -@@ -65,7 +65,7 @@ iptables -w 2 -t mangle -A TP_PRE -p udp - - iptables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark - iptables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN --iptables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN -+iptables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN - ` -@@ -124,7 +124,7 @@ ip6tables -w 2 -t mangle -A TP_PRE -p ud - - ip6tables -w 2 -t mangle -A TP_RULE -j CONNMARK --restore-mark - ip6tables -w 2 -t mangle -A TP_RULE -m mark --mark 0x40/0xc0 -j RETURN --ip6tables -w 2 -t mangle -A TP_RULE -i br+ -j RETURN -+ip6tables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN - ` diff --git a/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch b/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch index 0ff5f6a5417..07e426a14df 100644 --- a/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch +++ b/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch @@ -13,8 +13,8 @@ Subject: [PATCH] fix: we should skip interface ppp+ to avoid to break net func (t *tproxy) AddIPWhitelist(cidr string) { // avoid duplication t.RemoveIPWhitelist(cidr) -- pos := 6 -+ pos := 8 +- pos := 5 ++ pos := 7 if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { pos += 3 } From 5b7acf711644837a668745e67a8cd32d5f87e4d3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 4 Mar 2023 09:58:04 +0800 Subject: [PATCH 291/972] CI: drop arc build Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index f09d8e79c51..b53df5142cb 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -13,9 +13,6 @@ jobs: fail-fast: false matrix: include: - - arch: arc_archs - target: archs38-generic - - arch: arm_cortex-a9_vfpv3-d16 target: mvebu-cortexa9 @@ -78,7 +75,7 @@ jobs: echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV - name: Build - uses: immortalwrt/gh-action-sdk@v4 + uses: immortalwrt/gh-action-sdk@v4.1 env: ARCH: ${{ matrix.arch }}-${{ env.BRANCH }} FEEDNAME: packages_ci From b7451f4dc495d74fe5dc5a4597d659f9515dd049 Mon Sep 17 00:00:00 2001 From: Interesting Gang <31793080+SakuraFallingMad@users.noreply.github.com> Date: Wed, 8 Mar 2023 19:38:39 +0800 Subject: [PATCH 292/972] chinadns-ng: bump to 2023.03.06 Signed-off-by: Tianling Shen --- chinadns-ng/Makefile | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 6208a920f52..162868af139 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -1,18 +1,16 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2023 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=1.0-beta.25 +PKG_VERSION:=2023.03.06 PKG_RELEASE:=1 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng.git -PKG_SOURCE_DATE:=2021-05-08 -PKG_SOURCE_VERSION:=14cc6348d67b09cae37d9bce554c89c2c0e0b265 -PKG_MIRROR_HASH:=3b66fc0888d9488e3b8e39df3016d51fae1b43325d292381e94aa3c7d2318282 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? +PKG_HASH:=a0bfc73cae1cd14058da09b28325ca8d3e04c66a9e7b21f31fc65e0828aea6a2 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 9009cff8de94ecab0a4da6fbad289fd6bf9be445 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 10 Mar 2023 00:24:37 +0800 Subject: [PATCH 293/972] xray-core: update to 1.8.0 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index db01d6a7902..c936b1c98a2 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.7.5 +PKG_VERSION:=1.8.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a5fc936136a57a463bf9a895d068fdfa895b168ae6093c58a10208e098b6b2d3 +PKG_HASH:=35339ee4c2ebd46cebd95ad7791d38a97db3a6afd97277a33e4ee7be35c9a3b2 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 45e6b51be977953dd3239ca3828db1c10e292943 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 10 Mar 2023 00:30:08 +0800 Subject: [PATCH 294/972] chinadns-ng: update to 2023.03.08 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 162868af139..1d1488d6b76 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.03.06 +PKG_VERSION:=2023.03.08 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=a0bfc73cae1cd14058da09b28325ca8d3e04c66a9e7b21f31fc65e0828aea6a2 +PKG_HASH:=9404a20c7241f4102dfa3fc197877ddbdb38f87d6044c98f62256078895732df PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 25c3038d30e0d628f5550ff58a2c5ce83188d3cf Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Thu, 9 Mar 2023 09:09:56 +0800 Subject: [PATCH 295/972] CI: update ppc arch Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index b53df5142cb..3cc97874f3c 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -25,7 +25,7 @@ jobs: - arch: powerpc_464fp target: apm821xx-nand - - arch: powerpc_8540 + - arch: powerpc_8548 target: mpc85xx-p1010 - arch: aarch64_cortex-a53 From bfbf199d1cb50d17930ca1a3ad4ac75589f7cf25 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 10 Mar 2023 23:28:43 +0800 Subject: [PATCH 296/972] chinadns-ng: update to 2023.03.10 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 1d1488d6b76..857f5266d4b 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.03.08 +PKG_VERSION:=2023.03.10 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=9404a20c7241f4102dfa3fc197877ddbdb38f87d6044c98f62256078895732df +PKG_HASH:=7de9f0436c16bb7f2a9d2f8fb7b4fbcb8b291f57925a1f7c4c18c98daccf70b1 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 47defe0a7194634e8e0d1cf9612b789ada15e318 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 11 Mar 2023 14:48:40 +0800 Subject: [PATCH 297/972] luci-app-ssr-plus: remove legacy XTLS support Removed in Xray-core 1.8.0. Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 71 +++++-------------- .../luasrc/view/shadowsocksr/ssrurl.htm | 7 +- .../root/etc/uci-defaults/luci-ssr-plus | 2 + .../usr/share/shadowsocksr/gen_config.lua | 23 ++---- .../root/usr/share/shadowsocksr/subscribe.lua | 6 +- 5 files changed, 29 insertions(+), 80 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 79349b31c95..6aa1f3e62a8 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -114,16 +114,6 @@ local securitys = { "chacha20-poly1305" } -local flows = { - -- xtls - "xtls-rprx-origin", - "xtls-rprx-origin-udp443", - "xtls-rprx-direct", - "xtls-rprx-direct-udp443", - "xtls-rprx-splice", - "xtls-rprx-splice-udp443" -} - local tls_flows = { -- tls "xtls-rprx-vision", @@ -672,47 +662,28 @@ o.rmempty = true o = s:option(Flag, "tls", translate("TLS")) o.rmempty = true o.default = "0" -o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "trojan", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "http", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) o:depends("type", "trojan") --- XTLS -if is_finded("xray") then - o = s:option(Flag, "xtls", translate("XTLS")) - o.rmempty = true - o.default = "0" - o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = false}) - o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "kcp", tls = false}) - o:depends({type = "v2ray", v2ray_protocol = "trojan", transport = "tcp", tls = false}) - o:depends({type = "v2ray", v2ray_protocol = "trojan", transport = "kcp", tls = false}) - - -- Flow - o = s:option(Value, "vless_flow", translate("Flow")) - for _, v in ipairs(flows) do - o:value(v, translate(v)) - end - o.rmempty = true - o.default = "xtls-rprx-splice" - o:depends("xtls", true) +-- [[ TLS部分 ]] -- +o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) +o:depends({type = "trojan", tls = true}) +o.default = "0" +if is_finded("xray") then + -- [[ XTLS ]]-- o = s:option(Value, "tls_flow", translate("Flow")) for _, v in ipairs(tls_flows) do o:value(v, translate(v)) end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) -end - --- [[ TLS部分 ]] -- -o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) -o:depends({type = "trojan", tls = true}) -o.default = "0" -if is_finded("xray") then -- [[ uTLS ]]-- o = s:option(Value, "fingerprint", translate("Finger Print")) o:value("", translate("disable")) @@ -727,20 +698,17 @@ if is_finded("xray") then o:value("random", translate("random")) o:value("randomized", translate("randomized")) o:depends({type = "v2ray", tls = true}) - o:depends({type = "v2ray", xtls = true}) o.default = "" end o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" o:depends("tls", true) -o:depends("xtls", true) o:depends("type", "hysteria") o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) o:depends("tls", true) -o:depends("xtls", true) o:depends("type", "tuic") o.rmempty = true @@ -752,19 +720,18 @@ o.rmempty = true o = s:option(Flag, "insecure", translate("allowInsecure")) o.rmempty = false o:depends("tls", true) -o:depends("xtls", true) o:depends("type", "hysteria") o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.") -- [[ Mux ]]-- o = s:option(Flag, "mux", translate("Mux")) o.rmempty = false -o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "trojan", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "socks", xtls = false}) -o:depends({type = "v2ray", v2ray_protocol = "http", xtls = false}) +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) o = s:option(Value, "concurrency", translate("Concurrency")) o.datatype = "uinteger" @@ -782,8 +749,6 @@ o:depends({type = "hysteria", insecure = false}) o:depends({type = "trojan", tls = true, insecure = false}) o:depends({type = "v2ray", v2ray_protocol = "vmess", tls = true, insecure = false}) o:depends({type = "v2ray", v2ray_protocol = "vless", tls = true, insecure = false}) -o:depends({type = "v2ray", v2ray_protocol = "vmess", xtls = true, insecure = false}) -o:depends({type = "v2ray", v2ray_protocol = "vless", xtls = true, insecure = false}) o.description = translate("If you have a self-signed certificate,please check the box") o = s:option(DummyValue, "upload", translate("Upload")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 4e2e41484a7..6b62e7f4698 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -308,13 +308,10 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : params.get("type") || "tcp"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; - if ([ "tls", "xtls" ].includes(params.get("security"))) { + if ([ "tls" ].includes(params.get("security"))) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].dispatchEvent(event); - if (params.get("security") === "xtls") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].value = params.get("flow") || "xtls-rprx-splice"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_flow')[0].dispatchEvent(event); - } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; } diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index d7378d819b3..157774d1297 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -32,6 +32,8 @@ sed -i "s/option pdnsd_enable '3'/option pdnsd_enable '1'/g" /etc/config/shadows sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr +sed -i "s/option xtls/option tls/g" /etc/config/shadowsocksr +sed -i "/option vless_flow/d" /etc/config/shadowsocksr sed -i "/option fingerprint 'disable'/d" /etc/config/shadowsocksr if [ -s "/etc/uwsgi/vassals/luci-webui.ini" ];then diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index a7ca9435cfa..3d9e32a922f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -22,7 +22,7 @@ function vmess_vless() id = server.vmess_id, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = (server.xtls == '1') and (server.vless_flow or "xtls-rprx-splice") or (server.tls == '1') and server.tls_flow or nil + flow = (server.tls == '1') and server.tls_flow or nil } } } @@ -48,7 +48,6 @@ function trojan_shadowsocks() method = ((server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss) or ((server.v2ray_protocol == "shadowsocksr") and server.encrypt_method) or nil, uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, - flow = (server.v2ray_protocol == "trojan") and (server.xtls == '1') and (server.vless_flow or "xtls-rprx-splice") or nil } } } @@ -157,30 +156,18 @@ local Xray = { -- 底层传输配置 streamSettings = { network = server.transport or "tcp", - security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or nil, - tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { + security = (server.tls == '1') and "tls" or nil, + tlsSettings = (server.tls == '1') and { -- tls alpn = server.tls_alpn, fingerprint = server.fingerprint, - allowInsecure = (server.insecure == "1") and true or nil, + allowInsecure = (server.insecure == "1"), serverName = server.tls_host, certificates = server.certificate and { usage = "verify", certificateFile = server.certpath } or nil } or nil, - xtlsSettings = (server.xtls == '1' and (server.insecure == "1" or server.tls_host or server.fingerprint)) and { - -- xtls - alpn = server.tls_alpn, - fingerprint = server.fingerprint, - allowInsecure = (server.insecure == "1") and true or nil, - serverName = server.tls_host, - minVersion = "1.3", - certificates = server.certificate and { - usage = "verify", - certificateFile = server.certpath - } or nil - } or nil, tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { -- tcp header = { @@ -237,7 +224,7 @@ local Xray = { initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil }, - mux = (server.mux == "1" and server.xtls ~= "1" and server.transport ~= "grpc") and { + mux = (server.mux == "1" and server.transport ~= "grpc") and { -- mux enabled = true, concurrency = tonumber(server.concurrency), diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 9db06b6a8c2..0d1945c5d14 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -362,11 +362,9 @@ local function processData(szType, content) result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" result.packet_encoding = packet_encoding - result.tls = (params.security == "tls") and "1" or "0" + result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" result.tls_host = params.sni - result.tls_flow = params.flow - result.xtls = params.security == "xtls" and "1" or nil - result.vless_flow = params.flow + result.tls_flow = (params.security == "tls") and params.flow or nil result.fingerprint = params.fp if result.transport == "ws" then result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil From 8fc1f6ac2ede2cf9e1f4ec846099258e4622bd2f Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 11 Mar 2023 15:46:05 +0800 Subject: [PATCH 298/972] luci-app-ssr-plus: add REALITY support Signed-off-by: Tianling Shen --- .../model/cbi/shadowsocksr/client-config.lua | 34 +++++++++++++++---- .../usr/share/shadowsocksr/gen_config.lua | 10 +++++- 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6aa1f3e62a8..d01c256877d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -662,12 +662,12 @@ o.rmempty = true o = s:option(Flag, "tls", translate("TLS")) o.rmempty = true o.default = "0" -o:depends({type = "v2ray", v2ray_protocol = "vless"}) -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) -o:depends({type = "v2ray", v2ray_protocol = "trojan"}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5"}) -o:depends({type = "v2ray", v2ray_protocol = "http"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", reality = false}) +o:depends({type = "v2ray", v2ray_protocol = "vmess", reality = false}) +o:depends({type = "v2ray", v2ray_protocol = "trojan", reality = false}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", reality = false}) +o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", reality = false}) +o:depends({type = "v2ray", v2ray_protocol = "http", reality = false}) o:depends("type", "trojan") -- [[ TLS部分 ]] -- @@ -676,6 +676,24 @@ o:depends({type = "trojan", tls = true}) o.default = "0" if is_finded("xray") then + -- [[ REALITY ]] + o = s:option(Flag, "reality", translate("REALITY")) + o.rmempty = true + o.default = "0" + o:depends({type = "v2ray", v2ray_protocol = "vless", tls = false}) + + o = s:option(Value, "reality_publickey", translate("Public key")) + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) + + o = s:option(Value, "reality_shortid", translate("Short ID")) + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) + + o = s:option(Value, "reality_spiderx", translate("spiderX")) + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) + -- [[ XTLS ]]-- o = s:option(Value, "tls_flow", translate("Flow")) for _, v in ipairs(tls_flows) do @@ -683,6 +701,7 @@ if is_finded("xray") then end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", reality = true}) -- [[ uTLS ]]-- o = s:option(Value, "fingerprint", translate("Finger Print")) @@ -698,12 +717,13 @@ if is_finded("xray") then o:value("random", translate("random")) o:value("randomized", translate("randomized")) o:depends({type = "v2ray", tls = true}) - o.default = "" + o:depends({type = "v2ray", reality = true}) end o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" o:depends("tls", true) +o:depends("reality", true) o:depends("type", "hysteria") o.rmempty = true diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 3d9e32a922f..589957a62f2 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -156,7 +156,7 @@ local Xray = { -- 底层传输配置 streamSettings = { network = server.transport or "tcp", - security = (server.tls == '1') and "tls" or nil, + security = (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, tlsSettings = (server.tls == '1') and { -- tls alpn = server.tls_alpn, @@ -168,6 +168,14 @@ local Xray = { certificateFile = server.certpath } or nil } or nil, + realitySettings = (server.reality == '1') and { + show = false, + publicKey = server.reality_publickey, + shortId = server.reality_shortid, + spiderX = server.reality_spiderx, + fingerprint = server.fingerprint, + serverName = server.tls_host + } or nil, tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { -- tcp header = { From b2051b81f65a6cc7a607359131442fdaf2a9139c Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 11 Mar 2023 18:03:16 +0000 Subject: [PATCH 299/972] xray-plugin: update to 1.8.0 Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index d57df6b76fc..6e3bf24115d 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.7.5 +PKG_VERSION:=1.8.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e22aef7ce8c98a492c6fcafd182cfd0ebe27fa3c1e74c6b08d0cff8088895e04 +PKG_HASH:=a21e598a41e760b4286cc621311a03fbe60b05268af85a019931e90fccf6df07 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 74b60a7fd29b2183ba85e592890ee4edba16f89d Mon Sep 17 00:00:00 2001 From: Mattraks <16359027+Mattraks@users.noreply.github.com> Date: Mon, 13 Mar 2023 12:02:47 +0800 Subject: [PATCH 300/972] luci-app-ssr-plus: ssrurl: fix parse tls sni for vmess link Fixes: #1127 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 4e2e41484a7..68caaba93e0 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -282,7 +282,7 @@ if (ssm.tls == "tls") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host; } document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); From 5eed54f23b86cfa843515fbc06c200c3695f668b Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 13 Mar 2023 16:32:23 +0800 Subject: [PATCH 301/972] shadowsocks-rust: Update to 1.15.3 Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 67e53433ed5..ccfd93eeca6 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.2 +PKG_VERSION:=1.15.3 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=97850893c5a35b68ccd419b542c1785e4c0006e8c0c0b10eac8e5b8c67b12704 + PKG_HASH:=60564e78abe243b966a0a6079b20e60fe302d3d41db0b2d2114e6d1325d735dc else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=728f4550abe4f18679555fa00b88ce889d2f412be7fa0d96bf153d086ad0c63e + PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=f13ae6497843347c91ef8b0634cee96f5043a644b2fba30009cafd6c9e65d7df + PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a8558a9e898f9ba875136c3d038e968ca8d301a7dcde977f6483d5072f57695f + PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a3f99d549c9f417fef63fa323840e0c4fb4dc96a53cf8329293c2a4e485ed239 + PKG_HASH:=e42662a09328872318535a9d5e2b2dc135db758b305e4ccf19bdca478ecbde06 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=47d0f10d94216376057fc4238ebab68d19e3882293d5fe76ac3d29c41458a985 + PKG_HASH:=7807f35ba581c031cde36f5660980e54eefe8197571b20993bb738d2b4608ec1 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=69c2df2bd4e9e2ff0d70faa14b70888de2eb205ab2a49dd7066c86363e2acc50 + PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 39388c2292ad38102666e00118b00f9675ee0624 Mon Sep 17 00:00:00 2001 From: zihelyu Date: Mon, 13 Mar 2023 18:03:00 +0800 Subject: [PATCH 302/972] luci-app-ssr-plus: gen_config: generate flow for REALITY Signed-off-by: zihelyu --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 589957a62f2..1e92260159f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -22,7 +22,7 @@ function vmess_vless() id = server.vmess_id, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = (server.tls == '1') and server.tls_flow or nil + flow = ((server.tls == '1') or (server.reality == '1')) and server.tls_flow or nil } } } From 6d33e7eb8b28393fca2538bfc1debbda9a1435a3 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 14 Mar 2023 00:01:08 +0800 Subject: [PATCH 303/972] README: re-add Go version note This reverts commit f4366abc71c169a16893fa2cfbfa48453233f5b9. Signed-off-by: Tianling Shen --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index c97e0e08c0c..c62b7def5ee 100644 --- a/README.md +++ b/README.md @@ -70,3 +70,15 @@ ./scripts/feeds install -a ``` +### Note + +#### ⚠ For OpenWrt 21.02 or lower version +You have to manually upgrade Golang toolchain to [1.19](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang) or higher to compile Xray-core. + +e.g.: + +```bash +./scripts/feeds update packages +rm -rf feeds/packages/lang/golang +svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang feeds/packages/lang/golang +``` From 8752abb8c96f1e675a2d51f0a0bb48530df88adf Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 15 Mar 2023 18:24:09 +0800 Subject: [PATCH 304/972] hysteria: update to 1.3.4 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 711cd40fea9..d5617212964 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.3 +PKG_VERSION:=1.3.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=11ca9df98a8a17a348dcdac92a19fef0e25dde8e536a9778705f765ac208a202 +PKG_HASH:=13862594252dcea83d791b0cf8234874154ba623f22d94cef685561a710717c1 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From 7afb855b2bd95e663bf74e45635a92423faaa5ed Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 18 Mar 2023 00:29:01 +0800 Subject: [PATCH 305/972] gn: add new host tool Signed-off-by: Tianling Shen --- gn/Makefile | 61 +++++++++++++++++++++++++++++++ gn/patches/010-gcc.patch | 11 ++++++ gn/src/out/last_commit_position.h | 9 +++++ 3 files changed, 81 insertions(+) create mode 100644 gn/Makefile create mode 100644 gn/patches/010-gcc.patch create mode 100644 gn/src/out/last_commit_position.h diff --git a/gn/Makefile b/gn/Makefile new file mode 100644 index 00000000000..68cf0f9bcaf --- /dev/null +++ b/gn/Makefile @@ -0,0 +1,61 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2022 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=gn +PKG_RELEASE:=2 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git +PKG_SOURCE_DATE:=2023-01-29 +PKG_SOURCE_VERSION:=84c8431f3e03cc6226c59dd49637c15ea31169a1 +PKG_MIRROR_HASH:=3be8b3c27be8b4f16c8922d9e70d8135a66279ac3679c636b259e4e829a7a9fc + +PKG_LICENSE:=BSD 3-Clause +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) +PKG_BUILD_DEPENDS+= ninja/host +endif +PKG_HOST_ONLY:=1 +HOST_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/host-build.mk +include $(INCLUDE_DIR)/package.mk + +define Package/gn + SECTION:=devel + CATEGORY:=Development + TITLE:=A meta-build system that generates build files for Ninja + URL:=https://gn.googlesource.com/gn/ + BUILDONLY:=1 +endef + +define Package/gn/description + GN can generate Ninja build files for C, C++, Rust, Objective C, + and Swift source on most popular platforms. +endef + +define Host/Configure + $(PYTHON) $(HOST_BUILD_DIR)/build/gen.py \ + --no-last-commit-position +endef + +define Host/Compile + ninja -C $(HOST_BUILD_DIR)/out +endef + +define Host/Install + $(INSTALL_DIR) $(STAGING_DIR_HOSTPKG)/bin/ + $(INSTALL_BIN) $(HOST_BUILD_DIR)/out/gn $(STAGING_DIR_HOSTPKG)/bin/ +endef + +define Host/Clean + $(RM) $(STAGING_DIR_HOSTPKG)/bin/gn +endef + +$(eval $(call HostBuild)) +$(eval $(call BuildPackage,gn)) diff --git a/gn/patches/010-gcc.patch b/gn/patches/010-gcc.patch new file mode 100644 index 00000000000..bfdc39445dc --- /dev/null +++ b/gn/patches/010-gcc.patch @@ -0,0 +1,11 @@ +--- a/build/gen.py ++++ b/build/gen.py +@@ -368,7 +368,7 @@ def WriteGNNinja(path, platform, host, o + cxx = os.environ.get('CXX', 'g++') + ld = os.environ.get('LD', 'g++') + ar = os.environ.get('AR', 'ar -X64') +- elif platform.is_msys() or platform.is_mingw(): ++ elif platform.is_msys() or platform.is_mingw() or platform.is_linux(): + cxx = os.environ.get('CXX', 'g++') + ld = os.environ.get('LD', 'g++') + ar = os.environ.get('AR', 'ar') diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h new file mode 100644 index 00000000000..205193a7923 --- /dev/null +++ b/gn/src/out/last_commit_position.h @@ -0,0 +1,9 @@ +// Generated by build/gen.py. + +#ifndef OUT_LAST_COMMIT_POSITION_H_ +#define OUT_LAST_COMMIT_POSITION_H_ + +#define LAST_COMMIT_POSITION_NUM 2079 +#define LAST_COMMIT_POSITION "2079 (84c8431f3e03)" + +#endif // OUT_LAST_COMMIT_POSITION_H_ From 2423c0df1bc620ccba007440ddd6f53c97398010 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 18 Mar 2023 00:30:24 +0800 Subject: [PATCH 306/972] naiveproxy: Update to 111.0.5563.64-1 Signed-off-by: Tianling Shen --- naiveproxy/Makefile | 29 +++++++++-------------------- 1 file changed, 9 insertions(+), 20 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 3c90eb670c9..5f2f7fb1a66 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,22 +5,23 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=110.0.5481.100-1 +PKG_VERSION:=111.0.5563.64-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b20ea791927426d2da9ba19bc448e902a6aa667706f1cda8f24323546e3b994f +PKG_HASH:=a5411d28943be60a273c58059e3ee81cb8e4623d8286f8e57bf5a34e4fa7e7ac PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen +PKG_BUILD_DEPENDS:=gn/host ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) PKG_BUILD_DEPENDS+= ninja/host endif -PKG_USE_MIPS16:=0 PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 ifneq ($(CONFIG_CPU_TYPE)," ") CPU_TYPE:=$(word 1, $(subst +," ,$(CONFIG_CPU_TYPE))) @@ -57,31 +58,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-12251-g87d0ff91-2 +CLANG_VER:=16-init-17653-g39da55e8-2 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=902060c5657cb99e58332ef33eed52262373734abf841a38efac239b9382969c -endef - -GN_VER:=5e19d2fb166fbd4f6f32147fbb2f497091a54ad8 -GN_FILE:=gn-git_revision-$(GN_VER).zip -define Download/GN_TOOL - URL:=https://chrome-infra-packages.appspot.com/dl/gn/gn/linux-amd64/+ - URL_FILE:=git_revision:$(GN_VER) - FILE:=$(GN_FILE) - HASH:=a95c29544e581b56c1d3f1920637a9f518989b3b744d6b2234fe8de634acddf1 + HASH:=b4afdf625aa4b72c5d188ed28a13dd352a881a2a4149542f0c903698d0498017 endef -PGO_VER:=5481-1675162426-393d781cbc3753d814a299bfd43435032b5acfd9 +PGO_VER:=5563-1677886924-aa8d450a18b4f7f1cd41619f60bc5da6beb3c1d0 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=c58a2775b7287f80ec21b503a0d18bb7b8777d943b16bb2c7b3135c5a89d7acc + HASH:=eb16e7be414614c215ba90538f70f431cf444b9985865ad20d8743b707a235a6 endef define Build/Prepare @@ -94,8 +86,6 @@ define Build/Prepare mkdir -p "third_party/llvm-build/Release+Asserts" ; \ $(TAR) -xzf "$(DL_DIR)/$(CLANG_FILE)" -C "third_party/llvm-build/Release+Asserts" ; \ echo -e "llvmorg-$(CLANG_VER)" > "third_party/llvm-build/Release+Asserts/cr_build_revision" ; \ - mkdir -p "gn/out" ; \ - unzip -o "$(DL_DIR)/$(GN_FILE)" -d "gn/out" ; \ popd ; \ ) endef @@ -106,7 +96,7 @@ define Build/Configure . ../init_env.sh "$(ARCH)" $(CPU_TYPE) $(CPU_SUBTYPE) "$(TOOLCHAIN_DIR)" ; \ export naive_flags+=" $$$${naive_ccache_flags}" ; \ mkdir -p "out" ; \ - ./gn/out/gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="python3" ; \ + gn gen "out/Release" --args="$$$${naive_flags}" --script-executable="$(PYTHON)" ; \ popd ; \ ) endef @@ -121,7 +111,6 @@ define Package/naiveproxy/install endef $(eval $(call Download,CLANG)) -$(eval $(call Download,GN_TOOL)) $(eval $(call Download,PGO_PROF)) $(eval $(call BuildPackage,naiveproxy)) From 8b40a2f4a2f5bb858409051c26f53e2dc74117c0 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 19 Mar 2023 14:51:05 +0800 Subject: [PATCH 307/972] gn: bump to latest git HEAD The wrong escaping mode is used in a few contexts, which results in failed builds. This is happening in particular to folks whose sources are inside a directory with a space in it, and whose builds are not contained within that directory. Such builds encode the surrounding filesystem structure into the ninja files, which is unfortunate but unavoidable in some environments. Fix the escaping mode in this case. Signed-off-by: Tianling Shen --- gn/Makefile | 8 ++++---- gn/src/out/last_commit_position.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index 68cf0f9bcaf..e7a410a0641 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=gn -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2023-01-29 -PKG_SOURCE_VERSION:=84c8431f3e03cc6226c59dd49637c15ea31169a1 -PKG_MIRROR_HASH:=3be8b3c27be8b4f16c8922d9e70d8135a66279ac3679c636b259e4e829a7a9fc +PKG_SOURCE_DATE:=2023-02-17 +PKG_SOURCE_VERSION:=b25a2f8c2d33f02082f0f258350f5e22c0973108 +PKG_MIRROR_HASH:=28dcd0c0fe6fe8c459096acd0ff9ff4a982284ca680ff6edc1222dc88dac0b23 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 205193a7923..54bc07dab69 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2079 -#define LAST_COMMIT_POSITION "2079 (84c8431f3e03)" +#define LAST_COMMIT_POSITION_NUM 2081 +#define LAST_COMMIT_POSITION "2081 (b25a2f8c2d33)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 9110a7860cdbadc7b77a434cafa0ebf9d6ff7ecf Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Mon, 20 Mar 2023 15:20:05 +0800 Subject: [PATCH 308/972] luci-app-ssr-plus: subscribe: fix parse vmess link Fixes: #1127 Signed-off-by: Tianling Shen --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 0d1945c5d14..31937fb4588 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -223,10 +223,10 @@ local function processData(szType, content) end if info.tls == "tls" or info.tls == "1" then result.tls = "1" - if info.host then - result.tls_host = info.host - elseif info.sni then + if info.sni and info.sni ~= "" then result.tls_host = info.sni + elseif info.host then + result.tls_host = info.host end result.insecure = 1 else From baa8dc86db1bae7f3b0f058ad3fd996d8c339876 Mon Sep 17 00:00:00 2001 From: SaFi-wi <68845234+SaFi-wi@users.noreply.github.com> Date: Mon, 20 Mar 2023 15:26:32 +0800 Subject: [PATCH 309/972] luci-app-ssr-plus: add `lazy_start` support for hysteria --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 5 +++++ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d01c256877d..f69159f92f9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -358,6 +358,11 @@ o = s:option(Flag, "disable_mtu_discovery", translate("Disable Path MTU discover o:depends("type", "hysteria") o.rmempty = true +o = s:option(Flag, "lazy_start", translate("Lazy Start")) +o:depends("type", "hysteria") +o.rmempty = true +o.default = "0" + -- [[ TUIC ]] o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 864983b77e2..b754e4a1ddc 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -115,6 +115,9 @@ msgstr "QUIC 连接接收窗口" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" +msgid "Lazy Start" +msgstr "延迟启动" + msgid "Disable Path MTU discovery" msgstr "禁用 MTU 探测" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 1e92260159f..e7c7994841c 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -320,7 +320,8 @@ local hysteria = { recv_window_conn = tonumber(server.recv_window_conn), recv_window = tonumber(server.recv_window), disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false, - fast_open = (server.fast_open == "1") and true or false + fast_open = (server.fast_open == "1") and true or false, + lazy_start = (server.lazy_start == "1") and true or false } local tuic = { relay = { From b5ff3d55da6d4316d9d381ce1ef8a59f618eee5f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 20 Mar 2023 21:31:47 +0800 Subject: [PATCH 310/972] v2ray-core: update to 5.4.1 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 54bd0be2d71..80185819573 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.4.0 +PKG_VERSION:=5.4.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=86be35461a9dc7d037e0045771d99f1eae284fdb7aa0818a6782d18b6b003fca +PKG_HASH:=e208bca255c4689a30104e965039d73fa138a7a6e902f820cff94b5b772b042b PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 1eff81a27ac37eaf1a0f9281672bd77688aedf39 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 21 Mar 2023 22:14:25 +0800 Subject: [PATCH 311/972] sagernet-core: remove package Signed-off-by: Tianling Shen --- sagernet-core/Makefile | 112 --------------------------- sagernet-core/patches/100-obfs.patch | 59 -------------- 2 files changed, 171 deletions(-) delete mode 100644 sagernet-core/Makefile delete mode 100644 sagernet-core/patches/100-obfs.patch diff --git a/sagernet-core/Makefile b/sagernet-core/Makefile deleted file mode 100644 index 7f1b2f05921..00000000000 --- a/sagernet-core/Makefile +++ /dev/null @@ -1,112 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-only -# -# Copyright (C) 2021 ImmortalWrt.org - -include $(TOPDIR)/rules.mk - -PKG_NAME:=sagernet-core -BASE_VERSION:=5.0.17 -PKG_RELEASE:=1 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/SagerNet/v2ray-core.git -PKG_SOURCE_DATE:=2022-07-30 -PKG_SOURCE_VERSION:=26e36b1cb46f387cacd65c1a5900be592913f842 -PKG_MIRROR_HASH:=f8968ef7df8775f28c30f8115e2ce2e9324b1753526af6c89631edf1b1f56f8d -PKG_VERSION:=$(BASE_VERSION)-$(PKG_SOURCE_DATE)-$(call version_abbrev,$(PKG_SOURCE_VERSION)) - -PKG_LICENSE:=GPL-3.0-or-later -PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=Tianling Shen - -PKG_BUILD_DEPENDS:=golang/host -PKG_BUILD_PARALLEL:=1 -PKG_USE_MIPS16:=0 - -GO_PKG:=github.com/v2fly/v2ray-core/v5 -GO_PKG_BUILD_PKG:=$(GO_PKG)/main -GO_PKG_LDFLAGS_X:= \ - $(GO_PKG).build=OpenWrt \ - $(GO_PKG).version=$(BASE_VERSION) - -include $(INCLUDE_DIR)/package.mk -include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk - -define Package/sagernet/template - TITLE:=An enhanced v2ray edition for SagerNet - SECTION:=net - CATEGORY:=Network - URL:=https://sagernet.org -endef - -define Package/sagernet-core - $(call Package/sagernet/template) - DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle - CONFLICTS:=v2ray-core xray-core -endef - -define Package/sagernet-extra - $(call Package/sagernet/template) - TITLE+= (extra resources) - DEPENDS:=sagernet-core - CONFLICTS:=v2ray-extra - PKGARCH:=all -endef - -define Package/sagernet/description - Project V is a set of network tools that help you to build your own computer network. - It secures your network connections and thus protects your privacy. -endef - -define Package/sagernet-core/description - $(call Package/sagernet/description) - - This is a v2ray-core fork for SagerNet. -endef - -define Package/sagernet-extra/description - $(call Package/sagernet/description) - - This includes extra resources for sagernet-core. -endef - -LIBCORE_NAME:=LibSagerNetCore -LIBCORE_DATE:=2022-06-10 -LIBCORE_VERSION:=9ef7ab1de7604ab959222d4de8ab6152a402e432 -LIBCORE_FILE:=$(LIBCORE_NAME)-$(LIBCORE_DATE)-$(call version_abbrev,$(LIBCORE_VERSION)).tar.xz -define Download/libcore - PROTO:=git - URL:=https://github.com/SagerNet/LibSagerNetCore.git - VERSION:=$(LIBCORE_VERSION) - FILE:=$(LIBCORE_FILE) - SUBDIR:=$(LIBCORE_NAME) - MIRROR_HASH:=9420189c45d5fbe682acee1da0b8f727cc5ea8c847ceeff5b026cd71ce60cf0f -endef - -define Build/Prepare - $(call Build/Prepare/Default) - - xzcat $(DL_DIR)/$(LIBCORE_FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) - $(CP) $(PKG_BUILD_DIR)/$(LIBCORE_NAME)/{obfs,ssr}.go \ - $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/ - $(SED) '/plugin\/self/d' -e 's/self.ParsePluginOptions/ParsePluginOptions/g' \ - $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/obfs.go - $(SED) 's/package libcore/package self/g' \ - $(PKG_BUILD_DIR)/proxy/shadowsocks/plugin/self/{obfs,ssr}.go -endef - -define Package/sagernet-core/install - $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) - $(INSTALL_DIR) $(1)/usr/bin/ - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/main $(1)/usr/bin/v2ray - $(LN) v2ray $(1)/usr/bin/xray -endef - -define Package/sagernet-extra/install - $(INSTALL_DIR) $(1)/usr/share/v2ray/ - $(CP) $(PKG_BUILD_DIR)/release/extra/* $(1)/usr/share/v2ray/ -endef - -$(eval $(call Download,libcore)) -$(eval $(call BuildPackage,sagernet-core)) -$(eval $(call BuildPackage,sagernet-extra)) diff --git a/sagernet-core/patches/100-obfs.patch b/sagernet-core/patches/100-obfs.patch deleted file mode 100644 index 14268dbe63a..00000000000 --- a/sagernet-core/patches/100-obfs.patch +++ /dev/null @@ -1,59 +0,0 @@ -go get github.com/Dreamacro/clash/transport/ssr/protocol -go get github.com/Dreamacro/clash/transport/ssr/obfs -go get github.com/Dreamacro/clash/transport/simple-obfs ---- - ---- a/go.mod -+++ b/go.mod -@@ -3,6 +3,7 @@ module github.com/v2fly/v2ray-core/v5 - go 1.18 - - require ( -+ github.com/Dreamacro/clash v1.11.4 - github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da - github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d - github.com/dgryski/go-idea v0.0.0-20170306091226-d2fb45a411fb -@@ -82,6 +83,7 @@ require ( - github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/riobard/go-bloom v0.0.0-20200614022211-cdc8013cb5b3 // indirect - github.com/secure-io/siv-go v0.0.0-20180922214919-5ff40651e2c4 // indirect -+ github.com/sirupsen/logrus v1.8.1 // indirect - github.com/xtaci/smux v1.5.16 // indirect - go4.org/intern v0.0.0-20220301175310-a089fc204883 // indirect - go4.org/unsafe/assume-no-moving-gc v0.0.0-20220617031537-928513b29760 // indirect ---- a/go.sum -+++ b/go.sum -@@ -20,6 +20,8 @@ dmitri.shuralyov.com/state v0.0.0-201802 - git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= - github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= - github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -+github.com/Dreamacro/clash v1.11.4 h1:ZQe/7G+JclA1vvyAn8MtaEBvQK73mWR6lV3BceDaJoY= -+github.com/Dreamacro/clash v1.11.4/go.mod h1:ParIZ6P19q5GDgRE+HV/co7GunFRmvN31YFgNp4cwDw= - github.com/FlowerWrong/water v0.0.0-20180301012659-01a4eaa1f6f2/go.mod h1:xrG5L7lq7T2DLnPr2frMnL906CNEoKRwLB+VYFhPq2w= - github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= - github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da h1:KjTM2ks9d14ZYCvmHS9iAKVt9AyzRSqNU1qabPih5BY= -@@ -396,6 +398,8 @@ github.com/shurcooL/sanitized_anchor_nam - github.com/shurcooL/users v0.0.0-20180125191416-49c67e49c537/go.mod h1:QJTqeLYEDaXHZDBsXlPCDqdhQuJkuw4NOtaxYe3xii4= - github.com/shurcooL/webdavfs v0.0.0-20170829043945-18c3829fa133/go.mod h1:hKmq5kWdCj2z2KEozexVbfEZIWiTjhE0+UjmZgPqehw= - github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -+github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= -+github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= - github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= - github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= - github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -@@ -455,6 +459,7 @@ go.opentelemetry.io/proto/otlp v0.7.0/go - go.starlark.net v0.0.0-20220714194419-4cadf0a12139 h1:zMemyQYZSyEdPaUFixYICrXf/0Rfnil7+jiQRf5IBZ0= - go.starlark.net v0.0.0-20220714194419-4cadf0a12139/go.mod h1:t3mmBBPzAVvK0L0n1drDmrQsJ8FoIx4INCqVMTr/Zo0= - go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -+go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= - go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= - go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= - go4.org v0.0.0-20180809161055-417644f6feb5/go.mod h1:MkTOUMDaeVYJUOUsaDXIhWPZYa1yOyC1qaOBpL57BhE= -@@ -572,6 +577,7 @@ golang.org/x/sys v0.0.0-20190606165138-5 - golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= - golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= From 39702e985daf3bac810d116de743708dc6b56d52 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Tue, 21 Mar 2023 22:14:35 +0800 Subject: [PATCH 312/972] luci-app-ssr-plus: remove support for sagerner-core It's deprecated by the upstream. Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 6 --- .../model/cbi/shadowsocksr/advanced.lua | 6 --- .../model/cbi/shadowsocksr/client-config.lua | 45 +++---------------- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 9 ---- .../root/etc/init.d/shadowsocksr | 1 - .../usr/share/shadowsocksr/gen_config.lua | 24 ++-------- .../root/usr/share/shadowsocksr/subscribe.lua | 7 +-- 7 files changed, 10 insertions(+), 88 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 536d7c59c0a..9225e547ad8 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -8,7 +8,6 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ @@ -38,8 +37,6 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ - +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:curl \ - +PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core:sagernet-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ @@ -109,9 +106,6 @@ choice config PACKAGE_$(PKG_NAME)_INCLUDE_Xray bool "Xray-core" - - config PACKAGE_$(PKG_NAME)_INCLUDE_SagerNet_Core - bool "SagerNet-core (An enhanced edition of v2ray-core)" endchoice config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index cd18cdbd7d9..cfb2ea4e2a4 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -57,12 +57,6 @@ o:value("https://ispip.clang.cn/all_cn_cidr.txt", translate("Clang.CN.CIDR")) o:value("https://fastly.jsdelivr.net/gh/gaoyifan/china-operator-ip@ip-lists/china.txt", translate("china-operator-ip")) o.default = "https://ispip.clang.cn/all_cn.txt" -o = s:option(ListValue, "default_packet_encoding", translate("Default Packet Encoding")) -o:value("none", translate("none")) -o:value("packet", translate("packet (v2ray-core v5+)")) -o:value("xudp", translate("xudp (Xray-core)")) -o.default = "xudp" - o = s:option(Flag, "netflix_enable", translate("Enable Netflix Mode")) o.rmempty = false diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f69159f92f9..c24a347ad2c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -184,9 +184,6 @@ o:value("vless", translate("VLESS")) o:value("vmess", translate("VMess")) o:value("trojan", translate("Trojan")) o:value("shadowsocks", translate("Shadowsocks")) -if is_installed("sagernet-core") then - o:value("shadowsocksr", translate("ShadowsocksR")) -end if is_finded("xray") then o:value("wireguard", translate("WireGuard")) end @@ -244,7 +241,6 @@ o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) o = s:option(ListValue, "encrypt_method", translate("Encrypt Method")) @@ -253,7 +249,6 @@ for _, v in ipairs(encrypt_methods) do end o.rmempty = true o:depends("type", "ssr") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(ListValue, "encrypt_method_ss", translate("Encrypt Method")) for _, v in ipairs(encrypt_methods_ss) do @@ -277,10 +272,10 @@ o.default = "1" -- Shadowsocks Plugin o = s:option(Value, "plugin", translate("Obfs")) o:value("none", translate("None")) -if is_finded("obfs-local") or is_installed("sagernet-core") then +if is_finded("obfs-local") then o:value("obfs-local", translate("obfs-local")) end -if is_finded("v2ray-plugin") or is_installed("sagernet-core") then +if is_finded("v2ray-plugin") then o:value("v2ray-plugin", translate("v2ray-plugin")) end if is_finded("xray-plugin") then @@ -288,16 +283,10 @@ if is_finded("xray-plugin") then end o.rmempty = true o:depends("type", "ss") -if is_installed("sagernet-core") then - o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -end o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true o:depends("type", "ss") -if is_installed("sagernet-core") then - o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -end o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do @@ -305,11 +294,9 @@ for _, v in ipairs(protocol) do end o.rmempty = true o:depends("type", "ssr") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(Value, "protocol_param", translate("Protocol param (optional)")) o:depends("type", "ssr") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(ListValue, "obfs", translate("Obfs")) for _, v in ipairs(obfs) do @@ -317,11 +304,9 @@ for _, v in ipairs(obfs) do end o.rmempty = true o:depends("type", "ssr") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") -o:depends({type = "v2ray", v2ray_protocol = "shadowsocksr"}) -- [[ Hysteria ]]-- o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) @@ -478,21 +463,17 @@ o:depends("transport", "ws") o.rmempty = true if is_finded("v2ray") then - -- 启用WS前置数据 - o = s:option(Flag, "ws_ed_enable", translate("Enable early data")) - o:depends("transport", "ws") - -- WS前置数据 o = s:option(Value, "ws_ed", translate("Max Early Data")) o:depends("ws_ed_enable", true) o.datatype = "uinteger" - o.default = 2048 + o.value("2048") o.rmempty = true -- WS前置数据标头 o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) o:depends("ws_ed_enable", true) - o.default = "Sec-WebSocket-Protocol" + o.value("Sec-WebSocket-Protocol") o.rmempty = true end @@ -513,19 +494,16 @@ o = s:option(Value, "serviceName", translate("gRPC Service Name")) o:depends("transport", "grpc") o.rmempty = true -if is_finded("xray") or is_installed("sagernet-core") then +if is_finded("xray") then -- gPRC模式 o = s:option(ListValue, "grpc_mode", translate("gRPC Mode")) o:depends("transport", "grpc") o:value("gun", translate("Gun")) o:value("multi", translate("Multi")) - if is_installed("sagernet-core") then - o:value("raw", translate("Raw")) - end o.rmempty = true end -if is_finded("xray") or is_installed("sagernet-core") then +if is_finded("xray") then -- gRPC初始窗口 o = s:option(Value, "initial_windows_size", translate("Initial Windows Size")) o.datatype = "uinteger" @@ -824,17 +802,6 @@ o:depends("type", "ss") o:depends("type", "trojan") o:depends("type", "hysteria") -if is_installed("sagernet-core") then - o = s:option(ListValue, "packet_encoding", translate("Packet Encoding")) - o:value("none", translate("none")) - o:value("packet", translate("packet (v2ray-core v5+)")) - o:value("xudp", translate("xudp (Xray-core)")) - o.default = "xudp" - o.rmempty = true - o:depends({type = "v2ray", v2ray_protocol = "vless"}) - o:depends({type = "v2ray", v2ray_protocol = "vmess"}) -end - o = s:option(Flag, "switch_enable", translate("Enable Auto Switch")) o.rmempty = false o.default = "1" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index b754e4a1ddc..9eceb71d7fd 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -742,9 +742,6 @@ msgstr "WebSocket 主机名" msgid "WebSocket Path" msgstr "WebSocket 路径" -msgid "Enable early data" -msgstr "启用前置数据" - msgid "Max Early Data" msgstr "最大前置数据" @@ -829,9 +826,6 @@ msgstr "节点公钥" msgid "Pre-shared key" msgstr "预共享密钥" -msgid "Packet Encoding" -msgstr "数据包编码" - msgid "Network interface to use" msgstr "使用的网络接口" @@ -856,8 +850,5 @@ msgstr "重新应用" msgid "Apply" msgstr "应用" -msgid "Default Packet Encoding" -msgstr "默认数据包编码" - msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 9ecbe60e14e..b8177272cf4 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -981,7 +981,6 @@ reset() { set shadowsocksr.@global[0].switch_time='667' set shadowsocksr.@global[0].switch_timeout='5' set shadowsocksr.@global[0].switch_try_count='3' - set shadowsocksr.@global[0].default_packet_encoding='xudp' set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e7c7994841c..579043cdacb 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -26,35 +26,22 @@ function vmess_vless() } } } - }, - packetEncoding = server.packet_encoding or nil + } } end function trojan_shadowsocks() outbound_settings = { - plugin = ((server.v2ray_protocol == "shadowsocks") and server.plugin ~= "none" and server.plugin) or (server.v2ray_protocol == "shadowsocksr" and "shadowsocksr") or nil, - pluginOpts = (server.v2ray_protocol == "shadowsocks") and server.plugin_opts or nil, - pluginArgs = (server.v2ray_protocol == "shadowsocksr") and { - "--protocol=" .. server.protocol, - "--protocol-param=" .. (server.protocol_param or ""), - "--obfs=" .. server.obfs, - "--obfs-param=" .. (server.obfs_param or "") - } or nil, servers = { { address = server.server, port = tonumber(server.server_port), password = server.password, - method = ((server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss) or ((server.v2ray_protocol == "shadowsocksr") and server.encrypt_method) or nil, + method = ((server.v2ray_protocol == "shadowsocks") and server.encrypt_method_ss) or nil, uot = (server.v2ray_protocol == "shadowsocks") and (server.uot == '1') or nil, ivCheck = (server.v2ray_protocol == "shadowsocks") and (server.ivCheck == '1') or nil, } } } - - if server.v2ray_protocol == "shadowsocksr" then - server.v2ray_protocol = "shadowsocks" - end end function socks_http() outbound_settings = { @@ -108,9 +95,6 @@ function outbound:handleIndex(index) shadowsocks = function() trojan_shadowsocks() end, - shadowsocksr = function() - trojan_shadowsocks() - end, socks = function() socks_http() end, @@ -224,7 +208,6 @@ local Xray = { grpcSettings = (server.transport == "grpc") and { -- grpc serviceName = server.serviceName or "", - mode = (server.grpc_mode ~= "gun") and server.grpc_mode or nil, multiMode = (server.grpc_mode == "multi") and true or false, idle_timeout = tonumber(server.idle_timeout) or nil, health_check_timeout = tonumber(server.health_check_timeout) or nil, @@ -235,8 +218,7 @@ local Xray = { mux = (server.mux == "1" and server.transport ~= "grpc") and { -- mux enabled = true, - concurrency = tonumber(server.concurrency), - packetEncoding = (server.v2ray_protocol == "vmess" or server.v2ray_protocol == "vless") and server.packet_encoding or nil + concurrency = tonumber(server.concurrency) } or nil } or nil } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 31937fb4588..757f4623e51 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -27,9 +27,7 @@ local switch = ucic:get_first(name, 'server_subscribe', 'switch', '1') local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {}) local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期时间/剩余流量') local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') -local packet_encoding = luci.model.ipkg.installed("sagernet-core") and ucic:get_first(name, 'global', 'default_packet_encoding', 'xudp') or nil local v2_ss = luci.sys.exec('type -t -p ss-redir sslocal') ~= "" and "ss" or "v2ray" -local v2_ssr = luci.sys.exec('type -t -p ssr-redir') ~= "" and "ssr" or "v2ray" local v2_tj = luci.sys.exec('type -t -p trojan') ~= "" and "trojan" or "v2ray" local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({...}, " ")) @@ -149,8 +147,7 @@ local function processData(szType, content) if szType == 'ssr' then local dat = split(content, "/%?") local hostInfo = split(dat[1], ':') - result.type = v2_ssr - result.v2ray_protocol = (v2_ssr == "v2ray") and "shadowsocksr" or nil + result.type = 'ssr' result.server = hostInfo[1] result.server_port = hostInfo[2] result.protocol = hostInfo[3] @@ -178,7 +175,6 @@ local function processData(szType, content) result.transport = info.net result.vmess_id = info.id result.alias = info.ps - result.packet_encoding = packet_encoding -- result.mux = 1 -- result.concurrency = 8 if info.net == 'ws' then @@ -361,7 +357,6 @@ local function processData(szType, content) result.vmess_id = url.user result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" - result.packet_encoding = packet_encoding result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" result.tls_host = params.sni result.tls_flow = (params.security == "tls") and params.flow or nil From 7af00349ebee5658839f1b85c105a373980c1668 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 22 Mar 2023 22:35:18 +0800 Subject: [PATCH 313/972] luci-app-ssr-plus: client-config: fix typo error Fixes: #1151 Signed-off-by: Tianling Shen --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c24a347ad2c..d36f470eed2 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -467,13 +467,13 @@ if is_finded("v2ray") then o = s:option(Value, "ws_ed", translate("Max Early Data")) o:depends("ws_ed_enable", true) o.datatype = "uinteger" - o.value("2048") + o:value("2048") o.rmempty = true -- WS前置数据标头 o = s:option(Value, "ws_ed_header", translate("Early Data Header Name")) o:depends("ws_ed_enable", true) - o.value("Sec-WebSocket-Protocol") + o:value("Sec-WebSocket-Protocol") o.rmempty = true end From 2c9d29de30b28911054879d440f36ecb682c5d91 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 25 Mar 2023 18:20:40 +0800 Subject: [PATCH 314/972] luci-app-ssr-plus: support vless reality share link Signed-off-by: Tianling Shen --- luci-app-ssr-plus/Makefile | 4 ++-- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 9 ++++++++- .../root/usr/share/shadowsocksr/subscribe.lua | 6 +++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 9225e547ad8..0e1d7119594 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=186 -PKG_RELEASE:=8 +PKG_VERSION:=187 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index f7544df2e8f..f51d21d4586 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -308,12 +308,19 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : params.get("type") || "tcp"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; - if ([ "tls" ].includes(params.get("security"))) { + if ([ "tls", "reality" ].includes(params.get("security"))) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].value = params.get("flow") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; + + if (params.get("security") === "reality") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_publickey')[0].value = params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_shortid')[0].value = params.get("sid") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_spiderx')[0].value = params.get("spx") ? decodeURIComponent(params.get("spx")) : ""; + } } switch (params.get("type")) { case "ws": diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 757f4623e51..1de63b259c6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -359,8 +359,12 @@ local function processData(szType, content) result.transport = params.type or "tcp" result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" result.tls_host = params.sni - result.tls_flow = (params.security == "tls") and params.flow or nil + result.tls_flow = (params.security == "tls" or params.security == "reality") and params.flow or nil result.fingerprint = params.fp + result.reality = (params.security == "reality") and "1" or "0" + result.reality_publickey = params.pbk and UrlDecode(params.pbk) or nil + result.reality_shortid = params.sid + result.reality_spiderx = params.spx and UrlDecode(params.spx) or nil if result.transport == "ws" then result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.ws_path = params.path and UrlDecode(params.path) or "/" From bb468a95498c0db75f21aa6d550044d08a0cdddd Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Wed, 12 Apr 2023 00:09:35 +0800 Subject: [PATCH 315/972] luci-app-ssr-plus: set default wan dns for chinadns-ng --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 0e1d7119594..7271f9eb127 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=187 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b8177272cf4..4afdb807e51 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -976,6 +976,7 @@ reset() { set shadowsocksr.@global[0].dports='2' set shadowsocksr.@global[0].pdnsd_enable='1' set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53' + set shadowsocksr.@global[0].chinadns_forward='114.114.114.114:53' set shadowsocksr.@global[0].monitor_enable='1' set shadowsocksr.@global[0].enable_switch='1' set shadowsocksr.@global[0].switch_time='667' From 32160a28ab3153a5d84588b4d4068c53adb2d331 Mon Sep 17 00:00:00 2001 From: Burgess Date: Sat, 15 Apr 2023 19:15:19 +0800 Subject: [PATCH 316/972] Fix Shadowsocks/R bind ipv6 --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4afdb807e51..b836c109c71 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -226,8 +226,7 @@ gen_service_file() { if [ $1 == "ssr" ]; then cat <<-EOF >$3 { - "server": "0.0.0.0", - "server_ipv6": "::", + "server": ["[::0]", "0.0.0.0"], "server_port": $(uci_get_by_name $2 server_port), "mode": "tcp_and_udp", "password": "$(uci_get_by_name $2 password)", @@ -243,8 +242,7 @@ gen_service_file() { else cat <<-EOF >$3 { - "server": "0.0.0.0", - "server_ipv6": "::", + "server": ["[::0]", "0.0.0.0"], "server_port": $(uci_get_by_name $2 server_port), "mode": "tcp_and_udp", "password": "$(uci_get_by_name $2 password)", From 478cb48930b94bacf8eabce22fa51a11ebc52020 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 16 Apr 2023 00:49:06 +0800 Subject: [PATCH 317/972] gn: bump to latest git HEAD Since it is already possible to use a string subscript to get the value of a scope member (i.e. foo["bar"] being the same as foo.bar, but [] allowing expression evaluation), this ensures that `defined(foo["bar"])` works as `defined(foo.bar)` as well. --- gn/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index e7a410a0641..14c8f8c3e31 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2023-02-17 -PKG_SOURCE_VERSION:=b25a2f8c2d33f02082f0f258350f5e22c0973108 -PKG_MIRROR_HASH:=28dcd0c0fe6fe8c459096acd0ff9ff4a982284ca680ff6edc1222dc88dac0b23 +PKG_SOURCE_DATE:=2023-04-05 +PKG_SOURCE_VERSION:=28b7b6c507eb808567e3aea446cd259f7691fddc +PKG_MIRROR_HASH:=5b112442eabea4b906cc409237fac13b8efb4f5acb25989b1883d5ce96deebd2 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 3e39cb36b49df45814fbb7a04fcc9e770891bdb5 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 16 Apr 2023 00:50:11 +0800 Subject: [PATCH 318/972] gn: bump to latest git HEAD Support defined(foo["bar"]) syntax. Since it is already possible to use a string subscript to get the value of a scope member (i.e. foo["bar"] being the same as foo.bar, but [] allowing expression evaluation), this ensures that `defined(foo["bar"])` works as `defined(foo.bar)` as well. --- gn/src/out/last_commit_position.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 54bc07dab69..9c21421e880 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2081 -#define LAST_COMMIT_POSITION "2081 (b25a2f8c2d33)" +#define LAST_COMMIT_POSITION_NUM 2085 +#define LAST_COMMIT_POSITION "2085 (28b7b6c507eb)" #endif // OUT_LAST_COMMIT_POSITION_H_ From a87cb2300c69674355cad7fbe5ae382d26f13770 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 16 Apr 2023 00:54:05 +0800 Subject: [PATCH 319/972] naiveproxy: update to 112.0.5615.49-1 --- naiveproxy/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 5f2f7fb1a66..fda79e7caf1 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=111.0.5563.64-1 +PKG_VERSION:=112.0.5615.49-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a5411d28943be60a273c58059e3ee81cb8e4623d8286f8e57bf5a34e4fa7e7ac +PKG_HASH:=a19110347a5dedd800f3978c7204e9a5e1b1a26935ead61086547807380610da PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -58,22 +58,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=16-init-17653-g39da55e8-2 +CLANG_VER:=17-init-2387-g68e81d7e-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=b4afdf625aa4b72c5d188ed28a13dd352a881a2a4149542f0c903698d0498017 + HASH:=6335f2e1f35bb235b8fe610559bbf97e630c4e50662a31b6e70226c2f4b0c290 endef -PGO_VER:=5563-1677886924-aa8d450a18b4f7f1cd41619f60bc5da6beb3c1d0 +PGO_VER:=5615-1679995307-0baae343d55c36a01b20eb4c600fca3ba7e0825e PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=eb16e7be414614c215ba90538f70f431cf444b9985865ad20d8743b707a235a6 + HASH:=06a181474ca4b34f53dec1d2993e97895665cad85e5c4456ae94ed0c1d10e3ec endef define Build/Prepare From 4bd2e672bb4f7156b9c5bc4ef53dd4c533a7aff4 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 19 Apr 2023 00:13:50 +0800 Subject: [PATCH 320/972] xray-core: update to 1.8.1 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index c936b1c98a2..dd61386a20b 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.0 +PKG_VERSION:=1.8.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=35339ee4c2ebd46cebd95ad7791d38a97db3a6afd97277a33e4ee7be35c9a3b2 +PKG_HASH:=477ad92b80700b4742e59ad7848ca4726201841a57339e4c1bf9012e395622e2 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 671e33241a23f1f77d044d9272a328b9562bb0dc Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 19 Apr 2023 00:14:38 +0800 Subject: [PATCH 321/972] xray-plugin: update to 1.8.1 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 6e3bf24115d..047521510dd 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.0 +PKG_VERSION:=1.8.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a21e598a41e760b4286cc621311a03fbe60b05268af85a019931e90fccf6df07 +PKG_HASH:=b86b265bd55984c74b80c8b044dfa0cdded448cc92bc8a923b677ca8d54eaa86 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From c546fcbe3df0687b3f5b02f627c5b5f68918504e Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 19 Apr 2023 00:16:22 +0800 Subject: [PATCH 322/972] chinadns-ng: update to 2023.04.17 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 857f5266d4b..710338174d2 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.03.10 +PKG_VERSION:=2023.04.17 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=7de9f0436c16bb7f2a9d2f8fb7b4fbcb8b291f57925a1f7c4c18c98daccf70b1 +PKG_HASH:=e0e841dfd5c42d9d191c3ff9dbb11759360e1ee922ec2e65f43e0d4d41be6a8f PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From bb1b3d92d0c6e345553a7230616915deec49ea32 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Wed, 19 Apr 2023 15:03:06 +0800 Subject: [PATCH 323/972] Revert "Fix Shadowsocks/R bind ipv6" This reverts commit 32160a28ab3153a5d84588b4d4068c53adb2d331. --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b836c109c71..4afdb807e51 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -226,7 +226,8 @@ gen_service_file() { if [ $1 == "ssr" ]; then cat <<-EOF >$3 { - "server": ["[::0]", "0.0.0.0"], + "server": "0.0.0.0", + "server_ipv6": "::", "server_port": $(uci_get_by_name $2 server_port), "mode": "tcp_and_udp", "password": "$(uci_get_by_name $2 password)", @@ -242,7 +243,8 @@ gen_service_file() { else cat <<-EOF >$3 { - "server": ["[::0]", "0.0.0.0"], + "server": "0.0.0.0", + "server_ipv6": "::", "server_port": $(uci_get_by_name $2 server_port), "mode": "tcp_and_udp", "password": "$(uci_get_by_name $2 password)", From a9bfd33ea871379ba3f1169ee52bbbfe1370d116 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 20 Apr 2023 21:15:00 +0800 Subject: [PATCH 324/972] chinadns-ng: update to 2023.04.20 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 710338174d2..a7887c54569 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.04.17 +PKG_VERSION:=2023.04.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=e0e841dfd5c42d9d191c3ff9dbb11759360e1ee922ec2e65f43e0d4d41be6a8f +PKG_HASH:=e1f5197ecd96ebab4440fe069e0a06935df7ea07ac1ad0bab3f88bffe0055294 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From ccc524b629215dec687c7f6c4d37734b5ce4b13a Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sun, 23 Apr 2023 13:34:15 +0800 Subject: [PATCH 325/972] ssr-rules: enable HTTP Over QUIC in udp mode --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 2 -- 1 file changed, 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 4a85173fa0d..547d910ae73 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -237,14 +237,12 @@ tp_rule() { router) $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set ss_spec_wan_ac dst -j RETURN $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set china dst -j RETURN - $ipt -A SS_SPEC_TPROXY -p udp --dport 443 -j DROP $ipt -A SS_SPEC_TPROXY -p udp --dport 80 -j DROP $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set gmlan src -m set ! --match-set china dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 $ipt -A SS_SPEC_TPROXY -p udp $PROXY_PORTS -m set ! --match-set ss_spec_wan_ac dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 ;; gfw) $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set china dst -j RETURN - $ipt -A SS_SPEC_TPROXY -p udp --dport 443 -j DROP $ipt -A SS_SPEC_TPROXY -p udp --dport 80 -j DROP $ipt -A SS_SPEC_TPROXY -p udp $PROXY_PORTS -m set --match-set gfwlist dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set gmlan src -m set ! --match-set china dst -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 From b1cf4ee594d442aa02a9e579be037c19fce6c138 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 4 May 2023 20:25:35 +0800 Subject: [PATCH 326/972] naiveproxy: update to 113.0.5672.62-1 --- naiveproxy/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index fda79e7caf1..4b167d5a123 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=112.0.5615.49-1 +PKG_VERSION:=113.0.5672.62-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a19110347a5dedd800f3978c7204e9a5e1b1a26935ead61086547807380610da +PKG_HASH:=f8e86f5e9fc8985042d4fa8e0122b513f187cc878bfbabf133e520fa8d5f3410 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -58,22 +58,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=17-init-2387-g68e81d7e-1 +CLANG_VER:=17-init-4759-g547e3456-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=6335f2e1f35bb235b8fe610559bbf97e630c4e50662a31b6e70226c2f4b0c290 + HASH:=1949427e0030523dc86bdf4b63dac88228cfe05c57318be2d0b0b290297925f6 endef -PGO_VER:=5615-1679995307-0baae343d55c36a01b20eb4c600fca3ba7e0825e +PGO_VER:=5672-1682419203-4df9c2f8b97b0e23303fa2b15279906232abc306 PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=06a181474ca4b34f53dec1d2993e97895665cad85e5c4456ae94ed0c1d10e3ec + HASH:=5fae812f617d882222cd5aa5620fb355583391127f608759b030c231b71d4c90 endef define Build/Prepare From 1d8db5395c2ab0d8f470d9b59ce56eff790a9b63 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 8 May 2023 12:44:27 +0800 Subject: [PATCH 327/972] naiveproxy: Update to 113.0.5672.62-2 --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 4b167d5a123..4a2e9b003b2 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=113.0.5672.62-1 +PKG_VERSION:=113.0.5672.62-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f8e86f5e9fc8985042d4fa8e0122b513f187cc878bfbabf133e520fa8d5f3410 +PKG_HASH:=75db685789d550094343a76fdcbb6ea2bfcb708c3330af621ca532842251fb26 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From b9725ecf214f7140d45c3c4fa83625e5692ae501 Mon Sep 17 00:00:00 2001 From: binge8 <53508344+binge8@users.noreply.github.com> Date: Mon, 8 May 2023 14:39:00 +0800 Subject: [PATCH 328/972] ipt2socks: refresh `sha256sum` (#1191) --- ipt2socks/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ipt2socks/Makefile b/ipt2socks/Makefile index 39943a25210..c900132339b 100644 --- a/ipt2socks/Makefile +++ b/ipt2socks/Makefile @@ -10,7 +10,7 @@ PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/ipt2socks/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=73a2498dc95934c225d358707e7f7d060b5ce81aa45260ada09cbd15207d27d1 +PKG_HASH:=5279eb1cb7555cf9292423cc9f672dc43e6e214b3411a6df26a6a1cfa59d88b7 PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 From b341811146270f64c4e1fa21d5dd658f37eee57c Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 27 May 2023 23:33:56 +0800 Subject: [PATCH 329/972] chinadns-ng: update to 2023.05.08 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index a7887c54569..3fc90422aed 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.04.20 +PKG_VERSION:=2023.05.08 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=e1f5197ecd96ebab4440fe069e0a06935df7ea07ac1ad0bab3f88bffe0055294 +PKG_HASH:=a956b82b5445fad5d062e42bd3010bb700f9460011ec720fa9b9e3fa3c2e6e42 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 631602223597049f040b141b5e7bc816f0c3e56f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 27 May 2023 23:35:41 +0800 Subject: [PATCH 330/972] v2ray-core: update to 5.5.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 80185819573..ae621f9759d 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.4.1 +PKG_VERSION:=5.5.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e208bca255c4689a30104e965039d73fa138a7a6e902f820cff94b5b772b042b +PKG_HASH:=b9110ff10d87b245efd42b5a93beb4a3e5138fcfe92d09cadfb6a72cc4e1c91c PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 8f06210adef1f960d5bf5f154790cf359a8c9ccc Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 27 May 2023 23:36:44 +0800 Subject: [PATCH 331/972] v2ray-plugin: update to 5.5.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 6038f64a55e..3dcad0b8978 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.4.0 +PKG_VERSION:=5.5.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d0034df2a3f2c00405673d77dd88127933532064115a2e096131143a83fbb949 +PKG_HASH:=b1d7560d07e16123460a031f3e19cd8af7192a199f6428c1efc690d72ef8d2f5 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From a6dc9efd1093983971a20dd8588c3b49ec857fcc Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 2 Jun 2023 01:07:58 +0800 Subject: [PATCH 332/972] v2ray-core: update to 5.6.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index ae621f9759d..65ae13e60b2 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.5.0 +PKG_VERSION:=5.6.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b9110ff10d87b245efd42b5a93beb4a3e5138fcfe92d09cadfb6a72cc4e1c91c +PKG_HASH:=6a4a6112c0eca66d6e78b97840baadbc5d44ce4307f7506ccf59a39b45573592 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 70a1deff6000342d5b88bc8ff733a47d5351b8c5 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 2 Jun 2023 01:08:44 +0800 Subject: [PATCH 333/972] v2ray-core: update to 5.7.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 65ae13e60b2..60e91cb1420 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.6.0 +PKG_VERSION:=5.7.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6a4a6112c0eca66d6e78b97840baadbc5d44ce4307f7506ccf59a39b45573592 +PKG_HASH:=599fcd264537e39178b6008a11af68816dfd1609e19a9cf8adc8b2a4240ee370 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 2f1b4a68bb25c3567fc8c10d9d0f24eab1208c4a Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 2 Jun 2023 01:10:30 +0800 Subject: [PATCH 334/972] v2ray-plugin: update to 5.7.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 3dcad0b8978..7f351cf7dae 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.5.0 +PKG_VERSION:=5.7.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b1d7560d07e16123460a031f3e19cd8af7192a199f6428c1efc690d72ef8d2f5 +PKG_HASH:=ec0096e36cfe01a946197b44ae51ea76a3dc6a76f846a99f3b985be59ae167fb PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From be09b2619f07fd2df5f08a8dd3f68d3914a07d78 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 2 Jun 2023 01:11:26 +0800 Subject: [PATCH 335/972] chinadns-ng: update to 2023.06.01 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 3fc90422aed..c072699be52 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.05.08 +PKG_VERSION:=2023.06.01 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=a956b82b5445fad5d062e42bd3010bb700f9460011ec720fa9b9e3fa3c2e6e42 +PKG_HASH:=7c33e8a60b7618b33fce0960b94b46567766a051b307cea6b123da4176a52eab PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 5c18d091494446ae2afd5fbd78bc2b4896acf484 Mon Sep 17 00:00:00 2001 From: Kane Date: Tue, 13 Jun 2023 02:57:13 +0800 Subject: [PATCH 336/972] luci-app-ssr-plus: add other common dns in mainland China (#1201) --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 7c6cd00a88c..52b11d257bd 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -120,6 +120,10 @@ if is_finded("chinadns-ng") then o:value("wan_114", translate("Use DNS from WAN and 114DNS")) o:value("114.114.114.114:53", translate("Nanjing Xinfeng 114DNS (114.114.114.114)")) o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) + o:value("223.5.5.5:53", translate("AliYun Public DNS (223.5.5.5)")) + o:value("180.76.76.76:53", translate("Baidu Public DNS (180.76.76.76)")) + o:value("101.226.4.6:53", translate("360 Security DNS (China Telecom) (101.226.4.6)")) + o:value("123.125.81.6:53", translate("360 Security DNS (China Unicom) (123.125.81.6)")) o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) o:depends({pdnsd_enable = "1", run_mode = "router"}) o:depends({pdnsd_enable = "2", run_mode = "router"}) From de6727d0d6523a058a73ca085ceda5149649da60 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 13 Jun 2023 02:58:37 +0800 Subject: [PATCH 337/972] hysteria: update to 1.3.5 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index d5617212964..d28a9439c15 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.4 +PKG_VERSION:=1.3.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=13862594252dcea83d791b0cf8234874154ba623f22d94cef685561a710717c1 +PKG_HASH:=9b3b5fca069d215a1f4c9cf3aa0a7b4e9b1fe21216fddb483a20ab42eb4a4dd7 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE From f5c90636105e31d6bf7c00d0733d784139199a72 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 13 Jun 2023 09:30:37 +0800 Subject: [PATCH 338/972] tuic-1.0 new config --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d36f470eed2..8f7689ceb7b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -225,6 +225,7 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) o = s:option(Value, "username", translate("Username")) o.rmempty = true o:depends("type", "naiveproxy") +o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) @@ -349,6 +350,12 @@ o.rmempty = true o.default = "0" -- [[ TUIC ]] +-- TuicNameId +o = s:option(Value, "tuic_uuid", translate("TUIC NAME UUID (UUID)")) +o.rmempty = true +o.default = uuid +o:depends("type", "tuic") + o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") o:value("native", translate("native")) From e0abdf265ac04372f7b40ef991e692e8c99d6669 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 13 Jun 2023 15:40:53 +0800 Subject: [PATCH 339/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 8f7689ceb7b..a360553bd84 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -226,6 +226,11 @@ o = s:option(Value, "username", translate("Username")) o.rmempty = true o:depends("type", "naiveproxy") o:depends("type", "tuic") +if s:cfgvalue("type") == "tuic" then + o.default = uuid +else + o.default = nil +end o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) From b79ef106ac08492c89610fbdf1b894b8b2a23398 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 13 Jun 2023 20:30:18 +0800 Subject: [PATCH 340/972] Update gen_config.lua --- .../root/usr/share/shadowsocksr/gen_config.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 579043cdacb..c44907ac7d2 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -309,7 +309,9 @@ local tuic = { relay = { server = server.server, port = tonumber(server.server_port), - token = server.password, + server = server.server .. ":" .. port + uuid = server.username, + password = server.password, certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, @@ -318,6 +320,8 @@ local tuic = { alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), reduce_rtt = (server.reduce_rtt == "1"), + send_window = tonumber(server.send_window), + receive_window = tonumber(server.receive_window), max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) }, ["local"] = { From 3ee1b56a8929f614f5572c35bcd3961bb9c9a8d1 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 11:03:39 +0800 Subject: [PATCH 341/972] Update gen_config.lua --- .../root/usr/share/shadowsocksr/gen_config.lua | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index c44907ac7d2..94ca784abb3 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -306,13 +306,10 @@ local hysteria = { lazy_start = (server.lazy_start == "1") and true or false } local tuic = { - relay = { - server = server.server, - port = tonumber(server.server_port), - server = server.server .. ":" .. port + relay:{ + server = server.server .. ":" .. server.server_port, uuid = server.username, password = server.password, - certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, congestion_controller = server.congestion_controller, @@ -324,9 +321,8 @@ local tuic = { receive_window = tonumber(server.receive_window), max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) }, - ["local"] = { - port = tonumber(local_port), - ip = "0.0.0.0" + ["local"]:{ + port = "0.0.0.0:" .. tonumber(local_port), } } local config = {} From 5e94bf727ecdb74374a86768e4c459e2a885a308 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 11:14:37 +0800 Subject: [PATCH 342/972] Update client-config.lua --- .../model/cbi/shadowsocksr/client-config.lua | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index a360553bd84..94c8cf930b9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -225,12 +225,7 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) o = s:option(Value, "username", translate("Username")) o.rmempty = true o:depends("type", "naiveproxy") -o:depends("type", "tuic") -if s:cfgvalue("type") == "tuic" then - o.default = uuid -else - o.default = nil -end +--o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) @@ -356,7 +351,7 @@ o.default = "0" -- [[ TUIC ]] -- TuicNameId -o = s:option(Value, "tuic_uuid", translate("TUIC NAME UUID (UUID)")) +o = s:option(Value, "tuic_uuid", translate("TUIC user UUID")) o.rmempty = true o.default = uuid o:depends("type", "tuic") @@ -378,8 +373,8 @@ o.rmempty = true o = s:option(Value, "heartbeat_interval", translate("Heartbeat interval")) o:depends("type", "tuic") -o.datatype = "uinteger" -o.default = "10000" +--o.datatype = "uinteger" +o.default = "3s" o.rmempty = true o = s:option(Flag, "disable_sni", translate("Disable SNI")) @@ -390,6 +385,16 @@ o.rmempty = true o = s:option(Flag, "reduce_rtt", translate("Enable 0-RTT QUIC handshake")) o:depends("type", "tuic") o.default = 0 +o.rmempty = false + +o = s:option(Value, "send_window", translate("TUIC send window")) +o.datatype = "uinteger" +o:depends("type", "tuic") +o.rmempty = true + +o = s:option(Value, "receive_window", translate("TUIC receive window")) +o.datatype = "uinteger" +o:depends("type", "tuic") o.rmempty = true o = s:option(Value, "max_udp_relay_packet_size", translate("Max UDP relay packet size")) From 2b60e54c2a9fbbad70df19ff60019684d57cf145 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 11:15:33 +0800 Subject: [PATCH 343/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 94ca784abb3..cb6441410c0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -308,7 +308,7 @@ local hysteria = { local tuic = { relay:{ server = server.server .. ":" .. server.server_port, - uuid = server.username, + uuid = server.tuic_uuid, password = server.password, certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, From 70ff0615b0e1354c90b03c05a906c26a73d0d9b0 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:08:26 +0800 Subject: [PATCH 344/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 94c8cf930b9..6f36916b77d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -390,11 +390,13 @@ o.rmempty = false o = s:option(Value, "send_window", translate("TUIC send window")) o.datatype = "uinteger" o:depends("type", "tuic") +o.default = 16777216 o.rmempty = true o = s:option(Value, "receive_window", translate("TUIC receive window")) o.datatype = "uinteger" o:depends("type", "tuic") +o.default = 8388608 o.rmempty = true o = s:option(Value, "max_udp_relay_packet_size", translate("Max UDP relay packet size")) From 1830772ba4ec162edcf6a45e137e81d244349a30 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:17:49 +0800 Subject: [PATCH 345/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index cb6441410c0..0a2d51deb06 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -313,7 +313,7 @@ local tuic = { certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, congestion_controller = server.congestion_controller, - heartbeat_interval = tonumber(server.heartbeat_interval), + heartbeat_interval = server.heartbeat_interval, alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), reduce_rtt = (server.reduce_rtt == "1"), From 744572f7bdf4033f139e2a732a0074d735a7cf42 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:26:26 +0800 Subject: [PATCH 346/972] Update gen_config.lua --- .../root/usr/share/shadowsocksr/gen_config.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 0a2d51deb06..3004502e106 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -318,11 +318,10 @@ local tuic = { disable_sni = (server.disable_sni == "1"), reduce_rtt = (server.reduce_rtt == "1"), send_window = tonumber(server.send_window), - receive_window = tonumber(server.receive_window), - max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) + receive_window = tonumber(server.receive_window) }, - ["local"]:{ - port = "0.0.0.0:" .. tonumber(local_port), + local:{ + server = "0.0.0.0:" .. tonumber(local_port) } } local config = {} From b964787c15d56644405993203dd2c298d87a6ae4 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:31:11 +0800 Subject: [PATCH 347/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 3004502e106..03c6530ce62 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -306,7 +306,7 @@ local hysteria = { lazy_start = (server.lazy_start == "1") and true or false } local tuic = { - relay:{ + relay = { server = server.server .. ":" .. server.server_port, uuid = server.tuic_uuid, password = server.password, @@ -320,7 +320,7 @@ local tuic = { send_window = tonumber(server.send_window), receive_window = tonumber(server.receive_window) }, - local:{ + ["local"] = { server = "0.0.0.0:" .. tonumber(local_port) } } From 67f78ab4885993ee020263d71bd688de797f4011 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:41:53 +0800 Subject: [PATCH 348/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 03c6530ce62..39dfd4d0eb6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -312,11 +312,11 @@ local tuic = { password = server.password, certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, - congestion_controller = server.congestion_controller, + congestion_control = server.congestion_control, heartbeat_interval = server.heartbeat_interval, alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), - reduce_rtt = (server.reduce_rtt == "1"), + zero_rtt = (server.zero_rtt == "1"), send_window = tonumber(server.send_window), receive_window = tonumber(server.receive_window) }, From cd18fee8d9e76771aa504e02c4683e2920ebd1d0 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:44:43 +0800 Subject: [PATCH 349/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 39dfd4d0eb6..e6276d0c986 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -313,7 +313,7 @@ local tuic = { certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, congestion_control = server.congestion_control, - heartbeat_interval = server.heartbeat_interval, + heartbeat = server.heartbeat_interval, alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), zero_rtt = (server.zero_rtt == "1"), From fcb90925268ab747265fdc21ee53f0dcc663e0f4 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 12:46:35 +0800 Subject: [PATCH 350/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6f36916b77d..1aa82e62db2 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -363,7 +363,7 @@ o:value("quic", translate("QUIC")) o.default = "native" o.rmempty = true -o = s:option(ListValue, "congestion_controller", translate("Congestion control algorithm")) +o = s:option(ListValue, "congestion_control", translate("Congestion control algorithm")) o:depends("type", "tuic") o:value("bbr", translate("BBR")) o:value("cubic", translate("CUBIC")) @@ -371,7 +371,7 @@ o:value("new_reno", translate("New Reno")) o.default = "cubic" o.rmempty = true -o = s:option(Value, "heartbeat_interval", translate("Heartbeat interval")) +o = s:option(Value, "heartbeat", translate("Heartbeat interval")) o:depends("type", "tuic") --o.datatype = "uinteger" o.default = "3s" @@ -382,7 +382,7 @@ o:depends("type", "tuic") o.default = 0 o.rmempty = true -o = s:option(Flag, "reduce_rtt", translate("Enable 0-RTT QUIC handshake")) +o = s:option(Flag, "zero_rtt", translate("Enable 0-RTT QUIC handshake")) o:depends("type", "tuic") o.default = 0 o.rmempty = false @@ -399,12 +399,6 @@ o:depends("type", "tuic") o.default = 8388608 o.rmempty = true -o = s:option(Value, "max_udp_relay_packet_size", translate("Max UDP relay packet size")) -o:depends("type", "tuic") -o.datatype = "uinteger" -o.default = "1500" -o.rmempty = true - -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true From 942739c8dac357e05cf6c230ec03feb41ac46a5f Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 16:24:10 +0800 Subject: [PATCH 351/972] add tuic params --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 9eceb71d7fd..9dcf21a4069 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -852,3 +852,28 @@ msgstr "应用" msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" + +msgid "TUIC user UUID" +msgstr "TUIC用户uuid" + +msgid "UDP relay mode" +msgstr "tuic UDP中继模式" + +msgid "Congestion control algorithm" +msgstr "拥塞控制算法" + +msgid "Heartbeat interval" +msgstr "连接保活间隔" + +msgid "Disable SNI" +msgstr "关闭SNI服务器名称指示" + +msgid "Enable 0-RTT QUIC handshake" +msgstr "客户端启用 0-RTT QUIC 连接握手" + +msgid "TUIC send window" +msgstr "发送窗口(无需确认即可发送的最大字节数)" + +msgid "TUIC receive window" +msgstr "接收窗口(无需确认即可接收的最大字节数)" + From 96de6180876af45895338771775860924be9c14d Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 18:10:49 +0800 Subject: [PATCH 352/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 1aa82e62db2..6bc71cf8505 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -382,7 +382,7 @@ o:depends("type", "tuic") o.default = 0 o.rmempty = true -o = s:option(Flag, "zero_rtt", translate("Enable 0-RTT QUIC handshake")) +o = s:option(Flag, "zero_rtt_handshake", translate("Enable 0-RTT QUIC handshake")) o:depends("type", "tuic") o.default = 0 o.rmempty = false From f411841f551c6b6d07199cbbf8deb9c05c95d705 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Wed, 14 Jun 2023 18:11:48 +0800 Subject: [PATCH 353/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e6276d0c986..a9bf4ae64b7 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -316,7 +316,7 @@ local tuic = { heartbeat = server.heartbeat_interval, alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), - zero_rtt = (server.zero_rtt == "1"), + zero_rtt_handshake = (server.zero_rtt_handshake == "1"), send_window = tonumber(server.send_window), receive_window = tonumber(server.receive_window) }, From 76a07fcf5b2a3688f881094c18c0298f09ac69c6 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 18 Jun 2023 03:36:39 +0800 Subject: [PATCH 354/972] chinadns-ng: revert to 2023.04.20 --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index c072699be52..a7887c54569 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.06.01 +PKG_VERSION:=2023.04.20 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=7c33e8a60b7618b33fce0960b94b46567766a051b307cea6b123da4176a52eab +PKG_HASH:=e1f5197ecd96ebab4440fe069e0a06935df7ea07ac1ad0bab3f88bffe0055294 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From f3c4b163f3f336b54918802b64d50d737f763039 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 18 Jun 2023 03:37:54 +0800 Subject: [PATCH 355/972] Revert "luci-app-ssr-plus: set default wan dns for chinadns-ng" This reverts commit bb468a95498c0db75f21aa6d550044d08a0cdddd. --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 7271f9eb127..0e1d7119594 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=187 -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4afdb807e51..b8177272cf4 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -976,7 +976,6 @@ reset() { set shadowsocksr.@global[0].dports='2' set shadowsocksr.@global[0].pdnsd_enable='1' set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53' - set shadowsocksr.@global[0].chinadns_forward='114.114.114.114:53' set shadowsocksr.@global[0].monitor_enable='1' set shadowsocksr.@global[0].enable_switch='1' set shadowsocksr.@global[0].switch_time='667' From 80c2f9b24e1b66607eaa2ee1a3352f9ec7a3fee1 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 19 Jun 2023 23:43:56 +0800 Subject: [PATCH 356/972] xray-plugin: update to 1.8.3 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 047521510dd..dd752c32cb1 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.1 +PKG_VERSION:=1.8.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b86b265bd55984c74b80c8b044dfa0cdded448cc92bc8a923b677ca8d54eaa86 +PKG_HASH:=78c9c7f3e049d555b68914b545224cb9fd8253b75fe797a62a54b6e9af0bf870 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From ec31a7dbb19b6f1a9b197489fec986b07b770c76 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 19 Jun 2023 23:44:52 +0800 Subject: [PATCH 357/972] xray-core: update to 1.8.3 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index dd61386a20b..d60e08d5aeb 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.1 +PKG_VERSION:=1.8.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=477ad92b80700b4742e59ad7848ca4726201841a57339e4c1bf9012e395622e2 +PKG_HASH:=bdfa65c15cd25f931745d9c70c753503db5d119ff11960ca7b3a2e19c4b0a8d1 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From d307581048fd8b6a41967772fc99a3be1312eae8 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 12:42:02 +0800 Subject: [PATCH 358/972] add other parameters for tuic-client Add all parameters that can be used in tuic-client. It likes gl_interval,gl_lifetime, timeout, etc. --- .../model/cbi/shadowsocksr/client-config.lua | 48 ++++++++++++++----- 1 file changed, 37 insertions(+), 11 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 6bc71cf8505..4e2b4d37ced 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -351,11 +351,18 @@ o.default = "0" -- [[ TUIC ]] -- TuicNameId -o = s:option(Value, "tuic_uuid", translate("TUIC user UUID")) +o = s:option(Value, "tuic_uuid", translate("TUIC User UUID")) o.rmempty = true o.default = uuid o:depends("type", "tuic") +-- Tuic Password +o = s:option(Value, "tuic_passwd", translate("TUIC User Password")) +o.rmempty = true +o.default = "" +o:depends("type", "tuic") + + o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") o:value("native", translate("native")) @@ -371,32 +378,51 @@ o:value("new_reno", translate("New Reno")) o.default = "cubic" o.rmempty = true -o = s:option(Value, "heartbeat", translate("Heartbeat interval")) +o = s:option(Value, "heartbeat", translate("Heartbeat interval(second)")) o:depends("type", "tuic") ---o.datatype = "uinteger" -o.default = "3s" +o.datatype = "uinteger" +o.default = "3" o.rmempty = true -o = s:option(Flag, "disable_sni", translate("Disable SNI")) +o = s:option(Value, "timeout", translate("timeout for establishing a connection to server(second)")) o:depends("type", "tuic") -o.default = 0 +o.datatype = "uinteger" +o.default = "8" o.rmempty = true -o = s:option(Flag, "zero_rtt_handshake", translate("Enable 0-RTT QUIC handshake")) +o = s:option(Value, "gc_interval", translate("garbage collection interval(second)")) o:depends("type", "tuic") -o.default = 0 -o.rmempty = false +o.datatype = "uinteger" +o.default = "3" +o.rmempty = true + +o = s:option(Value, "gc_lifetime", translate("garbage collection lifetime(second)")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "15" +o.rmempty = true + o = s:option(Value, "send_window", translate("TUIC send window")) o.datatype = "uinteger" o:depends("type", "tuic") -o.default = 16777216 +o.default = 20971520 o.rmempty = true o = s:option(Value, "receive_window", translate("TUIC receive window")) o.datatype = "uinteger" o:depends("type", "tuic") -o.default = 8388608 +o.default = 10485760 +o.rmempty = true + +o = s:option(Flag, "disable_sni", translate("Disable SNI")) +o:depends("type", "tuic") +o.default = 0 +o.rmempty = true + +o = s:option(Flag, "zero_rtt_handshake", translate("Enable 0-RTT QUIC handshake")) +o:depends("type", "tuic") +o.default = 0 o.rmempty = true -- VmessId From 959a90c9365aa5552bc03ea5cc428253142465cb Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 12:49:40 +0800 Subject: [PATCH 359/972] Add tuic-client new parameters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. add tuic-client new parameters in gen_config fuction 2. create the new values for tuic-client‘s parameter, and no longer reuse the old valules in s:option(Value). --- .../usr/share/shadowsocksr/gen_config.lua | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index a9bf4ae64b7..8b48a1f51a2 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -306,23 +306,27 @@ local hysteria = { lazy_start = (server.lazy_start == "1") and true or false } local tuic = { - relay = { - server = server.server .. ":" .. server.server_port, - uuid = server.tuic_uuid, - password = server.password, - certificates = server.certificate and { server.certpath } or nil, - udp_relay_mode = server.udp_relay_mode, - congestion_control = server.congestion_control, - heartbeat = server.heartbeat_interval, - alpn = server.tls_alpn, - disable_sni = (server.disable_sni == "1"), - zero_rtt_handshake = (server.zero_rtt_handshake == "1"), - send_window = tonumber(server.send_window), - receive_window = tonumber(server.receive_window) - }, - ["local"] = { - server = "0.0.0.0:" .. tonumber(local_port) - } + relay = { + server = server.server .. ":" .. server.server_port, + uuid = server.tuic_uuid, + password = server.tuic_passwd, + certificates = server.certificate and { server.certpath } or nil, + udp_relay_mode = server.udp_relay_mode, + congestion_control = server.congestion_control, + heartbeat = server.heartbeat .. "s", + timeout = server.timeout .. "s", + gc_interval = server.gc_interval .. "s", + gc_lifetime = server.gc_lifetime .. "s", + alpn = server.tls_alpn, + disable_sni = (server.disable_sni == "1"), + zero_rtt_handshake = (server.zero_rtt_handshake == "1"), + send_window = tonumber(server.send_window), + receive_window = tonumber(server.receive_window), + max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) + }, + ["local"] = { + server = "0.0.0.0:" .. tonumber(local_port) + } } local config = {} function config:new(o) From 95c1a1314e4495207360c293202068a6ce4b2411 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 13:05:10 +0800 Subject: [PATCH 360/972] add new translations Add new translations and amend some translations for tuic-client new parameters --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 9dcf21a4069..c39e3eb3f47 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -856,14 +856,32 @@ msgstr "启用 Netflix 分流模式" msgid "TUIC user UUID" msgstr "TUIC用户uuid" +msgid "TUIC user Password" +msgstr "TUIC用户密钥" + msgid "UDP relay mode" -msgstr "tuic UDP中继模式" +msgstr "UDP中继模式" + +msgid "native UDP characteristics" +msgstr "原生UDP特性" + +msgid "lossless UDP relay using QUIC streams, additional overhead is introduced" +msgstr "使用 QUIC 流的无损 UDP 中继(引入了额外的开销)" msgid "Congestion control algorithm" msgstr "拥塞控制算法" -msgid "Heartbeat interval" -msgstr "连接保活间隔" +msgid "Heartbeat interval(second)" +msgstr "设置连接保活间隔(单位:秒)" + +msgid "Timeout for establishing a connection to server(second)" +msgstr "设置建立连接超时(单位:秒)" + +msgid "Garbage collection interval(second)" +msgstr "设置UDP碎片收集时间间隔(单位:秒)" + +msgid "Garbage collection lifetime(second)" +msgstr "设置UDP碎片生存时间(单位:秒)" msgid "Disable SNI" msgstr "关闭SNI服务器名称指示" From 950856dbcb87b9c0f47ab1498ee12eda67fe1731 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 13:11:05 +0800 Subject: [PATCH 361/972] add TUIC options --- luci-app-ssr-plus/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 0e1d7119594..170e8398f55 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -10,6 +10,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_TUIC \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ @@ -39,6 +40,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ + +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -116,6 +118,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" default n +config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC + bool "Include tuic-client" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include IPT2Socks" default n From 92566ee20929967b22617a2fd5ff5a9db5e598f6 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 13:23:18 +0800 Subject: [PATCH 362/972] Create Makefile for tuic --- tuic/Makefile | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tuic/Makefile diff --git a/tuic/Makefile b/tuic/Makefile new file mode 100644 index 00000000000..15e977c662f --- /dev/null +++ b/tuic/Makefile @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Copyright (C) 2017-2020 Yousong Zhou +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tuic-client +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE_HEADER:=tuic-client-$(PKG_VERSION) +PKG_SOURCE_BODY:=unknown-linux-musl +#PKG_SOURCE_FOOTER:=tar.xz +PKG_SOURCE_URL:=https://https://github.com/EAimTY/tuic/releases/download/$(PKG_SOURCE_HEADER)-$(PKG_VERSION)/ + +ifeq ($(ARCH),aarch64) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-aarch64-$(PKG_SOURCE_BODY) + PKG_HASH:= +else ifeq ($(ARCH),arm) + # Referred to golang/golang-values.mk + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabi + PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e + else + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabihf + PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a + endif +else ifeq ($(ARCH),i686) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-i686-$(PKG_SOURCE_BODY) + PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd +else ifeq ($(ARCH),x86_64) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-x86_64-$(PKG_SOURCE_BODY) + PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a +# Set the default value to make OpenWrt Package Checker happy +else + PKG_SOURCE:=dummy + PKG_HASH:=dummy +endif + +PKG_MAINTAINER:=Tianling Shen +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +include $(INCLUDE_DIR)/package.mk + +TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + +define Package/tuic-client/Default + define Package/tuic-client-$(1) + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=tuic-client $(1) + URL:=https://github.com/EAimTY/tuic/ + DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) + endef + + define Package/tuic-client-$(1)/install + $$(INSTALL_DIR) $$(1)/usr/bin + $$(INSTALL_BIN) $$(PKG_BUILD_DIR)/$(1) $$(1)/usr/bin + endef +endef + +TUIC_COMPONENTS:=tuic-client +define tuic-client/templates + $(foreach component,$(TUIC_COMPONENTS), + $(call Package/tuic-client/Default,$(component)) + ) +endef +$(eval $(call tuic-client/templates)) + +define Build/Compile +endef + +$(foreach component,$(TUIC_COMPONENTS), \ + $(eval $(call BuildPackage,tuic-client-$(component))) \ +) From 3e5cb68ca0e06c3416e6847031b14b31d1701e89 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 14:59:20 +0800 Subject: [PATCH 363/972] Delete Makefile --- tuic/Makefile | 79 --------------------------------------------------- 1 file changed, 79 deletions(-) delete mode 100644 tuic/Makefile diff --git a/tuic/Makefile b/tuic/Makefile deleted file mode 100644 index 15e977c662f..00000000000 --- a/tuic/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only -# -# Copyright (C) 2017-2020 Yousong Zhou -# Copyright (C) 2021 ImmortalWrt.org - -include $(TOPDIR)/rules.mk - -PKG_NAME:=tuic-client -PKG_VERSION:=1.0.0 -PKG_RELEASE:=1 - -PKG_SOURCE_HEADER:=tuic-client-$(PKG_VERSION) -PKG_SOURCE_BODY:=unknown-linux-musl -#PKG_SOURCE_FOOTER:=tar.xz -PKG_SOURCE_URL:=https://https://github.com/EAimTY/tuic/releases/download/$(PKG_SOURCE_HEADER)-$(PKG_VERSION)/ - -ifeq ($(ARCH),aarch64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-aarch64-$(PKG_SOURCE_BODY) - PKG_HASH:= -else ifeq ($(ARCH),arm) - # Referred to golang/golang-values.mk - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabi - PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e - else - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabihf - PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a - endif -else ifeq ($(ARCH),i686) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-i686-$(PKG_SOURCE_BODY) - PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd -else ifeq ($(ARCH),x86_64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-x86_64-$(PKG_SOURCE_BODY) - PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a -# Set the default value to make OpenWrt Package Checker happy -else - PKG_SOURCE:=dummy - PKG_HASH:=dummy -endif - -PKG_MAINTAINER:=Tianling Shen -PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=LICENSE - -include $(INCLUDE_DIR)/package.mk - -TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) - -define Package/tuic-client/Default - define Package/tuic-client-$(1) - SECTION:=net - CATEGORY:=Network - SUBMENU:=Web Servers/Proxies - TITLE:=tuic-client $(1) - URL:=https://github.com/EAimTY/tuic/ - DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) - endef - - define Package/tuic-client-$(1)/install - $$(INSTALL_DIR) $$(1)/usr/bin - $$(INSTALL_BIN) $$(PKG_BUILD_DIR)/$(1) $$(1)/usr/bin - endef -endef - -TUIC_COMPONENTS:=tuic-client -define tuic-client/templates - $(foreach component,$(TUIC_COMPONENTS), - $(call Package/tuic-client/Default,$(component)) - ) -endef -$(eval $(call tuic-client/templates)) - -define Build/Compile -endef - -$(foreach component,$(TUIC_COMPONENTS), \ - $(eval $(call BuildPackage,tuic-client-$(component))) \ -) From 1d4ce2e2b7a4fc19c499060934dc1ad5124edfd7 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 15:02:08 +0800 Subject: [PATCH 364/972] Create Makefile --- tuic-client/Makefile | 1 + 1 file changed, 1 insertion(+) create mode 100644 tuic-client/Makefile diff --git a/tuic-client/Makefile b/tuic-client/Makefile new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/tuic-client/Makefile @@ -0,0 +1 @@ + From 1589ba2c8c5000fa7286e61fbf26a9c11e801af6 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 20 Jun 2023 15:10:08 +0800 Subject: [PATCH 365/972] complete tuic-client Makefile --- tuic-client/Makefile | 75 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 8b137891791..951e86a4501 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -1 +1,76 @@ +# SPDX-License-Identifier: GPL-2.0-only +# +# Copyright (C) 2017-2020 Yousong Zhou +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=tuic-client +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PKG_SOURCE_HEADER:=tuic-client-$(PKG_VERSION) +PKG_SOURCE_BODY:=unknown-linux-musl +#PKG_SOURCE_FOOTER:=tar.xz +PKG_SOURCE_URL:=https://https://github.com/EAimTY/tuic/releases/download/$(PKG_SOURCE_HEADER)-$(PKG_VERSION)/ + +ifeq ($(ARCH),aarch64) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-aarch64-$(PKG_SOURCE_BODY) + PKG_HASH:= +else ifeq ($(ARCH),arm) + # Referred to golang/golang-values.mk + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabi + PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e + else + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabihf + PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a + endif +else ifeq ($(ARCH),i686) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-i686-$(PKG_SOURCE_BODY) + PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd +else ifeq ($(ARCH),x86_64) + PKG_SOURCE:=$(PKG_SOURCE_HEADER)-x86_64-$(PKG_SOURCE_BODY) + PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a +# Set the default value to make OpenWrt Package Checker happy +else + PKG_SOURCE:=dummy + PKG_HASH:=dummy +endif + +PKG_MAINTAINER:=Tianling Shen +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE + +include $(INCLUDE_DIR)/package.mk + +#TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) + +define Package/tuic-client + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Delicately-TUICed 0-RTT proxy protocol + URL:=https://github.com/EAimTY/tuic/ + DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) +endef + +define Package/tuic-client/description + TUIC is a proxy protocol focusing on minimize the additional handshake + latency caused by relaying as much as possible, as well as keeping + the protocol itself being simple and easy to implement. + TUIC is originally designed to be used on top of the QUIC protocol, + but you can use it with any other protocol, e.g. TCP, in theory +endef + + define Package/tuic-client/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/ $(1)/usr/bin/tuic-client + endef + +define Build/Compile +endef + + $(eval $(call BuildPackage,tuic-client)) From 2459b7b099cb4051d5c4559c7c46ccfc56e53754 Mon Sep 17 00:00:00 2001 From: TeF Date: Wed, 28 Jun 2023 10:28:22 +0800 Subject: [PATCH 366/972] Add options for TUIC in luci-app-ssrplus Makefile --- luci-app-ssr-plus/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 170e8398f55..e723e8fdf1a 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -10,7 +10,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_TUIC \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic-Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ @@ -27,7 +27,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/TUIC/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ @@ -40,7 +40,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ - +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC:tuic-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -118,8 +118,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" default n -config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC +config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" + depends on aarch||arm||i686||x86_64 + depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks From ce864f01c9ab780f8cc199f2d4aa3a59774e2ca4 Mon Sep 17 00:00:00 2001 From: TeF Date: Wed, 28 Jun 2023 14:32:54 +0800 Subject: [PATCH 367/972] amend dependencies of Makefile --- luci-app-ssr-plus/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index e723e8fdf1a..026d2d29a51 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -116,10 +116,13 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG default n config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks depends on aarch||arm||i686||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n From 9e82a9e072aad7a5198847d4fad85710caeeb93b Mon Sep 17 00:00:00 2001 From: TeF Date: Wed, 28 Jun 2023 14:45:25 +0800 Subject: [PATCH 368/972] write a Makefile for tuic-client from a template --- tuic-client/Makefile | 83 ++++++++++++++++++++++---------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 951e86a4501..1356027c04c 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -9,43 +9,42 @@ PKG_NAME:=tuic-client PKG_VERSION:=1.0.0 PKG_RELEASE:=1 -PKG_SOURCE_HEADER:=tuic-client-$(PKG_VERSION) -PKG_SOURCE_BODY:=unknown-linux-musl -#PKG_SOURCE_FOOTER:=tar.xz -PKG_SOURCE_URL:=https://https://github.com/EAimTY/tuic/releases/download/$(PKG_SOURCE_HEADER)-$(PKG_VERSION)/ +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +include $(INCLUDE_DIR)/package.mk +TUIC_TYPE:=tuic-client-$(PKG_VERSION) +TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-aarch64-$(PKG_SOURCE_BODY) - PKG_HASH:= -else ifeq ($(ARCH),arm) - # Referred to golang/golang-values.mk - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabi - PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e - else - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-arm-$(PKG_SOURCE_BODY)eabihf - PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a - endif + TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) + PKG_HASH:=29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 +else ifeq ($ARCH),arm) + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi + PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf + else + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf + PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 + endif else ifeq ($(ARCH),i686) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-i686-$(PKG_SOURCE_BODY) - PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd + TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) + PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 else ifeq ($(ARCH),x86_64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER)-x86_64-$(PKG_SOURCE_BODY) - PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a -# Set the default value to make OpenWrt Package Checker happy + TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) + PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de else - PKG_SOURCE:=dummy - PKG_HASH:=dummy + TUIC_ARCH:=dummy + PKG_HASH:=dummy endif -PKG_MAINTAINER:=Tianling Shen -PKG_LICENSE:=MIT -PKG_LICENSE_FILES:=LICENSE - -include $(INCLUDE_DIR)/package.mk - -#TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) +define Download/tuic-client + URL:=https://github.com/EAimTY/tuic/releases/download/$(TUIC_TYPE)/ + URL_FILE:=$(TUIC_ARCH) + FILE:=$(TUIC_ARCH) + HASH:=$(PKG_HASH) +endef define Package/tuic-client SECTION:=net @@ -54,23 +53,23 @@ define Package/tuic-client TITLE:=Delicately-TUICed 0-RTT proxy protocol URL:=https://github.com/EAimTY/tuic/ DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) + #PKGARCH:=all aarch64 arm i686 x86_64 endef -define Package/tuic-client/description - TUIC is a proxy protocol focusing on minimize the additional handshake - latency caused by relaying as much as possible, as well as keeping - the protocol itself being simple and easy to implement. - TUIC is originally designed to be used on top of the QUIC protocol, - but you can use it with any other protocol, e.g. TCP, in theory +define Build/Prepare + $(call Build/Prepare/Default) +ifneq ($(CONFIG_PACKAGE_tuic-client),) + $(call Download,tuic-client) +endif endef - define Package/tuic-client/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/ $(1)/usr/bin/tuic-client - endef - define Build/Compile endef - $(eval $(call BuildPackage,tuic-client)) +define Package/tuic-client/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(DL_DIR)/$(TUIC_ARCH) $(1)/usr/bin/tuic-client + chmod +x $(1)/usr/bin/tuic-client +endef +$(eval $(call BuildPackage,tuic-client)) \ No newline at end of file From bd1d6bb82e2004a77b2ba33fec3b453d0374e75b Mon Sep 17 00:00:00 2001 From: TeF Date: Wed, 28 Jun 2023 15:04:29 +0800 Subject: [PATCH 369/972] tuic-client options are complished --- .../model/cbi/shadowsocksr/client-config.lua | 42 +++++++++++++------ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 28 ++++++++----- .../usr/share/shadowsocksr/gen_config.lua | 42 ++++++++++--------- 3 files changed, 69 insertions(+), 43 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 4e2b4d37ced..83cd079a588 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -225,7 +225,6 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) o = s:option(Value, "username", translate("Username")) o.rmempty = true o:depends("type", "naiveproxy") ---o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) @@ -237,7 +236,6 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) @@ -356,6 +354,13 @@ o.rmempty = true o.default = uuid o:depends("type", "tuic") +--Tuic IP +o = s:option(Value, "tuic_ip", translate("TUIC Server IP Address")) +o.rmempty = true +o.datatype = "ip4addr" +o.default = "" +o:depends("type", "tuic") + -- Tuic Password o = s:option(Value, "tuic_passwd", translate("TUIC User Password")) o.rmempty = true @@ -365,8 +370,8 @@ o:depends("type", "tuic") o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") -o:value("native", translate("native")) -o:value("quic", translate("QUIC")) +o:value("native", translate("native UDP characteristics") +o:value("quic", translate("lossless UDP relay using QUIC streams") o.default = "native" o.rmempty = true @@ -384,35 +389,34 @@ o.datatype = "uinteger" o.default = "3" o.rmempty = true -o = s:option(Value, "timeout", translate("timeout for establishing a connection to server(second)")) +o = s:option(Value, "timeout", translate("Timeout for establishing a connection to server(second)")) o:depends("type", "tuic") o.datatype = "uinteger" o.default = "8" o.rmempty = true -o = s:option(Value, "gc_interval", translate("garbage collection interval(second)")) +o = s:option(Value, "gc_interval", translate("Garbage collection interval(second)")) o:depends("type", "tuic") o.datatype = "uinteger" o.default = "3" o.rmempty = true -o = s:option(Value, "gc_lifetime", translate("garbage collection lifetime(second)")) +o = s:option(Value, "gc_lifetime", translate("Garbage collection lifetime(second)")) o:depends("type", "tuic") o.datatype = "uinteger" o.default = "15" o.rmempty = true - o = s:option(Value, "send_window", translate("TUIC send window")) -o.datatype = "uinteger" o:depends("type", "tuic") -o.default = 20971520 +o.datatype = "uinteger" +o.default = 16777216 o.rmempty = true o = s:option(Value, "receive_window", translate("TUIC receive window")) -o.datatype = "uinteger" o:depends("type", "tuic") -o.default = 10485760 +o.datatype = "uinteger" +o.default = 8388608 o.rmempty = true o = s:option(Flag, "disable_sni", translate("Disable SNI")) @@ -425,6 +429,18 @@ o:depends("type", "tuic") o.default = 0 o.rmempty = true +--Tuic settings for the local inbound socks5 server +o = s:option(Flag, "tuic_dual_stack", translate("Set if the listening socket should be dual-stack")) +o:depends("type", "tuic") +o.default = 0 +o.rmempty = true + +o = s:option(Value, "tuic_max_package_size", translate("Maximum packet size the socks5 server can receive from external")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = 1500 +o.rmempty = true + -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true @@ -874,4 +890,4 @@ if is_finded("kcptun-client") then o:depends("type", "ss") end -return m +return m \ No newline at end of file diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index c39e3eb3f47..a2917b29a3a 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -853,10 +853,13 @@ msgstr "应用" msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" -msgid "TUIC user UUID" +msgid "TUIC User UUID" msgstr "TUIC用户uuid" -msgid "TUIC user Password" +msgid "TUIC Server IP Address" +msgstr "TUIC 服务器IP地址" + +msgid "TUIC User Password" msgstr "TUIC用户密钥" msgid "UDP relay mode" @@ -865,23 +868,23 @@ msgstr "UDP中继模式" msgid "native UDP characteristics" msgstr "原生UDP特性" -msgid "lossless UDP relay using QUIC streams, additional overhead is introduced" -msgstr "使用 QUIC 流的无损 UDP 中继(引入了额外的开销)" +msgid "lossless UDP relay using QUIC streams" +msgstr "使用 QUIC 流的无损 UDP 中继" msgid "Congestion control algorithm" msgstr "拥塞控制算法" msgid "Heartbeat interval(second)" -msgstr "设置连接保活间隔(单位:秒)" +msgstr "保活心跳包发送间隔(单位:秒)" msgid "Timeout for establishing a connection to server(second)" -msgstr "设置建立连接超时(单位:秒)" +msgstr "连接超时时间(单位:秒)" msgid "Garbage collection interval(second)" -msgstr "设置UDP碎片收集时间间隔(单位:秒)" +msgstr "UDP数据包片残片清理间隔(单位:秒)" msgid "Garbage collection lifetime(second)" -msgstr "设置UDP碎片生存时间(单位:秒)" +msgstr "UDP数据包残片在服务器的保留时间(单位:秒)" msgid "Disable SNI" msgstr "关闭SNI服务器名称指示" @@ -890,8 +893,13 @@ msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" msgid "TUIC send window" -msgstr "发送窗口(无需确认即可发送的最大字节数)" +msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)" msgid "TUIC receive window" -msgstr "接收窗口(无需确认即可接收的最大字节数)" +msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" + +msgid "Set if the listening socket should be dual-stack" +msgstr "设置监听套接字为双栈" +msgid "Maximum packet size the socks5 server can receive from external" +msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 8b48a1f51a2..bfdfd4b155f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -306,27 +306,29 @@ local hysteria = { lazy_start = (server.lazy_start == "1") and true or false } local tuic = { - relay = { - server = server.server .. ":" .. server.server_port, - uuid = server.tuic_uuid, - password = server.tuic_passwd, - certificates = server.certificate and { server.certpath } or nil, - udp_relay_mode = server.udp_relay_mode, - congestion_control = server.congestion_control, - heartbeat = server.heartbeat .. "s", - timeout = server.timeout .. "s", - gc_interval = server.gc_interval .. "s", - gc_lifetime = server.gc_lifetime .. "s", - alpn = server.tls_alpn, - disable_sni = (server.disable_sni == "1"), - zero_rtt_handshake = (server.zero_rtt_handshake == "1"), - send_window = tonumber(server.send_window), - receive_window = tonumber(server.receive_window), - max_udp_relay_packet_size = tonumber(server.max_udp_relay_packet_size) + relay = { + server = server.server .. ":" .. server.server_port, + ip = server.tuic_ip, + uuid = server.tuic_uuid, + password = server.tuic_passwd, + certificates = server.certificate and { server.certpath } or nil, + udp_relay_mode = server.udp_relay_mode, + congestion_control = server.congestion_control, + heartbeat = server.heartbeat .. "s", + timeout = server.timeout .. "s", + gc_interval = server.gc_interval .. "s", + gc_lifetime = server.gc_lifetime .. "s", + alpn = server.tls_alpn, + disable_sni = (server.disable_sni == "1"), + zero_rtt_handshake = (server.zero_rtt_handshake == "1"), + send_window = tonumber(server.send_window), + receive_window = tonumber(server.receive_window) }, - ["local"] = { - server = "0.0.0.0:" .. tonumber(local_port) - } + ["local"] = { + server = "[::]:" .. tonumber(local_port), + dual_stack = dual_stack = (server.tuic_dual_stack == "1") and true or false, + max_packet_size = server.tuic_max_package_size + } } local config = {} function config:new(o) From 9161344bd2541c2c32525d6f48a4a454db2c1c1d Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Sat, 1 Jul 2023 10:30:52 +0800 Subject: [PATCH 370/972] fix minor errors of seprator in Makefile --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 026d2d29a51..ea5da12aa5c 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -121,8 +121,8 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" - select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG - select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks depends on aarch||arm||i686||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n From 5320ceaf605f40b30ecea5e9de825b7918d02c3d Mon Sep 17 00:00:00 2001 From: TeF Date: Mon, 3 Jul 2023 20:24:00 +0800 Subject: [PATCH 371/972] fix minor errors of Makefile seperators --- tuic-client/Makefile | 64 ++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 1356027c04c..11bbe7df575 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -17,49 +17,49 @@ include $(INCLUDE_DIR)/package.mk TUIC_TYPE:=tuic-client-$(PKG_VERSION) TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) - TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) - PKG_HASH:=29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 + TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) + PKG_HASH:=29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 else ifeq ($ARCH),arm) - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi - PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf - else - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf - PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 - endif + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi + PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf + else + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf + PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 + endif else ifeq ($(ARCH),i686) - TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) - PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 + TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) + PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 else ifeq ($(ARCH),x86_64) - TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) - PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de + TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) + PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de else - TUIC_ARCH:=dummy - PKG_HASH:=dummy + TUIC_ARCH:=dummy + PKG_HASH:=dummy endif define Download/tuic-client - URL:=https://github.com/EAimTY/tuic/releases/download/$(TUIC_TYPE)/ - URL_FILE:=$(TUIC_ARCH) - FILE:=$(TUIC_ARCH) - HASH:=$(PKG_HASH) + URL:=https://github.com/EAimTY/tuic/releases/download/$(TUIC_TYPE)/ + URL_FILE:=$(TUIC_ARCH) + FILE:=$(TUIC_ARCH) + HASH:=$(PKG_HASH) endef define Package/tuic-client - SECTION:=net - CATEGORY:=Network - SUBMENU:=Web Servers/Proxies - TITLE:=Delicately-TUICed 0-RTT proxy protocol - URL:=https://github.com/EAimTY/tuic/ - DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) - #PKGARCH:=all aarch64 arm i686 x86_64 + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Delicately-TUICed 0-RTT proxy protocol + URL:=https://github.com/EAimTY/tuic/ + DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) + #PKGARCH:=all aarch64 arm i686 x86_64 endef define Build/Prepare - $(call Build/Prepare/Default) + $(call Build/Prepare/Default) ifneq ($(CONFIG_PACKAGE_tuic-client),) - $(call Download,tuic-client) + $(call Download,tuic-client) endif endef @@ -67,9 +67,9 @@ define Build/Compile endef define Package/tuic-client/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(DL_DIR)/$(TUIC_ARCH) $(1)/usr/bin/tuic-client - chmod +x $(1)/usr/bin/tuic-client + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(DL_DIR)/$(TUIC_ARCH) $(1)/usr/bin/tuic-client + chmod +x $(1)/usr/bin/tuic-client endef $(eval $(call BuildPackage,tuic-client)) \ No newline at end of file From 91faf7ffc4fc7831750d6dd50ab37d8b719a90f8 Mon Sep 17 00:00:00 2001 From: TeF Date: Tue, 4 Jul 2023 12:17:48 +0800 Subject: [PATCH 372/972] fix seperator errors --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index ea5da12aa5c..2ca04c1851f 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -116,7 +116,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" - select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG default n config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client From 814e78516c3ee3107e465cde33a5f583a420de92 Mon Sep 17 00:00:00 2001 From: TeF Date: Tue, 4 Jul 2023 16:26:57 +0800 Subject: [PATCH 373/972] fix aarch checksum --- tuic-client/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 11bbe7df575..2eec3864ad2 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -18,7 +18,7 @@ TUIC_TYPE:=tuic-client-$(PKG_VERSION) TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) - PKG_HASH:=29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 + PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 else ifeq ($ARCH),arm) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) From a127549c8eba8371f681aea0ce846d11a7bae5d4 Mon Sep 17 00:00:00 2001 From: TeF Date: Tue, 4 Jul 2023 17:13:39 +0800 Subject: [PATCH 374/972] fix arch case in Makefile --- tuic-client/Makefile | 3 --- 1 file changed, 3 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 2eec3864ad2..fc5fb662808 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -34,9 +34,6 @@ else ifeq ($(ARCH),i686) else ifeq ($(ARCH),x86_64) TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de -else - TUIC_ARCH:=dummy - PKG_HASH:=dummy endif define Download/tuic-client From f5533c301841145bd7e392fa5846f171267e75f5 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 4 Jul 2023 19:39:51 +0800 Subject: [PATCH 375/972] Update Makefile --- tuic-client/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index fc5fb662808..e5a24f84f03 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -19,7 +19,7 @@ TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 -else ifeq ($ARCH),arm) +else ifeq ($ARCH),arm64) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi @@ -69,4 +69,4 @@ define Package/tuic-client/install chmod +x $(1)/usr/bin/tuic-client endef -$(eval $(call BuildPackage,tuic-client)) \ No newline at end of file +$(eval $(call BuildPackage,tuic-client)) From 994227c40f9aeda6e54f2a00557374beede4f77a Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 4 Jul 2023 19:45:18 +0800 Subject: [PATCH 376/972] Update Makefile --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 2ca04c1851f..0528b6b508b 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -123,7 +123,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks - depends on aarch||arm||i686||x86_64 + depends on aarch64||arm64||i686||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n From 38623aa350ee458d3fac7147a2a4f279b0b15c49 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 4 Jul 2023 19:49:33 +0800 Subject: [PATCH 377/972] Update Makefile --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 0528b6b508b..6ed28b669b2 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -123,7 +123,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks - depends on aarch64||arm64||i686||x86_64 + depends on aarch64||i686||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n From ce54706bc3ad16b620d73100181f4d08b5c3b18d Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Tue, 4 Jul 2023 20:04:41 +0800 Subject: [PATCH 378/972] delete arm arch --- tuic-client/Makefile | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index e5a24f84f03..357be65528f 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -19,15 +19,6 @@ TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 -else ifeq ($ARCH),arm64) - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi - PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf - else - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf - PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 - endif else ifeq ($(ARCH),i686) TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 From 0e8fa59c82a9316aa440ece07d59f76ccfa83654 Mon Sep 17 00:00:00 2001 From: TeF Date: Tue, 4 Jul 2023 20:48:44 +0800 Subject: [PATCH 379/972] Revert "delete arm arch" This reverts commit ce54706bc3ad16b620d73100181f4d08b5c3b18d. --- tuic-client/Makefile | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 357be65528f..e5a24f84f03 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -19,6 +19,15 @@ TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 +else ifeq ($ARCH),arm64) + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi + PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf + else + TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf + PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 + endif else ifeq ($(ARCH),i686) TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 From 09418d1154fd6a730f313b00abb4f99b3554c834 Mon Sep 17 00:00:00 2001 From: TeF Date: Tue, 4 Jul 2023 20:49:42 +0800 Subject: [PATCH 380/972] fix ARCH define --- tuic-client/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index e5a24f84f03..0d2e9f1e593 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -49,7 +49,7 @@ define Package/tuic-client SUBMENU:=Web Servers/Proxies TITLE:=Delicately-TUICed 0-RTT proxy protocol URL:=https://github.com/EAimTY/tuic/ - DEPENDS:=@USE_MUSL @(aarch64||arm||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) + DEPENDS:=@USE_MUSL @(aarch64||arm64||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) #PKGARCH:=all aarch64 arm i686 x86_64 endef From f30a39485080d60289d88fad2ec45665c3a9981a Mon Sep 17 00:00:00 2001 From: qwerttvv <56712217+qwerttvv@users.noreply.github.com> Date: Sun, 9 Jul 2023 20:41:59 +0800 Subject: [PATCH 381/972] ss rust update to 1.15.4 --- shadowsocks-rust/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index ccfd93eeca6..0ed8466a613 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.3 -PKG_RELEASE:=1 +PKG_VERSION:=1.15.4 +PKG_RELEASE:=2 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) PKG_SOURCE_BODY:=unknown-linux-musl @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=60564e78abe243b966a0a6079b20e60fe302d3d41db0b2d2114e6d1325d735dc + PKG_HASH:=f03b72bc3924d9578261fff84f72f66c889012f8688f1644b2b7700d37c363b7 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=5ec0a5708bc4d1c984b48e70cc96642bc89ade19ee9b299af1f4522fd421561e + PKG_HASH:=b0156d446d39b74e4e5c6d7c3ccfd86e8b47947694e757950d448f7e9f9d80f2 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=949f60a860dad40170bc70889af7a826f22b6fbaef55095fe8ef413cdd658b4a + PKG_HASH:=0c6a263912fd421b591de0871e6832e780ba521ed3ceaf6c37990ad53bdb7806 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=5b5e98f593493850dc4a29517f537136dc0fd62ae56ba958bbefcc4ba9b467dd + PKG_HASH:=fc932cb25ba9ab622459c3e6a43c8a5c9a12efcdcec0b748f962b99208835351 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e42662a09328872318535a9d5e2b2dc135db758b305e4ccf19bdca478ecbde06 + PKG_HASH:=ec78d96dcdb795ce10e44b64c822e797ff796f0fdeede366a5042f110cc61d00 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=7807f35ba581c031cde36f5660980e54eefe8197571b20993bb738d2b4608ec1 + PKG_HASH:=b26b693b371fec8ae51da2157d4cf0c20087177322498a7d06d63859183ec8eb else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=6d1d73fb94bac7d15d360d9e1cbd9d6787faa20e7881ee41b7c444e7b520194a + PKG_HASH:=712a3ad2bd123e76bbbcd0c0d302c3cb9c7e24160bedc696a2fb088543ba1005 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 37056a57c42ce7d70c0eede9f696713467361c04 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 13 Jul 2023 00:29:14 +0800 Subject: [PATCH 382/972] =?UTF-8?q?luci-app-ssr-plus=EF=BC=9A=20Fix=20mino?= =?UTF-8?q?r=20errors=20and=20failure=20to=20start=20issues?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../root/usr/share/shadowsocksr/gen_config.lua | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index bfdfd4b155f..97361d04ab5 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -314,10 +314,10 @@ local tuic = { certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, congestion_control = server.congestion_control, - heartbeat = server.heartbeat .. "s", - timeout = server.timeout .. "s", - gc_interval = server.gc_interval .. "s", - gc_lifetime = server.gc_lifetime .. "s", + heartbeat = server.heartbeat, + timeout = server.timeout, + gc_interval = server.gc_interval, + gc_lifetime = server.gc_lifetime, alpn = server.tls_alpn, disable_sni = (server.disable_sni == "1"), zero_rtt_handshake = (server.zero_rtt_handshake == "1"), @@ -326,7 +326,7 @@ local tuic = { }, ["local"] = { server = "[::]:" .. tonumber(local_port), - dual_stack = dual_stack = (server.tuic_dual_stack == "1") and true or false, + dual_stack = (server.tuic_dual_stack == "1") and true or false, max_packet_size = server.tuic_max_package_size } } From 42075a4d65a7bb4fdc429005899d0dd6490e9b04 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 13 Jul 2023 00:32:11 +0800 Subject: [PATCH 383/972] luci-app-ssr-plus: Fix minor errors and failure to start issues --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 83cd079a588..e39088b120f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -370,8 +370,8 @@ o:depends("type", "tuic") o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") -o:value("native", translate("native UDP characteristics") -o:value("quic", translate("lossless UDP relay using QUIC streams") +o:value("native", translate("native UDP characteristics")) +o:value("quic", translate("lossless UDP relay using QUIC streams")) o.default = "native" o.rmempty = true @@ -890,4 +890,4 @@ if is_finded("kcptun-client") then o:depends("type", "ss") end -return m \ No newline at end of file +return m From e7e6aa9b6f3fe4c52a1eca0e67478144878d4026 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Sat, 22 Jul 2023 01:00:09 +0800 Subject: [PATCH 384/972] luci-app-ssr-plus: fix can't start other nodes if exist tuic-nodes (#1233) --- .../root/usr/share/shadowsocksr/gen_config.lua | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 97361d04ab5..d131846b240 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -314,20 +314,20 @@ local tuic = { certificates = server.certificate and { server.certpath } or nil, udp_relay_mode = server.udp_relay_mode, congestion_control = server.congestion_control, - heartbeat = server.heartbeat, - timeout = server.timeout, - gc_interval = server.gc_interval, - gc_lifetime = server.gc_lifetime, + heartbeat = server.heartbeat and server.heartbeat .. "s" or nil, + timeout = server.timeout and server.timeout .. "s" or nil,, + gc_interval = server.gc_interval and server.gc_interval .. "s" or nil, + gc_lifetime = server.gc_lifetime and server.gc_lifetime .. "s" or nil, alpn = server.tls_alpn, - disable_sni = (server.disable_sni == "1"), - zero_rtt_handshake = (server.zero_rtt_handshake == "1"), + disable_sni = (server.disable_sni == "1") and true or false, + zero_rtt_handshake = (server.zero_rtt_handshake == "1") and true or false, send_window = tonumber(server.send_window), receive_window = tonumber(server.receive_window) }, ["local"] = { - server = "[::]:" .. tonumber(local_port), - dual_stack = (server.tuic_dual_stack == "1") and true or false, - max_packet_size = server.tuic_max_package_size + server = "0.0.0.0:" .. tonumber(local_port), + --dual_stack = (server.tuic_dual_stack == "1") and true or false, + max_packet_size = tonumber(server.tuic_max_package_size) } } local config = {} From b8e7a7d7965b91ac6de7246ef3f7b74e01240803 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B0=8F=E5=B0=A8?= <43496459+Jason6111@users.noreply.github.com> Date: Sat, 22 Jul 2023 04:45:34 +0800 Subject: [PATCH 385/972] Update gen_config.lua Fix more than symbols"," --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d131846b240..50d7e0c2de9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -315,7 +315,7 @@ local tuic = { udp_relay_mode = server.udp_relay_mode, congestion_control = server.congestion_control, heartbeat = server.heartbeat and server.heartbeat .. "s" or nil, - timeout = server.timeout and server.timeout .. "s" or nil,, + timeout = server.timeout and server.timeout .. "s" or nil, gc_interval = server.gc_interval and server.gc_interval .. "s" or nil, gc_lifetime = server.gc_lifetime and server.gc_lifetime .. "s" or nil, alpn = server.tls_alpn, From dd816c67f750a268e360dfe69dc2d4d2e445c6fc Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sun, 13 Aug 2023 03:58:24 +0800 Subject: [PATCH 386/972] Add "Disable ChinaDNS-NG" dns mode --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 52b11d257bd..482949c54a6 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -116,6 +116,7 @@ o.datatype = "ip4addrport" if is_finded("chinadns-ng") then o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) + o:value("", translate("Disable ChinaDNS-NG")) o:value("wan", translate("Use DNS from WAN")) o:value("wan_114", translate("Use DNS from WAN and 114DNS")) o:value("114.114.114.114:53", translate("Nanjing Xinfeng 114DNS (114.114.114.114)")) From f2c18e487aaf4e9e06e4f64ba6a0c82a7a384b74 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sun, 13 Aug 2023 04:00:08 +0800 Subject: [PATCH 387/972] Update ssr-plus.po --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index a2917b29a3a..aaa22781e0a 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -903,3 +903,6 @@ msgstr "设置监听套接字为双栈" msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" + +msgid "Disable ChinaDNS-NG" +msgstr "直通模式(禁用ChinaDNS-NG)" From 7a9d2c8f7633bc373e24d882b415b85dca0421c7 Mon Sep 17 00:00:00 2001 From: TeF Date: Mon, 21 Aug 2023 09:55:37 +0800 Subject: [PATCH 388/972] support hysteria port hopping in server settings page --- .../model/cbi/shadowsocksr/client-config.lua | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index e39088b120f..947b0dc0c0d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -205,13 +205,13 @@ o:depends("type", "socks5") o = s:option(Value, "server_port", translate("Server Port")) o.datatype = "port" -o.rmempty = false +o.rmempty = ({port_hopping=0 and false or true}) o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends("type", "hysteria") +o:depends({type="hysteria",port_hopping=0}) o:depends("type", "tuic") o:depends("type", "socks5") @@ -308,6 +308,16 @@ o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") -- [[ Hysteria ]]-- +o = s:option(Flag, "port_hopping", translate("Port Hopping")) +o:depends("type", "hysteria") +o.rmempty = true +o.default = "0" + +o = s:option(Value, "port_range", translate("Port range")) +o:depends({type = "hysteria", port_hopping = "1"}) +o.datatype = "portrange" +o.rmempty = true + o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) o:depends("type", "hysteria") o:value("udp", translate("udp")) From 853e1a9638652c1918af0f02bf2b3654e3e24691 Mon Sep 17 00:00:00 2001 From: TeF Date: Mon, 21 Aug 2023 16:04:45 +0800 Subject: [PATCH 389/972] support hysteria port hopping feature --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index aaa22781e0a..b3f34a8871a 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -106,6 +106,12 @@ msgstr "混淆参数(可选)" msgid "Authentication type" msgstr "验证类型" +msgid "Port Hopping" +msgstr "端口跃迁" + +msgid "Port Range" +msgstr "端口范围" + msgid "Authentication payload" msgstr "验证载荷" From 8494eb65a8c6dee0201dcec6e3aeec30871a07d0 Mon Sep 17 00:00:00 2001 From: TeF Date: Mon, 21 Aug 2023 16:07:11 +0800 Subject: [PATCH 390/972] fix minors --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 947b0dc0c0d..82207e24bce 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -313,7 +313,7 @@ o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Value, "port_range", translate("Port range")) +o = s:option(Value, "port_range", translate("Port Range")) o:depends({type = "hysteria", port_hopping = "1"}) o.datatype = "portrange" o.rmempty = true From 985dc67c787b8cedfabad053c83c6c4e681492be Mon Sep 17 00:00:00 2001 From: TeF Date: Mon, 21 Aug 2023 16:25:34 +0800 Subject: [PATCH 391/972] fix minors --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 82207e24bce..f5b84571781 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -308,7 +308,7 @@ o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") -- [[ Hysteria ]]-- -o = s:option(Flag, "port_hopping", translate("Port Hopping")) +o = s:option(Flag, "port_hopping", translate("Enable Port Hopping")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index b3f34a8871a..2546b9f3699 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -106,11 +106,11 @@ msgstr "混淆参数(可选)" msgid "Authentication type" msgstr "验证类型" -msgid "Port Hopping" -msgstr "端口跃迁" +msgid "Enable Port Hopping" +msgstr "启用端口跃迁" msgid "Port Range" -msgstr "端口范围" +msgstr "端口范围值" msgid "Authentication payload" msgstr "验证载荷" From b4baf793c15bc1b945cc64ae3e4bf69d5f3c4895 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 30 Aug 2023 02:50:56 +0800 Subject: [PATCH 392/972] shadowsocks-rust: update to 1.16.0 (#1251) --- shadowsocks-rust/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 0ed8466a613..b92d69586a2 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,8 +6,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.15.4 -PKG_RELEASE:=2 +PKG_VERSION:=1.16.0 +PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) PKG_SOURCE_BODY:=unknown-linux-musl @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=f03b72bc3924d9578261fff84f72f66c889012f8688f1644b2b7700d37c363b7 + PKG_HASH:=371baae4057cc021c9abe6f06b5bcf2fb8e9c10db380f720a8ee552cd8db67bf else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=b0156d446d39b74e4e5c6d7c3ccfd86e8b47947694e757950d448f7e9f9d80f2 + PKG_HASH:=d9ae09ac08405b74ca46aec20710878a30794ce60f7da9350c33f29d68d16bd0 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=0c6a263912fd421b591de0871e6832e780ba521ed3ceaf6c37990ad53bdb7806 + PKG_HASH:=379bcf35c0d884cf5c3e6c00607e6eb23a494f803fab4f069ec6e8f3992457b3 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=fc932cb25ba9ab622459c3e6a43c8a5c9a12efcdcec0b748f962b99208835351 + PKG_HASH:=0bf54fb5a9b52e1db082c8ed5f06a518011a6054ba7f07f82180b517ee83febf else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=ec78d96dcdb795ce10e44b64c822e797ff796f0fdeede366a5042f110cc61d00 + PKG_HASH:=f39fee8c256aa86a5138331af0401fc45122ba4b92cbdde40391bd87c1a666ff else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=b26b693b371fec8ae51da2157d4cf0c20087177322498a7d06d63859183ec8eb + PKG_HASH:=0d6b497a3b7456dfd1a1ff821216e228c95939eed22ed1d9ede6adcbcc0ca087 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=712a3ad2bd123e76bbbcd0c0d302c3cb9c7e24160bedc696a2fb088543ba1005 + PKG_HASH:=790624fbc4d8f507503b4ee4d50c423ba8a246cffd4230bc224917ee1ec63168 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From ac15a3a81c7ea0080d82053dfe606fd5da050ab4 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 30 Aug 2023 02:55:21 +0800 Subject: [PATCH 393/972] xray-plugin: update to 1.8.4 (#1252) --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index dd752c32cb1..56d6f956faf 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.3 +PKG_VERSION:=1.8.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=78c9c7f3e049d555b68914b545224cb9fd8253b75fe797a62a54b6e9af0bf870 +PKG_HASH:=7154310f1108bb8538327f35696cbce1ca22feb1e7d26922a8a359ccab68d952 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From aa256b471b7dd69244312353261210c2d2ed39aa Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 30 Aug 2023 02:55:32 +0800 Subject: [PATCH 394/972] xray-core: update to 1.8.4 (#1253) --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index d60e08d5aeb..5d2bb2950cd 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.3 +PKG_VERSION:=1.8.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=bdfa65c15cd25f931745d9c70c753503db5d119ff11960ca7b3a2e19c4b0a8d1 +PKG_HASH:=89f73107abba9bd438111edfe921603ddb3c2b631b2716fbdc6be78552f0d322 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From ef27e67d8a5eb9b49131931d7169af7f9519d6a9 Mon Sep 17 00:00:00 2001 From: qwerttvv <56712217+qwerttvv@users.noreply.github.com> Date: Tue, 5 Sep 2023 01:42:52 +0800 Subject: [PATCH 395/972] shadowsocks-rust: update to 1.16.1 (#1255) * Update shadowsocks-rust to v1.16.1 --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index b92d69586a2..5cf4ce4145e 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.16.0 +PKG_VERSION:=1.16.1 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=371baae4057cc021c9abe6f06b5bcf2fb8e9c10db380f720a8ee552cd8db67bf + PKG_HASH:=8927a96fcb9f52001944947b93e066820ffc52fdbd7d7228b7e5f84bee59dd71 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=d9ae09ac08405b74ca46aec20710878a30794ce60f7da9350c33f29d68d16bd0 + PKG_HASH:=ec8bd1bcbfa54f19e09d2702f7e67c2b2957f7fb8ecff8d8c9cd883c96a38b10 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=379bcf35c0d884cf5c3e6c00607e6eb23a494f803fab4f069ec6e8f3992457b3 + PKG_HASH:=66904128095f204f5726b63ab670da4ffede59f2f762cd71128fee9a5006dabc endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=0bf54fb5a9b52e1db082c8ed5f06a518011a6054ba7f07f82180b517ee83febf + PKG_HASH:=d7429ecb29f47399caaf3ed7e61f318566cc02f6bd619c0d87dcb955ce9fdf53 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=f39fee8c256aa86a5138331af0401fc45122ba4b92cbdde40391bd87c1a666ff + PKG_HASH:=816d836a5eaee8ae6b891ae1d307c26c2135de00f55dcc0f1dfd572fc1d1a809 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=0d6b497a3b7456dfd1a1ff821216e228c95939eed22ed1d9ede6adcbcc0ca087 + PKG_HASH:=3d5c564e9e2352fd304f59572016b9562de9cf93d2d0f1b27f1c5fe4dd6e4a8f else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=790624fbc4d8f507503b4ee4d50c423ba8a246cffd4230bc224917ee1ec63168 + PKG_HASH:=19149e63ef4e375e6963c75a3fff3732204c5d14d75d0e0dfdb53e339cbcf5f3 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From f15d32400b0c0cec76b599e27ce5d4e8e2fffc9c Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Wed, 6 Sep 2023 00:40:17 +0800 Subject: [PATCH 396/972] hysteria: update to 2.0.0 --- hysteria/Makefile | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index d28a9439c15..9513dde3973 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.5 +PKG_VERSION:=2.0.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9b3b5fca069d215a1f4c9cf3aa0a7b4e9b1fe21216fddb483a20ab42eb4a4dd7 +PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? +PKG_HASH:=06f86cf466cbe08e7aaea68914263780ed4474cd73df9a591676779535d330d5 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE @@ -21,8 +22,12 @@ PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/apernet/hysteria -GO_PKG_BUILD_PKG:=$(GO_PKG)/app/cmd -GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) +GO_PKG_BUILD_PKG:=$(GO_PKG)/app +GO_PKG_LDFLAGS_X = \ + $(GO_PKG)/app/cmd.appVersion=v$(PKG_VERSION) \ + $(GO_PKG)/app/cmd.appType=release \ + $(GO_PKG)/app/cmd.appPlatform=$(GO_OS) \ + $(GO_PKG)/app/cmd.appArch=$(GO_ARCH) include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk @@ -46,7 +51,7 @@ define Package/hysteria/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cmd $(1)/usr/bin/hysteria + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/app $(1)/usr/bin/hysteria endef $(eval $(call GoBinPackage,hysteria)) From de10b43462fed3044c225fd48e6ee69a7ac73fb4 Mon Sep 17 00:00:00 2001 From: zhusir Date: Mon, 11 Sep 2023 01:43:47 +0800 Subject: [PATCH 397/972] chinadns-ng: update to 2023.06.01 (#1266) --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index a7887c54569..c072699be52 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.04.20 +PKG_VERSION:=2023.06.01 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=e1f5197ecd96ebab4440fe069e0a06935df7ea07ac1ad0bab3f88bffe0055294 +PKG_HASH:=7c33e8a60b7618b33fce0960b94b46567766a051b307cea6b123da4176a52eab PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 97c5d350f9b5bf154e5ec7e91363bb0efd9bd4b4 Mon Sep 17 00:00:00 2001 From: lean Date: Sun, 17 Sep 2023 05:34:33 +0800 Subject: [PATCH 398/972] tuic-client: add armv7 support --- luci-app-ssr-plus/Makefile | 4 ++-- tuic-client/Makefile | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 6ed28b669b2..9441e21c0d2 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=187 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -123,7 +123,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client bool "Include tuic-client" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks - depends on aarch64||i686||x86_64 + depends on aarch64||arm||i386||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n diff --git a/tuic-client/Makefile b/tuic-client/Makefile index 0d2e9f1e593..ad6b4456438 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -19,7 +19,8 @@ TUIC_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 -else ifeq ($ARCH),arm64) +else ifeq ($(ARCH),arm) +# Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi @@ -28,12 +29,16 @@ else ifeq ($ARCH),arm64) TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 endif -else ifeq ($(ARCH),i686) +else ifeq ($(ARCH),i386) TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 else ifeq ($(ARCH),x86_64) TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de +# Set the default value to make OpenWrt Package Checker happy +else + PKG_SOURCE:=dummy + PKG_HASH:=dummy endif define Download/tuic-client @@ -49,8 +54,7 @@ define Package/tuic-client SUBMENU:=Web Servers/Proxies TITLE:=Delicately-TUICed 0-RTT proxy protocol URL:=https://github.com/EAimTY/tuic/ - DEPENDS:=@USE_MUSL @(aarch64||arm64||i686||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) - #PKGARCH:=all aarch64 arm i686 x86_64 + DEPENDS:=@USE_MUSL @(aarch64||arm||i386||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) endef define Build/Prepare @@ -66,7 +70,6 @@ endef define Package/tuic-client/install $(INSTALL_DIR) $(1)/usr/bin $(INSTALL_BIN) $(DL_DIR)/$(TUIC_ARCH) $(1)/usr/bin/tuic-client - chmod +x $(1)/usr/bin/tuic-client endef -$(eval $(call BuildPackage,tuic-client)) +$(eval $(call BuildPackage,tuic-client)) \ No newline at end of file From 857872bba81be0ffe0fd9685e8abf763c28e111d Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 18 Sep 2023 00:49:42 +0800 Subject: [PATCH 399/972] hysteria: update to 2.0.1 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 9513dde3973..62b651674b2 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.0.0 +PKG_VERSION:=2.0.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=06f86cf466cbe08e7aaea68914263780ed4474cd73df9a591676779535d330d5 +PKG_HASH:=5a181f84c1dc1b14680478e03efe11608e743b501b528c5cfa0771462ba1a350 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From a85395bf5dbb71faa983a603bc59167537b0c42b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 18 Sep 2023 00:50:44 +0800 Subject: [PATCH 400/972] hysteria: update to 2.0.2 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 62b651674b2..2a59d9fb0c6 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.0.1 +PKG_VERSION:=2.0.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=5a181f84c1dc1b14680478e03efe11608e743b501b528c5cfa0771462ba1a350 +PKG_HASH:=eec86966a533cb4bae8e0e7b5a1c9b231a0a7a587ebc07a2a2e1e8cdb3f555f6 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 4d092569e76527ee8016d11dc4d2950dbc0e5124 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Mon, 18 Sep 2023 16:09:06 +0800 Subject: [PATCH 401/972] Shadowtls features (#6) * change tuic dual_stack option's ip address * add shadow-tls config block --- .../root/usr/share/shadowsocksr/gen_config.lua | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 50d7e0c2de9..9c68714b221 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -305,6 +305,18 @@ local hysteria = { fast_open = (server.fast_open == "1") and true or false, lazy_start = (server.lazy_start == "1") and true or false } +local shadowtls = { + client = { + server_addr = server.server .. ":" .. server.server_port, + listen = "127.0.0.1:" .. tonumber(local_port), + tls_names = server.shadowtls_sni, + password = server.password + }, + v3 = (server.shadowtls_protocol == "v3") and true or false, + disable_nodelay = (server.disable_nodelay == "1") and true or false, + fastopen = (server.fastopen == "1") and true or false, + strict = (server.strict == "1") and true or false +} local tuic = { relay = { server = server.server .. ":" .. server.server_port, @@ -325,8 +337,8 @@ local tuic = { receive_window = tonumber(server.receive_window) }, ["local"] = { - server = "0.0.0.0:" .. tonumber(local_port), - --dual_stack = (server.tuic_dual_stack == "1") and true or false, + server = "[::]:" .. tonumber(local_port), + dual_stack = (server.tuic_dual_stack == "1") and true or false, max_packet_size = tonumber(server.tuic_max_package_size) } } From b060fd5a47251e5e1907b08b4a89aa2848a702bd Mon Sep 17 00:00:00 2001 From: FluffyTigerfear Date: Mon, 18 Sep 2023 16:09:53 +0800 Subject: [PATCH 402/972] Shadowtls features (#7) * change tuic dual_stack option's ip address * add shadow-tls config block From 308bb43029afb662e896bd146ae702d3de1b55d5 Mon Sep 17 00:00:00 2001 From: qwerttvv <56712217+qwerttvv@users.noreply.github.com> Date: Sun, 24 Sep 2023 02:30:21 +0800 Subject: [PATCH 403/972] shadowsocks-rust: update to 1.16.2 (#1273) --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 5cf4ce4145e..2ab83da87f0 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.16.1 +PKG_VERSION:=1.16.2 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=8927a96fcb9f52001944947b93e066820ffc52fdbd7d7228b7e5f84bee59dd71 + PKG_HASH:=da51732b2a55d0f2e3270f70b638a32f303b675c0db636abefa5ce316e3269f7 else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=ec8bd1bcbfa54f19e09d2702f7e67c2b2957f7fb8ecff8d8c9cd883c96a38b10 + PKG_HASH:=681315f912d5570e61c845e4adf6b315d9021ce1a191ec942cb1d0456e2fdd16 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=66904128095f204f5726b63ab670da4ffede59f2f762cd71128fee9a5006dabc + PKG_HASH:=43a4479557b02ea003c7a0fc55df75adfadd2fc2532193379c28f6be721fa3ee endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=d7429ecb29f47399caaf3ed7e61f318566cc02f6bd619c0d87dcb955ce9fdf53 + PKG_HASH:=d19bb83a9dfdd26252d92ccdafee9151d53857df289f3e3cee9bcdf31fc4d5b0 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=816d836a5eaee8ae6b891ae1d307c26c2135de00f55dcc0f1dfd572fc1d1a809 + PKG_HASH:=cb8a0af5d1effbe6a3e7c21bacf48eeeb1198926430045e1c48d6fa565bc7d86 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=3d5c564e9e2352fd304f59572016b9562de9cf93d2d0f1b27f1c5fe4dd6e4a8f + PKG_HASH:=444b59889893073a23cdb4ebac9c33d1fad14356a761460f070108fab318193f else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=19149e63ef4e375e6963c75a3fff3732204c5d14d75d0e0dfdb53e339cbcf5f3 + PKG_HASH:=e989f1cacfb4f9a8c7eccd6e5ffcfd40c996f728ca12a4b2d6d0dd93fab1e980 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From e119de733c320d082cdab95fdfb053aa2cb602bf Mon Sep 17 00:00:00 2001 From: lean Date: Thu, 28 Sep 2023 09:31:51 +0800 Subject: [PATCH 404/972] hysteria: revert to v1 until luci config updated --- hysteria/Makefile | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 2a59d9fb0c6..d28a9439c15 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,13 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.0.2 +PKG_VERSION:=1.3.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=eec86966a533cb4bae8e0e7b5a1c9b231a0a7a587ebc07a2a2e1e8cdb3f555f6 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) +PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=9b3b5fca069d215a1f4c9cf3aa0a7b4e9b1fe21216fddb483a20ab42eb4a4dd7 PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE @@ -22,12 +21,8 @@ PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 GO_PKG:=github.com/apernet/hysteria -GO_PKG_BUILD_PKG:=$(GO_PKG)/app -GO_PKG_LDFLAGS_X = \ - $(GO_PKG)/app/cmd.appVersion=v$(PKG_VERSION) \ - $(GO_PKG)/app/cmd.appType=release \ - $(GO_PKG)/app/cmd.appPlatform=$(GO_OS) \ - $(GO_PKG)/app/cmd.appArch=$(GO_ARCH) +GO_PKG_BUILD_PKG:=$(GO_PKG)/app/cmd +GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk @@ -51,7 +46,7 @@ define Package/hysteria/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/app $(1)/usr/bin/hysteria + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cmd $(1)/usr/bin/hysteria endef $(eval $(call GoBinPackage,hysteria)) From 3d1e9cea63368c0d5525cf27b846af3cdf9e0672 Mon Sep 17 00:00:00 2001 From: TeF Date: Thu, 28 Sep 2023 12:14:14 +0800 Subject: [PATCH 405/972] 1.support Hysteria Version 2 full features, remove Hysteria v1 features 2.support tuic full functions for ssr-plus, fixed tuic minor errors and bugs 3.add shadow-tls new features, support full fuctions for ssr-plus --- luci-app-ssr-plus/Makefile | 14 +- .../model/cbi/shadowsocksr/client-config.lua | 205 ++++++++++++--- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 69 ++++- .../root/etc/init.d/shadowsocksr | 238 +++++++++++++----- .../usr/share/shadowsocksr/gen_config.lua | 223 ++++++++++++---- shadow-tls/Makefile | 65 +++++ 6 files changed, 657 insertions(+), 157 deletions(-) create mode 100644 shadow-tls/Makefile diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 9441e21c0d2..5a551ce8842 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -11,6 +11,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic-Client \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ @@ -27,7 +28,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/TUIC/Hysteria/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/TUIC/ShadowTLS/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ @@ -41,6 +42,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client:tuic-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-tls:shadow-tls \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -62,7 +64,7 @@ select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) choice prompt "Shadowsocks Client Selection" - default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client if aarch64 + default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client if aarch64 || x86_64 default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Client config PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_NONE_Client @@ -127,6 +129,14 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n +config PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS + bool "Include shadow-tls" + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + select PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client + depends on aarch64||arm||x86_64 + depends on !(TARGET_x86_geode||TARGET_x86_legacy) + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks bool "Include IPT2Socks" default n diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f5b84571781..78985818588 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -144,8 +144,11 @@ end if is_finded("ssr-redir") then o:value("ssr", translate("ShadowsocksR")) end -if is_finded("sslocal") or is_finded("ss-redir") then - o:value("ss", translate("Shadowsocks New Version")) +if is_finded("ss-local") or is_finded("ss-redir") then + o:value("ss", translate("Shadowsocks-libev New Version")) +end +if is_finded("sslocal") or is_finded("ssmanager") then + o:value("ss_rust", translate("Shadowsocks-rust Version")) end if is_finded("trojan") then o:value("trojan", translate("Trojan")) @@ -159,6 +162,9 @@ end if is_finded("tuic-client") then o:value("tuic", translate("TUIC")) end +if is_finded("shadow-tls") and is_finded("sslocal") then + o:value("shadowtls", translate("Shadow-TLS")) +end if is_finded("ipt2socks") then o:value("socks5", translate("Socks5")) end @@ -196,23 +202,27 @@ o.datatype = "host" o.rmempty = false o:depends("type", "ssr") o:depends("type", "ss") +o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") o:depends("type", "hysteria") o:depends("type", "tuic") +o:depends("type", "shadowtls") o:depends("type", "socks5") o = s:option(Value, "server_port", translate("Server Port")) o.datatype = "port" -o.rmempty = ({port_hopping=0 and false or true}) +o.rmempty = true o:depends("type", "ssr") o:depends("type", "ss") +o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends({type="hysteria",port_hopping=0}) +o:depends({type = "hysteria",port_hopping = 0}) o:depends("type", "tuic") +o:depends("type", "shadowtls") o:depends("type", "socks5") o = s:option(Flag, "auth_enable", translate("Enable Authentication")) @@ -234,8 +244,10 @@ o.password = true o.rmempty = true o:depends("type", "ssr") o:depends("type", "ss") +o:depends("type", "ss_rust") o:depends("type", "trojan") o:depends("type", "naiveproxy") +o:depends("type", "shadowtls") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) @@ -255,6 +267,7 @@ for _, v in ipairs(encrypt_methods_ss) do end o.rmempty = true o:depends("type", "ss") +o:depends("type", "ss_rust") o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o = s:option(Flag, "uot", translate("UDP over TCP")) @@ -282,10 +295,12 @@ if is_finded("xray-plugin") then end o.rmempty = true o:depends("type", "ss") +o:depends("type", "ss_rust") o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true o:depends("type", "ss") +o:depends("type", "ss_rust") o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do @@ -307,55 +322,162 @@ o:depends("type", "ssr") o = s:option(Value, "obfs_param", translate("Obfs param (optional)")) o:depends("type", "ssr") --- [[ Hysteria ]]-- -o = s:option(Flag, "port_hopping", translate("Enable Port Hopping")) + +-- [[ Hysteria2 ]]-- +o = s:option(Value, "hy2_auth", translate("Users Authentication")) +o:depends("type", "hysteria") +o.rmempty = false + +o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) +o:depends("type", "hysteria") +o:value("udp", translate("udp")) +o.default = "udp" +o.rmempty = true + +o = s:option(Flag, "port_hopping", translate("Port Hopping")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Value, "port_range", translate("Port Range")) -o:depends({type = "hysteria", port_hopping = "1"}) -o.datatype = "portrange" +o = s:option(Value, "port_range", translate("Port range")) +o:depends({type = "hysteria", port_hopping = 1}) +o.rmempty = false + +o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) +o:depends("type", "hysteria") o.rmempty = true +o.default = "0" -o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) +o = s:option(Flag, "flag_obfs", translate("Enable Obfuscation")) o:depends("type", "hysteria") -o:value("udp", translate("udp")) -o:value("wechat-video", translate("wechat-video")) -o:value("faketcp", translate("faketcp")) -o.default = "udp" o.rmempty = true +o.default = "0" + +o = s:option(Value, "obfs_type", translate("Obfuscation Type")) +o:depends({type = "hysteria", flag_obfs = "1"}) +o.rmempty = true +o.default = "salamander" + +o = s:option(Value, "salamander", translate("Obfuscation Password")) +o:depends({type = "hysteria", flag_obfs = "1"}) +o.rmempty = true +o.default = "cry_me_a_r1ver" -o = s:option(ListValue, "auth_type", translate("Authentication type")) +o = s:option(Flag, "flag_quicparam", translate("Hysterir QUIC parameters")) o:depends("type", "hysteria") -o:value("0", translate("disabled")) -o:value("1", translate("base64")) -o:value("2", translate("string")) o.rmempty = true +o.default = "0" -o = s:option(Value, "auth_payload", translate("Authentication payload")) -o:depends({type = "hysteria", auth_type = "1"}) -o:depends({type = "hysteria", auth_type = "2"}) +--[[Hysteria2 QUIC parameters setting]] +o = s:option(Value, "initstreamreceivewindow", translate("QUIC initStreamReceiveWindow")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.datatype = "uinteger" o.rmempty = true +o.default = "8388608" -o = s:option(Value, "recv_window", translate("QUIC connection receive window")) +o = s:option(Value, "maxstreamseceivewindow", translate("QUIC maxStreamReceiveWindow")) +o:depends({type = "hysteria",flag_quicparam = "1"}) o.datatype = "uinteger" -o:depends("type", "hysteria") o.rmempty = true +o.default = "8388608" -o = s:option(Value, "recv_window_conn", translate("QUIC stream receive window")) +o = s:option(Value, "initconnreceivewindow", translate("QUIC initConnReceiveWindow")) +o:depends({type = "hysteria",flag_quicparam = "1"}) o.datatype = "uinteger" -o:depends("type", "hysteria") o.rmempty = true +o.default = "20971520" -o = s:option(Flag, "disable_mtu_discovery", translate("Disable Path MTU discovery")) -o:depends("type", "hysteria") +o = s:option(Value, "maxconnreceivewindow", translate("QUIC maxConnReceiveWindow")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.datatype = "uinteger" o.rmempty = true +o.default = "20971520" -o = s:option(Flag, "lazy_start", translate("Lazy Start")) -o:depends("type", "hysteria") +o = s:option(Value, "maxincomingstreams", translate("QUIC maxIncomingStreams")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.datatype = "uinteger" +o.rmempty = true +o.default = "1024" + +o = s:option(Value, "maxidletimeout", translate("QUIC maxIdleTimeout(Unit:second)")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.rmempty = true +o.default = "30s" + +o = s:option(Value, "keepaliveperiod", translate("The keep-alive period.(Unit:second)")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.rmempty = true +o.default = "10s" + +o = s:option(Flag, "disablepathmtudiscovery", translate("Disable Path MTU discovery")) +o:depends({type = "hysteria",flag_quicparam = "1"}) o.rmempty = true +o.default = false + + +--[[ Shadow-TLS Options ]] +o = s:option(ListValue, "shadowtls_protocol", translate("shadowTLS protocol Version")) +o:depends("type", "shadowtls") +o:value("v3", translate("Enable V3 protocol.")) +o:value("v2", translate("Enable V2 protocol.")) +o.default = "v3" +o.rmempty = true + +o = s:option(Flag, "strict", translate("TLS 1.3 Strict mode")) +o:depends("type", "shadowtls") +o.default = "1" +o.rmempty = false + +o = s:option(Flag, "fastopen", translate("TCP Fast Open")) +o:depends("type", "shadowtls") +o.default = "0" +o.rmempty = false + +o = s:option(Flag, "disable_nodelay", translate("Disable TCP No_delay")) +o:depends("type", "shadowtls") o.default = "0" +o.rmempty = true + +o = s:option(Value, "shadowtls_sni", translate("shadow-TLS SNI")) +o:depends("type", "shadowtls") +o.datatype = "host" +o.rmempty = true +o.default = "" + +--[[ add a ListValue for Choose chain type,sslocal or vmess ]] +o = s:option(ListValue, "chain_type", translate("Shadow-TLS ChainPoxy type")) +o:depends("type", "shadowtls") +if is_finded("sslocal") then + o:value("sslocal", translate("Shadowsocks-rust Version")) +end +if is_finded("xray") or is_finded("v2ray") then + o:value("vmess", translate("Vmess Protocol")) +end +o.default = "sslocal" +o.rmempty = false + +o = s:option(Value, "sslocal_password",translate("Shadowsocks password")) +o:depends({type = "shadowtls", chain_type = "sslocal"}) +o.rmempty = true + +o = s:option(ListValue, "sslocal_method", translate("Encrypt Method")) +o:depends({type = "shadowtls", chain_type = "sslocal"}) +for _, v in ipairs(encrypt_methods_ss) do + o:value(v) +end + +o = s:option(Value, "vmess_uuid", translate("Vmess UUID")) +o:depends({type = "shadowtls", chain_type = "vmess"}) +o.rmempty = false +o.default = uuid + +o = s:option(ListValue, "vmess_method", translate("Encrypt Method")) +o:depends({type = "shadowtls", chain_type = "vmess"}) +for _, v in ipairs(securitys) do + o:value(v, v:lower()) +end +o.rmempty = true +o.default="auto" -- [[ TUIC ]] -- TuicNameId @@ -420,29 +542,29 @@ o.rmempty = true o = s:option(Value, "send_window", translate("TUIC send window")) o:depends("type", "tuic") o.datatype = "uinteger" -o.default = 16777216 +o.default = 20971520 o.rmempty = true o = s:option(Value, "receive_window", translate("TUIC receive window")) o:depends("type", "tuic") o.datatype = "uinteger" -o.default = 8388608 +o.default = 10485760 o.rmempty = true o = s:option(Flag, "disable_sni", translate("Disable SNI")) o:depends("type", "tuic") -o.default = 0 +o.default = "0" o.rmempty = true o = s:option(Flag, "zero_rtt_handshake", translate("Enable 0-RTT QUIC handshake")) o:depends("type", "tuic") -o.default = 0 +o.default = "0" o.rmempty = true ---Tuic settings for the local inbound socks5 server -o = s:option(Flag, "tuic_dual_stack", translate("Set if the listening socket should be dual-stack")) +-- Tuic settings for the local inbound socks5 server +o = s:option(Flag, "tuic_dual_stack", translate("Dual-stack Listening Socket")) o:depends("type", "tuic") -o.default = 0 +o.default = "0" o.rmempty = true o = s:option(Value, "tuic_max_package_size", translate("Maximum packet size the socks5 server can receive from external")) @@ -679,7 +801,6 @@ o.rmempty = true o = s:option(Value, "seed", translate("Obfuscate password (optional)")) o:depends("transport", "kcp") -o:depends("type", "hysteria") o.rmempty = true o = s:option(Flag, "congestion", translate("Congestion")) @@ -791,6 +912,11 @@ o:depends("tls", true) o:depends("type", "hysteria") o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.") +-- [[ Hysteria2 TLS pinSHA256 ]] -- +o = s:option(Value, "pinsha256", translate("Certificate fingerprint")) +o:depends({type ="hysteria", insecure = true }) +o.rmempty = true + -- [[ Mux ]]-- o = s:option(Flag, "mux", translate("Mux")) o.rmempty = false @@ -864,6 +990,7 @@ o.rmempty = true o.default = "0" o:depends("type", "ssr") o:depends("type", "ss") +o:depends("type", "ss_rust") o:depends("type", "trojan") o:depends("type", "hysteria") @@ -882,22 +1009,26 @@ if is_finded("kcptun-client") then o.default = "0" o:depends("type", "ssr") o:depends("type", "ss") + o:depends("type", "ss_rust") o = s:option(Value, "kcp_port", translate("KcpTun Port")) o.datatype = "port" o.default = 4000 o:depends("type", "ssr") o:depends("type", "ss") + o:depends("type", "ss_rust") o = s:option(Value, "kcp_password", translate("KcpTun Password")) o.password = true o:depends("type", "ssr") o:depends("type", "ss") + o:depends("type", "ss_rust") o = s:option(Value, "kcp_param", translate("KcpTun Param")) o.default = "--nocomp" o:depends("type", "ssr") o:depends("type", "ss") + o:depends("type", "ss_rust") end return m diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 2546b9f3699..95aa2c5c14c 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -106,14 +106,78 @@ msgstr "混淆参数(可选)" msgid "Authentication type" msgstr "验证类型" +msgid "Users Authentication" +msgstr "用户验证" + +msgid "NOTE: If the server uses the userpass authentication, the format must be username:password." +msgstr "注意: 如果服务器使用 userpass 验证,格式必须是 username:password。" + msgid "Enable Port Hopping" msgstr "启用端口跃迁" msgid "Port Range" msgstr "端口范围值" -msgid "Authentication payload" -msgstr "验证载荷" +msgid "Enable Lazy Mode" +msgstr "启用懒狗模式" + +msgid "Enable Obfuscation" +msgstr "启用混淆功能" + +msgid "Obfuscation Type" +msgstr "混淆类型" + +msgid "Obfuscation Password" +msgstr "混淆密码" + +msgid "Hysterir QUIC parameters" +msgstr "QUIC参数" + +msgid "QUIC initStreamReceiveWindow" +msgstr "QUIC初始流接收窗口大小。" + +msgid "QUIC maxStreamReceiveWindow" +msgstr "QUIC最大的流接收窗口大小" + +msgid "QUIC initConnReceiveWindow" +msgstr "QUIC初始的连接接收窗口大小" + +msgid "QUIC maxConnReceiveWindow" +msgstr "QUIC最大的连接接收窗口大小" + +msgid "QUIC maxIdleTimeout(Unit:second)" +msgstr "QUIC最长空闲超时时间(单位:秒)" + +msgid "The keep-alive period.(Unit:second)" +msgstr "心跳包发送间隔(单位:秒)" + + +msgid "Certificate fingerprint" +msgstr "证书指纹" + +msgid "shadowTLS protocol Version" +msgstr "ShadowTLS协议版本" + +msgid "TLS 1.3 Strict mode" +msgstr "TLS 1.3 限定模式" + +msgid "Disable TCP No_delay" +msgstr "禁用TCP无延迟" + +msgid "shadow-TLS SNI" +msgstr "服务器名称指示" + +msgid "Shadow-TLS ChainPoxy type" +msgstr "代理链类型" + +msgid "Shadowsocks-rust Version" +msgstr "shadowsocks rust版本" + +msgid "Vmess Protocol" +msgstr "VMESS协议" + +msgid "Shadowsocks password" +msgstr "shadowsocks密码" msgid "QUIC connection receive window" msgstr "QUIC 连接接收窗口" @@ -121,6 +185,7 @@ msgstr "QUIC 连接接收窗口" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" + msgid "Lazy Start" msgstr "延迟启动" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b8177272cf4..3a4a22bf832 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -18,13 +18,17 @@ LOG_FILE=/var/log/ssrplus.log TMP_PATH=/var/etc/ssrplus TMP_BIN_PATH=$TMP_PATH/bin TMP_DNSMASQ_PATH=/tmp/dnsmasq.d/dnsmasq-ssrplus.d + +chain_config_file= #generate shadowtls chain proxy config file tcp_config_file= udp_config_file= shunt_config_file= local_config_file= shunt_dns_config_file= tmp_local_port= + ARG_UDP= + dns_port="5335" #dns port china_dns_port="5333" #china_dns_port tmp_dns_port="300" #dns2socks temporary port @@ -34,6 +38,7 @@ tmp_shunt_port="303" #shunt temporary port tmp_shunt_local_port="304" #shunt socks temporary port tmp_shunt_dns_port="305" #shunt dns2socks temporary port tmp_tcp_local_port="306" #tcp socks temporary port + server_count=0 redir_tcp=0 redir_udp=0 @@ -217,60 +222,67 @@ start_dns() { fi } -gen_service_file() { +gen_service_file() { #1-server.type 2-cfgname 3-file_path + local fastopen if [ $(uci_get_by_name $2 fast_open) == "1" ]; then - local fastopen="true" + fastopen="true" else - local fastopen="false" + fastopen="false" fi - if [ $1 == "ssr" ]; then + case $1 in + ssr) cat <<-EOF >$3 { - "server": "0.0.0.0", - "server_ipv6": "::", - "server_port": $(uci_get_by_name $2 server_port), - "mode": "tcp_and_udp", - "password": "$(uci_get_by_name $2 password)", - "timeout": $(uci_get_by_name $2 timeout 60), - "method": "$(uci_get_by_name $2 encrypt_method)", - "protocol": "$(uci_get_by_name $2 protocol)", - "protocol_param": "$(uci_get_by_name $2 protocol_param)", - "obfs": "$(uci_get_by_name $2 obfs)", - "obfs_param": "$(uci_get_by_name $2 obfs_param)", - "fast_open": $fastopen + "server": "0.0.0.0", + "server_ipv6": "::", + "server_port": $(uci_get_by_name $2 server_port), + "mode": "tcp_and_udp", + "password": "$(uci_get_by_name $2 password)", + "timeout": $(uci_get_by_name $2 timeout 60), + "method": "$(uci_get_by_name $2 encrypt_method)", + "protocol": "$(uci_get_by_name $2 protocol)", + "protocol_param": "$(uci_get_by_name $2 protocol_param)", + "obfs": "$(uci_get_by_name $2 obfs)", + "obfs_param": "$(uci_get_by_name $2 obfs_param)", + "fast_open": $fastopen } - EOF - else - cat <<-EOF >$3 - { - "server": "0.0.0.0", - "server_ipv6": "::", - "server_port": $(uci_get_by_name $2 server_port), - "mode": "tcp_and_udp", - "password": "$(uci_get_by_name $2 password)", - "timeout": $(uci_get_by_name $2 timeout 60), - "method": "$(uci_get_by_name $2 encrypt_method_ss)", - "protocol": "socks", - "fast_open": $fastopen - } - EOF - fi + EOF + ;; + ss) + cat <<-EOF >$3 + { + "server": "0.0.0.0", + "server_ipv6": "::", + "server_port": $(uci_get_by_name $2 server_port), + "mode": "tcp_and_udp", + "password": "$(uci_get_by_name $2 password)", + "timeout": $(uci_get_by_name $2 timeout 60), + "method": "$(uci_get_by_name $2 encrypt_method_ss)", + "protocol": "socks", + "fast_open": $fastopen + } + EOF + ;; + esac } get_name() { case "$1" in ss) echo "Shadowsocks" ;; ssr) echo "ShadowsocksR" ;; + ss_rust) echo "Shadowsocks-Rust";; esac } -gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 +gen_config_file() { #server1 type2 code3 local_port4 socks_port5 chain6 threads5 case "$3" in 1) config_file=$tcp_config_file + chain_config_file=$(echo ${config_file}|sed 's/ssrplus\//ssrplus\/chain-/') ;; 2) config_file=$udp_config_file + chain_config_file=$(echo ${config_file}|sed 's/ssrplus\//ssrplus\/chain-/') ;; 3) if [ -n "$tmp_local_port" ]; then @@ -279,14 +291,16 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 local tmp_port=$tmp_shunt_local_port fi config_file=$shunt_config_file + chain_config_file=$(echo ${config_file}|sed 's/ssrplus\//ssrplus\/chain-/') ;; 4) local ss_protocol="socks" config_file=$local_config_file + chain_config_file=$(echo ${config_file}|sed 's/ssrplus\//ssrplus\/chain-/') ;; esac case "$2" in - ss | ssr) + ss | ssr | ss_rust) lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 ${ss_protocol:-redir} >$config_file if [ "$3" == "3" ]; then lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $tmp_port socks >$shunt_dns_config_file @@ -330,7 +344,25 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 >$config_file ;; tuic) - lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 >$config_file + case "$3" in + 1|2|4) + lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 >$config_file + ;; + 3) + [ -z "$6" ] && lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 >$shunt_dns_config_file || lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 >$config_file + ;; + esac + ;; + shadowtls) + case "$3" in + 1|2|4) + [ -z "$6" ] && lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file || lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file + ;; + 3) + lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file + lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file + ;; + esac ;; socks5) /usr/share/shadowsocksr/genred2config.sh $config_file $2 $mode $4 \ @@ -344,7 +376,7 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 threads5 /usr/share/shadowsocksr/genred2config.sh $config_file $2 $(uci_get_by_name $1 iface "br-lan") $4 ;; esac - sed -i 's/\\//g' $TMP_PATH/*-ssr-*.json + sed -i 's/\\//g' $TMP_PATH/*-ssr-*.json #>/dev/null > 2>&1 } start_udp() { @@ -376,17 +408,34 @@ start_udp() { hysteria) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "hysteria") --version | awk '{print $1,$3}') Started!" + echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print $1,$3}') Started!" ;; tuic) - # gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port - # ln_start_bin $(first_type tuic-client) tuic-client --config $udp_config_file - # ln_start_bin $(first_type ipt2socks) ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_udp_local_port -l $tmp_udp_port - # echolog "UDP TPROXY Relay:tuic-client $($(first_type tuic-client) --version) Started!" # FIXME: ipt2socks cannot handle udp reply from tuic + # 20230726 uncomment following 4 lines + gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_local_port + ln_start_bin $(first_type tuic-client) tuic-client --config $udp_config_file + ln_start_bin $(first_type ipt2socks) ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_udp_local_port -l $tmp_udp_port + echolog "UDP TPROXY Relay:tuic-client $($(first_type tuic-client) --version) Started!" echolog "TUIC UDP TPROXY Relay not supported!" - redir_udp=0 - ARG_UDP="" + #redir_udp=0 + #ARG_UDP="" + ;; + shadowtls) + gen_config_file $UDP_RELAY_SERVER $type 2 ${tmp_udp_local_port} + gen_config_file $UDP_RELAY_SERVER $type 2 ${tmp_udp_local_port} 0 chain + ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file + local chain_type=$(uci_get_by_name $UDP_RELAY_SERVER chain_type) + case ${chain_type} in + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $udp_config_file + echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $udp_config_file + echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type sslocal) --version) Started!" + ;; + esac ;; socks5) # if [ "$(uci_get_by_name $UDP_RELAY_SERVER auth_enable 0)" == "1" ]; then @@ -408,7 +457,7 @@ start_udp() { start_shunt() { local type=$(uci_get_by_name $SHUNT_SERVER type) case "$type" in - ss | ssr) + ss | ssr |ss_rust) gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port ss_program="$(first_type ${type}local ${type}-redir)" ln_start_bin $ss_program ${type}-redir -c $shunt_config_file @@ -463,21 +512,39 @@ start_shunt() { fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q - echolog "shunt:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + echolog "shunt:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" ;; tuic) - if [ -n "$tmp_local_port" ]; then - local tmp_port=$tmp_local_port - else - local tmp_port=$tmp_shunt_local_port - gen_config_file $SHUNT_SERVER $type 3 $tmp_port - ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_config_file - fi - ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_port -l $tmp_shunt_port + local chain_shunt_port="30${tmp_shunt_port}" + gen_config_file $SHUNT_SERVER $type 3 $chain_shunt_port 0 chain #make a tuic socks:30303, make a ipt2socks redir:303 + ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_config_file + ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $chain_shunt_port -l $tmp_shunt_port + + [ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port + gen_config_file $SHUNT_SERVER $type 3 $tmp_port # make a tuic socks :304 + ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_dns_config_file ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q - echolog "shunt:tuic-client $($(first_type tuic-client) --version) Started!" + echolog "Netflix Separated Shunt Server:tuic-client $($(first_type tuic-client) --version) Started!" # FIXME: ipt2socks cannot handle udp reply from tuic - redir_udp=0 + #redir_udp=0 + ;; + shadowtls) + [ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port + gen_config_file $SHUNT_SERVER $type 3 "10${tmp_shunt_port}" $tmp_port chain/$tmp_shunt_port #make a redir:303 and a socks:304 + #echo "debug \$tmp_port=$tmp_port, \$tmp_shunt_port=${tmp_shunt_port}, \$tmp_shunt_local_port=$tmp_shunt_local_port" + ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:"${tmp_port}" 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type) + case ${chain_type} in + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file + echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $shunt_config_file + echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type sslocal) --version) Started!" + ;; + esac ;; # socks5) # if [ "$(uci_get_by_name $SHUNT_SERVER auth_enable 0)" == "1" ]; then @@ -517,7 +584,7 @@ start_local() { [ "$LOCAL_SERVER" == "$SHUNT_SERVER" ] && tmp_local_port=$local_port local type=$(uci_get_by_name $LOCAL_SERVER type) case "$type" in - ss | ssr) + ss | ssr | ss_rust) gen_config_file $LOCAL_SERVER $type 4 $local_port ss_program="$(first_type ${type}local ${type}-local)" ln_start_bin $ss_program ${type}-local -c $local_config_file @@ -538,21 +605,40 @@ start_local() { naiveproxy) gen_config_file $LOCAL_SERVER $type 4 $local_port ln_start_bin $(first_type naive) naive --config $local_config_file - echolog "Global_Socks5:$($(first_type $type) --version | head -1) Started!" + echolog "Global_Socks5:$($(first_type naive) --version | head -1) Started!" ;; hysteria) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file - echolog "Global_Socks5:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" fi ;; tuic) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 $local_port ln_start_bin $(first_type tuic-client) tuic-client --config $local_config_file + echolog "Global Socks5:tuic-client $($(first_type tuic-client) --version) Started!" + fi + ;; + shadowtls) + #respective config for global socks and main node + if [ "$_local" == "2" ]; then + gen_config_file $LOCAL_SERVER $type 4 "10${tmp_tcp_local_port}" + gen_config_file $LOCAL_SERVER $type 4 0 $local_port chain/"10${tmp_tcp_local_port}" + ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_local_config_file + local chain_type=$(uci_get_by_name $LOCAL_SERVER chain_type) + case ${chain_type} in + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $local_config_file + echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $local_config_file + echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type sslocal) --version) Started!" + ;; + esac fi - echolog "Global_Socks5:tuic-client $($(first_type tuic-client) --version) Started!" ;; *) [ -e /proc/sys/net/ipv6 ] && local listenip='-i ::' @@ -620,14 +706,43 @@ Start_Run() { hysteria) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file - echolog "Main node:$($(first_type hysteria) --version | awk '{print $1,$3}') Started!" + echolog "Main node:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" ;; tuic) + local PARAM + [ $mode == "tcp" ] && PARAM="-T" || PARAM="" gen_config_file $GLOBAL_SERVER $type 1 $tmp_tcp_local_port ln_start_bin $(first_type tuic-client) tuic-client --config $tcp_config_file - ln_start_bin $(first_type ipt2socks) ipt2socks -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_tcp_local_port -l $tcp_port + ln_start_bin $(first_type ipt2socks) ipt2socks "$PARAM" -R -b 0.0.0.0 -4 -s 127.0.0.1 -p $tmp_tcp_local_port -l $tcp_port + if [ -n $socks_port ] && [ $GLOBAL_SERVER == $LOCAL_SERVER ]; then #start a new tuic instance + gen_config_file $GLOBAL_SERVER $type 4 $socks_port + ln_start_bin $(first_type tuic-client) tuic-client --config $local_config_file + echolog "Global Socks5:tuic-client $($(first_type tuic-client) --version) Started!" + fi echolog "Main node:tuic-client $($(first_type tuic-client) --version) Started!" ;; + shadowtls) + if [ -z "$socks_port" ]; then + gen_config_file $GLOBAL_SERVER $type 1 "10${tmp_tcp_local_port}" + gen_config_file $GLOBAL_SERVER $type 1 "10${tmp_tcp_local_port}" 0 chain + else + gen_config_file $GLOBAL_SERVER $type 1 "10${tmp_tcp_local_port}" + gen_config_file $GLOBAL_SERVER $type 1 "10${tmp_tcp_local_port}" $socks_port chain + fi + local chain_type=$(uci_get_by_name $GLOBAL_SERVER chain_type) + case ${chain_type} in + vmess) + ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -c $tcp_config_file + echolog "Mian node:shadow-tls chain-to $($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file + ln_start_bin $(first_type sslocal) sslocal -c $tcp_config_file + echolog "Main node:shadow-tls chain-to $($(first_type sslocal) --version) Started!" + ;; + esac + ;; socks5) if [ "$(uci_get_by_name $GLOBAL_SERVER auth_enable 0)" == "1" ]; then local auth="-a $(uci_get_by_name $GLOBAL_SERVER username) -k $(uci_get_by_name $GLOBAL_SERVER password)" @@ -981,6 +1096,7 @@ reset() { set shadowsocksr.@global[0].switch_time='667' set shadowsocksr.@global[0].switch_timeout='5' set shadowsocksr.@global[0].switch_try_count='3' +# set shadowsocksr.@global[0].default_packet_encoding='xudp' set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 9c68714b221..d16c03c0ed9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -8,6 +8,9 @@ local proto = arg[2] local local_port = arg[3] or "0" local socks_port = arg[4] or "0" +local chain = arg[5] or "0" +local chain_local_port = string.split(chain, "/")[2] or "0" + local server = ucursor:get_all("shadowsocksr", server_section) local outbound_settings = nil @@ -275,71 +278,151 @@ local ss = { reuse_port = true } local hysteria = { - server = server.server .. ":" .. server.server_port, - protocol = server.hysteria_protocol, - up_mbps = tonumber(server.uplink_capacity), - down_mbps = tonumber(server.downlink_capacity), + server = server.server_port and (server.server .. ":" .. server.server_port) or (server.server .. ":" .. server.port_range), + bandwidth = { + up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, + down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil + }, socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and { - listen = "0.0.0.0:" .. tonumber(socks_port), - timeout = 300, - disable_udp = false + listen = "0.0.0.0:" .. tonumber(socks_port), + disable_udp = false + } or nil, +--[[ tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { + listen = "0.0.0.0:" .. tonumber(local_port) +} or nil,]] + tcpRedirect = (proto:find("tcp") and local_port ~= "0") and { + listen = "0.0.0.0:" .. tonumber(local_port) } or nil, - redirect_tcp = (proto:find("tcp") and local_port ~= "0") and { - listen = "0.0.0.0:" .. tonumber(local_port), - timeout = 300 + udpTProxy = (proto:find("udp") and local_port ~= "0") and { + listen = "0.0.0.0:" .. tonumber(local_port) } or nil, - tproxy_udp = (proto:find("udp") and local_port ~= "0") and { - listen = "0.0.0.0:" .. tonumber(local_port), - timeout = 60 + obfs = (server.flag_obfs == "1") and { + type = server.obfs_type, + salamander = { password = server.salamander } } or nil, - obfs = server.seed, - auth = (server.auth_type == "1") and server.auth_payload or nil, - auth_str = (server.auth_type == "2") and server.auth_payload or nil, - alpn = server.quic_tls_alpn, - server_name = server.tls_host, - insecure = (server.insecure == "1") and true or false, - ca = (server.certificate) and server.certpath or nil, - recv_window_conn = tonumber(server.recv_window_conn), - recv_window = tonumber(server.recv_window), - disable_mtu_discovery = (server.disable_mtu_discovery == "1") and true or false, + quic = (server.flag_quicparam == "1" ) and { + initStreamReceiveWindow = (server.initstreamreceivewindow and server.initstreamreceivewindow or nil), + maxStreamReceiveWindow = (server.maxstreamseceivewindow and server.maxstreamseceivewindow or nil), + initConnReceiveWindow = (server.initconnreceivewindow and server.initconnreceivewindow or nil), + maxConnReceiveWindow = (server.maxconnreceivewindow and server.maxconnreceivewindow or nil), + maxIdleTimeout = (server.maxincomingstreams and server.maxincomingstreams or nil), + keepAlivePeriod = (server.maxincomingstreams and server.keepaliveperiod or nil), + disable_mtu_discovery = (server.disablepathmtudiscovery == "1") and true or false + } or nil, + auth = server.hy2_auth, + tls = (server.tls_host) and { + sni = server.tls_host, + insecure = (server.insecure == "1") and true or false, + pinSHA256 = (server.insecure == "1") and server.pinsha256 or nil + } or { + sni = server.server, + insecure = (server.insecure == "1") and true or false + }, fast_open = (server.fast_open == "1") and true or false, - lazy_start = (server.lazy_start == "1") and true or false + lazy = (server.lazy_mode == "1") and true or false } local shadowtls = { - client = { - server_addr = server.server .. ":" .. server.server_port, - listen = "127.0.0.1:" .. tonumber(local_port), - tls_names = server.shadowtls_sni, - password = server.password - }, - v3 = (server.shadowtls_protocol == "v3") and true or false, - disable_nodelay = (server.disable_nodelay == "1") and true or false, - fastopen = (server.fastopen == "1") and true or false, - strict = (server.strict == "1") and true or false + client = { + server_addr = server.server_port and server.server .. ":" .. server.server_port or nil, + listen = "127.0.0.1:" .. tonumber(local_port), + tls_names = server.shadowtls_sni, + password = server.password + }, + v3 = (server.shadowtls_protocol == "v3") and true or false, + disable_nodelay = (server.disable_nodelay == "1") and true or false, + fastopen = (server.fastopen == "1") and true or false, + strict = (server.strict == "1") and true or false +} +local chain_sslocal = { + locals = local_port ~= "0" and { + { + local_address = "0.0.0.0", + local_port = (chain_local_port == "0" and tonumber(server.local_port) or tonumber(chain_local_port)), + mode = (proto:find("tcp,udp") and "tcp_and_udp") or proto .. "_only", + protocol = "redir", + tcp_redir = "redirect", + --tcp_redir = "tproxy", + udp_redir = "tproxy" + }, + socks_port ~= "0" and { + protocol = "socks", + local_address = "0.0.0.0", + local_port = tonumber(socks_port) + } or nil + } or {{ + protocol = "socks", + local_address = "0.0.0.0", + ocal_port = tonumber(socks_port) + }}, + servers = { + { + server = "127.0.0.1", + server_port = (tonumber(local_port) == 0 and tonumber(chain_local_port) or tonumber(local_port)), + method = server.sslocal_method, + password = server.sslocal_password + } + } +} +local chain_vmess = { + inbounds = (local_port ~= "0") and { + { + port = (chain_local_port == "0" and tonumber(server.local_port) or tonumber(chain_local_port)), + protocol = "dokodemo-door", + settings = { + network = proto, + followRedirect = true + }, + streamSettings = { + sockopt = {tproxy = "redirect"} + }, + sniffing = { + enable = true, + destOverride = {"http","tls"} + } + }, + (proto:find("tcp") and socks_port ~= "0") and { + protocol = "socks", + port = tonumber(socks_port) + } or nil + } or { protocol = "socks",port = tonumber(socks_port) }, + outbound = { + protocol = "vmess", + settings = { + vnext = {{ + address = "127.0.0.1", + port = (tonumber(local_port) == 0 and tonumber(chain_local_port) or tonumber(local_port)), + users = {{ + id = (server.vmess_uuid), + security = server.vmess_method, + level = 0 + }} + }} + } + } } local tuic = { relay = { - server = server.server .. ":" .. server.server_port, - ip = server.tuic_ip, - uuid = server.tuic_uuid, - password = server.tuic_passwd, - certificates = server.certificate and { server.certpath } or nil, - udp_relay_mode = server.udp_relay_mode, - congestion_control = server.congestion_control, - heartbeat = server.heartbeat and server.heartbeat .. "s" or nil, - timeout = server.timeout and server.timeout .. "s" or nil, - gc_interval = server.gc_interval and server.gc_interval .. "s" or nil, - gc_lifetime = server.gc_lifetime and server.gc_lifetime .. "s" or nil, - alpn = server.tls_alpn, - disable_sni = (server.disable_sni == "1") and true or false, - zero_rtt_handshake = (server.zero_rtt_handshake == "1") and true or false, - send_window = tonumber(server.send_window), - receive_window = tonumber(server.receive_window) - }, + server = server.server_port and server.server .. ":" .. server.server_port, + ip = server.tuic_ip, + uuid = server.tuic_uuid, + password = server.tuic_passwd, + certificates = server.certificate and { server.certpath } or nil, + udp_relay_mode = server.udp_relay_mode, + congestion_control = server.congestion_control, + heartbeat = server.heartbeat and server.heartbeat .. "s" or nil, + timeout = server.timeout and server.timeout .. "s" or nil, + gc_interval = server.gc_interval and server.gc_interval .. "s" or nil, + gc_lifetime = server.gc_lifetime and server.gc_lifetime .. "s" or nil, + alpn = server.tls_alpn, + disable_sni = (server.disable_sni == "1") and true or false, + zero_rtt_handshake = (server.zero_rtt_handshake == "1") and true or false, + send_window = tonumber(server.send_window), + receive_window = tonumber(server.receive_window) + }, ["local"] = { - server = "[::]:" .. tonumber(local_port), - dual_stack = (server.tuic_dual_stack == "1") and true or false, - max_packet_size = tonumber(server.tuic_max_package_size) + server = tonumber(socks_port) and "[::]:" .. (socks_port == "0" and local_port or tonumber(socks_port)), + dual_stack = (server.tuic_dual_stack == "1") and true or false, + max_packet_size = tonumber(server.tuic_max_package_size) } } local config = {} @@ -351,6 +434,14 @@ function config:new(o) end function config:handleIndex(index) local switch = { + ss_rust = function() + ss.protocol = socks_port + if server.plugin and server.plugin ~= "none" then + ss.plugin = server.plugin + ss.plugin_opts = server.plugin_opts or nil + end + print(json.stringify(ss, 1)) + end, ss = function() ss.protocol = socks_port if server.plugin and server.plugin ~= "none" then @@ -379,6 +470,28 @@ function config:handleIndex(index) hysteria = function() print(json.stringify(hysteria, 1)) end, + shadowtls = function() + local chain_switch = { + sslocal = function() + if (chain:find("chain")) then + print(json.stringify(chain_sslocal, 1)) + else + print(json.stringify(shadowtls, 1)) + end + end, + vmess = function() + if (chain:find("chain")) then + print(json.stringify(chain_vmess, 1)) + else + print(json.stringify(shadowtls, 1)) + end + end + } + local ChainType = server.chain_type + if chain_switch[ChainType] then + chain_switch[ChainType]() + end + end, tuic = function() print(json.stringify(tuic, 1)) end @@ -388,4 +501,4 @@ function config:handleIndex(index) end end local f = config:new() -f:handleIndex(server.type) +f:handleIndex(server.type) \ No newline at end of file diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile new file mode 100644 index 00000000000..480de07e8e2 --- /dev/null +++ b/shadow-tls/Makefile @@ -0,0 +1,65 @@ +# SPDX-License-Identifier: GPL-2.0-only + +include $(TOPDIR)/rules.mk +include $(INCLUDE_DIR)/package.mk + +PKG_NAME:=shadow-tls +PKG_VERSION:=0.2.23 +PKG_RELEASE:=1 + +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=FluffyTigerFear +RELEASE_HEAD:=$(PKG_NAME) +RELEASE_FOOT:=unknown-linux-musl +ifeq ($(ARCH),aarch64) + RELEASE_ARCH:=$(RELEASE_HEAD)-aarch64-$(RELEASE_FOOT) + PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 +else ifeq ($(ARCH),arm) + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabi + PKG_HASH:=eb1346ec83e154f2722ab671fbcdd1c95739b4a7c29655effae9cd4ffe8d23b6 + else + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf + PKG_HASH:=be005c23a4d5c51d52f2a96f1f060734dd43b80a7912516c130d433d04c7dfa1 + endif +else ifeq ($(ARCH),x86_64) + RELEASE_ARCH:=$(RELEASE_HEAD)-x86_64-$(RELEASE_FOOT) + PKG_HASH:=acc7296e50cf310a15fca5756efa5f721ffc62dd0e4dd16581bc229b21b4b549 +else + PKG_SOURCE:=dummy + PKG_HASH:=dummy +endif + +define Download/shadow-tls + URL:=https://github.com/ihciah/shadow-tls/releases/download/v$(PKG_VERSION) + URL_FILE:=$(RELEASE_ARCH) + FILE:=$(RELEASE_ARCH) + HASH:=$(PKG_HASH) +endef + +define Package/shadow-tls + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=A proxy to expose real tls handshake to the firewall. + URL:=https://github.com/ihciah/shadow-tls + DEPENDS:=@USE_MUSL @(aarch64||arm||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) +endef + +define Build/Prepare + $(call Build/Prepare/Default) +ifneq ($(CONFIG_PACKAGE_shadow-tls),) + $(call Download,shadow-tls) +endif +endef + +define Build/Compile +endef + +define Package/shadow-tls/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(DL_DIR)/$(RELEASE_ARCH) $(1)/usr/bin/shadow-tls +endef + +$(eval $(call BuildPackage,shadow-tls)) From 8b888e6d7b85e62c1f7b1d89b729707e2f604543 Mon Sep 17 00:00:00 2001 From: TeF Date: Thu, 28 Sep 2023 13:39:32 +0800 Subject: [PATCH 406/972] fix file hash for shadow-tls Makefile --- shadow-tls/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile index 480de07e8e2..488e6c436cd 100644 --- a/shadow-tls/Makefile +++ b/shadow-tls/Makefile @@ -13,7 +13,7 @@ RELEASE_HEAD:=$(PKG_NAME) RELEASE_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) RELEASE_ARCH:=$(RELEASE_HEAD)-aarch64-$(RELEASE_FOOT) - PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 + PKG_HASH:=62081cdb011bcf82064c0f3313ee581df536914106108b137efdc5014c207b5b else ifeq ($(ARCH),arm) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) From 1db1789913beca22cae2bebefaa05e5cb80ea10a Mon Sep 17 00:00:00 2001 From: TeF Date: Thu, 28 Sep 2023 15:44:00 +0800 Subject: [PATCH 407/972] fixed duplicated ALPN setting --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 3 --- 1 file changed, 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 78985818588..f88243fcc94 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -899,9 +899,6 @@ o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) o:depends("tls", true) o:depends("type", "tuic") -o.rmempty = true - -o = s:option(Value, "quic_tls_alpn", translate("QUIC TLS ALPN")) o:depends("type", "hysteria") o.rmempty = true From 96ccfb9fab1d5b441e0c41d3faa7e0c9bb0a1439 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Fri, 6 Oct 2023 09:21:59 +0800 Subject: [PATCH 408/972] Update client-config.lua fix hysteria client params --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 ------ 1 file changed, 6 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f88243fcc94..c183ee69c48 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -393,12 +393,6 @@ o.datatype = "uinteger" o.rmempty = true o.default = "20971520" -o = s:option(Value, "maxincomingstreams", translate("QUIC maxIncomingStreams")) -o:depends({type = "hysteria",flag_quicparam = "1"}) -o.datatype = "uinteger" -o.rmempty = true -o.default = "1024" - o = s:option(Value, "maxidletimeout", translate("QUIC maxIdleTimeout(Unit:second)")) o:depends({type = "hysteria",flag_quicparam = "1"}) o.rmempty = true From 2625e04e65142849c786a2c00c08114105715786 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Fri, 6 Oct 2023 16:06:56 +0800 Subject: [PATCH 409/972] Update client-config.lua fix minor errors in translation --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c183ee69c48..7d56e3d9701 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -334,12 +334,12 @@ o:value("udp", translate("udp")) o.default = "udp" o.rmempty = true -o = s:option(Flag, "port_hopping", translate("Port Hopping")) +o = s:option(Flag, "port_hopping", translate("Enable Port Hopping")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Value, "port_range", translate("Port range")) +o = s:option(Value, "port_range", translate("Port Range")) o:depends({type = "hysteria", port_hopping = 1}) o.rmempty = false From 8f3f5817df4656803651282e97465d35014c94f3 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Sat, 7 Oct 2023 09:45:24 +0800 Subject: [PATCH 410/972] Update gen_config.lua fix gen config module for tuic server params --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d16c03c0ed9..7e467c49939 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -420,7 +420,7 @@ local tuic = { receive_window = tonumber(server.receive_window) }, ["local"] = { - server = tonumber(socks_port) and "[::]:" .. (socks_port == "0" and local_port or tonumber(socks_port)), + server = tonumber(socks_port) and (server.tuic_dual_stack == "1" and "[::1]:" or "127.0.0.1:") .. (socks_port == "0" and local_port or tonumber(socks_port)), dual_stack = (server.tuic_dual_stack == "1") and true or false, max_packet_size = tonumber(server.tuic_max_package_size) } @@ -501,4 +501,4 @@ function config:handleIndex(index) end end local f = config:new() -f:handleIndex(server.type) \ No newline at end of file +f:handleIndex(server.type) From 7b32657d002c404ba243fd289cfc7c908cac449d Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Sat, 7 Oct 2023 09:47:59 +0800 Subject: [PATCH 411/972] Update ssr-plus.po fix translation for tuic Dual-stack Listening Socket --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 95aa2c5c14c..39f4c53ad18 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -969,8 +969,8 @@ msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2 msgid "TUIC receive window" msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" -msgid "Set if the listening socket should be dual-stack" -msgstr "设置监听套接字为双栈" +msgid "Dual-stack Listening Socket" +msgstr "双栈Socket监听" msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" From 1a5ac959c100c3183f5be9d462165c67ea8ee013 Mon Sep 17 00:00:00 2001 From: zhusir Date: Sun, 8 Oct 2023 02:47:17 +0800 Subject: [PATCH 412/972] v2ray-*: update to 5.8.0 (#1282) --- v2ray-core/Makefile | 4 ++-- v2ray-plugin/Makefile | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 60e91cb1420..fc28d74da6e 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.7.0 +PKG_VERSION:=5.8.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=599fcd264537e39178b6008a11af68816dfd1609e19a9cf8adc8b2a4240ee370 +PKG_HASH:=340798554d2c7f0e5fb719f9d9dd6a667dfe93ccdd3b1d653c3a3bdb04ed2d00 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 7f351cf7dae..05be7ab2b28 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.7.0 +PKG_VERSION:=5.8.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ec0096e36cfe01a946197b44ae51ea76a3dc6a76f846a99f3b985be59ae167fb +PKG_HASH:=9fb6b1605f3283b58fb89e8488a3ce5ad4719580c01f86dae21e9e5ac1b81744 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 06cf02e6eb865085fb24d36d18ca7547b4b46b00 Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Mon, 9 Oct 2023 11:01:14 +0800 Subject: [PATCH 413/972] fix hysteria minor errors --- .../model/cbi/shadowsocksr/client-config.lua | 20 +++++++++++++------ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 11 ++++++---- .../usr/share/shadowsocksr/gen_config.lua | 20 +++++++++++++------ 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 7d56e3d9701..dc4abf0ed14 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -328,7 +328,7 @@ o = s:option(Value, "hy2_auth", translate("Users Authentication")) o:depends("type", "hysteria") o.rmempty = false -o = s:option(ListValue, "hysteria_protocol", translate("Protocol")) +o = s:option(ListValue, "transport_protocol", translate("Protocol")) o:depends("type", "hysteria") o:value("udp", translate("udp")) o.default = "udp" @@ -339,6 +339,12 @@ o:depends("type", "hysteria") o.rmempty = true o.default = "0" +o = s:option(Value, "hopinterval", translate("Port Hopping Interval(Unit:Second)")) +o:depends({type = "hysteria", port_hopping = 1}) +o.datatype = "uinteger" +o.rmempty = true +o.default = "30" + o = s:option(Value, "port_range", translate("Port Range")) o:depends({type = "hysteria", port_hopping = 1}) o.rmempty = false @@ -396,12 +402,14 @@ o.default = "20971520" o = s:option(Value, "maxidletimeout", translate("QUIC maxIdleTimeout(Unit:second)")) o:depends({type = "hysteria",flag_quicparam = "1"}) o.rmempty = true -o.default = "30s" +o.datatype = "uinteger" +o.default = "30" o = s:option(Value, "keepaliveperiod", translate("The keep-alive period.(Unit:second)")) o:depends({type = "hysteria",flag_quicparam = "1"}) o.rmempty = true -o.default = "10s" +o.datatype = "uinteger" +o.default = "10" o = s:option(Flag, "disablepathmtudiscovery", translate("Disable Path MTU discovery")) o:depends({type = "hysteria",flag_quicparam = "1"}) @@ -767,14 +775,14 @@ o:depends("transport", "kcp") o.default = 50 o.rmempty = true -o = s:option(Value, "uplink_capacity", translate("Uplink Capacity")) +o = s:option(Value, "uplink_capacity", translate("Uplink Capacity(Default:Mbps)")) o.datatype = "uinteger" o:depends("transport", "kcp") o:depends("type", "hysteria") o.default = 5 o.rmempty = true -o = s:option(Value, "downlink_capacity", translate("Downlink Capacity")) +o = s:option(Value, "downlink_capacity", translate("Downlink Capacity(Default:Mbps)")) o.datatype = "uinteger" o:depends("transport", "kcp") o:depends("type", "hysteria") @@ -832,6 +840,7 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks", reality = false}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", reality = false}) o:depends({type = "v2ray", v2ray_protocol = "http", reality = false}) o:depends("type", "trojan") +o:depends("type", "hysteria") -- [[ TLS部分 ]] -- o = s:option(Flag, "tls_sessionTicket", translate("Session Ticket")) @@ -887,7 +896,6 @@ o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" o:depends("tls", true) o:depends("reality", true) -o:depends("type", "hysteria") o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 39f4c53ad18..aa317d88b64 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -118,6 +118,9 @@ msgstr "启用端口跃迁" msgid "Port Range" msgstr "端口范围值" +msgid "Port Hopping Interval(Unit:Second)" +msgstr "端口跃迁间隔(单位:秒)" + msgid "Enable Lazy Mode" msgstr "启用懒狗模式" @@ -870,11 +873,11 @@ msgstr "最大传输单元" msgid "TTI" msgstr "传输时间间隔" -msgid "Uplink Capacity" -msgstr "上行链路容量" +msgid "Uplink Capacity(Default:Mbps)" +msgstr "上行链路容量(默认:Mbps)" -msgid "Downlink Capacity" -msgstr "下行链路容量" +msgid "Downlink Capacity(Default:Mbps)" +msgstr "下行链路容量(默认:Mbps)" msgid "Read Buffer Size" msgstr "读取缓冲区大小" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 7e467c49939..db89b47c8a0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -284,12 +284,20 @@ local hysteria = { down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil }, socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and { - listen = "0.0.0.0:" .. tonumber(socks_port), - disable_udp = false + listen = "0.0.0.0:" .. tonumber(socks_port), + disable_udp = false } or nil, ---[[ tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { + transport = { + type = server.transport_protocol, + udp = { + hopInterval = tonumber(server.hopinterval) and tonumber(server.hopinterval) .. "s" or nil + } + }, +--[[ + tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { listen = "0.0.0.0:" .. tonumber(local_port) -} or nil,]] +} or nil, +]] tcpRedirect = (proto:find("tcp") and local_port ~= "0") and { listen = "0.0.0.0:" .. tonumber(local_port) } or nil, @@ -305,8 +313,8 @@ local hysteria = { maxStreamReceiveWindow = (server.maxstreamseceivewindow and server.maxstreamseceivewindow or nil), initConnReceiveWindow = (server.initconnreceivewindow and server.initconnreceivewindow or nil), maxConnReceiveWindow = (server.maxconnreceivewindow and server.maxconnreceivewindow or nil), - maxIdleTimeout = (server.maxincomingstreams and server.maxincomingstreams or nil), - keepAlivePeriod = (server.maxincomingstreams and server.keepaliveperiod or nil), + maxIdleTimeout = (tonumber(server.maxidletimeout) and tonumber(server.maxidletimeout) .. "s" or nil), + keepAlivePeriod = (tonumber(server.keepaliveperiod) and tonumber(server.keepaliveperiod) .. "s" or nil), disable_mtu_discovery = (server.disablepathmtudiscovery == "1") and true or false } or nil, auth = server.hy2_auth, From f88025985263d936ba614df76b78ea83494f768c Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Mon, 9 Oct 2023 11:07:15 +0800 Subject: [PATCH 414/972] fix minor bugs in client-config --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index dc4abf0ed14..f9d5a61b27e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -220,7 +220,7 @@ o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends({type = "hysteria",port_hopping = 0}) +o:depends({type = "hysteria",port_hopping = "0"}) o:depends("type", "tuic") o:depends("type", "shadowtls") o:depends("type", "socks5") @@ -340,13 +340,13 @@ o.rmempty = true o.default = "0" o = s:option(Value, "hopinterval", translate("Port Hopping Interval(Unit:Second)")) -o:depends({type = "hysteria", port_hopping = 1}) +o:depends({type = "hysteria", port_hopping = "1"}) o.datatype = "uinteger" o.rmempty = true o.default = "30" o = s:option(Value, "port_range", translate("Port Range")) -o:depends({type = "hysteria", port_hopping = 1}) +o:depends({type = "hysteria", port_hopping = "1"}) o.rmempty = false o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) From 7adf5da131f1038384f473bc0f557caf4636fe75 Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Mon, 9 Oct 2023 11:21:34 +0800 Subject: [PATCH 415/972] fix minor bugs --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f9d5a61b27e..3b99424df63 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -220,7 +220,7 @@ o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends({type = "hysteria",port_hopping = "0"}) +o:depends({type = "hysteria",port_hopping = false}) o:depends("type", "tuic") o:depends("type", "shadowtls") o:depends("type", "socks5") @@ -340,13 +340,13 @@ o.rmempty = true o.default = "0" o = s:option(Value, "hopinterval", translate("Port Hopping Interval(Unit:Second)")) -o:depends({type = "hysteria", port_hopping = "1"}) +o:depends({type = "hysteria", port_hopping = true}) o.datatype = "uinteger" o.rmempty = true o.default = "30" o = s:option(Value, "port_range", translate("Port Range")) -o:depends({type = "hysteria", port_hopping = "1"}) +o:depends({type = "hysteria", port_hopping = true}) o.rmempty = false o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) From f22ac6f64b3b4888348928c33bf70f0042dcf354 Mon Sep 17 00:00:00 2001 From: zhusir Date: Mon, 9 Oct 2023 21:08:48 +0800 Subject: [PATCH 416/972] hysteria: update ot 2.0.4 --- hysteria/Makefile | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index d28a9439c15..4c085d010a9 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -1,16 +1,17 @@ # SPDX-License-Identifier: GPL-3.0-only # -# Copyright (C) 2022 ImmortalWrt.org +# Copyright (C) 2021 ImmortalWrt.org include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=1.3.5 +PKG_VERSION:=2.0.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9b3b5fca069d215a1f4c9cf3aa0a7b4e9b1fe21216fddb483a20ab42eb4a4dd7 +PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? +PKG_HASH:=cca4b80fa8bfb509ed6da98638962937c7ce5f56bff0d104e5721da1b6ab058f +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT PKG_LICENSE_FILE:=LICENSE @@ -19,10 +20,15 @@ PKG_MAINTAINER:=Tianling Shen PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/apernet/hysteria -GO_PKG_BUILD_PKG:=$(GO_PKG)/app/cmd -GO_PKG_LDFLAGS_X:=main.appVersion=$(PKG_VERSION) +GO_PKG_BUILD_PKG:=$(GO_PKG)/app +GO_PKG_LDFLAGS_X = \ + $(GO_PKG)/app/cmd.appVersion=v$(PKG_VERSION) \ + $(GO_PKG)/app/cmd.appType=release \ + $(GO_PKG)/app/cmd.appPlatform=$(GO_OS) \ + $(GO_PKG)/app/cmd.appArch=$(GO_ARCH) include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk @@ -45,8 +51,8 @@ endef define Package/hysteria/install $(call GoPackage/Package/Install/Bin,$(PKG_INSTALL_DIR)) - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/cmd $(1)/usr/bin/hysteria + $(INSTALL_DIR) $(1)/usr/bin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/app $(1)/usr/bin/hysteria endef $(eval $(call GoBinPackage,hysteria)) From cca5c6d0a0b00fc6aebcd4ec6b5965052e4bffeb Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Tue, 10 Oct 2023 15:09:31 +0800 Subject: [PATCH 417/972] Fixed subscription issues which showing ss nodes as v2ray nodes --- .../model/cbi/shadowsocksr/client-config.lua | 15 ++------------- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 7 +++---- .../root/usr/share/shadowsocksr/gen_config.lua | 8 -------- 3 files changed, 5 insertions(+), 25 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3b99424df63..ef864c9245e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -145,10 +145,10 @@ if is_finded("ssr-redir") then o:value("ssr", translate("ShadowsocksR")) end if is_finded("ss-local") or is_finded("ss-redir") then - o:value("ss", translate("Shadowsocks-libev New Version")) + o:value("ss", translate("Shadowsocks-libev Version")) end if is_finded("sslocal") or is_finded("ssmanager") then - o:value("ss_rust", translate("Shadowsocks-rust Version")) + o:value("ss", translate("Shadowsocks-rust Version")) end if is_finded("trojan") then o:value("trojan", translate("Trojan")) @@ -202,7 +202,6 @@ o.datatype = "host" o.rmempty = false o:depends("type", "ssr") o:depends("type", "ss") -o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") @@ -216,7 +215,6 @@ o.datatype = "port" o.rmempty = true o:depends("type", "ssr") o:depends("type", "ss") -o:depends("type", "ss_rust") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") @@ -244,7 +242,6 @@ o.password = true o.rmempty = true o:depends("type", "ssr") o:depends("type", "ss") -o:depends("type", "ss_rust") o:depends("type", "trojan") o:depends("type", "naiveproxy") o:depends("type", "shadowtls") @@ -267,7 +264,6 @@ for _, v in ipairs(encrypt_methods_ss) do end o.rmempty = true o:depends("type", "ss") -o:depends("type", "ss_rust") o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o = s:option(Flag, "uot", translate("UDP over TCP")) @@ -295,12 +291,10 @@ if is_finded("xray-plugin") then end o.rmempty = true o:depends("type", "ss") -o:depends("type", "ss_rust") o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true o:depends("type", "ss") -o:depends("type", "ss_rust") o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do @@ -989,7 +983,6 @@ o.rmempty = true o.default = "0" o:depends("type", "ssr") o:depends("type", "ss") -o:depends("type", "ss_rust") o:depends("type", "trojan") o:depends("type", "hysteria") @@ -1008,26 +1001,22 @@ if is_finded("kcptun-client") then o.default = "0" o:depends("type", "ssr") o:depends("type", "ss") - o:depends("type", "ss_rust") o = s:option(Value, "kcp_port", translate("KcpTun Port")) o.datatype = "port" o.default = 4000 o:depends("type", "ssr") o:depends("type", "ss") - o:depends("type", "ss_rust") o = s:option(Value, "kcp_password", translate("KcpTun Password")) o.password = true o:depends("type", "ssr") o:depends("type", "ss") - o:depends("type", "ss_rust") o = s:option(Value, "kcp_param", translate("KcpTun Param")) o.default = "--nocomp" o:depends("type", "ssr") o:depends("type", "ss") - o:depends("type", "ss_rust") end return m diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 3a4a22bf832..932febedba0 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -270,7 +270,6 @@ get_name() { case "$1" in ss) echo "Shadowsocks" ;; ssr) echo "ShadowsocksR" ;; - ss_rust) echo "Shadowsocks-Rust";; esac } @@ -300,7 +299,7 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 chain6 threads5 ;; esac case "$2" in - ss | ssr | ss_rust) + ss | ssr) lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 ${ss_protocol:-redir} >$config_file if [ "$3" == "3" ]; then lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $tmp_port socks >$shunt_dns_config_file @@ -457,7 +456,7 @@ start_udp() { start_shunt() { local type=$(uci_get_by_name $SHUNT_SERVER type) case "$type" in - ss | ssr |ss_rust) + ss | ssr) gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port ss_program="$(first_type ${type}local ${type}-redir)" ln_start_bin $ss_program ${type}-redir -c $shunt_config_file @@ -584,7 +583,7 @@ start_local() { [ "$LOCAL_SERVER" == "$SHUNT_SERVER" ] && tmp_local_port=$local_port local type=$(uci_get_by_name $LOCAL_SERVER type) case "$type" in - ss | ssr | ss_rust) + ss | ssr) gen_config_file $LOCAL_SERVER $type 4 $local_port ss_program="$(first_type ${type}local ${type}-local)" ln_start_bin $ss_program ${type}-local -c $local_config_file diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index db89b47c8a0..9e84683e28d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -442,14 +442,6 @@ function config:new(o) end function config:handleIndex(index) local switch = { - ss_rust = function() - ss.protocol = socks_port - if server.plugin and server.plugin ~= "none" then - ss.plugin = server.plugin - ss.plugin_opts = server.plugin_opts or nil - end - print(json.stringify(ss, 1)) - end, ss = function() ss.protocol = socks_port if server.plugin and server.plugin ~= "none" then From e27428630b4e3f77b72c611245fdb3e7afa1344c Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Wed, 11 Oct 2023 08:55:07 +0800 Subject: [PATCH 418/972] Fix Makefile minor errors I really appreciate everyone who reviewed my PR --- luci-app-ssr-plus/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 5a551ce8842..3018dfceef3 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -42,7 +42,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client:tuic-client \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-tls:shadow-tls \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS:shadow-tls \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -130,7 +130,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client default n config PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS - bool "Include shadow-tls" + bool "Include shadow-TLS" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client depends on aarch64||arm||x86_64 From 400c4b7dc2b6acba432cb0049b349632502fe21f Mon Sep 17 00:00:00 2001 From: tefiszx Date: Thu, 12 Oct 2023 08:45:04 +0800 Subject: [PATCH 419/972] formatted code writing --- .../model/cbi/shadowsocksr/client-config.lua | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ef864c9245e..d8f5ca14fa9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -370,43 +370,43 @@ o.default = "0" --[[Hysteria2 QUIC parameters setting]] o = s:option(Value, "initstreamreceivewindow", translate("QUIC initStreamReceiveWindow")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.datatype = "uinteger" o.rmempty = true o.default = "8388608" o = s:option(Value, "maxstreamseceivewindow", translate("QUIC maxStreamReceiveWindow")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.datatype = "uinteger" o.rmempty = true o.default = "8388608" o = s:option(Value, "initconnreceivewindow", translate("QUIC initConnReceiveWindow")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.datatype = "uinteger" o.rmempty = true o.default = "20971520" o = s:option(Value, "maxconnreceivewindow", translate("QUIC maxConnReceiveWindow")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.datatype = "uinteger" o.rmempty = true o.default = "20971520" o = s:option(Value, "maxidletimeout", translate("QUIC maxIdleTimeout(Unit:second)")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.rmempty = true o.datatype = "uinteger" o.default = "30" o = s:option(Value, "keepaliveperiod", translate("The keep-alive period.(Unit:second)")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.rmempty = true o.datatype = "uinteger" o.default = "10" o = s:option(Flag, "disablepathmtudiscovery", translate("Disable Path MTU discovery")) -o:depends({type = "hysteria",flag_quicparam = "1"}) +o:depends({type = "hysteria", flag_quicparam = "1"}) o.rmempty = true o.default = false @@ -907,7 +907,7 @@ o.description = translate("If true, allowss insecure connection at TLS client, e -- [[ Hysteria2 TLS pinSHA256 ]] -- o = s:option(Value, "pinsha256", translate("Certificate fingerprint")) -o:depends({type ="hysteria", insecure = true }) +o:depends({type = "hysteria", insecure = true }) o.rmempty = true -- [[ Mux ]]-- From fb22646eccf869ac590e3cf15e044a7b6299daf0 Mon Sep 17 00:00:00 2001 From: zhusir Date: Thu, 12 Oct 2023 14:15:16 +0800 Subject: [PATCH 420/972] hysteria: update to 2.1.0 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 4c085d010a9..572e3817ee3 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.0.4 +PKG_VERSION:=2.1.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=cca4b80fa8bfb509ed6da98638962937c7ce5f56bff0d104e5721da1b6ab058f +PKG_HASH:=f3163b5918bcc197e32a1448aa6b7f2dcf3c0f67eed8d603f8bd5bedb460f68c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 673d8e10f66873fe424be957149d3bd77631da09 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 13 Oct 2023 00:28:52 +0800 Subject: [PATCH 421/972] treewide: refactor to use PKG_BUILD_FLAGS --- v2ray-plugin/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 05be7ab2b28..c138b70e219 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -20,6 +20,7 @@ PKG_MAINTAINER:=madeye PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/shadowsocks/v2ray-plugin GO_PKG_LDFLAGS_X:=main.VERSION=v$(PKG_VERSION) From ab0749a543650b0157a8b93e903717d0e0ff3f36 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 15 Oct 2023 01:37:31 +0800 Subject: [PATCH 422/972] luci-app-ssr-plus: unified code style Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- luci-app-ssr-plus/Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 3018dfceef3..c66cbddf10f 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -10,8 +10,8 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic-Client \ - CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ @@ -28,7 +28,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/TUIC/ShadowTLS/Hysteria/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuci/ShadowTLS/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ @@ -41,8 +41,8 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ - +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client:tuic-client \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS:shadow-tls \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Tuci_Client:tuic-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS:shadow-tls \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -121,16 +121,16 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG default n -config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client - bool "Include tuic-client" +config PACKAGE_$(PKG_NAME)_INCLUDE_Tuci_Client + bool "Include Tuic-Client" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks depends on aarch64||arm||i386||x86_64 depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n -config PACKAGE_$(PKG_NAME)_INCLUDE_Shadow-TLS - bool "Include shadow-TLS" +config PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS + bool "Include Shadow-TLS" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client depends on aarch64||arm||x86_64 From a2018397be088270fa4c48d42d8711f194ac1a11 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 15 Oct 2023 01:50:41 +0800 Subject: [PATCH 423/972] treewide: refactor to use PKG_BUILD_FLAGS Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- ipt2socks/Makefile | 1 + naiveproxy/Makefile | 1 + shadowsocksr-libev/Makefile | 1 + v2ray-core/Makefile | 1 + v2raya/Makefile | 1 + xray-core/Makefile | 1 + xray-plugin/Makefile | 1 + 7 files changed, 7 insertions(+) diff --git a/ipt2socks/Makefile b/ipt2socks/Makefile index c900132339b..a7bddda1f01 100644 --- a/ipt2socks/Makefile +++ b/ipt2socks/Makefile @@ -14,6 +14,7 @@ PKG_HASH:=5279eb1cb7555cf9292423cc9f672dc43e6e214b3411a6df26a6a1cfa59d88b7 PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 PKG_LICENSE:=AGPL-3.0 PKG_LICENSE_FILE:=LICENSE diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 4a2e9b003b2..82963f972b3 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -22,6 +22,7 @@ PKG_BUILD_DEPENDS+= ninja/host endif PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 ifneq ($(CONFIG_CPU_TYPE)," ") CPU_TYPE:=$(word 1, $(subst +," ,$(CONFIG_CPU_TYPE))) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 53612b23325..304c4f18a80 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -21,6 +21,7 @@ PKG_LICENSE_FILES:=LICENSE PKG_FIXUP:=autoreconf PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 PKG_BUILD_PARALLEL:=1 PKG_INSTALL:=1 diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index fc28d74da6e..4f480ec51fe 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -19,6 +19,7 @@ PKG_MAINTAINER:=Tianling Shen PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/v2fly/v2ray-core/v5 GO_PKG_BUILD_PKG:=$(GO_PKG)/main diff --git a/v2raya/Makefile b/v2raya/Makefile index e0912055392..fb680970cad 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -20,6 +20,7 @@ PKG_MAINTAINER:=Tianling Shen PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/v2rayA/v2rayA GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.Version=$(PKG_VERSION) diff --git a/xray-core/Makefile b/xray-core/Makefile index 5d2bb2950cd..fef5441bd8f 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -16,6 +16,7 @@ PKG_BUILD_DIR:=$(BUILD_DIR)/Xray-core-$(PKG_VERSION) PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/xtls/xray-core GO_PKG_LDFLAGS:=-s -w diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 56d6f956faf..ec1ecb9fbdb 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -19,6 +19,7 @@ PKG_MAINTAINER:=Tianling Shen PKG_BUILD_DEPENDS:=golang/host PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/teddysun/xray-plugin From 77d17d36d988f2dd280ca428eeb5e3a1eee97a36 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 15 Oct 2023 01:55:46 +0800 Subject: [PATCH 424/972] treewide: drop `$(AUTORELEASE)` Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- microsocks/Makefile | 2 +- simple-obfs/Makefile | 2 +- tcping/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/microsocks/Makefile b/microsocks/Makefile index 061a752624e..ebd4b59fb64 100644 --- a/microsocks/Makefile +++ b/microsocks/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=microsocks PKG_VERSION:=1.0.3 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)? diff --git a/simple-obfs/Makefile b/simple-obfs/Makefile index aa7be91a485..aa733a60b40 100644 --- a/simple-obfs/Makefile +++ b/simple-obfs/Makefile @@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=simple-obfs PKG_VERSION:=0.0.5 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocks/simple-obfs.git diff --git a/tcping/Makefile b/tcping/Makefile index 884d518d75b..a6884c6e0fb 100644 --- a/tcping/Makefile +++ b/tcping/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tcping PKG_VERSION:=0.3 -PKG_RELEASE:=$(AUTORELEASE) +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/Mattraks/tcping/tar.gz/$(PKG_VERSION)? From 5aceccb8834a2e7814ca01579140f6d0798a41c2 Mon Sep 17 00:00:00 2001 From: qwerttvv <56712217+qwerttvv@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:48:36 +0800 Subject: [PATCH 425/972] shadowsocks-rust: update to 1.17.0 (#1291) --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 2ab83da87f0..19c53346c4f 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.16.2 +PKG_VERSION:=1.17.0 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=da51732b2a55d0f2e3270f70b638a32f303b675c0db636abefa5ce316e3269f7 + PKG_HASH:=a96cd12ec3d7216e028418790c1ae9d0f0ef3220317a136c7397526644f8f98f else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=681315f912d5570e61c845e4adf6b315d9021ce1a191ec942cb1d0456e2fdd16 + PKG_HASH:=3f993ee38ad5b059ea92f993aee7606536dbdc274f816225784f0dc50e4d3ef3 else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=43a4479557b02ea003c7a0fc55df75adfadd2fc2532193379c28f6be721fa3ee + PKG_HASH:=2e387ea0d07c4da0a653dd4bd3ff016666d0d51d62a3e8df49a3c82a7db6a724 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=d19bb83a9dfdd26252d92ccdafee9151d53857df289f3e3cee9bcdf31fc4d5b0 + PKG_HASH:=af194ca7f9b50a8b76673fc929bf9cbabcf1dc345bbada8ad3e7be8d4302ce2e else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=cb8a0af5d1effbe6a3e7c21bacf48eeeb1198926430045e1c48d6fa565bc7d86 + PKG_HASH:=e4cca3b239dc7858b8a90dafacbd2bdca5201ccdaa886635ac1148c13ef4cd24 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=444b59889893073a23cdb4ebac9c33d1fad14356a761460f070108fab318193f + PKG_HASH:=05ea77c8b05b96fbf6f1a7b19ec397bec07fb527bbccee801b41eb3a0b9406c0 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e989f1cacfb4f9a8c7eccd6e5ffcfd40c996f728ca12a4b2d6d0dd93fab1e980 + PKG_HASH:=9ed72f3a257923f1b141aacba7ab96b2aed7aac193a935512d4418f6132348b4 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From 679215619755b8252def291ba2f24ee7292fb7ac Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 15 Oct 2023 21:57:15 +0800 Subject: [PATCH 426/972] CI: drop `powerpc` arch --- .github/workflows/multi-arch-test-build.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 3cc97874f3c..09408a879fd 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -22,12 +22,6 @@ jobs: - arch: mipsel_24kc target: mt7621 - - arch: powerpc_464fp - target: apm821xx-nand - - - arch: powerpc_8548 - target: mpc85xx-p1010 - - arch: aarch64_cortex-a53 target: mvebu-cortexa53 From 4afa1b124861b2ac976092cd6c55d9e7d7e9b588 Mon Sep 17 00:00:00 2001 From: G Date: Tue, 17 Oct 2023 11:29:12 +0800 Subject: [PATCH 427/972] luci: fix typo Update Makefile --- luci-app-ssr-plus/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index c66cbddf10f..135c38b6716 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -28,7 +28,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuci/ShadowTLS/Hysteria/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuic/ShadowTLS/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ @@ -41,7 +41,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Tuci_Client:tuic-client \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS:shadow-tls \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ @@ -121,7 +121,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG default n -config PACKAGE_$(PKG_NAME)_INCLUDE_Tuci_Client +config PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client bool "Include Tuic-Client" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks From c3883a8f429948743dce535a1720163f34d80689 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 26 Oct 2023 03:11:39 +0800 Subject: [PATCH 428/972] v2ray-plugin: update to 5.9.0 (#1299) --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index c138b70e219..e4561634fdc 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.8.0 +PKG_VERSION:=5.9.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9fb6b1605f3283b58fb89e8488a3ce5ad4719580c01f86dae21e9e5ac1b81744 +PKG_HASH:=5a155dbe976bccee225e171ae71af6f19d32caca16194ef68b4aee81e57f8f0f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From cfa7a9fa3173563674d78384dd265646286a4294 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 26 Oct 2023 03:11:56 +0800 Subject: [PATCH 429/972] v2ray-core: update to 5.9.0 (#1300) --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 4f480ec51fe..268d4d301fb 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.8.0 +PKG_VERSION:=5.9.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=340798554d2c7f0e5fb719f9d9dd6a667dfe93ccdd3b1d653c3a3bdb04ed2d00 +PKG_HASH:=8373b3cf066e870a7eecd61f0e2c63083cc3f36713ec4d22170801eae180a2e7 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From cbaf9ad7cdcf55ff2d54c12ef4ea218e3e36f225 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 26 Oct 2023 03:12:10 +0800 Subject: [PATCH 430/972] hysteria: update to 2.1.1 (#1301) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 572e3817ee3..019dadf6b46 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.1.0 +PKG_VERSION:=2.1.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=f3163b5918bcc197e32a1448aa6b7f2dcf3c0f67eed8d603f8bd5bedb460f68c +PKG_HASH:=a9ccbd7b38ccb9b8d0f3f75c18bd6846e32a58442dbdc2946629be4b3c5f6424 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From a33d777e866e537a72472d8b90ebbb1cb434c746 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 28 Oct 2023 00:43:24 +0800 Subject: [PATCH 431/972] v2ray-core: update to 5.10.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 268d4d301fb..dfe4865dea4 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.9.0 +PKG_VERSION:=5.10.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8373b3cf066e870a7eecd61f0e2c63083cc3f36713ec4d22170801eae180a2e7 +PKG_HASH:=c18883f5dddaa4a374a0c334433ad6178a8c459a636b29f4facf8a0dacfcd41d PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 5ad2fda1e47818e15ae7c5884df843bda7bd51c4 Mon Sep 17 00:00:00 2001 From: XiaoliChan <30458572+XiaoliChan@users.noreply.github.com> Date: Sat, 28 Oct 2023 18:15:39 +0800 Subject: [PATCH 432/972] luci-app-ssr-plus: add mosdns support (#1298) * [DNS] Add mosdns support Signed-off-by: Xiaoli Chan * [DNS] Add mosdns in luci app makefile Signed-off-by: Xiaoli Chan * [DNS] self review Signed-off-by: Xiaoli Chan * [DNS] enable MosDNS features Signed-off-by: Xiaoli Chan * [MosDNS] Less file Signed-off-by: Xiaoli Chan * [SSRP] Beginner: review I Signed-off-by: Xiaoli Chan * Fix dns issues Signed-off-by: Xiaoli Chan --- luci-app-ssr-plus/Makefile | 10 ++- .../model/cbi/shadowsocksr/advanced.lua | 37 +++++++++ .../luasrc/model/cbi/shadowsocksr/client.lua | 18 +++- .../luasrc/model/cbi/shadowsocksr/status.lua | 4 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 15 ++++ .../root/etc/init.d/shadowsocksr | 82 +++++++++++++++---- .../root/etc/ssrplus/mosdns-config.yaml | 43 ++++++++++ luci-app-ssr-plus/root/usr/bin/ssr-monitor | 10 +++ 8 files changed, 200 insertions(+), 19 deletions(-) create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 135c38b6716..9fcb465ab5d 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,14 +1,15 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=187 -PKG_RELEASE:=2 +PKG_VERSION:=188 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS \ @@ -40,6 +41,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:mosdns \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS:shadow-tls \ @@ -116,6 +118,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG bool "Include ChinaDNS-NG" default y +config PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS + bool "Include MosDNS" + default n + config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index cfb2ea4e2a4..ea08f58bda5 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -67,6 +67,43 @@ o.default = "https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt" o.description = translate("Customize Netflix IP Url") o:depends("netflix_enable", "1") +o = s:option(ListValue, "shunt_dns_mode", translate("DNS Query Mode For Shunt Mode")) +o:value("1", translate("Use DNS2SOCKS query and cache")) +o:value("2", translate("Use MOSDNS query")) +o:depends("netflix_enable", "1") +o.default = 1 + +o = s:option(Value, "shunt_dnsserver", translate("Anti-pollution DNS Server For Shunt Mode")) +o:value("8.8.4.4:53", translate("Google Public DNS (8.8.4.4)")) +o:value("8.8.8.8:53", translate("Google Public DNS (8.8.8.8)")) +o:value("208.67.222.222:53", translate("OpenDNS (208.67.222.222)")) +o:value("208.67.220.220:53", translate("OpenDNS (208.67.220.220)")) +o:value("209.244.0.3:53", translate("Level 3 Public DNS (209.244.0.3)")) +o:value("209.244.0.4:53", translate("Level 3 Public DNS (209.244.0.4)")) +o:value("4.2.2.1:53", translate("Level 3 Public DNS (4.2.2.1)")) +o:value("4.2.2.2:53", translate("Level 3 Public DNS (4.2.2.2)")) +o:value("4.2.2.3:53", translate("Level 3 Public DNS (4.2.2.3)")) +o:value("4.2.2.4:53", translate("Level 3 Public DNS (4.2.2.4)")) +o:value("1.1.1.1:53", translate("Cloudflare DNS (1.1.1.1)")) +o:depends("shunt_dns_mode", "1") +o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") +o.datatype = "ip4addrport" + +o = s:option(ListValue, "shunt_mosdns_dnsserver", translate("Anti-pollution DNS Server")) +o:value("tcp://8.8.4.4:53,tcp://8.8.8.8:53", translate("Google Public DNS")) +o:value("tcp://208.67.222.222:53,tcp://208.67.220.220:53", translate("OpenDNS")) +o:value("tcp://209.244.0.3:53,tcp://209.244.0.4:53", translate("Level 3 Public DNS-1 (209.244.0.3-4)")) +o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4.2.2.1-2)")) +o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) +o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) +o:depends("shunt_dns_mode", "2") +o.description = translate("Custom DNS Server for mosdns") + +o = s:option(Flag, "shunt_mosdns_ipv6", translate("Disable IPv6 In MOSDNS Query Mode (Shunt Mode)")) +o:depends("shunt_dns_mode", "2") +o.rmempty = false +o.default = "0" + o = s:option(Flag, "adblock", translate("Enable adblock")) o.rmempty = false diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 482949c54a6..339efb0b58d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -48,7 +48,7 @@ for _, key in pairs(key_table) do o:value(key, server_table[key]) end -if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then +if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') == '1' then o = s:option(ListValue, "netflix_server", translate("Netflix Node")) o:value("nil", translate("Disable")) o:value("same", translate("Same as Global Server")) @@ -92,6 +92,7 @@ o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) +o:value("3", translate("Use MOSDNS query (Not Support Oversea Mode)")) o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 @@ -114,6 +115,21 @@ o:depends("pdnsd_enable", "2") o.description = translate("Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)") o.datatype = "ip4addrport" +o = s:option(ListValue, "tunnel_forward_mosdns", translate("Anti-pollution DNS Server")) +o:value("tcp://8.8.4.4:53,tcp://8.8.8.8:53", translate("Google Public DNS")) +o:value("tcp://208.67.222.222:53,tcp://208.67.220.220:53", translate("OpenDNS")) +o:value("tcp://209.244.0.3:53,tcp://209.244.0.4:53", translate("Level 3 Public DNS-1 (209.244.0.3-4)")) +o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4.2.2.1-2)")) +o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) +o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) +o:depends("pdnsd_enable", "3") +o.description = translate("Custom DNS Server for mosdns") + +o = s:option(Flag, "mosdns_ipv6", translate("Disable IPv6 in MOSDNS query mode")) +o:depends("pdnsd_enable", "3") +o.rmempty = false +o.default = "0" + if is_finded("chinadns-ng") then o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) o:value("", translate("Disable ChinaDNS-NG")) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 1400c91495d..dfe2a1b085b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -112,7 +112,7 @@ else s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end -if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') ~= '0' then +if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') == '1' then s = m:field(DummyValue, "pdnsd_run", translate("DNS Anti-pollution")) s.rawhtml = true if pdnsd_run == 1 then @@ -169,7 +169,7 @@ s.rawhtml = true s.template = "shadowsocksr/refresh" s.value = ip_count .. " " .. translate("Records") -if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then +if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') == '1' then s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) s.rawhtml = true s.template = "shadowsocksr/refresh" diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index aa317d88b64..1e33f7a7ae1 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -531,6 +531,21 @@ msgstr "使用 DNS2TCP 查询" msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" +msgid "Use MOSDNS query (Not Support Oversea Mode)" +msgstr "使用 MOSDNS 查询 (不支持海外用户回国模式)" + +msgid "Disable IPv6 in MOSDNS query mode" +msgstr "禁止 MOSDNS 返回 IPv6 记录" + +msgid "DNS Query Mode For Shunt Mode" +msgstr "分流模式下的 DNS 查询模式" + +msgid "Anti-pollution DNS Server For Shunt Mode" +msgstr "分流模式下的访问国外域名 DNS 服务器" + +msgid "Disable IPv6 In MOSDNS Query Mode (Shunt Mode)" +msgstr "禁止 MOSDNS 返回 IPv6 记录 (分流模式)" + msgid "DNS Server IP:Port" msgstr "DNS 服务器 IP:Port" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 932febedba0..2415b62469f 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -178,17 +178,23 @@ ln_start_bin() { ${file_func:-echolog " - ${ln_name}"} "$@" >/dev/null 2>&1 & } +add_dns_into_ipset() { + case "$1" in + gfw) ipset add gfwlist ${2%:*} 2>/dev/null ;; + oversea) ipset add oversea ${2%:*} 2>/dev/null ;; + *) ipset add ss_spec_wan_ac ${2%:*} nomatch 2>/dev/null ;; + esac +} + start_dns() { local ssrplus_dns="$(uci_get_by_type global pdnsd_enable 0)" local dnsserver="$(uci_get_by_type global tunnel_forward 8.8.4.4:53)" local run_mode="$(uci_get_by_type global run_mode)" if [ "$ssrplus_dns" != "0" ]; then - case "$run_mode" in - gfw) ipset add gfwlist ${dnsserver%:*} 2>/dev/null ;; - oversea) ipset add oversea ${dnsserver%:*} 2>/dev/null ;; - *) ipset add ss_spec_wan_ac ${dnsserver%:*} nomatch 2>/dev/null ;; - esac + if [ -n "$dnsserver" ]; then + add_dns_into_ipset $run_mode $dnsserver + fi case "$ssrplus_dns" in 1) ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#} @@ -199,6 +205,26 @@ start_dns() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q pdnsd_enable_flag=2 ;; + 3) + local mosdns_ipv6="$(uci_get_by_type global mosdns_ipv6)" + local mosdns_dnsserver="$(uci_get_by_type global tunnel_forward_mosdns)" + output=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do + dnsserver=${i%:*} + dnsserver=${i##*/} + add_dns_into_ipset $run_mode $dnsserver + echo " - addr: $i" + echo " enable_pipeline: true" + done) + + awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$dns_port/g" > $TMP_PATH/mosdns-config.yaml + if [ "$mosdns_ipv6" == "0" ]; then + sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config.yaml + else + sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config.yaml + fi + ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config.yaml + pdnsd_enable_flag=3 + ;; esac if [ "$run_mode" = "router" ]; then @@ -453,6 +479,33 @@ start_udp() { esac } +shunt_dns_command() { + local shunt_dns_mode="$(uci_get_by_type global shunt_dns_mode)" + local shunt_dnsserver="$(uci_get_by_type global shunt_dnsserver)" + case "$shunt_dns_mode" in + 1) + ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port $shunt_dnsserver 127.0.0.1:$tmp_shunt_dns_port -q + ;; + 2) + local shunt_mosdns_ipv6="$(uci_get_by_type global shunt_mosdns_ipv6)" + local shunt_mosdns_dnsserver="$(uci_get_by_type global shunt_mosdns_dnsserver)" + output=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do + echo " - addr: $i" + echo " socks5: \"127.0.0.1:$tmp_port\"" + echo " enable_pipeline: true" + done) + awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$tmp_shunt_dns_port/g" > $TMP_PATH/mosdns-config-shunt.yaml + + if [ "$shunt_mosdns_ipv6" == "0" ]; then + sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml + else + sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml + fi + ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config-shunt.yaml + ;; + esac +} + start_shunt() { local type=$(uci_get_by_name $SHUNT_SERVER type) case "$type" in @@ -466,14 +519,14 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type ${type}local ${type}-local) ${type}-local -c $shunt_dns_config_file fi - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$(get_name $type) Started!" ;; v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port ln_start_bin $(first_type xray v2ray) v2ray run -config $shunt_config_file - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) @@ -485,7 +538,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type trojan) $type --config $shunt_dns_config_file fi - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$($(first_type trojan) --version 2>&1 | head -1) Started!" ;; naiveproxy) @@ -497,7 +550,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type naive) naive --config $shunt_dns_config_file fi - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$($(first_type "naive") --version 2>&1 | head -1) Started!" redir_udp=0 ;; @@ -510,7 +563,7 @@ start_shunt() { gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" ;; tuic) @@ -522,7 +575,7 @@ start_shunt() { [ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port gen_config_file $SHUNT_SERVER $type 3 $tmp_port # make a tuic socks :304 ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_dns_config_file - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "Netflix Separated Shunt Server:tuic-client $($(first_type tuic-client) --version) Started!" # FIXME: ipt2socks cannot handle udp reply from tuic #redir_udp=0 @@ -532,7 +585,7 @@ start_shunt() { gen_config_file $SHUNT_SERVER $type 3 "10${tmp_shunt_port}" $tmp_port chain/$tmp_shunt_port #make a redir:303 and a socks:304 #echo "debug \$tmp_port=$tmp_port, \$tmp_shunt_port=${tmp_shunt_port}, \$tmp_shunt_local_port=$tmp_shunt_local_port" ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:"${tmp_port}" 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type) case ${chain_type} in vmess) @@ -558,7 +611,7 @@ start_shunt() { # local tmp_port=$tmp_shunt_local_port # ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus # fi - # ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + # shunt_dns_command # echolog "shunt:$type REDIRECT/TPROXY Started!" # ;; *) @@ -570,7 +623,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus fi - ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port 8.8.8.8:53 127.0.0.1:$tmp_shunt_dns_port -q + shunt_dns_command echolog "shunt:$type REDIRECT/TPROXY Started!" ;; esac @@ -1096,6 +1149,7 @@ reset() { set shadowsocksr.@global[0].switch_timeout='5' set shadowsocksr.@global[0].switch_try_count='3' # set shadowsocksr.@global[0].default_packet_encoding='xudp' + set shadowsocksr.@global[0].shunt_dns='1' set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml new file mode 100644 index 00000000000..a0b9f5c5617 --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml @@ -0,0 +1,43 @@ +log: + level: info +plugins: + - tag: lazy_cache + type: cache + args: + size: 8000 + lazy_cache_ttl: 86400 + + - tag: forward_google + type: forward + args: + concurrent: 2 + upstreams: + + - tag: main_sequence_disable_IPv6 + type: sequence + args: + - exec: $lazy_cache + - exec: prefer_ipv4 + - exec: $forward_google + - matches: + - qtype 28 65 + exec: reject 0 + + - tag: main_sequence_with_IPv6 + type: sequence + args: + - exec: $lazy_cache + - exec: $forward_google + + - tag: udp_server + type: udp_server + args: + entry: DNS_MODE + listen: 0.0.0.0:DNS_PORT + + - tag: tcp_server + type: tcp_server + args: + entry: DNS_MODE + listen: 0.0.0.0:DNS_PORT + diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index fb9ed57e77d..f637d5090a9 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -104,6 +104,16 @@ while [ "1" == "1" ]; do #死循环 ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_dns_port ssrplus-dns ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q fi + #mosdns + elif [ "$pdnsd_process" -eq 3 ]; then + icount=$(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | wc -l) + if [ "$icount" -lt 1 ]; then #如果进程挂掉就重启它 + logger -t "$NAME" "mosdns tunnel error.restart!" + echolog "mosdns tunnel error.restart!" + dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type mosdns) mosdns start -c /etc/mosdns/config.yaml + fi fi #chinadns-ng if [ "$(uci -q get "dhcp.@dnsmasq[0]._unused_ssrp_changed")" = "1" ]; then From 26e1c414fe9f9adec7a8c766d451d186760e9f4f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 29 Oct 2023 20:41:57 +0800 Subject: [PATCH 433/972] v2ray-plugin: update to 5.10.0 (#1302) --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index e4561634fdc..ddd4cece776 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.9.0 +PKG_VERSION:=5.10.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=5a155dbe976bccee225e171ae71af6f19d32caca16194ef68b4aee81e57f8f0f +PKG_HASH:=2ff37018e8bb6e9208206e84b9b5be77ad3d9a9e62bf2078b871f4f7066a87b8 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 806cf13d6938e5a5659094049ff05dd067e9a0c2 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 29 Oct 2023 20:42:20 +0800 Subject: [PATCH 434/972] v2ray-core: update to 5.10.1 (#1303) --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index dfe4865dea4..23895ecdebc 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.10.0 +PKG_VERSION:=5.10.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c18883f5dddaa4a374a0c334433ad6178a8c459a636b29f4facf8a0dacfcd41d +PKG_HASH:=dfa0f9d6d1297819567cedad525025d2a6db07a1553213f2ecb2de110918c07c PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From e92e22a357744a6ec4d9b8c1bb2f42d1b4d4fd3c Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 29 Oct 2023 20:42:35 +0800 Subject: [PATCH 435/972] chinadns-ng: update to 2023.10.28 (#1305) --- chinadns-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index c072699be52..0edbb2114c7 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.06.01 +PKG_VERSION:=2023.10.28 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=7c33e8a60b7618b33fce0960b94b46567766a051b307cea6b123da4176a52eab +PKG_HASH:=8dbce6ec767b6d132c5625e5533f96c42310f8b67ce4ca963ea34a6797ae99b4 PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE From 9f97bea2be208fc48d924302a06ca6e414c4d80e Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 30 Oct 2023 03:02:47 +0800 Subject: [PATCH 436/972] luci-app-ssr-plus: fix mosdns DNS Anti-pollution status display --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 9fcb465ab5d..dba075eba3d 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index dfe2a1b085b..1400c91495d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -112,7 +112,7 @@ else s.value = style_blue .. bold_on .. translate("Not Running") .. bold_off .. font_off end -if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') == '1' then +if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') ~= '0' then s = m:field(DummyValue, "pdnsd_run", translate("DNS Anti-pollution")) s.rawhtml = true if pdnsd_run == 1 then @@ -169,7 +169,7 @@ s.rawhtml = true s.template = "shadowsocksr/refresh" s.value = ip_count .. " " .. translate("Records") -if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') == '1' then +if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) s.rawhtml = true s.template = "shadowsocksr/refresh" From 6675af84126a24aed2873b538b4c02d8dc4b3d8b Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 30 Oct 2023 03:10:26 +0800 Subject: [PATCH 437/972] luci-app-ssr-plus: show dns option mode 3 if is_finded mosdns --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 339efb0b58d..8864d0be78e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -92,7 +92,9 @@ o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) +if is_finded("mosdns") then o:value("3", translate("Use MOSDNS query (Not Support Oversea Mode)")) +end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 From 5f274f09c4bf0388fc90c185378b3c0bc7b1c329 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 31 Oct 2023 00:26:40 +0800 Subject: [PATCH 438/972] hysteria: update to 2.2.0 (#1307) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 019dadf6b46..fb0262ca56e 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.1.1 +PKG_VERSION:=2.2.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=a9ccbd7b38ccb9b8d0f3f75c18bd6846e32a58442dbdc2946629be4b3c5f6424 +PKG_HASH:=d3e6809ac2b8e1c58e1c95cdb96bd44d99b17c7824bdd931d4d51c9e3818d402 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From b115c07c46d9170a710d08cf5621ae7447bea9e3 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 31 Oct 2023 21:29:40 +0800 Subject: [PATCH 439/972] luci-app-ssr-plus: update ssr-plus.po translate --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 1e33f7a7ae1..0b77345ea44 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -543,6 +543,9 @@ msgstr "分流模式下的 DNS 查询模式" msgid "Anti-pollution DNS Server For Shunt Mode" msgstr "分流模式下的访问国外域名 DNS 服务器" +msgid "Custom DNS Server for mosdns" +msgstr "MOSDNS 自定义 DNS 服务器" + msgid "Disable IPv6 In MOSDNS Query Mode (Shunt Mode)" msgstr "禁止 MOSDNS 返回 IPv6 记录 (分流模式)" From a4926d72ec12634517da5b3976a5038d1519ecc2 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Tue, 31 Oct 2023 23:39:58 +0800 Subject: [PATCH 440/972] luci-app-ssr-plus: add mosdns status --- luci-app-ssr-plus/Makefile | 4 ++-- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index dba075eba3d..461f55393c1 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -120,7 +120,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG config PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS bool "Include MosDNS" - default n + default y if i386||x86_64||arm config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 1400c91495d..a095d44e908 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -88,7 +88,7 @@ if Process_list:find("ssr.server") then server_run = 1 end -if Process_list:find("ssrplus/bin/dns2tcp") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then +if Process_list:find("ssrplus/bin/dns2tcp") or Process_list:find("ssrplus/bin/mosdns") or (Process_list:find("ssrplus.dns") and Process_list:find("dns2socks.127.0.0.1.*127.0.0.1.5335")) then pdnsd_run = 1 end From a6e4e6fd4c77b345dab1bc16b4d826c3c8ca1840 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:31:18 +0800 Subject: [PATCH 441/972] luci-app-ssr-plus: update ssr-plus.po translate --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 0b77345ea44..f498ed9bb21 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -543,6 +543,9 @@ msgstr "分流模式下的 DNS 查询模式" msgid "Anti-pollution DNS Server For Shunt Mode" msgstr "分流模式下的访问国外域名 DNS 服务器" +msgid "Use MOSDNS query" +msgstr "使用 MOSDNS 查询" + msgid "Custom DNS Server for mosdns" msgstr "MOSDNS 自定义 DNS 服务器" From 1f6d797cb415d978047999f5dd3d82c833c315db Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Thu, 2 Nov 2023 02:45:18 +0800 Subject: [PATCH 442/972] luci-app-ssr-plus: update default pdnsd config --- luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 157774d1297..72b338183e5 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -28,7 +28,6 @@ touch /etc/ssrplus/ad.conf touch /etc/config/shadowsocksr [ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset -sed -i "s/option pdnsd_enable '3'/option pdnsd_enable '1'/g" /etc/config/shadowsocksr sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr sed -i "s/option type 'vless'/option type 'v2ray'\n\toption v2ray_protocol 'vless'/g" /etc/config/shadowsocksr sed -i "s/option encrypt_method_v2ray_ss/option encrypt_method_ss/g" /etc/config/shadowsocksr From 559cec92cbf79bc9bb9d7fce0c264ccc623f6433 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 Nov 2023 23:23:28 +0800 Subject: [PATCH 443/972] v2ray-plugin: update to 5.11.0 (#1318) --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index ddd4cece776..1417798ee59 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.10.0 +PKG_VERSION:=5.11.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2ff37018e8bb6e9208206e84b9b5be77ad3d9a9e62bf2078b871f4f7066a87b8 +PKG_HASH:=4080dc0597f1c4f4099bdcd5aafd6bce463542eb9b691153c756cab86cd0decb PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From f3f98c44d44acca9d4757237900f035b07700315 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 Nov 2023 23:23:55 +0800 Subject: [PATCH 444/972] v2ray-core: update to 5.11.0 (#1319) --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 23895ecdebc..2727b4890b7 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.10.1 +PKG_VERSION:=5.11.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=dfa0f9d6d1297819567cedad525025d2a6db07a1553213f2ecb2de110918c07c +PKG_HASH:=c25490d6b0600cd316409f112d39e10f5d7c66bb89f18dafcd3a95d26f889bc2 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 878247793c65e9f905d6b67f4c02093118ac7a23 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 6 Nov 2023 09:47:31 +0800 Subject: [PATCH 445/972] luci-app-ssr-plus: default select mosdns for armv8 --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 461f55393c1..38a3d7e5838 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -120,7 +120,7 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG config PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS bool "Include MosDNS" - default y if i386||x86_64||arm + default y if aarch64||arm||i386||x86_64 config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" From dd3569e35e52448f99e6dec82b11d479cdaa33b5 Mon Sep 17 00:00:00 2001 From: XiaoliChan <30458572+XiaoliChan@users.noreply.github.com> Date: Thu, 9 Nov 2023 00:05:09 +0800 Subject: [PATCH 446/972] [luci-app-ssr-plus]: add chinadns mode for mosdns (#1314) * [luci-app-ssr-plus]: add chinadns mode for mosdns Signed-off-by: Xiaoli Chan * [luci-app-ssr] more translate Signed-off-by: Xiaoli Chan --- luci-app-ssr-plus/Makefile | 7 +- .../model/cbi/shadowsocksr/advanced.lua | 6 +- .../luasrc/model/cbi/shadowsocksr/client.lua | 31 +- .../luasrc/model/cbi/shadowsocksr/status.lua | 32 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 39 +- .../root/etc/init.d/shadowsocksr | 107 +- .../ssrplus/mosdns-chinadns/geosite_cn.txt | 65044 ++++++++++++++++ .../geosite_geolocation_not_cn.txt | 19306 +++++ .../etc/ssrplus/mosdns-config-chinadns.yaml | 154 + .../root/etc/ssrplus/mosdns-config.yaml | 2 - luci-app-ssr-plus/root/usr/bin/ssr-monitor | 4 +- .../usr/share/shadowsocksr/geodata_update.sh | 44 + .../root/usr/share/shadowsocksr/update.lua | 10 + v2dat/Makefile | 46 + v2dat/patches/100-format-logtime.patch | 47 + 15 files changed, 84826 insertions(+), 53 deletions(-) create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml create mode 100755 luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh create mode 100644 v2dat/Makefile create mode 100644 v2dat/patches/100-format-logtime.patch diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 38a3d7e5838..33173f39157 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=188 -PKG_RELEASE:=3 +PKG_VERSION:=190 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -42,6 +42,9 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:mosdns \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:yq \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:v2dat \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:diffutils \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS:shadow-tls \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index ea08f58bda5..302f5cf4822 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -69,7 +69,7 @@ o:depends("netflix_enable", "1") o = s:option(ListValue, "shunt_dns_mode", translate("DNS Query Mode For Shunt Mode")) o:value("1", translate("Use DNS2SOCKS query and cache")) -o:value("2", translate("Use MOSDNS query")) +o:value("2", translate("Use MosDNS query")) o:depends("netflix_enable", "1") o.default = 1 @@ -97,9 +97,9 @@ o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4. o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) o:depends("shunt_dns_mode", "2") -o.description = translate("Custom DNS Server for mosdns") +o.description = translate("Custom DNS Server for MosDNS") -o = s:option(Flag, "shunt_mosdns_ipv6", translate("Disable IPv6 In MOSDNS Query Mode (Shunt Mode)")) +o = s:option(Flag, "shunt_mosdns_ipv6", translate("Disable IPv6 In MosDNS Query Mode (Shunt Mode)")) o:depends("shunt_dns_mode", "2") o.rmempty = false o.default = "0" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 8864d0be78e..4db7aaaf30d 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -93,7 +93,7 @@ o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) if is_finded("mosdns") then -o:value("3", translate("Use MOSDNS query (Not Support Oversea Mode)")) +o:value("3", translate("Use MosDNS query (Not Support Oversea Mode)")) end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 @@ -125,9 +125,9 @@ o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4. o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) o:depends("pdnsd_enable", "3") -o.description = translate("Custom DNS Server for mosdns") +o.description = translate("Custom DNS Server for MosDNS") -o = s:option(Flag, "mosdns_ipv6", translate("Disable IPv6 in MOSDNS query mode")) +o = s:option(Flag, "mosdns_disable_ipv6", translate("Disable IPv6 in MosDNS query mode (only for Non-CN domain)")) o:depends("pdnsd_enable", "3") o.rmempty = false o.default = "0" @@ -141,8 +141,8 @@ if is_finded("chinadns-ng") then o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) o:value("223.5.5.5:53", translate("AliYun Public DNS (223.5.5.5)")) o:value("180.76.76.76:53", translate("Baidu Public DNS (180.76.76.76)")) - o:value("101.226.4.6:53", translate("360 Security DNS (China Telecom) (101.226.4.6)")) - o:value("123.125.81.6:53", translate("360 Security DNS (China Unicom) (123.125.81.6)")) + o:value("101.226.4.6:53", translate("DNS Pai (CT/CMCC/CU) (101.226.4.6)")) + o:value("123.125.81.6:53", translate("DNS Pai (CU) (123.125.81.6)")) o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) o:depends({pdnsd_enable = "1", run_mode = "router"}) o:depends({pdnsd_enable = "2", run_mode = "router"}) @@ -164,5 +164,24 @@ if is_finded("chinadns-ng") then end end -return m +if is_finded("mosdns") then + o = s:option(Value, "chinadns_forward_mosdns", translate("Domestic DNS Server (ChinaDNS Mode With MosDNS)")) + o:value("", translate("Disable ChinaDNS in MosDNS")) + o:value("wan", translate("Use DNS from WAN")) + o:value("udp://114.114.114.114:53,udp://114.114.115.115:53", translate("Nanjing Xinfeng 114DNS")) + o:value("udp://119.29.29.29:53,udp://119.29.29.29:53", translate("DNSPod Public DNS")) + o:value("udp://223.5.5.5:53,udp://223.6.6.6:53", translate("AliYun Public DNS")) + o:value("udp://180.76.76.76:53,udp://180.76.76.76:53", translate("Baidu Public DNS")) + o:value("udp://101.226.4.6:53,udp://218.30.118.6:53", translate("DNS Pai (CT/CMCC/CU)")) + o:value("udp://123.125.81.6:53,udp://140.207.198.6:53", translate("DNS Pai (CU)")) + o:value("udp://1.2.4.8:53,udp://210.2.4.8:53", translate("CNNIC SDNS")) + o:depends({pdnsd_enable = "3", run_mode = "router"}) + o.description = translate("Custom DNS Server format as IP:PORT (default: disabled)") +end +o = s:option(Flag, "mosdns_dnsleak", translate("Prevent DNS leak (Only Work With ChinaDNS Mode)")) +o:depends({pdnsd_enable = "3", run_mode = "router"}) +o.rmempty = false +o.default = "0" + +return m diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index a095d44e908..33aa7c9e570 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -14,6 +14,8 @@ local gfw_count = 0 local ad_count = 0 local ip_count = 0 local nfip_count = 0 +local mainland_domain_count = 0 +local non_mainland_domain_count = 0 local Process_list = luci.sys.exec("busybox ps -w") local uci = luci.model.uci.cursor() -- html constants @@ -52,6 +54,14 @@ if nixio.fs.access("/etc/ssrplus/netflixip.list") then nfip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/netflixip.list | wc -l")) end +if nixio.fs.access("/etc/ssrplus/mosdns-chinadns/geosite_cn.txt") then + mainland_domain_count = tonumber(luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite_cn.txt | wc -l")) +end + +if nixio.fs.access("/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt") then + non_mainland_domain_count = tonumber(luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt | wc -l")) +end + if Process_list:find("udp.only.ssr.reudp") then reudp_run = 1 end @@ -170,10 +180,24 @@ s.template = "shadowsocksr/refresh" s.value = ip_count .. " " .. translate("Records") if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then -s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) -s.rawhtml = true -s.template = "shadowsocksr/refresh" -s.value = nfip_count .. " " .. translate("Records") + s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) + s.rawhtml = true + s.template = "shadowsocksr/refresh" + s.value = nfip_count .. " " .. translate("Records") +end + +if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') == '3' then + s = m:field(DummyValue, "geo_data", translate("Loyalsoldier's GeoData")) + s.rawhtml = true + s.template = "shadowsocksr/refresh" + + s = m:field(DummyValue, "mainland_domain_count", translate("Loyalsoldier's GeoData: Mainland Domain Data")) + s.rawhtml = true + s.value = mainland_domain_count .. " " .. translate("Records") + + s = m:field(DummyValue, "non_mainland_domain_count", translate("Loyalsoldier's GeoData: Non-Mainland Domain Data")) + s.rawhtml = true + s.value = non_mainland_domain_count .. " " .. translate("Records") end if uci:get_first("shadowsocksr", 'global', 'adblock', '0') == '1' then diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index f498ed9bb21..0ad7a60568d 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -188,7 +188,6 @@ msgstr "QUIC 连接接收窗口" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" - msgid "Lazy Start" msgstr "延迟启动" @@ -390,6 +389,15 @@ msgstr "【中国大陆 IP 段】数据库" msgid "Netflix IP Data" msgstr "【Netflix IP 段】数据库" +msgid "Loyalsoldier's GeoData" +msgstr "【GeoData】数据库 (Loyalsoldier)" + +msgid "Loyalsoldier's GeoData: Mainland Domain Data" +msgstr "【GeoData 中的大陆域名】数据库 (Loyalsoldier)" + +msgid "Loyalsoldier's GeoData: Non-Mainland Domain Data" +msgstr "【GeoData 中的非大陆域名】数据库 (Loyalsoldier)" + msgid "Advertising Data" msgstr "【广告屏蔽】数据库" @@ -531,11 +539,11 @@ msgstr "使用 DNS2TCP 查询" msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" -msgid "Use MOSDNS query (Not Support Oversea Mode)" -msgstr "使用 MOSDNS 查询 (不支持海外用户回国模式)" +msgid "Use MosDNS query (Not Support Oversea Mode)" +msgstr "使用 MosDNS 查询 (不支持海外用户回国模式)" -msgid "Disable IPv6 in MOSDNS query mode" -msgstr "禁止 MOSDNS 返回 IPv6 记录" +msgid "Disable IPv6 in MosDNS query mode (only for Non-CN domain)" +msgstr "禁止 MosDNS 返回 IPv6 记录 (仅限非大陆域名)" msgid "DNS Query Mode For Shunt Mode" msgstr "分流模式下的 DNS 查询模式" @@ -543,14 +551,23 @@ msgstr "分流模式下的 DNS 查询模式" msgid "Anti-pollution DNS Server For Shunt Mode" msgstr "分流模式下的访问国外域名 DNS 服务器" -msgid "Use MOSDNS query" -msgstr "使用 MOSDNS 查询" +msgid "Use MosDNS query" +msgstr "使用 MosDNS 查询" + +msgid "Custom DNS Server for MosDNS" +msgstr "MosDNS 自定义 DNS 服务器" + +msgid "Domestic DNS Server (ChinaDNS Mode With MosDNS)" +msgstr "国内 DNS 服务器 (MosDNS 下的 ChinaDNS 模式)" + +msgid "Disable IPv6 In MosDNS Query Mode (Shunt Mode)" +msgstr "禁止 MosDNS 返回 IPv6 记录 (分流模式)" -msgid "Custom DNS Server for mosdns" -msgstr "MOSDNS 自定义 DNS 服务器" +msgid "Prevent DNS leak (Only Work With ChinaDNS Mode)" +msgstr "防止DNS泄漏 (仅适用于ChinaDNS模式)" -msgid "Disable IPv6 In MOSDNS Query Mode (Shunt Mode)" -msgstr "禁止 MOSDNS 返回 IPv6 记录 (分流模式)" +msgid "Disable ChinaDNS in MosDNS" +msgstr "禁用 MosDNS 下的 ChinaDNS 模式" msgid "DNS Server IP:Port" msgstr "DNS 服务器 IP:Port" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 2415b62469f..e28483d512f 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -38,6 +38,7 @@ tmp_shunt_port="303" #shunt temporary port tmp_shunt_local_port="304" #shunt socks temporary port tmp_shunt_dns_port="305" #shunt dns2socks temporary port tmp_tcp_local_port="306" #tcp socks temporary port +mosdns_config_file= server_count=0 redir_tcp=0 @@ -98,6 +99,12 @@ get_host_ip() { echo $ip } +yq_ssr() { + temp_file="$(echo "$2" | awk -F '.' '{print $1"-temp."$2}')" + cat $2 | yq e "$1" -M > "$temp_file" + mv "$temp_file" "$2" +} + clean_log() { local logsnum=$(cat $LOG_FILE 2>/dev/null | wc -l) [ "$logsnum" -gt 1000 ] && { @@ -206,24 +213,79 @@ start_dns() { pdnsd_enable_flag=2 ;; 3) - local mosdns_ipv6="$(uci_get_by_type global mosdns_ipv6)" + local mosdns_disable_ipv6="$(uci_get_by_type global mosdns_disable_ipv6)" local mosdns_dnsserver="$(uci_get_by_type global tunnel_forward_mosdns)" - output=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do - dnsserver=${i%:*} - dnsserver=${i##*/} - add_dns_into_ipset $run_mode $dnsserver - echo " - addr: $i" - echo " enable_pipeline: true" - done) + local chinadns_mosdns="$(uci_get_by_type global chinadns_forward_mosdns)" + local mosdns_dnsleak="$(uci_get_by_type global mosdns_dnsleak)" + local netflix_enable="$(uci_get_by_type global netflix_enable)" + if [ "$run_mode" = "router" ] && [ -n "$chinadns_mosdns" ]; then + mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.yaml" + cp /etc/ssrplus/mosdns-config-chinadns.yaml $mosdns_config_file + tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do + dnsserver=${i%:*} + dnsserver=${i##*/} + add_dns_into_ipset $run_mode $dnsserver + yq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + done) + + if [ "$chinadns_mosdns" = "wan" ]; then + wandns=$(ifstatus wan | jsonfilter -e '@["dns-server"]' | sed 's/\[//g; s/\]//g' | sed 's/"//g' | sed 's/ //g' | sed 's/,/ /g') + tmp=$(for i in $(echo $wandns); do + i="udp://$i:53" + yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + done) + else + tmp=$(for i in $(echo $chinadns_mosdns | sed "s/,/ /g"); do + yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + done) + fi + + if [ "$mosdns_disable_ipv6" == "0" ]; then + yq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file + else + yq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file + fi + + if [ "$mosdns_dnsleak" != "0" ]; then + yq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file + fi + + yq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + + if [ "$netflix_enable" == 1 ]; then + yq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file + yq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file + fi - awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$dns_port/g" > $TMP_PATH/mosdns-config.yaml - if [ "$mosdns_ipv6" == "0" ]; then - sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config.yaml + pdnsd_enable_flag=3 + ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file + cat <<-EOF >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" + no-poll + no-resolv + server=127.0.0.1#$dns_port + EOF else - sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config.yaml + mosdns_config_file="$TMP_PATH/mosdns-config.yaml" + cp /etc/ssrplus/mosdns-config.yaml $mosdns_config_file + tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do + dnsserver=${i%:*} + dnsserver=${i##*/} + add_dns_into_ipset $run_mode $dnsserver + yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + done) + + if [ "$mosdns_disable_ipv6" == "0" ]; then + yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file + else + yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file + fi + yq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + pdnsd_enable_flag=3 + ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file fi - ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config.yaml - pdnsd_enable_flag=3 ;; esac @@ -487,20 +549,19 @@ shunt_dns_command() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port $shunt_dnsserver 127.0.0.1:$tmp_shunt_dns_port -q ;; 2) - local shunt_mosdns_ipv6="$(uci_get_by_type global shunt_mosdns_ipv6)" + local shunt_mosdns_disable_ipv6="$(uci_get_by_type global shunt_mosdns_disable_ipv6)" local shunt_mosdns_dnsserver="$(uci_get_by_type global shunt_mosdns_dnsserver)" - output=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do - echo " - addr: $i" - echo " socks5: \"127.0.0.1:$tmp_port\"" - echo " enable_pipeline: true" + cp /etc/ssrplus/mosdns-config.yaml $TMP_PATH/mosdns-config-shunt.yaml + tmp=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do + yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $TMP_PATH/mosdns-config-shunt.yaml done) - awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$tmp_shunt_dns_port/g" > $TMP_PATH/mosdns-config-shunt.yaml - if [ "$shunt_mosdns_ipv6" == "0" ]; then - sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml + if [ "$shunt_mosdns_disable_ipv6" == "0" ]; then + yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml else - sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml + yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml fi + yq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $TMP_PATH/mosdns-config-shunt.yaml ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config-shunt.yaml ;; esac diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt new file mode 100644 index 00000000000..23f9db14504 --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt @@ -0,0 +1,65044 @@ +full:265.com +full:2mdn-cn.net +full:2mdn.net +full:a1.mzstatic.com +full:a2.mzstatic.com +full:a3.mzstatic.com +full:a4.mzstatic.com +full:a5.mzstatic.com +full:accounts.googlers.com +full:accounts.xn--9trs65b.com +full:accounts.xn--ggle-55da.com +full:adcdownload.apple.com +full:adcdownload.apple.com.akadns.net +full:admob-cn.com +full:adservice.google.com +full:ai.ytimg.com +full:amp-api-edge-lb-cn.itunes-apple.com.akadns.net +full:amp-api-edge-lb.itunes-apple.com.akadns.net +full:amp-api-edge.apps.apple.com +full:amp-api-search-edge.apps.apple.com +full:amp-api.apps.apple.com +full:aod.itunes.apple.com +full:api-edge.apps.apple.com +full:app-measurement-cn.com +full:app-measurement.com +full:app-site-association.cdn-apple.com +full:appldnld.apple.com +full:appldnld.g.aaplimg.com +full:appleid.cdn-apple.com +full:apps.mzstatic.com +full:apps5.oingo.com +full:apptrailers.itunes.apple.com +full:avail.googleflights.net +full:bag.itunes.apple.com +full:beacons-handoff.gcp.gvt2.com +full:beacons.gcp.gvt2.com +full:beacons.gvt2.com +full:beacons2.gvt2.com +full:beacons3.gvt2.com +full:bg.v4.a.dl.ws.microsoft.com +full:bg4.v4.a.dl.ws.microsoft.com +full:bj1.api.bing.com +full:bookkeeper.itunes.apple.com +full:borgmon.adz.google.com +full:c.admob.com +full:c.android.clients.google.com +full:cache-management-prod.google.com +full:cache.pack.google.com +full:cdn-cn1.apple-mapkit.com +full:cdn-cn2.apple-mapkit.com +full:cdn-cn3.apple-mapkit.com +full:cdn-cn4.apple-mapkit.com +full:cdn.ampproject.org +full:cdn.apple-mapkit.com +full:cdn.marketplaceimages.windowsphone.com +full:cdn1.apple-mapkit.com +full:cdn2.apple-mapkit.com +full:cdn3.apple-mapkit.com +full:cdn4.apple-mapkit.com +full:cds-cdn.v.aaplimg.com +full:cds.apple.com +full:cds.apple.com.akadns.net +full:cdsassets.apple.com +full:certs-lb.apple.com.akadns.net +full:certs.apple.com +full:checkin.gstatic.com +full:cl1-cdn.origin-apple.com.akadns.net +full:cl1.apple.com +full:cl2-cn.apple.com +full:cl2.apple.com +full:cl3-cdn.origin-apple.com.akadns.net +full:cl3.apple.com +full:cl4-cdn.origin-apple.com.akadns.net +full:cl4-cn.apple.com +full:cl4.apple.com +full:cl5-cdn.origin-apple.com.akadns.net +full:cl5.apple.com +full:clickserve.cc-dt.com +full:clickserve.dartsearch.net +full:clickserver.googleads.com +full:client-api.itunes.apple.com +full:clientflow.apple.com +full:clientflow.apple.com.akadns.net +full:clientservices.googleapis.com +full:cma.itunes.apple.com +full:cn.widevine.com +full:cn.windowssearch.com +full:cnappinstall.googleadapis.com +full:communities.apple.com +full:configuration.apple.com +full:configuration.apple.com.akadns.net +full:connectivitycheck.gstatic.com +full:content.googleadapis.com +full:corp.google.com +full:corp.googleapis.com +full:crashlyticsreports-pa.googleapis.com +full:crl-lb.apple.com.akadns.net +full:crl.alphassl.com +full:crl.apple.com +full:crl.pki.goog +full:crl2.alphassl.com +full:csi.gstatic.com +full:cstat.apple.com +full:cstat.cdn-apple.com +full:ctldl.windowsupdate.com +full:dartsearch-cn.net +full:dd-cdn.origin-apple.com.akadns.net +full:developer.microsoft.com +full:dg-meta.video.google.com +full:discussionschinese.apple.com +full:distribution.qatp1.net +full:distribution.qcpp1.net +full:distribution.qpdp1.net +full:dl.google.com +full:dl.l.google.com +full:docs.microsoft.com +full:doubleclick-cn.net +full:doubleclick.net +full:download.developer.apple.com +full:download.microsoft.com +full:download.mlcc.google.com +full:download.qatp1.net +full:download.qcpp1.net +full:download.qpdp1.net +full:download.tensorflow.google.com +full:download.visualstudio.microsoft.com +full:downloaddispatch.itunes.apple.com +full:emmapplecodevice.googleapis.com +full:emoi-cncdn.bing.com +full:fides-pol.apple.com +full:firebase-settings.crashlytics.com +full:fontfiles.googleadapis.com +full:fontfiles.googleapis.com +full:fonts.googleadapis.com +full:fonts.googleapis.com +full:fonts.gstatic.com +full:fs.microsoft.com +full:g0.gstatic.com +full:g1.gstatic.com +full:g2.gstatic.com +full:g3.gstatic.com +full:gcpnode.com +full:geetest.datasink.sensorsdata.cn +full:global.prd.cdn.globalsign.com +full:gog.qtlglb.com +full:gogalaxy.gog-statics.com +full:gonglchuangl.net +full:gongyichuangyi.net +full:google-analytics-cn.com +full:google-analytics.com +full:googleadservices-cn.com +full:googleadservices.com +full:googleanalytics.com +full:googleapis-cn.com +full:googleapps-cn.com +full:googleflights-cn.net +full:googleoptimize-cn.com +full:googleoptimize.com +full:googleplex.com +full:googlesyndication-cn.com +full:googlesyndication.com +full:googletagmanager-cn.com +full:googletagmanager.com +full:googletagservices-cn.com +full:googletagservices.com +full:googletraveladservices-cn.com +full:googletraveladservices.com +full:googlevads-cn.com +full:goto.google.com +full:gs-loc-cn.apple.com +full:gs-loc.apple.com +full:gsp10-ssl-cn.ls.apple.com +full:gsp13-cn.ls.apple.com +full:gsp4-cn.ls.apple.com +full:gsp4-cn.ls.apple.com.edgekey.net +full:gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net +full:gsp5-cn.ls.apple.com +full:gsp85-cn-ssl.ls.apple.com +full:gspe11-2-cn-ssl.ls.apple.com +full:gspe12-cn-ssl.ls.apple.com +full:gspe19-cn-ssl.ls.apple.com +full:gspe19-cn.ls-apple.com.akadns.net +full:gspe19-cn.ls.apple.com +full:gspe21-ssl.ls.apple.com +full:gspe21.ls.apple.com +full:gspe35-ssl.ls.apple.com +full:gspe85-cn-ssl.ls.apple.com +full:gstatic-cn.com +full:gstaticadssl.l.google.com +full:gtm.oasisfeng.com +full:guzzoni-apple-com.v.aaplimg.com +full:guzzoni.apple.com +full:gvt1-cn.com +full:gvt2-cn.com +full:hellofontpreview.oss-cn-beijing.aliyuncs.com +full:hellowebfonts.oss-cn-beijing.aliyuncs.com +full:hospital.pku.edu.cn +full:iadsdk.apple.com +full:icloud-cdn.icloud.com.akadns.net +full:icloud.cdn-apple.com +full:images-cn-8.ssl-images-amazon.com +full:images-cn.ssl-images-amazon.com +full:images.apple.com +full:images.apple.com.akadns.net +full:images.apple.com.edgekey.net.globalredir.akadns.net +full:imasdk.googleapis.com +full:inappcheck-cn.itunes-apple.com.akadns.net +full:inappcheck-lb.itunes-apple.com.akadns.net +full:inappcheck.itunes.apple.com +full:init-p01md-lb.push-apple.com.akadns.net +full:init-p01md.apple.com +full:init-p01st-lb.push-apple.com.akadns.net +full:init-p01st.push.apple.com +full:init-s01st-lb.push-apple.com.akadns.net +full:init-s01st.push.apple.com +full:init.gc-lb.apple.com.akadns.net +full:init.gc.apple.com +full:init.itunes.apple.com +full:iosapps.itunes.apple.com +full:iosapps.itunes.g.aaplimg.com +full:ipcdn.apple.com +full:iphone-ld.apple.com +full:iphone-ld.origin-apple.com.akadns.net +full:is1-ssl.mzstatic.com +full:is1.mzstatic.com +full:is2-ssl.mzstatic.com +full:is2.mzstatic.com +full:is3-ssl.mzstatic.com +full:is3.mzstatic.com +full:is4-ssl.mzstatic.com +full:is4.mzstatic.com +full:is5-ssl.mzstatic.com +full:is5.mzstatic.com +full:itunes-apple.com.akadns.net +full:itunes.apple.com +full:itunesconnect.apple.com +full:js-cdn.music.apple.com +full:kc.kexinshe.com +full:km.support.apple.com +full:manga.bilibili.com +full:maps.apple.com +full:menu-static.gog-statics.com +full:mesu-cdn.apple.com.akadns.net +full:mesu-china.apple.com.akadns.net +full:mesu.apple.com +full:monitoring.qatp1.net +full:monitoring.qcpp1.net +full:monitoring.qpdp1.net +full:moocs.unipus.cn +full:msgr.dlservice.microsoft.com +full:msgruser.dlservice.microsoft.com +full:music.apple.com +full:ocsp-lb.apple.com.akadns.net +full:ocsp.apple.com +full:ocsp.globalsign.com +full:ocsp.pki.goog +full:ocsp2-lb.apple.com.akadns.net +full:ocsp2.apple.com +full:ocsp2.globalsign.com +full:officecdn.microsoft.com +full:opencourse.pku.edu.cn +full:oscdn.apple.com +full:oscdn.origin-apple.com.akadns.net +full:osxapps.itunes.apple.com +full:osxapps.itunes.g.aaplimg.com +full:p1-juejin.byteimg.com +full:p2-juejin.byteimg.com +full:p3-juejin.byteimg.com +full:p3-novel.byteimg.com +full:p4-juejin.byteimg.com +full:p5-juejin.byteimg.com +full:p6-juejin.byteimg.com +full:p6-novel.byteimg.com +full:p7-juejin.byteimg.com +full:p8-juejin.byteimg.com +full:p9-juejin.byteimg.com +full:pagead-googlehosted.l.google.com +full:pancake.apple.com +full:pancake.cdn-apple.com.akadns.net +full:pd.itunes.apple.com +full:performanceparameters.googleapis.com +full:pki-goog.l.google.com +full:play.1ucrs.com +full:play.itunes.apple.com +full:prod-controlbe.floonet.goog +full:prod-databe.floonet.goog +full:prod-support.apple-support.akadns.net +full:prod.databe.floonet.goog +full:productcard.gog-statics.com +full:publicassets.cdn-apple.com +full:qagpublic.qatp1.net +full:qagpublic.qcpp1.net +full:qagpublic.qpdp1.net +full:qgadmin.qatp1.net +full:qgadmin.qcpp1.net +full:qgadmin.qpdp1.net +full:qh.dlservice.microsoft.com +full:qpx.googleflights.net +full:qualysapi.qatp1.net +full:qualysapi.qcpp1.net +full:qualysapi.qpdp1.net +full:qualysguard.qatp1.net +full:qualysguard.qcpp1.net +full:qualysguard.qpdp1.net +full:recaptcha.net +full:redirector.bdn.dev +full:redirector.c.chat.google.com +full:redirector.c.docs.google.com +full:redirector.c.drive.google.com +full:redirector.c.mail.google.com +full:redirector.c.pack.google.com +full:redirector.c.play.google.com +full:redirector.c.youtubeeducation.com +full:redirector.gcpcdn.gvt1.com +full:redirector.gvt1.com +full:redirector.offline-maps.gvt1.com +full:redirector.snap.gvt1.com +full:redirector.xn--ngstr-lra8j.com +full:regioninfo-pa.googleapis.com +full:reserve-prime.apple.com +full:s.mzstatic.com +full:safebrowsing.googleapis.com +full:scanservice1.qatp1.net +full:scanservice1.qcpp1.net +full:scanservice1.qpdp1.net +full:sdx.microsoft.com +full:se-edge.itunes.apple.com +full:se2.itunes.apple.com +full:search.itunes.apple.com +full:secure.globalsign.com +full:secure2.alphassl.com +full:service.urchin.com +full:settings.xn--9trs65b.com +full:sf-api-token-service.itunes.apple.com +full:silverlight.dlservice.microsoft.com +full:slupdate.dlservice.microsoft.com +full:smp-device-content.apple.com +full:sp.itunes.apple.com +full:ss.bjmu.edu.cn +full:ssl-google-analytics.l.google.com +full:ssl.gstatic.com +full:staging-controlbe.floonet.goog +full:staging-databe.floonet.goog +full:staging-regioninfo-pa.googleapis.com +full:staging.databe.floonet.goog +full:static-login.gog-statics.com +full:stocks-sparkline-lb.apple.com.akadns.net +full:stocks-sparkline.apple.com +full:store.apple.com +full:store.apple.com.edgekey.net +full:store.apple.com.edgekey.net.globalredir.akadns.net +full:store.storeimages.apple.com.akadns.net +full:store.storeimages.cdn-apple.com +full:storeedgefd.dsx.mp.microsoft.com +full:streamingaudio.itunes.apple.com +full:study.163.com +full:su.itunes.apple.com +full:support-china.apple-support.akadns.net +full:support.1ucrs.com +full:support.apple.com +full:swallow-apple-com.v.aaplimg.com +full:swallow.apple.com +full:swcatalog-cdn.apple.com.akadns.net +full:swcatalog.apple.com +full:swcdn.apple.com +full:swcdn.g.aaplimg.com +full:swdist.apple.com +full:swdist.apple.com.akadns.net +full:swscan-cdn.apple.com.akadns.net +full:swscan.apple.com +full:sync.itunes.apple.com +full:tac.googleapis.com +full:tesla-cdn.thron.cn +full:test.bugs-qa.chromium.org +full:test.gbugs-qa.chromium.org +full:tools.google.com +full:tools.l.google.com +full:up.corp.goog +full:up.gcp.googlers.com +full:update.crashlytics.com +full:update.googleapis.com +full:updates-http.cdn-apple.com +full:updates-http.cdn-apple.com.akadns.net +full:updates.cdn-apple.com +full:uplaypc-s-ubisoft.cdn.ubi.com +full:upos-hz-mirrorakam.akamaized.net +full:upp.itunes.apple.com +full:valid.apple.com +full:valid.origin-apple.com.akadns.net +full:wear.googleapis.com +full:weather-data.apple.com +full:weather-data.apple.com.akadns.net +full:weather-map.apple.com +full:weather-map2.apple.com +full:wl.dlservice.microsoft.com +full:wscont1.apps.microsoft.com +full:wscont2.apps.microsoft.com +full:www-google-analytics.l.google.com +full:www-googletagmanager.l.google.com +full:www.amd.com +full:www.apple.com +full:www.apple.com.edgekey.net +full:www.apple.com.edgekey.net.globalredir.akadns.net +full:www.destinationurl.com +full:www.googleadapis.com +full:www.gstatic.com +full:www.libvideo.com +full:www.microsoft.com +full:www.pxcc.com +full:www.recaptcha.net +full:www4-static.gog-statics.com +full:xb.dlservice.microsoft.com +full:xn--9kr7l.com +full:xn--flw351e.com +full:xp.apple.com +full:xz.pphimalayanrt.com +alibaba +xn--zfr164b +xn--xhq521b +xn--vuq861b +xn--io0a7i +xn--fiqz9s +xn--fiqs8s +xn--fiq64b +xn--estv75g +xn--8y0a063a +xn--6frz82g +xn--55qx5d +xn--1qqw23a +wang +unicom +tmall +taobao +sohu +icbc +cn +citic +baidu +alipay +jsjinfu.com +wxhon.com +004678.com +00544.com +00615.net +007.pub +0073.com +00791.com +007hd.com +007manhua.com +007qu.com +007shoes.com +007swz.com +00817.com +0086crane.com +0086l.com +0086org.com +0088dns.com +008gj.com +0098118.com +0099524.com +009y.com +00bx.com +00cdn.com +00cha.com +00cha.net +00ic.com +00it.net +00tera.com +00txt.com +00wv.com +01-123.com +01-cf.com +010123456.com +010155.net +0101shop.com +01095113.com +010bianhu.com +010bjzs.com +010byyy.com +010cns.com +010dell.com +010dsmzyy.com +010jianzhan.com +010lf.com +0123401234.com +0123456789.com +0135135.com +01368.com +0138.com +014.cc +016271.com +016sf.com +01caijing.com +01faxing.com +01happy.com +01home.com +01hour.com +01hr.com +01isp.com +01isp.net +01jzw.com +01ki.com +01p.com +01rv.com +01teacher.com +01w.com +01wb.com +01yo.com +01youyuan.com +01yun.com +01zhuanche.com +020.com +020.net +0208.com +020banjia.net +020job.com +020ym.com +020zp.net +021-atp.com +021-tp.com +021-zszx.com +021.com +021.net +0214.com +02156506666.net +02163.com +021bolang.com +021clean.com +021dianyuan.com +021dx.com +021dzjx.com +021east.com +021fenglei.com +021fx.com +021gjhb.com +021ja.com +021jingwei.com +021jingwu.com +021js.com +021lawfirm.com +021phone.com +021ren.com +021sports.com +021tk.com +021wfz.com +021yongzhuo.com +022003.com +0221155.com +022ee.com +022meishu.com +022s.com +022shui.com +022sunny.com +022v.com +023086.com +023buy.com +023cq.cc +023dir.com +023dns.com +023gmdk.com +023sm.com +023up.com +023wg.com +023yts.com +023zp.com +0243811.com +0243855.com +0245.cc +024888.net +024bj.com +024eps.com +024frde.com +024fuchan.com +024fuwu.com +024fzy.com +024heyi.com +024hh.com +024huada.com +024zxw.com +02516.com +025ct.com +025kaiyi.com +025nj.com +025sc.com +025xl.com +025zp.com +026idc.com +0270.cc +02712122.com +02727.com +027637.com +02766667777.com +027accp.com +027aige.com +027art.com +027cgb.com +027chuxun.com +027cloud.com +027down.com +027eat.com +027hhl.com +027hpedu.com +027hpit.com +027htxt.com +027hxzy.com +027hy.com +027idc.com +027jsxh.com +027jz.cc +027one.com +027qyy.com +027tianlong.com +027tytpf.com +027wcbyy.com +027xf.com +027yx.com +027zb.com +027zhan.com +027zpw.com +0283home.com +028brother.com +028hema.com +028hr.org +028ip.com +028kuaidai.com +028office.com +028pxw.com +028sjkj.com +028wzjs.com +029558.com +029900.com +029jiuda.com +029judao.com +029k.com +029shw.com +029weichen.com +029wsw.com +029xxw.com +029yjy.com +029yljj.com +029zp.com +02kdid.com +02lu.com +02o.pw +02shu.com +02wan.com +02wq.com +030303.com +030mall.com +0310it.com +0311wifi.com +0316.cc +0328.com +033033.com +0335e.com +035110000.com +0351data.com +0351fdc.com +0352fang.com +0352g.com +0355fk.com +0356f.com +0357hz.com +0368.com +036yx.com +0371wang.com +037201.com +037398.com +0378zz.com +0379home.com +0379pfw.com +03964.com +03dq.com +03k.org +0411.com +0411e.com +0411hd.com +0411zssy.com +0421wcbzk.com +0427.com +0430.com +0431cn.com +0437.com +0452e.com +0453.com +0455zd.com +0460.com +0470a.com +0470fcw.com +0471fcw.com +0472.com +0479xx.com +051058.com +0510syedu.com +0512118114.com +0512pearl.com +0513.net +0513.org +0513011.com +0513syedu.com +0513zs.com +0514.com +051591.com +0515auto.com +0515syedu.com +0515yc.tv +0516k.com +0517.net +0517999.com +0517cw.com +0517w.com +0519114.net +051jk.com +05236.com +0523tx.net +0523zp.com +0523zz.com +05273.com +0527ys.com +0527zz.com +052yx.com +0531.com +053135.com +0531jb.com +0531soso.com +0531wt.com +0532.com +0533.com +0535-0411.com +0536qz.com +0537yz.com +0539fc.com +053c.com +054057.com +0543hr.com +0546dsw.com +0546fdc.com +0550.com +055110.com +055178.com +0551fangchan.com +0551wl.com +0552jie.com +0553fang.com +0553zsw.com +0554news.com +0554zp.com +0555dsw.com +0558zp.com +0559fc.com +0561house.com +0563job.com +0566cn.net +0566fc.com +0566job.com +057.com +0570fc.com +0570zs.com +057191.com +0571ok.com +0573fang.com +0573ren.com +0574bbs.com +0574nbjg.com +0575bbs.com +0575life.com +0575xf.com +0576dsw.com +0577-it.com +0577cnw.com +0577home.net +0577hr.com +0577job.com +0577qiche.com +0578rencai.com +0578zhaopin.com +0579com.com +0579fw.com +0591job.com +05927.com +0592dsw.com +0592jj.com +0592xl.com +0594.com +0595job.com +0595rc.com +0596fc.com +0597kk.com +0597ok.com +0597seo.com +0598777.com +0598job.com +0598rc.com +0599yx.com +05bk.com +05bq.com +05cg.com +05eg.com +05info.com +05sun.com +05vm.com +05wan.com +063108.com +0632idc.com +0634.com +06362.com +065201.com +0660hf.com +0663.net +0663job.com +0668.com +06abc.com +06climate.com +06game.com +06peng.com +07.la +0701news.com +07073.com +07073h5.com +07073vr.com +0712fang.com +0713fang.com +0715fc.com +0715rc.com +0715zp.com +0716fw.com +0716mr.com +07177.com +0717ad.com +0718.cc +0719house.com +0722fc.com +0722zs.com +0724c.com +0728f.com +0730188.com +0730news.com +073122.com +0731a.com +0731cfw.com +0731fdc.com +0731i.com +0731jiaju.com +0731job.com +0731pgy.com +0731rj.com +0731tg.com +0731wan.com +0731zcgs.com +0733news.com +0734zpw.com +0735.com +07358.com +0735jz.com +0735zx.com +0735zz.com +0736fdc.com +0736zz.com +0737rencai.com +0738.cc +0738rc.com +0739tt.com +073img.com +07430743.com +0744tv.com +0745tuan.com +0746news.com +0750rc.com +075238.com +0752qc.com +0755400.com +075577777.com +0755888.com +0755bdqn.com +0755caibao.com +0755car.com +0755haoyu.com +0755hj.com +0755hz.com +0755rc.com +0755ws.com +0755yf.net +0755zb.com +0756hhr.com +0756home.com +0756idc.com +0756seo.com +0756tong.com +0757fc.com +0757p.com +0757rc.com +0758net.com +0759job.com +0759k.com +0759yc.com +0760.com +0760bw.com +0760rc.com +076299.com +0762uu.com +0763f.com +076650.com +0768.gd +0769che.com +0769net.com +0769sun.com +0769sx.com +0769yp.com +0771rc.com +0772fang.com +0772job.com +0775fcw.com +0775jzw.com +07879.com +07890.com +0791look.com +0791quanquan.com +0792jj.net +0792u.com +079768.com +0797rs.com +079y.com +07cn.com +07ren.com +07swz.com +07yue.com +0813fs.com +08172.hk +0817tv.com +0818tuan.com +082808.com +0832mh.com +0835.com +0835meiya.com +0838.com +0838che.com +085.com +0852diaoyu.com +0852job.com +0853rc.com +0854job.com +0856job.com +0857job.com +0859job.com +08644.com +086kd.com +0871gc.com +0890.com +0898.net +089858.com +0898888.com +0898cfw.com +0898hq.com +0898mmf.com +0898xbfc.com +089u.com +08an.com +08c6.com +08cms.com +08ky.com +090expo.com +0912app.com +0914cn.com +0915home.com +091601.com +0917.com +0917e.com +0919123.com +093.com +0937js.com +0938net.com +093nd9.com +09451.com +094j35.com +095196555.com +0951job.com +09635.com +0967ll.com +0991dj.com +0991net.com +0992.cc +09ge.com +09shijue.com +0bug.org +0car0.com +0cname.com +0d.work +0daily.com +0dayku.com +0du520.com +0duxs.com +0easy.com +0fw.net +0g1s.com +0gouche.com +0hgame.com +0kee.com +0o0o0o0o0o0.tokyo +0qda82zu.com +0rl.cc +0s52.com +0s8s.com +0sm.com +0uai.com +0x3.me +0x5.me +0x6.me +0x7.me +0x9.me +0xaa55.com +0xff000000.com +0xffffff.org +0xsky.com +0xue.com +1-123.com +1-b.tc +1-cs.net +1-du.net +1-yuan.net +1.cc +100-tong.com +100.com +100.me +1000.com +10000.com +10000.sh +10000gd.tech +10000idc.net +10000job.com +10000link.com +10000shequ.com +10000tc.com +10000yao.com +10001wan.com +100024.xyz +1000360.com +10006.info +1000eb.net +1000fr.net +1000fun.com +1000phone.com +1000phone.net +1000plan.org +1000qoi.com +1000thinktank.com +1000tuan.com +1000uc.com +1000xuexi.com +1000xun.com +1000zhu.com +10010.com +10010400.net +10010hb.net +10010js.com +10010ll.com +10010nm.com +1001g.com +1001hw.com +1001p.com +1001tvs.com +100580.com +100669.com +1008011.com +1008120.com +1008610086.com +100883.com +100allin.com +100alpha.com +100ask.net +100ask.org +100audio.com +100bt.com +100chou.com +100chui.com +100cjc.com +100credit.com +100cup.com +100data.com +100du.com +100e.com +100eshu.com +100exam.com +100fang.com +100font.com +100how.com +100ip.net +100jiapu.com +100ksw.com +100legend.com +100loujia.com +100lw.com +100market.net +100md.com +100mian.com +100msh.net +100niangudu.com +100njz.com +100nong.com +100offer.com +100pd.com +100ppi.com +100run.com +100shop.com +100skin.com +100stone.com +100sucai.com +100szy.com +100t.com +100tal.com +100tmt.com +100try.com +100txy.com +100ulife.com +100wa.com +100web.store +100weidu.com +100wen.cc +100wen.com +100wsanguo.com +100x100w.com +100xhs.com +100xiao.com +100xin.com +100xuexi.com +100ye.net +100yigui.com +100yingcai.com +100zhuang.com +100zp.com +101.com +10100000.com +10101111.com +10101111cdn.com +1010dy4.com +1010jiajiao.com +1010jz.com +1010pic.com +1010school.com +1010sh.com +101505.com +10155.com +1015600.com +10185.com +101hr.com +101jiajiao.com +101weiqi.com +1024.com +1024.ink +1024g.com +1024ie.com +1024nic.com +1024sou.com +1024ss.com +1024tools.com +10260.com +1026jz.com +102no.com +102pay.com +103153.com +1032.com +10333.com +1035.mobi +1040jy.com +10419.net +105mr.com +106.com +10639888.com +1065m.com +1066888.com +1073.com +107788.com +108101.xyz +108105.xyz +10865.com +108cun.com +108pk.com +108qi.com +108sq.com +108tian.com +109.com +109876543210.com +10bests.com +10besty.com +10fang.com +10gt.com +10guoying.com +10huan.com +10idc.com +10isp.com +10min.club +10moons.com +10pkpk.com +10s1.com +10sea.com +10soo.com +10uv.net +10vps.com +10yan.com +10yougame.com +110.com +11000.vip +11000011.com +1109.com +110ask.com +110hack.com +110tm.com +111111111.com +1111191.com +111155268.com +1113.cc +1113dns.com +1114dns.com +11160066.com +111867.com +111com.net +111g.com +111tt.icu +111yao.com +112112.com +1122.com +11222.com +112233vip.com +1122dh.com +1128job.com +112book.com +112seo.com +112wan.com +11315.com +1133p6.cc +113989.com +113dh.com +113ya.com +114-91.com +1140086.com +11467.com +114best.com +114cb.com +114cbd.com +114chn.com +114desk.com +114dev.com +114dg.com +114dns.com +114dns.net +114god.com +114hzw.com +114ic.com +114ic.net +114jcw.com +114la.com +114mall.com +114menhu.com +114mo.com +114my.com +114my.net +114oc.com +114photo.com +114piaowu.com +114pinpai.com +114px.com +114qy.com +114s.com +114sf.com +114shouji.com +114study.com +114yygh.com +114zhibo.com +114zpw.com +114zw.org +115.com +11544.com +1155871.com +1156.com +1156dns.com +115800.com +115cdn.com +115cdn.net +115img.com +115jk.com +1163.com +1166.com +11684.com +116cd.com +116cd.net +116kj.com +116yx.com +11773.com +117play.com +118114.net +118689.com +1188.com +118cy.com +118jm.com +118pan.com +118qikan.com +118study.com +118wa.com +119120.org +119958.com +119tx.com +119you.com +11chuangye.com +11dns.com +11dream.net +11fldxn.com +11flow.com +11g.com +11gai.com +11h5.com +11job.com +11job.net +11k.cc +11lx.com +11meigui.com +11pdf.com +11player.com +11qp94.com +11space.com +11sun.com +11wyx.com +11xotn7p.com +11ziyun.com +120-job.com +120.net +120185.com +120ask.com +120askimages.com +120bjgcyy.org +120btc.com +120fd.com +120kid.com +120kq.com +120top.com +120x.net +121121.net +12114job.com +12114rc.com +1212.com +12120.net +121314.com +121ask.com +121down.com +121mai.com +121mai0098.com +121mu.com +121wty.com +121xia.com +1220609.cc +122cha.com +122law.com +122park.com +123-789.com +123.cc +123.com +12301.cc +12306.com +12306bypass.com +12308.com +123123.net +12317.com +12317wan.com +1231818.com +12333.com +12333si.com +1234.cx +1234001.com +123456.la +12345good.com +12345good.net +12348.net +12349.net +1234biao.com +1234i.com +1234n.com +1234wu.com +1234wu.net +1234ye.com +1234yes.com +12354.com +12355.net +1236.com +12365auto.com +12366.com +12366.net +12366cn.com +12366ns.com +123aa.com +123ad.com +123admin.com +123aoe.com +123baofeng.com +123bo.com +123comeup.com +123ds.org +123du.cc +123ems.com +123fc.com +123haitao.com +123hala.com +123hao.com +123hdp.com +123juzi.com +123juzi.net +123meiyan.com +123menpiao.com +123nice.net +123novel.com +123pan.com +123qibu.com +123qy.com +123slg.com +123ths.com +123u.com +123v.net +123webgame.com +123xun.com +123xyq.com +124866.xyz +125.la +12530.com +12580.com +12580.net +12580.tv +12580study.com +125882.com +125edu.com +125job.com +125mx.com +125uu.com +125visa.com +125y.com +126.am +126.com +126.fm +126.link +126.net +126blog.com +126doc.com +126g.com +126qiye.com +126z.net +127-server.xyz +127.com +127.net +1278721.com +127xx.com +127z.com +128456.com +1288.tv +128qd.com +128sy.com +128uu.com +12988.net +12edu.com +12h5.com +12jn.com +12ky.com +12pk.com +12rj.com +12sporting.com +12tiku.com +12yao.com +12ym.com +12ystar.com +13.gs +130014.xyz +130158.com +1306030402.club +131.com +13112.com +1312.vip +1314520sz.com +131458.com +1314gl.com +1314study.com +1314wallet.com +1314zf.com +1317w.com +131cc.com +131w.tv +1322.com +132lawyer.com +1332vp.com +133335.xyz +13377608388.com +133998.com +133china.com +13482896776.com +135031.com +1351.com +13526785.com +135309.com +1353j.com +135650.com +13567.com +1356789.com +1356net.com +135958.com +135995.com +135bianjiqi.com +135box.com +135editor.com +135edu.com +135fa.com +135plat.com +135yuedu.com +136.com +1360.com +136136.com +13636.com +136fc.com +136hr.com +13707.net +13720.com +1374.com +1377.com +137home.com +13800.net +138gzs.com +138top.com +138txt.com +138vps.com +139.com +139000.com +1391.com +13910.com +139130.com +139135.com +1392189.com +13937180868.com +139592.com +13973.com +139cm.com +139erp.com +139life.com +139play.com +139shop.com +139talk.com +139w.com +139wanke.com +139y.com +139zhuti.com +13cr.com +13ejob.com +13gm.com +13hangpifa.com +13ww.net +13xiaoshuoa.com +13yx.com +140414.com +1415926.com +1415926.mobi +14294.com +14498.com +1451cn.com +147xs.com +147xz.com +148-law.com +14866.com +1488.com +148com.com +148la.com +14hj.com +14xd.com +150072.com +1502828.com +150cn.com +151.hk +1510game.com +15111223344.com +1512221.com +15153.com +15166.com +1516676.com +151733.com +1518.com +151rs.com +151top.com +151web.com +15211223344.com +152500.com +1527ego.com +15311223344.com +153g.net +1545ts.com +155.com +155175.com +155idc.com +1560168.cc +1560177.cc +156pay.com +15803.com +1588.tv +15880.com +158c.com +158jixie.com +159.com +15gg.com +15gift.com +15hr.com +15in.com +15ms.com +15solo.com +15str.com +15tianqi.com +15xdd.com +15yc.com +15yl.com +160.com +160.me +160yx.com +161580.com +1616.net +16163.com +1616dh.com +1616n.com +1618.com +161gg.com +1624.win +1626.com +163.cm +163.com +163.fm +163.gg +163.lu +163.net +1633.com +1633d.com +163663.com +1637.com +163888.net +163cdn.com +163cn.tv +163cp.com +163cs.com +163data.net +163fen.com +163hot.net +163industry.com +163jiasu.com +163k.cc +163k.com +163lady.com +163mail.com +163ns.com +163pinglun.com +163py.com +163qiyukf.com +163wh.com +163yu.com +163yun.com +164580.com +16466.com +165123.com +16587.com +166.com +166.net +166161.com +16640.com +1666.com +1668.net +1669la.com +166cai.com +166sh.com +166xs.cc +166zw.com +16768.com +16789.net +16816.com +16838.com +1684.cc +168510.com +1688.com +16885.com +16886000.com +16888.com +1688988.com +1688cdn.com +1688du.com +1688eric.com +1688la.com +1688na.com +1688s.com +1688zhuce.com +16899168.com +168cb.com +168chaogu.com +168dc.com +168dns.com +168hs.com +168job.com +168kk.com +168kn.com +168lyq.com +168manhua.com +168mlj.com +168moliao.com +168rcw.com +168tcw.com +168tea.com +168tex.com +168tochina.com +168zcw.com +169.com +169163.com +169369.com +1696.com +16999.com +169gold.net +169it.com +169kang.com +169t.com +16boke.com +16bus.net +16d.cc +16fan.com +16game.net +16hyt.com +16ker.com +16kxsw.com +16lao.com +16lo.com +16manhua.com +16p.com +16pic.com +16rd.com +16sucai.com +16tz.com +16wl.cc +16xcw.com +16xx8.com +16ye.com +17.com +170.com +17025.org +170hi.com +170mv.com +170tao.com +17167.com +17173.com +17173cdn.com +17173ie.com +17173v.com +17173yx.com +17178.com +1717kf.com +1717pk.com +1718china.com +1718world.com +171tax.com +171win.net +171zz.com +17207.com +172222.com +17284.net +172tt.com +173.com +1732.com +1732.net +17348.com +17350.com +17351.com +17369.com +173daxue.com +173eg.com +173fc.com +173funny.com +173iot.com +173kan.com +173kw.com +173on.com +173sy.com +173uu.com +173zb.com +173zy.com +17446.com +17566.com +1758.com +175club.com +175game.com +175ha.com +175kh.com +175pt.com +175pt.net +175sf.com +175wan.com +176616.com +17666.mobi +17673.com +1768.com +176878.com +176quan.com +1773.com +1778.com +178.com +178198.com +178448.com +1787.ink +178800.cc +178871.xyz +17888.com +178bit.com +178du.com +178hui.com +178linux.com +178online.com +178pt.com +178rw.com +179.com +179179.com +1794game.com +17986.net +17989.com +17admob.com +17ai.me +17avr.com +17b.net +17bang.ren +17bdc.com +17bianji.com +17byh.com +17caifu.com +17cdn.com +17ce.com +17chuang.cc +17coding.info +17cx.com +17dao.com +17dap.com +17dawan.com +17dm.com +17donor.com +17doubao.com +17dp.com +17emarketing.com +17ex.com +17fanwen.com +17fee.com +17fengguo.com +17fengyou.com +17fifa.com +17firefox.com +17font.com +17forex.com +17g.com +17game.com +17gaoda.com +17getfun.com +17gwx.com +17haibao.com +17hotplay.com +17house.com +17hpl.com +17huang.com +17itou.com +17ivr.com +17jc.net +17jita.com +17k.com +17kf.cc +17kgk.com +17kgl.com +17kjs.com +17koko.com +17kouyu.com +17kuxun.com +17kxgame.com +17lele.net +17lewan.net +17liuxue.com +17ll.com +17luyouqi.com +17m3.com +17meiwen.com +17mf.com +17mqw.com +17ms.com +17neo.com +17oh.com +17ok.com +17oko.com +17palyba.com +17pr.com +17python.com +17qcc.com +17qread.com +17rd.com +17rd.net +17read.com +17roco.com +17sucai.com +17syi.com +17sysj.com +17taotaoa.com +17taotaob.com +17taotaoba.com +17taotaoc.com +17tcw.com +17tigan.com +17track.net +17tui.cc +17tx.com +17u.com +17u.net +17u1u.com +17u7.com +17ugo.com +17uhn.com +17uhui.com +17uhui.net +17usoft.com +17usoft.net +17uxi.com +17v5.com +17vsell.com +17wan7.com +17wanba.com +17wanxiao.com +17wclass.com +17weike.com +17wendao.com +17whz.com +17win.com +17ww.cc +17xlm.com +17xsj.com +17xueba.com +17xxl.com +17ya.com +17yaoqu.com +17yc.com +17ym.org +17you.com +17yucai.com +17yund.com +17yunlian.net +17yy.com +17zhiliao.com +17zhuangxiu.com +17ziti.com +17zixue.com +17zjh.com +17zub.com +17zuoye.com +17zuoye.net +17zwd.com +18.cm +180102.com +18095.com +180disk.com +180qt.com +18183.com +18183g.com +1818hm.com +181ps.com +181ue.com +182208.com +18375.com +183me.com +183post.com +183read.com +18488.com +185185.com +186078.com +1866.tv +18665348887.com +186688.com +1873game.com +1874.cool +187997.com +188.com +188158.com +188187.xyz +188221.com +18856.com +188628.com +188app.xyz +188bifen.com +188diaoche.com +188hi.com +188lanxi.com +188mb.com +188naicha.com +188soft.com +188wan.com +188yd.com +1892139.com +1895m.com +189cha.com +189cube.com +189ebuy.com +189jxt.com +189read.com +189read.net +189sec.com +189smarthome.com +189store.com +189works.com +189young.com +18chonglou.com +18cp.vip +18daxue.com +18dx.com +18guanjia.com +18l.net +18ladys.com +18link.com +18ph.com +18qiang.com +18srcimg.com +18touch.com +18vps.com +18wk.com +18yl.com +18zhuanqian.com +18zw.com +19.com +1900.live +1903it.com +1905.com +19196.com +1919game.net +192ly.com +1931.com +1937cn.com +193839.com +1947.cc +1949idc.com +195155.com +195855.com +19687.com +197.com +197746.com +197946.com +197c.com +198254.com +19831110.com +198358.com +198424.com +198449.com +198503.xyz +198526.com +1985cd.com +1985t.com +1988.tv +19888.tv +1988wp.com +1989c.com +198game.com +198game.net +199508.com +1997sty.com +1998mall.com +1999019.com +1999year.com +199it.com +199u2.com +199yt.com +199zw.com +19bizhi.com +19call.com +19call.net +19lou.com +19mi.net +19mini.com +19pay.net +19ued.com +19where.com +19xsf.com +19yxw.com +19zhan.com +1an.com +1ang.com +1aq.com +1b23.com +1biaozhun.com +1bus.net +1cae.com +1caifu.com +1caitong.com +1cent.xyz +1checker.com +1cloudsp.com +1cnmedia.com +1cno.com +1d1d100.com +1dao99.com +1diaocha.com +1diary.me +1domedia.com +1drv.ws +1dufish.com +1dutm.com +1f11.com +1fenda.com +1foo.com +1fqw.com +1g31.com +1gbru.com +1gesem.com +1ggame.com +1gjh.com +1haigtm.com +1hangye.com +1hhd.com +1hkt.com +1hshop.com +1huamu.com +1huizhan.com +1iptv.com +1j1x.net +1jiajie.com +1jian.fun +1juzi.com +1k2k.com +1ka123.com +1kapp.com +1ke.net +1kejian.com +1kkk.com +1kmxc.com +1kuang.com +1kx.me +1kxun.com +1kyx.com +1lan.tv +1liantu.com +1look.tv +1lou.com +1lzs.com +1m.net +1m3d.com +1m85.com +1mall.com +1mao.cc +1maoshua.com +1mayi.com +1mfg.com +1miba.com +1mishu.com +1mit.com +1mm8.com +1mmed.com +1mod.org +1more.com +1mpi.com +1mushroom.com +1mxian.com +1n11.com +1nami.com +1nmob.com +1nongjing.com +1nsou.com +1nyz.com +1o26.com +1p1g.com +1pm2.com +1ppt.com +1q2q.com +1qa.link +1qfa.com +1qianbao.com +1qwe3r.com +1r1g.com +1ridai.com +1rtb.com +1rtb.net +1safety.cc +1sapp.com +1shang.com +1shangbiao.com +1shoucang.com +1sj.tv +1sohu.com +1stacks.net +1stchip.com +1stjc.com +1t1t.com +1tai.com +1tdw.com +1techan.com +1textile.com +1thx.com +1ting.com +1tjob.com +1tong.com +1tu-design.com +1tu.com +1tuikem.com +1uke.com +1uuc.com +1vp.me +1wang.com +1wii.com +1x3x.com +1xiezuo.com +1xinzulin.com +1xmb.com +1xz.com +1y.com +1y0g.com +1y2y.com +1yabc.com +1yaoda.com +1yb.co +1yd.me +1yee.com +1yun.cc +1yyg.com +1zhangdan.com +1zhao.org +1zhe.com +1zhengji.com +1zhixue.com +1ziyou.com +1zjob.com +1zr.com +1zu.com +1zw.com +2-class.com +2-mm.net +200.net +2000200.com +200022.xyz +2000888.com +2000dns.com +2000new.com +2000y.net +200218.com +20063365.com +2006q.com +2008php.com +2008red.com +200call.com +200wan.com +200y.com +201061.com +2011ly.com +201201.com +2012jxf33.com +20130123.com +2014.mobi +2014w7.com +201551.com +2015law.com +2016ruanwen.com +2016win10.com +20174555.com +2017taoke.com +2018zjjly.com +2019cdac.com +201g.com +202030.com +2021.com +2022cdnpl.com +2022pola.com +2023game.com +202m.com +202wan.com +2048sj.com +2049baby.com +2080ly.com +208xs.com +20ju.com +20planet.com +20qu.com +20xs.cc +20xue.com +20z.com +21-rent.com +21-sun.com +210997.com +210z.com +2113.net +2114.com +2115.com +211600.com +211ic.com +211lx.com +211zph.com +212300.com +2125.com +21263.net +2128.net +2133.com +21373.com +2143t.com +2144.com +2144gy.com +214yx.com +2155.com +216tt.com +217.net +217play.com +217wo.com +218318.com +218996.com +21bcr.com +21beats.com +21bm.com +21bowu.com +21cake.com +21cbr.com +21ccnn.com +21cd.com +21ce.cc +21cn.com +21cn.net +21cnev.com +21cnjy.com +21cnjy.net +21cnsungate.com +21cos.com +21cp.cc +21cp.com +21ctest.com +21datasheet.com +21dianyuan.com +21edu8.com +21ejob.com +21eline.com +21epub.com +21fid.com +21food.com +21ge2.com +21hubei.com +21hubei.net +21ic.com +21icsearch.com +21ido.com +21jingji.com +21jrr.com +21js.com +21kan.com +21ks.net +21kunpeng.com +21ld.com +21maoyi.com +21mcu.com +21mmo.com +21na.com +21our.com +21qa.net +21qphr.com +21rv.com +21shhr.com +21shipin.com +21shte.net +21skcy.com +21smov.com +21so.com +21softs.com +21spv.com +21sq.org +21tb.com +21tjsports.com +21tx.com +21tyn.com +21uv.com +21vbc.com +21vbluecloud.com +21vbluecloud.net +21viacloud.com +21vianet.com +21voa.com +21wecan.com +21wenju.com +21ww.cc +21xc.com +21xcx.com +21xianhua.com +21xl.info +21xuema.com +21yod.com +21yq.com +21ytv.com +21yunwei.com +21zbs.com +21znw.com +22.com +221234.xyz +2213.com +221400job.com +22145.com +2217.com +221700.com +2218j.com +222.com +222255268.com +222bz.com +222i.net +223.so +2239.com +223969ufy.com +224.com +22442400.com +2247.com +224700.com +225721.com +2258.com +22588888.com +225962tyy.com +226120.com +2265.com +226500.com +226531.com +2280.com +2281wa.ren +2288.org +2295.com +2298.com +22baobei.com +22dm.com +22doc.com +22edu.com +22hd.com +22ja.com +22k9.com +22lianmeng.com +22lrc.com +22mt.in +22n.com +22net.com +22plc.com +22shop.com +22tianbo.com +22vd.com +22zw.com +22zy.net +2300sjz.com +230596.com +230890.com +231122.com +232232.xyz +2323u.com +2323wan.com +232485.com +232929.com +233.com +233000.com +2333u.com +23356.com +233863.com +2339.com +233d.net +233leyuan.com +233lyly.com +233o.net +233py.com +233wo.com +233ww.net +233xyx.com +234.com +2344.com +2345.cc +2345.com +2345.gd +2345.net +23456v.com +2345a.com +2345ac.com +2345cdn.net +2345download.com +2345ff.com +2345mbrowser.com +2345soso.com +234du.com +234f.com +2356.com +236400.com +236501.xyz +2366.com +23673.com +236v.cc +236z.com +237y.com +239334.cc +23bei.com +23book.com +23class.com +23cpc.com +23do.com +23du.com +23ee.net +23hh.net +23img.com +23job.net +23kmm.com +23ks.com +23luke.com +23lvxing.com +23qb.com +23qb.net +23qun.com +23sk.com +23txt.com +23us.so +23us.tv +23us23us.com +23uswx.com +23wow.com +23wx.cc +23wx.io +23xs.cc +23xs.tv +23xsw.cc +23yy.com +240yx.com +246546.com +2478.com +248.com +2481e.com +248xyx.com +249m.com +24geban.com +24haowan.com +24hmb.com +24k99.com +24kdh.com +24ker.com +24kplus.com +24maker.com +24money.com +24om.com +24pay.net +24timemap.com +24u7tos.com +2500.tv +25000li.com +2500city.com +2500fang.com +2500sz.com +2529.com +253.com +253669vqx.com +253952.com +253u.com +2541.com +254game.com +255616.com +256app.com +25752.com +258.com +258288.com +25847.com +25863.com +2588qq.com +25892.com +258ch.com +258fuwu.com +258jituan.com +258sd.com +25992.com +25az.com +25dx.com +25game.com +25ku.com +25nc.com +25pp.com +25pyg.com +25un.com +25wy.com +25xm.com +25xt.com +25yi.com +25yz.com +260.net +2629.com +263.com +263.net +263em.com +263fc.com +263idc.com +263idc.net +263vps.com +263xmail.com +263y.com +263zw.com +264006.com +26595.com +265g.com +265o.com +265ps.com +266.la +266680.com +266wan.com +2672721.xyz +2678.com +267gg.com +2686.com +2688.com +268888.net +268v.com +269.net +26923.com +26ef.com +26host.com +26joy.com +26ks.org +26lady.com +26tc.com +26youxi.com +26yx.com +26zc.com +27270.com +273u.com +275.com +275st.com +277sy.com +278838mcu.com +2799web.com +279tt.com +279wo.com +27aichi.com +27dt.com +27dy.com +27l.com +27lvpai.com +27tj.com +27ws.com +28.com +281010.com +28123.com +281826.vip +2827.com +28283.com +2835177ccc.com +28493.com +2853x.com +2858999.com +285u.com +286392.com +288288dy.com +288idc.com +289.com +2898.com +28beiduo.com +28ka.com +28khy.com +28rv.com +28tui.com +28y.com +28yj.com +2918.com +29293.com +2929gou.com +293.net +29592.net +2961h.com +29663.com +296u.com +29797.com +2980.com +2981.com +29851.xyz +299906.com +29dnue.com +29nh.com +29xf.com +29yx.com +2abc8.com +2av7.com +2baxb.me +2bkw.com +2broear.com +2bulu.com +2caipiao.com +2ccc.com +2chcn.com +2cloo.com +2cname.com +2cq.com +2cto.com +2cycd.com +2cycomic.com +2cyxw.com +2cyzx.com +2d3d5d.net +2dan.cc +2danji.com +2df.me +2dfire.com +2dfire.info +2dph.com +2du.net +2dyou.com +2ed5d.com +2f.com +2fc5.com +2floorings.com +2fz1.com +2g88.vip +2gdt.com +2gei.com +2google.com +2hanjutv.com +2haohr.com +2heng.xin +2hua.com +2ibook.com +2ic.cc +2ita.com +2itcn.com +2j-m.by +2j88.com +2jianli.com +2jiapu.com +2k2k.com +2kb.com +2ktq.com +2ktvb.com +2kxs.org +2lian.com +2lieqi.com +2loveyou.com +2m2j.com +2ma2.com +2mjob.com +2mould.com +2muslim.org +2or3m.com +2p.com +2pcdn.com +2q10.com +2qupu.com +2r3r.com +2rich.net +2shihui.net +2sx.net +2tianxin.com +2tx.com +2v8d.com +2w.cm +2weima.com +2wzz.com +2xd.net +2xiazai.com +2y9y.com +2yuanyy.com +2yup.com +2zhk.com +2zimu.com +2zzzzzz.com +3-3.me +3.biz +30.com +30.net +3000.com +300033.info +3000api.com +3000idc.com +3000soft.net +3000test.com +3000xs.com +3001.net +300113.com +300624.com +300hu.com +300ppt.com +300zi.com +301-66cdn.com +301688.com +301mba.com +301nn.com +301zhuanfa.com +3023.com +302302.xyz +3033c.com +3044.com +306t.com +30c.org +30cgy.com +30cn.net +30fun.com +30ka.com +30play.com +30tqyb.com +30w.net +31.com +310game.com +310s-2520.com +310tv.com +310win.com +311100.com +311wan.com +312green.com +313.com +313515.com +3145.com +314pay.com +3150315.com +3158.com +315banzhao.com +315che.com +315fangwei.com +315hyw.com +315i.com +315online.com +315sc.org +315tech.com +315z.net +315zw.com +31609.com +317608.com +317hu.com +3188.la +318ek.com +3198.com +31alu.com +31bxg.com +31byq.com +31bzjx.com +31cg.com +31chaxun.com +31expo.com +31fabu.com +31food.com +31games.com +31gcjx.com +31huiyi.com +31idc.com +31jc.com +31jf.com +31jgj.com +31jiaju.com +31jmw.com +31jxw.com +31knit.com +31mada.com +31martech.com +31meijia.com +31ml.com +31mold.com +31pump.com +31rent.com +31seal.com +31sjjx.com +31spjx.com +31taoci.com +31wj.com +31xj.com +31xs.net +31yarn.com +31yj.com +31yr.com +31zscl.com +320106.com +320921.com +321200.com +321274.com +321ba.com +321cad.com +321cy.com +321dai.com +321fenx.com +321go.com +321kaishi.com +321key.com +321mh.com +321zou.com +322wl.com +3230.com +3234.com +3237.com +324.com +3259.com +326pay.com +3280.com +32800.com +3286.cc +328f.com +328vip.com +3290.com +32c3.com +32ka.com +32r.com +32wan.com +32yx.com +33.com +330123456.com +3304399.com +3304399.net +330shingpklk.com +33105.com +331234.xyz +3312345.com +3320.net +3321.com +3322.cc +3322.net +3322.org +3323.com +3323399.com +332831.com +333-555.com +3332358.com +33330354.com +333333.com +3335665.com +33360.com +3336637.com +3336639.com +3336653.com +3336657.com +333666999.club +3336672.com +3336673.com +3336683.com +3336691.com +3337726.com +3337729.com +3337736.com +3337739.com +3337751.com +3337756.com +3337765.com +3337780.com +3337781.com +3337782.com +3337783.com +3337785.com +33380xl.com +3338808.com +3338863.com +3339auto.com +333ck.com +333cn.com +333job.com +333ku.com +333y3.com +334433.xyz +3344u.com +33519.com +3359.com +3361.com +3366.com +3366.net +3366812ccc.com +336688.net +3366886633.com +3366img.com +3367.com +337000.com +337y.com +338336.com +3387.com +3389dh.com +3393.com +33aml.com +33app.net +33bus.com +33ip.com +33iq.com +33jianzhi.com +33jzw.com +33lc.com +33ly.com +33map.com +33map.net +33oncall.com +33trip.com +33xs.com +33yq.com +33yqw.com +34.com +341666666.com +3454.com +3456.cc +3456.com +3456.tv +34580.com +345fk.com +345huishou.com +345k.com +3464.com +3499.co +34job.com +34wl.com +35.com +350.com +350.net +3500.com +350200.com +350abc.net +35195.vip +352.com +3520.net +352200.com +3525.com +35321.com +3533.com +354054.com +3551.com +355xx.com +356123.com +35666c.com +35667.com +356688.com +3566t.com +357.com +357global.com +358.com +35941.com +3595.com +35ba.com +35dalu.com +35dxs.com +35go.net +35hw.com +35inter.com +35jk.com +35kds.com +35lz.com +35nic.com +35pic.com +35pn.com +35q.com +35wed.com +35zww.com +36.la +360-bo.tv +360-g.net +360-game.net +360-jr.com +360.com +360.net +3600.com +3600.net +3600d.com +3600du.com +360114.com +360118.com +360510.com +36099.com +360abc.com +360aiyi.com +360anyu.com +360bifen.net +360biji.com +360buy.com +360buyimg.com +360buyinternational.com +360byd.com +360bzl.com +360caifu.com +360cdn.com +360cdnjiasu.com +360changshi.com +360che.com +360chezhan.com +360chou.com +360cloudwaf.com +360daikuan.com +360ddj.com +360doc.com +360doc1.net +360doc2.net +360doc26.net +360doc28.net +360doc31.net +360doc33.net +360doc35.net +360doc7.net +360docs.net +360doo.com +360down.com +360drm.com +360dunjiasu.com +360eol.com +360fdc.com +360gann.com +360gogreen.com +360gtm.com +360guanai.com +360hapi.com +360hitao.com +360hqb.com +360huzhubao.com +360hx.com +360hy.com +360hyzj.com +360ic.com +360img.cc +360insurancemall.com +360ito.com +360jie.com +360jinrong.net +360jq.com +360jrjietiao.com +360jrkt.com +360jzhm.com +360kad.com +360kan.com +360ksbd.com +360kuai.com +360kuaixue.com +360kxr.com +360lj.com +360log.com +360longyan.com +360midi.com +360mkt.com +360os.com +360panyun.com +360powder.com +360qc.com +360qd.com +360qhcdn.com +360qikan.com +360qikan.net +360qws.com +360safe.com +360safedns.com +360sdn.com +360shouji.com +360shouzhuan.com +360sok.com +360sousou.com +360stamp.com +360taojin.com +360tianma.com +360tong.net +360top.com +360totalsecurity.com +360tpcdn.com +360tres.com +360u9.com +360uu.com +360vcloud.com +360vipshop.com +360vps.com +360vrzy.com +360wbl.com +360webcache.com +360weizhan.com +360wscdn.com +360wyw.com +360wzb.com +360wzws.com +360xh.com +360xiehui.com +360xkw.com +360xlab.org +360yao.com +360yfw.com +360youtu.com +360zhyx.com +360zqaq.com +361.cm +361757.com +3618med.com +361a.com +361dai.com +361mogame.com +361shipin.com +361sport.com +361way.com +362.cc +362728tdg.com +363.com +363.net +363322014.com +363u.com +364000.com +365111.com +365128.com +365135.com +36524hua.com +36543.com +365500.com +365708.com +36578.com +365960.com +365art.com +365auto.com +365autogo.com +365azw.com +365bj.com +365book.net +365cgw.com +365chanlun.com +365che.net +365css.com +365cyd.com +365cyd.net +365daan.com +365dhw.com +365diandao.com +365digitalonline.com +365ditu.com +365dmp.com +365editor.com +365eme.com +365essay.com +365f.com +365gangqin.com +365heart.com +365htk.com +365huaer.com +365huifu.com +365ibank.com +365icl.com +365ime.com +365inews.com +365j.com +365jcw.com +365jia.com +365jiating.com +365jilin.com +365jq.com +365jw.com +365jz.com +365kan.tv +365kandian.com +365key.com +365master.com +365pcbuy.com +365pk.com +365pp.com +365pr.net +365pub.com +365rili.com +365sec.com +365shequ.com +365sky.com +365ta.com +365tex.com +365ttcz.com +365webcall.com +365world.com +365xiaoyanzi.com +365xiazai.com +365xuet.com +365xxy.com +365yg.com +365you.com +3663.com +366300.com +36657.cc +366ec.com +366kmpf.com +366translation.com +36706.com +3673.com +368mall.com +368tea.com +369110.xyz +3694c.com +369785.com +3699.cc +3699wan.com +369wenku.com +369xxw.com +36cao.live +36dianping.com +36dj.com +36hjob.com +36jr.com +36kr.com +36kr.net +36krcdn.com +36krcnd.com +36nu.com +36tw.com +36ve.net +36yc.com +37.com +37088924.cc +370fd.com +371.com +371.net +3710167.com +37163.com +371house.com +371love.com +37201.com +3721ps.com +3722.com +3727.cc +37274.com +3733.com +3733game.com +3737.com +3737k.com +373best.com +373f.com +373net.com +373yx.com +375263.com +375772rug.com +375buy.com +37682.biz +37937.com +3798.com +3799qq.com +37bjw.com +37cos.com +37cs.com +37cu.com +37cy.com +37dh.com +37game2.com +37gogo.com +37gowan.com +37hr.com +37k.com +37med.com +37pps.com +37see.com +37tang.com +37tgy.com +37wan.com +37wan.net +37wanimg.com +37women.com +37www.com +37wxwl.com +37yue.com +37yzy.com +37zone.com +380852.com +380871.com +3817.com +381pk.com +38238r.com +3839.com +3839apk.com +3839app.com +3839app.net +3839img.com +3839pay.com +3839pic.com +3839vc.com +3839video.com +383yun.com +3887.com +388g.com +3892222.com +3895566.com +3899.net +389j.com +38blog.com +38ejed.com +38fan.com +38hack.com +38hot.net +38hp.com +38hzt.com +38mhw.com +38zj.com +39.com +39.net +391065.com +3911.com +391k.com +393.com +3937.com +3964.com +39655.com +3975.com +3975ad.com +3975ad.xyz +3975app.com +3975cdn.com +3977s.com +3977t.vip +399493.com +39ask.net +39center.com +39clean.com +39cs.com +39dg.com +39ej7e.com +39fei.com +39fengliao.com +39h83s.com +39health.com +39jks.com +39kan.com +39kf.com +39meitu.com +39shubao.com +39sk.com +39txt.com +39ws.com +39yst.com +3a4.net +3a4b5c.com +3aok.com +3avox.com +3b2o.com +3bu.com +3bwx.com +3c2p.com +3chongmen.com +3cjob.com +3conline.com +3cpp.org +3cvrc.com +3cwu.com +3cxg6v.com +3d-stereovision.com +3d2000.com +3d56.net +3d66.com +3daima.com +3dbuyu.com +3dbuyu.net +3ddayin.net +3ddl.net +3ddl.org +3deazer.com +3dgali.com +3dgenomics.org +3dhao.com +3dhat.com +3dhoo.com +3dinlife.com +3dinnet.com +3dkk.com +3dkunshan.com +3dllc.cc +3dllc.com +3dly.com +3dm.pw +3dmax8.com +3dmaxvip.com +3dmgame.com +3dmgame.hk +3dmgame.net +3dmo.com +3dmomoda.com +3dnew.com +3doe.com +3dsjw.com +3dsnail.com +3dtank.com +3dtvbits.org +3dwebyx.com +3dwwwgame.com +3dxia.com +3dxt.com +3dxuan.com +3dxy.com +3dzyw.com +3e.net +3elife.net +3eyes.org +3fang.com +3fantizi.com +3g-edu.org +3g210.com +3g3h.org +3g567.com +3gdisk.com +3gifs.com +3glasses.com +3gmfw.com +3gmimo.com +3gogogo.com +3gosc.com +3gpda.net +3gpk.net +3gsou.com +3gu.com +3gus.com +3h3.com +3incloud.com +3j4.com +3jdh.com +3jidi.com +3jke.com +3k.com +3k3cn.com +3ke.cc +3kid.com +3kk.com +3kmq.com +3ko.com +3kongjian.com +3kr.com +3kyi.com +3laohu.com +3laz.com +3lbrand.com +3lian.com +3lsoft.com +3mbang.com +3mh0yvx.com +3miao.net +3miii.com +3mtw.com +3mu.me +3n110.com +3nbb.com +3poo.com +3q2008.com +3qhouse.com +3qwe.com +3renhe.net +3richman.com +3rkr.com +3s.work +3s001.com +3s3w.com +3s78.com +3scard.com +3shuwu.com +3snews.net +3songshu.com +3stl.com +3tilabs.com +3u.com +3unshine.com +3uol.com +3us.com +3uww.cc +3v.do +3vjia.com +3vjuyuan.com +3vlm.net +3vsheji.com +3wads.com +3wcoffee.com +3wfocus.com +3wht.com +3wka.com +3wmm.com +3wzhaopin.com +3x88.net +3xgd.com +3xiazai.com +3y7h.com +3yakj.com +3yoqu.com +3yx.com +3zhijk.com +3zmuseum.com +4-xiang.com +4.cm +400-lighting.com +400.com +4000034168.com +4000278400.com +4000500521.com +4000730138.com +4000892990.com +4001006.com +4001006666.com +4001113900.com +4001581581.com +4001890001.com +4001961200.com +400301.com +40046aa.com +400516.com +4006026717.com +4006055885.com +4006216888.com +4006339177.com +4006695539.com +4006906600.com +4007108885.net +4007112366.com +4008000000.com +4008005216.com +4008060066.com +4008075595.com +4008090678.com +4008103103.com +4008107107.com +4008109886.com +4008117117.com +4008123123.com +4008600011.com +4008800016.com +4008863456.com +4008885166.com +4008885818.com +4009515151.com +4009700778.com +4009870870.com +4009991000.com +400cx.com +400gb.com +400iu.com +400jz.com +400lyw.com +400num.com +400qikan.com +400vv.com +400web.com +402043.com +40407.com +404600.com +404forest.com +404mzk.com +404wan.com +404youxi.com +405400.com +406yx.com +407wan.com +4080517.com +4080so.com +409874.com +40fenzhong.com +40manhua.com +40maoaa.com +40mdd.com +41114.cc +41188.com +411au.com +4124.com +41324.com +4138622.com +4143.cc +4177.com +418999.com +41game.com +41gw.com +41huiyi.com +41ms.com +41tp.com +41wan.com +41xt.com +42069.com +421.co +42144.com +423down.com +4243.net +425300.co +425yx.com +42651.com +426g.com +429006.com +42trip.com +42xz.com +4311.com +4321.com +432520.com +435000.com +435200.com +4355.com +4366.com +436675.com +4366aa.com +4366ga.com +4366pk.com +4377.com +4377info.com +437zhifu.com +4393.cc +4399-xyx.com +4399.com +4399.net +43999yx.com +4399api.com +4399api.net +4399biule.com +4399data.com +4399dmdq.com +4399dmw.com +4399doc.com +4399er.com +4399hhh.com +4399i.net +4399inc.com +4399j.com +4399mail.com +4399pk.com +4399sj.com +4399swf.com +4399sy.com +4399wanju.com +4399youpai.com +4399youxi.com +4399yyy.com +43ns.com +43zhubao.com +4425t.com +444333.xyz +444475.com +44485.com +444888qq.com +4480.cc +4484.win +4492.com +4493.com +44971.com +44dt.com +44vs.com +453600.net +456.net +4567w.com +456ss.com +457.com +45758924.vip +458kq.com +459.org +45app.com +45fan.com +45io.com +45ns.com +45r.com +45win.com +45xie.com +45yx.com +46412.com +46466.me +465676.tv +4658.net +46644.com +46771313.com +4699a.com +46design.com +46mlsv.com +47365.com +4738.com +4743.uk +47473.com +474b.com +4765.com +4779.com +477zw.com +47819.com +47gs.com +47test.com +47zu.com +48.com +4846.com +48575.com +4869.cc +48855268.com +48905.com +48hao.net +49321.com +49358.com +49363.com +4948.com +49644913.com +496601.com +497-img.com +497.com +498.net +499-img.com +499youxi.com +49app.com +49ms.net +49pic.com +49vps.com +49wanwan.com +49you.com +49yu.com +4a40.com +4apx.com +4aqq.com +4ci.cc +4cnzz.com +4cola.com +4cun.com +4dai.com +4db.com +4dtime.com +4dwan.com +4dzfoq.xyz +4everdns.com +4f89.com +4fang.net +4ggogo.com +4gh6.com +4glte.org +4gqp.com +4gtoefl.com +4h6s.com +4hgame.com +4hou.com +4hpy.com +4inlook.com +4jplus.com +4k123.com +4kbizhi.com +4kong.com +4kya.com +4l.hk +4lzr.com +4paradigm.com +4px.com +4pyun.com +4q5q.com +4sjob.com +4sscrm.com +4tdf.com +4thetooth.com +4to66.com +4u4v.net +4w8.net +4xseo.com +4y4.net +4ye.cc +4yt.net +4yx.com +5-link.com +50-jia.com +500.com +5000.com +50004.com +5000yan.com +50018.com +50027.com +500cache.com +500d.me +500doc.com +500fd.com +500gm.com +500hj.com +500px.me +500talk.com +500tb.com +500wan.com +500wancache.com +500zhongcai.com +5011.net +501wan.com +50215.com +503118.com +50331.net +503error.com +504pk.com +5054399.com +5054399.net +505gg.com +505uu.com +5066.com +5068yx.com +506fhq.com +50970.com +50bang.org +50bangzh.com +50pk.com +50pkpk.com +50sht.com +50tu.com +50union.com +50vm.com +50yc.com +50yin.com +50zera.com +50zw.co +50zw.com +50zw.la +51-cf.com +51-jia.com +51-n.com +51.com +51.la +51.net +5100.net +510560.com +510xds.com +510you.com +511.la +511023.com +51110.com +51119.com +5117.com +511718.com +5118.com +5118img.com +5119.net +511mv.com +511wan.com +511wx.com +511yj.com +5120.com +5120bb.com +51240.com +51269017.com +512999.xyz +512play.com +512wx.com +5132.com +513523.com +5137.cc +51386.com +513hjs.com +514193.com +514200.com +51508.com +51511.com +515158.com +5151app.com +5151sc.com +5153.com +51555.net +51569.com +5156rcw.com +515app.com +515car.com +515ha.com +515ppt.com +5163.com +51658042.com +51661182.com +5166ys.com +516a.com +516edu.com +516ly.com +5170d.com +5173.com +5173cdn.com +517best.com +517cdn.com +517ee.com +517hotel.com +517huizhou.com +517huwai.com +517idc.com +517japan.com +517la.com +517la.net +517lppz.com +517ming.com +517mr.com +517na.com +517rcw.com +517tez.com +517w.com +517xc.com +5184.com +51845.com +5184edu.com +5184pass.com +5185.cc +51864.com +5187g.com +5188.com +5188ab.com +518ad.com +519.best +519397.com +51969.com +5199.cc +5199.com +519rv.com +51ade.com +51ads.com +51aimei.com +51aiwan.com +51anidea.com +51app.com +51ask.org +51asm.com +51aspx.com +51auto.com +51autogo.com +51autoimg.com +51awifi.com +51azure.cloud +51babybuy.com +51baigong.com +51banban.com +51banhui.com +51baocan.com +51baoku.com +51baoshui.com +51baoxiu.com +51bbo.com +51besttea.com +51bi.com +51biaoqing.com +51biz.com +51bjrc.com +51bmb.com +51bonli.com +51bos.com +51bras.com +51btceth.com +51bushou.com +51businessview.com +51buy.com +51bxg.com +51bzi.com +51cacg.com +51callcenter.com +51callu.net +51camel.com +51ccd.com +51ccdn.com +51cdn.com +51chang.com +51changdu.com +51changdu.xyz +51changxie.com +51chaoban.com +51chost.com +51chuli.com +51cir.com +51cjyy.com +51cocoa.com +51code.com +51cok.com +51comp.com +51cosmo.com +51cpm.com +51credit.com +51csr.com +51cto.com +51cube.com +51cunzheng.com +51daao.com +51dai.com +51daifu.com +51daima.com +51dangpu.com +51daquan.com +51daxueedu.com +51dc.com +51devapp.com +51diangu.com +51din.com +51dingxiao.com +51ditu.com +51dmq.com +51dns.com +51dojoy.com +51dongshi.com +51down.vip +51dpub.com +51drv.com +51dtv.com +51dugou.com +51dzrc.com +51dzt.com +51dzw.com +51ean.com +51ebo.com +51ebooks.com +51edu.com +51eduline.com +51eim.com +51ejz.com +51ekt.com +51ele.net +51emo.com +51en.com +51epei.com +51eshop.com +51etong.com +51eyun.com +51f.com +51facai.com +51fangan.com +51fanli.com +51fanli.net +51feibao.com +51finace.com +51findshop.com +51flrc.com +51fpg.com +51fubei.com +51fucai.com +51fund.com +51fxkj.com +51fxzq.com +51fytx.com +51g3.com +51g3.net +51g4.com +51gaifang.com +51gfw.com +51ggwu.com +51gh.net +51give.org +51gjie.com +51gjj.com +51gme.com +51golife.com +51gongxiao.com +51goods.vip +51google.com +51gouke.com +51goupiao.com +51gowan.com +51gran.com +51grfy.com +51growup.com +51gsl.com +51guanhuai.com +51guoji.com +51h5.com +51hanghai.com +51hangkong.com +51haofu.com +51haojob.com +51hcb.com +51hchc.com +51hcw.com +51hei.com +51hejia.com +51hika.com +51hjk.com +51hlife.net +51hosting.com +51hostonline.com +51houniao.com +51hsw.com +51huanhuan.com +51huaya.com +51hunningtu.com +51hvac.com +51hwe.com +51hwzy.com +51ias.com +51ibm.com +51idc.com +51ielts.com +51ifind.com +51ifonts.com +51img1.com +51img2.com +51img3.com +51img5.com +51img6.com +51img7.com +51img9.com +51imo.com +51ios.net +51itapp.com +51itstudy.com +51iwifi.com +51ixuejiao.com +51jiabo.com +51jiameng.com +51jianxie.com +51jiaxiao.com +51jiecai.com +51jiemeng.com +51jingke.com +51jingying.com +51jishu.com +51jiuhuo.com +51job.com +51jobcdn.com +51jobdns.com +51js.com +51jt.com +51jucaimi.com +51julebu.com +51junshi.com +51jyrc.com +51kahui.com +51kaiye.com +51kanong.com +51kaowang.com +51kaxun.com +51kehui.com +51kids.com +51kik.com +51kim.com +51kt.com +51kupai.com +51kupin.com +51kywang.com +51la.net +51labour.com +51laizhe.com +51langtu.com +51ldb.com +51ldzx.com +51lg.com +51lifes.com +51lingji.com +51liucheng.com +51ljms.com +51lucy.com +51lunwenwang.com +51luying.com +51lyrc.com +51mag.com +51maiquan.com +51marryyou.com +51mdd.com +51mdq.com +51meeting.com +51meigu.com +51meiliao.com +51meishu.com +51microshop.com +51miit.com +51minbingtuan.net +51miz.com +51mkf.com +51mnq.com +51mo.com +51mockup.com +51mokao.com +51mole.com +51moot.net +51mrp.com +51mta.com +51mtw.com +51nicelearn.com +51niux.com +51nod.com +51nuoqi.com +51nwt.com +51offer.com +51oneone.com +51onion.com +51onlines.com +51only.com +51open.net +51opone.com +51ops.com +51pao.net +51papers.com +51pec.com +51peptide.com +51pgzs.com +51photo.vip +51php.com +51pibu.com +51pigai.com +51ping.com +51pinwei.com +51pjys.com +51pla.com +51pocket.com +51pocket.net +51pos.com +51pot.com +51pptmoban.com +51psj.com +51puer.com +51qc.com +51qc.net +51qianduan.com +51qianguo.com +51qianvisa.com +51qicheng.com +51qilv.com +51qingjiao.com +51qinxue.com +51qqt.com +51qtg.com +51qub.com +51qudao888.com +51qudong.net +51qumi.com +51quzhe.com +51rc.com +51rcsl.com +51read.site +51rencai.com +51render.com +51renpin.com +51renxing.com +51report.com +51rong.com +51room.com +51rp.com +51rry.com +51rz.org +51sai.com +51sanhu.com +51sao.net +51scb.com +51sdjob.com +51search.net +51seer.com +51self.com +51serive.com +51sgg.cc +51share.net +51shebao.com +51sheyuan.com +51shiping.com +51shop.ink +51shoubei.com +51shoufei.net +51shoushi.com +51shubiao.com +51shuobo.com +51shyc.com +51signing.com +51sjk.com +51sole.com +51speeds.com +51spjx.com +51suitui.com +51sutong.com +51sxue.com +51szhk.com +51talk.com +51talkenglish.com +51tanbao.com +51tao.com +51taonan.com +51taoshi.com +51taowei.com +51taoyang.com +51tb.me +51test.net +51testing.com +51testing.net +51testing.org +51tiangou.com +51tie.com +51tietu.net +51tijian.com +51tingyi.com +51tonglu.com +51tools.info +51toro.com +51touch.com +51toufang.com +51tour.com +51touxiang.com +51tra.com +51tracking.com +51ttxue.com +51tuiyi.com +51tunhuo.com +51tv.com +51tv.net +51tvbao.com +51tvrom.com +51tyty.com +51tz.com +51uc.com +51ukf.com +51uyi.com +51vimeo.com +51vip.biz +51vs.com +51vv.com +51vv2.com +51wan.com +51wangdai.com +51wanquan.com +51wcity.com +51web.com +51websec.com +51weihu.com +51wendang.com +51wf.com +51wincai.com +51windows.net +51wj.com +51wjrc.com +51wnl-cq.com +51wnl.com +51world.win +51wp.com +51wtp.com +51wuditu.com +51wxjz.com +51wydj.com +51wyfl.com +51wyrc.com +51wzg.com +51wzxz.com +51xbx.com +51xcrc.com +51xiancheng.com +51xianwan.com +51xiaohua.com +51xiaolu.com +51xie.com +51xingjy.com +51xinhu.com +51xinyuan.com +51xnj.com +51xpj.com +51xuanmu.com +51xuanxiao.com +51xue8.com +51xuetang.com +51xuewen.com +51xuexiaoyi.com +51xumei.com +51xxziyuan.com +51y5.com +51y5.net +51yabei.com +51yangsheng.com +51yanwang.com +51yasai.com +51yes.com +51yey.com +51yhdai.com +51yilu.com +51yip.com +51ykb.com +51ymxc.com +51yonggao.com +51you.com +51youcai.com +51youdian.com +51yougo.com +51youth.com +51youz.com +51ys.com +51ysrc.com +51yuansu.com +51yue.net +51yuepin.com +51yueqian.com +51yund.com +51yundong.me +51yuu.com +51ywx.com +51yxcyy.com +51zaliang.com +51zan.com +51zbz.com +51zbz.net +51zd.net +51zhangdan.com +51zheduoduo.com +51zhengxin.com +51zhi.com +51zhishang.com +51zhizhao.com +51zhucai.com +51zhujia.com +51zishentang.com +51zixuewang.com +51zjxm.com +51zmt.net +51zr.com +51zsjc.com +51ztzj.com +51zx.com +51zxw.net +51zyrc.com +51zyzy.com +51zzl.com +52-ic.com +520.com +520.net +5200cc.com +5200wx.com +520101.com +520520520520520.com +52091w.com +520990.com +520apk.com +520cc.com +520cfc.com +520chs.com +520fx.com +520hello.com +520hhht.com +520it.com +520jiabo.com +520jita.com +520lbl.com +520link.com +520love520.com +520mingmei.com +520mojing.com +520mwx.com +520way.com +520xiazai.com +520xp.com +520xst.com +520yidui.com +520z-2.com +520zg.net +520zuowens.com +52112.com +52114.org +52115211.com +5211game.com +52177.com +521che.com +521logo.com +521qw.com +521rmb.com +521ro.com +521szlx.com +521tieba.com +521up.com +52237377.com +522978.com +523333.com +52372.com +523touzi.com +525.life +5251.net +5251yx.com +5253.com +5254.com +5257.com +5258.net +5258da.com +525ok.com +525zf.com +52676.com +526net.com +527578.com +5277.com +527meeting.com +527pk.com +5281.com +52841819.com +528500.com +528529.com +52892.com +528btc.com +528day.com +5293.com +5298445.xyz +52ai.com +52aimo.com +52ali88.com +52alipay.com +52analysis.com +52article.com +52asus.com +52audio.com +52ayw.com +52bar.com +52biquge.com +52bjd.com +52bji.com +52bjy.com +52bqg.com +52bsj.vip +52bss.com +52bus.com +52by.com +52cake.net +52ch.net +52che.com +52cik.com +52ckd.com +52click.net +52da.com +52daohang.com +52debug.net +52design.com +52digua.com +52dmtp.com +52doc.com +52dr.net +52dsy.com +52dtv.com +52dus.cc +52dyy.com +52dzc.com +52dzxy.com +52ebook.com +52edy.com +52enku.com +52erhu.com +52fangzi.com +52fanxing.com +52flac.com +52gg.com +52gougouwang.com +52grz.com +52guixi.com +52gvim.com +52hardware.com +52hejia.com +52help.net +52hibuy.com +52homedecor.com +52hotel.net +52hrtt.com +52hrttpic.com +52hxw.com +52ig.net +52im.net +52investing.com +52inwet.com +52itstyle.com +52itstyle.vip +52jbj.com +52jdyy.com +52jianpan.com +52jiaoshi.com +52jingsai.com +52jisu.com +52jrjy.com +52js8.com +52jscn.com +52jt.net +52jubensha.com +52jxt.com +52kanxiaoshuo.com +52kb365.com +52kfly.com +52liaoshen.com +52life.cc +52linglong.com +52lion.com +52luohu.com +52lvyou.com +52mac.com +52maicong.com +52mba.com +52mengdong.com +52mhw.com +52miji.com +52miniapps.com +52ml.net +52mtc.com +52muyou.com +52myqq.com +52njl.com +52nyg.com +52opencourse.com +52pcfree.com +52pi.com +52pi.net +52pictu.com +52pk.com +52pk.net +52pkvr.com +52podcast.com +52pojie.com +52qixiang.com +52qj.com +52qmct.com +52qqba.com +52qudao.com +52queji.com +52qumao.com +52rd.com +52rd.net +52rental.com +52ruodian.com +52samsung.com +52shangou.com +52shici.com +52shijing.com +52shipping.com +52shufa.net +52shuw.cc +52shuxue.com +52solution.com +52souji.net +52souluo.com +52survey.com +52svip.cc +52svn.com +52sykb.com +52t1.com +52tc.co +52tc.info +52tech.tech +52tesla.com +52tgfc.com +52tian.net +52tiny.com +52toys.com +52tps.com +52tql.com +52tt.com +52tup.com +52udl.com +52vr.com +52wana.com +52wanh5.cc +52wlw.com +52wmb.com +52wubi.com +52xiaoshuowang.com +52xiaoyuan.net +52xie.com +52xinyou.com +52xitong.com +52xiuxian.com +52xiyou.com +52xyz.com +52yawa.com +52yh.com +52yifei.com +52ykjob.com +52youju.com +52youpiao.com +52youtu.com +52ywan.com +52yxyx.com +52z.com +52zhaopin.com +52zixue.com +52zjkj.com +52zuji.net +52zx.cc +52zx.net +52zxw.com +52zy.com +531314.com +5317wan.com +532106.com +5321vip.com +533.com +533.net +5334.com +5336.com +5338.org +533y.com +53431.com +53471.com +535300.net +5360jx.com +53617686.com +5366.com +5367.com +537.com +5379yx.com +537a.com +538618.com +5395.com +5399.com +53chewu.com +53dns.org +53info.com +53iq.com +53kf.com +53miji.com +53nic.com +53r.com +53shop.com +53shubiao.com +53xjd.com +53yao.com +53yu.com +54.com +54114.com +542i.com +5433.com +545c.com +5460.net +54674479.com +5490146.cc +5490196.cc +5499.com +54benniao.com +54doctor.net +54doctors.net +54hcz.com +54heb.com +54im.com +54jkw.com +54job.com +54kefu.net +54lol.com +54manong.com +54md.com +54op.com +54pictu.com +54qs.com +54traveler.com +54tusi.com +54xiaoshuo.com +54yt.net +54yuqing.com +55.cc +55.com +55.la +550400.com +5507p.com +550891.com +5510928.com +55178.com +55188.com +5523.com +55344.com +5548.net +555000d3.com +5551557.com +5551650.com +5551933.com +5552009.com +5553089.com +55555558.com +555dy.fun +555dyy1.com +555yst.com +555zw.com +5566.net +5566ua.com +5567.me +556z.com +557.net +5577.com +5580866.cc +5580981.cc +5581014.cc +5588.tv +55935.vip +5599.com +55bbs.com +55dai.com +55dian.com +55doc.com +55duanzi.com +55dushu.com +55e5.com +55haitao.com +55hl.com +55hl.net +55i8.com +55idc.com +55jisu.com +55jj.com +55kk.net +55la.com +55lady.net +55shantao.com +55tuan.com +55xiazai.com +55xoxo.vip +55y5.com +56-7.com +56.com +560.im +56015.com +5611.com +5611501.cc +5611535.cc +5611853.cc +561218.com +56135.com +5617.com +5629.com +5636.com +56360.com +564.cc +5648.cc +56506666.com +5654.com +56559971.com +566.com +5669.com +566job.com +5676.com +5678la.com +567idc.com +567pan.com +5680420.cc +5680433.cc +5684.com +569.com +56a.com +56ads.com +56beijing.org +56care.com +56che.com +56china.com +56clte.org +56da.com +56dagong.com +56dichan.com +56dr.com +56en.com +56ggb.com +56gk.com +56golf.com +56img.com +56img.net +56imgs.com +56kad.com +56laile.com +56md.com +56ml.com +56mp.com +56pan.com +56php.com +56qq.com +56show.com +56shuku.org +56steel.com +56tchr.com +56tj.com +56uu.com +56ye.net +56yun.com +56zzx.com +57.net +57023.com +571400.net +571free.com +571xz.com +57357.vip +57359.es +5755.com +576.com +57608.com +57616.com +57665.com +5768.com +576tv.com +57821.com +579609.com +57auto.com +57dp.com +57gif.com +57go.com +57px.com +57qy.com +57sc.com +57tibet.com +57tuan.com +57us.com +57uu.com +57yy.site +57zhe.com +58.com +5800.com +580114.com +580168.com +580590.com +580ban.com +580eda.net +580jz.net +580k.com +580tequan.com +58160.com +58199.com +5824.com +582hr.com +583go.com +58553v.com +5858.com +58611.net +5866.com +587343.com +587tuchuang.com +587tz079.cc +5884.com +5888.tv +588991.com +588art.com +588ku.com +5898yun.com +58abb.com +58antenna.com +58auv.com +58baogao.com +58buy.com +58che.com +58chxf.com +58cloud.com +58coin.com +58corp.com +58cyjm.com +58dadi.com +58daojia.com +58display.com +58dns.org +58duihuan.com +58food.com +58game.com +58ganji-corp.com +58ganji.com +58insure.com +58iwan.com +58jb.com +58jfhs.com +58jixie.com +58jurenqi.com +58kad.com +58kaifa.com +58kuaipai.com +58kuku.com +58lovepet.com +58meizhuo.com +58moto.com +58net.com +58pic.com +58q8.com +58qz.com +58supin.com +58touxiang.com +58trz.com +58ubk.com +58uxd.com +58wan.com +58wangwei.com +58wanwan.com +58woyou.com +58wzb.com +58xinghuo.com +58xinrui.com +58xs.la +58xueche.com +58xuexi.com +58yiji.com +58youtui.com +58yuesao.com +58zhuiju.com +59.com +5906333.com +590m.com +59120.com +59168.net +59178.com +5918dyw.com +591918.com +591change.com +591cto.com +591hx.com +591master.com +591moto.com +591mrzx.com +591wed.com +591wsh.com +591wy.com +591yhw.com +5923d.com +592sy.com +592zn.com +59313313.com +59370.com +593yx.com +5947.net +59490.com +5951835ccc.com +595818.com +595led.com +595tuchuang.com +595tz286.cc +595tz440.cc +5960681.cc +596fc.com +597.com +59706.com +59776.com +597rcw.com +59881.com +598991.com +599.com +5999.tv +599ku.com +599z.com +59b2b.com +59di.com +59dun.com +59edu.com +59iedu.com +59jt.com +59ni.com +59pk.net +59store.com +59w.net +59wanmei.com +59wj.com +59yx.com +5a8.org +5aaa.com +5acbd.com +5adanhao.com +5ag.net +5ailiwu.com +5aivideo.com +5aiyoo.com +5ajob.com +5any.com +5aq.net +5axxw.com +5azy.com +5bite.com +5biying.com +5ce.com +5ceimg.com +5cgo.com +5cocoi.com +5cpod.com +5d2ede2.com +5d6d.com +5d6d.net +5dashi.com +5dfp.com +5dfsd2.com +5ding.com +5djbb.com +5dmail.net +5down.net +5dplay.net +5ds.com +5earena.com +5earenacdn.com +5eplay.com +5eplaycdn.com +5etv.com +5ewin.com +5fen.com +5fun.com +5fwan.com +5g5gyy.com +5gcg.com +5glianc.com +5goto.com +5gwan.com +5gy.com +5gzm.net +5h.com +5ha.net +5haoxue.net +5hrc.com +5hte21mz.com +5i-training.net +5i.com +5i5aj.com +5i5j.com +5i5t.com +5i9u.com +5iag.com +5iag.net +5iape.com +5ibc.net +5ibear.com +5icbs.com +5ichecker.com +5ichong.com +5icomment.com +5icool.com +5idc.com +5idev.com +5idhl.com +5idream.net +5iec.com +5ifapiao.com +5ifit.com +5iflying.com +5ifund.com +5igupiao.com +5ihome.net +5ikang.com +5iln.com +5ilog.com +5imeishi.com +5imoban.net +5imomo.com +5imusic.com +5imx.com +5imxbbs.com +5iops.com +5ip9.com +5ipatent.com +5ipkwan.com +5isanguo.com +5isohu.com +5iucn.com +5ixuexiwang.com +5iyq.com +5iyuyan.com +5iyw.com +5iyxw.net +5j.com +5jjdw.com +5jli.com +5joys.com +5jtxt.com +5jwl.com +5jzw.com +5k5m.com +5kbox.com +5kcrm.com +5kcrm.net +5kda.com +5khouse.com +5kwuke.com +5l5qny.com +5lanren.com +5lbw.com +5lux.com +5m5m5m.com +5m68.com +5mapk.com +5minsgold.com +5nd.com +5nnj.com +5ooq.com +5pao.com +5pb.net +5plus1.net +5pop.com +5ppt.net +5pub.com +5q.com +5qwan.com +5qzone.net +5r1.net +5read.com +5ritt.com +5rs.me +5s4f.com +5sdy.cc +5seals.com +5see.com +5sem.com +5sha.com +5snow.com +5sw.com +5tangs.com +5tdalmui.cfd +5teacher.com +5thhospital.com +5thspace.net +5thspace.org +5tmovice.com +5tps.vip +5tscm.com +5u18.com +5u3d.com +5u5u5u5u.com +5upm.com +5usport.com +5uu.us +5uu8.com +5v13.com +5v55.com +5w.com +5w123.com +5w52.com +5w5w.com +5wanpk.com +5wx.org +5xcg.com +5xiaobo.com +5xini.com +5xts.com +5y51.com +5y6s.com +5y89.com +5yang.cc +5ydj.com +5yhua.org +5ykj.com +5you.com +5youchou.com +5zai.com +5zg.com +5zzu.com +6-china.com +60.cm +600052.com +600895.com +600zi.com +601601.com +602.com +602img.com +603ee.com +6046.net +605-zy.com +605dns.com +605zy.co +607.tv +6071.com +608.com +608.vip +608082.com +6080d.com +6080j.com +609999.xyz +60dj.com +60eee.net +60kan.com +60mil.com +60nm.com +60u1x.app +60wr.com +61.com +610115.com +610213.net +612.com +6120aa.com +612345.com +612459.com +6137.net +61611.net +6163.com +6164.com +61658.com +6168511.com +616pic.com +616wan.com +6186.com +6187wo.com +618cj.com +618day.com +618hr.com +618ky.com +618tech.com +61916.com +61baobao.com +61bb.com +61bbw.com +61cloud.net +61co.com +61diy.com +61draw.com +61ertong.com +61gequ.com +61hr.com +61ic.com +61info.com +61k.com +61kezhan.com +61mami.com +61mc.com +61sheji.com +61sou.com +61tg.com +61xiangce.com +62.com +623k.com +62669.com +626x.com +628.com +629600.com +62a.net +62game.com +63091138.com +6318537ccc.com +63243.com +6328.net +632news.com +636379.com +636935.com +6383.com +639311.com +63diy.com +63pe.com +63qingyou.com +63yx.com +641.com +642online.com +6431622.cc +64365.com +64518.com +6453.net +64538.net +645w.com +646000.com +6463.com +64644444.com +646av04.xyz +646av05.xyz +646av06.xyz +646av08.xyz +646av09.xyz +646av12.xyz +648sy.com +64ba.com +64dns.com +64ds.com +64gua.com +64ma.com +64mv.com +64pay.com +65.com +651700.com +6528.com +654320.com +6543210.com +654321wan.com +654h.com +65522v.com +655u.com +655yx.com +656463.com +65650000.com +65677358625.com +65688qp.com +6571n.com +65875.com +659595.com +65house.com +65mhxy.com +65wan.com +6600.org +66083797.com +660pp.com +66123123.com +66152.com +66163.com +66168.net +6617398ccc.com +66173yx.com +662city.com +662p.com +6631.com +66377311795.com +66378.com +66446200.com +66460.com +6655.com +6655.la +6660333.com +666546.xyz +6666519.net +66667aaa.com +666834.xyz +6669667.com +66696y.com +666gps.com +666idc.com +666pic.com +666shuwu.com +666wan.com +666wan.net +666xinxin.com +6673p.com +66762.com +667744.com +6678net.com +667905.com +66825.com +668559.com +6686683.com +6688.com +668895.com +6688pay.com +668app.com +668lw.com +668map.com +669322.com +6695.com +669pic.com +669play.com +669ye.com +66call.com +66cn.com +66ds.net +66house.com +66img.com +66ip.com +66jiedai.com +66mi.com +66mobi.com +66money.com +66mz8.com +66nao.com +66nh.com +66ov.com +66perfect.com +66play.com +66rjz.com +66rou.com +66rpg.com +66ruian.com +66shouyou.com +66sj.com +66ss.org +66sy.com +66team.com +66test.com +66to.net +66tv.tv +66u.com +66ui.com +66vod.net +66wc.com +66weiyou.com +66wz.com +66xue.com +66y.com +66you.com +66zhang.com +66zhizu.com +66zhuang.com +67.com +67017.com +6711.com +6711img.com +6726j.com +6760x.com +676711.net +676z.com +6786666.com +6787.com +67876.com +67883.com +678869.com +67888.com +6789.com +6789.net +678922c.com +6789che.com +678edu.net +678ie.com +678py.com +67gu.com +67joy.com +67mo.com +67omd71.com +67wanwan.com +67wx.com +67yes.com +68.com +680.com +68120120.com +6816.com +682.com +68211.com +6822.com +6844.com +68606060.com +6868.com +6868shop.com +6868yx.com +688xc.com +6899wan.com +68china.net +68eg.com +68gainian.com +68ge.com +68h5.com +68hanchen.com +68hr.com +68play.com +68team.com +68web.net +68websoft.com +69.com +69005a.com +69260.com +6934.net +693836.com +693975.com +6949.com +695157.com +695175.com +69525.com +695275.com +695828.com +695ljg.com +698wan.com +69916666.com +699g.com +699h5.com +699pic.com +699xs.com +69cy.net +69hr.com +69mok.com +69ps.com +69xiu.com +69yc.com +69ys.com +6a.com +6aas.com +6abc.net +6acm.com +6an8.com +6api.net +6apt.com +6b3b.com +6bdns.com +6c6c.com +6cang.com +6cit.com +6cnzz.com +6d4d5.com +6d4g.com +6dad.com +6dan.com +6diy.com +6ds.me +6du.in +6duoyu.com +6dvip.com +6eat.com +6edigital.com +6eys.com +6fcsj.com +6g5fd1a.com +6gh4.com +6ght.com +6hgame.com +6hwan.com +6ict.com +6jianshi.com +6k6g.com +6k9k.com +6kw.com +6laohu.com +6lk.net +6ll.com +6m5m.com +6mao.com +6mh7.com +6miii.com +6miu.com +6miu.net +6pifa.net +6plat.org +6puppy.xyz +6renyou.com +6rooms.com +6s4qki.com +6s54.com +6say.com +6sfg.com +6sq.net +6t12.com +6tennis.com +6thhosp.com +6tiantian.com +6tie.com +6tofsu.com +6v.com +6v6.work +6vps.net +6wan.com +6wtx.com +6wwww.com +6xd.com +6xhuo.com +6xigema.com +6xw.com +6y6s066.com +6yoo.com +6yuexi.com +6yxk.com +6yyy7.com +6z6z.com +6zu.com +7-vk.com +7-wx.com +70.com +700bike.com +700live.com +701.com +7017k.com +701sou.com +703804.com +7080edu.com +7082.com +70dh.com +70dir.com +70god.com +70mao.com +70ppt.com +70soft.com +70wx.com +70ym.com +70yx.com +71.am +71.com +71.net +71133.com +7116dns.com +711hospital.com +711pr.com +7120.com +712100.com +71268924.com +71360.com +7139.com +714.com +715083.com +715300.com +7163.com +71668.net +71683.com +71714.com +7172737.com +7176.com +71908.com +7192.com +719c.com +71acg.com +71acg.net +71baomu.com +71baomu.net +71big.net +71dm.com +71e.com +71edge.com +71k.com +71lady.com +71lady.net +71p.net +71study.com +71txt.com +71wl.com +71xe.com +720582.com +720pmovie.com +720static.com +720think.com +720ui.com +720yes.com +720yun.com +720yuntu.com +720zh.com +7211.com +72177.com +7220z.com +7230.com +7239ll.net +724001.com +7255.com +726033.com +726p.com +7273.com +7280.com +7298.com +72byte.com +72bz.com +72crm.com +72crm.net +72crm.org +72dj.com +72dns.com +72dns.net +72e.net +72en.com +72g.com +72la.com +72laodian.com +72link.com +72sc.com +72whys.com +72xf.com +72xit.com +72xuan.com +72yun.com +72zx.com +731.tv +7319n.com +73232yx.com +732732.com +734969.com +7360.cc +73652253191.com +737.com +73789.com +7384tv.com +738888.xyz +7399t.com +73bc.com +73bt.com +73card.com +73mq.com +73zw.com +74.com +7400238.cc +7428.net +744zy.com +7474.com +7477.com +747wan.com +74825467.vip +749997.com +74cms.com +74dsh94.com +74hao.com +75.team +75111.net +75184.com +75271.com +75367.com +75510010.com +75625358935.com +756u.com +7574.com +75757.com +757dy.com +7580.ltd +75982.com +75n474.com +75team.com +76065.com +7618.com +761a.com +762rc.com +7654.com +7659.com +765i.com +765q.com +766.com +7663.com +766z.com +7676.com +767stock.com +76868.com +76963.com +769car.com +76ab.com +76al.com +76baobao.com +76dongdong.com +76ju.com +76wu.com +76y.com +76zu.com +77005163.xyz +770921.com +7711.com +77119159.com +771633.com +77169.com +77169.net +7717wan.com +7723.com +7724.com +7724yx.com +7725.com +77275.cc +7729.com +77313.com +7735.net +77495.com +77521.com +7756.org +7759.com +7766.info +7766.org +77745.com +777524.com +7775367.com +7777733.com +777942.com +777biubiu.com +777lala.com +777moban.com +7788.com +7788aabb.com +7788js.com +7788sky.com +7788tools.com +7788xj.com +7789.com +778buy.cc +778buy.com +7794.com +77991.com +7799520.com +779wan.com +77acg.com +77bike.com +77bx.com +77dd23.com +77ds.com +77dushu.com +77ebooks.com +77hd.com +77l.com +77mh.app +77music.com +77nt.com +77piano.com +77tianqi.com +77vcd.com +77xmd.com +77xsw.la +77ys.com +77zn.com +782yx.com +78302.com +78360.net +7881.com +788899.com +788b.com +788v.com +78901.net +789gg.com +789hi.com +789zy.cc +78bar.com +78books.com +78dian.com +78diy.com +78dm.net +78ee.com +78fz.com +78gk.com +78hr.com +78oa.com +78tp.com +79.com +79151879798.com +793360.com +7937.com +7940.com +79432.com +7979u.com +797sun.com +7988wan.com +798com.com +798edu.com +798ydh.com +799.net +7999.com +7999.tv +799job.com +79cha.com +79da.com +79tao.com +79tui.com +79yougame.com +79yx.com +7a31jmf.com +7a8k.com +7acg.com +7ahr.com +7analytics.com +7b2.com +7buying.com +7c.com +7caiyun.com +7capp.com +7ccj.com +7chacha.com +7cname.com +7cxk.com +7dah8.com +7didc.com +7do.net +7down.com +7down.net +7dtest.com +7dugo.com +7e.hk +7east.com +7ed.net +7edown.com +7fei.com +7fgame.com +7flowers.com +7forz.com +7fresh.com +7gongzhu.net +7gz.com +7hcn.com +7help.net +7ho.com +7hon.com +7huang.org +7i2.com +7icp.com +7ipr.com +7jia.com +7jia2.com +7jiaqi.com +7jjjj.com +7jk.com +7juju.com +7junshi.com +7k35.com +7k7k.com +7k8k.com +7ka.co +7kk.com +7kla.com +7ko.com +7kww.net +7kzw.com +7littlemen.com +7liwu.com +7lk.com +7lw.com +7mah2.com +7mo.cc +7modifier.com +7moor-fs1.com +7moor-fs2.com +7moor.com +7msj.com +7mx.com +7mz3a.com +7nepal.com +7net.cc +7oh.net +7pa.com +7pc8.com +7pei.com +7po.com +7q5.com +7qile.com +7r7z.com +7road.com +7road.net +7ronggame.com +7runto.com +7rv.net +7sdn.com +7sheji.com +7sj.com +7sown.com +7su.com +7t9.com +7tapp.com +7tenet.net +7tgame.com +7tou.com +7tt3333.com +7tui.net +7usa.net +7v6.net +7vd7.com +7vk.com +7wa.cc +7wan.com +7wenku.com +7wenta.com +7wenyi.com +7wnews.com +7wsh.com +7wsh.net +7x24cc.com +7x24s.com +7xdown.com +7xm.net +7y5.net +7yc.com +7youxi.com +7yueji.com +7yun.com +7yz.com +7yzone.com +7zgame.com +7zhan.com +7zhou.com +7zkj.com +7zm.com +8-008.com +8-host.com +80.com +80.hk +80000.cc +800020308.com +800423.com +800535.com +8006506.com +8006511.com +8006tu.com +800820.net +8008202191.com +8008205555.com +800app.com +800bamboo.com +800best.com +800bestex.com +800cdn.com +800du.com +800hr.com +800jcw.com +800li.net +800lie.com +800lj.com +800mei.net +800pharm.com +800tu.com +800vod.com +800xs.net +800you.com +800youhuo.com +802203.com +807.com +80710.com +80800.vip +8080i.com +8081.net +80881.com +808w.com +8090.com +8090.pk +809090.xyz +8090app.com +8090cdn.com +8090mt.com +8090vision.com +8090xx.com +8090yx.com +8090yxs.com +809926.net +80baicai.biz +80bi.com +80data.net +80host.com +80juqing.com +80kongjian.com +80kuku.com +80paper.com +80s.im +80s.tw +80shihua.com +80sjy.net +80test.com +80tian.com +80txt.com +80txt.la +80vps.com +80xb.com +80xs.la +80ym.com +810840.com +810book.com +81265.net +81312.com +81329999.net +815.pub +815ybw.com +81629.com +81663344.com +81677.com +8169.com +817398.com +8175835ccc.com +81761.com +818.com +818it.com +818ps.com +818tu.com +81999.org +81book.com +81comdns.com +81it.com +81js.net +81kx.com +81pan.com +81tech.com +81tt.net +81xy.com +81xz.com +81zw.com +8203app.com +8211.com +82250856.com +822644.com +82335966.com +8234567.com +82392.cc +8246.net +8264.com +82645.es +826wan.com +8276n.com +828239sam.com +828377.com +82859.com +8289880.com +828g.com +82987977.com +82ip.com +82ky.com +82pk.com +83084.com +83133.com +832200.com +8325.com +8329555.com +8329607.com +833833833.net +8339.org +83480900.com +83562.me +83666.com +838.cc +83823.net +83830.com +838dz.com +83990567.com +83edu.net +83h87d.com +84.vc +8421.com +84399.com +844a.com +844wan.com +84519.com +84684.net +8477.com +848.com +8487x.com +8499136.com +8499159.com +8499163.com +849959.com +8499683.com +84fk.com +84ju.com +84ktv.com +84zcb.com +850718.xyz +8518.com +8521.org +85229666.com +85384.com +853lab.com +85462.lc +8555220.com +8558.org +85679999.com +85878078.com +858game.com +85ibb.com +85kf.com +85wp.com +85xt.com +86-import.com +86.cc +86010.net +860527.com +860598.com +861522.com +86175.com +861817.com +861ppt.com +86215.com +8624x.com +86255845.com +86262.com +8633.com +8644aaw.com +865211.com +86590.com +866ds.com +8673h.com +8682.cc +8684.com +868578.com +8686c.com +86873.com +86888qp.com +8688g.com +86898924.vip +86933.com +869d.com +869v.com +86amsdy.com +86clouds.com +86ditu.com +86eh.com +86fis.com +86fm.com +86fsp.com +86game.com +86gc.net +86hcdnsuv.com +86hh.com +86hr.com +86huoche.com +86jg.com +86jobs.com +86joy.com +86kang.com +86kl.com +86kongqi.com +86lawyer.com +86mai.com +86mail.com +86mama.com +86mdo.com +86nb.com +86office.com +86pla.com +86pm25.com +86ps.com +86qc.com +86sb.com +86tec.com +86uuu.com +86wan.com +86wol.com +86xq.com +86y.org +86yqy.com +86zsw.com +870818.com +87188718.com +872.cc +8721.com +872872.com +87535353.com +876web.com +8770000.com +877325.com +87794560.com +878009.com +87803.com +87870.com +87929881825.com +8795cp.com +87994.com +87box.com +87g.com +87money.com +87pk.com +87yy.com +88-z.com +88.com +8800808.com +8801.net +880114.com +880303.xyz +880331.net +880735.com +88077777.com +88090.com +880sy.com +880you.com +88106.com +88225233827.com +8825.com +8828dl.com +88303887.com +8831.app +88360.com +8838sl.com +883dai.com +884358.com +8844.com +88444l.cc +8848.com +8848phone.com +885.com +8850006.com +885210.net +8855.org +885741.com +88582.com +8860.net +8864.com +8864.org +8866.org +8866886688.com +88669aaa.com +886966.com +886abc.com +886vps.com +88765.com +887w.com +888-8.com +888074.com +88822.com +88883aaa.com +8888800000.com +88888aaa.com +88889aaa.com +888pic.com +888ppt.com +888rj.com +8890tu.com +88995799.com +88999.com +8899yyy.vip +88bank.com +88bx.com +88cdn.com +88chuangyewang.com +88dushu.com +88h3.com +88hom.com +88ht.com +88hu.com +88koo.com +88la.la +88lajs2.com +88lan.com +88lgo.com +88meishi.com +88mf.com +88ming.net +88pets.com +88popo.com +88rpg.net +88tang.com +88tph.com +88u.com +88wakuang.com +88xiaoshuo.com +88xr.org +88ysg.com +88zha.com +8910.io +89178.com +89243599.vip +89274.st +89303.com +8961zx.com +897263tqs.com +8977567.com +8979.com +898.travel +8989118.com +89958716765.com +8999.cc +89dj.com +89ds.com +89qw.com +89uu.com +8a.hk +8ao8ao.com +8aza.com +8b2.net +8bb.com +8bb8b.com +8bcd9.com +8bears.com +8btc-ops.com +8btc.com +8btm.com +8cheche.com +8cname.com +8cnet.com +8ddao.com +8dexpress.com +8dn.com +8dol.com +8dp.net +8dream.net +8dudata.com +8dwww.com +8e8z.com +8europe.com +8fe.com +8fenxiang.com +8gov.com +8guiclub.com +8gw.com +8gyu.com +8hsleep.com +8jdns.net +8jiaoye.com +8jie8.com +8jxn.com +8jzw.cc +8k7k.com +8kana.com +8kzw.com +8l8e.com +8le8le.com +8lhx.com +8liuxing.com +8lk.com +8llp.com +8mhh.com +8miu.com +8miu.net +8mkt.com +8ms.xyz +8n2.com +8n6n.com +8njy.com +8o9o.com +8pig.com +8pingce.com +8pu.com +8qwe5.com +8s123.com +8tgh.com +8ttt8.com +8tupian.com +8twan.com +8u58.com +8uyx.com +8wan.com +8win.net +8wiu.com +8wq.com +8wss.com +8yao.cc +8ym8.com +8yw.xyz +8yx.com +8yzw.com +8z.net +8zhuayu.cc +8zntx.com +8zy.com +9-xin.com +9-zhuce.com +900.la +9000idc.com +9000wy.com +900112.com +900501.xyz +900cha.com +900php.com +900ppt.com +900top.com +900yi.com +90123.com +90370.com +90432.net +90576.com +906you.com +90907.com +90bola.cc +90bola.me +90ckm.com +90e.com +90ko.net +90lhd.com +90qh.com +90sheji.com +90sjimg.com +90tank.com +90vm.com +90wmoyu.com +90yang.com +90zm.net +91-box.com +91.com +910app.com +910play.com +91160.com +9118fu.com +911a4.com +911cha.com +911pop.com +911sl.com +911yao.com +911zy.com +912366.com +9125.org +9125flying.com +912688.com +912k.com +912yx.com +913232.com +9133.com +9136.com +91378.com +913vr.com +913you.com +91472.com +915.com +915.im +9154wan.com +915658.com +9158ads.com +9158h5.com +9166yx.com +916m.com +917.com +9170.com +917558.com +917ka.com +917st.com +9188.com +9188wan.com +918dxs.com +918ka.cc +918rc.com +918ys.net +919.com +9191mr.com +9191net.com +9191zx.com +91985.com +91ac.com +91act.com +91all.net +91anjian.com +91art.net +91baby.com +91bee.com +91boshuo.com +91bushou.com +91carnet.com +91cdkey.com +91ceshi.com +91cha.com +91chang.com +91changxie.com +91chuxue.com +91cpm.com +91cps.com +91ctc.com +91cy.cc +91czxs.com +91dada.com +91daizhang.com +91danji.com +91data.com +91datong.com +91dba.com +91dbb.com +91dbq.com +91ddcc.com +91ddedu.com +91diany.com +91dict.com +91display.com +91dnso.com +91doujin.com +91dub.com +91duba.com +91duobaoyu.com +91exam.org +91exiu.com +91fangan.com +91feizhuliu.com +91fifa.com +91fyt.com +91game.com +91goodschool.com +91guzhi.com +91haiju.com +91haoka.com +91haoke.com +91huayi.com +91huoke.com +91huola.com +91ios.com +91jbz.com +91jf.com +91jfss.com +91jiabohui.com +91jiafang.com +91jianguo.com +91jin.com +91jinrong.com +91jinshu.com +91jiujige.com +91jkj.com +91jkys.com +91jm.com +91jmw.com +91job.com +91join.com +91jsj.com +91juice.com +91jujian.com +91kami.com +91keto.com +91laihama.com +91ld.com +91lda.com +91lewei.com +91liangcai.com +91linux.com +91listen.com +91lx.com +91lxs.com +91maker.com +91mariadb.com +91maths.com +91miaoshou.com +91money.com +91muzhi.com +91ndeh.xyz +91ninthpalace.com +91nzh.com +91pandian.com +91paopao.com +91pdf.com +91php.com +91pic.org +91pkpk.com +91ronghui.com +91rtb.com +91ruyu.com +91safety.com +91sd.com +91sem.cc +91shenshu.com +91smart.net +91soer.com +91soker.com +91sotu.com +91sph.com +91spj.com +91sport.cc +91ssw.com +91student.com +91suan.com +91suke.com +91taoke.com +91tech.net +91tianqi.com +91ting.net +91tingge.com +91tw.net +91up.com +91vpn.com +91vps.com +91vst.com +91waijiao.com +91waitang.com +91wan.com +91wangcai.com +91wangmeng.com +91way.com +91weimai.com +91weimi.com +91weiwang.com +91wenmi.com +91wllm.com +91wujia.com +91wutong.com +91wzg.com +91xcm.com +91xfw.com +91xhg.com +91xiake.com +91xiazai.com +91xsj.com +91xueshu.com +91xunyou.com +91xy.com +91xzba.com +91y.com +91yao.com +91yinpin.com +91yixun.com +91yk.com +91yong.com +91you.com +91youban.com +91yuedu.com +91yunxiao.com +91yunying.com +91yxbox.com +91yxl.com +91zhiwang.com +91zwk.com +92.net +921.com +9211.com +921716.com +9217web.com +921lu.com +92220668.com +92220701.com +922835.com +925g.com +925ps.com +927.la +927927.com +927953.com +927jx.com +928vbi.com +92913.com +929825.com +92987.com +9299.net +929g.com +92aliyun.com +92anycall.com +92aq.com +92ay.com +92bbs.net +92cloud.com +92demo.com +92dp.com +92ez.com +92fox.com +92game.net +92hidc.net +92kaifa.com +92kk.com +92le.com +92lm.com +92lucky.com +92mp.com +92ni.com +92python.com +92sucai.com +92tianjin.com +92u93e.com +92wan.com +92wenzhai.com +92wudao.com +92wx.com +92wy.com +92xygame.com +92yo.com +930hh.com +9312.net +933.moe +934dsw.com +9355.com +93636.com +93665.xin +9366qq.com +936u.com +9377.com +9377a.com +9377co.com +9377df.com +9377g.com +9377ja.com +9377ku.com +9377ne.com +9377os.com +9377s.com +9377si.com +9377z.com +93913.com +9396.net +93966.com +93bok.com +93cg.com +93eu.com +93hdw9.com +93jiang.com +93jx.net +93kk.com +93lh.com +93njf0.com +93pk.com +93sdk.com +93soso.com +93ta.com +93tyy.com +93wgames.com +93x.net +93zp.com +93zw.com +940177.com +941.so +942ss.com +944.com +94445.com +9453job.com +945idc.com +945n48.com +9466.com +94831.com +9495.com +949678.com +94994.com +949949.com +94afx.com +94cb.com +94cto.com +94he38.com +94i5.com +94ip.com +94ji.com +94lm.com +94mxd.com +94nw.com +94php.com +94q.com +94qy.com +94rp.com +94te.com +94xy.com +94you.net +94ys.com +95.com +95021.com +950901.com +95095.com +95105369.com +95105555.com +95105556.com +95105899.com +9512.net +951368.com +95158.com +95169.com +95191.com +95195.com +9527cha.com +9527cloud.com +95303.com +95408.com +95504.net +95508.com +95516.com +95516.net +95526.mobi +9553.com +9557.com +95572.com +95579.com +95588.com +95597.cc +95598pay.com +95599.hk +955yes.com +955yx.com +9560.cc +9564.com +9565.com +9570.me +9588.com +9596956.com +95en.com +95epay.com +95fenapp.com +95gq.com +95k.com +95links.com +95name.com +95px.com +95xiu.com +95ye.com +95yijing.com +96005656.com +960123.com +960638.com +96090090.com +960rc.com +9610.com +9611111.com +96160.cc +96189.com +9618968.com +962.net +962121.net +962168.com +962222.net +96225.com +962518.com +962600.com +962740.com +96369.net +963999.com +96459.com +964yx.com +96516.net +96520.com +96533.com +965373.com +96590.net +9665.com +966599.com +9665k.com +9666sr.com +9669.com +96711jmbm.com +96804.com +96811.com +96822.com +96845.com +968550.com +96877.net +968pk.com +969009.com +96966.com +969g.com +96caifu.com +96dp.com +96f2d.com +96hq.com +96jm.com +96jx.com +96kaifa.com +96kb.com +96lh.net +96lou.com +96ni.net +96sdk.com +96sir.com +96weixin.com +96yx.com +96zxue.com +97-7.com +9718.com +9718game.com +9724.com +973.com +97616.net +97775.com +977pk.com +97866.com +9787.com +978clouds.com +978sy.com +97936.com +97973.com +9797ly.com +9799.com +97add.com +97atc.com +97gg.net +97go.com +97jindianzi.com +97jz.com +97kid.com +97lk.com +97lp.com +97lpw.com +97ol.com +97rp.com +97ting.com +97ui.com +97uimg.com +97wd.com +97xiaoshuo.net +98.com +98.ma +9800.com +980512.com +980cje.com +98158.com +98182.com +984g.com +985.so +985dh.com +985ks.com +985ks.net +985sy.com +986338dsd.com +98654.com +987.com +9871.org +9873.com +987app.com +987jx.net +987you.com +98809.com +988272.com +988640.com +9898c.com +98a.ink +98du.com +98ep.com +98fp.com +98jx.com +98kkw.com +98kpm.com +98mp.com +98nice.com +98one.com +98t.la +98t.net +98weixin.com +98wubi.com +98znz.com +99.com +99083.com +99114.com +99118.com +9911yx.com +99166.com +9917.com +9918.tv +9919345.com +991kang.com +9922524.com +9928.tv +9939.com +99394.com +993h.com +994wan.com +9951.cc +995120.net +9955993.com +996.com +996.pm +9966.org +9966333.com +9966886699.com +9966w.com +996a.com +996dns.com +996pic.com +9973.com +997788.com +998.com +9981ypk.com +9982.com +99844666.com +99886aaa.com +99887w.com +99888aaa.com +998jk.com +998jx.com +9991.com +999120.net +999136.xyz +999178.com +99934066.com +999777.com +9998.tv +99988866.xyz +99997aaa.com +99998aaa.com +999ask.com +999bj.com +999brain.com +999d.com +999inandon.com +999tea.com +999wx.com +999xy.net +99aiji.net +99aly.com +99apsi.com +99bdf.com +99biaozhun.com +99bill.com +99bo.cc +99box.com +99bs.club +99cc.com +99cfw.com +99cloud.net +99corley.com +99danji.com +99ddd.com +99down.com +99dushu.com +99dw.com +99eo.com +99eyao.com +99fang.com +99fei.net +99fenlei.com +99fund.com +99fund.org +99haoche.com +99haoling.com +99hdf.com +99hkjf.com +99huodong.xyz +99ielts.com +99inn.cc +99jianzhu.com +99jiaoshi.com +99kgames.com +99lb.net +99leidun.com +99max.me +99mc.com +99meiju.tv +99meili.com +99mk.info +99mk.la +99mst.com +99music.net +99niu.com +99pdf.com +99ppt.com +99pto.com +99qh.com +99qimingzi.com +99qumingzi.com +99read.com +99shou.com +99sky.com +99sun.com +99sushe.com +99vf.com +99weidu99.ltd +99weiqi.com +99wj.com +99wuxian.com +99xr.com +99youmeng.com +99ys.com +99zhizhu.com +99zihua.com +99zuowen.com +99zzw.com +9a9.net +9ailai.com +9aimai.com +9air.com +9aoduo.com +9aola.com +9beike.com +9bianli.com +9cb.com +9ccapital.com +9chew.com +9clive.com +9conn.net +9cwx.com +9d19.com +9d4d.com +9damao.com +9damao.net +9ddm.com +9deli.com +9dfx.com +9dian.info +9douyu.com +9droom.com +9duw.com +9dwork.com +9earth.com +9ehao.com +9eii.com +9ele.com +9enjoy.com +9fav.com +9fbank.com +9first.com +9fpuhui.com +9fs.com +9fzt.com +9fzt.net +9g.com +9g8g.com +9gt.net +9gty.net +9he.com +9host.org +9hou.com +9ht.com +9huadian.net +9icode.net +9icy.com +9idudu.com +9igcw.com +9ihb.com +9ihome.com +9ilu.com +9imobi.com +9inx.com +9iphp.com +9ishe.com +9itan.com +9j9y.com +9ji.com +9jiu9jiu.com +9juewu.com +9jx.com +9k9k.com +9kd.com +9kld.com +9ku.com +9kus.com +9linux.com +9liuda.com +9longe.net +9man.com +9mayi.com +9mbv.com +9miao.com +9miaoxueyuan.com +9mic.com +9nali.com +9now.net +9ok.com +9om.com +9open.com +9orange.com +9pt.net +9qu.com +9rmb.com +9see.com +9skm.com +9sky.com +9sleep.org +9syw.com +9taobao.com +9tax.com +9to.com +9tong.com +9tov.com +9txs.com +9txs.org +9u.net +9upk.com +9vf.com +9w9.com +9wanjia.com +9wee.com +9wee.net +9weihu.com +9wuli.com +9wwx.com +9xgame.com +9xiazaiqi.com +9xiu.com +9xiuzb.com +9xkd.com +9xu.com +9xwang.com +9ya.net +9yao.com +9yaocn.com +9yc.com +9ye.com +9yjk.com +9yoho.com +9you.com +9you.net +9yread.com +9yuntu.com +9yuonline.com +9zas5.com +9zhen.com +9zjob.com +9zx.com +a-du.net +a-hospital.com +a-jazz.com +a-liai.com +a-map.link +a-sy.com +a0598.com +a0bi.com +a0f5etf2.icu +a135.net +a166.com +a1736.com +a2048.com +a21fs.com +a21yishion.com +a2dongman.com +a37jgfjl105.cc +a4s6.com +a5.net +a5b.cc +a5idc.net +a632079.me +a67dy.com +a7.com +a8.com +a8f947.com +a8tg.com +a8u.net +a8z8.com +a9188.com +a9377j.com +a963.com +a9market.com +a9vg.com +aa-ab.com +aa152.com +aa43z7.com +aa65535.com +aa665577aa.com +aa778899aa.com +aa8828.com +aa887766aa.com +aa887788aa.com +aaayun.com +aadongman.com +aads-cng.net +aamachina.org +aap5.com +aardio.com +aaronlam.xyz +aaspt.net +aastartups.com +aatccn.com +aavisa.com +aaxinwen.net +ab126.com +ab173.com +ab365.com +abab.com +abacaipu.com +abackup.com +abakua.com +abang.com +abaoshow.com +abardeen-online.com +abbooa.com +abbyschoice.net +abbyychina.com +abc-ca.com +abc12366.com +abc188.com +abc360.com +abc369.net +abcache.com +abcdao.com +abcdocker.com +abcdv.net +abcfintech.com +abcgonglue.com +abchina.com +abcjiaoyu.com +abcjifang.com +abckantu.com +abclogs.com +abcs8.com +abctang.com +abcve.com +abcxb.com +abcxyzkk.xyz +abcydia.com +abd007.com +abdstem.com +abe-tech.com +abeacon.com +abesmoke.com +abhouses.com +abiechina.com +abiestem.com +abifsey.com +abilie.com +abitcg.com +abite.com +abiz.com +ablanxue.com +able-elec.com +ablejeans.com +ablesci.com +ablesky.com +abletive.com +ablman.com +abloz.com +abmau.com +aboatedu.com +aboboo.com +aboilgame.com +aboutcg.com +aboutcg.net +aboutcg.org +aboutgk.com +aboutidc.com +aboutnew.net +aboutyun.com +abpuvw.com +abreader.com +abslw.com +abtt266.com +abublue.com +abuquant.com +abusi.net +abuyun.com +ac268.com +ac57.com +academypublication.com +acadki.com +acadn.com +acc3.net +acc5.com +accelink.com +accessgood.com +accessoft.com +accesspath.com +accgame.com +acconsys.com +accopower.com +accsh.org +acctdns.com +acctdns.net +accu.cc +accurate-china.com +accyy.com +ace-pow.com +ace-rubber.com +acejoy.com +acelamicro.com +acesheep.com +acetace.com +acetaffy.club +acewill.net +acftu.org +acfunchina.com +acg.gd +acg.tv +acg17.com +acg183.com +acg18s.com +acg4.com +acg456.com +acg6.com +acgaa.xyz +acgdb.com +acgdoge.net +acgist.com +acgn.pw +acgndog.com +acgorg.com +acgp.xyz +acgqd.com +acgrenwu.com +acgres.com +acgrip.com +acgsky.win +acgtofe.com +acgvideo.com +acgvr.com +acgw.pw +acgz.xyz +acgzc.com +acgzyj.com +achiming.com +acing.com +acingame.com +acirno.com +acjw.net +ackeline.com +acmcoder.com +acmicpc.info +acmoba.com +acmsearch.com +acmturc.com +acnow.net +aco-musical.com +aconf.org +acoolread.com +acpf-cn.org +acplay.net +acq42.com +acrel-eem.com +acrel-znyf.com +across-mbox.com +acrpc.com +acsrq.com +act-telecom.com +actacams.com +actamath.com +actcn.net +actime.net +actions-semi.com +actionsky.com +activeclub.net +activepower.net +activity04.com +activity180.com +actom.me +actoys.com +actranslation.com +actself.me +actuive.com +acucn.com +acumoxj.com +acuworld.net +acwifi.net +acwing.com +acxk.net +ad-cn.net +ad-gone.com +ad-goods.com +ad-safe.com +ad-survey.com +ad-young.com +ad110.com +ad12345.com +ad321.cc +ad5.com +ad518.com +ad7.com +ad778.com +adanxing.com +adapay.tech +adarrive.com +adaxin.com +adbkwai.com +adbxb.com +adc-expo.com +adccd.com +adcdn.com +adcomeon.com +adconfer.com +addaad.com +addgog.com +addinghome.com +addnewer.com +addoom.com +addpv.com +addsxz.com +addww.com +adeaz.com +adebang.com +adebibi.com +adesignbrasil.com +adesk.com +adexplain.com +adfcf.com +adflying.com +adfortest.com +adfuns.com +adfyt.com +adg-dental.com +adgomob.com +adhei.com +adhimalayandi.com +adhubbj.xyz +adhudong.com +adiexpress.com +adiic.com +adinall.com +adinallcdn.com +adipman.net +adjie.com +adjucai.com +adjumo.com +adjuz.com +adkwai.com +adl888.com +adlefee.com +adlefei.com +adluckin.com +adlvyou.com +admai.com +admaimai.com +admama.com +admamax.com +admasterto.com +admile.xyz +zzzzzz.me +zzzzaaaa.com +zzzyk.com +admin10000.com +admin168.net +admin5.com +admin5.net +admin6.com +admin88.com +admintony.com +admqr.com +admxh.com +adnineplus.com +adnyg.com +adobeae.com +adobeedu.com +adoregeek.com +adpchina.com +adplusx.com +adpolestar.net +adportion.com +adqkmob.com +adquan.com +ads4f6gf46.com +ads8.com +adsage.com +adsame.com +adscover.com +adsctl.com +adsense-plan.com +adsjdy.com +adslr.com +adsmogo.com +adsmogo.mobi +adsmogo.net +adssaas.com +adssap.com +adsspr.com +adstarcharm.com +adsunflower.com +adt100.com +adtaipo.com +adtchrome.com +adtianmai.com +adtime.com +adtmm.com +adtxl.com +adubest.com +adukwai.com +adunicorn.com +adunioncode.com +adunite.com +adups.com +adutou.com +adutp.com +advgbid.com +adview.com +advuser.com +adwangmai.com +adwep.com +adwetec.com +adwintech.com +adwo.com +adx.ms +adx666.com +adxflow.com +adxhi.com +adxiaozi.com +adxiny.com +adxmq.com +adxpand.com +adxqd.com +adxvip.com +adxwork.com +adyounger.com +adysimg.com +adyun.com +adzar-energy.com +adzh.com +adzhongdian.com +adznb.com +adzop.com +adzshd.com +ae-people.com +ae256.com +ae60.com +aebiz.net +aec188.com +aecichina.com +aeenets.com +aeespace.com +aegcar.com +aehyok.com +aemedia.org +aeo-cctv.com +aeonbuy.com +aeonlifes.com +aepku.com +aerfaying.com +aerochina.net +aesdrink.com +aesucai.com +aet21.com +aevit.xyz +aexpec.com +af360.com +afanti100.com +afarway.com +afcec.com +afdian.net +afdiancdn.com +afdsc.com +afdvr.com +afengseo.com +afengsoft.com +afenxi.com +affecthing.com +affu.net +afgame.com +afie.xin +afjk.com +afjob88.com +afriendx.com +afshanghai.org +aft1v1.com +afu.io +afuchina.com +afunan.com +afunapp.com +afzhan.com +agalwood.net +agamepower.com +agcloudcs.com +agconnect.link +age-spa.com +age.tv +age06.com +agedm1.com +agefans.app +agenge.com +agenow.com +aggresmart.com +aghcdn.com +agile-china.com +agileex.com +aginomoto.com +agiso.com +agora.io +agoralab.co +agrantsem.com +agrittex.com +agrochemshow.com +agrodt.com +agrofairs.com +agrosg.com +agrowingchina.com +agucn.com +agxs.net +ah-inter.com +ah-suuwaa.com +ah12333.com +ah163.com +ah3c.com +ah477.com +ah499.com +ah5166.com +ah8.cc +ah9yu.com +ahacpp.com +ahalei.com +ahanxun.com +ahao.moe +ahaohao.com +ahauto.com +ahbb.cc +ahbys.com +ahbztv.com +ahbzyy.com +ahc.ink +ahcaijing.com +ahcaw.com +ahchuangyebang.com +ahcjhjj.com +ahcnb.com +ahdf56.com +ahdsez.com +ahdzfp.com +aheading.com +ahemi.com +ahfdcb.com +ahfensitong.com +ahfgb.com +ahglj.com +ahgssh.com +ahhanmi.com +ahhdb.com +ahhhjx.com +ahhouse.com +ahhtzx.com +ahhwdp.com +ahitv.com +ahjdq.com +ahjem.com +ahjgxy.com +ahjk.com +ahjkjt.com +ahjtxx.com +ahjyec.com +ahjyzb.com +ahjzjy.com +ahjzw.com +ahkemi.com +ahkende.com +ahkjksw.com +ahkjw.com +ahkxsoft.com +ahlib.com +ahlife.com +ahljnews.com +ahlsm1.com +ahmky.com +ahnanfang.com +ahnews.org +ahougn.com +ahphi.com +ahqmdq.com +ahrunzi.com +ahs.pub +ahscl.com +ahsjxjy.com +ahsyj.com +ahsylsy.com +ahteacher.com +ahtlbyby.com +ahtlgc.com +ahtrain.com +ahuano.com +ahudows.com +ahugeship.com +ahuyi.com +ahwwnews.com +ahwxcs.com +ahxuran.com +ahxwkj.com +ahydnet.com +ahyessoft.com +ahyouan.com +ahyouth.com +ahzcw.cc +ahzs10000.com +ahzssw.com +ai-cai.com +ai-creator.net +ai-factory.com +ai-indestry.com +ai-qingchang.com +ai-rtc.com +ai-start.com +ai-thinker.com +ai.cc +ai012.com +ai7.com +ai7.org +ai9475.com +aiagain.com +aiagain.net +aiai6.com +aiaigu168.com +aialbb.com +aiaor.com +aiba.com +aibaimm.com +aibang.com +aibang.run +aibaov.com +aibe1e.cc +aibing.cc +aibo123.com +aibooks.cc +aic707.com +aicai.com +aicaicdn.com +aicdn.com +aicdn2.com +aicdn4.com +aicdn5.com +aichaicp.com +aichaoxing.com +aichat.net +aichunjing.com +aiclicash.com +aiclk.com +aicloud.com +aicode.cc +aicoinstorge.com +aicsnet.com +aicu8.com +aicunfu.com +aida64.cc +aida64cn.com +aidafen.com +aidai.com +aidaily.com +aidaiz.com +aidalan.com +aidangbao.com +aidanji.com +aidaxing.com +aidaxue.com +aideep.com +aidianji.net +aidiao.com +aidigger.com +aidigong.com +aidimedia.com +aidisida.com +aidjyun.com +aidlearning.net +aidoctor.world +aidog.com +aidong.me +aidoor.net +aidpaper.com +aidrive.com +aiduoka.com +aidusk.com +aiduwenxue.com +aiec-alliance.com +aiegle.com +aiemy.com +aier021.com +aier0755.com +aierchina.com +jsldweb.com +aieye8.com +aiezu.com +aifamu.com +aifanfan.com +aifang.com +aifangke.com +aifanyi.net +aifcdn.com +aifei8.net +aifengjie.com +aifenlei.com +aifont.com +aifu10.com +aifu360.com +aigame100.com +aiganggu.com +aige010.com +aigei.com +aigewc.com +aigo.com +aigobook.com +aigodiy.com +aigou.com +aigtek.com +aiguhuishou.com +aigupiao.com +aihaisi.com +aihala.com +aihanfu.com +aihanfu.net +aihangtian.com +aihao.org +aihecong.com +aihehuo.com +aihelp.net +aihoge.com +aihuajia.com +aihuaju.com +aihuau.com +aihuhua.com +aihuishou.com +aii-alliance.org +aiibii.com +aiijournal.com +aiimg.com +aiimooc.com +aiioii.com +aiizen.net +aiji66.com +aijianji.com +aijiatui.com +aijiayou.com +aijikong.com +aijishu.com +aiju.com +aik.com +aikaixin.com +aikaiyuan.com +aikan8.com +aikang.com +aikcms.com +aiketour.com +aikexi.com +aikf.com +aikucun.com +ailbaba.me +ailete.com +ailewan.com +aili.com +ailinglei.com +ailingmao.com +ailinux.net +ailinzhou.com +ailiyun.com +ailom.com +ailongmiao.com +ailuckyboy.com +ailuluz.com +ailuntan.com +ailvxing.com +aim-ec.com +aimagang.com +aimatech.com +aimatrix.ai +aimcx.com +aimeas.com +aimei39.com +aimeicity.com +aimeideni.com +aimeike.tv +aimingtai.com +aimipay.net +aimiplay.com +aimoge.com +aimsen.com +ainapian.com +ainiapp.com +ainirobot.com +ainiseo.com +ainiu.net +ainyi.com +aiops.com +aiotoolbox.com +aipage.com +aipai.com +aipark.com +aipear.com +aipenglai.com +aipiaxi.com +aipingxiang.com +aiprose.com +aipuo.com +aipz.com +aiqianduan.com +aiqianxq.com +aiqin.com +aiqingyu1314.com +aiqisoft.com +aiqiy.com +aiqiye.cc +aiqiyi.com +aiqiyivip.com +aiqu.com +aiquanjian.com +aiqygogo.com +aiqzu.net +air-level.com +air-matters.com +air.cc +airbft.com +airchangan.com +airchina.com +airchinacargo.com +airchinagroup.com +airchinaim.com +airchinajet.com +airchinamedia.com +aircn.org +aircourses.com +airdoc.com +airdropin.com +airen1314.com +airguilin.com +airj.website +airkunming.com +airmart.vip +airmate-china.com +airmb.com +airmobyte.com +airnut.com +zzzyb.com +airportcip.com +airsavvi.com +airspa.net +airstar.com +airtofly.com +airtu.com +airtu.me +airwh.com +aisaohuo.com +aisaw.com +aisbeijing.com +aisearch.cc +aisee.tv +aiseeking.com +aiseminar.com +aisenseinc.com +aishangba.org +aishangyangyu.com +aishengji.com +aishu5.com +aishuge.la +aisila.com +aisino.com +aisinogd.com +aisinogz.com +aisitool.com +aisixiang.com +aisky.cc +aiskycn.com +aisojie.com +aispeech.com +aispreadtech.com +aistar.site +aisy.com +aitaojin.com +aite.xyz +aitecar.com +aitemall.com +aitemple.com +aiterent.com +aitesu.com +aitiancheng.com +aitrans.net +aitransfy.com +aituan.com +aituwo.com +aityp.com +aiufida.com +aiurl.com +aiuxdesign.com +aiuxian.com +aiuxstudio.com +aiviy.com +aiviysoft.com +aivote.com +aiwall.com +aiwan4399.com +aiwan91.com +aiwanba.net +aiwanpai.com +aiwebsec.com +aiwei365.net +aiweibang.com +aiweline.com +aiwen.cc +aiwenyi.com +aiworkspace.com +aiwulao.com +aixchina.net +aixcoder.com +aixiaoduo.com +aixiashu.com +aixiashu.net +aixiatxt.com +aixiawa.com +aixiawx.com +aixiaxs.com +aixiaxsw.com +aixiegao.com +aixiezuo.com +aixifan.com +aixigua.com +aixinquban.com +aixinwu.org +aixinyunfan.com +aixiu.net +aixq.com +aixue.net +aixuedai.com +aixuejun.com +aixuetang.com +aixuexi.com +aixzu.com +aiyaapp.com +aiyangedu.com +aiyanqing.com +aiyaopai.com +aiyichuan.com +aiyidu.com +aiyinghun.com +aiyingli.com +aiyingshi.com +aiykj.com +aiyou.com +aiyoumi.com +aiyouzj.com +aiyoweia.com +aiysm.com +aiyuangong.com +aiyuke.com +aiyunxiao.com +aizaoqi.com +aizhan.com +aizhengli.com +aizhenrong.com +aizhet.com +aizhuizhui.com +aiziti.net +aizongyi.com +aizuna.com +aizuopin.com +ajaxjs.com +ajbbkf.com +ajcass.org +ajcctv.com +ajclass.com +ajhchem.com +ajinga.com +ajiuqian.com +ajkcdn.com +ajkdns2.com +ajkimg.com +ajmide.com +ajrcb.com +ajs17.com +ajwang.com +ajweishequ.com +ajxlx.com +ajyg.com +ajzq.com +ak0.tw +ak1ak1.com +ak47ids.com +akaifa.com +akaiwl.com +akaxin.com +akbe.com +akbkgame.com +akdanji.com +akdns.net +akey.im +akey.me +akeyun.com +akhtm.com +akhy.com +akjianding.com +akkogear.com +akng.net +akniu.com +akomr.com +akppt.net +akr-developers.com +akscan.com +akspeedy.com +akswe.com +aksxw.com +aku.pub +akuziti.com +akyiyou.com +akylq.com +al-jin.com +al8l.com +alabmed.com +alaboshuiyan.com +alacun.com +aladdin-e.com +aladdinnet.com +alai.net +alameal.com +alanyhq.com +aldcup.com +aldeee.com +aldnew.com +aldtop.com +aldwx.com +aledeco-hk.com +alertover.com +aletui.com +alexhaohao.com +alexyan.cc +alfeng.com +alfheim.cc +algorithmart.com +ali-health.com +ali-star.com +ali213.com +ali213.net +ali37.net +aliagain.com +alianhome.com +aliapp.com +aliapp.org +aliavv.com +003store.com +alibaba-inc.com +alibaba.com +alibaba.net +alibabacapital.com +alibabachengdun.com +alibabachengdun.net +zzzsxx.com +alibabacloud.com +zzzppp.com +zzzla.com +zzzj.com +zzzdm.com +zzz4.com +alibabacorp.com +alibabadesign.com +alibabadns.com +alibabadoctor.com +alibabafapiao.com +alibabafoundation.com +alibabafuturehotel.com +alibabagroup.com +alibabaonline.com +alibabapictures.com +alibabaplanet.com +alibabatech.org +alibabaued.com +alibabausercontent.com +alibjyun.com +alibjyun.net +alibole.com +alibuybuy.com +alicall.com +alicdm.com +alicdn.com +alicdngslb.com +alicelj.com +alicloud.com +alicloudapi.com +alicloudccp.com +alicloudlayer.com +alicloudsec.com +alicloudwaf.com +alicontainer.com +alidata.org +alidayu.com +alidns.com +aliedge.com +aliensidea.com +alientek.com +aliexpress-media.com +aliexpress.com +aliexpress.ru +aliexpress.us +alifabu.com +alifanyi.com +aligames.com +aligaofang.com +aligfwaf.com +alihd.net +alihealth.hk +alihuahua.com +aliimg.com +alijijinhui.org +alijk.com +alikmd.com +alikunlun.com +alikunlun.net +alili.tech +aliliying.com +aliloan.com +alimama.com +alimebot.com +alimei.com +alimmdn.com +alinx.com +alinx.vip +aliog.com +alip.biz +alipan.com +alipansou.com +00394.net +alipay-eco.com +alipay.com +alipay.hk +alipay.net +alipayauto.com +alipaycs.com +alipaydev.com +alipaydns.com +alipaylog.com +alipayobjects.com +alipayplus.com +alipcsec.com +aliplay.com +aliplus.com +aliqiche.com +aliresearch.com +alisabelen.com +alisoft.com +alisports.com +alitchina.com +alithefox.net +alithon.com +alitianji.com +alitrip.com +alitrip.hk +alittle-tea.com +alittlesoldier.com +aliued.com +aliunicorn.com +aliuv.com +alivecdn.com +alivv.com +alivv.net +aliway.com +aliwd.com +aliwears.com +aliwork.com +aliwx.net +alixiaomi.com +alixixi.com +alixox.com +aliyiyao.com +aliyue.net +aliyun-cdn.com +aliyun-inc.com +aliyun-iot-share.com +aliyun-youhui.com +aliyun.com +aliyun.org +aliyunbaike.com +aliyuncdn.com +aliyunceng.com +aliyuncs.com +aliyundaiwei.com +aliyunddos0002.com +aliyunddos0003.com +aliyunddos0005.com +aliyunddos0006.com +aliyunddos0010.com +aliyunddos0017.com +aliyunddos0018.com +aliyunddos0019.com +aliyunddos0020.com +aliyunddos0023.com +aliyunddos0025.com +aliyunddos0026.com +aliyunddos0027.com +aliyunddos0029.com +aliyunddos0030.com +aliyunddos1001.com +aliyunddos1002.com +aliyunddos1003.com +aliyunddos1004.com +aliyunddos1005.com +aliyunddos1006.com +aliyunddos1007.com +aliyunddos1008.com +aliyunddos1009.com +aliyunddos1010.com +aliyunddos1011.com +aliyunddos1012.com +aliyunddos1013.com +aliyunddos1014.com +aliyunddos1015.com +aliyunddos1016.com +aliyunddos1017.com +aliyunddos1018.com +aliyunddos1019.com +aliyunddos1020.com +aliyunddos1021.com +aliyunddos1022.com +aliyunddos1023.com +aliyunddos1025.com +aliyunddos1026.com +aliyunddos1028.com +aliyunddos1029.com +aliyunddos1030.com +aliyundrive.com +aliyundrive.net +aliyunduncc.com +aliyundunwaf.com +aliyunedu.net +aliyunfuwuqi.com +aliyunga0017.com +aliyunga0018.com +aliyunga0019.com +aliyungf.com +aliyunhelp.com +aliyunhn.com +aliyunj.com +aliyunlive.com +aliyunoos.com +aliyunos.com +aliyunpds.com +aliyunqifu.com +aliyuntest0161.xin +aliyunwaf.com +aliyunwaf1.com +aliyunwaf2.com +aliyunwaf3.com +aliyunwaf4.com +aliyunwaf5.com +aliyunx.com +aliyunyh.com +alizhaopin.com +alizila.com +alkuyi.com +all3c.com +all4seiya.net +allawnfs.com +allawntech.com +allbrightlaw.com +allchips.com +allcitygo.com +allcitysz.net +alldenmark.net +alldk.com +alldobetter.com +alldragon.com +alleadprint.com +allenmarket.com +allfang.com +allfunnies.com +allhistory.com +alliancebrh.com +allianz360.com +alliedjeep.com +allinfinance.com +allinpay.com +allinpayhb.com +alliread.com +alllget.com +alllook.tv +allmaga.net +allnow.com +alloyteam.com +allpayx.com +allposs.com +allrace.com +allsaintsmusic.com +allsenseww.com +allstack.net +allstor.org +alltoall.net +alltobid.com +alltosun.com +alltuu.com +allwin368.com +allwinnertech.com +allwinso.com +allyes.com +allyes.net +allystar.com +alo7.com +aloha-ukulele.com +alonemonkey.com +alongsky.com +alookbrowser.com +alookweb.com +alpha-browser.com +alpha-star.org +alphabole.com +alphafun.com +alsovalue.com +altstory.com +altxw.com +aluaa.com +alumni-scut.org +alwaysnb.com +alwindoor.com +alxw.com +alyisheng.com +alyzq.com +am774.com +am89.com +amaomb.com +amap.com +amapauto.com +amarsoft.com +amassfreight.com +amaxchina.com +amazeui.org +amazfit.com +amazingstuff4u.com +amazingsys.com +amazon1688.com +ambassador-sh.com +ambassadorchina.com +amberbj.com +amberedu.com +ambereduwh.com +ambition-soft.com +ambkct.com +ambow.com +amchamchina.org +amdotibet.com +amec-inc.com +amemv.com +americachineselife.com +amethystum.com +amexpressnetwork.com +amfproject.org +amgbs.com +amgepic.com +amh.sh +amhimalayanet.com +amhl.net +amicool.net +amif-expo.com +amijiaoyu.com +amindbox.com +aminer.org +aminglinux.com +amo9.com +amobbs.com +amoe.cc +amoere.com +ampcn.com +amplesky.com +ampmake.com +ampxl.com +ams-ic.com +amsoveasea.com +amssro.net +amtron-ic.com +amuletj.com +amuletor.com +amunion.com +amuren.com +amwiki.org +amyroutes.com +amysql.com +amyxun.com +amz123.com +amz520.com +amzcaptain.com +analysysdata.com +analytics-china.com +analyticskey.com +anandoor.com +anandzhang.com +ananzu.com +anatuprak.com +anav.com +anbang-life.com +anbanggroup.com +anbokeji.net +anchengcn.com +anchi-china.com +anchnet.com +ancii.com +ancun.com +andaike.com +andan.me +andcaifu.com +andfx.net +andhj.com +andisoon.com +andpay.me +andreader.com +android-doc.com +android-studio.org +androidinvest.com +androidmi.com +androidonline.net +androidonlines.com +androidperformance.com +androidvista.com +andwi.com +andyron.com +andyx.net +ane56.com +aneasystone.com +anf-z.com +anfan.com +anfang086.com +anfeng.com +anfensi.com +angeeks.com +angel-game.net +angel-usa.com +angelhome.org +angeljjangnara.com +angell-studio.com +angelmom.org +angelyeast.com +angelyeast.ru +angesi16.com +angiefans.com +angli.me +anglo-chinese.com +angogotech.net +angruo.com +angrymiao.com +angui.org +angwei.net +anhei2.com +anhei3.net +anheng.com +anhkgg.com +anhouse.com +anhuaedu.com +anhui365.net +anhuigwy.org +anhuihouniao.com +anhuihr.com +anhuijingu.com +anhuilife.com +anhuimobile.com +anhuinews.com +anhuiry.com +aniccw.net +aniceapp.com +anicoga.com +anijue.com +animalchina.com +animationcritics.com +animetamashi.com +animetaste.net +anitama.net +aniu.so +aniu.tv +anix.xyz +anji-ceva.com +anji-logistics.com +anji-tonghui.com +anji66.net +anjian.com +anjianghu.net +anjimicro.com +anjismart.com +anjixiong.com +anjuke.com +anjukestatic.com +ankang06.org +ankangfulu.com +ankangwang.com +ankebio.com +ankelife.com +ankerjiedian.com +ankevip.com +ankichina.net +ankki.com +anlaiye.com +anlibaby.com +anlink.com +anlogic.com +anlu114.com +anmobc.com +anmoxiansheng.com +ann9.com +annabelz.com +anneijun.com +annelhair.com +annhe.net +annto.com +anoah.com +anonym-hi.com +anosmcloud.com +anoyi.com +anqingonline.com +anqn.com +anquan.info +anquan.org +anquanbao.com +anquanke.com +anquantong.com +anrayer.com +anren.org +anrenmind.com +anruan.com +anruichina.com +ansgo.com +anshuntech.ltd +ansiding.com +ansky.com +ansteelgroup.com +ant-clean.com +ant78.com +anta.com +antaifans.com +antairui.net +antarx.com +antbuyhot.com +antcloud-miniprogram.com +antcut.com +antdv.com +antebao.com +antebo.com +antfans.com +antfin-inc.com +antfin.com +antfortune.com +antgroup.com +anticheatexpert.com +antiy.com +antiy.net +antpcdn.com +antpedia.com +antriver.com +antrol.com +antsdaq.com +antspainter.org +antuan.com +antuan365.com +antuni.com +antutu.com +antutu.net +antvr.com +antzk.com +anw.red +anweishi.com +anweizhi.com +anwen.cc +anxcn.com +anxia.com +anxiangkeji.net +anxiaoer.com +anxin.com +anxin360.com +anxin360.net +anxinapk.com +anxindavisa.com +anxindeli.com +anxinlirong.com +anxinmai.com +anxinssl.com +anxinyisheng.com +anxiu.com +anxiw.com +anxjm.com +anxz.com +any123.com +any8.com +anyan.com +anyang100.com +anyangedu.com +anyant.com +anybeen.com +anyelse.com +anyew.com +anyforprint.com +anyforweb.com +anygame.info +anyiidc.com +anyilv.com +anyka.com +anyknew.com +anymcu.com +anymetre.com +anyoy.com +anyrtc.io +anysdk.com +anyskygame.com +anysql.net +anytesting.com +anyunjianzhan.com +anyv.net +anyview.net +anyway.fm +anywood.com +anyxz.com +anzerclub.com +anzext.com +anzhen.org +anzhi.com +anzhitan.com +anzhixun.com +anzhuoapk.com +anzhuotan.com +anzogame.com +anzow.com +ao-hua.com +ao.space +aoao365.com +aoaob.com +aoapp.com +aobacore.com +aobaishi.com +aobosoft.com +aocde.com +aocdn.com +aoch.com +aochengcdn.com +aoclia.com +aocslb.com +aodabo.tech +aodaliyaqianzheng.com +aodbw.com +aoddoll.com +aodeng.cc +aodianyun.com +aodingsy.com +aoedi.com +aoerdz.com +aoetech.com +aofahairextension.com +aofenghuanjing.com +aofenglu.com +aograph.com +aohuasports.com +aoidf3.com +aojauto.com +aojian.net +aojian2.net +aojiaostudio.com +aojiyingyu.com +aojiyouxue.com +aojiyuke.com +aojoo.com +aoju.net +aokangsports.com +aolai.com +aolaigo.com +aoliday.com +aoliongame.com +aolvyou.com +aolylcd.com +aomeng.net +aomygodstatic.com +aonaotu.com +aoofu.com +aoogee.com +aoomoo.com +aoongmob.com +aopayun.com +aorankj.com +aoratec.com +aoscdn.com +aoscom.net +aosens.com +aoseo.com +aoserp.com +aoshitang.com +aoshowsh.com +aoshu.com +aosikazyimage.com +aosong.com +aosoo.com +aoswtc.com +aotian.com +aotrip.net +aotuzuche.com +aowei.com +aowenmarketing.com +aoxingsujiao.com +aoxintong.com +aoxtv.com +aoya-hk.com +aoyanchang.com +aoyangzg.com +aoye.com +aoyii.com +aoyiluoad.com +aoyor.com +aoyotech.com +aoyou.cc +aoyou.com +aoyou365.com +aoyoux.com +aoyu100.com +aoyuge.com +aoyunque.com +aozehuanbao.com +aozhanls.com +aozhougoufang.com +aozhuanyun.com +ap1983.com +ap88.com +apaas-zone-test.com +apabi.com +apachecn.org +apad.pro +apayun.com +apcdns.net +apclc.com +apcso.com +apcupse.com +apdcdn.com +ape8.com +apecome.com +apeeri.com +apehorse.com +apeiwan.com +apelearn.com +apesk.com +apetdog.com +apexmic.com +apexyun.com +apeyun.com +apgblogs.com +apgoview.com +aphidic.com +zzyyrl.com +apiadmin.org +apiairasia.com +apicase.io +apicloud.com +apifox.com +apigwtencent.com +apimkt.net +apispace.com +apitd.net +apiview.com +apixj.xyz +apizb.com +apizl.com +apizza.cc +apizza.net +apjingsi.com +apk3.com +apk4399.com +apk8.com +apkevery.com +apkpackagesys.com +apkplug.com +apkrj.com +apkyx.com +apkzu.com +aplaybox.com +aplum-inc.com +aplum.com +apluscap.com +aplusunion.com +apmarry.com +apmbooth.com +apme-magnetics.com +apmvista.com +apnring.com +apollo.auto +apollocode.net +apollotop.com +apous.com +apowo.com +apowogame.com +apoyl.com +app-router.com +app-web-seo-aso.com +app-zh.com +app001.com +app111.com +app111.org +app1116.app +app17.com +app178.com +app2006.com +app2pixel.com +app86.com +app887.com +appadhoc.com +appbi.com +appbk.com +appbocai.com +appbsl.com +appbyme.com +appbz.info +appchina.com +appchizi.com +appcoo.com +appcool.com +appcpa.net +appcpx.com +appcup.com +appcute.im +appdao.com +appdown.info +appdp.com +appduu.com +appeasou.com +appeeres.com +appgame.com +appganhuo.com +appgenuine.com +apphaiwangxing.com +appicplay.com +appinn.com +appjiagu.com +appkaifa.com +appkefu.com +appkg.com +apple110.com +apple4.us +apple88.net +apple886.com +appleads-trk.com +appleadstech.com +applebl.com +applehunt.com +applemei.com +appletuan.com +applex.net +applicationloader.net +applinzi.com +applogo.net +applysquare.com +applysquare.net +appmifile.com +appnode.com +appotronics.com +apppoo.com +apprcn.com +appresource.net +zzyjsmba.com +apps121.com +appscan.io +appsflower.com +appshike.com +appsimg.com +appsina.com +appsite.info +appso.com +apptao.com +apptianwangxing.com +apptuxing.com +appubang.com +appublisher.com +appurl.cc +appurl.me +appvipshop.com +appvv.com +appweiyuan.com +appwill.com +appwuhan.com +appwuhan.net +appxcode.com +appxzz.com +appyao.com +appying.com +appykt.com +appyouni.com +appzhonghua.com +apriltq.com +aprovadimamma.net +apsgo.com +aptchina.com +aptchip.com +aptenon.com +apusic.com +apxm.net +apxnlw.com +aqara.com +aqb.so +aqbxcdn9.com +aqbz.org +aqdcdn.com +aqdesk.com +aqdog.com +aqdstatic.com +aqee.net +aqfen.com +aqhbq.com +aqidb.org +aqioo.com +aqisite.com +aqiyi.com +aqniu.com +aqqcx.com +aqquan.org +aqtd.com +aqtxt.com +aquacity-tj.com +aquanutriera.com +aquanyou.com +aquapipetech.com +aquayee.com +aqueck.com +aqumon.com +aqyad.com +aqyun.com +aqyzm.com +aqzpw.com +aqzt.com +aqzyzx.com +ar-max.com +aragexpo.com +arapp.online +arayzou.com +arc-uds.com +arcas-da.com +arccode.net +arcdmi.com +archcollege.com +archcy.com +archermind.com +archeros.com +archerpeng.com +archery8.com +archerysalon.com +archgo.com +archi-motive.com +archiant.com +archina.com +archiname.com +archio.pro +architbang.com +archlinuxmips.org +archsummit.com +arcsoftai.com +arctime.org +ardsec.com +areader.com +arebz.com +arefly.com +zzyiquan.com +zzyedu.org +arestech-sz.com +areweloongyet.com +arfans.com +arhieason.com +arhoo.com +ariels.xyz +ariesmob.com +arinchina.com +arisastar.com +arkfeng.xyz +arkn81.com +arkoo.com +arkrdigital.com +arkread.com +arkteam.net +arliki.com +arlmy.me +arm9.net +arm9home.net +armbbs.net +armchina.com +armsword.com +armystar.com +armzl.com +arocmag.com +aromalong.com +arongsoft.com +arp.cc +arpg2.com +arpun.com +arrow-tower.com +arrowos.net +arsqb.com +art-ba-ba.com +art-child.com +art138.com +art238.com +art456.com +artacode.com +artbeijing.net +artbookinchina.com +artcg.design +artcns.com +artcto.com +artddu.com +artebuy.com +artech-graphite.com +artexamcq.com +artfinace.com +artfoxlive.com +artgohome.com +artgoin.com +arthome163.com +arthurchiao.art +artimg.net +artlinkart.com +artlnk.com +artnchina.com +artopia-group.com +artp.cc +artplusall.com +artpro.com +artpro.vip +artproglobal.com +artrade.com +artron.net +artronartdata.com +artronimages.com +artrus.net +arts-nj.com +artsbuy.com +artverse.work +artvisioncg.com +artwe.com +artwun.com +artww.com +artxun.com +arvato-ocs.com +arvinhk.com +aryasec.com +as-doll.com +as-hitech.com +as3f.com +as5.com +asao.com +asbeijing.com +asc-wines.com +aschina.org +aschtj.com +asciima.com +asczwa.com +asczxcefsv.com +asd868.com +asdyf.com +asean-china-center.org +aseoe.com +asfzl.net +asgxsy.com +ashan.org +ashj.com +ashvsash.net +asia-dns.com +asiabt.com +asiaci.com +asiacool.com +asiacorp.net +asiae.com +asiaeap.com +asiafactor.com +asiafpd.com +asiaidc.net +asiainfo-sec.com +asiainfo.com +asiainfodata.com +asianewsphoto.com +asianmetal.com +asiarobot.net +asifadeaway.com +asilu.com +asimi8.com +askci.com +askemq.com +asketchup.com +askgtja.com +askk.cc +asklib.com +asklicai.com +askpanda.cc +askququ.com +asktao.com +askxt.org +askzybf.com +aslzw.com +asm64.com +asnlab.com +asnlab.org +aso.ink +aso100.com +aso114.com +aso120.com +asoasm.com +asoulwiki.com +asp168.com +asp300.com +asp8php.com +aspbc.com +aspcool.com +aspire-info.com +aspirecn.com +aspsky.net +aspx.cc +aspxhome.com +aspxhtml.com +asrmicro.com +ass-casa.com +assassinscreedcodenamejade.com +zzydb.com +zzyb.org +zzxy.net +zzxw.net +zzxhns.com +assrt.net +astbbs.com +astestech.com +astfc.com +asthis.net +astorpiano.com +astron.ac +astropulsion.com +asurada.zone +asussmart.com +asussz-zp.com +asusw.net +aswetalk.net +asyzonline.com +aszvip.com +at0086.com +at0086.net +at58.com +at78.com +at851.com +at98.com +ata-edu.com +ata-test.net +atacchina.com +ataoju.com +atatech.org +atbug.com +atcc360.com +atchip.com +atcloudbox.com +atcontainer.com +atcpu.com +atelier39.org +atf.com +atfeng.com +atguigu.com +atguigu.org +athaitao.com +athmapp.com +athomewithdyslexia.com +atianqi.com +atido.com +ating.info +atmbox.com +atmlimited.com +atmob.com +atobo.com +atomgit.com +atomhike-en.com +atomhike.com +atomic-art.com +atoolbox.net +atpanel.com +atstudy.com +atsws.com +attacker.fit +attakids.com +attri.mobi +atuoyi.com +atwtech.net +atyun.net +atzjg.net +atzlinux.com +atzuche.com +auak.com +aucanlink.com +aucnln.com +audio160.com +audiobuy.cc +audiocn.com +audiocn.net +audiocn.org +audiofamily.net +audiowell.net +audiowellzq.com +audiy.com +audlabs.com +audley-printer.com +augsky.com +augth.com +augurit.com +aunapi.com +auniontech.com +aunload.com +aupu.net +aura-el.com +auromcs.com +ausaview.com +ausbio.com +auscoo.com +ausdn.com +aushinelyn.com +aushy.com +ausny.com +auspous.com +aussino.net +austargroup.com +austarstudy.com +ausuu.com +authing.co +auto-ccpit.org +auto-learning.com +auto-made.com +auto-mooc.com +auto-purify.com +auto-wo.com +auto18.com +auto318.com +auto328.com +auto333.com +auto510.com +auto6s.com +auto98.com +autoai.com +autobaidu.com +autobit.xyz +autobizreview.com +autocamel.com +autochina360.com +autochinashow.org +autochips.com +autodg.com +autodmp.com +autodwg.com +autoesd.com +autofull.net +autogslb.com +autoho.com +autohome.com +autohr.org +autoitx.com +autojingji.com +autojkd.com +autojs.org +autonavi.com +autoparts-yoto.com +autophagy.net +autoplansearch.com +autoprotect365.com +autoqingdao.com +autoshanghai.org +autosmt.net +autosup.com +autozw.com +auwinner.com +auxgroup.com +auyou.com +av-ic.com +av199.com +av2.me +av269.com +av380.net +avalon.pw +avalon233.com +avalss.com +avanpa.com +avatarmind.com +avatarmobi.com +avatr.com +avc-mr.com +avc-ott.com +avemaria.fun +aves.art +avgh5.com +avhome.net +avic.com +avicnews.com +avicone.com +avicsec.com +avicui.com +avivaqueen.com +avlsec.com +avlyun.com +avnpc.com +avoscloud.com +avpic.xyz +avq360.com +avrvi.com +avrw.com +avtechcn.com +avtt830.com +avyeld.com +aw-ol.com +aw.cc +awaimai.com +awaker.net +awaliwa.com +awaysoft.com +awc618.com +awcloud.com +awcn.cc +aweb.cc +awehunt.com +awemeughun.com +awinic.com +aword.net +awotuan.com +awoyun.com +awsdns-cn-21.biz +awsdns-cn-24.com +awsdns-cn-24.net +awsdns-cn-36.net +awsdns-cn-52.net +awsdns-cn-57.com +awsdns-cn-58.net +awsok.com +awspal.com +awstar.net +awtmt.com +awu3.net +awuming.com +awx1.com +ax2nc4.ren +ax630.com +axatp.com +axbsec.com +axbur.com +axbxw.com +axcf.com +axera-tech.com +axfys.com +axhub.im +axiaoxin.com +axjsw.com +axmag.com +axmro.com +axnsc.com +axshuyuan.com +axuer.com +axure.us +axureshop.com +axureux.com +axyxt.com +axzchou.com +axzlk.com +ay57.com +ay800.com +ay99.net +aybwg.org +aycav.com +ayfdc.com +ayfy.com +ayguge.com +ayhuowan.com +ayibang.com +ayidada.com +ayijx.com +ayilaile.com +ayizu.com +ayjs.net +ayqy.net +ayrbs.com +aysz01.com +ayuren.com +ayurumen.com +ayushan.com +ayux.net +ayxbk.com +ayxz.com +azbingxin.com +azchcdna.com +azchcdnb.com +azchcdng.com +azchcdnj.com +azchcdnm.com +azhimalayanvh.com +azhituo.com +azhjt.com +azinbate.info +azooo.com +azoyacdn.com +azoyagroup.com +azuretouch.net +azurew.com +azureyun.com +azycjd.com +azz.net +b-chem.com +b-eurochina.com +b-fairy.com +b1446.com +b1bj.com +b1qg.com +b23.tv +b2b-builder.com +b2b.biz +b2b168.com +b2b168.net +b2b168.org +b2b179.com +b2b6.com +b2b98.net +b2baa.com +b2bic.com +b2bname.com +b2bvip.com +b2bvip.net +b2byao.com +b2cedu.com +b2q.com +b3inside.com +b3log.org +b3logfile.com +b5200.net +b555b.com +b5b6.com +b5csgo.plus +b5esports.me +b5m.com +b612.me +b612kaji.com +b7l.cc +b8yx.com +ba-li.com +baalchina.net +bababian.com +bababus.com +babaike.com +babaimi.com +babao.com +babaofan.com +babapi.com +babariji.com +babaxiong.com +babeijiu.com +babsoft.net +baby-bus.com +baby577.com +baby611.com +baby868.com +babybus.com +babybus.org +babycdn.com +babymoro.com +babymozart.cc +babyqiming.com +babytree.com +babytreeimg.com +bacaoo.com +bacaosh.com +bachemiao.com +bacic5i5j.com +bacocis.com +badls.com +badmintoncn.com +badouxueyuan.com +badu.com +badudns.cc +baertt.com +bafangjuhe.com +bafangwang.com +bag198.com +bagb2b.com +bagesoft.net +bagevent.com +bageyalu.com +bags163.com +bagtree.com +bagualu.net +bagxs.com +bahens.com +bai.com +bai68.com +baibaoyun.com +baibianwukong.com +baibianyishu.com +baibm.com +baibo8.com +baibu.com +baic-hs.com +baicai.com +baicaio.com +baicaiyouxuan.com +baicaolu.net +baicaosoft.com +baicells.com +baichanghui.com +baicheng.com +baichenginedu.com +baichuanhd.com +baichuanhudong.com +baicizhan.com +baicizhan.org +baiclouds.com +baicmotor.com +baicmotorsales.com +baicongjun.com +baicuoa.com +baidajob.com +baidao.com +baidenafu.com +baideye.com +baidinet.com +baidouya.com +0037wan.com +baidu-int.com +baidu-itm.com +baidu-mgame.com +baidu-wenxue.com +baidu.cc +baidu.cm +baidu.com +baidu.mobi +baidu.to +baidu1.com +baidu120.cc +baidu123.com +baidu521.com +baiduads.com +baidubaidu.win +baidubaidubaidu.com +baidubaidubaidu.net +baidubce.com +baiducidian.com +baiducontent.com +baidudaquan.com +baidufe.com +baidufree.com +baiduhui.com +baiduisjkbvsjkl.com +baidulook.com +baidunongmin.com +baiduor.com +baidupan.com +baidupcs.com +baidusmartapps.com +baidusobing.com +baidustatic.com +baidusx.com +baidutab.com +baidutieba.com +baidutt.com +baiduux.com +baiduv.com +baiduvjsbvjknlsvsv.com +baiduwebgame.com +baiduwpan.com +baiduyun.com +baiduyun.wiki +baiduyundns.com +baiduyundns.net +baiduyunsousou.com +baiduzjn.com +baieryk.com +baifae.com +baifendian.com +baifubao.com +baifumeiba.com +baigepo.com +baigeseo.com +baigm.com +baigo.net +baigongbao.com +baihe.com +baiheee.com +baihephoto.com +baihexs.com +baihong.com +baihui.com +baihui168.com +baihuillq.com +baihuoke.com +baihuwang.com +baiila.com +baiinfo.com +baijia.com +baijiacloud.com +baijiahulian.com +baijiasheping.com +baijiayun.com +baijiayuncdn.com +baijiegroup.com +baijiekj.com +baijiexiu.com +baijincdn.com +baijindai.com +baijingapp.com +baijiu88.com +baijob.com +baijunyao.com +baijus.net +baikalminer.com +baike.biz +baike.com +baiked.com +baikemy.com +baikemy.net +baikeshiji.com +baikevod.com +baikezh.com +bailepin.com +bailiaijia.com +bailiangroup.com +bailiann.com +bailiban.com +bailiguangmang.com +bailing88.com +bailitech.com +bailitop.com +baima.com +baimao-expo.com +baimao.com +baimaohui.net +baimda.com +baimei.com +baimg.com +baimiaoapp.com +baimin.com +baina.com +bainaben.com +baineng.cc +baipu365.com +baiqiaogame.com +baiqishi.com +baiquandai.com +baiquefahuasi.com +baironginc.com +bairuitech.com +baiseyun.com +baishakm.com +baishan-cloud.com +baishan-cloud.net +baishan.com +baishancloud.com +baishancloud.org +baishangeek.com +baishengshouhou.com +baishicha.com +baishishuju.com +baishixi.xyz +baishudata.com +baishunet.com +baisiker.com +baisiweiting.com +baisu.com +baitaihuge.com +baitdu.com +baiteng.org +baithu.com +baitianinfo.com +baitiao.com +baituibao.com +baiu.com +baiven.com +baiwandz.com +baiwang.com +baiwangjs.com +baiwutong.com +baixiangxiang.com +baixiaosheng.net +baixing.com +baixing.net +baixingjd.com +baixiu.org +baiyangwang.com +baiyangzb.com +baiyaohy.com +baiycap.net +baiye5.com +baiyewang.com +baiyi181.com +baiyiba.com +baiyinggd.com +baiyjk.com +baiyou100.com +baiyu.tech +baiyuemi.com +baiyunairport.com +baiyundou.net +baiyunhuojia.com +baiyuno.com +baiyunxitong.com +baiyuxiong.com +baizhan.net +baizhanke.com +baizhanlive.com +baizhenzhu.com +baizhiedu.com +baizhu.cc +bajiebofang.com +bajiecaiji.com +bajiege.com +bajiehechuang.com +bajintech.com +bajiu.org +bakahosting.com +bakaxl.com +bakbitionb.com +bakchoi.com +bakingerp.com +bala.cc +baldc.com +baletu.com +balijieji.com +balimtoy.com +ballgametime.com +ballpure.com +balltv.cc +baltamatica.com +bama555.com +bamaiwo.com +bamaol.cc +bamaol.com +bamatea.com +bamaying.com +bamboo18.com +bamenzhushou.com +bamuyu.com +bamxs.com +bananalighter.com +bananau.com +bananaumbrella.com +bananaunder.com +banbaise.com +banbaowang.com +banciyuan.me +bandaoapp.com +bandayun.com +bandcevent.com +bandengw.com +bandianli.com +bandoristation.com +banfubbs.com +banfuzg.com +bang1.work +bangbang.com +bangbang93.com +bangboss.com +bangcle.com +bangdao-tech.com +banggo.com +banghaiwai.com +bangjixia.com +bangkao.com +bangkebao.com +banglianai.com +bangmai.com +bangnixia.com +bangongdashi.com +bangongyi.com +bangongziyuan.com +bangqi66.com +bangqu.com +bangrong.com +bangshouwang.com +bangthink.com +bangwo8.com +bangwo8.net +bangxuetang.com +bangyike.com +bangzechem.com +bangzhufu.com +banji001.com +banjia1680.com +banjiajia.com +banjiamao.com +banjixiaoguanjia.com +banjuanshu.com +bank-of-china.com +bankcomm.com +zzxfjxzz.com +zzxdc.com +bankcz.com +bankgz.com +bankhr.com +bankkf.com +bankksw.com +bankofbbg.com +bankofchangsha.com +bankofchina.com +bankofdl.com +bankofliaoyang.net +bankofshanghai.com +bankoftieling.com +bankofyk.com +bankpublish.com +banksteel.com +banksteeldns.com +bankyy.net +banma-inc.com +banma.com +banmaaike.com +banmajsq.com +banmamedia.com +banmashuo.com +banmasrf.com +banpie.info +banqumusic.com +banri.me +bansha.com +banshier.com +bantangapp.com +bantangbuy.com +banwagong.men +banwojia.com +banxiayue.com +banyuetan.org +banyuetanapp.com +banyuetanxcx.com +banyunjuhe.com +banzhe.xyz +banzou.name +banzouzhizuo.com +bao-cun.com +bao-fang.com +bao-hulu.com +bao100.com +bao12333.com +bao21.com +bao315.com +bao369.com +baobao.com +baobao001.com +baobao88.com +baobaobang.com +baobaoshu.com +baobei360.com +baobeicang.com +baobeigezi.com +baobeihr.com +baobeihuijia.com +baobeita.com +baobeituan.com +baocdn.com +baochaojianghu.com +baodan360.com +baodaohealth.com +baodaren.net +baodigs.com +baodingmeishi.com +baodu.com +baofeng.com +baofeng.net +baofeng365.com +baofengcinema.com +baofengtuandui.com +baofoo.com +baofoo.net +baofu.com +baogang.info +baogao.com +baogao.store +baogaoting.com +baogaozhiku.com +baoge.net +baoguangtai.com +baohebao.com +baohuagroup.com +baoimg.net +baojia.com +baojiazhijia.com +baojidaily.com +baojiehang.com +baojijob.com +baojinews.com +baojinling.com +baojunev.com +baokan.name +baokan.tv +baoku.com +baokuandi.com +baokutreasury.com +baoltx.com +baolu.store +baomi.com +baomi365.com +baomihua.com +baoming.com +baomitu.com +baoqin.com +baoqingvip.com +baoruan.com +baoshe.net +baoshuanglong.com +baoshuiguoji.com +baoshuo.ren +baosiair.com +baosight.com +baosteel.com +baostock.com +baotime.com +baotoulawyer.com +baotoushizx.com +baotuba.com +baowu.com +baowugroup.com +baoxian.com +baoxian72.com +baoxianhai.com +baoxianshichang.com +baoxiaobar.com +baoxiaohe.com +baoxinleasing.com +baoxinwen.com +baoxuexi.com +baoyang1.com +baoyang888.com +baoyangcs.com +baoyt.com +baoyung.com +baoyuntong.com +baoyz.com +baoz.net +baozang.com +baozhayun.cloud +baozhenart.com +baozheng.cc +baozhilin.com +baozhuang.biz +baozhuangren.com +baozifa.com +baozijishu.com +baozipu.com +baozou.com +baozoudi.com +baozoumanhua.com +baozugongkeji.com +baozy.com +baping.com +baqiu.com +baquge.com +barmap.com +baron-bj.com +baronzhang.com +barretlee.com +bartender.cc +base64.us +basecity.com +basemu.com +basequan.com +basestonedata.com +bashan.com +bashuhuapai.com +bashuku.com +basiccat.org +basicfinder.com +bat120.com +bathome.net +batian.net +batmanit.com +batmsg.com +batplay.com +battery-cert.com +battery-expo.com +batterydir.com +batterykey.com +battlecare.net +battleofballs.com +batupian.net +baudu.com +baufortune.com +bauschlombchina.com +bavei.com +bawagon.com +bawanglongbengye.com +baxiami.com +baxichina.com +baybox.club +baydn.com +baye.tech +bayescom.com +bayimob.com +bayinh.com +bayinmao.com +bayuegua.com +bayueju.com +bayueweb.com +bayunhome.com +bazaarjewelrychina.com +bazai.com +bazhan.com +bazhou.com +bazhua.me +bazhuay.com +bazhuayu.cc +bazhuayu.com +bazi.cloud +bazi.xin +bazi5.com +bazp.net +bb-game.com +bb-pco.com +bb06.com +bb778899bb.com +bb8gk.com +bbam58.com +bbanp.com +bbaod.com +bbaqw.com +bbb77qqq.xyz +bbbaaa.com +bbbao.com +bbbb.com +bbbcdns.com +bbbtgo.com +bbbvip.com +bbchin.com +bbcss.com +bbctop.com +bbdservice.com +bbdup.com +bbef.com +bbfoxgame.com +bbfstore.com +bbgsite.com +bbgstatic.com +bbicn.com +bbioo.com +bbiquge.com +bbjkw.net +bbk.com +bbkantu.com +bbmar.com +bbmy.net +bbobo.com +bbonfire.com +bbqe.com +bbqk.com +bbqmw.net +bbrtv.com +bbs-go.com +bbs1x.net +bbsaso.com +bbsds.com +bbsheji.com +bbsls.net +bbsmax.com +bbsnet.com +bbsut.com +bbsxp.com +bbtang.info +bbtcaster.com +bbtkid.com +bbtree.com +bbtw.net +bbugifts.com +bbwfish.com +bbwxbbs.com +bbxinwen.com +bbxinwen.net +bbzhh.com +bbzhi.com +bcactc.com +bcadx.com +bcb5.com +bcbanzou.com +bcbm55555.com +bcbm66666.com +bcbpm.com +bcbvi.com +bccastle.com +bccn.net +bccnsoft.com +bccv.com +bcdaren.com +bcdy.net +bceapp.com +bcebos.com +bcedns.com +bcedns.net +bcedocument.com +bcegc.com +bceimg.com +bcelive.com +bcevod.com +bcfmglobal.com +bcitb.com +bclsw.com +bcluo.com +bcmcdn.com +bcmeng.com +bcpcn.com +bcpgame.com +bcreat.com +bcrjl.com +bcsytv.com +bctest.com +bctmo.com +bcty365.com +bcvbw.com +bcwangluo.net +bcweibo.com +bcwxfy.com +bcxgame.com +bcxww.com +bcy.net +bcyimg.com +bczcdn.com +bczs.net +bd-apaas.com +bd-caict.com +bd-film.cc +bd-film.co +bd-film.com +bd001.net +bd2020.com +bd689.com +bd7kzs.site +bdall.com +bdapark.com +bdatu.com +bdc-rays.com +bdchina.com +bdcloudapi.com +bdclouddns.com +bdf2.com +bdfkb.com +bdfzcd.net +bdfzgz.net +bdgamelive.com +bdgp.cc +bdgslb.com +bdimg.com +bdinfo.net +bditong.com +bdkssc.com +bdkyr.com +bdpan.com +bdqn027.com +bdqn666.com +bdqnwh.com +bds-cn.com +bdsana.com +bdsgps.com +bdshuang.com +bdsimg.com +bdstar.com +bdstatic.com +bdstatlc.com +bdsye.com +bdtic.com +bdtjrcv.com +bdtjs.org +bdtm.net +bdurl.net +bdwater.com +bdwm.net +bdwork.com +bdxhj.com +bdxiguaimg.com +bdxiguastatic.com +bdxiguavod.com +bdxx.net +bdydns.com +bdydns.net +bdys.me +bdysite.com +bdyz.xyz +be-xx.com +be90.com +beadwallet.com +bear20.com +bearead.com +beargoo.com +bearjoy.com +bearminers.xyz +bearrental.com +bearyboard.com +bearychat.com +beasure.com +beats-digital.com +beatsbydre.com +beatu.net +beautifullinux.com +beautifulzzzz.com +bechangedt.com +beckwai.com +becukwai.com +bedtimepoem.com +beduu.com +bee-net.com +bee-station.com +beebeepop.com +beebeeto.com +beecook.com +beedancing.com +beejoygames.com +beekka.com +beelink.com +beemarket.tv +beep365.com +beeplay123.com +beeshow.tv +beestor.com +beestore.tv +beevideo.tv +beeweart.com +begcl.com +begindcc.com +bego.cc +begoto.com +begowin.com +behake.com +behe.com +bei1688.com +beianidc.com +beianw.net +beibaozq.com +beibei.com +beibeicdn.com +beicdn.com +beidahuang.net +beidasoft.com +beidd.com +beidian.com +beidoou.com +beidou.org +beidou66.com +beidouchong.com +beidouone.com +beidousafety.org +beidouxingxueche.com +beieryouxi.com +beifang.net +beifangfoshifen.com +beifeng.com +beifuni.com +beiguorc.com +beihai365.com +beihaidc.com +beihaiting.com +beihaiwz.com +beihuasoft.com +beijing-hmo.com +beijing-hualian.com +beijing-kids.com +beijing-lipin.com +beijing-marathon.com +beijing-time.org +beijing120.com +beijingbang.com +beijingbaomu.com +beijingcenterforthearts.com +beijingfenxiangkeji.com +beijingkbd.com +beijingnorthstar.com +beijingrc.com +beijingrc.net +beijingrenyi.com +beijingsheying.net +beijingtoon.com +beijingwenshendian.com +beijingxinzhuoyue.com +beike21.com +beikeapp.com +beikeba.com +beikeread.com +beikongyun.com +beileike.com +beimai.com +beimeigoufang.com +beimeihongfeng.com +beimiyouchuan.com +beimu.com +beingmate.com +beipy.com +beiren.cc +beisen.com +beisencorp.com +beitaichufang.com +beitao8.com +beitown.com +beiwaibest.com +beiwaiclass.com +beiwaiguoji.com +beiwaionline.com +beiwaiqingshao.com +beiwangshan.com +beiwo.com +beiww.com +beixingmh.com +beiying.online +beiyongzhan.com +beiyxiu.com +beizengtech.com +beizi.biz +beiziman.com +bej9.com +bejoin.net +bejson.com +belarusvisacenter.com +belfone.com +belgiumvisacenterd.com +belle8.com +beltandroadforum.org +beltxman.com +bemanicn.com +bemfa.com +bemhome.com +benbenlong.com +benber-tech.com +benber.com +benbun.com +bendan.website +bendi5.com +bendibao.com +bendiso.com +bendiw.cc +bendizhidao.com +benduo.net +benellimotor.com +bengbeng.com +bengden.com +bengfa.biz +benghuai.com +bengku.com +bengou.com +bengrong.com +bengtie.com +benhu01.com +beniao.com +benjamin.fun +benkejieye.com +benkua.com +benlai.com +benlailife.com +benmi.com +benmu-health.com +benniux.com +bensedl.com +benseshijue.com +benshouji.com +bensiea.com +benyh.com +benyouhui.com +benzhb.com +benzhibbs.com +benzhiwangluo.com +benztu.com +beony.com +beook.com +bepal.pro +bequgew.com +bequgexs.com +bequgezw.com +berfen.com +berlinchan.com +berlinix.com +berqin.com +berrydigi.com +bersella-ai.cc +berui.com +bes.ren +besclouds.com +besg-bee.com +besget.com +beshtech.com +bessystem.com +best-inc.com +best-intl-school.com +best100design.com +best66.me +best73.com +bestadprof.com +bestapp.us +bestatic.com +bestb2b.com +bestbaijiu.com +bestbeibao.com +bestcake.com +bestcdn.vip +bestcem.com +bestcovered.com +bestdo.com +bestebookdownload.com +bestechnic.com +bestedm.net +bestedm.org +besteduchina.com +bestexpresser.com +bestfuturevip.com +bestgo.com +besticity.com +bestinwo.com +bestjy.net +bestlee.net +bestopview.com +bestpay.net +bestpeng.com +bestqliang.com +bestsdwan.com +bestshinhwa.com +bestsign.info +bestsign.tech +bestsrc.com +bestswifter.com +besttrav.com +bestv6.com +bestvapp.com +bestvist.com +bestwa.com +bestwehotel.com +bestweshop.com +bestzone.org +bet007.com +bet555.com +bet8.cm +betaflare.com +betaidc.com +betajy.com +betamao.me +betawm.com +betazixun.com +betheme.net +betop-cn.com +betop365.com +bettbio.com +betteredu.net +betterzip.net +betterzipcn.com +beuyinm.com +beva.com +bevol.com +bevzc.com +bewellbio.com +beyebe.com +beyondbit.com +beyondcompare.cc +beyondcomparepro.com +beyondfund.com +beyondh.com +beyonditsm.com +beyonds.com +beyoner.net +bf-z.com +bf-zhengzhou.com +bf35.com +bfcmovie.com +bfdfe.com +bffzb.com +bfjkdfjknmhjsdf36.com +bfjr.com +bfqh.com +bfqifu.com +bfsu-artery.net +bfsutw.com +bftq.com +bftv.com +bfvvs.com +bfw.cc +bfw.wiki +bfyx.com +bfyx.net +bg-cs.com +bgbk.org +bgctv.com +bgdeco.com +bgee.cc +bggd.com +bgk100.com +bgl88.com +bgmfans.com +bgmlist.com +bgrdh.com +bgren.com +bgrimm.com +bgsdk.net +bgsdyz.com +bgteach.com +bguai.com +bgwcsz.com +bgwl.net +bgyfhyx.com +bh.sb +bh1t.com +bh3.com +bh4dks.com +bh5.com +bh8sel.com +bhcyts.cc +bhdata.com +bhfangchan.com +bhgmarketplace.com +bhhgallery.com +bhidi.com +bhjck.com +bhk.mobi +bhnsh.com +bhpiano.com +bhrencai.com +bhsr.com +bhuitong.com +bhxww.com +bhzck.club +bhzck.xyz +bhzhu203.com +bhzhuji.com +bhzpw.com +bhzyxy.net +bi-ci.com +bianbao.net +biancheng.net +bianchengquan.com +biancui.com +bianews.com +bianfeng.com +bianjiqi.net +bianjiyi.com +bianlidianjiameng.net +bianlifeng.com +bianlun.net +bianmachaxun.com +bianpingyou.com +bianshi.org +biantaishuo.com +bianwa.com +bianwanjia.com +bianxianmao.com +bianxianwu.com +bianyuandaigou.com +bianzhia.com +bianzhirensheng.com +biao12.com +biaodan.info +biaodiancloud.com +biaodianfu.com +biaofaw.com +biaoge.com +biaoge.me +biaoju01.com +biaonimeia.com +biaoniu.net +biaopeibao.com +biaoqing.com +biaoqing233.com +biaoqing888.com +biaoqingjia.com +biaoqingmm.com +biaotukeji.com +biaoyi.com +biaozhiku.com +biaozhun.org +biaozhun8.com +biaozhunkeji.com +biaozhuns.com +biaozhunyisheng.com +biask.com +bibaodao.com +bibenet.com +bibgame.com +bibibi.net +bibiku.com +biblioactiva.com +bibuzhengxing.com +bicpaedu.com +bicredit.xin +bid-view.com +bidchance.com +biddingos.com +biddingx.com +bidemi.com +bidewu.com +bidianer.com +bidingxing.com +bidizhaobiao.com +bidns.net +biduo.cc +biduobao.com +biduoxs.com +biduwenxue.com +bidwhy.com +biede.com +biedoul.com +bieshu.com +bietongfeng.com +bieyangapp.com +bifabu.com +bifeige.com +big-bit.com +big-shanghai.com +bigaaa.net +bigaka.com +bigan.net +bigbaicai.com +bigbenmeng.com +bigbigai.com +bigbigsun.com +bigbigwork.com +bigc.at +bigcat.com +bigcloud.click +bigda.com +bigdata-expo.org +bigdata.ren +bigdatasafe.org +bigdatastudy.net +bigecko.com +bigehudong.com +bigemao.com +bigeniao.com +bigerdata.com +bigeshuju.com +biggerlens.com +biggeryun.com +bigherdsman.com +bightbc.com +bigjpg.com +bigma.cc +bigniu.com +bignox.com +bigops.com +bigplayers.com +bigqiao.com +bigrnet.com +biguo100.com +biguolunwen.com +bigwayseo.com +bigwinepot.com +bigwww.com +bigxiao.com +bigzhong.com +bihe0832.com +bihongbo.com +bihoo.com +bihu-static.com +bihu.com +bihubao.com +biikan.com +biji.com +biji13.com +bijiago.com +bijiagou.com +bijianzw.com +bijiao.org +bijiasso.com +bijiatu.com +bijienetworks.com +bijirim.com +bijixia.net +bikecool.com +bikehome.net +biketo.com +biketour-giant.com +biking-m.com +bilezu.com +bili.fan +biliapi.com +biliapi.net +bilibil.com +bilibili.cc +bilibili.co +bilibili.com +bilibili.net +bilibiligame.co +bilibiligame.net +bilibilihelper.com +bilibilijj.com +bilibilipay.com +bilicdn1.com +bilicdn2.com +bilicdn3.com +bilicdn4.com +bilicdn5.com +bilicomic.com +bilicomics.com +biligame.co +biligame.com +biligame.net +biligo.com +bilihot.com +biliimg.com +bilimoe.com +bilive.com +bilivideo.com +bilivideo.net +biliyu.com +bill-jc.com +billchn.com +billionbottle.com +billionconnect.com +billionseo.com +billowlink.com +billwang.net +bilnn.com +bim-times.com +bimfmchina.com +bimilou.com +binaryai.net +binaryai.tech +binbinyl.com +binbla.com +bincailiuxue.com +binfen.tv +binfenquzu.com +binfenyeke.com +binfenyingyu.com +bing400.com +bingbing8.com +bingbingyy.com +bingchengwang.com +bingd.com +bingdian001.com +bingdian01.com +bingguner.com +binglai.net +binglanggu.com +binglingtech.com +binglixue.com +bingo321.com +bingqipu.net +bingsin.com +bingtuannet.com +bingyan.net +bingyongjin.vip +binkery.com +binmt.cc +binmtplus.com +binpang.me +binqsoft.com +binstream.live +binuoniu.com +binvul.com +binyin.com +binzc.com +binzhi.com +binzhouquan.com +binzhouw.com +binzhuang.com +bio-equip.com +bio-fuyang.com +bio-review.com +bio360.net +bio4p.com +biocloud.net +biocome.com +biodiscover.com +biodiscover.net +biogo.net +biohyalux.com +bioktech.com +biolab.xyz +bionav.cc +bioon.com +bioon.net +biosren.com +biosrepair.com +biostatistic.net +biotecan.com +bipvcn.com +biqige.cc +biqigewx.com +biqiudu.com +biqiuge.com +biqu6.com +biqubao.com +biqubu.com +biqudao.cc +biqudu.com +biqudu.net +biqudu.tv +biqufu.com +biquge.biz +biquge.info +biquge.la +biquge.vip +biquge11.com +biquge8.com +biquge9.cc +biquge99.cc +biqugeabc.com +biqugebook.com +biqugeg.com +biqugegg.cc +biquges.com +biqugesk.org +biqugetv.com +biqugew.com +biqugewx.com +biqugex.com +biqugexs.com +biqugexs.la +biqugexx.com +biquguan.com +biqukan.com +biquke.com +biquke.me +biquku.co +biquku.la +biqukun.la +biqulou.net +biquluo.com +biqupai.com +biqusa.com +biqushu.com +biqusoso.com +biquw.com +biquwo.com +biquwo.net +biquwx.la +biquxs.com +biquyue.com +biquyun.com +biqwo.com +biransign.com +bird4d.com +birdback.org +birdol.com +birdpush.com +birdwork.com +birentech.com +bisairi.com +bisenet.com +bishen.ink +bishengoffice.com +bisheziliao.com +bishijie.com +bit-king.net +bitauto.com +bitautoimg.com +bitautotech.com +bitbank.com +bitcar.com +bitcellulose.com +bitcongress.com +bitcron.com +bitdata.pro +bitdefender-cn.com +biteabc.com +bitecoin.com +biteedu.com +bitekou.com +bitell.com +bitett.com +bitetui.com +bitgo.cc +bitgo.net +bitguai.com +bithosts.net +bithub00.com +bitiful.net +bitjia.com +bitky.cc +bitlib.cc +bitmain.vip +bitmingw.com +bitol.net +bitonloop.com +bitqiu.com +bitscn.com +bitscn.net +bitsde.com +bitse.com +bitsqa.com +bittopmall.com +bitvh.com +biubiu.tv +biubiu001.com +biubiubiu.org +biulie.com +biusoft.com +bivean.com +biwanshequ.com +bixiabook.com +bixiaxs.net +bixingxing.com +bixinlive.com +bixishang.com +bixu.cc +bixu.me +bixueke.com +biyabi.com +biyangwang.com +biyao.com +biye.net +biye666.com +biyehome.net +biyele.com +biyelunwenjiance.com +biyi.net +biyidc.com +biyingniao.com +biyinjishi.com +biymx.com +biyong007.com +biyou.tech +biyuwu.cc +biz-east.com +biz178.com +biz72.com +bizcent.com +bizchallenge.net +bizcharts.net +bizcn.com +bizconfstreaming.com +bizhi360.com +bizhi88.com +bizhicool.com +bizhiquan.com +bizhizj.com +bizhizu.com +bizhongchou.com +bizmoto.com +biznewscn.com +bizopsmall.com +bizpai.com +bizsn.com +bizsofts.com +bizvane.com +bj-apc.com +bj-big.com +bj-dahon.com +bj-dsmzyy.com +bj-kpn.com +bj-sagtar.com +bj-sea.com +bj-shouqi.com +bj-sydc.com +bj-tvart.com +bj-zkhb.com +bj-zywh.com +bj003.com +zzwro.com +bj1000e.com +bj148.org +bj159zx.com +bj1777.com +bj315.org +bj51.org +bj5188.com +bj520.com +bj597.com +bj65z.com +bj96007.com +bjadn.net +bjatv.com +bjbaodao.net +bjbeifangjx.com +bjbtfu.com +bjbus.com +bjbxg8.com +bjbywx.com +bjbzc.com +bjbzszxy.com +bjcae.com +bjcancer.org +bjcankao.com +bjcathay.com +bjcdc.org +bjcec.com +bjceis.com +bjcgtrain.com +bjckkj.com +bjcls.net +bjcma.com +bjcoco.com +bjcomic.net +bjcshy.com +bjcsyg.com +bjcta.net +bjcxdf.com +bjcycg.com +bjcyzg.com +bjdcfy.com +bjdfxj.com +bjdiaoyu.com +bjdjc.com +bjdllti.com +bjdongxin.com +bjdsppa.com +bjeasycom.com +bjewaytek.com +bjexmail.com +bjexx.com +bjffdz.com +bjffkj.com +bjfsali.com +bjfwbz.org +bjfyw.org +bjgas.com +bjggk.com +bjglxf.com +bjglxt.com +bjgongteng.com +bjgujibaohu.com +bjgwy.org +bjhaiguang.com +bjhdnet.com +bjhee.com +bjhengjia.net +bjhj10000.com +bjhmcm.com +bjhmxx.net +bjhouse.com +bjhrkc.com +bjhscx.com +bjhsyuntai.com +bjhszp.com +bjhtzsgs.com +bjhwbr.com +bjhzkq.com +bjiab.com +bjicpark.com +bjidc.net +bjidit.com +bjinfobank.com +bjipwqzx.com +bjiwex.com +bjjchf.com +bjjdwx.com +bjjf.cc +bjjfsd.com +bjjihui.com +bjjiubo.com +bjjizhun.com +bjjkglxh.org +bjjnzf.com +bjjqzyy.com +bjjtat.com +bjjubao.org +bjjzsc.com +bjjzzpt.com +bjk30.com +bjkaihua.com +bjkaihua.net +bjkhzx.com +bjkqj.com +bjkrtwl.com +bjktwe.com +bjl777.com +bjlanqiao.com +bjlcs-tech.com +bjlevsoft.com +bjlkhd.net +bjllsy.com +bjlmfq.com +bjlongview.com +bjlot.com +bjlyw.com +bjmailqq.com +bjmama.com +bjmama.net +bjmantis.net +bjmcdh.com +bjmeikao.com +bjmjm.com +bjmslp.com +bjmti.com +bjnaxl.com +bjnsr.com +bjp321.com +bjpag.com +bjpowernode.com +bjqcjdcj.com +bjqh.org +bjqhgjj.com +bjqichezl.com +bjqingyang.com +bjqyjjlb.com +bjrc.com +bjrcb.com +bjrdhx.com +bjretech.com +bjreview.com +bjrhxp.com +bjrjgj.com +bjrmysjy.com +bjrqgd.com +bjrtcdn.com +bjrun.com +bjry.com +bjsantakups.com +bjsasc.com +bjsbnet.com +bjscfl.com +bjscp.com +bjscszh.com +bjsctx.com +bjsdfz.com +bjsdr.org +bjsfrj.com +bjsheng.com +bjshijin188.com +bjsidao.com +bjsjob.com +bjsjwl.com +bjsjxtm.com +bjsly.com +bjsoho.com +bjsound.com +bjsoyo.com +bjspw.com +bjsryc.com +bjsskdn.com +bjsubway.cc +bjsubway.com +bjsuewin.com +bjswds.org +bjsxt.com +bjsyqw.com +bjszhd.net +bjtcf.com +bjtelecom.net +bjtitle.com +bjtjw.net +bjtjzx.com +bjtlky888.com +bjtobacco.com +bjtonghui.com +bjtopli.com +bjtth.org +bjttsf.com +bjtvnews.com +bjtyzh.org +bjunionstar.net +bjuri.com +bjweizhifu.com +bjwfz.com +bjwhds.com +bjwkzl.com +bjwsxx.com +bjwwhc.com +bjwyseo.com +bjxcloud.com +bjxf315.com +bjximei.com +bjxinku.com +bjxinyou.com +bjxjyy666.com +bjxwx.com +bjxx.vip +bjxx8.com +bjxydh.com +bjyah.com +bjyczb.com +bjydzy.com +bjyestar.com +bjyhwy.com +bjyingyun.com +bjyixiaojian.com +bjyouth.net +bjyqsj.com +bjythd.com +bjyunyu.com +bjywt.com +bjzaxy.com +bjzbkj.com +bjzcha.com +bjzcth.com +bjzg.org +bjzghd.com +bjzhishi.com +bjzhongyi.com +bjzjgyl.com +bjzkhs.com +bjzklp.com +bjzmkm.com +bjzmqj.com +bjznnt.com +bjzph.com +bjzqw.com +bjzs114.com +bjzunlaotang.com +bjzwzx.com +bjzxcp.com +bjzyrxgs.com +bk-cdn.com +bk41.net +bk5u.com +bkapigw.com +bkapps.com +bkbyxa.com +bkclouds.cc +bkdou.com +bkill.net +bkjk-inc.com +bkjk.com +bkjpress.com +bkn.cc +bkpcn.com +bkqq.com +bkt123.com +bktencent.com +bkweek.com +bkwgf.com +bkxs.net +bkzzy.com +bl.com +bl0757.com +bla01.com +black-unique.com +blackbirdsport.com +blackdir.com +blackdragon.com +blackeep.com +blackh4t.org +blackshark.com +blackshow.me +blackswancake.com +blackxl.org +blackyau.cc +blackzs.com +bladewan.com +blakat.cc +blazefire.com +blazefire.net +blazingcats.com +blbx.com +blctwed.com +bldimg.com +bldz.com +bleege.com +blemall.com +blendercn.org +blenderget.com +blessedbin.com +bliao.com +blibao.com +blibee.com +blibee.net +blicube.com +blimage.com +bliner.me +bling.link +blingabc.com +blingclubs.com +blissmall.net +blizzardcn.com +blizztc.com +bljiancai.com +bln7.com +bln8.com +blockchain.hk +blockchain123.com +blockchainbrother.com +blockchainlabs.org +blockmeta.com +blockob.com +blocrepresents.com +zzwqqx.com +zzwljc.com +zzwhtg.com +blog007.com +blog120.com +blog1984.com +blogbus.com +blogchina.com +blogchinese.com +blogcn.co +blogdriver.com +blogfeng.com +bloggern.com +blogjava.net +bloglegal.com +blogqun.com +blogturn.com +blogways.net +blogxuan.com +bloomgamer.com +bloves.com +blowing-mould.com +blpack.com +blqx.com +blqy.com +blskye.com +blszhifa.com +blue-city.com +blue-zero.com +blueaggrestore.com +bluearchive-cn.com +bluebeebox.com +bluecatyun.com +bluecefa.com +bluecloudprod.com +blued.com +bluedon.com +bluefite.com +bluefocus.com +blueglass.vip +bluegq.com +bluehao.com +bluehn.com +blueidea.com +bluek.org +bluelettercn.org +bluelightfuse.com +bluelive.me +blueplus.cc +bluepoch.com +bluesdream.com +bluesharkinfo.com +blueshow.net +blueskykong.com +blueskyschool.net +blueskystudy.com +blueskyxn.com +blueslc.tech +bluesoleil.com +bluestar-pc.com +bluestep.cc +blw.moe +blyun.com +bm001.com +bm777777.com +bm8.tv +bm8885.com +bm999999.com +bmatch.tech +bmc-medical.com +bmcx.com +bmdbr.com +bmdxcx.com +bmeol.com +bmfsm.com +bmijs.com +bmlink.com +bmob.site +bmobapp.com +bmobcloud.com +bmobpay.com +bmp.ovh +bmpj.net +bmqy.net +bmrtech.com +bms16.com +bmshow.com +bmtcled.com +bmvps.com +bmw8033.com +bmyy.work +bnacg.com +bnbcamp.com +bnbtrip.com +bnc66.com +bnchina.com +bncwork.com +bnhgsb.com +bnhshiguan.com +bnjyks.com +bnncn.com +bnnd.net +bnqgsl.com +bnupg.com +bnwin.com +bnxb.com +bnzt88.com +bo-blog.com +bo-yi.com +bo56.com +boai.com +boanying.com +bob-cardif.com +bob-leasing.com +bob.com +bob4885.com +bobaow.com +bobbns.com +bobbystable.com +bobcfc.com +bobcoder.cc +bobdirectbank.com +bobidc.com +boblog.com +bobo.com +bobopic.com +bobopos.com +bobouny.com +bobtranslate.com +bocai.life +bocamchina.com +bocaviation.com +boccfc.cc +boce.com +bocep2c.com +bocfullertonbank.com +bocgi.com +bocgins.com +bochk.com +bocichina.com +bocifunds.com +bocigroup.com +bocim.com +bocomcc.com +bocommleasing.com +bocommlife.com +bocommtrust.com +bocsolution.com +bodahu.com +bodchan.com +bodimedia.net +bodoai.com +bodogqm.com +bodu.com +boduhappiness.com +boe.com +boendejc.com +bof98.com +bofangw.com +bofengkj.com +bofyou.com +bog.ac +bogokj.com +bohailife.net +bohaishibei.com +bohaiyun.com +bohe.com +bohejiasuqi.com +bohuihe.com +bohuitalent.com +bohutmt.com +boincdn.live +boiots.com +bojianger.com +bojoy.net +bojun-import.com +bojuwang.com +bokanghui.net +bokao2o.com +boke.com +boke112.com +boke8.net +bokeboke.net +bokecc.com +bokecs.net +bokee.com +bokee.net +bokeren.cc +bokesoft.com +bokesoftware.com +bokeyz.com +bokhra.com +bolaa.com +bolan.net +bolaninfo.com +bolanjr.com +boldseas.com +bolead.com +bolehu.net +boleihg.com +bolejiang.com +bolelink.com +bolepeixun.com +bolexiaozhao.com +boling04.com +bolink.club +bolo.me +bolopp.com +bolq.com +boluo.link +boluo.org +boluogouwu.com +boluomee.com +boluomeet.com +boluoyun.com +boluoyunyu.com +bom.ai +bom2buy.com +bomanair.com +bombox.org +bomeeting.net +bomin-china.com +bomman.com +bon-top.com +bon-wine.com +bonbonbongame.com +bondlady.com +bonepuppy.com +bongmi.com +bongv.com +bongwell.com +bonkee.net +bonnelivre.com +bonree.com +bonsj.com +bonwai.com +boobooke.com +booea.com +booeoo.com +boohee.com +book118.com +book1234.com +book1993.com +bookask.com +bookdao.com +bookdown.net +bookersea.com +bookfeel.com +booking001.com +bookinlife.net +books51.com +bookschina.com +bookshadow.com +bookshoptw.com +bookshuku.com +booksky.cc +booksn.com +booktxt.com +booktxt.net +bookuu.com +bookxnote.com +bookzx.org +boolan.com +boolaw.com +boole-tech.com +boolean93.com +boolv.com +boomsense.com +boooba.com +boosj.com +boostintensity.com +boosyi.com +bootcdn.net +bootcss.com +bootstrapmb.com +booyu-import.com +booz88.com +bopian.com +boqii.com +boqiicdn.com +boquxinxi.com +borderlessbd.com +borlonclan.com +borninsummer.com +bornlead.com +borpor.com +borscon.com +boruiqin.com +boruishijie.com +boruisx.com +boryou.com +bos.xin +bosdsoft.com +boseclub.com +bosen-fuji.com +bosenrui.com +bosera.com +zzwenxue.com +boshi.tv +boshika.com +boshixitong.com +boshiyl.com +boshungame.com +bosideng.com +bosideng.me +bosideng.net +bosigame.com +bosondata.net +bosonnlp.com +boss-young.com +bosscdn.com +bossgoo.com +bosshr.com +bosszhipin.com +bosunman.com +botaoo.com +botnet.cc +botocard.com +botongr.com +botorange.com +botsfy.com +botslab.com +bouffalolab.com +boweifeng.com +bowerp.com +bowuzhi.fm +boxgu.com +boxopened.com +boxuegu.com +boxueio.com +boxui.com +boxz.com +boy-toy.net +boy1904.com +boyaa.com +boyaceo.com +boyais.com +boyamicro.com +boyasoftware.com +boyaxun.com +boydwang.com +boyicn.com +boyingsj.com +boyoucy.com +boyue.com +boyunso.com +boyuonline.com +bozhihua.com +bozhong.com +bpfqmg7.xyz +bpimg.com +bppan.com +bpqwxsh.com +bpsemi.com +bpteach.com +bpxxfw.com +bq04.com +bq233.com +bqatj.com +bqfy.com +bqg8.cc +bqg8.la +bqg99.cc +bqgnovels.com +bqgyy.com +bqimg.com +bqpoint.com +bqq8.com +bqrdh.com +bqteng.com +bragood.com +brand4x4.com +brandcn.com +brandpano.com +brandvista.com +brbtyt.com +breadtrip.com +brentron.com +brg0.com +bricktou.com +bridge-image.com +bridgee.net +brighost.com +brightdairy.com +brightfood.com +brire.com +britesemi.com +brlinked.com +brmyx.com +broad-ocean.com +broadon.net +broadskytech.com +bronzesoft.com +brother-cn.net +brother-movie.com +zzwanshou.com +browurl.com +brsiee.com +brtbeacon.com +brtbeacon.net +bruceit.com +brunoxu.com +bryonypie.com +brzhang.club +bs-dolfin.net +bs008.com +bsaxt.com +bsbchina.com +bsbydd.com +bsccdn.com +bsccdn.net +bscdnd.com +bscdns.com +bscea.org +bscedge.com +bscstorage.com +bscstorage.net +bsd4fz.com +bsdgco.com +bsdt1688.com +bsgcnc.com +bsgslb.com +bsh-tech.com +bsh.com +bshare.com +bsida.com +bsidu.com +bsjhhzs.com +bskrt.com +bskuav.com +bsmz.net +bspapp.com +bsrczpw.com +bsrkt.com +bssrvdns.com +bstatics.com +bsteel.net +bstinfo.com +bstjiaoyu.com +bstzcs.com +bsurl.cc +bswtan.com +bsybx.com +bsyjrb.com +bsyxx.com +bt6.club +bt66.tv +bt9527.com +btb8.com +btba.cc +btbat.com +btbctex.com +btbdys.com +btbt.tv +btbtt9527.com +btc114.com +btc116.com +btc123.com +btc17.com +btc789.com +btcbbs.com +btcbd.com +btcbl.com +btcfans.com +btcha.com +btclass.net +btcside.com +btcsos.com +btcwatch.com +btcxue.com +btdad.live +btdad17.xyz +btdog.com +btgame.com +btgame01.com +btgang.com +btgtravel.com +bthhotels.com +bthlt.com +bthuifu.com +btime.com +btmayi.cc +btmeiju.com +btnotes.com +btoo3.com +btophr.com +btorange.com +btpig.com +btplay.net +btqsam.com +btrcsc.com +btschool.net +btsemi.com +btshidai.com +btsmth.com +btsmth.org +btspreads.com +btsteel.com +btten.com +bttiantang.cc +bttiantang.com +bttimg.com +btv.org +btvcd.net +btwob.net +btwuji.com +btxl8.com +btydjxc.com +btyou.com +btzhcc.com +buaaer.com +bubalusplus.com +bubugao.com +bubuko.com +bubukua.com +bubuol.com +bubuzheng.com +bucg.com +buckydrop.com +bucuo100.com +budao.com +budao24.com +budhano.com +buding.tv +buding3.com +budingmore.com +budou.com +buduanwang.vip +buduobaobao.com +bueryx.com +buffst.com +bugku.com +bugnull.com +bugscan.net +bugscaner.com +bugtags.com +buguangdeng.com +bugucn.com +bugukj.com +bugumanhua.com +bugutime.com +bugxia.com +buhuixiao.com +buhuyo.com +build-decor.com +build9s.io +buildface.com +buildhr.com +buildjob.net +buildwaterexpo.com +buimg.com +bujie.com +bukamanhua.com +bukamh.com +bukeyi.net +bulaisi.com +bulaoge.net +bulejie.com +bullcome.com +buluanmai.com +buluo007.com +bumimi.com +bumiu.com +bundpic.com +bunfly.com +bungba.com +bunze.com +buread.com +burgud.com +burl.cc +burnelltek.com +burongyi.com +bus365.com +bus84.com +busbaoche.com +bushangban.com +bushen365.com +businessconnectchina.com +businessreviewglobal-cdn.com +busionline.com +busiphi.com +busituzi.com +busnc.com +but7.com +butair.com +butongshe.com +butonly.com +butterapis.com +buxia.net +buxiugangban.net +buyanshufa.com +buyaocha.com +buycarcn.com +buychuan.com +buycoor.com +buyfine.net +buyhot.vip +buyigang.com +buyiju.com +buyjk.com +buykee.com +buylabel.com +buysun.net +buysweet.com +buyu1314.com +buzhi5.com +buzhibushi.com +buzzads.com +buzzfortoday.com +buzzinate.com +bvfcdn.com +bvgv.com +bvimg.com +bvseo.com +bvttsg.com +bw1006.com +bw30yun.com +bw36jnxjfna.com +bw40.net +bw8848.com +bwae.org +bwangel.me +bwbot.org +bwchinese.com +bwda.net +bwfapiao.com +bwfhmall.com +bwgrt.com +bwhero.com +bwhgsb.com +bwie.net +bwjf.com +bwlc.net +bwmelon.com +bwpx.com +bwsm.org +bwsoft.net +bwton.com +bwv8.com +bwxsj.com +bx1k.com +bx24k.com +bx58.com +bxb2b.com +bxcc.vip +bxcqd.com +bxdaka.com +bxdlkj.com +bxemln.com +bxfaka.com +bxgdl.com +bxgdunhua.com +bxgtd.com +bxhaibao.com +bxiangui.com +bxjob.net +bxkejian.com +bxkxw.com +bxlac.com +bxnjmj.com +bxpedia.com +bxr.im +bxrfund.com +bxsnews.com +bxv8.com +bxwst.com +bxwx.la +bxwx.tv +bxwx520.com +bxxy.com +bxyuer.com +bxzhiku.com +bxzxw.com +by-health.com +by56.com +by6.app +by6sx.com +byai.com +bybieyang.com +bybutter.com +bybzj.com +byc168.com +bycmw.com +byd.com +bydit.com +bydowstar.com +byete.com +byf.com +byfcw.com +byfen.com +byfunds.com +byfzxy.com +bygamesdk.com +bygw.net +byhard.com +byhlds.com +byhlds.net +byhua.com +byi.pw +byjdxy.com +byjgxy.com +byjsjxy.com +byjzxy.com +bykjad.com +bykszb.com +bylwcc.com +bylwjc.com +bymz.net +bynmc.com +bynsyh.com +byodonline.com +bypanghu.xyz +byprxy.com +byqcxy.com +byr-navi.com +byr.cc +byr.wiki +bysb.net +byshr.com +bysocket.com +bystack.com +bysxfz.com +bytapp.com +byte-gslb.com +byte.online +byte008.com +byteacctimg.com +byteactivity.com +byteactivity12.com +byteadverts.com +bytecdn.com +bytecdntp.com +byted-static.com +byted-ug.com +byted.org +bytedance.com +bytedance.net +bytedanceapi.com +bytedapm.com +bytedns.com +bytedns.net +bytedns1.com +bytednsdoc.com +byteedu.com +byteeffecttos.com +bytefae.com +bytefcdn.com +bytefcdnrd.com +bytegecko.com +bytegeckoext.com +bytegoofy.com +bytegslb.com +bytehwm.com +byteimg.com +byteintl.net +byteisland.com +bytelb.net +bytemaimg.com +bytemastatic.com +bytenew.com +byteoc.com +byteorg.com +byteorge.com +byteox.com +bytescm.com +bytesfield.com +bytesmanager.com +bytestacks.com +bytetcc.com +bytetos.com +bytewars.cc +bytexns.com +bytexservice.com +byts.com +bytter.com +byxx.com +byxy.com +byyapp.com +byzhihuo.com +byzlp.com +byzoro.com +byzp.com +bz-e.com +bz55.com +bzcm.net +bzcw8.com +bzd6688.com +bzddrive.com +bzfwq.com +bzfxw.com +bzgd.com +bzgwl.com +bzjw.com +bzkad.com +bzko.com +bzmfxz.com +bzname.com +bznx.net +bzonl.com +bzrb.net +bzshw.com +bzsoso.com +bzw315.com +bzxinganghulan.com +bzxinwen.com +bzxtkj.com +bzxz.net +bzxzk.net +bzzfq5.com +c-119.com +c-3.moe +c-canyin.com +c-cnc.com +c-cpp.com +c-ctrip.com +c-estbon.com +c-fol.net +c-lodop.com +c-nin.com +c-ps.net +c-rst.com +c-sz.com +c-t.work +c-yl.com +c.team +c1042.com +c1ass.com +c1channel.com +c1s.com +c2h4.org +c31.fun +c360dn.com +c3acg.com +c3crm.com +c3x.me +c4008.com +c400c.cc +c4d.live +c4datc.com +c4dcn.com +c4dpro.com +c4dsky.com +c4hcdn.com +c4ys.com +c4yx.com +c50forum.com +c55902.com +c571.com +c5game.com +c6c.com +c6n708.ren +c7575tp.com +c75uw72.com +c77c.com +c7c8.com +c7cc.com +c7w.tech +c833.com +c9018.com +c969.com +c9cc.com +ca-sme.org +ca001.com +ca002.com +ca003.com +ca168.com +ca39.com +ca800.com +caaa-spacechina.com +caaad.com +caacbook.com +caacsri.com +caah-kqem.com +caaladi.com +caanb.com +caasbuy.com +caasse.com +caayee.com +cabbagebox.com +cabbagelol.net +cabbeen.com +cabee.org +cabhr.com +cabinetbuy.com +cableabc.com +cabletiegun.com +cabling-system.com +cablingteam.com +cabplink.com +cacfo.com +cachedataby.com +cachekit.com +cackui.com +cacpp.com +cacre.org +cactifans.com +cactifans.org +cactmc.com +cad1688.com +cad8.net +cada.cc +cadforex.com +cadict.net +cadmon.net +cadreg.com +cadzhuan.com +cadzj.com +cadzxw.com +caecc.com +caexpo.com +caexpo.org +cafachine.com +cafagame.com +cafamuseum.org +cafebeta.com +cafemachico.com +caffci.org +caffeenglish.com +cagetest.com +cageystone.com +cagoe.com +cahkms.org +cahuo.com +cai8.net +caian.net +caibaojian.com +caibaopay.com +caibeike.com +caibowen.net +caichongwang.com +caicui.com +caidan2.com +caidao1.com +caidao8.com +caidaocloud.com +caidaoli.com +caidian.com +caidianqu.com +caiens.com +caifu.com +caifuxingketang.com +caifuzhongwen.com +caigaowang.com +caigou2003.com +caigoubao.cc +caigoushichang.com +caiguayun.com +caihang.com +caihcom.com +caihezi.com +caihong5g.com +caihongbashi.net +caihongqi.com +caihongtang.com +caihongto.com +caihongx.com +caihuaw.com +caij100.com +caijing365.com +caijingcaipiao22270.com +caijingche.com +caijingmobile.com +caijingnews.net +caijingwa.com +caijingwu.com +caijinyuan.com +caijuanjuan.com +caike.com +caiku.com +caikuai91.com +cailele.com +cailianpress.com +cailiao.com +cailiaoniu.com +cailiaoren.com +cailutong.com +caimai.cc +caimei365.com +caimitech.com +caimogu.cc +caimogu.net +caimomo.com +cainachina.com +caing.com +cainiao-inc.com +cainiao.com +cainiaobaoka.com +cainiaojc.com +cainiaojiaocheng.com +cainiaoxueyuan.com +cainongnet.com +caipiaogu.com +caipintu.com +caipopo.com +caipucaipu.com +caipucn.com +caiqiuba.com +cairongquan.com +cairot.com +caisan.io +caishen66.com +caishenpo.com +caishenwang.online +caistv.com +cait.com +caitaimg1.com +caitatd2.com +caitazx2.com +caitun.com +caiu8.com +caiweiming.com +caiwu51.com +caiwuchina.com +caixin.com +caixinfoundation.org +caixun.com +caiyicloud.com +caiyu.com +caiyun.com +caiyunai.com +caiyunapp.com +caiyuncdn.com +caiyunyi.com +caizhaowang.com +caizhihr.com +caj11.com +cake400.com +cake6.com +calawei.com +calb-tech.com +calculusdata.com +caldigit.net +cali-light.com +calibur.tv +callda.com +callmysoft.com +caloinfo.com +calorietech.com +calt.com +calterah.com +calvinneo.com +cambm.com +cambodiafang.com +cambricon.com +camcap.us +camcard.com +came-online.org +camelsee.com +camera360.com +camgle.com +camnpr.com +camoryapps.com +campanilechina.com +campus-app.net +campuschina.org +campushoy.com +campusphere.net +campusplus.com +campusroom.com +camscanner.com +can-dao.com +can.tv +cana.space +canaan-creative.com +canasy.com +cancda.net +cancer361.com +candou.com +candylab.net +candypay.com +candystars.net +canevent.com +canfire.net +cang.com +cangdu.org +cangfengzhe.com +cangjiaohui.com +cangnews.com +cangowin.com +cangpie.com +cangqiongkanshu.com +cangshui.net +cangshutun.com +cangya.com +canhighcenter.com +canhot.net +caniculab.com +canidc.com +cankao100.com +cankaoshouce.com +cankaowang.com +cankaoxiaoxi.com +canmounet.com +canpdu.com +canpoint.net +canrike.com +cansee.net +cansine.com +cantoge.com +canway.net +canwayit.com +canwaysoft.com +canxingmedia.com +canyidian.com +canyin.cc +canyin.com +canyin168.com +canyin2017.com +canyin375.com +canyin88.com +canyincha.com +canyincy.com +canyinzixun.com +canyon-model.com +canyouchina.com +canyuanzs.com +caobao.com +caogen.com +caogenb2b.com +caogenban.com +caohaifeng.com +caohejing.com +caohejing.org +caohua.com +caomeishuma.com +caomeixz10.xyz +caoniang.com +caotama.com +caoxianfc.com +caoxie.com +caoxile.com +caoxiu.net +caoxudong.info +caoyudong.com +capillarytech-cn.com +capitalcloud.net +capitalonline.net +capjoy.com +caplanking.com +capsuleshanghai.com +capvision.com +capwhale.com +car0575.com +car2100.com +car2sharechina.com +car388.com +carben.me +carbonscn.com +carcav.com +carcdn.com +cardbaobao.com +cardcmb.com +cardcn.com +cardinfolink.com +cardniu.com +cardniudai.com +cardqu.com +care110.com +careerchina.com +careerqihang.com +careersky.org +careuc.com +cargeer.com +cargo001.com +cargosmart.com +carimg.com +carking001.com +carltonyu.com +carmov.com +carnegiebj.com +carnoc.com +carodpiano.com +carp56.com +carrobot.com +carrotchou.blog +carrotchou.com +carry6.com +cartoonwin.com +carutoo.com +carxoo.com +carzd.com +carzyuncle.com +cas01.com +casarte.com +casboc.com +casctcp.com +casdoor.org +case91.com +casece.org +cashtoutiao.com +cashwaytech.com +casic-addsino.com +casic-t.com +casic.com +casic304.com +casic3s.com +casicloud.com +casicyber.com +caslease.com +casnb.com +casql.com +casqy.com +casszzy.com +castbd.com +castelu.com +casvino.com +casvm.com +casystar.com +cat898.com +catdggga.com +catering-shizuoka.com +catfish-cms.com +catguo.com +cathayagroup.com +catjc.com +cato-travel.com +cattsoft.com +cature.com +catv.net +caua99.com +caup.net +cauvet.com +cav-ad.com +cavca.org +cawae.net +caxa.com +cazpw.com +cbalx.com +cbca.net +cbcie.com +cbd263.com +cbdcn.com +cbdio.com +cbdjrsh.org +cbe21.com +cbea.com +cbec365.com +cbes21.com +cbevent.com +cbex.com +cbfau.com +cbgcloud.com +cbi360.net +cbice.com +cbiec.com +cbiec.net +cbismb.com +cbj1998.com +cbjuice.com +cbjzw.org +cbmay.com +cbmf.org +cbminfo.com +cbmwz.net +cbn.me +cbndata.com +cbndata.org +cbnmall.com +cbnri.org +cbnweek.com +cboad.com +cbsrc.com +cbtimer.com +cburi.com +cbvac.com +cbw111.com +cby.me +cc-glass.com +cc-pharming.com +cc.co +cc0808.com +cc11bh.com +cc55k.com +cc667788cc.com +cc7m.com +cc8.cc +ccabchina.com +ccai.cc +ccapbook.com +ccapedu.com +ccartd.com +ccarting.com +ccasy.com +ccb.com +ccbcos.com +ccbft.com +ccbfund.com +ccbfutures.com +zzw2zzw.com +ccbleasing.com +ccbookfair.com +ccbpension.com +ccbride.com +ccbseoul.com +ccbwfs.com +ccbxt.com +cccbs.net +cccdun.com +cccf-cloud.com +ccchz.com +cccitu.com +cccity.cc +cccm-em120.com +cccmat.com +cccnec.com +cccollector.com +cccovvv.com +cccp.online +cccpan.com +cccsql.com +ccctspm.org +cccwww.com +cccyun.cc +ccd86.com +ccdby.com +ccdol.com +ccea.pro +cceato.com +ccedisp.com +ccedpw.com +ccee.com +cceea.net +ccement.com +ccen.net +ccepc.com +cces2006.org +ccets.com +ccfei.com +ccflow.org +ccgaa.com +ccgfie.com +ccgslb.com +ccgslb.net +cchccc.com +cchezhan.com +cchfound.org +cchicc.com +cchorse.com +cchorse.net +cciatv.com +ccic.com +ccic2.com +cciccloud.com +ccice.com +ccichn.com +ccidcom.com +ccidconsulting.com +cciddata.com +cciddesign.com +ccidedu.com +ccidexpo.com +ccidgroup.com +ccidnet.com +ccidreport.com +ccidsmart.com +ccidthinktank.com +ccidwise.com +ccieh3c.com +ccigchina.com +ccihr.com +ccimz.com +ccipp.org +ccita.net +ccitimes.com +cciup.com +ccjkwjjedu.com +ccjoy.com +ccjoyland.com +ccjt.net +ccjzzj.com +cclcn.com +cclexpo.com +cclimg.com +cclinux.org +cclndx.com +cclolcc.com +cclqme.xyz +cclycs.com +cclyun.com +ccm-1.com +ccm99.com +ccmama.com +zzvips.com +zztyscl.com +ccme.cc +ccmfcm.com +ccmodel.com +ccmodel.net +ccmw.net +ccn360.com +ccnee.com +ccnew.com +ccnovel.com +ccnpic.com +ccnt.com +ccoalnews.com +ccoco.vip +ccoi.ren +ccops.net +ccopyright.com +ccpc360.com +ccpgssd.com +ccpit-academy.org +ccpit-ah.com +ccpit-henan.org +ccpit-sichuan.org +ccpit-sx.org +ccpit-tga.org +ccpit.org +ccpitbingtuan.org +ccpitbj.org +ccpitbm.org +ccpitbuild.org +ccpitcq.org +ccpitecc.com +ccpitfujian.org +ccpitgs.org +ccpitgx.org +ccpithebei.com +ccpithn.org +ccpithrb.org +ccpitjinan.org +ccpitjs.org +ccpitlight.org +ccpitln.org +ccpitnb.org +ccpitqd.org +ccpitsd.com +ccpittex.com +ccpittj.org +ccpitxiamen.org +ccpitxian.org +ccplay.cc +ccpnt.org +ccprec.com +ccproxy.com +ccqtgb.com +ccqyj.com +ccrgt.com +ccrjw.com +ccschy.com +ccshenghuo.com +ccsph.com +ccssmm.com +cct08.com +cct365.net +cctalk.com +cctalk.net +cctaw.com +cctb.net +cctbn.com +cctc.cc +cctcce.com +cctcct.com +cctiedu.com +cctime.com +cction.com +cctlife.com +cctocloud.com +cctpress.com +cctry.com +cctv-19.com +cctv-22.com +cctv-star.com +cctv.com +cctv18.com +cctv1zhibo.com +cctv4g.com +cctvcdn.net +cctvcj.com +cctvctpc.com +cctvdyt.com +cctvfinance.com +cctvmall.com +cctvpic.com +cctvsdyxl.com +cctvse.net +cctvweishi.com +cctvxf.com +cctvyscj.com +cctw.cc +cctzz.net +ccutchi.com +ccutu.com +ccv160.com +ccv168.com +ccview.net +ccwcw.com +ccwcyw.com +ccwonline.com +ccwonline.net +ccwow.cc +ccwqtv.com +ccxcn.com +ccxcredit.com +ccxinyuedu.com +ccxiyuecare.com +ccxjd.com +ccyjjd.com +ccyts.com +ccyunmai.com +cczq.com +cczq.net +cd-cxh.com +cd-kc.com +cd-sd.com +cd-zc.com +cd120.com +cd23f.com +cd37wan.com +cd6.com +cdabon.com +cdadata.com +cdadsj.com +cdairport.com +cdajcx.com +cdaten.com +cdbdsec.com +cdbsdyk.com +cdbsfund.com +cdbybo.com +cdccpit.org +cdcd.plus +cdcet.com +cdcgames.net +cdchuandong.com +cdcoslm.com +cdcyts.com +cdcz.net +cddgg.com +cddgg.net +cddscj.com +cddsgk.com +cde-os.com +cdedu.com +cdeledu.com +cdfanmu.com +cdfcn.com +cdfgsanya.com +cdfhnms.com +cdfinger.com +cdfmembers.com +cdfortis.com +cdfsunrise.com +cdfytx.com +cdgdad.com +cdggzy.com +cdgjbus.com +cdgmgd.com +cdgtw.net +cdgxfz.com +cdh3c.com +cdhaiguang.com +cdhfund.com +cdhr.net +cdhtnews.com +cdidc.net +cditv.tv +cdjingfeng.com +cdjingying.com +cdjnrc.com +cdjsjx.com +cdjxjy.com +cdjzso.com +cdjzw.com +cdjzwykj.com +cdjzx120.com +cdjzzg.com +cdkf.com +cdlaobing.com +cdlbyl.com +cdlgame.com +cdlinux.net +cdlsym.com +cdlxqn.com +cdmcaac.com +cdmfund.org +cdmm.net +cdmoz.org +cdn-cdn.net +cdn-dodo.com +cdn-files.net +cdn-gw-dv.net +cdn-hotels.com +cdn-speed.com +zztxkj.com +cdn-uc.cc +cdn-v.com +cdn.fun +zztline.com +zzt9.com +zzstep.com +zzsteel.com +cdn08.com +cdn1218.com +cdn16.com +cdn20.com +cdn20.info +cdn20.org +cdn2000.com +cdn2020.com +cdn30.com +cdn30.org +cdn3344.com +cdn35.com +cdn56.com +cdn86.net +cdn88.cc +cdnaaa.net +cdnbuild.net +cdnbye.com +cdncache.net +cdncdncdn.com +cdncenter.com +cdnchushou.com +cdncl.net +cdncloud.org +cdnclouds.net +cdnczydwl.com +cdndd.net +cdndm.com +cdndm5.com +cdndm5.net +cdndo.com +cdndoctor.com +cdndu.com +cdnet110.com +cdnetdns.net +cdnetworks.com +cdnff.com +cdngogo2.cc +cdngot.com +cdngslb.com +cdngslb8.com +cdngtm.com +cdnhwc1.com +cdnhwc2.com +cdnhwc3.com +cdnhwc5.com +cdnhwc6.com +cdnhwc8.com +cdnhwcajk17.com +cdnhwcatq08.com +cdnhwcbni108.com +cdnhwcbqs106.com +cdnhwcbzj102.com +cdnhwcchh18.com +cdnhwccmz121.com +cdnhwcead111.com +cdnhwcedi10.com +cdnhwcedt124.com +cdnhwcggk22.com +cdnhwcgnc118.com +cdnhwcgqa21.com +cdnhwchcg02.com +cdnhwcibv122.com +cdnhwcick110.com +cdnhwcjlg112.com +cdnhwcjog12.com +cdnhwcjsb120.com +cdnhwckfz116.com +cdnhwckon103.com +cdnhwcljk104.com +cdnhwcllh11.com +cdnhwclxu105.com +cdnhwclxw05.com +cdnhwcoem01.com +cdnhwcohm19.com +cdnhwcoph123.com +cdnhwcprh113.com +cdnhwcpsd13.com +cdnhwcqgw115.com +cdnhwcqir15.com +cdnhwcqve117.com +cdnhwcqwg14.com +cdnhwctnm107.com +cdnhwctxz24.com +cdnhwcuim119.com +cdnhwcupf06.com +cdnhwcurq03.com +cdnhwcvix16.com +cdnhwcxcy07.com +cdnhwczba04.com +cdnhwczjt20.com +cdnhwczks109.com +cdnhwczmn114.com +cdnhwczth23.com +cdnhwcztu09.com +cdnhwczxh101.com +cdnidc.net +cdnjson.com +cdnjtzy.com +cdnle.com +cdnle.net +cdnmama.com +cdnmaster.com +cdnok.com +cdnpe.com +cdnsvc.com +cdntip.com +cdntips.com +cdntips.net +cdnudns.com +cdnunion.com +cdnvp.com +cdnvpn.net +cdnvue.com +cdnyoyun.com +cdnyt69.com +cdqcnt.com +cdqcp.com +cdqph.com +cdqss.com +cdrbs.net +cdren.com +cdren.net +cdronghai.com +cdrtvu.com +cdruzhu.com +cdsb.com +cdsb.mobi +cdsenfa.com +cdsgsz.com +cdshangceng.com +cdsjjy.com +cdsme.com +cdsns.com +cdsuns.com +cdsxlc.com +cdt-md.com +cdtaishan.com +cdtianda.com +cduncname.com +cduyzh.com +cdvcloud.com +cdvisor.com +cdweikebaba.com +cdworking.com +cdwulian.com +cdxrdz.com +cdxsbdz.com +cdxwcx.com +cdyee.com +cdyestar.com +cdygdq.com +cdyou.net +cdyushun.com +cdyzg.com +cdzdgw.com +cdzdhx.com +cdzgh.com +cdzikao.com +cdzimo.com +cdzixun.net +cdzjryb.com +cdzmn.com +cdzszp.com +cdzvan.com +ce-air.com +ce04.com +ce12366.com +ce2293.com +ceair.com +ceairdutyfree.com +ceairgroup.com +ceaj.org +ceamg.com +cebbank.com +cebcn.com +ceblease.com +cebpubservice.com +cecb2b.com +cecc-cx.com +ceccen.com +cecdc.com +cece-mall.com +cece.com +cece.la +cecesat.com +cechoice.com +cecisp.com +cecloud.com +cecmath.com +cecom.cc +ceconline.com +ceconlinebbs.com +cecport.cc +cecport.com +cectcc.com +cectv.net +cedachina.org +cedarhd.com +cediy.com +cedock.com +ceecu.com +ceeger.com +ceeji.net +ceepsp.com +cef114.com +cefc.co +cehca.com +cehome.com +cehuan.com +cehuashen.com +cehui8.com +cei1958.com +ceiaec.org +ceibs.edu +ceibsonline.com +ceic.com +ceicloud.com +ceiea.com +cekid.com +celebpalace.com +celiang.net +cellixsoft.com +cellmean.com +cells-net.com +cells-net.net +celwk.com +cement365.com +cementren.com +cemyun.com +cenbel.com +cenbohao.com +cencs.com +cengcloud.net +cenray-ic.com +censh.com +centainfo.com +centanet.com +centcc.com +cententcymbals.com +centercmslinks.com +centerm.com +centong.com +centos.bz +centoscn.vip +centralsolomon.com +centricsoftwarechina.com +centrincloud.com +centrixlink.com +century21cn.com +cenvandns.com +cenwor.com +cenwoy.com +cenxilm.com +cenya.com +ceobiao.com +ceoeo.com +ceoim.com +ceook.com +ceotx.com +ceowan.com +ceowww.com +ceoxq.com +cepin.com +ceping.com +ceping365.com +cepmh.com +ceppedu.com +ceprei.com +ceprei.org +cer.net +cerambath.org +ceramicschina.com +cere.cc +cerestools.com +cernet.com +cernet.net +cernet2.net +cersp.com +ces-transaction.com +ceseasons.com +cesfutures.com +ceshanmi.com +ceshi.com +ceshi112.com +ceshigo.com +ceshigu.com +ceshiren.com +cespc.com +cet-46.com +cetc33.com +cetc52.com +cetccloud.com +cetccloud.store +cetcio.com +cetcmotor.com +cetcssi.com +cetgps.com +cethik.com +ceunion.com +ceve-market.org +cevsn.com +cf-china.info +cf-ns.com +cf-ns.net +cf-ns.site +cf-ns.tech +cf.com +cf69.com +cf9q4i.xyz +cfachina.org +cfbond.com +cfc365.com +cfca-c.org +cfcglx.com +cfcpn.com +cfcyb.com +cfd-china.com +cfd163.com +cfda.pub +cfdp.org +cfdtlee.com +cfej.net +cfeks.com +cfgjwl.com +cfhi.com +cfhot.com +cfhpc.org +cfido.com +cfiec.net +cfiecdns.net +cfimg.com +cflm.com +cfm119.com +cfmcc.com +cfmmc.com +cfmoto.com +cfogc.com +cfpsf.com +cfsino.com +cftea.com +cftest7.com +cftest8.com +cfucn.com +cfund108.com +cfwaf.com +cfxydefsyy.com +cfxyfsyy.com +cfxyjy.com +cfzq.com +cg-orz.com +cg-zwdb.com +cg.am +cg009.com +cg98.com +cgabc.xyz +cgadmob.com +cgahz.com +cgangs.com +cgartt.com +cgboo.com +cgcountry.com +cgdeuvip.com +cgdown.com +cgdream.org +cgebook.com +cgejournal.com +cger.com +cgiia.com +cgjoy.com +cgjoy.net +cgke.com +cglnn.com +cglw.com +cgmantou.com +cgmao.com +cgmcc.net +cgmodel.com +cgmol.com +cgnjy.com +cgnmc.com +cgnne.com +cgonet.com +cgown.com +cgpad.com +cgplayer.com +cgplusplus.com +cgptwd.com +cgris.net +cgsec.com +cgsfusion.com +cgsoft.net +cgtblog.com +cgtn.com +cgtsj.com +cgtsj.org +cgtz.com +cguardian.com +cguiw.com +cgvoo.com +cgwang.com +cgwenjian.com +cgwic.com +cgws.com +cgxia.com +cgxm.net +cgylke.com +cgylw.com +cgyou.com +cgyouxi.com +cgyu.com +cgzair.com +cgzy.net +cgzyw.com +ch-auto.com +ch-tools.com +ch-water.com +ch.com +ch028.net +ch12333.com +ch999.com +ch999img.com +cha-tm.com +cha001.com +cha127.com +cha138.com +chabeichong.com +chachaba.com +chachaqu.com +chacheliang.com +chacuo.net +chadianhua.net +chadianshang.com +chadianshang2.com +chadown.com +chaej.com +chafanhou.com +chafei.net +chahua.org +chahuo.com +chaic.com +chaichefang.com +chaicp.com +chaihezi.com +chaijing.com +chaim.in +chaima.com +chaimage.com +chain-store.net +chaincar.com +chaincatcher.com +chaindd.com +chainknow.com +chainnode.com +chainsdir.com +chainsql.net +chaishiguan.com +chaitin.com +chajiandaquan.com +chajie.com +chajn.org +chakahao.com +chakuaizhao.com +chalaili.com +chalangautozone.com +challenge-21c.com +chalwin.com +chamcfae.com +chamei.com +chamiji.com +champconsult.com +chance-ad.com +chandao.net +chandashi.com +changan.biz +changan120.net +changancap.com +changanfunds.com +changansuzuki.com +changantaihe.com +changba-ktv.com +changba.com +changbaapi.com +changbaapp.com +changbaimg.com +changbalive.com +changchun-ccpit.com +changchundaxuehs.com +changdunovel.com +changeol.com +changfon.com +changhe.tech +changhong-network.com +changhong.com +changhongdianzi.com +changhongit.com +changhuapower.com +changjiangdata.com +changjiangtimes.com +changjuyi.com +changker.com +changlipeixun.com +changliuliang.com +changning.net +changpingquzhongxiyijieheyiyuan.com +changpu3d.com +changqingshu.net +changsha-show.com +changshabdc.com +changshang.com +changshe.net +changshiban.com +changtong2800.com +changtounet.com +changtu.com +changwankeji.com +changxie.com +changxingyun.com +changyan.com +changyifan.com +changyin-lab.com +changyonggame.com +changyou.com +changyoyo.com +changyueba.com +changzhinews.com +chanjet.com +chanluntan.com +chanmama.com +channelbeyond.com +channeslcode.com +channingsun.bid +chanpay.com +chanpin100.com +chanpinban.com +chanpindashi.com +chansige.com +chanumber.com +chanway.net +chanwind.com +chanxuehezuo.com +chanyeren.com +chanzhi.org +chanzuimei.com +chao-fan.com +chaoart.com +chaofan.com +chaofanshuma.com +chaofenxiang.vip +chaohuishou.com +chaoji.com +chaojibiaoge.com +chaojifan.com +chaojifangyu.com +chaojihetong.com +chaojituzi.net +chaojixiaobaicai.club +chaojiying.com +chaojiyun.com +chaokaixin.net +chaolady.com +chaolean.com +chaolen.com +chaolongbus.com +chaomi.cc +chaonanrc.com +chaonei.com +chaonengjie.com +chaonenglu.com +chaoren.com +chaoshanren.com +chaoshen.cc +chaoshengboliuliangji.com +chaoskeh.com +chaosw.com +chaov.com +chaowanjoy.com +chaoxibiao.net +chaoxin.com +chaoxing.cc +chaoxing.com +chaoxingv.com +chaoyi996.com +chaoyindj.com +chaoyisy.com +chaoyuesd.com +chaoyuyun.com +chaozhiedu.com +chaozhoudaily.com +chaozhuo.net +chaozuo.com +chapangzhan.com +chapaofan.com +chaping.tv +chappell1811.com +chargerlab.com +chargerlink.com +charmingglobe.com +chartboost-china.com +chashebao.com +chatgpter.com +chatm.com +chatnos.com +chawenti.com +chawo.com +chaxinyu.net +chaxunfapiao.com +chayangge.com +chaye.com +chayeo.com +chayu.com +chayueshebao.com +chayuqing.com +chazhaokan.com +chazhengla.com +chazidian.com +chaziyu.com +chazuo.com +chazuo.net +chazuowang.com +chbcnet.com +chbtc.com +chcedo.com +chcnav.com +chcoin.com +chda.net +chdajob.com +chdelphin.com +chdtv.net +che.com +che0.com +che12.com +che127.com +che168.com +che300.com +che6che5.com +cheaa.com +cheapyou.com +cheari.com +chebaba.com +chebada.com +checar.mobi +checheboke.com +chechong.com +check.cc +checkip.pw +checkoo.com +checkpass.net +checkzeit.com +chediandian.com +cheduo.com +cheerfun.dev +cheerjoy.com +cheersee.com +cheersofa.com +cheerspublishing.com +cheerupmail.com +cheetahfun.com +chefafa.com +chefans.com +chefugao.com +cheguo.com +chehang168.com +chehejia.com +chehui.com +chekb.com +chekucafe.com +chelun.com +chem17.com +chem31.com +chem36.com +chem365.net +chem960.com +chem99.com +chemalink.net +chemao.com +chemayi.com +chembk.com +chemcp.com +chemcyber.com +chemdrug.com +chemicalbook.com +chemm.com +chemmade.com +chemnet.com +chemrc.com +chemsb.com +chemsrc.com +chemyq.com +chen-nuo.com +chenag.com +chenall.net +chenapp.com +chende.net +chenfan.info +cheng-sen.com +cheng.xin +chengadx.com +chengchuanren.com +chengdebank.com +chengdechina.com +chengdu-expat.com +chengdun.com +chengduworldcon.com +chengduzhouming.com +chengezhao.com +chengfeilong.com +chenggongguiji.com +chengguw.com +chengji1859.com +chengjing.com +chengkao365.com +chenglang.net +chenglangyun.com +chenglin.name +chengliwang.com +chenglou.net +chengpeiquan.com +chengrang.com +chengrengaokaobaoming.com +chengshidingxiang.com +chengshiluntan.com +chengshiw.com +chengshu.com +chengsmart.com +chengtu.com +chenguangblog.com +chengwei.com +chengxiangqian.com +chengxinyouxuan.com +chengxuan.com +chengyangyang.com +chengye-capital.com +chengyitex.com +chengyucd.com +chengyuw.com +chengyuwb.com +chengzhongmugu.ltd +chengzhongmugu.vip +chengzijianzhan.cc +chengzijianzhan.com +chengzivr.com +chengzz.com +chenhr.com +chenhui.org +chenii.com +chenjia.me +chenjie.info +chenjiehua.me +chenksoft.com +chenlb.com +chenlianfu.com +chenlinux.com +chenlinzuwu.com +chenmomo.com +chenpeng.info +chenplus.com +chenpot.com +chenruixuan.com +chenshipin.com +chensonglin.net +chensuyang.com +chenty.com +chenwenwl.com +chenxi-sh.com +chenxinghb.com +chenxinwood.com +chenxm.cc +chenxuehu.com +chenxuhou.com +chenxunyun.com +cheny.org +chenyea.com +chenyistyle.com +chenyongjun.vip +chenyou123.com +chenyuan588.com +chenyuanjian.com +chenyudong.com +chenyuemz.com +chenzao.com +chenzhicheng.com +chenzhilong.chat +chenzhongkj.com +chenzhongtech.com +cheonhyeong.com +cheoo.com +cheoz.com +chepin88.com +chepinnet.com +cherimm.com +cherymanuals.com +cheshi-img.com +cheshi.com +cheshi18.com +cheshouye.com +chesthospital.com +chesudi.com +chetuanwang.net +chetuobang.com +chetx.com +chetxia.com +chetxt.com +chevip.com +chewen.com +chexian9.com +chexiang.com +chexiaoliang.net +chexin.cc +chexinju.com +chexiu.com +chexun.com +chexun.net +cheyaoshi.com +cheyian.com +cheyipai.com +cheyishang.com +cheyisou.com +cheynewalk.com +cheyou123.com +cheyun.com +cheyuu.com +chez360.com +chezhanri.com +chezhibao.com +chezhubidu.com +chezhutech.com +chezhuzhinan.com +chezizhu.com +chfsmartad.com +chgcis.com +chgcw.com +chghouse.org +chgjedu.com +chgreenway.com +chhblog.com +chhua.com +chhzm.com +chi2ko.com +chi588.com +chiang.fun +chichou.me +chichuang.com +chidaolian.com +chidaoni.com +chidaoni.net +chidown.com +chidudata.com +chiefmore.com +chieftin.org +chigua2.com +chihaigames.com +chihe.so +chiheba.com +chiji-h5.com +chijianfeng.com +childjia.com +childlib.org +chilli.red +chillyroom.com +chilunyc.com +chiluyingxiao.com +chimaoyoupin.com +chimatong.com +chimelong.com +chimezi.com +china-10.com +china-3.com +china-315.com +china-ah.com +china-asahi.com +china-asm.com +china-audit.com +china-b.com +china-caa.org +china-cas.org +china-cba.net +china-cbn.com +china-cbs.com +china-ccie.com +china-ccw.com +china-cdt.com +china-ceco.com +china-ced.com +china-cfa.org +china-chair.com +china-channel.com +china-chuwei.com +china-cicc.org +china-clearing.com +china-cloud.com +china-co.com +china-coc.org +china-consulate.org +china-core.com +china-cpu.co +china-cpu.com +china-csdz.com +china-csm.org +china-d.com +china-designer.com +china-drm.net +china-dt.com +china-ef.com +china-eia.com +china-embassy.org +china-engine.net +china-entercom.com +china-enterprise.com +china-epa.com +china-erzhong.com +china-fire.com +china-fishery.com +china-flash.com +china-flower.com +china-g.com +china-galaxy-inv.com +china-gehang.com +china-genius.com +china-gold.com +china-goldcard.com +china-highway.com +china-holiday.com +china-hongfei.com +china-hrg.com +china-huaxue.com +china-huazhou.com +china-hzd.com +china-invests.net +china-isotope.com +china-jm.org +china-kaihua.com +china-kaoshi.com +china-key.com +china-kids-expo.com +china-lawoffice.com +china-led.net +china-lushan.com +china-lzmj.com +china-m2m.com +china-moutai.com +china-nengyuan.com +china-nlp.com +china-obgyn.net +china-packcon.com +china-pcba.com +china-pharmacy.com +china-pops.net +china-pub.com +china-qiao.com +china-re.net +china-reform.org +china-ric.com +china-riscv.com +china-rty.com +china-russia.org +china-see.com +china-seeq.com +china-share.com +china-shimo.com +china-show.net +china-shufajia.com +china-sites.com +china-slate.com +china-sorsa.org +china-spacenews.com +china-sss.com +china-tower.com +china-toy-edu.org +china-toy-expo.com +china-up.com +china-vcom.com +china-vision.org +china-vo.org +china-wanlin.com +china-warping.com +china-waste.com +china-wss.com +china-zbycg.com +china-zhengwei.com +china-zhongda.net +china-zikao.com +china.com +zzsjxt.com +china001.com +china12365.com +china17.net +china1baogao.com +china1f.com +china2000.org +china35.com +china356.com +china3gpp.com +china4a.org +china50plus.com +china5e.com +china60.com +china618.com +china6688.com +china724.com +china777.org +china95.net +china95.xyz +china9y.com +chinaacc.com +chinaadec.com +chinaaet.com +chinaagrisci.com +chinaagv.com +chinaairer.com +chinaamc.com +chinaanonymous.com +chinaartificialstone.com +chinaasc.org +chinaaseanenv.org +chinaaseantrade.com +chinaasic.com +chinaautosupplier.com +chinaaviationdaily.com +chinab4c.com +chinabaike.com +chinabaiker.com +chinabaogao.com +chinabaokan.com +chinabaoke.net +chinabbtravel.com +chinabda.org +chinabdh.com +chinabdt.com +chinabeer.net +chinabenson.com +chinabeston.com +chinabgao.com +chinabidding.com +chinabiddingzb.com +chinabigdata.com +chinabike.net +chinabimdata.org +chinabmi.com +chinabn.org +chinabookinternational.org +chinabooktrading.com +chinabreed.com +chinabug.net +chinabus.info +chinabuses.com +chinabym.com +chinabyte.com +chinabzp.com +chinac.com +chinac3.com +chinacace.org +zzsgjj.com +chinacache.com +chinacache.net +chinacaj.net +chinacamel.com +chinacampus.org +chinacarbide.com +chinacasa.org +chinaccm.com +chinaccnet.com +chinaccnet.net +chinaccsi.com +chinacct.org +chinacdc.com +chinaceot.com +chinaceotv.com +chinacfi.net +chinacfo.net +chinacft.org +chinachemnet.com +chinachilun.org +chinachugui.com +chinacid.org +chinacil.com +chinacir.com +chinacity.net +chinacitywater.org +chinacleanexpo.com +chinacma.org +chinacmo.com +chinacoal.com +chinacomix.com +chinaconch.com +chinaconsulatesf.org +chinaconveyor.com +chinacosco.com +chinacourt.org +chinacpda.com +chinacpda.org +chinacpx.com +chinacqic.org +chinacqsb.com +chinacrane.net +chinacreator.com +chinacrumpler.com +chinacses.org +chinacsf.com +chinactv.com +chinaculture.org +chinacxjs.org +chinadafen.com +chinadailyglobal.com +chinadance.com +chinadart.com +chinadatatrading.com +chinaday.com +chinadazhaxie.com +chinadds.net +chinadegi.com +chinadengshi.com +chinadentalshow.com +chinadep.com +chinadforce.com +chinadigit.org +chinadmoz.org +chinadns.org +chinadongchu.com +chinadonghai.com +chinadrtv.com +chinadsl.net +chinadyt.com +chinadz.com +chinadzyl.com +chinae.net +chinaeastlaw.com +chinaecnet.com +chinaeda.org +chinaedu.com +chinaedu.net +chinaedunet.com +chinaedunewsw.com +chinaefu.net +chinaega.com +chinaehs.net +chinaeinet.com +chinaeinv.com +chinaembassy.at +chinaemed.com +chinaequity.net +chinaesm.com +chinaexam.org +chinaexpo365.com +chinaexpressair.com +chinafarad.com +chinaffmpeg.com +chinafiber.com +chinafic.org +chinafilm.com +chinafilms.net +chinafinancenet.com +chinafinanceonline.com +chinafishtv.com +chinafix.com +chinaflashmarket.com +chinaflier.com +chinafoodj.com +chinaforklift.com +chinafpd.net +chinafph.com +chinafpma.org +chinaftat.org +chinafudaoban.com +chinagames.net +chinagayles.com +chinagb.net +chinagb.org +chinagba.com +chinagcp.org +chinagdg.com +chinagiftsfair.com +chinagoldcoin.net +chinagoldgroup.com +chinagongcheng.com +chinagov.pw +chinagp.net +chinagps.cc +chinagrid.net +chinagrowthcapital.com +chinagungho.org +chinaguyao.com +chinagwy.org +chinagwyw.org +chinagzn.com +chinagznw.com +chinahacker.com +chinaham.com +chinahao.com +chinaharp.com +chinahazelnut.com +chinahightech.com +chinahighto.com +chinahighway.com +chinahiyou.com +chinahkidc.net +chinahky.com +chinahnjs.com +chinahorse.org +chinahost.org +chinahotel.com +chinahpa.org +chinahqjjw.com +chinahr.com +chinahrd.net +chinahrgy.com +chinahrt.com +chinahte.com +chinahtz.com +chinahuben.com +chinahumanrights.org +chinahvacr.com +chinahw.net +chinahydro.com +chinahyyj.com +chinahzkj.com +chinaidaa.org +chinaidcnet.com +chinaidcnet.net +chinaidns.com +chinaido.com +chinaielts.org +chinaiern.com +chinaiia.com +chinainout.com +chinainsbrokers.com +chinaiol.com +chinaios.com +chinaipmagazine.com +chinaiprlaw.com +chinairn.com +chinairr.org +chinaitcapital.com +chinaitlab.com +chinaitpower.com +chinajan.com +chinajcz.com +chinajeweler.com +chinajjz.com +chinajnhb.com +chinajoy.net +chinajs120.com +chinajsxx.com +chinajungong.com +chinajuva.com +chinajyxdh.com +chinajzqc.com +chinakaoyan.com +chinakaratedo.org +chinakidville.com +chinakingland.com +chinakingo.com +chinakongzi.org +chinaksi.com +chinakyzl.com +chinalabexpo.com +chinalabs.com +chinalancoo.com +chinalandpress.com +chinalao.com +chinalawbook.com +chinalawedu.com +chinalawinfo.com +chinalawyeryn.com +chinaleather.org +chinaledger.com +chinaleeper.com +chinalibs.net +chinalicensing.org +chinalicensingexpo.com +chinalifang.com +chinalims.net +chinalincoln.com +chinalink-sh.net +chinalink.tv +chinalions.com +chinalive.com +chinaliyou.com +chinalm.org +chinalowcarb.com +chinalsjt.com +chinalubricant.com +chinalure.com +chinalushan.com +chinaluxus.com +chinalxnet.com +chinamae.com +chinamags.org +chinamani.com +chinamap.com +chinamaven.com +chinambn.com +chinamca.com +chinamcache.com +chinamcloud.com +chinameasure.com +chinameat.org +chinamendu.com +chinamenwang.com +chinamerger.com +chinametro.net +chinameyer.com +chinamfi.net +chinamining.com +chinamishu.net +chinamission.be +chinamlmcc.com +chinamobile.com +chinamobileltd.com +chinamobilesz.com +chinamost.net +chinamsa.org +chinamsr.com +chinamusical.net +chinamusicbusinessnews.com +chinamworld.com +chinamypp.com +chinanbb.com +chinanet-sh.com +chinanet.cc +chinanet88.com +chinanetcenter.com +chinanetidc.com +chinanetsun-dns.com +chinanetsun.com +chinaneweast.com +chinanewkey.com +chinanews.com +chinaningbo.com +chinanmi.com +chinanums.com +chinaobp.com +chinaoct.com +chinaonward.net +chinaopc.org +chinaopen.com +chinaopticsvalley.com +chinaore.com +chinaott.net +chinapastel.com +chinapay.com +chinape168.com +chinapet.com +chinapet.net +chinapharm.net +chinapipe.net +chinaplat.com +chinapm.org +chinapnr.com +chinaports.com +chinapost-life.com +chinapowerbi.com +chinapp.com +chinapp.net +chinaprint.org +chinapsy.com +chinapubmed.net +chinaqi.net +chinaqingtian.com +chinaqipeihui.com +chinaqking.com +chinaql.org +chinaqoe.net +chinaquest.com +chinaquickpcb.com +chinaqw.com +chinarayying.com +chinardr.com +chinardr.net +chinaredstar.com +chinaren.com +chinarootdesign.com +chinartlaw.com +chinarun.com +chinarzfh.com +chinasaat.com +chinasafety.net +chinasanc.com +chinasatcom.com +chinasb.org +chinasciencejournal.com +chinascope.com +chinascopefinancial.com +chinascrum.org +chinascsoft.com +chinasexq.com +chinashadt.com +chinashangpinku.com +chinashj.com +chinashop.cc +chinashpp.com +chinasi.com +chinasie.com +chinasilk.com +chinasiwei.com +chinasmartpay.com +chinasnow.net +chinasnw.com +chinaso.com +chinasofti.com +chinasoftinc.com +chinasoftosg.com +chinasosuo.cc +chinasou.com +chinasoushang.com +chinaspringtown.com +chinasrif.com +chinassl.com +chinassl.net +chinasspp.com +chinastoneforest.com +chinastor.com +chinasufa.com +chinasupercloud.com +chinasuperwool.com +chinaswim.com +chinasws.com +chinasydw.org +chinatai.com +chinatairun.com +chinatalent.org +chinatat.com +chinatechinsights.com +chinatelecom-ec.com +chinatelecom-h.com +zzsggzy.com +chinatelecomglobal.com +chinatelecomiot.com +chinatelling.com +chinatet.com +chinatex.com +chinatex.net +chinatex.org +chinatibetnews.com +chinaticket.com +chinatikfans.com +chinatimber.org +chinatimes.cc +chinatiner.com +chinatmic.com +chinatopbrands.net +chinatourguide.com +chinatpm.com +chinatpm.net +chinatrace.org +chinatranslation.net +chinatravel.net +chinatraveldepot.com +chinatruck.org +chinatrucks.com +chinatsi.com +chinatsp.com +chinattl.com +chinatungsten.com +chinatupai.com +chinatv-net.com +chinatvc.com +chinatyco.com +chinaufo.com +chinaui.com +chinauidesign.com +chinauma.com +chinaums.com +chinaun.net +chinaunicom-a.com +chinaunicom.com +zzsf.com +chinaunicomglobal.com +chinaunionpay.com +chinaunionpay.net +chinauniversalasset.com +chinaunix.com +chinaunix.net +chinaunix.org +chinauo.com +chinauos.com +chinauos.net +chinaups.com +chinaus-maker.org +chinaus.com +chinavalin.com +chinavalue.net +chinavcpe.com +chinavfx.net +chinavid.com +chinavideo.org +chinavipsoft.com +chinavisual.com +chinavoa.com +chinavr.net +chinawanda.com +chinawatchnet.com +chinawbk.com +chinawch.com +chinawebber.com +chinawebmap.com +chinaweiyu.com +chinaweizheng.com +chinawenben.com +chinawerewolf.com +chinawie.com +chinawiserv.com +chinawitmedia.com +chinawoodnet.com +chinawr.net +chinawudang.com +chinawutong.com +chinawutong.net +chinawuyuan.com +chinaxiaokang.com +chinaxinge.com +chinaxinport.com +chinaxinye.com +chinaxpp.com +chinaxq.com +chinaxqf.com +chinaxueqian.com +chinaxwcb.com +chinaxy.com +chinaxzrc.com +chinayigou.com +chinayigui.com +chinayk.com +chinaymc.com +chinayuanwang.com +chinayyjx.com +chinayyo.com +chinayzyh.com +chinaz.com +chinaz.net +chinazichan.com +chinazikao.com +chinazjph.com +chinazjy.com +chinaznj.com +chinazns.com +chinaznyj.com +chinazov.com +chinazwds.com +chinazwds.org +chinazxt.com +chinca.org +chindiaforum.com +chine-info.com +chinee.com +chinese-no1.com +chineseacc.com +chineseafs.org +chineseall.com +chinesecio.com +chineseconsulate.org +chineseembassy.org +chinesehongker.com +chinesejk.com +chinesejy.com +chineselaw.com +chinesemooc.org +chineserose.com +chinesetown.net +chingkun.com +chingli.com +chingmi.com +chinjpd.com +chinlingo.com +chint.com +chint.net +chipcoo.com +chipcreation.com +chipdance.com +chiphell.com +chiphometek.com +chiplayout.net +chipmanufacturing.org +chiponeic.com +chipown.com +chipsbank.com +chipsec.com +chipsgo.com +chipsir.com +chipup.com +chipwing.com +chiq-cloud.com +chiralquest.com +chisai.tech +chisc.net +chiselchina.com +chiser.cc +chishine3d.com +chishoes.com +chitanda.me +chitu.com +chitus.com +chivast.com +chivox.com +chivoxapp.com +chiwayedu.com +chixm.com +chixuyun.com +chiyekeji.com +chiyufeng.com +chizao.com +chizhouchacha.com +chizhoujob.com +chizhouren.com +chiznews.com +chjso.com +chloe99.com +chmecc.org +chmed.net +chmgames.com +chmia.org +chn112.com +chn168.com +chnart.com +chnau99999.com +chnbook.org +chnci.com +chncia.org +chncomic.com +chncopper.com +chncpa.org +chncwds.com +chndesign.com +chndtb.com +chnews.net +chnfi.com +chnfund.com +chngalaxy.com +chngc.net +chnhace.com +chnjet.com +chnlanker.com +chnlib.com +chnmodel.com +chnmus.net +chnmusic.org +chnp2p.com +chnpac.com +chnpec.com +chnppmuseum.com +chnpush.com +chnroad.com +chnsuv.com +chntel.com +chocei.com +chofn.com +chofn.net +chofn.org +chofnipr.com +choiceform.com +chong-wu.net +chong4.net +chongchi.com +chongchuang.biz +chongdeedu.com +chongdiantou.com +chongfabianli.com +chonghi.com +chongmingzhuce.com +chongnengjihua.com +chongqingdongjin.com +chongqingyoupin.com +chongso.com +chongsoft.com +chongwu.cc +chongwujiaoyi.com +chongwuxiang.com +chongya.com +chongya.vip +chongyacdn.com +chongyejia.com +chongyitang.org +chonka.com +choqi.com +chotee.com +chouchou.club +chouchoujiang.com +choujue.net +choukang.com +choupangxia.com +chouqu.com +chouti.cc +chouti.com +chplayer.com +chqgwy.org +chrent.com +chrice.net +chrieschina.com +chris-tina.com +christophero.xyz +chrmn.com +chromecj.com +chromedownloads.net +chromefor.com +chromeliulanqi.com +chronusartcenter.org +chroyoo.com +chrstatic.com +chshcms.com +chshouyu.com +chspu.com +chsqh.com +chste.com +chtf.com +chtfund.com +chtgc.com +chtpe.com +chtse.com +chtwm.com +chuaiguo.com +chuairan.com +chuaizhe.com +chuanboyi.com +chuandaizc.com +chuandong.com +chuang-fan.com +chuang.pro +chuangbie.com +chuangcache.com +chuangcdn.com +chuangchangnet.com +chuangchenwangluo.com +chuangcifang.com +chuangduyouyue.com +chuangen.com +chuangfeixin.com +chuangjiangx.com +chuangke.tv +chuangkem.com +chuangkeup.com +chuangkit.com +chuanglian.net +chuanglianhui.com +chuanglinggame.com +chuangluo.com +chuangread.com +chuangseo.com +chuangshifurui.com +chuangshitech.com +chuangtie.com +chuangtoo.com +chuangx.org +chuangxin.com +chuangxinapi.com +chuangxinoa.com +chuangye.com +chuangyebaba.com +chuangyejia.com +chuangyejmw.com +chuangyepu.com +chuangyijisu.com +chuangyimao.com +chuangyouqi.com +chuangyunet.com +chuangzaoshi.com +chuanjiaoban.com +chuanke.com +chuanmeixing.com +chuanmeizy.com +chuannan.net +chuanqi.com +chuanshanqundao.com +chuansong.me +chuansongme.com +chuantec.com +chuanxincao.net +chuanye.com +chuanyifu.com +chuanying365.com +chuanying520.com +chuanyinpx.com +chuanyuapp.com +chuapp.com +chuban.cc +chubaodai.com +chubh.com +chucaotang.com +chucaotang.net +chuchujie.com +chudeer.com +chudian365.com +chufaba.me +chufw.com +chuge8.com +chugou360.com +chuguo78.com +chuguofeng.com +chuguohao.com +chuhoi.com +chuimg.com +chuinet.com +chuixue.com +chuiyue.com +chuji8.com +chuju750.com +chujuan.net +chukong-inc.com +chukonggame.com +chukou1.com +chule.cc +chumacdn.com +chumanapp.com +chumenwenwen.com +chunbo.com +chunboimg.com +chuncui.net +chundi.com +chundi.org +chunengauto.com +chunfengapp.com +chunge188.com +chungeseo.com +chungkwong.cc +chunhingplasticbags.com +chunhui12.com +chunjingtech.com +chunmi.com +chunmiaosh.com +chunquff.com +chunshuitang.com +chunshuizhijia.com +chunsuns.com +chunxuanmao.com +chunyiscdk.com +chunyu.me +chunyu.mobi +chunyuqiufeng.com +chunyuyisheng.com +chuquan.me +chureng.com +churenjixie.com +chusan.com +chuseo.com +chushan.com +chushang027.com +chushibiao5.com +chushihome.com +chushiji.com +chushou.tv +chushu123.com +chutianlaser.com +chutianzhinu.com +chuxindata.com +chuxingyouhui.com +chuxinhd.com +chuxinhudong.com +chuxinm.com +chuxueyun.com +chuying.org +chuyouke.com +chuyu.me +chuzhaobiao.com +chvv.com +chwlsq.com +chxent.com +chxyq.com +chyfh.com +chysoft.net +chyw.pub +chyxx.com +chzhkeji.com +chzhw.com +chzybj.com +ci123.com +ci800.com +ciallo.cc +ciaoca.com +ciatcm.org +cibaike.com +cibawl.com +cibfintech.com +cibn.cc +cibn.com +cibntv.net +ciboedu.org +cibonet.com +cibresearch.com +cibuser.com +cicaf.com +cicc.com +ciccfund.com +cicconline.com +ciccphoto.com +ciccwargame.com +ciccwm.com +ciceme.com +ciciec.com +cicmag.com +cicphoto.com +cict.com +cidgroup.com +cidi.ai +cidiancn.com +cidianwang.com +cidschina.com +ciduoduo123.com +ciec-expo.com +ciect.com +cieet.com +cietac-hb.org +cietac-sc.org +cietac.org +cifalshanghai.org +cifco.net +cifm.com +cifnews.com +cifoo.com +ciftis.org +cigadesign.com +cigarambassador.com +cignacmb-ipmi.com +cignacmb.com +cignacmbamc.com +cihai123.com +cihaidaquan.com +cihexpo.com +ciicgat.com +ciidoo.com +ciie.org +ciif-expo.com +ciiip.com +ciimg.com +ciiplat.com +ciku5.com +cili001.com +ciliba.buzz +ciliba.life +ciliba5.xyz +cilin.org +cilishiye.com +cilogo.com +cim2025.net +cimamotor.com +cimc.com +cimen.club +cimictiles.com +ciming-bj.com +ciming-shop.com +ciming.com +cimingaoya.com +cimingsy.com +cimingyc.com +cimsic.com +cimtshow.com +cinasoft.com +cindasc.com +cindasoft.com +cinehello.com +cingta.com +ciniao.me +cinsee.com +cinyi.com +cio114.com +cio360.net +cioage.com +ciotimes.com +ciotour.com +ciou.com +ciouqt.com +cip.cc +cipgtrans.com +ciplawyer.com +cippe.net +ciprun.com +cipscom.com +cipunited.com +cirmall.com +cirno9.net +cirs-reach.com +cirunzhang.com +cismef.com +cisskwt.com +citahub.com +citexpo.org +citiais.com +0033.com +citic-cid.com +citic-wealth.com +citic.com +citicbank.com +citicbankuser.com +citiccapital.com +citiccard.com +citicguoanbn.com +citiciam.com +citicifh.com +citicnetworks.com +citics.com +zzrseng.com +citicsf.com +citicsinfo.com +citicsteel.com +citidigital.com +citisa.org +citiz.net +citreport.com +cits-sz.net +cits0871.com +citscq.com +citscsc.com +citsgbt.com +citshq.com +citssh.com +citszz.com +citure.net +citvc.com +city12580.com +city8.com +city84.com +citygf.com +cityhui.com +citylinker.com +citysbs.com +citysz.net +citytogo.com +cityup.org +citywo.com +citywy.com +cityy.com +civilness.com +civiw.com +ciweek.com +ciweekly.com +ciwei.net +ciweimao.com +ciweishixi.com +ciweiyuedui.com +ciwong.com +ciwork.net +cixibank.com +cixiedu.net +cixtech.com +ciyew.com +ciyocon.com +ciyuan.men +ciyuanji.com +cizhixin.com +cizip.com +cj-elec.com +cjavapy.com +cjdcw.com +cjdropshipping.com +cjdsp.com +cjdx1.com +cjftb.com +cjhb168.com +cjhospital.com +cjhxfund.com +cjienc.com +cjiit.com +cjjd04.com +cjjd05.com +cjjd06.com +cjjd07.com +cjjd08.com +cjjd15.com +cjjd18.com +cjjhb.com +cjjjs.com +cjjnff.com +cjk3d.net +cjkhd.com +cjkj.ink +cjkypo.com +cjkz.com +cjlap.com +cjm.so +cjmakeding.com +cjmit.com +cjmx.com +cjn.com +cjnis.com +cjol.com +cjolimg.com +cjrcsc.com +cjs-lwh.love +cjsc.com +cjsgegs.com +cjting.me +cjveg.com +cjxz.com +cjyun.club +cjyun.org +cjyyw.com +cjzkw.com +cjzzc.com +ck100.com +ck180.net +ck586.com +ckair.com +ckd.cc +ckd.so +ckdsql.com +ckdzb.com +ckefu.com +ckernel.org +ckeyedu.com +ckimg.com +ckjr001.com +ckmov.com +ckplayer.com +cksd888.com +cksic.com +ckuai.com +ckxsw.com +ckxx.net +ckzhijiaedu.com +cl-acg.com +cl-clw.com +cl-hs.com +cl-kongtiao.com +cl0438.com +cl2009.com +clady.cc +claiks.com +clanzx.net +claritywallpaper.com +class01.com +classinpaas.com +classmateer.com +classpassincn.com +clayidols.com +clb6.net +clboss.com +clbu.club +clbug.com +clcindex.com +clclibrary.com +clcmw.com +clcyd.com +cldbiz.com +clean-cn.com +clear-sz.com +clear888.com +clearaki.com +clearcrane.com +clearsky360.com +clewm.net +clfile.com +cli.im +click369.com +clicksdiy.com +clicksun.net +clickwifi.net +client51.com +cliffordtrading.com +cliim.com +cliim.net +clinicmed.net +cliport.com +clled.com +clloz.com +clngaa.com +cloopen.com +cloopen.net +cloopm.com +closertb.site +clotfun.online +clotfun.xyz +clotheshr.com +clothjob.com +clothr.com +clouclip.com +cloud-beijing.com +cloud-cube.net +cloud-dns.net +cloud-dns.vip +cloud-frame.com +cloud-hebi.com +cloud-industry-delivery.site +cloud-links.net +zzrbl.com +cloud-ningbo.com +cloud-ordos.com +cloud-rtc.com +cloud-scdn.com +cloud-shenzhen.com +cloud-shiyan.com +cloud-sun.com +cloud-wuhan.com +cloud-xian.com +cloud-xm.com +cloud-zhaoqing.com +cloud-zhongwei.com +cloud301.net +cloud56.net +cloud887325.com +cloudajs.org +cloudangelfunds.com +cloudanqing.com +cloudbaoshan.com +cloudbase.net +cloudbeibei.com +cloudbility.com +cloudbinzhou.com +cloudcachetci.com +cloudcc.com +cloudcdn.net +cloudcdns.com +cloudcdns.net +cloudchangde.com +cloudchangsha.com +cloudchangzhou.com +cloudchaozhou.com +cloudchengde.com +cloudchengdu.com +cloudchuzhou.com +cloudcross.com +cloudcsp.com +cloudczs.com +clouddalian.com +clouddatong.com +clouddcs.com +clouddiffuse.xyz +clouddn.com +clouddns.vip +clouddongying.com +clouddream.net +cloudflare-cn.com +cloudflarecn.net +cloudflareinsights-cn.com +cloudflareprod.com +cloudflarestaging.com +cloudflarestoragegw.com +cloudfoshan.com +cloudfront-cn.net +cloudfuqing.com +cloudganzhou.com +cloudgap.net +cloudgfw.com +cloudgfw.net +cloudglb.com +cloudgoing.com +cloudguangzhou.com +cloudguarding.com +cloudhaidong.com +cloudhefei.com +cloudhengshui.com +cloudhosts.xyz +cloudhua.com +cloudhuaihua.com +cloudhuizhou.com +cloudhvacr.com +cloudidaas.com +cloudinnov.com +cloudinward.com +cloudiplc.com +cloudjinan.com +cloudjinchang.com +cloudjingzhou.com +cloudjining.com +cloudjiujiang.com +cloudkirin.com +cloudkunming.com +cloudleft.com +cloudleshan.com +cloudlijiang.com +cloudlishui.com +cloudluohe.com +cloudluoyang.com +cloudmeishan.com +cloudmes.io +cloudminds.com +cloudmob.vip +cloudmob.xyz +cloudnanan.com +cloudnanjing.com +cloudnanning.com +cloudnantong.com +cloudnapps.com +cloudp.cc +cloudpense.com +cloudpnr.com +cloudquanzhou.com +cloudroom.com +cloudsanya.com +cloudsation.com +cloudsea.org +cloudsee.com +cloudseeplus.com +cloudseetech.com +cloudserver01.com +cloudsgis.com +cloudshanghai.com +cloudshaoyang.com +cloudshenfuxingqu.com +cloudsiping.com +cloudsite.vip +cloudsohu.net +cloudsuqian.com +cloudtangshan.com +cloudtianjin.com +cloudtomicro.com +cloudtongchuan.com +cloudtongliang.com +cloudtopo.com +cloudtrans.com +cloudtui.com +cloudvast.com +cloudvdn.com +cloudvip1.com +cloudvogue.com +cloudvse.com +cloudweinan.com +cloudwise.ai +cloudwise.com +cloudxiangtan.com +cloudxianyou.com +cloudxining.com +cloudxns.com +cloudyanan.com +cloudyancheng.com +cloudyantai.com +cloudyee.com +cloudyinchuan.com +cloudyo.net +cloudyouku.com +cloudyueyang.com +cloudyuncheng.com +cloudyuxi.com +cloudzhongshan.com +cloudzhuhai.com +clpga.org +clroi.com +clsa.com +clssn.com +clto.cc +cltt.org +clubcarev.com +zzqzz.com +clx360.com +clyric.com +clz.me +cm-analysis.com +cm-iov.com +cm-worklink.com +cm233.com +cm3721.com +cmacredit.org +cmaif.com +cmanuf.com +cmb-leasing.com +cmbajia.com +cmbbao.com +cmbchina.biz +cmbchina.com +cmbchina.net +cmbchinawm.com +zzqxs.com +cmbimg.com +cmbs-soft.com +cmbuat.com +cmbwinglungbank.com +cmbyc.com +cmcc.in +cmcm.com +cmcmcdn.com +cmct22.com +cmd5.com +cmd5.la +cmd5.org +cmda.net +cmdrh.com +cmdschool.org +cmdw.vip +cmechina.net +cmeii.com +cmejob.com +cmenergyshipping.com +cmes.org +cmf.biz +cmf.ltd +cmfchina.com +cmfish.com +cmfspay.com +cmft.com +cmfu.com +cmgadx.com +cmgame.com +cmge.com +cmgos.com +cmgrasp.com +cmhello.com +cmia.info +cmicapm.com +cmidc.net +cming.com +cmjz.net +cmljs.org +cmmim.com +cmnxt.com +cmoct.com +cmodel.com +cmodes.com +cmol.com +cmpassport.com +cmpay.com +cmqxysg.com +cmread.com +cmri.cc +zzqklm.com +cms1924.org +cmsblogs.com +cmschina.com +cmscmc.org +cmseasy.cc +cmsfg.com +cmsforo.com +cmsjournal.net +cmskcrm.com +cmstop.com +cmt7.com +cmtdi.com +cmtech.net +cmtopdr.com +cmtrq.com +cmu1h.com +cmuliang.com +cmviking.com +cmvtc.com +cmwb.com +cmwin.com +cmxrcw.com +cmzd.com +cmzfqn.com +cmzi.com +cmzj.net +cmzyk.com +002lzj.com +cn-bowei.com +cn-c114.net +cn-ecotextile.com +cn-em.com +cn-fe.com +cn-food.net +cn-healthcare.com +cn-lcd.com +cn-msedge.net +cn-mw.com +cn-natural.com +cn-office.com +cn-psy.com +cn-railway.net +cn-roofexpert.com +cn-soft.com +cn-truck.com +cn-visa.com +cn-zhentai.com +zzqfte.com +zzpuke.com +zzpd8.com +cn.net +cn.vc +cn.vu +zzobokj.com +cn0-6.com +cn006.com +cn010w.com +cn0434.com +cn0556.com +cn0713.com +cn0851.com +cn0917.com +cn12365.org +cn163.net +cn168.com +cn18k.com +cn22.net +cn2che.com +cn314.com +cn357.com +cn360cn.com +cn365c.com +cn365d.com +cn365e.com +cn3wm.com +cn486.com +cn4e.com +cn51.com +cn5135.com +cn539.com +cn6szx.com +cn8fre.com +cn99.com +cn9f.com +cnaaa15.com +cnaaa6.com +cnaaa7.com +cnaaa9.com +cnacg.cc +cnad.com +cnaf.com +cnagcoin.com +cnaicpa.org +cnaidc.com +cnaifm.com +cnair.com +cnal.com +cname-cdn.com +cname123.net +cnamegslb.com +cnanzhi.com +cnaomeng.com +cnappsoft.xyz +cnautofinance.com +cnautonews.com +cnbabylon.com +cnball.net +cnbanbao.com +cnbaowen.net +cnbct.org +cnbetnew.com +cnbidding.com +cnbigcloud.com +cnbiocell.com +cnbis.com +cnbis.org +cnbizmedia.com +cnbjx.com +cnbksy.com +cnbkw.com +cnblogs.com +cnbluebox.com +cnboat.com +cnbooking.net +cnbooks.org +cnbp.net +cnbuses.com +cnbw114.com +cnbzol.com +cnbzs.com +cnc-gd.net +cnca.net +cncbinternational.com +zznah001.com +cnccac.com +cnccar.com +cnccchina.com +cncdn.com +cncelab.com +cncells.net +cnceo.com +cncgw.org +cnchainnet.com +cnchanran.com +cncheng.com +cnchezhan.com +cnchu.com +cncico.com +cncjmjg.com +cncloud.com +cncmrn.com +cncms.com +cncn.com +cncn.net +cncnbd.com +cncncloud.com +cncncn.com +cncnet.net +cncnki.com +cncolour.com +cncookernet.com +cncoolm.com +cncopter.com +cncotton.com +cncourt.org +cncqcloud.com +cncraftinfo.com +cncrk.com +cncrony.com +cncrypt.com +cncsj.net +cnction.com +cncwkj.com +cnczjy.com +cnd8.com +cndao.com +cndata.com +cndatacom.com +cndds.com +cndesign.com +cndfilm.com +cndhotels.com +cndi.com +cndids.com +cndingxi.com +cndns.com +cndns5.com +cndoornet.com +cndoors.com +cndsnet.com +cndss.net +cndtour.com +cndw.com +cndy.org +cndzq.com +cndzys.com +cnecc.com +cnedres.org +cneeex.com +cnelc.com +cnelecom.net +cnelite.org +cneln.net +cnemb.com +cnena.com +cnenergy.org +cneol-dns.net +cnep001.com +cnepaper.com +cnepaper.net +cnepub.com +cnerlang.com +cnesf.com +cnetea.net +cnetec.com +cnetsec.com +cnevi.com +cnexp.net +cnexps.com +cneyoo.com +cnezsoft.com +cnfanews.com +cnfantasia.com +cnfaxie.org +cnfczn.com +cnfdlt.com +cnfeat.com +cnfeelings.com +cnfeol.com +cnffi.com +cnfiberhome.com +cnfina.com +cnfirst.org +cnfish.com +cnfisher.com +cnfla.com +cnfmp.net +cnfol.com +cnfolimg.com +cnforever.com +cnforex.com +cnfpzz.com +cnfq.com +cnfqy.com +cnfrag.com +cnfruit.com +cnfs-cn.com +cnfuyin.org +cnfxj.org +cnfyyj.com +cnfzflw.com +cngal.org +cngaosu.com +cngb.org +cngba.com +cngbdl.com +cngin.com +cngnu.net +cngold.org +cngoldres.com +cngrain.com +cngreenfield.com +cngui.com +cngulu.com +cnh5.net +cnhacker.com +cnhalo.net +cnhan.com +cnhanxing.com +cnhaoshengyi.com +cnhbstock.com +cnhbtc.com +cnhd.com +cnhetianyu.com +cnhhl.com +cnhis.cc +cnhls.com +cnhlsxe.com +cnhm.net +cnhmsq.com +cnhnb.com +cnhongke.org +cnhonker.com +cnhowotruck.com +cnhsjz.com +cnhszx.com +cnhuadong.net +cnhuanya.com +cnhubei.com +cnhutong.com +cnhvacrnet.com +cnhwjt.com +cnhzz.com +cniao5.com +cnibx.com +cnicif.com +cnidea.net +zzmyt.com +cninfo.net +cninnovatel.com +cninternetdownloadmanager.com +cnipa-gd.com +cnipa-hb.com +cnipa-pesc.com +cnipa-sc.com +cnipa-tj.com +cnipai.com +cnipr.com +cnisp.org +cnit-research.com +cnitblog.com +cniteyes.com +cniti.com +cnitom.com +cnitpm.com +cnjccrusher.com +cnjcs.com +cnjingchu.com +cnjiwang.com +cnjj.com +cnjjl.com +cnjjwb.com +cnjlc.com +cnjnsb.com +cnjob.com +cnjoel.com +cnjournals.com +cnjournals.net +cnjournals.org +cnjpetr.org +cnjunzilan.com +cnjxol.com +cnjyky.com +cnjywl.com +cnjzb.com +cnjzjj.com +cnk8.com +cnkaile.com +cnkang.com +cnkefa.com +cnkeyboard.com +cnki.net +cnki.vip +cnkicheck.info +cnkicheck.org +cnkiki.net +cnkinect.com +cnkiorg.com +cnkis.net +cnkitop.com +cnkivip.net +cnkix.com +cnkizw.com +cnklog.com +cnknowledge.com +cnkok.com +cnkuai.com +cnky.net +cnlaw.net +cnledw.com +cnlianjie.com +cnlid.net +cnlight.com +cnlightnet.com +cnlinfo.net +cnlist.com +cnlist.org +cnlive.com +cnliveimg.com +cnllz.com +cnlso.com +cnmanhua.com +cnmattson.com +cnmcom.com +cnmdy.com +cnmeishu.com +cnmeiwei.com +cnmia.org +cnmill.com +cnmineqs.net +cnmmsc.org +cnmo.com +cnmobile.net +cnmods.net +cnmods.org +cnmooc.org +cnmsl.net +cnmsn.net +cnmstl.net +cnmtpt.com +cnnaihuo.com +cnnb.com +cnnbfdc.com +cnndns.com +cnnerv.com +cnnetsec.com +cnnfootballclub.com +cnnic.pub +cnnmol.com +cnnorip.org +cnnot.com +cnnpz.com +cnns.net +cnnuo.com +cnnvisa.com +cnobol.com +cnoic.com +cnoil.com +cnolnic.com +cnolnic.net +cnonline.org +cnookr.com +cnool.net +cnops.xyz +cnosr.com +cnoswiki.com +cnoutdoor.com +cnovirt.com +cnpaf.net +cnpatent.com +cnpc-hy.com +cnpenjing.com +cnpereading.com +cnpghouse.com +cnphar.net +cnpharm.com +cnphotos.net +cnpickups.com +cnpkm.com +cnplugins.com +cnpmjs.org +cnponer.com +cnpou.com +cnpowdernet.com +cnpowdertech.com +cnpps.org +cnprofit.com +cnpubg.com +cnpusi.com +cnpv.com +cnpx.net +cnpython.com +cnpythoner.com +cnqc.com +cnqd.net +cnqiang.com +cnqichun.com +cnqjc.com +cnqjw.com +cnqr.org +cnquanjing.com +cnradio.com +cnraksmart.com +cnrancher.com +cnratchet.com +cnrceo.com +cnrcloudfm.com +cnrdm.com +cnrdn.com +cnreagent.com +cnree.com +cnrencai.com +cnrepair.com +cnrepark.com +cnrexue.com +cnrmall.com +cnrmobile.com +cnrouter.com +cnrunda.com +cnrv.io +cns.hk +cnsaes.org +cnsal.com +cnsat.net +cnsav.com +cnsb.org +cnsc8.com +cnsce.net +cnscee.com +cnsciedu.com +cnscore.com +cnsdb.com +cnsdjxw.com +cnseay.com +cnseeq.com +cnsesan.com +cnsfk.com +cnshipnet.com +cnsikao.com +cnsilkworm.com +cnsimin.com +cnskyit.com +cnsnpj.com +cnsnvc.com +cnso.org +cnsoc.org +cnsoe.com +cnsoftbei.com +cnsoftnews.com +cnsolomo.com +cnspeed.com +cnspeedtest.com +cnspeedtest.net +cnsphoto.com +cnstock.com +cnsun.cc +cnsun.net +cnsuning.com +cnsuv.com +cnswy.net +cnsynews.com +cnsyyx.com +cntagore.com +cntaiping.com +cntally.com +cntan.net +cntapp.com +cntexjob.com +cntheory.com +cnthinkers.com +cntiaoliao.com +cntofu.com +cntopgear.com +cntoplead.com +cntplus.com +cntrades.com +cntranslators.com +cntronics.com +cntslawfirm.com +cntuw.com +cntv.com +cntwg.com +cnuninet.net +cnur.com +cnutcon.com +cnuuu.com +cnv168.com +cnvcs.com +cnvf.com +cnvps.com +cnwa.com +cnwaking.com +cnwaternews.com +cnwb.net +cnwdsy.com +cnwear.com +cnwebe.com +cnweblog.com +cnwebshow.com +cnweisou.com +cnwen.net +cnwenshi.net +cnwest.com +cnwhc.com +cnwhotel.com +cnwindows.com +cnwinenews.com +cnwnews.com +cnwtn.com +cnwxw.com +cnxad.com +cnxclm.com +cnxct.com +cnxds.com +cnxhacker.com +cnxiangyan.com +cnxiantao.com +cnxianzai.com +cnxiaoyuan.com +cnxibu.com +cnxile.com +cnxingoplastics.com +cnxishui.net +cnxk.com +cnxklm.com +cnxnmy.com +cnxuntu.com +cnxzm.com +cnyanglao.com +cnyicheng.com +cnyings.com +cnyipu.com +cnyouhao.com +cnys.com +cnyu.com +cnyuming.com +cnyw.net +cnywinfo.com +cnzazhi.net +cnzhanting.com +cnzhanzhang.com +cnzhengmu.com +cnzhibo.com +cnzhiyuanhui.com +cnzjj.com +cnzjol.com +cnzlapp.com +cnzsqh.com +cnzsqh.hk +cnzsyz.com +cnzweal.com +cnzxsoft.com +cnzyao.com +cnzz.com +cnzz.net +cnzz07.com +cnzznn.com +cnzznz.com +co-effort.com +co-farming.com +co-inclusion.org +co-mall.net +co188.com +co188cdn.com +coahr.net +coalcn.com +coantec.com +coaoo.com +coatingol.com +cobenet.com +cocas.cc +coccccc.cc +cocimg.com +coco413.com +cocoachina.com +cocodiy.com +coconuet.com +cocophp.com +cocoren.com +cocos.com +cocos.org +cocos2d-x.org +cocos2d.org +cocos2dev.com +cocos2dx.net +cocostudio.org +cocounion.com +cocss.com +codante.org +code-by.org +code.sh +code4apk.com +code666.com +code668.com +code84.com +codeaha.com +codebaoku.com +codebe.org +codebus.net +codebye.com +codechina.net +codecomeon.com +codedefault.com +codedream.xin +codeforge.com +codehy.com +codejie.net +codekissyoung.com +codekk.com +codelover.link +codemany.com +codemart.com +codemm.net +codepku.com +codeplayer.vip +codeplaygames.com +codeprj.com +coder.work +coder100.com +coder4.com +coder55.com +coderbee.net +coderclock.com +codercto.com +coderdock.com +coderhuo.tech +coderli.com +coderplanets.com +coderprepares.com +codersec.net +codersrc.com +coderxing.com +coderyuan.com +coderzh.com +codes51.com +codesoft.hk +codesoftchina.com +codesoso.com +codess.cc +codetc.com +codeweblog.com +codewenda.com +codewoody.com +codezyw.com +coding-newsletter.com +coding-pages.com +coding.me +coding.net +codingapp.com +codingbelief.com +codingdao.com +codingke.com +codinglabs.org +codingpy.com +codingsky.com +codingwhy.com +codingyang.com +codm.com +codmwest.com +codoon.com +codooncdn.com +codrim.net +cofco-capital.com +cofco-trust.com +cofco.com +cofcoko.com +cofcosp.com +cofeed.com +cofess.com +coffee-hdl.com +coffee-script.org +coffee08.com +cofly.com +cofool.com +cofortest.com +cogcpa.org +cogitosoft.com +cogobuy.com +cogonline.com +cohim.com +cohulu.com +coilmx.com +coin007.com +coin163.com +coinall.live +coinall.ltd +coincola.net +coincsd.com +coindog.com +coinnice.com +coins-carnival.com +coinsky.com +coinvs.com +cokll.com +cokutau.com +coladrive.com +colahotpot.com +colamh.com +colasmart.com +coldextrusion.com +coldfunction.com +coldlar.com +colineapp.com +colinker.com +colipu.com +colobu.com +color365.com +colorbird.com +colorfulclouds.net +colorfulltech.net +colorgg.com +coloros.com +coloros.net +colorv.com +colourfulchina.com +colourlife.com +com.fi +com.tv +com4loves.com +comac.cc +comake.online +combofin.com +combomen.com +combpm.com +combss.com +comebond.com +comefilm.com +comeken.com +comet.cc +comeyes.com +comiai.com +comic520.com +comicdd.com +comicer.com +comicfans.net +comicocn.com +comicst.com +comicv.com +comicyu.com +comiis.com +comingchina.com +comlan.com +comlbs.com +commander1.com +commchina.net +commune-hair.net +communicatte.com +comocloud.net +companydns.com +compass-fit.jp +compassedu.hk +compevt.com +compgoo.com +computeinit.com +comra.org +comsenz-service.com +comsenz.com +comseoer.com +comsharp.com +comsol.com +comweixin.com +conbagroup.com +conchdesktop.com +concox.net +confuciusinstitute.net +cong9184.com +congm.in +congrongfund.com +congyicn.com +congzao.com +congzhi.com +connector-systems.com +conoha.vip +zzmscg.com +conshow.com +contentchina.com +contentchina.net +zzmama.net +contiez.com +controlinai.com +conuo.com +convergemob.com +convertlab.com +conyedit.com +conyli.cc +coobar.com +cooboys.com +coocaa.com +coocaatv.com +coocare.com +coocox.org +coodir.com +coofans.com +cooffee.net +cooh5.com +coohua.com +cookcai.com +cookie4you.com +cool-admin.com +cool-de.com +cool-play.com +cool80.com +coolact.net +coolaf.com +coolapk.com +coolapkmarket.com +coolapkmarket.net +coolbcloud.com +coolbuy.com +coolchuan.com +coolcode.org +coolcode.tech +coolcoolcloud.com +coolcou.com +cooldock.com +cooldu.com +cooleasy.net +coolecho.net +coolecloud.com +coolexe.com +coolfd.com +coolgamebox.com +coolgua.net +coolkit.cc +coolkk.net +coolling.net +coolnull.com +coolook.org +coolool.com +coolpad.com +coolpad.store +coolqi.com +coolrar.com +coolsc.net +coolsdream.com +coolsite.vip +coolsite360.com +coolsphoto.com +coolstyle.org +cooluc.com +coolwarmsy.com +coolwp.com +coolxap.com +coolxcloud.com +coolyun.com +coolzou.com +coomix.net +coonote.com +coooolfan.com +coooz.com +coophone.com +coorain.net +coorfeon.com +cootek.com +cootekos.com +cootekservice.com +coovbbs.com +coovee.com +coovee.net +cooyun.com +coozhi.com +copyedu.com +copymanga.info +copymanga.net +copymanga.org +cor-games.com +corachic.com +corebai.com +coreesports.net +coreldrawchina.com +corpautohome.com +corpease.net +corpize.com +corpring.com +cos-show.com +cosbuluo.com +cosco.com +coscon.com +coscoshipping.com +cosedm.com +cosfund.com +coshelper.com +coshi.cc +coship.com +cosize.com +cosmoplat.com +cosoar.com +cosplay8.com +cosplayla.com +cosyjoy.com +cotticoffee.com +coubei.com +counect.com +couns.com +couplefish.com +coupon996.com +coursegraph.com +cousz-gd.com +covcec.com +covernim.com +coverweb.cc +covinda.com +covtv.com +cowarobot.com +cowellhealth.com +cowlevel.net +cowrycare.com +cowtransfer.com +coyotebio-lab.com +coyuk.com +coyuns.net +cp127w.com +cp365.org +cp455.com +cpajia.com +cpass.com +cpatrk.net +cpbao.com +cpc.cc +cpcccac.com +cpcni.net +cpcw.com +cpdad.com +cpdaily.com +cpdyj.com +cpecc.net +cpeol.net +cphoto.net +cphoto.org +cpiano.com +cpiaoju.com +cpiccdn.com +cpihualai.com +cpitsh.org +cpjltx.com +cplchain.com +cpo.xyz +cpo2o.com +cpolar.io +cpolive.com +cpooo.com +cpp-prog.com +cpp114.com +cpp32.com +cppblog.com +cppc123.com +cppcns.com +cppfoto.com +cpph.com +cppinfo.com +cpplay.com +cpppc.org +cpppf.org +cppwh.com +cps1688.com +cpsbeijing.org +cpsenglish.com +cptae.com +cpu114.com +cpu668.com +cpubbs.com +cpvjob.com +cpython.org +cpzjzx.com +cq-ct.tech +cq-wnl.com +cq315house.com +cq3a.com +cq5135.com +cq6.com +cq6969.com +cq8.com +cqaaa.com +cqae.com +cqaso.com +cqbdfeng.com +cqbdksm.com +cqbm2007.com +cqbnedu.com +cqbnrc.com +cqbntv.com +cqbyer.net +cqbys.com +cqcaee.com +cqcatr.com +cqcb.com +cqcbank.com +cqccn.com +cqcklib.com +cqcoal.com +cqcp.net +cqcqcq.com +cqcsic.com +cqcy.com +cqdai.com +cqdailynews.com +cqddnap.com +cqddzx.com +cqdent.com +cqdingyan.com +cqdting.com +cqdzw.com +cqeca.org +cqedo.com +cqemme.com +cqfire.com +cqfuzhuang.com +cqfygzfw.com +cqgc.com +cqggzy.com +cqgmfw.com +cqgz.com +cqh2o.com +cqhansa.com +cqhcbk.com +cqhimalayanky.com +cqhkcdns.com +cqhpoldi.com +cqhxgf.com +cqhxzb.com +cqhyd.com +cqhydraulic.com +cqhyky.com +cqindex.com +cqinstinct.com +cqivip.com +cqjat.com +cqjbrc.com +cqjet.com +cqjiaz.com +cqjj.net +cqjjnet.com +cqjnw.org +cqjob.com +cqjy.com +cqkdtui1.com +cqkeb.com +cqkjwx.com +cqkqinfo.com +cqkundian.com +cqkx.com +cqkytq.com +cqleba.com +cqlinrui.com +cqliving.com +cqlp.com +cqlyckj.com +cqmama.net +cqmanfeite.com +cqmas.com +cqmcu.com +cqmjkjzx.com +cqmmgo.com +cqmw.com +cqnc.cc +cqncnews.com +cqnews.net +cqnhn.com +cqpa.org +cqpbx.com +cqph.com +cqpinjian.com +cqpix.com +cqpost.com +cqqigao.com +cqqiyi.com +cqqnb.net +cqqp.com +cqqsyy.com +cqqyn.com +cqrc.net +cqrcb.com +cqrcdsc.com +cqsckj02.com +cqscmy.net +cqshenou.com +cqslsc.com +cqsms.net +cqsoft.org +cqsqmp.com +cqsxedu.com +cqtally.co +cqtally.com +cqtanlaoda.com +cqtaotan.com +cqtea.com +cqtransit.com +cqtresearch.com +cqttech.com +cqtynpx.com +cquae.com +cquc.net +cqudp.com +cqvip.com +cqvip.vip +cqw.cc +cqwangwo.com +cqwenbo.com +cqwin.com +cqwulong.net +cqwzwl.com +cqxcx.net +cqxdfpr.com +cqxh120.com +cqxiehe.com +cqxingyun.com +cqxpxt.com +cqxyfl.com +cqyc.net +cqyestar.com +cqyingang.com +cqyouloft.com +cqyu.com +cqyzqsy.com +cqzhanguan.com +cqzhongxingyuan.com +cqzk.net +cqzls.com +cqzq6.com +cqzww.com +cqzyx.net +cqzz.net +cr-expo.com +cr-nielsen.com +cr-power.com +cr11gcsgd.com +cr11gee.com +cr173.com +cr175.com +cr18g.com +cr19gj.com +cr6868.com +crabchina.com +crackersta.com +craer.com +craftcontact.com +crandom.com +crazepony.com +crazyenglish.org +crazyflasher.com +crazyphper.com +crazypm.com +crbeverage.com +zzloop.com +crc.hk +crc81.com +crcapital.info +crcgas.com +crcrfsp.com +crcsz.com +crct.com +cre.net +cread.com +creatby.com +createcdigital.com +creati5.com +creationventure.com +crec4.com +crec4mc.com +crecg.com +crecohe.com +crecu.com +credibleglass.com +credit-cras.com +credit100.com +creditcn.com +creditsailing.com +creditzuji.com +creo-support.com +crepcrep.com +crestv.com +crewcn.com +crfchina.com +crfsdi.com +crgecent.com +crggcn.com +crgy.com +cric.com +cric2009.com +cricbigdata.com +crifst.com +crimoon.net +crispstata.com +crjfw.com +zzllq.com +crlf0710.com +crlg.com +crm.cc +crm1001.com +crmch.com +crmclick.com +crmeb.com +crmeb.net +crmg-ms.com +crmip.com +crmtldc.net +crnews.net +crodigy.com +crossingstarstudio.com +crossmo.com +crossoverchina.com +crosswaycn.com +crown-chain.com +crowndth.com +crowya.com +crpaas.com +crrcgc.cc +crrjz.com +crs811.com +crsc.cc +crsky.com +crsn168.com +cruelcoding.com +crvic.org +crym.cc +crystalcg.com +crystaledu.com +cryuantafund.com +cs-air.com +cs-cjl.com +cs-qsyq.com +cs-show.com +cs-video.com +cs0799.com +cs090.com +cs1212.xyz +cs12333.com +cs27.com +cs2c.com +cs2ccloud.com +cs30.net +cs528.com +cs53.com +csadec.com +csaimall.com +csair.com +csairdutyfree.com +csairholiday.com +csairshop.com +csapa.org +csaspx.com +csau.com +csbew.com +csc108.com +csc86.com +cscan.co +cscatv.com +cscdf.org +cscec.com +cscec1b.net +cscecst.com +csci.hk +cscyw.com +csdc.info +csdeshang.com +csdh.com +csdian.net +csdiy.wiki +csdn.com +csdn.net +csdnxiazai.xyz +csdtz.com +csdyx.com +csea767.com +csebank.com +csflgg.com +csflwb.com +csfounder.com +csftyy.com +csgm168.com +csgocn.net +csgokai.com +csgpc.org +csguan.com +csgwexpo.com +csharpkit.com +cshixi.com +cshnkj.com +cshope.net +cshuandu.com +cshufanyi.com +cshxdc.com +cshyqx.com +csic-711.com +csic-ljtech.com +csic612.com +csic6801.com +csic76.com +csicmakers.com +csiea.net +csjcs.com +csjplatform.com +csjwang.com +cskaoyan.com +cskefu.com +cskule.com +cslfans.com +cslou.com +cslyrc.com +csmadik.com +csmall.com +csmama.net +csmar.com +csmbcx.com +csmc-cloud.com +csmjzs.com +csmscon.com +csnbgsh.com +cspda.net +cspengbo.com +cspiii.com +cspro.org +cspruc.com +cspxw.com +csqc.cc +csqnews.com +csqqym.com +csrcare.com +csrcbank.com +csrcsc.com +csrda.com +csres.com +csrgm.com +csrlzyw.com +css-js.com +css6.com +css88.com +cssa-swansea.com +cssaaa.com +csseplastic.com +cssf.com +cssf.net +cssforest.org +cssg-ahi.com +cssj.fun +csslcloud.net +cssmagic.net +cssmoban.com +cssmxx.com +cssqt.com +csstoday.net +cssxt.com +cssyq.com +cssyzxx.com +csszone.net +cstccloud.org +cstcloud.net +cstcq.com +cstea.org +cstech.ltd +csteelnews.com +cstianye.com +cstimer.net +csto.com +cstong.net +cstriker1407.info +csuboy.com +csuedu.com +csundec.com +csvclub.org +csvsc.com +csvw.com +csw18.com +csweigou.com +cswf888.com +csxbank.com +csxcdj.com +csxdf.com +csxingfutemple.org +csxsjc.com +csxtedu.com +csxww.com +csyestar.com +csytv.com +csyuyism.com +cszb556.com +cszit.com +cszsjy.com +cszx.com +cszybdf.com +cszykt.com +cszzjc.com +ct-cdm.com +ct-laser.com +ct10000.com +ct108.com +ct52.com +ctaca.com +ctags.net +ctans.com +ctaoci.com +ctaweb.org +ctb50.com +ctbjia888.com +ctc100.com +ctcefive.com +ctcmo.com +ctcnn.com +ctcnpa.com +ctcwri.org +ctdcn.com +ctdisk.com +ctdns.net +ctdsb.com +ctdsb.net +ctdzsk.com +cteaw.com +ctecdcs.com +ctex.org +ctexcel.ca +ctexcel.com +zzliot.com +ctexcel.fr +ctexcel.us +ctfile.com +ctfile.net +ctflife.com +ctfmall.com +ctfo.com +ctfund.com +ctg75.com +ctgapp.com +ctghealthy.com +ctghr.com +ctghro.com +cthhmu.com +cthuwork.com +cthuwork.net +cthy.com +cti-cert.com +ctibet.com +ctiforum.com +ctiku.com +ctils.com +ctime.com +ctiot.info +ctjin.com +ctjsoft.com +ctkq.com +ctlcdn.com +zzjxbg.com +ctlife.tv +ctmon.com +ctn1986.com +ctnz.net +ctobsnssdk.com +ctocio.com +ctoclub.com +ctoutiao.com +ctqcw.com +ctracer.net +ctrip-ttd.hk +zzjunzhi.com +zzidc.com +zzhybz.com +ctrip.com +zzhuanruan.com +ctrip.my +ctrip.sg +ctripbiz.com +ctripbuy.hk +ctripcorp.com +ctripgslb.com +ctripins.com +ctripqa.com +ctripteam.com +ctriverenergy.com +ctrlqq.com +ctrmi.com +ctsbw.com +ctsec.com +ctsho.com +ctsscs.com +ctssr.com +ctsto.com +ctszh.com +cttip.org +cttq.com +cttsd.com +cttv.co +ctuaa.com +ctvpost.com +ctvwx.com +ctwxc.com +ctxyw.com +ctycdn.com +ctyo.com +ctzrnet.com +cu-air.com +cuaa.net +cuanhuang.com +cuav.net +cubavcenter.com +cubead.com +cubejoy.com +cubie.cc +cubox.pro +cucdc.com +cuchost.com +cuctv.com +cudaojia.com +cueber.com +cuebzzy.com +cuekit.com +cuelog.com +cufeyk.com +cufou.com +cug2313.com +cugstore.com +cuihuan.net +cuimm.com +cuiniaoedu.com +cuiniuhui.com +cuipengfei.me +cuipixiong.com +cuiqingcai.com +cuirushi.com +cuishuai.cc +cuiuc.com +cuiweijuxing.com +cuiyongjian.com +cujs.com +cuketest.com +cul-studies.com +culaiwan.com +cumtenn.com +cumulon.com +cunan.com +cuncunle.com +cuncx.com +cunfang.com +cunnar.com +cunyoulu.com +cunzhen.vip +cunzj.com +cuobiezi.net +cuour-edu.com +cuour.com +cuour.org +cupaaki.cyou +cupdapp.com +cupdata.com +cupdns.com +cupfox.app +cupfox.com +cupinn.com +cuplayer.com +cureedit.com +curlc.com +curryhuang.com +cusdvs.net +custeel.com +customsapp.com +cut35.com +cutecomm.com +cutefishos.com +cuteng.com +cutercounter.com +cutieshop153.com +cutout.pro +cutowallpaper.com +cutv.com +cuuhn.com +cuzz.site +cv0ve3.xyz +cvchina.info +cvchome.com +cvcri.com +cvhacr.com +cvicse.com +cvicseks.com +cvmart.net +cvonet.com +cvoon.com +cvrobot.net +cvte.com +cvtoutiao.com +cvtvcn.com +cw100.com +cwbpsi.com +cwddd.com +cwdma.org +cwebgame.com +cwems.com +cwestc.com +cwmcs.com +cwq.com +cwqu.com +cwroom.com +cwxzx.com +cwyan.com +cx312.com +cx580.com +cx930.net +cxacg.com +cxas.com +cxbiji.com +cxbz958.com +cxc233.com +cxcc.me +cxcyds.com +cxd-auto.com +cxfuwu.com +cxgame.net +cxh99.com +cxhl365.net +cxhr.com +cximg.com +cxjd2012.com +cxkjjy.com +cxmld.com +cxmt.com +cxmtc.net +cxssfjx.com +cxsw3d.com +cxta.com +cxthhhhh.com +cxtuku.com +cxtxt.com +cxw.com +cxwl.com +cxwyf.net +cxwyg.net +cxxjs.com +cxy521.com +cxy61.com +cxy7.com +cxyfjy.com +cxylfc.com +cxyob.com +cxytiandi.com +cxyxiaowu.com +cxyxwl.com +cxyym.com +cxz.com +cxz3d.com +cxzg.com +cxzudwk.com +cxzw.com +cy-cdn.com +cy-email.com +cy-isp.net +cy-jm.com +cy.com +cy2009.com +cy52.com +cy580.com +cy88.com +cy887.com +cyagen.com +cyanhillcapital.com +cyb-bot.com +cyb-cie.com +cyb800.com +cybermedicine2000.com +cyberway-china.net +cybtc.com +cybtc.info +cybtc.net +cycares.com +cychaiqian.com +cyclingchina.net +cyclone-robotics.com +cyclonemoto.com +cycnet.com +cycoo.com +cyctapp.com +cydiakk.com +cydow.com +cydp5.com +cyedu.org +cyegushi.com +cyfeng.com +cyfengchao.com +cyhm.com +cyhone.com +cyht168.com +cyhx98.com +cyikao.com +cyjcloud.com +cyjn.net +cyjnsy.com +cyjzzd.com +cyk-cable.com +cylong.com +cymh8.com +cynee.net +cynosurechina.com +cynovan.com +cyol.com +cyol.net +cyou-inc.com +cyoupic.com +cypatent.com +cypcb.net +cyphouse.com +cypmedia.com +cypresstel.com +cyprestar.com +cyqyzx.com +cyr168.com +cyruc.com +cysq.com +cyss19.com +cysua.com +cytcard.com +cyts.com +cytsls.com +cytstibet.com +cyudun.net +cyuew.com +cywetc.com +cywlxy.com +cywyjj.com +cyy18.com +cyycdn.com +cyypscl.com +cyyself.name +cyysjm.com +cyyvip.com +cyyz.org +cyzm.net +cz-toshiba.com +cz-yk.com +cz.cc +cz2sc.com +cz89.com +czb365.com +czbanbantong.com +czbank.com +czbq.net +czbtv.com +czbx18.com +czcarbon.com +czchuanlin.com +czchyz.com +czcid.com +czcqly.com +czctech.com +czdingming.com +czdrbz.com +czech-visacenter.com +czedu.com +czepb.com +czfcw.com +czfdc.com +czfesco-mg.com +czggsj.com +czgjj.com +czgjj.net +czgmjsj.com +czgongzuo.com +czham.net +czie.net +czifi.org +czitc.com +czjake.com +czjdu.com +czjpw.com +czjsy.com +czkbdq.net +czkingdee.com +czlogo.com +czlxgc.net +czmc.com +cznewcom.com +czongyi.com +czopen.com +czos.xyz +czpoly.com +czsbtjx.com +czsrc.com +cztour.com +cztv.com +cztv.tv +cztvcloud.com +czur.com +czvv.net +czwsg5.com +czxixi.com +czxsss.com +czxy.com +czyhq.com +czyxba.com +czzsw.com +czzy-edu.com +d-controls.com +d-ctrip.com +d-heaven.com +d-long.com +d.cg +d.design +d03jd.com +d163.net +d17.cc +d1999.com +d1cm.com +d1com.com +d1dengju.com +d1ev.com +d1lx.com +d1miao.com +d1net.com +d1sm.net +d1xf.net +d1xh.com +d1xn.com +d1xz.net +d20.net +d2fan.com +d2film.com +d2kdi2ss.com +d2scdn.com +d2shost.com +d2ziran.com +d3ch.com +d3cn.net +d3dweb.com +d3f.com +d3games.com +d3iz9md.com +d3skg.com +d3tt.com +d3zone.com +d4000.com +d5h.net +d5power.com +d65d6.com +d777.com +d7vg.com +d8th.com +d9ym.com +da-qian.com +da-quan.net +zzhaofang.com +da.do +da88.net +daanbar.com +daanche.com +daba.com +dabaicai.com +dabaicai.org +dabao123.com +dabaoku.com +dabieshu.com +dabin69.com +dabingseo.com +dabjy.com +daboluo.net +dabusi.com +dacai.com +dacankao.com +dacankao.net +dacaomei.com +daccf.com +dachanet.com +dachenglaw.com +dachengnet.com +dachengzi.net +dachuizichan.com +dachuw.com +dachuw.net +dadaabc.com +dadagame.com +dadagem.xyz +dadajiasu.com +dadajuan.com +dadakan.com +dadaojiayuan.com +dadayou.com +dadclab.com +daddymami.net +dadetong.com +dadianstudio.com +dadicinema.com +dadighost.com +dadijilu.com +dadiwang.com +dadiyimao.com +dadou.com +dadunet.com +daerzhu.com +daf-rs.com +dafaji.com +dafang24.com +dafangya.com +dafanshu.com +dafork.com +dafy.com +dagangcheng.com +dagao.net +dagongcredit.com +dagongnet.com +dagufood.com +daguzhe.com +dahainan.com +dahaiyang.com +dahanghaiol.com +dahangzhou.com +dahanwl.com +dahanyu.com +daheapp.com +dahecc.com +dahecube.com +dahei.com +dahelj.com +daheng-image.com +daheng-imaging.com +daheng-imavision.com +dahengit.com +dahepiao.com +dahongba.net +dahouduan.com +dahua8.com +dahuaab.com +dahuaddns.com +dahuatech.com +dahuawang.com +dahuhg.com +dahuifuwu.com +dahulu.com +dai361.com +dai911.com +daibi.com +daichuqu.com +daicuo.cc +daicuo.co +daicuo.net +daicuo.vip +daidaidui.club +daidaitv.com +daidongxi.com +daigou.com +daijun.com +daikela.com +daikuan.com +daikuane.com +dailianqun.com +dailiantong.com +dailianzj.com +dailiba.com +dailijizhang.cc +dailugou.com +dailygn.com +dailyheadlines.cc +dailyqd.com +daimabiji.com +daimadog.com +daimafans.com +daimajia.com +daimajiaoliu.com +daimajiayuan.com +daimami.com +daimasucai.com +daimg.com +daishangqian.com +daishu.com +daishujiankang.com +daishutijian.com +daiwoqu.com +daixiaobao.com +daixiaomi.com +daixiaorui.com +daiyanbao.com +daiyanmama.com +daizitouxiang.com +daji.com +dajiabao.com +dajiachou.com +dajiadaohang.com +dajiadu8.com +dajiaka.com +dajialaikan.com +dajialawyer.com +dajianet.com +dajiang365.com +dajiangcp.com +dajiangsai.org +dajiangtai.com +dajianhui.com +dajiashequ.com +dajiashuo.com +dajiazhao.com +dajiazhongyi.com +dajie.com +dajieimg.com +dajixie.com +dajke.com +dajuntech.com +dajuyuan.net +daka.app +daka.net +dakage.com +dakahr.com +dakamao8.com +dakao8.com +dakao8.net +dakaruanwen.com +dakawm.cc +dakayi.cc +dakele.com +dalaba.com +dalianair-china.com +dalianiso.com +daliapp.net +daling.com +dalinggong.com +dalipan.com +dalongkeji.com +dalongyun.com +daluma.com +daluo.com +daluwang.net +dalvlaw.com +damai.com +damaibs.com +damaicheng.com +damatu1.com +damddos.com +dameisheng.com +dameiweb.com +dameiyunduan.com +dameng.com +damingweb.com +damndigital.com +damoyang.com +damuchong.com +damuzzz.com +dan665.com +danaicha.com +danale.com +dance365.com +dancerspointewinchester.com +dancf.com +dancihu.com +dancingcg.com +dandanjiang.tv +dandanman.com +dandanplay.com +dandantang.com +dandanz.com +dandinghuayi.com +dandongbank.com +danews.cc +dang-jian.com +dang3.com +dangaocn.com +dangaoss.com +dangbei.com +dangbei.net +dangbeiprojector.com +dangcdn.com +dangdang.com +dangguai.com +danghongyun.com +danghuan.com +dangjian.com +dangjianwang.com +dangpu.com +dangtianle.com +dangwan.com +dangzhi.com +dangzhi.net +dangzhu.net +danhua.org +danhuaer.com +daniao.org +daniate.com +daningcenter.com +daningdaning.com +daniuit.com +daniujiaoyu.com +danji100.com +danji6.com +danji8.com +danji9.com +danjuanapp.com +danjuanfunds.com +danke.com +dankegongyu.com +dankexiaoyuan.com +danlan.org +danlirencomedy.com +danlu.net +danmaku.live +danmaku.tv +danmakupie.com +danmei.la +danmei.org +danmi.com +danming-ic.com +danmo.com +danmu.com +dannysite.com +danotest.com +danpin.com +danqi.com +danteng.me +dantengge.org +dantuvc.com +danxia.com +danxin.net +danyang.com +danzhaowang.com +dao123.com +dao42.com +dao50.com +daoapp.io +daoapp.me +daocloud.io +daocloudapp.com +daodao.com +daodaojizhang.com +daodaoliang.com +daodaozz.com +daodian100.com +daodianfu.com +daodoc.com +daododo.com +daoduoduo.com +daofengdj.com +daoguo.com +daohang4.com +daohang88.com +daohangmao.net +daohangtx.com +daohui.net +daoisms.org +daojia.com +daojiale.com +daokers.com +daokeyuedu.com +daokoudai.com +daokouren.org +daomengad.com +daonazhuce.com +daopub.com +daoqin.net +daoscript.org +daoshidianping.com +daoshui.com +daotin.com +daotudashi.com +daovoice.io +daoxiangcun.com +daoxila.com +daoxila.net +daoyu8.com +daozhao.com +dapaizixun.com +dapan.com +dapei.cc +dapengjiaoyu.com +dapenti.com +dapiniu.com +dapmax.com +dappdiscover.com +dapustor.com +daqi.com +daqianduan.com +daqiangpco.com +daqids.com +daqihui.com +daqiso.com +daqsoft.com +daquan.com +darczpw.com +darevip.com +darkmi.com +darknight.games +darmao.com +darongcheng.com +darryring.com +dartchina.com +dartou.com +daruan.com +darwinlearns.com +dasctf.com +dashanghaizhuce.com +dashangu.com +dashen520.com +dashengji.com +dashenglaile.com +dashengpan.com +dashengzuji.com +dashenquan.com +dashentv.com +dashet.com +dashgame.com +dashi.com +dashikou.com +dashitech.com +dashiyou.com +dashoucloud.com +dashuihua.com +dashuju123.com +dasoujia.com +dassm.com +dasung.com +dasungtech.com +data380.com +data5u.com +data777.com +data985.com +datacachelocation.com +datacaciques.com +datacname.com +datadragon.net +dataesb.com +dataeye.com +datafocus.ai +datagear.tech +datagrand.com +datahubtrack.com +dataie.com +datang.com +datang.net +datangnxp.com +datangweishi.com +datangzww.com +dataodu.com +dataoke.com +datarelab.com +datarj.com +zzgryl.com +datasheet5.com +datasl.com +datasoldier.net +datastoragesummit.com +datatang.com +datathinking.com +datatist.com +datatocn.com +datayes.com +datazt.com +datebao.com +datepj.com +datesdata.com +datia-inspect.com +datianmen.com +zzgm.net +datongtaxi.com +datuc.com +dav01.com +davdian.com +davidlovezoe.club +davinfo.com +davtd.com +davvar.com +dawaner.net +daweisoft.com +dawenming.com +dawenxue.net +dawenxue.org +dawnarc.com +dawndiy.com +dawnlab.me +dawnled.net +dawntech.net +dawuhanapp.com +dawx.com +dawx.net +daxi.com +daxia.com +daxiaamu.com +daxianghuyu.com +daxiangqun.net +daxianzuji.com +daxiit.com +daxinsz.com +daxuecn.com +daxueit.com +daxuepc.com +daxueshi.com +daxuesoutijiang.com +daxuesushe.com +daxuewang.com +dayaguqin.com +dayangmotorcycle.com +dayangyugame.com +dayanmei.com +dayanzai.me +dayday.plus +daydayup123.com +dayee.com +dayhao.com +dayhr.com +dayichang.com +dayifund.org +dayila.net +dayima.com +dayin.com +dayin.la +dayinhu.com +dayinjiqudong.com +dayinmao.com +dayinpai.com +dayinpiano.com +dayitong.net +dayong.name +dayoo.com +dayrui.com +daytokens.com +dayu-valve.com +dayu.com +dayuansouti.com +dayue8.com +dayugame.net +dayugslb.com +dayukaoshi.com +dayukeji.com +dayuntongzhou.com +dayup.org +dayuzy.com +dazahui123.com +dazhan123.com +dazhangfang.com +dazhaopeibang.com +dazhe5.com +dazhenzimiao.com +dazhewa.com +dazhong.com +dazhongbanben.com +dazhonghr.com +dazhoumzj.com +dazhoushan.com +dazhuangwang.com +dazhuanlan.com +dazibo.com +dazidazi.com +dazidian.net +dazijia.com +dazpin.com +daztoutiao.com +dazui.com +db-cache.com +db.ci +db9x.com +dbank.com +dbankcdn.com +dbankcloud.asia +dbankcloud.com +dbankcloud.eu +dbankcloud.ru +dbankedge.net +dbbqb.com +dbc2000.net +dbccv.com +dbcdh.com +dbcsq.com +dbcxz1.net +dbdna.com +dbgeek.org +dbh123.net +dbkan.com +dblgf.com +dbljj.com +dbm-sh.com +dbmailserver.com +dbmall.com +dbmeinv.com +dbqf.xyz +dbs724.com +dbscar.com +dbshop.net +dbt-coin.com +dc-cn.com +dcarapi.com +dcarimg.com +dcarlive.com +dcarstatic.com +dcarvod.com +dcatgame.com +dcb123.com +dcdapp.com +dcdkjx.com +dcement.com +dcetax.com +dcgsi.com +dcharm.com +dcic-china.com +dcits.com +dcloud.io +dcloudlive.com +dcloudstc.com +dcmagcn.com +dcmk17.com +dcpfb.com +dcsapi.com +dcsjw.com +dcsme.org +dcxnews.com +dcybkj.com +dd-advisor.com +dd-gz.com +dd-img.com +dd128.com +dd2007.com +dd373.com +dd4.com +dd6300.fun +dd8828.com +ddbiquge.cc +ddbiquge.com +ddbiu.com +ddd-china.com +ddddns.net +dddwan.com +dde-desktop.org +ddfans.com +ddfchina.com +ddgjjj.com +ddguanhuai.com +ddhy.com +ddiaas.com +ddianle.com +ddianshang.com +ddijg.com +ddimg.mobi +ddimg.net +dding.net +ddjjzz.com +ddjk.com +ddk-alink.com +ddkids.com +ddkt365.com +ddkwxd.com +ddky.com +ddle.cc +ddlequ.com +ddmap.com +ddmer.com +ddmogo.com +ddnddn.com +ddns-only.xyz +ddnsto.com +ddnx.com +ddong.com +ddooo.com +ddos.com +ddosc.com +ddosendns.com +ddoswafcdn.xyz +ddove.com +ddpai.com +ddqcw.com +ddsaas.com +ddstarapp.com +ddswcm.com +ddsy.com +ddtugame.com +ddtxgame.com +ddtz5.com +ddun.com +ddurl.to +dduser.mobi +dduwork.com +ddweilai.com +ddwhm.com +ddwzh.com +ddxinwen.com +ddxq.mobi +ddxstxt8.com +ddyqh.com +ddyun.com +ddyun123.com +ddyvip.com +ddz.com +ddzhj.com +ddztv.com +ddzuqin.com +de-moe.org +de0.cc +de123.net +de1919.com +de518.com +deaconhousewuxi.com +deadnine.com +deahu.com +dealsmake.com +deansys.com +dear520dear.com +dearda.com +dearedu.com +dearisland.com +deartree.com +deathearth.com +deau-cable.com +debao.com +deben.me +debt-management-site.com +debug.moe +debugdump.com +debuggap.com +debugger.wiki +debugo.com +debuycn.com +decard.com +decentcapital.com +decerp.cc +dechong.site +dechua.com +decorcn.com +decwhy.com +dede168.com +dedecms.com +dedecmsplus.com +dededao.com +dedeeims.com +dedejs.com +dedemao.com +dedesos.com +dedezhuji.com +deemos.com +deepbluenetwork.com +deepcloudsdp.com +deepepg.com +deepermobile.com +deepin-ai.com +deepin.com +deepin.io +deepin.org +deepinghost.com +deepinmind.com +deepinos.org +deepinout.com +deepleaper.com +deeplearn.me +deepoon.com +deepsheet.net +deeptechchina.com +deerchao.net +deerex.com +deerma.com +defcoding.com +deguanggroup.com +dehe99.com +deheheng.com +deheng.com +dehsm.com +dehua.net +dehuaca.com +dehuasd.com +deifei.com +deifgs.com +deikuo.com +dejiplaza.com +dekeego.com +dektw.com +dekyy.com +delanauto.com +deli-tools.com +delib2b.com +delibao.com +delicloud.com +delikaixi.com +delinklab.com +delishi.com +deliwenku.com +deliworld.com +delixi-electric.com +delixi.com +dell027.com +dellemc-solution.com +delphijiaocheng.com +delunyk.com +demage.com +demaxiya.com +demix.cc +demixc.com +demizhongbao.com +demlution.com +demo8.com +demodashi.com +demogic.com +demon.tw +demonlee.tech +demoso.net +demososo.com +denachina.com +denganliang.com +dengbi8.com +dengcuo.com +dengguobi.com +denghao.org +denghaoxuan.com +denghuo.com +dengji8.com +dengkanwen.com +dengmoe.com +dengpeng.me +dengshiyuanyi.com +dengta120.com +dengtacj.com +dengtadaka.com +dengwz.com +dengxiaolong.com +dengxiaopingnet.com +denopark.com +dentistshow.com +deosin.com +dep-star.com +depeat.com +dephir.com +deppon.com +deppxp.net +deqingbank.com +deqinglaw.com +derekchou.com +derenbs.com +derucci.com +derzh.com +des8.com +desaysv.com +desenqd.com +deserts.io +design006.com +designsketchskill.com +designuuu.com +deskcar.com +deskcity.com +deskguanjia.com +deskier.com +desktop-calculator.com +desktopcal.com +desktopqa.com +deskwc.com +desoonproduct.com +desperate.life +despiertocfilms.com +destoon.com +detion.com +detu.com +detuyun.com +dev-dh.com +dev798.com +dev996.com +devask.net +devclub.cc +develenv.com +zzgjj.com +zzgdapp.com +zzgcjyzx.com +zzfriend.com +devemi.com +devework.com +devexel-tech.com +devexel.com +devexpresscn.com +devio.org +devmyshopibar.com +devops-dev.com +devpss.com +devqinwei.com +devsiki.com +devtang.com +devui.design +devzeng.com +dewmobile.net +dewu.com +dewu.net +dewucdn.com +dewumall.com +dexian.mobi +dexingrv.com +dexinsg.com +dextercai.com +dexuee.com +dexunyun.com +deyang5.com +deyatech.com +deyayk.com +deyeehome.com +deyi.com +deyi.net +deyijijin.org +deyiso.com +deyoulife.com +deyun.fun +deyurumen.com +dezhong365.com +dezhongmobi.com +dezhoudaily.com +dezhounuoda.com +dezhuyun.com +df-nissanfl.com +df81.com +df9377.com +df962388.com +dfcfs.com +dfcfw.com +dfcx-bj.com +dfdaily.com +dfddd.com +dfdjy.net +dfdtt.com +dfedu.com +dfghaqea.xyz +dfham.com +dfhon.com +dfhtjn.com +dfkcgs.com +dfkhgj.com +dfkj.cc +dfmc.com +dfmcastrol.com +dfmingya.com +dfpk.com +dfpz.net +dfrcb.com +dfs168.com +dfs800.com +dfshurufa.com +dfshw.com +dfsrcw.com +dfss-club.com +dfstw.com +dfsyjm.com +dftoutiao.com +dftq.net +dftzcgs.com +dftzj.com +dfxq.com +dfxwdc.com +dfy027.com +dfyanyi.com +dfyapp.com +dfyl-luxgen.com +dfyoo.com +dfysw.net +dfyuan.com +dfyxs.com +dfyydl.com +dfyzx.com +dfzmzyc.com +dfzxvip.com +dfzystt.com +dg-360lhx.com +dg-cxwj.com +dg-hanxin.com +dg-mall.com +dg11185.com +dg114.com +dg121.com +dgchangan.com +dgddh.xyz +dgegbj.com +dgg.net +dggdf.com +dggdk.com +dgggs.com +dggjqw.com +dggkj.com +dggvip.net +dghehu.com +dghqmotor.com +dginfo.com +dgjiuqi.com +dgjoy.co +dgjxmk.com +dgjy.net +dgjyw.com +dgkj888.com +dglpool.com +dgmama.net +dgod.net +dgphospital.com +dgptjob.com +dgqjj.com +dgrbcj.com +dgsbtjx.com +dgsltx.com +dgsme.org +dgssmy.com +dgt-factory.com +dgtle.com +dgtpcj.com +dgtuoyue.com +dgwap.com +dgwtrl.com +dgxbjg.com +dgxinde.net +dgxue.com +dgyejia.com +dgygpx.com +dgykz.com +dgyuanyi.com +dgzhihongjx.com +dgzhisen.com +dgzz1.com +dgzzip.com +dgzzw.net +dh.cx +dh01.com +dh0580.com +dh5idnf.com +dh7373.com +dh7999.com +dh818.com +dh9191.com +dh978.com +dhb.hk +dhb168.com +dhboy.com +dheear.site +dhfeng.com +dhhqfw.com +dhimavision.com +dhjt.com +dhkipdsc.xyz +dhkq120.com +dhkqmz.com +dhkqyy.com +dhmeri.com +dhppa.com +dhqtech.com +dhrcbank.com +dhrest.com +dhsky.org +dht5867.com +dhvisiontech.com +dhwooden.com +dhxrop.com +dhyct.com +dhygw20.com +dhygw2999.com +dhygw488.com +dhyjaqa.com +dhyz.net +di3fang.com +di3fang.vip +diablohu.com +diaidi.com +diaigame.com +diamondfsd.com +dian-ai.com +dian-stable.com +dian-ying.com +dian.so +dian123.com +dian234.com +dian321.com +dian5.com +dianapp.com +dianbo.org +dianbobao.com +dianbucuo.com +diancaijun.com +dianchacha.com +dianchouapp.com +diandanbao.com +diandao.org +diandaxia.com +diandian.com +diandiannuo.com +diandianqi.com +diandianshu.com +diandianwaimai.com +diandianxie.com +diandianys.com +diandianzhe.com +diandianzu.com +diandong.com +diandong365.com +diandongche.biz +dianfengcms.com +dianfuji.com +diangan.org +diangon.com +diangong8.com +diangongbao.com +diangongwu.com +dianhen.com +dianhong.com +dianhou.com +dianji007.com +dianjianggame.com +dianjiliuliang.com +dianjin123.com +dianjinghu.com +dianjingzhe.com +dianjinzs.com +dianjiqi.com +diankeji.com +dianli.com +dianli08.com +dianliang8.com +dianliaoapp.com +dianlut.com +dianm.cc +dianmiaoshou.com +diannaoban.com +diannaodian.com +diannaoxianka.com +dianopen.com +dianou.com +dianpifa.com +dianping.com +dianpingba.com +dianqiweixiu.net +dianqizazhi.com +dianranart.com +dianrong.com +dianru.com +dianru.net +diansan.com +dianshang.com +dianshanghy.com +dianshangyi.com +dianshi.com +dianshige.com +dianshihome.com +dianshijia.com +dianshunxinxi.com +diansu-cdn.net +diantoushi.com +diantui.net +dianwanhezi.com +dianwannan.com +dianwantu.com +dianwoba.com +dianwoda.com +dianwoyou.com +dianwuque.com +dianxiaobao.net +dianxin.net +dianxinnews.com +dianxinos.com +dianyingjie.com +dianyingshow.com +dianyingwenxue.com +dianyong123.com +dianyongqi.com +dianyuan.com +dianzhanggui.net +dianzhangzhipin.com +dianzheli.com +dianzhenkeji.com +dianzhentan.com +dianzhi.com +dianziaihaozhe.com +dianzihetong.net +dianzixuexi.com +diaoben.com +diaochapai.com +diaochapai.net +diaocn.com +diaoding.biz +diaojiang.com +diaokeji.net +diaosaas.com +diaosi.net +diaosiweb.net +diaosu9.com +diaosu98.com +diaosunet.com +diaox2.com +diaoy.com +diaoyou.com +diaoyoupai.com +diaoyu.com +diaoyu123.com +diaoyu365.com +diaoyuren.com +diaoyuwang.com +diary365.net +diaxue.com +dib66.com +dibaotong.com +dibcn.com +diboot.com +dibunet.com +dic123.com +dicaotang.com +dichan.com +dichanlao.com +dichanren.com +dichedai.com +dictall.com +dida110.com +dida365.com +didacar.com +didachuxing.com +didao.com +didapinche.com +didatravel.com +diddgame.com +didi-food.com +didialift.com +didiapp.com +didiaustralia.blog +didibear.com +didichuxing.com +dididadidi.com +dididapiao.com +dididawo.com +dididi88.com +didiglobal.com +zzfly.net +didipay.com +didiqiche.com +didispace.com +didistatic.com +didiwuxian.com +didixk.com +didiyun.com +didiyunapi.com +didu86.com +diducoder.com +diebian.net +dieclock.com +diediao123.com +diemameishi.com +diemoe.net +dieniao.com +dierkezhan.com +diershoubing.com +dietfd.com +diezhan.me +diezhan6.com +difanapp.com +dig-gy.com +digcredit.com +digforfire.net +digi-wo.com +digiic.com +digirepub.com +digisky.com +digital-ren.com +digitalchina.com +digitalcq.com +digitaling.com +digitalvolvo.com +digitalwuhan.com +digitalwuhan.net +digitlink.net +digitser.net +digiwin.com +digiwork.com +digod.com +digu.com +digu365.com +digua.com +diguage.com +diguazu.com +diguobbs.com +dihuikj.com +diiqu.com +dijingchao.com +dijiuban.com +dijunsm.com +dikmnhyxz.xyz +dili360.com +dili365.com +dililitv.com +dim0.com +dimeng.net +dimensionalzone.com +dimpurr.com +dimsmary.tech +dinais.com +dindin.com +dingdanggj.com +dingdangjia.net +dingdangnao.com +dingdangsheji.com +dingdean.com +dingdianku.com +dingdiansk.com +dingdianzw.com +dingding.com +dingding.xin +dingding2014.com +dingdingdoctor.com +dingdingkaike.com +dingdone.com +dingdongcloud.com +dingdongxiaoqu.com +dingfang123.com +dinggou.org +dinghaiec.com +dinghuaren.com +dinghuihuojia.com +dinghuo123.com +dinghuo365.com +dinghuoche.com +dinghuovip.com +dingip.com +dingjicd.com +dingkeji.com +dinglia.com +dingliangame.com +dingliss.com +dingqidong.com +dingqingyun.com +dingsheng.com +dingso.com +dingtalent.com +dingtalk.com +dingtalk.net +dingtalkapps.com +dingtangzqx.com +dingteam.com +dingweilishi.com +dingxiang-inc.com +dingxinhui.com +dingxinwen.com +dingxuewen.com +dingyantec.com +dingyueads.com +dingzhijl.com +diningcity.asia +dinzd.com +dioenglish.com +diomasce.com +dionly.com +diopic.net +dious.cc +dipan.com +dipephoto.com +dipont.com +diqi.net +diqi.sh +diqishu.com +diqiujiayuan.com +diqiuw.com +diqua.com +dir001.com +directui.com +discourse-studies.com +discoversources.com +discoveryriflescope.com +discuz.chat +discuz.com +discuz.net +discuz.org +discuz.vip +discuzfans.net +discuzlab.com +dishen.com +dishuge.com +dishuizhijia.com +diskgenius.com +dislytegame.com +dismall.com +distantmeaning.com +distinctclinic.com +ditan360.com +ditan369.com +dithub.com +ditian-tech.com +ditiefuli.com +ditiezu.com +ditiezu.net +zzfcw.com +ditu100.net +dituhui.com +dituwuyou.com +diugai.com +div.io +divcss5.com +divepai.com +divetgallery.com +diving-fish.com +diwork.com +dixintong.com +diyamh.com +diybcq.com +diybuy.net +diycode.cc +diygogogo.com +diygw.com +diyhi.com +diyiapp.com +diyicai.com +diyidan.com +diyidan.net +diyifanwen.com +diyifanwen.net +diyigaokao.com +diyihuifu.com +diyinews.com +diyishijian.com +diyitech.com +diyixiazai.com +diyiyou.com +diyiyunshi.com +diyiziti.com +diyju.com +diymianmo.com +diymysite.com +diynova.com +diyosl.com +diypda.com +diyring.cc +diyvinylcutters.com +diywoju.com +diyyh.com +dizhi.xin +dizzylab.net +dj.net +dj.tc +dj10.com +dj134.com +dj16.com +dj175.com +dj63.com +dj88.com +dj89.com +dj97.com +dj99.com +djbh.net +djbstatic.com +djbx.com +djcc.com +djcp099.com +djdkk.com +djduoduo.com +djec.net +djeconomic.com +djf.com +djfj.net +djhgyy.com +djiavip.com +djjlseo.com +djjw.com +djkk.com +djkpai.com +djksq.com +djkxl.com +djlmvip.com +djlsoft.net +djsh5.com +djstechpc.com +djstg.com +dju8.com +djwcp.com +djye.com +djyjob.com +djysx.com +djzbl.com +djzhj.com +djzr88.com +djzxn47.com +dkdangle.com +dkjiaoyang.com +dklogs.net +dkmol.net +dkpdd.com +dkrsq.com +dksgames.com +dkskcloud.com +dky.cc +dkybpc.com +dl-huahong.com +zzect.com +dl-rc.com +zzdz666.com +zzdtec.com +zzdl.com +dl0728.com +dl158.net +dl2link.com +dl321.net +dl556677.com +dl8z.com +dlangchina.com +dlbbdk.com +dlbh.net +dlbyf.com +dlbyg.com +dlcaic.com +dld.com +dld56.com +dldlsw.com +dledu.com +dlfederal.com +dlgslb.net +dlgwbn.com +dljrw.com +dljs.net +dllake.com +dllhook.com +dllzj.com +dlmonita.com +dlmzk.com +dlnel.com +dlnel.org +dlosri.com +dlpuwan.com +dlrjtz.com +dlrkb.com +dlrtz.com +dlsjcsb.com +dlsqb.com +dlssa.com +dlsstax.com +dlsunworld.com +dlszywz.com +dltm.net +dltobacco.com +dltsfh.com +dltubu.com +dlvalve.com +dlwjdh.com +dlxgjy.com +dlxk.com +dlxww.com +dlzb.com +dlztb.com +dlzyc.com +dm004.net +dm0571.com +dm176.com +dm21.com +dm300.com +dm321.net +dm5.com +dm9.com +dmacg.net +dmaku.com +dmall.com +dmallcdn.com +dmbcdn.com +dmcbs.com +dmcdn.com +dmcgas.com +dmchina1.com +dmd968.com +dmeg88.com +dmeiti.com +dmeiti.net +dmeng.net +dmfuns.com +dmgapp.com +dmgeek.com +dmgpark.com +dmguo.com +dmhlj.com +dmhmusic.com +dmiug.com +dmjtxt.com +dmlei.com +dmm87d.xyz +dmoe.cc +dmozdir.org +dmpans.com +dmqst.com +dmread.com +dmrtb.com +dmssc.net +dmtg.com +dmwx.org +dmyz.org +dmyzw.com +dmzfa.com +dmzj.com +dmzj8.com +dmzx.com +dn.com +dn1234.com +dn580.com +dn8188.com +dnbbn.com +dnbbs.com +dnbiz.com +dncheng.com +dndiy.net +dnfziliao.com +dngswin7.com +dngsxitong.com +dngz.net +dnion.com +dnjsb.com +dnmall.com +dnnskin.net +dnnunion.com +dnparking.com +dnpz.net +dnpz123.com +dnqc.com +dns-diy.com +dns-diy.net +dns-dns.net +dns-sky.com +dns-url.com +dns-vip.com +dns-vip.net +dns.com +dns.la +dns.pub +dns0011.com +dns002.com +dns0755.net +dns100.net +dns110.com +dns123.net +dns12345.com +dns200.net +dns2008.com +dns2023.com +dns567.com +dns6132.com +dns6868.com +dns800.com +dnsbn.com +dnsce.com +dnscnc.com +dnsddos.com +dnsdiy.com +dnsdizhi.com +dnse0.com +dnse1.com +dnsfamily.com +dnsff.com +dnsfwq.com +dnsgtm.com +dnsgulf.net +dnsh6666.com +dnshot.net +dnsinside.net +dnsip.net +dnsis.net +dnsjia.com +dnslv.com +dnsmeasurement.com +dnsmsn.com +dnsng.net +dnsns5.com +dnsns6.com +dnsnw.com +dnsoray.net +dnsour.com +dnspai.com +dnspig.com +dnsplus.co +dnspod.com +dnspod.mobi +dnspod.net +dnspod.org +dnspood.net +dnsppdd.com +dnsrw.com +dnss.vip +dnsserverhe.com +dnssina.com +dnsurl.net +dnsv1.com +dnsv1.net +dnsv2.com +dnsv3.com +dnsv4.com +dnsv5.com +dnsv8.net +dnsvcache.com +dnsvhost.com +dnswa.com +dnswhk.com +dnswind.net +dnsyy.net +dnszh.com +dnxp.net +dnxtc.net +dnzhuti.com +dnzjds.com +do-shi.com +do123.net +do1618.com +do1999.com +doabit.com +dobest.com +dobunkan.com +doc163.com +doc88.com +doccamera.com +docer.com +docexcel.net +docin.com +docin365.com +dockerinfo.net +dockerone.com +dockone.io +doclass.com +docpe.com +zzdh.net +zzdengji.com +zzded.com +docschina.org +docsou.com +doctor-network.com +doctorcom.com +doctorxiong.club +doctoryou.ai +docx88.com +doczhi.com +doczj.com +dodjoy.com +dodo.link +dodo8.com +dodobook.me +dodobook.net +dodoca.com +dodoeasy.com +dodoedu.com +dodoh5.com +dodomh.com +dodonew.com +dodovip.com +doergob.com +dogecdn.com +dogecloud.com +dogedoge.com +dogfight360.com +doglg.com +doglobal.net +dogmr.com +dogwhere.com +dogyun.com +doh.plus +doh.pub +dohuo.com +doido.com +doii.cc +doit.am +doitim.com +doiua.com +doki8.com +dolcn.com +dole.club +dolfincdnx.com +dolfincdnx.net +dolfindns.net +dolike.com +doll-leaves.com +doll-zone.com +dollun.com +dolphin-browser.com +dolphin.com +dolphinphp.com +domaingz.com +domengle.com +dominoh.com +domobcdn.com +domolo.com +domp4.cc +domyshop.com +donews.com +dong-shou.com +dong-xu.com +dongannews.com +dongao.com +dongaocloud.com +dongbao120.com +dongbeishifandaxue.com +dongbucaijing.com +dongcai.net +dongcaibaoxian.com +dongchedi.com +dongchediapp.com +dongcheng1.com +dongcheng100.com +dongcheng120.com +dongchenghotels.com +dongdao.net +dongdongaijia.com +dongdongwenda.com +dongdongyx.com +dongdongzu.com +dongdui.com +dongeedu.com +dongeejiao.com +dongfang-wh.com +dongfang.com +dongfang77.com +dongfangfuli.com +dongfangnews.com +dongfangtech.net +dongfeng-honda-greiz.com +dongfeng-honda-inspire.com +dongfeng-honda-ur-v.com +dongfeng-honda-xr-v.com +dongfeng-nissan.com +dongfeng.net +dongfengtrucks.com +dongfund.com +dongge.com +dongguantoday.com +donghaifunds.com +donghao.org +donghulvdao.com +dongjinyu.com +dongjun.cc +dongke.org +dongkelun.com +dongkouren.com +donglingying.cc +donglishuzhai.net +dongliw.com +donglizhixin.com +dongmansoft.com +dongmanxingkong.com +dongmiban.com +dongnanmaifeng.com +dongni100.com +dongniao.net +dongnienglish.com +dongniyingyu.com +dongoog.com +dongputech.com +dongqiniqin.com +dongqiudi.com +dongqiudi.net +dongsenzs.com +dongshou.com +dongsport.com +dongtaijt.com +dongting.com +dongtu.com +dongua.com +dongwm.com +dongxi.net +dongxingkonggu.com +dongxuyitai.com +dongyaods.com +dongyin.net +dongyoutu.com +dongyun.biz +dongyun01.com +dongzhe93.com +dongzhougroup.com +dongzhuoyao.com +donhammondbattlecreekmi.com +donhonet.net +donvv.com +doodoobird.com +doofull.com +dooioo.com +dooland.com +doomii.com +dooo.cc +doooor.com +door-expo.com +dooreb.com +doorhr.com +doorzo.app +doorzo.net +doov5g.com +doowinfintec.com +dopa.com +dopic.net +dora-family.com +dorapp.com +dormforce.net +dorrr.com +doseeing.com +doserv.com +doshome.com +dosnap.com +dospy.com +dossav.com +dossen.com +dostor.com +dot.pub +dota2rpg.com +dota2tester.com +dotamax.com +dotcpp.com +doteck.com +dotgate.com +doticloud.com +dotty-china.com +dou.bz +dou.li +douban.co +douban.com +douban.fm +doubanio.com +doubean.com +doubilm.com +doubimeizhi.com +douboshi.net +douc.cc +doucang.com +douco.com +doudang.com +doudehui.com +doudier.com +doudou.com +doudou.in +doudou3.com +doudouad.com +doudouba.com +doudoubird.com +doufan.tv +doufl.com +doufm.net +douglassclub.com +douguo.com +douguo.net +douhan.li +douhao.com +douhaogongyu.com +douhaomei.com +douhua.net +douhuibuy.com +doukantv.com +doukeji.com +doulai.com +doulaicha.com +doulaidu.cc +doulaidu.com +doulaidu8.cc +douluodalu3.com +doumengkeji.mobi +doumi.com +doumistatic.com +doumobfour.club +doumobsix.site +doumpaq.com +doupai.cc +doupir.com +doupocangqiong1.com +douqi.com +douquyyds.com +doushen.com +doutian.me +doutub.com +doutukeji.com +doutushe.com +douwanweb.com +douxie.com +douya2.com +douyaobuy.com +douyapu.com +douyar.com +douyi.com +douyin.com +douyincdn.com +douyinec.com +douyinliving.com +douyinpic.com +douyinstatic.com +douyinvideo.net +douyinvod.click +douyinvod.com +douyou100.com +douyu.com +douyu.tv +douyuscdn.com +douyutv.com +douzi.com +douzihuyu.com +dovechina.com +dovesky.com +dovov.com +dowater.com +doweb8.com +dowebok.com +dowei.com +doweidu.com +dowell-health.com +dowhere.com +down123.cc +down123.me +down6.com +down7788.com +downbei.com +downcc.com +downclass.com +downerapi.com +downfi.com +downi9.com +downjoy.com +downk.cc +downkr.com +downkuai.com +zzd.pub +zzcszx.com +zzcomm.com +downok.com +downos.com +downpp.com +downsave.com +downv.com +downxia.com +downxy.com +downya.com +downyi.com +downza.com +downzz.com +dowv.com +doxue.com +doyee.com +doyoe.com +doyoo.net +doyoudo.com +doyouhike.net +dozer.cc +dozview.com +zzcodes.net +dp.tech +dp2u.com +dpcafc.com +dpcq1.net +dpcyjt.com +dper.com +dpfile.com +dplayerjsvideo.com +dplayersvideostatic.com +dplor.com +dplord.com +dplslab.com +dpqct.com +dptech.com +dptechnology.net +dpwl.net +dpxq.com +dq123.com +dq18.com +dq247.com +dq3c.com +dq99.net +dqccc.cc +dqccc.com +dqcccc.com +dqdaily.com +dqdgame.com +dqguo.com +dqhui.com +dqiis.com +dqjob88.com +dqpi.net +dqpkb.com +dqrailing.com +dqshdj.com +dqshjt.com +dqycw.com +dqyfapiao.com +dr009.com +draftstatic.com +drageasy.com +dragon-guide.net +dragon-hotel.com +dragonballcn.com +dragonest.com +dragonnewsru.com +dragonparking.com +dragonsea-china.com +dragontrail.com +dragonwell-jdk.io +dramx.com +drartisan.com +drasy.net +dratio.com +draveness.me +drawyoo.com +drcact.com +drcbank.com +drcg8.com +drclvs.com +drcuiyutao.com +drdrq.com +dream-loft.com +dream.ren +dream1986.com +dreamad.mobi +dreamcast.hk +dreamchasercapital.com +dreamershop.com +dreamine.com +dreamkite.net +dreammeta.net +dreamo100.com +dreampiggy.com +dreams-travel.com +dreamswood.com +dreamsz.net +dreawer.com +drfvtgbyk.xyz +drgou.com +drhcleanair.com +drice.cc +drinkmagazine.asia +drip.im +dripcar.com +driverdevelop.com +drivergenius.com +zzcm5.com +driverzeng.com +drivethelife.com +drli.group +drlmeng.com +drm-x.com +drm-x.net +drmaml.com +droi.com +droibaas.com +dropsec.xyz +drouma.com +drscrewdriver.com +drscrm.com +drtyf.com +drugfuture.com +druggcp.net +drumandbassworkout.com +drupalla.com +drupalproject.org +drv.tw +drvi.net +drvsky.com +ds-360.com +ds023.com +ds123456.com +ds5f.com +dsb.ink +dsblog.net +dscbs.com +dseman.com +dsfdc.com +dsfof.com +dshigao.com +dshrc.com +dsitni.com +dskb.co +dskystudio.com +dslbuy.com +dslyy.com +dsmxp.com +dsmyiyuan.com +dsmzyy.com +dsmzyy120.com +dsn300.com +dsnzyy120.com +dsook.com +dsp.com +dspwhy.com +dsq.com +dssz.com +dstfsbc.com +dsti.net +dswjcms.com +dswmt.com +dswzxh.com +dsxdn.com +dsxtv.pro +dsxys.pro +dsyjz0755.com +dszw.net +dtcj.com +dtcms.net +dtcoalmine.com +dtcxw.com +dtdream.com +dtdxcw.com +dtfcw.com +dtidc.com +dtime.com +dtmao.cc +dtmuban.com +dtrcb.com +dts007.com +dtstack.com +dtstatic.com +dtston.com +dttc-icp.com +dttt.net +dtuosh.com +dturl.cc +dtuyun.com +dtxfjs.com +dtxmw.com +dtxn.net +dtxww.com +dtysky.moe +dtyunxi.com +dtyzg.com +dtzj.com +du00.com +du175.com +du7.com +du8.com +dualaid.com +duan.red +duanlonggang.com +duanmale.com +duanmeiwen.com +duanqu.com +duanrong.com +duanshu.com +duantian.com +duanwenxue.com +duanxb.com +duanxin321.com +duanxin520.com +duanyoutv.vip +duanzao001.com +duanzikuaizui.com +duapp.com +duapps.com +duba.com +duba.net +dubaike.com +dubairen.com +dubbo.io +dubprince.com +dubyc.com +dudong.com +dudu25.com +dudubashi.com +dududu.la +dudumeijia.com +duduyu.net +duelcn.com +dugen.com +dugoogle.com +duguying.net +duhao.net +dui.ai +dui1dui.com +dui88.com +dui9999.com +duia.com +duiai.com +duihuashijie.com +duikuang.com +duimg.com +duimin.com +duiopen.com +duishu.com +duitang.com +duitianhe.com +duizhuang.com +dujiaoshou.org +dujiapin.com +dujin.org +dujiza.com +dukechiang.com +dukharo.com +dukuai.com +dulesocks.com +dullong.com +dullr.com +dulwich.org +dumanhua.com +dumasoftware.com +dumeiwen.com +dumi0898.com +dumpapp.com +dun-mfy-cdn.com +dunjiaodu.com +dunkhome.com +dunstanhardcastle.com +dunwang.com +duobei.com +duobeiyun.net +duobiji.com +duocaitou.com +duochang.cc +duodaa.com +duodanke.com +duodaoertong.com +duodian.com +duoduo123.com +duoduobaba.com +duoduocdn.com +duoduodashi.com +duoduoyin.com +duoduoyouli888.com +duoduozb.com +duoduozhifu.com +duoerpharmacy.com +duofriend.com +duogouhui.com +duohou.net +duohui.co +duoic.com +duojiaochong.com +duokaiwang.com +duokan.com +duokanbox.com +duoke.net +duokebao.net +duokebo.com +duoketuan.com +duoku.com +duolabao.com +duolabaocdn.com +duoladayin.com +duolaima.com +duolapiao.com +duolduo.com +duole.com +duolebo.com +duolegame.com +duolerong.com +duoluodeyu.com +duoluosb.com +duomai.com +duomi.com +duomi.me +duomiapp.com +duomicheng.com +duomijuan.com +duomiyou.com +duomni.com +duomu.tv +duopao.com +duoqu.com +duorenwei.com +duorou.com +duosai.com +duose.com +duosenfashion.com +duoshoubang.com +duoshuo.com +duososo.com +duost.com +duotai.net +duote.com +duotegame.com +duoti181.shop +duotoupiao.com +duotuscdn.com +duouoo.com +duowan.com +duowanns.com +duoxiangpai.com +duoximh.com +duoxinqi.com +duoxuanyundian.com +duoyewu.com +duoyi.com +duoyinsu.com +duoyoumi.com +duozhi.com +duozhishidai.com +duozhuayu.com +duozhuayu.net +duoziwang.com +dup2.org +dupan.ink +durongjie.com +dusays.com +dushewang.com +dushicn.com +dushiliren.net +dushimh.com +dushitiyan.com +dushu.com +dushu.io +dushu263.com +dushu365.com +dushu369.com +dushudaren.com +dushuge.net +dushw.com +dustess.com +dustglobal.com +dustit.me +dusulang.com +dute.me +dutenews.com +dutils.com +dutype.com +duuchin.com +duunion.com +duwenxue.com +duwenz.com +duwenzhang.com +duxiaoman.com +duxiaomanfintech.com +duxiaoshuo.com +duxinjianli.com +duxiu.com +duyandb.com +duyao001.com +duyixing.com +duzelong.com +duzhe.com +duzhoumo.com +dv37.com +dv58.com +dvagent.com +dvbbs.net +dvbcn.com +dvcms.com +dvd85.com +dvd94.com +dvdc100.com +dvdjy.com +dvmama.com +dvmission.com +dvr163.com +dvrdydns.com +dvvvs.com +dw.la +dwfei.com +dwhub.net +dwinput.com +dwion.com +dwjoy.com +dwmoniqi.com +dwntme.com +dwnxy.com +dwq.com +dwrh.net +dwsedu.com +dwstatic.com +dwstock.com +dwt.life +dwtedx.com +dwxw.net +dwz.date +dwz.lc +dwz.mk +dwzjd.com +dx-job.com +dx-tech.com +dx00.net +dx04131.com +dx106.com +dx114118.com +dx168.com +dxbei.com +dxclinics.com +dxda.com +dxdlw.com +dxecs.com +dxf5.com +dxf6.com +dxiazaicc.com +dxjs.com +dxlfile.com +dxmjinr.com +dxmpay.com +dxmstatic.com +dxpei.com +dxpmedia.com +dxqyy.com +dxrc.com +dxsaxw.com +dxsbb.com +dxsclass.com +dxsdb.com +dxsng.com +dxsport.com +dxsvr.com +dxszx.com +dxton.com +dxwei.com +dxxnews.com +dxxxfl.com +dxy.com +dxy.me +dxy.net +dxyan.org +dxyb.com +dxycdn.com +dxys.pro +dxzq.net +dxztc.com +dxzx.com +dxzy163.com +dy1905.net +dy2018.com +dy2018.net +dybeta.com +dycar.net +dycars.com +dycdn.com +dycf.net +dycic.net +dycyw.com +dydab.com +dydata.io +dydt.net +dydytt.com +dye-ol.com +dyee.org +dyfc.net +dyg-hec.com +dygang.com +dygangs.com +dygf.com +dygod.org +dygzs.com +dyhjw.com +dyhnbgtsl.xyz +dyhr88.com +dyhxgame.com +dyhzj.com +dyjqd.com +dyketai.net +dykj.site +dylc.com +dyly.com +dyonr.com +dyqc.com +dyrbw.com +dyrcb.net +dyrjjt.com +dytechnolog.com +dytt789.com +dytt7899.com +dytt8.com +dytt8.net +dyxldjy.com +dyxsdwm.com +dyxtw.com +dyxuexin.com +dyxw.com +dyxz.la +dyys.com +dyysoft.net +dyzdx.com +dyzxw.org +dz-z.com +dz.tt +dz11.com +dz19.net +dz1982.com +dz31hao.com +dz88.com +dzbake.com +dzbarcode.com +dzbchina.com +dzblxx.com +dzboligang.com +dzcj.tv +dzcjw.com +dzcmedu.com +dzdiy.com +dzdu.com +dzdvip.com +dzfc.com +dzfxh.com +dzglsb.net +dzgxq.com +dzh.link +dzhaoj.com +dzhope.com +dzhqexpo.com +dzjrc.com +dzkbw.com +dzlaa.com +dzllzg.com +dzmdq.com +dzmhospital.com +dzng.com +dzoptics.com +dzpk.com +dzqu.com +dzr120.com +dzrbs.com +dzrlvy.com +dzsaas.com +dzsaascdn.com +dzsc.com +dzsg.com +dzshengchi.com +dzsm.com +dzsrcw.com +dzssy.com +dztcbj.com +dztcnm.com +dztdkt.com +dztv.tv +dzty365.com +dzvv.com +dzw3.com +dzwebs.net +dzwindows.com +dzwww.com +dzwww.net +dzxwnews.com +dzxxzy.com +dzy.link +dzyqc.com +dzyqh.com +dzyule.com +dzyysb.com +dzyzj.com +dzz.cc +dzzgsw.com +dzzoffice.com +dzzui.com +e-10031.com +e-3lue.com +e-bidding.org +e-bq.com +e-bq.org +e-buychina.com +e-celap.com +e-chinalife.com +e-cloudstore.com +e-cookies.net +e-cspc.com +e-cuc.com +e-dache.com +e-eway.com +e-fangtong.com +e-flyinc.com +e-ging.com +e-ging.net +e-gooo.com +e-hongw.com +e-jjj.com +e-jlt.com +e-kawai.com +e-lining.com +e-lock.xin +e-mallchina.com +e-micromacro.com +e-nci.com +e-net.hk +e-onekey.com +e-picclife.com +e-pointchina.com +e-ruikd.com +e-sleb.com +e-sscard.com +e-tiller.com +e-transformer.com +e-tui.net +e-xina.com +e0514.com +e0575.com +e0734.com +e077.com +e118114.com +e12345.com +e12e.com +e139.com +e1988.com +e213155.com +e21cn.com +e22a.com +e24c.com +e253.com +e2capp.com +e2esoft.com +e2say.com +e360e.com +e360xs.com +e365.org +e365mall.com +e3ol.com +e4008.com +e4221.com +e521.com +e5421.com +e546.net +e5618.com +e5n.com +e5wq.cc +e66666.com +e68cname.com +e7890.com +e7ckr.icu +e7e6.net +e7e7e7.com +e7wei.com +e836g.com +e890.com +e8zw.com +e9377f.com +e9898.com +e99999.com +ea-retina.com +ea3w.com +eabax.com +eachinfo.com +eachnet.com +eachsee.com +eaeb.com +eafifaonline2.com +eagleyun.com +eahui.com +eaibot.com +eaka365.com +eal-ceair.com +ealdi.xyz +eallcn.com +eallerp.com +eallone.com +eamimi.com +eamn.net +earth2037.com +earthedu.com +earthstar-cloud.com +easck.com +eascs.com +easeeyes.com +easemob.com +easerun.com +easesale.com +easeslb.com +easetuner.com +easeus.com +easeyedelivery.com +easilysend.com +easitcn.com +easiu.com +easonad.com +eassos.com +east.net +eastall.com +eastar-group.com +eastbest.com +eastbuy.com +eastchinafair.com +eastcom-sw.com +eastcom.com +eastcom.site +eastcompeace.com +eastcoms.com +eastday.com +eastdesign.net +eastdrama.com +eastdushi.com +easteat.com +eastent.com +easternalong.com +eastforever.com +eastftp.net +eastfu.com +easthome.com +eastib.com +easticloud.com +eastled.com +eastlending.com +eastmannplastics.com +eastmoney.com +eastmoneyfutures.com +eastmoneyloans.com +eastobacco.com +eastpharm.com +eastsilver.com +eastsoo.com +easttone.com +eastups.com +eastwinn.com +easy-all.net +easy-china.com +easy-h5.com +easy-linkholiday.com +easy-mock.com +easy2world.com +easy361.com +easy888.com +easyaq.com +easyar.com +easyarvr.com +easybug.org +easydarwin.org +easyder.com +easydoc.xyz +easyfang.com +easyfapiao.com +easygame2021.com +easygametime.com +easyhaitao.com +easyhexo.com +easyhin.com +easylaa.com +easyliao.com +easyliao.net +easylink.io +easylinkin.com +easylinkin.net +easymorse.com +easymule.com +easynet.vip +easypayx.com +easyreadtech.com +easyrecovery.cc +easyrecovery.net +easyrecoverychina.com +easyrecoverycn.com +easysofthome.com +easyswoole.com +easytifen.com +easytimetv.com +easytite.com +easytocn.com +easytouch.com +easytrip.com +easyzw.com +eateapp.com +eaydu.com +eayou.com +eayuan.com +eayyou.com +eazytec-cloud.com +eb-ind.com +eb80.com +ebadu.net +ebaifo.com +ebaina.com +ebangchina.com +ebanma.com +ebanshu.net +ebaoquan.org +ebaotech.com +ebasset.com +ebchina.com +ebchinaintl.com +ebchinatech.com +ebdan.net +ebdoor.com +ebfcn.com +ebfortune.com +ebibi.com +ebico.com +ebigear.com +ebiobuy.com +ebioe.com +ebiotrade.com +ebioweb.com +ebjfinance.com +ebkj.net +eblockschina.com +ebnew.com +ebocert.com +ebookbao.net +ebookmen.com +ebopark.com +eboxmaker.com +ebrun.com +ebscn-am.com +ebscn.com +ebseek.com +ebsfw.com +ebtang.com +ebtrust.com +ebuckler.com +ebways.com +ec-ae.com +ec-cloudtech.com +ec-founder.com +ec-world.com +ec.com +ec3s.com +ec51.com +ec517.com +ec66.com +ecadi.com +ecaidian.com +ecaihr.com +ecami.xyz +ecamzone.cc +ecaray.com +ecare365.com +ecartoon.net +ecarxgroup.com +ecbcamp.com +ecboo.com +eccang.com +eccc-china.com +eccdnx.com +eccn.com +eccnmall.com +ecco-market.com +ecctaa.com +ecdpower.net +ecduo.com +eceibs.com +eceibs.net +eceibs20.com +ecej.com +ecer.com +ecezt.com +ecgci.com +ecgoods.com +echanceyun.com +echangye.com +echao8.com +echargenet.com +echarpile.com +echatsoft.com +echead.com +echepiao.com +echiele.com +echinacareers.com +echinacities.com +echinagov.com +echinatobacco.com +echo-isoftstone.com +echo188.com +echodns.xyz +echoing.tech +echoteen.com +echuandan.com +eciawards.org +ecice06.com +ecinnovations.com +ecitic.com +eciticcfc.com +ecjobhome.com +ecjson.com +eckjzx.com +eckwai.com +ecloud-gdu.com +ecloud.hk +ecmagnet.com +ecmoban.com +ecnu.net +ecnudec.com +ecoalchina.com +ecocn.org +ecombdapi.com +ecombdimg.com +ecombdstatic.com +ecombdvod.com +ecomoter.com +econewstv.com +ecool.site +ecoplastech.com +ecoprint.tech +ecorr.org +ecouser.net +ecovacs.com +ecp888.com +ecparty.net +ecphk.com +ecppn.com +ecqun.com +ecrrc.com +ecs004.com +ecs6.com +ecsage.net +ecshop.com +ecshop123.com +ecsits.com +ecsponline.com +ecsvst.com +ecsxs.com +ectrip.com +ecuc123.net +ecukwai.com +ecustmde.com +ecvv.com +ecwan77.net +ecydm.com +ecyj.net +ecyti.com +ed2000.com +ed2kers.com +ed2kk.com +eda-china.com +eda1024.com +eda2.com +eda365.com +eda365.net +edabbs.com +edaboss.com +edacn.net +edadoc.com +edagit.com +edai.com +edaibo.com +edaili.com +edaixi.com +edaizhijia.com +edajob.com +edanji.com +edaocha.com +edatahome.com +edatop.com +edawiki.com +edb-tech.com +edcba.com +eddic.net +eddycjy.com +ede35.com +edge-byted.com +edgesrv.com +edhic.com +edianshang.com +edianzu.com +ediclot.com +edifier.com +edimei.com +edingzhuan.com +editcode.net +ediuschina.com +edk24.com +edmadf.com +edmcn.net +edns.com +edodocs.com +edojia.com +edong.com +edongeejiao.com +edongli.net +edongyun.com +edoou.com +edowning.net +edozx.com +edqgk.com +edragongame.com +edrawsoft.com +edsionte.com +edspay.com +edt2017.com +edt2018.com +edtsoft.com +edu-book.com +edu-chineseembassy-uk.org +edu-cj.com +edu-nw.com +edu-shanghai.net +edu03.com +edu0851.com +edu201.com +edu24o1.com +edu24ol.com +edu4399.com +edu510.com +edu5a.com +edu63.com +edu777.com +edu80.com +edu84.com +edu84.net +edu88.com +eduartisan.com +educg.net +educhn.net +educoder.net +edudc.net +eduease.com +eduego.com +eduei.com +eduglobal.com +eduglobalchina.com +eduiso.com +edujia.com +edujianshe.com +edujiaoyu.com +edumail.pub +eduour.com +edupm.com +edurck.com +edushi.com +edusoho.com +edusoho.net +edutao.com +edutime.net +edutt.com +eduu.com +eduuu.com +eduwenzheng.com +eduwest.com +eduwo.com +eduwx.com +eduxiao.com +eduxiji.net +eduyf.com +eduyo.com +eduzhai.net +eduzhi.com +eduzhixin.com +eduzs.net +edward-han.com +edwiv.com +ee-nav.com +ee1234.com +ee68.com +ee8828.com +eebbk.com +eebbk.net +eeblog.net +eeboard.com +eechina.com +eecn.cc +eecnt.com +eecourse.com +eecso.com +eedevice.com +eedns.com +eee-eee.com +eee4.com +eeedri.com +eeedu.net +eeeen.com +eeeetop.com +eeeff.com +eeeknow.com +eeeqi.net +eeetb.com +eefans.com +eefcdn.com +eeff.net +eefocus.com +eehu.com +eeio99.com +eeioe.com +eelly.com +eeook.com +eeparking.com +eeq8.com +eeqiu.com +eeskill.com +eeso.net +eetoday.com +eetop.com +eetrend.com +eetrust.com +eeworld.com +eeworm.com +eexiaoshuo.com +eexing.com +eeyaa.net +eeyxs.com +eeyy.com +eeyys.com +eezml.com +ef-cdn.com +ef360.com +ef360.net +ef9377.com +efala.net +efang.tv +efapiao.com +efashionchina.com +efe.cc +efengji.org +efesco.com +eff-soft.com +effapp.com +effetspositifs.com +efficient.hk +effirst.com +efivestar.com +efly.cc +eflybird.com +eflycloud.com +eflydns.net +efnchina.com +efotile.com +efount.com +efoxconn.com +efpp.com +efucms.com +efueloil.com +efuncn.com +efunent.com +efunq.com +efwh.com +efy-tech.com +efyzhcwk.cfd +egainnews.com +egcmedia.com +egg-born.org +zzcm2.com +eggjs.org +eggtt.com +egongzheng.com +egoonet.com +egotops.com +egou.com +egou0515.com +egouz.com +egovsum.com +egreatworld.com +egret-labs.org +egret.com +egrowads.com +egsea.com +egshuyuan.com +egt365.com +ehafo.com +ehaier.com +ehaiwang.com +ehangtian.com +ehaoyao.com +ehaoyao.us +ehclglobal.com +ehcoo.com +ehealthcareforum.com +ehedco.com +eheren.com +ehijoy.com +ehinvest.hk +ehnasia.com +ehnchina.com +ehome5.com +ehome8.com +ehomeclouds.com +ehomeday.com +ehouse411.com +ehousechina.com +ehoutai.com +ehowbuy.com +ehowbuy.net +ehsy.com +ehtttop.com +ehualu.com +ehuarun.com +ehuatai.com +ehub.net +ehui.net +ehujia.com +ehuoke.com +ehuoyan.com +ehuzhu.com +ehvacr.com +ei6nd.com +eiabbs.net +eickaopei.com +eicodesign.com +eicp.net +eid-sft.com +eidcenter.com +eidlink.com +eigenvr.com +eightbridge.com +eightedu.com +eigpay.com +eiicn.com +eiimg.com +eiisys.com +eilieili.cc +eimoney.com +eingdong.com +einkcn.com +eintone.com +eiot.com +eiray.com +eisoo.com +eistudy.com +eit0571.com +ej22g.com +ejamad.com +ejcms.com +ejcop.com +ejdyin.com +ejectu.com +ejee.com +ejeegroup.com +ejfeng.com +ejiacn.com +ejianmedia.com +ejiayu.com +ejie.me +ejinqiao.com +ejinshan.net +ejion.net +ejiyao.com +ejktj.com +ejmrh.com +ejoy.com +ejoy365.com +ejoy365hk.com +ejrfood.com +ejttp.com +eju.com +ejudata.com +ejujiu.com +ejunshi.com +ejustcn.com +ek6.com +ekaidian.com +ekan001.com +ekang99.com +ekaobang.com +ekaoyan.com +ekaoyan365.com +ekclubinternational.com +ekuaibao.com +ekwangs.com +ekweixin.com +elabinfo.com +elane.com +elanso.com +elanw.com +elawoffice.net +elbmodel.com +eldawa.com +ele.me +ele001.com +ele12.com +elecfans.com +elecfans.net +elecinfo.com +elecrystal.com +elecshop.com +eleduck.com +elefang.com +eleme.io +elemecdn.com +element3ds.com +elementfresh.com +elenet.me +elephant-base.com +elex-tech.net +elexcon.com +elfartworld.com +elfinbook.com +elfjs.com +elgnet.com +elht.com +elian5.com +elianhong.com +elianmeng.vip +elichtmedia.com +elikeme.com +elikeme.net +elitecrm.com +eliushi.com +eliwang.com +elkpi.com +ellechina.com +elleffgee.com +ellemen.com +elliotxing.com +ellll.com +elmerlxy.com +eloancn.com +elong-edm.com +elong.com +elong.net +elongshine.com +elongstatic.com +elontest.com +eloonggame.com +elpcon.com +elpwc.com +els001.com +elsenow.com +elsz5.xyz +elt-china.com +eltws.com +eluosidy.com +eluxiu.com +eluying.com +elvgufen.com +elvshi.com +elvxing.net +elxk.com +em-ide.com +emadao.com +emaileds.com +emailflame.com +emailxqq.com +emakerzone.com +emall001.com +emao.com +emao.net +emarbox.com +emas-poc.com +emaup.com +embcom.net +embed.cc +embedfire.com +embedhq.org +embedsky.com +embedtrain.org +embedu.org +embedunion.com +embedway.com +embest-tech.com +embryform.com +embsky.com +emcbj.com +emcsosin.com +emeixs.com +emen.ltd +emepu.com +emilhk.com +emjob.com +emlinix.com +emlog.net +emodor.com +emojimobile.com +emojiwiz.com +emqx.com +emqx.net +emrl0z.com +ems-audio.com +ems517.com +emsec.hk +emshost.com +emsym.com +emtana.com +emtronix.com +emtx.com +emu999.net +emuban.com +emuch.net +emugif.com +emui.com +emui.tech +emuia.com +emulatedlab.com +emumax.com +emupic.com +emushroom.net +emwan.com +emyard.com +en.tm +en51.com +en8848.com +en998.com +ename.com +ename.net +enappstore.com +enaw-almg3.com +enbowang.com +enbrands.com +enec.net +enelcn.com +enet360.com +enetedu.com +enfi.vip +enfodesk.com +eng24.com +eng888.com +engeniustec.com +engkoo.com +englishgoai.com +englishtownpromotion.com +engloncar.com +engpx.com +engr-z.com +enguo.com +engz.net +enicn.com +enjoy.link +enjoy1992.com +enjoy3c.com +enjoydiy.com +enjoyfe.com +enjoying3d.com +enjoykorea.net +enjoymeet.com +enjoyyue.com +enjoyz.com +enkichen.com +enkiorder.com +enkj.com +enlightent.com +enlistsecurely.com +enlistsecureup.com +enmonster.com +enmotech.com +enmuo.com +enn-ng.com +ennresearch.com +ennweekly.com +enoya.com +enpapers.com +enqoo.com +enread.com +enroo.com +enroobbs.com +enrz.com +enshide.com +enshijob.com +ensotemple.com +enstylement.com +ent120.com +enterdesk.com +enunix.com +envisioncn.com +envisionhealthstudio.com +enyamusical.com +enzj.com +eoaoo.com +eoeandroid.com +eoemarket.com +eoemarket.net +eoffcn.com +eoivisa.com +eol8.com +eolink.com +eolinker.com +eomoy.com +eonun.com +eooioo.com +eoopoo.com +eooqoo.com +eoouoo.com +eoozoo.com +eoriver.com +eorzea.moe +eosantpool.com +ep-china.net +epaas.net +epaiclub.com +epailive.com +epalfish.com +epama.com +epanshi.com +epay.com +epbiao.com +epchina.com +epcnn.com +epcsw.com +epday.com +epeaksport.com +epeiyin.com +epet.com +epetbar.com +epetpet.com +epexpo-asia.com +ephen.me +epian1.com +epichust.com +epinautomation.com +epinduo.com +epinga.com +epinjob.com +epinv.com +epinzu.com +epjike.com +epjob88.com +epkey.com +eplove.com +epoos.com +eprezi.com +epsonconnect.com +epstsoft.com +epub360.com +epubchina.com +epubit.com +epweike.com +epwitkey.com +epwk.com +epzcw.com +eqbyc.com +eqding.com +eqh5.com +eqidi.com +eqie.com +eqifa.com +eqigou.com +eqingdan.com +eqiseo.com +eqishare.com +eqixiu.com +eqiyingxiao.com +eqmobi.com +eqnvip.com +equn.com +eqxiu.com +eqxiu.mobi +eqxiul.com +eqxiuzhan.com +eqyn.com +eqz.cc +er07.com +er236.com +eraclean.com +eran123.com +eranet-dns.com +eranet.com +ercc.cc +erdaicms.com +erdangame.xyz +erdangjiade.com +erdianzhang.com +erdong.site +erdosrcb.com +erentalcarpro.com +ereuiib.com +erfdhiu.com +erg2008.com +ergecdn.com +ergedd.com +ergengtech.com +ergengtv.com +ergouzi.fun +erhkpo.com +ericfu.me +erichfund.com +erji.com +erji.net +erke.com +erldoc.com +erlo.vip +erlou.com +ermao.com +ermiao.com +ernaonet.com +ernest.me +ernxzc.com +eroacg.com +erongdu.com +erpang.cc +erpcoo.com +ershenghuo.net +ershicimi.com +ershouhui.com +ersjk.com +ert295.com +ert7.com +ertmineq.com +ertonggushi.com +ertongkongjian.com +ertongtuku.com +ertoutiao.com +erun360.com +erutluv.com +erya100.com +eryajf.net +eryyutu.com +es-soccer.com +es123.com +es9e.com +esa2000.com +esafenet.com +esavip.com +escdn.com +esclass.com +esdaxiagu.com +esde.cc +esellerbox-case.com +esemseo.com +esensoft.com +esfimg.com +eshangle.com +esheep.com +eshenlin.com +eshimin.com +eshiyun.info +eshop-switch.com +eshopb2c.com +eshow365.com +eshufa.com +eshukan.com +eshuu.com +eshzp.com +esinidc.com +esk365.com +esky8.com +eskysky.com +eslosity.com +esmartwave.com +esmod-beijing.com +esmplus.com +esnai.com +esnai.net +esoboy.com +eson.org +esoo.org +esouou.com +esouti.com +esoyu.com +espnlol.com +esqc.xyz +esr.com +essaystar.com +essca.com +essclick.com +essemi.com +essencefund.com +ession.com +essjj.com +essurl.com +essyy.com +estock.cc +estory365.com +estrongs.com +estudychinese.com +esugimoto.com +esun21.com +esun88.com +esuniao.com +esunny.com +eswin.com +eswxj.com +eswzx.com +esycd.com +eszmall.com +esztsg.org +esztyg.com +eszwdx.com +eszyb.com +et-fine.com +et59.com +etao.com +etaog.com +etccenter.com +etcchebao.com +etcsd.com +etelux.com +eternalsakura.com +eternalsys.com +etescape.com +etest8.com +eteste.com +etf.group +etf88.com +ethainan.com +ethan.pub +ethercap.com +ethfans.org +etiantian.com +etiantian.net +etiantian.org +etimeusa.com +etiv.me +etjournals.com +etlong.com +etmchina.com +etmoc.com +etmt1.com +etocrm.com +etomlink.com +etongdai.com +etongguan.com +etonkidd.com +etoote.com +etoplive.com +etoubao.com +etowz.com +etpass.com +etrack01.com +etrack02.com +etrack03.com +etrack04.com +etrack05.com +etrack07.com +etrack08.com +etranshare.com +etrd.org +etrump.net +ets100.com +etsc-tech.com +etsoon.com +etsstar.com +etstock.net +ettbl.org +ettdnsv.com +ettshop.com +etu6.com +etuan.com +etudu.com +etycx.com +etyy.com +etyyy.com +etz927.com +etzuqiu.com +eu4cn.com +eub-inc.com +euci-software.com +eudic.net +eueueu.com +eufaka.com +eugnnn.com +eui.cc +euibe.com +eulike.com +eulixos.com +eureka.name +eurochinesedaily.com +eusercenter.com +ev123.com +ev123.net +ev3ds.com +eva001.com +evaad.com +evacg.co +evancg.com +evask360.com +evcar.com +evcard.com +evcard.vip +evdays.com +eve.moe +eventdove.com +everbaas.com +everbright.com +everdns.com +evereasycom.com +everedit.net +everet.org +evergrande.com +evergrandeauto.com +everknight.net +evernakedcake.com +eversino.com +everstar.xyz +everstray.com +everturst.com +everybodygame.com +everychina.com +everydo.com +everyinch.net +everyouthtech.com +evestemptation.com +evewan.com +evfchina.com +evget.com +evhui.com +evideostb.com +evilbinary.org +evileyesaint.com +evilwind.fun +evketang.com +evlook.com +evoc.com +evotrue.com +evv1.com +evzhidao.com +ew9z.com +ewaga.com +ewang.com +ewanshang.com +ewarecomputer.com +ewatt.com +ewceo.com +ewdcloud.com +ewdtx.com +ewebeditor.net +ewebsoft.com +ewecha.com +ewei.com +eweiqi.com +ewen.co +ewenyan.com +ewerew.com +ewide.net +ewidecloud.com +ewidewater.com +ewin007.com +ewinall.com +ewku.com +ewoka.com +ewomail.com +eworksglobal.com +eworldship.com +ewpeinfo.com +ewqcxz.com +ewstudy.com +ewtang.com +ewteacher.com +ewuqa.com +ex-silver.com +ex-starch.com +exam58.com +exam76.com +exam8.com +examcoo.com +examda.com +examebook.com +examk.com +exampx.com +exands.com +exaphotons.com +exasic.com +exbot.net +excake.com +excalibur.link +excbio.com +excean.com +excel8.com +excel880.com +excelcn.com +excelhome.net +excelpx.com +exceltip.net +exchen.net +excm.net +exdoll.com +exexm.com +exezhanqun.com +exfree.com +exhera.com +exiaoba.com +exinee.com +exmailgz.com +exmailqq.com +exmrw.com +exnpk.com +exntech.com +exo-mk.com +expba.com +expdns.net +expertizaobuvi.com +expin.site +expingworld.com +expiredns.net +expirenotification.com +expirepausedns.com +expku.com +expoeye.net +exponingbo.com +expoon.com +expoooo.com +expotu.com +expowindow.com +expresscompanynetwork.com +expreview.com +expsky.com +exsvc.net +ext2fsd.com +extbrand.com +extfans.com +exthin.net +extmail.org +extron-tech.com +extscreen.com +extstars.com +exuanfang.cc +exuanpin.com +exuanshi.com +exuekt.com +exuezhe.com +exxstar.com +exxvip.com +ey-app.com +ey100.com +ey99.com +eyangguang.com +eyangmedia.com +eyao168.com +eyaobei.com +eyasglobal.com +eyasgloble.com +eydata.net +eye024.com +eye027.com +eye0712.com +eye0731.com +eye0746.com +eyeabc.com +eyee.com +eyejin.com +eyeofcloud.com +eyeofcloud.net +eyepetizer.net +eyesar.com +eyeshenzhen.com +eyeso.net +eyhsj.com +eyili.com +eyingyubao.com +eyoodns.com +eyou.com +eyou.net +eyoucms.com +eyourbusiness.com +eyprint.com +eyu2017.xyz +eyuangong.com +eyuconnect.com +eyugame.com +eyunidc.com +eyunker.com +eyunzhu.com +eyurumen.com +eyuyan.com +eyuyan.la +eyuyao.com +eywedu.com +eywedu.net +eywedu.org +eyy168.com +ez-leaf.com +ezagoo.com +ezaiai.com +ezbuypay.com +ezca.org +ezchip.tech +ezcname.com +ezcpt.com +ezcun.com +ezdnscenter.com +ezeroshop.com +ezgckg.com +ezhangdan.com +ezhangu.com +ezhicai.com +ezhijiantuoluo.com +ezhun.com +ezitong.com +ezlippi.com +ezliushao.com +ezloo.com +ezlost.com +ezne.net +eznowdns.com +eznowdns.net +ezone-h5.com +ezpaychain.com +ezpro.pro +ezrpro.com +ezsmth.com +eztcn.com +eztest.org +eztg.com +eztvnet.com +ezucoo.com +ezwan.com +f-0.cc +f-stack.org +f.cx +f008.com +f0580.com +f09qgja1.com +f1-shanghai.com +f139.com +f1688.com +f1zd.com +f2e.im +f2qu.com +f2time.com +f2zd.com +f315.cc +f32365.com +f3322.org +f41g.com +f537.com +f5432.com +f54321.com +f5gh.com +f5sd.com +f5yx.com +f7777.net +fa-today.com +fa68.com +faakee.com +faanw.com +fabang.com +fabao365.com +fabaofoundation.com +fabiao.com +fabiaoqing.com +fabigbig.com +fabu114.com +faburuanwen.com +facaishiyi.com +facang.com +face100.net +face2ai.com +faceboer.com +facecloud.net +facehufu.com +faceid.com +faceplusplus.com +faceu.com +faceu.mobi +faceu.net +faceui.com +faceunity.com +fachcloud.com +facri.com +factj.com +factube.com +fad123.com +fadada.com +fadaren.com +fadesky.com +fadfunds.com +fadior.cc +fadoudou.com +fadsc.com +fadui.com +fafa9.com +fafa986.com +fafaku.com +fafawang.com +fafeng.com +fafuli.com +fagaoshi.com +fageka.com +fagua.net +fahai.com +fahao8.com +faidev.cc +faidns.com +faimallusr.com +faioo.com +faipod.com +fairguard.net +fairguard.tech +fairhr.com +fairygui.com +fairysoftware.com +fairytest.com +faiscm.com +faisco.com +faisys.com +faiusr.com +faiusrd.com +faiww.com +fajiayun.com +fakeloc.cc +falomall.com +faloo.com +fameile.net +famen88.com +famens.com +famensi.com +famicn.com +famige.com +familiacanina.com +familykoloro.com +familylifemag.com +famiyou.com +famulei.com +fan-lun.com +fan-xun.com +fan-yong.com +fan88.com +fanai.com +fancl-vip.com +fancyapi.com +fancydsp.com +fancyecommerce.com +fandengds.com +fandian.com +fandongxi.com +fane8.com +fanerkongjian.com +fanfannet.com +fanfou.com +fang-te.com +fang-zhou.com +fang.com +fang33.com +fang668.com +fang91.com +fang99.cc +fang99.com +fangbaoqiang.net +fangbei.org +fangbx.com +fangcang.com +fangchan.com +fangchan0573.com +fangchanhz.com +fangchip.com +fangcloud.com +fangdaijisuanqi.com +fangdd.com +fangdichanceo.com +fangdr.com +fangfa.net +fangfaku.net +fangguanjg.com +fanghuafu.com +fanghuihui.com +fanghuob.com +fanging.com +fangjia.com +fangjiadp.com +fangkeduo.net +fangkewang.com +fangkuai.link +fangkuaiwang.com +fangkuaiyi.com +fanglakeji.com +fangle.com +fanglimei.com +fanglinad.com +fanglist.com +fanglitong.com +fangmeileju.com +fangqk.com +fangshanzi.com +fangsi.net +fangstar.com +fangtan007.com +fangtangtv.com +fangte.com +fangtingzfc.com +fangtoo.com +fangtoon.com +fangtuwang.com +fangtx.com +fangwei315.com +fangweima.com +fangwuzaixian.com +fangxiaobao.net +fangxiaoer.com +fangxin.com +fangxinbao.com +fangxinmai.com +fangxinzhuomian.com +fangxuela.com +fangyb.com +fangyi.com +fangyiai.com +fangying.tv +fangyou.com +fangyouquan.com +fangyuan365.com +fangyuange.com +fangyunlin.com +fangzd.com +fangzhipeng.com +fangzhouad.com +fangzhouzi.com +fangzongguan.com +fanhai-hk.com +fanhai8.com +fanhaoyue.com +fanhonghua.net +fanhougame.com +fanhuan.com +fanhuan.org +faniuwenda.com +fanjian.net +fanjianhome.com +fanjinyan.com +fankebang.com +fankhome.com +fanli.com +fanli001.net +fanlibei.com +fanlicome.com +fanlihe.com +fanlijinfu.com +fanlisaas.com +fanlitou.com +fanmugua.net +fannaojiputi.com +fanpusoft.com +fanqiang.com +fanqianzhushou.com +fanqie.im +fanqienovel.com +fanqier.com +fanqiesdkpic.com +fanqiesoq.com +fanqietuan.com +fanqievv.com +fanqiewin10.com +fanqiexitong.com +fanquanba.com +fanquanwang.com +fanruan.com +fanruanclub.com +fans1.com +fans8.com +fansgu.com +fanshicekong.com +fanshui.net +fansiji.com +fansimg.com +fansjoy.net +fansobattery.com +fansoon.com +fansx.com +fansyes.com +fantablade.com +fantaiai.com +fantaicdn.net +fantanggame.com +fantatech.com +fantawild.com +fante.com +fantong.com +fanttec.com +fantuanhd.com +fanuchdf.com +fanw8.com +fanwe.com +fanwen118.com +fanwenbaike.com +fanwenq.com +fanwenzhan.com +fanxian.com +fanxiang.com +fanxiaocuo.com +fanxiaojian.com +fanxing.com +fanxingshidaitech.com +fanxuefei.com +fany-eda.com +fany-online.com +fanyantao.com +fanyeda.com +fanyedu.com +fanyeong.com +fanyi.com +fanyia.com +fanyibase.com +fanyigou.com +fanyigou.net +fanyijia.com +fanyiqi.net +fanyishang.com +fanypcb.com +fanyu.com +fanyu.work +fanyueciyuan.info +fanyuip.com +fanzehua.com +fanzhiyang.com +fanzoe.com +fapharm.com +fapiao.com +fapiao365.com +fapiaobang.com +faqianjia.com +faqrobot.org +far123.com +far2000.com +faradayfuturecn.com +fareastcontainers.com +farenhui.com +farennews.com +farerdak.com +farisl.com +farmkd.com +farmsec.com +farsee2.com +farsightdev.com +fas-bee.com +fashaoyou.net +fasheng.org +fashengba.com +fashuounion.com +fasionchan.com +fast.im +fastadmin.net +fastapi.net +fastcdn.com +fastcuting.com +fastdo.cc +fastgit.org +fastgz.com +fastidea.cc +fastliii.com +fastmirror.org +fastmis.com +fastmock.site +fastmovie88.com +fastmyna.com +fastonetech.com +fastreportcn.com +fastsoc.com +fastsoso.cc +faststatics.com +fat999.com +fatbobman.com +fatedier.com +fateskins.com +fatiao.pro +fatjio.xyz +fatjiong.com +fatvg.com +favdeb.com +favopen.com +favorites.ren +faw-benteng.com +faw-vw.com +fawaitui.com +fawan.com +fawulu.com +faxdns.com +faxdns.net +faxingchina.com +faxingcn.com +faxingsj.com +faxingtupian.com +faxingzhan.com +faxiufang.com +faxsun.com +faxuan.net +fayea.com +fayifa.com +fayiyi.com +fayurumen.com +fazhijx.com +fazz.fun +fb.mu +fbabi.com +fbaichuan.com +fbank.com +fbirdsmall.com +fbkjapp.com +fblife.com +fbook.net +fbsjedu.com +fbuy365.com +fbxslw.com +fc0531.com +fc0633.com +fc571.com +fc811.com +fcachinagsdp.com +fcai.com +fcapp.run +fcb16888.com +fcbox.com +fcchbj.com +fccs.com +fccscar.com +fcczp.com +fcgsnews.com +fcgtt.com +fcjob.net +fcjob88.com +fclouddns.net +fcloudpaas.com +fcnes.com +fcpiao.com +fcpowerup.com +fcrc114.com +fcsc.com +fcvvip.com +fcww19.com +fcxxh.org +fcyhw.com +fcz360.com +fczx.com +fd-trust.com +fd7c.com +fdcyun.com +fdczbstatic.com +fdddf.com +fdeent.org +fdemo.com +fdevops.com +fdjzu.com +fdkjgz.com +fdkm88.com +fdlbeckwai.com +fdlt.net +fdmgj.com +fdpx.com +fdqh360.com +fdsr.org +fduky.com +fdzq.com +fe-cable.com +fe2x.cc +fe520.com +feadi.com +fecn.net +fecshop.com +fedte.cc +feeclouds.com +feedcoopapi.com +feedou.com +feedsky.com +feedss.com +feeey.com +feehi.com +feekr.com +feelcars.com +feelchat.net +feelec.net +feemoo.vip +feepan.com +feesoon.com +feeyan.com +feeye.com +feeyeah.com +feeyo.com +feeyun.com +fegine.com +feheadline.com +fei-hong.com +fei580.com +feiair.com +feibaizhu.com +feibaokeji.com +feibing.tech +feibisi.com +feibisi.org +feibit.com +feibo.com +feicool.com +feicui168.com +feicuiwuyu.com +feidaep.com +feidavalve.com +feidee.com +feidee.net +feidieshuo.com +feidou.com +feie.work +feierlaiedu.com +feifanblog.com +feifandesign.com +feifanindustry.com +feifantxt.net +feifanwangg.com +feifei.com +feifeiboke.com +feifeicms.co +feifeixitong.com +feiffy.cc +feifustudio.com +feige.ee +feigo.fun +feihe.com +feihu.me +feihuo.com +feihutaoke.com +feijiu.net +feijizu.com +feikongbao.com +feiku.com +feilasi.com +feiliao.com +feiliks.com +feilu.cc +feilvway.com +feimalv.com +feimanzb.com +feimao666.com +feimaoyun.com +feimayun.com +feimosheji.com +feiniao.name +feiniaomy.com +feiniu.com +feiniubus.com +feinno.com +feiphp.com +feipin.com +feipinzhan.com +feiq18.com +feirar.com +feiren.com +feisan.net +feishu-3rd-party-services.com +feishu.net +feishucdn.com +feishupkg.com +feisu.com +feitian001.com +feitianwu7.com +feitsui.com +feiwentianxia.com +feixiaoquan.com +feixiong.tv +feixuege.com +feixueteam.net +feiyang.com +feiyang233.club +feiyit.com +feiyu.com +feiyuapi.com +feiyue.online +feiyunjs.com +feiyunxiazai.com +feiyuteam.com +feizan.com +feizhaojun.com +feizhu.com +feizhupan.com +felicitysolar.com +feling.net +felink.com +felix021.com +femrice.com +fenbaner.net +fenbei.com +fenbeijinfu.com +fenbi.com +fenby.com +fencescn.com +fenduotie.com +fenfen.com +fenfenriji.com +fenfenwz.com +fenfenzh.cc +feng.com +feng1.com +fengakj.com +fengbao.com +fengbaowo.com +fengbolive.com +fengbuy.com +fengchizixun.com +fengchuanba.com +fengchui.cc +fengchusheng.com +fengcms.com +fengcx.com +fengdu.com +fengduqi.com +fengedu.com +fengeek.com +fengeini.com +fengex.com +fengfeng.cc +fenghenever.com +fenghong.tech +fenghuaju.cc +fenghuidongman.com +fenghuoyunji.com +fengimg.com +fengj.com +fengji.me +fengji.net +fengjing.com +fengjinketang.com +fengjr.com +fengkongcloud.com +fengkuangzaoren.com +fengkui.net +fengli.com +fengli.su +fenglinjiu.com +fengmanginfo.com +fengmaniu.com +fengmeng.net +fengmk2.com +fengnayun.com +fengniao.com +fengniaohuanjing.com +fengniaojr.com +fengone.com +fengpengjun.com +fengpintech.com +fengread.com +fengshangweekly.com +fengshi.tech +fengsung.com +fengsuniang.com +fengtai.tv +fengtalk.com +fengtouwang.com +fengtupic.com +fengwanyx.com +fengwenyi.com +fengwo.com +fengxian110.com +fengxianrc.com +fengxiaotx.com +fengxuan.co +fengxuelin.com +fengyan.cc +fengyang.fun +fengyitong.name +fengyuansufen.com +fengyuncad.com +fengyuncx.com +fengyunpdf.com +fengyushan.com +fengyx.com +fengzhangame.net +fengzixbs.com +fenha.net +fenking.club +fenlei168.com +fenlei265.com +fenleidao.com +fenleitong.com +fenliu.net +fennessy.hk +fenqihome.com +fenqile.com +fenqix.com +fenqubiao.com +fens.me +fensebook.com +fenshua123.com +fensishenghuo.com +fenxi.cc +fenxi.com +fenxi.org +fenxiangdashi.com +fenxianglife.com +fenxiyi.com +fenxuekeji.com +fenyu.net +fenyucn.com +fenzhi.com +fenzijr.com +feotech.com +fequan.com +ferlie.net +fersese.com +fescoadecco.com +fescogroup.com +festaint.com +fetion-portal.com +fetiononline.com +fetionpic.com +feverassets.net +fevte.com +feydj.com +ff14yuanxiang.com +ff54.ink +ff63.com +ff8828.com +ffan.com +ffasp.com +ffbon.com +ffbuddy.com +ffcell.com +ffdns.net +ffeeii.com +ffepower.com +ffff.cc +ffgpol.com +ffhre.com +ffis.me +ffmarket.com +ffmomola.com +ffode.com +ffpedia.com +ffpk-cdn.xyz +ffquan.com +ffsgame.com +ffsky.com +fft.plus +fft123.com +ffxiv.co +ffxivhuntcn.com +ffyinxiang.com +ffzww.com +fg.cc +fgcndigital.com +fgeekcloud.com +fghi34.com +fgidna.com +fgkj.cc +fgo-teamup.com +fgo.wiki +fgowiki.com +fh1551.com +fh21.com +fh21static.com +fh77.com +fh77.net +fh86.com +fhadmin.org +fhd001.com +fhdjh.com +fhg90.com +fhhgj.com +fhldns.com +fhlun.com +fhmion.com +fhoverseas.com +fhrl2018.com +fhrlw.com +fhtao.com +fhtj.com +fhtlw.com +fhtre.com +fhwlgs.com +fhycedu.com +fhycs.com +fhyx.com +fhyx.hk +fhyx.online +fi1818.com +fi94.com +fiberhome.com +fiberhomegroup.com +fibocom.com +fibodata.com +fibrlink.net +ficochina.net +fiehff.com +fieldschina.com +fifedu.com +fifo.cc +fifsky.com +fiinote.com +fiio.com +fiio.net +filcochina.com +file001.com +filediag.com +fillersmart.com +fillseo.com +fim34s.com +fimmu.com +fimvisual.com +fin-shine.com +finacerun.com +finaltheory.me +financeun.com +financialstreetforum.com +finchain.info +finchina.com +finclip.com +finderweb.net +findhro.com +findic.com +findic.kr +findic.tw +findic.us +findlawimg.com +findmyfun.xyz +findoout.com +findshu.net +findxk.com +findyou.xin +findzd.com +finebi.com +fineidc.com +finer2.com +finereport.com +finereporthelp.com +finetopix.com +fineui.com +fineway.com +finewyx.com +fineyoga.com +finger66.com +fingerstylechina.com +fingertc.com +fingu.com +fingu.net +finndy.com +finogeeks.com +finshell-cib.com +fintechinchina.com +fintechquan.com +finupfriends.com +finupgroup.com +finzfin.com +finzjr.com +fiphoenix.com +fir.vip +firadio.net +fire233.com +fire2333.com +firebirdprint.com +fireemblem.net +fireemulator.com +fireflyacg.com +firepx.com +firetry.com +firevale.com +firhq.com +firim.ink +firstdrs.com +firstfood-cn.com +firstheartbeat.net +firstlinkapp.com +firstonesource.com +firstp2p.com +firstproduction.net +firstsolver.com +fish2bird.com +fish3000.com +fishapi.com +fishcn.com +fisherac.com +fishfay.com +fishing-sinkers.com +fishingjoy.com +fishings.biz +fishlee.net +fishmobi.com +fishs.com +fishtui.com +fit-start.co +fit-time.com +fitbbs.com +fitoneapp.com +fivestarsolar.com +fixdown.com +fixhdd.org +fixsub.net +fiyta.com +fj-atfz.com +fj10010.com +fj173.net +fj2000.com +fj263.com +fj96336.com +fj987.com +fjber.com +fjbgwl.com +fjcoop.com +fjcqjy.com +fjcyl.org +fjdaily.com +fjdh.com +fjdnf.com +fjeca.com +fjfoxiang.com +fjgdwl.com +fjgwy.org +fjhcw.com +fjhrss.com +fjhxbank.com +fjhxcaee.com +fjii.com +fjjcjy.com +fjjsp01.com +fjjszg.com +fjjyt.net +fjkqyy.com +fjlh.com +fjly.com +fjmlh.com +fjmstc.com +fjnacc.com +fjndwb.com +fjnet.com +fjotic.com +fjpta.com +fjreading.com +fjsdn.com +fjsen.com +fjsfa.org +fjsfy.com +fjsj.com +fjstfc.com +fjtelecom.com +fjtianya.com +fjtv.net +fjty1688.com +fjutu.com +fjvs.org +fjxiehe.com +fjxisuzi.com +fjxn.com +fjycw.com +fjyy.org +fjzixun.com +fjzol.com +fk100.com +fkblog.org +fkblz.com +fkcaijing.com +fkdmg.com +fkdxg.com +fke6.com +fkesfg.com +fkhdview.com +fkjie.com +fklngy.com +fkpbaoll.com +fkw.com +fkw100.com +fkxs.net +fkyuer.com +fkyun.com +fkzgz.com +fl-game.net +fl0632.com +fl168.com +fl365.com +fl5.co +flachina.com +flacro.me +flamecdn.com +flamesky.org +flamingcold.com +flan1688.com +flaredup.com +flash8.net +flash8f.com +flashgame163.com +flashgene.com +flashgirlz.com +flashmemoryworld.com +flashv8.com +flashwar.com +flashwing.net +flawcache.com +flduo.com +fle078.com +flexifont.com +fleyun.com +flgwx.com +flidc.net +fliggy.com +fliggy.hk +flintos.com +flip.fun +fliplus.com +floatingislandapps.com +flomoapp.com +flooc.com +floor181.com +floorb2b.com +florentiavillage.com +flower188.com +flower33.com +flowever.net +flowportal.com +flpsz.com +flstudiochina.com +fltacn.com +fltau.com +fltcsb.com +fltrp.com +fluke-ig.com +flutterchina.club +flvcd.com +flvsp.com +flvurl.net +flxc.net +flxdns.com +flxz.com +fly1999.com +fly3949.com +fly63.com +flyco.com +flycua.com +flydigi.com +flyenglish.com +flyert.com +flyertea.com +flyertrip.com +flyfishx.com +flyfunny.com +flygo.net +flygon.net +flyhand.com +flyine.net +flyme.com +flymeos.com +flyml.net +flymobi.biz +flymopaper.com +flypy.com +flysheep6.com +flytexpress.com +flyxg.com +flyzy.com +flyzyblog.net +flzc.com +flzhan.com +fm-uivs.com +fm0754.com +fm120.com +fm3838.com +fm4399.com +fm520.com +fm918.net +fm960.net +fmbimg.com +zzcm1.com +fminers.com +fmpan.com +fmsh.com +fmtol.com +fmtt6.xyz +fmwei.com +fmwhahaha.com +fmy90.com +fmzsjc.com +fn-mart.com +fn-tech.com +fn.com +fnconn.com +fnetlink.com +fnf-foods.com +fnfcutlery.com +fngz01.com +fnji.com +fnjiasu.com +fnjsq.com +fnkq.com +fnkslift.com +fnmobi.com +fnnsh.com +fnrcw.com +fnrczp.com +fnscore.com +fnvip100.com +fnysb.com +fob123.com +fob168.com +fobshanghai.com +focalbrand.com +focalhot.com +fochot.com +focus-eloan.com +focus-fusion.com +focuschina.com +focussend.com +fodian.net +fodlab.com +fodoco.com +fofa.info +fofa.so +foguanghui.org +folou.com +fomen123.com +foneplatform.com +fongmong.com +fongser.net +fonsoft.net +fonsview.com +font.im +font5.com +font6.com +fontke.com +food028.com +foodaily.com +foodbk.com +foodjx.com +foodmate.net +foods1.com +foodsc.net +foodspace.net +foodszs.com +foodu14.com +foofish.net +fooher.com +foojoo.com +fookwood.com +fookyik.com +fooleap.org +foooooot.com +footcdn.com +fooww.com +for-compass.com +for-she.com +for512.com +for68.com +forbeschina.com +forbetty.com +forbuyers.com +forcemz.net +forcger.com +ford.com +fordgo.com +forenose.com +forerunnercollege.com +foreseamall.com +foresightfund.com +foresl.com +forestfood.com +forestpolice.org +foreveross.com +forgame.com +forindata.com +forkeji.com +forlinx.com +form-create.com +formtalk.net +formysql.com +fornature.com +forrealbio.com +forrerri.com +forsou.com +forthxu.com +fortiortech.com +fortunebill.com +fortunebs.net +fortunevc.com +forwardgroup.com +forwe.store +foryone.com +foryougroup.com +fos.cc +foscam.com +foshanaosibo.com +foshanmuseum.com +foshannews.com +foshannews.net +foshanplus.com +fosi.hk +fosss.org +fosun-uhi.com +fosun.com +fosunholiday.com +fosunmetal.com +fosunpharma.com +fotao.name +fotao9.com +fotile.com +fotileglobal.com +fotilestyle.com +fotoe.com +fotomore.com +fotoplace.cc +fotosay.com +fototuan.com +foumeng.com +founder.com +founderbn.com +foundercentury.com +foundereagle.com +founderff.com +founderfu.com +founderic.com +founderinternational.com +founderit.com +founderpcb.com +founderpod.com +foundersc.com +founderstruth.org +foundertech.com +foundertype.com +foundpdf.com +founpad.com +fountask.com +four-faith.com +fovmy.com +fox-studio.net +fox008.com +fox800.xyz +foxconn.com +foxera.com +foxmail.com +foxphp.com +foxtable.com +foxweixin.com +foxwho.com +foxwq.com +foxzld.com +foyuan.net +fpdclub.net +fpdisplay.com +fpga-china.com +fpgabbs.com +fpgaw.com +fphis.com +fphs5.com +fpliu.com +fpoll.net +fps7.com +fpsace.com +fpwap.com +fpxz.net +fqapps.com +fqgj.net +fqis.xin +fqjob.net +fqnovel.com +fqnovelpic.com +fqnovelstatic.com +fqnovelvod.com +fqpai.com +fqxdw.com +fqxs.org +zzcjby.com +fr-trading.com +fr2007.com +fractal-technology.com +framemaker.com +francissoung.com +francochinois.com +franzsandner.com +fraproperty.com +frdabe.com +frdic.com +fread.com +fredamd.com +free-api.com +free-e.net +free-eyepro.com +free-img.com +free789.com +freebuf.com +freecat.work +freecplus.net +freedgo.com +freedomcribs.com +freefrp.net +freegeeker.com +freehome25.net +freehpcg.com +freeidea.win +freejishu.com +freekaobo.com +freekaoyan.com +freekeyan.com +freelycode.com +freelynet.com +freemancn.com +freemdict.com +freemindworld.com +freemoban.com +freemudgame.com +freeoa.net +freeqingnovel.com +freericheyes.com +freeshoppingchina.com +freessl.org +freeuid.com +freewhale.net +freeydch.com +freeyun.com +freezl.net +frensworkz.com +freqchina.com +fresh-ideas.cc +freshhema.com +freshippo.com +freshnewsnet.com +frhelper.com +friendeye.com +fright-tattoo.com +fringe-zero.com +friok.com +frlh168.com +frombyte.com +fromgeek.com +fromhomelearn.com +fromwiz.com +frontjs.com +frontopen.com +frontwize.com +frostwell.cc +frostwell.net +frostwing98.com +fruitday.com +frysb.com +fs-ade.com +zzcdsl.com +fs0757.com +fs121.com +fs31.com +fs315.org +fs7000.com +fsaligzf.com +fsbankonline.com +fsc555.com +fscinda.com +fscjkj.net +fsclzs.com +fscm.tech +fscmjt.com +fsdnp.cyou +fsecity.com +fsesa.com +fsfsfz.com +fsfund.com +fsgejian.com +fsggb.com +fsghgt.com +fsgplus.com +fsgzhg.com +fshd.com +fshzg.com +fsigc.com +fsirya.com +fsjoy.com +fsky.pro +fslgz.com +fsllq.com +fslsg.com +fsmama.com +fsmeeting.com +fsmy88888.com +fsoptronics.com +fsoufsou.com +fspage.com +fspcdn.com +fspinqiu.com +fssfs.com +fsshenneng.com +fstaoci.com +fstcb.com +fsthr.com +fstrhb.com +fswl66.com +fsxchina.com +fsxdwy.com +fsxinfengyi.com +fsxshjz.com +fsxsj.net +fsyule.net +ft12.com +ft22.com +ft3e.com +ftaro.com +ftbj.net +ftcauction.com +ftcgj.com +ftfast.com +ftfund.com +fthformal.com +ftium4.com +ftnormal00ab.com +ftqq.com +ftsafe.com +ftsfund.com +ftt.me +ftuan.com +ftxad.com +ftxgame.com +ftxsoccer.com +ftzn.net +fu-guan.com +fu57.com +fubaofei.com +fuchaoqun.com +fuckingdata.com +fucnm.com +fucol.club +fudaiapp.com +fudanglp.com +fudanmed.com +fudanpress.com +fudian-bank.com +fuedf.org +fufeng-group.com +fufuok.com +fugetech.com +fugui.net +fuhai360.com +fuhancapital.com +fuhanziben.com +fuhaodaquan.org +fuhaoku.com +fuheng.org +fuhuibao.club +fui.im +fuimg.com +fuiou.com +fuioupay.com +fujfu.com +fujiabin.com +fujianrc.com +fujiansme.com +fujianyinruan.com +fujieace.com +fujinjiazheng.com +fuka.cc +fukeha.com +fulantv.com +fuli1024.com +fuli404.net +fuliansheng.com +fuliao.com +fulijd.com +fulimin.org +fulin.org +fulinedu.com +fuling.com +fulingwx.com +fuliquan.com +fuliti.com +fuliw.net +full-way.com +fulllinks.com +fullstack.love +fulou.life +fultree.com +fulu.com +fumake.com +fumi.com +fumu.com +fumubang.com +fumuhui.com +fun-pix.com +fun.tv +funcdn.com +funchat.cc +functionads.com +fund001.com +fundebug.com +fundebug.net +fundog.cc +fundrive.com +funeralchain.com +funfungolf.com +funi.com +funinput.com +funiutang.net +funjsq.com +funletu.com +funliving.com +funnull31.com +funnull33.com +funnullv27.com +funnullv28.com +funnullv29.com +funnycore.com +funnyplaying.com +funplay66.com +funshion.com +funshion.net +funshipin.com +funtoygame.com +funvge.com +funwear.com +funxun.com +funyqq.com +furenkeji.com +furongedu.com +furrybar.com +furrychina.com +furuijiaju.vip +fusaide.com +fusion-inte.com +fusion.design +fute.com +futianlvshi.com +futufin.com +futuhn.com +futuniuniu.com +futunn.com +futureengineer.org +futureprize.org +futurescircle.com +futurescontest.com +fututrade.com +fuwa.org +fuwai.com +fuwaliuxue.com +fuweivision.com +fuwit.com +fuwj.com +fuwo.com +fuwuce.com +fuwuqinet.com +fuwuqu.com +fuxiafood.com +fuxinbank.com +fuxingtech.com +fuxingwang.com +fuxunpay.com +fuyangtv.com +fuych.net +fuyinchina.com +fuyou888.com +fuyoubank.com +fuyoukache.com +fuyuan5.com +fuyuandian.com +fuyuncc.com +fuyuncun.com +fuyuzhe.com +fuz.cc +fuzadu.com +fuzamei.com +fuzeetech.com +fuzegame.com +fuzfu.net +fuzhimao.com +fuzhoufashi.com +fuzhuangwang.com +fuzhugo.com +fview.com +fvo2o.com +fvti.com +fw-12365.com +fw365.online +fw4.co +fw4.me +fwcranes.com +fwdq.com +fwdqw.com +fwhzxxgbyy.com +fwqbdn.com +fwqtg.net +fwqzx.com +fwsir.com +fwtoys.com +fwxgx.com +fwzjia.com +fx120.net +fx168api.com +fx168vip.com +fx3q.com +fx678.com +fx678.net +fx678red.com +fxbaogao.com +fxcccbbs.com +fxclass.net +fxcsxb.com +fxcw.com +fxdm.net +fxdp.com +fxian.org +fxiaoke.com +fxl1950.com +fxlbb.com +fxltsbl.com +fxm.so +fxngpih.com +fxo2opt.com +fxpan.com +fxsw.net +fxtrip.com +fxtrips.com +fxw.la +fxwst.com +fxxw.net +fxxww.net +fxxz.com +fxzhj.com +fxzhjapp.com +fxzygc.com +fy-data.com +fy-game.com +fy027.com +fy169.net +fy35.com +fy558.com +fy65.com +fy98.com +fyapi.net +fybiji.com +fybxw.com +fychinago.com +fycpu.com +fydeos.com +fydns2023.com +fydns360.net +fyeds.com +fyeds0.com +fyeds1.com +fyeds2.com +fyeds3.com +fyeds4.com +fyeds5.com +fyeds6.com +fyeds7.com +fyeds8.com +fyeds9.com +fyfch.com +fygame.com +fygdrs.com +fygsoft.com +fyhapp66.com +fyigou.com +fyjsz.net +fymall0.com +fymall1.com +fymall4.com +fymall7.com +fymall9.com +fymallqa0.com +fymallqa1.com +fymallqa2.com +fymallqa3.com +fymallqa4.com +fymallqa7.com +fymallqa9.com +fynas.com +fynews.net +fyqnbg.com +fyrcbk.com +fyrexian.com +fyrsks.com +fyrwzz.com +fysoft3.com +fytcw.com +fytxonline.com +fytz.net +fyuanpack.com +fyvart.com +fywx.cc +fyxfcw.com +fyxxwb.com +fyyljkgl.com +fyyy.com +fyzku.com +fz222.com +fz2sc.com +fz597.com +fzahw.com +fzaqjy.com +fzccpit.org +fzcyjh.com +fzdmag.com +fzengine.com +fzf.com +fzfinancing.com +fzfzjx.com +fzg360.com +fzithome.com +fzjdct.com +fzjxw.com +fzl7.com +fzlawyers.net +fzlbar.com +fzlft.com +fzlol.com +fzmama.net +fzmeetdecor.com +fzn.cc +fzrsrc.com +fzshbx.org +fzsjob.com +fzwcn.com +fzxiaomange.com +fzxyyqd.com +fzyfan.com +fzyfan.net +fzyfs.net +fzzqcdn.com +g-emall.com +g-photography.net +g-var.com +g12345.com +g12e.com +g168.net +g188.net +g1c5.com +g1d.net +g1f5.com +g2.link +g207.com +g2g1.com +g2h3.com +g2us.com +g2work.com +g32365.com +g3d.org +g3img.com +g3user.com +g4weixin.com +g5h4.com +g72.com +g77775555.com +g77776666.com +g80mx.com +g88885555.com +g88886666.com +g931.com +ga001.com +ga002.com +ga25.com +gaapqcloud.com +gabrielmangano.com +gabuleu.com +gac-capital.com +gac-nio.com +gacfca.com +gacfcasales.com +gacfiatauto.com +gaclib.net +gacmotor.com +gacsofinco.com +gadscc.xyz +gaeadata.com +gaeamobile.net +gafata.com +gafei.com +gagaga.icu +gagaga.tech +gagahi.com +gagalee.ink +gagaslklxjasdkafj.com +gai.net +gaiamount.com +gaibar.com +gain-coupon.com +gainda.net +gainet.com +gaingreat.com +gaini.net +gairuo.com +gaitu.com +gaituba.com +gaitubao.com +gaitubao.net +gaituya.com +gaixue.com +gaiyadajidali.com +gaizhui.com +galaxix.com +galaxy-immi.com +galaxyappstore.com +galaxyasset.com +galaxyfont.com +galaxyinfo.com +galaxyns.net +gallopgazelle.com +galsun.com +galudisu.info +gamdream.com +game-as.com +game-props.com +game-reign.com +game12315.com +game13.com +game2.com +game234.com +game345.com +game3vs7novel.com +game5.com +game5399.com +game5iw.com +game798.com +game900.com +game9g.com +gameabc.com +gameabc2.com +gamebaike.com +gamebar.com +gamebean.com +gamebean.net +gamebee.net +gamebonfire.com +gamebto.com +gamecat.fun +gamecatstudio.com +gamecomb.com +gamecps.com +gamed9.com +gamedo.org +gameegg.com +gameexp.com +gamefk.com +gamefm.com +gamefv.com +gamehome.tv +gameinns.com +gameitop.com +gamejym.com +gamekee.com +gamekuaishou.com +gameley.com +gameloop.com +gameloveman.com +gamemale.com +gamemei.com +gamememories.net +gameol.com +gamepf.com +gamept.com +gamerboom.com +gameres.com +gamerhome.com +gamerhome.net +gamermake.com +gamersky.com +gamerstorm.com +gamesh.com +gameshr.com +gamesifu.com +gamesir.com +gametanzi.com +gametaptap.com +gametdd.com +gamethk.com +gametrees.com +gamett.net +gametu.net +gameweibo.com +gamewifi.net +gamexdd.com +gamexhb.com +gamexz.com +gameyisi.com +gamfe.com +gammatimes.com +gamutsoft.com +gamux.org +gan-ren.com +ganduee.com +ganggg.com +ganggouwang.com +gangguan8.com +ganghaowang.com +gangpaibao.com +gangqinpu.com +gangqinxiansheng.com +ganhuoche.com +ganhuodaquan.com +ganji.com +ganjiangrc.com +ganjinshengtai.com +ganjistatic1.com +ganjistatic2.com +gank-studio.com +gank.io +gankang.com +gankgames.com +gankh5.com +ganlv.org +ganlvji.com +ganniu.com +ganode.org +ganqi.com +ganqi.net +ganso.net +gansuairport.com +gantanhao.vip +ganwan.com +ganxianw.com +ganxianzhi.win +ganzhe.com +ganzhishi.com +gao.bo +gao.com +gao3d.com +gao4.com +gao7.com +gao7gao8.com +gaobei.com +gaocangyun.com +gaocegege.com +gaochengnews.net +gaochun.info +gaodabio.com +gaodage.com +gaode.com +gaodilicai.com +gaoding.com +gaoduanqianzheng.com +gaodugj.com +gaodun.com +gaodunwangxiao.com +gaofang.cloud +gaofangcache.com +gaofangz.com +gaofeib2c.com +gaofeie.com +gaofen.com +gaofenplatform.com +gaoguai.com +gaoguangcn.com +gaogulou.com +gaohaipeng.com +gaohangip.com +gaohr.com +gaoimg.com +gaoji.ren +gaojianli.me +gaojie.com +gaojihealth.com +gaojipro.com +gaokao.com +gaokao365.com +gaokao789.com +gaokaobaoming.com +gaokaohelp.com +gaokaopai.com +gaokaoq.com +gaokaozhiku.com +gaokin.com +gaokong.org +gaokowl.com +gaokw.com +gaokzx.com +gaolouimg.com +gaomeluo.com +gaomizixun.com +gaomon.net +gaopaiwood.com +gaopeng.com +gaoqingpai.com +gaoqiwenda.com +gaoqixhb.com +gaore.com +gaosan.com +gaoshou.me +gaoshouvr.com +gaoshouyou.com +gaosiedu.com +gaosivip.com +gaosouyi.com +gaosu.com +gaosudu.com +gaotang.cc +gaotie.net +gaotieshike.com +gaotu006.club +gaotu100.com +gaotuxueyuan.com +gaowoip.com +gaoxiaobang.com +gaoxiaojob.com +gaoxin123.com +gaoxinkc.com +gaoyimodel.com +gaoyizaixian.com +gaoyoujob.com +gaozhaiedu.com +gaozhongwuli.com +gaozhouba.com +gap.hk +gapitech.com +gara.cc +garden-aquarium.com +gardencn.com +garmuri.com +garnoc.com +garphy.com +garply.com +garqnv.xyz +gas-analyzers.com +gasfw.com +gasgoo.com +gashr.com +gasshow.com +gaszx.com +gate-dhgames.com +gateface.com +gather-dns.com +gathernames.com +gaussianoptics.com +gavindesign.com +gaxgame.com +gaxrmyy.com +gbase8a.com +gbasebi.com +gbdex.com +gbgba.com +gbhome.com +gbiac.net +gbicdn.com +gbicom.com +gblhgk.com +gbofd.com +gboooo.com +gbphar.com +gbpjam.com +gbt88.com +gbtranswins.com +gbw114.com +gc-zb.com +gc1616.com +gc39.com +gc600.com +gccdn.net +gcchina.com +gccmgw.com +gcdcrs.com +gcgd.net +gchao.com +gcihotel.net +gcimg.net +gcjc.com +gcjr.com +gcjx123.com +gcl-et.com +gcloudcs.com +gcloudcstest.com +gcloudcstestonly.com +gclouddolphin.com +gcloudgbs.com +gcloudsdk.com +gcmc.cc +gcoreinc.com +gcores.com +gcstorage.com +gcsz.net +gctd.xyz +gcwduoduo.com +gcwith.com +gcyts.com +gczp.cc +gczyg.com +gd-china.com +gd-hskj.com +gd-id.com +gd-linux.com +gd-linux.org +gd1580.com +gd165.com +gd2000.org +gd32.com +gd32mcu.com +gd3n.com +gda086.com +gdadjs.com +gdadri.com +gdatacube.net +gdbhnk.com +gdbljd.com +gdcct.com +gdcic.net +gdcoop.com +gdcrj.com +gdcts.com +gdctsvisa.com +gdcyl.org +gdczyy.com +gddata.net +gddcm.com +gddg.cc +gddhn.com +gddtop.com +gdeams.com +gdebidding.com +gdefair.com +gdems.com +gdevops.com +gdforestry.com +gdfplaza.com +gdgcep.com +gdggkf.com +gdgudong.com +gdgwyw.com +gdgzhengzhou.com +gdhaoma.com +gdhbsh.com +gdhwater.com +gdhy0668.com +gdie.com +gdinfo.net +gdiso.com +gdjdxy.com +gdjinge.com +gdjqwl.com +gdjyw.com +gdkepler.com +gdkjb.com +gdkjw.com +gdkszx.com +gdkz88.com +gdlalian.com +gdlins.com +gdliontech.com +gdlsgz.com +gdmm.com +gdmoa.org +gdmschina.com +gdmuseum.com +gdmxjy.com +gdong.com +gdou.com +gdpyrtvu.com +gdqianyou.com +gdqynews.com +gdrc.com +gdrc360.com +gdrc365.com +gdrcu.com +gdrfyy.com +gds-services.com +gdscse.net +gdsdwan.com +gdshisha.com +gdslwl.com +gdsports.net +gdsrcw.com +zzccom.com +gdstlab.com +gdswine.com +gdsxgd.com +gdsytech.com +gdszjgdj.org +gdszkw.com +gdtai.com +gdtaihao.com +gdtex.com +gdtextbook.com +gdtimg.com +gdtone.com +gdtongjiang.com +gdtravel.com +gdttc.com +gdtz888.com +gdunis.com +gdupi.com +gdvolunteer.net +gdwca.com +gdwlife.com +gdxinya.com +gdxxb.com +gdyegu.com +gdyjs.com +gdysdz.com +gdyunyin.net +gdyxc.com +gdzhongshan.com +gdzp.org +gdzrlj.com +gdzs2018.cc +gdzs2018.vip +gdzsxx.com +gdzuoxie.com +gdzzz.com +ge-garden.net +ge100.com +geakr.com +geality.com +geapu.com +gearfront.net +gearkr.com +geautos.com +gebilaoshi.com +gebiqu.com +gec123.com +geci345.com +gecimi.com +gedou8.com +gedoumi.com +gedu.org +geeboo.com +geebook.com +geedai.com +geedu.com +geeetech.com +geeeu.com +geejing.com +geek-docs.com +geek-era.com +geek-papa.com +geek-share.com +geek-workshop.com +geekbang.org +geekbangtech.com +geekcar.com +geekdata.com +geekdive.com +geekercloud.com +geekerconsulting.com +geekfan.net +geekfans.com +geekhub.com +geekiron.com +geekluo.com +geekmaker.com +geekman.vip +geekpark.net +geekpwn.org +geeksblog.cc +geektutu.com +geeku.net +geekwom.com +geekxue.com +geely.com +geement.com +geeqee.com +geermunews.com +geeseteam.com +geetest.com +geevisit.com +geewaza.com +geexek.com +geeyep.com +geezn.com +gegejia.com +gegeyingshi.com +gei6.com +geicloud.com +geihuasuan.com +geihui.com +geilicdn.com +geilijiasu.com +geimian.com +geindex.com +geiniwan.com +geisnic.com +geizan.cc +gejiba.com +gelicang.net +gelics.com +gelonghui.com +gelu.me +gemchina.com +gemdale.com +gemii.cc +gemini-galaxy.com +gemini530.net +geminight.com +gempoll.com +gemuedu.com +genbaike.com +genban.org +gendantong.com +geneskies.com +genetalks.com +geneworldcn.com +gengchuangz.com +gengnie.com +gengzhongbang.com +genial.vip +geniatech.com +geniusite.com +genrace.com +genscript.com +gensee.com +genshuixue.com +gentags.com +gentags.net +genuway.com +genzhuang.org +zzbtv.com +zzbs.org +zzbq.org +geo2k.com +geogsci.com +geohey.com +geoidc.com +geospatialsmart.com +geotmt.com +gepresearch.com +gepubbs.com +gepush.com +gequ77.com +gequdaquan.net +gerenjianli.com +gerhard-china.com +geruihuate.com +gesanghua.org +gesep.com +geshitong.net +geshui.com +geshui100.com +geshui99.com +geshuiw.com +gesuo.com +get.vip +get233.com +getbs.com +getcai.com +getcn.net +gethover.com +getiis.com +getiot.tech +getip.name +getkwai.com +getlema.com +getmarkman.com +getquicker.net +getsurfboard.com +getu.fun +getui.com +getui.net +getui.vip +getulab.com +getvidi.co +gewai-cnc.com +gewala.com +gewara.com +gewu.vc +gexiao.me +gexiaocloud.com +gexing.com +gexing.me +gexings.com +gexingzipai.com +geyo.com +geyoukj.com +gezhixq.net +gezida.com +gezila.com +gf-cloud.com +gf-funds.com +gf.app +gf.cc +gfan.com +gfanstore.com +gfcdn.xyz +gfcname.com +gfcvisa.com +gfd178.com +gfdj99665.com +gfdns.net +gfdsa.net +gfdun.icu +gfedu.com +gffirm.com +gffwq.com +gfglb.com +gfjl.org +gfrtrttweet.com +gfttek.com +gftuan.com +gfun.me +gfund.com +gfxaa.com +gfxcamp.com +gfxtr1.com +gfxy.com +gfzj.us +gg-lb.com +gg-led.com +gg1994.com +gg8828.com +ggac.net +ggcida.com +ggcj.com +ggcykf.com +ggdata.com +ggemo.com +ggerg.com +ggeye.com +ggg42.com +ggg868.com +gggqa.com +ggjrw.com +ggjstz.com +ggjtfw.com +gglenglish.com +ggmm777.com +ggo.la +ggo.net +ggqule.com +ggqx.com +ggsafe.com +ggsq.cc +ggt1024.com +ggwan.com +ggwan.net +ggweb.net +ggxx.net +ggxxe.com +ggzuhao.com +gh6.org +gh716398.cc +gh8s.com +ghatg.com +ghboke.com +ghgy.com +ghibliwiki.org +ghjie.com +ghlawyer.net +ghlearning.com +ghmba.com +ghmcchina.com +gho5.com +ghost008.com +ghost11.com +ghost123.com +ghost64.com +ghostchina.com +ghostsf.com +ghostw7.com +ghostwin10.net +ghostwin7.net +ghostxp2.com +ghostxpsp3.net +ghproxy.com +ghpy3333.com +ghpym.com +ghrlib.com +ghs.net +ghsmpwalmart.com +ght.me +ghwgame.com +ghxi.com +ghxsw.com +ghyg.com +ghzhushou.com +ghzs.com +ghzs666.com +giabbs.com +giaimg.com +giant-cycling-lifestyle.com +giantcdn.com +gibcp.com +giccoo.com +gicp.net +giexya.com +gif5.net +gifcool.com +giffox.com +gifhome.com +gifshow.com +giftsbeijing.com +gifu-pr.com +giga-da.com +giga-science.com +gigabyte.com +gigaget.com +gihg.com +giho.com +giikin.com +giiso.com +gildata.com +gilieye.com +giltbridge.com +giltworld.com +gimcyun.com +gimhoy.com +gimmgimm.com +gimoo.net +ginshio.org +gio.ren +giocdn.com +gionee.com +gionee.net +giordano.com +giraff3.com +girls-frontline.com +girlsfighters.com +girlw.net +giscafer.com +giser.net +giserdqy.com +gissaas.com +gissky.net +git-star.com +gitbook.net +gitcafe.net +gitclone.com +gitcode.com +gitcode.net +gitee.com +gitee.io +githang.com +github.red +githubusercontents.com +gitlee.com +gitlib.com +gitlore.com +gitmirror.com +gitnavi.com +gitnoteapp.com +gitsea.com +gitv.tv +gityuan.com +gityx.com +giveda.com +giveme5.cc +giwkgb.com +giyu8.com +gizwits.com +gj515.com +gjalk.com +gjb9001b.com +gjbaek.ren +gjceshi9.com +gjds.vip +gjdwzp.com +gjfax.com +gjfmxd.com +gjgwy.net +gjgwy.org +gjgzpw.com +gjjcxw.com +gjjnhb.com +gjmrk.com +gjnlyd.com +gjpdh.com +gjrwls.com +gjsj.com +gjtjjp.com +gjw.com +gjw123.com +gjxh.org +gjyys.com +gjzy.com +gk-net.com +gk-z.com +gk.link +gk100.com +gk114.com +gk99.com +gkbbapp.com +gkcyc.com +gkczgs.com +gkdgz.com +gkfb.com +gkkxd.com +gkmhq.com +gkmotor.com +gkong.com +gkoudai.com +gkpass.com +gkshuju.com +gktianshanjd.com +gkwo.net +gkxd.com +gkzhan.com +gkzj.net +gkzxw.com +gkzyb.com +gl-data.com +gl-inet.com +gl102.com +gl258.com +glab.online +glamever.com +glamourred.com +glanimaltrade.com +glanu.com +glasseasy.com +glawyer.net +glb3.com +glb6.com +glbdns.com +glcanyin.net +glcct.com +glclcsy.com +gldtztc.com +gleasy.com +glface.com +glgczk.com +glgoo.com +glgoo.net +glgoo.org +glhospital.com +glinfo.com +glinkmedia.com +gllue.com +gllue.me +gllue.net +glmama.com +glmapper.com +zzbd.org +global-harbor.com +global-idc.net +global-jf.com +global-scsl.com +global-tractor.com +global-trade-center.com +globalaccentchinese.com +globalbuy.cc +globalcompressor.com +globaldangdang.hk +globaletrust.com +globalhardwares.com +globalimporter.net +globalizex.com +globalmil.com +globalpingbao.com +globalscanner.com +globalslb.net +globalsources.com +globalstech.com +globeauto.org +globeedu.com +globeimmi.com +globrand.com +globrand.net +glodon.com +glofang.com +gloryre.com +gloryview.com +glorze.com +glosku.com +glowapp.fun +glqh.com +glshimg.com +gltjk.com +gltop.com +glvs.com +glxf110.com +glxinhu.com +glxlawyer.com +glzip.com +glzj88.com +glztj.com +gm193.com +gm2007.com +gm825.com +gm86.com +gm88.com +gm99game.net +gmacsaic.com +gmcc.net +gmcchina.net +gmdun.com +gmed.cc +gmem.cc +gmfintl.com +gmgc.info +gmgdc.com +gmgm668.com +gmhysj.com +gmilesquan.com +gming.org +gmiot.net +gmit.vip +gmjk.com +gmm01.com +gmmch5.com +gmmicro.com +gmmsj.com +gmonline-all.com +gmpanel.com +gmrmyy.com +gmssl.org +gmt-china.org +gmtv.cc +gmugmu.com +gmwiki.com +gmwtp.com +gmwuf.com +gmxmym.ren +gmz88.com +gmzhushou.com +gmzi.com +gn168.com +gndaily.com +gneec.com +gneec3.com +gneec4.com +gneec7.com +gnehr.com +gnetis.com +gng92.com +gnhpc.com +gnrcbank.com +gnssinfo.com +gnssopenlab.org +gnvip.net +gnway.com +go-gddq.com +go-goal.com +go.cc +go007.com +go05.cc +go108.com +go24k.com +go2aaron.com +go2hn.com +go2map.com +go2tu.com +go2yd.com +go300.com +go5.cc +goalhi.com +goalmobi.com +goapk.com +gobanma.com +gobasearcher.com +gobelike.net +gobivc.com +gocarjourney.com +gocashback.com +gocchina.com +gocea.net +goceshi.com +gochego.com +gocn.vip +gocye.com +godaily.org +godasai.com +godbiao.com +godblessyuan.com +goddelivery.com +goddessxzns.com +godeve.com +godic.net +godida.com +godiy8.com +godo.pub +godoor.com +godruoyi.com +godsheepteam.com +godsignal.com +godungit.com +godweiyang.com +godwolf.com +goeasy.io +goel-ptfe.com +goepe.com +goertek.com +goetheslz.com +goforandroid.com +goframe.org +gogbuy.com +gogo.so +gogo123.com +gogoauc.com +gogofly.com +gogojiang.com +gogokid.com +gogolinux.com +gogooffer.com +gogopzh.com +gogoqq.com +gogoup.com +gohighfund.com +goho.co +gohoedu.com +gohom.win +gohomesafe.org +gohong.com +gohugo.org +going-link.com +gojiaju.com +gojiscm.com +gokaigai.com +goke.com +gokols.com +gokuai.com +golangapi.com +golanger.com +golangweb.com +golaravel.com +gold-v.com +gold58.com +gold678.com +goldav.net +golday666.com +golday999.com +golday9999.com +goldbj.com +goldbox.vip +golden-book.com +golden-infor.com +goldenad.net +goldenholiday.com +goldenhome.cc +goldenname.com +goldentom.com +goldgrid.com +goldhoe.com +goldlvshi.com +goldmantis.com +goldmarkrealestate.com +goldstonepack.com +goldsunchn.com +goldtoutiao.com +golf568.com +golfvv.com +golink.com +golinksworld.com +golive-tv.com +golivetv.tv +golue.com +gomeart.com +gomecloud.com +gomegj.com +gomeholdings.com +gomehome.com +gomeplus.com +gomo.com +gonb.org +gonever.com +gong123.com +gongbaike.com +gongboshi.com +gongcdn.com +gongchang.com +gongchengbing.com +gongchou.com +gongfubb.com +gongfudou.com +gongheshengshi.com +gongjiao.com +gongjiaomi.com +gongju.com +gongju5.com +gongjuji.net +gongkaoleida.com +gongkong.com +gongkong001.com +gongkongbpo.com +gongkongedu.com +gongkongke.com +gongkongmall.com +gongmutang.com +gongnou.com +gongpin.net +gongpingjia.com +gongshang120.com +gongsibao.com +gongsijiaoyi.com +gongsizhijia.com +gongwuxing.com +gongxiangcj.com +gongxiao8.com +gongxuku.com +gongye360.com +gongyeku.com +gongyelian.com +gongyeyun.com +gongyi.xin +gongyicn.org +gongyingshi.com +gongyishibao.com +gongyixiang.com +gongyoumishu.com +gongzicp.com +gongzifu.com +gongzuobaogao.xyz +gongzuoshouji.net +gongzuoyun.org +gonsun.com +gonvvama.net +goo17.com +gooagoo.com +gooann.com +goobye.net +good-display.com +good-import.com +good.cc +good1230.com +good321.net +goodapk.com +goodbaby.com +goodbabygroup.com +goodbaike.com +goodcloud.xyz +goodcti.com +gooddr.com +gooddu.com +goodealwigs.com +goodera8.com +goodgupiao.com +goodid.com +goodix.com +goodjd.com +goodjili.com +goodkejian.com +goodlcm.com +goodlucknet.com +goodmorening.com +goodnic.net +goodprogrammer.org +goodrain.com +goods-brand.com +goodstudydayup.com +goodtea.cc +goodtp.com +goodzuji.com +goofish.com +googlebridge.com +googlenav.com +googlevip8.com +googlevoice.org +googleyixia.com +googvv.com +goolink.org +gooo8.com +gooogua.com +gooooal.com +goooob.com +gooood.hk +goootech.com +goootu.com +goosai.com +goosail.com +gooseeker.com +goosetalk.com +gooxi.com +gooyo.com +goozp.com +gopedu.com +gopeed.com +goplaycn.com +goplayervideo.com +goproxy.io +gorichox.com +gorouter.info +gorse.com +goselling.com +goshijia.com +gosinoic.com +gospelwin.com +gosuncdn.com +gosuncdn.net +gosunm.com +goten.com +goto-game.com +goto-game.mobi +goto-game.org +goto2jump.com +gotocdn.com +gotodn.com +gotohz.com +gotohzrb.com +gotoip.net +gotoip1.com +gotoip11.com +gotoip2.com +gotoip3.com +gotoip4.com +gotoip55.com +gotoip88.com +gotokeep.com +gotolink.net +gotonav.com +gotonets.com +gotostudyroom.com +gotoubi.com +gotozhuan.com +gotran.com +gotvg.com +gouchezj.com +goufang.com +goufw.com +gougoujp.com +gougoumh.com +gouhai.com +gouhao.com +gouhaowang.com +gouhuasuan.shop +goukuai.com +goulew.com +goulong.com +goumee.com +goumin.com +goupuzi.com +goushh.com +gouso.com +gousu.com +gouwanmei.com +gouwubang.com +gouwuke.com +gouwuyu.com +gouyoukeji.com +govfz.com +govmade.com +govqcloud.com +gow100.com +gowan8.com +goweb2.net +goweb3.net +goweike.net +gowinamc.com +gowincms.com +gowinlease.com +gowinxp.com +gowithmi.com +goyihu.com +goyoo.com +gozap.com +gp-tm.com +gp123.cc +gp1903.com +gp1907.com +gp241.com +gp259.com +gp451.com +gp51.com +gp88888.com +gp891.com +gpai.net +gpautobid.com +gpbctv.com +gpbeta.com +gpcqjy.com +gpd.hk +gpdi.com +gper.club +gpio.me +gpl-express.com +gplayspace.com +gplqdb.com +gpnewtech.com +gppapp.com +gps8.com +gpslook.net +gpsonextra.net +gpsoo.net +gpspw.net +gpsspg.com +gpsuu.com +gpticket.org +gpxxz.com +gpxygpfx.com +gpxz.com +gqgkj.com +gqjd.net +gqk.tv +gqqsm.com +gqsoso.com +gqsou.com +gqt168.com +gqtpw.com +gqxtq.com +gqyy8.com +gqzctsj.com +grablan.com +grabsun.com +gracece.com +gracg.com +gradaimmi.com +gradgroup.com +gradgroup.net +grainedu.com +grainstorage.net +grandinsight.com +grandomics.com +grandsail-servomotor.com +grapchina.org +graphene.tv +graphmovie.com +graueneko.xyz +gray-ice.com +grcbank.com +grchina.com +grdsv.com +greatbit.com +greatld.com +greatopensource.com +greatops.net +greatroma.com +greatsk.com +greatssp.com +greatstargroup.com +greatstartools.com +greatwalldns.com +greatwallships.com +gree-jd.com +gree.com +greebox.com +green12306.com +greenchengjian.com +greencompute.org +greendh.com +greenhua.com +greenism.net +greenlandsc.com +greentomail.com +greenxf.com +greenxiazai.com +grescw.com +gretf.com +greycdn.net +greyli.com +grfyw.com +grg2013.com +grgbanking.com +grge23.com +grgsecurity.com +grgvision.com +grgyintong.com +grid2048.com +gridsum.com +gridsumdissector.com +gridy.com +grikin.com +grinm.com +grirem.com +grizcom.com +grmxdy.com +groad.net +groovyfilmes.com +grouk.com +group-purchasing.com +groupjx.com +grouplus.com +growingio.com +grt-china.com +grth.xyz +gruntjs.net +gryu.net +grzmz.com +grzq.com +zzbbs.com +gs14.com +gs1cn.org +zzbblys.com +gs307.com +gs3jro.xyz +gs99gs.com +gsadds.com +gsafc.com +gsafety.com +gsbankchina.com +gsbankmall.com +gscidc.net +gsdk.tv +gsdpw.com +gse4sa.com +gsflcp.com +gsfzb.com +gsgs10086.com +gsgundam.com +gshhqy.com +gsi24.com +gsicpa.net +gsjie.com +gsjtky.com +gsjy.net +gsktraining.com +gskwai.com +gskyty.com +gsmpers.com +gspaceteam.com +gsqstudio.com +gsqx.com +gsrcu.com +gsrecv.com +gssdlv.com +gssfgk.com +gst-china.net +zzbaike.com +gstarcad.com +gstonegames.com +gsuus.com +gsxb.net +gsxcdn.com +gsxservice.com +gsxtj.com +gszlyy.com +gszph.com +gszq.com +gt-key.com +gt-oil.com +gt-semi.com +gt520.com +gtadata.com +gtags.net +gtan.com +gtanhao.com +gtarsc.com +gtaxqh.com +gtcedu.com +gtcim.com +gtdlife.com +gtdstudy.com +gter.net +gtfund.com +gtgres.com +gtibee.com +gtimg.com +gtja-allianz.com +gtja.com +gtjadev.com +gtjaqh.com +gtjazg.com +gtk2.com +gtlpaj.com +gtlrxt.com +gtm-a1b2.com +gtm-a1b3.com +gtm-a1b4.com +gtm-a1b6.com +gtm-a1b7.com +gtm-a1b8.com +gtm-a1b9.com +gtm-a2b2.com +gtm-a2b3.com +gtm-a2b4.com +gtm-a2b6.com +gtm-a2b7.com +gtm-a3b1.com +gtm-a3b5.com +gtm-a3b6.com +gtm-a3b7.com +gtm-a3b8.com +gtm-a4b1.com +gtm-a4b4.com +gtm-a4b6.com +gtm-a4b8.com +gtm-a4b9.com +gtm-a5b4.com +gtm-i1d1.com +gtm-i1d2.com +gtm-i1d6.com +gtm-i1d7.com +gtm-i1d8.com +gtm-i1d9.com +gtm-i2d3.com +gtm-i2d4.com +gtm-i2d8.com +gtm-i2d9.com +gtm.pub +gtmlufax.com +gtn9.com +gtobal.com +gtpromall.com +gttxidc.com +gtuanb.com +gtuu.com +gtxp2.com +gtzy123.com +gu166.com +guabu.com +guahao-inc.com +guahao.com +guahaoe.com +guahaowang.com +guaiguai.com +guaihou.com +guailuo.com +guailuzi.com +guaimai.net +guaixun.com +guajibao.club +guajibao.me +guajibaola.com +guajob.com +guakaoba.com +gualemang.com +gualudeng.com +guan.com +guan5.com +guanaitong.com +guanchangcun.com +guanchao.site +guandan.com +guandang.net +guandata.com +guandianle.com +guandongyucang.com +guang.com +guangbo.net +guangchilieche.com +guangdauser.com +guangdianyun.tv +guangdiu.com +guangdonglong.com +guangdongtaiji.com +guangdv.com +guangfeng.com +guanggao.com +guanggua.com +guanghe.tv +guanghuayigou.com +guangjiaohui888.com +guangjie5u.com +guangjieba.com +guangka.com +guangkatf.com +guangli88.com +guanglilvyuan.com +guanglunshiji.com +guangminggame.com +guangmingjx.com +guangshantang.vip +guangsuss.com +guangtuikeji.com +guanguser.com +guangwaifu.com +guangwangye.com +guangxi910.com +guangxigrc.com +guangxiyou.com +guangyinglvxing.com +guangyv.com +guangzhitui.com +guangzhou-logistics.com +guangzhou-marathon.com +guangzhouyibo.com +guanhaobio.com +guanhuaju.com +guanjiabo.net +guanjiajf.com +guanjianfeng.com +guankou.net +guanli360.com +guanliyun.com +guanmeikj.com +guanplus.com +guanrenjiaoyu.com +guanshangyu.cc +guanshi.net +guanting.com +guanvip8.com +guanwang.com +guanwangdaquan.com +guanwangshijie.com +guanwangyun.com +guanxiaokai.com +guanxxg.com +guanyiyun.com +guanzhongrc.com +guanzhu.mobi +guanzhulian.com +guanziheng.com +guapaijia.com +guardrailchina.com +guazhuan.com +guazi-apps.com +guazi.com +guazipai.com +guazistatic.com +guazixs.com +gubo.org +gucciblog.net +gucheng.com +gucn.com +gucun.info +gucunpark.net +gudaovision.com +gudemanage.com +gudi.cc +guduodata.com +gufengmh9.com +gugeanzhuangqi.com +gugeapps.net +gugong.net +gugu5.com +gugud.com +gugudang.com +guguread.com +guguyu.com +guguyuyin.com +guhai66.com +guheshuyuan.com +guhuozaiol.com +gui333.com +gui66.com +guibi.com +guibook.com +guidechem.com +guideir.com +guiderank-app.com +guiderank.org +guifun.com +guigu.org +guiguzhongguo.com +guihua.com +guihuayun.com +guiji.com +guijinshu.com +guilin.la +guilinhd.com +guilinlife.com +guilintravel.com +guimengning.com +guimilu.com +guimipay.net +guiqv.com +guitarpro.cc +guixue.com +guizeco.com +guizheng.net +guizumeimei.com +gujianba.com +gujiushu.com +gukaifu.com +gukaihu.com +gukun.com +gulandscape.com +gulinrongmei.com +gullmap.com +gulltour.com +gulou120.com +gulu.tv +gulu001.com +gulugj.com +gulumh.com +gulutea.com +gumang.com +gumaor.com +gumengya.com +gumingnc.com +gumo.pro +gunfans.net +guo.com +guo506393.xyz +guo7.com +guo98.com +guoanaz.com +guoanqi.com +guoaso.com +guobaihui.com +guobaoyou.com +guobensd.com +guobiao99.com +guoboshi.com +guocaiqinghai.com +guochaos.com +guocuijingju.com +guodegang.org +guodingnet.com +guodongbaohe.com +guodu.com +guodu.hk +guofen.com +guofenchaxun.com +guofenchaxun.net +guoguo-app.com +guoguomh.com +guohanlawfirm.com +guohuapharm.com +guoji.biz +guojiang.tv +guojianglive.com +guojidaigou.com +guojimami.com +guojing-tech.com +guojixuexiao.org +guojj.com +guojucloud.com +guojusoft.com +guokr.com +guokr.io +guokr.net +guoku.com +guolaiwanba.com +guoli.com +guoliangjie.com +guolianglab.org +guolier.com +guolin.tech +guoluonews.com +guolv.com +guomai.cc +guomii.com +guomu.com +guonongdai.com +guopc.com +guopeiwang.com +guopi8.com +guopika.com +guoping123.com +guoqinwang.com +guorentao.com +guorongfei.com +guoruiinfo.com +guoruijx.com +guoshi.com +guotv.com +guowaidiaocha.com +guowaitianqi.com +guoweitong.com +guoxiehao.com +guoxinlanqiao.com +guoxinmac.com +guoxinqh.com +guoxue.com +guoxue123.com +guoxuedashi.com +guoxuemeng.com +guoxuemi.com +guoxuwang.com +guoyang.cc +guoyi360.com +guoyice.com +guoyu.com +guozaoke.com +guozh.net +guozhihua.net +guozhivip.com +guozhongxin.com +guozi.org +guoziyx.com +gupaoedu.com +gupei.com +gupen.com +gupiao111.com +gupiao135.com +gupiao8.com +gupiaowajue.com +gupiaozhidao.com +gupowang.com +gupt.net +gupuu.com +gupzs.com +guqiankun.com +guqiu.com +guqu.net +gurukeji.com +gushequ.com +gushi.ci +gushi.com +gushi365.com +gushicimingju.com +gushiciqu.com +gushidaquan.cc +gushiju.net +gushiwen.org +gushufang.com +gusiyuan.com +gusuwang.com +gutianfood.com +gutou.com +guwan.com +guweimin.com +guwendao.net +guwenxs.com +guwu121.com +guxunw.com +guyuenglish.com +guyungame.com +guyut.com +guzaosf.com +guzhangting.com +guzhifengds.com +guzhihun.com +guziyy.com +gvacdn.com +gvi-tech.com +gvlocalization.com +gw-ec.com +zzay.net +gw2sc.com +gw66.vip +gwamcc.com +gwauto.com +gwclouds.net +gwdang.com +gweike.com +gwell.cc +gwgrow.com +gwidc.com +gwj-test.com +gwm-global.com +gwmfc.com +gwmsoft.com +gwname.com +gworg.com +gwoversea.com +gwy.com +gwyoo.com +gwyou.com +gwypxw.com +gwyzk.com +gwzwfw.com +gx-newmedia.com +gx8899.com +gxaedu.com +gxairlines.com +gxar.com +gxb.io +gxb2b.net +gxbaidutg.com +gxbf.net +gxbiandao.com +gxbys.com +gxbyw.com +gxcards.com +gxcic.net +gxdahua.com +gxdianhua.com +gxdmw.com +gxeqx.com +gxfcq.com +gxfdcw.com +gxfengjie.com +gxfengxiang.com +gxfin.com +gxfxwh.com +gxgkcat.com +gxglzj.com +gxgm.net +gxgwykh.com +gxgzlm.com +gxhl.com +gxhouse.com +gxhzxw.com +gxiang.net +gxiang.org +gxibvc.net +gxicpa.com +gxidc.com +gxind.com +gxipo.net +gxjfdz.com +gxjgdj.com +gxjs.net +gxjtaq.com +gxjznet.com +gxkjdns.com +gxkjec.com +gxkjjt.com +gxlcms.com +gxlxs2008.net +gxmlyjy.com +gxmmkt.com +gxnas.com +gxota.com +gxp.cc +gxpfyy.com +gxqcw.com +gxqihuan.com +gxqintang.com +gxqs.org +gxrc.com +gxrkyy.com +gxsell.com +gxshuairun.com +gxskm.com +gxsky.com +gxtodo.com +gxwenlian.com +gxwmcu.com +gxxgle.com +gxxiaotutu.com +gxxmyjs.com +gxycwy.com +gxyljf.com +gxyxlx.com +gxzjy.com +gxzmrl.com +gxzpw.org +gy-center.net +gy-fuji.com +gy.com +gy7n.com +gy818.com +gyb086.com +gybcq.com +gycf.com +gycode.com +gydongli.com +gydzxxxd.com +gyersf.com +gygl.com +gyguohua.com +gyhj.org +gyip.net +gyljc.com +gymama.com +gymbo-online.com +gymsj.com +gyncb.net +gynsh.net +gypserver.com +gyqcw.com +gyr.cc +gysk.com +gysou.com +gysq.org +gystatic.com +gytcwb.com +gytsg.net +gytsm.com +gyuancdn.com +gywygl.com +gyxdkjdl.com +gyxuan.com +gyypw.com +gyyqcloud.com +gyzfbz.net +gyzy.com +gz-cmc.com +gz-cube.com +gz-data.com +gz-gz.com +gz-lodihair.com +gz-notary.com +gz-station.com +gz007.net +gz121.com +gz12301.com +gz300.com +gz360.com +gz4399.com +gz4u.net +gz528.com +gz85.com +gz91.com +gzasp.net +gzate.com +gzbaibian.net +gzbaozhilin.com +gzbio.net +gzbmw.com +gzbzsport.com +gzchupai.com +gzcl999.com +gzcn.net +gzcppa.com +gzcxhd.com +gzcycling.com +gzdai.com +gzdaily.com +gzdata.net +gzdbx.com +gzdingyu.com +gzdjy.org +gzdsw.com +gzdysx.com +gzenxx.com +gzexpo.com +gzfc.net +gzfilm.com +gzfsnet.com +gzgdwl.com +gzgxkj.com +gzhakj.com +gzhangcha.com +gzhatao.com +gzhbsgg.com +gzhc365.com +gzhdcs.com +gzhe.net +gzhhr.com +gzhifi.com +gzhkl.com +gzhotelgroup.com +gzhphb.com +gzhtinfo.com +gzhttp.com +gzhuake.cc +gzhuojia.com +gzhxpw.com +gzhzcj.com +gzidc.com +gzittc.net +gzj568.com +gzjingsha.com +gzjisikj.com +gzjonathan.com +gzjpad.com +gzjqd.com +gzjtjx.com +gzjtjy.com +gzjunyu.com +gzjuqi.com +gzjykj.com +gzjzc.com +gzkz88.com +gzlex.com +gzlingli.com +gzlujiao.com +gzlz307.com +gzlzfm.com +gzmama.com +gzmath.com +gzmediaclick.com +gzmiyuan.com +gzmjhzs.com +gzmpc.com +gzmri.com +gzmtr.com +gzncstudios.com +gznemo.com +gznet.com +gzngn.com +gznxbank.com +gzpeite.com +gzpinda.com +gzpma.com +gzprobig.com +gzpts.com +gzpy120.net +gzqbd.com +gzqiche.com +gzqljxd.com +gzqunsheng.com +gzqxxz.net +gzrishun.com +gzrmw.com +gzrobot.com +gzrobots.com +gzshciw.com +gzshuimh.com +gzshujuhui.com +gzsjyzx.com +gzsjzx.com +gzsmove.com +gzspeedtest.com +gzstv.com +gzsuiti.com +gzsums.net +gzsy06.com +gzsy07.com +gzszgas.com +gztaiyou.com +gztcdj.com +gztfgame.com +gzthrc.com +gztime.cc +gztopkt.com +gztour.org +gztv.com +gztwkadokawa.com +gztxedu.com +gztz120.com +gzuc.net +gzuni.com +gzw.net +gzwanbao.com +gzwangshang.com +gzwanju.com +gzwarriortech.com +gzwcds.com +gzwcjs.com +gzweicai.com +gzweix.com +gzwhir.com +gzwrit.com +gzxdf.com +gzxf35.com +gzxhdyc.com +gzxict.com +gzxszf.com +gzxulang.com +gzxwtjy.com +gzyajs.com +gzycdy.com +gzych.vip +gzyct.com +gzylhyzx.com +gzyouai.com +gzyqtlxs.com +gzysbpay.com +gzyucai.com +gzyxls.com +gzzbgs.com +gzzhitu.com +gzzkzsw.com +gzzlfw.com +gzzlgame.com +gzzmedu.com +gzzoc.com +gzzongsi.com +gzzoo.com +gzzqy.net +gzzswy.com +gzzy04.com +gzzy05.com +h-college.com +h-heguo.com +h-shgroup.com +h-ui.net +h-world.com +h-zl.net +h0588.com +h0591.com +h0668.com +h0758.net +h1bz.com +h231.com +h2ex.com +h2o-china.com +h2os.com +h2vm.com +h3c.com +zz9ivb.com +h3dns.net +h3ue2s.com +h3wog.com +h3yun.com +h4.cc +h4532.com +h4kdxs.com +h5-share.com +h5-x.com +h5-yes.com +h5.net +h51h.com +h5495.com +h55u.com +h5abc.com +h5aiwan.com +h5anli.com +h5app.com +h5avu.com +h5ay.com +h5data.com +h5ds.com +h5eco.com +h5faner.com +h5gamecdn.club +h5gd.com +h5gdvip.com +h5in.net +h5jun.com +h5king.com +h5ky.com +h5le.com +h5mc.com +h5mgd.com +h5mota.com +h5mugeda.com +h5no1.com +h5po.com +h5shuo.com +h5tpl.com +h5uc.com +h5war.com +h5youxi.com +h5yunban.com +h6295.com +h6688.com +h6969.com +h6app.com +h7ec.com +h8jx.com +h9hash.com +ha1916.com +ha97.com +haawking.com +habadog.com +habbygames.com +hac-ker.net +hack-cn.com +hack-gov.com +hack0nair.me +hack50.com +hack520.com +hack99.com +hackav.com +hackdig.com +hackerav.com +hackernews.cc +hackhome.com +hackhp.com +hackhw.com +hacking-linux.com +hacking8.com +hackinn.com +hackline.net +hacknical.com +hackp.com +hackpascal.net +hackrf.net +hackroad.com +hacori.com +hacpai.com +haczjob.com +hadax.com +hadobi.com +hadsky.com +haers.com +haguan.com +haguworld.com +haha168.com +haha33.com +haha360.com +haha365.com +haha9911.com +hahack.com +hahaha365.com +hahait.com +hahasou.com +hahawen.com +hahayouxi.com +hahour.com +hai0.com +haiana.com +haianbank.com +haianedu.net +haianw.com +haibao.com +haibao123.xyz +haibaobaoxian.com +haibaoyl.com +haibaoyouxi.com +haibeinews.com +haibian.com +haiboinvest.com +haiboyi.com +haicent.com +haichangchina.com +haichangoceanpark.com +haichuanmei.com +haichufang.com +haici.com +haicj.com +haicoder.net +haidaibao.com +haidaoteam.com +haidaotrip.com +haidaozhu.com +haidii.com +haidilao.com +haidilao.net +haidilao.us +haidimao.com +haidubooks.com +haier.com +haier.hk +haier.net +haiercash.com +haiershequ.com +haierubic.com +haieruplus.com +haifangbao.com +haifangbest.com +haige.com +haigeek.com +haigehome.com +haigui001.com +haiguime.com +haihaiyu.com +haihuishou.com +haijia.org +haijiangzx.com +haijiaonet.com +haijiasu.com +haijingfang.cc +haiketrip.com +hailiangedu.com +hailiangip.com +haililiang.com +hailiys.com +hailuowu.com +haima.me +haima001.com +haimacloud.com +haimaiyun.com +haimawan.com +haimi.com +haimini.com +haina.com +hainachuan.org +hainanairlines.com +hainancom.com +hainancp.com +hainandj.com +hainanfp.com +hainanfz.com +hainanjiuzi.com +hainanpc.net +hainiaowo.com +hainic.com +haining.tv +hainingnews.net +hainiubl.com +hainiuxy.com +hainuotech.com +haiqingyanyu.com +haiqisoft.com +haiqq.com +hair43.com +hair8.net +hairbobo.com +hairunmedia.com +hairunpictures.com +haisenyouxi8.com +haishengfrp.com +haisheteam.com +haishui.cc +haishun.com +haishun6688.com +haitaibrowser.com +haitaichina.com +haitao.co +haitao.com +haitao369.com +haitao8.com +haitaoing.com +haitaoit.com +haitaoj.com +haitaolab.com +haitaopd.com +haitaoqq.com +haitaotong.com +haitaozu.org +haitianhome.com +haitl.com +haitongjiaoyu.com +haitou.cc +haitou360.com +haitoujia.com +haituie.com +haituncun.com +haitunshenghuo.com +haituntui.com +haitunvoice.com +haituoqi.com +haitutech.com +haiwaihuafei.com +haiwaimoney.com +haiwaioo.com +haiwaiyou.com +haiwaiyoujia.com +haiwanxinxi.com +haiweili.com +haiwell.com +haiwen-law.com +haiwenky.com +haixiahao.com +haixianlai.net +haixindichan.com +haixinews.com +haixingbangfu.com +haixiulive.com +haixiumv.com +haixiutv.com +haixiuvv.com +haixue.com +haixuemeili.com +haixunw.com +haiyi701.com +haiying168.com +haiyingshuju.com +haiyue.info +haiyun.me +haizhangs.com +haizhanweb.com +haizhlink.com +haizhoumo.com +haizhuyx.com +haizitong.com +haizol.com +hakaimg.com +halade.com +halead.com +halffashion.com +halfrost.com +haligenjudi.com +halixun.com +haliyy.com +halloar.com +hallofix.com +halobear.com +halomobi.com +haluoha.com +hamedal.com +hamir.net +han-ju.cc +han-tang.cc +hanamichi.wiki +hanbaoying.com +hanboshi.com +hanchao9999.com +hancloud.com +hanclouds.com +hand-china.com +handanjob.com +handanw.com +handanyz.com +handday.com +handfunds.com +handian027.com +handone.com +handpk.com +handu.com +handuyishe.com +handyfriendship.com +hanergy.com +hanergymobileenergy.com +hanfei.net +hanfengcars.com +hanfugong.com +hangdaxinli.com +hangduhc.com +hangfushi.com +hangge.com +hanghaimeng.com +hanghang666.com +hanghangcha.com +hangjiayun.com +hangjizulin.com +hangkong.com +hangomart.com +hangpu-topsys.com +hanguangbaihuo.com +hanguu.com +hangw.com +hangxinyiqi.xin +hangye365.com +hangzhiqiao.com +hangzhoufcw.com +hangzhouluohu.com +hangzhoutianqi114.com +hangzhouyiyao.com +hangzhouzhiqi.com +hanhai.net +hanhaiqikan.com +hanhuatin.com +hanhwlab.com +hanjianbing.org +hanjiaying.com +hanjie.biz +hanjjl.com +hanju-tv.org +hanjutv.com +hanjutv.me +hanjutvaa.com +hankai.ren +hankeer.org +hanking.com +hankunlaw.com +hanlefang.net +hanlei.org +hanlin.press +hanlinzhijia.net +hanmadiancan.com +hanmaker.com +hanmeilin.com +hannor.com +hannto.com +hanshijiaoye.com +hanshow.com +hansight.com +hansiji.com +hanslaser.net +hansme.com +hanspub.org +hansrobot.com +hansuku.com +hansunic.com +hantang59.com +hantangxintong.com +hanterry.com +hantinghotels.com +hanvitools.com +hanvon.com +hanvonmfrs.com +hanvontouch.com +hanweb.com +hanweimetal.com +hanxinsheng.com +hanyanseed.com +hanyi.studio +hanyou.com +hanyougame.com +hanyouwang.com +hanyucar.com +hanyurumen.com +hanzhifeng.com +hanzhong123.com +hanzify.org +hao-sheng-yi.com +hao.ac +hao0202.com +hao120.cc +hao123-hao123.com +hao123.com +zz96269.com +hao123.sh +hao123img.com +hao1258.com +hao163.com +hao168.cc +hao181.com +hao184.com +hao1970.com +hao1996.com +hao1cm.com +hao22.com +hao222.com +hao224.com +hao24.com +hao245.com +hao268.com +hao315.cc +hao315.com +hao315.tv +hao3399.com +hao352.com +hao353.com +hao360.com +hao378.com +hao394.com +hao5.net +hao568.com +hao6.com +hao61.net +hao695.com +hao7188.com +hao753.com +hao76.com +hao86.com +hao8dai.com +hao9669.com +haoad.org +haoamc.com +haoayi.xyz +haobanyi.com +haobiaoke.com +haobtc.com +haocai.com +haochang.tv +haochangyou.com +haocheedai.com +haochengda.net +haochijixie.com +haochu.com +haodaibao.com +haodanku.com +haodaquan.com +haodevps.com +haodewap.com +haodf.com +haodf.org +haodiany.com +haodiaoyu.com +haodingdan.com +haodiy.net +haodns123.cc +haodns999.cc +haodongdong.com +haodou.com +haoduofangs.com +haoduojiaju.com +haoduorou.net +haofang.net +haofang5.com +haofangkankan.com +haofenshu.com +haofenxiao.net +haofly.net +haofz.com +haoge500.com +haogewd.com +haogongzhang.com +haogoshop.com +haogow.com +haogu114.com +haohaizi.com +haohan-data.com +haohanfw.com +haohanguo.com +haohanpower.tech +haohaotuan.com +haohaowan.com +haohaoxiu.com +haohaoyx.com +haohaozhu.com +haohaozhu.me +haohead.com +haohiyou.com +haohongfan.com +haoht123.com +haohuan.com +haohuo.xin +haohuoa.com +haoii123.com +haoinvest.com +haoiyon.com +haoiyong.com +haoji.me +haojiameng.net +haojiao.cc +haojiaolian.com +haojing.org +haojit.com +haojue.com +haojue163.com +haokan.com +haokan123.com +haokan5.com +haokan58.com +haokanzhan.com +haokecheng.com +haokejie.com +haokongbu1.com +haokoo.com +haoku.net +haokuaiya.com +haolangtech.com +haolawyer.com +haole.com +haolexiang.com +haolietou.com +haoliners.net +haolints.com +haoliv.com +haolizi.net +haolvlv.com +haolyy.com +haoma.com +haomagujia.com +haomaishou.com +haomaiyi.com +haomaku.com +haomee.net +haomeili.net +haomenke.com +haomijie.com +haommn.com +haomove.com +haomugua.com +haonames.com +haonic.com +haonongzi.com +haopeixun.com +haopianyi.com +haoqiao.com +haoqikan.com +haoqixingstem.com +haoqq.com +haor233.com +haorc.com +haoread.com +haorencai.net +haorooms.com +haoseals.com +haosenchina.com +haoservice.com +haosf.com +haosf5.com +haoshanpu.com +haoshanxi.com +haoshengmall.com +haoshenqi.com +haoshetou.net +haoshici.com +haoshipin123.com +haoshiqi.net +haoshsh.com +haoshuang.site +haoshunjx.com +haoshuo.com +haosijia.com +haosijia.vip +haosix.com +haoso.com +haosou.com +haosou.net +haostay.com +haote.com +haotianhuyu.com +haotihui.com +haotijin.com +haotongjixie.com +haotoufa.com +haotougao.com +haotougu.com +haotui.com +haotukankan.com +haouc.com +haowa.com +haowaicaijing.com +haowandeni.com +haowanok.com +haowanyou.com +haoweishow.com +haowen100.com +haoword.com +haowu.com +haowu.info +haowu.link +haowui.com +haowusong.com +haowuyunji.com +haowuyx.com +haoxg.net +haoxiake.com +haoxiang.org +haoxiaoguo.net +haoxipu.com +haoxitong.com +haoxiyou.com +haoxue.com +haoxuetang99.com +haoyao.com +haoychuang.com +haoyisheng.com +haoyishui.com +haoyong.cc +haoyongapp.com +haoyouqian.com +haoyouyinxiang.com +haoyuanxiao.com +haoyue.asia +haoyun13.com +haoyun56.com +haoyunbb.com +haoyundao.net +haoyunma.com +haozai120.com +haozaishop.com +haozhai.com +haozhanhui.com +haozhebao.com +haozhexie.com +haozhuangji.com +haozhuji.net +haozi.org +haozi.xyz +haozip.com +haozjj.com +haozu.com +haozuojia.com +hapi123.net +hapingapp.com +haplat.net +happigo.com +happy24uk.com +happycamp.cc +happychang.net +happycodeboy.com +happyelements.com +happyev.com +happyhlddz.com +happyjuzi.com +happylivelife.com +happymath2009.org +happymmall.com +happynic.com +happypingpang.com +happyplaygame.net +happyroll.net +happysky.org +happytimenet.com +happyux.com +happywalk.net +happyya.com +hapying.com +haqu.com +harbin-electric.com +harborhousehome.com +hardkr.com +hardspell.com +hariogame.com +harlanc.vip +harmay.com +harmight.com +harmony3.com +harmony4s.com +harmonyos.com +harryhorsemedia.com +harrynull.tech +harrypottermagicawakened.com +harvestcm.com +harvesthanger.com +harvestpawn.com +harvey.plus +hasea.com +hasee.com +hasee.net +hashnest.com +hasivo.com +hasoltd.com +hassbian.com +hatfav.com +hatlonely.com +hatoem.com +haval-global.com +have.ink +havefun.im +havewo.com +hawbel.com +hawkeye.fun +haxiu.com +hayeen.com +hayseen.com +hazq.com +hb-ecloud.com +hb-green.com +hb-hengda.com +hb-ly.com +hb-ws.com +hb10000.com +hb10000sale.com +hb110.cc +hb12333.com +hb191.com +hb30.com +hb3rm.com +hb500.com +hb6.org +hb78.cc +hb96369.com +hb96568.com +hbaas.com +hbadei.com +hbanbao.com +hbap.net +hbbaidu.com +hbbidding.com +hbbsw.vip +hbbutler.com +hbbxpx.com +hbbzyys.org +hbccp.org +hbccpit.org +hbcdc.com +hbcg.cc +hbcggj.com +hbchen.com +hbcjh.net +hbcjlq.com +hbcjw.com +hbcjxx.com +hbcms.com +hbcofco.com +hbcourt.org +hbcsche.com +hbcszb.com +hbctjk.com +hbcwt.com +hbcyclub.com +hbcydlqc.com +hbdangyang.com +hbddrn.com +hbdmia.com +hbdtjqj.com +hbdx-kdyy.com +hbdzcg.com +hbeducloud.com +hbekt.com +hbepec.com +hbfie.org +hbfire.com +hbfootball.com +hbfy.com +hbfyhb.com +hbfzb.com +hbgajg.com +hbgbdst.com +hbgcxj.com +hbgdwl.com +hbglky.com +hbglobal.com +hbgrb.net +hbgsetc.com +hbgwy.org +hbgzh.com +hbha027.com +hbhande.com +hbhaolinju.com +hbhcdn.com +hbhdhd.com +hbhm.net +hbhqzyc.com +hbhtcm.com +hbhtxx.com +hbhxbb.com +hbhyychem.com +hbhz.net +hbicpa.org +hbidc.net +hbifeng.com +hbinitiate.com +hbisv.com +hbjcgy.com +hbjdxt.com +hbjhc.com +hbjhpx.com +hbjianzhuwang.com +hbjinnong.com +hbjjrb.com +hbjk114.com +hbjkjt.com +hbjlhw.com +hbjsinfo.com +hbjubao.com +hbjxjy.org +hbjxjyw.com +hbjxym.com +hbjzx.com +hbjzzx.com +hbkqw.com +hbksw.com +hbky.com +hblccy.com +hbldwx.com +hbliti.com +hblszq.com +hbltzb.com +hblykj.com +hbm360.com +hbmes.com +hbmmtt.com +hbn68.com +hbnews.net +hbnewsoft.com +hbneww.com +hbooker.com +hbpangu.net +hbpbnmb.com +hbpengxi.com +hbpic5.com +hbpictures.com +hbptzsbw.com +hbpukang.com +hbqnb.com +hbqtgg.com +hbqyj.org +hbqyxy.com +hbrbmedia.com +hbrc.com +hbrchina.org +hbrchinese.org +hbrd.net +hbrebond.com +hbrfxh.com +hbruicai.com +hbrunlin.com +hbryzx.net +hbrzkj.com +hbs-nd.com +hbsccloud.com +hbscsb.com +hbsdenterprise.com +hbsdjl.com +hbsfgk.org +hbshengbangwl.com +hbshgzx.com +hbshls.com +hbsia.org +hbskw.com +hbslndx.com +hbsmservice.com +hbsocar.com +hbsoft.net +hbsogdjt.com +hbspcar.com +hbsql.com +hbsrjyy.com +hbssfw.com +hbsszx.com +hbstars.com +hbsti.com +hbsunlink.com +hbswkj.com +hbszfw.com +hbsztv.com +hbszzd158.com +hbszzk.com +hbszzx.com +hbtcmu.com +hbtcw.com +hbtengniu.com +hbtobacco.com +hbtxbaidu.com +hbtycp.com +hbwh.net +hbwhcyw.com +hbwhgs.com +hbwhjj.com +hbwhrd.org +hbwjs.com +hbwlykt.com +hbww.org +hbxdf.com +hbxhxkj.com +hbxiyuan.com +hbxtzy.com +hbxyairport.com +hbxytc.com +hbyczk.com +hbyeson.com +hbyidu.com +hbyjfs.com +hbynet.net +hbyoyo.com +hbyscn.com +hbyspx.com +hbzaxh.com +hbzbw.com +hbzgjx.com +hbzhan.com +hbzhjxzz.com +hbzhonghai.com +hbzjjk.com +hbzjzb.com +hbzknet.com +hbzkzxw.com +hbzncz.com +hbzqzx.com +hbzsb.com +hbzuojia.com +hbzw56.com +hbzywh.com +hc-byq.com +hc-cdn.com +hc-software.com +hc01.com +hc121.com +hc23.com +hc360-inc.com +hc360.com +hc39.com +hc79.com +hc9.com +hcbbs.com +hcbuy.com +hcc11.com +hccpcba.com +hcctm.com +hcdamai.com +hcdyhr.com +hcfcc.com +hcgroup.com +hch518.com +hchbblg.com +hchbsb.com +hchezhu.com +hchlidc.com +hchliot.com +hcicloud.com +hcjms.com +hcjsk120.com +hcl100.com +hclouder.com +hcmiraefund.com +hcnamecdn.com +hcnamecdns.com +hcocoa.com +hcqixinhb.com +hcrlm.com +hcshebao.com +hcsilk.com +hctxf.org +hcty.com +hcwiki.com +hcx123.com +hcx99.com +hcxcw.com +hcxy6.com +hcyacg.com +hcyea.com +hcyzdc.com +hczc.com +hczfgjj.com +hczq.com +hczxmr.com +hczypay.com +hd-tvb.com +hd.gg +hd00.com +hd027.com +hd123.com +hd123.net +hd12333.com +hd199.com +hd199.net +hd3p.com +hdarea.club +hdavchina.com +hdb.com +hdbaichuan.com +hdcms.net +hdcolorant.com +hdd-group.com +hddata.net +hddhhn.com +hddid.com +hddznet.com +hdeexpo.com +hdem12.com +hdfimg.com +hdgogogo.com +hdh.im +hdhgzx.com +hdhospital.com +hdhui.com +hdj.me +hdjay.com +hdlcdns.com +hdlchina.com +hdletv.com +hdlogo.com +hdltest.com +hdmayi.com +hdmnw.com +hdmooncake.com +hdmtv168.com +hdmv.org +hdnd01.com +hdpyqa.com +hdpyqc.com +hdpyqd.com +hdsdyyy.com +hdslb.com +hdslb.net +hdslb.org +hdsx36hb.com +hdsx39hb.com +hdsx83hb.com +hdtgtm.com +hdtmedia.com +hduofen.com +hdurl.me +hduzplus.xyz +hdwbcloud.com +hdwbsaas.com +hdwebpyqa.com +hdwebpyqe.com +hdyouxi.com +hdypw.com +hdyunxin.com +hdyxgame.com +hdzp.com +hdzxyy.com +he-nan.com +he-one.com +he1j.com +he29.com +he2d.com +he9630.com +heacn.net +head-way.com +headphoneclub.com +healthcareol.net +healthjd.com +healthr.com +healthych.com +hearstchina.com +heart-game.com +heartide.com +heartinsti.com +heataek.com +heavenlywind.cc +hebangdianzi.com +hebaodai.com +hebbank.com +hebbr.com +hebca.com +hebei.cm +hebeifeimeng.com +hebeigwy.org +hebeijd.com +hebeinongzi.com +hebeizhouji.com +hebgtjt.com +hebiw.com +hebjxw.com +hebl.name +hebmusic.com +hebnx.com +hebolaw.com +hebooming.com +hebotc.com +hebradio.com +hebsg.net +hebshanggu.com +hebtv.com +hec-al.com +hec-changjiang.com +hecai360.com +hecaijing.com +hecdn.com +hecdn.net +hechangquan.com +hechengbb.com +heclouds.com +hecoe.com +hecpharm.com +hedgehogrock.com +heduibu.com +heeeeeh.com +heehee.club +heemoo.com +heerit.com +hefei.cc +hegii.com +hegouvip.com +hegsryjq.com +hehesheng.com +heheshouyou.com +hehesy.com +hehewan.com +hehouse.com +hei7.net +heibai.org +heibaige.com +heibaimanhua.com +heiban8.com +heicha.com +heicheng51.com +heidaren.com +heidiankeji.com +heigaga.com +heiguang.com +heiguang.net +heijiao.net +heijiaovip.com +heijin.org +heijingjihua.com +heilanhome.com +heilei.com +heiluo.com +heima.com +heima8.com +heimabao.com +heimac.net +heimadao.com +heimadata.com +heimai666.com +heimajijin.com +heimancc.com +heimaol.com +heimaoseo.org +heimaoseojishu.com +heimaoshe.com +heimayijiancai.com +heimaying.com +heimeiai.com +heimeng.net +heimizhou.com +heiniubao.com +heinote.com +heirenlei.com +heisener.com +heisha.net +heishao.net +heishenhua.com +heitao.com +heitao2014.com +heixi.com +heiyan.com +heiyan.la +heiyan.org +heiyan8.com +heiyange.com +heiyanimg.com +heiying.cc +heiyuewan.com +heiyunxitong.com +heizhushoes.com +hejiu2016.com +hejizhan.com +hejun.com +heketai.com +hekouxin.com +heku.org +hel168.com +helensbar.com +heliang.cc +helianhealth.com +helight.info +helijia.com +helingqi.com +helishun.com +heliuyan.com +hello-inc.com +hello1010.com +hellobanma.com +hellobi.com +hellobike.com +hellobiye.com +hellobtc.com +hellocq.net +hellodive.com +hellof1.com +helloflask.com +hellogame.net +hellogithub.com +helloglobal.com +hellogslb.com +hellohuohu.com +helloimg.com +hellojava.com +hellokang.net +hellokid.com +hellokidvip.com +hellomeowlab.com +hellonitrack.com +hellopcb.com +hellorf.com +hellotalk8.com +hellotw.com +helloweba.com +helloweba.net +hellowebfont.com +hellowgame.com +helloworld.net +helloxjn.com +helloyao.com +helong.info +help-hope.org +helperaddress.com +helpmeng.com +helpton.com +heluowenhua.net +hemamax.com +hemanc.com +hemanzi.com +hemaos.com +hemaread.com +hemayouxi.com +hemayun.com +hemayx.com +hempelgroup.com +hen360.com +henan100.com +henanart.com +henanfucai.com +henangeli.com +henanjianling.com +henanjubao.com +henansyj.com +henbt.com +hencin.com +hencoder.com +hengancaifu.com +hengannet.com +hengbogroup.com +hengchang6.com +hengdawenbo.com +hengdayun.com +hengdianfilm.com +hengdianworld.com +hengdu.cc +hengdulaw.com +hengfujz.com +hengjiafish.net +hengjiecdn.com +hengqian.com +hengqijy.com +hengqikuaiji.com +hengshuilaobaigan.net +hengtai-law.com +hengtiansoft.com +hengtianyun.com +hengwenzhendangqi.com +hengxiangtaji.com +hengxinjinshu.com +hengxueedu.com +hengyan.com +hengyidai.com +hengyigl.com +hengyoux.com +henha.com +henhaoji.com +henjay724.com +henkuai.com +henmimang.com +henri.ren +henxisoft.com +henzan.com +henzanapp.com +hepalink.com +hepan.com +hepan.org +hepatox.org +hepmall.com +hepost.com +hepuweilai.com +hercity.com +hercules-micro.com +herdsric.com +here120.com +here325.com +hermesguanwang.com +heroad-data.com +heroestactics.com +heroicyang.com +herosanctuary.com +heroskate.com +herostart.com +herowind.com +heroworld.net +hertzhu.com +heshui.com +hessianhealth.com +hetao101.com +hetaoa.com +hetaoapis.com +hetaobiancheng.com +hetaocdn.com +hetaointernal.com +hetaolin.com +hetianyu.cc +hetunzu.com +hetusoft.com +heu8.com +heweather.com +heweather.net +hewebgl.com +hexagonsemi.com +hexianrc.com +hexiaoxiang.com +hexicomtech.com +hexilai.com +hexindai.com +hexinli.org +hexmeet.com +hexun.com +heyang.cc +heyang365.com +heycan.com +heycode.com +heydayinfo.com +heyguo.com +heyi.com +heyinguanli.com +heymeo.net +heymeowfm.com +heymore.com +heyou51.com +heyplus.com +heyreport.com +heyria.com +heytap.com +heytapcs.com +heytapdownload.com +heytapimage.com +heytapmobi.com +heytea.com +heyuan5.com +heyunnet.com +heyuyhw.com +heywoodsminiprogram.com +heywow.net +hez70.com +heze.cc +hezebus.com +hezeribao.com +hezhidongli.com +hezhonglaw.com +hezhoubbs.com +hezi.com +hezibook.com +hezibuluo.com +hezijia.com +hezxs.com +hf-iflysse.com +hf10000.com +hf12345.vip +hf365.com +hf777.com +hfabiao.com +hfanss.com +hfbaogao.com +hfbeta.com +hfbz.com +hfchzyy120.com +hfcyh.com +hfdedu.com +hffund.com +hfgjj.com +hfhouse.com +hfhyw.com +hfi-health.com +hfjy.com +hfkeheng.com +hfkj0754.com +hfkktt.com +hflbysm.com +hflz.com +hfmama.com +hfmoney.com +hfqinhang.com +hfray.com +hfrc.net +hfrcbc.com +hfrqh.com +hfrsggff.com +hfsava.com +hfsid.com +hfssw.com +hfswcz.com +hfsxs.com +hftfund.com +hftogo.com +hfx.link +hfx.net +hfxst.com +hfyestar.com +hfykd.com +hfyouqi.com +hfyt365.com +hfyuqin.com +hg11844.com +hg12333.com +hg1946.vip +hg2693.com +hg5177.com +hg56699.com +hg6262.biz +hg707.com +hg87.com +hg8880.org +hga994.com +hgaas.com +hgame.com +hgbang.com +hgcyh.com +hgdgcxy.com +hgfdrf.com +hghhh.com +hgimage.com +hgitv.com +hgjart.com +hgjx.com +hglaser.com +hgmai.com +hgnc.net +hgyjs.com +hgyx.cc +hgzdq.com +hgzk.com +hgzkb.com +hgzrc.com +hh-gltd.com +hh010.com +hh112233hh.com +hh1488.com +hhailuo.com +hhbg123.com +hhcn.com +hhcx-led.com +hhczy.com +hhdx120.com +hhf2008.com +hhfbqzgs.com +hhfxw.com +hhgslb.com +hhh233.net +hhh885.com +hhhoo.com +hhhstz.com +hhhtfin.com +hhhtnews.com +hhhtscf.com +hhjtwl.com +hhl1916.com +hhpj.net +hhrcard.com +hhrdc.com +hhtmm.com +hhtravel.com +zz91.com +hhvv.com +hhxdkj.com +hhxin.com +hhycdk.com +hhygame.com +hhygames.com +hhyungu.com +hi-54.com +hi-books.com +hi-gtd.com +hi-lead.com +hi-linux.com +hi-mantech.com +hi-roy.com +hi-spider.com +hi0755.net +hi138.com +hi1718.com +hi2000.com +hi2000.net +hiaal.com +hiagr.com +hiaiabc.com +hiapk.com +hiascend.com +hiavr.com +hibea.com +hibixin.com +hibt.net +hibtc.org +hibuzz.net +hiby.com +hibymusic.com +hic.cloud +hicamelia.com +hicat.net +hiceon.com +hichao.com +hicheng.net +hichina.com +hiclc.com +hicling.com +hicloud.com +hiconey.com +hicoo.net +hicosmo.com +hicp.net +hicss.net +hiczp.com +hidesigncloud.com +hiditie.com +hidna.net +hidva.com +hienshi.com +hiersun-hdp.com +hiersun-ido.com +hiersun-zuanjindian.com +hiesquire.com +hifi168.com +hificat.com +hifidiy.net +hififf.com +hifime.net +hifini.com +hifiok.com +hifishuo.com +hifiveai.com +hifly.mobi +hifly.tv +hifpga.com +hifreud.com +hifuntv.com +higame123.com +higeshi.com +highdigitizing.com +highgo.com +highlightoptics.com +highlm.com +highsharp.com +hightopo.com +highwayguitar.com +higon.com +hihell.com +hihocoder.com +hihonor.com +hihonorcdn.com +hihonorcloud.com +hihope.org +hiido.com +hiigame.net +hiiyun.com +hijiaoshi.com +hijoys.com +hikailink.com +hikcreate.com +hiklife.com +hikoon.com +hikops.com +hikparking.com +hikrobotics.com +hikstor.com +hikunpeng.com +hikunpeng.net +hikvision-jl.com +hikvision.com +hikyun.com +hiliad.com +hillstonenet.com +hillyton.com +hiloong.com +hilunwen.com +himaker.com +himanufacture.com +himawari-japan.com +himeidian.com +himengyou.com +himetoo.com +himmpat.com +himofi.com +hinabian.com +hinavi.net +hindlish.com +hinpy.com +hiopensource.com +hiosu.com +hioug.com +hiparking.com +hipcam.net +hiphi.com +hiphop8.com +hipiao.com +hippoanimation.com +hippter.com +hipring.net +hipu.com +hirede.com +hiregistry.com +hireye.com +hiroop.com +hirosspac.com +hirossz.com +his.sh +hiscene.com +hisense-home.com +hisense-plaza.com +hisense-syxs.com +hisense.com +hisensehitachi.com +hishendeng.com +hisilicon.com +hisiphp.com +hislota.com +hismarttv.com +hisoft.com +hisofts.com +hisonracking.com +histarter.com +hisupplier.com +hit180.com +hitachi-helc.com +hitalk.com +hitalkers.com +hitevision-solution.com +hitfmfans.com +hitgk.com +hitnology.com +hitnslab.net +hitouch.com +hitozumi.com +hitui.com +hitutu.com +hitux.com +hituyu.com +hitv.com +hiuo08jnsoo00bytu32shcs555aa1564dvfguiio0o0885432.com +hiveview.com +hivi.com +hivictor.net +hiwafer.com +hiwbb.com +hiwebgl.com +hiwechats.com +hiwemeet.com +hiwenku.com +hiworld.com +hixgo.com +hixianchang.com +hixiaoman.com +hiyd.com +hiyongche.com +hiyouib.com +hiyouqu.com +hiyun.site +hizg.org +hizhiche.com +hizhu.com +hizj.net +hizyw.com +hj-bits.com +hj-mail.com +hj.vc +hjagent.com +hjapi.com +hjbbs.com +hjbxw.com +hjchee.com +hjcjifen.com +hjclass.com +hjd123.com +hjdict.com +hjdns.com +hjdns.net +hjdzn.com +hjenglish.com +hjgcd.com +hjhrcloud.com +hjido.com +hjiesuan.com +hjjfood.com +hjjg.com +hjjh.com +hjkhjkl.com +hjplw.com +hjpp.net +hjr-exchange.com +hjtag.com +hjwblog.com +hjwsky.com +hjwxcps.com +hjxsjx.com +hjy1314.com +hjyanxue.com +hjygame.com +hjyl.org +hjz518.com +hk-island.hk +hk-titan.com +hk-vstart.com +hk.uy +hk515.net +hkaco.com +hkaik.com +hkance.com +hkance.xyz +hkanews.com +hkbchina.com +hkcgart.com +hkcna.hk +hkcoalition.com +hkcts.com +hkctshotels.com +hkctsmembers.com +hkexpressworld.com +hkfc.hk +hkfe.hk +hkfljt.com +hkgcloudcs.com +hkgcr.com +hkgj07.com +hkjapp.com +hkklock.com +hkkuaiyixiu.com +hklego.com +hkm168.com +hkmjd.com +hknet-inc.com +hkpanamie.com +hkpep.com +hkproperty.com +hkqbh.com +hkscxh.com +hkstv.tv +hkszetsair.com +hkt4.com +hktheone.com +hkvisen.com +hkwb.net +hkxbjt.com +hkxen.com +hkyykq.com +hkzlcm.com +hl-brushes.com +hl95.com +hl95001.com +hlapi.com +hlbeixiu.com +hlbeixiu.net +hlcdn.cc +hldbtv.com +hldgp.com +hldnews.com +hldqjx.com +hldsjsjx.com +hlej.com +hlgad.com +hlgdata.com +hlgnet.com +hlgnet.net +hlhmf.com +hlideal.com +hlje.net +hljjjb.com +hljjkfp.com +hljjytkj.com +hljnzy.net +hljpost.com +hljradio.com +hljrcc.com +hljsfjy.com +hljszjxhw.com +hljtv.com +hljucm.net +hljyestar.com +hljyqnj.com +hljzl.icu +hlkkwl.com +hlkncse.com +hlltuozhan.com +hlmbbs.com +hlnmg.com +hloong.com +hlpretty.net +hlqiaojia.com +hlread.com +hlsdq.com +hltcy.com +hltmsp.com +hlwidc.com +hlxsykd.com +hlxy.com +hly.com +hlybar.com +hlytec.com +hlzq.com +hlzqgs.com +hm-3223.net +hm120.com +hm16888.net +hm86.com +hmecw.com +hmgj.com +hmgreat.com +hmh5.com +hminvestment.com +hmjblog.com +hmlan.com +hmltec.com +hmnst.com +hmoe.link +hmplay.com +hmrczp.com +hmsce.org +hmsem.com +hmsemi.com +hmseo.net +hmskw.com +hmsxw.com +hmszkj.com +hmting.com +hmxw.com +hmyz.com +hmz.com +hmzixin.com +hmzs.net +hmzx163.com +hn-cbec.com +hn-pc.com +hn165.com +hn96520.com +hnacargo.com +hnaccp.com +hnaee.com +hnagroup.com +hnagroup.net +hnair.com +hnair.net +hnaiya.com +hnangel.com +hnapay.com +hnayg.com +hnbaili.net +hnbits.com +hnbljy.com +hnbrush.com +hnbwsd.com +hnccpit.org +hncloud.com +hncourt.org +hncreate.com +hncsmjzs.com +hncsmtr.com +hncsvod.com +hndca.com +hndfbg.com +hndnews.com +hndpx.com +hndt.com +hnehome.net +hnemb.com +hnetn.com +hnfa.org +hnfapiao.com +hnfdx.com +hnfjz.com +hnfyqmj.com +hngbjy.com +hngbw.com +hnggzy.com +hngh.org +hngican.com +hngoldcorp.com +hngqjc.com +hngscloud.com +hngtrust.com +hngwg.com +hngyzx.org +hnh.cc +hnhflqgc.com +hnhnled.com +hnhxin.com +hnhxxk.com +hniec.org +hnied.xyz +hniic.com +hnisca.org +hniso.net +hnisvc.com +hnjg.com +hnjing.com +hnjing.net +hnjkjn.com +hnjkw.net +hnjshzy.com +hnjzga.com +hnkljnxh.com +hnks.com +hnksgf.com +hnktgame.com +hnkzy.com +hnlat.com +hnlbdl.com +hnleisu.com +hnliangku.com +hnlshm.com +hnlxq.com +hnlyy.com +hnlzhd.com +hnlzw.net +hnlzzq.com +hnmdtv.com +hnmgjr.com +hnmrffm888.com +hnmsw.com +hnmuseum.com +hnnx.com +hnnxs.com +hnnzwhyy.com +hnoceanrace.com +hnol.net +hnpet.net +hnpfw.com +hnpolice.com +hnqbb.com +hnqfseed.com +hnquxing.com +hnquyou.com +hnrcjob.com +hnrcsc.com +hnrcsc.net +hnrich.net +hnrmb.com +hnsdzjy.com +hnsfdc.com +hnshengben.com +hnsite.cc +hnsiwei.com +hnsktc.com +hnsmj.org +hnsqtg.com +hnsss.com +hnst.org +hnstguolu.net +hnsyda.com +hnsyu.net +hnteacher.net +hntengn.com +hntezhi.com +hnticai.com +hntobacco.com +hntv.tv +hntxxy.com +hnwisecom.com +hnwlcm.com +hnwlxh.net +hnwtv.com +hnwyxx.com +hnwz8.com +hnxdf.com +hnxfpfb.com +hnxmxit.com +hnxttv.com +hnxunch.com +hnxuntang.com +hnxxsmkj.com +hnxyjt.com +hnyanglao.com +hnyfkj.com +hnyh.net +hnyingfang.com +hnyinhan.com +hnyixiao.com +hnykcs.com +hnylstone.com +hnyouneng.com +hnyuanyou.com +hnyuedu.com +hnyunji.com +hnyunzhiyi.com +hnyuyuhui.com +hnyyss.com +hnzhaobiao.com +hnzhouyi.com +hnzhy.com +hnzjdc.com +hnzjip.com +hnzqw.com +hnztfs.com +hnzxyy.com +hnzycfc.com +hnzyzx.com +hoau.net +hobalab.com +hobbiestree.com +hocode.com +hodiasflavor.com +hodoop.com +hoehub.com +hogesoft.com +hoho.tv +hoho666.com +hohode.com +hokori.online +holaq.com +holdhr.com +holdsteel.com +holiland.com +holine.com +holleykingkong.com +hollischuang.com +hollycrm.com +hollysys.com +hollyuc.com +hollywant.com +holoalpha.com +holoem.com +holteksupport.com +holyxiongan.com +home-assistant.cc +zz618.com +zz314.com +home0311.com +home0538.com +home0668.com +home133.com +home178.com +home4love.com +home616.com +home77.com +homeartschina.com +homebehind.com +homecdn.com +homecloud-lab.com +homed.me +homedo.com +homedt.net +homeinframes.com +homeinmists.com +homeinns.com +homeking365.com +homekingcdn.com +homekoo.com +homekoocdn.com +homelandol.com +hometeda.com +hometex114.com +hometexjoin.com +homevv.com +homeyao.com +hommk.com +homolo.com +homolo.net +homylogistics.com +honda-sundiro.com +hong-lawfirm.com +hong-shun.com +hongbao.show +hongbeibang.com +hongbeicn.com +hongbizi.org +hongbo100.com +hongbowang.net +hongchengshuini.com +hongdaym.com +hongdefund.com +hongdezk.com +hongdi.icu +hongdian.com +hongdongpumps.com +hongdoufm.com +hongdoulive.com +hongen.com +hongfen.org +hongfengye.com +honggebang.com +honghailt.com +honghe-tech.com +hongheiku.com +honghuotai.com +hongjiang.info +hongjiejia.com +hongjin2.com +hongjing.com +hongjingedu.com +hongjiu66.com +hongkang-life.com +hongkongairlines.com +hongkou.net +hongku.com +hongkunjinfu.com +honglulan.com +hongmen.com +hongmoka.com +hongniang.com +hongpig.com +hongqi.tv +hongqipress.com +hongrenzhuang.site +hongru.com +hongruike.com +hongsanban.com +hongsat.com +hongsehuoxian.com +hongsejiqing.com +hongshi-tech.com +hongshn.xyz +hongshu.com +hongshunet.com +hongshunth.com +hongsong.club +hongsong.info +hongsungifts.com +hongtastock.com +hongtu.net +hongxiaolong.com +hongxin18.com +hongxingzn.com +hongxintaji.com +hongxiu.cc +hongxiu.com +hongyan.info +hongyanjin.com +hongyanliren.com +hongyaxuan.com +hongyeshuzhai.com +hongyu-qi.com +hongyuanqh.com +hongyue.com +hongyueedu.com +hongyunvren.com +hongze.net +hongzetai.com +hongzhoukan.com +honkaiimpact3.com +honorfair.com +honpery.com +honstarmemory.com +honsuntec.com +honycapital.com +honyuan.net +hoodinn.com +hoodong.com +hooenergy.com +hoofei.com +hoogge.com +hooh5.com +hookbase.com +hookdll.com +hoolai.com +hoolaigames.com +hoolee8.com +hoolinks.com +hoolo.tv +hoop-archi.com +hoopchina.com +hoopugames.net +hoosho.com +hooyagames.com +hooyoo.com +hopebank.com +hopebeauty.com +hopecool.com +hopeda.com +hopehook.com +hoperun.com +zz-zigzag.com +hopexr.com +hophingfood.com +hori3d.com +horion.com +horizon.ai +horizonfuelcell.com +horizonrcg.com +horn-yacht.com +horti-expo2019.com +hortor-comic.com +hortor.net +hortor002.com +hortor005.com +hortor020.com +hortorgames.com +hosizoraworks.org +hosory.com +hospmall.com +host1dns.com +hostadm.net +hostbbs.net +hostbuf.com +hostdie.com +hostkvm.com +hostmonit.com +hostxen.com +hotalk.com +hotdb.com +hotdeeplink.com +hoteamsoft.com +hoteastday.com +hotelcis.com +hoteldig.com +hotelgg.com +hotelvi.com +hotelyunos.com +hotent.com +hotent.xyz +hotgamehl.com +hotkd.com +hotkey123.com +hotkidclub.com +hotking.com +hotnewx.com +hotoos.com +hotpub.com +hotread.com +hotsales.net +hotssp.com +hotstoday.com +hottechsemi.com +hottui.com +hotwind.net +hotwindbox.com +houcaller.com +houdao.com +houdao.net +houdask.com +houdunwang.com +houge.biz +houhoucn.com +houjt.com +houkai.com +houqinbao.com +houqun.net +houquner.com +house086.com +house178.com +house365.com +house5.net +house510.com +house86.com +housebaby.com +housedp.com +housenhe.com +housoo.com +houxue.com +houyicaiji.com +houyuantuan.com +houzhibo.com +hoverlees.com +hovertree.com +hovfree.com +howardwchen.com +howbuy.com +howelllighting.com +howjoin.com +howsci.com +howtoing.com +howxm.com +howzhi.com +hoxing.com +hoxue.com +hoyakeji.com +hoyoverse.com +hozin.com +hp-marathon.com +hp123.com +hp888.com +hpccake.com +hpcwwd.com +hpkrcm.cfd +hpoi.net +hpool.online +hprt.com +hprx.com +hpstore.cc +hpttue.com +hpuoj.com +hpv112.com +hpwu.com +hpwxc.com +hpy93.com +hpyk.com +hq114.net +hq2011.com +hq52.com +hq88.com +hqbd.com +hqbnb.com +hqbsh.com +hqbuoh.com +hqbuy.com +hqbuycdn.com +hqc-china.com +hqcanyin.com +hqchip.com +hqcr.com +hqdlsn.com +hqepay.com +hqew.com +hqew.net +hqewimg.com +hqgq.com +hqh5.com +hqhl.net +hqhot.com +hqidi.com +hqjy.com +hqpcb.com +hqps.com +hqresearch.org +hqsec.com +hqwhw.com +hqwx.com +hqyj.com +hqyjsuccess.com +hqys.net +hqytgyh.com +hqyun.com +hqyxjy.com +hqzbcn.com +hr-channel.com +hr-mp.com +hr-self.com +hr-welink.com +hr0715.com +hr1000.com +hr135.com +hr2003.com +hr2trainer.com +hr369.com +hr448.com +hr510.com +hr5156.com +hr668.com +hr9000.com +hr987.com +hran.me +hrayw.com +hrbaodian.com +hrbar.com +hrbeduy.com +hrbesd.com +hrbjianchewang.com +hrbmama.com +hrbmilan.com +hrbrc.com +hrbslh.com +hrbswx.com +hrbuyu.com +hrbzdty.com +hrcfc.com +hrchina.cc +hrday.com +href.lu +hrexam.com +hrfc.net +hrflc.com +hrfoods.com +hrgrobotics.com +hrgsmz.com +hrhuiyi.com +hrhy365.com +zyzxs.com +hrloo.com +hrm100.com +hrmarket.net +hrmooc.com +hroot.co +hroot.com +hrpackage.com +hrrsj.com +hrrukou.com +hrs100.com +hrsalon.org +hrsay.com +hrsee.com +hrteachu.com +hrtechchina.com +hrtn.net +hrtx.com +hrxiongan.com +hrzy.cc +hs-defense.com +hs-fe.com +hs-outlets.com +hs.net +hs10000.com +hs13z.net +hs313.info +hs499.com +hs65.com +hsakyy.com +hsanhl.com +hsay.com +hsbdc.com +hsboss.com +hscbw.com +hscn.com +hsdatalab.com +hsdcw.com +hsddyy.com +hsdmall.com +hsehome.com +hsehome.org +hsez.net +hsfund.com +hsgjj.com +hsgjysj.com +hshotel.com +hshs.com +hshsjy.com +hshton.com +hshuiyi.com +hshw.com +hshy.net +hsigus.com +hsiii.com +hsimg11.com +hsjk.com +hsjkaoyan.com +hsmc.com +hsmdb.com +hsmob.com +hsmrt.com +hsoow.com +hspress.net +hsrnsw.com +hsrtd.club +hssdk.com +hssdtest.com +hssemi.com +hssenglish.com +hssjyj.com +hsslab.com +hssrc.com +hssyxx.com +hsszfx.com +hst.com +hst1966.net +hstczkj.com +hstechsz.com +hstong.com +hsutimes.com +hsweb.me +hswkzy.com +hswmb.com +hsxiang.com +hsxxad.com +hsybyh.com +hsyfcenter.com +hsysupply.com +hsyuntai.com +hsyunyi.com +hsyyf.me +hszhizhen.net +hszk.org +hszqxs.com +hszsb.org +hszsfz.com +hsztbzx.com +hszy8.com +hszzsyzx.net +hszzzx.net +ht-cao.com +ht-saae.com +ht-tech.com +ht88.com +ht9.com +htanwang.com +htaocloud.com +htbaba.com +htback.com +htbenet.net +htc-media.com +htcases.com +htcbbs.net +htcis.net +htcxfund.com +htd2000.com +htdata.com +hteacher.net +hteos.com +htexam.com +htexam.net +htfcn.com +htffund.com +htfoxit.com +htfutures.com +htgjjl.com +htguosheng.com +htgwf.com +htidc.com +htinfor.com +htinns.com +htinnsjm.com +htjs.net +htjsq.com +htkaoyan.com +htky365.com +html51.com +html5code.net +html5dw.com +html5plus.org +html5train.com +html5tricks.com +htmlai.com +htmleaf.com +htmlsucai.com +htnice.com +htobl.com +htoo.vip +htqyy.com +htranslate.com +htsc.com +htsec.com +httingshu.com +httpcanary.com +httpcn.com +httpdns.pro +htucloud.com +hturl.cc +htvaas.com +htwed.com +htwld.com +htx.cc +htxxpx.com +htyou.com +htys.cc +htyunwang.com +htzdj.com +htzdznjs.com +hu.com +hua-lan.com +hua-yong.com +hua.com +huaaiangel.com +huaaosoft.com +huaaotech.com +huaat.com +huabaike.com +huaban.com +huaban.net +huabanimg.com +huabanpro.com +huabeipay.com +huabian.com +huabo.net +huabokeji.com +huacaoshumu.net +huace.co +huacemedia.com +huacenter.com +huachao.vip +huachengenjoy.com +huachenit.com +huachenyuanyang.com +huacolor.com +huada120.com +huadan.com +huadehyd.com +huadonghospital.com +huadongmedia.com +huadoo.com +huadream.com +huadun315.com +huaduocai.net +huaease.net +huaer.cc +huafang.com +huafeng-food.com +huafeng.com +huafens.com +huafer.cc +huaguoshan.com +huahanart.com +huahua777.com +huahuacaocao.com +huahuo.com +huaibaobei.com +huaibei.com +huaien.com +huaihai.tv +huaijiufu.com +huaimi.com +huain.com +huainanhai.com +huainanren.net +huainet.com +huaisimida.com +huajia.cc +huajiakeji.com +huajialishe.com +huajianmed.com +huajiao.com +huajie8.com +huajifen.com +huajin100.com +huajing-inf.com +huajingsec.com +huajuan.net +huajuanyun.com +huajx.com +huake-weixin.com +huake360.com +huakeyun.com +hualady.com +hualala.com +hualet.org +hualiandressing.com +hualiantv.com +hualianxin.com +hualongxiang.com +hualu5.com +hualumedia.com +hualv.com +huamanlou.cc +huameiyuezi.com +huami.com +huan-tai.com +huan.tv +huanbao-world.com +huanbao.com +huanbaoscx.com +huanbeiloan.com +huancaicp.com +huandie.com +huane.net +huang-jerryc.com +huangbaoche.com +huangbowei.com +huangchun.net +huangdaojiri.org +huangdc.com +huangea.com +huanggao.net +huangh.com +huanghaicollege.com +huanghaiting.com +huanghanlian.com +huanghepiao.com +huanghouyz.com +huangjiemin.com +huanglei.me +huangli.com +huangliangbo.com +huangniu.in +huangpucn.com +huangqi1688.com +huangshaotian.com +huangwei.me +huangwei.pro +huangxinwei.com +huangye88.com +huangye88.net +huangyixiaoshuo.com +huangyuhui.net +huangyunkun.com +huangz.me +huangze.net +huanhaoba.com +huanhuanhuishou.com +huanhuanxin.com +huanhuba.com +huanidc.com +huanjinghaojia.com +huanjutang.com +huanjuyun.com +huankkk.com +huanlang.com +huanle.com +huanle800.com +huanlecdn.com +huanlefish.com +huanleguang.com +huanletang.com +huanlewan.net +huanlingxiuxian.com +huanlj.com +huanmusic.com +huanpingge.com +huanqiu.com +huanqiuauto.com +huanqiuchuguo.com +huanqiukexue.com +huanqiumil.com +huanqiuw.com +huanqiuyimin.com +huanqu-tec.com +huanrong2010.com +huansengifts.com +huanshoulv.com +huante.com +huantest.com +huanwen.com +huanxi.com +huanxia.com +huanxiongdd.com +huanxiyl.com +huanyingzq.com +huanyou365.com +huanyouji.com +huanyuantech.com +huanyudns.com +huanyutv.com +huaoe.com +huaon.com +huapiaoliang.com +huaqidigital.com +huaqin.com +huaqinchi.com +huaqiu.com +huaranhunsha.com +huaraytech.com +huarenyizhan.com +huarongdao.com +huarongled.com +huaruicom.com +huas.co +huaseyx.com +huash.com +huashangtop.com +huashen-edu.com +huasheng100.com +huashengdaili.com +huashengls.com +huashi6.com +huashichang.com +huashilm.com +huashitong.net +huashphoto.com +huashu-inc.com +huasimtour.com +huasyun.com +huatai-pb.com +huatai1993.com +huatengsci.com +huati365.com +huatian.net +huatu.com +huatugz.com +huatuo007.com +huatuowenda.com +huatuoyf.com +huaue.com +huawan.com +huawangzhixun.com +huawanyun.com +huawei-3com.com +huawei.asia +huawei.com +huaweiacad.com +huaweiapaas.com +huaweicloud-dns.com +huaweicloud-dns.net +huaweicloud-dns.org +huaweicloud-smn.com +huaweicloud-smn.net +huaweicloud.com +huaweicloudapis.com +huaweicloudlive.com +huaweicloudwaf.com +huaweidevice.com +huaweidun.com +huaweiief.com +huaweimall.com +huaweimarine.com +huaweimarketplace.com +huaweimossel.com +huaweirom.com +huaweisafedns.com +huaweistatic.com +huaweiuniversity.com +huaweiyun.com +huaweizdl.com +huawenfanyi.com +huawenonline.com +huawenwin.com +huaxi.net +huaxi100.com +huaxia.com +huaxia77.com +huaxiaf.com +huaxiald.com +huaxiangdiao.com +huaxianpai.com +huaxiao5.com +huaxiaobaokeji.com +huaxiazi.com +huaxincem.com +huaxincredit.com +huaxing.com +huaxiong.com +huaxirc.com +huaxiu.ink +huaxj.net +huaxuezoo.com +huayang.net +huayanghui.net +huayanxiu.com +huayanxiu.net +huayicn.com +huayidiaosu.com +huayijiahe.com +huayimedia.com +huayiming.com +huayingrc.com +huayingsc.com +huayinguolv.com +huayinjapan.com +huayiwork.com +huayiyuan.hk +huayou.com +huayoumengze.com +huayoutianyu.com +huayuanlaobao.com +huayuanlcd.com +huayuannongji.com +huayue119.com +huayuejob.com +huayun.com +huayunshuzi.com +huayunyy.com +huayuzj.com +huazhen2008.com +huazhen2008.net +huazhengcaiwu.com +huazhenjiaoyu.com +huazhongcar.com +huazhongcnc.com +huazhonghua.com +huazhongtimes.com +huazhu.com +huazhuanapp.com +huazhucorp.com +huazirc.com +hubcyts.com +hubeibbs.net +hubeici.com +hubeidaily.net +hubeihome.net +hubeiip.com +hubeikj.com +hubeipbx.com +hubeiwsd.com +hubeixuekao.com +hubeiyanjiusheng.com +hubeiyongtai.com +hubiazhi.com +hubokan.com +hubpd.com +hubu.com +hubulab.com +hubwiz.com +hucdn.com +huceo.com +huchaowei.com +hucheng100.com +hudai.com +hudbbs.com +hudong.com +hudongad.com +hudongba.com +hudongcdn.com +hudongku.net +hudunsoft.com +huduntech.com +huelead.com +huenhuenfood.com +hufangyun.com +hugaoba.com +hugd.com +hugecdn168.com +hugeland.com +huhoo.com +huhoo.net +huhua.net +huhuang.net +huhudi.com +huhuguanjia.com +huhustory.com +hui-ben.com +hui-chao.com +hui.net +hui10.com +hui10.net +hui100.com +hui43.com +hui712.com +hui800.com +hui800.net +huians.com +huibo.com +huicaishui.net +huiche100.com +huicheimg.com +huichengip.com +huichewang.com +huicx7.com +huidada.net +huidan.net +huidang.com +huideyecai.com +huidian.net +huidongnet.com +huidu.com +huidu.net +huidu001.com +huiemall.com +huieyes.com +huifachina.com +huifenqi.com +huifudashi.com +huifusihai.com +huifutz.com +huigao-magnetics.com +huigezi.org +huihaicenter.com +huihaicn.com +huihua365.com +huihuaren.com +huihuarensheng.com +huiji.wiki +huijiame.com +huijiaoyun.com +huijidata.com +huijie.shop +huijiewei.com +huijimall.com +huijistatic.com +huijita.com +huijitrans.com +huijiwiki.com +huiju.cool +huijucn.com +huila88.com +huilan.com +huilanyujia.com +huilianyi.com +huilitao.com +huiliubao.com +huiliuti.com +huilm.com +huilog.com +huilongsen.com +huilvwang.com +huim.com +huimaiche.com +huiman.net +huimee.com +huimee.net +huimeisports.com +huimengya.com +huimin111.com +huimingcn.com +huinaimei.com +huing.net +huion.com +huiqudsp.com +huiris.com +huirixiao.com +huishangbao.com +huishangol.com +huishanjianchayuan.com +huishenghuo888888.com +huishengqianzhushou.com +huishoubao.com +huishoubaojiadan.com +huishoujiuwu.com +huishoushang.com +huishuaka.com +huishuang.xyz +huisituo.com +huisky.com +huisou.com +huisuoping.com +huitangwenquan.com +huitao.net +huitaodang.com +huitaoyouhui.com +huitongqingsuan.com +huitoubj.com +huitouche.com +huitouyu.com +huitouzi.com +huitu.com +huitun.com +huiurl.com +huivo.com +huiwo.com +huiword.com +huixiang360.com +huixiangtiandi.com +huixiaoer.com +huixiaoer.net +huixing.hk +huixingsoft.com +huixinli.com +huixinyt.com +huixinyun.com +huixuanjiasu.com +huiyan315.com +huiyankan.com +huiyaohuyu.com +huiyi8.com +huiyiabc.com +huiyijh.com +huiyinxun.com +huiyizhuo.com +huiyou.com +huiyu.vc +huiyuandao.com +huiyuanyy.com +huiyumedia.com +huize.com +huizecdn.com +huizhan-inc.com +huizhaofang.com +huizhek.com +huizhijiaxun.com +huizhimob.com +huizhouf.com +huiziyuan.net +huizone.com +huizuche.com +huizucloud.com +huizuoyuezi.com +huizustore.com +hujia.org +hujiang.com +hujiuzhou.com +huke88.com +hukou021.com +hulai.com +hulanap.com +hulianmaibo.com +hulinhong.com +huliyx.com +huluboshi.com +huluip.tech +huluo.com +huluoyun.com +hulusaas.com +hulusi.com +huluwa365.com +huluwa8.com +huluxia.com +huluxia.net +huluzc.com +humaiyouxi.com +humanrights-china.org +humengyun.com +humensec.com +huming.com +hunancatv.com +hunanedu.net +hunantv.com +hunanwb.com +hunanzhibo.com +hunbei.com +hunbei1.com +hunbei2.com +hunbei3.com +hunbei4.com +hunbei5.com +hunbohui.info +hunbys.com +hunche.net +hundredcent.com +hundsun.com +hundun.net +hundx.com +hunger-valley.com +hunjuwang.com +hunli100.com +hunlihu.com +hunlihunli.com +hunliji.com +hunlimao.com +hunmiao.com +hunt007.com +huntchance.com +huntic.com +huntkey.com +huntkeydiy.com +hunuo.com +hunyinyiyuan.com +huo-cun.com +huo119.com +huoban.com +huobanhuyu.com +huobanjs.com +huobanmall.com +huobanniu.com +huobanxietong.com +huobaowang.com +huobaoyx.com +huobi.io +huocai.com +huocc.com +huochai.mobi +huoche.com +huoche.net +huoche.wiki +huochepiao.com +huochepiao.net +huocheso.com +huodao.hk +huodong.org +huodong.store +huodonghezi.com +huodonghui.net +huodongjia.com +huodongju.com +huodongju.net +huodongpro.com +huodongquan.net +huodongshu.com +huodongwang.com +huodongxing.com +huoduan.com +huofar.com +huofutp.com +huogz.com +huohoo.com +huohu123.com +huohuacdn.com +huohuo.com +huohuolife.com +huoji.com +huojiaba.com +huoju365.com +huokebao.net +huokesoft.com +huokeying.com +huolala.co +huolan.net +huolea.com +huoli.com +huolinhe.com +huolishaonianwang.com +huolug.com +huomakeji.com +huomao.com +huomaqun.com +huoming.com +huopinyuan.com +huoqiuapp.com +huosdk.com +huoshan.cc +huoshan.club +huoshan.com +huoshanimg.com +huoshanlive.com +huoshanstatic.com +huoshansxy.com +huoshanvod.com +huoshanzhibo.com +huoshen.com +huosu.com +huosubtc.com +huotan.com +huowan.com +huoxing24.com +huoxingba.com +huoxingzi.com +huoxun.com +huoyan.com +huoyan.io +huoyanio.com +huoying666.com +huoyuan.mobi +huoyuandl.com +huoyugame.com +hupan.com +hupanedu.com +hupo.com +hupo.tv +hupu.com +hupu.tv +hupucdn.com +hurbai.com +hurun.net +husenji.com +hushangcaifu.com +hushuang.me +husiyang.com +hust-laser.com +hust-snde.com +hust-wuxi.com +hust.cc +hust.online +hustcad.com +hustduyan.com +hustlife.com +hustlzp.com +hustmei.com +hustnews.com +hustoj.com +hustonline.net +hustp.com +hustunique.com +hustwenhua.net +hustxb.com +husubao.com +hutaojie.com +hutaolinight.com +hutaow.com +hutong-school.com +hutoufeng.net +hutoulang.com +hutu.me +hutui9.com +hutuii.com +hutusi.com +huuhoo.com +huwaibbs.com +huwaizb.com +huway.com +huweihuang.com +huweishen.com +huxiaofan.com +huxiaoshi.com +huxingroup.com +huxiu.com +huxiu.link +huxiucdn.com +huya.com +huyahaha.com +huyall.com +huyanapp.com +huyanbao.com +huyaohui.com +huyaruanwen.com +huyn.com +huyouxiong.com +huyuncdn.com +huyuxx.com +huzhan.com +huzhao1.com +huzheng.org +huzhifeng.com +huzhongxin.com +huzhoumuseum.com +huzicaotang.com +huzu.com +hvacstar.com +hvdiy.com +hvtong.com +hw-ai.com +hw-tm.com +hw100k.com +hw3static.com +hw555.com +hw99.com +hwactive.com +hwadmin.com +hwangda.com +hwanjia.com +hwasmart.com +hwbaoan.com +hwccpc.com +hwcdnsre.com +hwcha.com +hwcloudlive.com +hwclouds-dns.com +jskpcg.org +hwclouds.com +hwclouds.mobi +hwclouds.net +hwcloudvis.com +hwcpb.com +hwcrazy.com +hwehs.com +hweimall.com +hwfcw.com +hwht.com +hwjyw.com +hwlpz.com +hwocloud.com +hworld.com +hwrecruit.com +hwsem.com +hwshu.com +hwtelcloud.com +hwtrip.com +hwwt2.com +hwwt8.com +hwxda.com +hwxjp.com +hwxnet.com +hwxuanliuqi.com +hwyxxx.com +hwzyjt.com +hx008.net +hx110.com +hx2car.com +hx2cars.com +hx36.net +hx8886.com +hx99.net +hxage.com +hxbdf120.com +hxbdxled.com +hxbsth.com +hxbxw.com +hxcdn.net +hxchem.net +hxct.com +hxdi.com +hxdkfp.com +hxdkj88.com +hxen.com +hxepawn.com +hxfilm.com +hxfjw.com +hxfy888.com +hxgame.net +hxgqw.com +hxgs.net +hxgwott.com +hxhost.com +hxinq.com +hxjbcdn.com +hxjbh.com +hxjiqi.com +hxjlhn.com +hxjwang.com +hxkba.com +hxland.com +hxlsw.com +hxltad.com +hxmeishi.com +hxnews.com +hxpay01.com +hxppw.com +hxqc.com +hxqcgf.com +hxqcjt.com +hxqnj.org +hxrc.com +hxsd.com +hxsd.tv +hxsec.com +hxsme.org +hxstrive.com +hxtk.com +hxwglm.com +hxxkw.org +hxxl6.com +hxy365.com +hxyjw.com +hxys.com +hxytea.com +hxytw.com +hxzq.net +hy-la.com +hy-zr.com +hy01888.com +hy05190134.com +hy123.com +hy2046.com +hy233.tv +hy628.com +hy8881.com +hyahm.com +hyb2b.com +hybbtree.com +hycdn.com +hycfw.com +hycgy.com +hyckjic.com +hycn.com +hydarts.com +hydbest.com +hydcd.com +hydz999.com +hydzfp.com +hyedu.com +hyext.com +hyfutures.com +hyggfx.com +hygl.org +hygoldcup.com +hygy361.com +hyhcdn.com +hyhjbh.com +hyhl66.com +hyhro.com +hyhuo.com +hyhygame.com +hyimmi.com +hyipchina.com +hyj999.com +hyjgxx.com +hyjp.net +hykang.com +hykcsoft.com +hykj.cc +hyl1.tv +hylandslaw.com +hylname.com +hym68.com +hynews.net +hynixic.com +hynpay.com +hyocr.com +hyouda.com +hypefolio.com +hypefolio.net +hyper.sh +hypercachenet.com +hypergryph.com +hypersilicon.com +hyrainbow.com +hysdknb.com +hysec.com +hysemi-ic.com +hyshi.net +hysteeltube.com +hyt368.com +hytcshare.com +hytd.com +hytera.com +hyundai-hmtc.com +hyundaibeijing.com +hyuuhit.com +hyyf.net +hyyoa.com +hyzcservice.com +hyzkjh.com +hyzm.cc +hyznjs.com +hyzqxsb.com +hz-etest.com +hz-expo.com +hz-gn.com +hz-hospital.com +hz-winone.com +hz-xin.com +hz1cm.com +hz5800.com +hz66.com +hzaee.com +hzairport.com +hzallina.com +hzamcare.com +hzapuqi.com +hzbh.com +hzbianqing.com +hzbike.com +hzbook.com +hzbxm.com +hzc.com +hzcbparking.com +hzccb.net +hzccnet.com +hzcekong.com +hzchengdun.com +hzcnc.com +hzcopyright.com +hzcourse.com +hzdajiangdong.com +hzdjr.com +hzdledu.com +hzdlrj.com +hzdx.com +hzecsemir.com +hzeg.com +hzfc.cc +hzfeiyao.com +hzfolo.com +hzfucai.net +hzgh.org +hzgjj.com +hzgrow.com +hzguojiao.com +hzgxr.com +hzh1.com +hzhadx.com +hzhanbo.com +hzhcontrols.com +hzhengtong.com +hzhfzx.com +hzhike.com +hzhisoft.com +hzhlpt.com +hzhltec.com +hzhr.com +hzhuangxiang.com +hzhx.com +hzins.com +hzins.net +hzjbzg.com +hzjingxian.com +hzjizhun.com +hzjlcs.com +hzjlxx.com +hzjmjl.com +hzjqhy.com +hzjunglepay.com +hzkayo.com +hzkshx.com +hzkuangxiangzi.com +hzleshun.com +hzljlyy.com +hzlug.org +hzmama.net +hzman.net +hzmantu.com +hzmba.com +hzmogo.com +hzmylike.com +hzncc.com +hznews.com +hznk91.com +hznsh.com +hznzcn.com +hzou.net +hzpgc.com +hzpzs.net +hzqf123.com +hzqiuxue.com +hzqlpt.com +hzqx.com +hzr1.com +hzranqu.com +hzrc.com +hzredream.com +hzrobam.com +hzsaifang.com +hzsaso.com +hzsbz.com +hzsdyfzfxxx.com +hzsgjj.com +hzshanjie.com +hzshudian.com +hzstad88.com +hzthinker.net +hzti.com +hztosz.com +hztraining.com +hztygd.com +hzvillas.com +hzwer.com +hzwindpower.com +hzwmw.com +hzwsjyjt.com +hzwtech.com +hzwyx.net +hzxhymc.com +hzxiaobao.com +hzxituan.com +hzxiyuege.com +hzxsjgxx.com +hzxyns.com +hzyestar.com +hzyhzp.com +hzylpco.com +hzyoka.com +hzypro.com +hzyuedu.com +hzyuewan.com +hzywinf.com +hzyz.net +hzzhaobiao.com +hzzkj.net +hzzp.com +hzzrmc.com +hzzsfs.com +hzzuyin.com +i-27.name +i-520.net +i-bei.com +i-bigdatas.net +i-click.com +i-ev.com +i-excellence.com +i-firefly.com +i-hifi.com +i-jim.com +i-kan.me +i-lewan.com +i-m.dev +i-manji.com +i-matcher.com +i-md.com +i-modec.com +i-mofang.com +i-morefun.com +i-now.com +i-oranges.com +i-same.com +i-shu.com +i-size.com +i-study.net +i-tongfang.com +i-vision-cn.com +i-xinnuo.com +i-xoron.com +zyzw.com +i0349.com +i0746.com +i075.com +i0898.org +i100e.com +i11r.com +i121.net +i1515.com +i1766.com +i2abc.com +i2eas.com +i2ya.com +i360mall.com +i3839.com +i3abox.com +i3done.com +i3dpworld.com +i3geek.com +i3gt.com +i3smot.com +i3v.cc +i3yuan.com +i4px.com +i4t.com +i51game.com +i52tt.com +i5399.com +i5a6.com +i5i6.net +i5jh6b.cc +i5mai.com +i66wan.com +i6879.com +i7box.com +i7fh.com +i7gg.com +i7play.com +i7wx.com +i8001.com +i8cn.com +i8i8i8.com +i8tq.com +i9.org +i91pv.com +i9star.com +ia-shenzhen.com +iaddata.com +iadmob.com +iadmore.com +iaeac.org +iaikx.com +ialicdn.com +ialloc.com +iambanban.com +iambocai.com +iameduwork.com +iamfisher.net +iamhippo.com +iamjzs.com +iamle.com +iamlintao.com +iamshuaidi.com +iamsujie.com +iamtxt.com +iamverycute.com +iamwr.com +iamxiaoming.net +iamxk.com +iandun.com +ianvisa.com +iaoso.com +iaoyou.com +iapijy.com +iapolo.com +iapp4me.com +iapple123.com +iappler.net +iapps.im +iappstoday.com +iars-wuhan.com +iartsee.com +iask-media.com +iask.com +iask.in +iaskbus.com +iaskhot.com +iat-auto.com +iautodraw.com +iavira.com +iaviva.com +iaxure.com +iazhi.com +ib-china.com +ibaba88.com +ibadboy.net +ibaiji.org +ibailve.com +ibaizhu.com +ibanbu.com +ibangkf.com +ibangquan.com +ibanma.net +ibanquan.com +ibantang.com +ibanyu.com +ibaobay.com +ibaotu.com +ibaoxiu.net +ibayapp.com +ibbwhat.com +ibcde.com +ibcet.org +ibczy.com +ibeesoft.com +ibeifeng.com +ibeiig.com +ibeiliao.com +ibeiou.com +ibenxi.com +ibestapp.com +ibestfanli.com +ibestv.com +ibeta.me +ibianma.com +ibianqu.com +ibicn.com +ibidian.com +ibiji.com +ibimawen.com +ibimuyu.com +ibingniao.com +ibiquge.la +ibiquge.net +ibiquges.com +ibiquke.com +ibiquku.la +ibiquxs.net +ibireme.com +ibixiaxs.com +ibkcn.com +ibl520.com +iblimg.com +ibloger.net +iblue.com +iblue.me +ibluefrog.com +ibluesocial.com +ibmfwqdl.com +ibmhz.com +ibmwclub.com +ibook8.com +ibooker.cc +ibookstar.com +ibornclinic.com +iboxpay.com +ibr.cc +ibreader.com +ibroadlink.com +ibruce.info +ibscdn.com +ibtsat.com +ibuick.com +ibuscloud.com +ibuychem.com +ibw.cc +ibytedapm.com +ic-ldo.com +ic-valley.com +ic2china.com +ic37.com +ic72.com +ic98.com +ic9cube.com +ica-alliance.org +icafe28.net +icafe8.com +icafe8.net +icaidao.com +icaifu.com +icaile.com +icall.me +icammy.com +ican-contest.org +ican365.net +icandata.com +icangshu111.com +icardfinancial.com +icaredbd.com +icasiso.com +icastlewar.com +icax.org +001town.com +icbc-at.com +icbc-cz.com +icbc-ltd.com +icbc-uk.com +icbc-us.com +icbc.ae +icbc.be +zyzkb.net +zyzjmz.org +zyzj.org +zyzimg.com +zyzhan.com +zyzaojiao.com +zyz119.com +zyyfy.com +zyxuan.org +zyxr.com +zywxpress.com +zywjw.com +zyun.vip +zyue.com +zyucan.com +zytxgame.com +zytuozhan.com +icbc.de +icbc.eu +icbc.jp +icbc.lu +icbcalmaty.kz +icbcasia.com +zyt8.com +zystarlink.com +icbcina.com +icbcindia.com +icbcit.com +icbclondon.com +icbcme.ae +icbcmoscow.ru +icbcmy.com +icbcnz.com +icbcpanama.com +icbcparis.fr +icbcpl.com +icbcstandard.com +icbcstandardbank.com +icbcstandardresources.com +icbcstandardsecurities.com +icbcswiss.com +icbcthai.com +icbkfs.com +icbkus.com +icbuy.com +icc.link +icc365.com +iccchina.com +iccessh.org +iccgame.com +iccgame.net +icchaoren.com +iccidchaxun.com +iccircle.com +iccsmart.com +iccsz.com +icdeal.com +icdn2.com +icdream.com +icdt-conf.com +ice.work +ice1000.org +iceasy.com +icebear.me +icebound.cc +icecloud-car.com +iceflowsoft.com +icefoxgame.com +iceinto.com +icekr.com +icekylin.online +icemle.org +icentown.com +icepie.net +icesimba.com +icevpn.org +icewingcc.com +icfans.com +icfcc.com +icfgblog.com +icfqs.com +icfusions.com +icgoo.net +icgu.com +icgvisa.com +ich8.com +ichacha.com +ichacha.net +ichang8.com +ichangtou.com +ichanyu.com +ichaoshangyue.com +ichaotu.com +ichat800.com +ichdata.com +ichehaopei.com +ichehome.com +ichenfei.com +ichengyun.net +ichennan.com +ichinaceo.com +ichinaenergy.com +ichuanglan.com +ichuangwei.com +ichuangye.com +ichuanyi.com +ichunqiu.com +ichunt.com +ichzh.com +iciba.com +icicicic.com +icifit.com +icignacmb.com +icinfo.net +icirculation.com +icitymobile.com +icitypf.com +icixun.com +iciyuan.com +icjiemi.com +icjs.ink +ickeep.com +icketang.com +ickey.cc +ickimg.com +iclicash.com +iclickstatic.com +icloudcity.com +icloudgslb.com +icloudnative.io +icloudnews.net +iclouds.work +icloudv6.com +icloudwaf.com +icmade.com +icme14.org +icminer.com +icmomo.com +icmsdev.com +icnjob.com +icnkr.com +icnote.com +icntv.tv +icoat.cc +icoc.bz +icoc.cc +icoc.in +icoc.me +icocg.com +icodelogic.com +icoderobot.com +icofchina.com +icom5g.com +iconfans.com +iconfans.org +iconntech.com +icoou.com +icoremail.net +icos8.com +icosky.com +icourse163.com +icourse163.org +icourt.cc +icp100.net +icp21.com +icpcdn.com +icpcw.com +icpdaili.com +icphu.com +icpisp.net +icplishi.com +icrazyidea.com +icroom.com +icrosschina.com +ics.design +icshanghai.com +icsisia.com +icslx.com +icsoc.net +icson.com +icspec.com +icss.me +icstreet.com +icswb.com +ict361.com +ictcsr.org +ictehi.com +ictest8.com +ictlce.com +ictown.com +ictpaas.com +ictun.com +ictuniv.com +icver.com +icvip.com +icxbk.com +icxinli.com +icy-capital.com +iczhiku.com +iczoom.com +id-bear.com +id6.me +idabai.com +idachu.com +idadt.com +idafen.com +idaima.com +idangdai.com +idanpianji.com +idaocao.com +idatacube.com +idataforces.com +idatage.com +idataway.com +idbhost.com +idc-icp.com +idc002.com +idc021.com +idc029.com +idc123.com +idc180.com +idc218.com +idc31.com +idc4.com +idc400.com +idc45.com +idc789.com +idc917.com +idc96.net +idcay.com +idcbest.com +idcbest.hk +idccenter.net +idcchacha.com +idccom.net +idccun.com +idceb.com +idcfengye.com +idcgcloudcs.com +idchh.com +idchz.com +idcicp.com +idcicpdns.com +idcjf.com +idcjia.net +idckx.com +idcloudbase.com +idcoffer.com +idcquan.com +idcsec.com +idcser.com +idcsh.com +idcspy.com +idcspy.net +idcss.com +idctq.com +idcug.com +idcum.net +idcun.com +idcuw.com +idcvendor.com +idcvip.net +idcwn.com +idcys.com +idcyunwei.org +idczone.net +idd1.com +idea-king.org +idea1986.com +ideacms.net +ideagou.com +idealeer.com +idealshanghai.com +ideanote.cc +ideappt.com +ideasandroid.com +ideazhao.com +ideebank.com +ideepin.com +ideng.com +idesktopcal.com +idevz.org +idgvc.com +idianchou.com +idianfa.com +idianshijia.com +idigi.net +idlegog.com +idmchina.net +idmzj.com +idn100.com +idname.com +idnscloud.com +ido-love.com +ido512.com +idoacg.com +idocbank.com +idocv.com +idol001.com +idolranking.info +idolyx.com +idom.me +idong.ren +idongde.com +idongdong.com +idongmai.com +idongniu.com +idosend.com +idotools.com +idoupiao.com +idourl.com +idouyinstatic.com +idouyinvod.com +idouzi.com +idoyun.com +idqqimg.com +idreamsky.com +idreamsoft.com +idrools.com +idrwl.com +idscn.com +idscn.net +idsky.net +idspub.net +idsuipai.com +idtcdn.com +idtechwh.com +idu9.com +iduba.com +iduo8.com +iduochong.com +iduodou.com +iduokan.net +iduvip.com +idwzx.com +idyzs.com +idzcp.com +ie515.com +ie525.com +ie815.com +ie915.com +ie935.com +ie977.com +ieasn.com +ieasy123.com +ieasytech.com +ieayoio.com +iecdn.com +iecidc.com +iecity.com +iecnews.com +iecnu.com +iecool.com +ieduchina.com +ieechina.com +ieee-jas.net +ieeewifi.com +ieeod0.com +ieepa.org +iefang.com +iefans.net +iegcom.com +iegee.net +iegourl.com +iejiu.com +ieltsabc.com +ieltschn.com +ieltsonlinetests.com +iemblog.com +iemiq.com +ienjoys.com +ienjoys.mobi +iermu.com +iesdouyin.com +ieshu.com +iessay100.com +ietdata.com +ietheme.com +iewb.net +iewie.org +iewzx.com +iexx.com +iezuo.com +ifabao.com +ifabiao.com +ifaclub.com +ifanbei.com +ifangarden.com +ifangka.com +ifanr.com +ifanr.in +ifanrusercontent.com +ifanrx.com +ifareast.com +ifatrabbit.com +ifaxin.com +ifaxin.org +ifconfig.cc +ifeehei.xyz +ifeimo.com +ifeng.com +ifengcdn.com +ifenghui.com +ifengimg.com +ifengli.com +ifenglian.com +ifengniao.net +ifengo.com +ifengpai.com +ifengqun.com +ifenguo.com +ifengweekly.com +ifengwoo.com +ifensi.com +ifenxi.com +ifenxiang.cc +ifere.com +ifeve.com +ifindever.com +ifindhs.com +ifintechnews.com +ifireflygame.com +ifiretech.com +ifitbox.com +ifjing.com +iflyhealth.com +iflying.com +iflyink.com +iflynote.com +iflyread.com +iflyrec.com +iflyresearch.com +iflysec.com +iflytek.com +iflytektstd.com +ifma-china.org +ifmicro.com +ifmtech.com +ifnews.com +ifonelab.net +ifonts.com +iforce-media.com +ifoxfactory.com +ifreecdn.com +ifreecomm.com +ifreedom001.com +ifreetalk.com +ifreeurl.com +ifreewallpaper.com +ifresh.mobi +ifromvr.com +ifseclabs.com +ifundstore.com +ifunmac.com +ifunvip.com +ifutest.com +ifutureworks.com +ifval.com +ifxsb.com +ifxtx.com +ifzxs.cc +igaichong.com +igame007.com +igame58.com +igamecj.com +igao7.com +igaoda.com +igbill.com +igdzc.com +igea-un.org +igeak.com +igeciku.com +igeekbar.com +igeidao.com +igelou.com +igenetech.com +igengmei.com +igerun.com +igeshui.com +igetget.com +igetui.com +igevin.info +igexin.com +igigo.net +igo180.com +igome.com +igomkt.com +igooma.com +igoyx.com +igreatdream.com +igtm-a101.com +igtm-b101.com +igtm-e101.com +igtm-meeting-tencent.com +igtm.pub +iguanyu.com +iguazutraffic.xyz +iguder.com +iguitar.me +igumo.cc +iguoguo.net +iguopin.com +iguoplay.com +iguowan.com +iguxuan.com +igwfmc.com +ihacksoft.com +ihaier.co +ihaier.com +ihaima.com +ihaiu.com +ihanbridge.com +ihang360.com +ihanghai.com +ihanhua.com +ihani.tv +ihanshi.com +ihaoxi.com +ihaozhuo.com +ihappy.vip +ihappystudio.com +ihdt.tv +ihdty.com +ihebi.info +ihei5.com +iheima.com +iheima.net +ihelpy.net +ihemuu.com +ihengheng.com +ihenji.com +ihepa.com +ihewro.com +ihggccampaign.com +ihhubei.com +ihint.me +ihisce.com +ihitui.com +ihitun.com +ihjiu.com +ihktv.com +ihomefnt.com +ihomesoft.net +ihongma.com +ihongmeng.tech +ihongpan.com +ihongqiqu.com +ihou.com +ihowguide.com +ihr360.com +ihrscloud.com +ihuaben.com +ihuan.me +ihuanling.com +ihuanque.com +ihuayou.net +ihuazhan.net +ihui.com +ihuidian.com +ihuigo.com +ihuipao.com +ihuman.com +ihumand.com +ihungyi.com +ihuntto.com +ihuoqiu.com +ihuoshanlive.com +ihuoyan.com +ihuyi.com +ihuzuan.com +ihwrm.com +ihx.cc +ihxlife.com +ihykb.com +ihypo.net +ihzzy.com +ii.cc +ii010.com +ii090.com +ii77.com +iiad.com +iianews.com +iiaq.net +iibechina.com +iibq.com +iicha.com +iicp.net +iidns.com +iigs9.com +iii80.com +iiiimg.com +iiijk.com +iiiview.net +iikeji.com +iikuzhan.com +iikx.com +iiong.com +iipiano.com +iirii.com +iis7.com +iischool.com +iisfree2.com +iisicp.com +iisp.com +iissbbs.com +iissnan.com +iitcp.com +iitoutiao.com +iituku.com +iivey.com +iiycy.com +iiyi.com +iiyibbs.com +ijac.net +ijh.cc +ijia360.com +ijiandao.com +ijiangyin.com +ijianji.com +ijiatv.com +ijie.com +ijiedian.com +ijiela.com +ijindun.com +ijingdi.com +ijinshan.com +ijinzhuan.com +ijishu.cc +ijiujiao.com +ijiwei.com +ijiwen.com +ijizhi.com +ijjnews.com +ijnqc.com +ijq.tv +ijsi.org +ijson.com +ijsp.net +ijuanshi.com +ijuer.com +ijuhepay.com +ijunhai.com +ijunxun.com +ijuwu.com +ijycnd.com +ijzhang.com +ik123.com +ik3cloud.com +ikafan.com +ikaixun.com +ikaka.com +ikakuedu.com +ikanchai.com +ikandian.com +ikang.com +ikantu365.com +ikaoguo.com +ikaolaa.com +ikcd.net +ikcest.org +ikcrm.com +ikcw.com +ike-global.com +ikeguang.com +ikemeng.com +ikepu.com +ikjtao.com +ikjzd.com +ikmhua.com +ikmt.net +iknowbooks.com +ikonfx.com +ikongjian.com +ikongjun.com +ikonke.com +ikozn.com +iksea.com +iku.cool +iku8.com +ikuai8-wifi.com +ikuai8.com +ikuailian.com +ikuajing.com +ikunac.com +ikx.me +ikyy.cc +ikzybf.com +il8r.com +ilab-x.com +ilabilab.com +ilaisa.com +ilaitui.com +ilancai.com +ilanni.com +ilanx0.net +ilanyao.com +ilanzou.com +ilaw66.com +ilawpress.com +ilazycat.com +ileci.com +ileedarson.com +ileehoo.com +ilego.club +ileshua.com +ilewan.com +iliangcang.com +ilianyue.com +ilibrand.com +ilidubj.net +ilifesmart.com +ilinekesy.com +ilingdai.com +ilinki.net +ilinkone.com +ilinux.xyz +ilinuxkernel.com +ilinyi.net +ilishi.com +ilishi.net +iliuliu.com +ilivehouse.com +ilixiangguo.com +iliyu.com +ilkeji.com +ilkwork.com +illumpaper.com +ilmgq.com +ilohas.com +iloli.bid +ilongre.com +ilongterm.com +iloveanan.com +ilovefishc.com +ilovelvxing.com +iloveyou14.com +iloveyouxi.com +ilovezuan.com +ilsungf.com +ilufan.com +iluoyang.com +iluqi.com +ilustrepro.com +iluvatar.ai +ilv6.com +ilxdh.com +ilz.me +im-cc.com +im170.com +im286.com +im286.net +im2maker.com +im323.com +im520.com +im577.com +im5i.com +im9.com +imaccn.com +imacso.com +imaegoo.com +image-mangdiaxyz.com +imageaccelerate.com +imageedu.com +imagefz.com +imagehub.cc +imagelol.com +imagepy.org +images-cache.com +images-huoshan.com +zys.me +imagestoryai.com +imageter.com +imagetotxt.com +imaginde.com +imagineadtech.com +imags-google.com +imahui.com +imaibo.net +imaijia.com +imaitu.com +imalljoy.com +imandarin.net +imangodoc.com +imanhuaw.net +imaojiang.com +imarketchina.com +imaschina.com +imatlas.com +imayitxt.com +imazingchina.com +imbackr.com +imbeiyu.com +imblog.in +imbtk.com +imcapptest.com +imcec.org +imcn.me +imdadui.com +imdo.co +imdodo.com +imdst.com +imedao.com +imedicalai.com +imedp.com +imeete.com +imeete.net +imeidb.com +imeihei.com +imeiju.cc +imeishike.com +imeitools.com +imeitou.com +imeme.tv +imesong.com +imeyahair.com +imfirewall.com +img-space.com +img-sys.com +zyrykbiandao.com +img005.com +img168.net +img16888.com +img4399.com +img898.com +imgads.xyz +imgcdc.com +imgcdn2.com +imgchr.com +imgds.xyz +imgeek.org +imgets.com +imgii.com +imgkr.com +imglefeng.com +imglink.win +imgo.tv +imgscdn.com +imgse.com +imgsha.com +imgsina.com +imgtg.com +imgtu.com +imgurl.org +imhan.com +imhanjie.com +imhdr.com +imhuchao.com +imibaby.net +imicang.com +imiker.com +imindmap.cc +iminisd.com +imitui.com +imixpark.com +imjiayin.com +imkevinyang.com +imkira.com +imlaidian.com +imlcl.com +imlianai.com +imliuyi.com +immi520.com +immiexpo.com +immivip.com +immomo.com +immomogame.com +immusician.com +imnerd.org +imnight.com +imnks.com +imobile-ent.com +imobon.com +imochen.com +imoduo.com +imoe.me +imoeer.com +imoemh.com +imoeq.com +imofan.com +imoffice.com +imohu.com +imolink.com +imomoe.ai +imomoe.com +imomoe.in +imomoe.io +imooc.com +imoocc.com +imoonfm.com +imooo.com +imopan.com +imosi.com +imotao.com +imoxiu.com +imp3.net +imperfectionstudio.com +imperial-vision.com +impk.cc +impk113.com +impnails.com +impopper.com +impta.com +imqq.com +imququ.com +imquzan.com +imrfresh.com +imshell.com +imshu.cc +imshusheng.com +imsilkroad.com +imsle.com +imspm.com +imsun.net +imsxm.com +imtmp.net +imtuan.com +imudgame.com +imugeda.com +imuke.com +imuo.com +imvictor.tech +imw.me +imwaco.com +imwallet.com +imweb.io +imweia.com +imwexpo.com +imwork.net +imx365.net +imxh.com +imxingzhe.com +imxpan.com +imxyd.com +imycdn.com +imycloud.com +imydns.net +imyjdo.com +imys.net +imyshare.com +imyuedu.com +imzego.com +imzhongxin.com +imzhuomo.com +in-en.com +in-int.com +in.th +in001.com +in66.com +in6way.com +in800.com +in955.com +inabr.com +inad.com +inanrenbang.com +inbeijing.org +inbilin.com +inbooker.com +inboyu.com +inc365.com +incake.net +incensechina.com +incker.com +incloudexpo.com +incopat.com +incsg.com +ind-app-comp.com +ind-map.com +ind9ed.com +indexedu.com +indexedu.net +indexmob.com +indiancn.com +indics.com +indielight.net +indienova.com +indier.com +indmi.com +induta.com +ineice.com +inengyuan.com +inesa-it.com +inetech.fun +inetgoes.com +inetnoc.com +inewhope.com +inewoffice.com +infarts.net +infertilitybridge.com +infineon-autoeco.com +infinitescript.com +infinitynewtab.com +infinitytab.com +info.cc +info10.com +info110.com +info35.com +infobidding.com +infobigdata.com +infocloud.cc +infocomm-journal.com +infohpc.com +infoier.com +infoipwest.com +infong.net +infoobs.com +infoq.com +infoqstatic.com +inforbus.com +inforguard.net +informrack.com +inforsec.org +infosoft.cc +infovc.com +infowuxi.com +infoxgame.com +inframe.mobi +inftab.com +infyniclick.com +infzm.com +ing10bbs.com +ingageapp.com +ingaoyt.biz +ingcore.com +ingdan.com +ingenic.com +ingkee.com +ingping.com +inhdd.com +inhe.net +inhi.kim +inhuawei.com +ini3e.com +inibiru.com +inicoapp.com +inidc.net +inimc.com +ininin.com +initialview.com +initroot.com +inja.com +injoinic.com +inkankan.com +inkanke.com +inkcn.com +inke.com +inke.tv +inkeygo.com +inkonote.com +inktok.com +inkuai.com +inkwai.com +inlaylink.com +inlishui.com +inlovektv.com +inmeng.net +inmuu.com +inneed.club +innity.com +innity.net +innjia.com +innocn.com +innocomn.com +innodealing.com +innofidei.com +innojoy.com +innotechx.com +innotron.com +innovatedigital.com +innoveronline.com +innovidcn.com +innovisgroup.com +innvitor.com +inoherb.com +inoneh5.com +inoteexpress.com +inovance-automotive.com +inpla.net +inplayable.com +inputmore.com +inqan.com +inrice.com +inrugao.com +insarticle.com +inshiqi.com +insidelinuxdev.net +insightblog.ca +insnail.com +inspeed.biz +inspur.com +inspuronline.com +inspurpower.com +insta360.com +instafogging.com +installgreat.com +insun-china.com +inswindow.com +insxz.com +int-agri.com +int800.com +intaek.com +intcache.net +intdmp.com +intecol-10iwc.com +intekey.com +intel-space.com +intelcupid.com +intelligentmanufactory.com +intelvisioncn.com +inter12.org +inter1908.net +interactivebrokers.hk +intergreat.com +internationalbrand.net +internbird.com +internet-dns.com +internetke.com +internettrademark.com +internetworld.cloud +interotc.net +intertid.com +interval.im +intimerent.com +intio.org +intl-hzc.com +intlgame.com +intlqydd.info +intlscdn.com +intmedic.com +intmian.com +intohard.com +intopet.com +intovfx.com +intowz.com +intozgc.com +intple.com +intsavi.com +intsig.net +intsweet.com +intwho.com +inuobi.com +inuu6.com +inveno.com +inverter.so +invescogreatwall.com +invest-data.com +investoday.net +investorscn.com +investstkitts.org +invoee.com +inwaishe.com +inwatch.cc +inxedu.com +inxni.com +inyuapp.com +inzone-auto.com +inzotek.com +ioa365.com +ioage.com +ioclab.com +iocrest.com +iodraw.com +ioeyjsb.com +ioffershow.com +ioffice100.com +ioiox.com +iok.la +iol8.com +ioneball.com +ionewu.com +ionichina.com +iooeoo.com +iopenhec.com +iosappx.com +iosask.com +iosfengwo.com +iosinit.com +iosmu.com +iosre.com +iot-online.com +iot.moe +iot1001.com +iot101.com +iot688.com +iotachem.com +iotbay.com +iotexpo.org +iotfair.net +iotku.com +iotmag.com +iotpai.com +iotwrt.com +iotxing.com +iouluo.com +iovweek.com +iowiki.com +ip-cdn.com +ip-guard.net +ip008.com +ip138.com +ip192.com +ip33.com +ip3366.net +ip518.com +ip669.com +ip87.com +ipaddr.host +ipadown.com +ipadview.com +ipaiban.com +ipail.com +ipalfish.com +ipalmap.com +ipampas.com +ipanda.com +ipanda.net +ipandao.com +ipandata.com +ipangcai.com +ipanshi.com +ipaomi.com +ipaotuan.com +ipason.com +ipay.so +ipcfun.com +ipchaxun.com +ipchaxun.net +ipcmen.com +ipcodm.com +ipcorecatalog.com +ipctest.com +ipcwifi.com +ipcxz.com +ipdaili.com +ipddz.com +ipdfmaster.com +ipdftool.com +ipdianhua.com +ipdsms.com +ipduoduo.cc +ipduoduo.com +ipease.net +ipeedu.com +ipehr.com +ipehua.com +ipeijiu.com +ipengchen.com +ipengtai.com +iper2.com +iperson.xyz +ipexp.com +ipfeibiao.com +ipfen.com +ipfsbit.com +ipgoal.com +iphonediule.com +ipin.com +ipinba.com +ipingyao.com +ipinyou.com +ipip.net +ipktv.com +ipku.com +iplascloud.com +iplawyerlyj.com +iplay11g.com +iplaypy.com +iplaysoft.com +iplusmed.com +ipmay.com +ipmost.com +ipmph.com +ipo.la +ipo3.com +ipoceo.com +iposeidongame.com +ipple.net +ipplus360.com +ippzone.com +ipr114.net +ipr123.com +iprchn.com +iprdaily.com +iprdp.net +ipresst.com +iprtop.com +iprun.com +ips8.com +ipshudi.com +ipssh.net +iptalent.com +iptrm.com +ipuu.net +ipv4.host +ipv6dns.com +ipyy.com +iq123.com +iqalliance.org +iqcrj.com +iqdii.com +iqdnet.com +iqianggou.com +iqianjin.com +iqianyue.com +iqidian.com +iqihang.com +iqilu.com +iqilun.com +iqinbao.com +iqing.com +iqingdao.com +iqingua.com +iqishu.la +iqiyi.com +iqiyih5.com +iqiyipic.com +iqshw.com +iquanba.com +iquanfen.com +iquanwai.com +iqujing.com +iqunix.com +iqunix.store +iqupdate.com +iqushai.com +iqxbf.com +iqxedu.com +iqycamp.com +irain.in +iranshao.com +iraoping.com +ircmnr.com +ireader.com +ireadercity.com +ireadweek.com +ireadyit.com +irealbest.com +irealcare.com +irealtech.com +irecyclingtimes.com +iredwhale.com +irelandvisacenter.com +irelxtech.com +iresearchad.com +iresearchchina.com +irest.tv +irestapp.com +irising.me +irlianmeng.com +irockbunny.com +iroing.com +ironfishchina.com +irongbei.com +ironghui.com +irootech.com +irs01.com +irs01.net +irs03.com +irskj.com +iruanmi.com +iruidian.com +iruixing.com +irukou.com +is-programmer.com +is36.com +isamanhua.com +isay365.com +isbdai.org +iscrv.com +isd.com +isdox.com +isdpp.com +iseedog.com +iseekids.com +isenruan.com +iseoku.com +isf.ink +isfashion.com +isfirst.net +ish168.com +ishaanxi.com +ishala.com +ishang.net +ishanghome.com +ishangman.com +ishangtong.com +ishangtu.com +ishangu.com +ishanshan.com +ishansong.com +ishaohuang.com +isharebest.com +isharepc.com +isheely.com +isheet.net +isheji5.com +ishenbao.com +ishenping.com +ishenyou.com +ishhuo.com +ishipoffshore.com +ishoujizhuan.com +ishowchina.com +ishowx.com +ishubao.org +ishugui.com +ishuhui.com +ishuhui.net +ishuirong.com +ishuiyun.com +ishumei.com +ishuocha.com +ishuqi.com +ishuquge.com +isigu.com +isilent.me +isilicontech.com +isinosig.com +isixiang.com +isixue.com +isjike.com +iskcd.com +iskryou.com +isky000.com +iskyjoy.com +iskylinem.com +iskysoft.com +islide.cc +isluo.com +ismartgo.com +ismartware.com +ismdeep.com +isme.pub +isming.me +ismx8.com +iso-est.com +iso-iso9000.com +isobar.tech +isoftstone.com +isoo.cc +isorange.com +isotoo.com +isoucai.com +isoyes.com +isoying.com +isoyu.com +isp.cx +ispecial.xyz +ispqcloud.com +ispservice.cc +isrcb.com +isscloud.com +issconline.com +issedu365.com +issjj.com +issjr.com +issks.com +ist-zl.com +isthnew.com +istpei.com +istrongcloud.com +istudyinchina.org +istylepdf.com +isudaji.com +isuike.com +isummi.com +isun.org +isuzhou.me +isvee.com +isvjcloud.com +isvjd.com +isvup.com +iswifting.com +isxtv.com +isyour.love +it-bound.com +it-crazy.net +it007.com +it0746.com +it120.cc +it1352.com +it163.com +it165.net +it168.com +it2021.com +it376.com +it399.com +it525.com +it528.com +it578.com +it610.com +it666.com +it689.com +it69.net +it707.com +it7t.com +it918.com +it985.com +it9g.com +itaboola.com +itaic.org +itaiping.com +itakeeasy.com +italyvisacenterd.com +itamt.com +itangbole.com +itangyuan.com +itanlian.com +itanzi.com +itao.com +itaoke.org +itaokecms.com +itaored.com +itaotuo.com +itaoyun.com +itavcn.com +itbegin.com +itbilu.com +itbkz.com +itblw.com +itbole.com +itboth.com +itbour.com +itboy.net +itbulu.com +itbuy.com +itbyte.net +itcacfo.com +itchaguan.com +itcm.com +itcodemonkey.com +itcpn.net +itczh.com +itdabao.com +itdai.com +itdcw.com +itdiffer.com +itdks.com +itdoor.net +itdos.com +itdos.net +iteblog.com +itechate.com +itedou.com +iteer.net +itek-training.com +itelly.net +itellyou.com +itensoft.com +iter168.com +itest.info +itetc.org +itexamprep.com +iteye.com +itfans.net +itfeed.com +itfenghui.com +itfly.net +itfw5.com +itgd.net +itgeeker.net +itgege.com +itgemini.net +itgo.me +itgochina.com +itgoodboy.com +ithaowai.com +ithard.com +itheat.com +itheima.com +ithenticatecn.com +ithome.com +ithome.net +ithor.com +ithor.net +ithothub.com +ithov.com +itiankong.com +itiankong.net +itianliao.com +itiexue.net +itiger.com +itigergrowth.com +itilxf.com +itilzj.com +itingwa.com +itit.io +itiyan.net +itjoy.net +itjspx.com +itjuzi.com +itkoudai.com +itlu.org +itmanbu.com +itmastergame.com +itmind.net +itmoocs.com +itmop.com +itmsm.com +itmuch.com +itmuke.com +itmyhome.com +itnan.net +itnb.cc +itnec.org +itnihao.com +itniwota.com +itnpc.com +itnxs.com +itocp.com +itoec.org +itogame.com +itokit.com +itokoo.com +itonghui.com +itopcoupon.com +itopers.com +itophis.com +itopplay.com +itopsdk.com +itotii.com +itouchchina.com +itougu.com +itoumi.com +itoutiao.co +itoutiaoimg.com +itoutiaostatic.com +itoyfx.com +itpeo.net +itpon.com +itpow.com +itppi.org +itpub.net +itpux.com +itpux.net +itpwd.com +itrace.cc +itrid.com +itrip.com +itruelife.com +itruke.com +itry.com +its114.com +itshai.com +itshubao.com +itsiwei.com +itsk.com +itslaw.com +itsmephoto.net +itsogo.net +itsoku.com +itsun.com +itsvse.com +ittribalwo.com +ituad.com +itugo.com +ituite.com +itushuo.com +itutu.tv +ituu.net +itvssp.com +itwanger.com +itwlw.com +itwork.club +itwulin.com +itxe.net +itxia.club +itxiao.com +itxinwen.com +itxst.com +itxueyuan.com +itxuye.com +ityears.com +itying.com +ityouknow.com +itypen.com +ityuan.com +ityun.tech +ityxb.com +itzhp.com +itziy.com +itzjj.com +itzm.com +itzmx.com +itzmx.net +itzzh.com +iu18.com +iu95522.com +iuban.com +iucars.com +iucdn.com +iuctrip.com +iudodo.com +iufida.com +iuinns.com +iun2s8.xyz +iuni.com +iunus.com +iuoooo.com +iuplus.com +iusmob.com +iuynfg.com +iv06.com +ivali.com +ivan.xin +ivban.com +ivcheng.com +ivemusic.net +iventoy.com +ivideostar.com +iviewui.com +ivistang.com +ivixivi.com +ivocaloid.com +ivsky.com +ivtsoft.com +ivu4e.com +ivvajob.com +ivweb.io +ivwen.com +ivy-school.org +ivybaby.me +ivycoffee.com +ivydad.com +ivypub.org +ivyschools.com +ivysun.net +ivywing.me +iwala.net +iwan4399.com +iwan78.com +iwanbei.com +iwanboy.com +iwangding.com +iwangnan.com +iwanoutdoor.com +iwanws.com +iwanyl.com +iwapan.com +iwasai.com +iwatch365.com +iwcoo.com +iwebad.com +iwebchoice.com +iwecan.net +iweeeb.com +iweek.ly +iweekapi.com +iweidu.net +iweju.com +iwellen.com +iwen1.com +iwencai.com +iwenson.com +iwgame.com +iwhalecloud.com +iwhr.com +iwin10.cc +iwin10.com +iwin10.net +iwingchina.com +iwiscloud.com +iwjw.com +iwncomm.com +iwopop.com +iwordnet.com +iwordshow.com +iwpai.com +iwshang.com +iwshuma.com +iwucha.com +iwwwwwi.com +iwxapi.com +iwyv.com +iwyvi.com +iwzwy.com +ixbren.net +ixdc.org +ixfc.net +ixgvideo.com +ixiangyu.com +ixianlai.com +ixianzong.com +ixiao9.com +ixiaochengxu.cc +ixiaowai.com +ixiatxt.com +ixigua.com +ixiguan.com +ixiguavideo.com +iximo.com +ixinglu.com +ixingpan.com +ixinqing.com +ixintu.com +ixinwei.com +ixinyou.com +ixiqi.com +ixiqin.com +ixiumei.com +ixiway.com +ixixili.com +ixizang.com +ixmu.net +ixpub.net +ixs.la +ixsch.com +ixueshu.com +ixueyi.com +ixunke.com +iy51.com +iyangxi.com +iyaou.com +iyaxi.com +iyaxin.com +iyaya.com +iyaya.info +iyb.tm +iycdm.com +iycsky.com +iydsj.com +iydu.net +iyeeda.com +iyeele.com +iyenei.com +iyingdi.com +iyingji.com +iyint.com +iyiou.com +iyiqi.com +iyishengyuan.com +iyiyun.com +iymark.com +iyocloud.com +iyong.com +iyongpdf.com +iyooread.com +iyoucai.com +iyoudui.com +iyouhun.com +iyoujia.com +iyoujiao.net +iyoule.com +iyouman.com +iyouqian.com +iyouxia.com +iyouxin.com +iyouxun.com +iyruan.com +iytc.net +iyuedan.com +iyuedian.com +iyunbao.com +iyunbiao.com +iyunmai.com +iyunshu.com +iyunv.com +iyunxiao.com +iyunyue.com +iyunzk.com +iyxku.com +iyyin.com +iyz168.com +izacholsm.com +izaodao.com +izatcloud.net +izazamall.com +izdatatech.com +izdict.com +izestchina.com +izhanchi.com +izhangchu.com +izhangheng.com +izhaohe.com +izhaowo.com +izhenxin.com +izhihuicheng.net +izhihuo.com +izhikang.com +izhiliao.com +izhiqun.com +izhishi.com +izhuanfa.com +izhuce.com +izihun.com +iziyo.com +izjj.com +izmzg.com +izstz.com +izt8.com +iztwp.com +iztzq.com +izuanla.com +izuche.com +izuchebao.com +izuchecdn.com +izuiyou.com +izumicn.com +j-h-k.com +j-smu.com +j-test.com +j1health.com +j5k6.com +j66.net +j7994.com +jaadee.com +jaadee.net +jabizb.com +jackon.me +jackxiang.com +jacky-blog.com +jackyang.me +jackyyf.com +jackzhu.com +jadetowerccrc.com +jae.sh +jaeapp.com +jaeosc.com +jafeney.com +jajqj.com +jakegame.com +jakehu.me +jalorsoft.com +jamidol.com +jammyfm.com +jamoxi.com +jampotgames.com +janbao.net +jandan.com +jandan.net +jane7.com +janezt.com +janmeng.com +janpn.com +janrain.biz +janz.plus +jarencai.com +jarhu.com +jarvisw.com +jasolar.com +jason-z.com +jasongj.com +jasperxu.com +java-er.com +java1234.com +java2000.net +java2class.net +javaapk.com +javaboy.org +javacui.com +javadoop.com +javaer.xyz +javaeye.com +javafxchina.net +javanav.com +javashuo.com +javatang.com +javaweb.shop +javawenti.com +javawind.net +javaxxz.com +javazhiyin.com +javazx.com +javbuy.xyz +javier.io +jaxcx.com +jayce.icu +jayfc.com +jayfu.tk +jayjw.com +jayme.net +jayxhj.com +jazzbeauswings.com +jazzyear.com +jb1000.com +jb51.cc +jb51.com +jb51.net +jbaier023.com +jbaobao.com +jbb.one +jbcz.tv +jbdown.com +jbedu.org +jbelf.com +jbjc.org +jbryun.com +jbxy.com +jbzj.com +jbzwread.com +jbzyk.com +jbzyw.com +jc-ai.com +jc-dl.net +jc-saas.com +jc-space.com +jc0531.com +jc170.com +jc315.com +jc35.com +jc56.com +jc85.com +jcbjbcak.com +jccsoc.com +jccug.com +jcedu.org +jcelyj.com +jcf94.com +jcgcn.com +jchat.io +jchelec.com +jchl.com +jchla.com +jchunuo.com +jchxmc.com +jcicl.com +jcku.com +jcloud-cache.com +jcloud-cache.net +jcloud-cdn.com +jcloud-live.com +jcloud-oss.com +jcloud.com +jcloudcache.com +jcloudcache.net +jcloudcs.com +jclouddn.com +jclouddns.com +jclouddns.net +jcloudec.com +jcloudedge.com +jcloudedge.net +jcloudgslb.com +jcloudgslb.net +jcloudimg.com +jcloudimg.net +jcloudlb.com +jcloudlb.net +jcloudlive.com +jcloudlv.com +jcloudoss.com +jcloudresolve.com +jcloudresolve.net +jcloudss.com +jcloudstatic.com +jcloudstatic.net +jcloudvideo.com +jcloudvideo.net +jclps.com +jcmob.net +jcmtxs.com +jcnano.com +jcnk120.com +jcodecraeer.com +jcpeixun.com +jcqzw.com +jcrb.com +jcsb.com +jcsfs.com +jcsjt.com +jcsy66.com +jctmj.net +jctrans.com +jcu.cc +jcwcn.com +jcwgk.com +jcwxiao.com +jcyai.com +jcyes.com +jcyx2019.com +jczhijia.com +jczhiyao.com +jd-88.com +jd-app.com +jd-bbs.com +jd-df.com +jd-ex.com +jd-ex.net +jd-fm.com +jd.co +zyrmw.com +jd.com +jd.hk +jd.id +jd.ru +jd.shop +jd100.com +jd360.hk +jd5.com +jdair.net +jdallianz.com +jdapi.com +jdb100.com +jdbbs.com +jdbpcb.com +jdbusiness.com +jdcache.com +jdcapital.com +jdccie.com +jdcdn.com +jdcf88.com +jdcloud-api.com +jdcloud-api.net +jdcloud-edu.com +jdcloud-elite.com +jdcloud-elive.com +jdcloud-livebuy.com +jdcloud-mail.com +jdcloud-openapi.com +jdcloud-oss.com +jdcloud-scdn.net +jdcloud.com +jdcloudcache.com +jdcloudcache.net +jdcloudcdn.com +jdcloudcdn.net +jdcloudcs.com +jdclouddns.com +jdclouddns.net +jdcloudedge.com +jdcloudedge.net +jdcloudlb.com +jdcloudlb.net +jdcloudlive.com +jdcloudlive.net +jdcloudnaming.net +jdcloudresolve.com +jdcloudresolve.net +jdcloudshop.com +jdcloudsite.com +jdcloudstatic.com +jdcloudstatic.net +jdcloudstatus.com +jdcloudstatus.net +jdcloudvideo.com +jdcloudvideo.net +jdcloudwaf.com +jdcq.net +jdctky.com +jdd-hub.com +jdd.com +jddapeigou.com +jddaw.com +jddb.net +jdddata.com +jddebug.com +jddglobal.com +jddj.com +jddmoto.com +jdedu.net +jdemall.com +jdfcloud.com +jdfhq.com +jdfschool.com +jdfw1.com +jdgogo.com +jdgslb.com +jdgslb.net +jdgwdq.com +jdh.com +jdhmediajd.com +jdhyplay.com +jdiy.club +jdjingmai.com +jdjinrong.com +jdjob88.com +jdjrdns.com +jdjygold.com +jdkcb.com +jdl.com +jdlgw.com +jdluosi.com +jdlxzx.com +jdnews.net +jdon.com +jdpay.com +jdpaydns.com +jdplay.com +jdsafe.com +jdtjy.com +jdvisa.com +jdw001.com +jdw2.com +jdwan.com +jdwgame.com +jdwl.com +jdworldwide.com +jdwx.info +jdwxwz.com +jdx.com +jdxc.net +jdxcw.com +jdxfw.com +jdxlt.com +jdxs5200.net +jdxzz.com +jdy.com +jdycdn.com +jdyou.com +jdypf.com +jdzdeyy.com +jdzeduyun.com +jdzj.com +jdzmc.com +jdzol.com +jdzol.net +jeacar.com +jeagine.com +jeanphy.online +jeanssalon.com +jeasyui.net +jectronic.com +jecvay.com +jedi-games.com +jedoo.com +jeeanlean.com +jeebei.com +jeecg.com +jeecg.org +jeecms.com +jeee.ltd +jeejen.com +jeeplus.org +jeesci.com +jeesite.com +jeeyaa.com +jeffjade.com +jeffreyitstudio.com +jeffstudio.net +jegotrip.com +jehudf.com +jelleybrown.com +jellow.club +jellow.site +jellymoo.com +jellythink.com +jenglishj.com +jeongen.com +jeoshi.com +jerei.com +jerryzou.com +jescard.com +jesgoo.com +jesselauristonlivermore.com +jesselivermore.com +jestq.com +jethoo.com +jetmobo.com +jetneed.com +jetsum.com +jetsum.net +jewellworld.com +jewelryseeds.com +jexus.org +jeyi.com +jf9p.com +jfapv.net +jfbcb.com +jfbuilding.com +jfcaifu.com +jfcdns.com +jfcgf.com +jfdaily.com +jfdown.com +jfduoduo.com +jfedu.net +jfewle.com +jfh.com +jfh8ad.com +jfinal.com +jfinfo.com +jfkairporthotels.net +jfq.com +jfrogchina.com +jfshare.com +jfstatic.com +jfuwu.com +jfwypay.com +jfydgame.com +jfyiyao.com +jfyxmm.com +jfz.com +jfzhiyao.com +jgcqgf.com +jgdq.org +jgdun.com +jgew3d.com +jgg09.com +jggame.net +jggjj.com +jgjapp.com +jgjsoft.com +jgscct.com +jgsdaily.com +jgtc315.com +jguo.com +jgvnews.com +jgwsoft.com +jgxlzd.com +jgy.com +jgyljt.com +jgz518.com +jgzx.org +jgzyw.com +jh2sc.com +jh3j.com +jh8k.com +jhcb.net +jhcfz.com +jhcms.com +jhctbank.com +jhdqz.com +jhdxjk.com +jhfl.com +jhforever.com +jhgolfcarts.com +jhgtgb.com +jhltsl.com +jhm2012.com +jhnsh.com +jhnsyh.com +jhonge.net +jhonse.com +jhqshfly.com +jhrcbank.com +jhrdqx.com +jhsbggw.com +jhscm.com +jhscrm.com +jhsjtxx.com +jhssapp.com +jhszyy.com +jht868.com +jhtcgroup.com +jhwaimai.com +jhxms.com +jhygame.com +jhyongyou.com +jhypcy.com +jhyslw.com +jhzhizao.com +jhzpgw.com +ji36.net +ji7.com +jia-he-jia.com +jia.com +jia12.com +jia360.com +jia400.com +jiaads.com +jiaapps.com +jiabangcnc.com +jiabasha.com +jiacai001.com +jiachong.com +jiadingqiang.com +jiadounet.com +jiaduijiaoyou.com +jiae.com +jiafang168.com +jiafenqi.com +jiagedan.com +jiageip.vip +jiagle.com +jiagouyun.com +jiaguhome.com +jiagulun.com +jiaheu.com +jiahuacinema.com +jiahuaming.com +jiahuism.com +jiain.net +jiaji.com +jiaji28.net +jiajia.tv +jiajiakt.com +jiajianhudong.com +jiajiao114.com +jiajiaoban.com +jiaju.cc +jiaju.com +jiajuketang.com +jiajumi.com +jiajuol.com +jiakaobaodian.com +jiakaodashi.com +jiakaokemuyi.com +jialaxin.cc +jialebao.cc +jialez.com +jialiangad.com +jialidun.com +jialingmm.net +jialunkj.com +jiamei123.com +jiameng.com +jiameng001.com +jiamengdp.com +jiamengfei.com +jiamiantech.com +jiaming.pro +jiaminghi.com +jiamisoft.com +jiamofang.net +jian.net +jianada-qianzheng.com +jianai360.com +jianavi.com +jianbaizhan.com +jianbaolife.com +jianbihua.com +jianbihua.org +jianbihua360.com +jianbihuadq.com +jianbing.com +jiancai.com +jiancepaper.com +jianchacha.com +jianchihu.net +jianchuangwang.com +jiandaima.com +jiandan.net +jiandansousuo.com +jiandantianqi.com +jiandanxinli.com +jiandaopay.com +jiandaoyun.com +jiandati.com +jiandiao.com +jiando.com +jiane86.com +jianeryi.com +jianfei.com +jianfei.net +jianfeiba.com +jianfeibaike.com +jianfeidaren.com +jianfengstudio.com +jiangbeijituan.com +jiangbeishuicheng.com +jiangchaochina.com +jiangcp.com +jiangduoduo.com +jianghaihao.com +jianghehuagong.com +jianghui.xyz +jiangjiaolong.com +jiangkk.com +jiangmin.com +jiangpaipinpai.com +jiangque.com +jiangqx.com +jiangruyi.com +jiangshanlihong.com +jiangshi.org +jiangshi99.com +jiangsugqt.org +jiangsugwy.org +jianguo.tv +jianguoyun.com +jiangwang.net +jiangweishan.com +jiangxianli.com +jiangxiol.com +jiangzi.com +jianhaobao.com +jianhen.net +jianhui.org +jianianle.com +jianjian.tv +jianjiaobuluo.com +jianjie8.com +jiankang.com +jiankanghebei.com +jiankangju.com +jianke.cc +jianke.com +jianke.net +jiankong.com +jiankongbao.com +jianlaixiaoshuo.com +jianlc.com +jianlc.net +jianli-sky.com +jianli9.com +jianliao.com +jianliben.com +jianlika.com +jianlixiu.com +jianloubao.com +jianluote.net +jianmu.run +jianniang.com +jianpaimeiye.com +jianpian.info +jianpu8.com +jianpu99.net +jianpuw.com +jianq.com +jianqiaochina.com +jianshe99.com +jianshen8.com +jianshenmi.com +jianshiapp.com +jianshiduo.com +jianshu.com +jianshu.io +jianshu.tech +jianshuapi.com +jianshukeji.com +jiantizi.com +jiantufuwu.com +jiantuku.com +jianwang360.com +jianweidata.com +jianweitv.com +jianwenapp.com +jianxinyun.com +jianxun.io +jianyu360.com +jianyujiasu.com +jianyuweb.com +jianyv.com +jianzhan110.com +jianzhan580.com +jianzhanbao.net +jianzhangongsi.com +jianzhi8.com +jianzhibao.com +jianzhikeji.com +jianzhimao.com +jianzhiwangzhan.com +jianzhiweike.net +jianzhiyixin.com +jianzhu2008.com +jiao4.com +jiaoben.net +jiaobuser.com +jiaochengji.com +jiaochengzhijia.com +jiaodian.pub +jiaodong.net +jiaofei123.com +jiaohezhen.com +jiaohuilian.com +jiaohusheji.net +jiaoliuqu.com +jiaomai.com +jiaoman.cc +jiaonan.net +jiaonizuocai.com +jiaoping.com +jiaoqiuqingxi.net +jiaoshouhuayuan.com +jiaoshouwang.com +jiaoyimao.com +jiaoyin.com +jiaoyixia.com +jiaoyizhu.com +jiaoyudao.com +jiaoyumao.com +jiaoyuwo.com +jiapin.com +jiapu.tv +jiapujidi.com +jiapuvip.com +jiaren.org +jiarenvip.com +jiasale.com +jiashuangkuaizi.com +jiashule.com +jiasou.cc +jiasu.work +jiasubook.com +jiasudu666.com +jiasuhui.com +jiasule.com +jiasule.net +jiasule.org +jiatengflycdn.com +jiathis.com +jiatui.com +jiatx.com +jiawei.xin +jiawentrans.com +jiawin.com +jiaxianggame.com +jiaxianghudong.com +jiaxiangxm.com +jiaxiao100.com +jiaxiaozhijia.com +jiaxichina.net +jiaxin-industry.com +jiaxincloud.com +jiaxingren.com +jiaxiweb.com +jiaxuejiyin.com +jiayans.net +jiayi56.com +jiayin618.com +jiayongluyou.com +jiayouhaoche.com +jiayouxueba.com +jiayu.yoga +jiayu0x.com +jiayuan-law.com +jiayuan.com +jiazhao.com +jiazhongkeji.com +jiazhoulvke.com +jiazhua.com +jiazhuang.com +jiazhuang6.com +jiazile.com +jiazuo.cc +jibai.com +jibencaozuo.com +jibing57.com +jibite.fun +jicaifund.com +jice.io +jichangbus.com +jichangdaba.com +jiche.com +jicheng.net +jichuangke.com +jiclip.com +jidacheng.com +jidaihome.com +jidao.ren +jidaola.com +jide.com +jidekan.com +jideos.com +jidi.com +jidujiao.com +jidujiasu.com +jiduu.com +jie518.com +jiebaodz.com +jiebide.xin +jiecao.com +jiedaibao.com +jiediankeji.com +jiefadg.com +jiefuku.com +jiegames.com +jiegeng.com +jiehun021.com +jiehun027.com +jiehunmishu.com +jiejing.fun +jiejingku.net +jiekenmould.com +jiekon.com +jiekou.com +jielibj.com +jieligo.net +jielong-printing.com +jielong.co +jielongguanjia.com +jiemeng.tw +jiemeng8.com +jiemian.com +jiemo.net +jiemodui.com +jiemoselect.com +jiepaids.com +jiepei.com +jiepeng023.com +jieqi.com +jieqinwang.com +jiese91.com +jieshengit.com +jieshimt8.com +jieshu.me +jieshui8.com +jieshuwang.com +jietu365.com +jietuhb.com +jietuosh.com +jietusoft.com +jiexilaiba.com +jiexiyouxuan.com +jiexunyun.net +jieyang.la +jieyou.com +jieyougame.com +jieyougx.com +jieyoujob.com +jieyue.net +jifang360.com +jifang365.com +jifangcheng.com +jifenapp.com +jifenfu.net +jifengba.com +jifengdm.com +jifenh.com +jifenzhi.com +jifenzhong.com +jigao616.com +jiguangdaili.com +jiguangdanci.com +jiguo.com +jihai8.com +jihaoba.com +jihex.com +jiheyun.com +jihot.com +jihuachina.com +jihuanshe.com +jihulab.com +jihuoma.com +jijia.com +jijiagames.com +jijidown.com +jijigugu.club +jijing.site +jijinhao.com +jijuduo.com +jikabao.com +jikaicai.com +jike.city +jike.info +jikedaohang.com +jikedata.com +jikefan.com +jikeiot.cloud +jikejiazhuang.com +jikejidi.com +jikemac.com +jikewan.com +jikexiu.com +jikexueyuan.com +jikeyouzi.com +jikipedia.com +jilailawyer.com +jileniao.net +jiliguala.com +jilingwy.org +jilinpujiyiyuan.com +jilinwula.com +jilinxiangyun.com +jiliyun.com +jiluchengshi.com +jimeisilk.com +jimeng.mobi +jimetec.com +jimi168.com +jimicn.com +jimifashion.com +jimilier.com +jimiru-bj.com +jimistore.com +jimonet.cc +jimu.com +jimubox.com +jimuc.com +jimucake.com +jimufund.com +jimuhezi.com +jimujiazx.com +jin.red +jin10.com +jin10x.com +jinanguanggao.com +jinanqianji.com +jinanxww.com +jinbaiteng.com +jinbaobeiqiming.com +jinbaoidc.com +jinbaonet.com +jinbei.com +jinbiaohui.com +jinbifun.com +jinbilianmeng.com +jinbitou.net +jinbuguo.com +jincaicaiwu.com +jinchanbest.com +jinchuang.org +jinchutou.com +jincin.com +jindaixx.com +jindangit.com +jindaodao.com +jindianweb.com +jindidata.com +jindingfm.com +jindong.org +jindongsoft.com +jindun007.net +jindunfan.com +jinduoduo.net +jinenrunze.com +jinet.org +jinfangka.com +jinfantongyici.com +jinfengkou.com +jinfengpaint.com +jinfengwine.com +jinfuzi.com +jing-xian.com +jingbo.net +jingbotech.com +jingc.com +jingcai360.net +jingchang.tv +jingchengcb.com +jingchengwl.com +jingchurc.com +jingdaka.com +jingdata.com +jingdeluntan.com +jingdian230.com +jingdiancha.net +jingdianju.com +jingdianlaoge.com +jingdianxitong.com +jingdiao.com +jingdigital.com +jingdong.com +jingdongdaili.com +jingdongjinrong.com +jingdongyouxuan.com +jingdw.com +jingfanshidai.com +jingfentui.com +jingguan.ai +jinggui.com +jinghaishop.com +jinghangapps.com +jinghooo.com +jinghua.com +jinghujiaoyu.com +jingjia.net +jingjia.org +jingjia6.com +jingjiamicro.com +jingjiang.com +jingjiawang.com +jingjie360.com +jingjiezhileng.com +jingjiu.com +jingjusc.com +jingkaiyuan.com +jingkan.net +jingkids.com +jinglawyer.com +jingliangad.com +jinglingbiaozhu.com +jinglongyu.link +jingmaoyuanxin.com +jingme.net +jingmeiti.com +jingmiuyyds.com +jingniukeji.com +jingoal.com +jingos.com +jingp.com +jingpai.com +jingpaidang.com +jingpinhui.com +jingpinke.com +jingpt.com +jingqizhitongche.com +jingrongshuan.com +jingruigroup.com +jingsh.com +jingshibianhuren.com +jingshuiqicai.com +jingsocial.com +jingsoo.com +jingtanggame.com +jingtuitui.com +jingtum.com +jingua168.com +jinguanauto.com +jingujie.com +jingutrust.com +jingwacenter.com +jingwei.link +jingwuhui.com +jingwxcx.com +jingxi.com +jingxianglawfirm.com +jingxinad.com +jingxinhdf.com +jingxuanwang.com +jingyakt.com +jingyan8.cc +jingyanben.com +jingyanbus.com +jingyanlib.com +jingyanshu.com +jingyanzhinan.com +jingyeqian.com +jingyi186.com +jingyinb.com +jingyougz.com +jingytech.com +jingyu.com +jingyuan.com +jingyuelaw.com +jingyuxiaoban.com +jingyuyun.com +jingzhengu.com +jingzhunyunting.com +jingzhusz.com +jinhe-energy.com +jinher.com +jinheshiye.com +jinhongchina.com +jinhuatv.com +jinhuazhe.com +jinhusns.com +jinianbi.com +jiniance8.com +jinjianbio.com +jinjiang.com +jinjianginns.com +jinjie.tech +jinjingquan.com +jinju8.com +jinjuasdwehjkqwnfbjanfa.xyz +jinjunmei.net +jinkan.org +jinkejoy.com +jinkex.com +jinkezhexin.com +jinkosolar.com +jinku.com +jinlaiba.com +jinlianchu.com +jinlinghotel.com +jinlinghotels.com +jinliniuan.com +jinlishenghuo.com +jinliyu.cc +jinlong-jiaxiao.com +jinmao88.com +jinmaodigital.com +jinmaopartners.com +jinmaozs.com +jinmenrc.com +jinmi.com +jinmixuetang.com +jinmogame.com +jinmuinfo.com +jinnianduoda.com +jinnong.cc +jinphui.com +jinqiexia.com +jinqunla.com +jinridandong.com +jinriguanzhu.cc +jinrishici.com +jinritemai.com +jinrong-online.com +jinrongbaguanv.com +jinrongren.net +jinrui-tech.com +jins-cn.com +jinsdk.com +jinse.com +jinsebook.com +jinsehuaqin.com +jinshakemei.com +jinshangdai.cc +jinshangdai.com +jinshanju.com +jinshare.com +jinshisoft.com +jinshuivip.com +jinshuju.co +jinshuju.com +jinshuju.net +jinshuju.org +jinshujuapp.com +jinshujucdn.com +jinshujufiles.com +jinshun.com +jinshutuan.com +jinsiwei.com +jintaimall.com +jintang114.org +jinti.com +jintiango.com +jintianjihao.com +jintiankansha.me +jintonghua.com +jinwaimai.com +jinwin.net +jinxianglian.net +jinxidao.com +jinxinqh.com +jinxiu8.com +jinxuliang.com +jinxun.cc +jinyaco.com +jinyidun.com +jinyindao.com +jinying.com +jinyongwang.com +jinyoukai.com +jinyueya.com +jinyunweb.com +jinyuzd.cc +jinzheled.com +jinzhidagl.com +jinzhoubank.com +jinzhouwp.com +jinzhucaifu.com +jinzhuguo.com +jinzjy.com +jinzunjy.com +jioluo.com +jiongcun.com +jiongdm.com +jiongji.com +jiongtoutiao.com +jiongyaya.com +jiou.me +jiouyun.com +jiping.site +jipingacg.com +jipinwww.com +jiqid.com +jiqie.com +jiqike.com +jiqimao.com +jiqirenku.com +jiqizhixin.com +jiqrxx.com +jirengu.com +jirou.com +jirou.org +jirry.me +jisapower.com +jisec.com +jishi3.com +jishicloud.com +jishicn.com +jishuchi.com +jishukong.com +jishulink.com +jishuqq.com +jishux.com +jisi17.com +jisu-cnd.com +jisu.xin +jisuacg.com +jisuanke.com +jisuanqinet.com +jisuanzt.com +jisuapi.com +jisuchaxun.com +jisuchou.com +jisuclouds.com +jisucn.com +jisuim.com +jisuimg.com +jisujie.com +jisukandian.com +jisuoffice.com +jisupdf.com +jisupdfeditor.com +jisupdftoword.com +jisupe.com +jisutodo.com +jisutp.com +jisutui.vip +jisuwebapp.com +jisuxia.com +jisuye.com +jisuyilaixingpiyan.com +jita.fun +jita.im +jita5.com +jitadaren.com +jitailian.com +jitangcn.com +jitashe.org +jitavip.com +jitiku.com +jitu5.com +jitucdn.com +jitukaisuo.com +jituofuture.com +jituwang.com +jiubuhua.com +jiucaicaijing.com +jiucaigongshe.com +jiuchet.shop +jiuchutong.com +jiucool.org +jiuday.com +jiudianjiu.com +jiudianyongpin.com +jiudingcapital.com +jiufawang.com +jiugang.com +jiugangbid.com +jiuhuang.com +jiuhuashan.cc +jiuishizanjin.com +jiujiange.com +jiujiuhuyu.com +jiujiui.com +jiujiunn.com +jiujiups.com +jiujiuwan.com +jiujiuwj.com +jiujiuyunhui.com +jiujiuzu.com +jiuku.com +jiulesy.com +jiulishi.com +jiulku.com +jiulve.com +jiumaojiu.com +jiumaster.com +jiumei.com +jiumei8.com +jiunile.com +jiuniok.com +jiupaicn.com +jiupaicom.com +jiuq.com +jiurong.com +jiuse.cloud +jiushiadx.com +jiushixing.com +jiushu.net +jiushui.tv +jiusi.net +jiusihengyuan.com +jiusitm.com +jiusongjiankang.com +jiutong100.com +jiutu.net +jiuwa.net +jiuwan.com +jiuwei.net +jiuweige.com +jiuxian.com +jiuxianfeng.com +jiuxihuan.net +jiuxinban.com +jiuxing.com +jiuxusb.com +jiuyan.info +jiuyang.com +jiuyao666.com +jiuyi2005.com +jiuyiliebian.com +jiuyingwangluo.com +jiuyuehuyu.com +jiuyuu.com +jiuzhaigou-china.com +jiuzhang.com +jiuzheng.com +jiuzhenge.com +jiuzhilan.com +jiuzhinews.com +jiuzhuanzhuan.com +jiuzungame.com +jiwa123.com +jiweichengzhu.com +jiweixin168.com +jiwu.com +jiwudai.com +jixiangbaiwei.com +jixiangjili.com +jixiangyou.com +jixianku.com +jixie100.net +jixie5.com +jixiewz.com +jixiexinxi5.com +jixinbbd.com +jixixx.com +jixuanw.com +jixunjsq.com +jixunlyq.com +jiyifa.com +jiyili.net +jiyin-tech.com +jiyin2020.com +jiyixcx.com +jiyiyq.com +jiyou-tech.com +jiyoujia.com +jiyouwang.com +jiyuncn.com +jizhan.com +jizhangzhuce.com +jizhazha.com +jizhiba.com +jizhidsp.com +jizhimobi.com +jizhiyingxiao.net +jizhiyouke.com +jizhuba.com +jizhuomi.com +jizhutaoke.com +jiziyy.com +jj-inn.com +jj20.com +jj3658.com +jj55.com +jj59.com +jj831.com +jjb-static.com +jjbang.com +jjbank.net +jjbbs.com +jjbhn.com +jjbisai.com +jjbnews.xyz +jjccb.com +jjcdn.com +jjcoffetel.cc +jjcoffetels.com +jjcto.com +jjdc.net +jjdede.com +jjdiaoyu.com +jjdzc.com +jjecn.com +jjfinder.com +jjfuzu.com +jjg630.com +jjgjy.cc +jjglobal.com +jjgsxc.com +jjhgamedns.com +jjhh.com +jjhuifu.com +jjhuigou.com +jjhuoyan.com +jjidc.com +jjiehao.com +jjinfo.com +jjisp.com +jjj.ee +jjj802.com +jjjaaa.com +jjjoystudios.com +jjjsgczbtb.com +jjkeq.com +jjkk.org +jjkucunxie.com +jjldbk.com +jjldxz.com +jjlvu.com +jjmatch.com +jjmh.com +jjmkids.com +jjmmw.com +jjnz.com +jjonline.org +jjppt.com +jjqj.net +jjsedu.org +jjshang.com +jjsip.com +jjsjsjl.com +jjtfyjy.com +jjtianshangi.com +jjtonline.com +jjtravel.com +jjttjx.com +jjw.com +jjwli.com +jjwxc.com +jjwxc.net +jjwxc.org +jjxwzk.org +jjxyls.com +jjy118.com +jjygym.com +jjyl12349.com +jjyx.com +jjzdm.com +jjzfgjj.com +jk-px.com +jk126.com +jk2h.com +jk37du.com +jk3a.com +jk51.com +jk520.net +jk724.com +jkangbao.com +jkbexp.com +jkbl.com +jkc8.com +jkcorkpads.com +jkcsjd.com +jkdsz.com +jkfwvip.com +jkhapp.com +jkhealth.vip +jkimg.net +jkjzt.com +jkpan.cc +jkpj.com +jkqivrs.com +jktcom.com +jktong.com +jktower.com +jkx.cc +jkxds.net +jkximg.com +jkydt.com +jkyeo.com +jkzgr.net +jkzhilu.com +jkzl.com +jl0435.com +jl54.org +jl7y.com +jladi.com +jlakes.org +jlbtrip.com +jlc-gw.com +jlc.com +jlccpit.com +jlcerp.com +jlcsmt.com +jlfzb.com +jlgyjj.com +jljgdj.org +jljob88.com +jlkj.cc +jllihua.com +jlmhw.com +jlonline.com +jlpay.com +jlq.com +jlr360.com +jlsdzgckcy.com +jlsemi.com +jlsjsxxw.com +jlspr.com +jltchina.com +jltyjxzz.com +jlxfw.com +jlzkb.com +jlzsoft.com +jlzyz.com +jm1ds.com +jm1ph.com +jm2046.com +jm3q.com +jm678.com +jmads.net +jmbbs.com +jmd-china.com +jmdedu.com +jmeii.com +jmgle.com +jmgo.com +jmhapp.com +jmhd8.com +jmj1995.com +jmjc.tech +jmjxc.com +jmkjmob2.xyz +jmkjmob5.xyz +jmkx.com +jmlk.co +jmmuseum.com +jmonline.org +jmqy.com +jmrsksj.org +jmsnjh.com +jmsqw.com +jmstatic.com +jmtd0531.com +jmtsg.com +jmxlmc.com +jmxw.net +jmyna.net +jmzcgs.com +jmzns.com +jn-bank.com +jn001.com +jn123456.com +jn1535.com +jn6beq.xyz +jnbbbyy.com +jncarw.com +jncgzl.com +jncqj.com +jncyx.com +jndssd.com +jndwyy.com +jnesc.com +jnexpert.com +jnghm.com +jnhouse.com +jnjj.com +jnkason.com +jnky.com +jnlab.com +jnlc.com +jnlou.net +jnltwy.com +jnmama.com +jnnc.com +jnnews.tv +jnrain.com +jnshijia.com +jnshu.com +jnstdc.com +jntinchina.com +jntyhl.com +jnw.cc +jnwb.net +jnwenlian.com +jnyestar.com +jnzcsyj.com +jnzfwz.com +jnzycw.com +jo43.com +joaquinchou.com +job-cunni.com +job0768.com +job10000.com +job1001.com +job168.com +job256.com +job263.com +job36.com +job4ee.com +job510.com +job5156.com +job5588.com +job592.com +job910.com +job9151.com +job98.com +job9981.com +jobcdp.com +jobcn.com +jobdogame.com +jobeast.com +jobgojob.com +jobhb.com +jobi5.com +jobinhe.net +jobjm.com +jobloser.com +jobosoft.vip +jobpin.com +jobsalon.net +jobsdigg.com +jobsitechina.com +jobsun.com +jobtong.com +jobui.com +jobuy.com +jobvvv.com +jobyp.com +jocat.com +jodeibel.com +joe92.com +johhan.com +johogames.com +joiest.com +joinchitchat.com +joindata.net +joinf.com +joiningss.com +joinkchem.com +joinquant.com +joinsen.com +joint-harvest.com +jointforce.com +joinusad.com +joinwaylawfirm.com +joinwee.com +jojog.com +jojoin.com +jojoreading.com +joker.li +jolimark.com +joloplay.com +jomocdn.net +jomodns.com +jomoxc.com +jonllen.com +jonny.vip +jonsbo.com +joobot.com +joojcc.com +joojtech.com +joojzz.com +joooz.com +joouoo.com +joowhee.com +joox.com +jooyoo.net +jooyuu.com +joozone.com +joqoo.com +josephcz.xyz +joshreso.com +josncdn.com +jotop.net +jouav.com +joudou.com +jourlib.org +journalmc.com +journeyui.com +jourserv.com +jouypub.com +jovcloud.com +jovetech.com +jowto.com +joy5151.com +joyact.com +joyami.com +joyany.com +joyapi.com +joybuy.com +joybuy.es +joydin.com +joyeriapamelamacias.com +joyes.com +joyfire.net +joyglue.com +joying.com +joyj.com +joymeng.com +joynb.net +joyncleon.com +joynext.com +joyohub.com +joyoung.com +joyowo.com +joyshebao.com +joyslink.com +joysung.com +joytest.org +joytrav.com +joytraveller.com +joyu.com +joyuai.com +joyulf.com +joyuyx.com +joywii.net +joywok.com +joyyang.com +jp-moco.com +jp.com +jpanj.com +jpbeta.net +jpchinapress.com +jpeen.com +jperation.com +jpg.cm +jpghd.com +jphot.net +jpivfw.com +jpjc315.com +jpkcnet.com +jpkix.com +jpmorganchina.com +jpmsg.com +jpnettech.com +jpplanking.com +jpsdk.com +jpshuntong.com +jpsmile.com +jpthome.com +jpush.io +jpushoa.com +jpuyy.com +jpwb.cc +jpwb.net +jpwind.com +jpwindow.com +jpwxapp.com +jpxue.com +jpxzm.com +jpyoo.com +jpyssc.com +jq-school.com +jq22.com +jqcool.net +jqdzw.com +jqgc.com +jqgcw.com +jqhtml.com +jqpress.com +jqr.com +jqr5.com +jqrkc.com +jqrzhijia.com +jqsite.com +jqskygame.com +jquee.com +jquery123.com +jqueryfuns.com +jquerywidget.com +jqw.com +jqwater.com +jqzhuangshi.com +jqzjop.com +jqzw.com +jr-soft.com +jr123.com +jr18.com +jravity.com +jrdaimao.com +jrecchina.com +jrexam.com +jrgang.com +jrj.com +jrjhg.com +jrjingshan.com +jrjr.com +jrkantv.com +jrlady.com +jrlxym.com +jrmf360.com +jrnba.cc +jrpxw.com +jrqiwen.com +jrqzw.net +jrszw.com +jrteck.com +jrtj120.com +jrwenku.com +jrxjnet.com +jrxzj.com +jryghq.com +jrysdq.com +jryzt.com +jrzg84.com +jrzj.com +jrzp.com +js-aerfa.com +js-code.com +js-dys.com +js-weilong.com +js.design +js04999.com +js0573.com +js11183.com +js118114.com +js165.com +js3.org +js3n.com +js7xc.com +js8.in +js811.com +js96008.com +jsahj.com +jsballs.com +jsbc.com +jsbexam.com +jsbgj.com +jsceou.com +jsche.net +jschunxing.com +jscj.com +jsclearing.com +jscmjt.com +jscnc.net +jscsfc.com +jscssimg.com +jscts.com +jsd.cc +jsdaima.com +jsdcly.com +jsdesign1.com +jseepub.com +jseoptics.com +jser.io +jsfof.com +jsform.com +jsform3.com +jsfw8.com +jsfycdn3.com +jsgbds.com +jsgc168.com +jsgcbank.com +jsgh.org +jsgho.net +jsgjksl.com +jsgrb.com +jsguolv.com +jsgyrcb.com +jshaman.com +jshanchao.com +jsharer.com +jshbank.com +jshdata.com +jshdwh.com +jshmrcb.com +jshnh.com +jshqjt.com +jshrconsult.com +jshsoft.com +jshuachen.com +jshy.com +jshytec.com +jsinfo.net +jsiteec.org +jsjclykz.com +jsjdrcb.com +jsjdzf.com +0-6.com +jsjjy.com +jsjkx.com +jsjlzxw.com +jsjs.cc +jsjs.org +jsjsj123.com +jsjyhj.com +jsjyrcb.com +jskaiborui.com +jskale.com +hwclouds-dns.net +004218.com +aierfano.com +jslegal.com +jslottery.com +jslwzk.com +jslxs.com +jsly001.com +jsmfk.com +jsmian.com +jsmjys.com +jsmo.xin +jsmsg.com +jsmxw.com +jsningyi.com +jsnx.net +jsnxs.com +jsocr.com +json-json.com +jsonin.com +jsososo.com +jsp158.com +jsp51.com +jspang.com +jspatch.com +jspeople.com +jspp.com +jspxcms.com +jsq886.com +jsqlawer.com +jsqq.net +jsqsjn.com +jsqstg.com +jsqt.com +jsrcu.com +jsrdgg.com +jsrrcb.com +jsrsrc.com +jsruiyin.com +jsrun.net +jsrun.pro +jsrxjt.com +jssalt.com +jssfx.com +jsshow.net +jssnrcb.com +jsswordshop.com +jssytc.com +jstdtncj.com +jstfdz.com +jstore.site +jstour.com +jstoys.net +jstv.com +jstxdm.com +jstxrcb.net +jstycn.com +jstzjy.net +jstzrcb.com +jsw988.com +jswebcall.com +jswfg.com +jswjkj.net +jswku.com +jswmw.com +jswrhjkj.com +jswspocapi.com +jsxat788.com +jsxcra.com +jsxfedu.com +jsxhrcb.com +jsxhw.org +jsxiaoguo.com +jsycsy.com +jsyd10086.net +jsyfkj.com +jsyks.com +jsypj.com +jsyun.cc +jsyunmy.com +jsyxrcb.com +jszbtb.com +jszbw.com +jszg.org +jszhaobiao.com +jszks.com +jszks.net +jszygs.com +jt62.com +jtamc.com +jtbole.com +jtbtech.com +jtfengtou.com +jtggame.com +jtgzfw.com +jthailang.com +jthcsx.com +jthl.net +jtimg.com +jtj-kr.com +jtjr99.com +jtlw.com +jtm.pub +jtnsh.com +jtpipeline.com +jtsp98.com +jttv.net +jtv123.com +jtxys8.com +jtyjy.com +ju33.com +ju51.com +ju81.cc +juandou.com +juangua.com +juanpi.com +juanpimao.com +juanshangwang.com +juanta.com +juanyunkeji.com +juaq.com +jubaopay.com +jubaopeng5555.com +jubaozang.com +juben68.com +juben98.com +juc365.com +jucanw.com +jucelin.com +jucheng01.net +juchuangbio.com +judouapp.com +juduo.cc +juduoping.com +jue.so +juecan.com +juedui100.com +jueduilingyu.com +juefeng.com +juehuo.com +juejin.im +juejinchain.com +juejinqifu.com +juemei.com +juemuren4449.com +juesheng.com +juewei.com +juexiang.com +juexiaotime.com +jufaanli.com +jufengshang.com +jufidc.com +jufoinfo.com +jugezi.com +juhaof.com +juhaokan.org +juhcloud.com +juhe.com +juheweb.com +juhome.net +juhuasuan.com +juhuicloud.com +juhuisuan.com +jui.org +juicefs.com +jujayoupin.com +juji.tv +jujiangkk.com +jujiaobaby.com +jujiaonet.com +jujias.com +jujienet.com +jujin8.com +jujiu8.com +jujoy.com +jujumao.com +jujuwan.com +jukandiannews.com +jukebao.com +jukejia.com +juketai.net +jukuu.com +julaibao.com +julanhp.com +julecn.com +julefun.com +juliang8.com +juliangyinqing.com +julihun.com +julinghu.com +julive.com +julydate.com +julyedu.com +julym.com +julysong.com +jumanhua.com +jumanlou.com +jumei.com +jumeinet.com +jumengco.com +jumengren.com +jumengtbs.net +jumi-cdn.com +jumi.com +jumi18.com +jumin.cc +juming-xz.com +juming.com +jumore.com +jump-game.com +jumpjumpcat.com +jumple.com +jumppo.com +jumpserver.org +jumpstar-tech.com +jumpw.com +jumpwgame.com +jumpwo.com +jun360.com +jun4.com +junankeji.com +jundacheng.com +jundaobaoan.com +jundui.net +jundushan.com +junews.net +juneyao.com +juneyaoair.com +juneyaoairlines.com +junezx.com +junhe.com +juniu.tv +junjiahao.com +junjichu.net +junjing.net +junka.com +junlee.net +junlongtech.com +junmin.org +junmoseo.com +junnanhao.com +junph.com +junpin.com +junpin360.com +junpinhui.com +junpinzhi.com +junqing.ren +junqing360.com +junsangs.com +junsaozg.com +junshanggame.com +junshencm.com +junshi.com +junshi81.com +junshi881.com +junshidao.com +junshifuxin.com +junshijia.com +junshis.com +junshishu.com +junshitt.com +junshizhanlue.com +junsw.com +junsz.com +juntongtian.com +junwu262.com +junxilinux.com +junyao.tech +junying.com +junyudns.com +junyuewl.com +junzhuan.com +junziboxue.com +junzimen.com +junziqian.com +juooo.com +jupup.com +juqi.com +juqingbaowen.com +juqingjuqing.com +juqk.net +juren.com +jurenqi.com +jurongfangchan.com +jurongrencai.com +juseey.com +jusfoun.com +jusha.com +jushewang.com +jushigj.com +jushikk.com +jushiwangedu.com +jushuo.com +jussevent.com +jusssportsvenue.com +jusstickets.com +jussyun.com +just-glendale.com +just4coding.com +just4fun.site +just998.com +justalkcloud.com +justbilt.com +justbon.com +justep.com +justering.com +justgotyounger.com +justjavac.com +justpodmedia.com +justsy.com +justwe.site +justyle.cc +justylepro.com +jutao.com +jutean.com +jutingshop.com +jutoula.com +jutuike.com +jutuilian.com +juturn.com +juubei.com +juvefans.com +juwa.net +juwan.com +juwangmedia.com +juwanshe.com +juweixin.com +juxia.com +juxin.tv +juxinfu.com +juxing-edu.com +juxinhuizhi.com +juyanbao.com +juyingele.com +juyouqu.com +juyouquan.net +juyoutv.cc +juyouxuan.vip +juzhen.com +juzhen.io +juzhentech.com +juzhi720.com +juzhiyuan.com +juzhongjoy.com +juzicy.com +juzifenqi.com +juzilicai.com +juzimi.cc +juzimi.com +juzioo.com +juziseo.com +juzisy.com +juzivr.com +juzix.io +juzizhoutou.net +jvcxp.com +jvmai.com +jvrong.com +jvshi.net +jvyou.net +jw100.net +jwappgc.com +jwbl.com +jwdili.com +jwdns.com +jwetech.com +jwfun.com +jwipc.com +jwl100.com +jwnote.com +jwsaas.com +jwsem.com +jwshy.com +jwview.com +jwwey.com +jwyun.net +jx-bank.com +jx-lhmy.com +jx-nc.com +jx.la +jx09.com +jx139.com +jx188.com +jx3mogu.com +jx3pve.com +jx3tong.com +jxage.com +jxal.net +jxbhwl.com +jxbscbd.com +jxc4.com +jxcb.net +jxccb.com +jxcsedu.com +jxcua.com +jxdcnc.com +jxdiguo.com +jxdkzz.net +jxdown.com +jxdyf.com +jxedt.com +jxedu.net +jxeduyun.com +jxetv.com +jxexpressway.com +jxg1.com +jxgdw.com +jxgxbd.com +jxhyshiye.com +jxiaolan.com +jxicloud.com +jximage.com +jxjdgy.com +jxjee.com +jxjhkq.com +jxjia.net +jxjob.net +jxjyzy.com +jxkjzb.com +jxkp.com +jxksw.net +jxlgjd.com +jxlwgame.com +jxmlkd.com +jxndxuebao.com +jxnxs.com +jxnyc.net +jxold.com +jxorg.com +jxpta.com +jxqcw.com +jxqyfw.com +jxrsrc.com +jxrtv.com +jxrtvu.com +jxscct.com +jxsgfzx.com +jxshangyou.com +jxsjgjt.com +jxslsyy.com +jxsrfdc.com +jxsxdp.com +jxtech.net +jxtvbbs.com +jxtvshop.com +jxtyzx.org +jxtzw.com +jxunicom.com +jxw123.com +jxwmanage.com +jxwmsj.com +jxwz.net +jxxdf.com +jxxfzx.com +jxxhdn.com +jxxhsd.com +jxxyqm.com +jxyrzdh.com +jxysyz.com +jxyworld.com +jxzyx.com +jxzzhqalxy.com +jy0604.com +jy0832.com +jy135.com +jy1991.com +jyacht.com +jyaochi.com +jybase.net +jyblife.com +jyc99.com +jycbank.com +jycinema.com +jycloudgslb.com +jycloudgslb.net +jydc.com +jydoc.com +jyeoo.com +jyeoo.net +jyepc.com +jyfscl.com +jyfund.com +jyg-lighting.com +jygame.net +jyguagua.com +jygz.com +jyh007.com +jyhlo0.com +jyhmz.com +jyhyfintax.com +jyimg.com +jyip.net +jyjjc.com +jyjxlt2009.net +jyl88.com +jyltx.com +jylw.com +jynews.net +jyoptical.com +jypc.org +jypecdn3.com +jyqkx.com +jyqxz2015.com +jyrd.com +jyrlzy.com +jysd.com +jysld.com +jysq.net +jysrx.com +jyss.com +jyss.net +jysyzk.com +jytdlz.com +jytrump.com +jyxdyzx.com +jyxfzd.com +jyyun.com +jyz99.com +jyzysp.com +jyzzx.com +jz-cert.com +jz-job.com +jz0045.com +jz08.com +jz100.com +jz177.com +jz182.com +jz5u.com +jz6.com +jz6868.com +jz68888.com +jzb.com +jzbar.net +jzbdc.com +jzcbank.com +jzchou.com +jzclassroom.com +jzcxptm.com +jzedu24.com +jzerp.com +jzfz.net +jzgcjsysjzz.com +jzgcjszz.com +jzhfz.com +jzic.com +jzita.com +jzke.com +jzkjjt.com +jzkuaiji.com +jzmob.com +jzmsmj.com +jzmt.net +jznqp.net +jznyjt.com +jzongguan.com +jzqlyptall.com +jzrb.com +jzrc.net +jzsadlkfadf.com +jzsc.net +jzsc8.com +jzsec.com +jzsgzmhjyxgs.com +jzshequ.com +jzsjyksy.com +jzsousuo.com +jzsxinyudianqi.com +jzsyishu.com +jztdc.com +jztey.com +jztmgy.com +jztsjx.com +jztsoft.com +jztvxmt.com +jztylxx.com +jztzw.net +jzxs.com +jzyx.com +jzzhw.com +jzzx.com +k-kbox.com +k-res.net +k-xian.com +k0898.com +k0rz3n.com +k12.vip +k125.com +k12zx.com +k165.com +k18.com +k1u.com +k2ma.com +k2os.com +k366.com +k369.com +k518.com +k5n.com +k6271.com +k666.com +k6uk.com +k73.com +k780.com +k8008.com +k8ba.com +k8jdw.com +k8sj.com +k8smeetup.com +k8stech.net +k913.com +ka20.com +ka5188.com +ka8r0a.com +kaadas.com +kaayou.com +kaayun.com +kaba365.com +kabapay.com +kabasiji.com +kabitu.com +kaboy.net +kacheren.com +kada.com +kadang.com +kadingding.com +kafangtech.com +kafka.cc +kagirl.net +kai-asia-hk.com +kai-ying.com +kaiba315.com +kaiboer.com +kaichengschool.com +kaidanbao.com +kaidany.com +kaidianbang.com +kaieconblog.net +kaifabang.com +kaifae.com +kaifage.com +kaifakuai.com +kaifamei.com +kaifangkecheng.com +kaifapiao.com +kaifaxueyuan.com +kaifayun.com +kaifu.com +kaifubiao.com +kaifuzq.com +kaige68.com +kaihei.co +kaihu51.com +kaihuaeva.com +kaihual.com +kaihuia.com +kaijia.com +kaikeba.com +kailing.pub +kaimanhua.com +kaimg.com +kaipan88.com +kaipanla.com +kaiqiancq.com +kaishicha.com +kaishigo.com +kaishikan.com +kaishuhezi.com +kaishustory.com +kaitianad.com +kaivps.com +kaiwenda.com +kaiwind.com +kaixin.com +kaixin00.com +kaixin001.com +kaixinbao.com +kaixindou.net +kaixinguopiao.com +kaixinguopiaowu.net +kaixinhui.com +kaixinhui.net +kaixinit.com +kaixinlu.com +kaixinpaopao.com +kaixintang.com +kaixue.io +kaiyanapp.com +kaiygame.com +kaiyuan.me +kaiyuangroup.cc +kaiyuanhotels.com +kaiyuanweilaikeji.com +kaiyun.com +kajicam.com +kaka.com +kaka3.com +kakadm.com +kakalili.com +kakamobi.com +kakucloud.com +kalading.com +kalazan.com +kalcaddle.com +kalegou.com +kalingling.com +kaluli.com +kameng98.com +kamenwang.com +kamidm.com +kamidox.com +kamokamogo.com +kamopos.com +kamwu.com +kan.cc +kan0512.com +kan300.com +kanbaobei.com +kanbing.net +kanbox.com +kanchao.com +kandaoni.com +kandian.com +kandian.net +kandianshi.com +kandianzixun.com +kandzww.com +kanfangjilu.com +kanfeidie.com +kangaiweishi.com +kangame.tv +kangbaifoundation.com +kangbatv.com +kangbidz.com +kangbixing.com +kangcdn.com +kangchun.com +kangdajiuzhou.com +kangduu.com +kangepian.com +kanggou.com +kanggui.com +kanghao123.com +kanghu.net +kanghuayun.com +kanghui.com +kanghuwang.com +kangjian888.com +kanglaohui.com +kangle.net +kanglu.com +kangpeining.com +kangre.com +kangshuai.biz +kanguo.com +kanguowai.com +kangxi55wlsf.com +kangxidi.com +kangxin.com +kangyueshi.com +kangze.com +kangzhi.com +kanimg.com +kaniuquan.com +kanjia.com +kanjian.com +kanjianlishi.com +kanjianxinli.com +kanjiazhuli.com +kanjuqing.com +kankan365.cc +kankancity.com +kankanews.com +kankanmi.com +kankannews.com +kankanzhijian.com +kanketv.com +kankezw.com +kankun-smartplug.com +kanluzhe.com +kanman.com +kanmeinv.com +kannb.com +kanpula.com +kanqibao.com +kanqiye.com +kanqq.com +kanqu.com +kansdk.com +kansea.com +kanshangji.com +kanshangjie.com +kanshu.com +kanshu5.net +kanshu8.net +kanshuapp.com +kanshuge.com +kanshuhai.com +kanshula.com +kanshuwangzhan.com +kansp.com +kantao.net +kantianqi.net +kantiantang.com +kantsuu.com +kantu.com +kanxue.com +kanzhun.com +kao8.cc +kaobeitu.com +kaochong.com +kaogua.com +kaojionline.com +kaola.com +zyrj.org +kaola100.com +kaolacdn.com +kaolafm.com +kaolafm.net +kaolazhengxin.com +kaopu001.com +kaopubao.com +kaopubao.net +kaopuj.com +kaopuyun.com +kaopuyun.net +kaoqin.com +kaoqintong.net +kaoqinyi.com +kaoruo.com +kaoshenzazhi.com +kaoshi110.net +kaoshi365.com +kaoshibaike.com +kaoshibao.com +kaoshibb.com +kaoshidian.com +kaoshishenqi.net +kaoshizixun.com +kaotipai.com +kaotop.com +kaowana.com +kaowang.com +kaoyan.com +kaoyan.org +kaoyan001.com +kaoyan1v1.com +kaoyanbox.net +kaoyancas.com +kaoyancas.net +kaoyango.com +kaoyanjun.com +kaoyansiji.com +kaoyaya.com +kaozhiye.com +kaquanbao.com +kargocard.com +karlzhou.com +karrytech.com +kartlover.com +karuimall.com +kascend.com +kashen.com +kashen8.com +kashenji.com +kasscloud.com +katongji.com +katvr.com +katyusha.net +kaven.xyz +kawahdinosaur.com +kaytrip.com +kaytune.com +kazakcnr.com +kazhifu.com +kb.cc +kb9.com +kbcdn.com +kbdfans.com +kbengine.org +kbgogo.com +kbgok.com +kbiao.me +kblcdn.com +kbrightlaw.com +kbscloud.com +kbw2018.com +kbwq.com +kbyun.com +kc87.com +kcbebank.com +kccidc.com +kcdn0.com +kcdnvip.com +kchance.com +kchile.com +kchuhai.com +kciptv.com +kcjyyjzzs.com +kcjzsc.com +kcloudidc.com +kcouxp.com +kcrcb.com +kcwiki.org +kcyuri.com +kczhaosheng.com +kd120.com +kd128.com +kd185.com +kd21xs.com +kd9000.com +kdadj.com +kdatacenter.com +kdige.com +kdniao.com +kdpt.net +kdroid.club +kdslife.com +kdt.im +kdued.com +kdun.com +kdweibo.com +kdx.mobi +kdzwy.com +kdzxedu.com +ke.com +ke51.com +ke6.com +ke86.com +ke8u.com +keaiq.com +kean1688.com +kebango.com +kebi.biz +kebingzao.com +keboyunxiao.com +kebvalves.com +kechenggezi.com +kechuang.org +kechuangfu.com +keda-digital.com +keda-u.com +keda.com +kedabai.com +kedang.net +kedaotech.com +keddoo.com +kede.com +kedi.cc +kedou.com +keede.com +keenonrobot.com +keensky.com +keep.com +keepc.com +keepcdn.com +keepmobi.com +keepyoga.com +keerdapower.com +keerworld.com +keewin.com +kefenxi.com +kefusoft.com +kefutoutiao.com +kefuzu.com +kege.com +kegood.com +kehanedu.com +kehou.com +kehu51.com +kehuda.com +keinsci.com +kejet.com +kejet.net +keji100.net +kejian.design +kejianyi.com +kejihai.com +kejihub.com +kejijie.net +kejik.com +kejilie.com +kejimeixue.com +kejimt.com +kejingyuan.com +kejiqi.com +kejitai.com +kejiwang.cc +kejudati.com +kekaku.com +kekaoxing.com +kekaoyun.com +keke289.com +kekebaby.com +kekedj.com +kekejp.com +kekenet.com +kekepx.com +kekeshici.com +kekexueba.com +kekoku.com +kele8.com +kelehuyu.com +kelepi.com +keleqiu.com +keleyi.com +kelibiao.com +kelon.com +kelphome.com +kelu.org +kema66.com +kemaicrm.com +keman.com +kemanyun.com +kemasheying.com +kemavip.com +kemov.com +ken.io +ken74.com +kename.com +kendingde.com +kendryte.com +kenfor.com +kenfor.net +kengatoki.com +kengwan.com +keniu.com +keniub.com +kenkapacking.com +kenshu.cc +kenshuju.com +kentier.com +kenuonet.com +kenweini.com +kepingtong.com +kepusky.com +kepuyanxue.com +kequcps.com +ker58.com +kerlala.com +kernel-sh.com +kernel.cc +kernelnote.com +kerneltravel.net +keruibell.com +keruna.com +kerust.com +keruyun.com +keruyun.net +kesci.com +keshizhongguo.com +kesion.com +kesiyunlai.com +kesucorp.com +kesum.com +ketangpai.com +ketingkeji.com +ketm.vip +ketuimage.com +kevinems.com +kevinjiang.info +kevinlq.com +kewu.cc +kexianggroup.com +kexin001.com +kexing100.com +kexingchem.com +kexinguoji.com +kexinhaoma.org +kexinyun.org +kexu.com +kexue.com +kexue.fm +kexuezixunzzs.com +key-iot.com +keyboardancer.com +keyboardingonline.net +keycom-ip.com +keydatas.com +keyde.com +keydot.net +keygotech.com +keyigroup.com +keyislove.com +keylol.com +keymoe.com +keyoou.com +keyray-hk.com +keyshot.cc +keytoix.vip +keyuhome.com +keyunidc.com +keyunsoft.com +kezhaozhao.com +kezool.com +kf.ai +kf3msfm.com +kf5.com +kf911.com +kfadx.tech +kfang.xin +kfcdn.com +kfcms.com +kfd3sm2c.com +kfdcc.com +kfj.cc +kfjd.com +kfmanager.com +kfqrc.com +kfw001.com +kfyao.com +kfzimg.com +kg-gold.com +kg.com +kg884.com +kgimg.com +kgogame.com +kgula.com +kguowai.com +khdatasolutions.com +khdmw.com +khlysc.com +khotyn.com +khqihuo.com +khs1994.com +khysct.com +ki-pa.com +kiaic.com +kibinggroup.com +kibo.tech +kid17.com +kidscoding8.com +kidsdown.com +kidseq.net +kidsyun.com +kidulte.com +kidulty.com +kiees.com +kihgwe.com +kiiik.com +kiijoy.com +kikitamap.com +kikoplay.fun +kiku.vip +kililife.com +killdb.com +kiloai.com +kimiss.com +kimiss.net +kimiter.com +kimleo.net +kimqi.net +kimsom.com +kina.cc +kindeditor.net +kindlehub.mobi +kindlelib.com +kindlepush.com +kinefinity.com +king-capital.com +kingandwood.com +kingbank.com +kingborn.org +kingbos.com +kingbrother.com +kingcheergame.com +kingclouddns.com +kingdee-soft.com +kingdee.com +zyqjs.com +kingdee.org +kingdeemall.com +kingdeestar.com +kingdeeyun.com +kingdeezx.com +kingdelgc.com +kingdomfishing.com +kingdun.net +kingexplorer.com +kinggoo.com +kinggrid.com +kingidc.net +kingkaid.com +kingland119.com +kinglandtech.net +kingliton.com +kingnare.com +kingnet.com +kingnetdc.com +kingnettech.com +kingoit.com +kingreader.com +kingrein.com +kingroot.net +kings3d.com +kingsemi.com +kingsoft-office-service.com +kingsoft.com +kingsoft.net +kingsoftstore.com +kingst.org +kingstarfintech.com +kingstarmedical.com +kingtysin.com +kingwisoft.com +kingyon.com +kinhom.com +kinlong.com +kinpan.com +kinqee.com +kintiger.com +kinval.com +kinzoncap.com +kirgen.com +kirimasharo.com +kirin-tech.com +kirincloud.net +kirinmach.com +kirinvm.com +kischess.com +kisdee.com +kiss688.com +kisskisso.com +kissyui.com +kiswo.com +kit-lee.me +kitstown.com +kiwa-tech.com +kiwenlau.com +kiwisec.com +kiyuu.club +kj-pcb.com +kj1d.com +kj3.com +kjb2c.com +kjbld.com +kjcad.net +kjcdn.com +kjchina.com +kjcity.com +kjcxpp.com +kjdb.org +kjeport.com +kjiuye.com +kjjl100.com +kjkd.com +kjkp.com +kjks.net +kjkxun.com +kjnkj.club +kjr365.com +kjsng.com +kjson.com +kjsv.com +kjt.com +kjw.cc +kjwjcq.com +kjwlxt.com +kjycx.com +kjyicdn.com +kjzxtk.com +kk169.com +kk1885.com +kk2298.com +kk30.com +kk39w.com +kk3g.net +kk556677kk.com +kk667788kk.com +kkapp.com +kkcache.net +kkcaicai.com +kkcapture.com +kkcdn.net +kkcha.com +kkcodes.com +kkcoo.com +kkdict.com +kkdnsv1.com +kkdownload.com +kkeji.com +kkeye.com +kkfesw.com +kkguan.com +kkh-global.com +kkid.vip +kkidc.com +kkikan.com +kkj2.com +kkjiaofei.com +kkk5.com +kkkd.com +kkkwww.com +kklishi.com +kklxj.com +kkmh.com +kkminer.com +kkmop.com +kknn.com +kknss.com +kkoot.com +kkredian.com +kksmg.com +kksofts.com +kkt.com +kktijian.com +kktv1.com +kktv5.com +kktv8.com +kkuu.com +kkvv77.com +kkx.net +kkyoo.com +kkyp.shop +kkyuedu.com +kkzj.com +kl1l5.com +kl321.com +kl688.com +kl87n.xyz +kl91ccp.com +klandk.com +kldjy.com +klhuyan.com +klianfa.com +klicen.com +klinlee.com +kliwu.com +kljiyou.com +kllife.com +klmh5.com +klmnf.com +klmy118114.com +klmybbs.com +klmyssn.com +klniu.com +klpbbs.com +kltdo.com +kltong.com +klub11.com +klunf.com +klv5qu.com +klvtu.com +klxuexi.com +km.com +km169.net +km18.net +km1818.com +kmail.com +kmapp.net +kmcenter.org +kmcha.com +kmcits.com +kmcxedu.com +kmdn.net +kmdns.net +kmeecc.com +kmeitu.com +kmf.com +kmfangxun.com +kmg-jd.com +kmguolv.com +kmlcl.com +kmlhh.com +kmmama.com +kmplayercn.com +kmqsaq.com +kms.pub +kmw.com +kmway.com +kmxg.net +kmxkh.com +kmxqt.com +kmxyj.com +kmyestar.com +kmyjzb.com +kmzx.org +kn120.com +kneng.net +knewbi.com +knewone.com +knewsmart.com +kninebox.com +knnnd.com +knockdream.com +knotesapp.com +know88.com +knowingclouds.com +knowingcloudvip.com +knowingyun.com +knownpcb.com +knownsec.com +knowsafe.com +knowsurface.com +knowyourself.cc +knoya.com +knsheng.com +knsyxw.com +kntn.tech +knzlcq.com +koal.com +koalacam.net +koalareading.com +kobold1855.com +kobox.tv +kocla.com +kodcloud.com +kodmp.com +koduo.com +koeicn.com +kofficemart.com +kofuf.com +kofunion.net +koiclub.net +koikreative.com +koinocn.com +kokojia.com +kole8.com +kolrank.com +kolstore.com +komect.com +kometo.com +koncoo.com +konekomoe.com +konfan.net +kongao.com +kongapi.com +kongdao.com +kongdi.net +kongduan.com +kongfou.net +kongfz.com +kongge.com +konggu.net +kongjianjia.com +kongjie-zhaopin.com +kongjie.com +kongjitang.com +kongjun.com +konglei.com +kongming-inc.com +kongquecheng.com +kongqueyuzd.cc +kongrong.com +kongsun-hldgs.com +kongtiao365.com +kongyixueyuan.com +kongzhi.net +kongzhiji.com +kongzhong.com +konka.com +konkamobile.com +konkek2.com +konotaku.com +kooaoo.com +koocdn.com +koodudu.com +koofang.com +koofun.com +kookong.com +koolbao.com +koolcenter.com +kooldns.com +koolearn.com +koolproxy.com +koolyun.com +koomao.com +koopass.com +koorun.com +kooshui.com +kooteam.com +koovin.com +koovoo.com +koowo.com +kooxoo.com +koplayer.com +koreabt.com +koreaxing.com +korimscdn.com +korirl.com +korosensei.com +kotei-info.com +kotex-km.com +koto.com +kotoo.com +koubei.com +koubeiblog.com +koubeikc.com +koucai365.com +kouclo.com +koudai.com +koudai8.com +koudaigou.net +koudailc.com +koudaili.com +koudaionline.com +koudaionline.net +koudaipe.com +koudaitiku.com +koudaitong.com +koudashijie.com +kouer.com +kouer.net +kouke5.com +koukousky.com +koukuko.com +koumakan.cc +koushare.com +kouss.com +kouyu100.com +kouzi.com +kowa-dental.com +kowa103.com +kox.moe +koyuki.cc +kp8080.com +kpbgw.com +kpblw.com +kpjushi.com +kpkpw.com +kplanet.vip +kprepublic.com +kpzip.com +kpzip.net +kpzs.com +kq36.com +kq39.com +kq520.net +kq7.com +kq81.com +kq88.com +kqgeo.com +kqidong.com +kqj123.com +kqmmm.com +kqqy.com +kqw.com +kqzlzx.com +kr-cell.com +kr126.com +krahag.com +krbamboo.com +krbattery.com +krdrama.com +kriszhang.com +kriweb.com +krpano.tech +krshadow.com +krszf.com +krwz.com +krzzjn.com +ks-cdn.com +ks-cdn1.com +ks-live.com +ks-lxjy.com +ks-spring.com +ks1688.com +ks321.com +ks365.org +ks51.com +ks5u.com +zyqccs.com +ksapisrv.com +ksbao.cc +ksbao.com +ksc-test.com +kscac.com +kscdns.com +ksco.cc +ksdkcks.com +ksdown.com +ksdq0514.com +ksense.com +ksfang.com +ksgnr.com +kshot.com +ksjgs.com +kskwai.com +ksmobile.com +ksnows.com +ksops.com +ksord.com +ksosoft.com +kspays.com +kspkg.com +ksqdq.com +ksren.com +ksria.com +ksrong.com +kstao.com +kstz1.com +ksudi.com +ksupdate.com +ksy.com +ksydx.com +ksyiqiwan.com +ksyna.com +ksyuki.com +ksyun.com +ksyunad.com +ksyuncdn-k1.com +ksyuncdn.com +ksyuncs.com +ksyungslb.com +ksyunv5.com +ksyunv7.com +ksyunwaf.com +ksyxmc.com +kszhuanjia.com +kszpw.com +kt007.com +kt250.com +kt286.com +kt40.com +kt5u.com +ktang1.com +ktanx.com +ktbiao.com +ktfdsb.com +kting.info +ktkt.com +ktlshu.vip +ktlstbg.com +ktmap.com +ktmv.com +ktplay.com +ktvc8.com +ktvdaren.com +ktvme.com +ktvsky.com +ktvxg.com +ktxtc.net +ktxuexi.com +ku2048.net +ku25.com +ku3c.shop +ku6.com +ku6.net +ku6655.net +ku6cdn.com +ku6img.com +ku82.com +ku86.com +ku8ku8.com +ku90.com +ku9377.com +ku987.com +kuaaa.com +kuabaobao.com +kuacg.com +kuaddkee.cyou +kuafugame.com +kuai-fei.com +kuai-ying.com +kuai.ma +kuai65.com +kuai7.com +kuai8.com +kuaibbs.com +kuaibiancheng.com +kuaibiao2000.com +kuaibowang.net +kuaiboyun.com +kuaibuw.com +kuaicad.com +kuaichale.com +kuaidadi.com +kuaidaili.com +kuaidi.com +kuaidi100.com +kuaidihelp.com +kuaidil.com +kuaidizs.com +kuaiduizuoye.com +kuaiduwen.com +kuaiex.com +kuaifaka.com +kuaifawu.com +kuaifeng.com +kuaifuinfo.com +kuaigames.com +kuaigeng.com +kuaihaodai.com +kuaihou.com +kuaihz.com +kuaiji.com +kuaiji.so +kuaiji66.com +kuaijilunwen.com +kuaijinniu.com +kuaijishizi.com +kuaijisishu.com +kuaijitong.com +kuaijizheng365.com +kuaikanad.com +kuaikanmanhua.com +kuaikuaicloud.com +kuaikuaidai.com +kuaikuaiyu.com +kuaila.com +kuaile-u.com +kuaile800.com +kuailedo.com +kuailelunwen.com +kuailesh.com +kuailetongyao.com +kuailexs.com +kuailezu.com +kuailiyu.com +kuailiyu.net +kuailvzaixian.com +kuaimi.com +kuaimi.net +kuaipandata.com +kuaipao8.com +kuaipeilian.com +kuaipiyun.com +kuaipng.com +kuaiqin.com +kuaishebao.com +kuaishou.com +kuaishouapp.com +kuaishouba.com +kuaishoupay.com +kuaishouzt.com +kuaishuru.net +kuaisujiasu.net +kuaisushu-cnd.com +kuaitijian.com +kuaitu666.com +kuaitui123.com +kuaiwan.com +kuaiwenyun.com +kuaixiazai.com +kuaiyan.com +kuaiyiad.com +kuaiyilicai.com +kuaiyingxiao88.com +kuaiyingyong.vip +kuaiyong.com +kuaiyoujia.com +kuaiyouxi.com +kuaiyu.com +kuaiyugo.com +kuaiyunbd.com +kuaiyunds.com +kuaizhan.com +kuaizhang.com +kuaizhe.com +kuaizhihui.com +kuaizi.cc +kuaizi.co +kuaizip.com +kuaizitech.com +kuaizitech.net +kuaizy.com +kuajing.com +kuajing.hk +kuajingbiji.com +kuajingyan.com +kuakao.com +kuakao.net +kuaming.com +kuanfutong.com +kuang-chi.com +kuang-chi.org +kuangchan.biz +kuangjijia.com +kuangjiwan.com +kuangming.com +kuangren.cc +kuangwan.tv +kuangxiangit.com +kuangyi.com +kuanye.net +kuark.com +kuashou.com +kubey.cc +kubikeji.com +kuboluo.com +kuche.com +kuchuan.com +kucunguanli.online +kudianqi.com +kudianvip.com +kudiaoyu.com +kudingyu.com +kufangwuyou.com +kufaxian.com +kuge.cc +kugou.com +kugou.la +kugou.net +kuguopush.com +kugz.net +kuhii.com +kuicc.com +kuihuakeji.com +kuihuo.com +kuiniuca.com +kuishiba.com +kuishuling.com +kujiale.com +kujiang.com +kuk8.com +kukahome.com +kukasofa.com +kuke.com +kuke99.com +kukecloud.com +kukseo.com +kukulv.com +kukumai.com +kukupig.com +kukushow.com +kukuspeak.com +kukuw.com +kukuxiu.com +kuleiman.com +kulemi.com +kulengvps.com +kuletco.com +kuli.ren +kuliwang.net +kuman.com +kuman56.com +kumankeji.net +kumaoyun.com +kumiao.com +kumifeng.com +kumimall.com +kunduo.com +kungfucloud.com +kungfuenglish.com +kunguankeji.com +kunkkawu.com +kunlun-cdn.com +kunlunaq.com +kunlunar.com +kunlunca.com +kunluncan.com +kunlunce.com +kunlunea.com +kunlungem.com +kunlungr.com +kunlunhuf.com +kunlunjue.com +kunlunle.com +kunlunli.com +kunlunno.com +kunlunpi.com +kunlunra.com +kunlunsa.com +kunlunsc.com +kunlunsl.com +kunlunso.com +kunlunta.com +kunlunvi.com +kunlunwe.com +kunmingbc.com +kunmingkanghui.com +kunpo.cc +kunruiglwb.com +kuntaihotel.com +kunyueyun.com +kunyun8.com +kuo-yi.com +kuoo8.com +kuosanyun.com +kuosheng.net +kuotu.com +kuozhan.net +kupao.com +kuparts.com +kupoo.com +kuqin.com +kureader.com +kurogame.com +kurokingdom.com +kurukurumi.com +kusdk.com +kushanfudaojixie.com +kushou.com +kushuzw.com +kuso.xyz +kusouji.com +kutianxia.com +kutj.com +kutongji.com +kutuan.com +kuuke.com +kuwan8.com +kuwanapp.com +kuwanbang.com +kuwen.net +kuwew.com +kuwuu.com +kuxiaoji.com +kuxiaozhu.com +kuxiuktv.com +kuxuexi.com +kuy8.com +kuyh.com +kuyibu.com +kuyin123.com +kuyinyun.com +kuyiso.com +kuyumall.com +kuyun.com +kuzhazha.com +kuzhengame.com +kvegg.com +kvenjoy.com +kvevv.com +kviso.com +kvkaa.com +kvogues.com +kvov.com +kvps85.com +kwaicdn.com +kwaigobuy.com +kwaishop.com +kwaishouapp.com +kwaixiaodian.com +kwaiying.com +kwaizt.com +kweaake.cyou +kwenku.com +kwfser.com +kwimgs.com +kwkf.com +kwtzn.com +kwudor.com +kwx.gd +kwxjh.net +kx001.com +kx1158.com +kx1d.com +kx516.com +kx7p.com +kxapp.com +kxapps.com +kxbox.com +kxceping.com +kxdaili.com +kxdao.com +kxdpm.com +kxdw.com +kxfsw.com +kxgcw.com +kxiaoshuo77.com +kxinyk.com +kxji.com +kxll.com +kxp7.xyz +kxqo2ev.com +kxscience.com +kxt.com +kxting.com +kxtoo.com +kxtry.com +kxtseal.net +kxtui.com +kxtwz.com +kxx2.com +kxxsc.com +kxxxl.com +kxzmw.com +ky-express.com +ky.live +ky0001.vip +ky0048.cc +ky01002.com +ky01005.com +ky01010.com +ky01013.com +ky01020.com +ky107.co +ky151.co +ky55005.com +ky5yx.com +ky7yx.com +ky958.com +kybapp.com +kybapp.net +kybimg.com +kyboye.com +kydev.net +kye-erp.com +kyemall.com +kyhs.me +kyhtech.com +kyjxy.com +kylc.com +kyleduo.com +kyligence.io +kylin-os.com +kylinlot.com +kylinmobi.com +kylinos.com +kylinpet.com +kymjs.com +kyoceraconnect.com +kyppt.com +kytijian.com +kyw4y0s.com +kyxdloan.com +kyy6.com +kyyj.net +kyzf.net +kyzx.xyz +kyzyj.com +kz8yx.com +kza.cc +kzeaa.com +kzecc.com +kzehh.com +kzeoo.com +kzepp.com +kzerr.com +kzqs.com +kzread.com +kzt.cc +kztpms.com +kzwr.com +kzynews.com +kzyzz.com +l-zb.com +l069.com +l2h.site +l2t7.cc +l360qwfgg.com +l68.net +l7audiolab.com +l99.com +l9p9b.xyz +la-mo.com +laakan.com +lab-z.com +labagd.com +labbang.com +labbase.net +labfan.com +labgogo.com +labiciprimaditutto.com +labno3.com +laborlawtime.com +labview.help +labxing.com +lacesar.com +lache.me +lactec.net +ladiyoga.com +ladjzs.com +lady177.com +lady361.com +lady8844.com +lady98.com +ladybirdedu.com +ladydaily.com +ladymetro.com +ladystr.com +lafaso.com +lafy.org +lagou.com +lagouevents.com +lagoujobs.com +lagowang.com +lahm2018.com +lahuashanbx.com +lahuobao56.com +lai-ai.com +laiba.shop +laibeiparking.com +laibokeji.com +laichou.com +laichuanfeng.com +laidacai.com +laidingba.com +laidudu.com +laifeng.com +laifu.net +laigame7.net +laihema.com +laihua.com +laijiawen.com +laijiuye.com +laikan.com +laikanxing.com +laikanxs.com +laikeerp.com +laiketui.com +lailaihui.com +lailook.net +laima-tech.com +laimaidi.com +laiqi.net +laiqukankan.com +laird-tek.com +laishui.info +laisizuji.com +laisj.com +laituia.com +laituijian.net +laiwang.com +laiweishang.com +laiwo.com +laiwu.net +laiwumedia.com +laixiangzuji.com +laixiu.cc +laixiukeji.com +laixueedu.com +laixuexi.cc +laiyagushi.com +laiyetxt.com +laiyifen.com +laiyouxi.com +laiyunad.com +laizee.com +laizhouba.net +laizi.net +lajixs.com +lakala.com +lakecn.com +lakwdian.com +lalawaimai.com +lalkk.com +lamabang.com +lamahui.com +lamaison-arting.com +lamajie.com +lamall.com +lamaqun.com +lambda.hk +lamiu.com +lamost.org +lamoton.com +lampchina.net +lampouomo.com +lamyu.com +lan-bridge.com +lan-lin.com +lan1001.com +lanbts.com +lancdn.com +lancern.xyz +lanchenglv.com +lancn.net +lancome-beauty.com +lancong.net +lanconvey.com +landa-solenoid.com +landai.com +landchina.com +landed.cc +landi.com +landian.vip +landiannews.com +landing-med.com +landingbj.com +landintheair.com +landizs.com +landjs.com +landraco.com +landray.com +landroads.com +landscapecn.com +landtu.com +landui.com +landunxiaofang.com +landzestate.com +lanecn.com +lanfanapp.com +lanfeicastle.com +lanfeitech.com +lanfeiwine.com +lanfeng.net +lanfw.com +lang8.net +langao.com +langchao.com +langchengzhixin.com +langfang.com +langfangfc.com +langke.com +langke.tv +langlang.cc +langlangjiajiao.com +langlib.com +langlive.com +langmanzg.com +langnisen.com +langren001.com +langren8.com +langrencard.com +langrenclub.com +langrensha.net +langtao.cc +langtaojin.com +langtze.com +languangdy.com +langya.org +langyabang.com +langyuseo.com +langzi.fun +lanh.love +lanhaicaijing.com +lanhaiweb.net +lanhaizhi.com +lanhu.com +lanhuapp.com +lanhuhu.com +lanhusoft.com +lanindex.com +lanjie100.com +lanjie520.com +lanjing5.com +lanjinger.com +lanjingfm.com +lanjingtmt.com +lankecloud.com +lanlanlife.com +lanlv.com +lanmao.com +lanmaokeji.com +lanmaos.com +lanmit.com +lanmon.net +lanou3g.com +lanpanpan.com +lanqb.com +lanqi.com +lanqibing.com +lanqiudi.com +lanqiuzu.com +lanreelh.com +lanrenbijia.com +lanrenclub.com +lanrenexcel.com +lanrenmb.com +lanrentuku.com +lanrenzhaofang.com +lanrenzhijia.com +lanrenzhoumo.com +lansancn.com +lansedongli.com +lansha.tv +lanshanweb.com +lanshenniao.com +lanshizi.com +lantian-hotel.com +lantian.tv +lanting123.com +lantinglou.com +lanuss.com +lanvige.com +lanwoncloudfilm.com +lanwuzhe.com +lanxinbase.com +lanxiniu.com +lanxiongsports.com +lanxum.com +lanyingwang.com +lanyuanxiaoyao.com +lanyunbrand.com +lanyunone.com +lanyus.com +lanyusf.com +lanzhisky.com +lanzhuwh.com +lanzou.com +lanzoub.com +lanzouc.com +lanzoue.com +lanzouf.com +lanzoug.com +lanzouh.com +lanzoui.com +lanzouj.com +lanzouk.com +lanzoul.com +lanzoum.com +lanzouo.com +lanzoup.com +lanzouq.com +lanzous.com +lanzout.com +lanzouu.com +lanzouv.com +lanzouw.com +lanzoux.com +lanzouy.com +lanzouz.com +lanzun.net +laobaigan-hs.com +laobandq.com +laobanfa.com +laobangban.com +laobanmail.com +laobingmi.com +laobuluo.com +laobuxie.com +laocen.com +laodaoyun.com +laodong.me +laodong66.com +laodongfa.com +laoduo.net +laofu.online +laofuxi.com +laoge.xyz +laogongshuo.com +laogu.cc +laogu.com +laohu.com +laohu8.com +laohuabao.com +laohucaijing.com +laohutao.com +laohuyun.com +laojilu.com +laojiuxitong.com +laojuhui.com +laoke.com +laolai.com +laoliang.net +laoliboke.com +laolieren.shop +laolinow.com +laoluoshouji.net +laomaotao.com +laomaotao.net +laomaotao.org +laomaotaopan.com +laomoe.com +laonanren.cc +laoniushuju.com +laoqiange.club +laoqianzhuang.com +laoren.com +laosiji.com +laosunit.com +laotiaomao.com +laowalens.com +laowangappxy.xyz +laowangshengge.com +laowuxx.com +laoxiezi.com +laoxuehost.com +laoxuehost.net +laoxuezhuji.com +laoy.net +laoyaoba.com +laoyoujiaju.com +laoyouzhibo.com +laoyuanji.com +laoyuegou.com +laoyuge.com +laozhaopianxiufu.com +laozicloud.com +laozongyi.com +laozu.com +laozuo.org +lapin365.com +laravel-admin.org +laravel-china.org +laravelacademy.org +larenla.com +large.net +larkapp.com +larkroad.com +larksuite.com +larksuitecdn.com +larsonlimited.com +laruence.com +las88889999.com +lascn.net +laserfair.com +lashou.com +lastdream.net +lasy.site +lategege.com +latepost.com +latexstudio.net +latin100.com +lativ.com +latoooo.com +lattebank.com +lattecake.com +lattefinance.com +lavago.com +lavandehotels.com +lavapm.com +lavaradio.com +law-lib.com +law-star.com +law01.net +lawbang.com +lawbridge.org +lawbus.net +lawinfochina.com +lawlingyun.com +lawnewscn.com +lawtimeimg.com +lawxin.com +lawxp.com +lawyee.com +lawyee.net +lawyee.org +lawyer-wangjiawei.com +lawyerbridge.com +lawyermr.com +lawyerpass.com +lawyershanghai.net +laxiao.com +layabox.com +layoutad.com +laysky.com +layui.com +layuicdn.com +zyqc.cc +zyq366.com +lazada.com +zyplayer.com +zyoung.me +lazada.sg +lazada.vn +lazybios.com +lazydim.com +lbagan.com +lbbniu.com +lbd99.com +lbddd.com +lbdj.com +lbesec.com +lbgoo.com +lbinin.com +lbjljc.com +lbjn.cc +lbkrs.com +lbsmshop.com +lbsrmyy.com +lbwbw.com +lbx777.com +lbxcn.com +lbxdrugs.com +lbxueyuan.com +lbzuo.com +lbzx.xyz +lc-cn-e1-shared.com +lc-cn-n1-npxfk.com +lc-cn-n1-shared.com +lc-cn-n1-thovg.com +lc-news.com +lc1001.com +lc123.net +lc77.com +lc787.com +lcatgame.com +lcbdf.net +lcbtv.com +lccareer.com +lccdn.net +lccmw.com +lccz.com +lcddjm.com +lcdhome.net +lcdushi.com +lcdwiki.com +lcfby.com +lcfile.com +lcfw.co +lcgod.com +lchot.com +lcjh.com +lckeshun.com +lckiss.com +lcloc.com +lcofjp.com +lcouncil.com +lcrcbank.com +lcread.com +lcsrmyy.com +lcsrw.com +lcux.net +lcxwfc.com +lcyff.com +lcyp.net +lczm.com +lczq.com +lczyy.com +ld0766.com +ld12366.com +ld246.com +ldbc.net +ldcang.com +ldd.me +lddengine.com +lddgo.net +ldgslb.com +ldkj-zs.com +ldmap.net +ldmnq.com +ldqxn.com +ldshj.com +ldsink.com +ldszpx.net +ldtui.com +ldwxiao.com +ldycdn.com +ldygo.com +ldyh666.com +le-feng.com +le.com +le5le.com +le890.com +leachchen.com +leacol.com +lead-expo.com +leadal.com +leadal.net +leadbbs.com +leadcoretech.com +leaderhero.com +leadge.com +leadong.com +leadstong.com +leaferjs.com +leaforbook.com +leafword.com +leagcard.com +leagsoft.com +leangoo.com +leankun.com +leanote.com +leansoftx.com +leanwind.com +leap-pc.com +leapahead.vip +leapfive.com +leapmie.com +leapmotor.com +learn-quantum.com +learndiary.com +learnfans.com +learnfk.com +learnfuture.com +learning-archive.org +learnku.com +learsun.com +leb-china.com +lebang.com +lebang.net +lebocode.com +lebogame.net +leboweb.com +lecai.com +lecai08.com +lecake.com +lechain.com +lechange.com +leche.com +lechebang.com +lechinepay.com +lecloud.com +lecloudapis.com +lecoinfrancais.org +leconginfo.com +lecoo.com +lecoo8.com +lecuntao.com +ledanji.com +ledcax.com +ledchina-sh.com +ledctl.com +lede.com +ledhxgc.com +ledhyzm.com +ledianduo.com +ledianyun.com +lediaocha.com +ledo.com +ledouwan.com +ledouya.com +ledsdk.com +ledth.com +ledu.com +ledu365.com +leduimg.com +leduotv.com +leeco.com +leefanmr.com +leehon.com +leeiio.me +leenzhu.com +leeon.me +leepoint.net +leeqing.com +leesou.com +leetcode-cn.com +leetcodechina.com +leevy.net +leewiart.com +leeyegy.com +leeyuoxs.com +lefeng.com +leftfm.com +leftlady.com +leftso.com +lefuzuwu.com +legend-go.com +legendsec.com +legendtkl.com +legou456.com +legowechat.com +legu.cc +legu168.com +leguyu.com +leha.com +lehaitv.com +lehe.com +lehecai.com +lehejituan.com +lehihi.com +leho.com +lehu.host +lehuadisplay.com +lehuipay.com +lehuiso.com +lei001.com +leibei.cc +leibeiyipei.xyz +leida310.com +leidianip.com +leiduhuaya.com +leifengshi120.com +leigod.com +leihuo.net +leikeji.com +leikw.com +leileiluoluo.com +leilong158.com +leimi.com +leimingtech.com +leimingtelab.com +leimudata.com +leiniao.com +leiniao365.com +leining-shield.com +leiouxiong.com +leiphone.com +leirsw.com +leishen-lidar.com +leishouwin.cc +leisoon.com +leisu.com +leisu123.com +leisurelypanda.com +leiting.com +leitingcn.com +leitingjunshi.com +leitool.com +leiue.com +leixue.com +leiyunge.com +leiyunge.net +lejiachao.com +lejian.com +lejianweike.com +lejiaolexue.com +lejingxuan.com +lejj.com +leju.com +lejuliang.com +lejunwl.com +lekannews.com +lekarlwig.com +lekevr.com +lekkrrlel.com +lekoukou.com +lekpass.com +lelai.com +lele-lezhong.com +leleda.com +leledp.com +leleketang.com +lelelala.net +lelepyq.com +leletv.com +leletv.net +lelewl.com +lemai.com +lemaker.com +lemall.com +lemedu.com +lemeitu.com +lemeng.center +lemfix.com +lemiwan.com +lemo360.com +lemobar.com +lemonban.com +lemonpiggy.com +lemonyd.com +lemote.com +lempstack.com +lengcat.com +lenget.com +lengxiaohua.com +lengziyuan.com +lengzzz.com +lening100.com +leniugame.com +leniy.org +lenosoft.net +lenovator.com +lenovogame.com +lenovohci.com +lenovohuishang.com +lenovoimage.com +lenovomm.com +lenovomobile.com +lenovonetapp.com +lenovonowgo.com +lenovosj.com +lenovots.com +lenovouat.com +lenovowap.com +lenovows.com +lensuo.com +lenwoo.com +lenzhao.com +leo.moe +leoao-inc.com +leoao.com +leoboard.com +leocode.net +leohoo.xyz +leonblog.net +leopump.com +leozwang.com +lepaiok.com +lepaowang.com +lepiaoyun.com +leptv.com +leqian.com +lequ.com +lequ7.com +lequgo.com +lequyuanyi.com +lequz.com +lerengu.com +lergao.com +lerist.dev +lers123.com +lers168.com +lers168.net +lersang.com +lerye.com +leshanvc.com +leshiguang.com +leshow.com +leshu.com +leshuazf.com +leshuwu.com +leslie-cheung.com +lesports.com +less-bug.com +lesscss.net +lessisbetter.site +letabc.com +letaikeji.com +letao.com +letfind.com +letinet.com +leting.io +letongjiaxiao.com +letoom.com +letou8.com +lets-study.com +letsebuy.com +letsfilm.org +letsgaga.com +lettercloud.net +letuinet.com +letuknowit.com +leturich.org +letushu.com +letv.com +letv8.com +letv8.net +letvapp.net +letvcdn.com +letvcloud.com +letvimg.com +letvlb.com +letvps.com +letwind.com +letwx.com +letyo.com +leuok.com +levect.com +levelinfinite.com +leviding.com +lewaimai.com +lewang.ltd +leweicn.com +lewen.la +lewen567.com +lewen88.com +lewenba.cc +lewenn.com +lewenxsw.com +lewifi.com +lexar.com +lexiang-asset.com +lexiangjian.com +lexiangla.com +lexiangzuji.com +lexin.com +lexinchina.com +lexpq.com +lexs9.com +lexue.com +lexue8.com +lexueying.com +lexun.com +leyantech.com +leyaoyao.com +leyaoyao.org +leyard.com +leybc.com +leyifan.com +leying.com +leying365.com +leyingtt.com +leyishandong.com +leyixue.com +leyonb.com +leyoucp.com +leyoujia.com +leyouquan.com +leyue100.com +leyun001.com +leyungame.com +leyunge.com +leyuxyz.com +leyuz.com +lezai.com +lezhi.com +lezhi99.com +lezhibo.com +lezhiot.com +lezhiyun.com +lezhuan.com +lezhuan168.com +lezhuan365.com +lezhun.com +lezi.com +lezuan.net +lezuan9.com +lf127.net +lfan.net +lfang.com +lfbxw.com +lfcmw.com +lfdjex.com +lfex.com +lfhacks.com +lfhospital.net +lfhygl.com +lfkjgh.com +lfksqzj.com +lflucky.com +lfppt.com +lftdzd.com +lfungame.com +lfwin.com +lfwtc.com +lfwx1.com +lfx20.com +lfyzjck.com +lg1024.com +lg198.com +lg199.com +lg5.co +lg5.com +lgctshanghai.com +lgdisplayproduct.com +lgexam.com +lghsrh.com +lgimg.com +lgmi.com +lgo100.com +lgpic.com +lgstatic.com +lguohe.com +lgzzu.com +lh-lx.com +lh.link +lh168.net +lh310.com +lh75.com +lhao88.com +lhave.com +lhdxz.com +lhggjd.org +lhh.la +lhl7.com +lhrbszb.com +lhs-arts.org +lhs11.com +lhs99.com +lhsdad.com +lhsoso.com +lhwill.com +lhwytj.com +lhy1.xyz +lhy2.xyz +lhy3.xyz +lhygcn.com +lhyiliao.com +lhzq.com +li-ca.com +li-ning.com +li63.com +li91.com +liageren.com +lialiu.com +lian-ou.com +lianaibashi.com +lianaibiji.com +lianaiwz.com +lianchuang.com +liancsoft.com +liandaomobi.com +liandaquan.com +lianezs.com +lianfawy.com +liang.com +liangchan.net +liangchanba.com +liangduiban.com +liangjan.com +liangjianghu.com +liangjihui.com +liangjiu.shop +liangka.vip +liangkun.net +liangle.com +lianglong.org +liangpinriyu.com +liangqikeji.com +liangshunet.com +liangwei.cc +liangxinyao.com +liangxiongdi.com +liangyadong.com +liangyi.com +liangzhishu.com +liangzuji.com +lianhaikeji.com +lianhanghao.com +lianhecang.com +lianjia.com +lianjixia.com +liankaa.com +liankebio.com +lianle.com +lianlianlvyou.com +lianlianpay.com +lianliantaoshop.com +lianlife.com +lianmeng.la +lianmeng.link +lianmenhu.com +lianmishu.com +lianouyiyuan.com +lianpingd.com +lianpuie.com +lianqi.net +lianshijie.com +liansuo.com +liantai.cc +liantianhong.com +liantu.com +liantuobank.com +liantuofu.com +lianty.com +lianwangtech.com +lianwen.com +lianwifi.com +lianwo8.com +lianxiangcloud.com +lianxianjia.com +lianxinapp.com +lianxueqiu.com +lianyezy.com +lianyi.com +lianyu.com +lianzhong.com +lianzhongmingyuan.com +lianzhongyun.com +lianzhuli.com +liao1.com +liao98.com +liaocheng.cc +liaochuo.com +liaogu.com +liaogx.com +liaojieju.com +liaojiu.net +liaokeyu.com +liaokong.com +liaoliao.com +liaosam.com +liaoshenrc.com +liaotuo.org +liaowei.info +liaoxuefeng.com +liaozhai.tv +lib4d.com +lib520.com +liba.com +libaclub.com +libai.com +libaidns.com +libaopay.com +libinx.com +libisky.com +libomarathon.com +libreofficechina.org +libsou.com +libtop.com +libvideo.com +lic-bcbc.com +licai.com +licai18.com +licaie.com +licaifan.com +licaigc.com +licaike.com +licaiker.com +licaimofang.com +licat.com +lichangtai.com +lichangtao.com +lichee.pro +lichenglove.com +lichengwu.net +lichenjy.com +lichensafe.com +lickeji.com +licomsh.com +licqi.com +licstar.net +lidakang.com +lidazhuang.com +lidecloud.com +lidepower.com +lidewen.com +liding.me +lidodo.com +lidoooo.com +liebao.live +liebaoidc.com +liebiao.com +liebrother.com +liechan.com +liefangzhe.com +liegou.org +lieguo.com +lieguozhi.com +liehunwang.com +liehuo.net +liejin99.com +lieju.com +lielb.com +lielema.com +liemingwang.com +lienew.com +liepin.com +liepincc.com +liepinoverseas.com +lieqi.com +lieqibar.com +liesauer.net +lietou-edm.com +lietou-static.com +lietou.com +lietou007.com +lietuwang.com +liewen.cc +liewen.la +liexing-ai.com +liexing.com +lieyou.com +lieyou888.com +lieyuncapital.com +lieyunwang.com +lif8.com +lifan.com +life365.com +lifeeu.com +lifegatemedicine.com +lifeibo.com +lifeng.in +lifeng.net +lifenghang.com +lifeofguangzhou.com +lifesense.com +lifetm.com +lifetmt.com +lifevc.com +lifevccdn.com +lifeweeker.com +lifeyk.com +lifox.net +lifushop.com +lifves.com +ligerui.com +lighos.com +light3moon.com +lightalk.com +lightcss.com +lightgx.com +lighthillsolutions.com +lightingchina.com +lightinit.com +lightky.com +lightlygame.com +lightonus.com +lightpassport.com +lighttp.com +lightyy.com +liguda.com +liguhd.com +liguosong.com +lihaihong.com +lihaoquan.me +lihaoshuyuan.com +lihetong.com +lihtao.com +lihua.com +lihuia.com +lihun66.com +liigou.com +lijigang.com +lijingquan.net +lijishi.com +lijizhong.com +likamao.com +likangwei.com +like-ukraine.com +likeacg.com +likecha.com +likechuxing.com +likecs.com +likeface.com +likefar.com +likefont.com +likeji.net +likejianzhan.com +likeshare-tech.com +likeshuo.com +liketm.com +liketry.com +likewed.com +liking.site +likingfit.com +likuli.com +likuso.com +lilinwei.com +lilishare.com +lilisi.com +lilithgame.com +lilithgames.com +liliyago.com +lilosrv.com +lilvb.com +lily-collection.com +lilysamericandiner.com +lilysgame.com +limaoqiu.com +limax.com +limboy.com +limei.com +limian.com +limikeji.com +liminglight.com +liminjie714.com +liminwang.com +limkokwingchina.com +limless.com +linakesi.com +linban.com +lincoc.com +lindapatent.com +lindiankanshu.com +line0.com +lineartracklight.com +linecg.com +linecg.net +linekong.com +linelayout.com +linemore.com +linewell.com +linewow.com +linezing.com +linfan.com +linfeicloud.com +ling-shi.com +lingaoren.com +lingb.net +lingbao-e.com +lingchusw.xyz +lingd.cc +lingd.com +lingdai.name +lingdi.net +lingdiankanshu.co +lingdianksw.com +lingdonghuyu.com +lingdunwang.com +lingduohome.com +lingduzuji.com +lingdz.com +lingfengyun.com +lingganchengniu.com +lingganjia.com +linghit.com +lingji666.com +lingjiaocheng.com +lingjing.com +lingjiptai.com +lingjoin.com +lingkaba.com +lingki.net +lingkou.com +lingla.com +linglingkaimen.com +linglong.dev +linglongart.com +linglonglife.com +linglongtech.com +lingmo.org +lingmovie.com +lingnanpass.com +lingocn.com +lingosail.com +lingphone.net +lingquanb.com +lingrengame.com +lingrn.com +lingshangkaihua.com +lingshi.com +lingshoujia.com +lingsoul.com +lingtaoke.com +lingtiao.com +lingtool.com +lingtu.com +lingtuan.com +lingumob.com +lingw.net +lingwh.com +lingwu66.com +lingxi360.com +lingxicloud.com +lingxigames.com +lingxmall.com +lingxunyun.com +lingyi.org +lingyiliebian.com +lingyinsi.com +lingyue-digital.com +lingyuecloud.com +lingyun.net +lingyun5.com +lingyunip.com +lingyutxt.com +lingzhanwenhua.com +lingzhilab.com +lingzhitech.com +lingzhtech.com +linhuiba.com +lining.com +lining0806.com +linjia.me +linjie.org +linjin.net +linjunet.com +linjunlong.com +link27.com +link2lib.com +link2shops.com +linkadsapi.com +linkbroad.com +linkbux.com +linkchant.com +linkchic.com +linkease.com +linked-f.com +linkedbyx.com +linkedhope.com +linkedin-event.com +linkedkeeper.com +linkedme.cc +linkedsee.com +linker.cc +linkernetworks.com +linkfinancier.com +linkflowtech.com +linkh5.com +linkh5.xyz +linkhaitao.com +linkheer.com +linkiebuy.com +linkingme.com +linkist.net +linknewideas.com +linkpai.com +linkpro.tech +linkrall-trk.com +linkresearcher.com +linkscue.com +linksgood.com +linkshop.com +linksoon.net +linkstars.com +linktech.hk +linktom.net +linktt.com +linkunbin.com +linkvans.com +linkwebll.com +linkweway.com +linlongyun.com +linlongyx.com +linmi.cc +linni.com +linnsea.com +linnyou.com +linovel.co +linovel.net +linovelib.com +linpx.com +linquan.info +linqujob.com +linroid.com +linruanwangluo.com +linshang.com +linshigong.com +linshuwang.com +linsn.com +linstitute.net +lintai.tech +lintcode.com +lintey.com +lintongrc.com +linuo-paradigma.com +linuser.com +linux-code.com +linux-ren.org +linux.zone +linux178.com +linux265.com +linux5.net +linux6.com +linux78.com +linuxba.com +linuxbaike.com +linuxbaodian.com +linuxboy.net +linuxcool.com +linuxde.net +linuxdiyf.com +linuxdot.net +linuxdown.com +linuxea.com +linuxeden.com +linuxeye.com +linuxfly.org +linuxgogo.com +linuxidc.com +linuxidc.net +linuxkiss.com +linuxmi.com +linuxmingling.com +linuxpanda.tech +linuxpk.com +linuxprobe.com +linuxrumen.com +linuxsight.com +linuxsir.com +linuxso.com +linuxtone.org +linuxyan.com +linuxyunwei.com +linuxyw.com +linwenfa.com +linx-info.com +linxingyang.net +linyi.com +linyi.net +linyilongyuan.com +linyiren.com +linyizhizhiyuan.com +linzhuotech.com +linzhuxin.com +lion1ou.tech +lionaka.com +lionelliu.com +lionmobo.com +lionmobo.net +lipian.com +lipiji.com +lipilianghang.com +lipin.com +lipin010.com +lipinduihuan.com +lippt.com +liqinyi.com +liqucn.com +liquidnetwork.com +liqunshop.com +liqwei.com +liriansu.com +lirui.name +lis99.com +lisa33xiaoq.net +lisdn.com +lishi.com +lishi6.com +lishibu.com +lishichunqiu.com +lishiip.com +lishiming.net +lishiren.com +lishixinzhi.com +lishizhishi.com +lishouhong.com +lishuhang.me +lishuhao.ltd +lishui.com +lisinit.com +lisizhang.com +lisp123.com +listarypro.com +listeneer.com +listentide.com +listentoworld.com +listenvod.com +listtax.com +litaine.com +litaow.com +litchon.com +litecoin.ink +litecoin.ren +litefeel.com +liteng-industry.com +liticool.club +litilala.site +litilala.xyz +litipumps.com +lititop.group +litpo.com +litten.me +little-sun.com +littleboy.net +littleee.com +littlefoxgroup.com +littlehero.xyz +littleroost.net +littlesheep.com +littleswan.com +liu-kevin.com +liubaiapp.com +liubiji.com +liubo.live +liucaijiu.com +liuchengtu.com +liuchengtu.net +liuchuo.net +liudanking.com +liudatxt.com +liudon.org +liudu.com +liugejava.com +liugezhou.online +liugj.com +liugm.com +liugong.com +liuguofeng.com +liuhaolin.com +liujiajia.me +liujiangblog.com +liujiaoyidai.com +liujijun.com +liujto.com +liujunworld.com +liujy.com +liukebao.com +liulan.net +liulan7.net +liulanmi.com +liulanqi.com +liulanqi.net +liulantao.com +liulian.com +liuliangcanmou.com +liuliangdada.com +liulianggo.com +liuliangjie.com +liulianglf.com +liuliangzu.com +liulianqi123.com +liuliguo.com +liulin.cc +liulishuo.com +liulishuo.work +liulv.net +liumapp.com +liumeinet.com +liumh.com +liumuzulin.com +liumwei.org +liumx.com +liunian.info +liunianbanxia.com +liushidong.com +liusuping.com +liut.xyz +liuts.com +liuvv.com +liuwo.com +liuxianan.com +liuxiaoer.com +liuxiaofan.com +liuxing.com +liuxiting.com +liuxuchao.com +liuxue.com +liuxue114.com +liuxue360.com +liuxue51.net +liuxuegang.site +liuxuehksg.com +liuxuehr.com +liuxuekw.com +liuxuesmd.com +liuxuetown.com +liuxueyun.com +liuxx.com +liuyang.com +liuyangfcw.com +liuyanzhao.com +liuyifei.cc +liuzaoqi.com +liuzhixiang.com +liuzongyang.com +liuzuo.com +liuzy88.com +live-era.com +live-voip.com +live800.com +liveapp.ink +livechina.com +livecourse.com +liveinau.com +liveincy.com +liveme.com +livemediav.com +livemook.com +lives.one +livesone.net +livesupport24x7.com +liveuc.net +livevideostack.com +livotre.com +liwai.com +liweijia.com +liweiliang.com +liwenzhou.com +liwinon.com +liwuhy.com +liwumaoapp.com +liwushuo.com +lixcx.com +lixiang.com +lixiangshu.net +lixianhezi.com +lixianhua.com +lixiaocrm.com +lixiaolai.com +lixiaoskb.com +lixiaoyun.com +lixiaozhe.com +lixin.ee +lixinapp.com +lixinger.com +lixingguang.com +lixiphp.com +lixuan360.com +liyan365.com +liyangbit.com +liyanggroup.com +liyangliang.me +liyangtuopan.com +liyangweb.com +liyanmobi.com +liyaochao.com +liyingfei.com +liyp.cc +liyu8.com +liyuanheng.com +liyuanhospital.com +liyujn.com +lizaike.com +lizhaoblog.com +lizhaoxiang.com +lizhehaozhongyi.com +lizhenwang.com +lizhi.com +lizhi.fm +lizhi.io +lizhi110.com +lizhidaren.com +lizhifilm.com +lizhifm.com +lizhijitang.com +lizhilive.com +lizhiqiang.name +lizhiweike.com +lizhongyi.com +lizi.com +lizi.tw +lizilaw.com +liziqiche.com +lj-bank.com +lj-lighting.com +lj168.com +ljbao.net +ljcdn.com +ljia.com +ljia.net +ljimg.com +ljjgdj.org +ljlcd.com +ljmeng.site +ljsdk.com +ljt365.com +ljtx.com +ljwit.com +ljxww.com +ljyhtg.com +ljzfin.com +lk361.com +lkcash.com +lkcgyl.com +lkcoffee.com +lkcsgo.com +lkgame.com +lkgshq.com +lkgx.com +lkjujm.com +lkkbrand.com +lkkcdn.com +lkker.com +lkkued.com +lkmcdk.com +lkme.cc +lkong.com +lkong.net +lkssite.vip +lkszj.info +lkyou.com +ll-hao123.com +ll11.com +llbetter.com +llcat.tech +llever.com +llewan.com +llgjx.com +llgkm.com +llidc.com +lljgame.com +lljgxx.com +lljsq.net +llku.com +llqsq.com +lls.moe +llsapp.com +llscdn.com +llsops.com +llsserver.com +llssite.com +lltaohuaxiang.com +lltllt.com +lltoken.com +llttc.com +llxzu.com +llycloud.com +llzg.com +llzw888.com +lm284.com +lm335.com +lm685.com +lm7979.com +lm9999.com +lmacc.com +lmanmo.com +lmbang.com +lmbct.com +lmbest.com +lmbus.com +lmdk01.com +lmdouble.com +lmeee.com +lmf9.com +lmgouwu.com +lmjtgs.com +lmjx.net +lmlc.com +lmlym.com +lmm8.com +lmnsaas.com +lmsail.com +lmth2013.com +lmtw.com +lmubbs.com +lmwgame.com +lmwlhh.com +lmwljz.com +lmx7.com +lmxxxz.com +ln76yf.cfd +lnamphp.com +lncldapi.com +lncnw.com +lndao.com +lndhdx.com +lndwkj.com +lnemci.com +lnest.com +lnfw.net +lnfzb.com +lngche.com +lngqt.com +lngwyw.com +lngxdz.com +lnicc-dl.com +lnicp.com +lninfo.com +lnitec.com +lnjzxy.com +lnk0.com +lnkdata.com +lnlib.net +lnlotto.com +lnok.net +lnpjw.com +lnqwe.com +lnrcu.com +lnrsks.com +lnsent.com +lnsgczb.com +lnsyrjwz.com +lntenghui.com +lntvu.com +lntycp.com +lnyyzyxy.com +lnzikao.com +lnzsks.com +lnzy-edu.com +lo97.com +locatran.com +locez.com +lockfans.com +locklauncher.com +lockscreenimg.com +lockty.com +locnavi.com +locojoy.com +locoso.com +locoy.com +locoyposter.com +locren.com +loctek.com +locvps.com +locvps.net +lodashjs.com +loexu.com +loftcn.com +lofter.com +loftshine.com +logacg.com +logclub.com +loghao.com +logi-inno.com +logi.im +logicdsp.com +logiseasy.com +logo-emblem.com +logo123.net +logo33.com +logo520.com +logo888.com +logo9.net +logoaa.com +logobiaozhi.com +logodao.com +logodashi.com +logohhh.com +logoly.pro +logopay.com +logoquan.com +logoshe.com +logosheji.com +logosj.com +logowu.com +logozhan.com +logozhizuowang.com +logphp.com +logwing.com +logxu.com +lohaa.com +lohalink.com +lohaslady.com +lohasor.com +loho88.com +loj.ac +loji.com +loke123.com +lokyi.name +lol99.com +loldan.com +loldk.com +loldytt.org +loldytt.tv +lolgo.net +loli.cloud +loli.ee +loli.my +loli.wiki +loliloli.moe +loliloli.net +lolitawardrobe.com +loljy.com +lolkeng.com +lollipopo.com +lolmax.com +lolmf.com +lolmz.com +loltmall.com +lolyculture.net +lomoment.com +lomosky.com +lomu.me +loncent.com +loncin.com +loncinindustries.com +london9999.com +lonelystar.org +lonery.com +lonfu.org +long5.com +long7.com +longaa.com +longanlaw.com +longau.com +longbridgeapp.com +longcai.com +longcheer.com +longchen80.com +longcity.net +longclouds.com +longcore.com +longdear.com +longdezhu.com +longdian.com +longfajr.com +longfor.com +longfu360.com +longger.net +longguanjia.so +longhoo.net +longhu.net +longhua.net +longhuiren.com +longhuvip.com +longigroup.com +longjcun.com +longjiazuo.com +longjisz.com +longjunjiayuan.com +longk.com +longkui.site +longlinjiaoyu.com +longmaosoft.com +longmaoyouxifuwu.com +longmarchspace.com +longmeng.com +longmenhongfu.com +longnanke.com +longquan-baojian.com +longquecdn.com +longre.com +longruo.com +longsan.com +longshangrc.com +longsheng.com +longsheng988.com +longshine.com +longsok.com +longsto.com +longsys.com +longtaifoods.com +longtaiwj.com +longtanshuw.net +longtask.com +longtian.info +longtugame.com +longtuohy.com +longu.com +longwenedu.com +longwiki.org +longwin.org +longwisepr.com +longxi-tech.net +longxialjkashdiuhozhjksadlkfj.com +longxianwen.net +longxuan.ren +longygo.com +longyin.net +longyu.cc +longyucq.com +longyuedu.com +longyusheng.org +longzhu.com +longzhulive.com +longzu.com +lonlife.org +lontengsteel.com +lontiumsemi.com +lonway.net +loocall.com +loodd.com +looeen.com +looeo.com +looeoo.com +loohuo.com +look8.com +lookao.com +lookbaby.com +lookbravo.com +lookchem.com +lookcss.com +lookgame.com +looking-car.com +lookr.cc +looktm.com +looktmt.com +lookvin.com +loome.net +loonapp.com +loongnix.com +loongnix.org +loongshine.com +loongsin.com +loongson.org +loongsonclub.com +loongxy.com +looooker.com +loopjump.com +looquan.com +loorain.com +loovee.com +looyu.com +looyuoms.com +looyush.com +lopetech.net +lopkino.com +lopss.com +lorefree.com +loring.xyz +losking.com +lossyou.com +lostali.com +lostphp.com +lostsakura.com +lotevision.com +lotlab.org +lotour.com +lotour.net +lotpc.com +lotpen.com +lotsmv.com +lottery-sports.com +lotusair.net +lotusdata.com +lotuseed.com +lotut.com +loubobooo.com +louding.com +louge.ltd +louislivi.com +loukee.com +loukky.com +loulansheji.com +loulanwang.com +loupan.com +louruo.com +loushao.net +loushi12.com +lousj.com +lousw.com +louyue.com +lovcuty.com +love.tv +love21cn.com +love3721.com +love778.com +love85g.com +loveapp.com +lovebizhi.com +loveforvenus.com +lovehaimi.com +lovehhy.net +lovehifi.com +loveinhere.com +lovejavascript.com +lovejia.win +lovelacelee.com +loveliao.com +lovelive.tools +lovelixiang.com +lovemojito.com +lovengame.com +loveniwed.com +loveota.com +lovepd.com +loverili.com +lovesec.com +lovesoo.org +lovestu.com +loveteemo.com +loveuav.com +lovev.com +lovewith.me +lovewj.info +lovezhuoyou.com +lovfp.com +lovgiin.com +lovology.com +loxpo.com +loxue.com +loyalvalleycapital.com +loyar.com +loying.cc +loyo.cc +lpcheng.com +lpetl.com +lpllol.com +lppoll.com +lppz.com +lppzimg.com +lpq1688.com +lprcx.com +lprogram.site +lpswz.com +lpszl.com +lptiyu.com +lpxinjuhui.com +lpxt.com +lq-bm.com +lq328.com +lq5u.com +lqabr.com +lqbj.com +lqbj66.com +lqbyj.com +lqgrdj.com +lqhualang.com +lqjob88.com +lqpsj.com +lqqm.com +lqrcb.com +lqsdcc.com +lqxshop.com +lqyaopin.com +lqzh.me +lqzwdj.com +lr-amm.com +lr-link.com +lrc99.com +lrcb.net +lrcku.com +lrhold.net +lrist.com +lrkdzx.com +lrs001.com +lrscloud2.com +lrscloud3.com +lrswl.com +lrts.me +ls-gb.com +ls.link +ls0513.com +ls1018.com +ls666.com +lsbankchina.com +lsbchina.com +lsbin.com +lsbtly.com +lsccb.com +lsfyw.net +lsg3.com +lsgrandtheatre.com +lsgsgs.com +lsgw.com +lsgzn.com +lsh-cat.com +lshou.com +lsij3km.com +lsj.ac +lsjacg.com +lsjgcx.com +lsjkj.com +lsjlp8.com +lsjrcdn.com +lsjsm.com +lsjvps.com +lsjxck.com +lsjxww.com +lskejisoft.com +lskyf.com +lslkkyj.com +lsoos.com +lsplayer.com +lsqpay.com +lsrbs.net +lssggzy.com +lstazl.com +lstest.com +lsttapp.com +lsttnews.com +lsun.net +lsuoled.com +lsup.net +lsw315.com +lswld.com +lswlsw.com +lswqw.com +lsxz.org +lsywtc.com +lszj.com +lszjyj.com +lsznkyy.com +lszp.cc +lt-tree.com +lt-uv.com +lt3c.com +ltaaa.com +ltaaa.net +ltao.com +ltd.com +ltesting.net +ltfwzs.com +ltimg.net +ltnic.com +ltp-cloud.com +ltp.ai +ltplayer.com +ltsf.com +ltswxy.com +lttconn.com +lttvip.com +ltwkw.com +ltxjob.com +lty.fun +ltyears.com +ltzsjt.com +lu.com +lu35.com +lu4n.com +lua.ren +luaninfo.com +luanren.com +luastudio.net +luatos.com +lubandata.com +lubangd.com +lubanjianye.com +lubanlebiao.com +lubanpm.com +lubanshop.com +lubanso.com +lubansoft.com +lubanu.com +lubanway.com +lubiao.com +lubotv.com +luchinfo2.com +lucian.run +luciaz.me +luckeeinc.com +luckincoffee.co +luckincoffee.com +luckincoffeecdn.com +lucklnk.com +lucky286.com +lucky8k.com +luckyair.net +luckycoffee.com +luckyxp.net +lucode.net +lucoder.com +lucy365.com +lucydraw.com +ludashi.com +ludeqi.com +ludiban.com +ludou.org +ludoworld.net +ludu319.com +luedian.com +luexiao.com +luexpo.com +luezhi.com +lufangjia.com +lufax.com +lufaxcdn.com +luffycity.com +lufunds.com +lugangsoft.com +lugick.com +lugir.com +luhao198.com +luhehospital.com +lujiang56.com +lujianxin.com +lujingtao.com +lujun9972.win +lukachen.com +lukaplayer.com +lukiya.com +lukou.com +lukuanart.com +lul8.com +lulala.com +lulinux.com +lulu77.com +lulufind.com +lum114.com +lumai.net +lumajia.com +lumanman1688.com +lumiai.com +lumin.tech +lumingtec.com +lumiunited.com +lumyhouse.com +lunar2013.com +lunchong.com +lundao.pub +lunkuokeji.com +lunwendj.com +lunwengo.net +lunwenschool.com +lunwenstudy.com +lunwentianxia.com +lunwentong.com +lunwenxiazai.com +lunxia.com +lunzima.net +luobo020.com +luobo360.com +luobotou.org +luobowin8.com +luoboxia.com +luochen.com +luochenyl.com +luocs.cc +luodian.com +luodw.cc +luofan.net +luogu.org +luohanyu.cc +luohuedu.net +luointo.com +luojiji.com +luojilab.com +luokuang.com +luolai.com +luolai.tech +luomapan.com +luomi.com +luoohu.com +luooqi.com +luoqiu.com +luoqiuzw.com +luoqiuzww.com +luosi.com +luosimao.com +luotiannews.com +luotianyi.org +luotianyi.vc +luowave.com +luoxiang.com +luoxudong.com +luoxue.com +luoyechenfei.com +luoying66.com +luoyuanhang.com +luozhongxu.com +luozongle.com +lup2p.com +lupaworld.com +luqidong.com +lure123.com +lurefans.com +lurelogs.com +lurenshuwx.com +lusen.com +lushaojun.com +lushu.com +lusongsong.com +lussac.net +luster3ds.com +lustervision.com +lutao.com +luv66.com +luways.com +luwei.me +luweitech.com +luxe.co +luxee.com +luxemon.com +luxiangdong.com +luxianpo.com +luxiao.com +luxiwang.com +luxiyun.com +luxshare-ict.com +luxst.com +luxtarget.com +luxuqing.com +luxury-theme.com +luyanghui.com +luyinla.com +luyouqi.com +luyouwang.com +luyouwang.net +luyouxia.com +luyuanqj.com +luzexi.com +lv74.com +lv96.com +lvanol.com +lvbad.com +lvban365.com +lvbeijingtour.com +lvbenma.com +lvchanghuanbao.com +lvchayun.com +lvchehui.com +lvcheng.com +lvchicar.com +lvdao.fun +lvdhb.com +lvdoutang.com +lvfang.cc +lvfl.net +lvgou.com +lvguang.net +lvhuadai.com +lvjinsuo.com +lvkun.site +lvlian5.com +lvluowang.com +lvlvlvyou.com +lvmae.com +lvmama.com +lvmifo.com +lvnengliang.com +lvpai114.com +lvpin100.com +lvping.com +lvren.com +lvruan.com +lvrui.io +lvsanxia.com +lvse.com +lvsexitong.com +lvseyouxue.com +lvshedesign.com +lvshi567.com +lvshidaxia.com +lvshiguan.com +lvshiminglu.com +lvshou.com +lvshunfang.com +lvshunmuseum.org +lvsongguo.com +lvtds.com +lvtu.com +lvtu8.com +lvtudiandian.com +lvwan365.com +lvwang.com +lvwenhan.com +lvwmb.com +lvxing.net +lvye.com +lvye.org +lvyestudy.com +lvyetong.com +lvyidoor.com +lvyou521.com +lvyoubei.com +lvyougl.com +lvyouw.net +lvyuanpam.com +lvyuetravel.com +lvzheng.com +lw025.com +lw0591.com +lw0634.net +lw208.com +lw54.com +lwcj.com +lwd3699.com +lwdjc.com +lweasy.com +lwebapp.com +lwfengji.net +lwfjmj.com +lwgsw.com +lwguitar.com +lwgzc.com +lwhouse.com +lwinl.com +lwinst.com +lwksxs.com +lwkz.cc +lwlm.com +lwons.com +lwork.com +lwrcb.com +lwsay.com +lwurl.to +lwxgds.com +lwxs9.com +lwxstxt.com +zyou100.com +lx.pub +lx138.com +lx167.com +zyops.com +lx598.com +lxbbt.com +lxc1.com +lxcvc.com +lxdms.com +lxdns.com +lxdns.info +lxdns.net +lxdns.org +lxf.me +lxi.me +lxin007.com +lxjep.com +lxkj.site +lxlggo.com +lxlinux.net +lxs123.com +lxsales.com +lxsjm.com +lxtchina.com +lxw1234.com +lxway.com +lxway.net +lxws.net +lxx-inc.com +lxxm.com +lxybaike.com +lxyedu.com +lxyes.com +lxyl539.com +lxyllawfirm.com +ly-sky.com +ly.com +ly200-cdn.com +ly200.com +ly39zx.com +ly522.com +lyancafe.com +lyancoffee.com +lyangchuanbo.com +lyblog.net +lybol.com +lybtmy.com +lybus.com +lycheer.net +lycndq.com +lyd6688.com +lydct.com +lydezx.net +lydhb888.com +lydsy.com +lyecs.com +lyfeyaj.com +lyfff.com +lyfz.net +lyg.live +lyg001.com +lyg01.net +lyg321.com +lyg800.com +lygdfrcb.com +lygfdc.com +lyghi.com +lygmedia.com +lygnews.com +lygou.cc +lygrffw.com +lyhendry.com +lyhero.com +lyhomestayinn.com +lyhuadu.com +lyjiayi.com +lyjunshi.com +lyjxwl.com +lykxm.com +lylhkq.com +lymil.com +lynkco.com +lynlzqy.com +lynr.com +lyobs.com +lyou123.com +lypd.com +lypdl.com +lyps.net +lypyxx.com +lyrc.cc +lyric-robot.com +lysk.net +lysqzs.com +lysteel.com +lysy360.com +lythw.com +lytning.xyz +lytoufang.com +lytpw.com +lytq.com +lytuchuang10.com +lytuchuang12.com +lytuchuang13.com +lytuchuang17.com +lytuchuang18.com +lytuchuang2.com +lytuchuang3.com +lytuchuang4.com +lytuchuang7.com +lyunweb.com +lyvnee.com +lywenlv.com +lywf.me +lywww.com +lywxww.com +lyxyxx.com +lyy99.com +lyyapp.com +lyz810.com +lyzfgjj.com +lyzhujia.com +lyzp100.com +lz310.com +lz520.net +lzabcd.com +lzane.com +lzaru.com +lzbank.com +lzc369.com +lzcbnews.com +lzccb.com +lzeweb.com +lzfcjys.com +lzfjq.com +lzflqc.com +lzhongdian.com +lzhpo.com +lzhs.com +lzhygame.com +lzjdbjc.com +lzjoy.com +lzlj.com +lzmoyin.com +lzmy123.com +lzsgmf.com +lzsmedia.com +lzsq.net +lztv.tv +lztvnet.com +lztx123.com +lzvw.com +lzw.me +lzyun.vip +lzzg365.com +lzzyad.com +lzzzf.com +m-finder.com +m-rainbow.com +m.biz +zyoogame.com +zyoffice.com +m0.hk +m096.com +m1.run +m1315.com +m176.net +m18.com +m1905.com +m1910.com +m1938.com +m1book.com +m1ok.com +m1page.com +m1world.com +m1xia.com +m2ez.com +m2mzy.com +m3guo.com +m448.com +m5bn.com +m5stack.com +m6.run +m6go.com +m78.co +m8.com +m818.com +m8cool.com +m9.run +m90cc.com +m937.com +ma-china.com +ma.run +ma3office.com +ma3you.com +maa.plus +mabangerp.com +mabibook.com +mabiji.com +mabotech.com +mac189.com +mac69.com +mac89.com +macabc.com +macaihong.net +macapp.so +macapp8.com +macappbox.com +macappx.com +macat.vip +macauinternationalclubbingshow.com +macaumonthly.net +macbang.net +macchiato.xyz +maccura.com +macdaxue.com +machaojin.com +machenike.com +machine-information.com +machine-visions.com +machine35.com +machine365.com +machunjie.com +macjb.com +mackentan.com +mackext.com +macno1.com +macocn.com +macoshome.com +macpeers.com +macrosan.com +macrosilicon.com +macrounion.com +macrowing.com +macrr.com +macsc.com +macshuo.com +macsky.net +macv.com +macw.com +macxf.com +macxin.com +macxz.com +macz.com +maczd.com +maczhi.com +maczj.com +mad-infeed.jp +madaicaifu.com +madailicai.com +made-in-china.com +madefuns.com +madeqr.com +madio.net +madisonboom.com +madmalls.com +madouka.com +madouvip.com +madserving.com +maemo.cc +mafengs.com +mafengvwo.com +mafengwo.com +mafengwo.net +maff.com +mag10000.com +mag998.com +magcloud.net +magedu.com +magentochina.org +magewell.com +magi.com +magicax.com +magicdata.io +magicleaders.com +magicnetmall.com +magicwatchface.com +magicwinmail.com +magook.com +magtechjournal.com +maguang.net +magvision.com +mahjongai.net +mahjongcup.com +mahjongcup.net +mahoupao.com +mahoupao.net +mahua.com +mahuarili.com +mahuatalk.com +mai.com +maianhao.com +maibaokeji.com +maibuymai.com +maibw.net +maichawang.com +maiche.com +maiche168.com +maichuang.net +maicuole.com +maidangao.com +maidelong.com +maidengju.net +maidi.me +maidige.com +maidixun.com +maidoc.com +maidou.com +maidrom.net +maiduo.com +maifjb.com +maigoo.com +maihaoche.com +maijia.com +maijiaba.com +maijiakan.com +maijichuang.net +mail-qq.com +mail163.com +mail4399.com +maila88.com +mailbusinfo.com +mailehudong.com +mailejifen.com +mailpanda.com +mailshanguo.com +maimaimaiw.com +maimemo.com +maimemostatus.com +maimiaotech.com +maimn.com +mainaer.com +maine1688.com +mainlandip.com +mainone.com +maintao.com +mainwww.com +maipu.com +mairoot.com +mairuan.com +maisanqi.com +maiscrm.com +maishebei.com +maishitv.com +maishou88.com +maishoudang.com +maishoumm.com +maisorn.com +maisry.net +maisu.vip +maisucai.com +maitao.com +maitaowang.com +maitianquan.com +maitix.com +maitix.net +maitu.cc +maituan.com +maitube.com +maiwe.com +maiweikj.com +maixhub.com +maixiaba.com +maixuewen.com +maiya91.com +maiyanju.com +maiyaole.com +maizhi.com +maiziedu.com +maizipo.com +maizuo.com +majia99.com +majiamen.com +majianwei.com +major-epoch.com +majorsec.com +majsoul.com +maka.im +maka.mobi +makaevent.com +makaidong.com +makaiqian.com +makeapp.co +makecn.net +makedie.me +makeding.com +makefang.com +makefont.com +makelie.com +makelove.la +makepic.net +makepolo.com +makepolo.net +maker8.com +makerbio.com +makerfun.org +maketion.com +makeweiyuan.com +makuwang.com +malabeibei.com +malagis.com +malait.com +maldiveszh.com +maldun.com +males120.com +maliquankai.com +mall-builder.com +mall.com +mallchina.net +mallcoo.net +mallhaha.com +mallocfree.com +mallshow.net +mallstaroa.com +mallzhe.com +mallzto.com +malmam.com +malong.com +maltm.com +malu.me +mama100.com +mamacn.com +mamahao.com +mamahuo.com +mamcharge.com +mamecn.com +mamicode.com +mamilist.com +mamioo.com +mamoe.net +mamsh.org +man6.org +managershare.com +manben.com +manboker.com +mandao-tech.com +mandarinedu.org +mandarinhouse.com +mandian.com +mandiankan.com +mandudu.com +manduhu.com +manduwu.com +manew.com +manewvr.com +manfen.net +mangafuna.xyz +mangafunc.fun +mangg.com +mangg.net +mangguo.com +mangguo.org +mangguo168.com +mangguonews.com +mangocity.com +mangoebike.com +mangogame.com +mangomob.net +mangren.com +mangrovetreesanya.com +mangtuhuyu.com +manguo42.com +mangxia.com +mangxuewang.com +mangzitian.com +manhua1.com +manhua101.com +manhua166.com +manhua188.com +manhua365.com +manhua456.com +manhuacheng.com +manhuadaohang.com +manhualang.com +manhuama.net +manhuang.org +manhuapi.com +manhuaren.com +manhuatai.com +manhuayang.com +manibnb.com +maninmusic.com +manjiwang.com +manlinggame.com +manlongye.com +manluoni.com +manluotuo.com +manmanapp.com +manmanbuy.com +manmango.com +manmankan.com +manmu.net +mannkit.com +manogk.com +manongdao.com +manonggu.com +manongjc.com +manongzj.com +manosp.com +manpianyi.com +manrong.win +manshitea.com +mantianfei.net +mantusy.com +manulife-sinochem.com +manwuxian123.com +manxiu-law.com +manyibaojie.vip +manylaw.com +manyoo.net +manyou.com +manyoujing.net +manyupay.com +manzhan.com +manzj.net +manzuo.com +mao-shen.com +mao.bz +mao.li +maobotv.com +maobugames.com +maodou.com +maodouapp.com +maoercdn.com +maoflag.net +maogepingbeauty.com +maogp.com +maogumaogu.com +maogx.win +maoha.com +maohaha.com +maohetao.com +maoken.com +maoln.com +maomaoche.com +maomaojie.com +maomaoxue.com +maopuyouxi.com +maoqitian.com +maoqiumail.com +maoshimei.com +maoshu520.com +maotaizuichen.com +maotuying.com +maoxinhang.com +maoyachen.com +maoyan.com +maoyi.biz +maoyia.com +maoyidi.com +maoyigu.com +maoyingaipu.com +maoyiwang.com +maoyun.com +maoyuncloud.com +maoyundns.com +maozhuar.com +maozhuashow.com +map456.net +mapabc.com +mapbar.com +mapeng.net +mapgis.com +mapks.com +maple-game.com +maplef.net +mapmapping.com +mappn.com +maqingbo.com +maqingxi.com +maqinnews.com +mararun.com +marioall.com +marioin.com +markdown.xyz +markdream.com +marketingconv.com +marketreportchina.com +markhoo.com +markiapp.com +markjour.com +markmall.com +markmiao.com +marknum.com +markorchem.com +marksmile.com +marmot-cloud.com +maro6.com +marry5.com +marstor.com +marstv.com +martech365.com +martincl2.me +maryek.net +mas-omkj.com +mas10010.com +mas300275.com +masadora.jp +masadora.net +mascaw.com +masdjy.com +masej.com +mashang98.com +mashangmai.com +mashangshijie.com +mashiro.me +masjinquan.com +maspiece.com +mass-evo.com +massclouds.com +masscrunch.com +massygxx.net +mastergo.com +masterlab.vip +mastersay.com +mastersim123.com +mastertimes.net +mastodonhub.com +mastudio.org +masyi.com +mat-rev.com +mat-test.com +matao.com +matchupexpo.com +matchvs.com +mateair.com +mater-rep.com +math168.com +mathequality.com +mathfan.com +mathoe.com +mathpretty.com +mati.hk +maticsoft.com +matlabsky.com +matocloud.com +matongxue.com +matools.com +matpool.com +matpool.net +matrixerse.com +matt33.com +mattge.com +mattressmachinery.net +mauu.me +mawei.live +mawentao.com +max-c.com +max232.net +maxfor-tool.com +maxgj.net +maxhub.com +maxhub.vip +maxiang.info +maxiang.io +maxiaobang.com +maxitas.com +maxjia.com +maxket.com +maxlu.net +maxok.com +maxpda.com +maxreader.la +maxreader.net +maxscend.com +maxthon.com +maxthonimg.com +maxuscloud.com +maxwealthfund.com +maxwi.com +maxws.com +maxxipoint.com +may.ltd +maya09.com +mayahuashi.com +mayatu.com +maybe2016.com +maybeiwill.me +maycur.com +maydeal.com +mayi.com +mayiangel.com +mayicms.com +mayihr.com +mayima.net +mayishebao.com +mayishoubei.com +mayitek.com +mayitxt.com +mayiui.com +mayiw.com +mayiwenku.com +mayiyx.com +mayizhuanlan.com +mayou18.com +mayshijia.com +mayswind.net +maywant.com +maywonenergy.com +mazakii.com +mazc.org +mazey.net +mazhan.com +mazida.com +mb-go.com +mb5u.com +mbabao.com +mbabycare.com +mbachina.com +mbadashi.com +mbajyz.com +mbalib.com +mbalunwen.net +mbanggo.com +mbaobao.com +mbaoxian.net +mbazl.com +mbb0760.com +mbcloud.com +mbgo.com +mbian.com +mbinary.xyz +mbldbb.com +mbokee.com +mbsifu.com +mbsky.com +mbxt.net +mc-ccpit.com +mc-dj.com +mc-test.com +mc-xborder.com +mc26.com +mc361.com +mc91.com +mcake.com +mcarding.com +mcbang.com +mcbbs.net +mcbeam.pro +mccbim.com +mcchcdn.com +mcchina.com +mcchou.com +mcd.cc +mcdchina.net +mcdsusan.com +mcdusiv.com +mcdvisa.com +mcearnmore.com +mcfsji.com +mcfun.tv +mchat.com +mchifi.com +mcidc.net +mcjd.net +mckuai.com +mcmssc.com +mcooks.com +mcool.com +mcpemaster.com +mcpmaid.com +mcqyy.com +mcsafebox.com +mcu-home.com +mcufan.com +mcuisp.com +mcusky.com +mcuzone.com +mcuzx.net +mcwshop.com +mcx666.com +mcyhfl.com +mczyz.com +mdaxue.com +mdbimg.com +mdckj.com +mdeasydiagnosis.com +mdeditor.com +mdeer.com +mdfull.com +mdhjs.com +mditie.com +mdj2y.com +mdjyadi.com +mdl.ink +mdmmm.com +mdnice.com +mdpda.com +mdsmos.com +mdsyzx.com +mdtu.com +mdvdns.com +mdvoo.com +mdy-edu.com +mdybk.com +mdydt.net +mdyseducation.org +mdzgjx.com +me-city.com +me1.ltd +me361.com +me4399.com +me8gs.app +meadin.com +meaninggame.com +meazhi.com +meb.com +meban.cc +mebtf.com +mec027.com +mechatim.com +mechina.org +mechr.com +mechrevo.com +mecoxlane.com +med-water.com +med126.com +med66.com +meda.cc +medeming.com +mediatek.com +mediav.com +mediaxinan.com +medicexam.net +mediecogroup.com +medimg.org +meditrusthealth.com +mediumin.net +medlinker.com +medlinker.net +medme.net +medmeeting.org +medproad.com +medstarcorp.com +medtion.com +meechao.com +meegoe.com +meeket.com +meet99.com +meetfave.com +meethall.com +meeting666.com +meetingmeet.com +meetlawyer.com +meetsite.com +meetuvip.com +meetwhale.com +meetyoumuseum.com +meetzoom.net +meeuapp.net +megaemoji.com +megajoy.com +megobike.com +megomap.com +megou8.com +meguo.com +megvii.com +mei-shu.com +mei.com +mei1.com +mei1.info +meia.me +meianjuwang.com +meiaoju.com +meibai14.com +meibg.com +meican.com +meicanstatic.com +meichibao.com +meichuanmei.com +meidaojia.com +meidebi.com +meideng.net +meidunyipin.com +meidusacloud.com +meierbei.com +meifang.com +meifang8.com +meigeinc.com +meigongla.com +meigongyun.com +meiguanjia.net +meiguiwxw.com +meiguo-qianzheng.com +meiguoxiaoxue.com +meiguoxq.com +meiguozhuji.com +meigushe.com +meih5.com +meih5.net +meihaotoutiao.com +meihaoxueyuan.com +meiheups.com +meihouyun.com +meihu99.com +meihua.info +meihuainfo.com +meihuboyue.com +meihudong.com +meihutong.com +meijia66.com +meijiacun.com +meijiaedu.com +meijialove.com +meijiedaka.com +meijiehang.com +meijiehezi.com +meijieu.com +meijiexia.com +meijiezaixian.com +meijiezaixian.net +meijingjie.com +meijiu.com +meijufans.com +meijukan.com +meijuniao.net +meijuq.com +meijust.com +meijutt.com +meijutt.tv +meijuxia.com +meijuzj.com +meika360.com +meikankeji.com +meike-shoes.com +meikeda.net +meikr.com +meiktv.com +meiku123.com +meilecui.com +meili-inc.com +meilibaobao.com +meilidongnanya.com +meilijia.com +meiling.com +meilishuo.com +meilishuo.net +meilisite.com +meiliwan.com +meiliworks.com +meiliwu.com +meilunmeijia.com +meilvtong.com +meimeidu.com +meimeifa.com +meimeio.com +meimingteng.com +meingrace.com +meiniang3.lol +meiniang323.mom +meiniang349.mom +meinuo123.com +meinv.com +meionetech.com +meip0.me +meip4.me +meipai.com +meipian.me +meipian2.com +meipuapp.com +meiqia.com +meiqiausercontent.com +meiqinedu.com +meiqiu.me +meirenchong.com +meiritv.net +meiriyiwen.com +meirong.net +meirongshanghai.com +meisaitu.com +meishai.com +meishe-app.com +meisheapp.com +meishesdk.com +meishi.cc +meishi13.com +meishichina.com +meishij.net +meishijr.com +meishilife.com +meishiqin.com +meishiwangluo.com +meishow.com +meishubao.com +meishuquan.net +meisubq.com +meisupic.com +meitangdehulu.com +meitegou.com +meitianhui.com +meitu.com +meituan.com +meituan.net +meitubase.com +meitudata.com +meitumobile.com +meitun.com +meituncdn.com +meitushop.com +meitustat.com +meituyun.com +meiweis.com +meiweishudan.com +meiwenting.com +meixie.com +meixiong5.com +meiyaapp.com +meiyan.com +meiyedana.com +meiyi.ai +meiyinji.vip +meiyixia.com +meiyixinrui.com +meiyou.com +meiyue.com +meiyuwang.com +meizhanggui.cc +meizhou.com +meizhou.net +meizitu.net +meizu.com +zymxp.com +meizu.net +meke8.com +melanecholy.com +meldingcloud.com +melodyhome.com +melote.com +melove.net +memacx.com +memewan.com +memeyin.com +memeyule.com +memorieslab.com +memoryhere.com +mems.me +memsahibgin.com +memsconsulting.com +memseminar.com +memsky.com +memuu.com +men.ci +menchuang.biz +meng2u.com +meng3.com +meng800.com +mengat.com +mengchenghui.com +mengdian.com +mengdie.com +mengdodo.com +menggang.com +menghunli.com +mengjiagames.com +mengjianjiemeng.com +mengjiayouxi.com +mengkang.net +menglan.com +menglangroup.com +menglechong.com +menglegame.com +mengma.com +mengmax.fun +mengniang.tv +mengniu99.com +mengqiuju.com +mengsang.com +mengso.com +mengte.online +mengtian.com +mengtuchuang.xyz +mengtuiapp.com +mengwuji.net +mengxi.com +mengxiangeka.com +mengxintianxia.com +mengyou.org +mengyuangu.com +mengyuanshucheng.com +mengyuzhe.com +mengzhou.com +mengzhuangxiu.com +mengzhuboke.com +mengzone.com +menksoft.com +menpiao.com +menqiu.com +mentrends.com +menubarx.app +menwee.com +menww.com +menwww.com +menxue.com +menyuannews.com +meovse.com +meow.plus +meowcat.org +mepai.me +mepcec.com +meplayplay.com +meraki.life +mercedes-benzarena.com +mereith.com +mergeek.com +merklechina.com +mescroll.com +meshiot.com +mesince.com +mesowe.com +mesresearch.com +mesule.com +met.red +met169.com +metacd.com +metal-min.com +metalchina.com +metalrevolution.com +metasecurities.com +metax-tech.com +meten.com +meteni.com +metenk12.com +metersbonwe.com +metin520.com +metlifezeng.com +metnews.net +metro-3d.com +metroer.com +metrofastpass.com +metstr.com +metword.co +mew.fun +mewhoo.com +mexue.com +mexxum.com +meyet.net +mezw.com +mf-y.com +mf8.biz +mf999.com +mfbgz.com +mfbuluo.com +mfcad.com +mfcad.net +mfcpx.com +mfcteda.com +mfdzqj.com +mfexcel.com +mfgchn.com +mfisp.com +mfjgsrad.cfd +mfjxcn.com +mfk.com +mfpad.com +mfpjrj.com +mfqqx.com +mfqyw.com +mftianshanam.com +mftvideo.com +mfzdb.com +mfzxcs.com +mg-cdn.com +mg-pen.com +mg21.com +mg3721.com +mgc-games.com +mgd5.com +mgdzz.com +mgenware.com +mgff.com +mgjianshe.com +mgkj.vip +mgl9.com +mglip.com +mgmovie.net +mgmqq.net +mgogo.com +zymreal.com +mgpyh.com +mgsdk.com +mgslb.com +mgtv.com +mgw999.com +mgwxw.com +mgxzsy.com +mgyxw.net +mgyyw.com +mgzf.com +mgzgmyzz.com +mgzxzs.com +mh1234.com +mh456.com +mh51.com +mhacn.com +mhaoma.com +mhbras.com +mhcdkey.com +mhealth100.com +mhhf.net +mhi-ac.com +mhimg.com +mhito.net +mhpdf.com +mhrsrc.com +mhsf.com +mht.la +mhtclub.com +mhtml5.com +mhv2.net +mhwck.com +mhwmm.com +mhwy2.com +mhxin.com +mhxk.com +mhxqiu.com +mhxzhkl.com +mhyun.net +mhzd.cc +mhzd.net +mi-ae.net +mi-dun.com +mi-fds.com +mi-fds.net +mi-idc.com +mi-img.com +mi.com +mi1.cc +mia.com +miaibox.com +mian4.net +mian520.com +mianbao.com +mianbaoimg.com +mianbaotou.com +miandanbx.com +miandanshidai.com +mianfeiic.com +mianfeiwendang.com +mianfeiziti.com +mianhuatang.cc +mianhuatang.la +mianjue.com +mianshi365.com +mianshigee.com +mianshui365.com +mianwai.com +mianxiangxue.com +mianyazulin.com +miao-lang.com +miaobe.com +miaobolive.com +miaoche.com +miaodiyun.com +miaogu.com +miaohealth.net +miaokaikeji.com +miaokaiyun.com +miaokee.com +miaole1024.com +miaomaicar.com +miaomiaoxue.com +miaomiaoz.com +miaomiaozhe.com +miaomore.com +miaopai.com +miaoshou.com +miaoshou.net +miaoshoucdn.com +miaoshuwu.com +miaoshuzhai.com +miaoshuzhai.net +miaostreet.com +miaov.com +miaoweijianfei.com +miaowutech.com +miaoxiazai.com +miaozao.com +miaozhen.com +miaozhun.com +miaxis.net +miazhiyou.com +mibaoxian.com +mibimibi.com +mibokids.com +mibugs.com +mic-s.com +micad.org +micai.com +micaihu.net +micaiying.com +micblo.com +michael-j.net +michaelapp.com +michong.com +michplay.com +miclle.com +mico.io +micrenzheng.com +micro-bee.com +micro-servs.com +micro-x.net +microad-cn.com +microad.jp +microadinc.com +microbell.com +microbt.com +microcai.org +microcardio.com +microdiag.com +microdreams.com +microfotos.com +microlensyh.com +microlz.com +microrui.net +microstern.com +microvcard.com +microvirt.com +microvoip.com +microwear.com +microwu.com +microyan.com +microzuji.com +micstatic.com +micw.com +midaapi.com +midadata.com +midainc.com +midasbuy.com +midea.com +zymkcdn.com +midicn.com +midifan.com +midifan.org +midiyinyue.com +midlele.com +midongtech.com +miduiedu.com +midukanshu.com +miduoke.net +midureader.com +midust.com +midway.run +midwayjs.org +miecod.com +miemie.la +miercn.com +mieseng.com +mieshu.net +mieyisi.com +mifangba.com +mifanli.com +mifanlicdn.com +mifei.com +mifen517.com +mifengchengshi.com +mifengv.com +mifengvv.com +mifengxiuchang.com +mifengzhibo.com +mifispark.com +mifwl.com +migame.vip +mige.tv +migelab.com +migroom.com +migucloud.com +migufun.com +migugu.com +migutv.com +miguvideo.com +miguyu.com +mihan.cc +mihanw.com +mihayo.com +mihayou.com +mihayou.fun +mihoyo.com +mihoyocg.com +mihoyogift.com +mihoyomall.com +mihtool.com +mihua.net +mihuashi.com +mihui365.com +mihuwa.com +miicp.com +miidc.com +miidii.tech +miidim.com +miiee.com +miinaa.com +miinsurtech.com +miit-icdc.org +mij.cc +mijiadns.com +mijian360.com +mijiannet.com +mijiayoupin.com +mijisou.com +mijwed.com +mika123.com +mikannovel.com +mike-x.com +mikechen.cc +mikecrm.com +mikesent-awareness-02.com +mikesent.net +mikewootc.com +mikeyouxi.com +mikger.com +miko007.com +mikoshu.me +miku.ink +miku4567.com +mikuac.com +mikublog.com +mikucdn.com +mikuclub.fun +milaizu2023.com +milanvip.com +mileage.vip +milejia.com +milfuns.com +miliantech.com +miliao.com +milido.vip +milihua.com +milike.com +miliol.com +miliol.org +milipictures.com +miliyo.com +milkjpg.com +milkplayer.com +milliway-ic.com +millnovel.com +milnews.com +milo-star.com +miloktv.com +miloli.info +milu.com +milvzn.com +mima.club +mimgame.com +mimi456.com +mimi518.com +mimidi.com +mimiteng.com +mimixiaoke.com +mimiyc.net +mimo51.com +mimoprint.com +mimouse.net +mimvp.com +minapp.com +mincache.com +mincdn.com +mincoder.com +mindai.com +mindcherish.com +mindhave.com +mindmanager.cc +mindmanagerchina.com +mindmapper.cc +mindmeters.com +mindmm.com +mindpin.com +mindray.com +minecraftxz.com +mineplugin.org +minerfun.com +minerhome.com +minesage.com +minewtech.com +minfengtianfu.com +mingbianji.com +mingcalc.com +mingchaoonline.com +mingchaoyouxi.com +mingcloud.net +mingczh.com +mingda.net +mingdanwang.com +mingdao.com +mingdao.net +mingdao8.com +mingdaocloud.com +mingdongman.com +mingfengtang.com +mingfucdn.com +minghuatang.com +mingin.com +mingjian.com +mingjinglu.com +minglian.com +mingmen-tech.com +mingpian.biz +mingren888.com +mingrenteahouse.com +mingrenxiang.com +mingricctv.com +mingshi51.com +mingshiedu.com +mingshijt.com +mingsoft.net +mingstar.net +mingtaokeji.com +mingtian.com +mingxf.com +mingxiaodai.com +mingxing.com +mingxingku.com +mingxinglai.com +mingyannet.com +mingyantong.com +mingyaohui.com +mingyaweb.com +mingyi.com +mingyihui.net +mingyuanfund.com +mingyuanyun.com +mingyueqingfengshe.com +mingzhuxiaoshuo.com +minhang.cc +minhangshi.com +minhow.com +mini-audio.com +mini-program.net +miniadx.com +miniaixue.com +miniappss.com +miniblink.net +minidaxue.com +minidso.com +minieye.cc +minieye.tech +minigui.com +minigui.org +minihaowan.com +miniluck.com +mininglamp.com +miniprogramadmin.com +minisforum.com +miniso.com +minisoyo.com +ministudy.com +minitiao.com +minitos.com +miniui.com +minixiazai.com +miniyounger.com +minor-tech.com +minqingguancha.com +minra.com +minrank.com +minretail.com +minshengec.com +mintaibank.com +mintaylor.com +mintmuse.com +mintrust.com +mints-id.com +minunix.com +minxindai.com +minxing365.com +minxue.net +minyunit.cool +minzhifu.com +minzu56.net +miospay.com +miot-spec.org +mipa.fun +mipacc.com +mipang.com +mipangwang.com +mipay.com +mipcdn.com +mipengine.org +miplus.cloud +mipujia.com +miquapp.com +mir4399.com +miraclevision.net +mirgaga.net +mirmzhy.com +misaka.center +misall.com +miscd.com +mishangkeji.com +mishuhome.com +misiiyoo.com +miso-lab.com +mispos.cc +missevan.com +missfresh.net +missjia.net +missku.com +misstar.com +missyuan.net +misuland.com +mitang.com +mitangbao.com +mitaozhibo.org +miteno.com +miteo.net +mitiplus.com +mittrchina.com +miui.com +miuiver.com +miusi.co +miutour.com +miutrip.com +miwifi.com +mix.moe +mixbao.com +mixcapp.com +mixdo.net +mixian88.com +mixiaojin.com +mixin.cc +mixiong.tv +mixrnb.com +mixunds.com +mixvvideo.com +mixwing.com +miyabaobei.com +miyaboke.com +miyachat.com +miyanlife.com +miyapay.com +miyatech.com +miyoushe.com +miyouu.com +miyuangz.com +miyupu.com +miyushu.com +mizhe.com +mizhimedia.com +mizhizbb.vip +mizhizbf.vip +mizhuanba.com +mizuiren.com +mj85.com +mjasoft.com +mjceo.com +mjh5.com +mjia.cc +mjjcn.com +mjjq.com +mjlong.com +mjlsh.com +mjmj8.net +mjmjm.com +mjmobi.com +mjoys.com +mjrui.com +mjtom.com +mjxhgdl.com +mjyun.com +mjyx.com +mjzj.com +mk-yiliao.com +mk2048.com +mkaq.org +mkb0898.com +mkf.com +mkjump.com +mklimg.com +mkshell.com +mksrvdns.com +mkstone.club +mktcreator.com +mktdatatech.com +mktzr.com +mkvcn.com +mkwhat.com +mkzcdn.com +mkzhan.com +mkzhou.com +mkzoo.com +ml-kq.com +mlairport.com +mlgj.com +mlibaba.com +mlinks.cc +mlito.com +mlj130.com +mlj194.com +mlj36.com +mlj55.com +mljr.com +mlkmba.com +mlkxshop.com +mlmcms.com +mlnk.me +mlnrz.com +mlnsoft.net +mlocso.com +mlog.club +mlogcn.com +mlrzsj.com +mlsbmw.com +mlsub.net +mlt01.com +mlwanwan.com +mlwed.com +mlwplus.com +mlwu.net +mlxks.com +mlycdn.com +mlyfc.net +mlyfcyy.com +mlzcn.com +mm.com +mm111.net +mm131.kim +mm138.com +mm2hservices.com +mm52.com +mm52.net +mm8mm8.com +mmall.com +mmaqa.com +mmarket.com +mmarket6.com +mmbang.com +mmbang.info +mmbang.net +mmbao.com +mmbest.com +mmbjq.com +mmbread.com +mmc-data.com +mmcos.com +mmcsgo.com +mmfad.com +mmfang.cc +mmfi.net +mmfj.com +mmgl.net +mmgogo.com +mmhktv.com +mmhygame.com +mmi-shanghai.com +mmia.com +mmim8.com +mmimm.com +mmkkiivv.com +mmm.io +mmmmmmm.com +mmmtech.com +mmods.site +mmosite.com +mmscoo.com +mmsfw.com +mmsk.com +mmstat.com +mmtrix.com +mmtrixcnc.com +mmtrixcnet.com +mmuaa.com +mmww.com +mmxiaowu.com +mmy.la +mmybt.com +mmycdn.com +mmyfilm.com +mmzcn.com +mmzh.com +mn-soft.com +mnancheng.com +mnbvtgv.com +mndqlib.net +mng0303.com +mnihyc.com +mnjj.group +mnkan.com +mnpz8.com +mnwww.com +mnxz8.com +mo-yu.com +mo298.com +mo2g.com +mo9.com +moage.com +mob.com +mob55.com +mobaders.com +mobaibox.com +moban.com +mobanhao.com +mobanjing.com +mobanku.com +mobanlane.com +mobanma.com +mobantiankong.com +mobantianxia.com +mobantu.com +mobanwang.com +mobartsgame.com +mobawan.com +mobayke.com +mobayx.com +mobcent.com +mobcloud.mobi +mobdna.com +mobeehome.com +mobgi.com +mobgroupbuy.com +mobiapp.cloud +mobibao.com +mobibrw.com +mobike.com +mobile-ease.com +mobileanjian.com +mobilebone.org +mobiledissector.com +mobilegamebase.com +mobilegamecdn.com +mobilelegends.com +mobileppp.com +mobiletrain.org +mobileztgame.com +mobiw.com +mobjz.com +mobkeeper.com +mobking.biz +mobmore.com +mobo168.com +moboage.com +moboplayer.com +mobotap.com +mobring.co +mobrtb.com +mobsurl.com +mobtou.com +mobvoi.com +mocache.com +mocartoon.com +mochai.store +mochouu.com +mockingbot.com +mockplus.com +mockuai.com +mocn.cc +moco-mall.com +mocuz.com +modao.cc +modao.com +modao.io +modb.cc +modb.pro +modeng178.com +modernsky.com +modernweekly.com +modian.com +modianverse.com +modooplay.com +modulesocean.com +moduseo.com +modxz.com +moe.im +moe123.com +moe123.net +moe123.org +moe321.com +moeblog.vip +moeclub.org +moecoder.com +moeelf.com +moefactory.com +moefantasy.com +moefou.org +moegirl.org +moehu.org +moehui.com +moeid.com +moejam.com +moejp.com +moeking.me +moeli123.com +moemiao.net +moerkeji.net +moerlong.com +moetu.org +moetuji.com +moeub.com +moew.xyz +moeyue.com +moezu.com +moezx.cc +mofa.com +mofang.com +mofang.jp +mofangge.com +mofanghr.com +mofangshe.com +mofangyu.com +mofavideo.com +mofazhu.com +moffettai.com +mofile.com +mofishgames.com +mofoun.com +mofunenglish.com +mogoedit.com +mogohd.com +mogoo.com +mogoroom.com +mogu.com +mogu.io +mogua.co +mogubill.com +mogucdn.com +moguf.com +mogujia.com +mogujie.com +mogujie.org +mogumiao.com +moguproxy.com +mogustore.com +mogutong.com +moguupd5.com +moguv.com +moguvet.com +moguyun.com +moh.cc +moh7.com +moh8.com +mohangkeji.net +moheqq.com +mohou.com +mohu.org +moihu.com +moimg.net +moith.com +moji.com +moji001.com +moji002.com +mojicb.com +mojicdn.com +mojichina.com +mojidict.com +mojieai.com +mojitest.com +mojocube.com +mokahr.com +mokalady.com +mokaoba.com +mokatyper.com +mokayuedu.com +moko.cc +molbase.com +molbase.net +moleecel.com +molegu.com +molerose.com +molibaike.com +molibiancheng.com +molie.com +molihe.cc +molimoli.tech +molinsoft.com +moliplayer.com +moliqiji.com +molixiangce.com +molizm.com +molloc.com +momhui.com +momiji.fun +momishi.com +momoapk.com +momobako.com +momocdn.com +momooyo.com +momoshifu.com +momotn.com +momoyu.com +momoyuyouxi.com +momself.club +momzs.com +moneydata.hk +moneygz.com +moneyslow.com +monhun.fun +monidai.com +monknow.com +monph.com +monseng.com +monsooncvs.com +monsterlin.com +montage-tech.com +monternet.com +montnets.com +monv.com +monxin.com +moocollege.com +mooctest.net +moodmoon.com +moodoon.com +moogos.com +moojing.com +moojnn.com +moolsun.com +moomoo.com +moonbasa.com +moonbitlang.com +mooncell.wiki +moonfly.net +mooninbox.com +moonjer.com +moonlian.com +moonsec.com +moontc.com +moonton.com +moooc.cc +mooooc.com +moore.live +moore.ren +moore8.com +moorecat.com +mooreelite.com +mooreiot.com +mooreren.com +moorext.com +moowo.com +mop.com +mopaas.com +mopaasapp.com +mopair-erm.net +mopcn.com +mopei8.com +moper.me +mopicer.com +mopoint.com +mopsky.com +mopxz.com +moqifei.com +moqikaka.com +moqilin.net +moqing.com +moqipobing.com +moqu8.com +moquu.com +morancoo.com +morechinese.cc +moreck.com +morefood.com +moregy.com +moreless.io +morequick.net +moresing.com +moretickets.com +morevfx.com +morewis.com +morewiscloud.com +morganstanleyhuaxin.com +morigames.com +morihei.net +morketing.com +morning.work +morningcore.com +morninghan.com +morningwhistle.com +morstar.net +moseacg.com +moseeker.com +mosesenglish.com +mosgcj.com +mosheng520.com +moshike.com +moshou.com +moshua.net +moshuanghua.com +moshuqiqiu.com +mosoga.net +mossle.com +mostch.com +mostsd.com +motanku.com +motherchildren.com +motie.com +motieimg.com +motilive.com +motimaster.com +motisky.com +motiway.com +zymc1.com +moto8.com +motrix.app +motuo2.com +mouldbbs.com +mouldnews.com +moulem.com +moumi.com +mounriver.com +mounstar.com +mountor.net +mounui.com +mousycoder.com +mout.me +moutaichina.com +movcam.com +movcms.com +movesee.com +movesky.net +moviemore.com +moviereviewtoday.com +movit-tech.com +mowan123.com +mowowo.com +mowuhe.com +mox.moe +moxfive.xyz +moxiai.com +moxian.com +moxing.net +moxingyun.com +moxiu.com +moxiu.net +moxiuwl.com +moxiwh4.com +moyangmoyang.com +moyann.com +moye.me +moyoutang.com +moyoyo.com +moyublog.com +moyugroup.com +moyumedia.com +moz8.com +mozhan.com +mozheanquan.com +mozhedun.com +mozhenhau.com +mozhes.com +mozichina.com +mozigu.net +mozillaonline.com +mozillazg.com +mp4ba.com +mp4cn.com +mp4er.cc +mp4ju.com +mp4kan.com +mpaascloud.com +mpacc.net +mpaidata.com +mpdaogou.com +mpdsj.com +mpfmall.com +mphdx.com +mphh.cc +mpiano.com +mplife.com +mpll.cc +mplus.tech +mpopkart.com +mpos.ren +mpweixin.net +mpxiaomi.net +mpxiaoshuo.com +mpxx.net +mqant.com +mqcoffee.com +mqttx.app +mquanquan.com +mqxww.com +mr-ping.com +mr77.com +mr91.com +mrabit.com +mrbanana.com +mrcjcn.com +mrcrm.com +mrcywang.com +mrdede.com +mrentea.com +mrevisa.com +mrflay.com +mrhallacg.com +mrjeke.com +mrjiang.com +mrjjxw.com +mrlika.com +mro9.com +mross022.com +mross044.com +mrpyq.com +mrqf.com +mrsta.com +mrw.so +mrwish.net +mrzhenggang.com +mrzs.net +ms211.com +ms315.com +ms6666111.com +msanjia.com +mscbsc.com +mschcdn.com +mscodecloud.com +mscto.com +msddp.com +msfpay.com +msgcarry.com +msgtjj.com +mshandong.com +mshare.cc +mshc2018.com +mshot.com +mshouyou.com +mshw.net +mshxw.com +msits.com +mskjf.com +mslzz.com +msm.moe +msmartlife.com +msmbjp.com +mspharm.com +mspring.org +msrtvu.net +msstatic.com +mst-jc.com +mstarsemi.com +mstchina.com +msudz.com +msunland.com +msvod.cc +msweekly.com +msxf.com +msxf.net +msxfmall.com +msxh.com +msxiaobing.com +msymjz.com +msyos.com +msysk.com +mszdld.com +mszdld.net +mszlyoozo.com +mszmapp.com +mszq.com +mszsx.com +mszxyh.com +mt-bbs.com +mt-wire.com +mt4v4.com +mt77.com +mt888vip.com +mtavip.com +mtblj.com +mtchome.com +mtcnsoft.com +mtcop.com +mtcsys.com +mtcx99.com +mtcxsw.com +mtcxx.com +mtdpai.com +mtdpgame.com +mtedu.com +mtex.work +mtgchina.com +mti100.com +mtiancity.com +mtianshitong.com +mtide.net +mtime.com +mtimeimg.com +mting.info +mtizt.com +zyloushi.com +mtkan.net +mtkdy.com +mtketang.com +mtkpacker.com +mtksj.com +mtktk.com +mtm.mo +mtmits.com +mtmos.com +mtmss.com +mtmssdn.com +mtmssdn0.com +mtnets.com +mtnets.net +mtoilet.com +mtoou.info +mtr8.com +mtrendgroup.com +mttsq.com +mtty.com +mtuacg.com +mtv123.com +mtw.so +mtwine.com +mtwl.net +mtxgx.com +mtxyx.com +mtyun.com +mtzbs.com +mtzcjy.com +mtzmyjf.com +mtzuichen.com +mtzxgf.com +mubanjianli.com +mubanwan.com +mubu.com +mubu.io +mubucm.com +mucaipin.com +mucf.cc +mucfc.com +muchangqing.com +muchcloud.com +muchong.com +muchplans.com +muchrank.com +mudgj.com +mudongguang.com +mudoudou.net +mudu.com +mudu.tv +mufengyue.com +muftc.com +mugeda.com +muhai.net +muhoujiemi.com +muimg.com +mujihotel-beijing.com +mujj.us +mukewang.com +mukool.com +mulazim.com +mumayi.com +mumu01.com +muniao.com +muomou.com +mupao.com +mupceet.com +murdermysterypa.com +murl.tv +murphysec.com +muryi.net +muselab-tech.com +mushafa.net +mushroomchina.com +music4x.com +musicalpc.com +musicchina-expo.com +musicdu.com +musicedu8.com +musiceol.com +musicheng.com +musikid.com +musiness.vip +muslimwww.com +mustups.net +musyder.com +mutouxb.com +mutualhunter.com +mutuoluo.com +muwai.com +mux5.com +muxin.fun +muxiulin.com +muyangkuaibao.com +muyee.com +muyeseed.com +muyewx.com +muying.com +muyingjie.com +muyingzhijia.com +muyishu.com +muyuanfoods.com +muyuekj0.com +muzhi.us +muzhigame.com +muzhiwan.com +muzi999.com +muzijie.com +muzili.xyz +muzisoft.com +mvc188.com +mvhere.com +mvoicer.com +mvote.net +mvpdj.com +mvpsky.com +mvyxws.com +mw.com +mw1950.com +mwadx.com +mwave.tech +mwcloudcdn.com +mwcloudcdn.info +mwcname.com +mweda.com +mwjournalchina.com +mwjx.com +mwkhjc.com +mwrf.net +mwrfabc.com +mwrfchina.org +mwryx.com +mwtee.com +mwyzhcdn.com +mx-industry.com +mx007.com +mx175.com +mx3g.com +mxarts.com +mxbc.com +mxbc.net +mxchip.com +mxddp.com +mxde.com +mxew.com +mxguan.com +mxhaitao.com +mxhichina.com +mxifund.com +mxingkong.net +mxjinchao.com +mxjtedu.com +mxjyxx.com +mxk.cc +mxlvniao.com +mxnavi.com +mxnfq.com +mxnxs.com +mxomo.com +mxqe.com +mxria.com +mxs.com +mxslly.com +mxsyzen.com +mxtcn.com +mxtronics.com +mxw3.com +mxyn.com +mxzgame.com +mxzsjt.com +mxzx123.net +mxzzzs.com +my-3dcad.com +my-imcloud.com +my-qcloud.com +my-summit.com +zyl.me +my0511.com +my0513.com +my0538.com +my0551.com +my0832.com +my089.com +my120.org +my1616.net +my2space.com +my2w.com +my399.com +my3w.com +my4399.com +my478.com +my5m.com +my5v.com +my68.com +my7v.com +my88316666.com +my9166.com +my91app.com +my9527.com +my97.net +myagric.com +myaijarvis.com +myalicdn.com +myanjian.com +myanmarembassy.com +myantu.com +myapp.com +myapp.ltd +myaqsh.com +myarowanas.com +myauth.us +mybarrefitness.com +mybdqn.com +mybjx.net +mybosc.com +myboyan.com +mybwallet.com +mybxg.com +mycaigou.com +mycaijing.com +mycaraok.com +mycarbar.com +mycardgame.net +mychemy.com +mychery.com +mychery.net +mychinaevent.com +mychinaunicom.com +mychunyan.net +mycleanmymac.com +myclub2.com +mycnc.org +mycollect.net +mycolorway.com +mycoov.com +mycos.cc +mycos.com +mycos.net +mycos.org +mycospxk.com +mycosresearch.net +mycoss.com +mycoss.net +mycoss.org +mycreate.net +mydadao.com +mydao.net +mydbfx.com +mydcyj.com +mydeershow.com +mydf.net +mydianshijia.com +mydical.com +mydict.org +mydigi.net +mydigit.net +mydiyclub.com +mydnns.com +mydns8.com +mydnser.com +mydnspod.net +mydnsw.com +mydoc.io +mydown.com +mydreamplus.com +mydrivers.com +myeclipsecn.com +myekp.net +myelasticsearch.com +myezdns.com +myf6.com +myfans.cc +myfirstwon.com +myfrfr.com +myfun7.com +myfund.com +mygame66.com +mygame82.com +mygame88.com +mygjp.com +mygobatv.com +mygolbs.com +myguancha.com +mygx.net +mygzb.com +myhack58.com +myhaowai.com +myhard.com +myhayo.com +myhexin.com +myhithink.com +myhongzuan.com +myhostadmin.net +myhuaweicloud.com +myhuilv.com +myhwcdn.com +myhwcloudlive.com +myhwclouds.com +myie.me +myie9.com +myip.la +myipadbox.com +myiplay.com +myir-tech.com +myirtech.com +myitit.com +myjhxl.com +myjianzhu.com +myjiedian.com +myjishu.com +myjob.com +myjob500.com +myjoit.com +myjoy777.com +myk3.com +mykqyy.com +mykshow.com +mylbabao.com +mylguoji.com +mylibs.org +mylightsite.com +mylike.cc +mylike.com +mylikechat.com +mylikesz.com +mylikeyk.com +mylink.ink +mylitboy.com +myliwu.net +mylmad.com +mylotushealth.com +mylovehome.com +mylsfw.com +mym001.com +mymaitian.com +mymanhua.com +mymetal.net +mymhotel.com +myminapp.com +mymofun.com +mymoive.com +mymova.com +mynb8.com +mynee.com +myoas.com +myodatech.com +myoldtime.com +myopenwrt.org +myoppo.com +myottad.com +myouth.net +myp2pch.net +mypaas.com +mypcrun.com +mypethome.com +mypian.com +mypiao.com +mypiaojia.com +mypitaya.com +mypity.com +mypm.net +myprad.com +mypscloud.com +mypsy365.com +myptpt.com +myqcloud.com +myqcloud.net +myqee.com +myqiantu.com +myqqjd.com +myra2.com +myravendb.com +myrb.net +myreadme.com +myrice.com +myriptide.com +myroome.com +myrtb.net +myrunners.com +myruru.com +myscore.org +mysemlife.com +myshow360.net +myshow800.com +myshown.com +myshxz.com +mysinamail.com +mysipo.com +mysiteres.com +mysmth.net +mysongktv.com +mysore-yoga.com +myspain.org +mysqlab.net +mysqlops.com +mysqlpub.com +myssl.com +mystao.com +mysteel.com +mysteel.net +mysteelcdn.com +mysteelcms.com +mysubmail.com +mysupa.com +mysuperdns.com +mysvw.com +myt126.com +mytanwan.com +mythbird.com +mythcall.com +mythcare.com +mythidea.com +mythroad.net +mythsman.com +mythware.com +mythware.net +mytijian.com +mytju.com +mytokenpocket.vip +mytrix.me +mytv365.com +mytvgame.com +myuall.com +myubbs.com +myuclass.com +myujob.com +myun.tv +myunke.com +myunying.com +myushan.com +myvactrip.com +mywakao.com +mywayboo.net +myweimai.com +mywhh.com +mywll.com +mywood.cc +myworld6.com +myxypt.com +myyishu.com +myyoudao.com +myypark.com +myyx618.com +myyx915.com +myyzd.com +myzaker.com +myzhiniu.com +myzte.com +mz-oneacg.com +mz2225555.com +mz6.net +mzbei.com +mzbkw.com +mzboss.com +mzd1.com +mzeyes.com +mzfanyi.vip +mzfile.com +mzfxw.com +mzgtuan.com +mzh.ren +mzhb.com +mzhfm.com +mzhujia.com +mzjmedia.com +mzone.site +mzread.com +mzres.com +mzrwgo.com +mzsky.cc +mzsmn.com +mztgame.com +mztzzx.com +mzuan.com +mzuimg.net +mzwu.com +mzxjzp.com +mzyfz.com +mzyun.ren +mzyunyin.com +mzzjw.com +n-bros.net +n0808.com +n12345.com +n127.com +n18081.com +n21.cc +n28082.com +n3293.com +n3762.com +n3875.com +n3sd.com +n423.com +n459.com +n4x8.xyz +n5738.com +n802.com +n9cn.net +n9z.net +naadou.com +nacorokevalve.com +nadianshi.com +nafanlong.com +nagagame.net +nagain.com +nagcloudcs.com +nagekuai.com +nahuayuan.com +nahuo.com +nahuo9.com +naibabiji.com +naibago.com +naicha99.com +naichabiao.com +naifei.pro +naimal.com +naimei.com +nainiuapp.com +naiping.net +naisiw.com +naitang.com +naiveblue.com +naixuecha.com +najiaoluo.com +najnus.com +nakedhub.com +nakedsail.com +nakevip.com +nalanxi.com +nalichi.com +name1688.com +name2012.com +nameidi.com +namepre.com +namesilopro.com +namibox.com +namipan.com +namisoft.com +namitiyu.com +namoc.org +nanapro.org +nanbeijt.com +nanbeiyou.com +nanbushenghuo.com +nandagang.cc +nandasoft.com +nandu.com +nandufoundation.org +nanerjia.com +nanfu.com +nanguache.com +nangualin.com +nanhaitoday.com +nanhe111.com +nanhua.net +nanhufund.com +nanhuhr.com +nanhutravel.com +nani.online +nanjingchenxi.com +nanjinghuojia.net +nanjingkaishan.com +nanjingtianqi114.com +nanjixiong.com +nankaimba.org +nanlive.com +nanoer.net +nanputuo.com +nanqi.org +nanrentu.cc +nanrenvip.cc +nanrenvip02.cc +nanrenvip03.cc +nanrenwa.com +nanshanski.com +nantaihu.com +nantong-hst.com +nantonghua.net +nanxueqx.com +nanyangcable.com +nanyinwealth.com +nanyuetong.com +nanzhao1.com +naobiao.com +naoda.net +naoffer.com +naozhong.net +napiantian.com +naquan.com +naquan.org +naradafoundation.org +narkii.com +narrowad.com +naruto.red +narutom.com +nas66.com +nasack.net +nase.tech +nasgetinfo.com +nashwork.com +nasimobi.com +nasinet.com +nasiosoft.com +nasyun.com +nat123.com +natamoo.com +natapp1.cc +natapp4.cc +natappfree.cc +natbbs.com +natertech.com +natfrp.com +nationalchip.com +nationsky.com +nationstech.com +nattest-china.com +naturali.io +nature-museum.net +naturesvariety-china.com +natywish.com +nauac.com +navchina.com +navimentum.com +navinfo.com +naxcx.com +naxide.com +nayao.com +nayatec.com +nayei.com +nazo.fun +nb-medicalsystem.com +nb301.xyz +nb591.com +nbabm.com +nbahero.com +nbahi.com +nbahjx.com +nbaidai.com +nball.cc +nbalxhf.com +nbaqmq.com +nbayaobasketballclub.com +nbbeer.com +nbbjack.com +nbchao.com +nbcsgo.com +nbcyl.com +nbdeli.com +nbdeli.net +nbdisco.com +nbegame.com +nbegame.net +nbenl.com +nbfox.com +nbgdjt.com +nbhailan.com +nbhao.org +nbhky.com +nbimer.com +nbimg.com +nbjlw.com +nbjnw.com +nbjzjn.com +nbkc-rp.com +nblongzhan.com +nbmai.com +nbmedicalsystem.com +nboxnas.com +nbpolytheatre.com +nbren.net +nbrj.com +nbrlzy.com +nbsason.com +nbshuoxue.com +nbsqbank.com +nbt.ren +nbtarena.com +nbudp.com +nbunicom.com +nbvps.net +nbwaf.net +nbwan.net +nbwb.net +nbwbw.com +nbweekly.com +nbwskj666.com +nbyang.com +nbyeda.com +nbyizhu.com +nc8.fun +ncacg.org +ncartfoundation.org +nccqj.com +ncdxbbs.com +ncfcsa.org +ncfgroup.com +ncfwx.com +ncfxwhjjh.com +ncfz.com +nchq.cc +nciku.com +nciyuan.com +ncjld.com +ncjy.net +ncmem.com +ncnynl.com +ncpa-classic.com +ncpqh.com +ncpssd.org +ncpti.com +ncq8.com +ncu.me +ncvtinfo.com +ncvtmi.com +ncxb.com +ncyinghuochong.net +ncyunqi.com +nczfgjj.com +nd090.com +nd15.com +nd56.com +ndcpp.com +nddaily.com +nddnrm.com +ndhys.com +ndmh.com +ndoo.net +ndscsoft.com +ndser.net +ndt-sz.com +nduoa.com +nduotuan.com +ndzsx.com +ne21.com +nearcharge.com +nearsnet.com +nease.net +neat-reader.com +neatifyapp.com +nebulogy.com +nedaex.com +nedigitals.com +needexam.com +needyouknow.com +neegle.net +neeq.cc +neets.cc +neeu.com +zyku.net +negroupedu.org +neigou.com +neihanshequ.com +neisha.cc +neitui.com +neituixiaowangzi.com +neko.pub +nelkshuhe.com +nellit.net +nelson-textiles.com +nenben.com +nengapp.com +nenggeimall.com +nengshida.com +nengzuo.com +nenup.com +neo.org +neoap.com +neobiochina.com +neoease.com +neoease.org +neofaith.net +zykjgame.com +neohytung.com +neojos.com +neolee.com +neolix.net +neoremind.com +neptcn.com +nercel.com +nesbbs.com +nestgene.com +nestlechinese.com +net-add.com +net-swift.com +net0516.com +net111.info +net114.com +net130.com +net199.com +net2345.net +net263.com +net3q.com +net767.com +net9.org +netac.com +netat.net +netbian.com +netcnnet.net +netcoc.com +netconst.com +netcoretec.com +netded.com +netdzb.com +netease-inc.com +netease.com +netease.im +neteasegames.com +netentsec.com +netesee.com +netgamecar.com +netherlandvcenter.com +netiler.com +netinbag.com +netinfi.com +netinfi.net +netitest.com +netkao.com +netmeas.xyz +netnoease.com +netok.cc +netpi.me +netposa.com +netqd.com +netsmell.com +netspreading.com +netstatic.net +netsun.com +nettvl.net +networkbench.com +networkbrand.com +netzonesoft.com +neu-reality.com +neucrack.com +neuedu.com +neunn.com +neupeer.com +neuqsoft.com +neusncp.com +neusoft.com +neutrontek.com +neux.studio +nev-battery.org +new-mobi.com +new-more.com +new-thread.com +new1cloud.com +new253.com +new669.com +newacademic.net +newadblock.com +newadx.com +newaigou.com +newaircloud.com +newapi.com +newasp.com +newasp.net +newayz.com +newbandeng.com +newbanker.com +newbd.com +newbe.pro +newbeebook.com +newbmiao.com +newbolunesport.com +newbook8.com +newboshi.com +newcapec.net +newcger.com +newchainbase.com +newchieve.com +newchinalife.com +newclasses.org +newclouddenfender.com +newcoder.com +newcosemi.com +newdao.net +newday.me +newdon.net +newdruginfo.com +newdu.com +newdun.com +newer2001.com +newhopeagri.com +newhopegroup.com +newhtml.net +newhua.com +newistock.com +newjson.com +newlandaidc.com +newlifex.com +newmaker.com +newman.mobi +newmargin.com +newmediaconference.org +newnanbao.com +newnewle.com +newoasis.cc +newoer.com +newoo.com +neworiental.org +nework360.com +neworldedu.org +news18a.com +news606.com +newsccn.com +newscctv.net +newseasoft.com +newsgd.com +newsgroupusa.com +newsgu.com +newsing.com +newskj.com +newskj.org +newsletter-cn.com +newsmth.com +newsmth.net +newsmy-car.com +newsmy.com +newsmyshop.com +newsn.net +newspluse.com +newssc.net +newssc.org +newstarpress.com +newstartsoft.com +newstjk.com +newsv5.com +newsxc.com +newsyc.com +newszjk.com +newtalentaward.com +newtonghua.com +newtop100.com +newtouch-elec.com +newtrip.com +newume.com +newupbank.com +newvfx.com +newxing.com +newxitong.com +newxue.com +newyx.net +newzealandvscenter.com +newzgc.com +newzhizao.com +nexmoe.com +nexon.to +nextclass.club +nextday.im +nextjoy.com +nexto2o.com +nextpcb.com +nextrt.com +nextsee.com +nextstudios.com +nexttao.com +nexttix.net +nextworkshop.net +nextyu.com +zyjyyun.com +nexushd.org +nfc315.com +nfcic.com +nfckauto.com +nfcmag.com +nfcreader.net +nffund.com +nfg02df.com +nflchina.com +nfmedia.com +nfmrtfv.com +nfpeople.com +nfrencai.com +nfs-china.com +nfschina.com +nfzhouyi.com +ng-alain.com +nga.wiki +ngaagslb.net +ngabbs.com +ngacn.cc +ngacn.com +ngarihealth.com +ngbbs.com +ngcgears.com +ngctransmission.com +ngevnsmk5.com +ngfans.net +ngh6.com +nginstar.net +ngjjtg.com +ngnice.com +ngocn.net +ngoos.org +ngrok.cc +ngsxzfw.com +ngty556.com +ngui.cc +ngxfence.net +ngxfence.org +nh.com +nhaidu.net +nhdmd.com +nhganggeban.com +nhhwhxh.com +nhnexpo.com +nhnst.com +nhooo.com +nhstu.com +nhxz.com +nhygkj.com +nhzedu.com +nhzj.com +nhzs.com +ni8.com +ni93.com +nianbin.com +nianhua.plus +niankawang.com +nianzhi.cc +niaobee.com +niaobulashi.com +niaocms.com +niaogebiji.com +niaola.com +niaoquan.fun +niaoyun.com +niba.com +nibaguai.com +nibaku.com +nibiye.com +nic.ren +nic.xin +nicaicheng.com +nicaifu.com +nice-app.com +nice1688.com +nicebing.com +nicecdn.com +nicefilm.com +niceimg.net +niceisp.com +nicekid.com +nicekodi.xyz +nicelabel.cc +nicelinks.site +niceloo.com +nicesnow.com +nicetheme.xyz +nicetuan.net +nicky1605.com +nicolaszhao.com +niconiconi.cc +nicotine.vip +nics365.com +nie.io +nielsenccdata.tv +nies.org +niexiaotao.com +nieyou.com +nifengz.com +nightwishcn.com +nihao.net +nihaoafrica.org +nihaodd.com +nihaotw.com +nihaowang.com +nihil.cc +niiceda.com +niiddm.com +niimbot.com +niiwoo.com +nikanpian.com +nikebiji.com +nikkisoft.com +nikkiup2u2.com +nilai.com +niliu.me +nilmap.com +nimaseo.com +nimzx.com +ninebot.com +ninecoign.com +ninepart.com +nineplaying.com +nineroad.com +ninesix.cc +ninestargroup.com +ning0370.com +ningbo-airport.com +ningbocat.com +ningbofy.com +ningbotm.net +ningdo.com +ninghao.net +ningidc.com +ningkangyuan.com +ningkekeji.com +ningmengdou.com +ningmengyun.com +ningoo.net +ningto.com +nington.com +ningxiajob.com +ningxingxing.com +ninjacn.com +ninjadq.com +ninjamustdie.com +ninonanospeed.com +ninthpalace360.com +nio.com +nioapis.com +nipei.com +nipic.com +nishuoa.com +nitaitag.com +nitutu.com +niu-ba.com +niu.com +niua.com +niuaa1688.com +niuacc.com +niuap.com +niubb.net +niubi114.com +niubilai.com +niubilety.com +niubixia.com +niuboli.com +niucache.com +niucdn.com +niucodata.com +niudai120.com +niug8.com +niugame.net +niugp.com +niuguwang.com +niuhuagong.com +niuhudong.com +niujinniu.com +niukk.com +niuniufund.com +niuniutui.com +niupinhui.com +niupu.com +niuqia.com +niuschools.com +niushe.com +niutk.com +niutoushe.com +niutrans.com +niutrip.com +niuwk.com +niuxgame77.com +niuxiaoer.net +niuxiaoq.com +niuxyun.com +niuxz.com +niuyan.com +niuyou5.com +niuyuan.com +niuza.com +niuzhu.com +niuzhuan-test.com +nivta.com +nivtc.com +niwodai.com +niwodai.net +niwota.com +niwoxuexi.com +nixi.win +nixiba.com +nixwang.com +nizhan888.com +nizi88.com +nizkeyboard.com +nj-bl.com +nj-qiyiguo.net +njbaisou.com +njc100.com +njcdata.com +njcedu.com +njcgs.com +njcitygas.com +njcw.com +njcyt99.com +njd1.com +njdapaidang.com +njdewo.com +njdfwb.com +njgb.com +njgjj.com +njhaiwai.com +njhengyou.com +njhgame.com +njhgzg.com +njhszoo.com +njibhu.com +njjn.com +njjsyy.com +njjuntong.com +njkefayuan.com +njl114.com +njlike.com +njlingyun.com +njljjy.com +njlzsx.net +njmama.com +njmuseum.com +njnutz.com +njqxrc.com +njrx.cc +njsjz.com +njskps.com +njsxbw.com +njsyue.com +njuaplusplus.com +njuftp.org +njw88.com +njwww.net +njxmsm.com +njxsmaofa.com +njxsmfyh.com +njxsmz.com +njxzwh.com +njycwy.com +njyingtaoya.com +njyydl.com +njzdsp.com +njzhzx.net +njzztyl.com +nkscdn.com +nkyp.com +nlark.com +nlinkline.com +nljb.net +nlpjob.com +nlscan.com +nlxn.com +nlypx.com +nlzpy.com +nm8yx.com +nmboat.com +nmbxd1.com +nmcjdo04.xyz +nmet168.com +nmgchigang.com +nmgd.com +nmgfood.net +nmgfrank.com +nmggyy.com +nmgkjzx.com +nmglawyer.com +nmgwyw.org +nmgyjszx.com +nmgyljs.com +nmhfw.com +nmimi.com +nmkjxy.com +nmmlresearch.xyz +nmrdata.com +nmslqm.com +nmtyxy.com +nmvps.com +nmweidian.com +nmxc.ltd +nmzh.net +nn.com +nn12333.com +nncc626.com +nncj.com +nnddssaaddeeyy.com +nndims.com +nndssk.com +nnduyi.com +nngdjt.com +nngjjx.com +nnit30.com +nnjioko.com +nnjt.com +nnlib.com +nnmama.com +nnmutong.com +nnn666.com +nnnews.net +nnsc6.com +nnsky.com +nnszwl.com +nnt0.net +nnthink.com +nntlj.com +nntskq.com +nntxw.com +nnwb.com +nnynrc.com +nnzsxblaw.com +noahedu.com +noahgroup.com +noahsnail.com +noahteck.com +nobmoo.com +nocang.com +nocare.com +noclyt.com +nocode-tech.com +nocode.com +noddl.me +nodeasy.com +nodefu.net +nodeing.com +nodejs999.com +nodekey.com +nodepacific.com +noeic.com +nohken-sdy.com +nohup.cc +noirphoenix.studio +noizztv.com +nokia-sbell.com +nokia88.com +nolanchou.com +nolovr.com +nomax.vip +nome.com +nomuraoi-sec.com +nonemall.com +nonganxian.com +nongbaike.net +nongcun5.com +nongfen.com +nongfuspring.com +nongji1688.com +nongji360.com +nongjiao.com +nongjitong.com +nongjx.com +nongkeyu.com +nongli.com +nongli.net +nongli114.com +nonglirili.net +nongmintv.com +nongmuhezi.com +nongnet.com +nongplay.com +nongquan.net +nongshang.com +nongshijie.com +nongxinyin.com +nonobank.com +nonozone.net +noobyard.com +noobyy.com +noodba.com +noogel.xyz +noontec.com +noops.me +nooshen.com +nootoo.com +nopis.org +noposion.com +nor-land.com +nordfxs.com +nordicways.com +nordikr.com +nordritools.com +norinco-vehicle.com +norinco.com +norincogroup-ebuy.com +noritzd.com +normcore.com +normstar.net +norsencn.com +northdy.com +northidc.net +northsoar.com +northtimes.com +nosec.org +nosuchfield.com +not3.com +notadd.com +note52.com +notedeep.com +noteniu.com +notetech.org +notrisk.com +novaicare.com +novapps.com +novastargame.net +novel-supertv.com +noveless.com +novelfm.com +novelfmpic.com +novelfmstatic.com +novelfmvod.com +novell.me +novemideas.com +novtium.com +now-cn.net +nowapi.com +nowbeta.com +nowchip.com +nowcoder.com +nowcoder.net +nowcoder.org +nowec.com +nowmsg.com +nowo.com +nowodds.com +nowre.com +nows.fun +nowscore.com +nowshipin.com +nowxz.com +noxgroup.com +noxue.com +noxxxx.com +noyes88.com +npbdp.com +npc233.com +npcgo.com +npcka.com +nphoto.net +nplusgroup.com +nplusgroup.net +npmmirror.com +npodevelopment.org +npoll.net +npp.cc +nptpark.com +npxsw.com +npz.com +nq6.com +nr-esc.com +nrdzqwd.com +nrec.com +nrsfh.com +nrsg.net +nruan.com +ns1.hk +ns168.net +ns365.net +ns5n.com +ns8d.com +ns96.com +nsbeta.info +nscloudwaf.com +nscscc.com +nscscc.org +nseac.com +nsecsoft.com +nsfocus.com +nsfocus.net +nsforce.net +nshen.net +nshzpks.com +nsini.com +nslifang.com +nsoad.com +nsoft.vip +nspllines.com +nsrfww.com +nsrjlb.com +nsshare.com +nsstream.com +nsw88.com +nsw99.com +nswyun.com +nsydt.com +nszmz.com +nt.app +nt.cc +ntalker.com +ntaow.com +ntce.com +ntcfy.com +ntcor.com +ntdvf.com +ntechw.com +ntefyxq.com +ntes53.com +ntfabu.com +ntflk.com +ntfsformac.cc +nthysp.com +ntjob88.com +ntjoy.com +ntjrchina.com +ntjymall.com +ntlcjd.com +ntmyexp.com +ntneuro.org +zyjoygame.com +ntpcb.com +ntqcct.com +ntqfdq.com +ntrcb.com +nttui.com +ntuiw.com +ntwikis.com +ntwzy.com +ntyswlkj.com +ntyy888.com +ntzcb2b.com +nu1l.com +nuan.io +nuandao.com +nuanjiayuan.com +nuannuanapp.com +nuannuanzu.com +nuanshi100.com +nuantingapp.com +nuanyuehanxing.com +nubb.com +nubee.cc +nubesi.com +nubia.cc +nubia.com +nucc.com +nucleisys.com +nudpqt.com +nuedcchina.com +nufans.net +nufykysuam.com +nullice.com +nullno.com +num1dns.com +nuobeiliao.com +nuobg.com +nuobz.com +nuodefund.com +nuoder.com +nuoji.com +nuomi.com +nuomicikoi.com +nuomili.com +nuomiphp.com +nuonuo.com +nuozhan.com +nuozhensh.com +nuqk.com +nutriease.com +nutsbp.com +nutspace.com +nutz.io +nutzam.com +nuvoltatech.com +nuvoton-m0.com +nuvoton-mcu.com +nuxtv.com +nuxue.com +nv2118.com +nvcam.net +nvcong.com +nvdiao.com +nvidia-china.com +nvloo.com +nvpuse.com +nvpuwo.com +nvsay.com +nvsheng.com +nvshengjie.com +nvshuyun.com +nvwu.com +nvzhanshen.com +nvzhubo.cc +nvziwu.com +nw-host.com +nwbbs.com +nwct.me +nwdlink.com +nweon.com +nwtongcheng.com +nx-sc.com +nx.cm +nx5.com +nxadmin.com +nxcells.com +nxdns.net +nxecaiji.com +nxengine.com +nxez.com +nxflv.com +nxggzyjy.org +nxgjbyy.com +nxgqt.org +nxgtjt.com +nxhh.net +nxin.com +nxist.com +nxit.us +nxly766.com +nxnews.net +nxnjw.com +nxnresearch.com +nxol.net +nxrrvmy.com +nxsks.com +nxtianshangb.com +nxwly.com +nxyqs.com +nxyqs.net +ny-yy.com +ny83.com +nya.ink +nyaacat.com +nyasama.com +nyato.com +nybai.com +nybaidu.net +nyckidsclub.com +nylingshang.com +nync.com +nypd520.com +nyq.ink +nyrsksw.com +nyshszh.com +nysmfc.com +nyxr-home.com +nyyzjg.com +nz86.com +nz998.com +nzbdw.com +nzchina.com +nzsiteres.com +nzwgs.com +o--o.win +o-netcom.com +o-star.cc +o-tide.com +o136.com +o2123.com +o2ee.com +o2mania.com +o2moment.com +o2o4.com +o2obill.com +o2oexpo.com +o2onet.com +o2osd.com +o2ting.com +o365cn.com +o37o.net +o3ko.com +o3ndix.com +o6s.net +o7h.net +o8tv.com +oa025.com +oa0351.com +oa25.org +oa5588.com +oa8000.com +oabg.net +oact.net +oadz.com +oahelp.com +oahelp.net +oameibang.com +oaqi.com +oatos.com +oauto.com +ob-park.com +obagame.com +obesu.com +obins.net +obj6.com +objccn.io +objcer.com +objcoding.com +obkoro1.com +obkprint.com +obolee.com +oborad.com +obowin.com +obsapp.net +obsbot.com +obyee.com +ocar.tv +ocd120.com +oceanbase.com +oceanbites123.com +oceandatas.com +oceanengine.com +oceanlau.com +oceanol.com +oceanplayable.com +ocideal.com +ocimg.com +oclkj.com +ocooca.com +ocsjs.com +zyip.com +zyiis.net +oct-asia.com +oct-cts.com +oct-sh.com +octbay.com +octeshow.com +octholding.com +octhotels.com +octinn.com +octlink.com +octmami.com +octo.fm +octoparse.com +octopgo.com +octopusgame.com +octre.com +octwuhan.com +oculist.net +ocwms.com +odaily.news +odao.com +odict.net +odinichina.com +odinjc.com +odinjilin.com +odinliu.com +oealy.com +oeasy.org +oec365.com +oecr.com +oedun.com +oeebee.com +oeeee.com +oejournal.org +oelove.com +oemol.com +oemresource.com +oemsnavi.com +zyhot.com +oeob.net +oesell.com +oetsi.com +ofcard.com +ofenka.com +offcn.com +offer-wow.com +offerstrack.net +office-cn.net +office-peixun.com +zyhbxs.com +officectrl.com +officese.com +officesoftcn.com +officeweb365.com +officewj.com +officezhushou.com +officezu.com +offodd.com +offshoremedia.net +ofgame.net +ofidc.com +ofo.com +ofo.so +ofpay.com +ofpay365.com +ofuns.com +ofweek.com +ofweek.net +ofyoo.com +ogaoxiao.com +ogccdn.com +oh100.com +ohaotian.com +ohipic.com +ohqly.com +ohtly.com +ohtpc.com +ohtvu.com +ohwyaa.com +ohyee.cc +oi-wiki.com +oi-wiki.org +oiaqye7985.com +oicat.com +oicp.net +oicq88.com +oicto.com +oidchina.org +oiine.com +oilchem.net +oilepay.com +oilhr.com +oilmooc.com +oincp.com +oinva5yl.com +oiuwe.com +oje26fnevfdg.com +ok-meeting.com +ok06.com +ok1616.com +ok165.com +ok206.com +ok365.com +ok3w.net +ok86.com +ok888883.com +ok9624.com +oka-vip.com +okad.com +okada-china.com +okaoyan.com +okayapi.com +okaybio.com +okbao.com +okbase.net +okbiao.com +okbike.net +okbmf.com +okbuy.com +okcard.com +okcdnns.com +okchang.com +okchexian.com +okdai.com +okdd.net +okemu.com +okex.vip +okex.win +okeycar.com +okhimalayanzi.com +okhqb.com +okidc.com +okideaad.com +okii.com +okjike.com +okjk.co +okki.com +okkkk.com +oklaapp.com +oklink.com +oklx.com +okmart.com +okmyapp.com +okng.com +okoer.com +okooe.com +okooo.com +okoooimg.com +okpush.com +okrecovery.com +okskills.com +oksun.com +oksvn.com +oktools.net +oktools.xyz +oktranslation.com +okuer.com +okweb.info +okwuyou.com +okxr.com +okz.com +ol-cdn.com +ol-img.com +olabo.net +olacio.com +olami.ai +olcdn.com +oldboyedu.com +oldcat.me +oldding.net +oldking.net +oldmantvg.net +oldpan.me +olecn.com +oleony.com +olinone.com +oliver.ren +oliveryang.net +oliyi.com +ollomall.com +olo4.com +olymtech.com +omacloud.com +omarea.com +omayse.com +omccsh.com +omchain.com +omdnchina.com +omegatravel.net +omegaxyz.com +ometal.com +omhoa.com +omiaozu.com +omicsclass.com +omicshare.net +omifanyi.com +omlzx.com +omlzz.com +ommoo.com +omni-pharma.com +omnibeautylux.com +omobi.cc +omofundm.com +omooo.net +omos88.com +omowork.com +ompchina.net +omsheji.com +on-sun.com +onaliyun.com +oncanyin.com +onccc.com +oncdp.com +once.im +onceai.com +onceoa.com +onche.net +oncity.cc +one-all.com +one-netbook.com +one918.com +onealert.com +oneapm.com +oneasp.com +onebiji.com +onechildnetwork.com +onecoder.site +oneconnectft.com +onedi.net +onedict.com +onedns.net +onefoot365.com +onegreen.net +onehome.me +onein.com +oneinstack.com +oneiwff.com +onekey.cc +onekeyghost.com +onemob.mobi +onemovie.com +oneniceapp.com +onenoter.com +onephper.com +oneplus.com +oneplus.net +oneplusbbs.com +oneplusmobile.com +onescorpion.com +oneshao.com +onesight.com +onething.net +onethingcloud.com +onethingpcs.com +onetog.com +onetwo.ren +onev.cat +onevcat.com +oneway.mobi +onewedesign.com +onewo.com +onewrt.com +onewsimg.com +onewsvod.com +onexinli.com +onexmail.com +oneyac.com +onezapp.com +onezh.com +onijiang.com +onitroad.com +onjobedu.com +online-edu.org +onlinecn.com +onlinedown.net +onlinekr.com +onlinenic.net +onlinesjtu.com +onlinexijiang.com +only-moment.com +only4.work +onlycatch.com +onlyedu.com +onlyeduit.com +onlyidc.com +onlylady.com +onlyling.com +onlyliuxue.com +onlyou.com +onlyred.net +onlyrubberparts.com +onlystem.com +onlytg.com +onlywem.com +onlyyou.com +onmpw.com +ono-bbb.com +ononw.com +onsummer.com +ontheroadstore.com +onthink.com +ontvb.com +onyealink.com +oo14.com +oobao.net +oocct.com +ooclab.com +oogcw.com +oohdear.com +ookk58.com +oolap.com +oomake.com +ooniu.com +ooogo.com +ooooai.com +oooooooooo213.com +ooopic.com +ooopn.com +ooppoo.com +ootu.cc +oouee.com +oouyan.com +ooxxc.com +op86.net +opahnet.com +opark.com +opatseg.com +opcool.com +opdown.com +open-douyin.com +open-falcon.com +open-falcon.org +open-open.com +open189.net +open580.com +openailab.com +openaizh.com +openanolis.org +openapp.run +openasic.org +openbayes.com +opencas.org +opencourt.vip +opendrivers.com +openeda.com +openedv.com +openerp.hk +openeuler.org +openfrp.net +opengcc.org +opengslb.com +openinstall.io +openke.net +openlab.co +openlanguage.com +openlearning.com +openlink.cc +openloong.org +openloongson.org +openluat.com +openlyenter.com +openmidas.com +openos.org +openqa.com +openredcloud.com +openrice.com +opensoce.com +openthos.com +openvsm.com +openwbs.com +openwrt.pro +openxiaoniu.com +operachina.com +operationwink.com +opfibre.com +opinion.works +opjmw1.ren +oplay.net +oplus.com +opmaterial.com +opp2.com +oppein.com +opplestore.com +oppo.com +oppo.mobi +oppo518.net +oppodigital.com +oppoer.me +oppofind.com +oppomobile.com +oppopay.com +opposhop.in +opposhore.com +opqnext.com +oprtb.com +ops.ci +opsapp.com +opskb.com +opskumu.com +opsnote.com +opstatics.com +opstool.com +optaim.com +optbbs.com +opticsjournal.net +optimix.asia +optimized-ai.com +optinetchina.com +optol.net +opwill.com +opxincai.com +opython.com +oq78.com +oqss.com +or-sun.com +oracle-tencent.com +oracle-tencent.net +oradbca.com +oraev.com +oralpractice.com +orange2h.com +orangeapk.com +orangemum.com +orangenews.hk +orangepi.org +orangesgame.com +orangetage.com +orangetech.ltd +orangevip.com +orasos.com +oray.com +oray.net +oraybox.com +oraycn.com +orayer.com +orayimg.com +oraytek.com +orbitmes.com +orcadt.com +orchome.com +orcode.com +ordosbank.com +orgcc.com +orgleaf.com +orgnitu.net +oriemac.com +orient-fund.com +orient-safety.com +orientalpearltower.com +orientalwisdom.com +orientcasa.com +orientfoods.net +orientgolf.com +orientpc.com +orienttumor.com +originalkindergarten.com +origincn.com +originlee.com +originoo.com +orihard.com +oritive.com +orleto.com +ornglad.com +orsoon.com +orspr.com +orsun.cc +orvibo.com +orz.asia +orz123.com +orz520.com +os-easy.com +os-v.com +os7blue.com +osall.com +osbccdn.com +osbean.com +osbzr.com +oscarma.com +oscartutor.com +oscarzhoud.com +oschina.com +oschina.io +oschina.net +oscloudcdns.com +osechina.com +osedu.net +oseminfo.com +oserror.com +osfipin.com +osg.so +osgchina.org +oshadan.com +oshoplive.com +oshwhub.com +osjiaju.com +osk-clean.com +oskwai.com +oslaw.net +osmsg.com +oso6.com +osoos.com +ososn.com +osp.io +ospp.com +osredm.com +oss-cn-beijing-aliyuncs.com +oss.link +oss.so +osschina.com +osvlabs.com +oswdj.com +oswhy.com +osx.cx +osyunwei.com +otcgd.com +otcms.com +otkglass.com +otms.com +otome.me +otomedream.com +otosaas.com +otp-express.com +otpub.com +ott4china.com +ottcn.com +ottcn.help +ottffss.net +ottshopping.net +otype.com +ou99.com +ouapi.com +oubk.com +ouchgzee.com +oudapay.com +oudiscover.com +oueia.xyz +oufa-travel.com +oufengblog.com +oufusoft.com +ougei.com +ouhua.info +ouj.com +oujistore.com +oukan.online +ouklqd.com +oulvnet.com +oumakspt.com +oumengke.com +ounh.org +ouo.us +ouoou.com +ouou.com +ouou.icu +ouougo.com +oupeng.com +oupengcloud.net +oupuzw.com +our100.net +our360vr.com +ourai.ws +ourail.com +ourats.com +ouravr.com +ourcdns.com +ourcm.net +ourcoders.com +ourdian.com +ourdlbs.com +ourdomains.com +ourdvs.com +ourdvs.info +ourdvs.net +ourdvsss.com +oureman.com +ourgame.com +ourglb0.com +ourglb0.info +ourglb0.net +ourglb0.org +ourhlb.com +ourhlb.info +ourhlb.org +ourhy.net +ourjay.com +ourjg.com +ourjiangsu.com +ourjs.com +ourjz.com +ourlife365.com +ourlinc.com +ourpalm.com +ourplay.net +ourren.com +oursakura.com +oursec1.com +oursec2.com +ourselec.com +oursketch.com +oursmc.com +ourtour.com +ourwebat.com +ourwebcdn.com +ourwebcdn.info +ourwebcdn.net +ourwebcdn.org +ourwebhttps.com +ourwebpic.com +ourwebpic.info +ourwebpic.org +ourwebpicvip.com +ousaikj.com +oushangstyle.com +oushinet.com +oushivoyages.com +ousweixin.com +outlets365.com +outletscn.com +ouvps.com +ouxiangxiezhen.com +ouyabosi.com +ouyada.com +ouyaoxiazai.com +ouyeel.com +ouyi.date +ouyingyimin.com +ouzhougoufang.com +ovalechina.com +ovcreative.com +ovdream.com +ovear.info +oversearecruit.com +overtrue.me +overturechina.com +ovicnet.com +ovital.com +ovital.net +ovopark.com +ovopic.com +ovscdns.com +ovscdns.net +ovuems.com +ovupre.com +ovuwork.com +owecn.com +owendswang.com +owllook.net +zyhao.com +owoit.com +owsgo.com +owspace.com +owulia.com +ox11.com +oxbridgedu.org +oxerr.net +oxiang.com +oxiaohua.com +oxrm.com +oxygenos.com +oxyry.com +oyeahgame.com +oyewifi.com +oyohyee.com +oyonyou.com +oyoozo.com +oyoumo.com +oywine.com +oyyj-oys.org +oz138.com +ozm.net +ozsp.com +ozzyad.com +p-dragon.com +p-e-china.com +p-er.com +zyh365.com +p04e.com +p1.com +p12345.com +p2cdn.com +p2hp.com +p2p.com +p2p001.com +p2p178.com +p2pbbs.net +p2pchina.com +p2pcq.com +p2peye.com +p2peye.net +p2pjd.com +p2psearcher.org +p2psearchers.com +p2ptouhang.com +p2pxing.com +p2pxsj.com +p4pp.com +p5412.com +p5w.net +p6157.com +p8games.com +p99998888.com +pa.ci +pa18.com +pa1pa.com +paahu.com +paalermat.com +paascloud.net +paasmi.com +paat.com +pabulika.com +pacdn.com +pacgatelaw.com +packtom.com +packty.com +pactera.com +padasuo.net +paddlepaddle.org +paddlewaver.com +pafwl.com +pageadmin.net +pagechoice.com +pagechoice.net +pagescube.com +pageseagle.com +pagurian.com +pahaoche.com +pahou.com +pahx.com +pahys.com +paibanxia.com +paichen.net +paidai.org +paidanzi.com +paidui.com +paiduidai.com +paihang114.com +paihang360.com +paihangbangqian10ming.com +paihb.com +paihotels.cc +paiky.net +pailitao.com +pailixiang.com +paimaprint.com +paiming.net +paintinghere.org +paipai.com +paipai123.com +paipaibang.com +paipaiimg.com +paipianbang.com +pairmb.com +paishanglai.net +paishi.com +paiwo.co +paixie.net +paixin.com +paixueche.net +paiyiws.com +paizhe.com +paizi.com +paizi.net +pajkdc.com +palace-international.com +palanceli.com +palm-h.com +palmestore.com +palmfungames.com +palmjoys.com +palmtrends.com +palmyou.com +pamss.net +pan131.com +pan58.com +pan666.net +pan8.net +panabit.com +panasonicmall.com +panchuang.net +panda-home.com +panda98.com +pandadastudio.com +pandafoundation.org +pandahelp.vip +pandahome.org +pandainc.cc +pandaminer.com +pandara.xyz +pandateacher.com +pandatv.com +pandoe.com +pandolia.net +panduoduo.net +panduoduo.online +panewslab.com +panfn.com +pangbu.com +pangcheng.com +pangdly.com +pangdo.com +panggugu.com +panghuasheng.com +pangku.com +pangku01.com +pangmao56.com +pangmaovc.com +pangniao.net +pangoing.com +pangolin-dsp-toutiao.com +pangolin-sdk-toutiao-b.com +pangolin-sdk-toutiao.com +pangolin-sdk-toutiao1.com +pangomicro.com +pangqiu.com +pangshu.com +pangubox.com +pangukj.com +pangupy.com +panguso.com +pangxieke.com +panjindamibest.com +panjunwen.com +panku.cc +panmeme.com +pannacloud.com +panoeade.com +panoramastock.com +panpanr.com +panpay.com +panqibao.com +panshi101.com +panshianquan.com +panshixk.com +panshiyun.com +panshy.com +pansino-solutions.com +pansoso.com +pansou.com +pantrysbest.com +pantum.com +panweizeng.com +panyouwl.com +panyun.com +panziye.com +paoao.net +paochefang.com +paodoo.com +paojiao.com +paolanhuanbao.com +paomo.com +paomou.com +paopao.com +paopaoche.net +paopaohd.com +paopaoshipin.com +paopaox.com +paovn.com +paoxq.com +paoxue.com +paoying.net +papa21.com +papa91.com +papaao.com +papajohnshanghai.com +papapoi.com +papaquan.com +paparecipe.net +papegames.com +paper.tv +paper211.com +paperask.com +paperbert.com +paperbus.com +paperbye.com +paperccb.com +paperclipclub.net +papercool.com +papereasy.com +papergod.com +paperisok.com +paperok.com +paperonce.org +paperopen.com +paperpass.com +paperrater.net +paperright.com +papersay.com +papersee.com +papertime.cc +papertime.shop +papertime.vip +paperweekly.site +paperword.com +paperyy.com +papocket.com +paquapp.com +parallelsras.com +paratera.com +parawikis.com +parduscycle.com +parentshk.com +paris-sengfu.net +parkbees.com +parkblop.com +parkchina.net +parkdaily.com +parkicloud.com +parkingjet.com +parkingos.club +parkingquickly.com +parkmecn.com +parkviewgreen.com +parnassusdata.com +parsein.com +partinchina.com +pass7.cc +passby.me +passer-by.com +zyguidao.com +passwordkeyboard.com +pasteur.nc +pat-edu.org +patachina.org +patchallin.com +patchew.org +patent9.com +patexplorer.com +patheagames.com +patmm.com +patsev.com +patsnapglobal.com +paul.pub +paulzzh.com +paulzzh.tech +paxdn.com +paxgl.com +paydxm.com +payeco.com +paykwai.com +paylf.com +paymax.cc +paympay.com +payrao.com +paysapi.com +payxinyi.com +pb114.xyz +pb89.com +pbcan.com +pbiso.com +pblie.com +pbsidc.com +pbsvpn.com +pbtxt.com +pc-daily.com +pc120.com +pc18.net +pc34.com +pc51.com +pc521.net +pc5210.com +pc528.net +pc55.com +pc6.com +pc6a.com +pc811.com +pc89.com +pc9.com +pcaposter.com +pcapqz.com +pcb-hl.com +pcb3.com +pcb818.com +pcbask.com +pcbba.com +pcbbar.com +pcbbbs.com +pcbdoor.com +pcbeta.com +pcbhunt.com +pcbiot.com +pcbjob.com +pcbserve.com +pcbsheji.com +pcbtech.net +pcbtime.com +pccpa.hk +pccppc.com +pcdog.com +pcdrv.com +pcdyu.com +pceggs.com +pceva.net +pcfreetime.com +pcgeshi.com +pcgogo.com +pch.pub +pchealthcheck.net +pchome.com +pchome.net +pchpic.net +pciiss.com +pcitc.com +pcme.info +pcmgr-global.com +pcmiao.com +pcmoe.net +pcnsh.com +pcoic.com +pcpop.com +pcr9170.com +pcsee.org +pcshou.com +pct86.com +pctu.net +pctutu.com +pctutu.net +pctvx.com +pcviva.com +pcw365.com +pcwenti.com +pcwgu.com +pcwl.com +pcwolke.com +pcyangguangban.com +pd-italent.com +pd-sts.com +pd120.com +pd17.com +pd521.com +pdazw.com +pdbeta.com +pdcuo.com +pdd.net +pddcdn.com +pddeu.com +pddim.com +pddpic.com +pddugc.com +pddzj.com +pdf.la +pdf00.com +pdf100.net +pdf1122.com +pdf5.net +pdfbianji.com +pdfdowell.com +pdfexpert.cc +pdffsy.com +pdffx.com +pdfjia.com +pdflibr.com +pdfwang.com +pdfxd.com +pdfzj.com +pdgzf.com +pdidc.com +pdim.gs +pdosgk.com +pdowncc.com +pdrcfw.com +pdreading.com +pdryx.com +pds.so +pdscb.com +pdsggzy.com +pdsgjj.com +pdskgb.com +pdsxww.com +pdszhtl.com +pdty123.com +pduoduo.vip +pdvisa.com +pdxx.net +pe.vc +pe8.com +pe898.com +pea3nut.com +pea3nut.info +peace-read.com +peacekang.com +peaceticket.com +peacha.net +peak-labs.com +pear.hk +pearlinpalm.com +pearvideo.com +peasrch.com +pec33.com +peccn.com +pechoin.com +pediy.com +pedli.com +peekatmygirlfriend.com +peento.com +peepic.com +zygj.net +peidu.com +peihao.space +peikua.com +peilian.com +peilian365.com +peilili.com +peiluyou.com +peise.net +peixun.net +peixun5.com +peixune.com +peixunmatou.com +peixunxue.com +peiyake.com +peiyin.net +peiyinge.com +peiyinshenqi.club +peiyou.com +peiyouwang.com +peizi.com +pemap.com +penavicoxm.com +pending-renewal-domain.com +pendoapp.com +pengchengenergy.com +pengfu.com +penging.com +pengke.com +penglaiu.com +penglei.name +pengpeng.com +pengqi.club +pengqian.win +pengrl.com +pengshengcaishui.com +pengyaou.com +pengyou.com +pengyoujia.me +pengyoukan.com +pengyuwei.net +penhuijiqi.com +pentalaser.com +pentaq.com +penxiangge.com +peonyta.com +people-squared.com +peopleapp.com +peopleart.tv +peopledailyhealth.com +peopledailypress.com +peoplemooc.com +peoplerail.com +peopleyuqing.com +pepresource.com +perfect-input.com +perfect99.com +perfectdiary.com +peropero.net +peroperogames.com +personpsy.org +perspectivar.com +pescms.com +pesiv.com +pesyun.com +pet86.com +peter-zhou.com +petersonlian.com +petkit.com +petkoo.com +petktasia.com +petmrs.com +petnakanojo.com +petpcb.com +petroren.com +petrvet.com +pettime.info +pettwo.com +pewld.com +pewsc.com +pexue.com +pf110.com +pf168.com +pf178.com +pfchai.com +pfhoo.com +pfwx.com +pg-leak.com +pg114.net +pg9997.com +pgbee.com +pgc.tv +pgcog.com +pgjcqm.com +pgl-world.com +pglstatp-toutiao-b.com +pglstatp-toutiao.com +pgq.win +pgsql.tech +pgyer.com +pgyidc.com +pgzs.com +pgzx.net +ph-fc.com +phaetonsemi.com +phalapi.net +pharmacodia.com +pharmcube.com +phaser-china.com +phb123.com +phedu.net +phezzan.com +philanthropy.xin +philipswechat.com +phlexing.com +phnamedns.com +phnixpool.com +pho.so +phodal.com +phodin.com +phoemix.net +phoenixtea.org +phoenixtv.com +phoent.com +phoer.net +phome.net +phone580.com +phonecoolgame.com +phonegap.me +phonegap100.com +phonekr.com +phonelinksoft.com +phonertech.com +phopic.com +photo0086.com +photo3050.com +photoartiz.com +photocnc.com +photocome.com +photohn.com +photoint.net +photops.com +photozoomchina.com +phouses.com +php-note.com +php-oa.com +php168.com +php318.com +php7.site +phpbbchina.com +phpbloger.com +phpchina.com +phpcj.org +phpcom.net +phpcomposer.com +phpconchina.com +phpcoo.com +phpddt.com +phpdr.net +phpe.net +phpernote.com +phperservice.com +phperxuqin.com +phperz.com +phpfdc.com +phpfs.com +phpha.com +phphub.org +phpjiami.com +phpjiayuan.com +phpkaiyuancms.com +phpkoo.com +phpmianshi.com +phpok.com +phpor.net +phprpc.org +phpsong.com +phpspider.org +phpstat.net +phpstudy.net +phpv.net +phpvar.com +phpvod.com +phpweblog.net +phpwind.com +phpwind.net +phpxs.com +phpyun.com +phys.net +physicalchina.vip +physoe.com +phyt88.com +phyy.com +pi7.com +pianhd.com +pianohl.com +pianona.com +pianoun.com +piantou.net +pianyit.com +pianyiwan.com +pianziweb.com +piao.com +piao.tips +piao88.com +piao88.net +piao95.com +piaobuy.com +piaochong.com +piaodaren.com +piaode.ren +piaodian.net +piaodown.com +piaohua.com +piaojubao.com +piaolia.com +piaoliang.com +piaoliusan.com +piaoniu.com +piaoquantv.com +piaoshen.com +piaotian.org +piaotian5.com +piaotongyun.com +piaowutong.cc +piaoxian.net +piaoxingqiu.com +piaoyi.org +piaoyun.net +piaozhilan.com +piaozone.com +piasy.com +pic138.com +pic16.com +pic21.com +pic3733.com +pic720.com +picatown.com +picbling.com +picc.com +piccamc.com +picchealth.com +piccjs.com +piclabo.xyz +picooc.com +picosmos.net +picp.io +picp.net +picsays.com +pictureknow.com +picup.shop +picxiaobai.com +picyq.com +pidcn.com +pieeco.com +piekee.com +piekee.net +pieshua.com +pifa333.com +pifukezaixian.com +pig4cloud.com +pigai.org +pigcms.com +pigji.com +pigjian.com +pigqq.com +pigx.vip +pigyun.com +pihitech.com +piikee.net +piimg.com +piios.com +piis.pw +pikacn.com +pilaipiwang.com +pili-zz.net +pilidns.com +pilifu.com +pilifx.com +pimaoji.com +pimei.com +pin-color.net +pin-qu.com +pin0312.com +pin18pin.com +pin2eat.com +pin5i.com +pinbaitai.com +pinbang.com +pinbayun.com +pincai.com +pinchain.com +pinduoduo.com +pinduoduo.net +pineprint.com +ping-jia.net +ping-qu.com +zygg.cc +pingan.com +zygames.com +pingancdn.com +pinganfang.com +pinganwj.com +pinganyun.com +pinganzhengyang.com +pingcap.com +pingcode.tech +pingcoo.com +pingfangx.com +pingfenbang.com +pinggu.com +pinggu.org +pingguobaoxiu.com +pingguodj.com +pingguolv.com +pinghe.com +pinghu.tech +pinghui-cn.com +pingjiata.com +pingnanlearning.com +pingnuosoft.com +pingpang.info +pingpangwang.com +pingpingw.com +pingpingze.com +pingplusplus.com +pingpongx.com +pingshu8.com +pingshuku.com +pingshuocoal.com +pingstart.com +pingtan6.com +pinguo.us +pingwest.com +pingxiaow.com +pingxuan123.com +pingxx.com +pingyin.cc +pinhaohuo.com +pinhuba.com +pinhui001.com +pinidea.co +pinjiaolian.com +pinjie.cc +pinkecity.com +pinkertech.com +pinkobaby.com +pinkoichina.com +pinla.com +pinlian.net +pinmanduo.com +pinmh.com +pinmie.com +pinmuch.com +pinpai1.com +pinpaidadao.com +pinpailiu.com +pinpaime.com +pinpaing.com +pinqugongxiangktv.com +pinqukeji.com +pinshan.com +pinshu.com +pintu360.com +pintuan.com +pintuer.com +pintuxiu.net +pinuc.com +pinyuan.cc +pinyuew.com +pinyuncloud.com +pinzhi.org +pinzhikeji.net +pinzs.com +pioneersci.com +pipa.com +pipacdn.com +pipacoding.com +pipahealth.com +pipapai.com +pipaw.com +pipaw.net +pipedetect.com +pipikou.com +pipimp3.com +pipipan.com +pipipifa.com +pipiti.com +pipix.com +pipsemi.com +piqs.com +piscesys.com +pisx.com +pix73.com +pixelauth.com +pixhey.com +pixivic.com +pixivic.net +piyingke.com +piyipiba.com +pj-road.com +pj.com +pj00001.com +pj155.com +pjbest.com +pjf.name +pjgjg.com +pjhome.net +pjhubs.com +pjjyzx.com +pjlyds.com +pjob.net +pjrcn.com +pjrunfutang.com +pjtime.com +pk052.com +pk106.com +pk1xia.com +pk2234.com +pk361.com +pk532.com +pk571.com +pk855.com +pk995.com +pkbeta.com +pkbff.com +pkbhandari.com +pkbigdata.com +pkbkok.com +pkdyplayer.com +pkfj.xyz +pkfsxh.com +pkgklk.com +pkm360.com +pkmmo.com +pko123.com +pkoplink.com +pkpk.com +pkpky.com +pkpmsoft.com +pksfc.com +pksky.com +pku-hit.com +pku-lvxin.com +pku666.com +pkubr.com +pkucare.com +pkufh.com +pkulaw.com +pkulaws.com +pkupuzzle.art +pkurc.com +pkusky.com +pkusp.com +pkuszh.com +pkvs.com +pkzx.com +plaidc.com +plalzhang.com +planckled.com +planetmeican.com +plantname.xyz +plantower.com +plateno.cc +plateno.com +platenogroup.com +platinum-traveller.com +platinumchina.com +play-analytics.com +zyfj.com +play68.com +play700.com +play86.com +play910.com +play920.com +playbeta.net +playcomet.jp +playcrab.com +playfifa.com +playgm.cc +playlu.com +playnail.com +playpangu.com +playpi.org +playsm.com +playstudy.com +playtai.com +playtai.net +playuav.com +playwonderful.com +playwxgame.com +playyx.com +plcdn.net +plcent.com +plcloud.com +plesk-cn.com +plexpt.com +plngan.net +plob.org +plotcup.com +plqdf.com +plsadx.com +pluosi.com +plures.net +zyfchina.com +plusgantt.com +plusplustu.com +plutuspay.com +pluvet.com +plycd.com +plyz.net +pm-summit.org +pm222.com +pm25.com +pm25.in +pm265.com +pm28.com +pm360.com +pm360.net +pmacasia.com +pmcaff.com +pmceo.com +pmdak.com +pmdaniu.com +pmichina.org +pmish-tech.com +pmkiki.com +pmovie.com +pmparkchina.com +pmphmooc.com +pmptuan.com +pmquanzi.com +pmr66.com +pmsmzyy.com +pmsra.com +pmtalk.club +pmtoo.com +pmtown.com +pmway.com +pmxprecision.com +pmxsd.com +pmyes.com +pmyuanxing.com +pn1waq.com +pn66.com +pnetp.org +pngbag.com +pngui.com +pnlyy.com +pnol.net +pnwww.com +pnxs.com +pnzpw.com +po.co +pobaby.net +pobasoft.com +pocidian.com +pocketdigi.com +pocketuni.net +pocomagnetic.com +pocosite.com +pocsuite.org +podaaec.cyou +podinns.com +podjiasu.org +poem88.com +poemaster.com +poemfk.com +poemlife.com +pohaier.com +pohover.com +poikm.com +poikuri.com +poizon.com +poj.org +pokemmc.com +pokemon-unitepgame.com +pokermate.net +poketec.com +pokooo.com +polaris-vc.com +polars.cc +polarxiong.com +polaxiong.com +polayoutu.com +polebrief.com +polingba.com +poluoluo.com +polycent.com +polycn.com +polycom-china.com +polycom-jl.com +polyhotel.com +polytheatre.com +polytheatresz.com +polyv.net +polywuye.com +pomears.com +pomoho.com +ponley.com +ponycool.com +ponytest.com +ponytestqd.com +ponytestsh.com +ponytestsz.com +poo1.club +pooban.com +poobbs.com +poocg.com +pooioo.com +pook.com +pookcdn.com +poorren.com +pooy.net +pop-bags.com +pop-fashion.com +pop-shoe.com +pop136.com +pop800.com +popasp.com +popdg.com +popgo.org +popiano.org +popkart.tv +popkx.com +popmart.com +popmsg.com +popoho.com +popoxiu.com +poppace.com +poppur.com +popqiu.com +popsoft.com +popu.org +popumed.com +poputar.com +popziti.com +porlockz.com +porschesky.com +portablesoft.org +ports-intl.com +portugal-visacenter.com +pos580.com +posbar.com +zyfbjzsc.com +poseidong.com +posfree.com +posge.com +posn.net +post183.net +posterlabs.com +postgres.fun +postgresqlchina.com +postjson.com +postpony.com +potevio.com +potianji.net +potplayer.org +potplayercn.com +pouchcontainer.io +poweizu.com +power-bd.com +power-sensor.com +powerapp.io +powerbibbs.com +powercdn.com +powercx.com +powerde.com +powereasy.net +powerex1.com +poweric-china.com +powerlaw.ai +powerleadercdn.com +powerleaderidc.com +powerskystudio.com +powervision.me +powerxene.com +powsir.com +powzamedia.com +pozou.com +pp-xxgd.com +pp.cc +pp100.com +pp130.com +pp1o.com +pp25.com +pp250.com +pp51.com +pp6.cc +pp63.com +pp66.cc +pp8.com +pp9l.com +ppbizon.com +ppcall.com +ppchuguan.com +ppcode.com +ppcost.com +ppdai.com +ppdaicdn.com +ppdd.com +ppdesk.com +ppdqk.com +ppduck.com +ppfeng.com +ppfw.org +ppgame.com +pphimalayanrt.com +ppio.cloud +ppj.io +ppjtc.net +ppkankan01.com +ppkanshu.com +ppkao.com +pplib.net +pplive.com +ppliwu.com +pplock.com +ppm2.com +ppmake.com +ppmm.org +ppmoney.com +ppnames.com +pppet.net +pppie.com +pppoevps.com +pppoo.com +ppppic.com +ppqq.net +pps.tv +ppsao.com +ppsimg.com +ppsoftw.com +ppspain.com +ppsport.com +ppstream.com +ppstream.net +ppstv.com +ppswan.com +ppt118.com +ppt123.net +ppt20.com +ppt360.com +ppt920.com +pptair.com +pptbest.com +pptboss.com +pptbz.com +pptelf.com +ppthi-hoo.com +pptianliao.com +pptjia.com +pptmall.net +pptmao.com +pptmind.com +pptok.com +pptschool.com +pptstore.net +pptsupermarket.com +pptutor.com +pptv.com +pptvyun.com +pptxy.com +ppurl.com +ppvi.net +ppvod.net +ppwan.com +ppwang.com +ppwwyyxx.com +ppx520.com +ppxclub.com +ppxs.net +ppxvod.com +ppxwo.com +ppys.net +ppzhan.com +ppzhilian.com +ppzuche.com +ppzuowen.com +pqdtcn.com +pqpo.me +pqt-bearing.com +pqyhigh.com +pqylow.com +pqymiddle.com +pqzhichan.com +prcedu.com +prcee.org +pre-sence.com +pre6qh.com +precise-test.com +precision-biz.com +prefer-tyl.site +preludeid.com +premedglobal.com +pressmine.com +prestodb-china.com +prestolite-bj.com +prfc-cn.com +prfog.com +pricl.com +primegoalgroup.com +primerachina.com +primeton.com +print86.com +printer-china.com +printerwhy.net +printhome.com +printidea.art +printlake.com +prior24.com +privateadx.com +privatess.win +privspace.net +prjdrj.com +pro6e.com +procar.cc +processon.com +zyexhibition.com +productivity.wiki +proginn.com +program.today +programfan.com +programmer.group +programmer.ink +programschool.com +progressingeography.com +project-oa.com +projectaker.com +projector-window.com +prolto.com +promisingedu.com +pronax.tech +propsad.com +proresearch.org +prositsole.com +protect-file.com +prototype.im +providence-chemicals.com +prowritingteam.com +proximabeta.com +proya-group.com +proya.com +proyy.com +prts.wiki +prxxff.com +przhushou.com +przwt.com +ps123.net +ps265.com +ps314.com +psbc.com +psc4d.com +pscddos.com +psd.net +psd8.com +psdiv.com +pse-meti.com +pshsoutlet.com +psjxty.com +psnine.com +psoneart.com +pstatp.com +pstips.net +pstxg.com +psy-1.com +psychcn.com +psychspace.com +psyzg.com +psznh.com +pszx.com +pt-bus.com +pt-link.com +pt80.com +pt80.net +ptausercontent.com +ptbus.com +ptc-asia.com +ptcloud.info +ptcxmy.com +ptdsh.com +ptfdc.com +ptfish.com +pthc1.com +pthc8.com +pthxuexi.com +ptimg.org +ptkill.com +ptmind.com +ptorch.com +ptotour.com +ptpcp.com +ptshare.org +ptteng.com +ptweixin.com +ptxz.com +ptyg.com +ptyly.com +ptyqm.com +pua.hk +puaas.com +puaihospital.net +puasu.com +puata.info +pubchn.com +pubg8x.com +pubghelper.com +pubgtool.com +publiccms.com +pubmed007.com +pubone.cc +pubsage.com +pubukeji.com +pubuo.com +pubyun.com +pucms.com +pudn.com +pudongwater.com +puduzhai.com +puem.org +puer10000.com +puercha.cc +puercn.com +puertea.com +puhuacapital.com +puhuahui.com +puiedu.com +pujia8.com +pujiaba.com +pujiahh.com +pukalteng.com +pukinte.com +pule.com +pulisi.com +pullwave.com +pullword.com +pullywood.com +puloud.com +pumpvip.com +punaide.com +punakong.com +punchbox.info +puoke.com +pupuapi.com +pupugo.com +pupumall.com +pupumall.net +pupurazzi.com +pupuwang.com +purcotton.com +purcow.com +pureage.info +pureasme.com +purecpp.org +pureh2b.com +purenyy.com +purewhite.io +puronglong.com +pusa123.com +push2u.com +pushauction.com +pushcfg.com +pushgrid.net +pushjoy.com +pushthink.com +pushtime.net +putaoa.com +putaocdn.com +putaogame.com +putaojiu.com +putclub.com +putdb.com +putian508.com +putiandai.com +putitt.com +putonsoft.com +putop.net +puusa.net +puwenlong.com +puworld.com +puyurumen.com +puzeyf.com +pv001.net +pv4b.com +pvc123.com +pvcpanel-mzq.com +pvkj.com +pvpin.com +pw1999.com +pw88.com +pwmis.com +pwmqr.com +pword.net +pwrd.com +pwsannong.com +px0571.com +px5a.com +pxb7.com +pxc33.com +pxcn168.com +pxdier.net +pxemba.com +pxhuiben.com +pxtop1.com +pxtsc.com +pxtu.com +pxtx.com +pxx.io +py-axa.com +py1080p.com +py1314.com +py168.com +py3study.com +py94.com +pyadx.com +pyasfunds.com +pychina.org +pyddd.com +pyer.site +pyhead.com +pyjia.com +pyjsh.com +pyjtjx.com +pyker.com +pylist.com +pyneo.com +pyou.com +pysmei.com +pystarter.com +pytgo.com +python-china.com +python100.com +python51.com +pythonav.com +pythonclub.org +pythondoc.com +pythoner.com +pythonheidong.com +pythonke.com +pythonpub.com +pythontab.com +pythontip.com +pytorchtutorial.com +pytpw.com +pyxjiang.com +pyxk.com +pyxww.com +pyynsm.com +pz6.com +pzcgw.com +pzds.com +pzhccb.com +pzjdimg.com +pzjiadian.com +pzlink.com +pznews.com +pznrfsy.com +pznsh.com +pzoom.com +pzpu.com +q-alumni.com +q-dazzle.com +q-supreme.com +q1.com +q1qfc323.com +q1qq2.com +q2ak.com +q2d.com +q2zy.com +q3060.com +q5.com +q6993.com +q6haqi.com +q6u.com +q77777777.com +qacn.net +qalex.com +qapi.cc +qaqgame.com +qast.com +qaxanyu.com +qaxanyuv6.com +qaxcloudwaf.com +qaxwzws.com +qazxsdc.com +qb5.tw +qb5200.co +qbangmang.com +qbb6.com +qbdgame.com +qbeenslee.com +qbitai.com +qbjrxs.com +qbox.me +qbox.net +qbview.com +qbxz.com +qc-hr.com +qc178.com +qc188.com +qc6.com +qcc.com +zyecp.com +qccip.com +qccost.com +qccr.com +qccrm.com +qcds.com +qcenglish.com +qchdlb.com +qches.com +qchouses.com +qcinterfacet.com +qckuaizhi.com +qcloud-edumall.com +qcloud.com +qcloud.la +qcloudapps.com +qcloudcdn.com +qcloudcjgj.com +qcloudclass.com +qcloudcos.com +qclouder.com +qcloudestate.com +qcloudgme.com +qcloudimg.com +qcloudipv6.com +qcloudmail.com +qcloudmarket.com +qcloudns.com +qcloudsmartiot.com +qcloudtcic.com +qcloudtiw.com +qcloudtrip.com +qcloudtt.com +qcloudwaf.com +qcloudwzgj.com +qcloudzygj.com +qcmrjx.com +qcmuzhi.com +qcoco.com +qconbeijing.com +qconshanghai.com +qcplay.com +qcq3.com +qcql.com +qcr.cc +qcr365.com +qcsdn.com +qcsj.com +qcstudy.com +qctsw.com +qcwan.com +qcwdpt.com +qcwhxx.com +qcwlpay.com +qcwlseo.com +qcwxjs.com +qcy.com +qcymall.com +qcyoung.com +qczb.app +qczj.xyz +qd-metro.com +qd-weimob.com +qd256.com +qd8.com +qdac.cc +qdaeon.com +qdaiduo.com +qdaily.com +qdairlines.com +qdairport.com +qdbdsk.com +qdcaijing.com +qdccb.com +qdccdl.com +qdcdpjw.com +qdcu.com +qdcypf.com +qdcz.com +qddfxfpx.com +qddown.com +qddsjx.com +qdfuns.com +qdgaoshanyun.com +qdgw.com +qdgxqrc.com +qdhantang.com +qdhmsoft.com +qdhonmon.com +qdhsty.com +qdingnet.com +qdjimo.com +qdjjwsjf.com +qdjxhz.com +qdkebang.com +qdkingst.com +qdkmjc.com +qdkongtiao.com +qdlanrun.com +qdliye.com +qdlongre.com +qdmama.net +qdmcxh.com +qdmm.com +qdnsyh.com +qdooc.com +qdpdjx.com +qdpr.com +qdqihang.com +qdqunweite.com +qdsay.com +qdsbx.com +qdshitangchengbao.com +qdsxtkj.com +qdsysj.com +qdtech.ai +qdtgood.com +qdthgs.com +qdwebim.com +qdwenxue.com +qdwsb.com +qdxfgy.com +qdxtcw.com +qdycdx.com +qdyckj.com +qdyijiamei.com +qdymjy.com +qdyudie.com +qdyxbyy.com +qdzhengkang.com +qdzmm.com +qdznjt.com +qdzxyy.com +qdzz.com +qechu.com +qeebike.com +qeejoo.com +qeeka.com +qeeniao.com +qeerd.com +qefee.com +qeodns.com +qeodns.net +qerwsoft.com +qeto.com +qf027.com +qfamilylaw.com +qfang.com +qfangimg.com +qfcm.vip +qfedu.com +qfeiche.com +qfgolang.com +qfihdr.com +qfpay.com +qfq.me +qfrost.com +qfrxyl.com +qfsh.com +qfsyj.com +qftouch.com +qfun.com +qg.net +qg108.com +qgbnzb.com +qgbzyzl.com +qgcyjq.org +qgenius.com +qggfji.com +qgggxxw.com +qgpx.com +qgren.com +qgsydw.com +qgtql.com +qgvps.com +qgw.tm +qgxl.org +qgysj.org +qgyyzs.net +qgzzz.com +qh-cdn.com +qh-lb.com +zyea.com +qh.la +qh24.com +qh5800.com +qhass.org +qhbtv.com +qhcdn.com +qhchcb.com +qhclass.com +qhcz.net +qhd.net +qhdatongnews.com +qhdfxkj.com +qhdgjj.com +qhdglc.com +qhdnews.com +qhdok.com +qhdren.com +qhea.com +qhee-ma.com +qhee.com +qhfx.net +qhgxq.com +qhgy.net +qhimg.com +qhimgs0.com +qhimgs1.com +qhimgs2.com +qhimgs3.com +qhimgs4.com +qhimgs5.com +qhimgs6.com +qhimi.com +qhjyks.com +qhkyfund.com +qhlhfund.com +qhliepin.com +qhlingwang.com +qhlly.com +qhlyou.com +qhm123.com +qhmed.com +qhmsg.com +qhnet.club +qhnet.site +qhnews.com +qhong.net +qhpcc.com +qhpk.net +qhpta.com +qhrcsc.com +qhres.com +qhres2.com +qhrmyy.net +qhscw.net +qhsetup.com +qhsklw.com +qhstatic.com +qhsxf.net +qhtibetan.com +qhtycp.com +qhtyzx.com +qhupdate.com +qhwh.com +qhwmw.com +qhwww.com +qhxmlyts.com +qhxyms.com +qhyccd.com +qhyzzzs.com +qi-che.com +qi-ju.com +qi-wen.com +qi58.com +qiaiju.com +qiaiou.com +qiak.com +qiakr.com +qialol.com +qian-gua.com +qianba.com +qianbao.com +qianbaocard.com +qianbaohr.com +qianchengriben.com +qiandaoapp.com +qiandaqian.com +qiandd.com +qianduan.com +qianduanblog.com +qiandw.com +qianfan123.com +qianfan365.com +qianfanwanmu.com +qianfanyun.com +qiang100.com +qiangbus.com +qiangchezu.com +qiangchuan.com +qiangdun.com +qianggen.com +qianggou5.com +qiangidc.vip +qiangka.com +qianglihuifu.com +qiangmi.com +qiangpinzhe.com +qiangqiang5.com +qiangrongkg.com +qianhai12315.com +qianhaiaiaitie.com +qianhaibs.com +qianhuanhulian.com +qianhuaweb.com +qianhujz.com +qianinfo.com +qianjia.com +qianjiapp.com +qianjiayue.com +qianjin5.com +qianjing.com +qianju.org +qianka.com +qianliao.net +qianliao.tv +qianliaowang.com +qianlima.com +qianlimafile.com +qianlimazb.com +qianlinkj.com +qianlong.com +qianluxiaoshuo.com +qianmaiapp.com +qianmaidao.com +qianmh.com +qianmi.com +qianmingyun.com +qianmo.info +qianmoqi.com +qianmu.org +qianng.com +qianniu.com +qianp.com +qianpailive.com +qianpen.com +qianpin.com +qianqi.net +qianqian.com +qianqiankeji.xyz +qianqiantao.com +qianqu.cc +qianrihong.net +qianrong.me +qianshanren.com +qiantucdn.com +qianvisa.com +qianwa.com +qianxiangbank.com +qianxibj.net +qianxin.com +qianxinet.com +qianxingniwo.com +qianxs.com +qianxun.com +qianxunclub.com +qianyan.biz +qianyan001.com +qianyanapp.com +qianyu56.com +qianyuangx.com +qianyue999.com +qianyuewenhua.xyz +qianyunyingyong.com +qianyuwang.com +qianzhan.com +qianzhan123.com +qianzhengbanliliucheng.com +qianzhengdaiban.com +qianzhengziliao.com +qianzhu8.com +qiao88.com +qiaobo.net +qiaobutang.com +qiaochucn.com +qiaodan.com +qiaofangyun.com +qiaofanxin.com +qiaohu.com +qiaohuapp.com +qiaohumall.com +qiaojiang.tv +qiaomaren.com +qiaomi.com +qiaomizi.vip +qiaomukeji.com +qiaoshenghuo.com +qiaotu.com +qiaoxuanhong.com +qiaoyi.org +qiaozuji.com +qiaqa.com +qiaqiafood.com +qiawei.com +qibazaixian.com +qibingdaojia.com +qibo168.com +qibookw.com +qibosoft.com +qibuge.com +qibuluo.com +qicaispace.com +qicaitechan.com +qicaixianhua.com +qichacha.co +qichacha.com +qichacha.net +qichamao.com +qichecailiao.com +qichechaoren.com +qichegeyin.com +qichehot.com +qichemoxing.net +qichetansuo.com +qichetong.com +qichexin.com +qichezhan.net +qichuang.com +qicolor.com +qicp.net +qicp.vip +qida100.com +qidasoft.com +qidewang.com +qidian.com +qidianbox.com +qidiandasheng.com +qidianjob.com +qidianla.com +qidiantu.com +qidic.com +qidimjg.com +qidisheng.com +qidisheng.net +qidiwang.com +qidong.name +qidongyx.com +qidou.com +qie.tv +qiecdn.com +qieerxi.com +qiekj.com +qieman.com +qiepai.com +qieta.com +qieying.com +qieyou.com +qieyuedu.com +qiezip.com +qifake.com +qifandianlansh.com +qifangw.com +qifawang.com +qifeiye.com +qifub.com +qifuedu.com +qifun.com +qigongworld.net +qiguo.com +qiguoread.com +qih.cc +qihaoip.com +qihaxiaoshuo.com +qihihi.com +qihoo.com +qihoo.net +qihu.com +qihu.org +qihuapi.com +qihucdn.com +qihuiwang.com +qihuorumen.com +qii404.me +qiieer.net +qiigame.com +qijee.com +qiji.tech +qijiadianzi.com +qijian99.com +qijianzs.com +qijiapay.com +qijiarui-test.com +qijiayoudao.net +qijilvxing.com +qijishow.com +qijizuopin.com +qijoe.com +qijuan.com +qijucn.com +qikan.com +qikanmulu.com +qikanw.com +qikegu.com +qikekeji.com +qikoo.com +qikqiak.com +qiku-cloud.com +qiku.com +qikuailianwang.com +qikucdn.com +qikula.com +qilang.net +qilanxiaozhu.co +qilanxiaozhu.net +qilanxiaozhu.vip +qilecms.com +qiliaokj.com +qilindao.com +qiling.org +qilingames.com +qilinxuan.net +qilitech.ltd +qilong.com +qilongtan.com +qiluhospital.com +qiluhua.com +qiluivf.com +qiluyidian.mobi +qiluyidian.net +qima-inc.com +qiman5.com +qiman6.com +qimao.com +qimaomh.com +qimhua.com +qimi.com +qimiaomh.com +qimiaosenlin.com +qimiaozhiwu.com +qimihe.com +qiming.tech +qimingcx.com +qimingdao.com +qimingpian.com +qimingvc.com +qimingventures.com +qimingzi.net +qiminzi.com +qimodesign.com +qimser.com +qinbangherb.com +qinbei.com +qinbing.com +qinblog.net +qincai.com +qincaigame.com +qinchacha.com +qincj.me +qinco.net +qineasy.com +qiner520.com +qinfan.xyz +qing-shan.com +qing.su +qing5.com +qingbh.com +qingcache.com +qingcdn.com +qingchenyu.com +qingchu.com +qingchunbank.com +qingcigame.com +qingclass.cc +qingclass.com +qingclasscdn.com +qingcloud.com +qingcongxiaoyuan.com +qingdan.com +qingdaochina.org +qingdaograndtheatre.com +qingdaogxt.com +qingdaokohap.com +qingdaomaidige.com +qingdaomedia.com +qingdaomuseum.com +qingdaonews.com +qingdaoren.com +qingdaoticai.com +qingf001.com +qingfanqie.com +qingflow.com +qingfo.com +qingful.com +qingfuwucdn.net +qingfuyun.com +qinggl.com +qingguo.com +qinghe.tv +qinghua.cc +qinghua2017.com +qinghuaonline.com +qinghuaxuezi.com +qinghuo.net +qingjiaocloud.com +qingju.com +qingkan.tw +qingkeji.com +qingkuaipdf.com +qingkuw.com +qinglanji.com +qingliange.com +qingliangkeji.com +qinglin.net +qingliulan.com +qinglm.com +qinglue.net +qingman5.com +qingmang.mobi +qingmayun.com +qingmei.me +qingmo.com +qingmob.com +qingmuit.com +qingnianlvxing.com +qingnianwang.com +qingpanduola.com +qingpinji.com +qingqikeji.com +qingqin.com +qingrenw.com +qingruanit.net +qingshou.online +qingshow.net +qingsj.com +qingsong123.com +qingsongchou.com +qingstor.com +qingsucai.com +qingtaoke.com +qingtengzhilian.com +qingtian16265.com +qingtiancms.net +qingting.fm +qingting123.com +qingtingfm.com +qingtingip.com +qingtingtrip.com +qingtuan.tech +qinguanjia.com +qingwawa.com +qingwk.com +qingxiaoyun.com +qingxuetang.com +qingxun.com +qingyougames.com +qingzhanshi.com +qingzhiwenku.com +qingzhouaote.com +qingzhouip.com +qingzhu.co +qiniu.com +qiniu.in +qiniu.io +qiniuapi.com +qiniucdn.com +qiniudn.com +qiniudns.com +qiniukodo.com +qiniup.com +qiniupkg.com +qiniutek.com +qiniuts.com +qinlake.com +qinms.com +qinpu.com +qinqiang.org +qinqin.com +qinqinxiaobao.com +qinsilk.com +qinsmoon.com +qinto.com +qinwanghui.com +qinxing.xyz +qinxue.com +qinxue100.com +qinxue365.com +qinxuye.me +qinyi.net +qinzc.me +qinzhe.com +qinzhou8.com +qinzidna.com +qinziheng.com +qionghaif.com +qiongming.com +qipai007.com +qipaifan.com +qipamaijia.com +qipayuan.com +qipeiren.com +qipeisyj.com +qipeng.com +qiqici.com +qiqids.com +qiqipu.com +qiqiuyu.com +qiqiuyun.net +qiqu.la +qiquhudong.com +qire123.com +qiredy.com +qiremanhua.com +qirexiaoshuo.com +qirui.com +qisaoba.com +qisbook.com +qiseqiao.com +qishixitong.com +qishixunmei.com +qishu.co +qishu.tw +qishu.vip +qishunbao.com +qishuta.net +qisool.com +qita.love +qitete.com +qiti88.com +qitian-tech.com +qitiancom.com +qitongxq.com +qitoon.com +qitxt.com +qiu-ai.com +qiubiaoqing.com +qiucinews.com +qiudian.net +qiue21.com +qiufaqf.com +qiufengblog.com +qiugouxinxi.net +qiujiaoyou.net +qiujuer.net +qiujunya.com +qiukuixinxi.com +qiumei100.com +qiumeiapp.com +qiumibao.com +qiumijia.com +qiuqiusd.com +qiushi.com +qiushibaike.com +qiushibang.com +qiushile.com +qiushiwl.com +qiushu.cc +qiushuzw.com +qiusuoge.com +qiutianaimeili.com +qiutianmi.com +qiuweili.com +qiuwen.wiki +qiuwu.net +qiuxue360.com +qiuyexitong.com +qiuyueban.com +qiuzhang.com +qiuzhijiangtang.com +qiuziti.com +qiwen001.com +qiwenhui.com +qixia.ltd +qixin.com +qixin007.com +qixin18.com +qixin19.com +qixincha.com +qixing123.com +qixingcr.com +qixingquan.com +qixingtang.com +qixoo.com +qixuny.com +qiye.la +qiye.net +qiye163.com +qiye8848.com +qiyegongqiu.com +qiyeku.com +qiyeshangpu.com +qiyeshangpu.net +qiyetong.com +qiyeweixin.com +qiyewenhua.net +qiyeyougou.com +qiyeyouxiang.net +qiyi.com +qiyicc.com +qiyimusic.com +qiyipic.com +qiyou.com +qiyouji.com +qiyoujiage.com +qiyouwang.com +qiyouworld.com +qiyouzy.com +qiyqh.com +qiytech.com +qiyuange.com +qiyucloud.com +qiyue.com +qiyuebio.com +qiyuesuo.com +qiyujiasu.com +qiyukf.com +qiyukf.net +qiyukid.com +qiyuntong.com +qiyutianxia.com +qizhanming.com +qizheplay.com +qizhidao.com +qizhihaotian.com +qizhuyun.com +qizi.la +qizuang.com +qj023.com +qj26.com +qjbian.com +qjcz.com +qjfy.com +qjhlw.com +qjhm.com +qjimage.com +qjkc.net +qjmotor.com +qjrc.com +qjren.com +qjsb88.com +qjsmartech.com +qjtrip.com +qjwenming.com +qjwhzs.com +qjxgold.com +qjystang.com +qk365.com +qkagame.com +qkan.com +qkang.com +qkblh.com +qkcdn.com +qkeke.com +qkhtml.com +qking.ink +qkkjd.com +qkl123.com +qknown.com +qksw.com +qktoutiao.com +qkvop.com +qkzj.com +ql-cellbank.com +ql-msx.com +ql18.mobi +ql1d.com +ql361.com +ql361.shop +ql47.com +ql789.com +qlbchina.com +qlbg.net +qlchat.com +qldzj.com +qlelectrons.com +qlgpy.com +qlidc.com +qlivecdn.com +qll-times.com +qlmoney.com +qlotc.net +qlpw.net +qlrc.com +qls.fun +qlspx.com +qlteacher.com +qluu.com +qlwmw.com +qlxiaozhan.com +qm000.com +qm120.com +qm989.com +qmacro.com +qmail.com +qmango.com +qmcaifu.com +qmconfig.com +qmei.me +qmei.vip +qmhd87.com +qmht.com +qmht.mobi +qmiaomh.com +qmqm.net +qmrobot.com +qmsjmfb.com +qmtj.net +qmtk.com +qmtv.com +qmwtp.com +qmwyy.com +qmyq.com +qmz5.com +qmzs.com +qnbar.com +qncyw.com +qnfuli.com +qngcjx.com +qngslb.com +qnhdkj.com +qnhuifu.com +qnjslm.com +qnl1.com +qnmlgb.tech +qnqcdn.com +qnqcdn.net +qnsb.com +qnsdk.com +qnssl.com +qntz.cc +qnvod.net +qnydns.com +qnydns.net +qolai.com +qooboo.com +qoocc.com +qooic.com +qookar.com +qoqaoligei.com +qoqkkhy.com +qosq.com +qp110.com +qp46.com +qp666.com +qpaimg.com +qpb187.com +qpdiy.com +qpgame.com +qplus.com +qpoc.com +qpstar.com +qpxiaoshuo.com +qpzq.net +qq-xmail.com +qq.cc +zye.cc +qq.com +qq.design +qq.do +qq.net +qq123.xin +qq163.cc +qq163.com +qq163.net +qq190.com +qq2009.com +qq387.com +qq499.com +qq5.com +qq52o.me +qq5818.com +qq717.com +qq7c.com +qq933.com +qqaiqin.com +qqaku.com +qqan.com +qqba.com +qqbiaoqing.com +qqbiaoqing8.com +qqbibile.com +qqcf.com +qqcg.com +qqcjw.com +qqdcw.com +qqddc.com +qqdeveloper.com +qqdiannao.com +qqdiannaoguanjiadl.com +qqdna.com +qqe2.com +qqeo.com +qqgameapp.com +qqgamedesign.com +qqgb.com +qqgd.com +qqgexing.com +qqgexingqianming.com +qqgx.com +qqgyhk.com +qqhao123.com +qqhbx.com +qqhelper.net +qqhot.com +qqhubei.com +qqhuhu.com +qqjay.com +qqje.com +qqjia.com +qqjjsj.com +qqju.com +qqjyo.com +qqkqw.com +qqkrmotors.com +qqku.com +qqkuyou.com +qqleju.com +qqlxb.com +qqma.com +qqmail.com +qqmcc.org +qqmda.com +qqmra.com +qqmtc.com +qqmusic.com +qqnn.net +qqodjn.com +qqokk.com +qqopenapp.com +qqpao.com +qqpifu.com +qqppt.com +qqq.tv +qqqiyemail.com +qqqiyeyouxiang.com +qqqnm.com +qqqooo.com +qqqqqqqqqqqqq.com +qqrain.com +qqread.com +qqride.com +qqrizhi.com +qqro.com +qqsgame.com +qqshidao.com +qqshuoshuo.com +qqsk.com +qqsm.com +qqsort.com +qqssly.com +qqstudent.com +qqsurvey.net +qqswzx.com +qqt.com +qqteacher.com +qqtest.com +qqtf.com +qqtlr.com +qqtn.com +qqtouxiangzq.com +qqtu8.com +qqtz.com +qqu.cc +qqumall.com +qqurl.com +qqwechat.com +qqwmly.com +qqwmx.com +qqwxmail.com +qqwys.net +qqx.com +qqxmail.com +qqxs.la +qqxs5200.com +qqxsnew.com +qqxsnew.net +qqxsw.co +qqxsw.info +qqxsw.la +qqxww.com +qqxy100.com +qqxzb-img.com +qqxzb.com +qqy189.com +qqyewu.com +qqymail.com +qqyou.com +qqyouju.com +qqyy.com +qqzby.net +qqzhi.com +qqzi.net +qqzl.cc +qqzonecn.com +qqzsh.com +qqzzz.net +qr25.com +qrbtf.com +qrcdn.com +qrcpu.com +qrmanhua.com +qroad.cc +qrtest.com +qrx.cc +qs12315.com +qs921.com +qsacg.vip +qsbank.cc +qsbbs.net +qsbdc.com +qsboy.com +qscdn.com +qscfph.com +qschou.com +qsebao.com +qseeking.com +qsfcw.com +qshang.com +qskretkf.com +qsmis.com +qspfw.com +qspfwadmin.com +qss-lb.com +qssec.com +qstatic.com +qstbg.com +qstsking.com +qsw.la +qsw521.com +qswhcb.com +qswzayy.com +qsxi.com +qszs.com +qszt.com +qszt.net +qt-ly.com +qt56yun.com +qt6.com +qt86.com +qtav.org +qtbig.com +qtccolor.com +qtcn.org +qtconcerthall.com +qtdebug.com +qtdream.com +qter.org +qthmedia.com +qthnews.com +qtj5.com +qtlcdn.com +qtlcdncn.info +qtlcn.com +qtlglb.com +qtlglb.info +qtlgslbcn.info +qtmojo.com +qtonghua.com +qtool.net +qtrun.com +qtshe.com +qtshu.com +qtshu.la +qttc.net +qtumist.com +qtvcd.com +qtx.com +qtyd.com +qtymyy.com +qu.la +qu02.com +qu247.com +qua.com +quan.mx +quan007.com +quan365.com +quanbailing.com +quanben.com +quandangdang.net +quandashi.com +quanduoduo.com +quanfangtong.net +quanfangtongvip.com +quanfeng.tech +quanguoban.com +quanji.la +quanji.net +quanji55.com +quanjiao.net +quanjing.com +quanjingke.com +quankexia.com +quanlaoda.com +quanlaodaonline.com +quanlego.com +quanmaihuyu.com +quanmamaimg.com +quanmeipai.com +quanmin-game.com +quanmin.tv +quanmin110.com +quanminbagua.com +quanminbb.com +quanminfu.com +quanminyanxuan.com +quanqiuwa.com +quanquanapp.net +quanr.com +quanriai.com +quansheng-group.com +quanshi.com +quanshuge.com +quansucloud.com +quantacn.com +quantaoyougou.com +quantiku.org +quantil.com +quantuantuan.com +quantum-info.com +quanxi.cc +quanxiangyun.com +quanxiaoshuo.com +quanyin.xyz +quanzhanketang.com +quanzhi.com +quanzhifu.net +quanziapp.com +quarkbook.com +quarkers.com +quasarchs.com +quazero.com +quba360.com +qubaike.com +qubaobei.com +qubiankeji.com +qucai.com +qucaiad.com +qucaidd.com +qucaigg.com +quce001.com +quceaiqing.com +quchao.net +quchaogu.com +quchew.com +quclouds.com +qudah5.com +qudao.com +qudao168.com +qudaowuyou.com +qudaowuyou04.com +qudayun.com +qudingshui.com +qudong.com +qudong51.net +qudushu.com +quduzixun.com +quectel.com +queenl.com +quegame.com +quegui.run +queji.tw +quelingfei.com +queniuaa.com +queniuak.com +queniubg.com +queniubm.com +queniucf.com +queniuck.com +queniudns.com +queniudns.net +queniufm.com +queniuhy.com +queniuiq.com +queniuiy.com +queniukr.com +queniukt.com +queniukw.com +queniupl.com +queniuqy.com +queniurc.com +queniusa.com +queniuso.com +queniusy.com +queniusz.com +queniutc.com +queniuuf.com +queniuum.com +queniuwx.com +queniuyk.com +queqiaoba.com +queshao.com +queshu.com +questyle.com +questyleaudio.com +questyleshop.com +queyang.com +qufair.com +qufaya.com +qufeisoft.com +qufenqi.com +qufenqian.vip +qugame.com +qugongdi.com +quhaidiao.com +quhua.com +quhuaxue.com +quhuichang.net +quick-touch.com +quick-x.com +quickapi.net +quickbass.com +quickcan.com +quickcep.com +quickddns.com +quickjoy.com +quicklaser.com +quicklyopen.com +quicksdk.com +quicksdk.net +quickswan.com +quilimen.com +quimg.com +quji.com +qujianpan.com +qujie365.com +qujiemi.com +qujinhuo.com +qujishu.com +qujunde.com +qukaa.com +qukan.cc +qukanshu.com +qukantoutiao.net +qukantx.com +qukanvideo.com +quklive.com +qukuai.com +qukuaila.com +qulishi.com +qulv.com +qumaihuishou.com +qumaishu.com +qumaiyao.com +qumifeng.com +qumingdashi.com +qumingxing.com +qumitech.com +qun-net.com +qun.hk +qun100.com +qun7.com +quna.com +qunaer.com +qunale888.com +qunar.com +qunar.ink +qunarcdn.com +qunarzz.com +qunba.com +quncrm.com +qunfenxiang.net +qunhai.net +qunhei.com +qunhequnhe.com +qunjielong.com +qunkeng.com +qunliao.info +qunmi.vip +qunniao.com +qunonnet.com +qunsou.co +quntuishou.com +qunxingvc.com +qunyingkeji.com +qunyouxuan.com +qunzh.com +qunzou.com +quora123.com +qupaibei.com +qupaicloud.com +qupeiyin.com +qupingce.com +qupuji.com +quqi.com +quqike.com +quqiuhun.com +ququabc.com +ququyou.com +ququzhu.com +qusem.com +qushiw.com +qushixi.net +qushoumiao.com +qutaiwan.com +qutanme.com +qutaojiao.com +qutaovip.com +quthing.com +qutoutiao.net +qutouwang.com +qutu.com +qutuiwa.com +quumii.com +quvisa.com +quwaifu.com +quwan.com +quwangming.com +quweikm.com +quweiwu.com +quwenqing.com +quwenqushi.com +quwentxw.com +quwj.com +quwm.com +quwuxian.com +quxds.com +quxianchang.com +quxianzhuan.com +quxingdong.com +quxiu.com +quxuan.com +quxuetang.net +quyaoya.com +quyinginc.com +quyiyuan.com +quyouhui.net +quyu.net +quyundong.com +quzhiwen.com +quzhuanxiang.com +quzz88.com +quzzgames.com +qvip.net +qvkanwen.com +qvlz.com +qvpublish.com +qw5599.com +qweather.com +qweather.net +qwfync.com +qwgt.com +qwimm.com +qwolf.com +qwomcrm.com +qwpo2018.com +qwq.kim +qwq.moe +qwq.ren +qwqk.net +qwqoffice.com +qwsy.com +qwxcs.com +qwxsw.com +qwzhe.com +qx1000.com +qx10086.net +qx100years.com +qx121.com +qx162.com +qxbnkj.com +qxbx.com +qxcu.com +qxdaojia.com +qxiu.com +qxka.com +qxkp.net +qxlib.com +qxnav.com +qxnecn.com +qxnic.com +qxnzx.com +qxsdq.com +qxslyfjq.com +qxswk.com +qxueyou.com +qxw.cc +qxwz.com +qxxsjk.com +qxyaoc.com +qxzxp.com +qy-office.com +qy-qq.com +qy.net +qy266.com +qy6.com +qyc2008.com +qycn.com +qycn.net +qycn.org +qycname.com +qydimg.com +qydns1.com +qyec.com +qyer.com +qyerstatic.com +qyestar.com +qyg12.com +qyg30.com +qyg9.com +qyglzz.com +qygzbxpt.com +qyham.com +qyiliao.com +qyjks.com +qyjmmtc.com +qyjpzx.com +qykh2009.com +qykodo.com +qyle1.com +qymgc.com +qyous.com +qypiayer.xyz +qyrb.com +qysd.net +qysfl.com +qysgf.com +qysuliao.com +qyt1902.com +qytdesign.com +qytst.com +qytxhy.com +qyule.org +qyunapp.com +qywww.net +qyxgyu.com +qyxxpd.com +qyyqyj.com +qyzba.club +qyzc.net +qyzlgame.com +qz100.com +qz123.com +qz828.com +qz96811.com +qzbbs.com +qzbigstone.com +qzbonline.com +qzbuxi.com +qzcb.com +qzccbank.com +qzcklm.com +qzclfc.com +qzdatasoft.com +qzdyyy.com +qzh56.com +qzhlkj.net +qzhmzx.com +qzj2.com +qzjcd.com +qzjkw.net +qzjlw.com +qzkey.com +qzlo.com +qznews360.com +qzone.cc +qzone.com +qzoneapp.com +qzqstudio.com +qzrbx.com +qzrc.com +qzrx.net +qzshangwu.com +qzwb.com +qzxdianzi.com +qzxkeji.com +qzxx.com +qzyb.com +qzyxzs.com +qzze.com +qzzn.com +qzzres.com +qzzsbx.com +r-tms.net +r12345.com +r147emh.com +r1x1.com +r1y.com +r220.cc +r2coding.com +r2g.net +r2yx.com +r369.co +r51.net +r5k.com +r5tao.com +r77777777.com +ra2.com +ra2ol.com +rabbitpre.com +rabbitpre.me +race604.com +racing-china.com +radicalmail.net +radida.com +radio1964.com +radiotj.com +radiowar.org +radius-america.com +raeblog.com +rahisystems-cn.com +raidc.com +rail-transit.com +railcn.net +rails365.net +rain8.com +raina.tech +rainasmoon.com +rainbond.com +rainbow.one +rainbowcn.com +rainbowred.com +rainbowsoft.org +rainclassroom.com +raindi.net +raineggplant.com +rainersu.club +rainhz.com +rainlain.com +rainmanfloor.com +rainwe.com +rainyun.com +raisecom.com +raisedsun.com +raisinsta.com +raiyi.com +rajax.me +rakinda-xm.com +ralf.ren +ramadaplaza-ovwh.com +ramboplay.com +ramostear.com +ran10.com +random-online.com +ranfenghd.com +rangercd.com +rangnihaokan.com +ranhou.com +rankaiyx.com +rankingonline.jp +ranknowcn.com +ranling.com +rantu.com +ranwen.tw +ranwena.com +ranzhi.net +ranzhi.org +raoke.net +raonie.com +raorao.com +rapidppt.com +rapoo.com +rapospectre.com +rarcbank.com +rarelit.net +rashost.com +raspigeek.com +rastargame.com +rata-catering.com +rationmcu.com +ratuo.com +ravendb.me +ray-joy.com +ray8.cc +raychien.site +raycom-inv.com +raycuslaser.com +raydonet.com +raygame3.com +raygame4.com +rayjoy.com +rayli.com +raymx-micro.com +rayoptek.com +rayps.com +rayrjx.com +raysilicon.com +raythonsoft.com +raytoon.net +rayuu.com +rayyo.com +rayyzx.com +razrlele.com +raztb.com +rb400.com +rbbko.com +rbbrao.com +rbischina.org +rbqq.com +rbz1672.com +rbzygs.com +rc114.com +rc3cr.com +rccchina.com +rcdang.com +rcdn.fun +rcfans.com +rcgus.com +rchudong.com +rclbbs.com +rcpx.cc +rcss88.com +rcuts.com +rcw0375.com +rcwl.net +rcyd.net +rcyxdk.com +rczfang.com +rczhuyu.com +rczp.org +rd-game.com +rd351.com +rdamicro.com +rdbom.com +rdbuy.com +rddoc.com +rdfybk.com +rdgz.org +rdhyw.com +rdidc.com +rdnsdb.com +rdplat.com +rdsdk.com +rdsqs.net +rdtuijian.com +rdwork.com +rdxmt.com +rdyjs.com +rdzjw.com +rdzs.com +rdzx.net +reabam.com +reachace.com +react-china.org +react.mobi +read678.com +readboy.com +readceo.com +readdsp.com +readend.net +readers365.com +readfree.net +readgps.com +readhb.com +readhr360.com +readhub.me +readm.tech +readmeok.com +readmorejoy.com +readnos.com +readnovel.com +readpai.com +readpaper.com +readpaul.com +readten.net +readu.net +readwithu.com +ready4go.com +reaer.com +reai120.com +realcybertron.com +realforcechina.com +reallct.com +reallylife.com +realme.com +realmebbs.com +realmedy.com +realmemobile.com +realor.net +realsee-cdn.com +realsee.com +realshark.com +realsun.com +realtorforce.ca +realxen.com +reasonclub.com +rebatesme.com +rebo5566.com +rechaos.com +recolighting.com +recordpharm.com +recovery-transfer.com +recoye.com +recuvachina.com +recycle366.com +redatoms.com +redbaby.com +redcome.com +redcross-hx.com +redcross-sha.org +redefine.ltd +redelegation.net +redflag-linux.com +redhome.cc +redhongan.com +redhtc.com +redianduanzi.com +redianmao.com +redianyule.com +redianzixun.com +rediao.com +redicecn.com +redidc.com +redisbook.com +redisfans.com +redisguide.com +redisinaction.com +redjun.com +rednetdns.com +redocn.com +redoop.com +redoufu.com +redpact.com +redphon.com +redream.com +redredsquare.com +redrock.team +redsh.com +redshu.com +redstonewill.com +redsun-rp.com +redyue.com +redyue.org +reebbwi.cyou +reedoun.com +reeidc.com +reeiss.com +reeji.com +reekly.com +reenoo.com +reenoo.net +reeoo.com +refined-x.com +refineidea.com +reformdata.org +refractorywin.com +reg007.com +regengbaike.com +regexr-cn.com +reglogo.net +regtm.com +rehtt.com +rehuwang.com +rejoiceblog.com +rejushe.com +rekonquer.com +rekoo.com +rekoo.net +rela.me +relangba.com +relianfit.com +reloadbuzz.com +relxtech.com +relxyanyou.com +rely87779777.com +remaijie.net +remapcity.com +remark.dance +remax-bj.com +remeins.com +rememtek.com +remo-ai.com +remoteaps.com +remotedu.com +renaren.com +renatabonar.com +rencaiaaa.com +rencaijob.com +rendajingjiluntan.com +renderbus.com +renderincloud.com +rendna.com +renegade-project.org +renhence.com +renji.com +renjian.com +renjiaoshe.com +renjiyiyuan.com +renlijia.com +renliwang.xyz +renliwo.com +renmaiku.com +renmaitong.com +renminkaiguan.com +renniaofei.com +renping.cc +renqibaohe.com +renren-inc.com +renren.com +renren.io +renren3d.com +renrenbang.com +renrenbeidiao.com +renrenche.com +renrencou.com +renrendai.com +renrendoc.com +renrenfinance.com +renrening.com +renrenmoney.com +renrenpeizhen.com +renrenshipu.com +renrensousuo.com +renrenstudy.com +renrentou.com +renrentrack.com +renrentui.com +renrenyee.com +renrk.com +renrzx.com +rensheng123.com +rensheng2.com +rensheng5.com +rent.work +rentiantech.com +rentixuewei.com +renwen.com +renwuyi.com +renxueyanjiu.com +renyiwei.com +renyufei.com +renzha.net +reocar.com +repai.com +repaiapp.com +repanso.com +repian.com +repianimg.com +replays.net +replicated.cc +reptilesworld.com +resccske.cyou +resheji.com +resistor.today +resowolf.com +respect-lab.com +respondaudio.com +respusher.com +resset.com +resuly.me +retailo2o.com +retalltech.com +retiehe.com +retouchpics.com +return.net +returnc.com +reverselove.com +rew65.com +rewnat.xyz +reworlder.com +rewuwang.com +rexcdn.com +rexdf.org +rexinyisheng.com +rexsee.com +rexueqingchun.com +reyinapp.com +reyoo.com +reyun.com +rf-gsm.com +rf.hk +rfaexpo.com +rfc2cn.com +rfchina.com +rfchost.com +rfcreader.com +rfdl88.com +rfdy.hk +rfeyao.com +rffan.info +rffanlab.com +rfhhzx.com +rfidcardcube.com +rfidfans.com +rfidtech.cc +rfk.com +rfmwave.com +rfsister.com +rfthunder.com +rg950.com +rgb128.com +rgdhgdf.com +rgfc.net +rgoo.com +rgrcb.com +rgslb.com +rgyun.com +rgznworld.com +rh98.com +rhce.cc +rhce.net +rhctwy.com +rhhz.net +rhkj.com +rhsj520.com +rhtimes.com +rhusen03.com +rhyme.cc +ri-china.com +riaway.com +ribaoapi.com +ribaow.com +ribenbang.com +ribencun.com +ribenshi.com +ricebook.com +ricefish.io +ricequant.com +rich-chang.com +rich-futures.com +rich-healthcare.com +richeninfo.com +richiecn.com +richinfer.net +richkays.com +richong.com +richtech123.com +richtj.com +ricklj.com +rickyfabrics.com +rickyid.com +rickysu.com +ricterz.me +rightknights.com +rightpaddle.com +rigol.com +rigouwang.com +riitao.com +riji001.com +rijigu.com +rijiwang.com +rilvtong.com +rilzob.com +rim20.com +rinbowe.com +ringdoll.com +rinlink.com +rinvay.cc +ripic.xyz +rippleos.com +rippletek.com +risc-v1.com +riscv-mcu.com +riscv.club +risecenter.com +risechina.org +riselinkedu.com +risencn.com +risesoft.net +risfond.com +rishao.com +rishiqing.com +rishuncn.com +riskivy.com +risunsolar.com +riswing.com +ritao.hk +ritaomeng.com +ritarpower.com +ritering.com +rivergame.net +rixin.info +riyuexing.org +riyuezhuan.com +riyugo.com +riyujob.com +riyurumen.com +riyutool.com +rizhao9.com +rizhaociming.com +rizhaokjg.com +rizhiyi.com +rizhuti.com +rj-bai.com +rj.link +rj889.net +rjdk.org +rjghome.com +rjh0.com +rjhcsoft.com +rjoy.com +rjreducer.com +rjs.com +rjsjmbwx.com +rjsos.com +rjty.com +rjzxw.com +rkanr.com +rkaq110.com +rkdatabase.com +rkeji.com +rkgaming.com +rkkgyy.com +rksec.com +rkvir.com +rl-consult.com +rlair.net +rlkj.com +rlkj.net +rlnk.net +rlsofa.net +rlwyjf.com +rlydw.com +rlyl.net +zycultura.com +rmb.sh +rmcteam.org +rmejk.com +rmhospital.com +rmjtxw.com +rmlxx.com +rmnof.com +rmryun.com +rmsznet.com +rmttjkw.com +rmtyun.com +rmwxgame.com +rmxiongan.com +rmxsw.cc +rmzs.net +rmzt.com +rmzxb.com +rn-hswh.com +rnbqvet.com +rnfengwo.com +rngtest.com +rnhqxh.com +ro4.cc +ro50.com +road-group.com +roadjava.com +roadlady.com +roadoor.com +roadsigngroup.com +robam.com +robei.com +robook.com +roborock.com +robot-china.com +robotedu.org +robotplaces.com +rock-chips.com +rockbrain.net +rockemb.com +rockerfm.com +rockflow.tech +rockjitui.com +rockru.com +rockx.pub +rocky.hk +rockyaero.com +rockyenglish.com +roclee.com +roffar.com +roguelitegames.com +rohm-chip.com +roidmi.com +rojewel.com +rokid.com +rokidcdn.com +rokub.com +roland-china.com +rollingstone.net +rollupjs.com +rom100.com +rom333.com +romens.cloud +romhui.com +romjd.com +romleyuan.com +romphone.net +romzhijia.net +romzj.com +roncoo.com +rondygroup.com +rong-edge.com +rong360.com +ronganjx.com +rongba.com +rongbiz.com +rongbiz.net +rongbst.com +rongcfg.com +rongchain.com +rongchenjx.com +rongdasoft.com +rongechain.com +ronghaosk.com +ronghope.com +ronghub.com +ronghuiad.com +ronghuisign.com +rongji.com +rongledz.com +ronglianmeng.net +ronglicloth.com +rongmei.net +rongnav.com +rongroad.com +rongshiedu.com +rongshu.com +rongshuxia.com +rongstone.com +rongtai-china.com +rongxinzh.com +rongyao666.com +rongyi.com +rongyiju.com +rongyizhaofang.com +rongzhitong.com +rongzhongleasing.com +rongzhongloan.com +rongzi.com +rontgens.com +roobo.com +roodoo.net +roof325.com +roogames.com +room365.com +roosur.com +root-servers.world +root1111.com +rootcloud.com +rootdata.com +rootguide.org +rootk.com +rootop.org +rootopen.com +rootzhushou.com +roouoo.com +roov.org +ror-game.com +rorotoo.com +ros-lab.com +rosabc.com +rosaryshelties.com +rosecmsc.com +rosedata.com +rosefinchfund.com +rosinson.com +rossoarts.com +rossoarts.net +rossroma.com +roswiki.com +roszj.com +rotom-x.com +rouding.com +roukabz.com +round-in.com +roundexpo.com +roundyule.com +roushidongwu.com +rousin.com +router.tw +routeryun.com +routewize.com +routuan.com +rowcan.com +zyctd.com +royole.com +royotech.com +rp-pet.com +rpa-cn.com +rpfieldcdn.com +rpg99.com +rpgmoba.com +rpjrb.com +rpo5156.com +rqi17.com +rqjrb.com +rqkr.com +rqz1.com +rr-sc.com +rr365.com +rrb365.com +rrbay.com +rrbus.com +rrcimg.com +rrcp.com +rrd.me +rrdaj.com +rree.com +rrfed.com +rrfmn.com +rrimg.com +rrjc.com +rrkf.com +rrkvip.com +rrky.com +rrl360.com +rrmeiju.com +rrmj.tv +rrmrm.com +rrppt.com +rrr.me +rrrdai.com +rrrrdaimao.com +rrrxz.com +rrs.com +rrscdn.com +rrswl.com +rrting.net +rrtsangel.com +rruu.com +rruu.net +rrxh5.cc +rrxiu.cc +rrxiu.me +rrxiu.net +rrxiuh5.cc +rrys.tv +rrzu.com +rrzuji.com +rrzxw.net +rs-xrys.com +rs485.net +rscala.com +rscloudmart.com +rsdgd.com +rsdwg.com +rsdyy.com +rsng.net +rss.ink +rsscc.com +rssmeet.com +rsty77.com +rsuedu.com +rsw163.com +rswiki.org +rsxc01.com +rszfg.com +rt-blend.com +rt-thread.io +rt-thread.org +rtahengtai.com +rtalink.com +rtb5.com +rtbasia.com +rtcdeveloper.com +rtfcode.com +rtfcpa.com +rtfund.com +rthpc.com +rtjxssj.com +rtmap.com +rtrrx.com +rtsac.org +rtsoup.com +rtxapp.com +rtxplugins.com +rtxuc.com +ru4.com +ruaimi.com +ruan8.com +ruancan.com +ruanduo.com +ruandy.com +ruanfujia.com +ruanjiandown.com +ruanjianwuxian.com +ruankao.com +ruanko.com +ruanman.net +ruanmei.com +ruanmou.net +ruantiku.com +ruanwen.la +ruanwenclass.com +ruanwenkezhan.com +ruanwenlala.com +ruanyuan.net +rubaoo.com +ruby-china.com +ruby-china.org +rubyconfchina.org +rubyer.me +ruchee.com +ruchu.club +rudangla.com +rueinet.com +rufei.ren +rufengso.net +ruffood.com +rufida.com +rugao35.com +ruguoapp.com +ruhnn.com +ruian.com +ruibai.com +ruichuangfagao.com +ruicitijian.com +ruidaedu.com +ruideppt.com +ruideppt.net +ruidongcloud.com +ruidroid.xyz +ruifang-tech.com +ruihaimeifeng.com +ruihuo.com +ruiii.com +ruijiehuanbao.com +ruijienetworks.com +ruijiery.com +ruijinginfo.com +ruijinintl.com +ruikesearch.com +ruimao.xyz +ruiqicanyin.com +ruiscz.com +ruisizt.com +ruitairt.com +ruitian.com +ruitiancapital.com +ruiwant.com +ruiwen.com +ruixiangbest.com +ruixing.cc +ruixuesoft.com +ruixueys.com +ruixunidc.com +ruixunidc.net +ruiyang-ra.com +ruiyuanobserve.com +ruiyunit.com +ruizong-gz.com +rujiazg.com +ruketang.com +rulejianzhan.com +rulesofsurvivalgame.com +rumt-sg.com +rumt-zh.com +runcmd.com +runcome.com +rundamedical.com +runde666.net +rundejy.com +rundongex.com +rundvalve.com +runexception.com +runfox.com +runhe.org +runhuayou.biz +runjf.com +runjiapp.com +runker.net +runker.online +runmang.com +runnar.com +runnerbar.com +runningcheese.com +runningls.com +runnoob.com +runnuokeji.com +runoob.com +runpho.com +runsheng.com +runsisi.com +runsky.com +runtimeedu.com +runtimewh.com +runtronic.com +runwise.co +runwith.cc +runxinzhi.com +runzi.cc +ruochu.com +ruohuo.net +ruokuai.com +ruoren.com +ruoshui.com +ruoxia.com +ruoyi.vip +ruozedata.com +ruqimobility.com +rushb.net +rushi.net +rushivr.com +rushmail.com +russellluo.com +ruthus.com +ruubypay.com +ruvar.com +ruvisas.com +ruxi.online +ruyig.com +ruyigu.com +ruyile.com +ruyim.com +ruyimjg.com +ruyiqiming.com +ruyishi.com +ruyo.net +ruyu.com +ruyuexs.com +ruzw.com +rv28.com +rv2go.com +rvcore.com +rvfdp.com +rvkol.com +rvmcu.com +rwtext.com +rwxqfbj.com +rxbj.com +rxgl.net +rxhui.com +rxian.com +rxjhbaby.com +rxjiasu.com +rxjt.co +rxjy.com +rxohsn.xyz +rxshc.com +rxys.com +ry.rs +ry018.com +ry0663.com +ry1116.com +ryanbencapital.com +rybbaby.com +ryc360.com +rydth5.com +ryeex.com +rygjaqjaq.com +ryjer.com +ryjiaoyu.com +ryjoin.com +rylinkworld.com +rymooc.com +rypeixun.com +rypenwu.com +rysdline.com +rytad.com +rytx.com +ryweike.com +ryxiut.net +ryxxff.com +ryyqh.com +ryyyx.com +rz.com +rz1158.com +rzcdc.com +rzcdz2.com +rzfanyi.com +rzhuaqiangu.com +rzline.com +rzok.net +rzrc114.com +rzsie.com +rzspx.com +rzszp.com +rzwssy.com +rzx.me +rzzyfw.com +s-02.com +s-ns.com +s-reader.com +s-sgames.com +s-ts.net +s06661.com +s135.com +s163.com +s1979.com +s1craft.com +s2ceda.com +s2cinc.com +s4g5.com +s4yd.com +s575.com +s5ex.com +s5tx.com +s72c.com +s8dj.com +s8x1.com +s8xs.com +s936.com +s9523.com +s95r.com +s98s2.com +s9yun.com +sa-ec.com +sa-log.com +sa20.com +sa8zdui.com +sa96.com +saad-alhusayen.com +saasddos.com +saasops.tech +saasruanjian.com +saaswaf.com +saayaa.com +sablog.net +sac-china.com +sacdr.net +sact-digital.com +sae-china.org +saebbs.com +saen.com +saf158.com +safdsafea.com +safecenter.com +safehoo.com +safejmp.com +safenext.com +sagetrc.com +sagigame.net +sahcqmu.com +saibeiip.com +saibeinews.com +saibo.com +saiboauto.com +saic-audi.mobi +saic-gm.com +saicdt.com +saicgmac.com +saicgroup.com +saicjg.com +saicmaxus.com +saicmobility.com +saicmotor.com +saicyun.com +saiday.com +saifou.com +saigao.fun +saihuahong.com +saihuitong.com +saike.com +saikr.com +sail.name +sail2world.com +saili.science +sailingyun.com +saimogroup.com +sainacoffee.com +saintcos.hk +saintic.com +saipu88.com +saipujianshen.com +saipujiaoyu.com +sairaicc.com +sairui020.com +saitjr.com +saiyouedu.net +saiyunyx.com +sakesi.club +sakway.com +salasolo.com +saleoilpaintings.com +salogs.com +salonglong.com +salongweb.com +samanlehua.com +same-tech.com +samebar.com +samhotele.com +saming.com +samirchen.com +samsunganycar.com +samsungcloudcn.com +samsunghealthcn.com +samsungyx.com +samyuong.com +samzhe.com +san-health.net +san-petersburgo.net +san-sheng.net +sancanal.com +sancunrenjian.org +sandaha.com +sandai.net +sandaile.com +sandbean.com +sandcomp.com +sandeepin.com +sandianzhong.com +sanduoyun.com +sandworld.net +sandwych.com +sanen.online +sanfen666.com +sanfengyun.com +sanfo.com +sanfu.com +sangfor.com +sangfor.net +sangfor.org +sangforcloud.com +sangfordns.com +sangongzai.net +sangsir.com +sanguobbs.com +sanguocard.com +sanguoh5.com +sanguohero.com +sanguosha.com +sanguozz.com +sanhao.com +sanhaofushi.com +sanhaoradio.com +sanhaostreet.com +sanhe-scale.com +sanhucidiao.cc +sanjiang.com +sanjiasoft.com +sanjieke.com +sanjinjiake.com +sanjun.com +sankengriji.com +sankgo.com +sankougift.com +sankuai.com +sanlan123.com +sanliu2021.com +sanliwenhua.com +sanpowergroup.com +sanpuzhiyao.com +sanqin.com +sanqindaily.com +sanqinyou.com +sanqiu.org +sanquan.com +sansancloud.com +sansanyun.com +sansky.net +santaihu.com +santelvxing.com +santezjy.com +santiwang.com +santiyun.com +santongit.com +santostang.com +santsang.com +sanweimoxing.com +sanweiyiti.org +sanwen.com +sanwen.net +sanwen8.com +sanwer.com +sanxia-china.com +sanxiapharm.com +sanxige.com +sanxinbook.com +sanyachloe.com +sanyafz.com +sanyamotor.com +sanyanblockchain.com +sanyastar.com +sanyexin.com +sanygroup.com +sanyhi.com +sanyipos.com +sanyoutj.com +sanyuanbaobao.com +sanyuantc.com +sanyuesha.com +sanzang5.net +sanzangwang.com +sanzei.com +sao-ma.com +saoic.com +saolife.com +saomadang.com +saoniuhuo.com +saopu.com +saoso.com +saowen.net +sap-nj.com +sap1000.com +saraba1st.com +sarafeehan.com +sarft.net +sass.hk +sasschina.com +sasscss.com +sasseur.com +satrip.com +saturnbird.com +savokiss.com +savouer.com +sawenow.com +saxydc.com +sayabear.com +sayll.com +sayloving.com +saywash.com +sbanzu.com +sbc-mcc.com +sbeira.com +sbh15.com +sbk-h5.com +sbkh5.com +sbo8.com +sbr-info.com +sbrj.net +sbsjk.com +sbt123.com +sbwxz.com +sbzj.com +sc-jiaoyu.com +sc.gg +sc115.com +sc119.cc +sc157.com +sc1588.com +sc1618.com +sc2c.com +sc2car.com +sc2p.com +sc2yun.com +sc666.com +sc946.com +sc96655.com +scaffi.com +scala.cool +scanv.com +scarbbs.com +scarclinic-cn.com +scbaidu.com +scbao.com +scbh15.com +scbxmr.com +scbyx.net +scbz120.com +zycmfw.com +scccyts.com +sccin.com +scclssj.com +sccm.cc +sccnn.com +sccq.net +sccts.com +sccwz.com +scdbzzw.com +scdengbang.com +scdn1e8v.com +scdndsa6.com +scdnf80r.com +scdng.com +scdng8js.com +scdnj3in.com +scdnl3bk.com +scdnl9cm.com +scdnmogt.com +scdnn4t9.com +scdno5zl.com +scdnrlm1.com +scdnrvy1.com +scdnucc5.com +scdnurea.com +scdnygb7.com +scdri.com +scdzmw.com +scedu.net +sceeo.com +scenery.hk +scflcp.com +scfzbs.com +scgc.net +scgckj.com +scgglm.com +scgh114.com +scghseed.com +scgis.net +scgra.com +schengle.com +schezi.com +schneidercampus.com +scholarmate.com +scholat.com +school888.com +schoolpi.net +schove.com +schrb.com +schwarzeni.com +schwr.com +sci-hub.ee +sci-hub.ren +sci-hub.shop +sci-hub.tf +sci99.com +scichina.com +scicn.net +scidict.org +sciengine.com +scientrans.com +scies.org +scievent.com +scifans.com +scigy.com +scihubtw.tw +sciimg.com +sciirc.com +scijuyi.com +scimall.org +scimao.com +scinno-cn.com +scinormem.com +scio.icu +scipaper.net +sciping.com +sciscanpub.com +scisky.com +scistor.com +scitycase.com +sciyard.com +sciyon.com +scjhyq.com +scjjrb.com +scjyzb.net +scjzjyjc.com +scjzy.net +sclf.org +scmccboss.com +scmchem.com +scmeye.com +scmor.com +scmroad.com +scmsky.com +scmttec.com +scmxjs.com +scmylike.com +scnjnews.com +scnleee.com +scntv.com +sco-marathon.com +scodereview.com +scoee.com +scommander.com +scoregg.com +scpgroup.com +scplt.com +scqcp.com +scqiuchang.com +scrcu.com +scredcross.com +scriptcat.org +scriptjc.com +scrmtech.com +scrsw.net +scrumcn.com +scscms.com +scsdzxh.org +scsgk.com +scsjnxh.org +scsjsd.com +scsstjt.com +sctbc.net +sctcd.com +sctdzl.com +sctfia.com +sctobacco.com +sctszh.com +sctv.com +sctvf.com +scufida.com +scujj.com +scusec.org +scutde.net +scutsee.com +scuvc.com +scw98.com +scweixiao.com +scwj.net +scwlylqx.com +scwy.net +scxdf.com +scxyoa.com +scymob.com +scyongqin.com +scytyy.net +sczg.com +sczgzb.com +sczl123.com +sczlcts.com +sczprc.com +sczshz.net +sczsie.com +sczsxx.com +sczw.com +sczxmr.com +sczycp.com +sczyh30.com +sd-cellbank.com +sd-ex.com +sd-pic.com +sd-sma.com +sd-xd.net +sd-ysjt.com +sd11185.com +sd173.com +sd235.net +sd5g.com +sdadljx.com +sdailong.com +sdbao.com +sdbeta.com +sdbys.com +sdca119.com +sdchem.net +sdchina.com +sdchn.com +sdcqjy.com +sdcxsc.com +sdcyun.com +sddagongrubber.com +sddcp.com +sddengxiang.com +sddermyy.com +sddeznsm.com +sddh.online +sddrsji.com +sddzrljx.com +sde6.com +sdebank.com +sdeca.org +sdecloud.com +sdeerlive.com +sdenews.com +sdeqs.com +sderp.com +sdewj.com +sdey.net +sdfcxw.com +sdfhyl.com +sdfll.com +sdfmgg.com +sdg-china.com +sdgaoxing.com +sdgdwljt.com +sdgdxt.com +sdgh.net +sdgho.com +sdgongkao.com +sdgt1985.com +sdgude.com +sdguguo.com +sdgw.com +sdgwy.org +sdhangmoguan.com +sdhbcl.com +sdhdssd.com +sdhk2008.com +sdhoukang.com +sdhsg.com +sdhsie.com +sdhxnykj.com +sdiandian.com +sdiborn.com +sdiccapital.com +sdicin.com +sdicpower.com +sdicvc.com +sdiitu.com +sdiread.com +sditol.com +sdj-tech.com +sdjcw.com +sdjnwx.com +sdjtbd.com +sdjtcx.com +sdjushu.com +sdjzhc.com +sdkclick.com +sdkclickurl.com +sdklh.com +sdknext.com +sdksrv.com +sdlgjycm.com +sdlgzy.com +sdlinqu.com +sdljwomen.com +sdlldj.com +sdlongli.com +sdlvxing.com +sdly35.com +sdlz.tech +sdmic.com +sdmydcr.com +sdmyzsgs.com +sdnci.com +sdnfv.org +sdnjsbc.com +sdnlab.com +sdnxs.com +sdnysc.com +sdo-shabake.com +sdo.com +sdodo.com +sdongpo.com +sdoprofile.com +sdpku.com +sdqlkr.com +sdqmy.com +sdqoi2d.com +sdrcu.com +sdsgwy.com +sdshshb.com +sdsmefina.com +sdtdata.com +sdtrxx.com +sdtsrf.com +sdtvjiankang.com +sdtxmq.com +sdtzfmw.com +sduod.com +sdwcpm.com +sdwdxl.com +sdwenlian.com +sdwgyy.com +sdwscgs.com +zycits.com +sdxietong.com +sdxinboao.com +sdxitong.com +sdxjpc.com +sdxvisa.com +sdxyxhj.com +sdxzt.com +sdyhjszp.com +sdyinshuachang.com +sdyizhibi.com +sdylsc.com +sdyndcjx.com +sdynr.com +sdyuanbao.com +sdyyebh010.com +sdyypt.net +sdzbcg.com +sdzhidian.com +sdzk.co +sdzs.com +sdzsedu.com +sdzsyl.com +sdzxswhjygjlm.com +sea-group.org +sea-gullmall.com +sea789.com +seacatcry.com +seagulllocker.com +seaheart.cc +sealand100.com +sealeadbattery.com +sealyun.com +seamanhome.com +seaning.com +seanxp.com +seanya.com +seanyxie.com +seapard.com +search616.com +searchforit8.com +searchpstatp.com +searchtb.com +seaskyapp.com +seasouthgy.com +seassoon.com +seastarasset.com +seasungame.com +seasungames.com +seatonjiang.com +seavo.com +seayao.net +seayee.com +sebigdata.com +seblong.com +sebug.net +sec-wiki.com +secaibi.com +secbug.cc +secbug.org +seccw.com +secdoctor.com +secdriver.com +secec.com +secfree.com +secisland.com +secist.com +seclover.com +secoo.com +secooart.com +secooimg.com +secpulse.com +secretgardenresorts.com +secretmine.net +secrss.com +secrui.com +secshow.net +secsilo.com +sectigochina.com +secu100.net +zyccc.com +securitycn.net +securityeb.com +securityfrontline.org +securitypaper.org +secutimes.com +secwk.com +secwx.com +secxun.com +see-far.com +see-source.com +seebug.org +seebyleegee.com +seecmedia.net +seed-china.com +seedasdan.org +seeddsp.com +seedit.cc +seedit.com +seedland.cc +seedlandss.com +seedsufe.com +seefarger.com +seegif.com +seeingcare.com +seek114.com +seekbetter.me +seekchem.com +seekfunbook.com +seekhill.com +seekonly.net +seelvyou.com +seemmo.com +seemoread.com +seentao.com +seer520.com +seersee.com +seesawcoffee.com +seeseed.com +seeshentech.com +seetao.com +seewellintl.net +seewo.com +seewoedu.com +seexpo.com +seeyii.com +seeyon.com +seeyonoversea.com +seeyouhealth.com +seeyouyima.com +seezy.com +sefonsoft.com +segapi.com +segmentfault.com +segmentfault.net +segotep.com +segwayrobotics.com +seidns.com +seinfeldtv.com +seisman.info +sejai.com +sejianghu.com +sekede.net +sekorm.com +selboo.com +selfservicechina.com +selinuxplus.com +sell66.com +sellingexpress.net +selypan.com +sem123.com +semeye.com +semgz.com +semidata.info +semiee.com +semiinsights.com +semiway.com +sempk.com +semplus.org +semptian.com +sencdn.com +sencha-china.com +send2boox.com +senda360.com +sendbp.com +sendcloud.net +sendcloud.org +sendong.com +sendpioneer.com +sends.cc +senenwood.com +senfengg.com +senguo.cc +senguo.com +sengxian.com +seniverse.com +senlianshop.com +senlinjimore.com +senmeiju.com +senmiaoschool.com +senorsen.com +senra.me +sensate.hk +sense-hk.com +sensecn.com +senselock.com +senseluxury.com +sensertek.com +sensetime.com +senseyun.com +sensorlead.com +sensorsdata.com +sensorsdatavip.com +senszx.com +sentaijs.com +sentuxueyuan.com +senyou.com +senyuanhi.com +senyuanzhonggong.com +seo-820.com +seo.tm +seo123.net +seo628.com +seocxw.com +seodaniel.com +seofangfa.com +seohet.com +seoipo.com +seokoubei.com +seopath.net +seopeixun5.com +seopre.com +seosiguan.com +seosn.com +seosrx.net +seotcs.com +seowhy.com +seoxiaosai.com +seoxuetang.com +sepact.com +sepri.com +septinn.com +septwolves.com +sepu.net +sequ.biz +sequoiadb.com +serholiu.com +servasoft.com +serverless.ink +servicemesher.com +servicewechat.com +sesamestreetenglishchina.com +seseacg.com +sesier.com +seta5252.com +setbbts.cyou +seteuid0.com +seuic.com +sevdot.com +seven7777.eu +sevencdn.com +sevenseas-china.com +sevnday.com +sewise.com +sexytea2013.com +seyaose.net +seyuma-cn.com +sf-airlines.com +sf-bearing.com +sf-card.com +sf-cityrush.com +sf-dsc.com +sf-express.com +sf-financial.com +sf-pay.com +sf-saas.com +sf-zs.net +sf007.com +sf024.com +sf888.net +sfacg.com +sfb-100.com +sfbest.com +sfcar.hk +sfccn.com +sfcdn.org +sfddj.com +sfefqwq3.com +sfgj.org +sfgy.org +sfht.com +sfile2012.com +sfitcdp.com +sfjdml.com +sfkedu.com +sfkj.vip +sflep.com +sflqw.com +sfmianhua.com +sforest.in +sfoys.sbs +sfpgmk.com +sfplay.net +sfsigroup.com +sfvip1.com +sfwxf.com +sfyb.com +sfygroup.com +sfystatic.com +sfzj123.com +sg-micro.com +sg.work +sg169.com +sg560.com +sg8.cc +sg91.net +sg92.com +sgamer.com +sgcctd.com +sgcctop.com +sgchinese.com +sgcn.com +sgcn.org +sgcyjy.com +sgda.cc +sgdmobile.com +sge.sh +sghnny.com +sghxz.com +sgjwb.com +sgllk.com +sgmlink.com +sgmwlu.com +sgmwsales.com +sgnet.cc +sgnongkang.com +sgou.com +sgshero.com +sgsic.com +zybuluo.com +sgsugou.com +sgsxw.com +sguo.com +sgwk.info +sgyaogan.com +sgzhee.com +sgzm.com +sh-3ai.com +sh-anrong.com +sh-arpm.com +sh-autofair.com +sh-baolai.com +sh-deem.com +sh-dls.com +sh-eastwes.com +sh-game.com +sh-henian.com +sh-hilead.com +sh-holfer.com +sh-holiday.com +sh-hywin.com +sh-kechen.com +sh-kr.net +sh-ryjx.com +sh-service.com +sh-sfc.com +sh-shenou.com +sh-tangfeng.com +sh-warwick.com +sh-xinao.com +sh-xixuan.com +sh-yajia.com +sh-ybxhz.com +sh-yuy.com +sh-zbfm.com +sh.com +sh112.com +sh1122.com +sh414.com +sh5y.com +sh7.com +sh85gk.com +sh8y.com +sh9130.com +sh9156.com +sha-cun.com +sha-steel.com +sha2777.com +sha990.com +shaanxi56.com +shaanxijiankangyun.com +shaanxirk.com +shabc.net +shaca.net +shachong8.com +shacumox.com +shaddockfishing.com +shadowq.com +shaduizi.com +shafa.com +shafaguanjia.com +shaftgd.com +shahaizi.com +shahupark.com +shaidc.com +shailema.com +shairport.com +shaisino.com +shaizai.com +shallserve.cc +shamiao.com +shan-san.com +shan-yu-tech.com +shan.com +shanbay.com +shanbotv.com +shancemall.com +shanda960.com +shandagames.com +shandaz.com +shandianhuifu.com +shandianpan.com +shandjj.com +shandong-energy.com +shandongair.com +shandonghaiyang.com +shandongjuli.com +shandongruixiang.com +shandongsannong.com +shandongyunpin.com +shandw.com +shane-nanyang.com +shang-chain.com +shang0898.com +shang168.com +shang360.com +shangbaolai.com +shangbiao.com +shangbiao.store +shangbiaocheng.com +shangboo.com +shangbw.com +shangc.net +shangcaifanyi.com +shangdandan.com +shangdaotong.com +shangdiguo.com +shangdixinxi.com +shangdu.com +shangdu.info +shangeedu.com +shangeseo.com +shangeyun.com +shangfayuan.com +shangfox.com +shanggame.com +shanghai-air.com +shanghai-channel.com +shanghai-electric.com +shanghai-intex.com +shanghai-map.net +shanghaiairport.com +shanghaicaiyi.com +shanghaichannel.net +shanghaiconcerthall.org +shanghaicup.com +shanghaidaily.com +shanghaidisneyresort.com +shanghaihino.com +shanghaihuanli.com +shanghaiiot.org +shanghaik11.com +shanghaimart.com +shanghaimuseum.net +shanghainb.com +shanghaining.com +shanghaipower.com +shanghairanking.com +shanghairc.com +shanghairolexmasters.com +shanghaishuangyanpi.com +shanghaitianqi114.com +shanghaitower.com +shanghaiwater.com +shanghaixs.com +shanghaizhenji.com +shanghuiyi.com +shangji998.com +shangjialianpage6.win +shangjilian.com +shangjinssp.com +shangjinuu.com +shanglv51.com +shangpin.com +shangpintong.com +shangpo.com +shangpusou.com +shangpuzhan.com +shangqiulvxing.com +shangquanquan.com +shangque.com +shangrao-marathon.com +shangshaban.com +shangshangke.me +shangshi360.com +shangshici.com +shangshiwl.com +shangshuyixue.com +shangtao.net +shangtao360.com +shangtianhui.com +shangtongda.com +shanguansoft.com +shangusec.net +shangwb.com +shangwu168.com +shangxueba.com +shangyejihua.com +shangyekj.com +shangyeluoji.com +shangyexinzhi.com +shangyouze.com +shangyubank.com +shangyuer.com +shangzhang.com +shangzhibo.tv +shangzhushan.com +shanhaitujian.com +shanhaizhanji.com +shanhe.kim +shanhs.com +shanhu99.com +shanhuu.com +shanhuxueyuan.com +shanjianzhan.com +shanjinqh.com +shankejingling.com +shanliao.com +shanlink.com +shanliulian.com +shanmao.me +shannon-sys.com +shannonai.com +shanp.com +shanqu.cc +shanrongmall.com +shanse8.com +shanshanku.com +shanshoufu.com +shanshuihotel.com +shantoumama.com +shanweinews.net +shanweiyule.com +shanxicloud.net +shanxidiy.com +shanximuseum.com +shanxiol.com +shanxiumao.com +shanxiuxia.com +shanyemangfu.com +shanyetang.com +shanyhs.com +shanyishanmei.com +shanyougame.com +shanyuankj.com +shanzhen.com +shanzhen.me +shanzhildq.com +shanzhonglei.com +shaoanlv007.com +shaoerbc.org +shaogood.com +shaoke.com +shaolintagou.com +shaolinwy.com +shaoqun.com +shaoshilei.com +shaoyee.com +shaphc.org +shaqing.com +shaqm.com +share1diantong.com +share2dlink.com +share2uu.com +sharecharger.com +sharecore.net +sharedaka.com +shareditor.com +sharegog.com +shareinstall.com +shareinstall.net +sharejs.com +shareoneplanet.org +sharetome.com +sharetrace.com +sharevdi.com +sharewaf.com +sharewithu.com +sharexbar.com +sharingclass.vip +sharksci.com +sharkselection.com +sharpbai.com +sharpmobi.com +shartu.com +shasx.com +shawdo.com +shawdubie.com +shawnzeng.com +shaxian.biz +shayugg.com +shayujizhang.com +shb02.com +shbaimeng.com +shbangde.com +shbangdian.com +shbars.com +shbbq.net +shbear.com +shbg.org +shbicycle.com +shbike.com +shbj.com +shbnrj.com +shbobo.com +shbyer.com +shcaoan.com +shcas.net +shcc-horizon.com +shccig.com +shccineg.com +shccio.com +shcell.org +shchhukou.com +shcj88.com +shclearing.com +shcljoy.com +shcngz.com +shcs2010.com +shcsdljz.com +shcsdq.com +shcso.com +shcstheatre.com +shcxzc.com +shdancecenter.com +shdctp.com +shdjt.com +shdmt.net +shdrkj.com +shdsd.com +shdzby168.com +shdzfp.com +shebao.net +shebao5.com +shebao520.com +shebaotong.com +shebiaotm.com +sheboo.com +sheca.com +shedejie.com +shedoor.com +shedunews.com +sheencity.com +sheepmats.com +sheetgit.com +sheinet.com +sheji.com +shejibao.com +shejiben.com +shejidaren.com +shejihz.com +shejijia.com +shejijingsai.com +shejiku.net +shejiqun.com +shejis.com +shejiwo.net +shejiye.com +sheketiandi.com +shekou.com +shelive.net +shellsec.com +shelter-china.com +shelterdome.net +sheluyou.com +shelwee.com +shen321.com +shenanhui.com +shenbao.org +shenbinghang.com +shenbingyiyuan.org +shenchai.com +shenchuang.com +shencut.com +shendoow.com +shendu.com +shendugho.com +shenduliaojie.com +shenduwin10.com +shenduwin8.com +shengangzc.com +shengaohua.com +shengbangshenghua.com +shengbaoluo.com +shengbenzixun.com +shengcai.net +shengcaijinrong.com +shengdan.com +shengdaosoft.com +shengdaprint.com +shengdianhuadg.com +shengdianhuadk.com +shengejing.com +shengenv.com +shengfanwang.com +shenghan.org +shenghefilms.com +shengheplastic.com +shenghui56.com +shenghuo365.com +shenghuojia.com +shenghuorili.com +shenghuowo.com +shengjing360.com +shengjoy.com +shengjunshi.com +shenglan1101.com +shengli.com +shengming.net +shengniuuz.com +shengpay.com +shengqian51.com +shengqianlianmeng.net +shengqugames.com +shengren.work +shengsci.com +shengtaireli.com +shengtian.com +shengtongedu.com +shenguang.com +shengwu01.com +shengxiao.net +shengxin.ren +shengxinquan.net +shengyan985.com +shengyasd.com +shengyeji.com +shengyidi.com +shengzehr.com +shengzhaoli.com +shenhaiedu.com +shenhexin.com +shenhexin.vip +shenhongmao.com +shenhua.cc +shenhuagushi.net +shenjian.io +shenjianhui.com +shenjiballs.com +shenjing.com +shenkexin.com +shenkong.net +shenlanbao.com +shenliyang.com +shenma.com +shenmadsp.com +shenmayouxi.com +shenmikj.com +shenmou.com +shenou.com +shenpinwu.com +shenpucw.com +shenqhy.com +shenqibuy.com +shenqiwunet.com +shenquol.com +shenrongda.com +shenrongjidian.com +shenruan.org +shenshi777.com +shenshiads.com +shenshoucdn.com +shenshouwl.com +shenshouyouxi.com +shenshu.info +shenshuo.net +shenshuw.com +shensuantang.com +shensuokeji.com +shentongdata.com +shenweimicro.com +shenweisupport.com +shenweixiangjiao.com +shenxianhua.com +shenxianyu.cc +shenxingnet.com +shenyangoffice.com +shenyd.com +shenyecg.com +shenyehd.com +shenyou.tv +shenyu.me +shenyunlaw.com +shenzan.com +shenzaole.com +shenzhekou.com +shenzhen-world.com +shenzhenair.com +shenzhenfreesky.com +shenzhenjia.net +shenzhenmarathon.org +shenzhenshouxin.com +shenzhentong.com +shenzhentour.com +shenzhenware.com +shepai1688.com +shequfu.com +shequfu.net +shequnguanjia.com +sherc.net +sheshui.com +sheui.com +shevdc.org +shexiannet.com +sheyi8.com +sheying001.net +sheyingtg.com +shezaixian.com +shezhan88.com +shfangshui.com +shfcw.com +shfdyk.com +shfft.com +shfilmmuseum.org +shfinancialnews.com +shfq.com +shfrp.com +shftth.com +shganheng.com +shgao.com +shgaoxin.net +shgci.com +shgjj.com +shgk.com +shgsec.com +shgsic.com +shgskj.com +shgtheatre.com +shgyg.com +shhanqiao.com +shhdouyue.com +shheywow.com +shhgzf.com +shhorse.com +shhssts.com +shhuangding.com +shhuayi.com +shhuihai.com +shhuisd.com +shhuu.com +shhws.com +shhxf119.com +shhxzq.com +shhyhy.com +shhzcj.com +shi-ci.com +shi-ming.com +shi78.com +shianxin.net +shianzhixuan.com +shibaihui.org +shibeike.com +shibeiou.com +shibor.org +shicai.biz +shicaidai.com +shicaizhanlan.com +shichangbu.com +shichuedu.com +shichuihui.com +shici.store +shicihui.com +shicimingju.com +shicishe.com +shiciyun.com +shida66.com +shidaedu.vip +shidapx.com +shidastudy.com +shidi.org +shidianbaike.com +shidiao136.com +shidiao18.com +shidz.com +shifang.tech +shifangshike.com +shifen.com +shifendaojia.com +shifeng.com +shifenyuedu.com +shigaoshan.com +shige.group +shiguangkey.com +shiguangxu.com +shiguangyouju.com +shiguanvip.com +shij001.com +shijiala.com +shijian.cc +shijianla.com +shijiaok.com +shijicloud.com +shijie2.com +shijiebang.com +shijieditu.net +shijiehuarenbao.com +shijiemap.com +shijiemingren.com +shijieshangzuihaodeyuyan.com +shijiexia.com +shijieyouxi.com +shijieyunlian.com +shijifeifan.com +shijihengtai.com +shijihr.com +shijihulian.com +shijiong.com +shijiudao.com +shijuba.com +shijue.me +shijuechuanda.com +shijueju.com +shikang.net +shikee.com +shiku.co +shileizcc.com +shileizuji.com +shilian.com +shilian.net +shilicdn.com +shilipai.net +shilitie.net +shiliupo.com +shimano-fishchina.com +shimaowy.com +shiminjiaju.com +shimo.im +shimo.run +shimodev.com +shimolife.com +shimonote.com +shimonote.net +shimowendang.com +shine-ic.com +shineenergy.com +shinelink.vip +shinelon.com +shinerayad.com +shineu.com +shineway.com +shinewing.com +shineyie.com +shinianonline.com +shiningmidas.com +shiningnew.com +shinnytech.com +shinsoukun.com +shinycg.com +shinyway.org +shiove.com +ship56.net +shipfinder.com +shipgce.com +shiphr.com +shipinzhibojian.com +ships66.com +shipsc.org +shiptien247.com +shiptux.com +shipxy.com +shiqi.me +shiqichan.com +shiqichuban.com +shiqidu.com +shiqu.com +shiqutech.com +shishagame.com +shishangfengyun.com +shishihuihui.com +shishike.com +shisongya.com +shisukeji.com +shitac.com +shitianxia.vip +shitibaodian.com +shitoc.com +shitou.com +shitouboy.com +shitourom.com +shiwan.com +shiwangyun.com +shiweisemi.com +shiwusmd.com +shixiaojin.com +shixibiaozhi.com +shixijob.net +shixin.com +shixingceping.com +shixinhua.com +shixiseng.com +shixiu.net +shixunsuda.com +shixunwl.com +shiyan.com +shiyanbar.com +shiyanbar.net +shiyanbbs.com +shiyanhospital.com +shiyanjia.com +shiyanlou.com +shiyculture.com +shiye.org +shiyebian.net +shiyebian.org +shiyi.co +shiyi11.com +shiyibao.com +shiyide.com +shiyiyx.com +shiyongjun.biz +shiyouhome.com +shiyousan.com +shiyu.pro +shiyue.com +shiyuegame.com +shiyunlaile.com +shizhanxia.com +shizhuonet.com +shjdceo.com +shjgu.com +shjgxy.net +shjh120.com +shjhjc.com +shjob.work +shjsit.com +shjt.net +shjxfc.com +shjyou.com +shjyyx.com +shjzfutures.com +shkegai.net +shkingchem.com +shkkl.com +shkuangjing.com +shkypump.com +shl56.com +shlawserve.com +shlcxby.com +shld.com +shlgwy.com +shlll.net +shlmth.com +shlpk.com +shlungu.com +shmama.net +shmarathon.com +shmds.com +shmedia.tech +shmet.com +shmetro.com +shmiaosai.com +shmljm.com +shmog.org +shmulan.com +shmusic.org +shmxcz.org +shmylike.com +shnaer.com +shnb12315.com +shnczq.org +shneweye.com +shnsyh.com +shnti.com +shoasis.net +shobserver.com +shockerli.net +shoegaze.com +shoeshr.com +shojo.cc +shokan.org +shokw.com +shomyq.com +shootmedia.net +zyboe.com +shop2255.com +shop2cn.com +shop4taobao.com +shopbackdrop.com +shopchaoren.com +shopeesz.com +shopin.net +shopj.net +shopjyh.com +shoplazza.com +shopmaxmb.com +shopnc.net +shopplus.vip +shoprobam.com +shopxo.net +shopyy.com +shoubaodan.com +shouce.ren +shouce365.com +shoucheng123.com +shoucw.com +shoudayy.net +shoudian.com +shoudian.info +shoudian.org +shouduit.com +shoudurc.com +shoufaw.com +shoufm.com +shougongke.com +shouhoubang.com +shouji.com +shouji10086.com +shouji315.org +shouji56-img.com +shouji56.com +shoujibao.net +shoujiduoduo.com +shoujihuifu.com +shoujimi.com +shoujitouping.com +shoujiwan.com +shouliwang.com +shoumizhibo.com +shoumm.com +shouqianba.com +shouqiev.com +shouqu.me +shoushenlvcheng.com +shoutao.biz +shouxi.com +shouxi.net +shouxi88.com +shouxieti.com +shouxintec.com +shouyao.com +shouye-wang.com +shouyihuo.com +shouyou.com +shouyoubus.com +shouyoucdn.com +shouyoujz.com +shouyouqianxian.com +shouyoushenqi.com +shouyoutan.com +shouyoutv.com +shouyouzhijia.net +shouzan365.com +shouzhang.com +shouzhangapp.com +shouzhou365.com +shouzhuanfa.com +shouzhuanzhidao.com +shovesoft.com +show160.com +showapi.com +showapk.com +showchina.org +showcome.net +showdoc.cc +showerlee.com +showing9.com +showji.com +showjoy.com +showjoy.net +showmebug.com +showself.com +showstart.com +showxiu.com +showxue.com +showyu.com +shoyoo.com +shpans.com +shpanyou.com +shpd.net +shpgt.com +shpgx.com +shphschool.com +shppa.net +shppon.com +shqcplw.com +shqi7.net +shqianshuibeng.com +shqingzao.com +shqlty.com +shqmxx.com +shqswlgs.com +shqyg.com +shrail.com +shrbank.com +shrca.org +shrcb.com +shrcdy.com +shrenq.com +shrenqi.com +shrjoa.com +shrobotpark.com +shryjc.com +shryou.com +shsaic.net +shsbnu.net +shsby.com +shsci.org +shsee.com +shsgyq.com +shshilin.com +shshinfo.com +shshzu.com +shsipo.com +shsixun.com +shsjb.com +shskin.com +shsot.com +shssp.org +shsxjy.com +shtdgj.com +shtdsc.com +shtefu.com +shtfqx.com +shtgds.com +shtianhe.cc +shtic.com +shtimg.com +shtion.com +shtpin.com +shtrhospital.com +shtutian.com +shtw.cc +shtwjiebao.com +shtxcj.com +shu-ju.net +shu163.com +shuaigeshe.com +shuaihuajun.com +shuaiming.com +shuainiba.com +shuaishou.com +shuaishouzhuang.com +shuajb.com +shuaji.com +shuaji.net +shuajibang.net +shuajibao.com +shuajige.net +shuajizhijia.net +shuame.com +shuanghui.net +shuangkuai.co +shuangliusc.com +shuangmatbs.com +shuangmei2008.com +shuangtao.com +shuangxian.com +shuangxinhui.com +shuangyingsx.com +shuangyuejn.com +shuangzan.com +shuangzheng.org +shuashuaapp.com +shuax.com +shuazhibo.com +shubendi.com +shubiaob.com +shubulo.com +shubuzi.com +shucaixiaoshuo.com +shuchongread.com +shuchuandata.com +shucong.com +shudan.vip +shudaxia.com +shudc.com +shudongpoo.com +shuerjia.com +shufa.com +shufaai.com +shufabao.net +shufafin.com +shufaji.com +shufami.com +shufashibie.com +shufawu.com +shufazidian.com +shufaziti.com +shufe.com +shuge.net +shuge.org +shuge9.com +shugoo.com +shuguanghuayuan.com +shuhai.com +shuhaidata.com +shuhaisc.com +shuhaitz.com +shuhegroup.com +shuhua66.com +shuhuangla.com +shui12366.com +shuicao.cc +shuichachong.com +shuichan.cc +shuichan51.com +shuichuyu.com +shuidichou.com +shuididabingchou.net +shuidigongyi.com +shuidihealth.com +shuidihuzhu.com +shuidihuzhu.net +shuidike.com +shuiditech.com +shuidixy.com +shuiguo.com +shuihulu.com +shuihuoibm.com +shuijing100.com +shuijingcn.com +shuijingka.com +shuijingwanwq.com +shuijingwuyu.com +shuiliaosheji.com +shuimiao.net +shuimujiaju.com +shuimuyulin.com +shuini.biz +shuipingzuo.com +shuiwushi.net +shuiyinbao.com +shuiyinyu.com +shuiyoucam.com +shuizhiyuncaishui.com +shujike.com +shuju.net +shujuba.net +shujubang.com +shujubo.com +shujucun.com +shujupie.com +shujutang.com +shujuwa.net +shukeba.com +shukeju.com +shukingfashion.com +shukoe.com +shukongwang.com +shukuai.com +shulanapp.com +shuland.com +shulb.com +shuliao.com +shulidata.com +shuliyun.com +shumahezi.com +shumaidata.com +shumeipai.net +shumeipaiba.com +shumenol.com +shumensy.com +shumiao.com +shumiimg.com +shumilou.org +shumo.com +shunchangzhixing.com +shundecity.com +shunderen.com +shundred.com +shunfalighting.com +shunfangw.com +shunguang.com +shunmi.com +shunong.com +shunshikj.com +shunshunliuxue.com +shunvzhi.com +shunwang.com +shuo66.com +shuoba.org +shuobao.com +shuobofootball.xyz +shuocdn.com +shuodedui.com +shuomingshu.net +shuomingshuku.com +shuoshuo9.com +shuoshuokong.com +shuoshuokong.org +shuowan.com +shupaiyun.com +shuqi.com +shuqiaozt.com +shuqiapi.com +shuqiread.com +shuqireader.com +shuqistat.com +shuquge.com +shuquge.la +shuqun.com +shuquta.com +shuqw.com +shuren100.com +shushangyun.com +shushao.com +shushi100.com +shushihome.com +shushubuyue.com +shushubuyue.net +shusw.com +shutcm.com +shuti.com +shuwangxing.com +shuwenxianyun.com +shuwulou.com +shuxinyc.com +shuxinyi.net +shuxuehua.com +shuyangba.com +shuyfdc.com +shuyong.net +shuyouji.vip +shuyuewu.co +shuyun.com +shuzhi9.com +shuzhibaogao.net +shuzhiduo.com +shuzhou.cc +shuzibao.com +shuzixiaoyuan.com +shw8.com +shwcsh.com +shwdbjgs.com +shwebspace.com +shweiya.com +shwglm.com +shwpbbs.com +shwqjx.com +shws.org +shwsg.net +shwyky.net +shxbe.com +shxhgzf.com +shxiaoran.com +shxibeiquanshe.com +shxil.com +shxkwck.com +shxnetwork.com +shxwcb.com +shyanke.com +shydjscl.com +shyestar.com +shyfci.com +shygc.net +shyhhema.com +shyihuoh.com +shykx.com +shykz123456.com +shymte.com +shyonghui.xyz +shyongzeng.com +shyouai.com +shyouth.net +shyrcb.com +shyuanye.com +shyueai.com +shyuwl.com +shyuzhai.com +shywtb.com +shyxi5.com +shyxwz.com +shyy6688.com +shyyp.net +shyywz.com +shyz07.com +shyzsd.com +shzbc.com +shzbh.com +shzbkj.com +shzf.com +shzfzz.net +shzgd.org +shzgh.org +shzh.net +shzhangji.com +shzhanmeng.com +shzhiyingedu.com +shzhyx.com +shzkb.com +shzpin.com +shzq.com +shzs-benz-vpc.com +shzsun.com +shzyw.com +si-en.com +si-in.com +zybk6.com +si9377.com +siaedu.net +siaoao.com +sias-sha.com +sibfi.com +sibida.net +sicangart.com +sicheng.net +sicher-elevator.com +sichina.com +sichuan163.com +sichuanair.com +sichuangwy.org +sicimano.com +sidfate.com +siengine.com +sieredu.com +sifalu.com +sifangvideo.com +sifayun.com +siff.com +sifive-china.com +sifou.com +sifve.com +sigchina.com +sightp.com +siglent.com +siglff.com +sigmachip.com +sigmamed.net +sigmastarsemi.com +sigmoblive.com +sigongzi.shop +siguoya.name +siguschool.com +sihai-inc.com +sihaidj.com +sihaishuyuan.com +sihaitv.com +siheal.com +sihoo.com +sihuanpharm.com +sihuida.net +sihuisoft.com +siii.xyz +siilu.com +sijiaomao.com +sijijun.com +sijinchuanbo.com +sijitao.net +sikiedu.com +silanggame.com +sileadinc.com +silenceper.com +silianmall.com +siliaobaba.com +siliaokelijixie.com +siling.com +silkpresent.com +silkroadtechnologies.com +silksong.me +sillydong.com +silucar.com +silucg.com +siludao.com +siluecai.com +siluke.cc +siluke.tw +silukeke.com +siluwu.com +zybird.com +zybang.com +sim800.com +simagic.com +simapple.com +simcolux.com +simcom.com +simcomm2m.com +simcu.com +simei8.com +simengadx.com +simiam.com +simici3.com +simiki.org +simingcun.net +simingtang.com +simon96.online +simope.com +simp.red +simperfect.com +simple-is-better.com +simplecd.cc +simplecreator.net +simpledatas.com +simplexue.com +simpo-data.com +simu800.com +simul-china.com +simulway.com +simuwang.com +simwe.com +simxhs.com +sina.com +sina.lt +sina.net +sinaapp.com +sinacdn.com +sinachannel.com +sinacloud.com +sinacloud.net +sinaedge.com +sinahk.net +sinahlj.com +sinaif.com +sinaimg.com +sinajs.com +sinaluming.com +sinanet.com +sinanya.com +sinaquyong.com +sinashow.com +sinastorage.com +sinasws.com +sinauda.com +sinawallent.com +sinawap.com +sinawf.com +sincetimes.com +sinddsun.cyou +sindsun.com +sinereal.com +sinesafe.com +sinforcon.com +singaporepaya.com +singbon.com +singcere.net +singdown.com +singee77.com +singfun.com +singhead.com +singhot.com +singlecool.com +singmaan.com +singread.com +singtaonet.com +sinlu.net +sinmeng.com +sino-corrugated.com +sino-cr.com +sino-flexography.com +sino-foldingcarton.com +sino-info.net +sino-life.com +sino-manager.com +sino-rainbow.cc +sino-web.net +sinoancher.com +sinoaquafilter.com +sinoassistance.com +sinobaron.com +sinobasalt.com +sinobasedm.com +sinocare.com +sinocars.com +sinocateringexpo.com +sinocax.com +sinochem.com +sinochemb2c.com +sinochemitc.com +sinoclick.com +sinocul.com +sinoec.net +sinoevin.com +sinofo.com +sinofsx.com +sinogt.com +sinohb.com +sinohotel.com +sinohowe.com +sinohx.com +sinohydro.com +sinoid.com +sinoinfosec.com +sinoing.net +sinoins.com +sinointeractive.com +sinologyinstitute.com +sinolub.com +sinolube.com +sinomapping.com +sinomaps.com +sinomatin.com +sinonet.org +sinooilgas.com +sinopec-usa.com +sinopec.com +sinopecgroup.com +sinopechyzx.com +sinopecnews.com +sinopecsales.com +sinopecsenmeifj.com +sinopharm.com +sinopharmzl.com +sinophex.com +sinopr.org +sinosig.com +sinosiglife.com +sinoss.net +sinostargroup.com +sinosteel.com +sinosun.com +sinotf.com +sinotn.com +sinotone.net +sinotrans.com +sinovale.com +sinovatech.com +sinovatio.com +sinovationventures.com +sinovdc.com +sinovoice.com +sinowealth.com +zyautoe.com +sinowel.com +sinoxk.com +sinozoc-ex.com +sinreweb.com +sinsam.com +sintaytour.com +sintu.com +sinture.com +sinvofund.com +sinvta.com +sinyuee.com +sinzk.com +sipai.com +sipaphoto.com +sipco.com +sipeed.com +sipgl-lcl.com +siphrd.com +sipo-sc.com +siposchina.com +siqiquan.org +sique.com +sir3.com +sir66.com +siryin.com +sisen.com +sisensing.com +sishuok.com +sishuxuefu.com +sisijiyi.com +sisjava.com +sisp-china.com +sisuoyun.com +siswin.com +site-digger.com +site119.com +siteapp-static.com +sitekc.com +siteonlinetest.com +sithc.com +sitiaoyu.com +sitongedu.org +sitongzixun.com +sitrigroup.com +situdata.com +sivan.in +sivps.com +siwaman.com +siwazywcdn2.com +siwazywcdn3.com +siweidaotu.com +siweiearth.com +siweikongjian.net +siweiw.com +siwuprint.com +sixflower.com +sixianchina.com +sixiang.im +sixiju.com +sixstaredu.com +sixu.life +sixuexiazai.com +sixunited.com +siyanhui.com +siyuan.cc +siyuanedu.com +siyuanren.com +siyuefeng.com +siyuetian.net +siyuweb.com +sizeofvoid.net +sizuo.com +sj-lawyer.com +sj0763.com +sj11hb.com +sj123.com +sj33.net +sj3w.com +sj88.com +sj998.com +sjawards.com +sjcomic.com +sjdzp.com +sjdzp.net +sjebh.com +sjetdz.com +sjf029.com +sjfcdn.com +sjfpro.com +sjfzxm.com +sjgh94.com +sjgle.com +sjgnskf.com +sjhcip.com +sjhfkhgut009.com +sjhfrj.com +sjhgo.com +sjhl.cc +sjhy.net +sjjob88.com +sjlqgg.com +sjm.life +sjmdh.com +sjmeigao.com +sjmwsw.com +sjmxx.com +sjono.com +sjpcw.com +sjq315.com +sjqcj.com +sjrwzz.com +sjsbk.com +sjsydq.com +sjtickettech.com +sjtjcn.com +sjtug.org +sjtxt.com +sjtxt.la +sjtype.com +sjvi.net +sjwl.xyz +sjwtlm.com +sjwxzy.com +sjwyx.com +sjxinxiwang.com +sjxs.la +sjybsc.com +sjycbl.com +sjytech.com +sjyx.com +sjyyt.com +sjz.cc +sjz110.cc +sjzbasha.com +sjzbwx.com +sjzcmw.com +sjzcsw.com +sjzgxwl.com +sjzhu.com +sjzhushou.com +sjzjkqgs.com +sjzkz.com +sjzlg.com +sjzlgz.com +sjzmama.com +sjznews.com +sjzqcrl.com +sjzrbapp.com +sjzsidadianji.com +sjztd.com +sjzxtsh.com +sjzyz.net +sjzzimu.com +sk163.com +sk1999.com +sk2game.com +sk2w.net +skatehere.com +skcto.com +skdlabs.com +skeo.net +sketchchina.com +sketchchina.net +sketchcn.com +sketchupbar.com +sketchupbbs.com +skg.com +skieer.com +skight.com +skinme.cc +skip-links.com +skjcsc.com +sklinux.com +sklse.org +skomart.com +skongmx.com +skrshop.tech +sksdwl.com +sktfaker.com +skusoft.com +skwo.net +sky-deep.com +sky-fire.com +sky1shop.com +skyallhere.com +skyao.io +skybig.net +skybluek.com +skycaiji.com +skycloudsoftware.com +skycn.com +skycn.net +skydust.net +skyeaglee.com +skyecs.com +skyfeather.online +skyfollowsnow.pro +skyfont.com +skyfox.org +skyheng.com +skyju.cc +skylerzhang.com +skylook.org +skymoons.com +skymoons.net +skynicecity.com +skynj.com +skype-china.net +skyrichpower.com +skyrivers.org +skyrj.com +skysea.com +skysgame.com +skysriver.com +skysrt.com +skyts.net +skytv.cc +skyue.com +skywldh.com +skyworth-ac.com +skyworth-cloud.com +skyworth-ea.com +skyworth.com +skyworthbox.com +skyworthdigital.com +skyworthds.com +skyworthiot.com +skyworthlighting.com +skyworthznxyj.com +skyxinli.com +skyyin.org +skyzms.com +sl-360.com +sl.al +sl153.com +sl916.com +sl91d.com +slamtec.com +slanissue.com +slanmedia.com +slassgear.com +slatic.net +slchos.com +sle.group +sleele.com +sleepboy.com +slegetank.com +slertness.com +slfwq.com +slgfjzz.com +slicercn.com +slimtheme.com +slink8.com +slinli.com +slinuxer.com +sljkj.com +sljypt.com +slk1.net +sllai.com +sllssrq.com +slogra.com +slooti.com +slovakia-visacenter.com +slovenia-visacenter.com +slpi1.com +slrbs.com +slready.com +slssx.com +slsteel.com +slswx7.com +sltg2019.com +sltv.net +zyan.cc +slwh-dfh.com +slwwedding.com +slzsxx.com +slzww.com +sm-check.com +sm-cq.com +sm-main.com +sm012.com +sm160.com +sm160.net +sm688801.com +sm688839.com +sm96596.com +smabye.com +smallfighter.com +smalljun.com +smallk.net +smallpdfer.com +smallxu.me +smallyuan.com +smallyuzhou.com +smarch.com +smarchit.com +smart-idc.net +smart-ptt.com +smart-rise.com +smart4e.com +smartbgp.com +smartcityzhejiang.com +smartcloudcon.com +smartdeep.com +smartdot.com +smartedm.com +smartermicro.com +smartgaga.com +smartgeek.vip +smarthey.com +smarthomecn.com +smartisan.com +smartisanos.com +smartjoygames.com +smartleon.net +smartlifein.com +smartlinku.com +smartmidea.net +smartoct.com +smartont.net +smartpigai.com +smartpoweriot.com +smartqian.com +smartsenstech.com +smartsteps.com +smartstudy.com +smartwebee.com +smartx-cn.com +smartx.com +smartxiantao.com +smartyao.com +smartyoke.com +smarun.com +smaryun.com +smaty.net +smbais.com +smbinn.com +smbxw.com +smc18.com +smc3s.com +smcic.net +smd88.com +smdcn.net +smdiban.net +smdmark.com +smdyvip.com +smdyy.cc +sme-cn.com +sme8718.com +smebb.com +smemo.info +smeoa.com +smfsgs.com +smfyun.com +smggw.com +smgstar.com +smhdoto.com +smhsw.com +smhyplay.com +smianet.com +smic-sh.com +smics.com +smil888.com +smilec.cc +smilingwhitebear.com +smiseo.com +smk3000.com +smkmake.com +smkmp.com +smlaw8.com +smmy365.com +smo-clinplus.com +smo-software.com +smohan.net +smokeliq.com +smoothgroup.cc +smovie168.com +smppw.com +sms9.net +smsbao.com +smshx.com +smskb.com +smsot.com +smsyun.cc +smt-dip.com +smtcdns.com +smtcdns.net +smtchinamag.com +smtcl.com +smtdc.com +smthome.net +smtlzb.com +smtphub.org +smtsvs.com +smttouch.com +smtvip.com +smucdn.com +smudc.com +smwd.tech +smwenxue.com +smxdiy.com +smxgjj.com +smxs.com +smy01.com +smyfinancial.com +smyhvae.com +smyx.net +smyxxj.com +smzdm.com +smzdmimg.com +smzdwan.com +smzwgk.com +smzy.com +snai.edu +snail.com +snail007.com +snailgame.net +snailshub.com +snailsleep.net +snailyun.com +snapemoji.net +snbkf34.com +sncdental.com +sncoda.com +sndhr.com +sndo.com +sneac.com +sneia.org +sngct.com +sngdxsn.com +snh48.com +snhrm.com +sniec.net +snieri.com +snimay.com +snipurl.cc +snjairport.com +snjbs.com +snjjiu.com +snjrsks.com +snnd.co +snobten.com +snodehome.com +snor-china.com +snowballsecurities.com +snowballtech.com +snowdream.tech +snowyimall.com +snps.tech +snrat.com +snren.com +snrtv.com +snrunning.com +sns.io +snscz.com +snsfun.cc +snsfun.com +snsii.com +snssdk.com +snsyx.com +snto.com +snupg.com +snxw.com +snyu.com +snzfj.net +snzhz.com +so-love.com +so-naver.com +so.com +so666gslb.com +so8848.com +soarna.com +soarwatch.com +sobaidupan.com +sobeian.com +sobereva.com +sobeycache.com +sobeycloud.com +sobot.com +soboten.com +socang.com +socay.com +soccerbar.cc +socchina.net +sochengyi.com +sochips.com +socialark.net +socialbeta.com +socialfishface.com +socite.com +sockip.com +socks1688.com +socolar.com +socomic.com +socool-tech.com +sodalife.xyz +sodao.com +sodc8.com +sodeog.com +sodexo-cn.com +sodhef.com +sodianwan.com +sodino.com +sodocloud.com +sodocs.net +sody123.com +soeasysdk.com +sofabiao.com +sofang.com +sofangche.com +sofasofa.io +sofastack.tech +sofi-tech.com +sofreight.com +soft128.com +soft2005.com +soft50.com +soft5566.com +soft568.com +soft6.com +soft778.com +soft78.com +soft808.com +soft8899.com +softabc.com +softbanks.net +softbar.com +softbingo.net +softgostop.com +softhead-citavi.com +softhome.cc +softtest.com +softwarechn.com +softwarecn.com +softwarekeyclub.com +softweek.net +softwhy.com +softwincn.com +softworker.com +softxz.net +sofun.com +sogaa.net +sogo.com +sogoke.com +sogood360.com +sogou-inc.com +sogou-op.org +sogou.com +sogou2.com +sogoucdn.com +sogouimecdn.com +sogouw.com +sogowan.com +soharp.com +soho-yiming.com +soho3q.com +sohochina.com +sohodd.com +sohonow.com +sohotask.com +001tech.com +sohu-inc.com +sohu.com +sohu.net +sohucs.com +sohuhistory.com +sohunjug.com +sohuns.com +sohusce.com +sohuu.com +soicp.com +sojex.net +sojiang.com +sojiang.net +sojianli.com +sojixun.com +sojson.com +sojump.com +sojump.hk +sokoban.ws +soku.com +sokuba.com +sokutu.com +solarbe.com +solaridc.com +soldierstory-toys.com +soleilneon.com +solepic.com +solidot.org +soliloquize.org +solo-launcher.com +solochex.com +soloknight.xyz +solosea.com +solotoon.com +solution9.net +solvyou.com +somao123.com +somcool.com +somdom.com +someabcd.com +someonegao.com +somepen.com +something8.com +sometracking.com +somo.so +somode.com +sonald.me +songcn.com +songguo7.com +songguojiankang.com +songguosouben.com +songhaifeng.com +songhaoyun.com +songhaozhi.com +songhengnet.com +songhuwan.com +songker.com +songlei.net +songliguo.com +songma.com +songqili.net +songqinedu.com +songqinnet.com +songshitang.com +songshizhao.com +songshuai.com +songshudiandian.com +songshuhui.net +songshushuo.com +songsongruanwen.com +songsongyingxiao.com +songsongyun.com +songtaste.com +songtianlube.com +songxiaocai.com +songxiaojin.com +songyang.net +songyanjiaye.com +songyi.net +songyongzhi.com +songyuan163.com +songzhaopian.com +songzi100.com +songziren.com +songzixian.com +sonhoo.com +sonicmodel.net +soniu.net +sonkwo.com +sonkwo.hk +sonnewilling.com +sontan.net +soocang.com +sooele.com +soogif.com +soojs.com +soolco.com +soolun.com +soomal.com +soonku.net +soonwill.com +soonyo.com +sooopu.com +soopat.com +soopay.net +sooshong.com +sooshu.net +soosmart.com +sootoo.com +sooxue.com +sooyisi.com +sooyooj.com +sooyuu.com +soozhu.com +soperson.com +sophgo.com +soq.com +soqicrm.com +soquair.com +soripan.net +soruncg.com +sos919.com +sosdx.com +sosg.net +soshoo.com +soshoulu.com +sosidc.com +soso.com +sosobtc.com +sosohaha.com +sosomp.com +sosoo.net +sosoq.org +sosorank.com +sososteel.com +sosotec.com +sosoyunpan.com +sosoyx.com +sosoyy.com +sosuo.name +sotake.com +sotemall.com +sothink.com +sotoy.net +sotwm.com +sou-yun.com +sou.com +souaiche.com +soucai.com +souche-fin.com +souche-inc.com +souche.com +soucod.com +soudao.com +soudoc.com +soudron.com +soudu.org +souduanzu.com +soueast-motor.com +souebao.com +soufang.com +soufuli.net +soufun.com +soufunimg.com +souge.cc +sougu001.com +souho.cc +souho.net +souhu.com +souid.com +souidc.com +souidc.org +soukecheng.net +soukf.com +soukuyou.com +soulapp.me +souldee.com +soulgame.mobi +souluo.net +soulwonderland.com +sound-force.com +soundai.info +soupan.info +soupf.net +soupingguo.com +soupu.com +soupv.com +souqian.com +souqiu8.com +souqupu.com +source3g.com +sourcecodecap.com +sourcecvs.com +sourcedev.cc +sourcegcdn.com +sourl.co +sousea.com +soushai.com +soushu.vip +soushuking.com +sousou.com +sousou.pro +sousoudus.com +sousuoyouxi.com +soutaowang.com +southbeauty.com +southbeautygroup.com +southcn.com +southei.com +southernfund.com +southgis.com +southmoney.com +southnews.cc +southnews.net +southseagy.com +southsurvey.com +southyule.com +soutu123.com +soutushenqi.com +souvr.com +souwoo.com +souxue8.com +souya.com +souyidai.com +souyue.mobi +souyunku.com +sovell.com +soven.com +sowang.com +soweather.com +sowellwell.com +sowin.com +sowu.com +soxsok.com +soyim.com +soyiyuan.com +soyohui.com +soyoung.com +soyouso.com +soyunion.com +sozdata.com +sozhen.com +sp.cc +sp588.cc +sp588.net +sp6910.com +sp888.net +sp910.com +space1688.com +spacechina.com +spacemit.com +spacesystech.com +spanishknow.com +sparenode.com +spark-app.store +spark-page.com +spark4y.com +sparkandshine.net +sparkgis.com +sparkletour.com +spasvo.com +spawatervip.net +spawor.com +spay365.com +spbo.com +spbo1.com +spbosta.org +spc365.net +spcapsules.com +spcdntip.com +spcdntipbak.com +spcloudhw.com +spcloudhw.net +spcywang.com +spdbh5.com +spdbuser.com +spdcat.com +spdchgj.com +spdex.com +spdiy.com +spdiy.net +spdl.com +spdydns.com +spearpointing.com +specialcdnstatus.com +spectreax.site +speed-dns.cc +speedcdns.com +speednt.com +speedpdf.com +speedsz.net +speedtest.im +speedws.info +speedws.org +speiyou.com +spfmc.com +spforum.net +spgnux.com +spibj.com +spiiker.com +spin-view.com +spirit-doll.net +spirithy.com +spischolar.com +spjxcn.com +splaybow.com +splayer.org +splayer.work +splmcn.com +spnchinaren.com +spockker.com +spoience.com +spointdesign.com +sportnanoapi.com +sportq.com +sports-idea.com +sportsdt.com +sposter.net +spot.download +spoto.net +spotpear.com +spouyashop.com +spplnet.com +spprec.com +spr-atm.com +sprayv.com +spreton.com +spring4all.com +springairlines.com +springboot.io +springcloud.cc +springcocoon.com +springtour.com +springwater.vip +sprzny.com +spsb114.com +spsy.org +sptcc.com +sptccn.com +spthome.com +spush.com +spyouxi.com +spzs.com +sq.cc +sq1996.com +sq23.com +sq521.com +sq523.com +sq580.com +sq581.com +sq688.com +sqa-chn.com +sqage.com +sqanju.com +sqbot.vip +sqchunqiu.com +sqdaily.com +sqeatin.com +sqfcw.com +sqfgc.com +sqfortune.com +sqggzy.com +sqkb.com +sql110.com +sqncsx.com +sqngvd.com +sqqmall.com +sqqnh.org +sqrc.net +sqreader.com +sqrt9.com +sqrtthree.com +sqstudio.com +squarecn.com +squarefong.com +squirtle-skfjkdl.com +sqzw.com +srcb.com +srcbcz.com +srcgsre.com +srcmsh.com +srell.com +srfip.com +srgnmsrg.com +srgow.com +srichina.org +sritsoft.com +zy91.com +srrsh.com +srrtvu.com +srtong.com +srun.com +srusoq.com +srw00.com +srworld.net +srx3.net +srxww.com +sryjx.com +srzc.com +srzxjt.com +ss-ceo.com +ss8899888.com +ssaxx.com +ssaya.win +ssbbww.com +ssbgzzs.com +ssby.cc +sscity.org +sscmwl.com +sscom.vip +ssdata.com +ssdax.com +ssdfans.com +ssdzg.com +sseinfo.com +ssf.cc +ssgabc.com +ssgeek.com +ssggg.com +ssgushi.com +ssine.cc +ssine.ink +ssipex.com +ssish.com +ssjjss.com +ssjjtt.com +ssjlicai.com +ssky123.com +sslaaa.com +sslawy.com +sslceshi.com +sslchaoshi.com +sslchina.com +sslcity.com +ssldun.com +ssleye.com +sslibrary.com +sslnode.com +ssmec.com +ssmeow.com +ssnewyork.com +ssnuo-ch.com +ssofair.com +ssoffo.com +ssp86.com +sspaas.com +sspai.com +sspai.me +sspeeddns.com +ssports.com +ssports.net +ssqgx.com +ssqzj.com +ssrcdn.com +ssrcr.com +ssreader.com +ssscdn.com +ssso.com +sst-ic.com +sst-sd.com +sswater.com +sswchina.com +ssxcycy.com +ssxf.net +ssxpxjt.com +ssxxp.com +ssyar.com +ssyer.com +ssytnet.com +ssyxlx.com +ssyzx.net +sszgit.com +sszhg.com +sszjnc.com +sszzz.com +st-recovery.com +st001.com +st12121.net +st123.com +st180.com +stackboom.xin +stackcc.com +stackoom.com +stackoverflow.club +stackoverflow.wiki +stage1st.com +stage3rd.com +stajy.com +stakssyl.com +standardshop.net +star1024.com +star365.com +star7game.com +star7th.com +starbaby.cc +starbaby.com +starbaysoft.com +starde.net +stardict.net +stardict.org +stardoctor.com +starduster.me +starfivetech.com +stargame.com +starlakelab.com +starlott.com +starming.com +starooo.com +starpainters.net +starpiao.com +starrails.com +starrockinvest.com +starrtc.com +starrydyn.com +starrysurvey.com +stars-one.site +starschina.com +starschinalive.com +starsino.com +starsmicrosystem.com +starstech.cc +starswar.org +zy728.com +zy-cam.com +startcarlife.com +startech.ltd +starting2000.com +startogether1.com +startos.com +startos.org +startup-partner.com +starwarschina.com +starx-w.com +starxn.com +stat-nba.com +stat18.com +zxzyy.com +staticaa.com +staticdn.net +staticec.com +staticfile.org +statickksmg.com +statics.cc +zxzyl.com +staycu.com +stbieshu.com +stc2002.com +stcmcu.com +stcmcudata.com +stcn.com +stdaily.com +stdard.com +stdicloud.com +stdlibrary.com +stdout.pub +stdwp.com +steambang.com +steambig.com +steamboxs.com +steamchina.com +steamcn.com +steamdd.com +steampp.net +steamproxy.net +steamrepcn.com +steamxdf.com +stec.net +stedu.net +steelphone.com +steelsearcher.com +stefg.org +step-by-step.tech +stfile.com +stg8.com +stgairasia.com +stgod.com +stgowan.com +sthforme.com +sthifi.com +sthke.com +sticksgame.com +stkey.win +stklt.com +stlswm.com +stmaoyi.com +stmbuy.com +stmybj.com +stnn.cc +stnts.com +stnye.cc +stockhn.com +stockstar.com +stockwei.com +stointl.com +stojf.com +stone168.com +stonebuy.com +stoneios.com +stoneleague.com +stoneo2o.com +stonepoll.com +stonepoll.net +stoneread.com +stonescloud.com +stoneu.com +stonexp.com +stor-age.com +zxzt123.com +storagesemicon.com +zxzmail.com +zxzlf.com +zxzj.me +storkapp.me +stormorai.com +zxzhijia.com +story520.com +storyboardworld.com +storyday.com +storyren.com +stourweb.com +stourweb.net +stovol.club +stoyard.com +str-mo.com +straitchain.com +strangetop.com +strcpy.me +streamaxtech.com +streamcomputing.com +zxxxkj.com +streffy.com +strong-study.com +strongled.com +stswjx.com +sttcq.com +stubbornhuang.com +studa.net +studencis.com +studentboss.com +studioartiz.com +studyez.com +studyfr.net +studyget.com +studygolang.com +studyingtours.com +studyjamscn.com +studyll.com +studypay.com +studyuser.com +studyvip.com +stuhome.net +stuhui.com +stuliving.com +stuln.com +stupid77.com +stupidet.com +stuq.com +stutimes.com +stvgame.com +styadmin.com +stylar.hk +stylecdn.com +stylemode.com +styles-sys.com +su-long.com +suaee.com +suanbanyun.com +suandao.com +suanfazu.com +suanguajie.com +suanjuzi.com +suanlitou.com +suansheng.com +suanst.com +suanya.com +suapp.me +subangjia.com +subaonet.com +subaotuan.com +subingkang.com +subinwechat.com +subline.org +subo.net +subom.net +subond.com +subuy.com +sucai.com +sucaibar.com +sucaidao.com +sucaifu.com +sucaihuo.com +sucaijishi.com +sucainiu.com +sucaitu.cc +sucaiw.com +sucaixiang.com +such-game.com +suchasplus.com +suchz.com +sucop.com +sucoupon.com +suda123.com +sudaizhijia.com +sudaoa.com +sudaqq.com +suddenfix.com +sudidc.com +sudu-67ph.com +sudu-72ub.com +sudu-kay6.com +sudu-pq2y.com +sudu-q6wk.com +sudu-r8gh.com +sudu-sq56.com +sudu-tf42.com +sudu-xu9b.com +sudu-y94k.com +sudu123.net +suducha.com +sududa.com +sudupower.net +sudusite.com +sueflower.com +sueon.com +sufangxu.com +sufeinet.com +sufont.com +sugarforex.com +sugarguo.com +sugarle.com +sugon.com +sugou.com +suhaodian.com +suhuibao.com +suhuikj.com +suhuishou.com +sui.com +suibianla.com +suibianzhao.com +suibiji.com +suilengea.com +suileyoo.com +suinikan.com +suiniyi.com +suiqiao.com +suirui.com +suishenyun.net +suishouji.com +suisuihu.com +suisuijiang.com +suixinzulin.com +suixw.com +suiyichong.com +suiyiju.com +suiyuanjian.com +suiyueyule.com +suizhoushi.com +suizui.net +sujh.net +sujiaozhipin888.com +suki.club +sukimad.com +sukiu.net +sukkaw.com +sukoutu.com +sulabs.net +sulandscape.com +sule.cc +suleapi.com +suliaodingzhi.com +sumaart.com +sumaarts.com +sumatang.com +sumavision.com +sumeme.com +sumgotea.com +sumian.com +suming.in +sumkoo.com +sumkoo.net +sumly.net +summall.com +summerlight.name +sumoon.com +sumory.com +sumrday.net +sumscope.com +sumsz.com +sumygg.com +sumzc.com +sun-ada.net +sun-wish.com +sun0769.com +sun0769ns.com +sun0816.com +sun66.net +sunacctg.com +sunater.com +sunbloger.com +sunbo.com +sunbo367.com +sunborngame.com +sunbowhospital.com +sunboxsoft.com +sunboyu.com +suncco.com +sundan.com +sundayrx.net +sundns.com +sundray.com +sundung.com +sundxs.com +sunear.net +sunfcb.com +sunfounder.cc +sunfront.com +sunft.com +sungari1995.com +sungesoft.com +sungoal.org +sungoedu.com +sunhante.com +sunhaojie.com +suninf.net +suning.com +suningbank.com +suningcloud.com +suningestate.com +suningholdings.com +sunjs.com +sunlands.com +sunlandstudy.com +sunlandvip.com +sunlandzk.com +sunlife-everbright.com +sunlight-tech.com +sunlightbig.com +sunlogin.com +sunlons.com +sunlordinc.com +sunlune.com +sunmi.com +sunmingxia.com +sunmnet.com +sunnada.com +sunny90.com +sunnychina.com +sunnyos.com +sunnyqi.com +sunnyxx.com +sunofbeaches.com +sunowo.com +sunpala.com +sunpcm.com +sunpma.com +sunpun.com +sunrisedutyfree.com +sunrisenan.com +sunrtb.com +sunsetcare-mirrortech.com +sunsharer.com +sunshe.com +sunshine-power.net +sunshinechn.com +sunsky-online.com +sunstarasia.com +sunstu.com +suntop168.com +suntray.com +suntrayoa.com +sunup3d.com +sunupcg.com +sunwayworld.com +sunweiwei.com +sunwinon.com +sunwoda.com +sunwy.org +sunxiaoning.com +sunxinfei.com +sunyansong.com +sunyea.com +sunyet.com +sunyingchao.com +sunyixing.com +sunyongfeng.com +sunzhongwei.com +suo.im +suo.nz +suobao8.com +suobifa.com +suobuy.com +suofeiya.com +suofeiyashop.com +suoge.net +suokao.com +suoluomei.com +suosihulian.com +suoxin5.com +suoyiren.com +supcname.com +supcompute.com +supcon.com +supdri.com +supeeder.com +supei.com +super-mt.com +superayi.com +superboss.cc +superbrowser.hk +superbuy.com +superbuyy.com +supercodepower.com +supercrm.com +superfix.com +supergslb.com +superhl.com +superjq.com +superlib.com +superlib.net +superlink.mobi +supermap.com +supermap.io +supermapcloud.com +supermapol.com +superpb.com +superpowercn.com +superqq.com +supersharket.com +superslide2.com +supersocket.net +superyd.com +superzl.com +supesite.com +supesoft.com +supet.com +suplaymart.com +supmeter.com +supmil.com +supmil.net +supoin.com +supool.com +supor.com +suporpe.com +zxxww.com +zxxk.com +zxwyouxi.com +suqian360.com +suqicloud.com +suqishi.com +suqnn.com +suremotoo.site +surgerycast.com +surprising.studio +sursen.com +sursenelec.com +sursung.com +surtime.com +suruicloud.com +survey-y.com +survey.work +surveyhills.com +surveyunion.com +survivor99.com +sushiyanglao.com +susong51.com +susongbbs.com +susudm.com +suteidc.com +sutuiapp.com +sutune.me +suuuwsj9.xyz +suv666.com +suxiazai.com +suxieban.com +suxiege.com +suxing.me +suyuening.com +suyugame.com +suyujoy.com +suyutech.com +suzhou.cc +suzhoubank.com +suzhouds.com +suzhoulida.com +suzhoushilla.com +suzhousj.com +suzip.com +suzip.net +suzuki-china.com +suzuki-shanghai.com +sve.cc +svenhetin.com +svinsight.com +svip15.com +svip51.com +svipduihuan.com +svlik.com +svn999.com +svnbucket.com +svnspot.com +svp6.com +svw-volkswagen.com +svwuc.com +sw-bllp.com +sw0013.com +sw2008.com +sw996.com +swaeab.com +swakopuranium.com +swang8.com +swaqds.com +swarma.net +swarma.org +swatou.com +swbbsc.com +swchina.org +sweet-data.com +sweetalkos.com +sweetdan.com +sweetlove.cc +sweetmartmarketing.com +sweetread.net +swfc-shanghai.com +swg36.com +swgzs.com +swhysc.com +swift51.com +swifthumb.com +swiftjava.com +swiftlet.net +swiftstar.net +swijoy.com +swirebev.com +switchxiazai.com +switzerland-visacenter.com +swjoy.com +swkong.com +swliuxue.com +swoft.org +swomc.net +swoole-cloud.com +swoole.com +swordair.com +swordart.online +swordofmorning.com +swordtt.com +swotbbs.com +swsbw.com +swsm.net +swsmu.com +swstsg.com +swt0.com +swtuchuang4.com +swtuchuang5.com +zxwstong.com +swwlotus.com +swwy.com +swxk.cc +sx-sw.com +sx1211.com +sx189.com +sx267.com +sxafz.com +sxbada.com +sxbang.net +sxbawy.com +sxbest.com +sxccb.com +sxcits.com +sxcm.net +sxcntv.com +sxctf.com +sxcyts.com +sxcywy.com +sxd408.com +sxdkj.com +sxdygbjy.com +sxdzyp.com +sxepc.com +sxfblog.com +sxfoundation.com +sxfu.org +sxgdtv.com +sxggzp.com +sxglpx.com +sxgoo.com +sxgq.net +sxgs.com +sxgwyw.org +sxh3k.app +sxhctv.com +sxhlxy.com +sxhm.com +sxhr.net +sxhxbank.com +sxjagc.com +sxjh88.com +sxjhzsgc.com +sxjlzhifu.com +sxjzxww.com +sxkzxt.com +sxlcdn.com +sxldns.com +sxmaps.com +sxmcwlw.com +sxmtdz.com +sxmxwh.com +sxmyh.com +sxncb.com +sxnfss.com +sxnxl.com +sxnycl.com +sxol.com +sxpdk.com +sxplc.com +sxpmg.com +sxpojie.com +sxprgc.com +sxpta.com +sxpyzg.com +sxpyzx.com +sxrb.com +sxrbw.com +sxrczx.com +sxrjm.com +sxrtv.com +sxsapi.com +sxsgs.com +sxsim.com +sxsimg.com +sxsjgy.com +sxslnews.com +sxsng.com +sxsoft.com +sxsslz.net +sxssyh.com +sxszw.net +sxthzs.com +sxtppm.com +sxtqsl.com +sxtvs.com +sxtybook.com +sxuyr2nx.com +sxwbs.com +sxwpyx.com +sxwrsa.org +sxww.com +sxxdll.com +sxxl.com +sxxt.net +sxxw.net +sxxyfw.com +sxxynews.com +sxy7.com +sxycrb.com +sxyj.net +sxzb.app +sxzfcy.com +sxzhaobiao.com +sxzlycl.com +sxzq.com +sxzt.org +sxzydj.com +sy-home.com +sy12306.com +sy12328.com +sy2k.com +sy3.com +sy76.com +sybasebbs.com +syberos.com +sybj.com +sycaijing.com +sycdtz.com +sycxzx.net +sydaxxw.com +sydcch.com +sydimg.com +sydjwl.com +sydw8.com +sydzconn.com +syf.ink +syfabiao.com +syfly007.com +syfw.com +syg315.com +sygcjs.com +sygd.com +syhccs.com +syhhidc.com +syhhkj.com +syhospital.com +syhzml.com +syiptv.com +syitgz.com +syjiancai.com +syjkqzw.com +syjzedu.com +sykong.com +sylixos.com +sylnst.com +sylnyx.com +symama.com +symtc.com +symuge.com +symy100.com +syn029.com +synacast.com +synball.com +sync.sh +syncedoffplanet.com +synjones.com +synjones.net +synochip.com +syntao.com +synyan.net +syoits.com +syoker.com +syoogame.com +syoseo.com +syoucn.com +syounggroup.com +sypole.com +syr-sce.com +syrcb.net +syrecovery.com +syrhkj.com +sys-ele.com +sys321.com +syscan360.org +sysceo.com +syscxp.com +sysdyy120.com +sysengi.com +syshospital.com +syshospital.org +sysjnl.com +sysmaster.online +sysmini.com +sysmk120.com +sysnlt.com +sysrsksy.com +systoon.com +sysush.com +sysuyz.com +sysysjnk.com +sytcke.com +sythealth.com +syttgame.com +sytuku.com +syuan.net +syue.com +sywg.com +sywgy.com +sywtqc.com +syxb.com +syxlgame.com +syxwang.com +syxwnet.com +syylfh.com +syyqls.com +syyx.com +syyyking.com +syzlzz.com +syzoukan.com +sz-3a.com +sz-byg.com +sz-cerberus.com +sz-changfeng.com +sz-czzc.com +sz-dfl.com +sz-dns.net +sz-edsy.com +sz-etong.com +sz-jlc.com +sz-lcsc.com +sz-mtr.com +sz-osckj.com +sz-printing.com +sz-skt.com +sz-sunway.com +sz-tianmai.com +sz-trip.com +sz-ua.com +sz-ytq.com +sz121.com +sz189.com +sz1978.com +sz240.com +sz315.org +sz5156.com +sz5983.com +sz61.com +sz7h.com +sz836.com +sz886.com +szadst.com +szaeia.com +szaiaitie.com +szaima.com +szairport.com +szaisino.com +szaiten.com +szande.com +szaojin.com +szaudio.com +szbaicao.com +szbaoly.com +szbaoming.com +szbbs.org +szbcase.com +szbdyd.com +szbeilu888.com +szbelle.com +szbiu.com +szbnrj.com +szboruien.com +szbwgy.com +szbwpt.com +szbym.com +szc.com +szca.com +szcatic.com +szcec.com +szchi.net +szclmd.com +szcno.com +szcompare.com +szcp.com +szcsot.com +szcssx.com +szcua.org +szcwdz.com +szcy99.com +szczjy.com +szczkjgs.com +szdaily.com +szdc.org +szdcjd.com +szddns.net +szdesigncenter.org +szdiyibo.com +szdn1ms.com +szds.com +szdunan.net +szdxjf.com +szdyx8.com +szeant.com +szeasyin.com +szed.com +szedu.net +szeholiday.com +szelanpo.com +szelight.com +szfa.com +szfachina.org +szfangzhouhd.com +szffmr.com +szfg.net +szfw.org +szfwzl.com +szfx.com +szfyhd.com +szgalaxy.com +szggzy.com +szgky.com +szgla.com +szguanai.com +szguante.com +szgwsd.com +szgymz.com +szhdyic.com +szhetai.com +szhfwd.com +szhgh.com +szhh8.com +szhiross.com +szhk.com +szhkhui.com +szhlodz.com +szhlsg.com +szhome.com +szhomeimg.com +szhot.com +szhtbs.com +szhtp.com +szhuace.com +szhuhang.com +szhulian.com +szhulian.net +szhytrip.com +szicc.net +szider.com +szisland.com +szjcyyy.com +szjhxjt.com +szjinhuanyu.com +szjlwul.com +szjunfei.com +szjuquan.com +szjyos.com +szjys1888.com +szjytx.com +szkegao.net +szkingdom.com +szkoa.com +szlande.com +szlangwei.com +szlc9.com +szlcsc.com +szlddb.com +szledia.org +szleezen.com +szlhtram.com +szlianya.net +szlihuam.com +szlilun.com +szline9.com +szlingsheng.com +szlips.com +szlos.com +szlottery.org +szltech.com +szlvbarcode.com +szlwtech.com +szlzsd.com +szmadigi.com +szmall.com +szmama.com +szmama.net +szmc.net +szmctc.com +szmil.com +szmrcd.com +szmslaser.com +szmtzc.com +szmuseum.com +szmynet.com +szmyxc.com +szn360.com +sznews.com +szniego.com +szniushi.com +szns-marathon.com +szol.net +szolxd.com +szonline.net +szp168.com +szpa.com +szpclab.com +szpgm.com +szpiao.com +szpiaoyi.com +szpldq.net +szpmi.org +szpowerpms.com +szputy.com +szpxe.com +szqcz.com +szqf.org +szqsq.com +szqt.net +szquanli.com +szrcfw.com +szrrjc.com +szrtcpa.com +szryc.com +szschj.com +szsci.net +szscree.com +szsczx.com +szseafoodexpo.com +szshequ.org +szsia.com +szsing.com +szsjtjj.com +szsjxxpt.com +szsky.com +szslhssy.com +szsmk.com +szsnking.com +szsq.net +szsunlaser.com +sztaijier.com +sztalent.org +sztara.com +sztkc.com +sztopbrand.com +sztspi.com +sztxcpa.com +szuavia.org +szvca.com +szvft.com +szvi-bo.com +szwaishi.com +szwb.com +szwblm.com +szwego.com +szweijubao.com +szweita.com +szwfb.com +szwfzs.com +szwgroup.com +szwhxy.com +szwstui.com +szwtsd.com +szwuyukeji.com +szwwco.com +szxbyx.com +szxdhj.com +szxhdz.com +szxiangjun.com +szxihu.com +szxinghe.net +szxinjiaxin.com +szxinyixin.com +szxiot.com +szxlga.com +szxsdmy.com +szxuexiao.com +szxxtx.com +szycil.com +szyfdz.net +szyibei.com +szyin.com +szyingzhan.com +szyixiu.net +szyjedu.com +szymweb.com +szyran.com +szysmpay.com +szyuda88.com +szyxwdz.com +szyxwkj.com +szyy0373.com +szyyda.com +szyyt.com +szyyx.com +szzbmy.com +szzczl.com +szzfgjj.com +szzfzd.com +szzh365.com +szzhangchu.com +szzhaodaxin.com +szzs360.com +szzunbao.com +szzxks.net +szzyqc.net +szzyqy.com +t-d.tv +t-firefly.com +t-gafa.com +t-io.org +t-v.com +t.tt +t00ls.cc +t00ls.net +t00y.com +t086.com +t1.ink +t10.com +t105.com +t11.store +t12.com +t123yh.xyz +t1networks.com +t1y4.com +t1y5.com +t20000.com +t2cn.com +t3315.com +t4lover.com +t5.work +t56.net +t56jy.net +t5a9.com +t5xs.com +t6756.com +t6q.com +t85.net +t888.net +t888w.com +t8f.com +t8tcdn.com +ta26.com +taaas.org +tabalt.net +tachangxing.com +tacool.com +tactan.net +tadu.com +taeapp.com +tag.gg +tagcommander.com +tagjj.com +taglyst.com +tagphi.net +tagtxq.com +taguage.com +taguxdesign.com +tahua.net +tai-liang.com +tai1000.com +tai3399.com +tai666666.com +tai87.com +taian.com +taianmedia.com +taiantang.net +taibumall.com +taichi-maker.com +taichyfood.com +taicihome.com +taidao.net +taidic.net +taidous.com +taidu.com +taig.com +taigaoxiao.com +taihaikj.com +taihainet.com +taihaocn.com +taihe.com +taihehospital.com +taihemedia.com +taihuoniao.com +taihuwang.com +taihuyuan.com +taiji.com +taijicoder.com +taijiny.com +taijio.com +taijutv.com +taikang.com +taikanglife.com +taikangzhijia.com +taikeji.com +taikewei.com +taikongmedia.com +taikr.com +taimi100.com +taipingyang.hk +taipingyangyinshua.com +taiqigame.com +tairan.com +taisantech.com +taishangshiwu.com +taiwandao.tw +taiwu.com +taixi.cc +taixingren.com +taixsw.com +taiyang888.com +taiyangd.com +taiyanghttp.com +taiyangpo.com +taiyiche.com +taiyiplus.com +taiyulink.com +taizibao.com +tajdny.com +takungpao.com +taladapp.com +talbrain.com +talebase.com +talentable.com +talentjava.com +talents-tech.com +talentsmag.com +talicai.com +taliove.com +taljdns.com +talk-fun.com +talk007.com +talkgw.com +talkingchina.com +talkingdata.com +talkingdata.net +talklee.com +talkop.com +talkwithtrend.com +talkyun.com +taluo.com +talyscm.com +talzjsj.com +tamaegis.com +tamc8.com +tamersunion.net +tamguo.com +tamigroup.com +tamll.com +tan.cc +tan07.com +tan14.net +tan8.com +tanamari.com +tanapk.com +tanbao178.com +tanbo.name +tancdn.com +tanchinese.com +tandehao.com +tandjx.com +tang-lei.com +tang.su +tangdaoya.com +tangdou.com +tangdouimg.com +tangeche.com +tangentessays.com +tanggu11g.com +tangguoxian.com +tanghushi.com +tangjie.me +tangkabj.com +tanglei.name +tangmi.net +tangobrowser.net +tangongye.com +tangqingtuia1.com +tangrenjv.com +tangruiqian.com +tangsanshu.com +tangshijun.com +tangshuang.net +tangshui.net +tangsongys.com +tangsuanradio.com +tangtang.org +tanguan.net +tangux.com +tangyingkang.com +tangzhuan666.com +tanhaibo.net +tanho.com +tankeai.com +tankmm.com +tankywoo.com +tanling.com +tanluxia.com +tanma.tech +tanmer.com +tanmizhi.com +tanpoqiuer.com +tanrd.com +tanshudata.com +tansoole.com +tantanapp.com +tantu.com +tantu.info +tantuw.com +tanv.com +tanwan.com +tanwan123.net +tanwanyx.com +tanweime.com +tanwuapp.com +tanx.com +tanxuling.com +tanyu.mobi +tanyuantech.com +tanzhouedu.com +tanzhoujiaoyu.com +tao-jiujiu.com +tao-star.com +tao-studio.net +tao-wu.com +tao008.com +tao123.com +tao168.com +tao30.com +tao616.com +tao800.com +tao8090.com +taoa.com +001pp.com +taobao-img.com +taobao.com +taobao.cz +taobao.global +taobao.net +taobao.org +taobao.tw +taobao1111.com +taobao92.com +taobaocdn.com +taobaocdn.net +taobaozxw.com +taobc.com +taobeihai.com +taobeirj.com +taobizhong.com +taobz.com +taoc.cc +taocange.com +taoche.com +taoci.com +taocloudx.com +taocms.org +taocz.com +taodabai.com +taodake.com +taodaso.com +taodaxiang.com +taodb.net +taodianjia.com +taodiantong.com +taodiqupu.com +taodocs.com +taododo.com +taodu.com +taodudu.cc +taofang.com +taofen8.com +taofont.com +taogouxingxuan.com +taogula.com +taohaobang.com +taohhui.com +taohua.com +taohuazu.net +taohuazu.pw +taohui.pub +taohuichang.com +taohuren.com +taoibao.net +taojiji.com +taojin6.com +taojindi.com +taojingame.com +taojinhudong.com +taojinji.com +taojinyi.com +taoke.com +taokehome.com +taokewenan.com +taokezhushou.com +taokouling.com +taoku.com +taolinks.cc +taoluzhibo56.com +taolvtong.com +taolx.com +taomanhua.com +taomee.com +taomeiju.com +taoming.com +taomingyan.com +taonienie.com +taoniu.com +taoniupin.com +taooo.cc +taopb.com +taopiaopiao.com +taopinquan.com +taoq.net +taoqao.com +taoqian123.com +taoqizu.com +taoquanquan.com +taosdata.com +taosha.club +taoshouyou.com +taoshu.com +taoshudang.com +taosj.com +taotao.com +taotaocar.com +taotaoxz.com +taotieren.com +taotiwang.com +taotu8.net +taou.com +taowola.com +taoxiaolu.com +taoxie.com +taoxuemei.com +taoxv.com +taoyi-support.com +taoyizhu.com +taozaisheng.com +taozhanyun.com +taozhuo.com +taozhutu.com +tapapis.com +tapas.net +tapdata.net +tapdb.com +tapdb.net +tapenjoy.com +tapimg.com +tapotiexie.com +tapque.com +tapsvc.com +taptap-api.com +taptap.com +taptapcode.com +taptapdada.com +taraniss.com +tarczp.com +tarenacn.com +tarenwang.net +tarqk5.com +tarsier-infra.com +tarsocial.com +tartscenter.com +tasaiwang.com +tasiyun.com +taskcity.com +taskcn.com +taskyou.net +tasly.com +tastespirit.com +tastysteak.com +tatatimes.com +tatazu.com +taterli.com +tatstm.com +tattoo114.com +tattoo77.com +tattooo.net +taurentech.net +taurus66.com +tavsiktlig.com +tax-edu.net +taxjiangkewang.com +taxnote.org +taxspirit.com +taxwen.com +tayohya.com +tazhe.com +tb51.net +tb58.net +tb888.net +tbadc.com +tbadesign.org +tbankw.com +tbcache.com +tbh5.com +tbhcc.com +tbhelper.com +tbhjgc.com +tbizk.com +tbjt18.com +tbjtss.com +tbkf.net +tbl-import.com +tblk.me +tbnimg.com +tboxn.com +tbq168.com +tbs321.com +tbsandbox.com +tbscp.net +tbsgame.net +tbshops.com +tbsite.net +tbt.cc +tburl.in +tburl.net +tbuser.com +tbxt.com +tbyfsoft.com +tbyuantu.com +tc-21.com +tc12580.com +tc199.net +tc9011.com +tc930.com +tccxfw.com +tcdai.com +tcdlive.com +tcdnhw.com +tcdnkcbak.com +tcdnlive.com +tcdnlivebak1.com +tcdnlivebak2.com +tcdnos.com +tcdnos.net +tcdntip.com +tcdnv3.com +tcdnvod.com +tcdnvodbak.com +tcdnvp.com +tcdushi.com +tcecps.org +tceic.com +tcfhty.com +tcfmglobal.com +tcgcardgame.com +tchbgz.com +tchzt.com +tciplay.com +tcl.com +tclbusiness.com +tclclouds.com +tcljd.com +tclking.com +tclkqn.com +tcloudbase.com +tcloudbase.net +tcloudbaseapp.com +tcloudbi.com +tclouddrive.com +tcloudedu.com +tcloudfamily.com +tcloudhw.com +tcloudhw.net +tcloudscdn.com +tcloudscdn.net +tcm100.com +tcmfrj.com +tcnews.cc +tcnvmms.com +tcp.hk +tcpspc.com +tcrcb.com +tcrcsc.com +tcs-y.com +tcsae.org +tcsdzz.com +tcsnake.com +tcstzg.com +tctip.com +tctong.com +tcxw.cc +tcy365.com +tcyad.com +tcylgslb.com +td-tech.com +td22.com +td518.com +td776.com +td98.com +tdamtrade.com +tdatamaster.com +tddmp.com +tdfcw.com +tdict.com +tdigcw.com +tdimg.com +tdldz.com +tdlegg.com +tdnsv1.com +tdnsv12.com +tdnsv2.com +tdnsv3.com +tdnsv5.com +tdnsv6.com +tdnsv7.com +tdnsv8.com +tdnsx1.com +tdotapp.com +tdpress.com +tdun.com +tduou.com +tdyxmoto.com +tdzyw.com +te5.com +te6.com +tea26.com +tea7.com +teach365.com +teachblog.net +teachcn.net +teachercn.com +teacti.com +teakki.com +teaku.com +teallang.com +tealui.com +teamall.cc +teambition.com +teambition.net +teambitionapis.com +teamlogs.com +teamminus.com +teamotto.net +teamshub.com +teamtopgame.com +teandy.com +teapic.com +teatreexy.com +teazhishi.com +tebaidu.com +teboncapital.com +tec73.com +tecbbs.com +tecenet.com +tech-mx.com +tech-sonic.net +tech1024.com +tech110.net +tech126.com +tech2ipo.com +tech2real.com +techan.com +techantong.net +techbeat.net +techbrood.com +techflowpost.com +techgastronomy.com +techgogogo.com +techingrid.net +techmiao.com +techo.chat +techoke.com +techonegame.com +techqianmo.com +techshidai.com +techsir.com +techtmt.com +techuangyi.com +techug.com +techvisum.com +techwalker.com +teclast.com +tecobj.com +tecyle.com +tedaniu.com +teddymobile.net +tedx.net +tedxalc.com +teencn.com +teeny-websex.com +teeqee.com +tefl-china.net +tefscloud.com +tefscloud.net +tegongji.com +tegoushe.com +tehui001.com +tehuituan.com +tejiabei.com +tejiawang.com +tel-id.com +tel139.com +telaideyouxue.com +teld.net +telecomhb.com +telefen.com +telegtv.com +telehr.com +teleinfoo.com +teleland.net +teleows.com +telfri.net +teligen-cloud.com +teliute.org +telking.com +tell520.com +telling.com +telllove520.com +telnet404.com +telojob.com +telu.net +telunsu.net +tem.pw +tem365.com +temaihui88.com +temaiku.com +temox.com +temp.im +tenant-zone-dev.com +tencdns.net +tencent-blackboard.com +tencent-cloud.com +tencent-cloud.net +tencent-gcloud.com +tencent-gf.com +tencent.com +zxwindow.com +tencent.design +tencent.net +tencentads.com +tencentapps.com +tencentbyod.com +tencentcdb.com +tencentclb.com +tencentcloud-aiot.com +tencentcloud.com +tencentcloudapi.com +tencentcloudbase.com +tencentcloudclub.com +tencentcloudcr.com +tencentcloudmarket.com +tencentcloudns.com +tencentcloudsec.com +tencentcloudses.com +tencentcos.com +tencentcs.com +tencentdayu.com +tencentdb.com +tencentdba.com +tencentdevices.com +tencentdigitalassistant.com +tencentdms.com +tencenteiam.com +tencentelasticsearch.com +tencentid.com +tencentidentity.com +tencentipv6.com +tencentlog.com +tencentmeeting.com +tencentmind.com +tencentmusic.com +tencentproxy.com +tencentrio.com +tencentstart.com +tencentsuite.com +tencenttid.com +tencentwemeet.club +tencentwepark.com +tencentwm.com +tencentyun.com +tenchii.com +tendacn.com +tendawifi.com +tendbcluster.com +tendcode.com +tenddata.com +tendis.net +tendyron.com +tenganxinxi.com +tengbai-it.com +tengbo.cc +tengchu.com +tengdinggame.com +tengfang.net +tengfangyun.com +tengfeijob.com +tengfeizhida.com +tengfun.com +tenghen.com +tengma123.com +tengmed.com +tengmoney.com +tengwen.com +tengwen001.com +tengxunqiye.com +tengxunqiyeyou.com +tengy.com +tengyuejz.com +tengzhihh.com +tengzhipp.com +tengzhuan.com +tenhot.net +tenlonstudio.com +tenlywu.com +tenmh.com +tennoo.com +tenorshare.com +tenpay.com +tenqent.com +tensafe.com +tenshi.cc +tensorchip.com +tensornews.net +tenstars.net +tensynad.com +tensynchina.com +tentech.club +tentrue.com +tentx.com +tenxapp.com +tenxcloud.com +tenxcloud.net +teown.com +tepcb.com +tepintehui.com +terabuy.com +terapines.com +terence2008.info +terencexie.com +teridge.com +terminus.io +terransforce.com +teruide.net +tese5.com +tesexiu.com +teshenqi.com +tesolsh.com +tesoon.com +test-cignacmb.com +testbird.com +testcoo.com +testeb.com +testerhome.com +testerlife.com +testict.com +testingpai.com +testlrq.com +testroad.org +testrust.com +testtao.com +testwaf.com +testwo.com +testxy.com +teuhui.com +tex68.com +texasholdemcup.com +texasholdemcup.net +texclo.net +textin.com +teyizk.com +teyop.com +tezhengma.com +tezhongzhuangbei.com +tezign.com +tf.wiki +tf86.com +tfax.com +tfcaijing.com +tfcloud.com +tfclub.com +tfdccn.com +tfedu.net +tff.bz +tfg2.com +tfgame.vip +tfhj.com +tfme.com +tfogc.com +tfol.com +tfrl.net +tfsino.com +tfsmy.com +tftplay.com +tfvisa.com +tfxgt.com +tfyum.net +tfzcode.com +tfzq.com +tg-vision.com +tg-vision.net +tg0123.com +tg0550.com +tg1234.com +tg138.com +tg72.com +tgah.skin +tgbus.com +tgcid.org +tgcook.com +tgddsads.com +tghello.com +tgjh.com +tgking.net +tgljw.com +tglxh.com +tgnet.com +tgovcloud.com +tgshiguan.com +tgslsst.com +tgyoo.com +th.app +th38.com +thamco.com +thanhong.me +thankbabe.com +thatinterpreter.net +thatsmags.com +thatsmandarin.com +thcad.net +thcantech.com +thdb.com +the4can.com +the5fire.com +the9.com +thearenacapital.com +thearyong.com +theateliercouture.com +thebeastshop.com +thebeautools.com +thebeijinger.com +thebeijingnews.com +theblockbeats.info +thechihuo.com +thechois.cc +thecode.me +thecodeway.com +thedatasys.com +theduapp.com +thefastfile.com +thefastimg.com +thefatherofsalmon.com +thegallahotel.com +thegiac.com +thegraduation.store +thehanshow.com +thejamy.com +thejiangmen.com +thejoyrun.com +thelarkcloud.com +thelastsky.com +themebetter.com +themeila.com +themeol.com +themex.net +themez.cc +themisweeps.com +then9.com +thenburn.com +thenew123.com +theorychina.org +thesmartmelon.com +thestack.net +theszt.com +thethirdmedia.com +thetigerhood.com +thetongji.com +thetype.cloud +thewowa.com +thexnode.com +theyun.com +thfdc.net +thfdcsoft.com +thfure.com +thhome.net +thhymj.com +thief.im +thinbug.com +thingjs.com +think-mall.com +thinkcmf.com +thinkdream.com +thinkeridea.com +thinkindrupal.com +thinkjs.org +thinksns.com +thinksrc.com +thinvent.com +thiscute.world +thishealthsummit.com +thiztech.com +thjunshi.com +thmovie.com +thmz.com +thn21.com +thoughtworkers.org +thrbs.com +threadcn.com +threatbook.net +threegorgestours.com +threeol.com +threetong.com +ths123.com +ths8.com +thseoer.com +thstars.com +thtfpc.com +thufeng.net +thumedialab.com +thundercdn.com +thundercdn.net +thundercloud.group +thunderflash.net +thunderobot.com +thunderplaygame.com +thunderurl.com +thunis.com +thunisoft.com +thunlp.org +thupdi.com +thurcacca.org +thwiki.cc +thxbxg.com +thxddb.com +thxedu.com +thxflt.com +thxxw.com +thyclub.com +thyoo.com +thyou.com +thz56.com +thzab.com +ti-node.com +ti-solar.com +ti98.com +tian10.com +tianan-cyber.com +tianan.net +tiananmenlvyou.com +tianapi.com +tianbaosi.com +tianbiao.net +tiancaiui.com +tiancaixing.com +tianchu.com +tiancity.com +tiancitycdn.com +tiandaoedu.com +tiandi.com +tianditao.com +tianditu.com +tiandizw.com +tianduntech.com +tiandy.com +tianehui.net +tianelian.com +tianfeiyu.com +tianfuhui.xin +tianfupic.com +tianfusoftwarepark.com +tianhaohz.com +tianhejiayi.com +tianhongdiaosu.com +tianhongsunshine.com +tianhujy.com +tianji.com +tianji368.com +tianjiarun.com +tianjigame.com +tianjihr.com +tianjimedia.com +tianjin-air.com +tianjingrong.com +tianjinshunma.com +tianjinwe.com +tiankong.com +tianlaiedu.com +tianlaijiaoyu.com +tianlaikge.com +tianlailive.com +tianlan.net +tianmao.com +tianmaying.com +tianmidian.com +tianmu.mobi +tianmunews.com +tianmupe.com +tianmupr.com +tiann90.com +tiannv.com +tianpeng.com +tianpinjie.com +tianqi.cc +tianqi.com +tianqi123.com +tianqi24.com +tianqi321.com +tianqi518.com +tianqiaojuyuan.com +tianqiaoyishuzhongxin.org +tianqiapi.com +tianqicloud.com +tianqihoubao.com +tianqijun.com +tianqikb.com +tianqistatic.com +tianrow.com +tianruixinxi.com +tianruiyun.com +tianruo.net +tiansenjituan.com +tianshan277.com +tianshengdiyi.com +tianshi.info +tianshi2.net +tianshiyiyuan.com +tianshouzhi.com +tianshuge.com +tiantailaw.com +tiantang6.com +tiantangnian.com +tiantaxx.com +tianti.com +tiantian.com +tiantiancaipu.com +tiantianfm.com +tiantianfunds.com +tiantianleshuiguo.com +tiantianquce.com +tiantianqutao.com +tiantianxuexi.com +tiantk.com +tiantonglaw.com +tianvalue.com +tianwenhu.com +tianxiajiameng.com +tianxiang.com +tianxianmao.com +tianxiawangxiao.com +tianxiaxiao.net +tianxiaxinyong.com +tianxiaydslfd.com +tianxin100.vip +tianxing.com +tianxinsuye.com +tianya.com +tianya.tv +tianya999.com +tianyaluedu.com +tianyancha.com +tianyanqifu.com +tianyant.com +tianyaruanwen.com +tianyecollege.com +tianyi1368.com +tianyibook.com +tianyihy.net +tianyiidc.com +tianyijue.com +tianyinzaixian.com +tianyitop.com +tianyue100.com +tianyuimg.com +tianzhao.net +tianzhuo.com +tianzhuobj.com +tianziweb.net +tianzongyouxi.com +tiao.pro +tiaodao.com +tiaoguangbolimo.com +tiaohao.com +tiaoka.com +tiaomu.com +tiaona.com +tiaooo.com +tiaotiaotang.net +tiaoyue.xyz +tiaozhanbei.net +tiatiatoutiao.com +tibaitong.com +tibet3.com +tibet4wd.com +tibetanbible.org +tibetannet.com +tibetcn.com +tibetcnr.com +tibetcul.com +tibetculture.net +tibetcyts.com +tibetway.com +ticketdashi.com +ticketmars.com +ticp.io +ticp.net +ticstore.com +ticwear.com +tidaas.com +tidb.io +tide.fm +tideswing.fun +tidi.mobi +tiduyun.com +tieba.com +tiebaimg.com +tiebamm.com +tiebaobei.com +tiebashop.com +tiedan2019.com +tiegu.com +tiejia123.com +tiejiang.org +tiejiong.com +tiejp.com +tielemao.com +tielu.org +tiepishihu.com +tiequangame.com +tietie.la +tietuku.com +tieweishi.com +tieww.com +tiexing.com +tiexing.net +tiexiuyugudao.com +tiexue.net +tieyi.tm +tieyou.com +tiezhima.com +tiezis.com +tigerbbs.com +tigerbrokers.com +tigerbrokers.net +tigeresop.com +tigerfintech.com +tigersecurities.com +tigeryun.com +tiham.com +tiimg.com +tijian001.com +tijian123.com +tijianbao.com +tijianka.cc +tijianshangmen.com +tijianzhuanjia.com +tikane.com +tikersport.com +tikuol.com +tillcn.com +tillglance.com +timanetworks.com +timchen314.com +time-weekly.com +time-year.com +timecoo.com +timedg.com +timedoo.com +timeofdate.com +timeoutbeijing.com +timeoutcn.com +timeoutshanghai.com +timepill.net +timeread.com +timeread.net +timesboom.com +timesdf-hn.com +timeticktick.com +timetw.com +timev.com +timibase.com +timing360.com +timipc.com +timitime.com +timjx.com +timmerse.com +tinetcloud.com +tinfinite.com +tinfo.com +ting-tou.com +ting55.com +tinga88.com +tingbook.com +tingcd.com +tingchewei.net +tingchina.com +tingclass.com +tingclass.net +tingdegang.com +tingfun.net +tinghen.com +tingjiandan.com +tingke8.com +tingmall.com +tingmimi.net +tingniukeji.com +tingroom.com +tingsonglaw.com +tingtao.net +tingtingfm.com +tingxiangzu.com +tingyulou.com +tingyun.com +tingyutech.net +tinigame.xyz +tinkad.net +tinkerpatch.com +tinman798.net +tinsecret.com +tinsecret.org +tiny4.org +tinyems.com +tinyflare.com +tinygroup.org +tinylab.org +tinyservices.net +tinyyuan.com +tipaipai.com +tipask.com +tipdim.org +tipdm.com +tipray.com +tiprpress.com +tipsanakcerdas.com +tiqiaa.com +tiqianle.com +tiruna-cn.com +tisgame.com +tisino.com +tisiwi.com +tisohinge.com +tita.com +titan007.com +titan24.com +titanar.com +titanmatrix.com +titapark.com +tivitv.com +tiwb.com +tixa.com +tixaapp.com +tiye.me +tiyeji.com +tiyep.com +tiyu21.com +tiyu68.com +tiyucdn.com +tiyufeng.com +tiyule.com +tiyusaishi.com +tiyuxiu.com +tizi.com +tizi365.com +tizoinfo.com +tj-guangxin.com +tj-kingdee.com +tj-model.com +tj-un.com +tj-zt.com +tj0573.com +tj20.com +tjaide.com +tjashy.com +tjbearing.com +tjbh.com +tjbsq.com +tjbus.com +tjcamp.com +tjcondom.com +tjculture.com +tjdwkj.com +tjdyf.com +tjfer.com +tjgcs.com +tjgtgd.com +tjhskj.com +tjhukou.com +tjhyzyxy.com +tjinsuo.com +tjj.com +tjjapp.com +tjjt360.com +tjjwt.com +tjkx.com +tjkximg.com +tjllhbkj.com +tjluohuzhijia.com +tjmama.com +tjmhc.com +tjmuch.com +tjmysdq.com +tjnbuz.com +tjorthop.org +tjpa-china.org +tjpma.org +tjrenmu.com +tjrge.com +tjruien.com +tjsjnxh.com +tjsjx.com +tjst.net +tjstats.com +tjtele.com +tjtusuguan.com +tjufbase.com +tjumc.com +tjupdi.com +tjwch.com +tjwch.org +tjwenjie.com +tjwj88.com +tjwmschool.net +tjxmzd.com +tjxrm.com +tjxunlei888.com +tjxxcl.com +tjxz.cc +tjyfkt.com +tjyingxinkeji.com +tjyun.com +tjyywjc.com +tjyz.org +tjzb.com +tjzcsj.com +tjzekun.com +tjzfcg.com +tjzhongyiyao.com +tjzyec.com +tjzyfw.com +tk-rays.com +tk-xiong.com +zxwcbj.com +tk163.com +tkg5.com +tkgame.com +tkhealthcare.com +tkoubei.com +tkplusemi.com +tkw.cc +tkxxd.net +tky001.com +tl-self.com +tl-shida.com +tl-tek.com +tl-vogue.com +tl88.net +tlbaby.com +tlby120.com +tlbyx.com +tlcharity.com +tlfjw.com +tlfw.net +tlgslb.com +tlightsky.com +tlinx.com +tlivecdn.com +tlivemcdn.com +tliveplay.com +tlivepush.com +tlivesource.com +tljcw.com +tljob8001.com +tlqwine.com +tlrcbk.com +tlryjg.com +tlsj-hd.com +tlt5.com +tlte.com +tltesoft.com +tltuan.net +tltzg.com +tlwok.com +tm312.com +tmaill.com +001kd.com +tmall.casa +tmall.com +tmall.hk +tmall.ru +tmalltv.com +tmallvvv.com +tmbbs.com +tmcdn.net +tmdm.com +tmeiju.com +tmeissheng.com +tmgwdz.vip +tmhong.com +tmiep.org +tmisp.com +tmjiasuqi.com +tmjj.com +tmjl.ai +tmjob88.com +tmkoo.com +tmmini.com +tmqmqj.com +tmrcw.com +tmscnz.com +tmsf.com +tmsmh.com +tmtforum.com +tmtpost.com +tmtpost.net +tmtsmartlife.com +tmtsmartrun.com +tmuaih.com +tmuyun.com +tmwcn.com +tmxmall.com +tmxxw.com +tn2000.com +tnbz.com +tnccdn.com +tnet.hk +tngcjx.com +tnjyfc.com +tnkjmec.com +tntdown.com +to-future.net +to4f.com +to8to.com +to9.org +to999.com +tobaccobid.com +tobaccochina.com +toberp.com +tobetopone.com +tobkk.com +tobnews.com +tobo1688.com +tobosu.com +tobosu.net +tobsnssdk.com +tochgo.com +tochinajob.com +tocosc.com +today36524.com +todaycache.net +todayguizhou.com +todayidc.com +todayintnet.com +todayios.com +todayisp.net +todaynic.com +todesk.com +todoen.com +todokeji.com +todokit.xyz +todonow.com +todreamer.com +toec-gdgs.com +toec-iot.com +toec.com +toecsec.com +tofengmi.com +togj.com +togocareer.com +togogo.net +tohkalove.com +tohosting.com +tohosting.net +tohours.com +tohuo.com +toidea.com +token-ad.com +tokenet.site +tokenglish.com +tokensky.net +tokimekiclub.org +tol24.com +tom.cat +tom.com +tom163.net +tomatogames.com +tomatolei.com +tomax.xyz +tomczhen.com +tomdiy.com +tomonline-inc.com +tomotoes.com +tompda.com +tomujiang.com +tomwx.net +tonbao.com +tonehk.com +tonewinner.com +tongbanjie.com +tongbanjie.info +tongbaoyun.com +tongbu.com +tongbulv.com +tongbupan.com +tongbusj.com +tongcaihulian.com +tongchaba.com +tongcheng.cc +tongchengchaku.com +tongchengqun.vip +tongchouba.com +tongda2000.com +tongdaohui.com +tongdun.net +tongfangpc.com +tongfengkh.com +tongfengqu.com +tongfu.net +tonggao.info +tongguanbao.net +tonghuaji.com +tonghuiqiye.com +tongji.com +tongji.net +tongjiai.com +tongjitong.com +tongleer.com +tongli-hrcc.net +tongliangrc.com +tongliaowang.com +tonglu-tour.com +tongshanbank.com +tongshilu.com +tongshuai.com +tongtaiamc.com +tongtech.com +tongtianta.site +tongtool.com +tongtut.com +tongwang.net +tongxiang.net +tongxianghuicn.com +tongxiehui.net +tongxin.com +tongxin.org +tongxinghui.com +tongxinky.com +tongxinmao.com +tongxinteng.com +tongxinyiyaocs.com +tongxiong.com +tongxue.com +tongxue365.com +tongyavisa.com +tongye.biz +tongyi.com +tongyidrying.com +tongyuanos.com +tongyue.com +tongzhuo100.com +tonitech.com +tonnn.com +tony9410.tk +tonycrane.cc +tonysfarm.com +toocle.com +toodaylab.com +tool.la +tool.lu +tool77.com +toolmall.com +toolmao.com +toolnb.com +tools.team +tooming.com +toomoss.com +toon.mobi +toonmax.com +toonmaxmedia.com +tooopen.com +tooseo.com +tootour.com +toouoo.com +top-iot.com +top100summit.com +top147.com +top263.net +top2fun.com +topber.com +topbester.com +topbiz360.com +topbm.com +topbook.cc +topcdb.com +topcheer.com +topchitu.com +topciic.com +topcj.com +topcpu.net +topcrab.com +topcsic.com +topdodo.com +tope365.com +topeditsci.com +topeet.com +topeetboard.com +topengroup.net +topfisc.com +topflames.com +topfreeweb.net +topfro.com +topgslb.com +topgus.com +tophant.com +tophold.com +tophr.net +tophub.fun +tophub.today +topitme.com +topjoy.com +topjoycloud.com +topksw.com +topku.com +toplanit.com +toplee.com +toplife.com +toplinks.cc +toploong.com +topmba.mobi +topomel.com +toppdu.com +topperuse.com +topproio.com +topqh.net +toprand.com +toprocn.com +topsage.com +topscan.com +topsedu.com +topsrx.com +topswim.net +toptastewin.com +topthink.com +topthink.net +toptiao.com +toptourservice.com +topuc.com +topuplive.com +topwalk.com +topwanwan.com +topway.org +topwaysoft.com +topwinfo.com +topys.com +topzj.com +torovo.com +torphan.com +tosenscredit.com +toshiba-gtbs.com +toshiba-semicon-storage.com +toshiba-thpc.com +toshiba-tnis.com +toshow.com +tospur.com +totalacg.com +totodi.com +totoro.pub +totwoseal.com +tou360.com +toubang.tv +toucdn.com +touch-moblie.com +touch4.me +touchealth.com +touchev.com +touchpal.com +touchsprite.com +touchsprite.net +touchstudio.net +touchxd.com +touclick.com +touduyu.com +toufu321.com +toughcoder.net +tougub.com +touhou.casa +touhou.cd +touhou.vote +toujidao.com +touker.com +toumiao.com +toupb.com +toupiaoapp.com +touqikan.com +tour110.com +tourboxtech.com +tourenwang.com +tourhr.com +tourjob.net +tourongjia.com +tourongzi.org +toursbms.com +tourscool.com +tourye.com +toushibao.com +toushivip.com +toutiao.com +toutiao.org +toutiao11.com +toutiao12.com +toutiao13.com +toutiaoapi.com +toutiaoapp.com +toutiaobashi.com +toutiaobus.com +toutiaocdn.com +toutiaocdn.net +toutiaocloud.com +toutiaocloud.net +toutiaohao.com +toutiaohao.net +toutiaoimg.com +toutiaoimg.net +toutiaolite.com +toutiaolite1.com +toutiaonanren.com +toutiaopage.com +toutiaostatic.com +toutiaovod.com +toutiaoyule.com +toutiaozb.com +toutoufc.com +toutoupiao.com +touwenzi.com +touwho.com +touxiang8.com +touxiangwu.com +touying.com +touyouquan.com +touzhibang.com +touzhijia.com +touzi.com +touzid.com +touzikuaibao.com +touzime.com +touzizn.com +toviu.net +tower.im +towinor.com +townsky.com +towntour.net +towords.com +towry.me +toxingwang.com +toybaba.com +toycloud.com +toyean.com +toysir.com +tozzger.info +tp8.me +tpbook.com +tpcdnde88de.com +tpengyun.com +tpkey.com +tplife.com +tplm123.com +tplogincn.com +tpooo.com +tpoxiaozhan.com +tpsge.com +tpsxs.com +tpszw.com +tpturang.com +tpy100.com +tpyboard.com +tpyzq.com +tq163.com +tq520.net +tqcj.com +tqcto.com +tqedu.net +tqiantu.com +tql.ink +tqle.com +tqmall.com +tqmdp.net +tqmrg.com +tqqa.com +tqqyun.com +tqsafe.com +tqschool.net +tqybw.net +tqzsh.com +trace4me.com +tracefact.net +traceint.com +tracestour.com +track-roller.com +tracker.ink +trackingio.com +trackingmore.com +tracup.com +tracyclass.com +trade-over-world.com +trade-plug.net +trade2cn.com +tradeleo.com +tradew.com +tradow.com +tradplusad.com +traineexp.com +trainingipv6.com +trainnets.com +trait-wholesale.com +tranbbs.com +trans4e.com +transcn.org +transer-cn.com +transformer-cn.com +transfu.com +transfun.net +translatego.net +translation-dictionary.net +translationchina.com +transn.com +transnbox.com +transparcel.com +transplendor.com +transportjp.com +transrush.com +transtill.com +transwarp.io +transwiki.org +tratao.com +travel-x.cc +zxw51.com +travellingwithhotel.com +travellinkdaily.com +travelsky.com +travelsky.net +travelwuhan.com +travelyee.com +treehousesub.com +treetwins.com +treeyee.com +trekin.space +trekiz.com +trend6.com +trendingstar.tech +trendsbulletin.com +trendsmen.com +trendtokyo.com +trendy-men.com +tretars.com +trhj.net +trhos.com +trhui.com +trickypen.com +trinitigame.com +trioisobardev.com +trip.com +trip8080.com +tripbaba.com +tripbe.com +tripcdn.com +triphr.com +triplexservice.com +tripodeck.com +tripsanxia.net +tripurx.com +tripvivid.com +tripwirechina.com +triring.com +triumbest.net +trjcn.com +trjcn.net +trli.club +troila.com +trojantesting.com +tronixin.com +tropcdn.com +trpcdn.net +trqjrp.xyz +trsoft.vip +trsoft.xin +trsol.com +trt.hk +trtb.net +trucker365.com +trucklc.com +trueart.com +truebuty.com +truedian.com +trueeyu.com +trueland.net +trueme.net +truerun.com +truesing.com +trufun.net +trunktech.com +trusfort.com +trusple.com +trust-one.com +trust400.com +trustasia.com +trustedsign.com +trustexporter.com +trustie.net +trustkernel.com +trustlife.com +trustmover.com +trustmta.com +trustocean.com +trustsoc.com +trustutn.org +trvok.com +trwl.net +tryenough.com +tryfun.com +tryineapp.com +trylist.net +trymoka.com +tryudesk.com +tryurbest.com +tryxue.com +ts-cooling.com +ts-juheng.com +ts100.com +ts166.net +ts16949px.com +ts16949rz.org +ts95.com +tscf8.com +tsddu.com +tsdm.net +tsdxb.com +tsg-online.net +tsggwl.com +tshaisen.com +tshe.com +tshe.me +tshmkj.com +tshock.cc +tshtech.com +tshu.net +tsichuan.com +tsinghua-getinfo.com +tsinghuaic.com +tsinghuaicwx.com +tsinghuajournals.com +tsinghuan.com +tsinghuawoman.com +tsingj.com +tsingming.com +tsingoofoods.com +tsingpost.com +tsingtoo.com +tskscn.com +tskscn.org +tsljzs.com +tslongtai.com +tslsmart.com +tsmtkj.com +tsorder.com +tsov.net +tsp189.com +tsparkling.com +tspsy.com +tspweb.com +tsqw.com +tsrcw.com +tsshunxin.com +tssns.net +tsstorry.com +tstdtz.com +tswuby.com +tsxcx.xyz +tsybsmz.com +tsyqb.com +tsyvps.com +tsyzm.com +tszckj.com +tszhjk.com +tszyzx.com +tt-bike.com +tt-ly.com +tt116114.com +tt1386.com +tt286.com +tt65org.com +tt787.com +tt96596.com +ttaidu.com +ttbba.com +ttbbss.com +ttbc33.com +ttcad.com +ttdailynews.com +ttdown.com +ttechhk.com +ttfly.com +ttgjx.com +tthigo.com +ttic.cc +ttigame.com +ttime.com +ttionya.com +ttjianbao.com +ttjiasu.com +ttkdex.com +ttkefu.com +ttkkuu.com +ttkuan.com +ttkxh.com +ttll.cc +ttlsa.com +ttmark.com +ttmd5.com +ttmnq.com +ttmv.com +ttn8.com +ttpaicdn.com +ttpaihang.com +ttpaper.com +ttpet.com +ttplayer.com +ttpod.com +ttpp.com +ttq.com +tts8.com +ttsfgyrj.com +ttshengbei.com +ttsmmwb.com +ttstream.com +ttsz8.com +ttt.sh +tttarot.com +ttthing.com +tttuangou.net +tttxf.com +tttz.com +ttufo.com +ttunion.com +ttuu.com +ttvosc.com +ttwanjia.com +ttwebview.com +ttwoyun.com +ttwx.com +ttxn.com +ttxs123.net +ttxsapp.com +ttxuanpai.com +ttyingqiu.com +ttyjf.com +ttyjgg.com +ttymq.com +ttyongche.com +ttyqm.com +ttysq.com +ttyyuuoo.com +ttz.com +ttzhongbao.com +ttzw.com +ttzyw.com +tu520.cc +tu8.cc +tu960.com +tuan800.com +tuan800.net +tuanai.com +tuanche.com +tuancu.com +tuandai.com +tuanduishuo.com +tuanhuiwang.com +tuanidc.net +tuanimg.com +tuanjiebao.com +tuankezhan.com +tuanlin.net +tuanpibao.com +tuanping.com +tuanshan.com +tuanwen.com +tuanxia.com +tuanxue360.com +tuanxue360.net +tuanyx.com +tubachina.com +tubangzhu.com +tubaobao.com +tubaobaoqm.com +tubaoveneer.com +tubaoyz.com +tubebbs.com +tubiaoxiu.com +tubie.art +tuboshu.com +tubutu.com +tucaojie.com +tuchong.com +tuchong.net +tuchuanhuwai.com +tucia.net +tucoo.com +tudai.cc +tudan.cc +tudan.vip +tudou.com +tudouh5.com +tudoupe.com +tudouui.com +tudouxy01.com +tudouyx.com +tudu.com +tudu.im +tuer.me +tuer123.com +tugou.com +tuguaishou.com +tuhaihe.com +tuhaokuai.com +tuhu.com +tuhu.org +tuhu.work +tuhusmart.com +tui18.com +tui56.com +tuiaaaa.com +tuiaaae.com +tuiaaaf.com +tuiaaag.com +tuiabq.com +tuiapple.com +tuiayonghu.com +tuibamboo.com +tuibat.com +tuibear.com +tuibench.com +tuiberry.com +tuiclick.com +tuicoco.com +tuicool.com +tuidaniu.com +tuidc.com +tuideli.com +tuidove.com +tuidragon.com +tuifeiapi.com +tuifish.com +tuifrog.com +tuiguangdns.com +tuiguangpingtai.com +tuijian.biz +tuijianxin.com +tuijie.cc +tuikemima.com +tuikemohe.com +tuili.com +tuili8.com +tuilidashi.xin +tuilie.com +tuilisr.com +tuiliu.net +tuiliw.com +tuilixy.net +tuimob.com +tuimotuimo.com +tuipeanut.com +tuipear.com +tuipenguin.com +tuipine.com +tuipink.com +tuiplay.com +tuipony.com +tuirabbit.com +tuirice.com +tuishao.net +tuishark.com +tuishiben.com +tuishujun.com +tuisnake.com +tuistone.com +tuitiger.com +tuitui99.com +tuituitang.com +tuiwen.net +tuixue.online +tuizx.com +tuji.online +tujia.com +tujiacdn.com +tujian.com +tujidu.com +tujiwar.com +tujixiazai.com +tujuren.com +tuke8.com +tuke88.com +tukkk.com +tuku.com +tukucc.com +tukumanhua.com +tukuppt.com +tulading.com +tuliaohr.net +tuling123.com +tuliren.com +tuliu.com +tumajewelry.com +tumanfen.com +tumanyi.com +tumeinv.com +tumormed.com +tumukeji.com +tumuzhe.com +tuna.wiki +tungshungroup.com +tungsten-alloy.com +tungsten-bar.com +tungsten-copper.com +tungsten-jewellery.com +tungsten-powder.com +tunionfans.com +tuniu.cc +tuniu.com +tuniu.net +tuniu.org +tuniucdn.com +tuniuglobal.com +tuniuins.com +tuniuops.net +tunynet.com +tuo-pan.com +tuocad.com +tuodanyy.com +tuohuangzu.com +tuoluocaijing.com +tuoluozhuan.net +tuoniaox.com +tuotoo.com +tuotuozu.com +tuoweisi.com +tuoxiaoshebei.com +tuozhe8.com +tupai.me +tupian114.com +tupian1234.com +tupian365.com +tupiancunchu.com +tupianjp.com +tupiankucdn.com +tupianzj.com +tupu360.com +tuputech.com +tupuw.com +tuqou.com +tuquu.com +turangyq.com +turbomail.org +turbotech.pro +turingapi.com +turingbook.com +turingcat.com +turingdi.com +turingtopia.com +zxw114.com +turnitincn.com +turnitinuk.net +turuio.com +tusapi.com +tusay.net +tuscdn.com +tusdk.com +tushare.org +tushare.pro +tusholdings.com +tushu001.com +tushu007.com +tushuguan.cc +tushumi.com +tushuokeji.net +tushupdf.com +tusij.com +tusiot.com +tusooo.com +tuspark.com +tuspass.com +tuspass.net +tusstar.com +tutechanhb.com +tutu001.com +tutuapp.com +tutucloud.com +tutuge.me +tutuguai.com +tutuim.com +tutupan.com +tuvrblog.com +tuwan.com +tuwan21.com +tuwandata.com +tuwangwang.com +tuwanjun.com +tuwenba.com +tuweng.com +tuwenzhibo.com +tux.red +tuxi.com +tuxiaobei.com +tuxiu.com +tuxun.fun +tuya.com +tuyacn.com +tuyansuo.com +tuyaya.com +tuyeware.com +tuyiqi.com +tuyitu.com +tuyiyi.com +tuyoo.com +tuyou.me +tuyoujp.com +tuyoumi.com +tuyouxinxi.net +tuzhan.com +tuzhan.net +tuzhanai.com +tuzhanh5.com +tuzhaozhao.com +tuzhizhijia.com +tuzi123.com +tuzi8.com +tuzim.net +tuziyangzhi.com +tv0001.com +tv002.com +tv189.com +tv432.com +tvandnet.com +tvapk.com +tvapk.net +tvbbj.com +tvblack.com +tvbwind.com +tvcbook.com +tvccc.org +tventry.com +tvfanqie.com +tvfuwu.com +tvguo.tv +tvhome.com +tvhuan.com +tvjianshen.com +tvkou.com +tvkuai.com +tvmao.com +tvmcloud.com +tvmining.com +tvn.cc +tvnwang.com +tvoao.com +tvos.com +tvscn.com +tvsou.com +tvt.im +tvtide.com +tvtsg.com +tvxio.com +tvzhe.com +tvzn.com +tw-yun.com +tw2sm.com +tw93.fun +twanxi.com +twcad.com +twcczhu.com +twd2.me +twd2.net +tweakcube.com +twguozao.com +twh5.com +twinkleunion.com +twinsel.com +twinsenliang.net +twitterios.com +twk.cc +twoarmy.com +twocucao.xyz +twofei.com +twsapp.com +twscholar.com +twsyue.com +twszs.com +twtstudio.com +twtym.com +twwtn.com +twwtn.net +twyuxin.com +twyxi.com +tx-exhibition.com +tx-livetools.com +tx-trans.com +tx009.com +tx163.com +tx29.com +tx5d.com +tx9968.com +txbapp.com +txbimg.com +txbyod.com +txcbwgg.com +txcdns.com +txcfgl.com +txdai.com +txdzs.com +txdzw.com +txfeiyu.com +txffp.com +txfund.com +txga.com +txh00.com +txianning.com +txip8.com +txitech.com +txjsjgs888.com +txjszz.com +txjy689.com +txlt.com +txlunwenw.com +txmcu.com +txon.net +txooo.com +txqcw.net +txrjy.com +txrzx.com +txsc100.com +txsdk.com +txssw.com +txt321.com +txtbbs.com +txtbook.net +txtduo.com +txttool.com +txtyxg.com +txwb.com +txweekly.com +txwestart.com +txwy.com +zxttax.com +txxbxx.com +txy6666.com +txy8.com +txyapp.com +txyes.com +txylab.com +txyscdn.com +txyscdn.net +txzad.com +txzb.app +txzing.com +ty-im.com +ty-tyre.com +ty2y.com +ty3w.net +ty8866.com +tybai.com +tyc100.com +tychio.net +tychou.com +tycqxs.com +tycredit.com +tydevice.com +tydouke.com +tyfo.com +tyhjzx.com +tyi365.com +tyjmmy.com +tykeji.vip +tyksl.com +tymcdn.com +tyn.cc +tyouai.com +tyouquan.com +typany.com +type.so +typecho.me +typechodev.com +typecodes.com +typekuon.com +tyrantdb.com +tyrbw.com +tyread.com +tysdmh.com +tysj365.com +tysjyjy.com +tyswy.com +tyszy.com +tytlj.com +tytuyoo.com +tytywuliu.com +tytzzy.com +tyust.net +tyuyan.com +tyuyan.net +tywh.com +tywxw.la +tyy6.com +tyymt.com +tyzscl.com +tz-dsp.com +tz.app +tz121.com +tz12306.com +tz1288.com +tz1980.com +tz887.com +tz911.com +tzbank.com +tzbank.net +tzbao.com +tzcul.com +tzfdc.com +tzfeize.xyz +tzfile.com +tzgcjie.com +tzhubo.com +tzhwcc.com +tzidt.com +tzjwrml.com +tzjxl.com +tzlib.net +tzlongwu.com +tzm66.com +tzppg.com +tzres.com +tzrl.com +tzsnw.com +tzsports.com +tzsti.com +tzsysp.com +tztusi.com +tzvtc.com +tzxingtang.com +tzxwzx.com +u-cdn.net +u-jingling.com +u-link.org +u-om.com +u-qun.com +u-road.com +u.sb +u.tools +u005.com +u062.com +u14.com +u148.net +u17.com +u17i.com +u17t.com +u21a.com +u22011.com +u22033.com +u22055.com +u22066.com +u22077.com +u22088.com +u22099.com +u22e.com +u23011.com +u23022.com +u23033.com +u23055.com +u25011.com +u25022.com +u2j2ha.com +u2sz.com +u3dc.com +u3dcn.com +u3dol.com +u3v3.com +u51.com +u520.net +u55011.com +u58.com +u5wan.com +u69cn.com +u77.com +u7u9.com +u8sy.com +u8yx.com +u9h.com +u9time.com +u9u8.com +u9u9.com +u9wan.com +uahh.site +uami-global.org +uao-online.com +uao.so +uauc.net +uavvv.com +uayangtze-volga.org +ub-os.com +ub.cc +ubaiyi.com +uban.com +ubangmang.com +ubersz.com +ubestkid.com +ubetween.com +ubgame.com +ubicdn.com +ubijoy.com +ubiquant.com +ubismartparcel.com +ubixai.com +ubixioe.com +ubja.vip +ublese.com +ubmconlinereg.com +uboat100.com +uboxol.com +uboxsale.com +ubs001.com +ubssdic.com +ubtrobot.com +ubuntukylin.com +ubuntukylin.org +ubuntuqa.com +ubuuk.com +uc-union.com +uc108.com +uc123.com +uc129.com +uc1z.com +uc23.net +uc56.com +uc669.com +ucai123.com +ucaiyuan.com +ucaiyun.com +ucancs.com +ucantech.com +ucantech.net +ucarinc.com +ucassc.com +ucb6.com +ucbug.com +uccastore.com +uccheck.net +ucdchina.com +ucdok.com +ucdrs.net +ucfly.com +ucfma.com +ucfpay.com +ucgslb.com +ucgslb.info +ucgslb.net +uchangdi.com +uchiha.ltd +uchis.com +uchuanbo.com +ucicq.com +ucjoy.com +ucloud-edm.com +ucloud365.com +ucloudadmin.com +ucloudapi.com +ucloudgda.com +ucloudnaming.com +ucloudnaming.info +ucloudnaming.net +ucloudoss.com +uclouds3.com +ucloudstack.com +ucloudstack.net +ucloudstor.com +ucloudufile.com +ucly.net +ucnaming.com +ucnaming.info +ucnaming.net +ucnano.com +ucnest.com +ucpaas.com +ucpchina.com +ucpopo.com +ucren.com +ucss.ninja +uctrac.com +ucun.tech +ucuuc.com +ucw.pub +ucweb.com +ucying.com +uczhidao.com +ucziliao.com +uczzd.com +uczzd.net +udache.com +udalogistic.com +udamall.com +udangjia.com +udashi.com +udaxia.com +udbac.com +uddtrip.com +udecig.com +udeepin.com +udeskcs.com +udonmai.com +udows.com +udpis.com +udrig.com +udsdown.xyz +udxd.com +uebilling.com +uecook.com +uedbox.com +uedhome.net +uedna.com +uedsc.com +ueeshop.com +uehtml.com +ueibo.com +uelike.com +uemo.net +uepei.com +ueren.com +uestcedu.com +ueuz.com +uewaf.com +uf-crm.com +uf-tobacco.com +ufanw.com +ufcap.com +ufenqi.com +ufhost.com +ufhosted.com +ufida-lcwy.com +ufidaoa.com +ufileos.com +ufirefly.com +ufizl.com +uflowx.com +ufo.club +ufoer.com +ufofxw.com +ufojia.com +ufojoy.com +ufotm.com +ug888.com +ugainian.com +ugapi.com +ugbb.com +ugcar.com +ugdtimg.com +uggame.com +uggd.com +ugirls.tv +ugmars.com +ugmjd.com +ugojp.com +ugong.com +ugoshop.com +ugslb.com +ugslb.info +ugslb.net +ugslb2.net +ugsnx.com +ugubl.net +ugxsd.com +uhabo.com +uhandak.com +uhasadmin.com +uhomecp.com +uhomes.com +uhouzz.com +uhuitong.com +uhuwang.com +uhzcdn.com +ui100day.com +ui63.com +uibaba.com +uibep.com +uibim.com +uibmm.com +uibobo.com +uibot123.com +uicmall.com +uicom.net +uicool123.com +uid75.com +uidec.com +uidev.tech +uidev.xyz +uihacker.com +uiiiuiii.com +uil.ink +uileader.com +uimaker.com +uimix.com +uincall.com +uincall400.com +uincom400.com +uipower.com +uisdc.com +uisheji.com +uishijie.com +uisnetwork.com +uisrc.com +uiste.com +uitool.net +uiu.cc +uiusc.com +uiwow.com +ujakn.com +ujan2.cloud +ujia007.com +ujian.cc +ujiaoshou.com +ujinbi.com +ujing.online +ujipin.com +ujiuye.com +uk-edu.com +zxtnetwork.com +uk86.com +ukassignment.org +ukeban.com +ukelink.com +uker.net +ukh5.com +ukongm.com +ukonline2000.com +ukoo.net +ukpass.org +ukpathway.com +ukplanking.com +ukubang.com +ukui.org +ukulelecn.com +ukvisacenterd.com +ulaojiu.com +ulapia.com +ule.com +ule.hk +uleapp.com +ulecdn.com +uleek.net +uliang.vip +uliangwang.com +uliaobao.com +ulikecam.com +ulinix.com +ulink.cc +ulkoxbra.com +ulpay.com +ultramanol.com +ulucu.com +ulzdk.com +um.run +umajor.net +umaman.com +umbpay.com +umcloud.com +umdac.com +umeng.co +umeng.com +umeng.online +umeng100.com +umengcloud.com +umenglog.com +umetrip.com +umi.im +umihome.com +umilu.com +umindex.com +uminehotel.com +uminsky.com +umiwi.com +umjicanvas.com +uml-tech.com +umlchina.com +umlife.net +umlonline.org +umowang.com +umpay.com +umqlyy.com +ums86.com +umsamd.com +umsns.com +umtrack.com +umvafc.com +umvsoft.com +un-bug.com +un10086.com +un1c0de.xyz +una-ad.com +unaming.info +unaming.net +unasdwarfs.com +uncbd.com +unccr.com +uncle-ad.com +uncledesk.com +unclenoway.com +unclenoway.net +unclenowayapi.com +unclicks.com +underfill.cc +uneed.com +unfish.net +ungifts.com +uni-perfect.com +uni-ubi.com +unibizp.com +unicde.com +unicloud.com +001job.com +unicom-cz.com +unicomgd.com +unicomjnwy.com +unicomlife.com +unicompayment.com +unicomspeedtest.com +unicomtest.com +unicon-hibar.com +unicornacg.com +unifull.com +unifycarbon.com +unigress.com +unilaw.net +uninf.com +uninstall-tools.com +union-4.com +union-game.com +union-rnd.com +union-wifi.com +union178.com +union400.com +union555.com +unioncom.cc +unioncyber.net +unionli.com +unionpay.com +unionpay.net +unionpay95516.cc +unionpayintl.com +unionpaysecure.com +unionsy.com +uniontech.com +unionwebpay.com +uniostay.com +uniow.com +uniproud.com +uniqueway.com +uniscope.com +unisedu.com +unisemicon.com +unisguard.com +unishy.com +unisoc.com +unisound.com +unispim.com +unissoft.com +unistc.com +uniswdc.com +unitedbank.ltd +unitedmoney.com +unitek-it.com +uniteyun.com +unitymanual.com +uniview.com +uniworldart.com +unixhot.com +unixidc.com +unixs.org +unizai.com +unjmz.com +unjs.com +unlimax.com +unlimithealth.com +unmou.com +unnnnn.com +unogenius.com +unpcn.com +unqu.com +zxtjd.com +unspay.com +unsuv.com +unzg.com +uochen.com +uodoo.com +uodzhx.com +uoeee.com +uofon.com +uoften.com +uogby.com +uoj.ac +uoko.com +uomg.com +uonline-sh.com +uonline-sh.net +uono4521.com +uooconline.com +uooioo.com +uoolu.com +uooss.com +uooyoo.com +uoozi.com +uoschina.com +uouo123.com +uovz.com +up360.com +up4dev.com +up71.com +upai.com +upaidui.com +upaiyun.com +upan.cc +upanboot.com +upanok.com +upanshadu.com +upantool.com +upashance.com +upbz.net +upcdn.net +upchina.com +upchinapro.com +upchinaproduct.com +zxtang.com +updrv.com +upe.net +upecp.com +upesn.com +upho2015.com +uphong.com +upimgku.com +upin.com +upkao.com +uplinux.com +uplookedu.com +uplooking.com +upnb.com +upowerchain.com +uppsd.com +upqzfile.com +upqzfilebk.com +ups-huawei.net +zxt2007.com +ups001.com +upsapp.com +upst86.com +upsunet.com +uptougu.com +upupbug.com +upupfile.com +upupoo.com +upupw.net +upwardsware.com +upwith.me +upx8.com +upyun.com +upyunso.com +upzxt.com +uqbike.com +uqche.com +uqd1.net +uqee.com +uqeegame.com +uqer.io +uqidong.com +uqidong.net +uqite.com +uqseo.com +uqualities.com +uqude.com +uqulive.com +urart.cc +urbanchina.org +urbanmatters.com +urbanwy.com +urbetter.com +urbetter.net +urcb.com +urfire.com +urgc.net +uri6.com +uril6.com +url.cy +urlili.shop +urlos.com +urovo.com +urovoworld.com +ursb.me +urselect.com +urtrust.com +urumqi-air.com +us-ex.com +usa-gti.com +usa-idc.com +usaas.net +usaedu.net +usahaitao.com +usakongjian.net +usaliuxue.com +usaobb.com +usaphoenixnews.com +usashopcn.com +usbing.com +usbmi.com +usbxyz.com +uscnk.com +uscxm.com +usdxz1.com +usdxz1.net +use-trust.com +useaudio.com +usecubes.com +useragentinfo.com +userbp.com +userhostting.com +userresearch.net +useryun.net +useso.com +usfcw.com +ushaqi.com +ushendu.com +ushengame.com +usidt.com +using.club +usingde.com +usingwin.com +usitour.com +usitrip.com +usjuw.com +uslk.net +usnook.com +usocialplus.com +usoftchina.com +usonetrip.com +uspard.com +usplanking.com +ustack.com +ustalk.com +ustc.edu +ustcers.com +ustclug.org +ustui.com +usu8.com +usuredata.com +uszcn.com +ut8d.com +utan.com +utanbaby.com +utbon.com +utc-ic.com +utecbj.com +utepo.com +utermux.dev +utfinancing.com +uthinks.com +utiankong.com +utogame.com +utom.design +utoper.com +utopiafar.com +utourworld.com +utovr.com +utransm.com +uttjhu.xyz +uu-xs.net +uu.cc +uu.me +uu1.com +uu1314.com +uu178.com +uu38.com +uu456.com +uu55.tv +uu66.com +uu8281uu.com +uu89.com +uu898.com +uuaa.net +uucl.vip +uucolor.com +uudsp.com +uuecs.com +uufa2017.com +uufund.com +uugai.com +uugame.com +uugtv.com +uuh5.com +uuhimalayanqm.com +uuid.online +uuimg.com +uukit.com +uukkuu.com +uulucky.com +uulux.com +uumachine.com +uunice.com +uuns.com +uunt.com +uuoo.com +uupages.com +uupaotui.com +uupee.com +uupei.com +uupoop.com +uupt.com +uuradio.com +uus8.com +uusama.com +uusee.com +uusky.com +uusoo.net +uusos.com +uustory.com +uustv.com +uusucai.com +uutop.com +uutuu.com +uuu.moe +uuu.ovh +uuu9.com +uuuo.com +uuutu.com +uuvisa.com +uuvps.com +uuwtq.com +uuxn.com +uuyoyo.com +uuzham.com +uuzhufu.com +uuzo.net +uuzone.com +uuzu.com +uuzuonline.com +uuzuonline.net +uuzz.com +uvexperience.com +uviewui.com +uvledtek.com +uvov.com +uw3c.com +uw9.net +uwa4d.com +uwan.com +uwenku.com +uworter.com +ux18.com +ux6.com +ux87.com +ux98.com +uxacn.com +uxdc.net +uxiangzu.com +uxianhu.com +uxicp.com +uxigo.com +uxin.com +uxingroup.com +uxiting.com +uxpi.net +uya100.com +uyan.cc +uyanip.com +uycnr.com +uyess.com +uyi2.com +uyiban.com +uym11.xyz +uyou.com +uyouii.cool +uyouqu.com +uyshipin.com +uyueread.com +uyun-cdn.com +uyunad.com +uyunbaby.com +uyuncdn.net +uyuyao.com +uyyidc.com +uzai.com +uzaicdn.com +uzbox.com +uzing.net +uzise.com +uzshare.com +uzuzuz.com +uzzf.com +v-56.com +v-beautysalon.com +v-danci.com +v007.net +v0719.com +v114.com +v1bo.com +v1h5.com +v1lady.com +v1pin.com +v1tuan.com +v1tx.com +v2b3.com +v2ex.cc +v2geek.com +v2kt.com +v2make.com +v3best.com +v3edu.org +v3mh.com +v4.cc +v479.com +v4dwkcv.com +v5.com +v5875.com +v5bjq.com +v5cam.com +v5cg.com +v5dun.net +v5fox.com +v5kf.com +v5music.com +v5pc.com +v5ppt.com +v5shop.com +v5tv.com +v6c.cc +v6dp.com +v6lvs.com +v6ok.com +v78q.com +v86.org +v977.com +v997.com +v9b5n91.com +va-etong.com +vaakwe.com +vacanza-umbria.com +vacmic.com +vaecn.com +vaeliu.com +vakku.com +validform.club +valinbl.com +valinresources.com +value500.com +valuecome.com +valuedshow.com +valuepr.net +valueq.com +valueur.com +valurise.com +vamachina.com +vamaker.com +van-u.com +vanbaolu.com +vance-commerce.com +vanch.net +vanchhandheld.com +vanchip.com +vanchiptech.com +vanchu.com +vancl.com +vanclimg.com +vandream.com +vanfun.com +vangotech.com +vankang.com +vanke.com +vankeservice.com +vankeservice.mobi +vankeweekly.com +vankeytech.com +vanlinkon.com +vanmai.com +vanmatt.com +vanrui.com +vanterc.com +vants.org +vanzol.com +vapps.me +vaptcha.com +vaptcha.net +varena.com +variflight.com +varmilo.com +vart.cc +vartcn.com +vas.ink +vasee.com +vaslco.com +vasoon.com +vasuwebdev.com +vatano.net +vauoo.com +vbbobo.com +vbidc.com +vbiquge.com +vbmcms.com +vbooking.net +vbsemi.com +vbuluo.com +vc800.com +vcbeat.net +vcchar.com +vcd.io +vcdisgd.com +vceshi.net +vcg.com +vchangyi.com +vchat5.com +vchatshow.com +vcheer.com +vchello.com +vcimg.com +vcinchina.com +vckai.com +vckbase.com +vcloudgtm.com +vcloudstc.com +vcloudstc.net +vcloudvod.com +vclusters.com +vcnews.com +vcode.cc +vcomic.com +vcomputes.com +vcooline.com +vcore.hk +vcredit.com +vcsint.com +vdaye.com +vdiagnostic.com +vdian.com +vdisk.me +vdncache.com +vdncloud.com +vdndc.com +vdnplus.com +vdnsv.com +vdolady.com +vdongchina.com +ve70.com +vearne.cc +vecentek.com +vechain.com +vectorplaces.com +vedamobi.com +vedcdnlb.com +vedeng.com +veding.com +vediotalk.com +vedsalb.com +veelink.com +veeqi.com +veeqi.net +veer.com +veervr.tv +veeteam.com +veevlink.com +veikei.com +veilytech.com +veinbase.com +vejianzhan.com +veken.com +velasx.com +velep.com +velocaps.com +vemarsdev.com +vemarsstatic.com +vemic.com +vemvm.com +venlvcloud.com +ventoy.net +venucia.com +venuscn.com +venustrain.com +vephp.com +verdareto.com +verisilicon.com +verisyno.com +veritrans-link.com +verodillan.com +vertuonline.com +veryapex.com +verybeaut.com +verycd.com +verycdn.net +verydns.net +verydoc.net +verydz.com +veryevent.com +verygrass.com +verygslb.com +verygslb.net +veryhappy.pw +veryhuo.com +veryide.com +veryim.com +veryitman.com +verym.com +veryns.com +veryol.com +verypan.com +verysou.com +verysource.com +verystar.net +veryweibo.com +verywind.com +veryxiang.com +veryzhun.com +vesystem.com +vetscloud.com +vf5c.com +vfcsz.com +vfinemusic.com +vfocus.net +vftfishing.com +vfund.org +vfx123.com +vg.com +vgabc.com +vgbaike.com +vgctradeunion.com +vghall.com +vgjump.com +vglook.com +vgnclub.com +vgoapp.com +vgooo.com +vgoyun.com +vgtime.com +vhaey.com +vhall.com +vhallyun.com +vhao123.com +vhostgo.com +vi21.net +vi586.com +via-cert.com +viaeda.com +vial.cc +vibaike.com +vibit.cc +vibrou.com +vic18.com +vicchen.me +vichamp.com +vicigaming.com +vickn.com +vicovico.com +vicp.cc +vicp.net +vicrab.com +vicsdf.com +vida-bio.com +vidarsoft.com +viday.org +videaba.com +video-study.com +video-voip.com +videocc.net +videohupu.com +videoincloud.com +videoipdata.com +videojj.com +videoxiaoyouxi.com +videoyi.com +videoyx.com +videozhishi.com +vienblog.com +viewones.com +viewstock.com +viewtool.com +viewtrans.com +vigtm-meeting-tencent.com +viigee.com +viisan.com +viitalk.com +viixin.com +vijos.org +vikduo.com +vikecn.com +vilipix.com +villaday.com +viltd.com +vimage1.com +vimage2.com +vimage4.com +vimge.com +vimicro.com +vimiix.com +vimiy.com +vimlinux.com +vims04.com +vimsky.com +vin114.net +vinchin.com +vinehoo.com +vinetreetents.com +vingoojuice.com +vingoostation.com +vinjn.com +vinkdong.com +vinnywang.com +vinsondata.com +violetgo.com +violinerhu.com +violinstudy.net +violinww.com +vip-wifi.com +vip.com +vip120.com +vip1280.net +vip150.com +vip800.com +vip8849.com +vip9982.net +vipbaihe.com +vipbla.com +vipbuluo.com +vipchina.com +vipcn.com +vipcto.com +vipdlt.com +vipersaudio.com +vipexam.org +vipfashion.com +vipfengfei.com +vipfengxiao.com +vipfinal.com +vipglobal.hk +vipgs.net +vipgslb.com +viphxw.com +vipjingdong.com +vipjr.com +vipkaoyan.net +vipkid.com +vipkidresource.com +vipkidstatic.com +vipkj.net +vipkoudai.com +vipleyuan.com +vipliangmei.com +viplux.com +vipmaillist.com +vipmalljf.com +vipmro.com +vipmro.net +viponlyedu.com +vippluspai.com +vipqlz.com +vips100.com +vipshop.com +vipshopyao.com +vipsinaapp.com +vipsmt.com +vipsrc.com +vipstatic.com +vipstore.com +viptail.com +viptarena.com +viptijian.com +vipwhjtsgpc.com +vipwzswl.com +vipxap.com +vipxdns.com +vipxdns.info +vipxdns.net +vipxs.la +vipyaya.com +vipyl.com +vipyooni.com +vipyz-cdn1.com +vipzhuanli.com +viqq.com +virbox.com +vircloud.net +virscan.org +virtualevent.net +virusdefender.net +visa198.com +visa800.com +visabao.com +visacits.com +visadeguo.com +visaforchina.org +visajx.com +visas.to +visaun.com +visbodyfit.com +viseator.com +vishining.com +visionbbs.com +visionchinashow.net +visioncloudapi.com +visionly.org +visionsinactionusa.com +visionstar-tech.com +visionunion.com +visionvera.com +visitsz.com +viskem.com +visonforcoding.com +vista123.com +vistastory.com +visualchina.com +visvachina.com +vitagou.com +vitagou.hk +vitarn.com +vitechliu.com +viterbi-tech.com +vitian.vip +vivantecorp.com +vivcms.com +vividict.com +vivijk.com +viviv.com +vivo.com +vivo.xyz +vivoglobal.com +vivojrkj.com +vivokb.com +vivst.com +viwik.com +vixue.com +vj24co.com +vjia.com +vjiazu.com +vjie.com +vjshi.com +vjudge.net +vk6.me +vk8.co +vkaijiang.com +vkehu.com +vkelai.com +vkemai.com +vksoft.com +vku6.com +vlabstatic.com +vlan9.com +vland-official.com +vlandgroup.com +vlcms.com +vliang.com +vlightv.com +vlinkage.com +vlinke.com +vlion.mobi +vlong.tv +vlongbiz.com +vlzp.com +vm.sg +vmall.com +vmallres.com +vmanhua.com +vmartaw.com +vmaya.com +vmdo.net +vmengblog.com +vmeti.com +vmfor.com +vmicloud.com +vmoiver.com +vmonkey.mobi +vmovier.cc +vmoviercdn.com +vmsky.com +vmvps.com +vnet.mobi +vnnox.com +vnvshen.com +vnzmi.com +vobao.com +vocalmiku.com +voccdn.com +vocinno.com +vodjk.com +vodtcbk.com +vohringer.com +voicedic.com +voicer.info +voicer.me +voidcc.com +voidking.com +voidme.com +vojs.tv +vokop.com +vol.moe +volccdn.com +volcdns.com +volceapplog.com +volcengine.com +volces.com +volcfcdndvs.com +volcgslb.com +volcgtm.com +volchina.com +volcimagex.net +volcmcdn3.com +volcsirius.com +volcsiriusbd.com +volctracer.com +volcvideo.com +volcvod.com +voldp.com +volit.com +volmoe.com +voltmemo.com +volumes.cc +vomicer.com +vomicmh.com +vonets.com +vonwei.com +vooec.com +voole.com +voole.net +voopoo.com +voovlive.com +voovmeeting.com +vortexfun.com +vote8.cc +vote8.com +voycn.com +voyooo.com +vp3u.com +vpadn.com +vpaizu.com +vpal.com +vpalstatic.com +vpansou.com +vpbus.com +vpcs.com +vpgame.com +vpiaotong.com +vpie.net +vpimg1.com +vpimg2.com +vpimg3.com +vpimg4.com +vplayer.net +vpn39.com +vpnsoft.net +vpquc9rn.com +vps.im +vps.sh +vps234.com +vpsaa.com +vpsaa.net +vpsaff.com +vpscang.com +vpsdx.com +vpser.net +vpsjxw.com +vpsmm.com +vpsno.com +vpsoff.net +vpsor.com +vpsqb.com +vpsrb.com +vpssir.com +vpsss.net +vpszh.com +vqs.com +vqu.show +vqudo.com +vqudochina.com +vr-cat.com +vr-game.club +vr186.com +vr42.com +vralzuns.com +vrbeing.com +zxsygs.com +vrbig.com +vrbrothers.com +vrcfo.com +vrjie.com +vrlequ.com +vrpowder.com +vrrw.net +vrsat.com +vrupup.com +vrvlink.com +vrvmanager.com +vrwuhan.com +vrzb.com +vs-gascloud.com +vsaker.com +vsane.com +vsbclub.com +vsbuys.com +vsens.com +vshangdaili.com +vsharecloud.com +vsharing.com +vshouce.com +vshuoshuo.com +vsjwtcdn.com +vslai.com +vsnoon.com +vsnoon.net +vsnoon.org +vsochina.com +vsocloud.com +vsooncat.com +vsooncloud.com +vsoontech.com +vspk.com +vsppt.com +vsread.com +vstart.net +vstecs.com +vstmv.com +vstou.com +vsuch.com +vsun.com +vsyo.com +vtache.com +vtbs.fun +vtcdn000.com +vteamgroup.com +vtears.com +vtepai.com +vtepai.net +vtibet.com +vtool.vip +vtoutiao.cc +vtrois.com +vtuzx.com +vue-js.com +vue5.com +vuepr.icu +vuevideo.net +vuhbgtsi.xyz +vulbox.com +zxswjx.com +vulnhunt.com +vultr1.com +vultrcn.com +vultrvps.com +vunion.net +vurl.link +vurl3.vip +vutimes.com +vux.li +vuz.me +vv8.com +vv881.com +vv8yx.com +vv91.com +vvaii.com +vvbtc.com +vvddcc.com +vvdeal.com +vvebo.vip +vvfeng.com +vvfht.fun +vvgroup.com +vvhan.com +vvic.com +vvipcdn.com +vvjob.com +vvkaoyan.com +vvkw.com +vvl.cc +vvmeiju.com +vvo2o.com +vvpgwg.xyz +vvpingtai.com +vvpncdn.com +vvstc.com +vvtor.com +vvup.net +vvv.io +vvvcd.com +vvvdj.com +vvvfans.com +vvvvzv.com +vvzero.com +vwhulian.com +vwvvwv.com +vwwmsd.com +vx.com +vxia.net +vxiaocheng.com +vxiaoxin.com +vxinyou.com +vxo7tu.com +vxposed.com +vxsnk.com +vxuey.com +vxv.ink +vycool.com +vyin.com +vynior.com +vysj.com +vyuan8.com +vyun.com +vz41.com +vzan.cc +vzan.com +vzhang.net +vzhantong.com +vzhifu.net +vzhou.net +vzhuanba.com +vzhuji.com +vzhuo.com +vzhushou.com +vzidc.com +vzkoo.com +vzuu.com +w-e.cc +w-w-j-d.com +w0663.com +w0lker.com +w10a.com +w10xitong.com +w10zj.com +w123w.com +w1365.com +w18.net +w1989.com +w20.net +w2008.store +w218.com +w2bc.com +w2gou.com +w2solo.com +w333.com +w3cay.com +w3cbus.com +w3cfuns.com +w3chtml.com +w3cjava.com +w3cschool.cc +w3cshare.com +w3ctalk.com +w3ctech.com +w3cways.com +w3pop.com +w3tt.com +w3xue.com +w7.cc +w7000.com +w7ghost.net +w8xitong.com +w918.com +w9udx8.com +wa5.com +wa5as4.com +waaaat.com +waakee.com +wabcw.info +wabuw.com +wacai.com +wacaiyun.com +wacaoren.net +wacdn.com +wader1714.com +waduanzi.com +waerfa.com +wafcn.com +wafunny.com +wafzi.com +waha.cc +waheaven.com +wahlap.com +waibao123.com +waibao12333.com +waibaodashi.com +waibou.com +waig8.com +waigame.com +waigf.com +waiguofang.com +waihui888.com +waihuigu.net +waihuo.com +wailaishop.com +wailianvisa.com +waima.com +waimai.zone +waimai361.com +waimaiwanjia.com +waimao6.com +waimaolangtz.com +waimaoribao.com +waimaozhuge.com +waimungfire.com +waiqin365.com +waitingfy.com +waitsun.com +wajueji.com +wakatool.com +wakedata.com +wakeofgods.com +waketu.com +wakeup.fun +wakingsands.com +wakkaa.com +wakuai.com +wal8.com +walahe.com +walanwalan.com +walatao.com +walekan.com +wali.com +walibao.com +walimaker.com +walkerdu.com +walknode.com +walkthechat.com +wallba.com +wallcoo.com +wallcoo.net +walle-web.io +wallet.io +walletio.io +wallpapersking.com +wallstcn.com +wallstreetcn.com +wallswitch.com +wamawama.com +wamila.com +wan.cc +wan.com +wan1234.com +wan160.com +wan25.com +wan32.com +wan5d.com +wan68.com +wan7.xin +wan73.com +wan77.com +wan8.com +wan898.com +wan95.com +wanbang365.com +wanbaoju.com +wancai.com +wancaibb.com +wancaiinfo.com +wancaomei.com +wanche100.com +wancheng168.com +wanchengwenku.com +wanchenzg.com +wanchuweilai.com +wanda-cti.com +wanda-gh.com +wanda-group.com +wandacinemas.com +wandafilm.com +wandahotelinvestment.com +wandahotels.com +wandaplazas.com +wandarealm.com +wandasportstravel.com +wandavista.com +wandhi.com +wanding.net +wandodo.com +wandoer.com +wandongli.com +wandouip.com +wandoujia.com +waneziyuan.com +wanfangche.com +wanfangdata.com +wanfangqikan.com +wanfangs.com +wanfangtech.com +wanfangtech.net +wanfantian.com +wanfumei.net +wanfuqianqiu.com +001jm.com +wang-li.com +wang-nan.com +wang-russell.cc +wang1314.com +wang1314.net +wanga.me +wangamela.com +wangan.com +wanganedu.com +wangbixi.com +wangcaio2o.com +wangcaiwang.com +wangcanmou.com +wangchao.de +wangchujiang.com +wangchunsheng.com +wangcms.com +wangdahn.com +wangdaibus.com +wangdaicaifu.com +wangdaidongfang.com +wangdaijiamen.com +wangdaileida.com +wangdalao.com +wangdali.net +wangdaodao.com +wangdianmaster.com +wangdongjie.com +wangeditor.com +wangejiba.com +wangfujing.com +wanggou.com +wanggou236.com +wangguai.com +wanghaida.com +wanghualang.com +wanghuinet.com +wanghz.com +wangid.com +wangjianshuo.com +wangjinle.com +wangjubao.com +wangjumeng.xin +wangjunwei.com +wangkl.com +wangle.com +wanglibao.com +wanglu.info +wanglv.com +wanglv.vip +wangmeng.com +wangmingkuo.com +wangminping.com +wangmou.com +wangmou.net +wangpiao.com +wangpiao.net +wangpu.net +wangpu365.com +wangpuzhi.com +wangqi.com +wangren.com +wangrongbao.com +wangrunze.com +wangshangfayuan.com +wangsherong.com +wangshidi.com +wangshu.la +wangshuashua.com +wangshugu.com +wangsongxing.com +wangsu.com +wangsucloud.com +wangt.cc +wangtingrui.com +wangtongtong.com +wangtu.com +wanguan.com +wangukcn.com +wanguoschool.com +wanguoschool.net +wanguotong.com +wangwango.com +wangwo.net +wangxc.club +wangxiangyule.com +wangxianyuan.com +wangxiao.net +wangxiaobao.cc +wangxiaobao.com +wangxingcs.com +wangxinhao.com +wangxinlicai.com +wangyangyang.vip +wangyanpiano.com +wangye.com +wangyeyixia.com +wangyin.com +wangyou.com +wangyou2.com +wangyuan.com +wangyutang.com +wangyuwang.com +wangzhan123.net +wangzhan360.com +wangzhanbao.cc +wangzhanbianji.com +wangzhanchi.com +wangzhanzj.com +wangzhe.com +wangzhengzhen.com +wangzhennan.com +wanh5.com +wanheweb.com +wanhi.com +wanhongji.com +wanhu888.com +wanhuahai.com +wanhuajing.com +wanhui365.com +wanhunet.com +wanimal1983.org +wanjiashe.com +wanjidashi.com +wanjiedata.com +wanjiedu.com +wanjunda.net +wanka5.com +wankacn.com +wanke123.com +wanke798.com +wankukeji.com +wankuwl.com +wanlaiwang.com +wanlan.vip +wanli.com +wanlicd.com +wanlitong.com +wanmei.com +wanmeilink.com +wanmeilr.com +wanmeitang.com +wanmeiyunjiao.com +wanmi.cc +wanmi.com +wannaenergy.com +wannaexpresso.com +wannar.com +wannengxiaoge.com +wannengzj.com +wannianli.mobi +wannianli.net +wannianli2.com +wannianli8.com +wannuoda.com +wanplus.com +wanqianyun.com +wansf.com +wanshahao.com +wanshanshuju.com +wanshifu.com +wanshiruyi.net +wanshitong.com +wanshouyou.net +wanshuyun.com +wansongpu.com +wantexe.com +wantgame.net +wantiku.com +wantong-tech.net +wantouzi.net +wantowan.com +wantquotes.net +wantshopping.ltd +wantumusic.com +wantwords.net +wanwan4399.com +wanwanol.com +wanweipc.com +wanweixin.com +wanwudezhi.com +wanwupai.com +wanwushuo.com +wanwuxia.com +wanxiangqihang.com +wanxiangyouxian.com +wanyan.com +wanyiwang.com +wanyol.com +wanyoo.com +wanyoucn.com +wanyouw.com +wanyouxi7.com +wanyuanxiang.com +wanyuenet.com +wanyuhudong.com +wanyumi.com +wanyunshuju.com +wanyuwang.com +wanyx.com +wanyxbox.com +wanzhoumo.com +wanzhuang.com +wanzhuangkj.com +wanzhuanlea.com +wanzhucdn.com +wanzhugs.com +wanzi.cc +wanzi.com +wanzia.com +wanzjhb.com +wanzuile.com +waoo.cc +wapadv.com +waptt.com +wapzk.net +warcraftchina.com +warestage.com +warrillas.com +warsongmobile.com +warstudy.com +warsu.com +warting.com +warwickintl.com +was-expo.com +wasair.com +wasanfeng.com +wasd.plus +wasee.com +wasfzx.com +washpayer.com +wasintek.com +wasoinfo.com +wasu.com +wasu.tv +watch-life.net +watch-top.net +watchleader.com +watchstor.com +watchtop.com +water520.com +watercubeart.com +watergasheat.com +watertek.com +watertu.com +wauee.com +wauee.net +wave-game.com +wave-optics.com +waveshare.net +wavideo.tv +wavpub.com +wawa114.com +wawadns.com +wawanda.com +wawayaya.net +waxrain.com +waxxh.me +way2solo.com +wayboosz.com +wayhu.cc +wayhu8.com +waynetechs.com +wayos.com +wayoulegal.com +wayoxi.com +waytit.com +wayzim.com +wazhuti.com +wb0311.com +wb133.com +wb321.com +wb521.net +wb699.com +wbangdan.com +wbcm55.com +wbdacdn.com +wbiao.co +wbiao.com +wbimg.com +wbini.com +wbo529.com +wboll.com +wbolt.com +wbpvc.com +wbsdz.com +wbsrf.com +wbsz.com +wbtech.com +wbw.im +wbxgl.com +wbzol.com +wc44.com +wcbygame.com +wcd.im +wcfang.com +wch-ic.com +wcjbb.com +wcloud.com +wcmrpx.com +wcsapi.com +wcsfa.com +wcuhdi.com +wcwlmobi.com +wcyecs.com +wd1266.com +wdace.com +wdashi.com +wdaveh5game.com +wddcn.com +wddream.com +wdfangyi.com +wdfok.com +wdfxw.net +wdgaosheng.com +wdghy.com +wdiyi.com +wdjimg.com +wdjky.com +wdku.net +wdkud6.com +wdlny.com +wdmcake.com +wdmuz.com +wdodo.com +wdomob.com +wdres.com +wdsrc.com +wdstory.com +wdszb.com +wdtec.cc +wdtlfj.com +wduw.com +wdw88.com +wdxmzy.com +wdxtub.com +wdy33.com +wdy44.com +wdyxgames.com +wdzj.com +wdzx.com +we.com +zxsmd.com +we1130.com +we123.com +we2.name +we2marry.com +we4399.com +we4game.com +we7.cc +weachat.net +weakyon.com +wealink.com +weand.com +weaoo.com +weapp.com +weapp.me +wearemanner.com +weareqy.com +weartrends.com +weasing.com +weatherat.com +weathercn.com +weatherdt.com +weatherol.com +weaverdream.com +weaversoftware.com +weavi.com +weaview.com +web-tinker.com +web0518.com +web0898.net +web100.cc +web1800.com +web2060.com +web3.xin +web3389.com +web360.pw +web89.net +web930.com +webank.com +webankcdn.net +webdissector.com +webdiyer.com +webfalse.com +webfont.com +webfoss.com +webfreecounter.com +webfuwu.com +webgame138.com +webgame163.com +webgzs.com +webhek.com +webhivers.com +webjike.com +webkaka.com +webkdcdn.com +webkf.net +webkv.com +webmeng.net +webmulu.com +webnovel.com +webok.me +webond.net +weboss.hk +webpackjs.com +webportal.cc +webpowerchina.com +webqxs.com +webrtc.win +webs.so +websbook.com +websem.cc +webseo9.com +webshao.com +webshu.net +websjcdn.com +websocket-test.com +websoft9.com +webterren.com +webullzone.com +webuy.ai +webuy.vip +webview.tech +webworker.tech +webxgame.com +webxin.com +webxmf.com +webyang.net +wecarepet.com +wecash.net +wecatch.me +wecenter.com +weceshi.com +wechat.com +wechat.org +wechatapp.com +wechatify.net +zxshe.com +weclassroom.com +wecloudx.com +wecom.work +wecrm.com +wecycling.com +wecydia.com +wed6.com +wedate.me +weddingos.com +wedengta.com +wedfairy.com +wedn.net +wedo8.com +wedooapp.com +weebei.com +weebia.com +weedong.com +weefang.com +weeiy.com +weekus.com +weelv.com +weemall.shop +weeqoo.com +weeyun.com +wefans.com +wefinger.club +wefitos.com +wefunol.com +wegame.com +wegameapi.com +wegamedeveloper.com +wegameplus.com +zxsg88.com +wegene.com +weharvest.com +wehefei.com +weherepost.com +wei2008.com +wei6.com +weiao.online +weiba66.com +weibaji.com +weibanan.com +weibangong.com +weibanzhushou.com +weibo.co +weibo.com +weibocdn.com +weibohelper.com +weiboi.com +weibopay.com +weiboreach.com +weiboyi.com +weibusi.net +weica.net +weicaifu.com +weicewang.com +weichaishi.com +weicher-sz.com +weiclicai.com +weico.cc +weico.com +weicot.com +weida888.com +weidanbai.com +weidanci.com +weidaohang.org +weidaoliu.com +weidea.net +weidian.cc +weidian.com +weidian.gg +weidiancdn.com +weidianfans.com +weidiango.com +weidianyuedu.com +weidunewtab.com +weiduruanjian.com +weiengift.com +weifang666.com +weifenghr.com +weifengke.com +weifengou.com +weifengtang.com +weifenpay.com +weifrom.com +weigongju.org +weihai.tv +weihaicollege.com +weihaipoly.com +weihaobang.com +weihaoyi.com +weihua2.com +weihubao.com +weihuijob.com +weihulian.com +weihuo.site +weihz.net +weijiexi.com +weijifan.com +weijinsuo.com +weijiu.org +weijiuxin.com +weijj.com +weijq.com +weiju.net +weijuju.com +weikaowu.com +weikasen.com +weike.fm +weikebaba.net +weikeimg.com +weikejianghu.com +weikengtech.com +weikuw.com +weilaicaijing.com +weilaishidai.com +weilaitianwang.com +weilaitiku.com +weilaiyunxiao.com +weilaizhaiju.com +weilanhaian.com +weilanliuxue.com +weilanwl.com +weile.com +weileapp.com +weilekuiming.com +weileryiyt.com +weiling520.com +weilinovel.net +weilitoutiao.net +weilongshipin.com +weilt.net +weimai.com +weimaqi.net +weimeiba.com +weimeicun.com +weimeifan.net +weimeigu.net +weimiaocaishang.com +weimingcq.com +weimingedu.com +weimingkids.com +weimob.com +weimobapp.com +weimobcloud.com +weimobdc.com +weimobqa.com +weimobwmc.com +weinisongdu.com +weinm.com +weio6nkoe.cyou +weiot.net +weipaitang.com +weiphone.net +weiphp.com +weipinchu.com +weiping.com +weipu.com +weipuhj.com +weiq.com +weiqi.cc +weiqiaocy.com +weiqiaoyun.com +weiqidaxing.com +weiqinfang.com +weiqingbao.cc +weiqitv.com +weiqudao.net +weiqundaquan.com +weiquyx.com +weiren.com +weisanyun.com +weisay.com +weishan.cc +weishang99.net +weishangagent.com +weishangshijie.com +weishangtui.vip +weishangye.com +weishangzhonghe.com +weishi.com +weishi100.com +weishu.me +weisiliang.com +weismarts.com +weistang.com +weisurvey.com +weisuyun.com +weitehui.com +weitiaozhuan.com +weitiewang.com +weitip.com +weitoupiao.com +weitousuo.com +weituibao.com +weitunit.com +weituobang.net +weitushe.com +weiwangpu.com +weiwangvip.com +weiwanjia.com +weiweixiao.net +weiweixiong.com +weiweiyi.com +weiwenjia.com +weiwuhui.com +weixiang.net +weixiangshe.com +weixianmanbu.com +weixianzhuan.com +weixiaoduo.com +weixiaohan.com +weixiaoi.com +weixiaoqu.com +weixiaotong.com +weixiaotuoke.tech +weixiaov.club +weixin.com +weixin008.com +weixin111.com +weixin12.com +weixin12315.com +weixinbang.com +weixinbridge.com +weixincall.com +weixinduihuan.com +weixing.com +weixingate.com +weixingmap.com +weixingon.com +weixingongzuoshi.com +weixingv.com +weixinhost.com +weixinhow.com +weixinjia.net +weixinjiajia.com +weixinju.com +weixinkd.com +weixinmuban.com +weixinmvp.com +weixinpy.com +weixinqing.com +weixinqn.com +weixinquanzi.com +weixinrensheng.com +weixinsxy.com +weixinyunduan.com +weixistyle.com +weixiu2.com +weixiuchu.com +weixiuka.com +weixue100.com +weixueyuan.net +weixun.com +weixuncj.com +weixunyunduan.net +weixz.com +weixz8.com +weiyan.me +weiyangx.com +weiyapaper.com +weiye.me +weiyes.com +weiyi.com +weiyi.link +weiyianws.com +weiyichina.org +weiyiqibj.com +weiyitec.com +weiyituku.com +weiyoubot.com +weiyours.com +weiyun.com +weiyun001.com +weiyunchong.com +weiyuntop.com +weiyunyong.com +weizhanabc.com +weizhangjilu.com +weizhangwang.com +weizhanle.com +weizhike.club +weizhilink.com +weizhipin.com +weizhuangfu.com +weizhuanji.com +weizoom.com +wejianzhan.com +wejoydata.com +wekbo.com +wekuo.com +welansh.com +welaw.com +welcrm.com +welefen.com +weleve.com +weliads.com +welian.com +welidaimkt.com +welife001.com +welife100.com +welinkpark.com +well8.com +wellaide.com +wellhope.net +wellphp.com +wellpie.com +wellsoon.com +welltrend-edu.com +welove520.com +welovead.com +welqua.com +wemdsm.com +wemediacn.com +wemomo.com +wemorefun.com +wemvp.com +wen38.com +wenancehua.com +wenancn.com +wenangou.com +wenanzhe.com +wenbita.net +wenbo.cc +wenbofund.com +wencaischool.com +wenchain.com +wenda100.net +wenda123.com +wenda8.com +wendaifu.com +wendal.net +wendangdaquan.com +wendangku.net +wendangmao.net +wendangwang.com +wendangxiazai.com +wendax.com +wendaxiaowu.com +wenday.com +wendian.com +wendns.com +wendoc.com +wendu.com +wenduedu.com +wendumao.com +wenfangjushe.com +wenfangnet.com +wenfatang.net +wengbi.com +wengegroup.com +wengkui.com +wenguang.com +wenguangta.com +wenguo.com +wengzai.com +wenhaofan.com +wenhua.cc +wenhuabolan.com +wenhui.space +wenidc.com +wenjian.net +wenjianbaike.com +wenjiangs.com +wenjingnetwork.com +wenjiwu.com +wenjuan.cc +wenjuan.com +wenjuan.link +wenjuan.ltd +wenjuan.net +wenjuan.pub +wenjuanba.com +wenjuanshow.com +wenjunjiang.win +wenjuntech.com +wenjx.com +wenku.net +wenku365.com +wenku7.com +wenku8.com +wenku8.net +wenkudao.com +wenkudaquan.com +wenkumao.com +wenkuwenku.com +wenkuxiazai.net +wenlc.com +wenlvnews.com +wenmeng.com +wenmi.com +wenmingban.com +wenneart.com +wenpie.com +wenrouge.com +wenruya.com +wenryxu.com +wensang.com +wenshaktv.com +wenshao-art.com +wenshen.net +wenshen010.com +wenshen8.net +wenshendaka.com +wenshenku.com +wensheno.com +wenshijiawei.com +wenshuba.com +wenshubang.com +wensuocaster.com +wenten.net +wentu.io +wenwen.com +wenwentang.com +wenwo.com +wenwu8.com +wenxi777.com +wenxiang.org +wenxiaoyou.com +wenxin-ge.com +wenxiu.com +wenxue100.com +wenxueapp.com +wenxuedu.com +wenxuem.com +wenxuemi6.com +wenxuemm.com +wenxuetiandi.com +wenyijcc.com +wenyoutai.com +wenyu6.com +wenyw.com +wenzaizhibo.com +wenzhaihui.com +wenzhangba.com +wenzhanghui.com +wenzhen8.com +wenzhengwenhua.com +wenzhousx.com +wenzon.com +wepiao.com +wepie.com +weplaybubble.com +weplaymore.com +weplus.com +weplus.me +werewolf.online +wesane.com +wesdom.me +weshaketv.com +weshequ.com +weshineapp.com +wesiedu.com +west.xyz +west263.com +west95582.com +west999.com +westbund.art +westbund.com +westcits.com +weste.net +westengine.com +westfutu.com +westleadfund.com +westonecloud.com +westpac.group +westsecu.com +westsummitcap.com +wesure100.com +wetaoke.com +wetest.net +wetherm.com +weti.me +weton.net +wetruetech.com +wetsd.com +wetv.vip +wetvinfo.com +weui.io +wewean.com +wewinpe.com +wework-studio.com +weworkcloudesk.com +wex5.com +wexiaocheng.com +wexin.com +wey.com +weyee.com +weyhd.com +weyic.com +weyman.me +weyo.me +wezeit.com +wezhan.hk +wezhan.net +wezhan.us +wezhuiyi.com +wf.pub +wf163.com +wf66.com +wfaozhuo.com +wfbaiyou.com +wfbbs.com +wfbrood.com +wfc805.com +wfdata.club +wfeil.com +wfek.com +wff168.com +wffc120.com +wffms.com +wfhero.online +wfiltericf.com +wfilterngf.com +wfjimg.com +wfjtjy.com +wflgjx.com +wfsysc.com +wfuyu.com +wfxyny.com +wfzbjx.com +wfzqhb.com +wfzssz.com +wfzzz.com +wgcss.com +wghostk.com +wghpdi.com +wgimg.com +wglm.net +wgmf.com +wgnds.com +wgos.com +wgpsec.org +wgsptc.com +wguancha.com +wgxcn.com +wgxdxx.com +wgxy.com +wgxy.net +wh-baidu.com +wh-charity.com +wh-china.com +wh-haipu.com +wh-motorshow.com +wh-mx.com +wh10000.com +wh100idc.com +wh111.com +wh119.com +wh12345szzx.com +wh20zx.com +wh2work.com +wh50.com +wh6z.com +wh702g.ren +whadexpo.com +whairport.com +whalecloud.com +whaledu.com +whalenas.com +whaleunique.com +whalipaycs.com +what21.com +whatbuytoday.com +whatsns.com +whatua.com +whbaishitong.com +whbbs.com +whbc2000.com +whbcrs.com +whbear.com +whbester.com +whbjcs.com +whbjdn.com +whbjyy.com +whbsybj.com +whbts.com +whbuilding.com +whbwj.com +whbws.com +whcat.net +whcbank.com +whcbs.com +whccb.com +whcch802.com +whcdc.org +whcfs.org +whcgtx.com +whchenyi.com +whckxx.com +whcotton.com +whcqedu.com +whcrewin.com +whcst.com +whctv.com +whcx365.com +whcyit.com +whdayy.com +whdckj.com +whddgc.com +whdhz.net +whdlpu.com +whdonde.com +whdqhj.com +whdrawing.com +whdsyy.com +whduanwu.com +whecb.com +whecloud.com +whecn.com +whegj.com +whenchat.net +whenever-online.com +wherxian.com +whetc.com +whevt.com +whewash.com +whfazun.com +whfeiyou.com +whfengli.com +whflfa.com +whfyhouse.com +whg6.com +whgaodu.com +whgaopeng.com +whggjk.com +whggjtjs.com +whggvc.net +whgh.org +whghjt.com +whgjjtjx.com +whgjzt.com +whgk.com +whgmbwg.com +whgmxy.com +whgszx.com +whgtgh.com +whguo.com +whgwbn.net +whhbxh.org +whhdcz.com +whhdky.com +whhdmt.com +whhdsdq.com +whhengchang.com +whhexin.com +whhk520.com +whhkbyg.com +whhouse.com +whhpaccp.com +whhsg.com +whhslndx.com +whhuatian.com +whhuiyu.com +whhxts.com +whhysound.com +whhzhn.com +whhzyj.com +whib.com +whicec.com +whichmba.net +whidc.com +whidy.net +whiee.com +whinfo.net +whir.net +whisperto.net +whitebox.im +whitecat.com +whitegem.net +whitemedia-china.com +whitjy.com +whjbh.com +whjclgs.com +whjcly.com +whjhcz.com +whjiaoy.com +whjjhbj.com +whjm.com +whjtxx.com +whjuren.com +whjy.net +whjyx.com +whjzc.com +whjzw.net +whjzy.net +whjzyxh.org +whkakaxi.com +whkc.com +whkingdom.com +whkjz.com +whkpcnc.com +whkyjz.com +whkykj.com +whland.com +whlawyer.net +whlido.com +whljyl.com +whlkwy.com +whlovehome.com +whlrhd.com +whly56.com +whlynk.com +whmama.com +whmeigao.com +whmj.org +whmlcy.net +whmnls.com +whmnrc.com +whmnx.com +whmoocs.com +whmoto.com +whmxrj.com +whmylike.cc +whmylikekq.com +whnfc.com +zxsauto.com +whocool.com +whoil.net +whoolala.com +whooyan.com +whosedrop.com +whozen.com +whpantosoft.com +whpanva.com +whplmd.com +whptc.org +whpx.net +whqcbj.com +whqhyg.com +whqtdjy.com +whqunyu.com +whqywl.com +whrango.com +whrazf.com +whrcbank.com +whrcw.cc +whrenai.com +whres.net +whrhkj.com +whrl.net +whrsip.com +whrtmpay.com +whsdsyy.com +whsir.com +whsladz.com +whsladz.net +whsql.org +whsqsoft.com +whsrc.com +whssxpx.com +whsw.net +whsy.org +whsyy.net +whtbq.com +whtcm.com +whtdcb.com +whtdsc.com +whtfzy.com +whtmhh.com +whtongyun.com +whtpi.com +whtqedu.net +whtran.com +whtryine.com +whtto.com +whttsy.com +whtuff.com +whtxcloud.com +whtzb.org +whu-cveo.com +whu.pt +whualong.com +whudfr.com +whuh.com +whuhzzs.com +whuspark.com +whuss.com +whut-px.com +whutech.com +whwanshun.com +whwat.com +whwater.com +whwebsite.com +whweo.com +whwkzc.com +whwm.net +whwm.org +whwomensmarathon.com +whwuyan.com +whwx2018.com +whwxxy.com +whxh.com +whxinhuo.com +whxsdn.com +whxunw.com +whxy.net +whxyqb.com +whxysz.net +whybh2015.com +whycan.com +whyec.com +whyenjoy.com +whyestar.com +whyfcm.com +whyicheng.com +whyimingkeji.com +whyinzhimei.com +whyiqitong.com +whyldd.net +whyongwei.com +whyqi.com +whys558.com +whysdomain.com +whyshop.com +whysodiao.com +whysx.com +whyungu.com +whyyy.com +whzb.com +whzbtb.com +whzc2008.com +whzdyy.com +whzh-cw.com +whzhqsg.com +whzhtd.com +whzhzxmr.com +whzjyy.com +whzkb.com +whzph.com +whzsrc.com +whzwzk.com +whzwzs.com +whzxht.com +whzxzls.com +whzyblh.com +whzydz.com +whzyht.com +wicep.com +wicp.net +wicp.vip +wicresoft.com +widuu.com +wifenxiao.com +wifi.com +wifi0917.com +wifi188.com +wifi33.com +wifi8.com +wifibanlv.com +wifichain.com +wifidog.pro +wifidown.com +wifigx.com +wifilu.com +wifimsl.com +wifire.net +wifishenqi.com +wifiwx.com +wifizj.com +wiitrans.com +wiiyi.com +wiki8.com +wikielife.com +wikiimgs.com +wikimirror.org +wikiyuedu.com +wikore.net +wilddog.com +wilddream.net +wildgun.net +wildto.com +willapps.com +willcdn.com +willmao.com +willsemi.com +willsfitness.net +willsgym.com +willwin91.com +wiloon.com +wiloop.net +wimetro.com +wimiar.com +win-haoxiang-win.com +win-ke.com +win-man.com +win007.com +win1032.com +win1064.com +win10cjb.com +win10gw.com +win10net.com +win10set.com +win10world.com +win10ww.com +win10xitong.com +win10zyb.com +win2007.com +win3000.com +win4000.com +win71234.com +win789.com +win7china.com +win7en.com +win7qijian.com +win7sky.com +win7w.com +win8.net +win866.com +win8china.com +win8e.com +win8xiazai.com +win9008.com +winasdaq.com +winbaicai.com +winbaoxian.com +winbjb.com +winbond-ic.com +winbons.com +winbosmart.com +wincheers.com +wincheers.net +wincn.com +wincome.group +wind.moe +wind2021.com +windcoder.com +windin.com +windmsn.com +windows10.pro +windows10zj.com +windows11.pro +windows7en.com +windowszj.com +windowszj.net +windrunner.me +winds.red +windsns.com +windspeedbike.com +windtch.com +windtourgame.com +windworkshop.net +wine-world.com +wine9.com +winegame.net +wineln.com +winemagz.com +winenice.com +wines-info.com +winesinfo.com +winesou.com +wineworld.vip +winex-hk.com +winfang.com +winfanqie.com +winfreeinfo.com +wingconn.com +winglungbank.com +wingsbook.com +wingtecher.com +winhong.com +winicssec.com +winkingworks.com +winksi.com +winndoo.com +winner9.com +winnermicro.com +winnet.cc +winning11cn.com +winotes.net +winotmk.com +winrobot360.com +winsalesaas.com +winsenseos.com +winshang.com +winshangdata.com +winsing.net +wintalent.com +winteam500.com +winterchen.com +wintimechina.com +wintooo.com +wintopedu.com +winvvv.com +winwebmail.com +winwin7.com +winxp8.com +winxuan.com +winxuancdn.com +winxw.com +wio2o.com +wireless-driver.com +wirelesschina-summit.com +wisburg.com +wisder.net +wisdoing.com +wisdom-braun.com +wisdomcmmi.com +wisdontech.com +wisdri.com +wise-iot.com +wiseah.com +wisecotech.com +wisedoo.com +wisedsp.net +wisedu.com +wisegotech.com +wiseimp.com +wiselong.cc +wiselong.com +wisenjoy.com +wiseuc.com +wisevector.com +wishbuild.com +wishcad.com +wishcalls.com +wishdown.com +wishisp.com +wisiyilink.com +wismom.com +wison-engineering.com +wison.com +wisrc.com +wistone.com +wiswonder.com +wit-parking.com +wit0.com +wit5.com +witcp.com +with366.com +withcdn.com +withmedia.net +withpinbox.com +withsccdn.com +withubit.org +withzz.com +witmart.net +witnew.net +witontek.com +witschools.com +witspring.com +wiwide.com +wiz03.com +wizarcan.com +wj-hospital.com +wj001.com +wj166.com +wjajw.com +wjasset.com +wjceo.com +wjdaily.com +wjdhcms.com +wjdiy.com +wjdiy.net +wjgslb.com +wjhh666.com +wjhtxx.com +wjiaxing.com +wjika.com +wjin.cc +wjinmiao.com +wjjfjt.com +wjlkj.com +wjlxmedia.com +wjmktv.com +wjrcb.com +wjshw.com +wjsw.com +wjtzyg.com +wjunjie.com +wjwy.com +wjx.com +wjxcdn.com +wjyanghu.com +wjyh.com +wjyt-china.org +wjyw.com +wjzpgz.com +wk007.com +wk2.com +wk78.com +wkai.cc +wkandian.com +wkanx.com +wkbins.com +wkbrowser.com +wkcmall.com +wkderp.com +wkdty.com +wkepu.com +wkhub.com +wkimg.com +wklken.me +wklm2018.com +wkmic.com +wkread.com +wksc.com +wkshipark.com +wkyaoye.com +wkzf.com +wkzk.com +wkzuche.com +zxs-coffee.com +wl369.com +wlanadmin.com +wlanbanlv.com +wlcbnews.com +wlcbw.com +wlcxx.com +wld5.com +wldsb.com +wleye.com +wlinfor.com +wljy8.com +wljyyjy.com +wlkgo.com +wlkst.com +wlmq.com +wlmqwb.com +wlmxin.com +wlnh.net +wlphp.com +wlqtpolytheatre.com +wlrjy.com +wls911.com +wlsgjslgy.com +wlski.com +wlsrenzaocaoping.com +wlstock.com +wlsvt.com +wltieyaoban.com +wluotx.com +wlwujie.com +wlwx.com +wlxit.com +wlxmall.com +wlxww.com +wlyfw.com +wlyjbl.com +wlzni.com +wlzp.vip +wm-imotor.com +wm-motor.com +wm090.com +wm18.com +wmc-bj.net +wmcloud.com +wmcn.com +wmiao.com +wming.com +wmiyx.com +wmjk.net +wmjrc.com +wmjygg.net +wmjyqd.net +wmjyszba.com +wmlunwen.com +wmnetwork.cc +zxrtb.com +wmp169.com +wmphp.com +wmpic.me +wmpvp.com +wmpyol.com +wms100.com +wmsjsteam.com +wmsjyun.com +wmsub.com +wmton.com +wmupd.com +wmvideo.com +wmxpro.com +wmxxgy.com +wmxxgz.com +wmxxwh.com +wmxxxj.com +wmy-ad.com +wmzhe.com +wn1998.com +wn51.com +wn789.com +wnark.com +wnbsq.com +wndhw.com +wndlkj.com +wndroid.com +wnform.com +wnhuifu.com +wniecm.com +wnkj88.com +wnlbs.com +wnlpromain.com +wnlproyunying.com +wnlprozhanxing.com +wnlprozijia.com +wnplayer.net +wnrb.net +wnshouhu.com +wnsqzonebk.com +wnssedu.com +wntool.com +wnwb.com +wnxfs.com +wnzc.com +wnzhbb.com +wnzhuishu.com +wnzy.net +wo-smart.com +wo-xa.com +wo.cc +wo113.net +wo116114.com +wo186.tv +wo188.win +wo1990.com +wo1wan.com +wo685.com +woa.com +woaap.com +woaide.com +woaidu.org +woaifanyi.com +woaihaoyouxi.com +woaihuahua.com +woaipu.com +woair.com +woaishouban.com +woaixiao.com +woaizr.com +woaizuji.com +woaoo.net +wobenben.com +wobocn.com +wobu2.com +woc88.com +wocaoseo.net +wochacha.com +wochaw.com +wodai.com +wodavip.com +wodcloud.com +wode.im +wodeabc.com +wodecrowd.com +wodedagong.com +wodemeitu.com +wodeoffice.com +wodeshebao.com +wodiancan.net +wodidashi.com +wodingche.com +wodjob.com +wodocx.com +wodown.com +wofang.com +wofangwang.com +wofficebox.com +wofjhs.com +wogame.net +wogoo.com +wohenizaiyiqi.com +wohuamanhua.com +woi3d.com +woiyu.com +wojiacloud.com +wojiaoni.com +wojilu.com +wok.com +wokaola.com +wokeji.com +woko.cc +wol.tv +wolai.com +wolaidai.com +wolegou.net +wolezhibo.com +wolf.cc +wolfcstech.com +wolfgo.com +wolfogre.com +wolianw.com +wolife.com +wolighting.com +woliuda.com +wolonge.com +wolongge.com +wolongyin.com +wolongyoule.com +wolongzywcdn.com +wolongzywcdn2.com +wolongzywcdn3.com +wolwo.ltd +wolwobiotech.com +womai.com +womaiapp.com +woman91.com +womei.org +womeime.com +womeimenye.com +women-heart.com +womenjie.com +wonder.wiki +wondercv.com +wonderful-app.com +wonderful-pr.com +wonderfulsz.com +wonderjk.com +wonderkun.cc +wondermars.com +wonderscloud.com +wondersgroup.com +wondershare.cc +wondershare.com +wondershare.net +wondersmemory.com +wonderstar027.com +wonderyouxi.com +wonei.com +wonengxing588.com +wongcw.com +wongpeace.com +woniu.com +woniu8.com +woniubaoxian.com +woniucloud.com +woniugm.com +woniutrip.com +woniuwl.com +wonmay.com +wonmay.net +wonnder.com +wonote.com +wonpearl.com +wonplug.net +wonse.info +woo.im +wooaii.com +woocg.com +wood168.net +woodbunny.com +wooddb.com +woodnn.com +wooffice.net +woola.net +wooolab.com +wooqx.com +woordee.com +wooshoes.com +woosmart.com +wooxhome.com +wooyun.org +woozooo.com +wopaiyi.com +wopaw.com +wopus.org +woqidege.com +woqifoundation.com +woqu.com +woquyun.com +worccqww.cyou +word666.com +wordlm.com +wordpress.la +wordscan.net +work28.com +workchat.com +workec.com +workehr.com +workerman.net +workpcb.com +worksoho.com +worktile.com +worktilemail.com +workyun.com +world-pass.net +world68.com +worldcps.com +worldgoodvoices.com +worldh5.com +worldhello.net +worldinout.com +worldmall365.com +worldmr.net +worldmsports.com +worldpathclinic.com +worldpowerliftingchina.com +worlduc.com +worldwarner.com +worldwayhk.com +worldwu.com +worthtech.net +wosai-inc.com +wosaimg.com +woshao.com +woshipm.com +woshipt.com +woshiqian.com +wosign.com +wosigndoc.com +woskj2.com +woso100.com +wosouyun.com +wotrus.com +wotucdn.com +wotula.com +wouju.com +wowant.com +wowar.com +wowcat.net +wowchina.com +wowenda.com +wowo6.com +wowoit.com +wowoohr.com +wowops.com +wowoqq.com +wowoshijie.com +wowotech.net +wowotuan.com +wowoyoo.com +wowoyou.com +wowoyou.net +wowqu.cc +wowsai.com +wowys.com +woxian.com +woxiaoyun.com +woxihuan.com +woxiu.com +woxuexue.com +woxuyuan.com +woyao998.com +woyaobaoliang.com +woyaodayin.com +woyaogexing.com +woyaoqiudai.com +woyaosouti.com +woyaozhan.com +woying.com +woyoo.com +woyouche.com +woyouquan.net +wozaijia.com +wozaixiaoyuan.com +wozhangwan.com +wozhua.mobi +wozhuan.com +wozhuye.com +wp-china-yes.net +wp-h.com +wp10.cc +wpan123.com +wpceo.com +wpcio.com +wpcnzz.com +wpdaxue.com +wpdian.com +wpengapp.com +wpgdadatong.com +wpgdadawant.com +wphonelife.com +wphun.com +wping.org +wpjam.com +wpk8.com +wplizhi.com +wpmtp.com +wporder.com +wproedu.com +wps-office.net +wps.com +wpscdn.com +wpsdns.com +wpsep.com +wpsgo.com +wpsmail.net +wpsoffice.com +wptao.com +wpweixin.com +wpxap.com +wpyou.com +wpzhiku.com +wq96f9.com +wqbook.com +wqc.so +wqchat.com +wqcms.com +wqdian.com +wqdian.net +wqgp.com +wqhunqing.com +wqiis.com +wqingjian.com +wqketang.com +wqlin.com +wqop2018.com +wqqwmw.com +wqxuetang.com +wqycq.com +wqyunpan.com +wqzx.net +wrating.com +wrcdn.com +wrfou.com +write-bug.com +writebp.com +wrjzj.com +wrkdih.com +wrl163.com +wrlsw.com +wrltxt.com +wrmjk.com +wrsa.net +wrtnode.cc +wrtnode.com +wrtsz.com +zxpmq.com +wsaf.net +wsbuluo.com +wsc-expo.com +wscdns.com +wscdns.info +wscdns.org +wscloudcdn.com +wscloudcdn.org +wscloudsec.com +zxopen.com +zxnrh.com +wscrm.net +wscso.com +wscstrace.com +wscvdns.com +wscxy.com +wsdcasa.com +wsdccq.com +wsdianzi.com +wsdvs.com +wsdvs.info +wsdvs.org +wsecar.com +wseen.com +wselearning.com +wselearning.net +wsfdl.com +wsfdn.com +wsfff.com +wsfnk.com +wsgjp.com +wsglb0.com +wsglb0.info +wsglb0.org +wsglw.com +wsgph.com +wsgxsp.com +wshang.com +wshengda2009.com +wshenm.com +wshost.cc +wshoto.com +wshtgame.com +wshttpdns.com +wsisp.com +wsisp.net +wsiv.net +wsjx.net +wskam.com +wslcode.com +wsljf.xyz +wslmf.com +wsloan.com +wsltt.com +wsonh.com +wsoso.com +wsound.cc +wsoversea.info +wsq.cool +wsqejt.com +wss.ink +wsssec.com +wstong.com +wstx.com +wsurl.cc +wswebcdn.com +wswebcdn.info +wswebcdn.org +wswebpic.com +wswebpic.info +wswebpic.org +wsxa.com +wsxc.me +wsxcme.com +wsy7.com +wsyhn.com +wsyyxz.com +wszjj.com +wszwh.org +wt-px.com +wt168.com +wt8.com +wtaluo.com +wtango.com +wtapi.com +wtbds.com +wtcxs.com +wtd56.com +wtdex.com +wtdms.com +wtgsdl.com +wting.info +wtn5.com +wtoip.com +wtojob.com +wtoutiao.com +wtown.com +wts999.com +wtsimg.com +wtszx.com +wttms.com +wtwvision.com +wtxcdn.com +wtzw.com +wu-mart.com +wu-mi.com +wu35.com +wu37.com +wu7zhi.com +wuage.com +wuaiso.com +wubaiyi.com +wubaiyi.net +wubiba.com +wubisheng.net +wubizi.net +wubizigen.net +wubolive.com +wubx.net +wucaiabc.com +wuchenxu.com +wucuozi.com +wuczfj.com +wudage.com +wudangquan.net +wudangshan.com +wudao.com +wudaotech.com +wudaotv.com +wudayy.com +wueasy.com +wufafuwu.com +wufangbo.com +wufangzhai.com +wufazhuce.com +wufuba.com +wufun.net +wufuquanlawyer.com +wugongdong.com +wuguiyunwei.com +wuguyufen.com +wugx.net +wuhan-guide.com +wuhan-tour.net +wuhan-travel.com +wuhan.com +wuhan163.com +wuhananyu.com +wuhanbaituo.com +wuhanbiennial.com +wuhanbus.com +wuhancityofdesign.com +wuhaneca.org +wuhanev.com +wuhanfuke120.com +wuhanfukeyy.com +wuhanhengyi.com +wuhanins.com +wuhanjiaojing.com +wuhanjingce.com +wuhankb.com +wuhanly.com +wuhanmarathon.org +wuhanmeigao.com +wuhanmetro.com +wuhanopen.org +wuhanparking.com +wuhanpe.com +wuhanpep.com +wuhanport.com +wuhanrt.com +wuhantianqi114.com +wuhantskj.com +wuhanunion.com +wuhanxingfuwan.com +wuhanzdq.com +wuhaoha.xyz +wuhongsheng.com +wuhouhaodian.com +wuhu.cc +wuhuashe.com +wuhubtv.com +wuhusanlian.com +wui5.com +wuji.com +wujiangtong.com +wujiayi.vip +wujiecaifu.com +wujiehd.com +wujiehuyu.com +wujiexiang.com +wujiit.com +wujijiasu.com +wujinimg.com +wujinkk.com +wujinpp.com +wujiok.com +wujixiaoshuo.com +wukong.com +wukong.la +wukongapi.com +wukongkf.com +wukonglicai.com +wukongphp.com +wukongrom.com +wukongsearch.com +wukongshuo.com +wukongtj.com +wukongtv.com +wukongwenda.com +wukur.com +wukypay.com +wul.ai +wulannews.com +wuletv.com +wuli.wiki +wuliannanjing.com +wuliaoo.com +wuliaosi.com +wuliapi.com +wulicdn.com +wuligeigei.com +wuling.com +wuliujia2018.com +wuliujie.com +wulong365.com +wulvxing.com +wumart.com +wumeishebei.com +wumii.com +wumii.tv +wuming.com +wuqing.cc +wuqiong.info +wuqishike.com +wurenjifanzhi.com +wuruihong.com +wuscn.com +wuse.com +wusen.net +wuseng.com +wuseng.net +wuseyun.com +wushang.com +wushangplaza.com +wushen.com +wushifublog.com +wushuangol.com +wushuangtech.com +wushuhenan.com +wushuzw.com +wusuhan.com +wusunjiance.net +wusuobuneng.com +wuta-cam.com +wutaishanfojiao.com +wutanyuhuatan.com +wutep.com +wutianqi.com +wutongbao123.xyz +wutongguo.com +wutongtec.com +wutongxiang.cc +wutos.com +wutuojia.com +wuuxiang.com +wuweijob.com +wuweiyou.com +wuwenjun.net +wuxi.com +wuxiairport.com +wuxiamh.com +wuxianhaibao.com +wuxianlin.com +wuxiantu.com +wuxiaodi.com +wuxiatools.com +wuxibus.com +wuxijy.com +wuximarathon.com +wuximediaglobal.com +wuxin.info +wuxinban.com +wuxiwang.net +wuxiworld.com +wuxuwang.com +wuyang-honda.com +wuyangplatform.com +wuyazi.com +wuyecao.net +wuyehr.com +wuyenews.com +wuyetongxin.com +wuyida.com +wuyishan.net +wuyou.com +wuyou.net +wuyoufang.com +wuyousy.com +wuyouyun.com +wuys.com +wuyuan.cc +wuyublog.com +wuyueit.com +wuyukang.com +wuyumin.com +wuyuncdn.com +wuzhaiba.com +wuzhenfestival.com +wuzhenpay.com +wuzhenwic.org +wuzhenwucun.com +wuzhicms.com +wuzhiwei.net +wuzhouqianzheng.com +wuzhuiso.com +wvidc.com +wvshare.com +ww2bbs.net +wwc-blog.com +wwe008.com +wwenglish.com +wwenglish.org +wwfchina.org +wwjia.com +wwkbiva.com +wwmhdq.com +wws23.com +wwsgh.com +wwstat.com +www-123490.com +www-175345.com +www-4620.com +www-63608.com +www-hangzhou-aliyun.com +zxnic.net +zxmseed.com +zxmn2018.com +zxmall.com +www.cc +www.cg +zxlib.com +zxjsq.net +zxjg66.com +zxip.com +zxinzxw.com +zxinc.org +zxicrm.com +zxiaoxiang.com +zxhsd.com +zxhong.com +zxhgroup.com +zxgzw.com +zxgzs.com +zxgongshui.com +zxgj56.com +zxerp.com +zxdyw.com +zxdu.net +zxdoo.com +zxdb999.com +zxd.com +www21420.com +www2kkbb.com +zxcoder.com +zxcmk.com +www48-365365.com +zxbzr.com +zxblinux.com +wwwatch.in +wwwbuild.net +wwwer.net +wwwic.net +zx990.com +zx98.com +wwwwww.vip +wx-data.com +wx-youyan.net +wx.com +wx135.com +wx2share.com +wx42.com +wx8s.com +wx939.com +wxagame.com +wxang.com +wxaokai.com +wxapp-union.com +wxappclub.com +wxappvideo.com +wxatech.com +wxavu.com +wxb.com +wxblockchain.com +wxbm04.com +wxbrandway.com +wxbsgc.com +wxcloudrun.com +wxcsgd.com +wxdgjx.com +wxdw.info +wxeditor.com +wxfenxiao.com +wxfls.net +wxfncjd.com +wxfsgj.com +wxgamemini.com +wxgrcpa.com +wxguan.com +wxgz.net +wxhand.com +jskwt.com +wxhouse.com +wxhu.net +wxhudong.com +wxiao.net +wxiat.com +wxjmar.com +wxjx123.com +wxkj666.com +wxkjwlw.com +wxkol.com +wxlagame.com +wxlongre.com +wxmama.com +wxmetro.net +wxmolegames.com +wxmovie.com +wxnacy.com +wxngh.com +wxp114.com +wxp2022.vip +wxphp.com +wxpushuo.com +wxrb.com +wxrrd.com +wxsbank.com +wxscreen.com +wxsell.com +wxshake.com +wxsky.net +wxsteed.com +wxsy.net +wxsywh.com +wxt2020.com +wxthe.com +wxtj10086.com +wxtpb.com +wxtrust.com +wxw120.com +wxwzt.com +wxy1314.com +wxyxrc.com +wxzq.com +wxzzz.com +wy000.com +wy100.com +wy119.com +wy182000.com +wy213.com +wyaoqing.com +wybbao.com +wybgs.com +wycfw.com +wycntv.com +wydbw.com +wydljx.com +wydns.com +wyduihua.com +wyh138.com +wyhos.fun +wyins.net +wyjianzhan.com +wykefu.com +wyktwx.com +wykw.com +wykz.com +wylws.com +wyn88.com +wyptk.com +wypxj.com +wyq9.com +wysaid.org +wysap.com +wysfgc.com +wysls.com +wysm88.com +wysww.vip +wytfsp.com +wytx.net +wytype.com +wyuetec.com +wywy6.com +wywyx.com +wyx365.com +wyxokokok.com +wyydsb.xin +wyzc.com +wyzdg.com +wyzhifu.com +wyzxsd.com +wyzxwk.com +wyzyz.org +wz-emauto.com +wz01.com +wz120.cc +wz132.com +wz16.net +wz5.com +wzciming.com +wzdai.com +wzdjy.com +wzdlqj.com +wzdsb.net +wzdy.xyz +wzexe.com +wzfg.com +wzfou.com +wzfw.ltd +wzhealth.com +wzhekou.com +wzhouhui.com +wzhouhui.net +wzhuiheng.com +wzhust.com +wzhx365.com +wzhxlx.com +wzijia.com +wzime.com +wzits.com +wzj9.com +wzjxyq.com +wzksw.com +wzlysz.com +wzms.com +wzplc.com +wzpo.net +wzpod.com +wzrdwl2.com +wzright.com +wzsee.com +wzsky.net +wztf121.com +wzwmw.com +wzwqs.com +wzyestar.com +wzyun.net +wzz180809.net +wzz1809.com +wzznft.com +wzzp.com +wzzww.com +x-bows.com +x-cloud.cc +x-jishu.com +x-mol.com +x-plans.com +x-ui.com +x0769.com +x11263.com +x11296.com +x118.net +x12plus.com +x1340.com +x1997.net +x23118.com +x23119.com +x23qb.com +x23us.me +x23us.us +x23wxw.com +x315.com +x3322.net +x3366.com +x33699.com +x3china.com +x3cn.com +x431.com +x5dj.com +x64go.com +x64pro.com +x66597.com +x6d.com +x6kj.com +x6x8.com +x72y.com +x7sy.com +x81zw.co +x81zw.com +x821.com +x86android.com +x8ds.com +x8sb.com +xa-bank.com +xa-online.com +xa.com +xa189.net +xa30zx.com +xa71.cc +xa9t.com +xabbp.com +xacbank.com +xacbwl.com +xachangda.com +xacitywall.com +xacnnic.com +xactad.net +xadamai.com +xadiannao.com +xadlwx.com +xaecong.com +xafc.com +xaffp.com +xafpz.com +xafzjy.com +xagxp.com +xagxz.com +xahb.com +xahc971.com +xahhp.com +xahuapu.net +xahxp.com +xaidc.com +xaigame.com +xainjo.com +xaixs.org +xajfwy.com +xajjk.com +xajjwy.com +xajob.com +xajr.com +xajxcw.com +xalanq.com +xalawyer.net +xalhar.net +xalhlf.com +xamama.net +xamjx.com +xampp.cc +xanahotelle.com +xanbhx.com +xank120.com +xany6.com +xaoji.com +xaonline.com +xaoyao.com +xapcn.com +xaqhgas.com +xaredian.com +xaseastar.com +xasff.com +xasgxy.com +xashangwang.com +xashzhjz.com +xasimonds.com +xasrc.com +xaszjf.com +xatao029.com +xatcrj.com +xatielu.com +xatvs.com +xatyds.com +xatzj.com +xauat-hqc.com +xaudiopro.com +xawb.com +xawbb.com +xawdz.com +xawhz.com +xaxinghuo.com +xaxydr.com +xayestar.com +xayrc.com +xazcit.com +xazwy.com +xazzg.com +xazzp.com +xazzs.com +xb.app +xb21cn.com +xb2s.com +xbaofun.com +xbase.cloud +xbatu.com +xbauto.com +xbbei.net +xbbshuwu.com +xbceo.com +xbdym.com +xbequge.com +xbeta.info +xbext.com +xbfnet.com +xbfzb.com +xbhb.net +xbhy.com +xbhz.net +xbiao.com +xbidc.com +xbiquge.cc +xbiquge.com +xbiquge.la +xbiquge.tw +xbiqugew.com +xbiqukan.com +xbiquwx.la +xbirder.com +xbjianzhan.com +xbkjvip.com +xblds.com +xbltravel.com +xblyw.com +xbmiaomu.com +xbniao.com +xbongbong.com +xboot.org +xbpro.vip +xbptc.com +xbpz9.com +xbqgyy.com +xbriyu.com +xbrl-cn.org +xbrother.com +xbspace.com +xbwbh.com +xbwebyun.com +xbxgame.com +xbxxb.com +xbxxz.com +xbzlapp.com +xc2500.com +xc940.com +xcabc.com +xcao.win +xcape.cc +xcar.com +xcarimg.com +xcb-family.com +xcbank.com +xcdesign.net +xcdn.global +xcexe.com +xcfunds.com +xcggzzb.com +xcgogo.club +xcgogo.site +xcgp.com +xcgui.com +xchjw.org +xchlxx.com +xchmai.com +xchuandai.com +xchuxing.com +xciic.com +xcj.com +xckszx.com +xcloudbase.com +xcmad.com +xcmg.com +xcmgmall.com +xcmh.cc +xcn457.com +xcnchinese.com +xcode.me +xcoder.in +xcommon.com +xcoodir.com +xcot.com +xcpapa.site +xcpapa.xyz +xcphzs.com +xcpxssx.com +xcq2022.com +xcqxcq.com +xcrxykl.com +xcsc.com +xcsfcjyw.com +xcshaifen.com +xcstuido.com +xctmr.com +xcultur.com +xcurrency.com +xcvmbyte.com +xcvxcv.space +xcx-x.com +xcxd-inc.com +xcxvs.com +xcxwo.com +xcxx28.com +xcxzl.com +xcy8.com +xcyg.net +xcyo.com +xczyx.com +xczzs.com +xd-game.com +xd-tech.com +xd-world.com +xd.com +xd0.com +xd0731.com +xd57.com +xdapp.com +xdbcb8.com +xdc.at +xdcdn.com +xdcdn.net +xddpay.com +xde.com +xde6.net +xdfckjz.com +xdfkt.com +xdfpr.com +xdgalaxy.com +xdhcn.com +xdiarys.com +xdj-sz.com +xdja.com +xdjc.org +xdju.com +xdjunxiao.com +xdjy369.com +xdkb.net +xdkjjy.com +xdkjpx.com +xdmb.xyz +xdmnyy.com +xdmssp.com +xdnice.com +xdnote.com +xdnphb.com +xdocin.com +xdowns.com +xdplt.com +xdpvp.com +xdrenwu.com +xdressy.com +xdrig.com +xdrtc.com +xdrun.com +xdsipo.com +xdtos.com +xduoo.com +xduph.com +xdusz.com +xdwan.com +xdwyx.com +xdxdsz.com +xdxialingying.com +xdxmwang.com +xdxx.ink +xed.plus +xedaojia.com +xedaojia.net +xeeee.net +xeenho.com +xeeok.com +xefan.com +xege.org +xegneils.com +xehedu.com +xeknow.com +xeltek-cn.com +xelz.info +xen0n.name +xender.com +xenium.mobi +xerlang.com +xesapp.com +xescdn.com +xesdns.com +xesee.com +xesimg.com +xesv5.com +xet.tech +xetimes.com +xevd.co +xevddy.com +xeylon.com +xf-fund.com +xf-world.org +xf-yun.com +xf.com +xf0797.com +xf09.net +xf119.xin +xf120.com +xf1233.com +xf1433.com +xf3z.com +xf4hs.com +xf5z.com +xfabs.com +xfannix.com +xfb315.com +xfc888.com +xfcd365.net +xfconnect.com +xfdown.com +xfeng.me +xffcol.com +xfgctg.com +xfguo.org +xfhx.com +xfinfr.com +xfisp.com +xfjw.net +xfliusheng.com +xfnano.com +xfocus.net +xfocus.org +xforceplus.com +xfpass.com +xfplay.com +xfplay.tv +xfrizn.com +xfsb119.com +xfsub.com +xft123.com +xftclub.com +xfun233.com +xfxb.net +xfyousheng.com +xfyun.com +xfzhsf.com +xfztc.com +xgamevip.com +xgantt.net +xgate.com +xgcs618.com +xgcsczyc.com +xgcsyg.com +xgd.com +xgd666.com +xgdfhw.com +xgdfz.com +xgdown.com +xgdq.com +xgfz.net +xggjj.com +xghylt.com +xgimi.com +xgimi.net +xgiu.com +xgj-info.com +xgjiu.com +xgjxjy.com +xgkwx.com +xglpa.com +xgmeidiya.com +xgo.cc +xgqq.com +xgsdk.com +xgslb.net +xgsxt.net +xgt2014.com +xgwx.net +xgxedu.com +xgz.cc +xgzdhj.com +xgzx.org +xh456.com +xhaiwai.com +xhay1122.com +xhblog.com +xhboke.com +xhby.net +xhbycm.net +xhclub.net +xhcpas.com +xhd.org +xhdollar.com +xhedu.net +xhg.com +xhgame.com +xhgongsi.com +xhgyw.com +xhhd6.com +xhhdd.cc +xhidc.com +xhj.com +xhjingling.com +xhkt.tv +xhlaowu.com +xhma.com +xhnews.net +xhostserver.com +xhpfw.com +xhpiano.com +xhqqt.com +xhscdn.com +xhscdn.net +xhsd.com +xhslink.com +xhsyww.com +zx7b.com +xhtd291.com +xhungame.com +xhup.club +xhxsw.com +xhy.com +xhyd.com +xhytd.com +xhyun.vip +xi-soft.com +xi5jie.com +xia1ge.com +xiaa.net +xiabingbao.com +xiabor.com +xiabu.com +xiacai.com +xiacaipiao.com +xiachufang.com +xiada.net +xiadaolieche.com +xiadele.com +xiadts.com +xiadu.com +xiagaoqing.com +xiagepian.com +xiakeol.com +xiald.com +xialingying.cc +xialv.com +xiamag.com +xiamai.net +xiamenair.com +xiamenbg.com +xiamentianqi114.com +xiami.com +xiami.fm +xiami.net +xiamoyun.com +xiamp4.com +xian-tourism.com +xianba.net +xianbai.me +xianbdj.com +xianbeikeji.com +xianbey.com +xianchengyou.com +xianchihuo.net +xiancn.com +xiandanjia.com +xiandaohu.net +xianfae.com +xianfeng.net +xianfengsg.com +xiang5.com +xiang578.com +xiangange.com +xianganquan.com +xianganyu.com +xiangbababus.com +xiangbala.net +xiangbinjun.com +xiangbinmeigui.com +xiangbojiubo.com +xiangcunxiaoshuo.com +xiangdang.net +xiangdao.me +xianggangcheng.com +xiangguo.com +xiangguohe.com +xiangha.com +xianghunet.com +xianghus.com +xiangkanwang.com +xiangkesi.com +xiangley.com +xianglifood.com +xianglute.com +xiangmaita.com +xiangmu.com +xiangni.com +xiangpeach.com +xiangpi.com +xiangqianpos.com +xiangqin7.com +xiangqu.com +xiangrikui.co +xiangrikui.com +xiangrikuijianzhan.com +xiangruizulin.com +xiangshang360.com +xiangshangban.com +xiangshanpark.com +xiangshe.com +xiangshengbao.com +xiangshi.cc +xiangshi123.com +xiangshu.net +xiangsidi.com +xiangsw.com +xiangtaole.com +xiangtatech.com +xiangtuan.xyz +xianguo.com +xianguomall.com +xiangw.com +xiangwangdesh.com +xiangwushuo.com +xiangxingnet.com +xiangyang.net +xiangyiai.com +xiangyujiankang.com +xiangyukj.com +xiangyun.so +xiangyunseo.com +xiangzhan.com +xiangzhiren.com +xiangzhuyuan.com +xiangzukeji.com +xianjian10.com +xianjiaosuo.com +xianjichina.com +xianjiqun.com +xianjj.com +xiankan.com +xiankankan.com +xianlaigame.com +xianlaihy.com +xianlife.com +xianmaiyangsheng.com +xianniuzu.com +xianpinyun.com +xianpp.com +xianruan.com +xianshiqiba.com +xianshu.com +xianshua.net +xianshuabao.com +xianshufang.com +xianxiadao.com +xianxiadao.net +xianxueba.com +xianyang888.com +xianyin.net +xianyuange.com +xianyugame.com +xianyugouwu.com +xianyuso.com +xianyuwang.com +xianyuyouxi.com +xianzhanget.com +xianzhi.net +xianzhongwang.com +xiao-an.com +xiao-bo.com +xiao-new.com +xiao.lu +xiao84.com +xiao89.com +xiaoa.name +xiaoantech.com +xiaobai.com +xiaobaichongw.com +xiaobaipan.com +xiaobaishiji.com +xiaobaishixi.com +xiaobaiupin.com +xiaobaivr.com +xiaobaixitong.com +xiaobangbaoxian.com +xiaobao360.com +xiaobaodt.com +xiaobaoonline.com +xiaobaostudio.com +xiaobd.net +xiaobianli8.com +xiaobingxitong.com +xiaobu121.com +xiaocanhulian.com +xiaocaoo.com +xiaocaoyun.com +xiaocen.com +xiaoche001.com +xiaochengxucms.com +xiaochuan010.com +xiaocifang.com +xiaocms.com +xiaodaka.net +xiaodanyang.com +xiaodaotv.com +xiaodaozhi.com +xiaodengta.com +xiaodengvip.com +xiaodian.com +xiaodian.in +xiaodian.so +xiaodianpu.com +xiaodianweb.com +xiaodigu.com +xiaodigufz.com +xiaoding110.com +xiaodongrui.com +xiaodongxier.com +xiaodoubi.com +xiaodoushebao.com +xiaodouzuche.com +xiaoduoai.com +xiaoduseo.com +xiaodutv.com +xiaody.com +xiaoe-tech.com +xiaoe-tools.com +xiaoeknow.com +xiaoenai.com +xiaoeryi.com +xiaofantian.com +xiaofeng.org +xiaogan.com +xiaogj.com +xiaogouh5.com +xiaogr.com +xiaoguikuaipao.com +xiaoguosq.com +xiaoguowenhua.com +xiaogushi.com +xiaoh.me +xiaohansong.com +xiaohe-jiankang.com +xiaohe666.com +xiaohei.com +xiaoheima.com +xiaohengmaidan.com +xiaohongchun.com +xiaohongshu.com +xiaohongshu.net +xiaohongshulvyou.com +xiaohouyunyin.com +xiaohuabaichu.com +xiaohuabuluo.com +xiaohuai.com +xiaohuangji.com +xiaohulu.com +xiaohuochai.cc +xiaohuochai.site +xiaohus.com +xiaohuwl.com +xiaoice.com +xiaoj.com +xiaoji.com +xiaoji001.com +xiaojian.site +xiaojianjian.net +xiaojiaoyar.com +xiaojiaoyu.com +xiaojiding.com +xiaojifeng.com +xiaojing.work +xiaojing360.com +xiaojiuwang.com +xiaojl.com +xiaojuchefu.com +xiaojudeng.com +xiaojukeji.com +xiaojun.org +xiaoka.tv +xiaokache.com +xiaokakj.com +xiaokanba.com +xiaokanglongjiang.com +xiaokao.com +xiaokaxiu.com +xiaokcdn.com +xiaokcehui.com +xiaokeai.com +xiaokeduo.com +xiaokesoso.com +xiaokuihua.net +xiaokusha.com +xiaolai.net +xiaolajiao.com +xiaolanben.com +xiaolangtt.com +xiaolantiao.com +xiaolee.net +xiaoleidm.com +xiaoliangkou.com +xiaoliebian.com +xiaolin.in +xiaolincoding.com +xiaolinsi.com +xiaolinwl.com +xiaoliqing.net +xiaolizhuli.com +xiaolu123.com +xiaoluboke.com +xiaoluyouxuan.com +xiaoluyy.com +xiaoluzhidian.com +xiaoma.com +xiaoma.net +xiaomachuxing.com +xiaomagaojian.com +xiaomai5.com +xiaomaigongkao.com +xiaomaiketang.com +xiaomantu.com +xiaomaomv.com +xiaomape.com +xiaomashijia.com +xiaomastack.com +xiaomav.com +xiaomaxitong.com +xiaomei.cc +xiaomeiti.com +xiaomeng1235.com +xiaomi.com +xiaomi.hk +xiaomi.net +xiaomi.tw +xiaomiaozai.com +xiaomiflash.com +xiaominet.com +xiaominfo.com +xiaoming.me +xiaomingming.org +xiaomingtaiji.com +xiaomiqiu.com +xiaomiquan.com +xiaomirom.com +xiaomishu.com +xiaomiyoupin.com +xiaomlove.com +xiaomor.com +xiaomoyao.com +xiaomuji.info +xiaomy.net +xiaomyc.com +xiaonaodai.com +xiaonei.com +xiaonianyu.com +xiaoniba.com +xiaoniu66.com +xiaoniu88.com +xiaoniuben.com +xiaoniudunkj.com +xiaopangyu.com +xiaopena.com +xiaopeng.com +xiaophy.com +xiaopi.com +xiaopinw.com +xiaopiu.com +xiaoqiandao.com +xiaoqiangge.com +xiaoqingtou.com +xiaoqinre.com +xiaoqiqiao.com +xiaoqugang.com +xiaoquyijia.com +xiaorizi.me +xiaorui.cc +xiaoruibao.com +xiaoshentui.com +xiaoshijie.com +xiaoshituina.vip +xiaoshouhudong.com +xiaoshoukuaifa.com +xiaoshourc.com +xiaoshouyi.com +xiaoshu168.com +xiaoshujiang.com +xiaoshuo.com +xiaoshuo1-sm.com +xiaoshuo520.com +xiaoshuo530.com +xiaoshuo570.com +xiaoshuoba.com +xiaoshuobi.cc +xiaoshuodaquan.com +xiaoshuoli.com +xiaoshuoshu.org +xiaoshuowu.com +xiaoshuozu.com +xiaoshuxiong.com +xiaositv.com +xiaoso.net +xiaoss.net +xiaot.com +xiaota.com +xiaote.com +xiaote.net +xiaotee.com +xiaoten.com +xiaotengyouxi.com +xiaotiancai.com +xiaotud.com +xiaotut.com +xiaotuzhan.com +xiaou2014.com +xiaoupan.com +xiaowang.net +xiaowangshen.com +xiaowangyun.com +xiaowazi.com +xiaoweigod.com +xiaoweirobot.com +xiaowiba.com +xiaowm.com +xiaowuwl.com +xiaoxiaapi.com +xiaoxiangbz.com +xiaoxiangxueyuan.com +xiaoxiangyoupin.com +xiaoxiansheng.com +xiaoxiao.com +xiaoxiaodangan.com +xiaoxiaoketang.com +xiaoxiaomo.com +xiaoxiaotong.org +xiaoxiaozi.com +xiaoxichangliu.com +xiaoxineye.com +xiaoxinrili.com +xiaoxintoutiao.com +xiaoxintuku.com +xiaoxiongmeishu.com +xiaoxiongxitong.com +xiaoxiongyouhao.com +xiaoxiuapp.com +xiaoxue123.com +xiaoyantong.com +xiaoyaoyou.com +xiaoyaoyou365.com +xiaoyatong.com +xiaoyayun.com +xiaoyeren.com +xiaoyezi.com +xiaoyi.com +xiaoyida.com +xiaoyida.net +xiaoying.co +xiaoying.com +xiaoying.tv +xiaoyisysreset.com +xiaoyouxi100.com +xiaoyouxiqun.com +xiaoyouzb.net +xiaoyu.com +xiaoyuankousuan.com +xiaoyuanyun2.com +xiaoyuanzhao.com +xiaoyuanzhaopin.net +xiaoyuer.com +xiaoyun.com +xiaoyusan.com +xiaoyusanchou.com +xiaoyuxitong.com +xiaoyuzhoufm.com +xiaozaixiao.com +xiaozhan.cc +xiaozhang365.com +xiaozhibaoxian.com +xiaozhibo.com +xiaozhiyun.com +xiaozhu.com +xiaozhu2.com +xiaozhua.com +xiaozhuanlan.com +xiaozhuseo.com +xiaozhustatic1.com +xiaozhustatic2.com +xiaozhustatic3.com +xiaozuan8.com +xiaozujian.com +xiaozuowen.net +xiappt.com +xiaqunfeng.cc +xiarenzhuxin.com +xiarj.com +xiataoseo.com +xiatou.com +xiaw.net +xiawan8.com +xiaxiab8.com +xiaxs.info +xiaxs.la +xiayige.org +xiayiqu.com +xiayx.com +xiazai.com +xiazai163.com +xiazaiba.com +xiazaibao2.com +xiazaicc.com +xiazaidb.com +xiazaijidi.com +xiazaima.com +xiazaisoft.com +xiazaiwx.com +xiazaiziti.com +xibaiwang.com +xibanyaqz.com +xibao100.com +xibeicanyin.com +xibeidev.com +xibojiaoyu.com +xibsteel.com +xibu168.com +xicaijing.com +xicaishe.com +xichu.net +xichuangzhu.com +xici.com +xici.net +xicp.net +xidesheng.com +xidian.cc +xidibuy.com +xidie.com +xidong.net +xidongv.com +xiduobaby.com +xiebao18.com +xieboke.net +xieche.net +xiecheng.com +xiechuangw.com +xiecuo.com +xiedaimala.com +xiefenxiang.com +xiehejx.com +xiehekjkf.com +xiehuiyi.com +xiejiahe.com +xiejianji.com +xiejiaxin.com +xieliqun.com +xier.tech +xiesk.com +xieso.net +xietonghuaxue.com +xietui.com +xiexiaoyuan.com +xiexiebang.com +xiexingcun.com +xiexingme.com +xieyangzhe.com +xieyinwang.com +xiezefan.me +xiezewen.com +xieziqiu.net +xiezixiansheng.com +xiezuo100.com +xiezuocat.com +xifan.org +xifangw.com +xifenfei.com +xifenggroup.com +xifengjiuzhaoshang.com +xifu120.com +xifumi.com +xigeweb.com +xigou100.com +xigoubao.com +xigua110.com +xiguabook.com +xiguaimg.com +xiguaji.com +xiguang.xyz +xiguangtech.com +xiguaplayer.com +xiguavideo.net +xigushan.com +xigushan.net +xihachina.com +xihaiannews.com +xihawan8.com +xihuan.me +xihusgh.com +xiimoon.com +xiji.com +xijiangtv.com +xijing01.com +xikcloud.com +xikii.com +xiladaili.com +xilaiping.com +xilexuan.com +xileyougame.com +xilidou.com +xilinjie.com +xilinsi.org +xilish.com +xilu.com +xiluoxuan.com +xilvlaw.com +xima.org +xima.tv +ximalaya.com +ximalayaos.com +ximgs.net +ximiplay.com +ximiyouxi.com +ximizi.com +ximuw.com +xin.com +xin.xin +xin1234.com +xin3721.com +xin6.net +xinaigame.com +xinanidc.com +xinaoyun.com +xinbaby.com +xinbaicai.com +xinbalive.com +xinbear.com +xinbqg.com +xincache.com +xincai.com +xincaiguan.com +xincailiao.com +xincainet.com +xincaitong.net +xincanshu.com +xincg.com +xincha.com +xinchacha.com +xinchangol.com +xinchao.com +xinchaoss.com +xinchaoyue.com +xinchego.com +xincheng.com +xincheping.com +xinchong.com +xinchukj.com +xincmm.com +xindaifu.com +xindemarinenews.com +xindexuexi.com +xindi02.site +xindingwealth.com +xindns.com +xindong.com +xinduo.com +xinduoad.com +xineurope.com +xinfangsheng.com +xinfee.com +xinfei.com +xinfeijituan.com +xinfengxitong.net +xinfengxs.com +xinfenlei.com +xinfu888.com +xinfushe.com +xing73.com +xingames.com +xingbangip.com +xingbo.tv +xingcai.biz +xingchenjia.com +xingcheshixian.com +xingdatrip.com +xingdi.me +xingdong.co +xingdongliu.com +xinge.com +xingfagroup.com +xingfudu.com +xingfufangdai.com +xingfulizhaofang.com +xingfulo.com +xingfuu.com +xinggan.com +xinggan.net +xinghai365.com +xinghejoy.com +xinghengedu.com +xinghuankj.com +xinghuo100.com +xinghuo365.com +xinghuogroup.com +xinghuoxiaoshuo.com +xingjiesj.com +xingjijy.com +xingjimob.com +xingjuhe.com +xingketech.com +xingkong.com +xingkongmt.com +xingkoo.com +xingkuad.com +xingkupai.com +xinglai.com +xinglinpukang.com +xinglongdayuan.com +xingmai58.com +xingmao.cc +xingmima.com +xingming.com +xingming.net +xingpan.com +xingpin.com +xingqisihuishou.com +xingqiu.tv +xingqiu520.com +xingqu11.com +xingren.com +xingrongn.com +xingse.net +xingseapp.com +xingshangnet.com +xingshulin.com +xingshuo.net +xingtai123.com +xingtan001.com +xingtangzp.com +xingtu.com +xinguad.com +xingumin.net +xingweiedu.com +xingxing.com +xingxingjizhang.com +xingxingzu.com +xingye.work +xingyi.com +xingyigz.com +xingyongli.com +xingyoucai.com +xingyuanhuzhu.com +xingyuehuyu.com +xingyuhuwai.com +xingyunba.com +xingyunxc.com +xingyusoft.net +xingyuyouxi.com +xingzhang.com +xingzhige.com +xingzhilan.com +xingzhiyue.com +xingzuo.com +xingzuo8090.com +xingzuoshu.com +xingzuowu.com +xinhanhd.com +xinhanyx.com +xinhaolian.com +xinhaoqi.net +xinhay.com +xinhongru.com +xinhua-news.com +xinhua.org +xinhua08.com +xinhuaapp.com +xinhuacu.com +xinhuamm.net +xinhuan.mobi +xinhuanet.com +xinhuanet.ltd +xinhuaphoto.org +xinhuapo.com +xinhuaprs.com +xinhuapub.com +xinhuashe.org +xinhuasuye.com +xinhuatoupiao.com +xinhuawang.com +xinhuaxmt.com +xinhuayimin.com +xinhuazhiyun.com +xinhuoq.com +xiniu.com +xiniu3d.com +xiniugushi.com +xiniuyun.com +xiniuz.com +xinjiadiy.com +xinjiance.com +xinjianggou.com +xinjidian.com +xinjimo.com +xinjingks.com +xinjisuan.net +xinjunshi.net +xinjunshicn.net +xinkamai.com +xinkuai.com +xinkuaijie.com +xinle366.com +xinli001.cc +xinli001.com +xinli001wx.com +xinliangxiang.com +xinliceping.com +xinlifudao.com +xinlinghuayuan.com +xinlingletu.com +xinliwanju.com +xinluex.com +xinlvtu.com +xinmanduo.com +xinmei6.com +xinmeihu.com +xinmima.com +xinmintian.vip +xinnet.com +xinniangjie.com +xinnianhua.com +xinnong.com +xinnuodazu.com +xinorngyk.com +xinouhk.com +xinpianchang.com +xinpianyugao.com +xinpingmu.com +xinpure.com +xinqiannv.com +xinqigu.com +xinqing.com +xinqiyejia.com +xinqtech.com +xinquanedu.com +xinquji.com +xinran1016.com +xinranliu.me +xinray.net +xinrenxinshi.com +xinrong.com +xinrong88.com +xinrui-games.com +xinrui.biz +xinrz.com +xinsanbanbao.com +xinsdn.com +xinshangmeng.com +xinshangmeng3.com +xinshangshangxin.com +xinshiba.com +xinshipu.com +xinshishen.com +xinshoucun.com +xinshouyou.com +xinshouzhanzhang.com +xinshulaile.com +xinshuru.com +xinsilu.com +xinstall.com +xinstatic.com +xintaiwtp1.com +xintaizhou.com +xintheme.com +xintiao100.com +xintiao80.com +xintiaoyouxi.com +xintiku.com +xintongconference.com +xintuofalv.com +xinwangcj.com +xinweiyun.com +xinwen365.com +xinwen520.net +xinwengao.net +xinwo.com +xinx.love +xinxianghui.com +xinxianshilb.com +xinxiansk.com +xinxiaochina.com +xinxiaodian.com +xinxiaoqi.com +xinxiaozu.com +xinxifabu.net +xinxinapp.net +xinxindai.com +xinxing.org +xinxing100.com +xinxingly.com +xinxinhot.net +xinxinjoy.com +xinxisea.com +xinxue-edu.com +xinxuezx.com +xinxunwang.com +xinxunwei.com +xinyan.com +xinyaoyao.com +xinyayk.com +xinyegang.com +xinyi-tech.com +xinyisemi.com +xinyitt.com +xinyo100.com +xinyong.net +xinyongbuy.com +xinyou.com +xinyour.com +xinyu19.com +xinyuefei.com +xinyueseo.com +xinyukj99.com +xinyunfuwu.com +xinyuwanju.com +xinyuwen.com +xinyuwj.com +xinzaoxing.com +xinzengwj.net +xinzheng.cc +xinzhi.space +xinzuhe.com +xinzzfsdfdslk333.com +xinzzrowieir444.com +xioagege587skjdo.com +xionganxinxi.com +xionganzhuce.com +xiongdayq.com +xiongdong.com +xiongmao666.com +xiongmaojinku.com +xiongyin.com +xiongying.com +xiongzhangad.com +xipushuju.net +xiqb.com +xiqianyangyi.com +xiqihe.com +xiqingji.com +xiqinrc.com +xirang.com +xirenxuan.com +xisaiwang.com +xishanju.com +xishaoye.com +xishiqu.com +xishiwang.com +xishuai.com +xishuai.net +xishuashuatuan.com +xisj.com +xitao88.com +xitaoinfo.com +xitek.com +xitek.net +xitie.com +xitieba.com +xitieba.net +xitmi.com +xitong-tech.com +xitong110.com +xitong8.com +xitong86.com +xitongbuluo.com +xitongcheng.com +xitongdaquan.net +xitonggho.com +xitonghe.com +xitongjiaocheng.com +xitongku.cc +xitongle.com +xitongpe.com +xitongqingli.com +xitongtang.com +xitongtiandi.net +xitongtiankong.com +xitongtu.net +xitongxz.net +xitongzhijia.net +xitongzu.com +xitouwang.com +xitu.com +xitu.io +xituan.com +xiu.com +xiu8.com +xiuai.com +xiucai.com +xiudodo.com +xiufaxing.com +xiugu.com +xiuhome.com +xiuimg.com +xiujiadian.com +xiulian.com +xiuluowang.com +xiulv.com +xiumb.com +xiumeiziyuan.com +xiumi.com +xiumi.us +xiumius.com +xiumucn.com +xiuna.com +xiuno.com +xiupin.com +xiuqicloud.com +xiuren.com +xiusecai.com +xiushao.com +xiusheji.com +xiusheji.net +xiushuang.com +xiustatic.com +xiutuan.com +xiutv.com +xiuxiandou.com +xiuxiu.com +xiuxiustatic.com +xiuzhan365.com +xiuzhanwang.com +xivcdn.com +xiwangame.com +xiwangchina.com +xiwangd.com +xiwanglife.com +xiwangxiaoyuan.com +xiwantrip.com +xiwenquan.com +xiwnn.com +xiwuji.com +xixi520.com +xixiaoyou.com +xixiarc.com +xixibobo.com +xixiclothing.com +xixidoudizhu.com +xixik.com +xixik.net +xixin123.com +xixipan.com +xixiqipai.com +xixisys.com +xiyacs.com +xiyamaoyi.com +xiyang1.icu +xiyijiang.com +xiyin.life +xiyiqq.com +xiyogo.com +xiyoo.com +xiyou-g.com +xiyou360.net +xiyoucdn.com +xiyouchat.com +xiyouence.com +xiyouji.com +xiyouquan.com +xiyousdk.com +xiyouwebgame.com +xiyucosmetics.com +xiyuege.com +xiyufine.com +xiyun.net +xiyurumen.com +xizangguolv.net +xizangqinglv.com +xizangzl.com +xizhang.com +xizhi.com +xizi.com +xiziquan.com +xiziwang.net +xj-gr.com +xj-zp.com +xj120.com +xj123.info +xj169.com +xj71.com +xj7road.com +xj96596.com +xjabc.net +xjbdf.net +xjbhyx.com +xjbuluo.com +xjc18.com +xjcc.net +xjche365.com +xjcmtj.com +xjd360.com +xjdaily.com +xjdkctz.com +xjdpx.com +xjdsb.com +xjdwx.com +xjent.com +xjfda.com +xjfilm.net +xjfine.com +xjflcp.com +xjfzb.com +xjggjy.com +xjgj.com +xjgqt.org +xjgsdm.com +xjgwy.org +xjh.me +xjhgame.net +xjhjsd.com +xjhr.com +xjietiao.com +xjishu.com +xjisme.com +xjiyou.com +xjjnjp.org +xjlxw.com +xjlz365.com +xjmty.com +xjmw.net +xjoycity.com +xjpdf.com +xjphsd.com +xjr2018.com +xjrb.net +xjrmyy.com +xjshift.com +xjtour.com +xjtsnews.com +xjtuccjsj.com +xjtucompressor.com +xjtudlc.com +xjwljb.com +xjwyglw.com +xjxa.com +xjxbx.com +xjyou88.com +xjytjt.com +xjzdjx.com +xjzhongwu.com +xjzlyy.com +xjzsks.com +xk8090.com +xk89.com +xk9l.com +xkaxka.com +xkb1.com +xkcd.in +xkcun.com +xkcxh.com +xkdmp.com +xker.com +xkhouse.com +xkpx.com +xksafe.com +xksm54s.com +xktoupiao.com +xkw.com +xkwe.com +xkxiazai.com +xkyl.vip +xkyn.com +xkyn.net +xkzzz.com +xl-ai.com +xl-soft.com +xl13.com +xl18z.com +xl526.com +xl5bb.com +xl5dd.com +xl5du.com +xl5dw.com +xl699.com +xlaaa.com +xlbsoft.com +xlcfcyy.com +xlcidc.com +xlctyd.com +xlcz.com +xlgao.com +xlgogo.com +xlgtx.com +xlgxapp.com +xlhb.com +xlhk.net +xlhs.com +xlhtcucc.com +xlinclass.com +xlisp.net +xljnjy.com +xljsci.com +xlkorganic.com +xlkty.com +xllxdg.com +xlobo.com +xlpai.com +xlpan.com +xlqzh.com +xlsemi.com +xlshou.com +xltrip.com +xltzgy.com +xlylf.com +xlyouxi.com +xlys1904.com +xlysauc.com +xlysoft.net +xlyzjs.com +xlzfpt.com +xlzhao.com +xlzx.com +xlzx123.com +xlzyyw.com +xm-ad.com +xm-ais.net +xm-chuang.com +xm-olympic-museum.org +xm211.com +xm680.com +xm6wpp.com +xm909.com +xm9m.com +xmadx.net +xmamiga.com +xmanblog.net +xmantou.com +xmbankonline.com +xmbhw.com +xmbike.com +xmcbzj.com +xmccb.com +xmcdn.com +xmchong.com +xmcimg.com +xmcp.ltd +xmcwh.com +xmcx.net +xmd5.com +xmeasygo.com +xmecard.com +xmeye.net +xmf.com +xmfc.com +xmferry.com +xmfish.com +xmfunny.com +xmgps.com +xmgsd.com +xmheigu.com +xmheitu.com +xmhitek.com +xmhouse.com +xmhuixin.com +xmigc.com +xmindchina.net +xminfoport.com +xmisp.com +xmitic.com +xmj.app +xmjgjy.com +xmjhome.com +xmjiaruan.com +xmjim.com +xmjslh.com +xmjyw.com +xmkanshu.com +xml-data.org +xml-journal.net +xmlhifi.com +xmlulub.com +xmlvbarcode.com +xmmade.com +xmmama.com +xmmodo.com +xmmtoys.com +xmnjdwx.com +xmnovel.com +xmonecode.com +xmos.tv +xmpaoyou.com +xmpcba.com +xmqianzun.com +xmr-zh.com +xmrbi.com +xms45.com +xmsec.cc +xmshqh.com +xmsixian.com +xmsme.com +xmsmjk.com +xmsoft.com +xmsoushu.com +xmspace.net +xmtbang.com +xmtyy.net +xmuli.tech +xmwan.com +xmwsrc.com +xmxdev.com +xmxgame.com +xmxwl.net +xmxwz.com +xmyeditor.com +xmylhy.com +xmzangao.com +xmzdls.com +xmzjjl.com +xmzmmr.com +xmzsyg.com +xmzylh.com +001daima.com +xn--2krw29cdqai43k.com +xn--4qr912ma.com +001.com +000vw.com +xn--7dvw26h.xn--ses554g +xn--7hv285el2dtof.com +xn--7qvz7xssa.com +000pc.net +xn--chq7lp8e46htw3g.com +xn--cjr369c422a.xn--ses554g +xn--dkr447bejn.com +xn--dkr447bejn.net +xn--e9qp53aepg.xn--ses554g +xn--ebr05n.com +000e.com +000dn.com +xn--fiq6q20pz51d.com +000714.xyz +xn--fiqv94di0c54ipe.net +0006266.com +xn--glr604k.com +xn--iiq222b6igvp5c.com +00058.com +xn--it-1r3f.com +xn--jvrr72kgma408a.com +xn--ntsp37j.net +xn--nyqx2gbsm8u0b.com +xn--pbt1sj69ag8b.com +xn--q20av2y36ac54a.com +xn--rss99n.com +xn--s4t325g.com +xn--tfr76a.xn--czr694b +xn--uisx71c0r1a.com +00042.com +xn--w9q84az17hvpi.xn--ses554g +xn--w9qr0k.com +xn--w9qy23cc6adz7d.net +xn--wlqw5ebvdhpi5hepihs3c.com +000.link +xn--xkrs9ba41r.com +xn--xxv969f.xn--ses554g +xn--y8jhmm6gn.moe +xn--ygtp21bwyedsq.com +xn--yhqq38bmov17mqxi.com +00.net +xn-ck.com +xn121.com +xn2017.com +xnaidog.com +xnara.org +xnb.me +xncoding.com +xndm.tech +xnh123.com +xnhdgame.com +xninja.org +xnjcw.com +xnjjob.com +xnlkj.com +xnnpc.com +xnongren.com +xnpic.com +xns315.com +xntt.com +xntv.tv +xnw.com +xnwan.com +xnyauto.com +xnye.net +xnzjxx.com +xnzn.net +xoao.com +xoliao.com +xooooa.com +xorpay.com +xoudou.com +xox8688.com +xox8995.com +xox9325.com +xoxknct.com +xoxv.net +xoxxoo.com +xoyo.com +xoyobox.com +xoyocdn.com +xoyq.net +xp5.com +xp6000.com +xp666.com +xp85.com +xp868.com +xp933.com +xp9365.com +xpaper.com +xpaper.net +xpaper.vip +xpccdn.com +xpcha.com +xpdf.net +xpgod.com +xpj0755.cc +xpj0791.cc +xplaymobile.com +xpn.cc +xpsheying.com +xpsy.net +xptt.com +xpu93.com +xpw888.com +xpyx.net +xq0356.com +xq5.com +xqb24.com +xqbase.com +xqblog.com +xqbxz.com +xqckg.com +xqfunds.com +xqipu.com +xqiushu.com +xqjmzc.com +xqjs.net +xqnmz.com +xqras.asia +xqsbw.com +xqship.com +xqtesting.com +xqyk024.com +xqymuy.com +xqypay.com +xrcch.com +xrccp.com +xredu.com +xrender.com +xrichengapp.com +xrkapp.com +xrkcdn.com +xrkmonitor.com +xrso.com +xrunda.com +xrvm.com +xrwcn.com +xrwf66.com +xrxr.xyz +xrzww.com +xs-servers.com +xs.la +xs123.net +xs123.org +xs163.net +xs2500.com +xs3cnc.com +xs52.com +xs7.cc +xs7.com +xs7.la +xs74.com +xs91.net +xs920.com +xsa239.com +xsb120.com +xsbiquge.com +xsbja.com +xscbs.com +xschu.com +xsdma.com +xsdwk.com +xsee.cc +xsesc.com +xsfaya.com +xsfc.com +xshell.net +xshellcn.com +xshengyan.com +xshenshu.com +xshkvip.com +xshrcw.com +xshulin.com +xshuma.com +xshuoba.com +xsina.net +xsjedu.org +xsjs-cifs.com +xsjtxt.com +xsjwyx.com +xskhome.com +xslb.me +xsm818.com +xsmaofa.com +xsmore.com +xsmy54s.com +xsnsyh.com +xsool.com +xsp0311.com +xspcf.com +xsrtvu.com +xsshuku.com +xsslyjt.com +xsstomy.com +xssz.net +xsteach.com +xsthmy.com +xsti.net +xstqj.com +xstx.info +xsu.cc +xswdcasting.com +xsy.science +xsycps.com +xsyk021.com +xsyqmztg.com +xsyx.xyz +xsyxsc.com +xszp.cc +xszrcw.com +xszww.com +xt-kp.com +xt-tattoo.com +xt12333.com +xt70.com +xt918.com +xtao.me +xtbank.com +xtc-edu.com +xtcaq.com +xtcrm.com +xtdpye.com +xtedu.com +xthinking.net +xtibet.com +xtjc.com +xtjky.com +xtjxsb.com +xtlog.com +xtmtrj.com +xtongs.com +xtrc.net +xttblog.com +xttz.com +xtu2.com +xtuan.com +xtuos.com +xtutoring.com +xtxcm.com +xu1s.com +xuanad.com +xuanba.com +xuanbar.com +xuancaizi.com +xuanceo.com +xuancheng.org +xuanchuanyi.com +xuandan.com +xuande99.com +xuandecarpet.com +xuanfengge.com +xuanfengkeji.com +xuanhaikuwan.com +xuanhuafb.com +xuanhuange.com +xuanhuange.net +xuanjutong.com +xuanke.com +xuanlishi.com +xuanma.com +xuannaer.com +xuanqii.com +xuanquge.com +xuanqun.com +xuanruanjian.com +xuanshu.com +xuantaikeji.com +xuanwonainiu.com +xuanwu88.com +xuanwumobile.com +xuanwww.com +xuanxiaozhuanjia.com +xuanxuan.com +xuanxuangame.com +xuanxuantemai.com +xuanxue.com +xuanyangxl.com +xuanyouwang.com +xuanyuanhuangdi.org +xuanyusong.com +xuanzhuanmumatuwen.com +xubei.com +xuchuang.com +xudan123.com +xudankeji.com +xudongfood.com +xudoodoo.com +xuduan.vip +xue163.net +xue51.com +xue63.com +xueanquan.com +xueba100.com +xuebalib.com +xuebingsi.com +xuecaijie.com +xuecan.net +xuechebu.com +xuechela.com +xueda.com +xuedi.com +xuedong97.com +xueepay.com +xueersen.com +xueersi.com +xueersibook.com +xueerxing.com +xuefenxi.com +xuefo.net +xuegaogame.com +xuegeshui.com +xuegongkong.com +xueguoedu.net +xuehai.net +xuehaibjb.com +xuehaiwu.com +xuehuacdn.com +xuehuahua.cc +xuehuahua.net +xuehui.com +xuehuile.com +xuehuiwang.com +xueit.com +xuejiqiao.com +xuekanba.com +xuekeedu.com +xuekuaiji.com +xuekubao.com +xuekuibang.shop +xuelecn.com +xueleku.com +xuelema.com +xueleyun.com +xueli9.com +xuemh.com +xueming.li +xuenb.com +xuepaijie.com +xueqiu.com +xueqiu360.com +xuermh.com +xuesax.com +xueseo.com +xueshanlinghu.com +xueshen.net +xueshiyun.com +xueshu.com +xueshu5.com +xueshuda.com +xueshujia.com +xuetangonline.com +xuetangx.com +xuetangzaixian.com +xuetengedu.com +xueti.com +xuetimes.com +xuetu.net +xuetuwuyou.com +xueui.com +xuewangshang.com +xuewangzhan.com +xuewangzhan.net +xuewei360.com +xuexb.com +xuexi.la +xuexi365.com +xuexi365.net +xuexi637.com +xuexiaodaquan.com +xuexiaozhaopin.com +xuexibao.com +xuexicha.com +xuexigang.com +xuexila.com +xuexili.com +xuexin365.com +xuexiniu.com +xuexitong.com +xuexiwa.com +xueyanshe.com +xueyiyun.com +xueyou.org +xueyuanjun.com +xuezhouyi.com +xuezishi.net +xuezizhai.com +xugaoyang.com +xugucn.com +xuhai.press +xuheen.com +xuhehuan.com +xujianhua.com +xujingkj.com +xujun.org +xuka.com +xulaoshi68.com +xuld.net +xuliangwei.com +xuliehao.info +xulihang.me +xulizui6.com +xulv.net +xumenger.com +xumingxiang.com +xumurc.com +xun1688.com +xunbao178.com +xunbaozhifu.com +xunbibao.com +xunbin.com +xunbuy.com +xunchabing.com +xundayun.com +xundns.com +xundns.net +xundupdf.com +xunerjie.com +xunfang.com +xunfeivr.com +xunfeixxj.com +xungou.com +xunguanggame.com +xunhuoyi.com +xunhupay.com +xunicard.com +xunihao.net +xunjiecad.com +xunjiepdf.com +xunjieshipin.com +xunjietupian.com +xunkids.com +xunkoo.com +xunlei.com +xunlei.net +xunleigang.com +xunleige.com +xunleige520.com +xunleiyy.com +xunlew.com +xunliandata.com +xunlong.net +xunlong.tv +xunlonghe.net +xunlongsoft.com +xunlugame.com +xunmei.net +xunmeinet.com +xunmiweb.com +xunmzone.com +xunrenzhaoren.com +xunruicms.com +xunsearch.com +xunshou.com +xunsl.com +xunsns.com +xuntongwuxian.com +xuntou.com +xuntuoguan.com +xunurl.com +xunwan.com +xunwei.org +xunwei.tm +xunxi.com +xunxiang.site +xunxu.com +xunyangzaixian.com +xunyixia.com +xunyou.com +xunyou.mobi +xunyun.com +xunzai.com +xunzhuang.net +xuooo.com +xupea.com +xupu.name +xupu120.com +xuqyfw.com +xurong.xyz +xuruowei.com +xusseo.com +xuwenliang.com +xuxian.com +xuxian.me +xuxueli.com +xuxusheng.com +xuyi.net +xuyilx.com +xuyimin.club +xuyuanyi.com +xuyueswkj.com +xuzhi.net +xuzhoujob.com +xvista.com +xvv.cc +xw1806.com +xw360.com +xwadv.com +xwan.com +xwb8.com +xwbank.com +xwcool.com +xwcxgroup.com +xwdsp.com +xweb.vip +xwei.tv +xwhb.com +xwhodesign.com +xwin77.com +xwjqr.com +xwjr.com +xwjy.org +xwkjcms.com +xwko.com +xwlunwen.com +xwlxw.com +xwood.net +xwtex.com +xwuad.com +xwxguan.com +xwyun.net +xwz999.com +xwzc.net +xwzxjy.com +xx-motor.com +xx007.com +xx14a.com +xx4a.com +xx5.com +xx667788xx.com +xxadc.com +xxbiquge.com +xxbmm.com +xxbt.com +xxcang.com +xxccx.com +xxcig.com +xxcmw.com +xxdao.com +xxdlwx.com +xxfzl.com +xxgd888.com +xxggg.net +xxghh.biz +xxgj47.com +xxgzmlt.com +xxhd-tech.com +xxhh.com +xxhkt.com +xxingclub.com +xxjcy.com +xxjdns.com +xxjrjxc.com +xxjrqc.com +xxka.com +xxko.net +xxkucun.com +xxlcn.com +xxliudsp.com +xxlwin.com +xxmac.com +xxmanhua.info +xxminizu.com +xxnets.net +xxoojoke.com +xxorg.com +xxpie.com +xxpkg.com +xxptcs.com +xxqipai.com +xxqun.com +xxrou.net +xxs8.com +xxsb.com +xxsdfjx.com +xxshu.com +xxskins.com +xxsy.net +xxtaotao.com +xxtiao.com +xxtmail.com +xxtswzedu.com +xxue100.com +xxwolo.com +xxx6686.app +xxxbiquge.com +xxxcsf.com +xxxfeng.com +xxxmeng.com +xxxxxbbs.com +xxxzzlm.org +xxycw.com +xxyfgy.com +xxyhzd.com +xxyo.com +xxyw.com +xxyy.co +xxzfgjj.com +xxzhushou.com +xxzsgame.com +xy-365.com +xy-asia.com +xy.com +xy1212.com +xy1758.com +xy178.com +xy1989.com +xy2401.com +xy3000.com +xy58.net +xy599.com +xy78.com +xy980.net +xyb100.com +xyb2b.com +xybsyw.com +xybygw.com +xycaogen.com +xycareer.com +xycdn.com +xycdn.net +xycloud.com +xyclouds.com +xycwei.com +xyczero.com +xyd686.com +xydcname.com +xydcname.net +xydhl.com +xydxcloud.com +xyfc.com +xyfcw.com +xyffsb.com +xyffvip.com +xyfw.org +xygmed.com +xyh001.com +xyh2021.com +xyhc.com +xyhis.com +xyhlcd.com +xyhospital.com +xyhqsh.com +xyhtml5.com +xyimg.net +xyinzhe.com +xyj.link +xyj321.com +xyjpzz.com +xykmovie.com +xylh888.com +xylink.com +xylmf.com +xymcp3.com +xymfqb.com +xymlcs.com +xymvip.com +xynbnb.com +xyniubi.com +xynsh.com +xyookj.com +xyous.com +xyppzx.com +xyqb.com +xyqczy.com +xyrbszb.com +xyrtv.com +xysb.com +xysstgs.com +xystatic.com +xystoy.com +xysy.com +xytjcpj.com +xytzg.com +xytzjt.com +xyunqi.com +xyvcard.com +xyvend.com +xyvending.com +xyw.com +xywlapi.cc +xywm.ltd +xywooden.com +xywy.com +xywyfw.com +xywzs.com +xyx234.com +xyxcables.com +xyxdie.com +xyxl.net +xyxsc.com +xyxsns.com +xyxy.com +xyxy.net +xyxy01.com +xyy001.com +xyyh.xyz +xyyksy.com +xyyuedu.com +xyyx82.com +xyz-jm.com +xyz1001.xyz +xyz1412.net +xyz83.com +xyzcdn.net +xyzcn.com +xyzdict.com +xyzfm.link +xyzggg.com +xyzkj.xyz +xyzmdzs.com +xyzop.com +xyzs.com +xyzsq.com +xyzvo.com +xyzywl.com +xz-juming.com +xz.com +xz577.com +xz6.com +xz6699.com +xz7.com +xzapi56.com +xzbahd.com +xzcblog.com +xzcdc.com +xzddx.com +xzfile.com +xzggjyzpw.com +xzgjj.com +xzhengyida.com +xzhichang.com +xzhizao.com +xzhzkd.com +xzji.com +xzjxtsg.com +xzkd.com +xzking.com +xzlogo.com +xzlres.com +xzltzc.com +xzm56.com +xzn56.com +xzoo.org +xzper.com +xzpoll.com +xzrdwq.com +xzsec.com +xzsnw.com +xzstatic.com +xzsthj.com +xztzb.com +xzw.com +xzx.com +xzxw.com +xzyhealth.com +xzzp.net +xzzulin.com +y-os.net +y.to +y007.com +y1995.com +y2002.com +y5663.com +y5kfpt.com +y6162.com +y7q8.com +y80s.com +y999.com +y9photo.com +ya-bo888.com +ya17.com +ya247.com +yaahe.com +yabo.com +yabokzl.com +yabolive.com +yac8.com +yac8.net +yadashi.com +yadingtour.com +yaduo.com +yaeherhealth.com +yaersen.com +yafco.com +yafdev.com +yafeilinux.com +yageo.tech +yago-mall.com +yahacode.com +yahaha.net +yahaizi.com +yahoo001.com +yahotab.com +yahuhost.com +yahui.cc +yahui.hk +yahuishou.com +yaitest.com +yaiyuan.com +yajuke.com +yajxc.com +yakool.com +yakshacc.cool +yalayi.net +yalewoo.com +yalishiyanji.com +yalixinli.com +yalongsi.com +yalqq8976.com +yamadesignlab.com +yameijie.com +yameisj.com +yamibo.com +yanbinghu.com +yanbm.com +yanboyuan.com +yanchebang.com +yanchengzx.com +yanchupiaowu.com +yandianying.com +yandui.com +yanedu.com +yanfen.online +yangbing.club +yangchenglianhe.com +yangchunjian.com +yangcong.com +yangcong345.com +yangcongchufang.com +yangdongjia.com +yangerxiao.com +yangfannie.com +yangguanjun.com +yangguiweihuo.com +yanghui.com +yangjiaofood.com +yangjie.li +yangjisen.com +yangkatie.com +yangkeduo.com +yangki.net +yangkun.net +yanglajiao.com +yanglaocn.com +yanglaofuwu365.com +yanglaozhan.org +yanglee.com +yangli.com +yanglong.pro +yangluojob.com +yangmao.info +yangmaohao.net +yangner.com +yangpanzg.com +yangqianguan.com +yangqimanhua.com +yangqq.com +yangqu.com +yangsam.com +yangshengliang.com +yangtaiapp.com +yangtengfei.com +yangtianb.com +yangtse.com +yangtze-volga.org +yangwang.pw +yangwangauto.com +yangwc.com +yangxiang.com +yangxiangming.com +yangxikun.com +yangxingzhen.com +yangyangad.com +yangyangla.com +yangyanxing.com +yangyi.vip +yangyi02.com +yangyi08.com +yangyi19.com +yangyingming.com +yangyongquan.com +yangyq.net +yangzhe1991.org +yangzhiping.com +yangzhix.com +yangzhongchao.com +yangzijiang.com +yangzw.vip +yanhaijing.com +yanjiangwang.com +yanjiao.com +yanjiao.net +yanjiaoapp.com +yanjiaoweixin.com +yanjinews.com +yanjingge.com +yanjiubaogao.com +yanjiyou.net +yanjun7858.com +yanjunbo.com +yankanshu.net +yankay.com +yanliu.org +yanlutong.com +yannaisi.com +yannv.com +yanoda.com +yanpengjk.com +yanpk.com +yanpwy.com +yanqiao.com +yanqingzhan.net +yansedaquan.com +yanshihua.com +yanshishuo.com +yanshuangyingx.com +yantai-chuanpiao.com +yantaibank.net +yantaimarket.com +yantaitech.com +yantubao.com +yantuchina.com +yanue.net +yanworen.com +yanxian.org +yanxintong.com +yanxishe.com +yanxiu.com +yanxuezhang.net +yanxurui.cc +yanyapeng.com +yanyib2b.com +yanyijiameng.com +yanyijingling.com +yanyiwu.com +yanzhiwu.com +yao.com +yao123.com +yao51.com +yaobo.net +yaoburang.com +yaochufa.com +yaocsoft.com +yaodou.net +yaofangwang.com +yaofangwang.net +yaofx.net +yaoge123.com +yaoguo.com +yaohaixiao.com +yaohuiji.com +yaohuo.me +yaojibuyu.com +yaojidsfee.com +yaojiedianzi.com +yaojigames.com +yaojingtang.com +yaokaihui.com +yaolaifen.com +yaolan.com +yaoliwang.com +yaomaiche.com +yaoman.net +yaonano.com +yaooxx.space +yaopaiming.com +yaopinnet.com +yaoqingwo.com +yaosai.com +yaotia.com +yaowan.com +yaoyedan.net +yaoying.vip +yaoyl.com +yaoyouke.com +yaozh.com +yaozhixiang.com +yaozhizhu.com +yaozs.com +yaozui.com +yaqurc.com +yareiot.com +yaristyle.com +yarnn.com +yasishuo.com +yasiyasi.com +yasking.org +yasn.com +yasuotu.com +yatiku.com +yatiwang.com +yatsenglobal.com +yatsoft.com +yaucxrt.com +yauuy.com +yawancaiwu.com +yaxi.net +yaxige.com +yaxinde.com +yaxuntuhang.com +yaya.love +yayigou.net +yayihouse.com +yaypool.com +yayu.org +yayunjiqi.com +yazhifan.com +yazhougoufang.com +yazibt.com +yazjy.com +yazuo.com +yb1518.com +yb1867.com +yb3.cc +yb983.com +yba120.com +ybaby.com +ybao.org +ybaobx.com +ybask.com +ybbdzp.com +ybbgd.com +ybbxkj.com +ybccb.com +ybccode.com +ybe.net +ybhdmob.com +ybi.net +ybin.cc +ybirds.com +ybj.com +ybjasb.com +ybjk.com +yblp.com +ybm100.com +ybren.com +ybs120.com +ybscjp.com +ybtong.com +ybtvyun.com +ybvip.com +ybvv.com +ybword.com +ybxww.com +ybyxw.com +ybzhao.com +ybzkb.com +yc123.com +yc12313.com +yc2e.com +yc370.com +yc38.com +yc999vip.com +ycandyz.com +ycb.com +ycbright.com +yccdn.com +ycdongxu.com +ycdywl.com +yceshop.com +ycgame.com +ycgj.cc +ycgjj.net +ycgslb.com +ychromedgeie.com +ychxie.com +ychxiex.com +ycig.com +ycigilink.com +yciyun.com +ycjt2007.com +ycjyjt.com +yckceo.com +ycku.com +yclh6.com +ycloud.online +ycloudvip.com +yclunwen.com +ycmbcd.com +ycool.com +ycpack.net +ycpai.com +ycpsy.com +ycrh-tattoo.com +ycrh.com +ycrusher.com +ycrx360.com +ycs120.com +ycsd.work +ycsrc.com +ycsystem.com +yct-tec.com +ycty.org +ycwalker.com +ycwb.com +ycwhys.com +ycxfgroup.com +ycxjtd.com +ycyjkj.com +ycym.com +ycypin.com +ycyui.com +yczbw.com +yczihua.com +yczxyy.com +ydamc.com +ydbimg.com +ydc360.com +yddxkj.com +ydh.fun +ydimmi.com +ydjdcjc.com +ydjia.com +ydjt1166.com +ydkj2019.com +ydl.com +ydlcdn.com +ydmel.com +ydmeng.com +ydmob.com +ydn5.com +ydnewmedia.com +ydr.me +ydsaso.com +ydsjjs.com +ydstatic.com +ydsy.org +ydtad.com +ydtbl.com +ydtnotary.com +ydtongcheng.com +ydtykj.net +ydu6.com +yduav.com +ydwhgs.com +ydx2.com +ydxxt.com +ydyeducation.com +ydys1688.com +ydyspc.com +ydyy120.com +ye1992.com +ye3.com +ye40.com +yea.im +yeah.net +yeahexp.com +yeahka.com +yeahworld.com +yeai.com +yealink.com +yealinkvc.com +yeambin.com +yeaosound.com +yeapcloud.com +yeapcloud.net +yearnfar.com +yeastar.com +yebaike.com +yebangyu.org +yebaojiasu.com +yeboyzq.com +yecdn.com +yedingding.com +yeduxiaoshuo.com +yee5.com +yeeaoo.com +yeecai.com +yeecall.com +yeecin.com +yeecloud.com +yeedian365.com +yeefeitrip.com +yeefire.com +yeefx.net +yeekit.com +yeelight.com +yeelink.net +yeelogo.com +yeemiao.com +yeemiao.net +yeepay.com +yeepaycdn.com +yeepiao.com +yeetan.com +yeeuu.com +yeeyan.com +yeezon.com +yegame.com +yegenyou.com +yegoo.com +yehetang.cc +yeidc.com +yeidc.net +yejienet.com +yejing.biz +yejuu.com +yelanxiaoyu.com +yelinmall.com +yelishi.net +yelixiali.com +yellowjm.com +yelook.com +yemablog.com +yemacaijing.com +yemaili.com +yemancomic.com +yemaosheji.com +yemaosoft.com +yemayun.com +yemeihuoguo.com +yemet.com +yeolar.com +yeoner.com +yeree.com +yergoo.com +yes-chinese.com +yes515.com +yes58.net +yes88.com +yesacc.com +yesaha.com +yesanpole.com +yesapi.net +yesbt.cc +yesclouds.com +yesense.com +yeshen.com +yeshengarts.com +yeshj.com +yeshu.com +yesidos.com +yeskn.com +yesky.com +yeslib.com +yeslicake.com +yesmryang.net +yesmyimg.com +yesmywine.com +yesoulchina.com +yespearl.com +yestar.com +yestar1992.com +yestarcorp.com +yestarm.com +yestarvip.com +yeston.net +yestone.com +yesudoo.com +yesuse.net +yeswan.com +yesxun.com +yetianzi.com +yetingjk.com +yettos.com +yewen.us +yewuyuan.com +yexinggroup.com +yeyaji9.com +yeyday.com +yeyeriav.com +yeyexx.com +yeyexx8.com +yeyezhenxuan.com +yeyimg.com +yeyo.cc +yeyou.com +yeyoucdn.com +yeyoujia.com +yeyulingfeng.com +yeyun.com +yezhuwq.com +yezhuwuyou.com +yeziapp.com +yeziting.com +yezixigame.com +yezixueyuan.com +yfbudong.com +yfbzb.com +yfcache.com +yfcalc.com +yfcdn.net +yfcloud.com +yfdc.net +yfdns.net +yfdts.net +yfdurl.com +yfdxs.com +yfdyf.com +yffe.com +yfgj68.com +yfhl.net +yfhxtech.com +yfiot.com +yfjiakao.com +yfklxz.com +yfldocker.com +yfmhw.com +yfp2p.net +yfpayment.com +yfscdn.com +yfscdn.net +yfservice.com +yftxt.com +yfvb.com +yfway.com +yfwnm.com +yfwpt.vip +yfycrc.com +yfycyboil.com +yfzgzz.com +yg-dk.com +yg1997.com +ygc711iq.com +ygct.com +ygdns.com +ygdy8.net +yge.me +ygei.com +yget.me +yghsh.com +ygibao.com +yginsight.com +ygjj.com +ygo.wiki +ygread.com +ygsdmedia.com +ygsoft.com +ygtcpa.com +ygwenxue.com +ygwh.cc +ygym.org +ygzt.net +yh31.com +yh596.com +yh598.com +yh99.cc +yhachina.com +yhbimg.com +yhcko.com +yhcmovie.com +yhcqw.com +yhd.com +yhdfa.com +yhdm07.com +yhdm16.com +yhdm5.com +yhdns.net +yhdtns.com +yhees.com +yhgfb-cn-static.com +yhgo8.com +yhhh8888.com +yhidc.com +yhindustrial.com +yhj2000.com +yhj9.com +yhjbox.com +yhkgas.com +yhkingdee.com +yhm11.com +yhouse.com +yhq368.com +yhqapp.com +yhqdashi.com +yhquan365.com +yhqurl.com +yhrcb.com +yhres.com +yhshapp.com +yhsms.com +yhspy.com +yht7.com +yhtools.cc +yhtx.tv +yhurl.com +yhwomen.com +yhx3318.com +yhxuexiao.com +yhy50.com +yhyf.cc +yhz2000.com +yhz365.com +yhz66.com +yhzky.net +yhzky1.net +yhzm.cc +yhzm.com +yhzuche.com +yi-jy.com +yi-you.org +yi-yun-tong.com +yi114.com +yi6.com +yi7.com +yi958.com +yiaini.com +yiapp.com +yibaixun.com +yiban.io +yiban1314.com +yibaogao.com +yibei.com +yibeianyuming.com +yibenmanhua.com +yibite.com +yicai.com +yicaitangwangzhuan.com +yicamp.com +yichadan.com +yichangly.com +yiche.com +yichemall.com +yichengji.com +yichengjiajupt.com +yichesafe.com +yichuyifan.com +yiclear.com +yicongfound.org +yicuba.com +yicx.com +yidaba.com +yidai.com +yidaomobi.com +yidaservice.com +yideamobile.com +yidejia.com +yidejr.net +yidengxuetang.com +yidian360.com +yidianchina.com +yidianer.com +yidianfenqi.com +yidianhulian.com +yidianling.com +yidiansz.com +yidianting.xin +yidianzixun.com +yidianzx.com +yidmall.com +yidong-food.com +yidonghua.com +yidonglin.com +yidongtimes.com +yidoutang.com +yidu.cc +yidui.me +yidumen.com +yidun.com +yiehua.net +yiernews.com +yifabao.com +yifake.com +yifanghy.com +yifanmedia.net +yifanshangplus.com +yifansuo.com +yifatong.com +yifei.com +yifei.space +yifen.com +yifeng-mover.com +yifeng.com +yifenghudong.com +yifengke.com +yifengx.com +yifengxin.org +yifone.com +yifont.com +yifu.net +yifubao.com +yifucj.com +yifuhe.com +yifutangvip.net +yifutu.com +yigao.com +yigaosu.com +yige.org +yigecun.com +yigerlife.com +yigood.net +yigoonet.com +yigouu.com +yiguo.com +yiguoimg.com +yigxz.com +yihafo.com +yihaikerry.net +yihao.com +yihao01.com +yihaodian.com +yihaodianimg.com +yihaoduozhongduan.com +yihaohuoche.com +yihaojiaju.com +yihaomen.com +yihchina.com +yihecloud.com +yihedoors.com +yihong001.com +yihongzhihui.com +yihshou.com +yihu.com +yihuacomputer.com +yihuichuang.com +yihuikeji.vip +yihuimg.com +yihun.com +yiibai.com +yiibook.com +yiichina.com +yiigle.com +yiihuu.com +yiii.net +yijia-ai.com +yijia.com +yijia.ink +yijiaer.com +yijian119.com +yijianjiaoyu.com +yijianjiexi.com +yijianzj.com +yijiebuyi.com +yijiedai.com +yijiexiaomin.com +yijingji.com +yijintong.net +yijirecovery.com +yijiupi.com +yijiuplus.com +yijueweb.com +yikang1977.com +yikaochacha.com +yikaow.com +yikedou.com +yikehome.com +yiketalks.com +yiketianqi.com +yikeweiqi.com +yikexue.com +yikeyz.com +yikuaide.com +yikuaiqu.com +yikuns.com +yilantop.com +yilanvaas.com +yile8.com +yilewan.com +yileweb.com +yileyiqi.com +yileyoo.com +yileyunssp.com +yili.com +yilianmeiti.com +yilianyixue.com +yilibabyclub.com +yilihuo.com +yiliit.com +yilijet.com +yilingshop.com +yilinguoji.com +yilinweb.com +yillionbank.com +yilong.com +yilongnews.com +yilongtv.com +yilule.com +yilumh.com +yiluzouhao.com +yilvcheng.com +yimaoip.com +yimashijie.com +yimeima.com +yimeizhibo.com +yimenapp.com +yimeng.com +yimengmusic.com +yimenonline.com +yimenseo.net +yimenyun.net +yimian.xyz +yimianmian.com +yimiaozhongdemeng.com +yimidida.com +yimihaodi.com +yimin.biz +yimin168.com +yiminchaoshi.com +yimingkeji.net +yimingzhi.net +yimininfo.com +yiminjiayuan.com +yiminw.com +yimisoft.com +yimitongxue.com +yimiyisu.com +yimizhibo.tv +yimutian.com +yimuymc.com +yinar.com +yinbaitu.com +yinbangbroker.com +yinbin.ink +yinchenglawyer.com +yinchengpai.com +yinchuanzxd.com +yindon.com +yindou.com +yindudigital.com +yindui.net +yinduzx.com +yineitong.com +yinfeiy.com +ying-ji.com +yingbei365.com +yingbio.com +yingbishufa.com +yingcankeji.com +yingchaozhibo.com +yingchengnet.com +yingchuang.com +yingchulawyer.com +yingci86.com +yingdev.com +yinge.cc +yinge.tech +yingfeiyun.com +yingfeng.me +yinghaicar.com +yinghecloud.com +yingheying.com +yinghezhong.com +yinghualiu.com +yinghuaonline.com +yinghub.com +yingjia360.com +yingjianzhijia.com +yingjiesheng.com +yingjiesheng.net +yingjimall.com +yingk.com +yingkelawyer.com +yingle.com +yinglunka.com +yingmei.me +yingmi.com +yingming.net +yingpaigame.com +yingshe.com +yingsheng.com +yingshevip.com +yingshiyou.com +yingsoo.com +yingsun.net +yingsx.com +yingtai.com +yingtaoai.com +yingtaosiyue.com +yingtaoyun.com +yinguobing.com +yingwangtech.net +yingwenming.com +yingworks.com +yingwuyuzd.cc +yingxiahome.com +yingxiaoo.com +yingxiong.com +yingyang630.com +yingyinglicai.com +yingyongge.com +yingyonghao8.com +yingyonghui.com +yingyongmiao.com +yingyu.com +yingyuchat.com +yingyurumen.com +yingyushijie.com +yingyuweb.com +yingzaocms.com +yingzheng.com +yingzhongshare.com +yingzt.com +yinhai.com +yinhang123.net +yinhangchaxun.com +yinhanghanghao.com +yinhangkadata.com +yinhangkahao.com +yinhangkaoshi.net +yinhanglilv.net +yinhangzhaopin.com +yinhe.com +yinhengli.com +yinher.com +yinheyuedu.com +yinhu.com +yini.org +yinjiaji.com +yinjietd.com +yinka.co +yinker.com +yinmishu.com +yinpiao.com +yinsha.com +yinshua.cc +yinshuiyu.com +yintai.com +yintechi.com +yinuoedu.net +yinxi.net +yinxiang.com +yinxianggame.com +yinxiangma.com +yinxiangqingyang.com +yinxiao.com +yinxiaobao.net +yinxinbh.com +yinxing.com +yinxunbiao.com +yinyue7.com +yinyuegf.com +yinyuemeitu.com +yinyuetai.com +yinyueyouxi.com +yinzhaowang.com +yinzhijie.com +yinzhizhu.com +yinzifang.com +yinzuo100.com +yinzuojianshen.com +yioho.com +yioulai.com +yiovo.com +yipaogan.com +yiparts.com +yipemail.com +yipeng888.com +yipihuo.com +yipingmi.vip +yipinhr.com +yipinread.com +yipinsucai.com +yipintemian.com +yipuping.com +yiq.com +yiqi.com +yiqianbao.com +yiqianlian.com +yiqiao88.com +yiqibazi.com +yiqibing.com +yiqibuduoduo.com +yiqicesuan.com +yiqifa.com +yiqifa.org +yiqifengtian.com +yiqihao.com +yiqijian.com +yiqijixiang.com +yiqikan123.xyz +yiqikan8.com +yiqimaila.com +yiqiming88.com +yiqioffice.com +yiqishai.com +yiqishanyuan.com +yiqiso.com +yiqisoo.com +yiqisooimg.com +yiqisou.net +yiqistore.com +yiqitp.com +yiqiu.org +yiqiuu.com +yiqiv.com +yiqixie.com +yiqixiegushi.com +yiqiyou.com +yiquanhs.com +yiquanseo.com +yiquhai.com +yiqujing.com +yiquxapp.com +yiren001.com +yirendai.com +yirentong.com +yirenzhushou.com +yirenzuji.com +yirimao.com +yirlir.com +yiruan.la +yiruantong.com +yiruide.com +yiruikecorp.com +yiruituo.com +yisa.com +yisanban.com +yisanwu.com +yisell.com +yishalai.com +yishengfanyi.com +yishihui.com +yishion.com +yishion.net +yishixue.com +yishouapp.com +yishu.com +yishu168.com +yishujie.com +yishuliuxue.com +yishunft.com +yishuzhifa.com +yishuzi.com +yishuzi.org +yishuziti.com +yisier.com +yisocms.com +yisojuan.com +yisou.com +yisouti.com +yisouyifa.com +yisu.com +yisusoft.com +yit.com +yitaifang.com +yitanyun.com +yitaojiayuan.com +yitel.com +yitesoft.com +yitianshidai.com +yitianxinda.com +yiticm.com +yitongjiayou.com +yitongmedia.com +yituliu.site +yitutech.com +yituyu.com +yiuios.com +yiupin.com +yiuxiu.com +yivian.com +yivicar.com +yivizd.com +yiwaiart.com +yiwan.com +yiwangdujin.com +yiwanggo.net +yiwangtui.com +yiwanzhushou.com +yiwealth.com +yiweb.com +yiweilaogumin.com +yiwenyida.com +yiworld.com +yiwubuy.com +yiwufair.com +yiwugo.com +yiwugou.com +yiwuku.com +yiwusuppliers.com +yiwutalk.com +yixao.com +yixao.net +yixi.tv +yixia.com +yixiangzuji.com +yixiaozu.com +yixie8.com +yixiekeji.com +yixieshi.com +yixiin.com +yixin.com +yixin.im +yixin5.com +yixincao.com +yixincapital.com +yixine.com +yixinfinance.com +yixinfund.com +yixinli.xin +yixintui.com +yixinu.com +yixiubx.com +yixiuxueyuan.com +yixuan.net +yixue68.com +yixue99.com +yixuebiancheng.com +yixueks.com +yixuelunwen.com +yixuexianzhi.com +yixuezp.com +yixui.com +yixun.com +yiya520.com +yiyaha.com +yiyakq.com +yiyanche.com +yiyangidc.com +yiyaohang.com +yiyaojd.com +yiyaojie.com +yiybb.com +yiye.ai +yiyebang.com +yiyefei.com +yiyesheng.net +yiyiarts.net +yiyifoods.com +yiyihd.com +yiyimh.com +yiyisoft.com +yiyitech.com +yiyiwawa.com +yiyongcad.com +yiyou.org +yiyouliao.com +yiyoupay.net +yiyouqi.com +yiyu.com +yiyuanqiang.net +yiyuansoft.com +yiyuanyi.org +yiyuetop.com +yiyum.com +yiyurumen.com +yizenb.com +yizhanok.com +yizhanzx.com +yizhema.com +yizhengwx.com +yizhibi.com +yizhibo.com +yizhidayu.com +yizhifubj.com +yizhikan.com +yizhitou.com +yizhiwechat.com +yizhixiaogame.com +yizidy.com +yizimg.com +yizlife.com +yizu.org +yizuocity.com +yizuxing.com +yj-bank.com +yj-fun.com +yj.ink +yj1211.work +yj3g.com +yjai.art +yjbys.com +yjcf360.com +yjcp.com +yjctrip.com +yjdatasos.com +yjfs8.com +yjhyjl.com +yjihua.com +yjiyun.com +yjk.com +yjk.im +yjldp.com +yjlin4.com +yjlink.cc +yjllq.com +yjopen.com +yjpal.com +yjq.cc +yjrcyw.com +yjro.com +yjrxcw.com +yjrzj.com +yjs-cdn.com +yjs-cdn10.com +yjs111.com +yjscloud.com +yjvps.com +yjwlo.com +yjwujian.com +yjxsoft.com +yjz9.com +yjzb.app +yjzb.tv +yk211.com +ykccn.com +ykcer.com +ykchicheng.com +ykclass.com +ykdgd.com +ykdmsy.com +ykedu.net +ykimg.com +ykinvestment.com +ykplg.com +ykq.ink +ykqnl.com +ykread.com +yksdks.com +yksq.net +ykstarshine.com +yksuit.com +ykt.io +yktchina.com +yktworld.com +yktz.net +ykyao.com +ykzq.com +ykzr.com +yl.vip +yl1001.com +yladm.com +ylallinone.com +ylcs.cc +yle888.vip +ylfx.com +ylghsj.com +ylgj.com +ylhaitao.com +ylhh.net +ylhsrsrc.com +ylike.net +yliyun.com +ylizu.com +yljc888.com +yljjj.com +yljr.com +ylkjgame.com +ylmf.cc +ylmf.com +ylmf.net +ylmf888.com +ylmfeng.com +ylmfwin100.net +ylnetworks.com +yloo.org +ylq.com +ylrb.com +ylrj.com +ylstatic.com +yltpcb.com +yluu.com +ylwl.cc +ylws.net +ylwyw.com +ylxdtww.com +ylxw.net +ylyk.com +ylzbtech.com +ylzms.com +ylzpay.com +ym-trans.com +ym.run +ym01.tech +ym1998.com +ym23.com +ym68.cc +ym75168.com +ymadly.com +ymailcampaign.com +ymall.com +ymanz.com +ymapp.com +ymark.cc +ymars.com +ymatou.com +ymatou.hk +ymbaidu.com +ymbank.com +ymbq301.com +ymcall.com +ymcart.com +ymd520.net +ymd88.com +ymexf.com +ymfile.com +ymgmno.com +ymhudong.com +ymiot.net +ymkuzhan.com +ymlfxp.com +ymlinks.com +ymm56.com +ymmfa.com +ymmzb.com +ymoxuan.com +ympcb.com +ymq.com +ymraaa.com +ymrcw.vip +yms.cool +ymsteam.com +ymt.com +ymt360.com +ymtc.com +ymtmt.com +ymtnet.com +ymuuy.com +ymvkt.com +ymxinke.com +ymxinxi.com +ymxxs.com +ymyun.com +ymyxzz.com +ymzer.com +yn-tobacco.com +yn12396.com +yn58.com +ynairport.com +ynb2dca.com +ynbit.com +ynbojie.com +yncix.com +yncuc.net +yncunguan.com +yndaily.com +yndkt.com +yneg-ev.com +yneit.com +ynet.com +ynfabu.com +ynfxw.com +yngd016.com +ynggzy.com +yngp.com +ynguangsui.com +yngw518.com +yngwyw.org +ynhanfu.com +ynhl.net +ynho.com +ynhouse.com +ynhr.com +ynhzm.com +yni84.com +ynikon.com +ynkcfc.com +ynkmjj.com +ynlvyou14.com +ynlvyou20.com +ynmec.com +ynnits.com +ynpxrz.com +ynrayy.com +ynshangji.com +ynshf.com +ynshijian.com +ynsjg.com +ynteng.com +ynwfkj.net +ynwin.com +ynx111.com +ynxdfpr.com +ynxr.com +ynxxb.com +ynycloud.xyz +ynyes.com +ynyp.com +ynzczs.com +ynzg.org +ynzp.com +ynzxpx.com +ynzy-tobacco.com +yo4399.com +yo9.com +yoagoa.com +yobangbang.com +yobbom.com +yobo360.com +yobolove.com +yocajr.com +yocan.net +yocyxc.com +yodak.net +yodakgroup.com +yodao.com +yodao.net +yodo1.com +yodo1api.com +yodu.org +yoe365.com +yofc.com +yofcjs.com +yofijoy.com +yofish.com +yofond.com +yofond.net +yofus.com +yogeev.com +yogorobot.com +yoher.com +yoho.org +yohoblk.com +yohoboys.com +yohobuy.com +yohogirls.com +yoholm.com +yohomars.com +yohoshow.com +yohui.com +yojl.net +yojochina.com +yoju360.com +yoju360.net +yoka.com +yokacdn.com +yokagames.com +yokmob.com +yokong.com +yolanda.hk +yolewa.com +yolexi.com +yolinkmob.com +yolipai.net +yoloboo.com +yoloho.com +yoloogames.com +yolyon.com +yomiko.cloud +yomiko.club +yomiko.fun +yomiko.tech +yomob.com +yomocode.com +yongaomy.com +yongche.name +yongche.org +yongchengren.com +yongfan99.com +yonghe2008.com +yongheng.online +yonghongtech.com +yonghuigj.com +yonghuivip.com +yongkao.com +yongqianbao.com +yongqiaonews.com +yongqischool.net +yongsheng-sl.com +yongshikj.com +yongsy.com +yongtu.net +yongxinby.com +yongxinji.com +yongxintex.com +yongzhentang.com +yonho.com +yonlive.com +yonyou.com +yonyouaud.com +yonyoubao.com +yonyouccs.com +yonyoucloud.com +yonyoufintech.com +yonyougov.com +yonyouny.com +yonyouoa.com +yonyouup.com +yoo-hn.com +yoo616.com +yoodb.com +yooek.com +yooerjia.com +yoohouse.com +yoojia.com +yooknet.com +yooli.com +yoolin.cc +yooojie.monster +yoooooooooo.com +yoopu.me +yootou.com +yooxun.com +yooyoo360.com +yoozhe.com +yoozoo.com +yoozword.com +yopoint.cc +yopoint.com +yoptech.com +yopwork.com +yoqoo.com +yoqu.net +yorentown.com +york33.com +yoseleather.com +yostar.net +yotta800.com +you-mi.net +you1ke.com +you200.com +you2php.com +you6qu.com +youba.com +youba123.com +youban.com +youbangyun.com +youbbs.org +youbeichefu.com +youbh.com +youbian.com +youboy.com +youc.com +youcaizhushou.com +youcash.com +youcha.net +youchedaren.net +youchedi.com +youchejiuxing.com +youchent.com +youcheyihou.com +youchuhuodong.com +youcloud.com +youda8.com +youdaili.net +youdaiw.com +youdajx.com +youdanhui.com +youdao.com +youdas.com +youdashidai.com +youdawangluo.com +youdemai.com +youdiancms.com +youdingte.com +youdubook.com +youduzw.com +youdwh.com +youease.net +youedata.com +youeryun.com +youez.com +youfang123.com +youfangou.com +youfangzx.com +youfen666.com +youfubao.vip +youfunlab.com +yougababy.com +youganghangmoguan.com +yougaoji.com +yougaoyx.com +youginorg.com +yougou.com +yougu.tv +youguo.com +youguoquan.com +youguu.com +youhaodongxi.com +youhaosoft.com +youhaosuda.com +youhro.com +youhua.com +youhuaaa.com +youhuafuzhi.com +youhuashu.com +youhugmedia.com +youhundao.com +youhutong.com +youideal.net +youinsh.com +youjiands.net +youjiangzhijia.com +youjiao.com +youjiaus.net +youjiaxiao.com +youjidi.net +youjimilk.com +youjingnetwork.com +youjiuhealth.com +youjoy.tv +youkake.com +youke.co +youke.com +youke365.site +youkecn.com +youked.com +youkeda.com +youkego.com +youkelai.com +youkexueyuan.com +youkia.net +youkongkan.com +youkongwan.com +youku.com +youkua.net +youkudown.com +youlanw.com +youle55.com +youleliwu.com +youlian.fun +youlianfuwu.com +youliangda.com +youliaobaike.com +youliaoyi.com +youlinyouke.com +youlishipin.com +youloft.com +youlong123.com +youlongciqing.com +youlongteng.com +youlu.com +youlu.net +youlu6.com +youluwx.com +youmai.com +youmaolu.com +youme.im +youmenr.com +youmew.com +youmhdxb.com +youmi.net +youmiad.com +youminonline.com +youmobi.com +youmodou.com +youmooyouyoung.com +youneng.com +younet.com +younfor.com +young40.com +youngor.com +youni.im +youo.net +youoh.com +youonbike.com +youook.com +youpengw.com +youpin898.com +youpinhaoche.com +youpinppt.com +youpinshop.vip +youpinx.com +youpinzhekou.com +youpumao.com +youpzhaohuo.com +youqichuyun.com +youqiwu.com +youqizhan.com +youqo.com +youqu.in +youqudao.com +youranshare.com +yourbin.com +yourcollect.net +yourdream.cc +youren5.com +yourtion.com +yousc.com +youscm.com +yousee.com +yousenjiaoyu.com +youshang.com +youshanmeishi.com +yousheng.shop +youshenhudong.com +yousheyoujia.com +youshibeike.com +youshifu.com +youshikoudai.com +youshixiu.com +youshop04.com +youshop10.com +youshu.cc +youshuba.cc +youshuge.com +yousmyq.com +yousuu.com +yousuyuan.com +youtaidoors.com +youtaidu.com +youtak.com +youthi.com +youtiandi.com +youtianli.com +youtibao.com +youtoart.com +youtoupiao.com +youtu.com +youtube-dubbing.com +youtuzi.com +youtx.com +youwawa.com +youwei.com +youwinedu.com +youwo.com +youwoxing.net +youwoyou.com +youwu.today +youwusc.com +youxi.com +youxi01.com +youxi377.com +youxi527.com +youxi528.com +youxi567.com +youxia.com +youxiacg.com +youxiaju.com +youxiake.com +youxiake.net +youxiamotors.com +youxiaoad.com +youxiaoge.com +youxiaohou.com +youxiaxiazai.com +youxibao.com +youxibaoku.com +youxibd.com +youxicdn.com +youxichaguan.com +youxicheng.net +youxicitang.com +youxicity.com +youxicool.net +youxidaxue.com +youxidr.com +youxidun.com +youxiduo.com +youxifan.com +youxigongchang.com +youxigt.com +youxigu.com +youxigui.com +youxih.com +youxihezi.net +youxihun.com +youxij.com +youxike.com +youxila.com +youximao.com +youximt.com +youxin.com +youxingapp.com +youxiniao.com +youxinpai.com +youxinshi.com +youxinsign.com +youxipai.com +youxiping.com +youxiputao.com +youxiqiang.com +youxiqun.com +youxishuo.com +youxitexiao.com +youxituoluo.com +youxiuhui.com +youxiula.com +youxiwangguo.com +youxiwugui.com +youxixf.com +youxixj.com +youxizhan.com +youxizhongguo.com +youxuan.com +youxuanan.com +youxuangu.com +youxueke.com +youyacao.com +youyanchu.com +youyannet.com +youyantech.com +youyeetoo.com +youyegame.com +youyi-game.com +youyigame.com +youyilm.com +youyiqi.com +youyiqiaogou.com +youyiweizhan.com +youyizhidao.com +youyo88.com +youyou234.com +youyouwin.com +youyuan.com +youyuanapp.com +youyuanw.com +youyudf.com +youyuegame.com +youyur.com +youyuwei.com +youyuwo.com +youyy.com +youzan.com +youzanyun.com +youzhai.com +youzhan.org +youzhao.com +youzhi.net +youzhicai.com +youzhiwk.com +youzhixueyuan.com +youzhuan.com +youzi02.com +youzibuy.com +youzijie.com +youziku.com +youzikuaibao.com +youzu.com +yovisun.com +yovocloud.com +yovole.com +yovyuan.com +yowbbxi.cyou +yowhale.com +yowooa.com +yoxiha.com +yoximi.com +yoxyok.com +yoya.com +yoyi.tv +yoyiapp.com +yoyo1900.com +yoyojacky.com +yoyojie.com +yoyokko.com +yoyotown.com +yoyou.com +yoyou.net +yoytang.com +yozodcs.com +yozodoc.com +yozodocs.com +yozooffice.com +yozosoft.com +yozsc.com +yp007.net +yp900.com +ypank.com +ypfph.com +ypgyyq.com +yph-shop.com +yphuifu.com +ypiao.com +ypicw.com +ypjiameng.com +ypk.cc +yplady.com +ypppt.com +ypshengxian.com +ypstech.com +ypzdw.com +ypzhushou.com +yq027.com +yq1751.com +yq51.com +yqb.at +yqb.com +yqb920.com +yqbank.com +yqbdt.com +yqbimg.net +yqfml.com +yqh.com +yqh5.com +yqhapp.com +yqhbook.com +yqhlm.com +yqhouseware.com +yqhzz.com +yqjsj.com +yqjtgs.com +yqkbook.la +yqkk.link +yqkqw.com +yqmb001.com +yqmh.com +yqphh.com +yqsbz.com +yqslmall.com +yqsn.com +yqtc.com +yqtxzm.com +yqwyx.xyz +yqxhl.com +yqxiuyoung.com +yqxs.cc +yqxsge.cc +yqzww.cc +yqzww.la +yqzww.net +yr-info.com +yrcbank.com +yrgu.com +yrmpay.com +yrom.net +yrsm.net +yruan.com +yrucd.com +yrw.cc +yrw.com +yrwy.com +yrxsw.com +yryz.com +yrz.name +yrzjw.com +ys.cc +ys001.com +ys137.com +ys168.com +ys1688.cc +ys2345.com +ys4fun.com +ys630.com +ys7.com +ys720.com +ys8.com +ys991.com +ysaedesign.com +ysali.com +yscase.com +yscb.net +ysch.cc +yscq.com +ysedu.com +ysepan.com +ysepay.com +ysext.com +ysfog.com +ysgcdns.xyz +ysgfood.com +ysgtg.com +ysgushi.com +yshlmlr.com +yshp.net +yshsports.com +ysicing.me +ysicing.net +ysidcz.com +ysiis.com +ysjf.com +ysjgames.com +yskjzj.com +yslcw.com +yslqo.com +yslyhr.com +ysmiji.com +ysmine.com +ysoow.com +ysplay.com +ysrh.com +yssp88.com +ysstech.com +ysszzs.com +yst100.net +ysten.com +ysug.com +ysw365.com +ysw68.com +yswebportal.cc +yswh.com +yswlgame.com +yswliot.com +yswpq.com +ysx8.com +ysx8.net +ysx8.vip +ysx9999.com +ysxapp.com +ysxs8.com +ysxs8.vip +ysys.com +ysyycv.com +yszx99.com +yszyun.com +yszzlt.com +yt1998.com +yt211.com +yt69.com +yt698.com +yta-tech.com +ytaotao.net +ytb.io +ytbbs.com +ytbfilm.com +ytcbh.com +ytcj.com +ytcutv.com +ytdaily.com +ytdcloud.com +yte1.com +yteng.net +ytesting.com +ytet.org +ytfuzhen.com +ytghnb.com +ythouse.com +ytjcpj.com +ytlh120.com +ytlvbao.com +ytmedia.tv +ytnetgame.com +ytoexpress.com +ytoglobal.com +ytop8.com +ytpp.com +ytrenyu.com +ytsanchuan.com +ytszg.com +ytsznyy.com +yttwewx.com +ytud.net +ytusmart.com +ytxedu.com +ytxsc.com +ytzhihui.com +ytzq.com +yu.gs +yu1u.org +yu72.com +yuan7i.com +yuanbao.com +yuanbaobaoxian.com +yuanbaohui.com +yuanbin.me +yuancdn.com +yuancefund.com +yuanchengxiezuo.com +yuandi.com +yuandiancredit.com +yuanfeng021.com +yuanfr.com +yuanfudao.biz +yuanfudao.com +yuanfudao.ws +yuangongbao.com +yuanhaitaiji.com +yuanhuikai.com +yuaniis.com +yuanjie.org +yuanjisong.com +yuanjoy.com +yuanlai.com +yuanlian365.com +yuanliao.info +yuanlin.com +yuanlin365.com +yuanlin8.com +yuanma.net +yuanmadian.com +yuanmait.com +yuanmas.com +yuanmatao.com +yuanmawu.net +yuanqi46.com +yuanqiao.net +yuanqingsh.com +yuanqitu.com +yuanrenbang.com +yuanrengu.com +yuanrenxue.com +yuansfer.com +yuanshanbx.com +yuanshen.com +yuanshichang.com +yuansikeji2021.com +yuansouti.com +yuantengfei.org +yuantiku.com +yuantoushuo.com +yuantutech.com +yuanu.com +yuanxinbaoxian.com +yuanxuxu.com +yuanyangcoffee.com +yuanyeer.com +yuanyi.biz +yuanyoutao.com +yuanzhexi.com +yuanzidai.com +yuanzige.com +yuanzun.fun +yuanzunxs.cc +yuapt.com +yubaike.com +yubangweb.com +yubb12.site +yubohr.com +yuboinfo.com +yubosun.com +yucccc.com +yuchai.com +yuchen360.com +yucheng0769.net +yuchenw.com +yuchu3d.com +yuchuantech.com +yucl.com +yucoolgame.com +yucui.org +yudi.com +yudianda.com +yudiangame.vip +yudouyudou.com +yue365.com +yue7.com +yuebagu.com +yuebei.vip +yuebingcheng.com +yuebooemt.com +yuecdn.net +yuecheng.com +yuedaoec.com +yuedisk.com +yuedu.pro +yuedufang.com +yueduji.com +yuedunovel.com +yueduwen.com +yueduyun.com +yuego.net +yuegowu.com +yuehuan.com +yueimg.com +yueji.com +yuejianzun.xyz +yuejiewangluo.com +yuejuanbao.com +yuekenet.com +yuekeyun.com +yuelanxinghe.com +yueloo.com +yuelu.net +yuelun.com +yueme.tv +yuemei.com +yuenshui.com +yuenwooping-truelegend.com +yuepaijia.com +yueplus.ink +yueqi.com +yueqiquan.com +yueqiweixiu.com +yueqiziliao.com +yueque.com +yuer.com +yuerbao.com +yueru.com +yuesuoping.com +yuetu.tech +yuetutu.com +yuetuvip.com +yuetuvip.net +yueweimusic.com +yuewen.com +yuexing.com +yuexingfurniture.com +yuexinli.com +yuexirc.com +yuexiu.com +yuexunedu.com +yueyaa.com +yueyanglou.com +yueyat.net +yueyear.com +yueyouxs.com +yueyq.com +yueyu114.com +yueyuanzhiye.com +yueyues.com +yueyuevip.com +yueyueworld.com +yueyuez.com +yueyuzhushou.com +yueyv.com +yuezeyi.com +yufeitongji.com +yufu365.com +yufuid.com +yufuid.net +yufulaidoors.com +yugasun.com +yugew.com +yuguo.com +yuguo.us +yugusoft.com +yuhaiyiya.com +yuheii.com +yuheng.tech +yuhengye.com +yuhou.com +yuhuijob.com +yuiapi.com +yuike.com +yujia.com +yujiahui.com +yujianpay.com +yujunjie.com +yujunren.com +yujzw.com +yukeinfo.com +yukhj.com +yukicomic.com +yukiimall.com +yukuai.com +yule114.com +yule116.com +yule263.com +yuledaily.com +yulehezi.com +yuleie.com +yulejiaodian.com +yulekan.com +yuleres.com +yuli.be +yulicdn.com +yulinapp.com +yulingtianxia.com +yulongjun.com +yuloo.com +yulore.com +yulorepages.com +yulu1.com +yulu5.com +yulucn.com +yulumh.com +yumaoshu.com +yumchina.com +yumenikki.info +yumi.cc +yumi.com +yumimobi.com +yuming.com +yumingguwen.com +yumixitong.com +yummy.tech +yumstone.com +yun-gu.com +yun-idc.com +yun-img.com +yun-jinrong.com +yun-live.com +yun.ai +yun123.com +yun61.com +yunadmins.com +yunannet.com +yunaq.com +yunarm.com +yunaw.com +yunba.io +yunban.com +yunbang.net +yunbaoriji.com +yunbei.com +yunbiao.tv +yunbiaosoft.com +yunbiaowulian.com +yunbiaozhun.com +yunbiji.com +yunbook.vip +yunbuzhan.com +yuncai5.com +yuncaijing.com +yuncdn.bid +yuncdn123.com +yuncdn263.com +yuncdndun.com +yunceng.com +yuncheng.com +yunchou.com +yuncii.com +yuncode.net +yunconfig.com +yunda56.com +yundaex.com +yundagongyi.com +yundangan.com +yundasys.com +yundianjia.com +yundianseo.com +yundiantech.com +yundongfang.com +yundonghao.com +yundongit.com +yundousoft.com +yunduanzhishang.com +yundui.cc +yunduimedia.com +yundun.com +yundun.shop +yunduncdn.com +yunduncdns.com +yunduncname.com +yundunddos.com +yundundns.com +yundunjiasu.com +yunduns.com +yundunwaf.com +yundunwaf1.com +yundunwaf2.com +yundunwaf3.com +yundunwaf4.com +yundunwaf5.com +yunduocrm.com +yunduoke.net +yunduoketang.com +yunduokt.net +yundzh.com +yunews.net +yunexam.com +yunfabiao.com +yunface.com +yunfaka.com +yunfalv.com +yunfan.com +yunfancdn.com +yunfancdn.net +yunfandns.com +yunfangtan.com +yunfanka.com +yunfanyouxi.com +yunfei89.com +yunfutech.com +yungangbj.com +yungao-ssp.com +yungao.mobi +yungongchang.com +yungouos.com +yungousj.net +yunguajibao.com +yungujia.com +yunhaicangshu.com +yunhaike.com +yunhaiqiao.com +yunhedata.com +yunheit.com +yunhesanwan.com +yunhetong.com +yunhou.com +yunhuasheji.com +yunhulu.org +yunhuotong.net +yunhuzx.com +yunifang.com +yunify.com +yunio.com +yunip.com +yunipo.com +yunji.com +yunjian.com +yunjiasu-cdn.net +yunjiasu.com +yunjiasu360.com +yunjiasu666.com +yunjiazheng.com +yunjifarm.com +yunjiglobal.com +yunjitele.com +yunjiweidian.com +yunjix.com +yunjuwuliu.com +yunkangdoctor.com +yunkanpan.com +yunkawulian.com +yunke.com +yunkezan.com +yunkongpingban.com +yunlibeauty.com +yunlie.net +yunlietou.com +yunliketech.com +yunliunet.com +yunlucn.cc +yunmai.com +yunmayi.com +yunmd.net +yunmeipai.com +yunmiao.co +yunmishu365.com +yunmoseo.com +yunmoxing.com +yunna.me +yunnandns.com +yunnanjun.com +yunnao.com +yunnex.com +yunnut.com +yunos-inc.com +yunos-tv.com +yunos.com +yunpaiwang.net +yunpan.com +yunpansou.cc +yunpanx.com +yunpanziyuan.com +yunpanziyuan.xyz +yunpei.com +yunpian.com +yunpiao.net +yunpp.com +yunqi.org +yunqi2050.com +yunqiandai.com +yunqikecrm.com +yunqingugm.com +yunqishi.net +yunqishi8.com +yunqiyqh.com +yunque360.com +yunrg.com +yunrongu.com +yunruift.com +yunruikj.com +yuns1.net +yunscache.cc +yunsd.net +yunser.com +yunshan.net +yunshangnc.com +yunshanmeicai.com +yunshiketang.xyz +yunshipei.com +yunshipei.net +yunshouji123.com +yunshow.com +yunshuxie.com +yunsiya.com +yunsom.com +yunsong.com +yunsou168.com +yunstu.net +yunsuan.org +yunsuanzi.com +yunsuo.com +yunsuo.xyz +yuntaigo.com +yuntask.com +yuntemai.com +yuntianti.com +yuntingiot.com +yuntongbu.com +yuntongcloud.com +yuntongtech.com +yuntongxun.com +yuntouxiang.com +yuntu.io +yuntue.com +yunvm.com +yunvs.com +yunwei8.com +yunweibang.com +yunweipai.com +yunwenxue.com +yunwins.com +yunwuxian.net +yunxi.tv +yunxi10.com +yunxiao.com +yunxin123.com +yunxindai.com +yunxindns.com +yunxinfa.com +yunxinshi.com +yunxiu.com +yunxuetang.com +yunxzb.com +yunyi-dd.com +yunyihudong.com +yunyijk.com +yunyin.org +yunyingdashu.com +yunyingketang.com +yunyingmiao.com +yunyingpai.com +yunyingxuetang.com +yunyingzhe.com +yunyis.com +yunyize.com +yunyoufeitian.com +yunyouni.com +yunyousj.com +yunyu123.com +yunyue.cc +yunyuh5.com +yunzhan365.com +yunzhangfang.com +yunzhanggui.net +yunzhanghu.com +yunzhanxinxi.com +yunzhifankeji.net +yunzhijia.com +yunzhitai.com +yunzhixiyou.com +yunzhizao.net +yunzhu100.com +yunzmall.com +yunzongnet.com +yunzujia.com +yunzz.net +yupaowang.com +yupiao.info +yupoo.com +yupu.com +yuqianshu.com +yuqiaolong.com +yuquanhosp.com +yuque.com +yuriimg.com +yusa.me +yusainorthwest.com +yushanfang.com +yushengny.com +yushexuetang.com +yushin88.com +yushiyan.net +yushu5.com +yushunews.com +yusi.com +yusi.tv +yusi123.com +yutai365.com +yutaoyouxi.com +yuteng.site +yutennet.com +yutian.cc +yutianedu.com +yutong.com +yutuwo.com +yuu1.com +yuuboo.net +yuucn.com +yuudnn.com +yuwan-game.com +yuweixian.com +yuwell.com +yuwellgroup.com +yuwen360.com +yuwenchaoshi.com +yuwenmi.com +yuwennews.com +yuwenxiandaihua.com +yuxianall.com +yuxiaor.com +yuxinews.com +yuxingqiu.com +yuxitech.com +yuxungs.com +yuyicai.com +yuyin.tv +yuyu.com +yuyue111.com +yuyue27.com +yuyueshop.com +yuyuetec.com +yuyuhunter.com +yuyuntech.com +yuzeli.com +yuzhaimedia.com +yuzhenhai.com +yuzhike.com +yuzhong.net +yuzhongxxw.com +yuzhouwan.com +yuzhua.com +yuzhuagame.com +yuzhuan.com +yuzhulin.com +yuzi.net +yuzua.com +yuzvf.com +yvv.in +yvzfgigpiwmofux.com +yw11.com +yw2005.com +ywart.com +ywbank.com +ywcbs.com +ywdier.com +ywditan315.com +ywec.net +ywg7.com +ywgd.com +ywggzy.com +ywies-shpd.com +ywindex.com +ywinf.com +ywky.org +ywlm.net +ywnds.com +ywnz.com +ywopt.com +ywork.me +ywshouyou.com +ywsoftware.com +ywtd.xyz +ywtuchuang1.com +ywwpay.com +ywxue.com +ywxzz.com +ywyanxing.com +ywyishi.com +yx-g.com +yx-life.com +yx-s.com +yx-s.net +yx007.com +yx0599.com +yx090.com +yx10011.com +yx192.com +yx231.com +yx643.com +yx7088.com +yx74.com +yx7507.com +yxbao.com +yxbhhbkj.com +yxbox91.com +yxbuluo.com +yxcax.com +yxcc.net +yxchg.com +yxcity.com +yxdaily.com +yxdd.com +yxdgc.com +yxdh.com +yxdimg.com +yxdmgame.com +yxdoc.com +yxdown.com +yxdr.com +yxdsgs.com +yxduo.com +yxdwj.com +yxecg.com +yxen.net +yxfw.com +yxfwai.com +yxhenan.com +yxhhdl.com +yxhi.com +yxhqj.com +yxi.cc +yxiangzu.com +yxiannetgz.com +yximgs.com +yxin18.com +yxinbao.com +yxit.net +yxixy.com +yxjedu02.com +yxjia.com +yxkfw.com +yxkjlcd.com +yxlaba.com +yxlady.com +yxlady.net +yxle.net +yxlink.com +yxlmdl.net +yxm.com +yxmspx.com +yxn.fun +yxool.com +yxou.com +yxpk.net +yxpms.com +yxptfs.com +yxqchg.com +yxqiche.com +yxrank.com +yxrb.net +yxsc33.com +yxsea.com +yxsos.com +yxss.com +yxsss.com +yxt-tattoo.com +yxt.com +yxtk.xyz +yxttzb.com +yxtvg.com +yxwoo.com +yxwsgame.com +yxxgame.com +yxxurl.com +yxxzbox.com +yxyfhgc.com +yxyzjx.com +yxz.me +yxzb.tv +yxzd.info +yxztyy.com +yxzu.com +yxzxgy.com +yy-xjy.com +yy.com +yy138.com +yy2169.com +yy2hd.com +yy4080.com +yy591.com +yy6.fun +yy6080.org +yy845.com +yyasp.net +yybox.cc +yycec.com +yyclouds.com +yyclub.org +yycoin.com +yycqc.com +yycro.com +yydbzz.com +yydcs.com +yydidai.com +yyds.co +yydzh.com +yyearth.com +yyedufeb.com +yyes.shop +yyestar.com +yyetss.com +yyfangchan.com +yyfax.com +yyfdcw.com +yyfsb.com +yyfunning.com +yyg.com +yygjuu.club +yygold.com +yygrammar.com +yygzs.com +yyhao.com +yyhh.com +yyhhaa.com +yyhn365.com +yyjr.cc +yyjxcloud.com +yyjzt.com +yyk100.com +yyk2.com +yykj.site +yylending.com +yylm.org +yymedias.com +yyming2.com +yymoban.com +yynetwk.com +yyouren.com +yypm.com +yypt.com +yyq.com +yyrec.com +yyrenting.com +yyrplay.com +yyrtv.com +yystatic.com +yysub.net +yysweb.com +yytad.com +yytcdn.com +yytek.com +yytingli.com +yyuap.com +yyuasa.com +yywlsj.com +yywords.com +yywt.online +yywz123.com +yywzw.com +yyx168.com +yyxtao.com +yyxwzx.com +yyxx100.com +yyxxgame.com +yyxxgameyw.com +yyy5414.com +yyyeee.com +yyyy.games +yyyyy.run +yyziyuan1.com +yyzsoft.com +yyzw.com +yyzyytj.com +yyzzsem.com +yz-iot.com +yz-show.com +yz061.com +yz063.com +yz168.cc +yz2pp.com +yz360.cc +yz4l.com +yzbank.com +yzbo.tv +yzbqzx.net +yzcyjy.com +yzdir.net +yzdjkcy.com +yzdn.net +yzdx99.com +yzfang.com +yzfc8.com +yzfjy.com +yzgjgs.com +yzgnet.com +yzgttm.com +yzhbw.net +yzhsk.com +yzinter.com +yzipi.com +yzja.com +yzjjw.net +yzjsxy.com +yzkimage.com +yzkjpcb.com +yzlxjt.com +yzmcms.com +yzmcxx.com +yzmg.com +yzmiao03.com +yzmjw.com +yzmoney.com +yznano.com +yznn.com +yzops.net +yzpetfood.com +yzrb.com +yzrom.com +yzrshop.com +yzs.com +yzsbh.com +yzspdq.com +yzt-tools.com +yztcdn.com +yzwb.com +yzwb.net +yzxcfdj.com +yzyxgame.com +yzzs.cc +yzzsoft.com +yzzzn.com +z-bank.com +z-dd.net +z-inn.com +z-zhuji.com +z0.cc +z01.com +z0ukun.com +z1233.com +z12345.com +z17.link +z28j.com +z2sci.com +z316.com +z3quant.com +z4bbs.com +z5a.com +z5encrypt.com +z5z4.com +z6r7.com +z701.com +z729.com +z7xz.com +z7ys.com +z8q.cc +za-doctor.com +zablog.me +zac1993.com +zackku.com +zackxu.com +zaduonews.com +zadzs.com +zaeke.com +zahtb.com +zahuibaike.com +zahuishi.com +zahuoji.com +zai-art.com +zaiduu.com +zaifan.com +zaih.com +zaihuangshi.com +zaijia.com +zaijiawan.com +zailouxia.com +zaiminglvsuo.com +zainanjing365.com +zaitong.net +zaiwai.com +zaixian-fanyi.com +zaixianfanyi.com +zaixianjianli.com +zaixianjisuan.com +zaixiankaoshi.com +zaixs.com +zaiyulin.com +zaiyunli.com +zaizai8.com +zajilu.com +zakdy.com +zaker.com +zallcn.com +zallfuhui.com +zallgo.com +zallimg.com +zalljinfu.com +zampda.net +zampdmp.com +zampdsp.com +zamplink.net +zamplus.com +zanao.com +zanba.com +zanbai.com +zangaifamily.com +zangaopet.com +zangdiyg.com +zanghaihuatxt.com +zangx.com +zangyitong.com +zanpic.com +zantainet.com +zanyiba.com +zaobang.com +zaoche168.com +zaodao.net +zaodin.com +zaodula.com +zaofabiao.com +zaofacai.com +zaogai.com +zaojiance.com +zaojiance.net +zaojiao.com +zaojiu.com +zaojv.com +zaole.net +zaoshu.so +zaowandushu.com +zaoxu.com +zaoyang.org +zaoys.com +zaozuo.com +zarcw.com +zastatic.com +zasv.com +zasv.net +zat.cc +zatan.com +zatest.com +zaticdn.com +zatxt.com +zaxdcredit.com +zazhipu.com +zazsz.com +zb-kc.com +zb1.org +zb580.tv +zbbar.net +zbfilm.com +zbgedu.com +zbgl.net +zbgscm.com +zbhouse.com +zbintel.com +zbird.com +zbisq.com +zbj.com +zbjdev.com +zbjdr.com +zbjiangsu.com +zbjimg.com +zbjsaas.com +zbjwork.com +zbkszx.net +zbling.com +zblogcn.com +zbluqian.com +zblzm.xyz +zbmeishu.com +zbnews.net +zbopr.net +zbqlm.com +zbrushcn.com +zbstatic1.com +zbt.com +zbt.net +zbuhe.com +zbusa.com +zbwbbs.com +zbwdj.com +zbwg.cc +zbxinmeiti.com +zbxsoft.com +zbxyh.com +zbytb.com +zbyz.net +zbz.com +zbzaixian.com +zbzdm.com +zbzhandian.com +zbzw.la +zc-ha.com +zc-jk.com +zc0.net +zc0317.com +zc532.com +zcaijing.com +zcbxgg.com +zcccc.com +zcdiesel.com +zcdog.com +zcedustudy.com +zcfc.com +zcfirst.com +zcfuhua.com +zcfy.cc +zcgsfy.com +zcimg.com +zcitidc.com +zciv.com +zcjbgame.com +zcjxedu.com +zclock.xyz +zcmlc.com +zcoa365.com +zcobrand.com +zcom.com +zcoming.com +zcooler.com +zcosz.com +zcphp.com +zcppt.com +zcqh.com +zcqss.com +zcread.com +zcry007.com +zcs.cc +zcsbbs.com +zctl.net +zctpt.com +zctx.com +zcwlsc.com +zcwxjx.com +zcwz.com +zcxn.com +zcycdn.com +zcyiyao.com +zczbzx.com +zczj.com +zd-power.com +zd.hk +zd200572.com +zdao.com +zdaye.com +zdcj.net +zdcjw18.com +zdctid.com +zddhr.com +zddr.com +zddream.com +zdexe.com +zdface.com +zdfans.com +zdfx.net +zdgzc.com +zdh168.com +zdhaitao.com +zdhaitao.net +zdhnayr.com +zdic.net +zdkqyy.com +zdlife.com +zdlink.com +zdlpk.net +zdmimg.com +zdmr.net +zdnscloud.biz +zdnscloud.com +zdnscloud.info +zdnscloud.net +zdomo.com +zdoz.net +zdpeanut.com +zdrcrx.com +zdrcw.com +zdsee.com +zdslb.com +zdsr.net +zdwang.com +zdwfy.com +zdworks.com +zdwx.net +zdz.la +zdzdm.com +zdzwtesting.com +zdzxtech.com +ze13.com +ze5.com +zealer.com +zeali.net +zealquest.com +zealsafe.net +zebred.com +zechoriah.com +zeda1.com +zedukm.com +zeekrlife.com +zeelis.com +zeesin.com +zego.im +zeguoren.com +zeidei.com +zeisp.com +zeixihuan.com +zejiexinxi.com +zejiri.net +zeju.com +zeldacn.com +zelinai.com +zemismart.com +zemuo.com +zen-est.com +zengdefei.com +zenggaocn.com +zengjunpeng.com +zengrong.net +zenha.net +zenixauto.com +zenoven.com +zentao.net +zentaopm.com +zeperd.com +zepp.com +zeq366.net +zerobreeze.com +zerocollege.com +zerogfans.com +zeroling.com +zeroonead.com +zeruns.tech +zerustech.com +zesee.com +zesidasi.com +zesmob.com +zeststore.com +zetast.com +zx350zx.com +zeuux.com +zeuux.org +zexiaoqiao.com +zeyi.cc +zeyouquan.com +zeze.com +zezhenwangluo.com +zf-8.com +zf3d.com +zfancy.net +zfbhsxg.com +zfboke.com +zfbzhsq.com +zfcm.net +zfdmkj.com +zff888.com +zfhz.org +zfimg.com +zfkjgw.com +zfl9.com +zfowed.com +zfrmt.com +zfrontier.com +zfsc.com +zfsoft.com +zft.com +zfvnet.com +zfw.net +zfwimg.com +zg-import.com +zg-imsoft.com +zg114w.com +zg118.com +zg163.net +zg3721.com +zg388.com +zg3china.com +zgaxr.com +zgbenrun.com +zgbjyx.com +zgbk.com +zgbmcl.com +zgboke.com +zgbywl.com +zgc-bigdata.org +zgc-dsa.org +zgcahpw.com +zgcbank.com +zgcbb.com +zgcdiy.com +zgchawang.com +zgchrx.com +zgcicc.com +zgcindex.org +zgcjm.org +zgcjpx.com +zgcmlm.com +zgcsa.org +zgcswhcbw.com +zgcszkw.com +zgcups.com +zgddek.com +zgddmx.com +zgddwhzb.com +zgdlwl.com +zgdsw.com +zgdwzp.com +zgdxhbkf.com +zgdydyxh.com +zgfwgj.com +zgfxnews.com +zgfznews.com +zgg.com +zggbdsw.net +zggcks.com +zggdjj.com +zggjgy.com +zgglkx.com +zgglyun.com +zggonglue.com +zggqzp.com +zggua.com +zggx.net +zggys.com +zghde.com +zghhcyw.com +zghhzx.net +zghotnews.com +zghouse.net +zghtcd.com +zghtedu.com +zghtqk.com +zgjcks.com +zgjhjy.com +zgjiemeng.com +zgjjzyjy.org +zgjm.net +zgjm.org +zgjsks.com +zgjtb.com +zgjxcad.com +zgjxf.com +zgjyjj.com +zgjymhw.com +zgkao.com +zgkashi.com +zgkawah.com +zgkcc.com +zgkfzz.com +zgkjb.com +zgkjcx.com +zgkjw.org +zgkjxww.com +zgkjzx.com +zgkqw.com +zglb.org +zglcyx.com +zglibrary.com +zglipin.com +zgljl2012.com +zglkq.net +zglscom.com +zglww.net +zglxw.com +zglyfair.com +zgmba.com +zgmcxw.com +zgmdbw.com +zgmmtuan.com +zgmsbw.com +zgmsbweb.com +zgmxl.com +zgncjr.com +zgnfys.com +zgnhzx.com +zgnt.net +zgny.com +zgong.com +zgpingshu.com +zgpingxuan.com +zgps168.com +zgpts.com +zgqkk.com +zgqw.com +zgqyhzfy.com +zgqywhcbw.com +zgqyzxw.com +zgrdnews.com +zgrlm.com +zgruisai.com +zgrybhw.com +zgsc123.com +zgsclp.com +zgsd.net +zgserver.com +zgshifu.com +zgshige.com +zgshjj.com +zgshoes.com +zgshq.com +zgshxfw.com +zgsj.com +zgsmmhw.com +zgsnzj.com +zgsof.com +zgsssss.com +zgsta.com +zgswcn.com +zgsydw.com +zgsynews.com +zgtghccl.com +zgtianqi.com +zgtsm.com +zgtuku.com +zgtygg.com +zgtzhb.com +zgui.com +zguonew.com +zgw.com +zgweimeng.com +zgwenku.com +zgwhfe.com +zgwhw.com +zgwlcsj.com +zgwstxc.com +zgwt.co +zgxcfx.com +zgxf.org +zgxk.org +zgxledu.com +zgxqwqh.com +zgxrjy.com +zgxue.com +zgxyzx.net +zgycgc.com +zgyeda.com +zgyey.com +zgygsy.com +zgyhys.org +zgyinpin.com +zgyongxin.com +zgys.net +zgyssyxh.com +zgyxsw.org +zgyygl.com +zgzb.com +zgzcw.com +zgzcwy.com +zgzjzzs.com +zgzkw.com +zgznh.com +zgzsrc.com +zgzwl.com +zgzy.net +zgzylt.com +zgzzs.com +zh-itone.com +zh.cc +zh188.net +zh30.com +zh51home.com +zhai14.com +zhaiba.com +zhaidou.com +zhaihai.com +zhaiiker.com +zhaikexueyuan.com +zhaimansky.com +zhainanba.net +zhainanfulishe.com +zhainanhuayuan.com +zhairport.com +zhaishulou.com +zhaixiaoniu.com +zhaixue.cc +zhan.com +zhanbuba.com +zhandaren.com +zhandodo.com +zhang.ge +zhang365.com +zhangbo.org +zhangchi.art +zhangchi.work +zhangdanyang.com +zhangdongxuan.com +zhangdu5.net +zhangdu520.com +zhange8.com +zhangfensir.com +zhangferry.com +zhanggang.net +zhanggaoyuan.com +zhangge.net +zhanghonghong.com +zhanghongliang.com +zhanghuanglong.com +zhangjinkun.com +zhangjunbk.com +zhangkai.red +zhangle.com +zhangli2015.com +zhangliziyun.com +zhangluya.com +zhanglvtong.com +zhangmen.com +zhangmen.org +zhangmenkid.com +zhangnan.xyz +zhangnq.com +zhangqi.ltd +zhangqiaokeyan.com +zhangqiongjie.com +zhangqiu.cc +zhangrc.site +zhangread.com +zhangrunnan.com +zhangsenhao.com +zhangsh08.com +zhangshengrong.com +zhangtielei.com +zhangtu.com +zhangu365.com +zhangweifan.com +zhangwenli.com +zhangxinhulian.com +zhangxinxu.com +zhangyin.org +zhangyoubao.com +zhangyoushijie.com +zhangyu.com +zhangyu39.com +zhangyue.com +zhangyue.net +zhangyue01.com +zhangyue02.com +zhangyue03.com +zhangyuecdn.com +zhangyunling.com +zhangyuqing.me +zhangzhao.me +zhangzhengfan.com +zhangzhongpei.com +zhangzhongwang.com +zhangzhongyun.com +zhangzidao.com +zhangzifan.com +zhangziran.com +zhangzs.com +zhanh.com +zhanhi.com +zhanhuo.com +zhankoo.com +zhanlingol.com +zhanmang.com +zhanq.net +zhanqi.net +zhanqi.tv +zhanqitv.com +zhanqu.im +zhanshaoyi.com +zhanshiren.com +zhanst.com +zhansu.com +zhantai.com +zhantuo.com +zhanxingfang.com +zhanyouyun.com +zhanzhang.net +zhao-meng.com +zhao-zupu.com +zhaoapple.com +zhaobeidaxiao.com +zhaobeijing.com +zhaobuxiu.com +zhaocait.com +zhaocaiyan.com +zhaochafa.com +zhaoda.net +zhaodanji.com +zhaodatu.com +zhaodll.com +zhaofangbang.net +zhaofanguan.com +zhaofinger.com +zhaogang.com +zhaogangimg.com +zhaogepu.com +zhaohaipeng.com +zhaoj.in +zhaojiao.net +zhaojiaoan.com +zhaojiaxiao.com +zhaojs.com +zhaokaifeng.com +zhaokao.net +zhaokeli.com +zhaokuaizhao.com +zhaoliangji.com +zhaoliming.net +zhaomei.ink +zhaomengtu.com +zhaoming.biz +zhaomxd.com +zhaoniupai.com +zhaoonline.com +zhaopianzhibo.com +zhaopin.com +zhaopin668.com +zhaopinbao.me +zhaopingou.com +zhaopins.com +zhaoqianwang.com +zhaoqt.net +zhaoquanwang.vip +zhaosecha.com +zhaoshang.net +zhaoshang100.com +zhaoshang800.com +zhaoshangbang.com +zhaoshangbao.com +zhaoshangdai.com +zhaoshayou.com +zhaosheng.com +zhaosheng365.com +zhaosifang.com +zhaosw.com +zhaota8.com +zhaouc.com +zhaouc.net +zhaowenyu.com +zhaowofanyi.com +zhaoxi.org +zhaoxiaoshuo.com +zhaoxin.com +zhaoxitech.com +zhaoxiuyuan.com +zhaoyanblog.com +zhaoyangmao.com +zhaoyangsem.com +zhaoyangxueyuan.com +zhaoyaojd.com +zhaoyasai.com +zhaoyingtian.com +zhaoyinqian.com +zhaoyl.com +zhaoyo.com +zhaoyuan365.com +zhaoyuanedu.com +zhaoyun.com +zhaozhanxu.com +zhaozhaoqu.com +zhaozhishi.com +zhaozongjie.com +zhatoufa.com +zhbit.com +zhblawyer.com +zhblog.net +zhcf001.com +zhckw.com +zhcw.com +zhdba.com +zhdgps.com +zhe.com +zhe2.com +zhe800.com +zhe97.com +zhebei.com +zheerhui.com +zhefengle.com +zheiyu.com +zhejianglab.com +zhejiangmuseum.com +zhejiangqinghe.com +zhejing.tech +zhekangzc.com +zhekouo.com +zhelaoda.com +zheli.com +zheliyangsheng.com +zhen-ao.com +zhen.com +zhen4k.com +zhenai.com +zhenaihn.com +zhenaoyaoye.com +zhenbi.com +zhenbizi.com +zhending-chicken.com +zhenfund.com +zheng800.com +zhengcaimall.com +zhengcaishangcheng.com +zhengdabm.com +zhengdaojiapei.com +zhengdaotang.com +zhengdichaiqian.com +zhengdongzulin.com +zhengfenduojin.com +zhengguzhishen.com +zhenghangyq.net +zhengjia.com +zhengjiantong.com +zhengjianzhao.com +zhengjicn.com +zhengjie.com +zhengjimt.com +zhengmeng.net +zhengpinle.com +zhengqingsong.com +zhengruioi.com +zhengshihf.com +zhengshuku.com +zhengtaipro.com +zhengtoon.com +zhenguangchem.com +zhenguo.com +zhengwutong.com +zhengxiaoling.com +zhengxinbao.com +zhengyaing.win +zhengyee.com +zhengyexing.com +zhengyifeng.com +zhengyinyong.com +zhengyounet.com +zhengyouyoule.com +zhengzai.tv +zhengzhoubus.com +zhengzhoulvxing.com +zhengzi.me +zhengzihui.com +zhenhaofu.com +zhenhaotao.com +zhenhaotv.com +zhenhong56.com +zhenhuan888.com +zhenimg.com +zhenjiang-marathon.com +zhenleishan.com +zhenpin.com +zhenren.com +zhenrongbao.com +zhentan.la +zhenwu.com +zhenxiad.com +zhenxian.fm +zhenxinfu.com +zhenxingkuangchanpin.com +zhenyouliao.com +zhepic.com +zhesui.com +zhetao.com +zhetian.org +zheurl.com +zhexi.tech +zhexinit.com +zheyangai.com +zheye.cc +zheye.com +zheyibu.com +zheyouquan.net +zheyouxinxi.com +zhezheai.com +zhezhekan.com +zhfc.com +zhfund.com +zhgc.com +zhgjm.com +zhgl.com +zhgnj.com +zhgqt.com +zhguoguo.com +zhhainiao.com +zhhrm.com +zhhs-china.com +zhhuahui.com +zhhy-oa.com +zhi-bo.net +zhi-ming.com +zhi-niao.com +zhi.hu +zhi12.com +zhiaimusic.com +zhiannet.com +zhib.net +zhibiao8.com +zhibo.me +zhibo.tv +zhibo128x.xyz +zhibo8.cc +zhibo8.com +zhiboba.com +zhiboqiao.com +zhiboyun.net +zhibs.net +zhibugongzuo.com +zhicaiwang.com +zhicall.com +zhicg.com +zhichanli.com +zhichaoxt.com +zhicheng.com +zhichepin.com +zhichikeji.com +zhichiwangluo.com +zhichiweiye.com +zhicms.cc +zhidao91.com +zhidaoanli.com +zhidemai.com +zhidesoft.com +zhidieyun.com +zhidj.com +zhidtech.com +zhiduopc.com +zhidx.com +zhifa.cc +zhifang.com +zhifashengfa.com +zhifayangfa.com +zhifeishengwu.com +zhifoukeji.com +zhiftype.com +zhifufu.com +zhifujie.com +zhifutui.com +zhifuzi.com +zhigou.com +zhiguagua.com +zhiguang.me +zhigudata.com +zhiguf.com +zhihang100.com +zhihe.mobi +zhihejia.com +zhihemobi.com +zhihengwangchen.com +zhihevip.com +zhihjf.com +zhihu.com +zhihu.dev +zhihuclub.com +zhihudsp.com +zhihuiep.com +zhihuihuiwu.com +zhihuiji.com +zhihuijingyingba.com +zhihuinanzhan.com +zhihuirenshe.com +zhihuishitang.net +zhihuishu.com +zhihuiya.com +zhihuizhangyu.com +zhihuizp.com +zhihuoseo.com +zhiji.com +zhijia.com +zhijiangames.com +zhijiaoyi.com +zhijiapro.com +zhijiashe.com +zhijidoc.com +zhijieketang.com +zhijin.com +zhijinwang.com +zhijl.com +zhikao100.com +zhikaojy.com +zhiketong.com +zhiketong.net +zhikuai.com +zhikuaidi.com +zhikubao.net +zhilandaren.com +zhilehuo.com +zhileng.com +zhili-hr.com +zhili2000.com +zhilian.com +zhilian.host +zhilianfm.com +zhiliangren.com +zhilianiot.com +zhiliaoke.com +zhiliaomj.com +zhilingshidai.com +zhilong.me +zhilongtech.com +zhiluo.net +zhimacangku.com +zhimace.com +zhimantian.com +zhimapay.net +zhimaruanjian.com +zhimasdk.com +zhimatech.com +zhimawenda.com +zhimax.com +zhimaxkf.com +zhimg.com +zhimi.com +zhimijia.com +zhimoe.com +zhinengdayi.com +zhinengxia.com +zhinet.com +zhinikefu.com +zhiniu8.com +zhipan.net +zhipeix.com +zhipianbang.com +zhipin.com +zhipingke.com +zhiqiang.org +zhiqiangcdn.com +zhiqiapp.com +zhiqihuo.com +zhiqihuo.org +zhiquanxia.com +zhiquapp.com +zhiquyuan.com +zhiqwl.com +zhiren.com +zhiren.ren +zhirenhr.com +zhiribao.com +zhiru.com +zhirui-inv.com +zhiruyi.com +zhisanzhao.com +zhishangsoft.com +zhisheji.com +zhisheng.com +zhishengbang.com +zhishi.com +zhishi.life +zhishi.tech +zhishibo.com +zhishichong.com +zhishifenzi.com +zhishilin.com +zhishisoft.com +zhishiwu.com +zhishizhan.net +zhishuci.com +zhishuedu.com +zhishutang.com +zhisiyun.com +zhitongcaijing.com +zhitoudsp.com +zhitouxing.com +zhituad.com +zhitui.com +zhiweidata.com +zhiweisoft.com +zhiwo.com +zhiwushuo.com +zhiwuwang.com +zhixi.com +zhixiaohuoke.com +zhixiaoren.com +zhixin-semi.com +zhixingapp.com +zhixingbus.com +zhixiu.net +zhixuan.com +zhixue.com +zhixue.org +zhixueyun.com +zhiye.com +zhiyeapp.com +zhiyequan.com +zhiyi.com +zhiyicx.com +zhiyiedu.vip +zhiyinghui.com +zhiyinhao.com +zhiyinlou.com +zhiyinmedia.com +zhiyoubao.com +zhiyousx.com +zhiyuan98.com +zhiyuanhongda.com +zhiyuanxingxiang.com +zhiyuanyun.com +zhiyuanzhongyi.com +zhiyun-tech.com +zhizaoye.net +zhizaoyun.com +zhizhang.com +zhizhebuyan.com +zhizhen.com +zhizhi88.com +zhizhibaike.com +zhizhihu.com +zhizhizhi.com +zhizhonghl.com +zhizhoukeji.com +zhizhoumi.com +zhizhucms.com +zhizhuwu.com +zhizhuyx.com +zhizihuan.com +zhizihuan.net +zhiziyun.com +zhizugz.com +zhizunbao668.com +zhizunbo.com +zhizunnews.com +zhizuobiao.com +zhizuobiaojiaoyu.com +zhizuoh5.com +zhizuotu.com +zhj9.com +zhjiameng.com +zhjj.org +zhjncb.com +zhjp.net +zhjs.cc +zhjypco.com +zhjyu.net +zhk.me +zhku.com +zhl.com +zhld.com +zhld88.com +zhlhh.com +zhliqi.com +zhlzw.com +zhmeiwen.com +zhmf.com +zhmodaoli.com +zhmold.com +zhmzjl.com +zhmzqi.com +zhnxcw.com +zhong.com +zhong100.com +zhongan.com +zhongan.io +zhonganfengshang.com +zhonganinfo.com +zhongbangchou.com +zhongbaounion.com +zhongbenkeji.com +zhongbingtongxin.com +zhongbowenwu.com +zhongchebaolian.com +zhongchoujia.com +zhongchouke.com +zhongchouyan.com +zhongchuang365.com +zhongchuanjukan.com +zhongda021.com +zhongdeng.com +zhongdengwang.com +zhongdi168.com +zhongdoulicai.com +zhongfu.net +zhongguobaiyin.com +zhongguoditu.com +zhongguofeng.com +zhongguohao123.com +zhongguohuo.com +zhongguojie.org +zhongguopeixun.net +zhongguose.com +zhongguosou.com +zhongguowangshi.com +zhongguoyimin.net +zhongguoym.com +zhonghaitech.com +zhonghegame.com +zhonghhd.com +zhonghongwang.com +zhonghuacar.com +zhonghuacpa.com +zhonghuadiancang.com +zhonghuaent.com +zhonghuamba.com +zhonghuameiwang.com +zhonghuanus.com +zhonghuaqiming.com +zhonghuasuan.com +zhonghuawuxia.com +zhongjiangapp.com +zhongjie.com +zhongjijidian.com +zhongjincc.com +zhongjinjiaye.com +zhongjintongsheng.com +zhongjitou.com +zhongjiujiu.com +zhongjixinyuan.com +zhongkao.com +zhongkaohelp.com +zhongkerd.com +zhongkezhuyan.com +zhongkongbancn.com +zhongkongdaikuan.com +zhongleny.com +zhonglian.com +zhongliangxny.com +zhonglianhuashu.com +zhongliuyiyuan.com +zhonglun.com +zhongman.com +zhongmian.com +zhongniu.com +zhongpaiwang.com +zhongqixin360.com +zhongrenbang.cc +zhongrenma.com +zhongruigang.com +zhongruihuacheng.com +zhongruitech.com +zhongshang114.com +zhongshanpark.com +zhongshengdai.com +zhongshengxinyun.com +zhongshucan.com +zhongso.com +zhongsou.com +zhongsou.net +zhongtaitrust.com +zhongtieyintong.com +zhongtoufa.net +zhongtuobang.com +zhongwei-info.com +zhongweijy.com +zhongwen.wiki +zhongwenhexinqikan.com +zhongwucan.com +zhongxiangdichan.net +zhongxiaole.net +zhongxinwei.net +zhongxunrunda.com +zhongxuntv.com +zhongyao1.com +zhongyaoyi.com +zhongye.net +zhongyejy.com +zhongyiiot.com +zhongyiju360.com +zhongyishangwu.com +zhongyoo.com +zhongyouex.com +zhongyougc.com +zhongyoumedia.com +zhongyu87.xyz +zhongyulian.com +zhongyunjy.com +zhongzhao.com +zhongzhide.com +zhongzhifaqian.com +zhongzhilin.com +zhongzhixin.com +zhongzhoutm.com +zhongzq.com +zhopera.com +zhouao.com +zhouchun.net +zhoudaosh.com +zhougong.com +zhouhoulin.com +zhoujiahong.com +zhoujianhui.com +zhoujiping.com +zhoulaoshi.club +zhoulingjie.com +zhoupu123.com +zhoupudata.com +zhoushangren.com +zhoushengfe.com +zhoutoucg.com +zhouxingchi.info +zhouxuanyu.com +zhouyi.biz +zhouyi.cc +zhouyi.org +zhouyi114.com +zhouyiapi.com +zhouyigw.com +zhouyiju.com +zhouyuanchao.com +zhouzhuang.net +zhowe.net +zhqyue.com +zhqyx.com +zhrczp.com +zhrtc.com +zhsan.com +zhsho.com +zhshw.com +zhsyb.cc +zhtelecom.com +zhtmid.com +zhu23.work +zhu360.com +zhuainiu.com +zhuan16.com +zhuancorp.com +zhuanfa.net +zhuanfou.com +zhuang520.com +zhuang99.com +zhuangji.net +zhuangjiba.com +zhuangkou.com +zhuangku.com +zhuangpeitu.com +zhuangpin.com +zhuangxiaomi.com +zhuangxiu.com +zhuangxiu22.com +zhuangxiu567.com +zhuangxiubao.com +zhuangxiuzhai.com +zhuangyi.com +zhuangzhuang.net +zhuanhuanqi.com +zhuaniao.com +zhuanlichaxun.net +zhuanliqiao.com +zhuanmenmian.com +zhuannet.com +zhuanpinyin.com +zhuanspirit.com +zhuanstatic.com +zhuantilan.com +zhuanyejun.com +zhuanyepeixun.com +zhuanyes.com +zhuanyewanjia.com +zhuanyezhidao.com +zhuanyun.cc +zhuanyun123.com +zhuanyuntang.com +zhuanzfx.com +zhuanzhi.ai +zhuanzhi.net +zhuanzhuan.com +zhuanzhuantui.com +zhuatang.com +zhuaxia.com +zhuayou.com +zhuayoukong.com +zhuazi.com +zhubai.love +zhubai.pub +zhubaijia.com +zhubajie.com +zhubajie.la +zhubangbang.com +zhubao.com +zhubao668.com +zhubian.com +zhubiaoju.com +zhubijiao.com +zhubo123.com +zhubogu.com +zhuboqiang.com +zhuceshenzhengongsi.com +zhuceyou.com +zhucezn.com +zhuchao.cc +zhudai.com +zhudianquan.com +zhuding.net +zhufaner.com +zhufangdianping.com +zhufengpeixun.com +zhufenqi.com +zhuge.com +zhuge888.com +zhugeapi.com +zhugeapi.net +zhugefang.com +zhugeio.com +zhuhaily.com +zhuhd.win +zhuigong.com +zhuiguang.com +zhuihuodong.com +zhuimengzhu.com +zhuiqu.com +zhuishubang.com +zhuishushenqi.com +zhuishuwang.com +zhuishuyun.com +zhuiwan.org +zhuixin.cc +zhuixinfan.com +zhuiyi.ai +zhuizhuiimg.com +zhuizhuiyoyo.com +zhuji.com +zhuji.net +zhuji5.com +zhujia360.com +zhujian.org +zhujiangbeer.com +zhujiangrc.com +zhujiangroad.com +zhujib.com +zhujibank.com +zhujiceping.com +zhujingzp.com +zhujiwiki.com +zhujiwu.com +zhujiyou.com +zhuke.com +zhul.in +zhulang.com +zhulanli.com +zhuli999.com +zhulincat.com +zhulixiaolie.com +zhulogic.com +zhulong.com +zhulongjiang.com +zhulu86.com +zhumengwl.com +zhumu.me +zhuna.net +zhunc.vip +zhundao.net +zhundaoyun.com +zhuniangjia.com +zhuniu.com +zhunkua.net +zhunniao.com +zhuntui.com +zhuo.com +zhuobufan.com +zhuofan.net +zhuofansoft.com +zhuoguang.net +zhuohuamg.com +zhuojie.cc +zhuokearts.com +zhuolaoshi.net +zhuomogroup.com +zhuoquapp.com +zhuoqun.info +zhuoshigroup.com +zhuoshixiong.com +zhuotingwl.com +zhuoyi.com +zhuoyigame.com +zhuoyigame.site +zhuoyixuan.com +zhuoyou.com +zhuoyouba.net +zhuoyoutech.com +zhuoyuanxinfang.com +zhuoyuechenxing.com +zhuoyuegame.com +zhuozhengsoft.com +zhuozhoufangchan.com +zhuozhuogame.com +zhuqinit.com +zhuqiyang.com +zhuque.me +zhushou001.com +zhushuiwen.com +zhust.com +zhutao.com +zhuti.com +zhutihome.net +zhutile.com +zhutiwo.com +zhutix.com +zhutix.net +zhutou.com +zhutousan.net +zhuwang.cc +zhuwang360.com +zhuwona.com +zhuxianfei.com +zhuxiaobang.com +zhuxuejy.com +zhuxuncn.com +zhuye.kim +zhuyeshouhushen.com +zhuyitai.com +zhuyst.cc +zhuyunfeng.com +zhuzhai.com +zhuzher.com +zhuzhichao.com +zhuzhouwang.com +zhuzi.me +zhuzihaoke.com +zhuziplay.com +zhw2101024.com +zhwangart.com +zhwdw.com +zhwenxue.com +zhx-mall.com +zhxfei.com +zhxinuser.com +zhxszq.com +zhxww.net +zhxy1z.com +zhxygroup.com +zhy333.com +zhyccw.com +zhycn.com +zhyd.me +zhyedu.com +zhyi828.com +zhyingxiao.com +zhyouliang.com +zhyymall.com +zhyyz.com +zhzjw.net +zhzyw.com +zhzzx.com +zi.com +zi5.cc +ziboga.com +zicaitou.com +zichabaogao.com +zichenit.com +zidan.chat +zidanduanxin.com +zidanduanxin.net +zidg.com +zidian8.com +zidianwang.com +zidoo.tv +zidootv.com +zifandiaosu.com +zifumao.com +zige365.com +zigecha.com +zigeer.com +zigqnx.com +ziguhonglan.com +zihai0351.com +zihai0535.com +zihai24.com +zihaixiaochengxu.com +zihexin.net +zihu.com +zihua01.com +zihuazhijia.com +ziisp.com +zijieapi.com +zijiecdn.com +zijiecdn.net +zijieimg.com +zijinfx.com +zijinji.com +zijinsuo.com +zijizhang.com +zikao-zikao.com +zikao.gd +zikao365.com +zikao5.com +zikaocqi.com +zikaogd.com +zikaoshu.net +zikaoshu.vip +zikaosw.com +zikeys.com +zikoo.com +ziku123.com +zikui-design.com +zilanwl.com +zilhua.com +zilian8.com +ziliaoge.com +ziliaoh.com +zilongame.com +zilongshanren.com +ziluolanh.com +zimacaihang.com +zimilan.com +zimoapps.com +zimu.me +zimukeji.com +zimushe.com +zimuzu.io +zimuzu.tv +zine.la +zinewow.com +zinffer.com +zing-api.com +zingke.com +ziniao.com +ziniusoft.com +zintao.com +zintow.com +zip118.com +zipadc.com +zipjpg.com +ziqiangxuetang.com +ziranren.com +ziroom.com +ziroomapartment.com +ziroomstay.com +zisea.com +zisen.com +ziseyiliao.com +zisha.com +zishahuyu.com +zishapot.com +zishuo.com +zishuovideo.com +zisia.org +zisuo.com +ziti163.com +zitiao.org +zitichina.com +ziticq.com +zitiguanjia.com +zitijia.com +zitixiazai.org +zituo.net +zivers.com +zivoo.com +ziwanyouxi.com +ziweifu.com +ziweihuan.com +ziwojianding.net +ziwork.com +ziwoyou.net +ziwufang.com +zixia.com +zixiaodao.com +zixiaomao.com +zixigua.com +zixijiaoshi.com +zixike.cc +zixuejie.com +zixuekaoshi.net +zixuntop.com +ziy.cc +ziyainfo.com +ziyan666.com +ziyanfoods.com +ziyanmm.com +ziyexing.com +ziyimall.com +ziyou.com +ziyou.studio +ziyoufa.com +ziyouwu.com +ziyuan.tv +ziyuan605.com +ziyuangou.com +ziyuanku.com +ziyuanm.com +ziyuanmaow.com +ziyuantun.com +ziyuen.com +ziyuewentao.com +ziyun.com +zizaike.com +zizhengfang.com +zizhuauto.com +zizhupark.com +zizhuyuangongyuan.com +zizisi.com +zizizizizi.com +zizzs.com +zj-idc.com +zj.com +zj01.com +zj123.com +zj186.com +zj2460.com +zj31.net +zj32.com +zj339.com +zj4444.com +zj96596.com +zjabank.com +zjaf.net +zjags.com +zjapk.com +zjaqxy.com +zjautoparts.com +zjbinya.com +zjbiz.net +zjbyte.com +zjca.org +zjcb.com +zjcbank.com +zjcdn.com +zjchina.org +zjchuguo.com +zjcic.net +zjcio.org +zjckw.org +zjcnbank.com +zjcrjzj.com +zjcuhb.com +zjcxbank.com +zjdashi.com +zjdata.net +zjdh.org +zjdybank.com +zjdydlc.com +zjdyjob.com +zje.com +zjedps.com +zjedu.org +zjfdc.net +zjft.com +zjgas.net +zjgctwh.com +zjgf88.com +zjghep.com +zjgjj.com +zjgqt.org +zjgrrb.com +zjgslb.com +zjgt.com +zjguji.com +zjgwy.org +zjgwyw.org +zjgzcpa.com +zjhangyin.com +zjhcbank.com +zjhejiang.com +zjhnlianzhong.com +zjhnrb.com +zjhualing.com +zjhui.net +zjhx520.com +zjhyrcb.com +zjhzyg.net +zji.net +zjibao.com +zjiecode.com +zjiis.com +zjimpact.com +zjipc.com +zjj17u.com +zjj21.com +zjjd.org +zjjgcyz.com +zjjgy.com +zjjizhi.com +zjjlvyou8264.com +zjjr.com +zjjsbank.com +zjjsit.com +zjjubao.com +zjjushu.com +zjjy.com +zjjzyxh.com +zjkangzh.com +zjkccb.com +zjkelan.com +zjkgjj.com +zjkings.com +zjknews.com +zjks.com +zjlcwg.com +zjldrcb.com +zjlottery.com +zjlsbz.com +zjlsjc.com +zjlvjie.com +zjlxtx.com +zjmax.com +zjmi-mall.com +zjminghong.com +zjmobile.com +zjmoney.com +zjmrhpt.com +zjnad.com +zjnrcb.com +zjolcdn.com +zjoldns.com +zjpark.com +zjpcedu.com +zjphrcb.com +zjpost.com +zjpubservice.com +zjqbj.com +zjqll.com +zjrc.com +zjrc.net +zjrcu.com +zjsaisi.com +zjscdb.com +zjscs.com +zjshuo.com +zjsight.com +zjsjtz.com +zjsr.com +zjstv.com +zjsxlt.com +zjsxrz.com +zjszbank.com +zjtbe.com +zjtcn.com +zjtdw.com +zjtlcb.com +zjtntd.com +zjtree.com +zjtxedu.org +zjugis.com +zjujournals.com +zjuqsc.com +zjut.cc +zjwater.com +zjwc168.com +zjwhhly.com +zjwk.com +zjwmw.com +zjwttools.com +zjwxbank.com +zjxc.com +zjxf119.com +zjxhgd.com +zjxpp.com +zjxqyy.com +zjxsbank.com +zjxwtoy.com +zjyanxing.com +zjyari.com +zjycpx.com +zjydt.com +zjyiot.com +zjyiqiao.com +zjyyang.com +zjyygy.com +zjzdgj.com +zjzfcj.com +zjzg.com +zjzhengding.com +zjzhitan.com +zjzj.org +zjzjhotel.com +zjzs.net +zjzsxb.com +zjzydns.com +zk2013.com +zk528.com +zk5u.com +zk71.com +zkailun.com +zkbedu.com +zkbhj.com +zkck.com +zkcmg.com +zkcrm.com +zkcserv.com +zkcx.com +zkdt.net +zkecopro.com +zkeys.com +zkf5.com +zkh.com +zkh360.com +zkhb.group +zkhcsoft.com +zkhcsy.com +zkii.net +zking.com +zkl2333.com +zkmob.net +zkoffcn.com +zkpk.org +zkrdlab.com +zkread.com +zkroom.com +zksoftwaresz.com +zkteco.com +zkteco.xin +zktimecube.com +zktools.net +zktw.com +zku.net +zkunet.com +zkungfu.com +zkuyun.com +zkx.cc +zkxblog.com +zkxlkj.net +zkxww.com +zkyai.com +zkydib.com +zkyl.vip +zkyouxi.com +zkyxls.com +zkzj.org +zl168.xyz +zl99.org +zlbaba.com +zlca.org +zlcool.com +zle.com +zlfedu.com +zlfind.com +zlg.com +zlgmcu.com +zlgpy.com +zlgsj.com +zlhelp.com +zlhome.com +zlhui.com +zlibs.com +zlimg.com +zlink-e.com +zlkb.net +zlketang.com +zlkj.fit +zllife.net +zllyun.com +zlog.cc +zlongad.com +zlongame.com +zlook.com +zlqh.com +zlqiao.com +zlscn.net +zlsin.com +zlsnet.com +zlsoft.com +zltianhen.com +zluren.com +zlvod.com +zlxiang.com +zlygu.com +zm1717.com +zmapp.com +zmaxfilm.com +zmaxhotels.cc +zmbg.com +zmccx.com +zmctc.com +zmdfdc.com +zmdyzyey.com +zmdz.com +zmeng.cc +zmeng123.com +zmengzhu.com +zmfx8.com +zmgov.com +zmgrcw.com +zmifi.com +zmingcx.com +zmirrordemo.com +zmister.com +zmjiudian.com +zmkm8.com +zmlearn.com +zmmdn.com +zmmoo.com +zmndjm.com +zmnds.com +zmnedu.com +zmnoa.com +zmnrz.com +zmobuy.com +zmonster.me +zmpal.com +zmren.com +zmrenwu.com +zmrgame.com +zmsq.com +zmt.me +zmtc.com +zmtiantang.com +zmtpc.com +zmtquan.com +zmufivehospital.com +zmumu.com +zmwbf.com +zmwo.com +zmwxxcx.com +zmxiazai.com +zmxiu.com +zmye5vly.com +zmzb.com +zmzjk.com +zn8.com +znba.net +znbo.com +znczz.com +zndata.com +zndlkj.com +zndns.com +znds.com +znds.net +zndsbbs.com +zndstec.com +zngm.com +znhospital.com +znimg.com +znj.com +znjchina.com +znjj.tv +znlzd.com +znonline.net +znpin.com +znqnet.com +znshuru.com +znsjw.com +zntvrom.com +zntx.cc +zntxt.com +znvren.com +znwb.com +znyp.com +znyseo.com +znyshurufa.com +znznet.net +zo-station.com +zoassetmanagement.com +zocai.com +zoe360.com +zoebon.com +zoform.com +zofund.com +zohead.com +zoioo.com +zoker.io +zokogo.com +zol-img.com +zol.com +zollty.com +zolojo.com +zolsky.com +zombiescat.com +zomiu.com +zomzone.com +zon100.com +zone139.com +zoneben.com +zoneidc.com +zoneker.com +zonemore.com +zonen-tech.com +zonepp.com +zoneve.com +zongft.com +zonghangsl.com +zongheng.com +zongheng001.com +zonghengke.com +zonghengxiaoshuo.com +zongming.net +zongs365.com +zongshenmotor.com +zongtiku.com +zongxiankj.com +zongyiconverge.com +zongyifile.com +zongyigame.com +zongyijia.com +zongyimobile.com +zongyionline.com +zongyiphone.com +zongyixun.com +zonhen.com +zonmai.com +zonst.com +zontes.com +zooafun.com +zoocer.com +zoofon.com +zoogooy.com +zookingsoft.com +zookparts.com +zoom-china.com +zoom3g.com +zoomerstudio.com +zoomeye.org +zoomlion.com +zoopda.com +zoosnet.net +zoossoft.com +zoossoft.net +zooszyservice.com +zootope.ink +zootui.com +zooyoo.cc +zoroli.com +zorrospray.com +zou.la +zoubiao.com +zoucheng.cc +zoucz.com +zoues.com +zouhong365.com +zoukankan.com +zoular.com +zoutu.com +zouzhiqiang.com +zowoyoo.com +zoxun.com +zoyoo.net +zp.do +zp0716.com +zp0737.com +zp365.com +zp515.com +zp910.com +zpad.cc +zpan.space +zpascal.net +zpaudit.com +zpb365.com +zpedu.org +zpfdc.com +zphj1987.com +zphlkj.com +zpidc.com +zpjiashuo.com +zplayworld.com +zpm.so +zppxba.com +zptong.com +zptq.com +zq12369.com +zq235.com +zq99y.com +zqbzs.cc +zqcloudgame.com +zqcyzg.com +zqdns37.vip +zqfxj.com +zqgame.com +zqgreen.com +zqic.net +zqids.com +zqjjr.com +zqlian.com +zqlx.com +zqnf.com +zqread.com +zqsign.com +zqsos.com +zqtong.com +zquan.cc +zquan.org +zqvip8.cc +zqwzc.com +zqxsc.com +zqygame.com +zqzyxx.com +zrahh.com +zrblog.net +zrbx.com +zrcaifu.com +zrcbank.com +zrfan.com +zrhsh.com +zring.com +zritc.com +zrj96.com +zrmm.com +zrtech.org +zrtg.com +zrthink.com +zrway.com +zrwjk.com +zrxss.com +zry97.com +zs-e.com +zs-lzlj.com +zs-rh.com +zs0572.com +zs310.com +zs666.com +zs6y.com +zs8q.com +zsaber.com +zsacg.com +zsaxi.com +zsbeike.com +zsbsoft.com +zscaishang.com +zsdk.cc +zsdlw.com +zsemall.com +zseoo.com +zsezt.com +zsfund.com +zsgd.com +zsgjs.com +zsglrj.com +zsgoodlighting.com +zsh.com +zsh8.com +zshield.net +zshl.com +zshlife.com +zshtys888.com +zshuoshao.online +zsia.org +zsihuo.com +zsincer.com +zsite.com +zsj18.com +zsjinqi.com +zsjuchuang.com +zsjxwj.com +zskoubei.com +zsksdw.com +zsksw.net +zslady.com +zsld86.com +zslefx.art +zslin.com +zslp021.com +zslyyn12.com +zslyzjj11.com +zsmama.com +zsppsj.com +zsr.cc +zssl.net +zsso03.com +zssph.com +zstack.io +zsucai.com +zsucai.net +zsufivehos.com +zsvsz.com +zswcn.com +zsweai.club +zswebao.shop +zswebao.xyz +zswhtl.com +zswkled.com +zsxq.com +zsxq100.com +zsyinlu.com +zsyknk.com +zsythink.net +zszq.com +zt-express.com +zt-info.com +zt1f.com +ztautoparts.com +ztbest.com +ztcadx.com +ztch.ltd +ztcia.com +ztcnwy.com +ztdzgf.net +zte.net +ztedevice.com +ztedevices.com +ztedu8.com +ztemap.com +ztems.com +ztestin.com +ztfans.com +ztfiber.com +ztfsec.com +ztfssc.com +ztgame.com +ztgy.org +zthsqx.com +zthxcf.com +ztinfoga.com +ztjoin.com +ztjy61.com +ztjystore.com +ztkm.com +ztky.com +ztmao.com +ztms.net +ztnews.net +zto.com +zto56.com +ztomember.com +ztqqt.com +ztrhmall.com +ztrong.com +ztsafe.com +ztt.cc +zttx-exp.com +zttx.com +ztu-crm.com +ztupic.com +ztups.com +ztvcar.com +ztwx.net +ztxh-bj.com +ztxz.cc +ztzhsq.com +ztzy.com +zuan-cheng.com +zuanchuang.org +zuanchuang9.com +zuanke8.com +zuankezu.com +zuanqianyi.com +zuanshi.com +zuanshitoupiao.com +zuber.im +zubunet.com +zuche.com +zuchecdn.com +zucp.net +zudequ.com +zudong.com +zufang.com +zufangzi.com +zugame.com +zugeliang01.com +zuhaofa.com +zuhaohao.com +zuhaowan.com +zuhaowan.net +zuhedaikuan.com +zuhuanhao.com +zui.com +zui88.com +zuiben.com +zuibook.com +zuicool.com +zuidabao.com +zuidaima.com +zuidongxi.com +zuifengyun.com +zuifuli.com +zuihaodaxue.com +zuihuimai.com +zuihuimai.net +zuiidea.com +zuijiao.net +zuijunshi.com +zuik.ren +zuikc.com +zuiku.com +zuikzy.com +zuimeia.com +zuimeiqidai.com +zuimeitianqi.com +zuimeix.com +zuiqiangyingyu.net +zuirede.com +zuishidai.com +zuitang.com +zuitu.com +zuiwan.net +zuixiaoyao.com +zuixinyiqi.com +zuixu.com +zuiyou.com +zuiyouxi.com +zujuan.com +zujuanyi.com +zuk.com +zuka666.com +zukang88.com +zuker.im +zulijian.com +zulinbao.com +zumbacn.com +zun.com +zun.gd +zun315.com +zun9.com +zunxiangqiming.com +zunxun.com +zunxun.net +zuobaike.net +zuobin.net +zuoche.com +zuocheng.net +zuodanye.com +zuodao.com +zuodashi.com +zuodia.com +zuogj.com +zuohaotu.com +zuohuodong.com +zuoji-scm.com +zuojiachubanshe.com +zuojiawang.com +zuojing.com +zuojj.com +zuokesteak.com +zuolinyouli.vip +zuoqu.com +zuoqudashi.net +zuosa.com +zuoshangbao.com +zuoshipin.com +zuoshouyisheng.com +zuotishi.com +zuotixia.com +zuowen.com +zuowen8.com +zuowening.com +zuowenjun.com +zuowenku.net +zuowenren.com +zuowens.com +zuowenwang.net +zuowenxue.com +zuowenzhitiao.com +zuoxiaolong.com +zuoye5.com +zuoyebang.cc +zuoyebang.com +zuoyehezi.com +zuoyesou.com +zuozu.net +zuozuobuy.com +zupig.com +zupuk.com +zupulu.com +zuqiuba.com +zuqiuba.net +zutianke.com +zuulee.com +zuxcgames.com +zuxiaoqi.com +zuxiaoyi.com +zuyouzu.com +zuyunfei.com +zuyushop.com +zuzheyong.com +zuzhirenshi.com +zuzitech.com +zuzuche.com +zving.com +zvv.me +zw110.com +zw3w.com +zw808.com +zw885.com +zwads.com +zwcad.com +zwcnw.com +zwcsm.com +zwda.com +zwdn.com +zwdns.com +zwds.cc +zwdsty.com +zwdu.com +zwduxs.com +zwechat.com +zwfw.com +zwgeek.com +zwhz.com +zwie2003.com +zwjczx.com +zwjhl.com +zwjk.com +zwjl.net +zwkf.net +zwlhome.com +zwoptical.com +zws2.com +zwtianshangm.com +zwtkl8.com +zwtxipr.com +zwwank.com +zwwdm.com +zwwltkl.com +zwwx.com +zwzdiy.cc +zwzrent.com +zwzsh.net +zwzyzx.com +zx-tour.com +zx0093.com +zx017.com +zx017.net +zx080.com +zx0818.com +zx100.com +zx10000.com +zx110.org +zx181.com +ws.ksmobile.net +ping.ubnt.com +wwwimages2.adobe.com +wwwimages.adobe.com +www8.hp.com +www5.djicdn.com +www4.djicdn.com +www3.djicdn.com +www2.djicdn.com +www1.djicdn.com +www.volvocars.com +www.viveport.com +www.vive.com +www.tzoo-img.com +www.thinkpad.com +www.st.com +www.samsung.com +www.redhat.com +www.nike.com +www.microsoft.com +www.htcsense.com +www.htc.com +www.gov.mo +www.globalsign.com +icbci.com.hk +www.dji.com +www.dell.com +www.dell-brand.com +www.com.my +www.analog.com +www.amd.com +www.akamai.com +www.adobe.com +www.djivideos.com +1888.com.mo +images.samsung.com +wmota.htcsense.com +account.htcvive.com +whoami.akamai.net +wegamex.com.hk +wechatpay.com.hk +we.dji.com +admin.edu.pl +vrbi.viveport.com +ups.ksmobile.net +upd.kaspersky.com +unsemi.com.tw +uk-odc.samsungapps.com +txwy.com.tw +turnitin.org.in +travel6.co.uk +tk.anythinktech.com +tencent.com.hk +swupdl.adobe.com +support.lenovo.com +support.globalsign.com +support-cn.samsung.com +airoha.com.tw +stormsend1.djicdn.com +alibabacloud.co.in +store.nike.com +store.dji.com +storage-asset.msi.com +alibabacloud.com.au +static.eprintsw.com +start.htcsense.com +start.htc.com +srm.dji.com +alibabacloud.com.hk +sinowealth.com.hk +sim.djicdn.com +alibabacloud.com.my +alibabacloud.com.sg +shop.globalsign.com +alibabacloud.com.tw +secure.globalsign.com +sdx.microsoft.com +scc.ssacdn.com +royalpay.com.au +rm-static.djicdn.com +qq.cn.com +api.anythinktech.com +qcc.qualcomm.com +product1.djicdn.com +apps.samsung.com +plus.dji.com +play.craft.moe +pingan.com.hk +icbcbr.com.br +peersafe.com.sg +passport.lenovo.com +asset.msi.com +owner-api.teslamotors.com +img.samsungapps.com +assets-global.viveport.com +ocsp2.globalsign.com +ocsp.globalsign.com +ntp.felixc.at +nexus.dell.com +assets.analog.com +nefficient.co.kr +my.st.com +mtk.com.tw +moto-one.com.hk +midea.com.tr +mgplay.com.tw +meizu.com.hk +m.travelzoo.com +m.dji.com +assets.uxengine.net +assets.volvocars.com +lazada.com.ph +lazada.com.my +lazada.co.th +lazada.co.id +ksair.com.tw +kingdee.com.tw +kaola.com.hk +jd.co.th +officecdn.microsoft.com +staticssl.image-gmkt.com +bankcomm.com.mo +xht.com.hk +icbc.com.vn +icbc.com.sg +icbc.com.qa +icbc.com.pk +icbc.com.pe +icbc.com.mx +icbc.com.mo +icbc.com.mm +icbc.com.la +icbc.com.kw +icbc.com.kh +icbc.com.es +icbc.com.au +icbc.co.nl +icbc.co.kr +icbc.co.jp +icbc.co.id +i.dell.com +hrintl.com.hk +hopetrip.com.hk +home.htcsense.com +home-cn.htcsense.com +hhtravel.com.tw +hao123.com.sg +h3c.com.hk +gw.craft.moe +bankcomm.com.tw +blog.htc.com +blog.htcvive.com +global-download.acer.com +geo.kaspersky.com +geo-prism.htcsense.com +geo-prism-cn.htcsense.com +gdssl.image-gmkt.com +fs.microsoft.com +fr-odc.samsungapps.com +fmcoprc.gov.mo +egg.htcsense.com +drivers.amd.com +dp.image-gmkt.com +download.windowsupdate.com +blog.vive.com +download.microsoft.com +docs.oracle.com +docs.microsoft.com +docs.djicdn.com +dl.ubnt.com +dl.djicdn.com +bosera.com.hk +dl-origin.ubnt.com +ditu.live.com +didimobility.co.jp +developer.vive.com +developer.microsoft.com +developer.htcvive.com +developer.dji.com +datk.anythinktech.com +datasecurity.htcsense.com +da.anythinktech.com +ctrip.com.hk +ctrip.co.th +ctrip.co.kr +ctrip.co.id +ctldl.windowsupdate.com +ctexcel.com.hk +crl.globalsign.net +crc.com.hk +contentstore.htcvive.com +conpak.com.hk +cnimg.elex.com +cncc.bingj.com +cn.windowssearch.com +cn.msi.com +cn.bing.net +cn.bing.com +cms-live.pandora.net +cmbi.com.hk +clubweixin.samsung.com +brother.co.jp +citics.com.hk +chinaunicom.com.hk +chinatelecom.com.mo +chinacache.cedexis.com +china.mintel.com +ccbintl.com.hk +cdn.samsung.com +cdn.razersynapse.com +ccmdl.adobe.com +cdn-static.farfetch-contents.com +ccmdls.adobe.com +cdn.shanghai.nyu.edu +slupdate.dlservice.microsoft.com +cdn.marketplaceimages.windowsphone.com +wl.dlservice.microsoft.com +ares.dl.playstation.net +vulcan.dl.playstation.net +streaming.vn.teslamotors.com +bj1.api.bing.com +zeus.dl.playstation.net +wscont2.apps.microsoft.com +lx.cok.elexapp.com +2-01-5830-0005.cdx.cedexis.net +neofussvr.sslcs.cdngc.net +wscont1.apps.microsoft.com +cloud-neofussvr.sslcs.cdngc.net +download.visualstudio.microsoft.com +lx3.cok.elexapp.com +poseidon.dl.playstation.net +qh.dlservice.microsoft.com +silverlight.dlservice.microsoft.com +si.cdn.dell.com +sgst.prod.dl.playstation.net +p.cdn.persaas.dell.com +gst.prod.dl.playstation.net +storeedgefd.dsx.mp.microsoft.com +dl.delivery.mp.microsoft.com +oemssl.cn.cdn.cloudflare.net +gs2.ww.prod.dl.playstation.net +gs.ww.np.dl.playstation.net +regexp:.+\.awsdns-cn-[0-9][0-9]\.biz$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.com$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.net$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.top$ +regexp:.+\.awsdns-cn-[0-9][a-e0-9]\.cn$ +regexp:.+\.azchcdn[a-s]\.com$ +regexp:.+\.azure-dns-([1-9]|10)\.cn$ +regexp:.+\.cdnhwc([1-9]|10)\.(cn|com)$ +regexp:.+\.dnse[0-5]\.(cn|com)$ +regexp:.+\.tdnsv([1-9]|1[0-5])\.(com|net)$ +regexp:\.(.+-)?ap-beijing(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-beijing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-chengdu(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-chengdu(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-chongqing(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-chongqing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-guangzhou(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-guangzhou(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-nanjing(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-nanjing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-shanghai(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-shanghai(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:\.(.+-)?ap-shenzhen(-.+)?\.myqcloud\.com$ +regexp:\.(.+-)?ap-shenzhen(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ +regexp:^(.+\.)*zh\.okaapps\.com$ +regexp:^.+-mihayo\.akamaized\.net$ +regexp:^a[1-5]\.mzstatic\.com$ +regexp:^cdn(-cn)?[1-4]?\.apple-mapkit\.com$ +regexp:^cdn-akamai-.+\.gog-services\.com$ +regexp:^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ +regexp:^cl[1-5]-cdn\.origin-apple\.com\.akadns\.net$ +regexp:^cl[1-5]\.apple\.com$ +regexp:^epicgames-download\d-\d+\.file\.myqcloud\.com$ +regexp:^gog-cdn-.+\.footprint\.net$ +regexp:^images(-\d)?\.gog-statics\.com$ +regexp:^is[1-5](-ssl)?\.mzstatic\.com$ +regexp:^s[1-5]?\.mzstatic\.com$ diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt new file mode 100644 index 00000000000..ca4b1fc177b --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt @@ -0,0 +1,19306 @@ +full:3dns-1.adobe.com +full:3dns-2.adobe.com +full:3dns-3.adobe.com +full:3dns-4.adobe.com +full:3dns-5.adobe.com +full:3dns.adobe.com +full:abematv.akamaized.net +full:activate-sea.adobe.com +full:activate-sjc0.adobe.com +full:activate.adobe.com +full:activate.wip1.adobe.com +full:activate.wip2.adobe.com +full:activate.wip3.adobe.com +full:activate.wip4.adobe.com +full:adobe-dns-1.adobe.com +full:adobe-dns-2.adobe.com +full:adobe-dns-3.adobe.com +full:adobe-dns-4.adobe.com +full:adobe-dns.adobe.com +full:adobeereg.com +full:alt1-mtalk.google.com +full:alt2-mtalk.google.com +full:alt3-mtalk.google.com +full:alt4-mtalk.google.com +full:alt5-mtalk.google.com +full:alt6-mtalk.google.com +full:alt7-mtalk.google.com +full:alt8-mtalk.google.com +full:amp.akamaized.net +full:angle.com.tw +full:anime-rule34-world.b-cdn.net +full:aod-pod-uk-live.akamaized.net +full:api-p.videomarket.jp +full:api.viu.now.com +full:apl-hamivideo.cdn.hinet.net +full:apple.com.akadns.net +full:appleworldwidedeveloper.hb-api.omtrdc.net +full:appleworldwidedeveloper.sc.omtrdc.net +full:as-dash-uk-live.akamaized.net +full:as-hls-uk-live.akamaized.net +full:asahishimbun.sc.omtrdc.net +full:audio-ak-spotify-com.akamaized.net +full:audio4-ak-spotify-com.akamaized.net +full:avatargarenanow-a.akamaihd.net +full:az764295.vo.msecnd.net +full:azure.microsoft.com +full:azuremarketplace.microsoft.com +full:bcovlive-a.akamaihd.net +full:bcsecure01-a.akamaihd.net +full:beatselectronicsllc.tt.omtrdc.net +full:beck-online.beck.de +full:bingsettingssearch.trafficmanager.net +full:blizzard.nefficient.co.kr +full:blizzcon-a.akamaihd.net +full:blzddist1-a.akamaihd.net +full:blzddistkr1-a.akamaihd.net +full:blzmedia-a.akamaihd.net +full:blznav.akamaized.net +full:bnetcmsus-a.akamaihd.net +full:bnetproduct-a.akamaihd.net +full:bnetshopus.akamaized.net +full:brightcove.imgix.net +full:cbsi.live.ott.irdeto.com +full:cbsplaylistserver.aws.syncbak.com +full:cbsservice.aws.syncbak.com +full:cdn-spotify-experiments.conductrics.com +full:cdn.jsdelivr.net +full:cdngarenanow-a.akamaihd.net +full:chat.openai.com.cdn.cloudflare.net +full:chinapower.csis.org +full:cisco.evergage.com +full:ciscolivehls-i.akamaihd.net +full:client-teamviewer-com.trafficmanager.net +full:clients1.google.com +full:cloudsync-prod.s3.amazonaws.com +full:courier-push-apple.com.akadns.net +full:crl.microsoft.com +full:crl.versign.net +full:csis-prod.s3.amazonaws.com +full:d1k2us671qcoau.cloudfront.net +full:d29vzk4ow07wi7.cloudfront.net +full:d2anahhhmp1ffz.cloudfront.net +full:d33wubrfki0l68.cloudfront.net +full:databank.worldbank.org +full:database.asahi.com +full:default.exp-tas.com +full:deutschewelle.h-cdn.com +full:developer.microsoft.com +full:developers.facebook.com +full:dfp6rglgjqszk.cloudfront.net +full:dl.begellhouse.com +full:dlgarenanow-a.akamaihd.net +full:dlmobilegarena-a.akamaihd.net +full:download.visualstudio.microsoft.com +full:ds-linear-abematv.akamaized.net +full:ds-vod-abematv.akamaized.net +full:dtlgalleryint.cloudapp.net +full:e122475.dscg.akamaiedge.net +full:ea.tt.omtrdc.net +full:eaassets-a.akamaihd.net +full:ebay-25-assets.s3-us-west-1.amazonaws.com +full:ecapi-pchome.cdn.hinet.net +full:elib.maruzen.co.jp +full:ereg.adobe.com +full:ereg.wip.adobe.com +full:ereg.wip1.adobe.com +full:ereg.wip2.adobe.com +full:ereg.wip3.adobe.com +full:ereg.wip4.adobe.com +full:espn.api.edge.bamgrid.com +full:espn.hb.omtrdc.net +full:espndotcom.tt.omtrdc.net +full:f3b7q2p3.ssl.hwcdn.net +full:fandom.zendesk.com +full:faronics.kayako.com +full:fbcdn-a.akamaihd.net +full:firebase.google.com +full:firebase.googleapis.com +full:firebaseappcheck.googleapis.com +full:firebasedynamiclinks-ipv4.googleapis.com +full:firebasedynamiclinks-ipv6.googleapis.com +full:firebasedynamiclinks.googleapis.com +full:firebaseinappmessaging.googleapis.com +full:firebaseinstallations.googleapis.com +full:firebaselogging-pa.googleapis.com +full:firebaselogging.googleapis.com +full:firebaseperusertopics-pa.googleapis.com +full:firebaseremoteconfig.googleapis.com +full:firstsearch.oclc.org +full:fontshop-prod-responsive-images.s3.amazonaws.com +full:foxnewsplayer-a.akamaihd.net +full:gamedownloads-rockstargames-com.akamaized.net +full:gamer-cds.cdn.hinet.net +full:gamer2-cds.cdn.hinet.net +full:gigabyte2.azureedge.net +full:github-cloud.s3.amazonaws.com +full:gitlab-assets.oss-cn-hongkong.aliyuncs.com +full:hamivideo.hinet.net +full:hammerandchisel.ssl.zendesk.com +full:heads-ak-spotify-com.akamaized.net +full:heads4-ak-spotify-com.akamaized.net +full:himalaya-exchange.zendesk.com +full:hl2rcv.adobe.com +full:hlrcv.stage.adobe.com +full:homebrew.bintray.com +full:hpstore.corpmerchandise.com +full:hulu.playback.edge.bamgrid.com +full:i.jeded.com +full:img-prod-cms-rt-microsoft-com.akamaized.net +full:img-s-msn-com.akamaized.net +full:impala-media-production.s3.amazonaws.com +full:imperial.insendi.com +full:lgelectronics.122.2o7.net +full:licdn.cn.cdn20.com +full:linear-abematv.akamaized.net +full:link.theplatform.com +full:linkedin.sc.omtrdc.net +full:live-patreon-marketing.pantheonsite.io +full:lm.licenses.adobe.com +full:lmlicenses.wip4.adobe.com +full:lolstatic-a.akamaihd.net +full:mdn.mozillademos.org +full:media-rockstargames-com.akamaized.net +full:medone-education.thieme.com +full:misa-prod.s3.ap-northeast-1.amazonaws.com +full:mobilelive-hamivideo.cdn.hinet.net +full:mscrl.microsoft.com +full:mtalk.google.com +full:muse.jhu.edu +full:mwf-service.akamaized.net +full:na1r.services.adobe.com +full:nab.demdex.net +full:nationalaustraliaban.tt.omtrdc.net +full:netflix.com.edgesuite.net +full:nurofensk-prod-env.eu-west-1.elasticbeanstalk.com +full:nvidia.tt.omtrdc.net +full:ocsp.microsoft.com +full:officecdn-microsoft-com.akamaized.net +full:onekey.zendesk.com +full:oneocsp.microsoft.com +full:ood.opsource.net +full:openaiapi-site.azureedge.net +full:openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net +full:openaicomproductionae4b.blob.core.windows.net +full:opgg-static.akamaized.net +full:origin-a.akamaihd.net +full:p-events-delivery.akamaized.net +full:p16-tiktokcdn-com.akamaized.net +full:paper-attachments.s3.amazonaws.com +full:pchomeonline.com.tw +full:pki.google.com +full:poshtestgallery.cloudapp.net +full:practivate.adobe +full:practivate.adobe.com +full:practivate.adobe.ipp +full:practivate.adobe.newoa +full:practivate.adobe.ntp +full:prd-priconne-redive.akamaized.net +full:production-openaicom-storage.azureedge.net +full:psg-int-centralus.cloudapp.net +full:psg-int-eastus.cloudapp.net +full:push-apple.com.akadns.net +full:pvr-hamivideo.cdn.hinet.net +full:qualcomm.sc.omtrdc.net +full:rink.hockeyapp.net +full:rtm.tnt-ea.com +full:sa78gs.wpc.edgecastcdn.net +full:scc.ott.hinet.net +full:scholar.google.ae +full:scholar.google.at +full:scholar.google.be +full:scholar.google.bg +full:scholar.google.ca +full:scholar.google.cat +full:scholar.google.ch +full:scholar.google.cl +full:scholar.google.cn +full:scholar.google.co.cr +full:scholar.google.co.id +full:scholar.google.co.il +full:scholar.google.co.in +full:scholar.google.co.jp +full:scholar.google.co.kr +full:scholar.google.co.nz +full:scholar.google.co.th +full:scholar.google.co.uk +full:scholar.google.co.ve +full:scholar.google.co.za +full:scholar.google.com +full:scholar.google.com.ar +full:scholar.google.com.au +full:scholar.google.com.bo +full:scholar.google.com.br +full:scholar.google.com.co +full:scholar.google.com.cu +full:scholar.google.com.do +full:scholar.google.com.ec +full:scholar.google.com.eg +full:scholar.google.com.gt +full:scholar.google.com.hk +full:scholar.google.com.ly +full:scholar.google.com.mx +full:scholar.google.com.my +full:scholar.google.com.ni +full:scholar.google.com.pa +full:scholar.google.com.pe +full:scholar.google.com.ph +full:scholar.google.com.pk +full:scholar.google.com.pr +full:scholar.google.com.py +full:scholar.google.com.sg +full:scholar.google.com.sv +full:scholar.google.com.tr +full:scholar.google.com.tw +full:scholar.google.com.ua +full:scholar.google.com.uy +full:scholar.google.com.vn +full:scholar.google.cz +full:scholar.google.de +full:scholar.google.dk +full:scholar.google.es +full:scholar.google.fi +full:scholar.google.fr +full:scholar.google.gr +full:scholar.google.hn +full:scholar.google.hr +full:scholar.google.hu +full:scholar.google.is +full:scholar.google.it +full:scholar.google.li +full:scholar.google.lt +full:scholar.google.lu +full:scholar.google.lv +full:scholar.google.nl +full:scholar.google.no +full:scholar.google.pl +full:scholar.google.pt +full:scholar.google.ro +full:scholar.google.ru +full:scholar.google.se +full:scholar.google.si +full:scholar.google.sk +full:scholar.googleusercontent.com +full:scholar.l.google.com +full:sni1dcb6gl.wpc.edgecastcdn.net +full:spotify.com.edgesuite.net +full:spotify.map.fastly.net +full:spotify.map.fastlylb.net +full:ssl-lvlt.cdn.ea.com +full:static-hamivideo.cdn.hinet.net +full:statics-marketingsites-eas-ms-com.akamaized.net +full:statics-marketingsites-eus-ms-com.akamaized.net +full:statics-marketingsites-wcus-ms-com.akamaized.net +full:steambroadcast.akamaized.net +full:steamcdn-a.akamaihd.net +full:steamcommunity-a.akamaihd.net +full:steammobile.akamaized.net +full:steampipe-kr.akamaized.net +full:steampipe-partner.akamaized.net +full:steampipe.akamaized.net +full:steamstore-a.akamaihd.net +full:steamusercontent-a.akamaihd.net +full:steamuserimages-a.akamaihd.net +full:steamvideo-a.akamaihd.net +full:t21.nikkei.co.jp +full:t21ipau.nikkei.co.jp +full:teamviewer.com.cdn.cloudflare.net +full:tesla-cdn.thron.com +full:tvcastlive-hamivideo.cdn.hinet.net +full:ubisoft-orbit-savegames.s3.amazonaws.com +full:ubisoft-uplay-savegames.s3.amazonaws.com +full:ubistatic3-a.akamaihd.net +full:ulrichsweb.serialssolutions.com +full:ve-dash-uk-live.akamaized.net +full:ve-uhd-push-uk-live.akamaized.net +full:venmo.s3.amazonaws.com +full:videos-rockstargames-com.akamaized.net +full:vmware.tt.omtrdc.net +full:vod-abematv.akamaized.net +full:vod-dash-uk-live.akamaized.net +full:vod-dash-ww-live.akamaized.net +full:vod-hls-uk-live.akamaized.net +full:vod-sub-uk-live.akamaized.net +full:vod-thumb-uk-live.akamaized.net +full:vod-thumb-ww-live.akamaized.net +full:vs-cmaf-push-uk-live.akamaized.net +full:vs-cmaf-pushb-ww-live.akamaized.net +full:vs-hls-push-uk-live.akamaized.net +full:vs-hls-pushb-uk-live.akamaized.net +full:vscode-sync-insiders.trafficmanager.net +full:vscode-sync.trafficmanager.net +full:vscode.blob.core.windows.net +full:vscode.search.windows.net +full:vsmarketplacebadge.apphb.com +full:weblive-hamivideo.cdn.hinet.net +full:widgets.stripst.com +full:wip.adobe.com +full:wip1.adobe.com +full:wip2.adobe.com +full:wip3.adobe.com +full:wip4.adobe.com +full:wrds-www.wharton.upenn.edu +full:wwis-dubc1-vip100.adobe.com +full:wwis-dubc1-vip101.adobe.com +full:wwis-dubc1-vip102.adobe.com +full:wwis-dubc1-vip103.adobe.com +full:wwis-dubc1-vip104.adobe.com +full:wwis-dubc1-vip105.adobe.com +full:wwis-dubc1-vip106.adobe.com +full:wwis-dubc1-vip107.adobe.com +full:wwis-dubc1-vip108.adobe.com +full:wwis-dubc1-vip109.adobe.com +full:wwis-dubc1-vip110.adobe.com +full:wwis-dubc1-vip111.adobe.com +full:wwis-dubc1-vip112.adobe.com +full:wwis-dubc1-vip113.adobe.com +full:wwis-dubc1-vip114.adobe.com +full:wwis-dubc1-vip115.adobe.com +full:wwis-dubc1-vip116.adobe.com +full:wwis-dubc1-vip117.adobe.com +full:wwis-dubc1-vip118.adobe.com +full:wwis-dubc1-vip119.adobe.com +full:wwis-dubc1-vip120.adobe.com +full:wwis-dubc1-vip121.adobe.com +full:wwis-dubc1-vip122.adobe.com +full:wwis-dubc1-vip123.adobe.com +full:wwis-dubc1-vip124.adobe.com +full:wwis-dubc1-vip125.adobe.com +full:wwis-dubc1-vip30.adobe.com +full:wwis-dubc1-vip31.adobe.com +full:wwis-dubc1-vip32.adobe.com +full:wwis-dubc1-vip33.adobe.com +full:wwis-dubc1-vip34.adobe.com +full:wwis-dubc1-vip35.adobe.com +full:wwis-dubc1-vip36.adobe.com +full:wwis-dubc1-vip37.adobe.com +full:wwis-dubc1-vip38.adobe.com +full:wwis-dubc1-vip39.adobe.com +full:wwis-dubc1-vip40.adobe.com +full:wwis-dubc1-vip41.adobe.com +full:wwis-dubc1-vip42.adobe.com +full:wwis-dubc1-vip43.adobe.com +full:wwis-dubc1-vip44.adobe.com +full:wwis-dubc1-vip45.adobe.com +full:wwis-dubc1-vip46.adobe.com +full:wwis-dubc1-vip47.adobe.com +full:wwis-dubc1-vip48.adobe.com +full:wwis-dubc1-vip49.adobe.com +full:wwis-dubc1-vip50.adobe.com +full:wwis-dubc1-vip51.adobe.com +full:wwis-dubc1-vip52.adobe.com +full:wwis-dubc1-vip53.adobe.com +full:wwis-dubc1-vip54.adobe.com +full:wwis-dubc1-vip55.adobe.com +full:wwis-dubc1-vip56.adobe.com +full:wwis-dubc1-vip57.adobe.com +full:wwis-dubc1-vip58.adobe.com +full:wwis-dubc1-vip59.adobe.com +full:wwis-dubc1-vip60.adobe.com +full:wwis-dubc1-vip61.adobe.com +full:wwis-dubc1-vip62.adobe.com +full:wwis-dubc1-vip63.adobe.com +full:wwis-dubc1-vip64.adobe.com +full:wwis-dubc1-vip65.adobe.com +full:wwis-dubc1-vip66.adobe.com +full:wwis-dubc1-vip67.adobe.com +full:wwis-dubc1-vip68.adobe.com +full:wwis-dubc1-vip69.adobe.com +full:wwis-dubc1-vip70.adobe.com +full:wwis-dubc1-vip71.adobe.com +full:wwis-dubc1-vip72.adobe.com +full:wwis-dubc1-vip73.adobe.com +full:wwis-dubc1-vip74.adobe.com +full:wwis-dubc1-vip75.adobe.com +full:wwis-dubc1-vip76.adobe.com +full:wwis-dubc1-vip77.adobe.com +full:wwis-dubc1-vip78.adobe.com +full:wwis-dubc1-vip79.adobe.com +full:wwis-dubc1-vip80.adobe.com +full:wwis-dubc1-vip81.adobe.com +full:wwis-dubc1-vip82.adobe.com +full:wwis-dubc1-vip83.adobe.com +full:wwis-dubc1-vip84.adobe.com +full:wwis-dubc1-vip85.adobe.com +full:wwis-dubc1-vip86.adobe.com +full:wwis-dubc1-vip87.adobe.com +full:wwis-dubc1-vip88.adobe.com +full:wwis-dubc1-vip89.adobe.com +full:wwis-dubc1-vip90.adobe.com +full:wwis-dubc1-vip91.adobe.com +full:wwis-dubc1-vip92.adobe.com +full:wwis-dubc1-vip93.adobe.com +full:wwis-dubc1-vip94.adobe.com +full:wwis-dubc1-vip95.adobe.com +full:wwis-dubc1-vip96.adobe.com +full:wwis-dubc1-vip97.adobe.com +full:wwis-dubc1-vip98.adobe.com +full:wwis-dubc1-vip99.adobe.com +full:www-cdn.icloud.com.akadns.net +full:zeenews-fonts.s3.amazonaws.com +and +zw +zuerich +zm +zippo +zara +zappos +za +yt +youtube +yokohama +yodobashi +yellowpages +ye +yandex +yamaxun +yahoo +xxx +xperia +xn--ygbi2ammx +xn--yfro4i67o +xn--y9a3aq +xn--xkc2dl3a5ee0h +xn--wgbl6a +xn--wgbh1c +xn--w4rs40l +xn--w4r85el8fhu5dnra +xn--s9brj9c +xn--rvc1e0am3e +xn--qxam +xn--qxa6a +xn--qcka1pmc +xn--q7ce6a +xn--pgbs0dh +xn--pgb3ceoj +xn--p1ai +xn--ogbpf8fl +xn--o3cw4h +xn--node +xn--nnx388a +xn--ngbe9e0a +xn--mix891f +xn--mix082f +xn--mgbx4cd0ab +xn--mgbtx2b +xn--mgbtf8fl +xn--mgbqly7cvafr +xn--mgbqly7c0a67fbc +xn--mgbpl2fh +xn--mgbi4ecexp +xn--mgbgu82a +xn--mgberp4a5d4ar +xn--mgberp4a5d4a87g +xn--mgbcpq6gpa1a +xn--mgbc0a9azcg +xn--mgbbh1a71e +xn--mgbbh1a +xn--mgbb9fbpob +xn--mgbayh7gpa +xn--mgbai9azgqp6j +xn--mgbai9a5eva00b +xn--mgbah1a3hjkrd +xn--mgbaam7a8h +xn--mgbaakc7dvf +xn--mgba7c0bbn0a +xn--mgba3a4fra +xn--mgba3a4f16a +xn--mgba3a3ejt +xn--mgb9awbf +xn--mgb2ddes +xn--lgbbat1ad8j +xn--l1acc +xn--kpry57d +xn--kprw13d +xn--kcrx7bb75ajk3b +xn--kcrx77d1x4a +xn--jlq61u9w7b +xn--jlq480n2rg +xn--j6w470d71issc +xn--j6w193g +xn--j1amh +xn--hxt035czzpffl +xn--hxt035cmppuel +xn--h2brj9c8c +xn--h2brj9c +xn--h2breg3eve +xn--gecrj9c +xn--fzys8d69uvgm +xn--fzc2c9e2c +xn--fpcrj9c3d +xn--flw351e +xn--e1a4c +xn--dkwm73cwpn +xn--d1alf +xn--cg4bki +xn--cckwcxetd +xn--b4w605ferd +xn--90ais +xn--90ae +xn--90a3ac +xn--80ao21a +xn--5su34j936bgsg +xn--55qx5d8y0buji4b870u +xn--54b7fta0cc +xn--4dbrk0ce +xn--45brj9c +xn--45br5cyl +xn--3oq18vl8pn36a +xn--3hcrj9c +xn--3e0b707e +xn--2scrj9c +xfinity +xerox +xbox +wtf +wtc +ws +woodside +wolterskluwer +wme +wine +windows +wilmar +williamhill +wien +wf +weir +webjet +weber +weatherchannel +weather +warman +walter +walmart +wales +vu +vons +volvo +volkswagen +vodka +vn +vlaanderen +vivo +viva +vistaprint +vista +visa +virgin +viking +vig +vi +vg +verisign +vegas +ve +vc +vanish +vanguard +vana +va +uz +uy +us +uol +unicorn +ummah +ultrabook +uk +ug +uconnect +ubs +ubank +ua +tz +tw +tvs +tv +tui +tt +trv +travelguard +travelersinsurance +travelers +travelchannel +transunion +translations +transformers +tradershotels +tr +toyota +total +toshiba +toray +tokyo +to +tn +tm +tl +tkmaxx +tk +tjx +tjmaxx +tj +tirol +tiffany +tiaa +thehartford +theguardian +thd +th +tg +tf +teva +terra +tennic +temasek +telefonica +telecity +tdk +td +tci +tc +tattoo +tatar +tatamotors +tata +target +taipei +tab +sz +symantec +sydney +sy +sx +swiss +swiftcover +swatch +svr +sv +suzuki +supersport +sucks +su +style +stockholm +stcgroup +stc +statoil +statefarm +statebank +starhub +staples +stada +st +ss +srt +sr +spiegel +sony +softbank +so +sncf +sn +smart +sm +sling +sl +skype +skydrive +sky +skolkovo +sk +sj +si +shriram +showtime +shopyourway +shia +shell +shaw +sharp +shangrila +sh +sg +sfr +sexy +sex +sew +seven +ses +sener +seek +seat +se +sd +scot +scor +scjohnson +schwarzgroup +schwarz +schmidt +schaeffler +scb +sca +sc +sbs +sbi +sb +saxo +sas +sapphire +sapo +sap +sanofi +sandvikcoromant +sandvik +samsung +samsclub +sakura +safeway +saarland +sa +ryukyu +rwe +rw +ruhr +ru +rs +rogers +rockwool +rocher +ro +rmit +rio +ril +rightathome +ricoh +richardli +rexroth +reliance +redumbrella +redstone +redken +re +ram +raid +qvc +quest +quebec +qtel +qa +py +pwc +pt +ps +prudential +pru +progressive +praxi +pramerica +pr +porn +polo +poker +pohl +pnc +pn +pm +playstation +pl +pk +pitney +piperlime +pioneer +pictet +piaget +philips +ph +pg +pfizer +pf +persiangulf +pe +pccw +payu +patch +patagonia +paris +panerai +panasonic +pamperedchef +pa +ovh +otsuka +osaka +origins +orientexpress +orange +oracle +open +onyourside +omega +om +olympus +ollo +oldnavy +olayangroup +olayan +okinawa +office +off +obi +nz +nyc +nu +ntt +nrw +nra +nr +np +nowtv +norton +northwesternmutual +northlandinsurance +nokia +no +nl +nissay +nissan +nikon +nike +aaa +nico +ni +nhk +ng +nfl +nf +nexus +nextdirect +next +newholland +aarp +neustar +abarth +abb +abbott +abbvie +netflix +abc +netbank +netaporter +nec +ne +nc +nba +natura +nationwide +naspers +nagoya +nadex +nab +na +able +mzansimagic +mz +my +mx +mw +mv +mutuelle +mutual +multichoice +mu +mtr +abudhabi +ac +mtpc +mtn +mt +msd +ms +mrporter +accenture +mrmuscle +mr +mq +mp +mozaic +movistar +moscow +mopar +montblanc +monash +mobily +mo +mnet +mn +acer +mma +mm +mlb +ml +mk +mitsubishi +mitek +mit +mint +mini +mil +mii +mih +microsoft +miami +mh +mg +mf +metlife +merckmsd +merck +meo +melbourne +md +mckinsey +mcdonalds +mcd +mc +aco +maybelline +mattel +matrix +maserati +marshalls +active +marriott +mango +ad +man +adac +maif +madrid +macys +ma +ly +lv +lupin +lundbeck +lu +lt +ls +lr +lplfinancial +lpl +lotte +loreal +london +loft +locus +locker +lk +lixil +livestrong +lipsy +linde +lincoln +lilly +lidl +liaison +li +lgbt +lexus +lego +lefrak +leclerc +lc +lb +latrobe +lat +lasalle +lanxess +landrover +lancome +lancia +lancaster +lamer +lamborghini +ladbrokes +lacaixa +la +kz +kyoto +kyknet +ky +kw +kuokgroup +ksb +krd +kr +kpn +kpmg +kp +adult +kone +konami +komatsu +koeln +kn +km +kiwi +kindle +kinder +kiehls +kia +ki +kh +kg +kfh +kerryproperties +kerrylogisitics +kerryhotels +kerastase +ke +kddi +justforu +juniper +jprs +jpmorganchase +jpmorgan +jp +joburg +jo +jnj +jmp +jm +jll +jlc +jio +jeep +je +jcp +jcb +java +jaguar +iwc +iveco +itv +itau +it +istanbul +ist +ismaili +islam +iselect +is +irish +ir +iq +ipiranga +io +intuit +intel +infy +infosys +infiniti +ae +in +imdb +imamat +im +aeg +il +ikano +iinet +ifm +aetna +ieee +af +ie +afamilycompany +id +ice +ibm +hyundai +hyatt +afl +hughes +hu +htc +ht +hsbc +hr +hotmail +hot +africa +africamagic +ag +honeywell +agakhan +honda +homesense +homegoods +homedepot +hn +hm +hkt +hk +hitachi +hisamitsu +hilton +hgtv +hermes +helsinki +heinz +hdfcbank +hdfc +ai +hbo +hangout +hamburg +halal +gy +aig +aigo +gw +guge +gucci +guardianmedia +guardianlife +guardian +gu +gt +gs +airbus +gree +grainger +gr +gp +gov +gotv +google +goog +goodyear +goodhands +goo +goldpoint +airtel +godaddy +gn +gmx +gmo +gmc +gmail +gm +globo +globalx +glean +gle +glade +gl +gi +gh +ggee +gg +gf +george +genting +gent +gecompany +gea +ge +gd +gcc +gbiz +gb +gay +garnier +gap +gallup +gallo +gal +ga +fujixerox +fujitsu +ftr +frontier +frontdoor +frogans +frl +fresenius +fr +fox +ford +foodnetwork +food +fo +fm +flsmidth +fls +flir +flickr +fk +fj +firmdale +firestone +finish +fido +fidelity +fiat +fi +ferrero +ferrari +fedex +farmers +fairwinds +fage +extraspace +everbank +eus +eurovision +eu +etisalat +et +esurance +es +erni +ericsson +er +epson +epost +akdn +emerson +emerck +eh +eg +al +ee +edu +edeka +ec +dz +dwg +dvag +durban +dupont +alcon +duns +dunlop +duck +alfaromeo +dubai +dtv +dstv +doosan +domains +doha +dodge +docomo +do +dnp +dnb +dm +dk +dj +diy +dish +discover +digikey +dhl +deutschepost +delta +deloitte +delmonte +dell +de +dclk +datsun +dating +dabur +allfinanz +allfinanzberater +allfinanzberatung +cz +cymru +cy +cx +cw +cv +cuisinella +cu +csc +crs +crown +cr +corsica +cookingchannel +connectors +conlogne +commbank +comcast +cm +clubmed +allstate +clinique +cl +ally +ck +cityeats +citi +citadel +cisco +cipriani +cimb +cialis +ci +chrysler +chrome +chloe +chk +alsace +alstom +chintai +chevy +chevrolet +chesapeake +chatr +chat +chase +chartis +changiairport +chanel +ch +cg +cfa +cf +cern +ceb +cd +cbs +am +cbre +cbn +cba +catholic +cat +casino +cashbackbonus +caseih +case +casa +cartier +caremore +caravan +capitalone +capetown +canon +canalplus +calvinklein +cadillac +ca +bzh +bz +by +bway +bw +bv +buick +bugatti +budapest +bt +bs +brussels +brother +bridgestone +bradesco +br +boston +bostik +bosch +boots +bofa +boehringer +bo +bnpparibas +bnl +bn +bmw +bms +bm +bloomingdales +bloomberg +blockbuster +blanco +bl +bj +bingo +amazon +bing +bible +bi +bharti +bh +bg +bf +bestbuy +berlin +bentley +beknown +beats +be +bd +bcn +bcg +bbva +bbt +bbc +bbb +bb +bayern +bauhaus +barefoot +barclays +barclaycard +barcelona +bar +bananarepublic +banamex +baby +ba +azure +az +axis +axa +americanexpress +americanfamily +ax +aws +aw +avianca +avery +auspost +audi +au +amex +amfam +athleta +amica +at +astrium +asia +asda +as +arte +aramco +arab +amp +ar +aquarelle +aq +apple +aol +ao +anz +anthem +amsterdam +ansons +android +jizzonline.com +toosexyvaginas.com +amzn.com +amznl.com +anacams.com +anaconda.cloud +anaconda.com +anaconda.org +anal-f.net +anal-pantyhose.com +anal.media +analamateursex.com +analcamshow.com +analdin.com +analfuckvideo.com +analhomeporn.com +anallivecams.com +analpornhouse.com +analpornonly.com +analpornosex.com +analqts.com +analsaga.com +analscreen.com +analtime.org +analvids.com +analytictech.com +anandtech.com +anb.org +ancensored.com +anchorfree.com +ancsconf.org +amtb-taipei.org +andfaraway.net +amsterdamluxescort.com +android-x86.org +android.com +androidify.com +androidplus.co +androidtv.com +andygod.com +andysparis.com +anfutong.com +angel-gto.com +angelfire.com +angola.org +angulardart.org +angularjs.org +anibooru.com +anidom.com +anilos.com +animal-hentai.com +animal-porn.net +animalforsex.com +animalincum.com +animalporn.me +animalpornxxx.me +animalsporn.net +animalzoosex.me +anime-pictures.net +anime-tube.pw +animecrazy.net +animedao-tv.com +animegal.net +animehentaihub.com +animeidhentai.com +animepornhd.com +animesex.me +animesexhq.com +animestigma.com +animezilla.com +aniscartujo.com +anistreaming.xyz +ankarazirvesi2018.com +annamilk.com +annatam.com +annstores.net +annualpelvicexam.com +annualreviews.org +anobii.com +anon-v.com +anon-v.lol +anonfiles.com +anonproxy.info +anontext.com +anonymitynetwork.com +anonymizer.com +anonymouse.org +anpopo.com +zzycdz.com +amsterdamhotescort.com +answering-islam.org +antarvasnaclips.com +antarvasnax.com +ams02.space +anthemgame.com +anthemthegame.com +anthonycalzadilla.com +anti1984.com +antichristendom.com +antiwave.net +anudetube.com +anybunny.org +anydesk.com +anyhentai.com +anyporn.com +anypornhd.com +anypornsexxx.com +anysex.com +anyshemale.com +anyxxx.me +anyxxx.pro +ams.org +ampproject.org +ao3.org +zzux.com +aofriend.com +aojiao.org +aokwholesale.net +ampproject.net +zzitube.com +aomedia.org +aomiwang.com +aorus.com +aoxx69.net +zzgays.com +zzcloud.me +zzcartoon.com +zyzc9.com +zyxel.com +zyns.com +zynamics.com +zynaima.com +zwtvusa.com +zweiporn.com +ap.org +ap0le.com +apa.org +apache.org +apartmentratings.com +apartments.com +apat1989.org +apetube.com +apexlegends.com +api-extractor.com +01.org +zvereff.com +api.news +zuola.com +apibay.org +zuobiao.me +apigee.com +apina.biz +apisof.net +apk-dl.com +apk.support +apkcombo.com +apkmirror.com +apkmonk.com +apkplz.com +apkpure.com +aple.com +aplestore.com +aplleipods.com +aplusvpn.com +apnews.com +apole.com +apornotube.net +aporntv.com +apornvideo.com +app-dynamics.com +app-measurement-cn.com +app-measurement.com +app-store.wang +zunked.com +02weqj32.com +zuckerberg.net +app0le.com +appbrain.com +appcloud.com +appdomain.cloud +appdownloader.net +appdynamics.com +appdynamics.info +appdynamics.org +appe-store.com +appexchange.com +appl-e.com +appl.com +appl4e.com +appla.com +ampproject.com +apple-cloudkit.com +apple-darwin.com +apple-darwin.net +apple-darwin.org +apple-dns.com +apple-dns.net +apple-enews.com +apple-expo.com +apple-hk.com +apple-imac.com +apple-inc.net +apple-livephotoskit.com +apple-mapkit.com +apple-online.com +apple-pay.com +apple-pay.wang +apple-store.net +apple-store.wang +apple-usa.net +apple.co +apple.com +zuckerberg.com +zteman.net +apple.me +apple.net +apple.news +apple.xn--czr694b +apple.xn--fiqs8s +apple.xyz +appleaccount.net +appleafrica.com +appleantilles.com +appleappstore.net +appleaustralia.com +applebk.net +applecarbon.com +applecare.cc +applecare.wang +applecensorship.com +applecentre.info +appleclassicipod.com +applecom.com +applecomputer-imac.com +applecomputer.com +applecomputerimac.com +applecomputerinc.info +applecoronavirus.com +appledaily.com +appledarwin.com +appledarwin.net +appleenews.com +appleexpo.info +applefilmaker.com +applefilmmaker.com +applefinalcutproworld.com +applefinalcutproworld.net +applefinalcutproworld.org +applefruity.com +applehongkong.com +appleid-applemx.com +appleid-iclou.com +appleid.com +appleimac.com +appleinclegal.com +appleinsider.com +appleiphone.net +appleiphonecell.com +appleipodsettlement.com +appleiservices.com +applelink.com +applemagickeyboard.com +applemasters.info +applemusic.co +applemusic.com +applemusic.wang +applemusicconnect.com +applemusicfestival.com +applemx-icloud.com +applenewsformat.com +appleone.audio +appleone.blog +appleone.cloud +appleone.club +appleone.community +appleone.film +appleone.guide +appleone.host +appleone.space +appleone.tech +appleone.website +appleonline.com +appleonline.net +appleoriginalproductions.com +applepay.info +applepaycash.net +applepaymerchantsupplies.info +applepaysupplies.com +applepaysupplies.info +applepaysupplies.net +applepencil.net +applepodcasts.com +applereach.com +applereach.net +applescreensavers.com +applescript.info +appleshare.info +applestor.com +applestore.cc +applestore.com +applestore.me +applestore.net +applestore.wang +applestoreonline.com +applesurveys.com +appleswift.com +appletaiwan.com +appletips.net +appletv.com +appletv.wang +applewallet.com +applewatch.wang +applewatchedition.com +applewatchseries3.net +applewatchsport.com +appleweb.net +applexpo.net +applezh.com +applf.com +applfe.com +applicationinsights.net +applle.com +applw.com +appmediagroup.com +approvedusedbmw.com +zsrhao.com +appsflayer.com +appshopper.com +appsocks.net +appsonebay.net +appspot.com +appule.com +appye.com +appyq.com +apress.com +aps.org +aptoide.com +apture.com +apyle.com +amplifyframework.com +amplifyapp.com +amp.dev +zspeeder.me +amourangels.com +arabianchicks.com +arabidopsis.org +arabnek.com +arabxn.com +arabxnxx.org +arabysexy.com +arabysexy.mobi +amoiist.com +arcadewank.com +arcgis.com +arcgisonline.com +archive-it.org +archive.org +archive.today +archiveofourown.com +archiveofourown.net +archiveofourown.org +archlinux.org +archlinuxarm.org +arctosia.com +area120.com +areca-backup.org +arewereadyyet.com +areyoucreditwise.com +argotunnel.com +arirangmeari.com +armovs.com +arphic.com +art1lib.com +art4tibet1998.org +amodoll.com +artixlinux.org +artnudegalleries.com +artoferotica.info +artofpeacefoundation.org +artstation.com +artstationmedia.com +artstor.org +artsy.net +arxiv.org +amnyemachen.org +asacp.org +asagaku.com +asahi.com +ascelibrary.org +amnestyusa.org +asebay.com +asexdoll.com +asextube.net +asha.org +ashemaletube.com +ashemaletv.com +ashleysageellison.com +amnesty.org +asia-gaming.com +asiacrazy.xyz +asiaharvest.org +asiamoviepass.com +asian-anal-sex.com +asian-max.com +asianage.com +asianboygay.com +asiancamgirllive.com +asiancamly.com +asianfreeporn.net +asiangfvideos.com +asiangirlsnextdoor.com +asianphd.com +asianporn.rest +asianpornjav.com +asianpornlabs.com +asianpornmovies.com +asianpornonly.com +asianporntrends.com +asianprivatetube.com +asianscreens.com +asiansexdiary.com +asiansmaster.com +asianspiss.com +asianthumbs.org +asianwifeporn.com +asianxxxjoy.com +asianxxxvideos.cc +asiaone.com +asiatgp.com +askfacebook.net +askfacebook.org +asknudes.com +askstudent.com +askubuntu.com +askynz.net +asm.org +asme.org +asmhentai.com +asminternational.org +asmrbuluo.com +asn-online.org +asp-cc.com +asp.net +aspbjournals.org +aspenpublishing.com +aspnetcdn.com +asproex.com +asproexapi.com +asredas.com +ass4all.com +assembla.com +assesphoto.com +assetsadobe.com +assimp.org +assistirhentai.com +assoass.com +associates-amazon.com +assylum.com +astm.org +astrill.com +amiibo.com +asus.com +amigobbs.net +atandt.com +atasale.com +atchinese.com +atdmt.com +atdmt2.com +ateam-oracle.com +atgfw.org +athenaeizou.com +amiblockedornot.com +atkgallery.com +atlanta168.com +atlantaminidealers.com +atlasdmt.com +atlasonepoint.com +atlaspost.com +atlassian.com +atlassian.net +atnext.com +atos.net +atscaleconference.com +att-bundles.com +att-idns.net +att-japan.com +att-mail.com +att-promotions.com +att-rsvp.com +att.com +att.jobs +att.net +attalascom.com +attbelieves.com +attbusiness.net +attcenter.com +attcollaborate.com +attdns.com +attdns.net +attexperts.com +attglobal.net +attinnovationspace.com +attinternetservice.com +attjoy.com +attnetclient.com +attonlineoffers.com +attproxy.com +attpublicpolicy.com +attpurchasing.com +attsavings.com +attspecial.com +attssl.com +attstadium.com +attsuppliers.com +atttvnow.com +attuverseoffers.com +attuverseonline.com +attvoip.com +attwatchtv.com +attwifi.com +attwirelessinternet.com +attwirelessonline.com +attwirelesssolutions.com +atubex.com +atypi.org +amerikiskhma.com +aucheapbeats.com +amerikayidzayn.com +audible.com +audiencenetwork.com +audiobeatsau.com +audiobeatsbydre.com +audiomonsterbeatsonline.com +auntymaza.com +auricularemonsterbeats.com +auricularesbeatsbaratosshop.com +auricularesbeatsmarkt.com +auroraoss.com +ausbeatsbydrdre.com +amerikaovozi.com +auth0.com +authorizeddns.net +authorizeddns.org +authorxml.com +authy.com +autodesk.com +autodraw.com +autumn-jade.com +av-baron.com +av-channel.com +av-e-body.com +av-th.net +av-top.com +av.com +av.movie +zsh.org +av11.org +av1688.cc +av234567.com +av369.net +av6k.com +avaaz.org +zqqpwz.com +avbebe.com +avcar.vip +avcens.xyz +avcnn.com +avcool.com +avcrempie.com +avdudu.top +avdwang.xyz +avelip.com +aventertainments.com +amerikaninsesi.org +avfantasy.com +avfox.cc +avg.com +avgigi.com +avgle.com +avgle.net +avgod.club +avh.world +avhbo.com +avhd101.com +avhome.one +amerikaninsesi.com +avidemux.org +avinetworks.com +avinin.com +avizoon.site +avizoone.com +avjb.com +avjoy.me +avlulu.cc +avmo.pw +avmoo.click +avmoo.com +avmoo.net +avmoo.pw +avn.com +avnana5.com +avoision.com +avpanda.cc +avriri.top +avseesee.com +avsforum.com +avstar.me +avstar01.me +avstar02.me +avstar03.me +avstar04.com +avstar04.me +avstar05.me +avstar06.me +avstar07.com +avstar07.me +avstar09.com +avstar09.me +avstar1.com +avstar2.com +avstar3.com +avstar4.com +avstar5.com +avstar6.com +avstar8.com +avstar9.com +avwong.com +avwto.com +avxde.org +avxlive.icu +avyahoo.com +americasvoice.news +awayoutgame.com +aweencore.com +awempire.com +awetv.com +awflapp.top +americanunfinished.com +aws-iot-hackathon.com +awsautopilot.com +awsautoscaling.com +awsbraket.com +awscommandlineinterface.com +awsedstart.com +awseducate.com +awseducate.net +awseducate.org +awsglobalaccelerator.com +awsloft-johannesburg.com +awsloft-stockholm.com +awssecworkshops.com +awsstatic.com +awsthinkbox.com +awstrack.me +awstrust.com +americangreencard.com +amebaowndme.com +axios.com +amebaownd.com +axureformac.com +ayshdade.info +ayshdee.xyz +ayudanintendo.com +amebame.com +azadiradio.com +azadliq.org +azathabar.com +azatliq.org +azattyk.org +azattyq.org +azerimix.com +aziani.com +aznude.com +amdfanstore.com +azure-devices-int.net +azure-devices.net +azure-dns.com +azure-dns.info +azure-dns.net +azure-dns.org +azure-mobile.net +azure-sphere.com +azure-test.net +azure.com +azure.net +azurecomcdn.net +azurecomm.net +azurecosmos.net +azurecosmosdb.com +azurecosmosdb.info +azurecosmosdb.net +azuredatabricks.net +azuredevopslaunch.com +azuredigitaltwin.com +azuredigitaltwins.com +azuredigitaltwins.net +azuredns-prd.info +azuredns-prd.org +azureedge-test.net +azureedge.net +azurefd.net +azureiotcentral.com +azureiotsolutions.com +azureiotsuite.com +azureplanetscale.info +azureplanetscale.net +azureserviceprofiler.com +azuresmartspaces.net +azurestackvalidation.com +azurewebsites.net +b-eroland.net +b-ok.cc +b-ok.global +b-ok.org +b0ne.com +b3boos.com +b3bos.com +b6b33.com +amd.com +baazee.com +babble.com +babecentrum.com +babeimpact.com +babepedia.com +babes.com +babes34.com +babes34.pro +babesandbitches.net +babesandgirls.com +babesandstars.com +babesaround.com +babesbang.com +babesinporn.com +babesmachine.com +babesnetwork.com +babesofindia.com +babesource.com +babestube.com +babosas.com +babushky.club +amazonworkdocs.com +babycondom.com +babylonbee.com +babyzone.com +backchina.com +backdoorlesbians.com +backroomcastingcouch.com +backtotiananmen.com +bacon.com +badaas.com +badasianpussy.com +badgen.net +badiucao.com +badjojo.com +badoinkvr.com +badoo.com +badsexygirl.com +badteenspunished.com +badvirtue.com +baeb.com +bag-glasses1.com +baicaonetwork.com +baijie.org +bailandaily.com +baixing.me +baizhi.org +ballbustingtube.com +baltimorebmw.com +bamgrid.com +bamtoki.com +amazonvideodirect.com +banana-vpn.com +amazonvideo.com +banatal3arab.com +banatfun.com +bandag.cc +bandag.com +bandcamp.com +bandgirlz.com +bandpage.com +bandwagonhost.com +bang-movies.com +bangbros.com +bangbrosnetwork.com +bangchen.net +bangdream.space +bangher.net +bangkokbangers.com +bangkokpost.com +bangkokstreetwhores.com +bangyoulater.com +bangyourwife.com +bankmobilevibe.com +banned.video +bannedbook.net +bannedbook.org +bannednews.org +banorte.com +amazonvideo.cc +baraero.com +baramangaonline.com +amazontrust.com +amazonstudiosguilds.com +amazonses.com +amazonsdi.com +barefootnetworks.com +barelist.com +barenakedislam.com +bareporno.com +barfuck.com +barium-enema.com +barkadahansasmartone.com +barrons-advisor.com +barrons-conferences.com +barrons.com +baselinestudy.com +baselinestudy.org +basilisk-browser.org +bastillepost.com +bastropfirestone.com +baterias-hp.com +batsa.me +battle.net +battlebreakers.com +battlefield.com +battlefield1943.com +battlefield3.com +battlefield4.com +battlefield5.com +battlefieldbadcompany2.com +battlefieldheroes.com +battlefieldv.com +battleforcecomix.com +battlefront2.com +battlefrontii.com +battlelog.com +amazonprimevideos.com +baxsound.com +bayareabmw.com +amazonpay.com +bayvoice.net +bazel.build +amazonlumberyard.wang +bb33.net +amazonliterarypartnership.com +bbbaihu.vip +amazonlaunchpad.com +bbc-anal.com +bbc-reporting-api.app +bbc.com +bbcchinese.com +bbcpersian.com +bbcpornonly.com +bbcverticals.com +bbestmall.com +bbgevent.com +bbgwatch.com +bbkz.com +bbnradio.org +bbs-tw.com +zozotown.com +zorrovpn.com +zorglist.com +zopim.com +zophar.net +zoozle.net +zoozhamster.com +zooyouporn.com +zooxxxsexporn.red +zootube1.com +zootool.com +zooskoolvideos.com +zoosexnet.com +zoosexfarm.com +bbsdigest.com +bbsfeed.com +bbsland.com +bbsmo.com +bbsone.com +amazonimages.com +bbthat.com +bbtoystore.com +amazonianblog.com +bbwmilftube.com +bby.com +bbycloud.com +bbycontent.com +bbycontent.net +bbyintl.com +bbystatic.com +bcbits.com +bcchinese.net +amazonfctours.com +bcicdn.com +bcmorning.com +amazondevicesupport.com +bcove.video +bcrncdn.com +bcvp0rtal.com +bcy01.com +amazonbusinessblog.com +bdawnvr.xyz +bdn.dev +bdsm-mov.net +bdsm.com +bdsm123.xyz +bdsmboard.org +bdsmbunker.com +bdsmcafe.com +bdsmland.org +bdsmlibrary.com +bdsmlr.com +bdsmpornonly.com +bdsmsexgame.com +bdsmstreak.com +bdsmtubexxx.com +bdsmtv.cc +bdsmvideos.net +amazonbusiness.org +beaconevents.com +beascoremodel.com +beastiegals.com +beastysexlinks.com +beastythumbs.com +beatbd.com +beatbydre2013.com +beatbydreheadphonesonsale.com +beatbydrekopen.com +beatbydremonster.com +beatbydreuk2014.com +beatdrdres.com +beatfactoryoutlets.com +beatmonstersaustralia.net +amazonaws.com +beats-by-dre-australia.com +beats-bydrdre.net +beats-bydre-mall.com +beats-bydrecheapsale.com +beats-bydreoutletonline.com +beats-bydreoutletsale.com +beats-bydreoutletsale.net +beats-bydreoutletssale.net +beats-bydrestore.com +beats-bydreuk.com +lhasocialwork.org +beats-dre-us.com +beats-headphones-buy-cheap.com +beats-sale.com +beats-seller.com +beats-soaho.com +beats1.cc +beats123.com +beats4.net +beats4outlets.com +beats4salecheap.com +beatsallsale.com +beatsaudifonos.com +beatsaudiobydre.com +beatsaudiobydre.net +beatsaudios.net +beatsbeatsmonster.com +beatsbestdeals.com +beatsblackfridaydeals.net +beatsblackfridayretails.com +beatsboxingdayuksale.com +beatsbydrdre-headphones.com +beatsbydrdre-officials5.com +beatsbydrdre-online.com +beatsbydrdre-onsale.com +beatsbydrdre-store.com +beatsbydrdre4sale.com +beatsbydrdrebiz.com +beatsbydrdrecustom.com +beatsbydrdredanmark.com +beatsbydrdremall.com +beatsbydrdreoutlet.com +beatsbydrdres.com +beatsbydrdresale.net +beatsbydrdrestore.com +beatsbydrdreus.com +beatsbydre-beatsheadphone.com +beatsbydre-chen.com +beatsbydre-club.com +beatsbydre-headphones.com +beatsbydre-headphonesshop.com +beatsbydre-mall.com +beatsbydre-outlet.com +beatsbydre-outletsale.net +beatsbydre-outletstore.com +beatsbydre-sell.com +beatsbydre-store.com +beatsbydre-studio.com +beatsbydre-us.com +beatsbydre2081.com +beatsbydre411.com +beatsbydre4usales.com +beatsbydreauofficial.com +beatsbydreausale.net +beatsbydreaustralia-sale.com +beatsbydreaustraliaonline.com +beatsbydreaustraliaonlines.com +beatsbydreaustraliasales.com +beatsbydrebeatsby.com +beatsbydreblackfriday2013.com +beatsbydreblackfridaypro.com +beatsbydreboxingdayca.com +beatsbydrecasquesfr.com +beatsbydrecheap-outletstore.com +beatsbydrecheaper.com +beatsbydrecheaponlinesales.com +beatsbydrecolors.com +beatsbydrecustomwireless.com +beatsbydrecybermondaydeals2013.com +beatsbydrecybermondaydeals2013.net +beatsbydredanmarks.com +beatsbydredealsblackfriday.com +beatsbydredealscybermonday.com +beatsbydrediscount.com +beatsbydrediscountonline.net +beatsbydredr.com +beatsbydreexecutivesale.com +beatsbydreformall2013-nl.com +beatsbydreforsalesonline.com +beatsbydreforshop2013-nl.com +beatsbydreforstore.com +beatsbydreforyououtlet.com +beatsbydrefr.com +beatsbydrefrcasquepascher.com +beatsbydrefriday.com +beatsbydregot.com +beatsbydrehd.com +beatsbydrehd.net +beatsbydreheadphones-nz.com +beatsbydreheadphonesolo.com +beatsbydrehut.com +beatsbydreinexpensive.com +beatsbydreireland-sales.com +beatsbydreirelandonlines.com +beatsbydreirelandsale.com +beatsbydreirelandsonline.com +beatsbydremall2013.com +beatsbydremonsteraustralia.com +beatsbydrenls.com +beatsbydrenorge1.net +beatsbydreofficialdanmark.com +beatsbydreoksale.com +beatsbydreol.com +beatsbydreonlie2013-nl.com +beatsbydreonlines-ireland.com +beatsbydreonlines-uk.com +beatsbydreonlinesale-nz.com +beatsbydreoordopjes.com +beatsbydreoslo.com +beatsbydreoutletsale.com +beatsbydreoutletscheap.com +beatsbydrerealstore.com +beatsbydres-shop.com +beatsbydresale-uk.com +beatsbydresalemall2013.com +beatsbydresaleonlines-nz.com +beatsbydresalesonline-australia.com +beatsbydresdanmark.net +beatsbydreshop-uk.com +beatsbydreshops.net +beatsbydresingapores.com +beatsbydresingaporesale.com +beatsbydresold.com +beatsbydresolohdonline-canada.com +beatsbydresonline-nz.com +beatsbydrespeakers.com +beatsbydressale.com +beatsbydressolo.com +beatsbydresstudio.com +beatsbydrestorevip.com +beatsbydrestudio-australia.com +beatsbydrestudio.com +beatsbydretoutlet.com +beatsbydreuk.com +beatsbydreuk.net +beatsbydreus.com +beatsbydrevipde.com +beatsbydrew.com +beatsbydrsmonsterinusa.com +beatsbymusic.net +beatsbysdrbre.com +beatsbysdrdres.com +beatscasque-france.com +beatscheap-nz.com +beatscheap-uk.com +beatscheapforsale.com +beatscollection2014.com +beatscustomblackfriday.com +beatsdanmark2013.com +beatsdrdre-headphones.com +beatsdrdre-it.com +beatsdrdre-solo.com +beatsdrdre2014.com +beatsdrdrecuffie.net +beatsdrdrekaufenschweiz.net +beatsdrdreneon.com +beatsdre-monster.com +beatsdre.net +beatsdre4cheap.com +beatsdrecheap.com +beatsdredreheadphones.com +beatsdreforsale.com +beatsdreinau.com +beatsdremonster-uk.com +beatsdrenewcolorful4usale.com +beatsdreoutletsale.com +beatsdresale2013.com +beatsdresalestore.com +beatsdresolo2013.com +beatsdreus.com +beatsearbudsheadphoness.com +beatselectronic.net +beatselectronics.com +beatsep.com +beatsep.net +beatsfacstore.com +beatsfactoroutlets.com +beatsfactorycollection.com +beatsfactoryoutles.com +beatsforcheap-usa.com +beatsforme.com +beatsfranceofficiel.com +beatsheadphones-discount.com +beatsheadphones1.com +beatsheadphones2u.com +beatsheadphonesale.com +beatsheadphonesdealer.com +beatsheadphonesforcheap.net +beatsheadphonesonline.com +beatsheadphoness.com +beatsheadphonestudio.com +beatsheadphonesusamall.com +beatshopuk.com +beatsincanada.com +beatsinsingapore.com +beatsireland.net +beatsjoy.com +beatsmonstersales.com +beatsmusic.com +beatsmusic.wang +beatsneon.com +beatsnzsale.com +beatsodre.com +beatsofdre-usa.com +beatsonblackfriday2013.com +beatsone.net +beatsoutlet.net +beatsoutletanytime.com +beatsoutletonlines.com +beatspascher-bydre.com +beatspascher-fr.net +beatspascher.net +beatspaschers.net +beatspillnewcolor.com +beatspills.com +beatspromonsterjp.com +beatspromotions.com +beatssales.com +beatssaleus.com +beatssaustraliabuy.com +beatssbyaustralia.com +beatssbydredanmark.com +beatsshop-uk.com +beatsshop-usa.com +beatsshopstore.com +beatssingapores.com +beatssingaporeshop.com +beatsstudiohodetelefoner.com +beatsstudiosite.com +beatstoreusa.com +beatsua.com +beatswirelesscheap.com +beatswirelesscuffie.com +beatthatquote.com +beautifulandbusty.com +beautyescortsamsterdam.com +bebo.com +becomeindex.com +bedstegratisporno.com +beeg.com +beeg.rest +beegfree.com +beejp.net +beevpn.com +befuck.com +befuck.net +begin-trade.com +behance.net +behindkink.com +beibao.com +beijing1989.com +beijing2022.art +beijingnike.com +beijingspring.com +beijingzx.org +beiyongzhan1.com +bejav.net +bejeweledstars.com +bejewled-stars.com +amazonaws-china.com +belamionline.com +bell.wiki +bellebound.com +bellesa.co +bellotube.com +bellsouth.net +bemywife.cc +benaughty.fun +bengalisexvideos.com +benliton.com +amazonauthorinsights.com +beric.me +berkanawireless.com +amazonalexavoxcon.com +berlincompanions.com +berlintwitterwall.com +best-sex-games.com +best3dhere.com +bestamateurcumshots.com +bestbeats4u.com +bestbhy.com +amazon.red +bestbuy-audio.com +bestbuy-communityrelations.com +bestbuy-giftcard.info +bestbuy-int.com +bestbuy-jobs.com +bestbuy.com +bestbuy.info +bestbuy24x7solutions.com +bestbuybusiness.com +bestbuybusinessadvantageaccount.com +bestbuycanada.com +bestbuycharityclassic.com +bestbuycoffeemakers.com +bestbuyethics.com +bestbuygsm.com +bestbuyideax.com +bestbuyphotoworkshoptours.com +bestbuyrewards.com +bestbuys.com +bestbuysgeeksquad.com +bestbuysolutions.net +bestbuystores.com +bestbuytradein.com +bestbuyus.com +bestcamsites.net +besterpornos.com +bestforchina.org +bestfreecams.club +bestfreesexgames.com +bestfreetube.net +bestgames-2022.com +bestgore.com +besthandjobporn.com +besthentaitube.com +bestiality.guru +bestialitysextaboo.com +bestiphonestuff.com +bestjapanesepornsites.com +bestjavporn.com +bestjavporn.net +bestkinky.com +bestlistofporn.com +bestmallawards.com +bestpornclip.com +bestporncomix.com +bestporngames.com +bestpornsites.guide +bestpornstardb.com +bestporntube.me +bestpremiumpornsite.com +bestsexcam.com +bestshoesale2014.net +besttitstube.com +besttube4you.com +bestvpn.com +bestvpnanalysis.com +bestvpnserver.com +bestvpnservice.com +bestvpnusa.com +bestxxxsites.com +besuty99.com +besztbuy.com +bet365.com +betfair.com +beth.games +bethesda.net +bethesdagamestudios.com +bethsoft.com +betterexplained.com +betterhdporn.com +betternet.co +betternike.com +bettervpn.com +bettween.com +betvictor.com +beurettesvideo.com +bewww.net +bexjt5wz.xyz +bextbuy.com +beyondcore.com +beyondfirewall.com +amazon.jobs +bffshd.com +bfnn.org +amazon.dev +bgov.com +bgvpn.com +amazon.com +amazon-launchpad.com +amazon-lantern.com +bianlei.com +biantailajiao.com +biaoqs.xyz +biaoqs1.xyz +biaoqs2.xyz +amazon-jp-recruiting.com +biblesforamerica.org +bibox.com +bic2011.org +bidbay.com +bidong25.com +bidong9.com +bidorbuyindia.com +biedian.me +big.one +bigbeans.solutions +bigbigshop.com +bigblackdicklover.com +bigboobbundle.com +bigboobsalert.com +bigboobsandhotsex.com +bigboobsonline.org +bigboobspov.com +bigboobswives.com +bigboss.video +bigbuckbunny.org +bigcharts.com +bigcocker.com +bigdick.com +bigdickorgasm.com +bigfools.com +biggggg.com +bighead.group +bigindiansex.mobi +bigjapanesesex.com +bigmoney.biz +bignews.org +bigone.com +bigporn.com +bigsound.org +bigtitangelawhite.com +bigtithitomi.com +bigtithooker.com +bigtitsextapes.com +bigtitsgallery.net +bigtitsmodelsdirectory.com +bigtitsthreesomes.com +bigtitterrynova.com +bigtitvenera.com +bigtopsites.com +biguz.net +biitii.com +bijukujo.club +bikaa.xyz +bikac.xyz +bikaios.xyz +bili2.cc +bili888.com +bili999.com +biliintl.com +biliplus.com +biliworld.com +bill-safe.com +billmelater.com +billmelater.info +billmelater.net +billpoint.com +billpoint.info +billpointnewzealand.com +billypan.com +bimbim.com +bimbolive.com +binads.com +binance.cc +binance.charity +binance.cloud +binance.co +binance.com +binance.info +binance.me +binance.net +binance.org +binance.vision +binanceapi.com +binancezh.biz +binancezh.cc +binancezh.co +binancezh.com +binancezh.info +binancezh.ink +binancezh.kim +binancezh.link +binancezh.live +binancezh.mobi +binancezh.net +binancezh.pro +binancezh.top +amazon-fashions.com +bing.com +bing.net +bingads.com +bingagencyawards.com +bingapis.com +bingapistatistics.com +amazingcuckold.com +bingsandbox.com +bingvisualsearch.com +bingworld.com +binoculus.com +bintray.com +binux.me +biologists.com +biomedcentral.com +bioone.org +bioporno.com +biorxiv.org +bioware.com +biowarestore.com +biqle.org +bisq.network +bit-z.com +bitballoon.com +bitbank.cc +bitbay.net +bitbucket.org +bitchesgirls.com +bitchmomporn.com +bitchute.com +bitcoin.org +bitcointalk.org +bitcoinworld.com +bitfinex.com +bitflyer.com +bitget.com +bithumb.com +bitly.com +bitmex.com +bitnami.com +bitnamiapp.com +bitnamistudio.com +bitporno.com +bitquick.co +bitshare.com +bitsnoop.com +bitstamp.net +bitstream.com +bitterwinter.org +bittrex.com +bitvise.com +bitwarden.com +bizarresexuality.com +bizhat.com +bizographics.com +amatura.com +bjnewlife.org +bjs.org +bjzc.org +bkkdown.site +amatporn.com +bl-doujinsouko.com +blackamateurfuck.com +blackamateursvideos.com +blackandstacked.com +blackboxgames.com +blacked.com +blackfridaydrebeatsnew.com +blackfridaydrebeatsshop.com +blackhomeporn.com +blacklogic.com +blackmonsterterror.com +blackshemalevideo.com +blacksonblondes.com +blackstonespoliceservice.com +blacktowhite.net +blackvpn.com +amatorialesesso.com +blaoshi.cc +blazor.net +blender.org +blewpass.com +blink.org +blinkload.zone +blinkx.com +blinw.com +blizzard.com +blizzardgearstore.com +amateurxx.org +blockcn.com +blockedbyhk.com +blockless.com +zoos.gold +zooredtube.com +zooporno.biz +zoopornmd.com +zooporn.video +zooporn.shiksha +zooporn.pro +zoophilist.net +zoomobileporn.com +zoom.com +zoohun.com +zoogvpn.com +zoofilianet.com +zoofiction.com +zoo-xvideo.com +zoo-xnxx.com +zoo-tube8.com +zoo-porno.biz +zoo-hardcore.com +zononi.com +blogblog.com +blogcatalog.com +blogcity.me +blogdns.org +blogebay.com +blogger.com +bloggrowup.com +bloglines.com +bloglovin.com +blogoverflow.com +zonghexinwen.net +zonghexinwen.com +zonaeuropa.com +blogspot.com +zomobo.net +blogtd.net +blogtd.org +blogterest.net +bloodshed.net +amateurwivesvideos.com +bloomberg.com +bloombergapps.com +bloombergarcade.com +bloombergbeta.com +bloombergbna.com +bloombergbreakaway.com +bloombergbriefs.com +bloombergchina.com +bloombergenvironment.com +bloombergforeducation.com +bloomberggovernment.com +bloombergindices.com +bloombergindustry.com +bloomberglabs.com +bloomberglaw.com +bloomberglive.com +bloomberglp.com +bloombergmedia.com +bloombergnext.com +bloombergpolarlake.com +bloombergprep.com +bloombergquint.com +bloombergradio.com +bloombergsef.com +bloombergspace.com +bloombergstatus.com +bloombergsurvey.com +bloombergtax.com +bloombergtax1.com +bloombergtaxtech.com +bloombergtradingchallenge.com +bloombergvault.com +bloombergview.com +bloomfortune.com +amateurwifevideos.com +bloommicroventures.com +bloomsburycollections.com +bloomsburydesignlibrary.com +blowjobit.com +blowjobqueens.net +blpcareers.com +blpevents.com +blpprofessional.com +blubrry.com +blueangellive.com +bluefootcms.com +bluehatil.com +bluehatnights.com +bluemix.com +bluemix.net +bluestacks.com +bluffyporn.com +blurams.com +blz-contentstack.com +amateurwifetits.com +bmfinn.com +bmia.org +bmj.com +bml.info +amateurwifefuck.com +amateurthreesomeporn.com +bmw-abudhabi.com +bmw-adventskalender.com +bmw-albania.com +bmw-art-journey.com +bmw-arts-design.com +bmw-asia.com +bmw-auslieferungszentrum.com +bmw-authority-vehicles.com +bmw-bahrain.com +bmw-businessdrive.com +bmw-classic.com +bmw-clubs-international.com +bmw-connected-drive.com +bmw-connecteddrive.com +bmw-corporate-sales.com +bmw-diplomatic-sales.com +bmw-drivingexperience.com +bmw-dubai.com +bmw-eg.com +bmw-fleet.net +bmw-ghana.com +bmw-golfsport.com +bmw-group.com +bmw-group.net +bmw-grouparchives.com +bmw-i-pure-impulse.com +bmw-int1.com +bmw-iraq.com +bmw-jordan.com +bmw-ksa.com +bmw-kuwait.com +bmw-lebanon.com +bmw-m-safetycar.com +bmw-m.com +bmw-mdrivetour.com +bmw-me.com +bmw-military-sales.com +bmw-motorcycle.com +bmw-motorrad-abudhabi.com +bmw-motorrad-authorities.com +bmw-motorrad-dubai.com +bmw-motorrad-motorsport.com +bmw-motorrad-now-or-never.com +bmw-motorrad-service-inclusive.com +bmw-motorrad-test-ride.com +bmw-motorrad.co +bmw-motorrad.com +bmw-motorsport.com +bmw-mountains.com +bmw-museum.com +bmw-museum.net +bmw-nigeria.com +bmw-oman.com +bmw-pakistan.com +bmw-plant-munich.com +bmw-powertrain.com +bmw-product-highlights.com +bmw-qatar.com +bmw-routes.com +bmw-rp.com +bmw-rrdays.com +bmw-saudiarabia.com +bmw-security-vehicles.com +bmw-special-sales.com +bmw-sports.com +bmw-sudan.com +bmw-tahiti.com +bmw-tunisia.com +bmw-voli.me +bmw-welt.com +bmw-welt.net +bmw-world.com +bmw-world.net +bmw-worldfinal.com +bmw-yachtsport.com +bmw-yemen.com +bmw.cc +bmw.com +zoig.com +bmwartjourney.com +bmwasia.com +bmwauslieferungszentrum.com +bmwbikes.com +bmwcenternet.com +bmwchampionship.com +bmwchampionshipusa.com +bmwcharitygolf.com +bmwcitychallenge.com +bmwclassic.com +bmwcolorado.com +bmwconnecteddrive.com +bmwcustomapparel.com +bmwdcsnet.net +bmwdealercareers.com +bmwdealerdirect.com +bmwdelawarevalley.com +bmwfilms.com +bmwgroup-classic-heart.com +bmwgroup-classic.com +bmwgroup-gaad.com +bmwgroup-plants.com +bmwgroup-posdigital.com +bmwgroup-werke.com +bmwgroup.com +bmwgroup.jobs +bmwgroup.net +bmwgroupclassic.com +bmwgroupdesignworks.com +bmwgroupdirect.com +bmwgroupfs.com +bmwgroupinfobahn.com +bmwgroupna.com +bmwhk.com +bmwiventures.com +bmwjamaica.com +bmwlat.com +bmwm.com +bmwmagazine.com +bmwmass.com +bmwmass.net +bmwmc.net +bmwmotorcycles.com +bmwmotorcycleusa.com +bmwmotorradhk.com +bmwmotorshowblog.com +bmwmotorsport.com +bmwmperformance.com +bmwmuseum.net +bmwmyanmar.com +bmwofannapolis.com +bmwofcentralpa.com +bmwoftulsa.com +bmwondemandusa.com +bmworegon.com +bmwperformancecenter.com +bmwpittsburgh.com +bmwproductnews.com +bmwsafari.com +bmwsfl.com +bmwsfl.net +bmwsports.com +bmwstartupgarage.com +bmwstep.com +bmwstepconnections.com +bmwsummerschool.com +bmwtampabay.com +bmwusa.com +bmwusaservice.com +bmwusatires.com +bmwusfactory.com +bmwusrideracademy.com +bmwvalueservice.com +bmwwholesaleconnect.com +bmwworld.com +bmwworld.net +bmwzentrum.com +amateurswingersmovies.com +bnbstatic.com +bnef.com +bnews.co +amateursvid.com +bnn.co +amateurslovesporn.com +bnrmetal.com +amateursexpussy.com +boardreader.com +boboporn.com +boboporn.net +bobovip.cc +bobs-tube.com +bobvoyeur.com +bodgirls.com +bodog88.com +bodyfluids-jav.com +amateursecrets.net +amateurs-gone-wild.com +bokep.net +bokepseks.org +bokepvidz.com +bolehvpn.net +zohowebstatic.com +bollywoodlife.com +boltdns.net +bonbonme.com +bonbonsex.com +bondagecomixxx.net +bondagesex-xxx.com +bondagesm.xyz +bonedathome.com +bonfoundation.org +bongacams.com +bonyu.cyou +boobieblog.com +boobpedia.com +boobsrealm.com +boobstagram.com +boodigo.com +boodigogo.com +zohouniversity.com +book18.org +book4you.org +bookclubcorner.com +bookclubgirl.com +bookdepository.com +bookepub.com +bookfi.net +booking.com +bookmybridgestonetyre.com +bookonsky.net +booksc.me +booksc.org +booksc.xyz +bookshome.info +bookshome.net +bookshome.world +booksinprint.com +bookstagram.com +booloo.com +boomba.club +boomerang.com +boomssr.com +booru.org +amateurs-fuck.com +bootstrapcdn.com +bootyliciousmag.com +bootysource.com +borderlessprepaid.com +borgenmagazine.com +boringcompany.com +borwap.com +amateurpornsexvideos.com +boshancy.com +boslife.biz +boslife.net +bossae.com +amateurpornonly.com +amateurpornhouse.com +boswp.com +botanwang.com +botframework.com +botorch.org +botstop.com +boulx.com +boundhub.com +bountyhunterporn.com +bowenpress.com +bowlroll.net +bowsersinsidestory.com +box57.one +boxofficemojo.com +boxpn.com +boxun.com +boxunblog.com +boxunclub.com +boy18tube.com +boyangu.com +boycall.com +boyfriendtv.com +boylabs.net +boylove.cc +boylove.com +boylove.live +boylove1.cc +boyloves.cc +boypost.com +boysfood.com +boysmaster.com +boyspornpics.com +boyvid.com +boyztube.com +amateurporndump.com +zohostatic.com +amateurporn.photos +braeburncapital.com +braintreegateway.com +braintreepayments.com +braintreepayments.info +braintreepayments.org +braintreepaymentsolutions.com +braintreeps.com +brainyquote.com +branchportal.com +brand-protection-team.com +brandeasygo.com +brandelectronic.com +brandonhutchinson.com +brandporno.com +brandproducts1688.com +brands098.com +brasilincesto.com +brasiltudoliberado.com +braumeister.org +brave.com +braventures.com +braveux.com +bravoerotica.com +bravoporn.com +bravoteens.com +bravotube.net +brazilpartneruniversity.com +brazzer.com +brazzers-porno.online +brazzers-xxx.net +brazzers.com +brazzersnetwork.com +brazzersporn.mobi +brazzfan.com +brdteengal.com +break.com +breakdown.me +breakgfw.com +breaking911.com +breakingtweets.com +breakwall.net +breasthealthinfo.com +breath-takers.com +breitbart.com +brepolis.net +brewmp.com +briantreepayments.net +amateurpages.com +bridgestone-asiapacific.com +bridgestone-bandag.com +bridgestone-brand.com +bridgestone-plt-eng.com +bridgestone-tac-oman.com +bridgestone.com +zohoschools.com +bridgestoneamericas.com +bridgestonearena.com +bridgestonecntc.com +zohopublic.com +bridgestonegolf.com +bridgestonegz.com +bridgestonela.com +bridgestonemarketing.com +bridgestonemerchandise.com +bridgestonenationalfleet.com +bridgestoneperformance.com +bridgestoneperformancemedia.net +bridgestonerapiddelivery.com +bridgestonerewards.com +bridgestonesyb.com +bridgestonetire.com +bridgestonevan.com +bridgestonewx.com +briefdream.com +brightcove.com +brightcove.net +brightcove.services +brightcovecdn.com +briian.com +brill.com +brilliant.org +britsexcash.com +brizzly.com +brkmd.com +brliilantsdates.com +broadbandreports.com +broadbook.com +broadpressinc.com +brocaproject.com +brokenteens.com +bromite.org +bromo.com +bronto.com +amateuroldsluts.com +brotli.org +brourou.com +zohomerchandise.com +browserleaks.com +brucewang.net +amateurmommymovies.com +brutalbdsmtube.com +brutalfetish.com +brutaltgp.com +amateurhousewifefuck.com +bs-adreview.com +bsersd.xyz +bstatic.com +amateurhomevids.com +bt2mag.com +bt95.com +btaia.com +btbtav.com +btc98.com +btcbank.bank +btdig.com +btdigg.org +btku.me +btku.org +btspread.com +btsynckeys.com +btt804.com +btt904.com +bttzyw.com +bttzyw.net +bubbaporn.com +buck.build +buckbuild.com +budaedu.org +amateurgirlfriends.net +budatt.com +buddymedia.com +buffered.com +amateurgalore.net +bugzilla.org +buhidoh.net +amateurest.com +builtfromebay.com +bukkake-jav.com +bukkake.link +bullguard.com +bullog.org +bullogger.com +bululusexdoll.com +bumingbai.net +bumpshare.com +bumptop.com +bumptop.net +bumptop.org +bumptunes.com +bunbunhk.com +bunnylust.com +burningcamel.com +burstly.net +burstlyrewards.com +busayari.com +business-humanrights.org +business.page +businesscatalyst.com +businessinsider.com +businesswebwise.com +businessweek.com +businessweekmag.com +bustyangelique.com +bustyarianna.com +bustydanniashe.com +bustydustystash.com +bustyinescudna.com +bustykellykay.com +bustykerrymarie.com +bustylornamorgan.com +bustymerilyn.com +bustymomsvideo.com +bustynudebabes.com +bustyoldsluts.com +bustysammieblack.com +busu.org +busytrade.com +buugaa.com +buy-from-shanghai.com +buyaapl.com +buyaapl.net +buyaltera.com +buyaple.com +buybeatsbydre-uk.com +buybeatsheadphonesbydre.com +buycheapbeatsbus.com +buycheapbeatsbydre.com +buycheapbeatsbydreshop.com +buycheapbeatsdreuk.com +buydrdrebeatbox.com +buyfast-paysmart.net +buyingfacebooklikes.com +buyitnow.com +buyitnow.net +buyitnow.org +buyitnowshop.net +buymeacoffee.com +buyminibeatbox.com +buynikechina.com +buyoculus.com +buyonlineheadphones.com +buypass-ssl.com +buypass.com +buyshoponly.com +buzzardflapper.com +buzzav.com +buzzhand.com +buzzhand.net +buzzorange.com +buzzsprout.com +amateure-xtreme.com +bvdinfo.com +bvfce6wz.xyz +bvpn.com +amateurcuckoldporn.com +amateurcool.com +bwgyhw.com +bwh1.net +bwh8.net +bwh81.net +bwh88.net +bwh89.net +bwin.com +amateurblowjobporn.com +bybeatsdre.com +bybit.com +bydrebeats.com +byjav.me +byjhd.com +bypasscensorship.org +byrut.org +byspotify.com +byteoversea.com +amateurblondegirls.com +bzazi.com +amateurbdsmporn.com +c-est-simple.com +c-ij.com +c-span.org +c-spanvideo.org +c0930.com +c100tibet.org +c2cx.com +c4rex.co +c4slive.com +amateurarchiver.com +zohomeetups.com +cableav.xyz +cablegatesearch.net +cabletvdirectv.com +cachinese.com +cacnw.com +cactusvpn.com +amateuranalvideos.com +cafepress.com +caijinglengyan.com +caime.xyz +cairn.info +calameo.com +calebelston.com +calendarserver.org +calgarychinese.com +calgarychinese.net +calgon.com +calgoncarbon-china.com +calgoncarbon.com +calgonit.com +callabitch.org +callersbane.com +callhulu.com +calvappd.me +amateuranalporn.com +cam4.com +cam69.com +cambaddies.com +cambiaip.org +cambridge.org +cambridgedigital.net +cambridgemaths.org +cambridgeschoolshakespeare.com +camcam.cc +camdolls.com +camelot-europe.com +camelotherald.com +camelotherald.net +camelphat.com +camelspaceeffect.com +cameraboys.com +camerfirma.com +camfinder.com +camfox.com +camfrog.com +camgirlfinder.net +camgirlstemple.com +camgirlvideos.org +camonster.com +campaignforuyghurs.org +campushp.com +campuslondon.com +camrabbit.com +cams.com +camsoda.com +camsoda1.com +camstagestudio.com +camster.com +camvideos.org +camvideoshub.com +camwhores-tv.com +camwhores.forum +camwhores.video +camwhoresbay.com +camwhoreshd.com +camwhoria.com +canada-beatsbydre.com +canadameet.com +amateuralbum.net +canalporno.com +candidforum-videos.com +candycumcity.com +candypleasure.com +amateur-threesomes.com +canon-cee.com +canon-cmos-sensors.com +canon-cna.com +canon-emea.com +canon-europa.com +canon-europe.com +canon-me.com +canon.com +canon.me +canon.net +canonfoundation.org +canonical.com +canonproprinters.com +canyu.org +caobian.info +caochangqing.com +amateur-pussies.com +capitalgames.com +capitaliq.com +amateur-porn-tube.net +carabinasypistolas.com +amateur-porn-clips.com +carbon.com +cardinalkungfoundation.org +carebay.com +careerfundas.com +careerjournal.com +careersatfb.com +carekit.org +amateur-home-sex.com +carfax.com +cargigileads.com +caribbeancom.com +caribbeancompr.com +carmotorshow.com +carrd.co +carstagram.com +amateur-gallery-post.com +cartoon18.com +cartoon3thumbs.com +cartoonmovement.com +cartoonporn.com +cartoonpornonly.com +cartoonpornvideos.com +cartoonregistry.com +cartoonscity.com +cartoonsexfantazy.com +cartoontube.com +cartoonville.net +cas.org +amateur-fetish.com +casadeltibetbcn.org +amateur-exhibitionist.org +amateur-cougar.com +cash.app +cash2.com +cashback69.com +amapornofilme.com +cashbycashapp.com +cashify.com +cashify.net +cashpassport.com +cashpassport.net +cashpassportglobe.com +cashvideotube.com +casimages.com +amanmi.com +casinobellini.com +casinoking.com +casinoriva.com +casoneexchange.com +casque-fr.com +casquebeatsbydrdresolohd.com +casquebeatsdocteurdre.com +casquebeatsdre2013.com +casquebeatsenligne.com +casquebeatsfracheter.com +casquebeatsmer.net +casquebeatsofficiel-fr.com +casquebeatspascher2013.com +casquebeatssolo.net +casquedrdrebeatssfr.com +casquemonsterbeats.com +casquemonsterbeatsbydre2013.com +casquesbeatsaudio.com +castingcouch-x.com +casualhomemadesex.com +amandalist.com +catalinacruz.com +catch22.net +catchgod.com +catchplay.com +amamanualofstyle.com +catmiimi.com +cato.org +cattt.com +cavporn.com +amakings.com +cbart.net +amabitch.com +amaaozn.com +alwaysvpn.com +cbs.com +cbsaavideo.com +cbscorporation.com +cbsi.com +cbsi.video +cbsiam.com +cbsig.net +cbsimg.net +cbsinteractive.com +cbsistatic.com +cbsivideo.com +cbsnews.com +cbspressexpress.com +cbssports.com +cbsstatic.com +cbssvideo.com +cc18.biz +cc18tv.com +ccav69.info +ccav69.me +ccav691api.com +cccat.cc +cccat.co +ccdtr.org +cchere.com +cciernslabs.com +cciesecuritylabs.com +ccievoicelabs.com +ccim.org +cclife.org +cclifefl.org +ccna5.net +ccnsite.com +ccpsx.com +ccstatic.org +ccthere.com +ccthere.net +cctmweb.net +cctongbao.com +ccue.com +alwaysdata.net +cdbook.org +cdcparty.com +cdef.org +cdig.info +cdjp.org +cdkworkshop.com +cdmatech.com +cdn-apple.com +zohocdn.com +cdn-terapeak.com +zoho.com +zobry.site +zndsk.com +030buy.com +zlibcdn2.com +cdn77.com +cdn77.org +cdninstagram.com +cdnjs.com +cdnlab.live +cdnpure.com +cdp1989.org +cdp1998.org +cdp2006.org +cdpeu.org +cdpusa.org +cdpweb.org +cdpwu.org +cdw.com +alwaysdata.com +cebay.com +ceicdata.com +celebforum.co +celebgramme.com +celebmasta.live +celebritygay.com +celebritynakeds.com +celebrityslips.com +celebritystorysite.com +celebsporno.com +celebsroulette.com +celeron.com +celeron.net +cell.com +cellulo.info +cencoastbmw.com +cenkei.com +centerforhumanreprod.com +centos.org +centralnation.com +centralvalidation.com +centrino.com +centrino.net +centurys.net +cepacol.com +cerdas.com +alvinalexander.com +certificat2.com +certificate-transparency.org +zlibcdn.com +certinomis.com +cervical-exam.com +altrec.com +cf-ipfs.com +altporn.net +cfake.com +cfblob.com +cfna.com +cfr.org +cftfc.com +cfwives.com +altmetric.com +cgdepot.org +zlib.life +alternativeto.net +zkaip.com +championshipseriesleague.com +alternate-tools.com +change.org +changeip.name +changeip.net +changeip.org +alterauserforums.net +changp.com +changsa.net +channelnewsasia.com +chaoex.com +chapm25.com +chargenow.com +chargenowusa.com +charlestonroadregistry.com +charmescorts.com +charticulator.com +alterauserforums.com +alterauserforum.net +alterauserforum.com +chatango.com +chatnook.com +alteraforums.net +chatter.com +chaturbate.com +chatwhores.com +chatwhores.net +chatwhores.org +cheap-beats-by-dre.net +cheap-beatsbydre.com +cheap-nike.com +cheapbagshoes.com +cheapbeats365.com +cheapbeats4sale.net +cheapbeatsaustraliasale.com +cheapbeatsbus.com +cheapbeatsbydr.com +cheapbeatsbydrdrepro.com +cheapbeatsbydre-au.com +cheapbeatsbydre99.com +cheapbeatsbydrefau.com +cheapbeatsbydremall.com +cheapbeatsbydremonster.com +cheapbeatsbydrenz.net +cheapbeatsbydreonsale.com +cheapbeatsbydreoutlet-nz.com +cheapbeatsbydreoutlet.com +cheapbeatsbydreoutlets2013.com +cheapbeatsbydresale.com +cheapbeatsbydreshop.com +cheapbeatsbydrestudioedition.com +cheapbeatsbydrestudioutlet.com +cheapbeatsdrdresolo.com +cheapbeatsdrestudios.com +cheapbeatsheadphone2014.com +cheapbeatsie.com +cheapbeatsla.com +cheapbeatssale4u.com +cheapbeatsshopbydre.com +cheapcustombeatsbydre.com +cheapdrdrebeats8.com +cheapdrdrebeatsca.com +cheapdrebeats8.net +cheaperbeatsbydresale.com +cheapestbeatsdrdre.com +cheapheadphonesland.com +cheapheadphonessale.com +cheapheadsetmall.com +cheapheadsetshop.com +cheapmonsterbeatsbydrdre.com +cheapmonsterbeatsheadsets.com +cheapmonsterbeatssale.com +cheapmonstersbeatsonsale.com +cheapnewbeatsbydre.com +cheapnikedunks.com +cheapnikeoutlet.com +cheapsalemonster.com +cheapshoesvip.com +cheapwireless04.com +cheapwirelessbeats.com +checkgfw.com +chegg.com +cheggcdn.com +chemequations.com +chemnetbase.com +chengjuanseo.com +chengmingmag.com +chenguangcheng.com +chenpokong.com +chenpokong.net +chenpokongvip.com +cherry-tale.com +cherryasia.com +cherrybrady.com +cherrynudes.com +cherrypai.com +cherrypanpan.com +cherrypimps.com +cherrypornhd.com +cherrysave.com +alteraforums.com +alteraforum.com +altera.com +chhongbi.org +chicagolandbmw.com +chicagoncmtv.com +chickstagram.com +chickteases.com +chihair-straightener.com +chikiporn.com +chillingo.com +chimeforchange.org +china-facebook.com +zishy.com +china-mmm.net +zippyshare.com +china-week.com +04647.club +china101.com +china18.org +china21.com +china21.org +chinaaffairs.org +chinaaid.me +chinaaid.net +chinaaid.org +chinachange.org +chinaclothesstore.com +chinacomments.org +chinadecoding.com +chinadialogue.net +chinadigitaltimes.net +chinaeconomicreview.com +chinaelections.org +chinaeweekly.com +chinafile.com +chinafreepress.org +chinagate.com +chinageeks.org +chinagfw.org +chinagonet.com +chinagreenparty.org +chinahorizon.org +chinahush.com +chinainperspective.com +chinainterimgov.org +chinalaborwatch.org +chinalawandpolicy.com +chinalawtranslate.com +chinamule.com +chinamz.org +chinanewscenter.com +chinarightsia.org +chinasmile.net +chinasocialdemocraticparty.com +chinasoul.org +chinasucks.net +chinatimes.com +chinatopsex.com +chinatweeps.com +chinaway.org +chinaworker.info +chinaxchina.com +chinayuanmin.org +chinese-hermit.net +chinese-leaders.org +chinese-memorial.org +chinese-porn-videos.com +chinese-xnxx.com +ziporn.com +zinio.com +zingtruyen.net +chinesedaily.com +chinesedailynews.com +chinesedemocracy.com +chinesegay.org +chinesepen.org +chineseradioseattle.com +chinesespanking.com +chinesetalks.net +chineseupress.com +chinesexxxporn.net +chingcheong.com +chinman.net +alt.com +chips.com +chithu.org +alpinelinux.org +chla3.com +alphera.net +chloesworld.com +chobit.cc +chocam.com +chocolatey.org +choicereviews.org +chomp.com +chrdnet.com +christianfreedom.org +christianstudy.com +christusrex.org +christymarks.com +alphera.com +chrome.com +chromebook.com +chromecast.com +chromeexperiments.com +chromeos.dev +chromercise.com +chromestatus.com +chromium.org +chronicle.security +chroniclesec.com +alphassl.com +chuang-yen.org +chubbypornonly.com +chubold.com +chubun.com +chunja19.net +chuporno.com +churchinhongkong.org +chwr7s8u.com +chyoa.com +alphaporno.com +ci-en.net +alphabetfinance.net +ciattackers.com +cienen.com +cilk.com +cilk.net +alphabet.info +cindymovies.com +cinemax.com +cinepornogratis.com +cios.org +cipfg.org +alphabet.com +circlethebayfortibet.org +cirosantilli.com +alphabet.biz +cisco-returns.com +cisco-warrantyfinder.com +cisco.com +cisco.mobi +ciscoccservice.com +ciscoconnectcloud.com +ciscoconnectcloud.net +ciscoconnectcloud.org +ciscocontest.com +ciscoerate.com +ciscofax.com +ciscoinvestments.com +ciscojabbervideo.net +ciscokinetic.com +ciscoknowledgenetwork.com +ciscolearningsociety.org +ciscolearningsystem.com +ciscolive.com +cisconetapp.com +cisconetspace.com +cisconetspace.info +cisconetspace.net +ciscopartnermarketing.com +ciscopowercube.com +ciscoprice.com +ciscoresearch.com +ciscosoftware.com +ciscospark.com +ciscotaccc.com +ciscotr.com +ciscoturk.net +ciscovideo.com +ciscowebseminars.com +cispaletter.com +cispaletter.org +alotporn.com +citasecuador.com +alohatube.com +citizencn.com +citizenlab.org +citizensradio.org +city-hentai.com +city9x.com +almostmy.com +cityheaven.net +citylab.com +cityoflove.com +citytourgirls.com +civildisobediencemovement.org +civilhrfront.org +civiliangunner.com +civitai.com +cixp.net +ciyuanjie.cc +almasdarnews.com +ck101.com +ckcdn.com +ckck.fun +ckss98.com +allthefallen.moe +zind.cloud +claravenger.com +clarionproject.org +clarivate.com +clasporno.org +classicalguitarblog.net +classicnike.com +classymomsex.com +clco.cc +zillionk.com +cleansite.biz +cleansite.info +clearharmony.net +clearlinux.org +clearsurance.com +clearwisdom.net +clementine-player.org +click-url.com +ziddu.com +zibacity.com +clinical-videos.com +clinicalkey.com +allswingersclubs.org +clip16.com +clipcake.com +cliphayho.com +cliphunter.com +clips4sale.com +clipsaoyai.com +clipsbai.com +clipseksi.com +clitgames.com +cloakpoint.com +clojure.org +cloudapp.net +cloudappsecurity.com +cloudburstresearch.com +cloudc.one +cloudchoose.com +cloudcone.com +cloudcone.net +cloudconvert.com +cloudcraze.com +cloudcredibility.com +cloudflare-dns.com +cloudflare-ech.com +cloudflare-gateway.com +cloudflare-ipfs.com +cloudflare-quic.com +cloudflare.com +cloudflare.net +cloudflareaccess.com +cloudflareapps.com +cloudflarebolt.com +cloudflareclient.com +cloudflareinsights.com +cloudflareok.com +cloudflareportal.com +cloudflarepreview.com +cloudflareresolve.com +cloudflaressl.com +cloudflarestatus.com +cloudflarestorage.com +cloudflarestream.com +cloudflaretest.com +cloudflarewarp.com +cloudfront.com +cloudfront.net +cloudfunctions.net +cloudhealthtech.com +cloudinary.com +cloudinary.net +cloudinsights.com +cloudlive.com +cloudlock.com +cloudn.me +cloudproxy.app +cloudrobotics.com +cloudvolumes.com +cloudyzgirl.com +cloupia.com +cloupia.net +club1069.com +clubhouse.com +clubhouseapi.com +allspyclips.com +clubseventeen.com +clubsweethearts.com +clubtubes.com +clusterconnection.com +allpornsitespass.com +cmcn.org +cmhalq.com +cmpaas.com +cms-twdigitalassets.com +cmule.com +cmule.org +cn-proxy.com +zi.media +zhuichaguoji.org +zhuatieba.com +zhuangbi.me +zhreader.com +zhoushuguang.com +zhongmeng.org +zhongguotese.net +zhongguorenquan.org +cnabc.com +zhinengluyou.com +cnbc.com +cnbcfm.com +cnbeta.com +cnbetacdn.com +cncrivals.com +cnd.org +cnet.com +cnineu.com +cnix-gov-cn.com +cnn.com +cnnamador.com +cnnarabic.com +zhimeishe888.com +cnnikebrand.com +cnnlabs.com +cnnmoney.com +cnnmoneystream.com +cnnpolitics.com +cnpmjs.org +cnpolitics.org +cnproxy.com +cnshopin.com +cnyes.com +cobatt.com +cobinhood.com +cobrasearch.com +cochina.co +cochina.org +cochranelibrary.com +cock4stepmom.com +cockofhorse.com +cocksuckersguide.com +cocktailsandcocktalk.com +cockyboys.com +code.org +code1984.com +codeberg.org +codecademy.com +codeforces.com +codeish.co +codeskulptor.org +codespot.com +codethemicrobit.com +codivorexxx.com +coedcherry.com +coinbase.com +coinbene.com +coinegg.com +coinex.com +coingecko.com +coingi.com +coinglass.com +coinmarketcap.com +coinonecore.com +coinonecorp.com +cointiger.com +cointobe.com +coinut.com +coithienthai.com +coitustube.com +colegialasdeverdad.com +colegialasreales.com +collabora.com +collabora.org +collaboraoffice.com +collateralmurder.com +collateralmurder.org +collection-3d.com +collectionofbestporn.com +collective99.com +collegejournal.com +collegepornonly.com +collegesexgames.com +colliderporn.com +colombianas.webcam +colorfulstage.com +colorprotechnology.com +allpornsites.net +comdotgame.com +comeav.com +comefromchina.com +cometotheduckside.com +comic-mega.me +comicbox.xyz +comicscartoonporn.com +comicunivers.com +comicuniverse.org +comixzilla.com +commandandconquer.com +commandarms.com +allporncomic.com +comments.app +commentshk.com +commerceos.com +communistcrimes.org +communitychoicecu.com +como-hackearfacebook.com +comodo.com +comodo.net +comodoca.com +comodoca2.com +comodoca3.com +comodoca4.com +compaq.org +comparitech.com +compileheart.com +componentkit.org +compresspdf.new +computer.org +computingreviews.com +comsoc.org +conair.me +allpasswords.com +connect-in-canada.com +connectcommerce.info +connected-drive.com +connectedcommerce.com +connectionsacademy.com +connectionseducation.com +connectionslearning.com +allowed.org +conquerwithcharacter.com +conscrypt.com +conscrypt.org +contactmagazine.net +contactossexoecuador.com +containersonaws.com +zhenxiang.biz +contentful.com +contest.com +zhenlibu1984.com +convio.net +convrgencegame.com +coobay.com +cookiechoices.org +allover30.com +cool-comics.com +cool18.com +coolaler.com +coolder.com +coolinet.net +cooliphonecasesstore.com +coolmonster.net +coolncute.com +coolsexnew.com +coolstuffinc.com +coomer.party +coova.com +coova.net +coova.org +copro.pw +coqnu.com +corbinfisher.com +cordcloud.org +coreduo.com +coreextreme.com +coreml.net +coreoptics.net +corepublishingsolutions.com +coronavirusnow.com +corporatecashpassport.com +allmovie.com +cortanaanalytics.com +cortanaskills.com +cortexrpg.com +corumcollege.com +cos-moe.com +zhenlibu.info +zhengwunet.org +zhengjian.org +cosmosdb.info +cosmosdb.net +cosplay-jav.com +cosplayporntube.com +cosplayworld.net +zhenghui.org +costco-static.com +costco.com +costcobusinessdelivery.com +cotolia.com +cotweet.com +cougarsexmovies.com +counter.social +coupang.com +coupangcdn.com +coursehero.com +coursera-for-business.org +coursera.community +coursera.help +coursera.org +covid19-rx.org +covid19rx.org +cowboom.com +cozydrdrebeats.com +cp44.net +cpan.org +cpedge.com +cpj.org +cqcorea.com +allmomsex.com +crabporn.com +crackle.com +craigslist.org +crazy-amateurs.com +crazyav.xyz +crazybook.xyz +crazyfiction.xyz +crazylivecams.com +crazynovel.xyz +crazys.cc +crazyshit.com +crazyxxx3dworld.com +crazyxxx3dworld.net +crazyxxx3dworld.org +crazyxxxworld.com +crbug.com +crchina.org +crd-net.org +creaders.net +creadersnet.com +creamasia.com +creamlemon.info +creampieforgranny.com +creampiehomevideos.com +createspace.com +creativecloud.com +creativecommons.engineering +creativecommons.org +creativelab5.com +creativesdk.com +crececonebay.com +creditcardsbay.com +cricketcountry.com +cristyli.com +crit-staging.com +crmdynint-gcc.com +crmdynint.com +crocotube.com +cromite.org +crossborderexpansion.com +crossfitfirestone.com +crossmediapanel.com +crossthewall.net +crossvpn.net +crosswalk-project.com +crosswalk-project.net +crowdtangle.com +alljapanesepass.com +croxyproxy.com +crr.com +crrev.com +alljackpotscasino.com +crucial.com +cruel-furies.com +crunchyroll.com +crustwebsites.net +crypto.com +cryptocompare.com +crystalgunnsworld.com +crystalmiss.com +cs.co +cs4hs.com +allinternal.com +csdparty.com +csgfnmdb.com +cshive.com +csifund.org +csis.org +csmonitor.com +csnjcbnxdnb.com +cstatic.net +ctan.org +ctao.org +ctfassets.net +ctfriend.net +ctotires.com +ctowc.org +ctwant.com +ctyun.online +allinfa.com +cuckfilmswifefuck.com +cuckold69.com +cuckoldfuck.com +cuckoldingwifey.com +cuckoldinterracialporn.com +cuckoldinterracialwife.com +cuckoldplacetube.com +cuckoldporntube.com +cuckoldwifesex.com +cuckoldwifesexxx.com +cuckoldwifetube.com +cuckporn.com +cuckvideos.com +cuckwatchingwife.com +cuckwimp.com +cuebic.biz +cuffiesaldi.com +cuhkacs.org +cuihua.org +alliancesages.com +cuiweiping.net +cultoferotica.com +cum4k.cc +cumasianporn.com +cumfox.com +cumlouder.com +cumshotlist.com +cumswappingsis.com +cumteenporn.com +cuntempire.com +cuntwars.com +cups.org +curbed.com +currently.com +currently.net +cursecdn.com +curseforge.com +curvefish.com +curvybbwwives.com +curvyerotic.com +custom-iphonecase.com +custombeatsbydrebuy.com +custombeatsdeals.com +custombeatsforcheap.com +custombeatsny.com +custombeatssbydreus.com +customdrdrebeats.com +customizedbeatbydre.com +customizedbeatsbydre.com +customizedbeatsdre.com +customnikeshoes.com +cutscenes.net +allhorsesex.com +allhen.online +cwcams.com +allgravure.com +allgirlsallowed.org +cyber-bay.info +cyber-bay.org +zhanlve.org +cyberghostvpn.com +cybermondaybeats4sale.com +cygwin.com +cylink.pro +cylink0122.icu +allgirlmassage.com +cynscribe.com +cython.org +cyyeshb.com +allfinegirls.com +czechav.com +czechbiporn.com +czechcasting.com +czechhunter.com +czechlesbians.com +czechmassage.com +czechstreets.com +czechvideo.org +czechvr.com +czechwifeswap.com +d-fukyu.com +d-trust.net +d-upp.com +d100.net +d2bay.com +d2mrry2to5rg.com +d2pass.com +da-files.com +da3dsoul.dev +daboja18.com +dabr.me +dabr.mobi +allfet.net +dacebook.com +dachix.com +dadazim.com +daddyslilangel.com +dadi360.com +dafabet.com +dafagood.com +dafahao.com +dafoh.org +daftporn.com +daftsex-hd.com +daftsex.com +dagfs.com +dailidaili.com +dailybasis.com +dailymail.com +dailymailonline.com +dailymotion.com +zhangtianliang.com +dailyporn.club +dailysabah.com +daindianporn.com +daiphapinfo.net +dajiyuan.com +zhangboli.net +dalailama-archives.org +dalailama.com +dalailama80.org +dalailamacenter.org +dalailamafellows.org +dalailamafilm.com +dalailamafoundation.org +dalailamahindi.com +dalailamainaustralia.org +dalailamajapanese.com +dalailamaprotesters.info +dalailamaquotes.org +dalailamatrust.org +dalailamaworld.com +dalianmeng.org +daliulian.org +damduc.org +damnhotz.com +damplips.com +dandalinvoa.com +dandanzan.cc +danemarket.com +danke4china.net +danmarkbeatsbydrdre.com +danskpornofilm.com +dansmovies.com +daoc.net +zhanbin.net +daolan.net +daretoku-eromanga.info +darivoa.com +darkageofcamelot.com +darkcategories.com +darknaija.com +darkness-risen.com +darknessporn.com +darknun.com +darksidemagazine.com +darktech.org +darktoy.net +darrenliuwei.com +dart.dev +dartlang.org +dartpad.dev +dartsearch-cn.net +dartsearch.net +darwinsource.com +darwinsource.org +darwinsourcecode.com +dashwood360.com +dastanhisexy.cc +dastrassi.org +dat.foundation +data-vocabulary.org +data.com +zhainanjidid.top +dataliberation.org +datasheets360.com +datawav.club +date2night.xyz +allervpn.com +alldrawnsex.com +daum.net +david-kilgour.com +david-laserscanner.com +dawangidc.com +dawngate.com +dawngatechronicles.com +daylenerio.com +daylife.com +daytonbmw.com +daytontrucktires.com +dazn-api.com +dazn.com +dazndn.com +dbgjd.com +dcard.cc +dcard.link +alldrawingshere.com +dcmilitary.com +dctbeatsbydre.com +ddd-smart.net +ddg.co +ddhw.info +dditsadn.com +dditscdn.com +ddns.info +ddns.mobi +ddns.name +ddns.net +allconnected.co +de-sci.org +de1lib.org +deadline.com +deadspacegame.com +deaftone.com +dealbay.com +dealerspeed.net +dealsbeatsblackfriday.com +dealtime.com +dealtree.org +deasians.com +debank.com +debian.org +debug.com +debugproject.com +decentr.net +dechamora.com +decodet.co +decorativemodels.com +decrypt.day +deeper.com +deepfake-porn.com +deepfakeporn.net +deepfreeze.com +deepfreeze.net +deepfreeze.tech +deepl.com +deepmind.com +deezer.com +definebabe.com +definefetish.com +degruyter.com +deiightfuidates.net +deja.com +delcamp.net +delicious.com +allcoin.com +dell-brand.com +dell.com +dellcdn.com +all4mom.org +all3dsexpics.com +all-sex-links.com +delvenetworks.com +demandware.com +demdex.net +demfhz.xyz +zhainanjidi.xyz +democracy.earth +democrats.org +demoprint.com +dengeamerika.com +dengiamerika.com +deno.land +dentalhypotheses.com +dependabot.com +depositphotos.com +deps.dev +deps.info +zhaimankan.com +derpibooru.org +desertbmw.com +designeriphonescases.com +desihoes.com +desiporn.tube +desipornfilms.com +desiraesworld.com +zh99.net +desiresecrets.com +desk.com +desktopmovie.com +desktopmovie.net +desktopmovie.org +desktopmovies.net +desktopmovies.org +dessci.com +detaliczny.com +detentiongirls.com +dettol-prize.com +dettol.com +dettol.net +dettolarabia.com +dettolcleannaija.com +dettolthailand.com +deutsch-sexfilme.com +deutschepornos-kostenlos.net +alkasir.com +deutschsex.com +dev-guardianapis.com +dev-theguardian.com +devcon.org +developer-advisor.com +zgzcjj.net +zgsddh.com +developria.com +deviantart.com +deviantart.net +deviantclip.com +devilsfilm.com +devm2m.com +devopsassessment.net +devopsms.com +devpn.com +devsitetest.how +devtools-paypal.com +dewitwithdurex.com +dexterhorn.com +dezyred.com +df-bet.com +dfn.org +dgaqp.com +dgwav.com +dharamsalanet.com +dharmakara.net +dhcp.biz +aljazeera.net +zfreet.com +diablo3.com +diabloimmortal.com +dialga.com +dialogflow.com +diamantewebcam.com +diamondgirlstudio.com +dianapost.com +dianepoppos.com +diaoyuislands.org +zeutch.com +dicela.com +dicela.net +dickeomas.com +dickhardon.com +didce.com +diddykongracing.com +didilist.com +dierectv.com +difangwenge.org +digicert-cn.com +digicert-validation.com +digicert.com +aljazeera.com +digisfera.com +digital-anime.com +digital-rb.com +digitalassetlinks.org +digitalcertvalidation.com +digitaldesire.com +digitalhub.com +digitalnomadsproject.org +digitalocean.com +digitaloceanspaces.com +digitalpack.com +digitalplayground.com +digitalplaygroundnetwork.com +diigo.com +dilcdn.com +dinotube.com +dipity.com +dirctv.com +direcpath.com +direcpath.net +directcreative.com +directtv-dish.com +directtv.net +directtvreviews.com +directv-4-you.com +directv-newyork.com +directv.com +directvadsales.com +directvatlantaga.com +directvboston.com +directvbundles.com +directvbusiness.com +directvbusinessmarket.com +directvcincinnatioh.com +directvcinema.com +directvconnect.com +directvcookevilletn.com +directvcrossvilletn.com +directvdealer.com +directvdeals.com +directvdealsnow.com +directvforhotels.com +directvgrandslam.com +directvhouston.com +directvinternet.com +directvkentucky.com +directvlebanontn.com +directvlosangeles.com +directvmetropolisil.com +directvmonitoring.com +directvmurfreesborotn.com +directvnewhampshire.com +directvnow.com +directvoffercodes.com +directvonline.com +directvplans.com +directvpomise.com +directvpromise.com +directvpromotions.com +directvrebate.com +directvrichmond.com +directvsavings.com +directvsports.com +directvsundayticket.com +direectv.com +diretv.com +dirty.games +dirtyasiantube.com +dirtydoglinks.com +dirtyfarmer.com +dirtyflix.com +dirtyhomefuck.com +dirtyleague.com +dirtyonline.com +dirtypornvids.com +dirtyscat.org +dirtyshack.com +dirtyship.com +disco-api.com +discoins.com +disconnect.me +discord-activities.com +discord.co +discord.com +discord.design +discord.dev +discord.gift +discord.gifts +discord.media +discord.new +discord.store +discord.tools +discordactivities.com +discordapp.com +discordapp.net +discordcdn.com +discordmerch.com +discordpartygames.com +discordsays.com +discordstatus.com +discountbeatsbydre-us.com +discountbeatsstore.com +discountedporn.com +discountporn.club +alivevue.com +discoveryplus.com +discuss4u.com +discussionsapple.com +alivevmax.com +dish.com +dishworld.com +disney-asia.com +disney-discount.com +disney-plus.net +zettai-ero.com +disney-studio.com +disney-studio.net +disney.com +disneyadsales.com +disneyarena.com +disneyaulani.com +disneybaby.com +disneycareers.com +disneychannelonstage.com +disneychannelroadtrip.com +disneycruisebrasil.com +disneyenconcert.com +disneyhentai.com +disneyiejobs.com +disneyinflight.com +disneyinternational.com +disneyinternationalhd.com +disneyjunior.com +disneyjuniortreataday.com +disneylatino.com +disneymagicmomentsme.com +disneyme.com +disneymeetingsandevents.com +disneymovieinsiders.com +disneymusicpromotion.com +disneynewseries.com +disneynow.com +disneypeoplesurveys.com +zerohedge.com +disneyplus.com +disneyredirects.com +disneysrivieraresort.com +disneystore.com +disneystreaming.com +disneysubscription.com +disneytvajobs.com +disneyworld-go.com +disp.cc +disqus.com +disquscdn.com +disqusservice.com +zerochan.net +zeriamerikes.com +zeplin.dev +alivevm.com +diyarbakirescort.com +dizhidizhi.com +dizhuzhishang.com +alivertsm.com +djangosnippets.org +djorz.com +djreprints.com +aliverewind.com +dkbeatsbydre.com +dkcloud.cc +dkk37.com +dkr.com +dkrecttv.com +dl-iphone.com +zenodo.org +dldlinks.com +dldshare.net +dlercloud.com +dlercloud.me +dlercloud.org +dleris.best +dlfacebook.com +zenmate.com +dlsite.com +dlsitenews.com +dlsitestudio.com +dlyoutube.com +alivercm.com +dm-event.net +dm530.net +dmcdn.net +dmed.technology +dmhy.org +dmm-extension.com +dmm.com +dmmapis.com +dmmrex.com +dmthin.com +dmthus.com +dmtiny.com +dmtone.com +dmtoss.com +dmugly.com +dmunit.com +dmupon.com +dmurge.com +dmuser.com +dmvary.com +dmvast.com +dmvery.com +dmvote.com +dmwage.com +dmwait.com +dmwake.com +dmwant.com +dmwarm.com +dmwarn.com +dmwash.com +dmweak.com +dmwhat.com +dmwhom.com +dmwife.com +dmwild.com +dmwing.com +dmwipe.com +dmwish.com +dmword.com +dnaav.com +dnaindia.com +aliveprofiler.com +dndbeyond.com +aliveitsm.com +dns-dns.com +dns-stuff.com +dns04.com +dns05.com +dns2go.com +dnscrypt.org +dnset.com +dnsrd.com +dnssec.net +dnsvisa.com +dnvodcdn.me +aliveipc.com +do.co +dobbyporn.com +doceapower.com +docker.com +dockerizer.com +docleradn.com +doclercdn.com +alipaymo.com +docs.com +doctor-videos.com +doctorvoice.org +documentforce.com +documentingreality.com +aliengu.com +dodgersexcartoons.com +doeda.com +dogcumshot.net +dogecoin.com +dogfart.com +dogfartnetwork.com +dogmovie.net +dogofcum.com +dogspics.net +alicloud.com +doi.info +doi.org +dojin-dl.com +dojin.com +dojindb.net +dojinmanga.net +dojinwatch.com +dok-forum.net +dollarfotoclub.com +dollarphotoclub.com +dollarphotosclub.com +dollf.com +dollnight.com +alibabacloud.com +domywife.com +donatecarsoh.org +dongtaiwang.com +dongtaiwang.net +dongyangjing.com +donkeykongcountryreturns.com +donkparty.com +donpornogratis.com +donsnaughtymodels.com +dontmovetochina.com +doodhwali.com +doom.com +doom9.org +alhs.xyz +dopaminegirl.com +dorjeshugden.com +doseofporn.com +dot.net +dotcernpilot.info +dotdeb.org +dotfacebook.com +dotfacebook.net +dotfreesex.com +dotherex.com +dothq.org +dotplane.com +dotsub.com +dotvpn.com +doubibackup.com +doubleclick-cn.net +doubleclick.net +doublethinklab.org +dougscripts.com +douhokanko.net +doujin-eromanga.com +doujin-freee.com +doujin-info.net +doujin-night.com +doujincafe.com +doujinfree.com +doujinland.info +doujinnomori.com +doujins.com +doure.net +douwriteright.com +douya.org +douyintt10.me +douzinnsi-eromannga.com +dowei.org +dowjones.com +dowjoneson.com +zengjinyan.org +zendesk.com +zencoder.com +zencdn.net +downloadpass.com +downloadsforipod.com +dphk.org +dpr.info +draftjs.org +dragonage.com +dragonagekeep.com +dragonagemovie.com +dragonhentai.net +dragoniscoming.com +dragonsprings.org +drbdsmporn.com +drbeatsukmart.com +drbizzaro.com +drdre-beats.com +drdrebeats-chen.com +drdrebeats-headphone.com +drdrebeats-usa.com +drdrebeatsale.com +drdrebeatsbillig.com +drdrebeatsdesale.com +drdrebeatsdiscount.com +drdrebeatsforu.com +drdrebeatsretail2013.com +drdrebeatssale7.com +drdrebeatsuk.com +drdrefnac.com +drdreheadphonebeats.com +drdreheadphonekey.com +drdreheadphonesusstore.com +drdremonster-beats.com +drdremonsterdre.com +drdreprobeatssale.com +dreamamateurs.com +dreamforce.com +dreammovies.com +dreamteamfc.com +dreamtoplay.com +dreamworks.com +drebeats-australia.com +drebeats-france.com +drebeats-monster.com +drebeats-monsteraustralia.com +drebeats-monsterusa.com +drebeats-singapore.com +drebeats-singapore.net +drebeats-singaporecheap.com +drebeats-singaporecheap.net +drebeats-solo.com +drebeats-studio.com +drebeatsaustralia-cheap.com +drebeatsaustralia-cheap.net +drebeatsbuy.com +drebeatsbydreoutlet.com +drebeatscanada.com +drebeatsdeutschland.net +drebeatsforsaleus.com +drebeatsheadphones-nz.com +drebeatshome.com +drebeatsoldes.com +drebeatsoutletstore.com +drebeatspill.com +drebeatssite.com +drebeatssolocybermondaysale.com +drebeatsstudio2013.com +drebeatstudio.com +drebyby.com +dremonsterbeatsoutlets.com +dreprobeats.com +dreprofy.com +drepung.org +drgan.net +dribbble.com +driverxxx.com +drivevideo.xyz +drkogyi.com +drmario-world.com +drmingxia.org +dronedj.com +dropbox-dns.com +dropbox.com +dropbox.tech +dropboxapi.com +dropboxbusiness.com +dropboxcaptcha.com +dropboxforum.com +dropboxforums.com +dropboxinsiders.com +dropboxmail.com +dropboxpartners.com +dropboxstatic.com +dropboxusercontent.com +drsunacademy.com +drtuber.com +drunk6.com +drunkenstepfather.com +drunkentop.com +dscn.info +dslr.net +dslreports.com +dsmtp.com +dssott.com +alhs.link +dswz88.xyz +dtci.co +dtci.technology +dtdns.net +dtiblog.com +dtsell.com +alhayat.com +dtv2009offers.com +dtvce.com +dtwang.org +dualeotruyen1s.com +duanzhihu.com +alforattv.net +dubai-escort-list.com +dubaihotties.org +dubox.com +alexlur.org +duck.co +duck.com +duckdns.org +duckduckco.com +duckduckgo.co +duckduckgo.com +duckduckgo.org +duckduckhack.com +duckgo.com +duckload.com +duckmovie.com +duckmylife.com +duckside.com +dudethrill.com +duihua.org +duihuahrjournal.org +dukgo.com +dulceecuador.com +dumb1.com +dumps69.com +dumpxxx.net +dungeonkeeper.com +alexanderstreet.com +alexa.com +dunyabulteni.net +duolingo.com +duoweitimes.com +duoweiweek.com +duping.net +duplicati.com +dupola.com +dupola.net +alchemysynth.com +albeats.com +durex-shopline.com +durex.com +zen8ok.xyz +durexcam.com +durexcanada.com +durexchina.com +durexindia.com +durexloveclub.com +durexukraine.com +durexusa.com +dutrai.com +duyaoss.com +duyaossr.com +albastudio.co +dvdpac.com +dvdstudiopro.biz +dvdstudiopro.com +dvdstudiopro.info +dvdstudiopro.net +dvdstudiopro.org +dvdtrailertube.com +dvh30n.vip +dvorak.org +dw-world.com +dw.com +dweb.link +albagals.com +dwnews.com +dwnews.net +dx9527.cc +dxyav.co +dykycl.com +dynacw.com +dynafleetonline.com +dynamic-dns.net +dynamicdns.biz +dynamics.com +dynawebinc.com +dyncdn.me +dyndns-ip.com +dyndns-pics.com +dyndns.org +dyndns.pro +dynssl.com +dynu.com +dynu.net +zello.com +dysfz.cc +dyttapi.com +dyttapis.com +alasbarricadas.org +dzze.com +e-bay.com +e-bay.net +e-cba.org +e-gold.com +e-hentai.org +e-hentaidb.com +e-traderland.net +e-tugra.com +e53w.com +e621.net +ea-anz-press.com +ea.com +eaaccess.com +eablackbox.com +eac-cdn.com +eacashcard.com +eachpay.com +eachpay.net +eacodigos.com +eadultgames.com +eafootballworld.com +eamirrorsedge.com +eamobile.com +eamythic.com +eamythic.net +eanordic.com +eaplay.com +earlyob.com +earlytibet.com +earngeek.com +earphonescheapest.com +earpod.net +earthcam.com +earthvpn.com +easic.com +easports.com +easportsactive.com +easportsactiveonline.com +easportsfootball.com +easportsfootballclub.com +easportsmma.com +easportsworld.com +eastbabes.com +eastern-ark.com +easternlightning.org +eastore.com +eastturkestan.com +eastturkistan-gov.org +eastturkistancc.org +easyanticheat.net +easymatureporn.com +easynike.com +easypic.com +easysexporn.com +eater.com +ebahy.com +ebalovo.com +ebay-authenticate.net +ebay-confirm.com +ebay-course.com +ebay-cz.com +ebay-delivery.com +ebay-discoveries.com +ebay-fashion.com +ebay-inc.com +ebay-inc.net +ebay-inc.org +ebay-online.com +ebay-sales.com +ebay-stories.com +ebay-us.com +ebay-vacation.com +ebay.com +ebay.org +ebay25.com +ebay68.com +ebaya.com +ebayads.com +ebayads.net +ebayadvertising.com +ebayanunsios.net +ebayauction.com +ebayaustralia.com +ebaybags.com +ebaybank.com +ebaybenefits.com +ebayboutique.com +ebayca.com +ebayca.org +ebaycafe.com +ebaycar.com +ebaycareers.com +ebaycdn.net +ebaychina.net +ebayclassifieds.com +ebayclassifieds.info +ebayclassifieds.org +ebayclassifiedsgroup.com +ebayclassifiedsgroup.info +ebayclassifiedsgroup.org +ebayclassifies.com +ebayclub.com +ebaycoins.com +ebaycom.com +ebaycommercenetwork.com +ebaycourse.com +ebayd.com +ebayde.com +ebaydlassifieds.com +ebaydts.com +ebayedu.com +ebayeletro.com +ebayenterprise.com +ebayenterprise.info +ebayenterprise.net +ebayetc.com +ebayfashion.com +ebayfashion.net +ebayforcharity.org +ebayforeclosure.org +ebayfrance.com +ebayglobalshipping.com +ebaygroup.com +ebayhabit.com +ebayheels.com +ebayhots.com +ebayimg.com +ebayinc.com +ebayinc.net +ebayinc.org +ebayincconnectedcommerce.net +ebayinkblog.com +ebayinternetsalestax.com +ebayit.com +ebayjewelry.com +ebayjob.com +ebayla.org +ebaylisting.com +ebaylocal.net +ebaylocationsdevacances.com +ebaymag.com +ebaymainstreet.com +ebaymall.com +ebaymarketplace.net +ebaymotors.com +ebaymotors.org +ebaymotorsblog.com +ebaynow.com +ebaynyc.com +ebayon.com +ebayon.net +ebayoncampus.com +ebayopen.com +ebayopensource.com +ebayopensource.net +ebaypakistan.net +ebaypark.com +ebayparts.com +ebayprivacycenter.com +ebayqq.com +ebayradio.com +ebayrtm.com +ebayseller.com +ebayshoesstore.com +ebayshop.com +ebayshop111.com +ebayshopping.org +ebaysocial.com +ebaysoho.com +ebaysohos.com +ebaystatic.com +ebaystore.com +ebaystore77.com +ebaystyle.com +ebaysweden.com +ebayt.com +ebaytechblog.com +ebaytopratedseller.net +ebaytrading.com +ebaytradingassistant.com +ebaytv.org +ebayuae.net +ebayvakantiehuizen.com +ebayvalet.com +ebayvietnam.net +ebayworlds.com +ebayy.com +ebenporno.com +ebony-beauty.com +ebonyinlove.com +ebonywebcamhub.com +eboobstore.com +ebookbrowse.com +ebookee.com +ebookforipad.com +ebsco.com +ebscohost.com +ebtcbank.com +ebuyheadphones.com +alanhou.com +ecgapp.net +echichimato.com +echocdn.com +echofon.com +echosign.com +ecministry.net +economist.com +economistgroup.com +economistgroupcareers.com +zeitworld.com +ecuatorianas.best +ed21.cc +alabout.com +edengay.net +zeit.co +zeit-world.org +edgecastcdn.net +edgedatg.com +edgefonts.net +edgemeplease.com +edgesuite.net +edicypages.com +edisebay.com +editorx.com +edmontonservice.com +edninfo.com +edns.biz +edoors.com +al-qimmah.net +edu-research.org +edubridge.com +edupro.org +edx-cdn.org +edx.org +al-islam.com +eebay.com +eenike.com +eevpn.com +eff.org +effers.com +efksoft.com +efproject.net +efuckt.com +efukt.com +akthelp.com +egotastic.com +egta.com +akow.org +ehgt.org +ehtracker.org +ehv.cc +ehwiki.org +eic-av.com +eilieili.cc +einstein.com +eireinikotaerukai.com +eisbb.com +eiu.com +ekhindi.com +ekhokavkaza.com +ekolojik.org +eksisozluk.com +el-ladies.com +elasticbeanstalk.com +elderscrolls.com +electbabe.com +electionsmeter.com +electrek.co +electricluxury.com +electrochem.org +electronicarts.com +electronjs.org +elephantlist.com +elephantsdream.org +elephanttube.com +elephanttubenew.com +elgaronline.com +elifesciences.org +elite.com +elitebabes.com +eliteindianporn.com +elixir-lang.org +ellawine.org +elog-ch.com +elog-ch.net +elpadrote.com +elpais.com +elpornoamateur.com +elrepo.org +els-cdn.com +elsevier-ae.com +elsevier.com +eltondisney.com +emaga.com +emanna.com +embase.com +embed-cdn.com +embedly.com +embl.org +emblstatic.net +embs.org +emcs.org +emerald.com +akiba-web.com +akiba-online.com +emojipedia.org +emome.net +empfil.com +empflix.com +empornium.site +ems-ph.org +emule-ed2k.com +emulefans.com +emuparadise.me +zeit-world.net +zeit-world.com +enablementadobe.com +encoretvb.com +encrypt.me +encuentroscasualesoecuador.com +encyclopedia.com +enema-porn.com +enema-videos.com +enemabasics.com +enemaexperiences.com +enemahistory.com +enemainformation.com +enemanozzle.info +enemaprocedure.com +enemarotica.com +enemas4fun.com +enemasexfetish.com +enemasupplier.com +enematube.com +enewstree.com +enf-cmnf.com +enfaaplus.com +enfababy.com +enfabebe.com +zeeuk.com +enfagrow4.com +enfamil.com +enfasmart.com +engagedaily.org +engineeringvillage.com +englishforeveryone.org +englishpen.org +enjoyasianporn.com +enjoyfuck.com +enpirion.com +enspireformula.com +entensity.net +entermap.com +entermediadb.net +entermediadb.org +enterprisepaging.com +enterprisessl.com +entrust.net +entrustdatacard.com +epicbrowser.com +epicgames.com +epicgames.dev +epicreads.com +epigeum.com +epikporn.com +epinions.com +episcopalchurch.org +episodic.com +epoch.cloud +epochbuy.com +epochcar.com +epochhk.com +epochmall.com +epochmediagroup.com +epochshop.com +epochstories.com +epochtime.com +epochtimes-bg.com +epochtimes-romania.com +epochtimes.com +epochtimeshk.org +epochtimestr.com +epochweek.com +epochweekly.com +eporner.com +akatns.net +eprintsw.com +akastream.net +equinenow.com +akastream.com +erabaru.net +erepublik.com +akasha.world +erights.net +erito.com +eriversoft.com +erktv.com +erlang.org +ernestmandel.org +akamqi.com +ero-anime.net +ero-comic-hunter.net +ero-kawa.com +ero-labs.cloud +ero-labs.com +ero-labs.net +ero-labs.online +ero-labs.site +ero-ma-nia.com +ero-manga-platinum.net +ero-mangalife.com +eroan.xyz +erocurves.com +erodaizensyu.com +zeetv.com +zeenite.com +erodougazo.com +erodoujinlog.com +erodoujinshi-world.com +erodoujinworld.com +eroelog.com +eroero69.work +erofights.com +erofullsets.net +erofus.com +erogames.com +erogazo-jp.net +erogazo-ngo.com +erogazopple.com +erogazou-pinkline.com +erogazoufactory.com +erohentai.net +erolabs.cloud +erolabs.com +erolabs.game +erolabs.net +erolabs.online +eromanga-ace.com +eromanga-cafe.com +eromanga-hentai.com +eromanga-kingdom.com +eromanga-mainichi.com +eromanga-school.com +eromangadouzin.com +eromangajukujo.com +eromazofu.com +erome.com +eromon.net +eropasture.com +eropics.org +eroprofile.com +erosberry.com +eroshiko.net +erotelki.org +eroterest.net +erothots.co +erotic-artsites.com +erotic-hentai.com +erotic-photos.net +eroticart-top100.com +eroticbeauties.net +eroticbeautyhub.com +erotichdworld.com +eroticsaloon.net +erotictube.me +eroxia.com +eroyakuba.com +ertk.net +akamii.com +es-visiontimes.com +esbeatsbydrebuy.com +escandinavia-arg.com +escort.guide +escort24h.net +escortamsterdam1.com +escortdude.com +zeenews.com +eskimotube.com +eslite.com +esm.run +esmarthealth.com +esmatube.com +esmtp.biz +esp32.com +esp8266.com +esperanzagomez.org +espn.com +espn.net +espncdn.com +espnqa.com +esposasymaridos.com +espressif.com +esri.com +zeeentertainment.com +estudiopenthouse.com +esu.dog +akami.net +esurance.com +akami.com +etadult.com +etaiwannews.com +etheadphones.com +etherdelta.com +ethereum.foundation +ethereum.org +akamci.com +etizer.org +etokki.com +zeebiz.com +etowns.net +etowns.org +etsy.com +ettoday.net +etviet.com +etwealth.com +akamam.com +eu-consumer-empowerment.com +zeebioskop.com +zee5.com +zee.com +eu.org +eubluecardvisa.com +eucasino.com +eulam.com +eurekaselect.com +eurekavpt.com +eurobabeindex.com +eurogirlsescort.com +euroipad.com +euronews.com +europalibera.org +europepmc.org +europornstar.com +eurosexscene.com +akamak.com +akamaizercentral.com +evaelfie.com +evanottyvideos.com +evemodels.com +eventsinfocus.org +akamaized.net +everia.club +evernote.com +every1dns.net +everydayporn.co +evgld7cg58l8.com +evilangel.com +evise.com +evropaelire.org +evschool.net +eworld.com +exacttarget.com +examroom.info +exascale-tech.com +excedo.com +excitebots.com +exec-appointments.com +exgirlfriendmarket.com +exhentai.org +exiporn.com +exmo.com +exmormon.org +exoav.com +exotic-ghana.com +exoticuganda.com +expatshield.com +expecthim.com +expekt.com +experience-vmware.com +experiencebillmelater.com +expertmaker.com +experts-univers.com +explicittube.com +exploader.net +exploitedcollegegirls.com +exploitedteensasia.com +exploreintel.com +explorespanking.com +exporntoons.net +exposedlatinas.com +expressvpn.com +expresswifi.com +exrates.me +exs8fkw0.xyz +extensionworkshop.com +extmatrix.com +extraasian.com +extraindiansex.com +extrajapaneseporn.com +akamaized-staging.net +extreme-board.com +extremepornfilms.com +extremetube.com +exx.com +exxxtra.net +exxxtrasmall.com +exxxtrasmall1.com +eyny.com +ezpeer.com +ezua.com +f-dro1d.org +f-droid.com +f-droid.org +f6988.com +f8.com +faacebok.com +faacebook.com +faapy.com +faasbook.com +fabhairypussy.com +fabuye.top +fabuyemian.com +facbebook.com +facbeok.com +facboo.com +facbook.com +facbool.com +facboox.com +faccebook.com +faccebookk.com +facdbook.com +facdebook.com +face-book.com +faceabook.com +facebboc.com +facebbook.com +facebboook.com +facebcook.com +facebdok.com +facebgook.com +facebhook.com +facebkkk.com +facebo-ok.com +faceboak.com +facebock.com +facebocke.com +facebof.com +faceboik.com +facebok.com +facebokbook.com +facebokc.com +facebokk.com +facebokok.com +faceboks.com +facebol.com +facebolk.com +facebomok.com +faceboo.com +facebooa.com +faceboob.com +faceboobok.com +facebooc.com +faceboock.com +facebood.com +facebooe.com +faceboof.com +facebooi.com +facebooik.com +facebooik.org +facebooj.com +facebook-corp.com +facebook-covid-19.com +facebook-ebook.com +facebook-forum.com +facebook-hardware.com +facebook-inc.com +facebook-login.com +facebook-newsroom.com +facebook-newsroom.org +facebook-pmdcenter.com +facebook-pmdcenter.net +facebook-pmdcenter.org +facebook-privacy.com +facebook-program.com +facebook-studio.com +facebook-support.org +facebook-texas-holdem.com +facebook-texas-holdem.net +facebook.cc +facebook.com +facebook.design +facebook.net +facebook.org +facebook.shop +facebook.wang +facebook123.org +facebook30.com +facebook30.net +facebook30.org +facebook4business.com +facebookads.com +facebookadvertisingsecrets.com +facebookappcenter.info +facebookappcenter.net +facebookappcenter.org +facebookatschool.com +facebookawards.com +facebookblueprint.net +facebookbrand.com +facebookbrand.net +facebookcanadianelectionintegrityinitiative.com +facebookcareer.com +facebookcheats.com +facebookck.com +facebookclub.com +facebookcom.com +facebookconnect.com +facebookconsultant.org +facebookcoronavirus.com +facebookcovers.org +facebookcredits.info +facebookdating.net +facebookdevelopergarage.com +facebookdusexe.org +facebookemail.com +facebookenespanol.com +facebookexchange.com +facebookexchange.net +facebookfacebook.com +facebookflow.com +facebookgames.com +facebookgraphsearch.com +facebookgraphsearch.info +facebookgroups.com +facebookhome.cc +facebookhome.com +facebookhome.info +facebookhub.com +facebooki.com +facebookinc.com +facebookland.com +facebooklikeexchange.com +facebooklive.com +facebooklivestaging.net +facebooklivestaging.org +facebooklogin.com +facebooklogin.info +facebookloginhelp.net +facebooklogs.com +facebookmail.com +facebookmanager.info +facebookmarketing.info +facebookmarketingpartner.com +facebookmarketingpartners.com +facebookmobile.com +facebookmsn.com +facebooknews.com +facebooknfl.com +facebooknude.com +facebookofsex.com +facebookook.com +facebookpaper.com +facebookpay.com +facebookphonenumber.net +facebookphoto.com +facebookphotos.com +facebookpmdcenter.com +facebookpoke.net +facebookpoke.org +facebookpoker.info +facebookpokerchips.info +facebookporn.net +facebookporn.org +facebookporno.net +facebookportal.com +facebookquotes4u.com +facebooks.com +facebooksafety.com +facebooksecurity.net +facebookshop.com +facebooksignup.net +facebooksite.net +facebookstories.com +facebookstudios.net +facebookstudios.org +facebooksupplier.com +facebooksuppliers.com +facebookswagemea.com +facebookswagstore.com +facebooksz.com +facebookthreads.net +facebooktv.net +facebooktv.org +facebookvacation.com +facebookw.com +facebookwork.com +facebookworld.com +facebool.com +facebool.info +facebooll.com +faceboom.com +faceboon.com +faceboonk.com +faceboooik.com +faceboook.com +faceboop.com +faceboot.com +faceboox.com +facebopk.com +facebpook.com +facebuk.com +facebuok.com +facebvook.com +facebyook.com +facebzook.com +facecbgook.com +facecbook.com +facecbook.org +facecook.com +facecook.org +facedbook.com +faceebok.com +faceebook.com +faceebot.com +facegbok.com +facegbook.com +faceid99.com +faceid99.net +faceidglobal.com +faceless.me +faceobk.com +faceobok.com +faceobook.com +faceook.com +facerbooik.com +facerbook.com +facesbooc.com +facesofnyfw.com +facesoftibetanselfimmolators.info +facesounds.com +facetime.net +facetook.com +facevbook.com +facewbook.co +facewook.com +facfacebook.com +facfebook.com +faciometrics.com +fackebook.com +facnbook.com +facrbook.com +factograph.info +factpedia.org +factwire.org +facultyopinions.com +facvebook.com +facwebook.com +facxebook.com +fadebook.com +faebok.com +faebook.com +faebookc.com +faeboook.com +faecebok.com +faesebook.com +fafacebook.com +akamaitechnologies.net +faicbooc.com +fairmarket.com +akamaitechnologies.com +faith100.org +faithfuleye.com +faiththedog.info +fakehub.com +faketaxi.com +fakings.com +fakku.net +faldgjalg.xyz +fallenark.com +falsefire.com +falun-co.org +falun-ny.net +falunart.org +falunasia.info +falunau.org +falunaz.net +falundafa-dc.org +falundafa-florida.org +falundafa-nc.org +falundafa-pa.net +falundafa-sacramento.org +falundafa.org +falundafaindia.org +falundafamuseum.org +falungong.club +falunhr.org +faluninfo.net +falunpilipinas.net +falunworld.net +fameregistry.com +family-sex.me +familyfed.org +familypies.net +familypornhd.com +familysexsimulator.com +familysimulator.com +familystrokes.com +famosascalvas.com +famous-nudes.com +famousinternetgirls.com +famousinternetgirlsgalleries.com +famousnudes.com +famouspornstars.com +famunion.com +fan-qiang.com +fanaken.com +fanatical.com +fanbox.cc +fandango.com +fandom.com +fanfox.net +fangbinxing.com +fangeming.com +fangeqiang.com +fanglizhi.info +fangmincn.org +zdusercontent.com +fangong.org +fangongheike.com +fangsung.com +fanhaodang.com +fanhaodian.com +fanhaolou.com +fanleakstoday.com +fanqiang.network +fanqiangdang.com +fanqianghou.com +fanqianglu.com +fanqiangyakexi.net +fanqiangzhe.com +fans-here.com +fansnudes.com +fansta.me +fansteek.com +fanswong.com +fantasiasguatemala.com +fantasti.cc +fantasticyoungporn.com +fanyue.info +fap-xxx.com +fap18.net +fap666.com +fapality.com +fapcat.com +fapdu.com +fapdude.com +faperoni.com +fapforfun.net +faphdporn.com +faphouse.com +fapmovz.com +fapnado.com +fapopedia.net +fappcelebs.com +fappeningbook.com +fappeningthots.com +fappenist.com +fapphub.com +fapporn.me +faproulette.co +faproulette.online +faproxy.com +fapsafari.com +fapteencam.com +faptitans.com +fapvid.com +fapxl.com +faqserv.com +fareastpornhub.com +farfetch-apps.com +farfetch-contents.com +farfetch.com +farfetch.net +akamaitech.net +faronics.com +faronics.tech +faronicslabs.com +faronicswise.com +fartit.com +farwestchina.com +fasebokk.com +fasebook.com +faseboox.com +fashionnike.com +fast.com +zdassets.com +fastestvpn.com +fastindianporn.com +fastlane.tools +fastly-terrarium.com +fastly.com +fastly.net +fastlylabs.com +fastlylb.net +fastssh.com +faststone.org +fasttext.cc +fasttrackreadysupport.com +fatbtc.com +fatstube.com +fau11.com +favebook.com +favelaporno.com +favepornmovs.com +favepornvids.com +favjapaneseporn.com +fawanghuihui.org +fawgaf.xyz +faycbok.com +faydao.com +fayuanbooks.com +faz.net +fb.careers +fb.com +fb.me +fb.watch +fbacebook.com +fbaddins.com +fbbmarket.com +fbboostyourbusiness.com +fbcdn.com +fbcdn.net +fbf8.com +fbfeedback.com +fbhome.com +fbinc.com +fbinfer.com +fbinnovation.com +fbjav.com +fblitho.com +fbmarketing.com +fbmessenger.com +fbooktaiwan.com +fbredex.com +fbreg.com +fbrell.com +fbrpms.com +fbsbx.com +fbsbx.net +fbsupport-covid.net +fbthirdpartypixel.com +fbthirdpartypixel.net +fbthirdpartypixel.org +fburl.com +fbworkmail.com +fc2.com +fc2blog.net +fc2china.com +fc2cn.com +fcacebook.com +fcaebook.com +fcebook.com +fcebookk.com +fcfacebook.com +fcww0.com +fdacebook.info +fdc64.org +fdiintelligence.com +fdroid.org +feacboo.com +feacbook.com +feacbooke.com +feacebook.com +fecbbok.com +fecbooc.com +fecbook.com +feceboock.com +fecebook.net +feceboox.com +fececbook.com +akamaitech.com +fedoraforum.org +fedoramagazine.org +fedorapeople.org +fedoraproject.org +feedburner.com +feeder.co +feedherfuckher.com +feedly.com +zbporn.com +feedx.net +feelssh.com +feer.com +feet9.com +feifeiss.com +feipang.link +feitian-california.org +feitianacademy.org +feixiaohao.com +femalefounderscomp.com +femalestars.com +femdomcc.net +feministteacher.com +femjoy.com +femscat.com +fengzhenghu.com +fengzhenghu.net +feook.com +ferabook.com +akamaistream.net +akamaisingapore.net +ferronetwork.com +ferryclean.com +fescebook.com +fesebook.com +festinhasbrasil.com +fetish-bb.com +fetishbank.net +fetishdreamz.com +fetishes.cam +fetishfishcams.com +fetishpapa.com +fetishpornfilms.com +fetishpornonly.com +fetishshrine.com +fetishtown.net +fetlife.com +fevernet.com +ffacebook.com +fffdm.com +fffucked.com +fflick.com +fflnk.net +ffmpeg.org +ffotolia.com +ffprofile.com +ffvpn.com +fgacebook.com +fgmtv.net +fgmtv.org +fhreports.net +akamaiphillipines.net +fi11.com +fi11av1.com +fi11tv1.com +akamaiphillipines.com +ficeboock.com +zb.live +akamainewzealand.com +akamaimagicmath.net +fifastreet.com +fifastreet3.com +fightforux.com +figma.com +figprayer.com +fileflyer.com +files2me.com +fileserve.com +filesmonster.vip +filesor.com +filipino-music.net +fillthesquare.org +filmeporno.blog +filmesdesexo.blog +filmespornos.net +filmingfortibet.org +filmsexeporno.com +filtercams.com +filthdump.com +fimfiction.net +finalcutpro.com +financeleadsonline.com +financetwitter.com +financialadvisoriq.com +finchvpn.com +find-apple.com +findacard.com +findasians.live +findbare.com +findcams.live +findhername.net +findmespot.com +findmybeats.com +findmyipad.com +findsav.com +findtubes.com +findvrporn.com +findyourlimits.com +findyoutube.com +findyoutube.net +fine-art-nude.org +fineartteens.com +finehub.com +finenike.com +fingerdaily.com +akamaihd.net +finisharabia.com +finishdishwashing.com +finishinfo.com +finler.net +finlitsummit.org +fiotolia.com +fire-emblem-heroes.com +firearmsworld.net +zb.com +firebase.com +firebaseapp.com +firebaseio.com +fireemblemawakening.com +firefox.com +firefoxusercontent.com +fireofliberty.org +firesidegatherings.com +akamaihd.com +zb.app +firestonebpco.com +zazzybabes.com +firestonecompleteautocare.com +firestonedrivestore.com +firestoneip.com +firestonerewards.com +firestonetire.com +firmaprofesional.com +akamaihd-staging.net +firstanalvideos.com +firstasianpussy.com +firstfivefollowers.com +firstgynexam.com +firstpelvicexam.com +firstpost.com +firstrade.com +fishmpegs.com +fitnakedgirls.com +fivestarpornsites.com +fixtracking.com +akamaietpphishingtest.com +fjlkajhgfa.top +akamaietpmalwaretest.com +fl310.com +flagrasamadores.net +flaru.com +flash-xxx.com +flashtranny.com +flatandfuckedmilfs.com +flathub.org +flatpak.org +flbjc.net +fleshbot.com +fleshlyx.com +fleursdeslettres.com +flexsig.com +flgjustice.org +fli8.xyz +akamaietpcompromisedmalwaretest.com +flickr.com +flickr.net +flickrhivemind.net +flickriver.com +fling.com +flipboard.com +flipfap.com +flipkart.com +flipnotestudio.com +flipshare.com +flipwithsurface.com +akamaietpcompromisedcnctest.com +flirt4free.com +flirtmoms.com +flirtyhoookup.com +flitto.com +fljmh.com +fljmh1.com +flnet.org +floorp.app +floppy-tits.com +flow.dev +flow.org +flowtype.org +akamaietpcnctest.com +akamaientrypoint.net +fluidpreview.com +flutter.dev +flutterapp.com +flyflv.com +flyingjizz.com +flyvpn.com +flyzy2005.com +akamaiedge.net +fmcebook.com +fnac.com +fnacebook.com +fnlondon.com +akamai.net +foampositeshoes.com +fochk.org +focusvpn.com +fofg-europe.net +fofg.org +fofldfradio.org +foftolia.com +follasian.com +fonolia.com +fontawesome.com +fontbook.com +fontexplorerx.com +zavat.pw +fonts.com +zattoo.com +fonts.net +fontshop.com +fontsinuse.com +akamai.com +akamai-trials.com +foofle.com +fooooo.com +footprintdns.com +footseen.com +footstockings.com +forbes.com +forbesimg.com +forbiddenasian.com +forbiddenmomsarchive.com +force.com +akamai-thailand.net +forduck.cyou +foreignaffairs.com +foreignpolicy.com +forgecdn.net +forhertube.com +fortawesome.com +forthebadge.com +forthethrone.com +fortnite.com +fortuneinsight.com +zatrahal.online +0cgdklr5sfwj.com +zapto.org +0dzn.com +zaozon.com +zaobao.com +forum4hk.com +forzamotorsport.net +forzaracingchampionship.com +forzarc.com +fosebook.com +fotile.me +fotiolia.com +fotoiia.com +fotolia-noticias.com +fotolia.cc +fotolia.com +fotolja.com +fotoscaserasx.com +foundationdb.org +zannel.com +fourthinternational.org +akamai-thailand.com +fox-corporation.com +fox-news.com +fox.com +fox10news.com +fox10phoenix.com +fox11.com +fox13memphis.com +fox13news.com +fox23.com +fox23maine.com +fox247.com +fox26.com +fox26houston.com +fox28media.com +fox29.com +fox2detroit.com +fox2news.com +fox32.com +fox32chicago.com +fox35orlando.com +fox38corpuschristi.com +fox42kptm.com +fox46.com +fox46charlotte.com +fox47.com +fox4news.com +fox51tns.net +fox5atlanta.com +fox5dc.com +fox5ny.com +fox5storm.com +fox6now.com +fox7.com +fox7austin.com +fox9.com +foxacrossamerica.com +foxaffiliateportal.com +foxandfriends.com +foxbet.com +foxbusiness.com +foxbusinessgo.com +foxcanvasroom.com +foxcareers.com +foxcharlotte.com +foxcincy.com +foxcincy.jobs +foxcincy.net +foxcollegesports.com +foxcorporation.com +foxcreativeuniversity.com +foxcredit.com +foxcredit.org +foxdcg.com +foxdeportes.com +foxdeportes.net +foxdigitalmovies.com +foxdoua.com +foxentertainment.com +foxest.com +foxfaq.com +foxfdm.com +foxfiles.com +foxgay.com +foxhq.com +foxinc.com +foxkansas.com +foxla.com +foxlexington.com +foxmediacloud.com +foxnation.com +foxnebraska.com +foxneo.com +foxneodigital.com +foxnetworks.info +foxnetworksinfo.com +foxnews.cc +foxnews.com +foxnews.net +foxnews.org +foxnewsaffiliates.com +foxnewsaroundtheworld.com +foxnewsb2b.com +foxnewschannel.com +foxnewsgo.net +foxnewsgo.org +foxnewshealth.com +foxnewslatino.com +foxnewsmagazine.com +foxnewsnetwork.com +foxnewsopinion.com +foxnewspodcasts.com +foxnewspolitics.com +foxnewsradio.com +foxnewsrundown.com +foxnewssunday.com +foxon.com +foxphiladelphia.com +foxplus.com +foxpoker.com +foxporns.com +foxredeem.com +foxrelease.com +foxrichmond.com +foxrobots.com +foxsmallbusinesscenter.com +foxsmallbusinesscenter.net +foxsmallbusinesscenter.org +foxsoccer.net +foxsoccermatchpass.com +foxsoccerplus.com +foxsoccerplus.net +foxsoccershop.com +foxsports-chicago.com +foxsports-newyork.com +foxsports-world.com +foxsports.co +foxsports.com +zalmos.com +foxsports.info +foxsports.net +foxsports2.com +foxsportsflorida.com +foxsportsgo.com +foxsportsla.com +foxsportsnetmilwaukee.com +foxsportsneworleans.com +foxsportsracing.com +foxsportssupports.com +foxsportsuniversity.com +foxsportsworld.com +foxstudiolot.com +foxsub.com +foxsuper6.com +foxtang.com +foxtel.com +foxtelevisionstations.com +foxtube.com +foxtv.com +foxtvdvd.com +foxuv.com +foxweatherwatch.com +fpacebook.com +fpmt-osel.org +fpmt.org +fpmtmexico.org +fptolia.com +fqcebook.com +fqok.org +fqrouter.com +akamai-sucks.net +fr-beatsbydrestore.com +fracebook.com +fragrancebay.com +francecasquebeatssolde.com +francemail.com +franklc.com +frcasquesbeats.com +freakshare.com +free-3d-porn.com +free-aa.com +free-abbywinters.com +free-erobooks.com +free-gate.org +free-hada-now.org +free-sns.com +free-ss.site +free-ssh.com +free-strip-games.com +free-wap-tube.com +free-xxx-porn.org +free00.com +free18.net +free3dadultgames.com +free64all.com +freeadultcomix.com +freealim.com +freeanimalporn.net +freearabsexx.com +freeb.com +freebasics.com +freebasics.net +freebdsmxxx.org +freebeacon.com +freebigmovies.com +freebrowser.org +freebs.com +freebsd.org +freecamsfan.com +freecamstars.com +freecartoons.biz +freechal.com +freechatnow.com +freechina.net +freechina.news +freechinaforum.org +freechinaweibo.com +freecodecamp.org +freeddns.com +freeddns.org +freedirecttvspecial.com +freedomchina.info +freedomcollection.org +freedomhouse.org +freedomsherald.org +freefacebook.com +freefacebook.net +freefacebookads.net +freefblikes.com +freeforums.org +freefq.com +freefuckvids.com +freegao.com +freegaypornfinder.com +freegaypornhdtube.com +freegaysexgames.com +freehentaipic.com +freehentaistream.com +freehongkong.org +freehqtube.com +freehulu.com +freeilhamtohti.org +freejavbt.com +freejavporn.mobi +freekazakhs.org +freekwonpyong.org +freelifetimefuckbook.com +freelotto.com +freeman2.com +freematuresgallery.com +freemoren.com +freemorenews.com +freemuse.org +freenet-china.org +freenetproject.org +freenewscn.com +freenode.net +freeones.com +freeopenvpn.com +freeoz.org +freeporn.com +freepornhdonlinegay.com +freepornhentaigames.com +freepornpreview.net +freepornq.com +freepornvideos.life +freesexalbum.com +freesexgames.games +freesexvideos2k.com +freesexyindians.com +freesexyindians.org +freesitexxx.com +freessl.com +freetcp.com +freetibet.net +freetibet.org +freetibetanheroes.org +freetribe.me +freeuseporn.com +freeviewmovies.com +freevpn.me +freewallpaper4.me +freewebs.com +freewechat.com +freeweibo.com +freewww.biz +freewww.info +freexinwen.com +freexvideos.org +freexxx.best +freexxx.win +freexxxporn.org +freeyellow.com +freeyouporn.mobi +freeyoutubeproxy.net +freezhihu.org +freieporno.com +freindfeed.com +frescolib.org +akamai-staging.net +freshporno.net +freshscat.com +freudbox.com +freyalist.com +friendbook.info +friendfed.com +friendfeed-api.com +friendfeed-media.com +friendfeed.com +friendfeedmedia.com +friends-of-tibet.org +friendsoftibet.org +fring.com +fringenetwork.com +frishoes.com +fritchy.com +akamai-regression.net +akamai-platform.net +from-pr.com +from-sd.com +fromchinatousa.net +frommel.net +akamai-platform-staging.com +akamai-platform-internal.net +frontiersin.org +frontlinedefenders.org +froogle.com +frootvpn.com +frostbite.com +frprn.com +fruitycams.com +fsacebok.com +fscebook.com +fscked.org +fsdn.com +fssta.com +fstopimages.com +fsurf.com +ft.com +ftadviser.com +ftcdn.net +ftchinese.com +fteproxy.org +ftiecla.com +ftopx.com +ftp1.biz +ftpserver.biz +akamai-cdn.com +ftvgirls.com +ftvmilfs.com +ftx.com +fu62.vip +fucd.com +fuchsia.dev +fuck-xxx-movies.com +fuck.com +fuck55.net +fuck6teen.com +fuckableteens.net +fuckbookecuador.com +fuckcnnic.net +fuckcuck.com +fuckgfw.org +fuckingawesome.com +fuckingfreemovies.com +fuckingmatures.com +fuckingthreesome.com +fuckmatureporn.com +fuckmaturepussy.com +fuckmeplease.net +fuckmoral.com +fuckmypakistanigf.com +fucksexhub.com +fuckteenvids.com +fuckthathussy.com +fucktube.com +fuckvideos.biz +fuhouse.club +akamai-access.net +akamai-access.com +fukzr1.cc +fulanax.com +fuli3.net +fulib711.shop +fuliba2021.com +fuliba2023.net +fulione.com +fulldesisex.com +fullerconsideration.com +fullfuli.com +fullhdxxx.com +fullpornnetwork.com +fullsexmovs.com +fullxxxmovies.net +fulue.com +fundaiphone5s.com +fundfire.com +fundinginstitutional.com +fundpaypal.com +fundraisingwithfacebook.com +funimation.com +funkyimg.com +funnyfacebook.org +funnyordie.com +funp.com +funshemale.com +fuq.com +fuqqt.com +furaffinity.net +furbo.org +furhhdl.org +furinkan.com +furl.net +furrypornvideos.com +furuke.com +fury.blog +fury.co +fury.dev +fury.help +fuskator.com +futanarihq.com +futhead.com +futpromos.com +futunited.com +futurechinaforum.org +futuremessage.org +futureofbusinesssurvey.org +fux.com +fuxporn.com +fuyin.net +fuyindiantai.org +fuzokudx.com +fxcm-chinese.com +fxnetwork.com +fxnetworks.com +fxporn.net +fzdm.com +fzdshare.net +fzh999.com +fzh999.net +fzlm.com +g-area.org +g-queen.com +g-technology.com +g-tun.com +g-tvapp.com +g-xxxhub.com +g.co +g.dev +g.page +g0v.social +g1d1goob.xyz +g6hentai.com +akamah.com +gab.com +gabocorp.com +gacebook.com +gaeproxy.com +gaforum.org +gagaoolala.com +gaito.xyz +akamaa.com +galaxyappstore.com +galaxymacau.com +gale.com +galegroup.com +galenwu.com +gallery-dump.club +galleryarchives.com +akam.net +akaint.net +galstars.net +gamboporn.com +gamcore.com +game-platform.net +game735.com +gamebeforethegame.com +gamejolt.com +gameon-masters.com +gamepass.com +gamepedia.com +gameroom.com +gamerotic.com +gamesathletes.com +gamesfuckgirls.com +gamesofdesire.com +gamesstack.com +gameuxmasterguide.com +gaming-notebooks.com +gamousa.com +gandi.net +ganges.com +ganjing.com +ganjingworld.com +gannett-cdn.com +gannett.com +gannettdigital.com +gao1.cc +gaofuwu.cc +gaoming.net +gaopi.net +gaozhisheng.net +gaozhisheng.org +akahost.net +gardennetworks.com +gardennetworks.org +garena.com +garena.live +garenanow.com +akagtm.org +garotaporno.com +garotoesperto.com +gartlive.com +gastrointestinalexam.com +gate-project.com +gate.cc +gatecoin.com +gateway.dev +zacebook.com +gather.com +gatherproxy.com +akafms.net +gay0day.com +gay1069sex.com +gay4tube.com +gayapatal.com +gayasianamateurs.com +gayasiantheater.com +gayasianxxx.com +gaybeeg.info +gaybf.com +gayboystube.com +gaybubble.com +gaycamvideos.net +gaycn.net +gaycock4u.com +gayfuckporn.com +gayfuror.com +gayharem.com +gayheaven.org +gayhub.com +gaymaletube.com +gaymap.cc +gaymenring.com +gayonthenet.net +gaypad.net +gaypinoyporn.com +gayporn.com +gayporn.pro +gaypornforyou.com +gaypornhdfree.com +gaypornlinks.com +gaypornlove.net +gaypornmenu.com +gaypornonly.com +gaypornsky.com +gayrawclub.com +gayroom.com +gaysitessearch.cc +gaystarnews.com +gaystream.pw +gaythebest.com +gaytopcams.com +gaytube.com +gayvl.net +gaywatch.com +gazotube.com +gazounabi.com +akaeai.com +akadns6.net +akadns.net +gcld-line.com +gclooney.com +gclubs.com +gcmasia.com +gcolle.net +gcpnews.com +gcpnode.com +gcrtires.com +akadns.com +gdansk-amazon.com +gdbt.net +gdsrx888.com +gdzf.org +akademiye.org +akadeem.net +gears5.com +gearspop.com +gearstactics.com +akacrypto.net +geek-art.net +geek-squad-support.com +geek-squad.net +geek-squad.org +geek-squads.net +geekerhome.com +geekheart.info +geeksquad.cc +geeksquad.com +geeksquad.net +geeksquadcares.com +geeksquadcentral.com +geeksquadforums.com +geeksquadonline.com +geeksquadprotectionplan.org +geeksquadservices.org +geeksquadwebroot.org +geforce.com +geilegratisporno.com +geileomas.com +geinoueroch.com +gekikame.com +gelbooru.com +gelbooru.me +0emm.com +gemfire.net +gemfury.com +gendai.net +genitourinaryexam.com +genius.com +genkai-hounyo.com +genshin-porn.com +genshinh.com +genshinimpact.com +aka-ai.net +aka-ai.com +gentoo.org +geocities.com +geodesummit.com +geolytics.com +geoport.com +ak1.net +geotrust.com +z676869.com +geraldoatlarge.com +gerefoundation.org +gerritcodereview.com +get.app +get.dev +get.how +get.new +get.page +get.rsvp +getadblock.com +getastrill.com +getbootstrap.com +getboxer.com +getbraintree.com +getbumptop.com +getchu.com +getcloak.com +getcomposer.org +getdrebeatssale.com +getdropbox.com +getfappy.com +getfedora.org +getfoxyproxy.org +getfreedur.com +getgom.com +geti2p.net +getiton.com +getjetso.com +getlantern.org +getmalus.com +getoutline.org +getpocket.com +getprintersupports.com +getscorecash.com +getsexgames.com +getsocialscope.com +getsync.com +gettr.com +gettrials.com +gettyimages.com +getuploader.com +getws1.com +getwsone.com +getzola.org +ajtalk.com +gfacecbook.com +gfarchive.com +gfashion.com +gfjizz.com +gfleaks.com +gfotolia.com +gfpics.com +gfpornbox.com +gfpornmovies.com +gfpornvideos.com +gfrevenge.com +gfsale.com +gfw.press +gfw.report +gfycat.com +gfysex.com +ajsjx.com +ggdiao.com +ajplus.net +ggjav.com +ggoogle.com +ggpds.com +ggpht.com +ggsrv.com +ggssl.com +aiweiweiblog.com +ghettotube.com +ghidra-sre.org +ghostgames.com +ghostpath.com +ghtv666.top +ghut.org +aiweiwei.com +giantessbooru.com +giantessnight.com +giffgaff.com +giffgaff.design +gifnuki.com +gifree.com +gigabyte.com +gigantits.com +gigaporn.org +gigaxvideos.com +gigjam.com +gimy.cc +gimy.co +ginmoe.com +gipscorp.com +giratina.com +girl-secret.com +girl7942.com +girlbanker.com +girlfriendgalleries.net +girlfriendhomeporn.com +girlfriendvideos.com +girlfriendvids.net +girlfuckshorse.net +girlfur.com +girls.xyz +girlscanner.cc +girlscv.com +girlsdelta.com +girlsfuck-tube.com +girlsheaven-job.net +girlsnudepic.com +girlsofdesire.org +girlsongirlstube.com +girlspoopingtube.com +girlssexxxx.com +girlstryanal.com +girlsway.com +girlswelustfor.com +girlsxxx.net +gisplanning.com +git-scm.com +gitbook.com +github.blog +github.com +github.community +github.dev +githubapp.com +githubassets.com +githubhackathon.com +githubnext.com +githubpreview.dev +githubstatus.com +githubuniverse.com +githubusercontent.com +gitlab-static.net +gitlab.com +gitlab.net +gitstar.com +gitstar.net +gittigidiyor.net +gittigidiyorsikayet.com +gizlen.net +gizmoxxx.com +gjczz.com +aiv-cdn.net +aishegw.com +gladporn.com +glam0ur.com +glamourtits.com +glasamerike.net +aisex.com +aisejushi.com +global-sci.org +globaledu.org +globaljihad.net +globalmediaoutreach.com +globalmuseumoncommunism.org +globalrescue.net +globalriskregulator.com +globalsecurity.org +globalsign-media.com +globalsign.com +globalsign.net +globalspec.com +globaltm.org +globalvoices.org +globalvoicesonline.org +globalvpn.net +airwickarabia.com +airwick.net +glock.com +gloporn.com +gloryhole.com +gloryholefucking.com +gloryholeswallow.com +gloryofheracles.com +glorystar.me +gluckman.com +glype.com +glyphsapp.com +airwick.com +airwatchqa.com +gmail.com +airwatchexpress.com +gmgard.com +gmhz.org +gmll.org +gmnetworks.net +airvpn.org +gmodules.com +gmoney.org +z5.com +airtunes.net +airtunes.info +gnews.org +gnom-cham.com +gnu.org +gnzi.xyz +gnzi1.top +go-disneyworldgo.com +go-gaytube.com +go-lang.com +go-lang.net +go-lang.org +go-pki.com +go.com +go.dev +z5.app +go141.com +go2av.com +goagent.biz +z18r.com +goagentplus.com +gobeatsye.com +gobet.cc +gobianywhere.com +gobuyonlinestore.net +gockhuatviet.com +airtunes.com +godaddy.com +godfootsteps.org +godns.work +godoc.org +godsdirectcontact.org +godsimmediatecontact.com +goduckgo.com +gofucker.com +gofuckmenow.com +gofundme.com +gog-statics.com +gog.com +gogle.com +gogo-load.com +gogoanime.wiki +gogocdn.net +gogole.com +gogotunnel.com +gohentai.net +gokbayrak.com +golang.com +golang.net +golang.org +gold-gay.com +goldbet.com +goldbetsports.com +golden-ages.org +goldeneyevault.com +goldenfrog.com +goldjizz.com +goldnikeclub.com +airsupportapp.com +goldsexvideos.com +goldstep.net +goldteenporn.com +goldwave.com +golosameriki.com +gonglchuangl.net +gongmeng.info +gongminliliang.com +gongwt.com +gongyichuangyi.net +gonike.com +gonzo-movies.com +gonzo.com +airsextube.com +good-gay.com +gooday.xyz +gooddaychicago.com +gooddns.info +airport.com +goodhope.school +goodporno.cc +goodreaders.com +goodreads.com +goodsdunk.net +goodsexporn.org +airport-gov-cn.com +goofind.com +airmay.com +googel.com +googil.com +googl.com +airmax360.com +google-access.net +google-analytics-cn.com +google-analytics.com +google-syndication.com +google.co +google.com +z18r.co +google.dev +google.me +google.net +google.org +google.ventures +googleacquisitionmigration.com +googleadservices-cn.com +googleadservices.com +googleanalytics.com +googleapis-cn.com +googleapis.com +googleapps-cn.com +googleapps.com +googlearth.com +googleartproject.com +googleblog.com +googlebot.com +googlecapital.com +googlecert.net +googlechinawebmaster.com +googlecode.com +googlecommerce.com +googledanmark.com +googledomains.com +googledrive.com +googlee.com +googleearth.com +googlefiber.com +googlefiber.net +googlefinland.com +googleflights-cn.net +googlegroups.com +googlehosted.com +googleideas.com +googleinsidesearch.com +googlelabs.com +googlemail.com +googlemaps.com +googlemashups.com +googleoptimize-cn.com +googleoptimize.com +googlepagecreator.com +googlephotos.com +googleplay.com +googleplex.com +googleplus.com +googlescholar.comusa +googlesile.com +googlesource.com +googlestore.com +googlesverige.com +googlesyndication-cn.com +googlesyndication.com +googletagmanager-cn.com +googletagmanager.com +googletagservices-cn.com +googletagservices.com +googletraveladservices-cn.com +googletraveladservices.com +googleusercontent.com +googlevads-cn.com +googleventures.com +googlevideo.com +googleweblight.com +googlezip.net +googlr.com +goolge.com +gooogle.com +gopetition.com +gopivotal.com +gopivotal.net +goporngate.com +goproxing.net +goragay.com +gordonmoore.com +goreforum.com +goregrish.com +gosexpod.com +goshemalecams.com +gospelherald.com +gosq.co +gosq.com +gostorego.com +gostosanovinha.com +got-game.org +gotblop.com +gotcosmos.com +gotgayporn.com +gotgeeks.com +gothdporn.com +gotporn.com +gotraffic.net +gotrusted.com +airitilibrary.com +gouri.xyz +airiti.com +govforce.com +airhornbot.com +gpstheseries.com +gputechconf.com +gqzmnav.cc +airhorn.solutions +gr-assets.com +gr8domain.biz +gr8name.biz +grabhentai.com +grabpussy.com +gradeuptube.com +grafolio.com +graias.com +graiasmovies.com +airgonetworks.com +grammaly.com +grandepornogratis.com +grandtrial.org +grangorz.org +grannygetsafacial.com +grannylister.com +grannylovesbbc.com +grannylovesyoungcock.com +grannytube.net +graph.org +graphql.org +gravatar.com +gravitytank.com +greasespot.net +great-firewall.com +great-roc.org +greatergothammini.com +greatfire.org +z00.world +greatfirewall.biz +greatfirewallofchina.net +greatfirewallofchina.org +greatretroporn.com +greatroc.org +greatzhonghua.org +airconsole.com +greenpeace.org +greenplum.net +greenreadings.com +greenvpn.net +greenvpn.org +greginhollywood.com +gridaware.app +grindr.com +grooby.com +grotty-monday.com +groupfun.com +groups.com +grss-ieee.org +grupobmw.com +airav.wiki +gs-discuss.com +gscanada.info +gsccdn.com +gsearch.media +z-lib.org +gstatic-cn.com +gstatic.com +gsuite.com +airav.cc +yzzk.com +gtricks.com +gts-vpn.com +gtv.org +gtv1.org +gtvmediagroupfairfund.com +airasia.com +gu-chu-sum.org +gu-web.net +guaguass.com +guaguass.org +guambmw.com +guancha.org +guaneryu.com +guangming.org +guangnianvpn.com +guaranitermal.com +air-watch.com +guardianapis.com +air-nike-shoes.com +aiph.net +guardianproject.info +guardster.com +aipa553.com +gucci.com +guccimuseo.com +guccitimeless.com +aimsciences.org +guifw.xyz +guifw2.top +guishan.org +gumroad.com +gun-world.net +gunsamerica.com +gunsandammo.com +guo.media +guochantube.com +guochanw.life +guruofporn.com +gutteruncensored.com +guysnightlife.com +gv.com +gvlib.com +gvt0.com +gvt1-cn.com +gvt1.com +gvt2-cn.com +gvt2.com +gvt3.com +gvt5.com +gvt6.com +gvt7.com +gvt9.com +aimei133.com +gwiki.net +gwins.org +gwtproject.org +aibaobei.me +gyakusimei.com +gyalwarinpoche.com +gyatsostudio.com +gynoexam.info +gyutto.com +gzone-anime.info +h-china.org +h-doujinshi.xyz +h-flash.com +h-moe.com +yzld188.top +h-webtoon.com +h0930.com +h18ani1.vip +h1n1china.org +h2porn.com +h528.com +h5dm.com +h5galgame.me +hacg.club +hacg.me +hacg.red +hacken.cc +hacker.org +hackerfacebook.com +hackerguardian.com +hackfacebook.com +hackfacebookid.com +hacklang.org +hackthatphone.net +hackthedrive.com +hackyourconsole.com +hadesex.com +haha888.xyz +hahlo.com +haho.moe +hairy-amateurs.com +hairy-beauty.com +hairy-women-pussy.net +hairyclassic.com +hairydivas.com +hairynature.com +hairyolder.com +hairypornsite.com +haisetu.net +haitenjp.com +haiwaikan.com +aiaa.org +half.com +halfcanada.com +halfjapan.com +yyjlymb.xyz +hamsterfucktube.com +handbags-nike.com +handbagsoutletebay.com +handcraftedsoftware.org +handjobcumvideos.com +handjobhub.com +handjobtube4free.com +ai-wen.net +hanime.me +hanime1.me +hanunyi.com +yyii.org +hao.news +haori888.com +haplorrhini.com +happy-vpn.com +haproxy.org +hardanalfucking.com +hardcore-sex-filme.com +hardcoregayblog.com +hardsex8.com +hardsextube.com +hardx.com +harperacademic.com +harperapps.com +harpercollins.com +harpercollinsadvantage.com +harpercollinschristian.com +harpercollinsspeakersbureau.com +harunyahya.com +hashicorp.com +haskell.org +haskellstack.org +hath.network +hautelook.com +hautelookcdn.com +have8.com +haveibeenpwned.com +hawaiibmw.com +hayabusa.dev +hayabusa.media +hbabit.com +hbfile.net +hbg.com +ai-kan.net +hbo.com +yyfb.cyou +hboasia.com +hbogo.com +hbogoasia.com +yx51.net +hbomax.com +hbomaxcdn.com +hbonow.com +hbrowse.com +hcaptcha.com +hcaptchastatus.com +hcbdsm.com +hclips.com +hcomic.net +hcomicbook.com +hcpdts.com +hd-tubes.com +hd1999.top +hdabla.net +hdb1.app +hdbigass.com +hddgames.cc +hddirectv.com +ahxxx.club +ahvideosexe.com +hdfreeporn.net +hdhole.com +hdjavonline.com +hdlt.me +hdouban.com +hdouban2.com +hdouga.com +hdporn1080.net +hdporn92.com +hdporncomics.com +hdpornmax.net +hdpornt.com +hdreporn.com +hdrplusdata.org +hdsex.pro +hdsexxx.net +hdtube.co +hdtube1.com +hdtvb.net +hdvideosporn.net +hdzog.com +he.net +headphonepubs.com +headphones-cool.com +headphones-dre.com +headphones-outlet-online.com +headphonesbeatsaudio.com +headphonesbeatsbydre.com +headphoneses.com +headphoneshome.com +headphoneshotsales.com +headphonesol.com +headphonesretailer.com +headphonessupply.com +headphonezip.com +headset987.com +healthcarecareeronline.com +heartbreakers.gallery +heartbreakers.info +heartyit.com +heaven-burns-red.com +heavenlyhentai.com +heavy-r.com +heavyfetish.com +hebiphone.com +hecaitou.net +hechaji.com +hegre-art.com +hegre.com +heijidi.life +heinonline.org +ahtranny.com +helixstudios.net +helloandroid.com +helloavgirls.com +hellokittybeats.com +helloqueer.com +hellosmartbook.com +helloss.pw +hellotxt.com +hellouk.org +hellporno.com +hellven.net +ywpw.com +helpeachpeople.com +helplinfen.com +helpuyghursnow.org +helpzhuling.org +ahtops.com +hentai-ani.me +hentai-archive.com +hentai-books.com +hentai-cosplays.com +hentai-covers.site +hentai-eroanime.net +hentai-for.net +hentai-fun.com +hentai-gamer.com +hentai-gif-anime.com +hentai-img.com +hentai-moon.com +ywoos.com +ywbclx.top +hentai-vostfr.net +hentai.desi +hentai.game +hentai.name +hentai.pink +hentai.pro +hentai.toys +hentai0.com +hentai01.com +hentai2.net +hentai2012.com +hentai247.net +hentai24h.org +hentai2games.com +hentai2read.com +hentai2w.com +hentai3dvideo.biz +hentai44.com +hentai4free.net +hentai4manga.com +hentai69.life +hentai69.online +hentaia.net +hentaiaction.net +hentaiasmr.moe +hentaiathome.net +hentaibaka.one +hentaibar.com +hentaiblue.com +hentaibros.com +hentaicity.com +hentaicloud.com +hentaiclub.net +hentaicomics.life +hentaicore.net +hentaicore.org +hentaicovid.com +hentaidirectory.org +hentaidude.com +hentaienvy.com +hentaiera.com +hentaiero.net +hentaifc.com +hentaifox.com +hentaifreak.org +hentaifromhell.org +hentaigamer.org +hentaigamesplanet.com +hentaigasm.com +hentaihand.com +hentaihaven.com +hentaihaven.me +hentaihaven.red +hentaiheadlines.com +hentaihere.com +hentaiheroes.com +hentaikey.com +hentaiknight.com +hentailabs.com +hentailegendado.com +hentaimangaporn.com +hentaimovieplanet.com +hentainanime.com +hentainhaven.com +hentainstream.com +hentaipapa.com +hentaipaw.com +hentaiplay.net +hentaiporn.com +hentaipornonly.com +hentaiprn.com +hentaiprno.com +hentaipros.com +yvesgeleyn.com +hentairead.com +hentairead.info +hentairead.vip +hentairox.com +hentairules.net +hentais.tube +hentaisea.com +hentaiseason.com +hentaispark.com +hentaistream.com +hentaistube.com +hentaisub.info +hentaitalk.com +hentaitk.com +hentaitokyo.com +hentaitube.online +hentaiverse.org +hentaivideos.net +hentaivideoworld.com +hentaivn.net +hentaivvz.com +hentaiworldporn.com +hentaix.me +hentaixxx.vip +hentaixxxvids.com +hentaiyes.com +hentaiz.cc +hentaiz.co +hentaiz.mobi +hentaiz.vip +hentaizap.com +hentaizilla.com +hentaizz.net +henti-night.com +heptio.com +heqinglian.net +hereistheporn.com +herexxx.com +heritage.org +ahswingerporno.com +hernudepics.com +herodex.org +heroero.com +heroesofdragonage.com +heroesofthestorm.com +heroku-app.com +heroku-charge.com +heroku.co +heroku.com +heroku.me +herokuapp.com +herokucdn.com +herokucharge.com +herokussl.com +herringnetwork.com +hetzner.cloud +hetzner.com +heungkongdiscuss.com +hexatronik.com +hexieshe.com +hexieshe.xyz +hexxeh.net +hey.boo +heydoga.com +heydouga.com +heyuedi.com +heywire.com +heyzo.com +hf-iphone.com +hgamer.pro +hgsacx.com +hgseav.com +ahsexfilme.com +hh-content.com +hhdcb3office.org +hhtdq17.com +hhthesakyatrizin.org +hhvm.com +hibdontire.com +hiccears.com +hidden-advent.org +hiddenvoyeurspy.com +hiddify.com +hide.me +hidecloud.com +hidein.net +hideipvpn.com +hideman.net +hidemy.name +hidemyass.com +hidemycomp.com +hidive.com +hifacebook.info +hifiporn.fun +hifixxx.fun +hifuli.com +higfw.com +highbolt.net +highcolonic.info +highdefinitionbeatsbydre.com +highpeakspureearth.com +highporn.net +highrockmedia.com +hightopnikes.com +highwirepress.com +hihiforum.com +hihigv.com +hihistory.net +hiitch.com +hikinggfw.org +hilostripper.com +ahpornotube.com +himalaya.exchange +himalayan-foundation.org +himalayanglacier.com +himemix.com +himemix.net +hindawi.com +hindiweb.com +hinet.net +hipaa6020.com +hiporn.net +hippyhillscomix.com +hipzoom.net +ahpornogratuit.com +historyofdota.com +historyofdota.net +historyofdota.org +hiswifepussy.com +ahorsecock.com +hitbdsm.com +hitbtc.com +hitxhot.com +hiwifi.com +hizb-ut-tahrir.info +hizb-ut-tahrir.org +hizbuttahrir.org +hjclub.info +ahentaitv.com +hk-pub.com +yuvutu.com +yusjb.com +yusercontent.com +yuntipub.com +yunlaopo.net +hk01.com +hk1lib.org +hk32168.com +hkacg.com +hkacg.net +hkatvnews.com +hkbc.net +hkbf.org +hkbigman.net +hkbn.net +hkbnes.net +hkbookcity.com +hkchronicles.com +hkchurch.org +hkcircleapp.com +hkcitizenmedia.com +hkcnews.com +hkcoc.com +hkcsl.com +hkday.net +hkdf.org +hkedcity.net +hkej.com +hkepc.com +hket.com +hketgroup.com +hkfaa.com +hkfreezone.com +hkfront.org +hkgalden.com +hkgolden.com +hkgolden.media +hkgpao.com +hkgreenradio.org +hkheadline.com +hkhkhk.com +hkjc.com +hkjp.org +hklft.com +hkmap.live +hkopentv.com +hkpeanut.com +hkporn.net +hkptu.org +hkreadingcity.net +hkreporter.com +ahegao.online +hkt-enterprise.com +hkt-eye.com +hkt.com +hkteducation.com +hktpremier.com +hktshop.com +hkusu.net +hkvwet.com +hkzone.org +hlbelygl.com +ahcathyxxx.com +hm.com +hmd.site +hmoegirl.com +hmonghot.com +hmvdigital.com +ah-me.com +hnalady.com +hnjhj.com +hnntube.com +hobonichielog.com +hochi.news +hoes.com +yunlaopo.com +hola.com +hola.org +holdemstripem.com +holloporn.com +hollyrandall.com +hololens.com +holymountaincn.com +holyspiritspeaks.org +home-made-porn-movies.com +home-made-videos.com +home-sex-tapes.com +home-song.com +yunlaopo.cc +homealonemilfs.com +agzy1.com +homedepot-static.com +homedepot.com +homefuckingmovies.com +agu.org +homegrownfreaks.net +homemade-porn-video.com +homemadeamateur.com +homemadeanalporn.com +homemadefucktube.com +homemadepornclip.com +homemadeporntubes.com +homemadevids.net +homemoviestube.com +homeperversion.com +homephoneplus.com +homepornbay.com +homepornking.com +homepornvideo.net +agoogleaday.com +homeservershow.com +homesexmade.com +honawalaan.com +agendaweek.com +honestpornreviews.com +aga-expo.com +hongjie10.xyz +hongjie11.xyz +hongkongdollvideo.org +hongkongfp.com +hongmaodan100.com +hongmeimei.com +honkaiimpact3.com +honkaistarrail.com +honven.xyz +hoodamateurs.com +hooligapps.com +hoolu.com +hootsuite.com +hoover.org +hoovers.com +hopedialogue.org +hopto.org +hornybitches.org +hornybutt.com +hornychat.net +hornyelephant.com +hornygamer.com +hornygfporn.com +hornygirlsonline.org +hornyjav.com +hornysexgame.com +hornytrip.com +hornywhores.net +horrorporn.com +horse-cum.net +horse4sex.com +horsecock.guru +horsecumshot.net +horsedick.net +horsedicks.net +horsemecum.com +hostloc.com +afriboyz.com +hot-arab-films.com +hot-cartoon.com +hot-gayporn.com +hot-sex-photos.com +hot-sex-tube.com +hot-teens.com +hot2048.com +hotair.com +hotamateurblowjobs.com +hotasianbabes.com +hotbeatsonsale.com +hotcandyland.com +hotcoin.com +hotcuckoldwife.com +hotcumporn.com +hotescortdusseldorf.com +hotfiesta.com +hotfucktube.com +hotgaylist.com +hotgirlsclips.com +hotgoo.com +hothomemade.com +hotindianbabe.com +hotindianxxxsex.com +hotladsworld.com +hotladyhere.com +afreecatv.com +hotmail.co +hotmail.com +hotmail.net +hotmail.org +hotmonsterbeats.com +hotmovies.com +hotmovs.com +hotntubes.com +hotnudegirls.net +hotporn.today +hotpornbible.com +hotpornfile.org +hotpornshow.com +hotporntubes.com +hotsexvideo.mobi +hotsexydolls.com +hotshame.com +hotspotshield.com +hotstar-cdn.net +hotstar-labs.com +hotstar.com +hotstarext.com +hotstunners.com +hotteenfreecam.com +hottestfilms.com +hottestheadphonesonline.com +hottg.com +hottystop.com +hotvpn.com +hotwifemovies.com +hotzxgirl.com +hougaige.com +housing.com +housingcdn.com +howfuck.me +howtoforge.com +howtohackfacebook-account.com +hoxx.com +hoyo.link +hoyolab.com +hoyoverse.com +hp-imagine.com +hp-infolab.com +hp-invent.com +hp-invent.info +hp-mns.com +hp-printing.com +hp-webplatform.com +hp-ww.com +hp.com +hp.company +hp3d.com +hp3dmetals.com +hp3dprinter.com +hp3dsamplepromo.com +hpallinoneprinter.com +hpapplicationscenter.com +hpayshop.com +hpbestbuy.com +hpbluecarpet.com +hpbluecarpet.net +hpbuiltforlearning.com +hpbundle.com +hpcampus.com +hpcatridge.com +hpccp.com +hpceo.com +hpcmw.net +hpcodewarsbcn.com +hpcomputers.com +hpcomputerservices.com +hpconnected.com +hpconnected.net +hpconnected.org +hpconnectedstage.com +hpcontinuum.com +hpcpi.com +hpcu.org +hpcustomersupport.com +hpcustomersupport.net +hpdaas.com +hpdesignjetl25500.com +hpdesktopcomputer.com +hpdownloadstore.com +hpdreamcolor.com +hpdriver.com +hpdrivers.com +hpdrivers.org +hpeclipse.com +hpengage.com +hpeprint.com +hpeprintcenter.com +hpeurope.com +hpeventcenter.com +hpfaqs.com +hpfeedback.com +hpgift.com +hpgpas.com +hpgraphicspartners.com +hpiie.org +hpinc.info +hpinc.net +hpindigopress.com +hpinkjet.com +hpinstantink.com +hpkeyboard.com +hplaptop.com +hplaptopbattery.com +hplargeformatremote.com +hplatexknowledgecenter.com +hplfmedia.com +hplip.net +hplipopensource.com +hpmarketplace.com +hpmemorychips.com +hpmicrcartridge.com +hpmini.com +hpmobile.com +hpofficejetprinter.com +hponlinehelp.com +hponlineprinting.com +hppage5000.com +hppavillionlaptop.com +hpphotoscanners.com +hpprinterdrivers.com +hpprinterinstalls.com +hpprintersupplies.com +hpsalescentral.com +hpserver.com +hpservices.com +hpshooping.com +hpshop.com +hpshoping.com +hpsignage.com +hpsmart.com +hpsmarts.com +hpsmartstage.com +hpsmartupdate.com +hpsoftware.com +hpspeaker.com +hpsprocket.com +hpsso.com +hpstore-china.com +hpstore-emea.com +hpstore.com +hpstorethailand.com +hpsupport.com +hpsuresupply.com +hptechventures.com +hpto.net +hptouch.com +hptouchpointmanager.com +hptrainingcenter.com +hptv.fun +hpuae.com +hpuniversity.info +hpusertraining.com +hpveer.com +hpvirtualthin.com +hpwallart.com +hpwellnesscentral.com +hpwsn.com +hq69.com +hqbabes.com +hqbutt.com +hqcdp.org +hqcollect.net +hqdesexo.com +hqjapanesesex.com +hqmovies.com +hqporner.com +hqseek.com +hqtrannytube.com +hqxxxmovies.com +afr.com +hrcchina.org +hrcir.com +hrea.org +hrichina.org +hrsaz.com +hrtsea.com +hrw.org +hrweb.org +afpforum.com +hsex.men +hsfacebook.com +hshsxkj.com +hsjp.net +hsselite.com +hstern.net +hstt.net +hsxhr.cc +afp.com +ht3200.top +yunchao.net +aflamsexhd.com +htkou.net +html5rocks.com +httpfacebook.com +https443.net +https443.org +httpsfacebook.com +httpwwwfacebook.com +htvncdn.net +htyj-bj.com +aflamsex.net +hu1u.com +hua-yue.net +huaglad.com +huanghuagang.org +huangse.love +huangyiyu.com +huanyuju.com +huaren4us.com +huarenav.com +huarenporn.com +huashangnews.com +huashundg.com +huati.cc +huaweicloud-dns.net +huaweicloud-dns.org +huaxia-news.com +huaxiabao.org +huaxin-lls.xyz +huayuworld.org +hubblephone.com +hudson.org +huffingtonpost.com +huffpost.com +huffpostarabi.com +huffpostbrasil.com +huffpostmaghreb.com +hugedildo.com +huggingface.co +aflamporn.com +huhaitai.com +huhamhire.com +huhangfei.com +huj-pizda.com +hulkshare.com +huloo.cc +hulu.com +huluaction.com +huluad.com +huluapp.com +huluasks.com +hulucall.com +hulufree.com +hulugans.com +hulugermany.com +hulugo.com +huluhuluhuluhulu10.work +huluim.com +huluinstantmessenger.com +huluitaly.com +hulunet.com +hulunetwork.com +huluplus.com +hulupremium.com +hulupurchase.com +huluqa.com +hulurussia.com +huluspain.com +hulusports.com +hulustream.com +huluteam.com +hulutv.com +huluusa.com +humanrightspressawards.org +humblebundle.com +humoron.com +hung-ya.com +hungerstrikeforaids.org +hungryclit.com +huobi.co +huobi.com +huobi.me +huobi.pro +huobiasia.vip +huobigroup.com +huobipro.com +huobitoken.com +huohaore.net +huping.net +hurgokbayrak.com +hussiepass.com +hustler.com +hustlercash.com +hutao.cloud +hutianyi.net +hutong9.net +hutpromos.com +huyandex.com +hwgo.com +hwinfo.com +hwslabs.com +hxc10.vip +hxcsxs.pro +hxdoll.com +hxwk.org +hxwq.org +hxxn12.top +affirmtrust.com +hybrid-analysis.com +hycgm1324.shop +hyperdreams.com +hyperrate.com +hypnohub.net +hypnoporn.net +hypnotube.com +hypodermic-injection.com +hypodermicinjectiononline.com +hyu2.com +affect3dstore.com +hzmn.net +i-123-hp.com +i-book.com +i-book.net +i-cable.com +i-o-u.info +i-scmp.com +yulghun.com +i.org +i2runner.com +i818hk.com +i91av.org +iaablog.com +iafd.com +iam.soy +iamakamai.com +iamakamai.net +iamremarkable.org +iamtopone.com +iana.org +iav19.com +iavnight.com +ibb.co +ibeats-uk.com +ibeatsbydre.cc +ibeatsbydre.com +ibiblio.org +iblist.com +iblogserv-f.net +afewmomentswith.com +ibm.com +ibm.net +ibonedyourmom.com +ibook.com +ibook.net +ibookpartner.com +ibooksauthor.com +ibradome.com +ibros.org +ibvpn.com +ibytedtos.com +ibyteimg.com +icams.com +afappyending.com +yuenuge113.xyz +iceporn.com +iceporncasting.com +icevirtuallibrary.com +ichigocandy.com +ichineseporn.com +icij.org +icl-fi.org +icloud-content.com +icloud-isupport.com +icloud.com +icloud.org +icloudads.net +icloudbox.net +icloudbrowser.net +icloude.com +icloudhome.com +icloudmail.net +icloudmusic.net +icloudnet.net +icloudo.com +icloudo.net +icloudos.net +icloudpay.net +icloudsecure.net +icloudsetup.com +icoco.com +iconpaper.org +icu-project.org +icuminside.com +afantibbs.com +yuanzhengtang.org +idarkdoll.com +ideal-teens.com +idelreal.org +identrust.com +identrust.net +idiomconnection.com +idnike.com +idol-sagasukun.com +idouga.com +idreamx.com +ids-apple.com +idservice.inc +idx.dev +yuanming.net +ie10.com +ie11.com +ie8.co +ie9.com +ieasy5.com +iebay.com +ied2k.net +aex.com +ieee-aess.org +ieee-cas.org +ieee-ccnc.org +ieee-ceda.org +ieee-ecce.org +ieee-edusociety.org +ieee-ies.org +ieee-ims.org +ieee-into-focus.org +ieee-isto.org +ieee-npss.org +ieee-pels.org +ieee-pes.org +ieee-ras.org +ieee-region6.org +ieee-sensors.org +ieee-tems.org +ieee-uffc.org +ieee-vics.org +ieee.org +ieeeaps.org +ieeecsc.org +ieeecss.org +ieeeday.org +ieeedeis.org +ieeefoundation.org +ieeemagnetics.org +ieeemce.org +ieeenano.org +ieeeoes.org +ieeer10.org +ieeer5.org +ieeer8.org +ieeesmc.org +ieeesystemscouncil.org +ieeeusa.org +ienergy1.com +ietf.org +ytimg.com +ifanqiang.com +ifcss.org +ifjc.org +aesworkshops.com +ifontcloud.com +iframejav.com +ifreewares.com +ifuckedmy.mom +ifuckedtheboss.com +ig.me +igaychat.com +igcd.net +igcdn.com +igetnaughty.com +igfw.net +igfw.tech +igi-global.com +igkbroker.com +ignitedetroit.net +ignites.com +ignitesasia.com +igniteseurope.com +igoogle.com +igoshopping.net +igotpornpics.com +igpublish.com +igsonar.com +igtv.com +igvita.com +ihakka.net +ihao.org +iicns.com +iijav.com +aerogardcn.com +iirmll.com +ijavhd.com +aenhancers.com +ikea.com +ikea.net +ikids.com +iknowthatgirl.com +ikstar.com +ikwb.com +aei.org +ilbe.com +ilhamtohtiinstitute.org +ilife.wang +illianacomputerrecycling.com +illusion111.com +illusionas.com +illusionchn.com +illusionfactory.com +illusiongw.com +illusionh.com +illusionl.com +illusionn2.com +illusionn3.com +illusionn4.com +illusionn5.com +illusionxz.com +illusiony.com +illusionze.com +illusnoi.com +ilongman.com +ilove-movies.com +iloveinterracial.com +ilovelongtoes.com +iloveprettylolimm.com +ilovexs.com +aebn.com +imac-apple.com +imac-applecomputer.com +imac.co +imac.com +imac.one +imacapple.com +imacapplecomputer.com +imacsources.com +imageab.com +imagebam.com +imagecurl.com +imagecurl.org +imagefap.com +imageflea.com +imagepost.com +images-amazon.com +images-gaytube.com +imageshack.com +imagetwist.com +imagevenue.com +imageworks.com +imagezilla.net +imagineecommerce.com +aeasyshop.com +imaypb.com +imb.org +ae.org +imdb.com +imgasd.com +imgbb.com +imgchili.net +imgcrl.org +imgix.com +imgix.net +imgmega.com +imgur.com +imgurinc.com +imilfs.com +imkev.com +imlive.com +immidio.com +immxd.com +imod.com +imonsterbeats.com +imoviegallery.com +imoviestage.com +imperialbusiness.school +imperiodefamosas.com +impermium.com +imsrbx.xyz +imstagram.com +imtagram.com +imzog.com +ytht.net +in-disguise.com +in99.org +inaporn.com +inasian.club +incapdns.net +incentivetravelgifts.com +incestflix.com +incestvidz.com +incezt.net +incloak.com +inclusivegrowthscore.com +incommon-rsa.org +indazn.com +indaznlab.com +independentdubaiescorts.com +independentoperatorcn.com +indexxx.com +india.com +indiablooms.com +indiaipad.com +indian-free-xnxx.com +indian-pornstars.com +indianarrative.com +indiancolleges.com +indianfuck2.com +indiangfvideos.com +indiangirlsclub.com +indianhiddencams.com +indianpornfast.com +indianporngirls.com +indianpornvideo.org +indianpornvideos2.com +indiansexmms2.com +indiansexpussy.com +indiansexstories.net +indiansexstories2.net +indiemerch.com +indienudes.com +indonesiaporn.name +industrialtoys.com +infinitetoons.com +infinitetube.com +adx.promo +influencersgonewild.com +infocert.digital +informs.org +advertisercommunity.com +infowars.com +infowarsmedia.com +infrapedia.com +advertfan.com +ingads.com +ingka.com +ingka.dev +ingkacentres.com +ingyenszexvideo.top +inhumanity.com +inikesneakers.com +init.shop +initiativesforchina.org +initproducts.com +inkchoice.com +inkedravens.com +inkui.com +inlethd.com +inmediahk.net +innermongolia.org +innovations-i.com +inoreader.com +inporn.com +insecam.org +inshot.cc +inshot.com +inshotapp.com +insidefilms.com +insidemacintosh.com +insider-intelligence.com +insider.com +insiderdevtour.com +insiderintelligence.com +insidevoa.com +instaadder.com +instabang.com +instachecker.com +instafallow.com +instafollower.com +instagainer.com +instagda.com +instagify.com +instagmania.com +instagor.com +instagram-brand.com +instagram-engineering.com +instagram-help.com +instagram-press.com +instagram-press.net +instagram.com +instagramci.com +instagramcn.com +instagramdi.com +instagramhashtags.net +instagramhilecim.com +instagramhilesi.org +instagramium.com +instagramizlenme.com +instagramkusu.com +instagramlogin.com +instagramm.com +instagramn.com +instagrampartners.com +instagramphoto.com +instagramq.com +instagramsepeti.com +instagramtakipcisatinal.net +instagramtakiphilesi.com +instagramtips.com +instagramtr.com +instagran.com +instagranm.com +instagrem.com +instagrm.com +instagtram.com +instagy.com +instamgram.com +instangram.com +instantfap.com +instantfapgay.com +instanthq.com +instantink.com +instantssl.com +instanttelegram.com +instaplayer.net +instawank.com +instgram.com +institut-tibetain.org +instituteofwar.org +intagram.com +intagrm.com +intc.com +integral7.com +adventuresbydisney.com +intel-research.net +intel-university-collaboration.net +intel.cc +intel.com +0plkijj.vip +intel.me +intelamericasstore.com +intelapacstore.com +intelatom.net +intelcapital.com +intelcapital.net +intelcloudbuilders.com +intelcloudfinder.com +intelemeastore.com +inteleventexpress.com +intelforchange.com +intelfreepress.com +intelgo.net +intelinsight.com +inteliotmarketplace.com +intell.com +intellearningseries.com +intellij.com +intellij.net +intellij.org +intellinuxgraphics.com +intellinuxgraphics.net +intellinuxwireless.net +intelnervana.com +intelnet.component +intelplay.com +intelquark.com +intelrealsense.com +intelrxt.com +intelsalestraining.com +intelsecurity.com +intelserveredge.com +intelsoftwarenetwork.com +intelstore.com +inteltechnologyprovider.com +intelvmwarecybersecurity.com +interactivebrokers.com +intercom.com +intercomassets.com +intercomcdn.com +internationalconnectionsacademy.com +internationalsaimoe.com +internet.org +internetdefenseleague.org +internetdownloadmanager.com +internetexplorer.co +internetexplorer.com +internetexxxplorer.com +internetfreedom.org +internetofeverything.com +internetpopculture.com +interracial-sites.com +intescort.com +intgram.com +inthenameofconfuciusmovie.com +intimateinvasions.com +intltencentcos.com +intporn.com +intramuscularinjection.info +adventofcode.com +intunewiki.com +inxian.com +inxporn.com +advanscene.com +ioe.com +ioffergift.com +ioinformatics.org +iop.org +ios-icloud.com +iosinthecar.com +iotinactionevents.com +iownyour.biz +iownyour.org +ip73.com +ipa-iphone.net +ipad.host +ipad.wang +ipad3.com +ipadaustralia.com +ipadpro.buzz +ipalter.com +ipfire.org +ipfs-gateway.cloud +yswet.com +ysvia.com +ystry.com +yssir.com +iphine.com +iphone-cd.com +iphone-cn.com +iphone-sh.com +iphone-vip1.com +iphone-vip2.com +iphone-vip3.com +iphone-vip4.com +iphone-vip5.com +iphone-yh.com +iphone-zh.com +iphone.com +iphone.host +iphone.wang +iphone4.com +iphone4hongkong.com +iphone4s.com +iphone5.com +iphone5casescovers.com +iphone5s5case.com +iphonecase2013.com +iphonecase5.com +iphonecases100.com +iphonecases5.com +iphonecollcase.com +iphonefc.com +iphonegermany.com +iphonehacks.com +iphonehangzhou.com +iphoneimessage.com +iphoneplus.wang +iphonerip.net +iphonetaiwan.org +iphoneunlockimei.com +iphoto.wang +advancediddetection.com +ipjetable.net +ipleadership.org +ipns.co +ipobar.com +ipod.co +ipod.com +ipod.net +ipodcleaner.com +ipoditouch.com +ipodnano.com +ipodnano.net +ipodprices.com +ipods.com +ipodtouch.co +ipodtouch.com +ipoock.com +iporntoo.com +iporntv.net +iportal.me +ipostnaked.com +ipple.com +ippog.org +ippotv.com +ippstatic.com +iproperty.com +iptvbin.com +ipvanish.com +adultvirtualworlds.net +iq.com +iqq2.cc +iqq3.cc +iqqtv.net +adultvideotop.com +iranianboobs.com +iransextv.com +iranx.net +iredmail.org +adultvideodump.com +iromod91.info +ysset.com +ironpython.net +ironsocket.com +irotv301.top +irribay.com +adulttoontube.com +is-a-hunter.com +isaacmao.com +isasecret.com +isca-speech.org +ischool.com +adulttime.com +isfocus.net +isgame365.cc +isgreat.org +isheppc.com +isiknowledge.com +iskoot.com +islahhaber.net +adultsextoys.com +islamawareness.net +islamhouse.com +islamiccenterofnewlondon.com +islamicity.com +islamicpluralism.org +islamtoday.net +ismaelan.com +adultsexgames.biz +ismalltits.com +ismprofessional.net +isohunt.com +israbox.com +iss138.com +issitedownrightnow.com +issquaredown.com +issquareup.com +issuu.com +adultsexgame.biz +adultrental.com +istiqlalhewer.com +istockphoto.com +istripper.com +isunaffairs.com +isuntv.com +isupportuyghurs.org +adultpornvideos.net +ita-do.com +itaboo.info +itaeromanga.com +italiabeatsbydrdre.com +italiatibet.org +itasoftware.com +adulto.vip +itcanwait.com +itcfonts.com +itemdb.com +itemfix.com +itfromtheinside.com +ithaisex.com +itnel.com +itools.info +itripto.com +itsaol.com +itsbetterwhenyouwinit.com +itsfuck.com +itshidden.com +itsoc.org +itu.int +itunbes.com +ituneas.com +itunes-radio.net +itunes.co +itunes.com +itunes.org +itunes12days.com +itunesessentials.com +itunesfestivals.com +itunesiradio.com +ituneslatino.com +ituneslogin.net +itunesmatch.com +itunesparty.com +itunesradio.com +itunesstore.co +itunesu.com +itunesu.net +adultmagazinespdf.com +itweet.net +iu45.com +iuhrdf.org +iuksky.com +iutunes.com +ivacy.com +adultlister.com +iverycd.com +ivintageporn.com +ivpn.net +iw8j.cc +iwantavnow.com +iwantgalleries.com +iwantmature.com +iwantporn.net +iwaponline.com +adultkeep.net +iwork.com +iwork.wang +iwyn138.com +ixquick.com +ixxx.com +iyalc.com +iyottube.com +iyouport.com +iyouport.org +izles.net +izlesem.org +j2objc.org +jabcomix.com +jable.org +jade-net-home.com +jadult.net +jafgrown.com +adultism.com +jamaat.org +jamanetwork.com +jambotube.com +jamestown.org +jamyangnorbu.com +jandyx.com +janor6.net +janwongphoto.com +japan-forward.com +japan-whores.com +japan18tube.com +japanbeast.com +japanese-scat.net +japaneseasmr.com +japanesebeauties.net +japanesebeauties.one +japanesegirlspictures.com +japaneselovelygirl.com +ysrub.com +japanfist.org +japanknowledge.com +japanxxxfilms.com +japon-girls.com +japteenx.com +japxtube.com +jasmin.com +jav-1080.com +jav-angel.net +jav-legend.com +jav-subtitles.com +jav-vr.net +jav.com +jav.dog +jav.gallery +jav.guru +jav.land +jav.place +jav01.cc +jav101.com +jav168.cc +jav19.com +jav223.com +jav24.com +jav2be.com +jav321.com +jav4you.org +jav789.com +jav889.xyz +jav9999.com +adultinfojpn.com +java.com +java.net +javakiba.org +javbabe.net +javbangers.com +javbobo.com +javbooks.com +javbraze.com +javbus.com +javbus22.com +javbuz.com +javcc.cc +javcc.com +javcdn.cc +javcl.com +javct.net +javcup.com +javdb.com +javdisk.com +javdock.com +javdoe.com +javdove.com +javdove8.xyz +javextreme.net +javfilms.com +javfor.me +javforme.ninja +javfree.me +javfuck.net +javfull.net +javfun.me +javfv.com +javgg.net +javgrown.com +javhard.net +javhard.org +javhaven.com +javhay.net +javhd.com +javhd.icu +javhd.pro +javhd.today +javhd3x.com +javhdfree.net +javhdhello.com +javhdonline.com +javhdporn.com +javhdporn.net +javher.com +javheroine.com +javhihi.com +javhip.com +javhub.me +javhub.net +javhuge.com +javidol.org +javjack.com +javjunkies.com +javkiki.com +javlands.net +javleak.com +javlibrary.com +javmany.com +javmenu.com +javmix.me +javmobile.mobi +javmobile.net +javmodel.com +javmoo.com +javmoo.xyz +javmost.com +javmost.xyz +javmuch.com +javnew.net +javopen.co +javout.co +javplatform.com +javpop.com +javpop.link +javporn.tech +javpost.net +javprice.com +javprime.net +javpub.me +javpush.com +javqd.com +javrank.com +javrave.club +javscat.net +javscatsex.com +javscatting.com +javscreens.com +javseen.com +javspanking.com +javstar.club +javstore.net +javsx.com +javtag.com +javtag.net +javtasty.com +javteg.net +javtiful.com +javtorrent.me +javtrailers.com +javtrust.com +javtube.cc +javtube.com +javtube.net +javvids.com +javwide.com +javxspot.com +javxxx.me +javynow.com +javzoo.com +jayspov.net +jbe-platform.com +jbtalks.cc +jbtalks.com +adulti01.com +adultgeek.net +jcpenney.com +jdavsp.pw +jdbimgs.com +jdbstatic.com +jdforum.net +jdwsy.com +adultgamingroom.com +jeanyim.com +adultgamestop.com +jennylist.xyz +jerk-porn.com +jerk24.com +jerkdolls.com +jerkdude.com +jerkmate.com +jerkmatelive.org +jerkofftocelebs.com +jessicaturner.com +jetbrains.com +jetbrains.net +jetbrains.space +jetbrains.team +jetfuelapp.com +jetfuelapps.com +jetos.com +jex.com +jfengtime.com +jfqu36.club +jfqu37.xyz +jfrog.com +jfrog.org +jgg18.xyz +jgoodies.com +jhxl.org +jiangweiping.com +jiaoyou8.com +jiayoulu.com +jibemobile.com +jichangtj.com +jieav.com +jieshibaobao.com +jigglegifs.com +jigong1024.com +ysrow.com +jihadology.net +jiji.com +jilhub.com +jims.net +jinbushe.org +jingpin.org +jingsim.org +jinmantiankong.com +jinnaju.com +jinpianwang.com +jinroukong.com +jinsilubanzhao.com +jintian.net +jinx.com +adultgamesportal.com +jitouch.com +jitsi.org +jiuse904.com +jiuse905.com +jiuzhouyihuo.com +jiyou520.com +jizzboom.com +jizzbunker.com +jizzhut.com +jizzle.com +000webhost.com +jizzthis.com +jjaaxyz.com +jjdong7.com +jjgirls.com +jkb.cc +jkbeats.com +jkf.net +jkface.net +jkforum.net +jkub.com +adultgameson.com +adultgamescollector.com +adultgamesapk.com +jm98.cc +jmcomic.me +jmcomic.mobi +jmcomic.moe +jmcomic1.city +jmcomic1.me +jmcomic1.mobi +jmcomic2.moe +jmlr.org +adultgames18.com +jmscult.com +jmvbt.com +jneurosci.org +adultgames.me +adultgames.games +joachims.org +joanabliss.com +adultgamereviews.com +jodic-forum.org +joeswall.com +johnpersons.com +johren.games +johren.net +joiasmr.com +joinclubhouse.com +joinmaidez.com +joinmastodon.org +joinside.org +jokerlu1.cc +jokerlu1.info +joox.com +jorropo.net +jos.com +journalchretien.net +journalofdemocracy.org +jove.com +joyhentai.com +joyjoy.net +joylovedolls.com +joymiihub.com +joyourself.com +joysporn.com +adultfriendfinder.com +ysraw.com +jpavcom.com +jpbabe.com +jpboy1069.net +jpg4.biz +jpg4.info +jpg4.pw +jpg4us.net +adultfreex.com +adultfilmdatabase.com +jpopforum.net +adulters.org +jpvhub.com +jquery.com +jquerymobile.com +jqueryui.com +jr24h.com +js.org +jsbridgestone.com +jsdelivr.com +jsdelivr.net +jstor.org +jsz91.com +jtube.space +jtvnw.net +jubushoushen.com +judeporn.com +juggsjoy.com +juhuaren.com +juicytwink.com +jukujo-club.com +julesjordan.com +juliamiles.com +juliamovies.com +juliepost.com +juliereyc.com +junauza.com +june4commemoration.org +junefourth-20.net +jungleheart.com +adulterfree.com +juoaa.com +jupyter.org +justav.net +justdied.com +justduckit.com +justfamilyporn.com +adultepic.com +justfreevpn.com +justfullporn.org +justhd.xyz +justicefortenzin.org +justindianporn.me +justlesbianpussy.com +justmysocks.net +justmysocks1.net +justmysocks2.net +justmysocks4.net +justnudepic.com +justpicsplease.com +justporn.com +justporn.link +justswallows.com +justtristan.com +justusboys.com +juyangbee.xyz +juyangto.info +juyuange.org +juzige.xyz +juziyue.com +jvid.com +jwkcgd.xyz +jwmusic.org +jwpcdn.com +jwplatform.com +jwplayer.com +jwpltx.com +jwpsrv.com +jyxf.net +k-doujin.net +k9vidz.com +ka-wai.com +kaamuu.com +kaggle.com +kaggle.net +kaggleusercontent.com +kagyu.org +kagyumonlam.org +kagyuoffice.org +kairakudoujin.net +kakao.com +kakaocdn.net +kakaocorp.com +kaktuz.com +kalachakralugano.org +kali.org +kamababa.com +kamisama-maeda-lab.com +kampalaexclusiveescorts.com +kankan.today +kannewyork.com +kanporno.com +kanshifang.com +kantie.org +kanzhongguo.com +kaob3.xyz +kaotic.com +karayou.com +karger.com +karinahart.com +karkhung.com +karlajames.com +karmapa-teachings.org +karmapa.org +karupsha.com +karupspc.com +kastatic.org +katestube.com +kavkazr.com +kawase.com +ysput.com +kba-tx.org +kbdxlesx.xyz +kcoolonline.com +adultempire.com +adultdvdtalk.com +keaiav.com +kebrum.com +kechara.com +kechtube.com +keepandshare.com +keepmovingwithmovefree.com +keezmovies.com +keiba.net +kemono.party +kendatire.com +kendincos.net +kendralist.com +kenengba.com +kenxxx.com +kenya4.com +kenyaraha.net +kenyasexparadise.com +keontech.net +kepard.com +adultdvdmarketplace.com +kernel.org +adultdeepfakes.com +adultcamslover.com +adultblogtoplist.com +kex.com +keycdn.com +keyhole.com +keyporntube.com +keytransparency.com +keytransparency.foo +keytransparency.org +adultblogranking.com +adultbay.org +adultartsites.com +khabdha.org +khanacademy.org +khatrimaza.org +khotruyentranhx.com +ysporn.com +adult3dtoons.com +kichiku-doujinko.com +kichikuou.com +kickporn.com +kickshatchannel.com +kicksnike1.com +kidsnikeshoes.com +adult3dporno.com +kik.com +kikdirty.com +killcovid2021.com +killwall.com +kilmeadeandfriends.com +kimogirl.cc +kimosex.com +adult3dfantasycomics.com +kindgirls.com +kindindianporn.com +adult3dcomics.com +kindle.com +kindle4rss.com +kindleoasis.com +kindleoasis.info +kindleoasis.org +kindleoasisnews.com +kindleproject.com +kindleren.com +kindnudist.com +kindteenporn.com +kingcomix.com +kingdomsalvation.org +kingextre.me +kinghost.com +kingkongapp.com +kingofpics.com +kingstagram.com +kink.com +kinkbook.com +kinklive.com +kinkoid.com +kinkyfamily.com +kinkypeepz.com +kinmen.travel +kinokuniya.com +kir2kos.net +kirbysepicyarn.com +kirbysuperstarultra.com +kismia.com +kisscos.net +kissjav.com +ysmust.com +kiwibrowser.com +kk.stream +kkbox.com +kkfcc03.com +kkff2484.live +kkiah.com +kknews.cc +kktix.com +kktv.me +klik.me +ysmuch.com +kmc-av.com +kmdhyy.com +kmeleonbrowser.org +kmff17.com +adult-web-site.net +knovel.com +knowledgerush.com +knowyourmeme.com +knoxemm.com +koalaporn.com +kobbeatssbydredk.com +kobe-pastel.com +kobo.com +kobobooks.com +kodi.wiki +kodingen.com +adult-sex-games.com +adult-list.com +kompoz.com +kompoz2.com +kompozer.net +konachan.com +konachan.net +ysmere.com +adult-home-videos.com +adult-h.com +kone.com +koolsolutions.com +koornk.com +kopfhorergunstigshop.com +koranmandarin.com +koreanpornmovie.com +korenan2.com +korewaeroi.com +koskade.com +kostenlosepornoclips.com +kotlinlang.org +adsense.com +kphimsex.net +ads-twitter.com +adorevids.com +kqes.net +adorable-teens.net +kraken.com +krakenjs.com +adobexdplatform.com +krhentai.com +kristenbjorn.com +krux.com +krymr.com +adobetechcommdemo.com +kscisco.com +ksd235qw.com +ksdl.org +ksescortclub.com +kspcoin.com +ksyp10.com +ktvu.com +ktzhk.com +kuaipa.net +kuanrenxs.com +kubakuba.global +kubakuba1996.com +kubeacademy.com +kubeapps.com +kucoin.com +kui.name +kuke.com +kum.com +kumo.com +kundun1069.com +adobetechcommcallback.com +kurashsultan.com +kurtmunger.com +kusocity.com +kusugurizanmai.com +kutjeporno.com +adobetechcomm.com +kwok7.com +kxsw.life +adobetcstrialdvd.com +adobetarget.com +kyodo-d.info +kyodonews.net +kyofun.com +kyohk.net +adobetag.com +kyoyue.com +kyurem.com +kyzyhello.com +adobestock.com +kzeng.info +ysmelf.com +ysmeet.com +adobess.com +la-forum.org +ysmeat.com +ysmeal.com +ysmass.com +labiennale.org +adobespark.com +lacomics.org +adobesigncdn.com +ladbrokes.com +ladies.com +ladybaba.net +ladyboygold.com +ladyboypornonly.com +lagranepoca.com +lalulalu.com +lamayeshe.com +adobesign.com +adobesc.com +lamrim.com +lanasbigboobs.com +adobeprojectm.com +adobeplatinumclub.com +adobeoobe.com +adobelogin.com +langsuirs.com +lanternal.com +lantosfoundation.org +adobelanding.com +laogai.org +laogairesearch.org +laomiu.com +laosijifuli9009.top +laowang.vip +laoyang.info +laptoplockdown.com +laqingdan.net +laracasts.com +largecamtube.com +largeporntube.com +larsgeorge.com +adobeku.com +lastcombat.com +lasvegasbmw.com +adobejanus.com +latampartneruniversity.com +latamvmwareforum.com +latelinenews.com +latencytop.com +latex-project.org +latinaabuse.com +latintubeporn.com +adobehiddentreasures.com +latticedata.com +launchpad.net +launchpad.wang +launchpadlibrarian.com +launchpadlibrarian.net +launchpadlibrarian.org +lavteam.org +laxd.com +lazymike.com +adobegov.com +lbank.info +lbfmaddiction.com +lbtube.com +adobeexperienceawards.com +lcgirls.com +lcsmerch.com +ysmany.com +le-vpn.com +leafyvpn.net +leaguehighschool.com +leagueoflegends.com +leagueoflegends.info +leagueoflegends.net +leagueoflegends.org +leagueoflegendsscripts.com +leaguesharp.info +leaguoflegends.com +leakedmeat.com +leaksmodels.com +leakxxx.com +leannecrowvideos.com +learnwithleague.com +leavinghpinc.com +adobeexchange.com +lecloud.net +lecoin.cc +lede-project.org +ledger.com +leecountytimes.com +lefora.com +adobedtm.com +legalporno.com +ysmale.com +legaltracker.com +adobedemo.com +legsex.com +legsjapan.com +leisurepro.com +lelavement.com +leliao1.com +lemoncams.com +lencr.org +lenporno.red +lenwhite.com +leorockwell.com +leporno.org +lepornochaud.com +lepornofrais.com +lerosua.org +lesbian8.com +lesbianpics.org +lesbianpornvideos.com +lesbiansubmission.com +lesboerotica.net +letfap.com +lethalhardcore.com +lethalhardcorevr.com +letmejerk.com +letmejerk.fun +letou.com +letscorp.net +letsdoeit.com +letsencrypt.com +letsencrypt.org +letsfuckme.net +letsjerk.cc +lettherebeporn.com +levelsex.com +lewdthots.com +lewdvrgames.com +lewdweb.net +lexisnexis.com +lexuemei.com +adobedc.net +lezpoo.com +lfai.foundation +lflink.com +lflinkup.com +lflinkup.net +lflinkup.org +lg.com +lgappstv.com +adobecreativityawards.com +lgbtq.games +lge.com +lgecareers.com +lghvac.com +lghvacstory.com +lgrecyclingprogram.com +lgsalesportal.com +lhakar.org +beats-deal.com +amytele.com +redditlist.com +liangyou.net +liangzhichuanmei.com +lianhonghong.com +lianjiajr.net +lianyue.net +liaowangxizang.net +liberapay.com +liberapay.org +libgen.fun +libgen.life +libgen.me +liboggirls.net +librarylovefest.com +libraryofthumbs.com +librewolf.net +libsolutions.app +libsolutions.net +licdn.com +licensebuttons.net +adobecc.com +life-global.org +lifemiles.com +lifeselector.com +lifewire.com +lightbridge.com +lighti.me +lightxxxtube.com +lightyearvpn.com +lihkg.com +lihksnap.com +like.com +likeseiyu.com +liketruyen.net +liketwice.com +likuoo.video +lilhumpers.com +liliav.com +lilith-soft.com +adobeawards.com +limelight.com +limertw.cc +limeteensex.com +limiao.net +adobeaemcloud.net +adobeaemcloud.com +lindylist.org +line-apps-beta.com +line-apps-rc.com +line-apps.com +line-beta.me +line-cdn.net +line-scdn.net +line.biz +line.me +linearcollider.org +linecorp.com +linefriends.com +linemobile.com +linemyshop.com +lineshoppingseller.com +lingeriepornonly.com +linglingfa.com +linguee.com +lingvodics.com +link-o-rama.com +link.com +link2galleries.com +link69.com +linkedin.com +linkideo.com +linkjunkies.com +linkshit.com +linkuswell.com +linotype.com +linseysworld.com +linux.org +linuxfoundation.org +linuxfromscratch.org +linuxmint.com +linuxtoy.org +lionsroar.com +adobe.com +lipuman.com +liquiditytp.com +liquidvpn.com +lisiku.com +lisiku1.com +listennotes.com +listentoyoutube.com +listinganalytics.net +listorious.com +litbus-anime.com +literatumonline.com +literotica.com +littleasians.com +littlesexdolls.com +liu-xiaobo.org +liudejun.com +liuhanyu.com +liuhefabu.club +liujianshu.com +liuxiaobo.net +liuxiaotong.com +live.com +live.net +liveauction.com +livecamclips.com +livecoin.net +livefilestore.com +livehdcams.com +livejasmin.com +livejasminbabes.net +liveleak.com +livemint.com +livemodels.co +liveporngirls.com +liveprivates.com +liverail.com +livesex.com +livesexasian.com +livestation.com +livestream.com +adobe-video-partner-finder.com +livevideo.com +livexxx.me +livingstream.com +livingyourambition.com +liwangyang.com +adobe-audience-finder.com +lizardporn.com +lizhizhuangbi.com +adobe-aemassets-value.com +lkcn.net +lldns.net +lliusno.com +llnw-trials.com +llnw.com +llnw.net +llnwd.net +llnwi.net +llss.me +llwht88.xyz +lmmbtc.com +lncn.org +lnstagram-help.com +loanbuilder.com +lobsangwangyal.com +lobstertube.com +localbitcoins.com +localbitcoinschain.com +localizecdn.com +localizejs.com +localizestatus.com +localpresshk.com +localxlist.org +admob.com +lockestek.com +admob-cn.com +admeld.com +logbot.net +logi.com +logicoolg.com +login-account.net +login-paypal.com +login-paypal.info +logiqx.com +logitech.biz +logitech.com +logitechg.com +loholidayhk.com +lokinet.org +lol-europe.com +lolclub.org +lolespor.com +lolesports.com +lolfanart.net +lolhentai.net +loli.net +lolibus.cc +lolibus.top +lolislove.info +lolita.bet +lollipopescorts.com +lolpcs.com +lolstatic.com +lolusercontent.com +adidas.com +londonhotescort.com +londonmithraeum.com +lonestarnaughtygirls.com +longmusic.com +longtailvideo.com +longtermly.net +longtoes.com +lookinside.com +lookpic.com +looktoronto.com +looporn.com +looti.net +lordofultima.com +adhelpnews.com +lostbetsgames.com +lotcrap.com +lotsawahouse.org +adguard.com +love4porn.com +love7.xyz +loveamateurfacials.com +lovebeatsdr.com +lovedolltorso.com +lovegirls.cam +lovehomeporn.com +lovejav.net +loveloveskill.com +lovemarca.com +lovemstudios.com +loveparents.org +lovepartners.life +loverslab.com +lovesexbody.com +lovesexdurex.com +lovethiscity.com +lovetvshow.com +lowergiseries.com +lowiro.com +lp99.pw +adguard-vpn.com +adguard-dns.com +lpsg.com +lqh0bon3.xyz +adgoogle.net +lrfz.com +lrip.org +lrysgee.xyz +adelaidebbs.com +lsawards.com +lsforum.net +lsj2.shop +lsj40.xyz +lsjfuli308.xyz +lsm.org +lsmchinese.org +lsmkorean.org +lsmradio.com +lsmwebcast.com +lsnzxzy1.com +lspimg.com +lss55.com +lsxszzg.com +addyoutube.com +ltube.life +addtoany.com +lu2100.com +lu2200.com +lu23.com +lu2300.cc +lua.org +luanlunmv.cc +lubetube.com +lucahmelayu.club +lucasentertainment.com +luckydesigner.space +luckyissue.com +luke54.com +luke54.org +lululu.one +addthisedge.com +luoli.info +addthiscdn.com +lupm.org +lupoporno.com +luscious.net +lushstories.com +lustery.com +lusthero.com +lustteens.net +lustylist.com +luticlip.com +luvmov.com +luw666.xyz +luw666cm.cc +luxebc.com +luxuretv.com +luxuretv.fun +addthis.com +lvhai.org +lvv2.com +lxxlxx.com +adcex.com +lyfhk.net +lysol.com +lysol.net +lyzsxx.com +lzjscript.com +lzmtnews.org +m-power.com +m-team.cc +m.me +yslung.com +ysluck.com +m2m.com +m5ir5np1.shop +adblockplus.org +ysloud.com +ma1lib.org +maa.plus +mac-mini.com +mac.com +mac.wang +macbook.co +macbook.wang +macbookair.com +macbookair.net +macbookpro.co +macbookpro.com +macbookpro.net +macbookpros.com +macbooksale.com +macboxset.com +macgamestore.com +mach-os.com +mach-os.net +machigle-sp.com +machogaytube.com +machos.net +macintoshsoftware.com +macmini.com +macosforge.org +macossierra.com +macosx.info +macosxlion.com +macpazar.com +macports.org +macreach.com +macreach.net +macromedia.com +macrovpn.com +macruby.com +macruby.net +macruby.org +macrumors.com +adbkm.com +madchensex.com +maddawgjav.net +maddenchampionship.com +maddenrewards.com +maddenseason.info +maddenseason.net +maddenseason.org +madewithcode.com +madhomemadeporn.com +madonna-av.com +madou.club +madouav.one +madouzx.monster +madouzx.top +madpeople.net +madrau.com +adbecrsl.com +madshi.net +madthumbs.com +madvagina.com +madvr.com +madvr.net +madvrlabs.llc +mageconf.com +magento.com +magento.net +magentocommerce.com +magentoliveconference.com +magentomobile.com +magic-net.info +magicalmirai.com +magicmovies.com +mahabodhi.org +mahajantech.com +adanaatikhaber.com +maiio.net +mail-archive.com +maildns.xyz +maileoch.com +mailhealth.com +mailonline.com +mainichibooks.com +maiplus.com +mairbeats.com +maizhong.org +makaan.com +makebettercode.com +makecode.org +makeeu.com +makeitopen.com +makemymood.com +makesenseofdata.com +makkahnewspaper.com +maktoob.com +yslost.com +malayalamanorama.com +malayporn.site +malayporn.space +malaypornhub.com +malaysiakini.com +mallandrinhas.net +mallheadphone.com +malvastudios.com +mamacitaz.com +mamingzhe.com +ad69.com +managedmeetingrooms.com +managedpki.com +management-azure-devices-int.net +management-azure-devices.net +manchukuo.net +mandatewire.com +mandiant.com +manga-mill.com +manga18.art +mangafox.com +mangafox.me +mangahentai.me +mangahome.com +activpn.com +mangoporn.net +mangotporn.com +manhuabika.com +manhuagui.com +manhub.com +manhunt.net +manhuntdaily.com +manhwa24h.com +manhwahentai.me +maniash.com +manorama.com +manoramanews.com +manoramaonline.com +manototv.com +mansion.com +mansionglobal.com +mansionpoker.com +mansurfer.com +manta.com +mantochichi.com +manurefetish.com +manytoon.com +manyvids.com +manyvoices.news +mapbox.com +maplew.com +marc.info +mariadb.org +marioandluigidreamteam.com +mariobroswii.com +mariokart7.com +mariokart8.com +mariosupersluggers.com +marketexecutive.net +marketing-cloud.com +marketing-nirvana.com +marketingcloud.com +marketo.com +marketo.net +marketodesigner.com +marketolive.com +marketwatch.com +markzuckerberg.com +marranazas.com +activeteachonline.com +actfortibet.org +martau.com +martincartoons.com +martsangkagyuofficial.org +marvel.com +marvel10thanniversary.com +marveldimensionofheroes.com +marvelparty.net +marvelpinball.com +marvelsdoubleagent.com +marvelspotlightplays.com +marvelsuperheroseptember.com +marvelsuperwar.com +marxist.com +marxist.net +marxists.org +masalabin.com +masaladesi.com +masalaseen.net +masalladeloslimites.com +actalis.com +mashaalradio.com +maskedip.com +maskedsingerfox.com +massage-in-taipei.com +massagerepublic.com +masseffect.com +masseffectarchives.com +mastercad.com +mastercard-email.com +mastercard.com +ysloss.com +mastercard.inc +mastercardacademy.com +mastercardadvisors.com +mastercardbiz.com +mastercardbusinessnetwork.com +mastercardcenter.com +mastercardcenter.org +mastercardcenterforinclusivegrowth.org +mastercardconnect.com +mastercardezsavings.com +mastercardidtheftalerts.com +mastercardmoments.com +mastercardrestaurant.com +mastercardservices.com +mastercardworldwide.com +masterclass.com +masterintelligence.com +masterpassteststore.com +masterwanker.com +mastodon.cloud +mastodon.host +mastodon.social +mastodon.xyz +masturbate2gether.com +mat6tube.com +matainja.com +mathiew-badimon.com +mathoverflow.net +matome-plus.com +matome-plus.net +acs.org +matrix.org +matsushimakaede.com +acrobat.com +matters.news +matters.one +matters.town +mattwilcox.net +mature-amateur-sex.com +mature-porn-flix.com +matureclub.com +maturefuck.cc +maturejp.com +matureladiesxxx.com +matureporner.com +maturepornonly.com +matures-loving-sex.com +maturescam.com +maturesexual.com +maturesinhd.com +maturetube.com +maturewifeporn.cc +maturewomenanal.com +maturexxxvideos.cc +maxgo.com +maximumerotica.com +maxis.com +maya5.net +acpica.com +mayimayi.com +maying.co +mbeats-tech.com +mbheadphone.com +acmvalidationsaws.com +mcadforums.com +acmvalidations.com +mcd.com +mcdindonesia.com +acmetoy.com +mcdonalds.com +mcdonaldsarabia.com +mcfog.com +mcisco.com +acmedia365.com +mcpeaceofmind.com +mcreasite.com +mcrouter.net +mcrouter.org +mcstories.com +acm.org +md-t.org +mdhcdn.com +mdialog.com +mdlf.xyz +yslose.com +mdn.dev +ysless.com +mdnkids.com +mdnplay.dev +mdnyalp.dev +mdpi.com +me-gay.com +me.com +me.me +meadjohnson.com +meadjohnson.net +meansys.com +mearki.com +media-amazon.com +media-imdb.com +mediachinese.com +mediafiles-cisco.com +mediafire.com +mediafreakcity.com +mediasama.com +mediawiki.org +medium.com +medium.systems +medrxiv.org +meendo.com +meet.new +meetandfuck.games +meetandfuckgames.com +meetav.com +meetfasttrack.com +meetsmartbook.com +meetup.com +meetyourdevices.com +mefeedia.com +mefound.com +megacamz.com +megafilmporno.com +megahdporno.net +megapornfreehd.com +megapornpics.com +megaproxy.com +megarotic.com +megatitsminka.com +megavideo.com +megurineluka.com +meguso.com +meilleurpornos.com +meitula.net +meizhong.blog +meizhong.report +aclweb.org +melonstube.com +meltoday.com +meme111.com +memehk.com +memorybbs.com +memri.org +memrijttm.org +men.com +men18.net +menatplay.com +mendeley.com +mengnan.shop +menhdv.com +menshin-channel.com +acjj.net +meoriental.com +mepn.com +meraki-go.com +merakigo.com +mercatox.com +mercdn.net +achievementanalytics.com +acheterfollowersinstagram.com +mercyprophet.org +mergersandinquisitions.org +meridian-trust.org +meridian.net +meripet.biz +meripet.com +meshrep.com +mesotw.com +messenger.com +messengerdevelopers.com +messytube.com +met-nude.com +meta.com +metacafe.com +metacloud.com +metacpan.org +metafilter.com +metaporn.com +metart.com +metarthunter.com +metartnetwork.com +metcams.com +meteorshowersonline.com +acheterdesfollowersinstagram.com +metrotoons.com +meuhentai.com +mewe.com +mexc.com +mexcsensors.com +meyul.com +acheter-followers-instagram.com +mfg-inspector.com +mfxmedia.com +achat-followers-instagram.com +mgo-images.com +mgo.com +mgoon.com +mgstage.com +acgww.cyou +mh4u.org +mhhanman.xyz +mhqwe.xyz +mhradio.org +mhshosting.com +mi9cdn.com +acgwr.com +miamifintechfestival.com +miaomwu.com +miaopa.net +michaelanti.com +michaelmarketl.com +mickybells.com +microbit.org +acgvipss.com +microsoft-give.com +microsoft-int.com +microsoft-ppe.com +microsoft-sap-events.com +microsoft-sbs-domains.com +microsoft.com +microsoft.net +microsoft.red +microsoft365.com +microsoftaccountguard.com +microsoftadc.com +microsoftads.com +microsoftadvertising.com +microsoftadvertisingregionalawards.com +microsoftaffiliates.com +microsoftapp.net +microsoftazuresponsorships.com +microsoftcloud.com +microsoftcloudsummit.com +microsoftcloudworkshop.com +microsoftcommunitytraining.com +microsoftdiplomados.com +microsofteca.com +microsoftedge.com +microsoftgamestack.com +microsofthouse.com +microsofthouse.net +microsoftinternetsafety.net +microsoftiotcentral.com +microsoftiotinsiderlabs.com +microsoftlatamaitour.com +microsoftlatamholiday.com +microsoftlinc.com +microsoftmxfilantropia.com +microsoftnews.cc +microsoftnews.com +microsoftnews.net +microsoftnews.org +microsoftnewsforkids.com +microsoftnewsforkids.net +microsoftnewsforkids.org +microsoftnewskids.com +microsoftnewskids.net +microsoftnewskids.org +microsoftonline-p.com +microsoftonline.com +microsoftpartnercommunity.com +microsoftpartnersolutions.com +microsoftreactor.info +microsoftreactor.net +microsoftreactor.org +microsoftready.com +microsoftsilverlight.com +microsoftsilverlight.net +microsoftsilverlight.org +microsoftsiteselection.com +microsoftsqlserver.com +microsoftstart.com +microsoftstore.com +microsoftstream.com +microsoftteams.com +microsofttradein.com +microsofttranslator.com +microsoftuwp.com +microvpn.com +micstl.com +midatlanticbmwmotorcycles.com +middle-way.net +midentsolutions.com +midoushe.com +miexnoviadesnuda.com +acgnmanhua.com +mihr.com +mihua.org +acgkj.com +miitomo.com +miiverse.com +ysleft.com +mikesoltys.com +mikrotik.com +miktex.org +mikuexpo.com +acgfbw.com +milehighmedia.com +milfbundle.com +milfed.com +milffox.com +milfhunter.com +milflove.live +milfmaturesex.net +milfmovs.com +milfnut.com +milfporn.pro +milfpornonly.com +milfprime.com +milfs-gone-wild.com +milfs-now.com +milfslesbian.com +milfsover30.com +milfthreesomes.com +milftube.pro +milftugs.com +milfvr.com +milfzr.com +milkmanbook.com +millymarks.com +milofetch.com +milph.net +milsurps.com +mimei.store +mimi22.top +mimiai.net +mimivip.com +mimivv.com +minbrowser.org +mindgeek.com +mindmeld.com +mindrolling.org +minecraft.net +minecraftshop.com +mingdemedia.org +minghui-a.org +minghui-b.org +minghui-school.org +minghui.org +mingjinglishi.com +mingjingnews.com +mingjingtimes.com +mingky.org +mingkyaa.com +mingpao.com +mingpaocanada.com +mingpaomonthly.com +mingpaonews.com +mingpaony.com +mingpaosf.com +mingpaotor.com +mingpaovan.com +mings-fashion.com +mingshengbao.com +mingw.org +mingwatch.com +minhhue.net +acgfabu.com +mini-abudhabi.com +mini-bahrain.com +mini-bosnia.com +mini-clubs-international.com +mini-connected.com +mini-corporate-sales.com +mini-dubai.com +mini-e.com +mini-egypt.com +mini-georgia.com +mini-grouparchive.com +mini-jordan.com +mini-ksa.com +mini-kuwait.com +mini-lebanon.com +mini-me.com +mini-oman.com +mini-qatar.com +mini-srilanka.com +mini-stjohns.com +mini-tahiti.com +mini-vietnam.com +mini-windsor.com +mini.cc +ysleaf.com +mini.com +yslawn.com +miniargentina.com +minibrossard.com +minicaribbean.com +minidealer.com +minidealernet.com +minidowntown.com +minidrivingexperienceusa.com +minidurham.com +minie.com +miniforum.org +minifs.com +minigrandriver.com +minihalifax.com +minihk.com +miniitalianjob.com +minikelowna.com +minilangley.com +minilat.com +minilaval.com +minilondon.co +minimarkham.com +minimoncton.com +minimontroyal.com +minimotoringrewards.com +minimotoringschool.com +minimotorsport.com +mininanaimo.com +minioakville.com +miniofmonrovia.com +minipetfriendly.com +minirichmond.com +minisaskatoon.com +minisexdoll.com +miniso-au.com +miniso-bh.com +miniso-np.com +miniso-nz.com +miniso.co +miniso.com +minisoindia.com +minisojordan.com +minisokorea.com +minisothailand.com +minispace.com +minispygear.com +ministeagathe.com +ministrybooks.org +minitakesthestates.com +miniusa.com +miniusaservice.com +miniusatires.com +minivalueservice.com +minivaughanwest.com +minivictoria.com +minivilledequebec.com +miniwholesaleconnect.com +miniwindsor.com +miniworkshop.com +minnano-av.com +minneapolisbmw.com +minneapolisbmw.net +acgdv.com +minuporno.com +minzhuhua.net +minzhuzhanxian.com +minzhuzhongguo.org +miohentai.com +miraheze.org +mirailab.tech +miroguide.com +mirrorbooks.com +mirrorsedge.com +mirrorsedge.net +mirrorsedge2.com +mirrorsedge2d.com +missav.com +misshotgirls.com +mist.vip +mistresskym.com +acgdg.com +mit.net +mitbbs.com +mitbbsau.com +acgcf.com +mitnaka.com +mitpressjournals.org +acgbox.org +mixasiansex.com +mixero.com +mixmaturesex.com +mixpod.com +mixvintagesex.com +mixx.com +mizzmona.com +mjv-art.org +acg18.me +mk5000.com +mkt.com +mktdns.com +mkto-c0100.com +mktorest.com +mktroute.com +acevpn.com +aceros-de-hispania.com +mlcool.com +mlzs.work +acer.com +mm-cg.com +mm9841.cc +mm9c63ae.xyz +acer-group.com +mmaaxx.com +mmdnn.com +mmmca.com +mmonsterheadphones.net +mmtv.life +acebook.com +acebooik.com +mnewstv.com +accuweather.com +ysjail.com +moapi.site +moapi1.club +moapi1.online +mobatek.net +mobile01.com +mobilefacebook.com +mobileinternational.com +mobilemarketo.com +mobileporngames.com +mobilepornmovies.com +mobileview.page +mobilevrxxx.com +ysiron.com +mobypicture.com +mochajs.org +mocloudplus.com +modelmediaus.com +modeloswebcambogota.com +modelsfreecams.com +modeltv.com +modernchinastudies.org +modrinth.com +moeero-library.com +moeerolibrary.com +moefuns.co +moeimg.net +moemax.net +moez-m.com +mofaxiehui.com +mofos.com +mofosex.com +mofosnetwork.com +mog.com +mohu.club +mohu.rocks +mojang.com +mojim.com +molesports.com +molihua.org +mom-gfs.com +mom-sex-videos.com +mom50.com +ysinto.com +momentumms.com +momfucktube.com +momhomeporn.com +mommystoytime.com +momo5188.com +momon-ga.com +momoniji.com +moms-sex-videos.com +momsbangteens.com +momsboysmovies.net +momsexypics.com +momsfuckingboys.net +momsgiveass.com +momshardcoreporn.com +momsneversayno.com +momspornvideos.com +momsteachsex.com +momsteachsex.info +momsyoungboys.net +momtarts3d.com +momtube.club +monaitv.me +accountpaypal.org +monbeats2013.com +mondex.org +moneyhome.biz +moneyswift.online +moneywithfacebook.com +mongodb.com +mongodb.org +monitorchina.org +yshurt.com +yshour.com +ysholy.com +monitrix.net +mono-project.com +mono33.top +monocloud.me +monotype.com +monotypeimaging.com +monster-beats-by-dr-dre.com +monster-beats-headphones.com +monster.com +monsterbeats-cheap.com +monsterbeats-headphone.com +monsterbeats-onsale.com +monsterbeats-solo.com +monsterbeats-solo.net +monsterbeats365buy.com +monsterbeats8beatsbydre.com +monsterbeatsale.com +monsterbeatsalestore.com +monsterbeatsau.com +monsterbeatsbydrdre-nz.com +monsterbeatsbydrdre-usa.com +monsterbeatsbydrdrecanada.com +monsterbeatsbydrdrestudio.com +monsterbeatsbydre-nz.com +monsterbeatsbydre-usa.com +monsterbeatsbydre2015.com +monsterbeatsbydreaustraliacheap.com +monsterbeatsbydrebilligde.com +monsterbeatsbydrefactory.com +monsterbeatsbydrenew.com +monsterbeatsbydres.com +monsterbeatsbydreshop.com +monsterbeatscasques.com +monsterbeatscommunity.com +monsterbeatsdrdrecheap.com +monsterbeatsfactory.net +monsterbeatsfinland.com +monsterbeatsforsale.com +monsterbeatsheadphone.com +monsterbeatsheadphones.net +monsterbeatshere.com +monsterbeatsitaly.com +monsterbeatsmall.com +monsterbeatsnegozi.net +monsterbeatsok.com +monsterbeatsonlinestoreuk.com +monsterbeatspascher.net +monsterbeatsru.com +monsterbeatssales.com +monsterbeatssalg.com +monsterbeatsshops.net +monsterbeatsstore.com +monsterbeatssydneyaustralia.com +monsterbeatstang.com +monsterbeatstienda.com +monsterbeatstudio.com +monsterbydrebeat.com +monstercasquebeatspascher.net +monstercheapbeatss.com +monstercockland.com +monsterdrebeats-canada.net +monsterdrebeats-usa.com +monsterdrebeats-usa.net +monsterheadphone.net +monsterproduct.net +monstersbeatbydres.com +monstersdebea.com +monstersexporn.net +monstershopcheapbeats.net +accountpaypal.net +monthlyav.com +moodstocks.com +moodyz.com +moonbbs.com +moonbingo.com +moozporn.com +accountpaypal.com +morazzia.com +moreheadphones.com +morganclaypool.com +morningsun.org +mornporn.com +moroneta.com +morphcharts.com +mortein.com +morteincam.com +accountkit.com +mostpopularpornsites.com +motherless.com +motionpictureser.com +motiyun.com +motolia.com +motorshowblog.com +mottainai.info +mousebreaker.com +move-free.net +move.com +moveaws.com +movefreeoffers.com +movefreerewards.com +movefrees.com +movements.org +movenetworks.com +movetv.com +movidius.com +movidius.net +movie-erog.com +movie1000.xyz +moviefap.com +moviepost.com +moviesanywhere.com +moviesarena.com +moviesfree4u.xyz +moviesneek.com +account-paypal.org +mox.moe +moxing.mobi +moxing.news +moystoys.com +account-paypal.net +mozilla.com +mozilla.community +mozilla.net +mozilla.org +account-paypal.info +mp3buscador.com +mpettis.com +mpfinance.com +mpinews.com +mplstudios.com +mpnevolution.com +mpweekly.com +accim.org +mqxd.org +accessfacebookfromschool.com +mray.club +mrbasic.com +mrbdsm.com +mrbonus.com +mrchewsasianbeaver.com +mrcong.com +mrdeepfakes.com +mrface.com +mrlivecam.com +mrloli.com +acces-vod.com +mrpinks.com +mrporngeek.com +mrpornlive.com +accbusiness.com +mrskin.com +mrslove.com +mrssiren.com +mrtweet.com +acast.com +ms-studiosmedia.com +ms365surfaceoffer.com +ms4dre.com +msa-it.org +msads.net +msauth.net +mschallenge2018.com +academynetriders.com +msdn.com +msecnd.net +msedge.net +msflj.vip +msft.info +msft.net +msftauth.net +msftnet.org +msgamesresearch.com +msguancha.com +msinnovationchallenge.com +msn.com +msn.net +msnbc.com +msnewskids.com +msnewskids.net +msnewskids.org +msnkids.com +msocdn.com +msocsp.com +mspairlift.com +msropendata.com +msturing.org +msudalosti.com +msunlimitedcloudsummit.com +mswe1.org +yshole.com +mtao.fun +mthruf.com +yshill.com +ac-pocketcamp.com +absolutewhores.com +mtt.org +mtvnservices.com +absoluporn.com +mu6bce1c.xyz +mubi.com +muchohentai.com +muchomasporno.com +muchosucko.com +mucinex.com +mucinex.net +mucinexprofessional.com +mudfish.net +muji.com +muji.net +mujikorea.net +mulheresafoder.com +mullvad.net +mult34.com +aboutyourmini.com +multicurrencycashpassport.com +multiply.com +multiplydiversity.com +multipornfor.me +multiproxy.org +multiupload.com +multporn.net +mummysgold.com +muncloud.dog +muryouav.net +muscdn.com +musclegirlflix.com +mushroomtrack.com +musicade.net +musicbay.net +musickit.net +musixmatch.com +muslimvideo.com +muthead.com +aboutporno.net +aboutmcdonalds.com +muyzorras.com +muzi.com +muzi.net +aboutgfw.com +mvk.com +aboutfacebook.com +mwhentai.net +aboutamazon.com +yshigh.com +mx981.com +mxmcdn.net +about.me +my-enema.com +my-formosa.com +my-magazine.me +my-proxy.com +yshide.com +my03.com +my13la.com +my20dc.com +my20houston.com +my29tv.com +my3dhentai.com +my45.com +my9nj.com +myaccountglobalcash.com +myactimes.com +myamateurgirls.net +myamateurtv.com +myanmar-porn.com +myanniu.com +myappleid.com +myatos.net +myaudiocast.com +myavfun.com +myavok.com +myavsuper.com +myavxx.xyz +mybabehotz.com +mybeatsbydrestudio.com +mybeatsbydreuk.com +mybeatscheapbydre.com +mybestbuy.com +mybestbuyclaims.com +mybet.com +mybmw.com +myboylove.com +mybridgestoneeducation.com +mybukkakeporn.com +myca168.com +mycams.com +mycanadanow.com +mycardbenefits.com +mycartoonsexgames.com +mycdn.me +mychinamyhome.com +mychinanet.com +mychinanews.com +mychinese.news +myciscobenefits.com +myclitgames.com +mycnnews.com +mycomicsxxx.com +myconstructionworld.net +mycould.com +mydad.info +myddns.com +mydirectgroove.com +mydirectvchannels.com +mydirtyhobby.com +myeasytv.com +myebay.com +myeclipseide.com +myfappening.org +myfavoritearcade.com +myfbfans.com +myferrariheadphones.com +myfistingporn.com +myfonts.com +myfonts.net +myfoxatlanta.com +myfoxaustin.com +myfoxboston.com +myfoxcharlotte.com +myfoxchicago.com +myfoxdc.com +myfoxdetroit.com +myfoxdfw.com +myfoxhouston.com +myfoxhurricane.com +myfoxla.com +myfoxlosangeles.com +myfoxlubbock.com +myfoxmaine.com +myfoxny.com +myfoxorlando.com +myfoxphilly.com +myfoxphoenix.com +myfoxsanfran.com +myfoxtampa.com +myfoxtampabay.com +myfoxtwincities.com +myfoxzone.com +myfreeblack.com +myfreecams.com +myfreepaysite.com +myfreeporngames.com +myfreshnet.com +myftp.info +myftp.name +myfun.com +mygaysites.com +myhelpinglab.com +myhentaicomics.com +myhentaigallery.com +myhomemadesex.com +myhpsupport.com +myhulu.com +myicloud.net +myiphide.com +myipod.net +myjkwd.com +mykomica.org +mylcloud.net +mylf.com +mylftv.com +mylittlenieces.com +mylogiclab.com +mylust.com +mymasturbators.com +mymediarom.com +mymicrosoft.com +myminisexdoll.com +myminiso.com +mymmode.com +mymoe.moe +mymom.info +mymusclevideo.com +mynetav.net +mynetav.org +mynike.com +mynumber.org +myoctocat.com +myparagliding.com +mypearson.com +mypicture.info +mypikpak.com +mypop3.net +mypop3.org +mypopescu.com +mypornads.com +mypornadviser.com +mypornbookmarks.com +mypornfox.com +myporngay.com +mypornhere.com +myporno.photos +mypornolab.click +mypornstarbook.net +mypornvid.fun +mypornwap.fun +myq2.com +myqnapcloud.com +myreadingmanga.info +myrewardzone.com +myrimmingporn.com +myrz.com +mysdn.com +mysdn.info +mysdn.net +mysecondarydns.com +mysexgames.com +mysexygfs.com +myshopify.com +mysims.com +mysimsracing.com +mysinablog.com +mysinchew.com +mysocialworklab.com +myspace.com +myspacecdn.com +mysql.com +mystrikingly.com +mytalkbox.com +myteenwebcam.com +mythicentertainment.com +mythicentertainment.net +mythicgames.com +mytizi.com +mytokenapi.com +mytrannycams.com +mytving.com +mytvsuper.com +myvisaluxuryhotels.com +mywaytopay.info +mywaytopay.net +mywife.cc +mywifecuckold.com +mywww.biz +myxvids.com +myxxgirl.com +myyoungmomisnude.com +myyoungwifeisnude.com +myz.info +aboluowang.com +ablwang.com +mzed.com +mzstatic.com +n0vadesktop.com +n15zev3w.shop +n3ro.lol +n3ro.net +ysbed.com +ysbad.com +na-att-idns.net +ysav184.xyz +ysand.com +ysaim.com +naacoalition.org +naaktevrouwenporno.com +abigass.com +abema-tv.com +abellalist.com +naiadsystems.com +naijauncut.com +nailedhard.com +naitik.net +naizitv.top +naked-girls.me +naked.com +nakedamateurmilf.com +nakedasiansex.com +nakedgirlpic.com +nakedgirls.biz +nakedmodelsxxx.com +nakednews.com +ysage.com +nakido.com +nakuz.com +nalandabodhi.org +nalandawest.org +namemybeats.com +namethatporn.com +namethatpornad.com +namgyal.org +namgyalmonastery.org +namsisi.com +nan-net.com +nanonamad.com +nanyang.com +nanyangpost.com +nanzao.com +naoconto.com +naol.cc +napiszex.com +abebooks.com +nasty.singles +nastyvids.com +nat.moe +nataliefiore.com +natgeomaps.com +nationalawakening.org +nationalgeographic.com +nationalgeographicpartners.com +nationalinterest.org +nationalreview.com +nationsonline.org +abeatsbydrdre.com +nationwide.com +abclite.net +naturalvoices.com +nature.com +naturemag.org +naughty.com +naughtyamerica.com +naughtyblog.org +naughtyfootjobs.com +naughtygamesource.com +naughtyhentai.biz +naughtymachinima.com +naughtymag.com +naughtysophie.com +naughtytugs.com +naughtywomenpics.com +naver.com +naver.net +navercorp.com +naweeklytimes.com +abclider.com +nbabot.net +nbc.co +nbc.com +nbcnews.com +nbcolympics.com +nbcsports.com +nbcudigitaladops.com +nbcuni.com +nbcuniversal.com +nbtvpn.com +abchinese.com +nchrd.org +ncn.org +ndi.org +abcheadphones.com +nebay.net +neborder.com +abc.xyz +ned.org +needforspeed.com +needforspeedboost.com +needforspeeddriftkings.com +needforspeedeliminator.com +needforspeedlightning.com +needforspeedoverdrive.com +needforspeedproven.com +needforspeedredline.com +needforspeedshowdown.com +needforspeedstreetkings.com +needforspeedtakedown.com +needforspeedtherun.com +needforspeedtimeattack.com +needforspeedundergroundeast.com +needgayporn.com +negozimonsterbeats.com +negoziomonsterbeats.com +nejm.org +nekoslovakia.net +nekoxxx.com +ysact.com +nenitas.club +nentindo.net +neo-miracle.com +ypncdn.com +neowin.net +nepusoku.com +nerdnudes.com +nervanasys.com +nesaporn.com +nesaporn.mobi +nest.com +neswangy.net +net-fits.pro +netacad.com +netacad.net +netalert.me +abc.com +netarabic.com +abc-studios.com +netbirds.com +netcolony.com +netfapx.com +netflav.com +netflav1.com +abbywintersfree.com +netflix.com +netflix.net +netflixdnstest1.com +netflixdnstest10.com +netflixdnstest2.com +netflixdnstest3.com +netflixdnstest4.com +netflixdnstest5.com +netflixdnstest6.com +netflixdnstest7.com +netflixdnstest8.com +netflixdnstest9.com +netflixinvestor.com +netflixtechblog.com +netlify.app +netlify.com +netlifystatus.com +netme.cc +netpornsex.com +netpornsex.net +netsarang.com +netsneak.com +netsolssl.com +netsurf-browser.org +nettyinternet.com +netvideogirls.com +netvigator.com +network54.com +networkedblogs.com +networktunnel.net +neuerporno.com +neuralink.com +neurology.org +aavs.xyz +neverforget8964.org +nevex.com +new-3lunch.net +new-akiba.com +new-jero.net +new-redtube.com +new.day +new3dcomics.com +newbeatsblackfriday.com +newbemany.com +newbienudes.com +newbrazz.com +newcenturymc.com +newcenturynews.com +newchen.com +newdrediscount.com +neweconomyforum.com +newenergyfinance.com +newestbeatsbydre.com +newgrounds.com +newhampshirebmw.com +newhentai.org +newhighlandvision.com +aaplimg.com +newipnow.com +newisiknowledge.com +newlineporn.com +newlysprung.net +newmitbbs.com +newmonst1erbeatsto1re.com +newmonsterbeatsheadphones.com +newpppp.com +ypmate.com +newsamerica.com +newsancai.com +newschinacomment.org +newschristmasshopping.com +newscn.org +newscorp.com +newscorpaustralia.com +newsdh.com +newsensations.com +newsextv.com +newsexwap.com +newsexxxx.com +newsfeed.com +newsgawakaru.com +newsmax.com +newsmaxtv.com +newsnowfox.com +newspeak.cc +newssyndication.com +newstamago.com +newstapa.org +newstarnet.com +newstatesman.com +newsukadops.com +newsupermariobrosu.com +newsweek.com +newton.com +newxxx24.cc +newyorker.com +newyorktimes.com +nexcat.com +nexitally.com +nexitallysafe.com +nexitcore.com +nexon.com +nexpart.com +aanaan.com +next.com +nextapple.com +aamacau.com +nextechafrica.net +nextgenerationcenter.com +nextjs.org +nextmedia.com +nextmgz.com +nextstop.com +aalah.me +nexusmods.com +aadmv.com +nfjtyd.com +aacrjournals.org +nflhotsalejerseys.com +nflxext.com +nflximg.com +nflximg.net +nflxsearch.net +nflxso.net +nflxvideo.net +nfsc.global +nfscdict.com +nfscofficial.com +nfsworld.com +nftstorage.link +aabb1803.com +ngensis.com +ngeo.com +ngfiles.com +nginx.com +nginx.org +ngodupdongchung.com +nhentai.com +nhentai.net +nhentaihaven.com +nhentaihaven.org +aabb1802.com +aaapp.cyou +yoyoav.net +niceanimegames.com +nicesshop.net +nichepornsite.com +nichepornsites.com +nickscipio.com +aaagradeheadphones.com +nicolepeters.com +niconico.com +nighost.org +youyu.services +nights.fun +nijiclamp.com +nijidoujin.com +nijie.info +nijieronavi.com +nijifeti.com +nijigen-daiaru.com +nijinchu.com +nijioma.blog +aa1142.com +nike-air-max.com +nike-dunksb.com +nike-fr.com +nike-org.com +nike-uk.com +nike-us.com +nike-usa.com +nike.com +nike.host +nike.shop +nike.xn--hxt814e +nike0594.com +nike23.com +nikeadidas.com +nikeairhuarache.com +nikeairmax.com +nikeairmaxs.com +nikeairmaxshoes.com +nikeairrift.com +nikeasia.com +nikeaustralia.com +nikeaw77.com +nikeb.com +nikebbn.com +nikebetrue.com +nikebetterworld.com +nikebetterworld.info +nikebetterworld.net +nikebetterworld.org +nikebiz.info +nikebuy.com +nikeby.com +nikecdn.com +nikechosen.com +nikecloud.com +nikeclub.com +nikecompany.com +nikeconfluence.com +nikecraft.com +nikedawn.com +nikedunks.net +nikedunksshoes.com +nikeelite.com +nikefactorystore.com +nikefind.com +nikefirm.com +nikefoamposites.com +nikefoampositeshoes.com +nikefootballcleats.com +nikefootballgloves.com +nikefootballjersey.com +nikefoundation.org +nikefr.com +nikefrance.com +nikefree.com +nikefreeshoes.com +nikefuelband.com +nikegadgets.com +nikegenealogy.com +nikegrid.com +nikehelp.com +nikehightops.com +nikehyperdunk.com +nikeidshoes.com +nikeinc.com +nikeincchemistry.com +nikeinstock.com +nikeit.com +nikeitalia.com +nikeitaly.com +nikekd.com +nikekid.com +nikelink.com +nikeliuxiang.com +nikelives.com +nikelunarglide.com +nikemarketing.com +niken7.com +nikenews.com +nikeonlinestore.com +nikeoutletstore.com +nikeoutletstores.com +nikepioneer.com +nikeplus.com +nikeplus.org +nikepress.com +nikeprice.com +nikeproduct.com +nikepromax.com +nikeresponsibility.com +nikereuseashoe.com +nikerunner.com +nikerunningshoes.com +nikesb.com +nikesbdunks.net +nikeseason.com +nikeselling.com +nikesellorder.com +nikeshoemarket.com +nikeshoes-store.com +nikeshoes21.com +nikeshoes4u.com +nikeshoescity.com +nikeshoesgroup.com +nikeshoesinc.com +nikeshoesmarket.com +nikeshoesretro.com +nikeshoeswon.com +nikeshoponline.com +nikeshoxsale.com +nikesku.com +nikesnowboarding.com +nikesoccercleats.com +nikesportswear.com +nikestares.com +nikestore.com +nikestyles.com +nikeswim.com +niketaiwan.net +niketracking.com +niketradeweb.com +niketrainer.com +niketrainers.com +niketraining.com +nikeusa.com +nikewear.com +nikey.com +nikezoom.com +nikkan-gendai.com +nikkansports.com +nikke-de.com +nikke-en.com +nikke-fr.com +nikke-jp.com +nikke-kr.com +nikke-sea.com +nikkei.com +nikkei4946.com +aa1141.com +ninecommentaries.com +nineteentube.com +ninjacloak.com +ninjaproxy.ninja +ninpu.cyou +nintendium.com +nintendo-europe-sales.com +nintendo-europe.com +nintendo.com +nintendo.net +nintendo3ds.com +nintendodsi.com +nintendoeurope.com +nintendonetwork.net +nintendonyc.com +nintendostore.com +nintendoswitch.com +nintendoswitch.net +nintendoswitchtogether.com +nintendowii.com +ninth.biz +niosii.com +niosii.net +a7sex.com +a2z.com +nitter.cc +nitter.net +youxu.info +niu.moe +niuc2.com +niusnews.com +nivodz.com +nixos.org +niziero.info +njactb.org +njuice.com +nke6.com +a1av.xyz +nlfreevpn.com +nlsexfilmpjes.com +nlt-media.com +nmbmw.com +nmsl.website +a0pple.net +no-ip.org +nobelprize.org +nodejs.org +nodesource.com +noisullifb.com +a-teenz.com +nokiantyres.com +nokogiri.org +nokola.com +nomachine.com +nomulus.foo +nonktube.com +nonstopfap.com +noodlemagazine.com +noodlevpn.com +norbulingka.org +nordstrom.com +nordstromimage.com +nordstrommedia.com +nordstromrack.com +nordvpn.com +norsk.mobi +a-normal-day.com +9zipai.net +9xlove.xyz +notepad-plus-plus.org +notion-static.com +notion.com +notion.new +notion.site +nottinghampost.com +novelasia.com +noveltrove.com +novinhabucetuda.com +novinhagostosa10.com +novinhasdozapzap.com +novojoy.com +novostrong.com +now-ashare.com +now-tv.com +now.com +nowe.com +nowjav.com +nownews.com +nowtorrents.com +9xav.cc +noxinfluencer.com +noypf.com +9to5toys.com +npm.community +npmjs.com +npmjs.org +npnt.me +npr.org +npsboost.com +9to5terminal.com +9to5mac.com +nradio.me +9to5google.com +ns01.biz +ns01.info +ns02.biz +ns02.info +ns1.name +ns2.name +ns3.name +nsfwmemes.com +nsimg.net +ntc.party +ntd.com +ntdca.com +ntdimg.com +ntdtv-dc.com +ntdtv.com +ntdtv.org +ntdtvla.com +ntdvn.com +ntrfun.com +9hentaiz.com +9gag.com +nu-bay.com +nu36.vip +nubilefilms.com +nubiles-casting.com +nubiles-porn.com +nubiles.net +nubileset.com +nubilesunscripted.com +nuddess.com +nude-pics.org +nude-share.com +nudeandhairy.com +nudebeachpussy.com +nudecams.cam +nudecelebforum.com +nudedrawer.com +nudedxxx.com +nudeeroticteens.com +nudefiles.net +nudegfporn.com +nudekenya.com +nudelive.com +nudematurewomenpics.com +nudemilfporn.com +nudes7.com +nudespree.com +nudeteen.org +nudeteenboys.net +nudeteenladies.com +nudevietnam.com +nudevista.best +nudevista.club +nudevista.com +nudevista.fun +nudevista.link +nudevista.net +nudevista.vip +nudewifeporn.com +nudewomenpics.net +nudify.online +nudistbeachporn.com +nudistic.com +nudistlog.com +nudistsexvideos.com +nudistvoyeurbeach.com +nudity911.com +nudography.com +nuespournous.com +nuexpo.com +nuget.org +nugettest.org +nuita.net +nukemanga.com +nuki-dokoro.com +nukistream.com +nunuyy.cc +nurgo-software.com +nurofen.com +nurofen.net +nurofengel.com +nurumassage.net +nurxxx.mobi +nusatrip.com +nushemale.com +nutaku.com +nutaku.net +nutramigen.net +nutsvpn.work +nuuporn.com +nuuvem.com +nuvid.com +nuzcom.com +nvdst.com +nverxs.xyz +nvidia.com +nvidiaforhp.com +nvidiagrid.net +nvquan.org +nvtongzhisheng.org +nwtca.org +nwxs8.com +nxta.org +youwuss.com +nyaa.net +nyansa.com +nybooks.com +9cdn.net +nylon-angel.com +nylonstockingsonline.com +nypost.com +nypost.help +nypostreprints.com +nyt.com +nyt.net +nytchina.com +nytcn.me +nytco.com +nytimes.com +nytimg.com +nytstyle.com +9ccms.me +nzchinese.com +o365weve-dev.com +o365weve-ppe.com +o365weve.com +oaistatic.com +oanda.com +oanencore.com +oann.com +oath.cloud +oath.com +oauthz.com +9cao9.com +observable.net +observechina.net +obsrvbl.com +obutsumania.com +obutu.com +ocaspro.com +ocbmwdealers.com +occupytiananmen.com +ocreampies.com +ocry.com +ocsp-certum.com +ocsp-responder.com +october-review.org +oculus-china.com +oculus.com +oculus2014.com +oculus3d.com +oculusblog.com +oculusbrand.com +oculuscasino.net +oculuscdn.com +oculusconnect.com +oculusdiving.com +oculusforbusiness.com +oculusrift.com +oculusvr.com +odysee.com +oecd-ilibrary.org +oed.com +oex.com +9cache.com +offbeatchina.com +offerairjordanlebron.com +9bis.net +office.com +office.net +office365.com +office365love.com +office365tw.com +officeoftibet.com +officialbeatsbydreshop.com +officialbeatsbydrestore.com +officialdrdre.com +officialheadphone.com +offrezdesipods.com +ofile.org +ogameblog.com +ogaoga.org +ogate.org +ogp.me +ohentai.org +ohgratisporrfilm.com +ohmyrss.com +ohpornocasero.com +ohpornovideo.com +ohsesso.com +ohsexfilm.com +ohsexotube.com +ohyeah1080.com +oiktv.com +oiobbs.com +oizoblog.com +okaapps.com +okayfreedom.com +okex.com +9bis.com +okkisokuho.com +okx.com +99thz.com +99thz.cc +old-cat.net +youwin.com +youversion.com +older-women-movies.com +older-women-porn.com +older.tube +oldhornymilfs.com +oldje.com +99re.com +olehd.com +olehdtv.com +olelive.com +olemovienews.com +olevod.com +olevodtv.com +oli-school.com +99quse.cc +olumpo.com +olympicwatch.org +99cn.info +99btgc01.com +omafotze.com +omaps.app +omct.org +991.com +omekinteractive.com +omg.blog +omghk.com +omgili.com +omgteens.com +omniroot.com +omnitalk.com +omnitalk.org +omniture.com +omobi.cc +omoplanet.com +omorashi.org +omscr.com +omtrdc.net +on.cc +on.here +on2.com +onahodouga.com +onani-daisuki.com +onapp.com +onbeatsbydresale.com +youtubemobilesupport.com +one889.app +oneapi.com +onedinesfree.com +onedrive.co +onedrive.com +onedrive.net +onedrive.org +onedumb.com +onefifteen.net +onefifteen.org +onejapanese.com +onejav.com +onekey-asset.com +onekeycn.com +onenote.com +onenote.net +onepornlist.com +onesiterip.com +oneworldmanystories.com +onindiansex.com +oninstagram.com +onion.city +onionshare.org +online-deals.net +online-instagram.com +youtubekids.com +onlineapplestore.com +onlinecha.com +onlinefucktube.com +onlinegeeksquad.com +onlineinstagram.com +onlinemonsterbeatsonsale.com +onlineporn-vids.com +onlineteenhub.com +onlinexxxgames.com +onlineyoutube.com +only-xxx-porn.com +only-xxx.com +only3x.com +onlyams.com +onlycartoonsex.com +onlydudes.com +onlyfanspw.com +onlyfreelatinaporn.com +onlygayvideo.com +onlyhdporn.com +onlyhentaistuff.com +onlyhomemadeanal.com +onlyincestporn.com +onlyindianporn2.com +onlyiphone5case.com +onlyleaks.me +onlynudes.org +onlysiterip.com +onlytweets.com +onmanorama.com +onmoon.com +onmoon.net +onmypc.biz +onmypc.info +onmypc.net +onmypc.org +onsalekey.com +onsaletrend.com +onstream.cc +onthehunt.com +ontrac.com +onxxxtube.com +onxxxvideo.com +97dounai.top +ooni.org +oopsforum.com +op7979.com +978.life +openai.com +openallweb.com +openamt.com +openapiplatform.com +openapiservice.com +opencollective.com +opencreate.org +opendemocracy.net +opendn.xyz +opendroneid.org +opengraphprotocol.com +opengraphprotocol.org +opengw.net +openid.net +openjsf.org +openleaks.org +openlibrary.org +openmaps.org +openmidas.com +openresty.org +opensource.guide +opensourceinsight.dev +opensourceinsights.dev +openssl.org +openstreetmap.com +openstreetmap.net +openstreetmap.org +openstreetmaps.org +opensuse.org +opentech.fund +opentgc.com +opentranslatorstothings.org +openvinotoolkit.org +openvpn.net +openvpn.org +openweathermap.org +openwebster.com +openwrt.org +opera.com +opinionjournal.com +youtubego.com +oppai-doga.info +oppainorakuen.com +optanedifference.com +opte.org +optica.org +opticsforthecloud.net +optimumssl.com +opus-gaming.com +9550.fun +oracle.com +oraclecloud.com +oraclefoundation.org +oracleimg.com +941tube.com +oranum.com +orbitera.com +oreilly.com +oreilly.review +oreillystatic.com +oreno3d.com +organharvestinvestigation.net +organiccrap.com +organicmaps.app +orgasm.com +orgasmlist.com +orgfree.com +orgypornonly.com +orgyxxxhub.com +orient-doll.com +orientalasianporn.com +92ccav.com +origin.com +originalhulu.com +originalindianporn.com +928.plus +orithegame.com +orlandohurricane.com +orsm.net +orzistic.org +orzqwq.com +922tp.com +osakamotion.net +osapublishing.org +osdn.net +osfoora.com +osiri-suki-club.com +osm.org +osmfoundation.org +ospray.net +ospray.org +youtubegaming.com +youtubefanfest.com +youtubeeducation.com +youtubecn.com +youtubecisco.com +youtube.soy +youtube.me +youtube.com +youtube.co +youtube-nocookie.com +1000giri.net +youtrannytube.com +youthnetradio.org +youthforfreechina.org +youskbe.com +otaku-168.com +otaku18a.info +otaku55.xyz +otakuboo.com +otbm.com +otcbtc.com +otnd.org +otokonokoland.com +921bb.com +otzo.com +oudoll.com +oup.com +ouplaw.com +ourdearamy.com +ourhobby.com +ouroath.com +oursexgames.com +ourshdtv.com +ourshemales.com +oursogo.com +oursweb.net +outdoorpublicsex.com +outingsapp.com +outletbeatsshop.com +outletnike.com +outlook.com +over18arcade.com +overapple.com +overdaily.org +overleaf.com +overplay.net +youshun12.com +overthumbs.com +920share.com +ovid.com +ovpn.com +owltail.com +oxfordaasc.com +oxfordartonline.com +oxfordbibliographies.com +oxfordclinicalpsych.com +oxforddnb.com +oxfordfirstsource.com +oxfordhandbooks.com +oxfordlawtrove.com +oxfordmedicine.com +oxfordmusiconline.com +oxfordpoliticstrove.com +oxfordre.com +oxfordreference.com +oxfordscholarlyeditions.com +oxfordscholarship.com +oxfordwesternmusic.com +oxlife.co +oxyporn.com +oyax.com +oyeloca.com +oyghan.com +ozchinese.com +ozeex.com +ozodi.org +ozodlik.org +ozvoice.org +ozxw.com +ozyoyo.com +91vps.club +pa9pal.com +paaypal.com +pachosting.com +pacifickitchenandhome.com +pacificpoker.com +packagist.org +packetix.net +pacloudflare.com +pacopacomama.com +padmanet.com +paerosnen.club +page.link +page2rss.com +page3.com +pagecdn.com +pages.dev +pagespeedmobilizer.com +pageview.mobi +pagodabox.com +pahabicilemezsurprizler.com +paheal.net +paidpornguide.com +paidpornsites.com +paily.net +paily.org +painfulpussytortures.com +painnovel.com +paipal.com +paipancon.com +paisapay.cc +paisapay.info +pakistanporntube.net +palacemoon.com +palcomix.com +paldengyal.com +palemoon.org +palestineremix.com +pali.ltd +paljorpublications.com +paltalk.com +91sew.xyz +91sesex.xyz +panasonic.com +pandamovies.pw +pandanet-igs.com +pandapow.co +pandapow.net +pandavpn-jp.com +pandavpnpro.com +pandora.com +91se.fun +pankwire.com +panluan.net +panoramio.com +pantswalker.net +pao-pao.net +paofu.cloud +paofuyun.me +papalah.com +paradisehill.cc +paradisehotelquizfox.com +paradisepoker.com +paragon.com +paramount.com +paramountplus.com +parastorage.com +pardot.com +91rb.net +park-now.com +parkansky.com +parkinfo.com +parler.com +parse.com +parsevideo.com +parstream.com +parstream.net +parstream.org +partycasino.com +partylikeits1986.org +partypoker.com +pascherbeatsmonster.com +pashtovoa.com +pasionmujeres.com +paskoocheh.com +passion-hd.com +passion.com +passport.net +pastebin.com +pastie.org +91rb.com +91quanji.com +patentgold.net +patenttruth.org +patreon.com +patreoncommunity.com +patreonusercontent.com +paulsimon-music.com +pavpal.com +pawoo.net +paxful.com +paxlicense.org +paydiant.com +paygonline.com +payhulu.com +paylike.com +paypa1.com +paypa1.org +paypaal.com +paypal-activate.com +paypal-activate.info +paypal-activate.org +paypal-apac.com +paypal-apps.com +paypal-biz.com +paypal-brandcentral.com +paypal-business.com +paypal-business.net +paypal-business.org +paypal-cardcash.com +paypal-cash.com +paypal-center.com +paypal-center.info +paypal-center.net +paypal-center.org +paypal-communication.com +paypal-communications.com +paypal-communications.net +paypal-community.com +paypal-community.net +paypal-comunidad.com +paypal-corp.com +paypal-database.com +paypal-donations.com +paypal-dynamic.com +paypal-engineering.com +paypal-europe.com +paypal-excelinvoicing.com +paypal-exchanges.com +paypal-forward.com +paypal-galactic.com +paypal-gift.com +paypal-gifts.com +paypal-gpplus.com +paypal-here.com +paypal-hrsystem.com +paypal-innovationlab.com +paypal-integration.com +paypal-japan.com +paypal-knowledge.com +paypal-labs.com +paypal-latam.com +paypal-learning.com +paypal-login.com +paypal-login.info +paypal-login.org +paypal-luxury.com +paypal-mainstreet.net +paypal-marketing.com +paypal-media.com +paypal-merchantloyalty.com +paypal-mobilemoney.com +paypal-network.org +paypal-notice.com +paypal-notify.com +paypal-online.info +paypal-online.net +paypal-online.org +paypal-optimizer.com +paypal-pages.com +paypal-photocard.com +paypal-plaza.com +paypal-portal.com +paypal-prepagata.com +paypal-prepagata.net +paypal-prepaid.com +paypal-profile.com +paypal-proserv.com +paypal-qrshopping.org +paypal-recargacelular.com +paypal-redeem.com +paypal-referral.com +paypal-retail.com +paypal-scoop.com +paypal-search.com +paypal-secure.net +paypal-secure.org +paypal-security.net +paypal-security.org +paypal-service.org +paypal-signin.com +paypal-special.com +paypal-specialoffers.com +paypal-sptam.com +paypal-status.com +paypal-support.com +paypal-survey.com +paypal-survey.org +paypal-team.com +paypal-viewpoints.net +paypal.com +paypal.info +paypal.me +paypalbeacon.com +paypalbenefits.com +paypalbrasil.com +paypalcommunity.com +paypalcommunity.net +paypalcommunity.org +paypalcorp.com +paypalcredit.com +paypalcreditcard.com +paypalgivingfund.org +paypalhere.com +paypalhere.info +paypalhere.net +paypalhere.org +paypali.net +paypalinc.com +paypalindia.com +paypalinsuranceservices.org +paypall.com +paypallabs.com +paypalme.com +paypalnet.net +paypalnet.org +paypalnetwork.info +paypalnetwork.net +paypalnetwork.org +paypalobjects.com +paypalonline.net +paypalonline.org +paypalprepagata.com +paypalprepagata.net +paypalservice.com +paypalshopping.com +paypalshopping.net +paypalsurvey.com +paypalx.com +paypaly.com +paypass.net +payppal.com +payserve.com +paysitesreviews.net +91qk41rf.com +payypal.com +pbabes.com +pbs.org +pbwiki.com +pbworks.com +pbxes.com +pbxes.org +pc.com +pcanywhere.net +91porny.com +pccw.com +pccwglobal.com +pccwsolutions.com +pcij.org +pcre.org +pctlwm.com +pdetails.com +pdf.new +pdncommunity.com +pdproxy.com +pdxbmw.com +91porn.work +peacefire.org +peacehall.com +peach-cherry.com +peachy18.com +peachyforum.com +peacocktv.com +pearlher.org +pearson-anaya.com +pearson-intl.com +pearson.com +pearsonactivelearn.com +pearsonassessments.com +pearsoncmg.com +pearsoncred.com +pearsoned.com +pearsoneducacion.net +pearsoneducationbooks.com +pearsonelt.com +pearsonenespanol.com +pearsonhighered.com +pearsononlineacademy.com +pearsonvue.com +pearsonvue.net +peeasian.com +peekvids.com +peepholecam.com +peerj.com +peing.net +pejyyah.com +pekingduck.org +pelvicexam.info +penchinese.com +penchinese.net +pengyulong.com +penisbot.com +pensions-expert.com +penthouse.com +pentium.com +pentium.net +peoplebookcafe.com +peopledreamfunding.com +peopo.org +perfect-privacy.com +perfectgirls.net +perfectgonzo.com +perfectjizz.com +perfectkickz.net +perfectnaked.com +perfectsexnow.com +perfectshemales.com +perfecttitspics.com +perl.org +persagg.com +persecutionblog.com +persianepochtimes.com +91porn.party +persiankitty.com +person.com +personaltrainermath.com +personeelsland.com +pervclips.com +perverttube.com +petardas.com +petite.one +petiteamateurteen.com +petiteballerinasfucked.com +petitehdporn.com +91porn.com +91porn.best +91oo.xyz +pgyy67.top +91moxiong.com +phantomjs.org +phapluan.org +phayul.com +pheonix.money +philborges.com +91md.me +philly.com +phimsex47.club +phimsexhentai.me +phimsexkhongche.cyou +phimsexnhanh.club +phmsociety.org +phncdn.com +photo-image.monster +photodharma.net +photofocus.com +photolia.net +photonicssociety.org +photos18.com +photoshop.com +php.net +phprcdn.com +phun.org +phuquocservices.com +phxbmw.com +physicalexam.info +physiology.org +91jinman.com +piapro.net +picacg2022.com +picacgp.com +picacgy.com +picacn.xyz +picacomic.com +picacomic.xyz +picacomiccn.com +picasa.com +picasaweb.com +picasaweb.net +picasaweb.org +pichunter.com +picidae.net +pickinguppussy.com +picknicekicks.net +pickshoesclothes.com +picnik.com +picpost.com +picsee.co +picsee.pro +91gay.me +pictoa.com +pictocum.com +picturedip.com +picturesocial.com +pieceofplastic.com +pifpafarabia.com +pigav.com +pikabu.monster +pikpak.me +pikpakdrive.com +pillbeatsblackfridaysale.com +pin-cong.com +pin6.com +pincong.rocks +pinduck.com +pinflix.com +pingguotv.xyz +pingxiangpuer.com +pinimg.com +pinkcore.com +pinkcore.net +pinkdino.com +pinkporno.com +pinkrod.com +pinksporn.com +pinkteentube.net +pinkvelvetvault.com +pinkworld.com +pinoy-n.com +pinterest.co +pinterest.com +pinterest.engineering +pinterest.info +pinterest.net +pinterestmail.com +pintool.com +pinyinxiang.com +91fans.org +yousendit.com +91dy.club +piposay.com +piraattilahti.org +piratecams.com +pirates-forum.org +piring.com +pirouvr.com +pise.pw +91cy.app +pittpatt.com +pivotalinitiative.com +piwheels.org +pixanalytics.com +pixapp.net +pixate.com +pixelqi.com +pixfs.net +pixiv.me +pixiv.net +pixiv.org +pixnet.cc +pixnet.net +pixnet.pro +pixtronix.com +pjgirls.com +91avfuli.com +pk.com +908taiwan.org +placemix.com +placesdocs.com +planetminecraft.com +planetsuzy.org +plantsvszombies2.com +platinumlinks.org +play4free.com +playapex.com +playartifact.com +playbar.biz +playboy.com +playboyplus.com +playbydurex.com +playforceone.com +playhearthstone.com +playmation.com +playmeow.com +playnintendo.com +playno1.com +playoverwatch.com +playparagon.com +playpcesor.com +playporngame.com +playporngames.com +playpornogames.com +playsexygame.com +playshowtv.com +9001700.com +playstation.com +playstation.net +playvalorant.com +playvids.com +playwarcraft3.com +playyoungtube.com +pleasefuck.org +pleasurebabe.com +pleasuregirl.net +pleasuremore.com +plexvpn.pro +plos.org +plug.game +plumperpass.com +plunder.com +plurk.com +plus.codes +plus28.com +plusbb.com +plusone8.com +plusporn.net +plutotv.net +8z1.net +pm.me +pmatehunter.com +pmates.com +8xxx.net +pnas.org +8thstreetlatinas.com +po2b.com +pobieramy.top +pobl-content.com +pocketbiketrader.com +pocketcasts.com +podbean.com +podcast.co +podictionary.com +poe.com +poecdn.net +pogo.com +pogobeta.com +8teenxxx.com +poi.moe +poisontube.com +pojiefuli20033.xyz +pojiefuli9113.xyz +pokedex3d.com +pokemon-moon.com +pokemon-sun.com +pokemon-sunmoon.com +pokemon-unitepgame.com +pokemon.com +pokemonbank.com +pokemonblackwhite.com +pokemonbw.com +pokemonchampionships.com +pokemongoldsilver.com +pokemonhome.com +pokemonletsgoeevee.com +pokemonletsgopikachu.com +pokemonmysterydungeon.com +pokemonpicross.com +pokemonplatinum.com +pokemonrubysapphire.com +pokemonsunmoon.com +pokemonswordshield.com +pokemonultrasunmoon.com +pokemonvgc.com +pokemonwifi.net +8muses.com +pokerstars.com +pokerstars.net +politicalchina.org +politicalconsultation.org +politiscales.net +8kpornvids.com +poloniex.com +polygon.com +polymer-project.org +polymerhk.com +polymerproject.org +ponyanimalsex.com +poofetish.com +poolin.com +poop-pee.online +poopee-puke.com +poopeegirls.com +popcap.com +popporn-world.com +popxi.click +popyard.com +popyard.org +porcore.com +poringa.net +porkahd.co +porkbun.com +porm.club +8kcosplay.com +porn-bokep.com +porn-comic.com +porn-discounts.com +porn-gratis.info +porn-images-xxx.com +porn-list.site +porn-portal.com +porn-sex-video.me +porn-star.com +porn.biz +porn.com +porn1videos.com +porn2.com +porn2012.com +porn2018.com +porn300.com +porn300.online +porn34.me +porn3dgalleries.com +porn4days.cc +porn4fap.com +porn5.com +porn555.com +porn5f.com +porn62.com +porn7.net +porn87.com +porn91.org +porn93.cc +pornachi.com +pornacho.com +pornadoo.com +pornaf.com +pornaffected.com +pornandxxxvideos.com +pornaroma.com +pornav.co +pornaxo.com +pornbase.org +pornbest.org +pornbit.cc +pornbozz.com +pornbraze.com +pornbrb.com +pornburger.com +porncana.com +porncoil.com +porncomics.com +porncomics.me +porncomixonline.net +porncore.net +porncoven.com +porncrash.com +porndabster.com +porndeals.com +porndeepfake.net +porndex.com +porndiamond.com +porndig.com +porndigger.me +porndiscount.org +porndiscounts.com +porndish.com +porndisk.com +pornditos.com +porndoe.com +porndoepremium.com +porndork.com +porndr.com +porndroids.com +porndude2.com +porndudecasting.com +pornelephant.com +pornenix.com +pornerbros.com +pornexpress.net +pornez.net +pornfactory.info +pornfhd.com +pornfidelity.com +pornfind.org +pornfinder.biz +pornflip.com +pornfoolery.com +pornfuck.net +pornfuror.com +porngames.club +porngames.com +porngames.games +porngameshub.com +porngamesverse.com +porngeek.com +porngem.com +porngladiator.com +porngo.com +porngo.tube +yourxxxvideos.pro +porngrabbz.com +porngub.com +pornguide.blog +pornguz.com +pornhail.com +pornhat.com +pornhat.one +pornhd.com +pornhd8k.net +pornhdfuck.com +pornheed.com +pornheli.com +pornhits.com +pornhoho.com +pornhost.com +pornhub-deutsch.info +pornhub-deutsch.net +pornhub-german.com +pornhub-sexfilme.net +pornhub.com +pornhub.org +pornhub00.com +pornhubapparel.com +pornhubdeutsch.net +pornhubpremium.com +pornhubs.video +pornhubselect.com +pornhun.xyz +pornhutdeutsch.com +pornhuub.xyz +pornicom.com +pornimg.xyz +porniq.com +pornirani.com +pornjam.com +pornjav.org +pornjizz.co +pornjk.com +pornkai.com +pornkind.net +pornking.fun +pornkino.cc +pornkro.com +pornktube.com +pornky.com +pornlaundry.com +pornlegendsclub.com +pornlist18.com +pornlistdude.com +pornloser.com +pornlulu.com +pornluxme.com +pornma.com +pornmadeathome.com +pornmagnet.org +pornmaki.com +pornmaster.fun +pornmate.com +pornmaturetube.com +pornmd.com +pornmegaload.com +pornmemo.com +pornmm.net +pornmonde.com +pornmovies2.me +pornmoviescave.com +pornmz.com +pornmz.net +pornnetworkdeals.com +pornnut.com +porno-erotica.com +porno365.net +porno365.website +porno49.com +porno800.com +pornoaid.com +pornoamateurlatino.net +pornobae.com +pornobengala.com +pornoboard.net +pornoboliviaxxx.com +pornobox.net +pornobrasil.com +pornobrasil.org +pornobrasileiro.xyz +pornobuzz.net +pornocarioca.com +pornocaserotube.com +pornocomic.net +pornodanke.com +pornodebolivia.net +pornodoido.com +pornoecuadorxxx.com +pornoelena.net +pornofilmlist.com +pornofint.com +pornofrog.com +pornogayphy.com +pornogids.net +pornogramxxx.com +pornogrund.com +pornoh.info +pornohd.blue +pornohd.plus +pornohut.info +pornohutdeutsch.net +pornoid.com +pornoincreible.com +pornoirado.com +pornoisy.com +pornoitaliano.com +pornojefe.com +pornojux.com +pornoko.net +pornokrol.com +pornolab.net +pornolaba.mobi +pornomasse.com +pornomineiro.com +pornomovies.mobi +pornone.com +pornoorzel.com +pornopantry.com +pornoreino.com +pornorips.com +pornos.live +pornoscanner.com +pornosex.cam +pornosfilmes.com +pornoslon.me +pornosphere.com +pornotime.net +pornotree.com +pornotron.net +pornov1080.name +pornovenezolanox.com +pornovideosfree.net +pornovideoshub.com +pornovideow.com +pornoweb.win +pornoxo.com +pornpair.com +pornpander.com +pornpaw.com +pornper.com +pornpics.com +pornpost.net +pornpros.com +pornprosnetwork.com +pornproxy.app +pornqd.com +pornrabbit.com +pornrapidshare.com +pornreactor.cc +pornrips.cc +pornrox.com +pornscat.org +pornscum.com +pornsearchengine.com +pornsexer.com +pornshare.biz +pornsharing.com +pornsites.com +pornsitesnow.com +pornsocket.com +pornsoldiers.com +pornsos.com +pornspark.com +pornstarbyface.com +pornstarclub.com +pornstripgames.com +porntea.com +pornteen123.com +porntitan.com +porntn.com +porntop.com +porntoplinks.com +porntrex.com +porntry.com +porntsunami.com +porntube.com +porntubenews.com +porntubent.com +porntv.com +porntvblog.com +pornultras.com +pornv.org +pornve.com +pornvibe.org +pornvideobb.com +pornvideotop.com +pornvideotube.online +pornvidhd.club +pornvisit.com +pornwatchers.com +pornwebmasters.com +pornwhite.com +pornwhitelist.com +pornxnxxmovies.com +pornxp.com +pornxp.net +pornxp.org +pornxs.com +pornxvideos.win +pornxxx.bid +pornxxxmovies.cc +pornxxxplace.com +pornxxxweb.com +pornyeah.com +pornyteen.com +pornzog.com +pornzone.com +porstoporno.site +port25.biz +porzo.com +poshtestgallery.com +positivessl.com +poskotanews.com +post01.com +post76.com +post852.com +postadult.com +postgresql.org +postimages.org +postimg.cc +postimg.org +postini.com +potvpn.com +povpornonly.com +povr.com +power.com +powerapple.com +powerappscdn.net +powerautomate.com +powerbeats2wireless.com +powerbeatsbydrdre.com +powerbeatsbydre.com +powerbi.com +powercx.com +poweredbyintel.com +powerofresolve.com +powerphoto.org +powershellgallery.com +powersunitedvr.com +pp-soc.com +pp6.info +ppaypal.com +ppe.lawyer +pplah.com +pplusstatic.com +ppp91.cc +pppds.com +8964museum.com +practicalbusinessskills.com +8949.voto +89.com +prayforchina.net +pre-bmwgroup.jobs +predictivetechnologies.com +premeforwindows7.com +premiumbooty.com +premiumhd.net +premiumpornlist.com +premobay.com +premproxy.com +prepsure.com +presentationzen.com +press.vin +prestige-av.com +pretty-ass.xyz +prettynubiles.com +prettyvirgin.com +priceless.com +priceless.org +pricelessafrica.com +pricelessarabia.com +pricelessaruba.com +pricelessbeijing.com +pricelesshongkong.com +pricelesshonolulu.com +pricelessmarketingengine.com +pricelesspick.com +pricelesssantiago.com +pricelesssurprises.com +pricelesssydney.com +pricelesstv.com +pridetube.com +prime-video.com +primecurves.com +primeday.info +primeindianporn.com +primematures.com +primemomsex.com +primepornlist.com +primevideo.cc +primevideo.com +primevideo.info +primevideo.org +princesscum.com +printeron.com +printersetupsupport.com +printspots.com +printspots.net +prism-break.org +prisoneralert.com +pritunl.com +privacysandbox.com +privacysimplified.com +private.com +privatebrowsingmyths.com +privatecasting-x.com +privateclassics.com +privateinternetaccess.com +privatemarketplaces.net +privatepaste.com +privatetunnel.com +privatevoyeurvideos.com +privatevpn.com +privoxy.org +procopytips.com +proctoscopeexam.com +prodrive-japan.com +profreeporno.com +yourwifemymeat.com +project-syndicate.org +projectapex.com +projectara.com +projectbaseline.com +projecteuclid.org +projectjav.com +projectmurphy.net +projectsangam.com +projectvoyeur.com +promonsterbeatsbydre.com +pron.guru +propertysex.com +proporn.com +proptiger.com +proquest.com +prostate-exam-info.com +prostoporno.net +prostores.com +prostudiobeatscybersale.com +prothots.com +proton.me +protondb.com +protonmail.com +protonstatus.com +protonvpn.com +provideocoalition.com +provpnaccounts.com +proxfree.com +proxifier.com +proxomitron.info +proxpn.com +proxyadult.org +proxydns.com +proxypy.net +proxyrarbg.org +proxyroad.com +proxytunnel.net +proyectoclubes.com +prozz.net +prpops.com +prts.plus +89-64.org +88square.com +88kkn.com +psblog.name +pscdn.co +pshvpn.com +yourvoyeurvideos.com +psiphon3.com +psiphontoday.com +pstatic.net +pstorage.space +psyccareers.com +88gals.com +ptapjmp.com +ptt.cc +ptt2.cc +ptt3.cc +pttgame.com +pttvan.org +ptzwx.com +pu82.vip +public-sex-porn.com +public-trust.com +publicagentxxx.com +publichealthdepartment.info +publicpornvideo.com +publicsexhub.com +publishproxy.com +pubmatic.com +puffinbrowser.com +puffstore.com +pugetsoundbmw.com +pugetsoundmini.com +pugpig-dev.com +pugpig-stage.com +pugpig.com +pullfolio.com +pullstring.net +pulsebrowser.app +punishbang.com +punishworld.com +punyu.com +pure18.com +pureapk.com +pureconcepts.net +pureinsight.org +purelov5.com +purelyceleb.com +purenudism.com +purepdf.com +puresexmovies.com +puretaboo.com +purevpn.com +purextc.com +puripuriunkomura.com +purplelotus.org +pursuestar.com +pushchinawall.com +pussy-pics.net +pussy3dporn.com +pussyboy.net +pussymomsex.com +pussyporntubes.com +pussysexgames.com +pussyshine.info +pussyspace.com +pussyspace.net +putihome.org +putinho.net +putlocker.com +putty.org +puuko.com +pvp.net +pvue1.com +pvue2.com +pvzgw2.com +pvzheroes.com +pwabuilder.com +888poker.com +pwmnet.com +pwned.com +pwnedpasswords.com +pximg.net +888.com +pycon.org +pyhapp.com +pypi.org +pypl.com +pypl.info +pypl.net +pyrobot.org +python.com +python.org +pythonhackers.com +pythonhosted.org +pytorch.org +q13.com +q13fox.com +881903.com +yourupskirt.com +yourtrap.com +yourspeculumexam.com +qanote.com +qatarescortsvip.com +qckprn.com +qctconnect.com +qdiehzz7.me +qdmomentum.com +yoursigmoidoscopy.com +yourprivatevpn.com +yourporngod.com +qhigh.com +qi-gong.me +qiandao.today +qiangwaikan.com +qiangyou.org +qienkuen.org +qinav.com +qingenporn.net +qingse.one +qkjuyet.com +qkshare.com +qmap.pub +qmov.com +qmov.net +qmttqg3k.me +qnap.com +qombol.com +qooqlevideo.com +qoos.com +qorno.com +qpoe.com +qprize.com +yourporndump.com +qq.design +qqgamedesign.com +qstatus.com +qt-project.org +8664av.com +qtweeter.com +qualcomm-email.com +qualcomm.com +qualcommhalo.com +qualcommlabs.com +qualcommmea.com +qualcommretail.com +qualcommventures.com +qualphone.com +yourphysicalexam.com +yourpelvicultrasound.com +yourpelvicexam.com +yourmonsterbeats.com +yourmomsgotbigtits.com +yourmomlovesanal.com +quanben-xiaoshuo.com +quannengshen.org +quantil.com +quantumbooter.net +quatrowireless.com +85tube.com +85st.com +questvisual.com +quicinc.com +quickiepage.com +quickoffice.com +quicktake.video +quicktime.cc +quicktime.com +quicktime.net +quiksee.com +quip-cdn.com +quip.com +quipelements.com +quitccp.net +quitccp.org +quiz.directory +qumingwz.com +quora.com +quoracdn.net +quotable.com +quovadisglobal.com +quran.com +quranexplorer.com +qusi8.net +qutebrowser.org +85cc.net +qvodzy.org +qwant.com +qxbbs.org +qz.com +r-project.org +r10s.com +yourlust.com +r18.com +r18av.com +r18lu.com +r34porn.net +rabbitscams.com +rabbitsreviews.com +racked.com +radeon.com +radian6.com +radicalparty.org +radio.garden +radiofarda.com +radiohilight.net +radioline.co +radiomarsho.com +radiosvoboda.org +radiovaticana.org +radiovncr.com +radiyoyacuvoa.com +rael.org +raggedbanner.com +ragnaporn.com +82mvmv.com +rainbowplan.org +rajwaphq.com +rakuten-static.com +rakuten.com +8111y.top +randyblue.com +rangwang.biz +rangzen.com +rangzen.net +rangzen.org +ranyunfei.com +rapbull.net +rapefilms.net +rapetube.me +rapidgator.net +rapidmoviez.com +rapidssl.com +rapidvpn.com +raponlinereview.com +rarbg.me +rarbgaccess.org +rarbgaccessed.org +rarbgget.org +rarbggo.org +rarbgmirror.com +rarbgmirror.org +rarbgproxy.org +rarbgprx.org +rarbgto.org +rarbgunblock.com +rarbgunblock.org +rarbgunblocked.org +rarbgway.org +raremovie.cc +raremovie.net +raspberrypi.org +raspbian.org +ratedgross.com +rateyourmusic.com +rationalwiki.org +yourlisten.com +rawgit.com +rawgithub.com +razer.com +razersupport.com +razerzone.com +razyboard.com +rb-crisis.com +rb.com +rb.net +rbbusinessshop.com +rbc007.com +rbdigitalab.com +rbdigitallab.com +rbe996.com +rbeopp.com +rbeuroinfo.com +rbgrads.com +rbgraduates.com +rbmavericks.com +rbnainternational.com +rbplc.com +rbrandlibrary.com +rbsgr.com +rbspeakup.com +rclon.com +yourgynexam.com +rd.com +rdio.com +rdtcdn.com +8008206616.com +re25.vip +rea-asia.com +rea-group.com +rea.design +rea.global +rea.tech +reabble.com +reachporn.com +reachtheworldonfacebook.com +react.com +reactjs.com +reactjs.org +read01.com +read100.com +readerswivesonline.com +readmoo.com +readthedocs-hosted.com +readthedocs.com +readthedocs.org +readydown.com +real-homemade-movies.com +real-mature-porn.com +real-thaipussy.com +realamericanstories.com +realamericanstories.info +realamericanstories.net +realamericanstories.org +realclear.com +realclearbooks.com +realcleardefense.com +realcleareducation.com +realclearenergy.org +realclearfoundation.org +realclearhealth.com +realclearhistory.com +realclearinvestigations.com +realclearlife.com +realclearmarkets.com +realclearpolicy.com +realclearpolitics.com +realclearpublicaffairs.com +realclearreligion.org +realclearscience.com +realclearworld.com +realcourage.org +realcuckoldsex.com +realdoll.com +realestatejournal.com +yourflashporn.com +realgfporn.com +realitykings.com +reallesbianexposed.com +realmaturesfuck.com +realmilwaukeenow.com +realpornclip.com +realraptalk.com +realsexdoll.com +realsexpass.com +realteengirls.com +realtor.com +realvision.com +realzoomovies.com +reason.com +reastatic.net +reaxys.com +rebatesrule.net +rebrandly.com +recaptcha.net +recelebrity.com +reckitt.net +reckittbenckiser.com +reckittbenckiser.net +reckittprofessional.com +recode.net +recoiljs.org +reconinstruments.com +reconjet.com +recordhistory.org +rectovaginalexam.com +red-lang.org +redamateurtube.com +redballoonsolidarity.org +redbubble.com +redchinacn.net +redchinacn.org +reddit.com +adobecce.com +redditmail.com +redditmedia.com +redditstatic.com +redfaptube.com +redgifs.com +redhat.com +redhat.org +redhotlabs.com +redislabs.com +8-d.com +redkix.com +redlightcenter.com +redmatureporn.com +redpornpictures.com +redsexhub.com +7tb.cc +redteenporn.com +redtub3xxx.com +redtube.blog +redtube.com +redtube9.com +redtubepremium.com +7cow.com +redwap-xxx.com +redwap.me +redwap.pro +redxxx.cc +redxxxvideos.com +redzonechannel.com +ree007.xyz +reflectivecode.com +reform-apple.com +regex101.com +regiongold.com +registerhulu.com +registeridm.com +reiporno.com +relateiq.com +relaxbbs.com +releaseinternational.org +7capture.com +religionnews.com +religioustolerance.org +remirepo.net +renchead.com +renderos.com +reneerossvideos.com +renminbao.com +renovacionoffice.com +renovacionxboxlive.com +rentaride.com +renyurenquan.org +renzhe.cloud +repe21.com +repo.new +repsneakermall.com +repswing.com +resao.com +researchandcare.org +researchgate.net +researchintel.com +researchkit.net +researchkit.org +resilio.com +resistchina.org +respawnbyrazer.com +rethink.net +retroclassicporn.com +retrohomevideos.com +retroxxxmovs.com +retweeteffect.com +retweetist.com +retweetrank.com +reurl.cc +reuters.com +reutersmedia.net +revenue-performance-management.com +revleft.com +revolv.com +revver.com +rexcha.com +77maott.com +rexxx.org +rfa.org +rfachina.com +rfamobile.org +rfaweb.org +rferl.org +rhodeislandbmw.com +ricefever.com +777xporn.com +777tv.net +ridepenguin.com +7719.me +rightbtc.com +rigpa.org +rigums.xyz +riku.me +75m.co +rileyguide.com +748av.com +riot-games.com +riot.com +riot.net +riotcdn.net +riotforgegames.com +riotgames.com +riotgames.info +riotgames.net +riotpin.com +riotpoints.com +riseup.net +risextube.com +rixcloud.com +rk.com +rlczdo.xyz +rlwlw.com +rm2029.com +721av.com +rmjdw.com +rmjdw132.info +6xxxvideos.com +ro89.com +road-crew.com +roboforex.com +roborecall.com +robustnessiskey.com +6twseb.com +rocket-inc.net +rocketfishproducts.com +rockettube.com +rocksdb.com +rocksdb.net +rocksdb.org +rocksextube.com +rockstargames.com +6sextube.com +6parknews.com +rojo.com +roku.com +rokutime.com +rolfoundation.org +rolia.net +rolls-roycecullinan.com +rolls-roycemotorcars.com +rolls-roycemotorcarsna.com +roloflix.com +roloxxx.com +rolsociety.org +romantic-sex-video.com +ronjoneswriter.com +roodo.com +rootsigning.com +rosechina.net +rosemarydoll.com +rotten.com +rou.video +roughebonysex.com +roughman.net +routerboard.com +routledgehandbooks.com +royalcams.com +royalsocietypublishing.org +rplay.live +rpmfusion.org +rprimelab.com +rrs1.xyz +rrtis.com +6parker.com +rsc.org +rsdlmonitor.com +rsf-chinese.org +rsf.org +rsgamen.org +rsshub.app +rssing.com +rssmeme.com +rstatic.net +rt.com +rtalabel.org +rtings.com +rtycminnesota.org +6parkbbs.com +yourfantasybeginsnow.com +ruanyifeng.com +ruby-lang.org +rubygems.org +rude.com +6park.com +ruinedking.com +rukoebxx.com +rukor.org +rule34.world +rule34.xyz +rule34h.com +rule34pornvids.com +rule34video.com +ruleporn.com +rumah123.com +rumble.com +rumporn.com +run.app +runbtx.com +rundf665.cyou +runnike.com +runningnike.com +runporn.com +runwayescorts.com +rupress.org +rushbee.com +rushporn.online +russianrape.org +rust-lang.org +rustdesk.com +rusvpn.com +rutracker.net +ruvideos.net +ruyiseek.com +6neek.com +6mature9.com +rxhj.net +6kea.com +s-bluemix.net +s-books.com +s-cashonmobile.com +s-cute.com +s-dragon.org +s-microsoft.com +s-msft.com +s-msn.com +s-nbcnews.com +s-xoom.com +s.team +yourepeat.com +s1heng.com +s1s1s1.com +s2stagehance.com +s81c.com +s8ds5gfm.xyz +s8forum.com +6japaneseporn.com +yourdoll.com +yourdirtymind.com +yourcolonoscopy.com +6e8xr2gk.me +saasexch.com +sabuibo.net +sacduc.com +sacks.com +sacredhentai.com +sadistic-v.com +sae.org +saerock.com +safebooru.org +safechat.com +safeguarddefenders.com +safervpn.com +6do.news +saffrontech.com +sagepub.com +sagernet.org +sahabatsetiasmartone.com +saintyculture.com +saiq.me +6asianporn.com +sakuralive.com +sakya.org +sale-nikeshoes.com +salebeatslasteststyle4you.com +saleblackfridaydrebeats.com +salecheaphandbags.com +salesforce.com +salesforce.org +salesforceiq.com +salesforceliveagent.com +salesforcemarketingcloud.com +sambaporno.com +sambhota.org +samebags.com +6arabs.com +69xx560.xyz +samsung.com +samsungapps.com +samsungcloud.com +samsungdm.com +samsunggalaxyfriends.com +samsungknox.com +samsungqbe.com +sandisk.com +69xx.one +69xporn.com +sankakucomplex.com +sankei-ad-info.com +sankei-ad.net +sankei-kurashi.com +sankei-tours.com +sankei.com +sankie.net +69vj.com +sanspo.com +sanvaras.com +sanwapub.com +saoni91.xyz +saonidh01.cc +69tubesex.com +sapikachu.net +69story.com +sapphicerotica.com +sapphicpornonly.com +69luolie.com +sarajevopodopsadom.com +sarapbabe.com +sarennasworld.com +69loli.com +satan18av.com +satnym.com +satv01.me +saveliuxiaobo.com +savemedia.com +savethedate.foo +savethesounds.info +savetibet.org +savetibetstore.org +saveuighur.org +savevid.com +savitabhabhi.com +savitabhabhi.vip +savitahd.net +69gayporno.com +say2.info +saynow.com +69flv.com +sb-telecom.net +69femdom.com +sbitravelcard.com +sbme.me +sbnation.com +69bag.xyz +sbuxcard.com +69av.one +sc-cdn.net +69-sexgames.com +sca-tolo.info +scala-lang.org +scala-sbt.org +scaleflex.com +scandalplanet.com +scanlover.com +yourcolonic.com +yourbrain.com +yourassbig.com +scasino.com +scat-enema.com +scat-japan.com +scat-shop.net +scat.gold +scatfap.com +scatfinder.com +scathd.com +scatkings.com +scatnetwork.com +scatolo-guromania.com +scatshop.com +scatsite.com +scatvids.club +scatville.com +67maoab.com +scdn.co +scene7.com +scenesource.me +67id.com +scharferporno.com +schema.org +schemer.com +schiffvitamins.com +66wwmm.com +scholarpedia.org +666kb.com +64wiki.com +youramateurporn.com +your-freedom.net +science.com +science.org +sciencedirect.com +sciencedirectassets.com +sciencemag.org +sciencenets.com +scienceonline.org +scientificamerican.com +scientificlinux.org +scieron.com +scifisex.net +scitation.org +scival.com +64tianwang.com +scmp.com +scmpchinese.com +scnshop.cc +scnsrc.me +scolle.net +scopus.com +64museum.org +scoreclassics.com +scorediscounts.club +scoregroup.com +scoreland.com +scoreland2.com +scorepass.com +scoreuniverse.com +scorevideos.com +63i.com +scp-wiki.net +scpdb.org +scpwiki.com +screenwisetrends.com +screenwisetrendspanel.com +screw-my-wife.com +scribd.com +scriptspot.com +scrolller.com +62fh1bnj.me +sdcountybmw.com +61jxbs42.xyz +seagroup.com +seamonkey-project.org +seancody.com +seaofsolitude.com +seaporn.org +youpornxvideos.net +search.com +searchtruth.com +searx.me +60plusmilfs.com +seattlefdc.com +secomtrust.net +secret-flirt-hub.com +secretchina.com +secretsline.biz +secretubes.com +sectigo.com +secure-paypal.info +youpornru.com +youpornpremium.com +securepaypal.info +secureservercdn.net +securetunnel.com +securityinabox.org +securitykiss.com +seed4.me +seedmov18.com +seehorsepenis.com +6-ar.com +seematureporn.com +seemilfporn.com +seemygf.com +seemyporn.com +seesmic.com +seevpn.com +seezone.net +sego8.cc +sego8.co +sego8.xyz +sehuatang.net +seiroganmania.com +seiron-sankei.com +sejie.com +youpornlist.com +selectanescort.com +selectyourgame.com +selfloversworld.com +sellclassics.com +sellercommunity.com +semanticscholar.org +sendsmtp.com +sendspace.com +seneporno.com +5q5zu9f1.me +seniortgp.com +senpaiheat.com +sensortower.com +sensorynetworks.com +sensualgirls.org +sensualmothers.com +sensueel.net +senzuritv.net +seqing.one +seqingwangzhan.pro +seqingx.com +sequence.com +ser7.cc +serbiporno.net +serialssolutions.com +servehttp.com +serverfault.com +serverlesslibrary.net +serveuser.com +serveusers.com +services-apple.net +services-exchange.com +serviceshp.com +serviporno.com +5mo.fun +sesawe.net +sesawe.org +seselah.com +sesenovel.com +sesez.com +sessoamatorialeitaliano.com +setapp.com +sethwklein.net +setn.com +5mb48g.com +sevenload.com +severeporn.com +severreal.org +sevgikurtulmaz.com +5maodang.com +5lml.com +sex-11.com +sex-amateur-clips.com +sex-av.com +sex-for-work.com +sex-gif.org +sex-hay.pro +sex-hot-sites.com +sex-ly.com +sex-teen.net +sex-young.com +sex.cam +sex.com +sex0098.com +sex021.net +sex3.com +sex3.mobi +sex4arabxxx.com +sex588.net +sex8.cc +sexalarab.com +sexandsplash.com +sexandsubmission.com +sexanimalvideos.com +sexanime.net +sexarea.org +sexasia.net +sexavidols.com +sexbebin.com +sexbombo.com +sexbookecuador.com +sexbot.com +sexbq.com +sexcartoon.biz +sexcelebrity.net +sexcord.com +sexdollpornhd.com +sexdolls.com +sexdollsshow.com +sexdug.com +sexecherche.com +sexedanslepre.net +sexei.net +sexemulator.com +sexfilm4free.com +sexfilmeporno.com +sexfilmstube.com +sexfl.xyz +sexflashgame.org +sexflexible.com +sexgalaxy.net +sexgame.com +sexgamefun.com +sexgames.cc +sexgamesbox.com +sexgamesclub.com +sexharlot.com +sexhd.fun +sexhd.pics +sexhdmovs.com +sexhotgames.com +sexhu.com +sexhuang.com +sexhub.red +sexhubhd.com +sexidude.com +sexifilm.top +sexiframe.com +sexindians.cc +sexinsex.net +sexiranian.party +sexjk.com +sexkomix2.com +sexkorea.net +sexlikereal.com +sexmadeathome.com +sexmature.club +sexmerci.com +sexmix.net +sexmomsex.com +sexmovies24.com +sexmummy.com +sexmutant.com +sexnaweb.net +sexnudo.com +sexo123.net +sexodama.com +sexodeamor.com +sexopornolive.com +sexoquente.blog +sexplustube.net +sexpornimg.com +sexpornpictures.com +sexpornvideoasian.com +sexsaoy.com +sexsex1.com +sexsexe1.com +sexsiam.com +sexsim.com +sexsimulator.com +sexsiteinc.com +sexstoriespost.com +sextb.net +sextop.net +sextop1.net +sextorso.com +sextoystop.com +sextreffen-portale.com +sextreffensite.com +sextube.desi +sextube69free.net +sextubebox.com +sextubedot.com +sextubehub.com +sextubeset.com +sextubespot.com +sextubexxl.com +sextubish.com +sextvx.com +sextw.net +sexu.com +sexualhentai.net +sexuria.com +sexvideo10.com +sexvideo12com.pro +sexvideos.host +sexvideos.tel +sexvideosxxx.mobi +sexvids.cc +sexvr.com +sexwebvideo.com +sexwithhorse.net +sexxx.cfd +sexxx8.xyz +sexxxdoll.com +sexxxhd.com +sexxxtape.net +sexxxx.rodeo +sexxxxfilms.com +sexxxy.biz +5isotoi5.org +sexy-babe-pics.com +sexy-beauties.com +sexy-models.net +sexy-more.com +sexy-older-women.com +sexy-photos.net +sexy-torrents.com +sexy3dtoon.com +sexyandfunny.com +sexyasiangirls.cc +sexyavenue.com +sexybabesz.com +sexycandidgirls.com +sexyculo.com +sexyfuckgames.com +sexygirlfriendtube.com +sexygirlspics.com +sexygloz.com +sexyhomewives.com +sexyhub.com +sexyhumorgames.com +sexykittenporn.com +sexyoung.me +sexypornpictures.org +sexyseeker.com +sexysexdoll.com +sexyteenssite.com +sexytuber.com +sexywetpussy.com +sexzy4.com +sf.net +sfbassets.com +sfbassets.net +sfdcstatic.com +sfileydy.com +sfmcompile.club +sforce.com +5i01.com +sfshibao.com +sftindia.org +sftuk.org +5fang.cc +sg120.me +sg1lib.org +youporngay.com +sgp1.fun +5ch.net +sh-xuxingda.com +sh83.xyz +shadbase.com +shadeyouvpn.com +shadowcomplex.com +shadowsky.xyz +shadowslaves.com +shadowsocks-r.com +shadowsocks.com +shadowsocks.org +shadowsocks9.com +shahit.biz +shahvani.com +shahvani.site +shahvatsaraa.com +shakethesnake.com +shambalapost.com +shambhalasun.com +shameless.com +shangfang.org +5beatsbydre.com +shapelcounset.xyz +shapeservices.com +youporn.com +sharebee.com +sharecool.org +sharepoint.com +sharepointonline.com +sharethis.com +sharizelvideos.com +sharkyporn.com +sharmota.com +5aimiku.com +shat-tibet.com +59mvmv.com +shazam.com +sheflix.com +shegg.com +shegods.com +sheikyermami.com +shelfstuff.com +592r.com +shellcheck.net +shemale-porn-galls.com +shemalebestlabel.com +shemaleleaks.com +shemalemodelstube.com +shemaleporn.fun +shemalepornonly.com +shemalespoiledwhore.com +shemalestardb.com +shemalestube.com +shemaletrannypics.com +shemaletube.pro +shemaletubevideos.com +shemalez.com +shenshi-cha.com +shenshou.org +shenyun.com +shenyun.org +shenyuncreations.com +shenyunperformingarts.org +shenyunshop.com +shenzhoufilm.com +shenzhouzhengdao.org +shequ8.cam +shequdaohang.com +sherabgyaltsen.com +shesfreaky.com +sheshaft.com +58avgo.com +shianyuanfang.com +shiatv.net +shibashuwu.net +shicheng.org +shikorina.net +shiksha.com +shinhangmc.com +shinychan.com +shipcamouflage.com +shireyishunjian.com +shiroutoav.net +shit-porn.net +shitaotv.org +shithd.com +shitjav.com +shittytube.com +shixiao.org +shizhao.org +shkspr.mobi +shockingmovies.com +shodanhq.com +shoers.com +shoestop2.com +shooshtime.com +shop-headphones.net +shop.app +shopbeatsdre.com +shopbmwmotorcycles.com +shopbmwusa.com +shopbydre.com +shopcustomizedbeats.com +shopdisney.com +shopdrebeats.com +shopdurex.com +shopee.com +youporn-germany.com +shopeemobile.com +shopfacebook.com +shopibay.net +shopify.com +shopify.dev +shopifycdn.com +shopifycloud.com +shopifystatus.com +shopifysvc.com +shoping.com +shopminiusa.com +shopmonsterbeats.com +shoppercentre.com +shopping-days.net +shopping.com +shoppinguheadphones.com +shops-disney.com +shopspeedtv.com +shoptraivip.com +youpai.org +shotwithgeforce.com +showhaotu.com +568xe.com +showtime.com +showtimeanytime.com +showybeauty.com +55dndn.com +shrkurl.com +shufflesex.com +shutterstock.com +shuziyimin.org +shwchurch.org +shwchurch3.com +shyav.com +shymysex.com +shywifeswap.com +54647.org +siam.org +sibreal.org +siddharthasintent.org +sidelinesnews.com +sidelinessportseatery.com +siege-amazon.com +sierrafriendsoftibet.org +sigmoidoscopeexam.com +sign.new +signal.art +signal.org +signalbar.com +signalprocessingsociety.org +signalusers.org +sijihuisuo.club +sijihuisuo.com +sikiswap.com +silkbook.com +silkengirl.com +silverchair-cdn.com +silversluts.com +simbolostwitter.com +simcity-buildit.com +simcity.com +simgbb.com +similar-porn.fun +simility.com +simonsgirls.com +simplecd.org +simpleproductivityblog.com +simplify.com +simplifycommerce.com +simply-hentai.com +simplyipod.com +sing68.com +singfortibet.com +singlelogin.app +singlelogin.me +singlelogin.site +singtao.com +singtaobooks.com +singtaola.com +singtaonewscorp.com +singtaoopo.com +singtaousa.com +sino-monthly.com +sinoants.com +sinoca.com +sinocast.com +sinocism.com +sinoinsider.com +sinopitt.info +sinoquebec.com +sipml5.org +siport.com +sipriyearbook.org +sirenxxxstudios.com +siri.com +sis001.com +siscache.com +sisisl.com +siska.video +sislovesme.com +sissy-university.com +sissy.game +sissyporncrossdresser.com +site.com +site2unblock.com +site90.net +sitekreator.com +sitemaps.org +sitepoint.com +siterips.org +siteripz.com +siteripz.net +situero.com +sixth.biz +54647.online +sjcollect.com +sjrt.org +54647.global +skate2.com +skebetter.com +sketchappsources.com +skillshare.com +skimtube.com +skinstrip.net +skokka.com +53worldsweeps.com +sksarab.top +skunkgirl.cc +53world.com +sky.com +skyassets.com +skybet.com +531tr.com +skyoceanrescue.com +52hyse.com +skype.com +skype.net +skypeassets.com +skypeassets.net +skyporn.online +skysports.com +skysportsonline.com +skysportsracing.com +skyvegas.com +skyxvpn.com +52fuliji.cc +slack-core.com +slack-edge.com +slack-files.com +slack-imgs.com +slack-msgs.com +slack-redir.net +slack.com +slackb.com +slackcertified.com +slackdemo.com +slacker.com +slackhq.com +slashdot.org +slaytizle.com +sldolls.com +sleazydream.com +sleazyneasy.com +slheng.com +slickvpn.com +slideshare.com +slideshare.net +slidesharecdn.com +52av.one +sling.com +slinginternational.com +slinkset.com +slotbitches.com +slutclit.com +slutdump.com +slutload.com +slutmoonbeam.com +sluts.xyz +sluttyrat.com +slyip.com +slyip.net +52av.com +sm-miracle.com +smallteenpussy.com +5278.cc +smart-edge.com +smartcommunitiescoalition.com +smartcommunitiescoalition.org +smartdnsproxy.com +smartexpos.com +smarthide.com +smartone.com +smartoneholdings.com +smartonerobotics.com +smchbooks.com +smhric.org +smm99999.com +smokinmovies.com +smplace.com +smpte.org +smutcam.com +smutcams.com +smutindia.com +smutstone.com +smutty.com +smuttymoms.com +smyw.org +smyxy.org +520avtv.com +snap-dev.net +snap.com +snapchat.com +snapdragonbooth.com +snapkit.co +snapseed.com +snaptu.com +snapvolumes.com +snapwebcams.com +51pincha.cc +sndcdn.com +sneaker666.com +sneakerpage.net +sneakerskick.com +sneakme.net +snjulebu.com +snowlionpub.com +snowmiku.com +51mh.app +soasta-dswb.com +sobees.com +socalbmw.com +soccermatchpass.com +social.com +socialblade.com +socialmediagirls.com +socialwhale.com +sociolotron.com +socks-proxy.net +sockscap64.com +sockslist.net +socrec.org +51luoli.info +softbank-ipo.com +softbank-jp.com +softbank-robotics.com +softbank-telecom.com +softbank-telecom.net +softbankbb.com +softbankbb.net +softbankci.com +softbankmobile.net +softbankrobotics.com +softbanktelecom.com +softbankusa.net +softbankventuresasia.com +softbankworld.com +softether-download.com +softether.org +softfamous.com +softmodels.net +softnology.biz +softwarebychuck.com +sogclub.com +sogrady.me +sohcradio.com +sohfrance.org +soirt4.fun +sokamonline.com +sokmil.com +solana.com +solarcity.com +solidaritetibet.org +solidfiles.com +solostudioksale.com +solv.finance +solveforx.com +somanylolies.com +somee.com +songjianjun.com +sonicbbs.cc +sonidodelaesperanza.org +sonorousporn.com +51luoben.com +sony-africa.com +sony-asia.com +sony-europe.com +sony-latin.com +sony-mea.com +sony-olympus-medical.com +sony.com +youngtube.me +sony.net +sonybsc.com +sonyclassics.com +sonydesign.com +sonydna.com +sonyentertainmentnetwork.com +sonylatvija.com +sonypictures.com +sonypicturesanimation.com +sonypicturesmuseum.com +sonypicturesstudios.com +sonypicturestelevision.com +sonypicturestelevisiongames.com +soolakhi.com +sopcast.com +sopcast.org +sora6.com +sorairi.info +sorazone.net +sorcerersarena.com +sorting-algorithms.com +sos.org +soso7778.com +sosreader.com +sostibet.org +soubory.com +souka.xyz +soul-plus.net +soulcaliburhentai.net +soumo.info +soundcloud.com +soundofhope.org +soupofmedia.com +sourceforge.com +sourceforge.net +sourcewadio.com +sourcingforebay.net +south-plus.net +south-plus.org +southfloridamini.com +youngteenhomeporn.com +sovec.net +soylentnews.org +sp.cool +spaceexplored.com +youngsex.video +spacex.com +spaindisney.com +spankandbang.com +spankbang.com +spankbang.party +spankbang1.com +spanking.wiki +spankingstudio.com +spankingtube.com +spankmonster.com +spankred3d.com +spankwire.com +spb.com +speakerdeck.com +specialtyheadphones.com +spectraltube.com +youngpornvideos.com +speeddreamride.com +speedfantasybid.com +speedhunters.com +speedify.com +speedracegear.com +speedrun.com +speedxtra.com +spektral.cc +spencertipping.com +spendee.com +spermyporn.com +speybay.com +spicevpn.com +spiceworks.com +spiceworksstatic.com +spicybigtits.com +spicystory.net +spideroak.com +spiedigitallibrary.org +51jav.org +spike.com +spiritclubs.com +spiritofecstasy.com +spizoo.com +splatoon2tournament.com +spore.com +sportsfacebook.com +sportstream.com +spotflux.com +spotify-everywhere.com +spotify.com +spotify.design +spotifycdn.com +spotifycdn.net +spotifycharts.com +spotifycodes.com +spotifyforbrands.com +spotifyjobs.com +spraynwash.com +spreadporn.org +spreadprivacy.com +spring06.top +spring13.top +spring4u.info +springboardplatform.com +springer.com +springerlink.com +springernature.com +springwood.me +sprinklesapp.com +sprite.org +sproutcore.com +sproxy.info +spyjinx.com +sqlite.org +sqlserveronlinux.com +squarecapital.com +squarecdn.com +squarecloudservices.com +squareup.com +squirly.info +squirrelgroup.net +squirrelvpn.com +51dh.site +youngpornonly.com +srebrenica360.com +51cg1.com +srtcdn.net +srwwu.uno +50plusmilfs.com +ss-link.com +youngpornhd.com +youngmommyfucksme.com +younglibertines.com +ss7.app +ssdevrd.com +ssglobal.co +ssglobal.me +ssh91.com +sshs.club +sshs.pw +sshs.xyz +ssl-images-amazon.com +ssl.com +ssl443.org +sslpaypal.org +sspanel.net +ssplive.pw +ssr.tools +ssrpass.pw +ssrshare.com +sss.camp +ssshuqian.xyz +sssins.com +sssjav.com +sssuo1.xyz +sstatic.net +sstm.moe +sstmlt.moe +sstmlt.net +ssx3.com +50dh.app +stackage.org +stackapps.com +stackauth.com +stackexchange.com +stackmod.blog +stackoverflow.blog +stackoverflow.co +stackoverflow.com +stackoverflow.email +stackoverflowbusiness.com +stackoverflowcareers.com +stackpath.com +stackpath.dev +stacksnippets.net +stacyvandenbergboobs.com +500caocao.com +stadia.dev +standardsuniversity.org +standupfortibet.org +standwithhk.org +4u4c.com +star-brasil.com +star-latam.com +starbucks-stars.com +starbucks.com +youngheaven.com +starbucksathome.com +starbuckscardb2b.com +starbuckscoffeegear.com +starbuckscoffeegearstore.com +starbucksforlife.com +starbuckspoq.com +starbucksreserve.com +starbucksrewardsstarland.com +starbucksrtd.com +starbuckssummergame.com +starcraft.com +starcraft2.com +starfieldtech.com +starfishfx.com +starfox.com +4tubefree.net +starott.com +starp2p.com +starplus.com +starsze.icu +start.com +startpage.com +startpath.com +startupjournal.com +startuplivingchina.com +startupschool.org +starwars.com +starwarsbattlefront.com +starwarsbattlefront2.com +starwarsfallenorder.com +starwarsgalacticstarcruiser.com +starwarsjedifallenorder.com +starwarskids.com +starwarstheoldrepublic.com +4tube.com +4sqi.net +stateofthemap.com +stateofthemap.org +static-cisco.com +static-economist.com +static-nike.com +static-verizon.com +static.fun +staticflickr.com +4shared.com +statsmakemecry.com +statueofdemocracy.org +staxus.com +stboy.net +4rbtv.com +stc-server.com +4pu.com +stcroixmosquito.com +stcroixmosquitoproject.com +steam-api.com +steam-chat.com +youngermommy.com +youngerbabes.com +younger19.com +youngamateursporn.com +young-xxx.net +steamcommunity.com +steamcontent.com +steamdb.info +steamdeck.com +steamgames.com +steamofporn.com +steampowered.com +steamserver.net +steamstatic.com +steamunlocked.net +steamusercontent.com +steamygamer.com +steel-storm.com +steelbrick.com +steemit.com +steezylist.com +steganos.com +steganos.net +stepchina.com +stepdaughter.love +stepfamilyporn.com +stephaniered.com +stepmaturesex.com +stepmom.one +stepsiblingscaught.com +stheadline.com +sthoo.com +stickam.com +stickeraction.com +stickofjoy.com +stileproject.com +stimorolsex.com +stlouisbmw.net +sto.cc +stockagainstphotography.com +4porn4.com +stocking-tease.com +stockingfetishvideo.com +stonefoxlingerie.com +stonefoxproductions.com +stoporganharvesting.org +stoptibetcrisis.net +storagenewsletter.com +store-bridgestonesports.com +young-webcam.net +storesense.com +storiesonline.net +storify.com +stormmediagroup.com +storyful.com +stoweboyd.com +straightouttasomewhere.com +straightpornstuds.com +straitstimes.com +stranabg.com +straplessdildo.com +stream-mydirtyhobby.biz +streamable.com +streamate.com +streamhentaimovies.com +streamingdisney.net +streamingporn.xyz +streamingthe.net +streamlatina.com +streamporn.cc +streamporn.pw +streamsex.com +streema.com +streetmeatasia.com +young-amateur-movies.com +strepsils.net +strepsilsarabia.com +strikingly.com +strikinglycdn.com +stripcamfun.com +stripchat.com +stripe-terminal-local-reader.net +stripe.com +stripe.network +stripecdn.com +stripparadise.com +stripselector.com +stripskunk.com +strongvpn.com +strongwindpress.com +studentsforafreetibet.org +studiobeatsbydrdre.com +studiofow.com +studioluxus.com +studywatchbyverily.com +studywatchbyverily.org +stufferdb.com +stumbleupon.com +stunnel.org +stupidcams.com +stupidvideos.com +stxmosquito.com +stxmosquitoproject.com +stxmosquitoproject.net +stxmosquitoproject.org +4porn.com +4pig.com +sub147.com +youmaker.com +sublimedirectory.com +sublimetext.com +submityourflicks.com +subscene.com +substack.com +successfn.com +successwithteams.com +youlucky.com +4myminicard.com +sucksex.com +sugarsync.com +sugobbs.com +sugumiru18.com +suissl.com +sukebelinks.com +sulian.me +sulwerphoto.com +summify.com +sumomo-ch.com +sumrando.com +sun.com +sun1911.com +sundanceignite2016.com +sundayguardianlive.com +sundayready.com +sunglassessale2014.com +sunporno.com +sunskyforum.com +sunvpn.net +youjizz.com +suoluo.org +supanimegames.com +supchina.com +superadultgames.com +supercell.com +superearsenjoy.com +superfreevpn.com +supergratisporno.com +superhqporn.com +superjapanesesex.com +supermario.com +supermario3dworld.com +supermariogalaxy.com +supermariorun.com +superokayama.com +superpages.com +superpapermario.com +supersexeamateur.com +4mydomain.com +supertop.co +superuser.com +supervpn.net +superzooi.com +supjav.com +suppig.net +supplybestjerseys.com +supportfacebook.com +supremacy.com +supremacy.net +suprememastertv.com +sureporn.com +surface.com +surfeasy.com +surflite.co +surflite.net +surfshark.com +suroot.com +surrenderat20.net +suruga-ya.com +susiewildin.com +sustainthesound.com +suxib.com +4kup.net +4ksex.me +svaboda.org +svensksexfilm.com +sverigebeatsbydrdre.com +svipshipin.store +svoboda.org +svp-team.com +svpply.com +4irc.com +svscomics.com +svsfx.com +svsgames.org +swag.live +swagbucks.com +swapsmut.com +4greedy.com +sway-cdn.com +sway.com +sweetadult-tube.com +sweetmlif.net +sweetsext.com +sweetsinner.com +swegold.com +swift.org +swiftbank.info +swiftcapital.com +4f1v1.top +swiftfinancial.com +swiftfinancial.info +swiftfinancial.net +swingercuckoldporn.com +swingerpornfun.com +swingerporntube.com +swingers-homemade-videos.com +youjism.com +swingersexorgy.com +4everproxy.com +swissign.com +swisssign-group.com +swisssign.com +swisssign.net +swisssign.org +swisssigner.com +swisssigngroup.com +swissstick.com +swissvpn.net +switchvpn.net +swjedifallenorder.com +swjfo.com +swoosh.com +youdontcare.com +swtor.com +swtor.net +4ertik.one +sxarab.top +sxshentai.com +sxyprn.com +4ertik.live +4ebaytraders.com +sydneytoday.com +syhacked.com +sylfoundation.org +4dq.com +symantec.com +symcb.com +symcd.com +synaptic.net +syncback.com +synergyse.com +syosetu.com +sysinternals.com +sysresccd.org +sytes.net +syzbj36.xyz +4club.com +szbbs.net +szcheapmonsterheadphones.com +szexvideo.top +szwinnertechnology.com +t-g.com +t.co +t.me +youav.com +t35.com +t66y.com +taa-usa.org +4channel.org +taboola.com +tabooporns.com +tabustudios.co +tacamateurs.com +tacem.org +tafm.org +tagwalk.com +taiav.com +tail-f.com +tailf.com +tailwindtraders.com +4chan.org +taipeisociety.org +taipeitimes.com +taiwan-sex.com +taiwanadultexpo.com +taiwanbible.com +taiwancon.com +taiwandaily.net +taiwandc.org +taiwanhot.net +taiwanjustice.com +taiwanjustice.net +taiwankiss.com +youassporn.com +taiwannation.com +taiwantp.net +taiwanus.net +taiwanyes.com +you.com +take2games.com +takegoto.com +taknai.com +takporn.com +talentlens.com +taleofthenight.com +talk853.com +talkboxapp.com +talkcc.com +talkonly.net +talksport.com +tamilsexvideos.cc +tanc.org +tandberg-china.com +tandberg.com +tandfonline.com +tanflix.com +tangben.com +tantaly.com +taoism.net +taolun.info +tapanwap.com +tapatalk.com +taptotokyo.com +taradinhos.com +4chan.com +target.com +targetimg1.com +tasexy.com +tasexy.top +tastyblacks.com +4cdn.org +4bluestones.biz +4beatsbydre.com +tati-log.com +466453.com +taup.net +taweet.com +tawny-peaks.com +taxi69.com +taxidrivermovie.com +taylorandfrancis.com +taylorfrancis.com +tbcollege.org +tbib.org +tbicn.org +tbjyt.org +tblop.com +tbpic.info +you-get.org +tbrc.org +tbs-rainbow.org +tbsec.org +tbsmalaysia.org +tbsn.org +tbsseattle.org +tbssqh.org +tbswd.org +tbthouston.org +4550.fun +tccwonline.org +tcewf.org +tchrd.org +445nan.com +tcnynj.org +tcpspeed.co +tcpspeed.com +tcsofbc.org +tcsovi.org +tctsx28d.xyz +445jun.com +tdesktop.com +445gei.com +teacherfucksteens.com +teachmyass.com +teachparentstech.org +teamamericany.com +teamneedforspeed.com +teamskeet.com +teamviewer.com +tearapeak.com +teatroporno.com +yoshisnewisland.com +techatbloomberg.com +techcrunch.com +techliquidators.com +technics.com +technologyandsociety.org +techspot.com +techstreet.com +techtimes.com +techviz.net +teco-hk.org +teco-mo.org +ted.com +tedcdn.com +teddysun.com +teen-girl.net +teen-lover.net +teen-sexy.com +teen3x.mobi +teenagefucking.com +teenchoice.com +teendreams.com +teengirlfriendtube.com +teeniefuck.net +teenporngallery.net +teenport.com +teenpussypicture.com +teenqueens.net +teenrave.org +teensex.me +teensinasia.com +teensloveanal.com +teensloveporn.net +teensnow.com +teensnow.link +teentube.pro +teenwebcamtube.com +teeztube.com +tegrazone.co +tegrazone.com +tehrantimes.com +telebay.com +444.coffee +telecomspace.com +41maonn.com +telega.one +telegram-cdn.org +telegram-porn.com +telegram.dog +telegram.me +telegram.org +telegram.space +telegramdownload.com +telekom.com +telesell.com +telex.cc +tellapart.com +tellme.pw +tellmewhygame.com +40somethingmag.com +tenacy.com +tenbyfotolia.com +tencent.design +40shopping.com +tensorflow.org +tenzinpalmo.com +terabox.com +terapeack.com +terapeak.com +terapeak.info +teraperk.com +termius.com +termux.com +termux.dev +termux.org +40momporntube.com +terragraph.com +terrapeak.com +terrlficdates.com +tesla.com +tesla.services +teslaenergy.services +teslamotors.com +teslazta.net +test-ipv6.com +testonfox.com +404museum.com +tew.org +tex-talk.net +textnow.me +texttobuy.org +texture.com +3xxx.pro +tferwq.com +tfhub.dev +tfiflve.com +tfsallin.net +3xplanetimg.com +tg.dev +tgirlcentral.com +tgirlpostop.com +tgp6.com +tgtube.com +tgutube.com +3xplanet.net +yopornshop.com +thai-xxx.com +thai69.com +thaicherry.com +thaichix.com +thaicn.com +thaicuties.com +thaigirls.net +thaigirls100.net +thanksloyalty.com +thawte.com +3xplanet.com +the-japan-news.com +the-m-festival.com +the-monster-beats.com +theaffairs.com +theatlantic.com +theatrum-belli.com +theav.cc +thebanker.com +thebankerdatabase.com +thebayuk.com +thebcomplex.com +thebeatsbydre.com +thebeatsbydre.net +thebeatsheadphonesale.com +thebestfetishsites.com +theblaze.com +theblemish.com +thebobs.com +thebodyshop-usa.com +thebondagefiles.com +thecamdude.com +thecandidbay.com +thechinabeat.org +thechinacollection.org +theclasshroom.com +thecleversense.com +theclubprive.com +theclyster.com +thecompaqstore.com +theconversation.com +thecuckold.com +thecuckoldporn.com +thedailysnkr.com +thedalailamamovie.com +thediplomat.com +thedreadwolfrises.com +theebayshop.com +theepochtimes.com +theepochtimessubscribe.com +thefacebook.com +thefacebook.net +thefappening.pro +thefappening.wiki +thefappeningblog.com +thefind.com +thefoxnation.com +thegatewaypundit.com +thegay.com +thegayoffice.com +thegeorgiascene.com +thegithubshop.com +thegly.com +thegooglestore.com +3tui.net +theguardian.com +theguardiandns.com +thehabibshow.com +3pornstarmovies.com +thehealthsite.com +thehentaiworld.com +thehots.info +thehousenews.com +thehulubraintrust.com +thehun.net +theindianleaks.com +theinitium.com +theinstagramhack.com +theintelstore.com +thekarups.com +thelancet.com +theleakbay.com +thelegendarystarfy.com +thelittleslush.com +themarvelexperiencetour.com +themathsfactor.com +themilfmovies.com +themoviedb.org +thenationalpulse.com +thenewgirlspooping.com +thenewporn.com +thenewslens.com +thenextweb.com +thenipslip.com +theopportunityproject.org +thepaypalshop.com +thepervs.com +thepiratebay.org +theporn.cc +thepornarea.com +thepornbest.com +thepornbet.com +thepornbin.com +thepornblender.com +theporndude.cc +theporndude.com +theporndude.vip +thepornguy.org +thepornlinks.com +thepornlist.com +thepornlist.net +thepornlistdude.com +thepornmap.com +thepornscat.com +theporntoplist.com +theportalwiki.com +thesafeporn.com +thesexbible.com +thesffblog.com +theshoppingexpresslane.net +thesims.com +thesims3.com +thesims4.com +thesimssocial.com +thestandnews.com +thestationbymaker.com +theteenhome.com +thethothub.com +thetibetcenter.org +thetibetconnection.org +thetibetmuseum.org +thetibetpost.com +thetinhat.com +thetranny.com +thetread.com +thetrotskymovie.com +thetvdb.com +thetype.com +theuab.net +theverge.com +thevirtualsexreview.com +thevivekspot.com +thewgo.org +thewonderful101.com +theync.com +theyxxx.com +thieme-connect.com +thinkboxsoftware.com +thinkgeek.com +thinkingtaiwan.com +thinkofliving.com +thinkquarterly.com +thinkwithgoogle.com +thisav.com +thisav.org +thisispolaris.com +thisvid.com +thisvidscat.net +thlib.org +thomasbernhard.org +thomsonreuters.com +thomsonreutersmexico.com +thongdreams.com +thottok.com +thotvids.com +threadreaderapp.com +threads.net +threatchaos.com +thrixxx.com +throughnightsfire.com +thtmod1.com +thumbnailseries.com +thumbzilla.com +thunderbird.net +thunderbolttechnology.net +thywords.com +thz7.net +thzu.cc +3pornhere.com +tiananmenduizhi.com +tiananmenmother.org +tiananmenuniv.com +tiananmenuniv.net +tianbiav10.com +tiandixing.org +tianhuayuan.com +tianlawoffice.com +tiantang.today +tiantibooks.org +tianzhu.org +tiava.com +tiava1.com +tiaz.site +tiberiumalliances.com +tibet-foundation.org +tibet.com +tibet.net +tibet.org +tibet3rdpole.org +tibetaction.net +tibetaid.org +tibetalk.com +tibetan-alliance.org +tibetanaidproject.org +tibetanarts.org +tibetanbuddhistinstitute.org +tibetancommunity.org +tibetancommunityuk.net +tibetanculture.org +tibetanentrepreneurs.org +tibetanfeministcollective.org +tibetanhealth.org +tibetanjournal.com +tibetanlanguage.org +tibetanliberation.org +tibetanpaintings.com +tibetanphotoproject.com +tibetanpoliticalreview.org +tibetanreview.net +tibetansports.org +tibetanwomen.org +tibetanyouth.org +tibetanyouthcongress.org +tibetchild.org +tibetcity.com +tibetcollection.com +tibetcorps.org +tibetexpress.net +tibetfocus.com +tibetfund.org +tibetgermany.com +tibethaus.com +tibetheritagefund.org +tibethouse.org +tibetinfonet.net +tibetjustice.org +tibetmuseum.org +tibetnetwork.org +tibetoffice.org +tibetonline.com +tibetoralhistory.org +tibetsites.com +tibetsociety.com +tibetsun.com +tibetsupportgroup.org +tibettelegraph.com +tibettimes.net +tibetwrites.org +tiburon.com +tickdata.com +tictoc.video +tidal.com +tidalhifi.com +tidelift.com +tiendabestbuy.com +3naked.com +tiffany-towers.com +tig-ol-bitties.live +tigervpn.com +tik-tokapi.com +tiktok.com +tiktokcdn.com +tiktokd.net +tiktokd.org +tiktokv.com +tiltbrush.com +timdir.com +time.com +timelinestoryteller.com +timesmembership.com +timesnownews.com +yomilogi.com +timestalks.com +timi1.me +timo0.com +timsah.com +timtales.com +tinc-vpn.org +tineye.com +tinhduc.org +tintuc101.com +tiny.cc +tiny4k.com +tinychat.com +tinypaste.com +tinyurl.com +tiohentai.com +tipas.net +tiresplus.com +3movs.xyz +tistory.com +titanfall.com +titsandtugs.com +titsbox.com +titsintops.com +tittykings.com +3movs.com +3lib.net +tjsbfj.com +tjstats.com +3hentai.net +3go.fun +tkb008.xyz +tkb2233.life +tkbqf2.life +tkcs-collins.com +3dsexy.net +tktube.com +3dsexvilla.com +3dsexplay.xyz +tmagazine.com +tmdb.org +tmdfish.com +tmei-taoyuan.com +tmi.me +tmpp.org +3dsexmovies.biz +tnaflix.com +tnatryouts.com +tngrnow.com +tngrnow.net +tnntoday.com +tnp.org +tnt-ea.com +3dsexgames.biz +to-porno.com +togetter.com +toh.info +3dhentaix.com +tokyo-247.com +tokyo-hot.com +tokyo-porn-tube.com +tokyo-tosho.net +tokyocn.com +tokyomotion.com +tokyomotion.net +tokyonightstyle.com +tokyoporns.com +tokyotosho.info +tomatespodres.com +tomonews.net +tomovie.net +tonec.com +tonicmovies.com +tonyyan.net +toodoc.com +toolforge.org +toomadporn.pro +toon-3d.com +toonel.net +toonsexblog.com +adobeccstatic.com +top100nl.net +top100sexgames.com +top10vpn.com +topadultgames.biz +topanime.biz +topartporn.com +topbabesblog.org +topbeatsbydrdreoutlet.com +topbeatsdealer.com +topbeatsforsale.com +topbtc.com +topcartoonsites.com +topcelebnudes.com +topchats.com +topchineseporn.com +topcoder.com +topcuckolds.com +toperoticartsites.com +topescortbabes.com +topexhib.net +topface.com +topfantasyart.com +topfreepornvideos.com +tophdsex.com +tophentai.biz +tophentaicomics.com +toplayerserver.com +topmanga.biz +topnudemalecelebs.com +topporn.me +toppornguide.com +toppornoduro.com +toppornsites.com +toppornsites.net +toprealvideos.com +topsexart.com +topsexhdvideos.com +topsexygames.com +topshareware.com +topsy.com +toptoonsites.com +topvids.net +topxxxpornvids.com +topyoungporn.com +yolasite.com +100beatscheap.com +3dfuckhouse.com +torcidadeouro.com +torcn.com +torguard.net +torlock.com +toroporno.com +torproject.org +torrentleen.com +torrentprivacy.com +torrenty.org +torrindex.net +torvpn.com +yogify.com +3devilattack.net +3danimeworld.com +totalmateria.com +totalvpn.com +totoleak.com +touchid.wang +touchsmartpc.com +touchsmartpc.net +touchsmartpc.org +touhouwiki.net +tourporno.com +toutapp.com +toutiaoabc.com +toutoupa1024.fun +towerauction.com +towngain.com +townofsins.com +3dadultgames.net +toythieves.com +toytractorshow.com +tparents.org +tpornstars.com +tps138.info +3d-xxx.com +tr.com +tracfone.com +tracking-location.com +3d-toon.com +tradevip1.com +tradingview.com +trafficmanager.net +tranny.one +trannygem.com +trannyvideosxxx.com +yogichen.org +trans500.com +transangels.com +transarmuito.com +transcamslive.com +3d-game.com +translatetheweb.com +translatewiki.net +translatewiki.org +3d-comics.com +transparency.org +transpornsites.com +3boys2girls.com +3arabtv.com +travelcontroller.com +3arabporn.com +3animalsextube.com +travelex.com +travelexae.com +travelexch.com +travelexmoneycard.com +travelgirls.com +3a5a.com +trello.com +trellocdn.com +trendmicro.com +trendsmap.com +trendyporn.com +trialofccp.org +triballo.net +tribler.org +trickip.net +trickip.org +trikepatrol.com +triokini.com +tristatebmw.com +trithucvn.net +trithucvn.org +trixhentai.com +trmini.com +troisrivieresmini.com +tronscan.org +tropictube.com +trueamateurmodels.com +trueamateurs.com +trueanal.com +truebeachporn.com +truebuddha-md.org +truedepth3d.com +trulyergonomic.com +trust-provider.com +trustcor.com +trustedanalytics.com +trustedanalytics.net +trustedpeach.com +trustisfps.com +trustwave.com +truthontour.org +truthordarepics.com +truthsocial.com +truveo.com +truyen-hentai.com +truyen18.xyz +truyengihay.net +truyenhentai.xyz +truyenkk1.com +truyentranh86.com +truyenwk.com +39group.info +tryboobs.com +trycloudflare.com +trycuckold.com +trydurex.net +tryengineering.org +tryfuckmenow.com +tryfunctions.com +tryquinn.com +tryrating.com +tryst.link +tsctv.net +tsemtulku.com +tsescortsdirectory.com +tsmodelstube.com +tssp.best +tsthai.com +tsumino.com +tsunagarumon.com +tsundora.com +yogalayout.com +tsyum.com +3789av.com +tt1069.com +tteshop.com +tttan.com +ttvnw.net +tu8964.com +tubaholic.com +tube-pornomovs.com +tube-sex-videos.com +tube.com +tube188.com +tube2011.com +tube2012.com +tube2017.com +tube4sex.com +tube4world.com +tube8.com +tube8zoo.com +tube911.com +tubebdsm.com +tubecaptain.com +tubecop.com +tubecup.com +tubedna.com +tubedupe.com +tubeenema.com +tubefuckme.net +tubegalore.com +tubegals.com +tubeislam.com +tubelombia.net +tubemovies4k.com +tubeorigin.com +tubepatrol.org +tubepornclassic.com +tubepornlist.com +tubepornstars.com +tubepornup.com +tubesafari.com +tubesex.me +tubeshemales.com +tubestack.com +tubetop69.com +tubetria.mobi +tubetubetube.com +tubev.pro +tubevintageporn.com +tubewolf.com +tubexclips.com +tubinge.com +tubous.com +tubsexer.com +tubxporn.com +tug.org +36rain.com +100bucksbabes.com +tuibeitu.net +tuidang.net +tuidang.org +tuitwit.com +tukif.com +tumblr.com +tumutanzi.com +tumview.com +tunein.com +tunnelbear.com +tunnelblick.net +tunnelr.com +tunsafe.com +turansam.org +turbobit.net +turbogvideos.com +turbohide.com +turborepo.org +turbotwitter.com +turkeyblocks.org +turkistantimes.com +tushy.com +tushycash.com +tutanota.com +tuvpn.com +tuzaijidi.com +36717.info +tv.com +yobt.com +tvants.com +tvappstore.net +tvb.com +tvbanywhere.com +tvboxnow.com +tvbusa.com +tvbweekly.com +tvider.com +tvplayvideos.com +tvpromise.com +365buymy.com +tvunetworks.com +35s4.com +tw-blog.com +tw-npo.org +yobit.net +yo1health.com +ynoproject.net +ymail.com +yjcontentdelivery.com +yizhihongxing.com +tw01.org +tw985.com +twaitter.com +twapperkeeper.com +twavi.com +twavking.com +twbbs.org +twblogger.com +twcomix.com +tweepguide.com +tweeplike.me +tweepmag.com +tweepml.org +tweetbackup.com +tweetboard.com +tweetboner.biz +tweetcs.com +tweetdeck.com +tweetedtimes.com +tweetphoto.com +tweetrans.com +tweetree.com +yiyechat.com +tweettunnel.com +tweetwally.com +tweetymail.com +tweez.net +twelve.today +twerkingbutt.com +twftp.org +twgreatdaily.com +twgreatnews.com +twhentai.com +twibase.com +twibbon.com +twibs.com +twicountry.org +twicsy.com +twiends.com +twifan.com +twiffo.com +twifuli.com +twiggit.org +twilightsex.com +twilog.org +twimbow.com +twimg.com +twindexx.com +twinkspornos.com +twinkybf.com +twinprime.com +twip.me +twishort.com +twistar.cc +twistedlinks.net +yiqiedoushiganggangkaishi.org +twisterio.com +twisternow.com +twistory.net +twistys.com +twit2d.com +twitbrowser.net +twitcause.com +twitchcdn.net +twitchsvc.net +twitgether.com +twitgoo.com +twitiq.com +twitlonger.com +twitmania.com +twitoaster.com +twitonmsn.com +twitpic.com +twitstat.com +twittbot.net +twitter.biz +twitter.com +twitter4j.org +twittercommunity.com +twittercounter.com +twitterfeed.com +twitterflightschool.com +twittergadget.com +twitterinc.com +twitterkr.com +twittermail.com +twitteroauth.com +twitterrific.com +twitthat.com +twitturk.com +twitturly.com +twitvid.com +twitzap.com +twiyia.com +twlegs.com +twline5.com +twnextdigital.com +twoo.com +twporn.net +twreporter.org +twskype.com +twstar.net +twtkr.com +twtrdns.net +twtrland.com +twttr.com +twttr.net +twvid.com +twyac.org +tx.me +tx5254.com +tx5ptbp7.com +txcloud.net +txdirectv.com +txqzz34r.com +txvia.com +txvlog.com +txxx.com +txxx1.com +tycool.com +tyler-brown.com +tyms2022.com +typeisbeautiful.com +typekit.com +typekit.net +typenetwork.com +typepad.com +typesquare.com +typography.com +tytng189.com +tytporno.online +32red.com +u15.info +u3c3.com +u9a9.cc +u9a9.com +u9un.com +32bm.cc +uaa.com +ub0.cc +315lz.com +ubddns.org +uber-assets.com +uber.com +ubereats.com +uberproxy.net +ubi.com +ubisoft.com +ubisoftconnect.com +ubnw.net +30plusgirls.com +ubuntu.com +ubuntu.net +ubuntuforums.org +uc-japan.org +ucdc1998.org +30boxes.com +udacity.com +udemy.com +udemycdn.com +udfs.com +udn.com +udnbkk.com +udndata.com +udnfunlife.com +udtrucksmeena.com +ufreevpn.com +3-a.net +ugo.com +uguisupapa.net +uhairy.com +uhdwallpapers.org +uhrp.org +uhtube.me +uhub.com +uighurbiz.net +uiporn.com +ujapanesesex.com +2waky.com +uk-exhibitionist.com +ukipad.com +ukwhoswho.com +ulike.net +ulol.com +ulop.net +ultimaforever.com +ultimaonline.com +2shared.com +ultradonkey.com +ultraxs.com +ultrayoungsex.com +2o7.net +un.org +unblock-us.com +yipub.com +unblockdmm.com +unbrandedproducts.com +uncams.com +uncensoredsexparties.com +uncyclomedia.org +underhentai.net +underlords.com +underwoodammo.com +unfiltered.news +ungrounded.net +unholyknight.com +uni.cc +2mdn.net +unification.net +uninhibitedcomix.com +unirule.cloud +uniswap.org +unitedsocialpress.com +unity.com +unity3d.com +universalorlando.com +universalpictures.com +universalpicturesinternational.com +universalstudioshollywood.com +universitypressscholarship.com +unix100.com +unknownspace.org +unkoscene.com +unlocklimitlesslearning.com +unodedos.com +unpkg.com +unpo.org +unravel2.com +unraveltwo.com +unrealengine.com +unrealtournament.com +unstable.icu +unusualporn.net +uo.com +uocn.org +uoherald.com +2mdn-cn.net +yinshuiger.info +up01.cc +yinmh.com +updatetube.com +upghsbc.com +upholdjustice.org +upjav.cc +uplay-istrip.com +uplay.com +uplinq.com +upload4u.info +uploaded.net +uploadstation.com +uplust.com +uplynk.com +upornia.com +uproxy.org +uptodown.com +upwill.org +ur7s.com +uraban.me +urasma.com +urbandictionary.com +urbansurvival.com +urchin.com +urduvoa.com +uriminzokkiri.com +urlborg.com +urlgalleries.net +urlparser.com +urukawa.com +2lipstube.com +usa-beatsbydreheadphonesonsale.net +usacn.com +usaco.org +usatoday.com +usatodaynetworkservice.com +uscnpm.org +uselessjunk.com +useplannr.com +userapi.com +yinlei.org +usercontent.dev +usertrust.com +yingsuoss.com +yingpianqu.com +usocctn.com +ustibetcommittee.org +usus.cc +usvimosquito.com +usvimosquitoproject.com +utopianpal.com +uu-gg.com +uug22.com +uug23.com +uug25.com +uug26.com +uug27.com +uuk28.com +uukanshu.com +uun78.com +uun79.com +uun82.com +uun83.com +uun85.com +uun86.com +uun87.com +uun89.com +uun92.com +uun93.com +uun95.com +uun96.com +uun97.com +uun98.com +uun99.com +uusexdoll.com +uusextoy.com +uux68.com +uverse.com +uvwxyz.xyz +uwants.com +uwants.net +uwpcommunitytoolkit.com +uxxxporn.com +2lib.org +uyghur-j.org +uyghuraa.org +uyghuramerican.org +uyghurbiz.org +uyghurcongress.org +uyghurpen.org +uyghurpress.com +uyghurstudies.org +uyghurtribunal.com +yinac5.top +uygur.org +uymaarip.com +2kgames.com +v-av.com +v-has.com +v2ex.com +v2fly.org +v2ph.com +v2ray.com +v2ray.cool +v2raycn.com +v2raytech.com +v7hds.com +v8.dev +v8project.org +2kcoretech.online +vagabundasdoorkut.net +vaginacontest.com +vaginal-ultrasound.com +vaginalultrasound.info +vaginapics.pro +vagrantcloud.com +vagrantup.com +valeursactuelles.com +valoryirene.com +valuegb.com +valvesoftware.com +van001.com +van698.com +2k.com +2gayboys.com +vanilla-jp.com +2drdrebeats.com +yinac.xyz +vanisharabia.com +vanishcentroamerica.com +vanishstains.com +vanitaonline.com +vanithaveedu.com +vanpeople.com +vansky.com +vatn.org +vaultify.com +vaultify.info +vaultify.net +vbejeyv.shop +2dgen.com +vcanedge.com +vcf-online.org +vcfbuilder.org +vcloudair.net +vct.news +vdoav.com +yimg.com +2chav.com +veet.com +yilubbs.com +veetarabia.com +veetbangladesh.com +veetcentroamerica.com +2ch.net +vegasred.com +velocloud.com +velostrata.com +venbbs.com +venchina.com +vendu.com +venetianmacao.com +venezporn.com +venmo-touch.com +venmo.com +venmo.info +venmo.net +venmo.org +ventureswell.com +veoh.com +veporn.com +vepornhd.club +veporno.net +vercel-dns.com +vercel-status.com +vercel.app +vercel.blog +vercel.com +vercel.events +vercel.live +vercel.pub +vercel.store +verily.com +verilylifesciences.com +verilystudyhub.com +verilystudywatch.com +verilystudywatch.org +2buybeatsbydre.com +verisign.biz +verisign.com +verisign.info +verisign.jobs +verisign.mobi +verisign.name +verisign.net +verisign.org +verisign.pro +verisigninc.com +verizon.com +verizon.net +verizonbusinessfios.com +verizondigitalmedia.com +verizonenterprise.com +verizonfios.com +verizonmedia.com +verizonwireless.com +vermonttibet.org +verpeliculasporno.gratis +versavpn.com +versly.com +vervesex.com +verybs.com +verygoodnike.com +veryladyboy.com +veryshortintroductions.com +vevo.com +vfabric.net +vfsco.com +vfsforgit.com +vfsforgit.org +2bit8.com +vgcareers.net +vgg8.com +vhxqa1.com +vhxqa2.com +vhxqa3.com +vhxqa4.com +vhxqa6.com +2beeg.me +via0.com +viacbs.com +viacom.com +viacomcbs.com +viacomcbspressexpress.com +viber.com +vica.info +victimsofcommunism.org +vid.me +vidble.com +viddeo-jav.net +video-jav.net +video-one.com +yigeni.com +yieamnd.com +video01.org +videobam.com +videobreakdown.com +videochampion.com +videodelivery.net +videodesexo.blog +videodetective.com +videojs.com +videolan.org +videoleak.me +videomo.com +videopediaworld.com +videopress.com +videos4sale.com +videos6.com +videosamadoresreais.com +videosdemadurasx.com +yidio.com +videosection.com +videoshorny.com +videoskaseros.com +videosmadeathome.com +videosporno.life +videosxxxnicaragua.top +videoxxxporn.biz +videozzz.com +vidinfo.org +vidmpreview.com +vidown.com +vidspornoduro.com +viet69.dev +viet69.link +viet69.news +vietdaikynguyen.com +viewerswives.net +viewgals.com +viewpointsfromfacebook.com +2beatsdre.com +vijayatemple.org +2adultflashgames.com +vikiporn.com +vilavpn.com +vilavpn.xyz +vilavpn1.xyz +vilavpn2.xyz +vilavpn3.xyz +vilavpn4.xyz +vilavpn5.xyz +vilavpn6.xyz +vilavpn7.xyz +vim.org +vimeo-staging.com +vimeo-staging2.com +vimeo.com +vimeobusiness.com +vimeocdn.com +vimeogoods.com +vimeoondemand.com +vimeostatus.com +vimperator.org +vincnd.com +vine.co +vinniev.com +vintage-erotica-forum.com +vintageamateurporn.com +vintagehomemadesex.com +vintagemedicalpictures.com +vintagexxxfilms.com +vip-beats.com +vip-enterprise.com +vipbeatsbydre.com +vipheadphones.com +vipissy.com +vipmatureporn.com +vipshoes2.com +vipstudiocali.com +viralcum.com +viralporn.com +2789av.com +virginpornlinks.com +virsto.com +virsto.net +virtualearth.net +virtualpartyworld.com +virtualporn.com +virtualrealgay.com +virtualrealporn.com +virtualrealtrans.com +virtualtaboo.com +virtuata.com +265sdwe3.com +visa-atm.com +visa.com +yibei.org +visabank.org +visabg.com +visabusinessinsights.com +visacarddesignlab.com +visacards.com +visacheckout.net +visacheckout.org +visaconciergelac.com +visadigital.com +visadigitalconcierge.com +visadns.com +visaeverywhereshop.com +visafintechfasttrack.com +visafulfillment.com +visaglobalfinance.com +visaicsdirect.com +visaitalia.com +visakorea.com +visaluxuryhotelcollection.com +visaluxuryhotels.com +visamiddleeast.com +visanet.net +visapcsdirect.com +visaplus.com +visasignaturehotels.com +visasoutheasteurope.com +visb.org +visceralgames.com +visibletweets.com +visiontimes.com +visiontimes.net +visiontimesjp.com +265.com +25u.com +visualstudio-staging.com +visualstudio.co +visualstudio.com +visualstudio.net +vital247.org +vitukali.com +viu.com +258porn.com +vivahentai4u.net +vivaldi.com +vivatube.com +vivaxnxx.com +24smile.org +vivthomas.com +vixen.com +vizvaz.com +vjav.com +vk-cdn.me +vk-cdn.net +vk-portal.net +vk.cc +vk.com +vk.design +vk.link +vk.me +vkcache.com +vkgo.app +vklive.app +vkmessenger.app +vkmessenger.com +vkuseraudio.com +vkuserlive.net +vkuservideo.com +vkuservideo.net +vl4x.net +24porn.pro +vllcs.org +vmglobal.net +vmixcore.com +vmmark.com +vmpsoft.com +vmtestdrive.com +vmw.com +vmware-cloudmanagement.com +vmware-techcenter.com +vmware.com +vmware20mosaic.com +vmwareausnews.com +vmwarecertificationvideos.com +vmwarecloud.com +vmwaredemandcenter.com +vmwareemeablog.com +vmwaregrid.com +vmwarehorizon.com +vmwareidentity.com +vmwarelearning.com +vmwarelearningplatform.com +vmwarestuff.com +vmwareusergroupstore.com +vmwareviewpoint.com +vmwarevmc.com +vmwdemo.com +vmwgcomms.com +vmwhorizonair.com +vmwidm-ads.com +vmwidm.com +vmwlabconnect.com +vmwlearningplatform.com +vmworld.com +vmworld2010.com +vmworld2013.com +vmwsalesrewards.com +vmwservices.com +vmwxw.com +24porn.com +yibaochina.com +vnet.link +vnware.net +voaafaanoromoo.com +voaafrique.com +voabambara.com +voabangla.com +voacambodia.com +voacantonese.com +voachinese.com +voachineseblog.com +voadeewanews.com +voadeewaradio.com +voagd.com +voahausa.com +voaindonesia.com +voakorea.com +voalingala.com +voandebele.com +voanews.com +voanoticias.com +voanouvel.com +voaportugues.com +voashona.com +voasomali.com +voaswahili.com +voathai.com +voatibetan.com +voatibetanenglish.com +voatiengviet.com +voatour.com +voazimbabwe.com +vocativ.com +vocus.cc +vod360.net +vodafone.com +24hjav.com +voicettank.org +vokevr.com +vol.moe +2371tom.com +233abc.com +volvo.com +volvobrandshop.com +volvobuses.co +volvobuses.com +volvoce.com +volvodefense.com +volvogroup.com +volvomerchandise.com +volvopenta.com +volvospares.com +volvotrucks.com +yibada.com +volvotrucks.net +vomitkings.com +21sextury.com +vot.org +votolia.com +vovo2000.com +vox-cdn.com +vox.com +voxcreative.com +voxer.com +voxfieldguide.com +voxmedia.com +voxops.net +voy.com +voyeureye.com +voyeurhit.com +voyeurhouse.com +voyeurmonkey.com +voyeurpapa.com +voyeurporntapes.com +voyeurstyle.com +voyeurweb.com +vpejey.xyz +vpn4all.com +vpnaccount.org +vpnaccounts.com +vpnbook.com +vpncomparison.org +vpncoupons.com +vpncup.com +vpndada.com +vpnfan.com +vpnfire.com +vpnfires.biz +vpnforgame.net +vpngate.net +vpngratis.net +vpnhq.com +vpnhub.com +vpninja.net +vpnintouch.com +vpnintouch.net +vpnjack.com +vpnmaster.com +vpnmentor.com +vpnpick.com +vpnpop.com +vpnpronet.com +vpnreactor.com +vpnreviewz.com +vpnsecure.me +vpnshazam.com +vpnshieldapp.com +vpnsp.com +vpntraffic.com +vpntunnel.com +vpnuk.info +vpnunlimitedapp.com +vpnvip.com +vpnworldwide.com +vporn.com +vpornvideos.com +vpro.com +vpro.net +vpser.net +vraiesagesse.net +vrbgay.com +vrfdgswx.xyz +vrfun18.com +vrmtr.com +vrporn.com +vrporncat.com +vrpornjack.com +vrpornmania.com +vrpornranked.com +vrsexgames.biz +vrsmash.com +vrsumo.com +vrv.co +vsallin.net +vscode-cdn.net +vscode-unpkg.net +vscode.dev +vsezoo.com +vsphere.com +vsphere.net +vtsociety.org +vtunnel.com +vtvan.com +21pron.com +vuasanhrong.com +vuku.cc +vulgarx.com +vultr.com +vultryhw.com +vxnbbrs.xyz +vxxsred.xyz +vzw.com +w-mt.co +yhy.cool +w.org +w.wiki +w0512.com +w3.org +w3schools.com +w6un.com +wa.me +waffle1999.com +wahas.com +waigaobu.com +waikeung.org +wailaike.net +wainao.me +waisongcha.com +yho.com +waiwaier.com +wal-mart.com +wal.co +21naturals.com +wallet.com +wallmama.com +wallornot.org +wallpapercasa.com +wallproxy.com +wallsttv.com +21join.com +walmart-content.com +walmart.com +walmart.pharmacy +walmartimages.com +21hub.com +waltermartin.com +waltermartin.org +wanderinghorse.net +wangafu.net +wangjinbo.org +wanglixiong.com +wango.org +wangruoshui.net +wankgames.com +wankizer.com +wankoz.com +wankz.com +wankzvr.com +wanokokorosoh.com +want-daily.com +want-media.com +want520.com +wantblogger.com +wantmywife.com +wanz-factory.com +wapedia.mobi +waplog.com +waranlov.com +yhcw.net +warddogs.com +wariolandshakeit.com +wariowarediy.com +21centuryaccess.com +warp.plus +warroom.org +wasdj.com +waselpro.com +washeng.net +washingtondcbmw.com +washingtonpost.com +waskucity.com +watch-ebay.org +watch-my-gf.com +watch-porn.net +watch8x.com +watchanimeattheoffice.com +watchdisneyfe.com +watchersweb.com +watchespn.com +watchindianporn.net +watchinese.com +watchjavonline.com +watchmyexgf.net +watchmygf.me +watchmygf.net +watchteencam.com +water-and-power.com +waterdamagesandiego.org +waterfox.net +watersex.com +wattpad.com +waveprotocol.org +wawatv.net +waymo.com +waze.com +wballiance.com +wbdnbo.net +wbvm4s.com +wd.com +wdc.com +wdf5.com +wdfiles.com +weareebay.com +wearehairy.com +wearn.com +21andy.com +2047.name +weav.xyz +web-instagram.net +web.app +web.dev +ygugu4.com +web2project.net +webappfieldguide.com +webbang.net +webcam-teen.net +webcamjackers.com +webcammedellin.co +webcamtubexxx.com +2022.dev +webevader.org +webex.com +webflow.com +webfreer.com +webgata.net +webgirlsonline.net +webhosting.com +webjb.org +2021hkcharter.com +webkit.org +webkitgtk.org +weblagu.com +webmoneyinfo.com +webmproject.org +webnovel.com +webobjects.com +webobjects.net +webofknowledge.com +webofscience.com +webpkgcache.com +webrtc.org +webrush.net +webs-tv.net +ygto.com +websitepulse.com +webtoons.com +webtype.com +webwarper.net +webworkerdaily.com +wechatlawsuit.com +weekly-economist.com +weekmag.info +wefightcensorship.org +wefong.com +wegamedeveloper.com +yeyuehuachao13.com +weiboleak.com +weihuo.org +weijingsheng.org +weimi180.com +weiming.info +weinvoiceit.com +weiquanwang.org +2014cheapbeatsbydre.com +weixinbridge.com +weiyuksj.com +weknowporn.com +welcomix.com +wellfuckedwife.com +wellmaturetube.com +welovecock.com +wemigrate.org +wengewang.com +wengewang.org +wenxuecity.com +wenyunchao.com +westca.com +westerndigital.com +westernshugdensociety.org +westernwolves.com +westkit.net +westlaw.com +wet-ass-pussy.com +wetandpuffy.com +wetchicks.org +wetnhorny.com +wetplace.com +wetpussygames.com +wetsextube.com +wexiaobo.org +wezhiyong.org +wezone.net +2013pascherbeatsbydre.com +wfm.com +wforum.com +what-fan.net +whatblocked.com +whatboyswant.com +whatbrowser.org +whatisairwatch.com +whatisworkspaceone.com +whatsapp-plus.info +whatsapp-plus.me +whatsapp-plus.net +whatsapp.cc +whatsapp.com +whatsapp.info +whatsapp.net +whatsapp.org +whatsappbrand.com +whatsonweibo.com +whatthefox.com +wheatseeds.org +wheelockslatin.com +wheelpop.com +wheelworks.net +whengirlsplay.com +whentai.com +whereiswerner.com +wheretowatch.com +whichav.com +whichav.video +whippedass.com +whisolutions.com +whispersystems.org +yeyuehuachao12.com +whitexxxtube.com +who.int +whodns.xyz +whoer.net +wholecitiesfoundation.org +wholefoods.com +wholefoodsmarket.com +wholekidsfoundation.org +wholeplanetfoundation.org +wholesale-exporter1.com +wholesalediscountpurses.com +wholesalefine.com +wholesaleonlinemart.com +wholevideos.com +whonix.org +whoreasianporn.com +whoreshub.com +whoreslag.com +whoreteensex.com +whorevintagesex.com +whosthehost.com +whotalking.com +whvuxtub.com +whychoosehorizon.com +whychooseview.com +whychoosevmwareeuc.com +whyfacebook.com +whyiwantciscotelepresence.com +whylover.com +whynotbi.com +whyx.org +widevine.com +2013newbeatsworld.com +wife-home-videos.com +wifehomeporn.com +wifeinlove.com +wifeinterracialfuck.com +wifeloversporn.com +wifemovies.net +wifesexorgy.com +wifesharingpics.com +wifevideos.net +wifewantstoplay.com +wifi-mx.com +wii-u.com +wiifit.com +wiifitu.com +wiipartyu.com +wiisports.com +wiisportsresort.com +wiiugamepad.com +wiivc.net +wikaba.com +wikawika.xyz +yeyuehuachao11.com +yeyeclub.com +yeswegays.com +yespornpleasexxx.com +wikia.com +yespornplease.com +wikia.org +wikibooks.org +wikidata.org +wikidot.com +wikifeet.com +wikihow.com +wikileaks-forum.com +wikileaks.com +wikileaks.org +wikilivres.info +wikimapia.org +wikimedia.org +wikimediacloud.org +wikimediafoundation.org +wikinews.org +wikipedia.org +wikiquote.org +wikisexguide.com +wikisource.org +wikiunblocked.org +wikiversity.org +wikivoyage.org +wikiwand.com +wiktionary.org +wildammo.com +wildcamporn.com +wildfanny.com +wildfreevideos.com +wildxxxhardcore.com +wiley.com +2013cheapestbeats.com +williamhill.com +willw.net +willyporn.com +2013beatshdcybermonday.com +wimpmusic.com +2013beatsbydreshop.com +windows-int.net +windows.com +windows.net +windowsazure.com +windowscommunity.net +windowsmarketplace.com +windowsphone-int.com +windowsphone.com +windowsphoneme.com +windowssearch.com +windowsuem.com +windowsupdate.com +windscribe.com +windy.com +2013beatsbydrdreshop.com +wingamestore.com +wingy.site +winhec.com +winhec.net +winning11.com +winudf.com +winwhispers.info +wionews.com +wipower.com +wire.com +wired.com +wiredbytes.com +wiredpen.com +wireguard.com +wireless.radio +wirelessreach.com +wiremoneytoirelandwithxoomeasierandcheaper.com +wireshark.org +wisdompubs.org +wise-research.com +wisecoin.com +wiseid.com +wisekey.com +wisevid.com +wish.com +withgoogle.com +withyoutube.com +witnessleeteaching.com +witopia.net +wix-code.com +wix.com +wixanswers.com +wixapps.net +wixipedia.net +wixmp.com +wixsite.com +wixstatic.com +wizcrafts.net +wjbk.org +yespornfree.com +wldfnjh.com +yesasia.com +wmcloud.org +2013beatsbydrdreonline.com +wmflabs.org +wmfusercontent.org +wmt.co +wn.com +wnacg.com +wnacg.link +wnacg.org +wnoaissulli1.com +woeser.com +woesermiddle-way.net +woflthenewsstation.com +wogx.com +wokar.org +wolfatbestbuy.com +wolfatbestbuy.net +wolfax.com +2008xianzhang.info +wolterskluwer.com +womensnikeshox.com +womenwill.com +wonporn.com +wonporn.net +woodmancastingx.com +2000fun.com +woolite.com +woolitecarpet.com +woolyss.com +wordpress.com +wordpress.org +workatruna.com +workerempowerment.org +workers.dev +workersthebig.net +workplace.com +workplaceusecases.com +workspaceair.com +workspaceone.com +world3d.biz +worldcat.org +worldcoinpay.com +worldemojiawards.com +worldemojiday.com +worldescortindex.com +worldhack.com +worldjournal.com +worldofwarcraft.com +worldpornvideos.com +worldscientific.com +worldsecureemail.com +worldsecuresystems.com +worldsex.com +worldsfastestgamer.net +worldvpn.net +wow-life.net +wow.com +wowgirls.com +wowhead.com +wowindianporn.com +wowporn.com +wowpornlist.xyz +wowrk.com +wowstars.com +wowyoungporn.com +woxinghuiguo.com +woyaolian.org +wp-themes.com +wp.com +wpewebkit.org +wpoforum.com +wpvip.com +wqyd.org +wrchina.org +wrenchead.com +wretch.cc +2-hand.info +wsj.com +wsj.jobs +wsj.net +wsjbarrons.com +wsjhk.com +wsjmediakit.com +wsjplus.com +wsjshop.com +wsjwine.com +wtbn.org +1watchmygf.com +1vwapi4d.xyz +wtfpeople.com +wto.org +wuerkaixi.com +wufafangwen.com +wuguoguang.com +wujie.net +wujieliulan.com +wukangrui.net +wumashe.com +wunvb.com +wuso.me +wuw.red +wuxiapple.com +wuyanblog.com +wuyefuli.org +wvm0agb4.me +ww9094.com +wwapple.net +wwe.com +wwe9.com +wwitv.com +wwtbam.com +www-bestbuystores.com +www-facebook.com +www-paypal.info +www-sms-apple.com +yes-news.com +yepporn.com +yeonda.com +100classicbooks.com +yegle.net +yeeyi.com +yeelou.com +yecl.net +yeahteentube.com +100ke.org +ydy.com +ycombinator.com +yazhouse8.com +yayadizhi.xyz +yayabay.com +yaya.cyou +yavtube.com +yatong.info +yastatic.net +yasarang.net +yarnpkg.com +yarininsuyu.com +yaptube.com +yaoyaomumu.com +yaoiotaku.com +yaoimangaonline.com +yaohubaba.com +yangjianli.com +yanghengjun.com +www1.biz +yandexcloud.net +yandex.org +www8-hp.com +wwwapple.com +wwwapple.net +wwwapplemusic.com +wwwdecide.com +wwwebay.com +wwwebay.net +wwwfacebok.com +wwwfacebook.com +wwwhost.biz +wwwhuluplus.com +wwwicloud.com +wwwinstagram.com +wwwipodlounge.com +wwwitunes.com +wwwlapple.com +wwwmacbookair.com +wwwmfacebook.com +wwwpaypass.com +wwwpornhub.pro +wwwwebay.com +wwwxoom.com +wxoyt.com +wyqqdz.com +wzlthw.com +wzmyg.com +wztv8.com +x-art.com +x-artvideo.net +x-berry.com +x-caprice.com +x-fetish.org +x-wall.org +x.co +x.com +x.company +x.org +x.team +x18r.co +x18r.com +x1949x.com +x24hr.com +x365x.com +x3guide.com +x3vid.com +x6av.com +x99av.com +x9wang.com +xacmbq.xyz +xamarin.com +xandr.com +xanga.com +xanimeporn.com +xapplist.com +xattractive.com +xb18.me +xbabe.com +xbabe.mobi +xbahis33.com +xbahis44.com +xbanny.com +xbeegtube.com +xbnat.com +xbookcn.com +xbookcn.net +xbooks.work +xbooru.com +1ucrs.com +xbox.co +xbox.com +xbox.org +xbox360.co +xbox360.com +xbox360.org +xboxab.com +xboxgamepass.com +xboxgamestudios.com +xboxlive.com +xboxone.co +xboxone.com +xboxplayanywhere.com +xboxservices.com +xboxstudios.com +xboyvids.com +xbrasilporno.com +xbtce.com +xcafe.com +xcams.com +xcg123.com +xchina.co +xchina.fun +xcritic.com +xcum.com +xda-cdn.com +xda-developers.com +xdaforums.com +xdir.vip +xdporner.com +xdsummit.com +xdty.org +xecce.com +xemales.com +xenoblade.com +xeon.com +xerotica.com +1pornlist.com +xfantazy.com +xfemaledom.com +1monsterbeatsbydreus.com +xfinity.com +xfockers.com +xfreehd.com +xfuckonline.com +xgames.zone +xgaytube.com +xgirls.webcam +xgmyd.com +xgroovy.com +xh-porn.com +xh.video +xhamster.com +xhamster.desi +xhamster18.com +xhamster18.desi +xhamster2.com +xhamsterlive.com +xhcdn.com +xhot.pro +xianba.net +xianchawang.net +xianqiao.net +xiaobaiwu.com +xiaochuncnjp.com +xiaofu.me +xiaogirls.com +xiaohexie.com +xiaolan.me +xiaoma.org +xiaoyaoge.xyz +xiaxiaoqiang.net +xie56.xyz +xiezhua.com +xindelu.com +xinfhw.com +xing.com +xing66.life +xingrz.me +xinhuanet.org +xinjiangpolicefiles.org +xinmeitulu.com +yandex.net +xinsheng.net +xinshijue.com +xinyubbs.net +xiongpian.com +xiuren.org +xixicui.icu +xizang-zhiye.org +xjavporn.com +xjp.cc +xjtravelguide.com +xkeezmovies.com +xknoop.com +xkontakt18.com +xkorean.cam +xl-gaytube.com +xlecx.org +xlfmtalk.com +xlfmwz.info +xlgirls.com +xlovecam.com +xlstudio.com +xm.com +xmalay.com +xml-training-guide.com +xmovies.com +xmoviesforyou.com +1mobile.com +1lib.limited +xn--3et96bj49ahpq.com +1lib.education +1lib.cloud +1jsa22.vip +1jjdg2.vip +1eew.com +xn--4gq171p.com +xn--4vq475g.com +xn--4vq477m.com +1e100.net +1dumb.com +1drv.com +xn--6eup7j.com +xn--6eup7j.net +xn--74q035i.xn--hxt814e +xn--7hv594h.com +xn--80aaazx1an0a.lol +1classtube.com +1bokeponline.top +1bigclub.com +1bao.org +xn--90wwvt03e.com +xn--9kr7l.com +xn--9pr62r24a.com +xn--9trs65b.com +1998cdp.org +xn--cck4d8b3009a.com +1991way.com +1984bbs.org +xn--czq75pvv1aj5c.org +1984bbs.com +xn--d4ty0ojsqzfd.com +1949er.org +18virginsex.com +xn--fiqs8sxootzz.xn--hxt814e +18sex.org +xn--flw351e.com +18schoolgirlz.me +18qt.com +18push.com +18pornsex.com +xn--ggle-55da.com +xn--gmq92kd2rm1kx34a.com +xn--gogl-0nd52e.com +xn--gogl-1nd42e.com +xn--gtvq61aiijy0b.xn--hxt814e +xn--gtvz22d.wang +xn--gtvz22d.xn--hxt814e +18porncomic.com +18p2p.com +18onlygirls.com +xn--hb4aw0g.com +xn--hckl3e1e8a8ajin0czf.net +xn--hhr917d3fecva.xyz +18novel.xyz +18jms.com +xn--hxtr4rozx.xn--czr694b +xn--i2ru8q2qg.com +18insta.com +18hmanga.com +18hmanga.click +18exgfs.com +18eighteen.com +18doujinshi.xyz +18doujin.com +18commic.com +18comic.vip +xn--kput3imi374g.xn--hxt814e +18comic.org +18comic.company +xn--m1abbbgjah.lol +18comic.cc +18board.info +18board.com +18avx.com +18av.pro +188channel.com +18-teen-xxx.com +18-teen-porn.com +17t17p.com +17mimei.com +17mimei.club +179na.com +177picyy.com +177pic.info +173ng.com +171xx.com +16honeys.com +16fhgdty.xyz +168sex.top +16885858.com +161sex.com +159i.com +141tube.com +141jj.com +141jav.com +141hongkong.com +141-hk.com +138.com +132288.cc +xn--mts47c3w9b1qr.net +xn--mtswd61ejxq.com +12vpn.net +xn--ngstr-lra8j.com +12vpn.com +12joursdecadeauxdeitunes.com +yandex.jobs +12diasderegalosdeitunes.com +xn--oiq.cc +12diasderegalosdeitunes.co +xn--p8j9a0d9c9a.xn--q9jyb4c +xn--pearsonenespaol-brb.com +12diasdepresentesdeitunes.com +12bet.com +xn--q41am8x.com +128100.xyz +126728.net +xn--qoq462m.com +123sex.top +123rf.com +xn--r8jwklh769h2mc880dk1o431a.com +xn--r8jwklh769hk43amcfoyl3z3a.com +xn--ruq8a011kt6y.xn--hxt814e +123hplaserjet.com +123-hp.com +xn--sgt856gbjl.cc +xn--tkry91n.com +xn--ubt498knmf.com +xn--uis17aj9kmuf.com +11jav.com +114av.xyz +112263.com +110xnxx.com +xn--x-qeu1ji09tzlg.biz +xn--x-qeu1ji09tzlg.net +10xfotolia.com +xn--xsq421m.com +xn--xsq605n.com +xn--xsq959n.com +10musume.com +xn--yf1at58a.com +10conditionsoflove.com +10bet.com +xnalgas.com +xnostars.com +xnxvideos.org +xnxx-cdn.com +xnxx-com.cfd +xnxx-sex-tube.com +xnxx-sex-videos.com +xnxx-teens.com +xnxx-tv.net +xnxx-xxx.win +xnxx.com +xnxx.health +xnxx.net +xnxx18.pro +xnxx2.info +xnxx2.org +xnxx2.pro +xnxx3.com +xnxx4porn.com +xnxxarab.cc +xnxxarabsex.com +xnxxcom.club +xnxxcom.xyz +xnxxcomvideos.com +xnxxfap.info +xnxxhamster.net +xnxxhd.biz +xnxxmovies.com +xnxxporn.fun +xnxxpornvid.com +xnxxsexclips.com +xnxxsexmovies.com +xnxxtime.com +xnxxvideos.rest +xnxxx.cc +xo.com +xo104.com +xogogo.com +xoom-experience.com +xoom.com +xoomcom.com +xoteens.com +xoxoteiras.com +xozilla.com +xpaja.net +xpdo.net +xpee.com +10beasts.net +xplr.co +xpoleuno.com +xpornblog.com +xpornplease.com +xposed.info +xpud.org +xrentdvd.com +xsava.xyz +xscale.com +xsden.info +xsela.cc +xshaker.net +xshr.online +xskywalker.com +xskywalker.net +xsrxpwvg.com +xstas.biz +xsvod.xyz +xsz-av.com +xtube.com +xtubebdsm.com +xtubezoo.com +xu97.vip +xuchao.net +xuchao.org +xuite.net +xujan.com +xuzhiyong.net +xv1.monster +xvbelink.com +xvedo.net +xvideo-jp.com +xvideo.cc +xvideo.com +xvideo.run +xvideos-cdn.com +xvideos-dl.top +xvideos-porn-video.com +xvideos-xxxx.com +xvideos.blog +xvideos.co +xvideos.com +xvideos.red +xvideos2.com +xvideos3.com +xvideosamadoras.com +xvideosbrasil.com +xvideosbrasileiro.net +xvideoscom.me +xvideosincesto.com +xvideosjingxiang.com +xvideosnovinha.com +xvideosnovinhas.com +xvideoz.win +xvidios.blog +xvidzz.com +xvinlink.com +xvirtual.com +xvxx.stream +xvxxtube.com +xx-map.com +xx9.app +xxbay.com +xxbb9.com +xxbbx.com +xxbook.cc +xxbrits.com +xxeronetxx.info +xxgasm.com +xxindianporn.com +xxlmovies.com +xxmovz.com +xxnx.rest +xxnxx-porn.com +xxnxx-sex.com +xxu.mobi +xxuz.com +xxvideo.mobi +xxvideoss.org +xxvids.net +101xxx.xyz +xxx-channel.com +xxx-com.cfd +xxx-fap.com +xxx-files.org +xxx-porn-fuck.com +xxx-porn-tube.com +xxx-porn.info +xxx-video.cfd +xxx-ways.com +xxx.com +xxx18.uno +xxx18teen.net +xxx2022.com +xxx2023.com +xxx4hindi.com +xxxaporn.com +xxxassfuck.com +xxxbit.com +xxxbolivianas.com +xxxbule.com +xxxbullet.com +xxxbunker.com +xxxccc4.com +xxxclub.club +xxxcomics.org +xxxdan.com +xxxdesi.cc +xxxdinotube.com +xxxengine.net +xxxfile.org +xxxfiles.com +xxxflare.com +xxxforte.com +xxxfree.watch +xxxfuckmom.com +xxxgames.biz +xxxgames.games +xxxgirls88.com +xxxgratisfilms.com +xxxhd.pro +xxxhdporn.cc +xxxhdvideo.mobi +xxxhentai.net +xxxhentaipics.com +xxxhentaipics.pro +xxxhomefuck.com +xxxhub123.com +xxxhubvideos.com +xxxifuck.com +xxxindianporn2.com +xxxindiantv.com +xxxjapanesemovies.com +xxxland.net +xxxlesbians.me +xxxlucah.com +xxxmaturepussypics.com +xxxmatures.net +xxxmofo.com +xxxmomporn.tube +xxxmovies.fun +xxxmovies.pro +xxxn.me +xxxner.com +xxxnewvideos.com +xxxnu.com +xxxnxx.me +xxxpenguin.com +xxxpicz.com +xxxporn123.com +xxxporndig.com +xxxpornhd.pro +xxxpornmovs.com +xxxpornotuber.com +xxxpornzeed.com +xxxreal.com +xxxscenes.net +xxxsexanal.com +xxxsexcinema.com +xxxsexocasero.com +xxxsextubes.com +xxxsexzoo.com +xxxshame.com +xxxstreams.org +xxxstreams.watch +xxxteenanal.net +xxxtube1.com +xxxtubeasian.net +xxxtubedot.com +xxxtubegf.com +xxxtubenote.com +xxxtubeset.com +xxxtubezoo.com +xxxv.mobi +xxxvideo.one +xxxvideo.vip +xxxvideo.world +xxxvideoamatoriali.com +xxxvideor.com +xxxvideos247.com +xxxvideoszoo.com +xxxvidos.vip +xxxvidso.com +xxxvirtualworld.com +xxxvogue.net +xxxwow.net +xxxxvideo.uno +xxxy.biz +xxxy.info +xxxymovies.com +xxxyoungxxx.com +yandex.com +xys.org +xysblogs.org +xyy69.com +xyy69.info +xzxxporn.com +xzxxtube.com +y2mate.com +yabang.org +yaburi.men +yadori.club +yaeby.info +101tubeporn.com +yahoo.com +yandex.aero +yahoo.me +yahoo.net +yahooapis.com +yahoodns.net +yahoofinance.com +yahoohealth.com +yahoomusic.com +yahoosandbox.com +yahoosportsbook.com +yakbutterblues.com +yam.com +101boyvideos.com +yamaxun.com +yammer.com +yamoon.club +100shmar.net +distribution.qpdp1.net +distribution.qatp1.net +12diasderegalosdeitunes.com.co +xinqimeng.over-blog.com +www2.rocketbbs.com +www2.ohchr.org +ansin.erodayo.com +www.websnapr.com +www.wangruowang.org +www.wan-press.org +www.thechinastory.org +www.taiwanonline.cc +www.tablesgenerator.com +www.s4miniarchive.com +www.pxcc.com +www.powerpointninja.com +www.owind.com +www.orchidbbs.com +www.moztw.org +www.monlamit.org +www.linksalpha.com +www.lamenhu.com +www.klip.me +www.idlcoyote.com +www.googleadapis.com +www.gmiddle.net +www.gmiddle.com +www.eastturkistan.net +www.dwheeler.com +l-0005.dc-msedge.net +www.cmoinc.org +aoaou.iillii.net +www.aolnews.com +www.antd.org +www.ajsands.com +wlx.sowiki.net +wlcnew.jigsy.com +wikia.nocookie.net +wiki.phonegap.com +wiki.oauth.net +wiki.moegirl.org +wiki.cnitter.com +whitebear.freebearblog.org +wego.here.com +website.informer.com +web.nebula-emby.com +warbler.iconfactory.net +waittingfor001.weebly.com +w.idaiwan.com +volvotrucks.com.co +vn.hao123.com +visa.com.co +videosdesexo.br.com +video.fdbox.com +video.aol.com +veet.com.co +vds.rightster.com +vanish.com.co +uygur.fc2web.com +usmgtcg.ning.com +ushuarencity.echainhost.com +yahoo.com.co +update.crashlytics.com +aolchannels.aol.com +unblock.cn.com +twister.net.co +tweets.seraph.me +tw.voa.mobi +tw.streetvoice.com +adult.friendfinder.com +tw.iqiyi.com +tw.hao123.com +tw.gigacircle.com +ap-bangkok.myqcloud.com +tui.orzdream.com +tsuradou.noonvob.com +trans.wenweipo.com +tosh.comedycentral.com +tor.updatestar.com +tor.blingblingsquad.net +timesofindia.indiatimes.com +yomiuri-shimbun.pressreader.com +th.hao123.com +tech2.in.com +tbr.tangbr.net +taiwanyes.ning.com +taiwannation.50webs.com +t.orzdream.com +swpr.livedoor.blog +swingers.theadulthub.com +sunwinism.joinbbs.net +suche.gmx.net +subacme.rerouted.org +strepsils.com.co +ap-hongkong.myqcloud.com +ap-jakarta.myqcloud.com +ap-mumbai.myqcloud.com +ap-seoul.myqcloud.com +ap-singapore.myqcloud.com +ap-southeast-1.myhuaweicloud.com +starbucks.com.co +ss.pythonic.life +ss.levyhsu.com +ss.carryzhou.com +srcf.ucam.org +specxinzl.jigsy.com +spaces.hightail.com +southpark.cc.com +sony.com.co +56cun04.jigsy.com +shopee.com.co +share.ovi.com +ap-southeast-2.myhuaweicloud.com +sekai.colorfulpalette.org +secure.raxcdn.com +secure.logmein.com +search.aol.com +sci.hubg.org +sci-hub.mksa.top +scanservice1.qpdp1.net +scanservice1.qcpp1.net +scanservice1.qatp1.net +sa.hao123.com +sa-saopaulo.myqcloud.com +sa-brazil-1.myhuaweicloud.com +s1.nudezz.com +ru-northwest-2.myhuaweicloud.com +realforum.zkiz.com +rconversation.blogs.com +adult.toonsearch.net +r18.clickme.net +qualysguard.qpdp1.net +qualysguard.qcpp1.net +qualysguard.qatp1.net +qualysapi.qpdp1.net +qualysapi.qcpp1.net +qualysapi.qatp1.net +qpx.googleflights.net +qgadmin.qpdp1.net +qgadmin.qcpp1.net +qgadmin.qatp1.net +qagpublic.qpdp1.net +qagpublic.qcpp1.net +qagpublic.qatp1.net +psiphon.civisec.org +ap-southeast-3.myhuaweicloud.com +porngogo.supertop-100.com +pioneer-worker.forums-free.com +oversea.istarshine.com +oss-us-west-1.aliyuncs.com +oss-us-east-1.aliyuncs.com +oss-me-east-1.aliyuncs.com +oss-eu-west-1.aliyuncs.com +oss-eu-central-1.aliyuncs.com +oss-cn-hongkong.aliyuncs.com +oss-ap-southeast-7.aliyuncs.com +oss-ap-southeast-6.aliyuncs.com +youtube.com.co +oss-ap-southeast-5.aliyuncs.com +oss-ap-southeast-3.aliyuncs.com +oss-ap-southeast-2.aliyuncs.com +oss-ap-southeast-1.aliyuncs.com +oss-ap-south-1.aliyuncs.com +oss-ap-northeast-2.aliyuncs.com +oss-ap-northeast-1.aliyuncs.com +opml.radiotime.com +online.recoveryversion.org +one.one.one +old.nabble.com +old.honeynet.org +ny.stgloballink.com +nitter.pussthecat.org +night.livedoor.biz +nic.cz.cc +news.seehua.com +neotokyo.supertop-100.com +nemesis2.qx.net +nakedsecurity.sophos.com +na-toronto.myqcloud.com +na-siliconvalley.myqcloud.com +na-mexico-1.myhuaweicloud.com +na-ashburn.myqcloud.com +abitno.linpie.com +my.pcloud.com +mx.hao123.com +ac.jiruan.net +academic.eb.com +monitoring.qpdp1.net +monitoring.qcpp1.net +monitoring.qatp1.net +momami18.livedoor.blog +accounts.googlers.com +mo.nightlife141.com +mini.com.co +mini.co.me +mike.cz.cc +mdn.mozit.cloud +mdn.allizom.net +mastercard.com.co +makzhou.warehouse333.com +ma.hao123.com +m.slandr.net +m.plixi.com +legaltech.law.com +ld.hao123img.com +lab.skk.moe +la-south-2.myhuaweicloud.com +la-north-2.myhuaweicloud.com +l-0005.l-msedge.net +www.destinationurl.com +userapi.nytlog.com +xys.dxiong.com +raw.githack.com +adultartlinks.supertop-100.com +kb.monitorware.com +jp.hao123.com +jihadintel.meforum.org +japanfirst.asianfreeforum.com +ironbigfools.compython.net +ipfs.runfission.com +ipfs.fleek.co +ap-tokyo.myqcloud.com +ipfs.anonymize.com +intel.com.co +ae.hao123.com +ifan.cz.cc +af-south-1.myhuaweicloud.com +id.hao123.com +ice.audionow.com +i.lithium.com +htanime.epizy.com +home.sina.com +hoge.7jp.info +hk.jiepang.com +hk.hao123img.com +hk.gradconnection.com +hk.frienddy.com +api.linksalpha.com +hentairank.supertop-100.com +hentai-top100.supertop-100.com +hentai-space.supertop-100.com +help.linksalpha.com +hbomax-images.warnermediacdn.com +api.nebula-emby.com +hanzhen.xmulib.org +ai.binwang.me +h-top.supertop-100.com +gtm.oasisfeng.com +api.proxlet.com +apidocs.linksalpha.com +google.com.co +goagent.codeplex.com +go.nesnode.com +gmozomg.izihost.org +app.box.com +gelbooru.wjcodes.com +gateway.pinata.cloud +foxsports.com.co +fourface.nodesnoop.com +forum.palmislife.com +forum.mymaji.com +forum.my903.com +forum.idsam.com +forum.cyberctm.com +forum.baby-kingdom.com +fonts.googleadapis.com +fontfiles.googleadapis.com +firestonecomercial.com.co +firestone.com.co +firebase-settings.crashlytics.com +fiddle.jshell.net +feeds.fileforum.com +fast.wistia.com +fangong.forums-free.com +eu-west-0.myhuaweicloud.com +eu-moscow.myqcloud.com +eu-frankfurt.myqcloud.com +etools.ncol.com +estudio360.com.co +esg.t91y.com +erodouga.8sp.biz +erodou.tousatu.fun +enfabebe.com.co +en.hao123.com +en.favotter.net +app.evozi.com +app.smartmailcloud.com +ecsm.vs.com +dynupdate.no-ip.com +durex.com.co +download.qpdp1.net +download.qcpp1.net +download.qatp1.net +download.aircrack-ng.org +dlib.eastview.com +dl.box.net +konachan.wjcodes.com +distribution.qcpp1.net +tw.jiepang.com +disneyplus.bn5x.net +apple.com.co +diarrheafan.livedoor.blog +dhlestudio.com.co +developers.box.net +developer.allizom.org +zh.pokerstrategy.com +desire-xx.supertop-100.com +derekhsu.homeip.net +demo.opera-mini.net +data.flurry.com +daodu14.jigsy.com +dajusha.baywords.com +dailynews.sina.com +cyberghost.natado.com +zhao.1984.city +cossgp.myqcloud.com +coshk.myqcloud.com +cosger.myqcloud.com +cosca.myqcloud.com +contests.twilio.com +content.googleadapis.com +cnnews.chosun.com +cnappinstall.googleadapis.com +cn2.streetvoice.com +cn.voa.mobi +cn.streetvoice.com +cn.shafaqna.com +cn.sandscotaicentral.com +cn.ibtimes.com +cn.giganews.com +cn.fmnnow.com +cn.dayabook.com +clickserver.googleads.com +clickserve.cc-dt.com +cldr.unicode.org +cl.d0z.net +chinese.soifind.com +chinese.engadget.com +chinese.donga.com +china.ucanews.com +china-mmm.sa.com +china-mmm.jp.net +ch.shvoong.com +cgkate.jinvod.com +certificate.revocationcheck.com +apple.comscoreresearch.com +cdn.softlayer.net +cdn.seatguru.com +cdn.printfriendly.com +apps5.oingo.com +cdn-images.mailchimp.com +ar.hao123.com +browser.kagi.com +bridgestonecomercial.com.co +bridgestone.com.co +br.hao123.com +book.zi5.me +bolin.netfirms.com +bmw.com.co +blogspot.com.co +blogs.tampabay.com +blogs.libraryinformationtechnology.com +blogs.icerocket.com +blog.tiney.com +blog.taragana.com +blog.syx86.com +blog.soylent.com +blog.sogoo.org +blog.ranxiang.com +blog.pentalogic.net +blog.pathtosharepoint.com +blog.martinoei.com +blog.lester850.info +blog.kangye.org +blog.jackjia.com +blog.istef.info +blog.fuckgfw233.org +blog.foolsmountain.com +blog.fizzik.com +blog.expofutures.com +blog.descargasgay.com +blog.cryptographyengineering.com +blog.calibre-ebook.com +bbs.tuitui.info +bbs.sou-tong.org +bbs.skykiwi.com +bbs.sina.com +bbs.qmzdd.com +bbs.netbig.com +bbs.morbell.com +bbs.mikocon.com +bbs.junglobal.net +bbs.huasing.org +bbs.hasi.wang +bbs.hanminzu.org +bbs.ecstart.com +bbs.brockbbs.com +avail.googleflights.net +av.nightlife141.com +disney-portal.my.onetrust.com +up.gcp.googlers.com +cdn1.lp.saboom.com +hk.file.myqcloud.com +edge-skype-com.s-0001.s-msedge.net +cdn.assets.lfpcontent.com +sgp.file.myqcloud.com +greatfire.us7.list-manage.com +tv.jtbc.joins.com +steam.ru.qtlglb.com +www.zensur.freerk.com +ipfs.eth.aragon.network +steam.apac.qtlglb.com +ger.file.myqcloud.com +ca.file.myqcloud.com +steam.cdn.on.net +steam.eca.qtlglb.com +steam.naeu.qtlglb.com +hbo.com.c.footprint.net +store.apple.com.edgekey.net +edge.steam-dns.top.comcast.net +www.apple.com.edgekey.net +89.64.charter.constitutionalism.solutions +gsp4-cn.ls.apple.com.edgekey.net +regexp:(^|\.)18tv[1-5]\.com$ +regexp:(^|\.)69bag[0-1][1-9]?\.com$ +regexp:(^|\.)783([a-z][a-z]?)?\.tv$ +regexp:(^|\.)7mm0([0-1][0-9]?)?\.com$ +regexp:(^|\.)8dgo[1-57-9]\.com$ +regexp:(^|\.)91porn[0-9]{3}\.me$ +regexp:(^|\.)91p[0-9][0-9]?\.com$ +regexp:(^|\.)91sew1[1-6]\.buzz$ +regexp:(^|\.)989[a-z]?\.tv$ +regexp:(^|\.)99pp[1-9][0-9]\.com$ +regexp:(^|\.)aipa(111|222|333|444|555|666|777|888|999)\.life$ +regexp:(^|\.)aisejushi(2|3|5|6)\.com$ +regexp:(^|\.)avcc1[0-9]\.com$ +regexp:(^|\.)avstar0[1-9]\.(com|me)$ +regexp:(^|\.)banyinjia[0-9]?\.com$ +regexp:(^|\.)bilibili3(0[1-9]|1[0-2])\.xyz$ +regexp:(^|\.)byyum([3589]|2[235689]|3[34]|4[1-9]|5[1-79]|6[0134679])?\.com$ +regexp:(^|\.)cav1(0[2-9]|1[0-9])\.com$ +regexp:(^|\.)cgbb([1-9]|1[0-9]|20)\.com$ +regexp:(^|\.)cosaa[a-z]\.cyou$ +regexp:(^|\.)douyintt[0-9]\.me$ +regexp:(^|\.)dualstack\.apiproxy-.+\.amazonaws\.com$ +regexp:(^|\.)dualstack\.ichnaea-web-.+\.amazonaws\.com$ +regexp:(^|\.)fi11sm([0-9]+)?\.com$ +regexp:(^|\.)fiftymvapi\..+$ +regexp:(^|\.)forduck[0-1][0-9]\.com$ +regexp:(^|\.)gaogediao\.(com|me|net|org)$ +regexp:(^|\.)guifw3[1-3]\.cc$ +regexp:(^|\.)h5ccav[1-5]\.com$ +regexp:(^|\.)hhmen[1-3]\.xyz$ +regexp:(^|\.)hkfg[1-7]\.xyz$ +regexp:(^|\.)jav777\.(cc|tv|work)$ +regexp:(^|\.)jbk0([0-1][0-9]?)?\.com$ +regexp:(^|\.)jdyy[1-9]?\.me$ +regexp:(^|\.)kimoav([1-9][0-9]?)?\.com$ +regexp:(^|\.)ksyp0[1-9]\.com$ +regexp:(^|\.)lianren[1-7]\.cc$ +regexp:(^|\.)loibus(100|101|202|505|606)\.top$ +regexp:(^|\.)loibus\.(cc|com|link)$ +regexp:(^|\.)maa18[0-2][0-9]\.com$ +regexp:(^|\.)mdyy[0-1][0-9]\.com$ +regexp:(^|\.)mdyy[0-9][0-9]\.cc$ +regexp:(^|\.)mimi[0-9]{3}\.com$ +regexp:(^|\.)mimi\.(cfd|lol|onl|sbs|so|vc)$ +regexp:(^|\.)mitao[1-3]\.tv$ +regexp:(^|\.)mmtv[1-5]\.life$ +regexp:(^|\.)mmwz\.(fun|in|la|me|one|pro|pw|run|tv|ws)$ +regexp:(^|\.)putaozy([1-9][0-9]?)?\.com$ +regexp:(^|\.)qqsp0[1-3]\.com$ +regexp:(^|\.)rbp[1-9][0-9]\.com$ +regexp:(^|\.)sao[1-6]0000\.com$ +regexp:(^|\.)sg11[3-9]\.me$ +regexp:(^|\.)spankwire[1-9]\.com$ +regexp:(^|\.)syjc1[1-6]\.xyz$ +regexp:(^|\.)tianbiav([1-9]|1[0-6])?\.com$ +regexp:(^|\.)tqav[1-9][0-9]\.com$ +regexp:(^|\.)ttghg[1-9][0-9]\.xyz$ +regexp:(^|\.)tttv([1-9][0-9]?|100)\.com$ +regexp:(^|\.)tt[1-2][0-9]\.tv$ +regexp:(^|\.)twseb([1-9][0-9]?)?\.com$ +regexp:(^|\.)uu[a-z][1-9][0-9]?\.com$ +regexp:(^|\.)whtdh0[1-3]\.cc$ +regexp:(^|\.)wmm33[0-5]\.com$ +regexp:(^|\.)wyfuli[1-9]\.net$ +regexp:(^|\.)xnkl[3-8]\.cn$ +regexp:(^|\.)yiren[1-9][0-9]\.com$ +regexp:(^|\.)youyuapi\..+$ +regexp:(^|\.)yrrj[1-9]?\.buzz$ +regexp:(^|\.)zh9[0-7]\.net$ +regexp:(^|\.)zztt[1-6][0-9]\.com$ +regexp:(^|\.)zzz[1-9][0-9]\.top$ +regexp:(^|\.)[1-5]gaoap\.com$ +regexp:(^|\.)[1-9]+aipai\.(com|net)$ +regexp:(^|\.)[1-9]+zipai\.(com|net)$ +regexp:(^|\.)[1-9]00caocao\.com$ +regexp:(^|\.)[3-9]0000sao\.com$ +regexp:(^|\.)[a-z]?fulibl\.(cc|com|org|net|xyz)$ +regexp:(^|\.)[a-z][1-9][0-9][a-z]\.com$ +regexp:.+\.ap-bangkok\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-hongkong\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-jakarta\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-mumbai\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-seoul\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-singapore\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.ap-tokyo\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.biz$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.com$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.net$ +regexp:.+\.awsdns-cn-[0-9][0-9]\.top$ +regexp:.+\.awsdns-cn-[0-9][a-e0-9]\.cn$ +regexp:.+\.awsdns-[0-9][0-9]\.com$ +regexp:.+\.awsdns-[0-9][0-9]\.co\.uk$ +regexp:.+\.awsdns-[0-9][0-9]\.net$ +regexp:.+\.awsdns-[0-9][0-9]\.org$ +regexp:.+\.dkr\.ecr\.[^\.]+\.amazonaws\.com$ +regexp:.+\.eu-frankfurt\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.eu-moscow\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.na-ashburn\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.na-siliconvalley\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.na-toronto\.tencentcos\.(cn|com(\.cn)?)$ +regexp:.+\.sa-saopaulo\.tencentcos\.(cn|com(\.cn)?)$ +regexp:github-production-release-asset-[0-9a-zA-Z]{6}\.s3\.amazonaws\.com +regexp:^epicgames-download\d\.akamaized\.net$ +regexp:^ewcdn[0-9]{2}\.nowe\.com$ +regexp:^hses[1-7]?.akamaized.net$ +regexp:^[0-9]+vod-adaptive\.akamaized\.net$ diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml new file mode 100644 index 00000000000..5d0c8a0444a --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml @@ -0,0 +1,154 @@ +# Author: sbwml +# Origin from repository: https://github.com/sbwml/luci-app-mosdns +# Reference: https://github.com/sbwml/luci-app-mosdns/blob/v5/luci-app-mosdns/root/usr/share/mosdns/default.yaml +# Modify by: XiaoliChan +log: + level: info +plugins: + # Num0: Cache + - tag: lazy_cache + type: cache + args: + size: 20000 + lazy_cache_ttl: 86400 + + # Num1: CN domain + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/direct-list.txt + # cat direct-list.txt | grep -v "regexp:\|full:" | sort -u | uniq -u > china-domain-2.lst + - tag: geosite_cn + type: domain_set + args: + files: + - "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt" + - "/etc/ssrplus/white.list" + + # Num2: CN IP + # https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt + - tag: geoip_cn + type: ip_set + args: + files: + - "/etc/ssrplus/china_ssr.txt" + + # Num3: Domain need proxy (gfwlist) + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/gfw.txt + - tag: geosite_not_cn + type: domain_set + args: + files: + - "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt" + - "/etc/ssrplus/black.list" + + # Num4: Forward to google + - tag: forward_remote + type: forward + args: + concurrent: 2 + upstreams: + + # Num5: Forward to local + # ifstatus wan | jsonfilter -e '@["dns-server"]' + - tag: forward_local + type: forward + args: + concurrent: 2 + upstreams: + + # Num6 + - tag: local_sequence + type: sequence + args: + - exec: $forward_local + + # Num7 + - tag: remote_sequence_with_IPv6 + type: sequence + args: + - exec: prefer_ipv4 + - exec: $forward_remote + + # Num8 + - tag: remote_sequence_disable_IPv6 + type: sequence + args: + - exec: prefer_ipv4 + - exec: $forward_remote + - matches: + - qtype 28 65 + exec: reject 0 + + # Num9 + - tag: query_is_local_domain + type: sequence + args: + - matches: qname $geosite_cn + exec: $local_sequence + + # Num10 + - tag: query_is_proxy_domain + type: sequence + args: + - matches: qname $geosite_not_cn + - exec: ipset blacklist,inet,24 + + # fallback 用本地服务器 sequence + # 返回非国内 ip 则 drop_resp + # Num11 + - tag: query_is_local_ip + type: sequence + args: + - exec: $local_sequence + - matches: "!resp_ip $geoip_cn" + exec: drop_resp + + # Num12 + # fallback 用远程服务器 sequence + - tag: query_is_remote_ip + type: sequence + args: + - exec: $remote_sequence_disable_IPv6 + - exec: ipset blacklist,inet,24 + + # fallback 用远程服务器 sequence + # query_is_local_ip to query_is_remote_ip + # Num13 + - tag: fallback + type: fallback + args: + # DNS Leak solution + primary: query_is_local_ip + secondary: query_is_remote_ip + threshold: 600 + always_standby: true + + # 有响应终止返回 + # Num14 + - tag: has_resp_sequence + type: sequence + args: + - matches: has_resp + exec: accept + + # Num15 + - tag: main_sequence + type: sequence + args: + - exec: $lazy_cache + - exec: $query_is_local_domain + - exec: jump has_resp_sequence + - exec: $query_is_proxy_domain + - exec: jump has_resp_sequence + - exec: $fallback + + # Num16 + - tag: udp_server + type: udp_server + args: + entry: main_sequence + + # Num17 + - tag: tcp_server + type: tcp_server + args: + entry: main_sequence diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml index a0b9f5c5617..00facaa76c4 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml @@ -33,11 +33,9 @@ plugins: type: udp_server args: entry: DNS_MODE - listen: 0.0.0.0:DNS_PORT - tag: tcp_server type: tcp_server args: entry: DNS_MODE - listen: 0.0.0.0:DNS_PORT diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index f637d5090a9..30fef133e62 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -111,8 +111,8 @@ while [ "1" == "1" ]; do #死循环 logger -t "$NAME" "mosdns tunnel error.restart!" echolog "mosdns tunnel error.restart!" dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type mosdns) mosdns start -c /etc/mosdns/config.yaml + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | grep $mosdns_config_file | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file fi fi #chinadns-ng diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh b/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh new file mode 100755 index 00000000000..34fcc2baecf --- /dev/null +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +rm -rf /tmp/geo* + +#wget --no-check-certificate -q -O /tmp/geoip.dat https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat +wget --no-check-certificate -q -O /tmp/geosite.dat https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat + +remove_full_string() { + temp_file="$(echo "$1" | awk -F '.' '{print $1"-temp."$2}')" + temp_file2="$(echo "$1" | awk -F '.' '{print $1"-temp2."$2}')" + cat $1 | grep 'full:' | awk -F 'full:' '{print $2}' > $temp_file + cat $1 | grep -v 'full:' > $temp_file2 + cat $temp_file $temp_file2 | sort -u | uniq -u > $1 + rm -rf $temp_file $temp_file2 +} + +clean_up() { + temp_file="$(echo "$1" | awk -F '.' '{print $1"-temp."$2}')" + diff $1 $2 | grep '< ' | awk -F '< ' '{print $2}' > $temp_file + mv $temp_file $1 +} + +merge_file() { + temp_file="/tmp/merged" + cat $1 $2 | sort -u | uniq -u > $temp_file + mv $temp_file $2 +} + +if [ -f "/tmp/geosite.dat" ]; then + #v2dat unpack geosite -o /tmp/ -f cn -f apple-cn -f google-cn -f geolocation-!cn /tmp/geosite.dat + v2dat unpack geosite -o /tmp/ -f cn -f google-cn -f geolocation-!cn /tmp/geosite.dat + remove_full_string /tmp/geosite_cn.txt + #remove_full_string /tmp/geosite_apple-cn.txt + remove_full_string /tmp/geosite_google-cn.txt + remove_full_string /tmp/geosite_geolocation-!cn.txt + clean_up /tmp/geosite_cn.txt /tmp/geosite_google-cn.txt + merge_file /tmp/geosite_google-cn.txt /tmp/geosite_geolocation-!cn.txt + mv /tmp/geosite_cn.txt /etc/ssrplus/mosdns-chinadns/geosite_cn.txt + mv /tmp/geosite_geolocation-!cn.txt /etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt + rm -rf /tmp/geosite* + echo 111 +else + echo 000 +fi diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index e49825efa09..94784b1c6c3 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -184,6 +184,16 @@ if args then update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args) os.exit(0) end + if args == "geo_data" then + string = luci.sys.exec("/usr/share/shadowsocksr/geodata_update.sh") + if string.find(string, "111") then + icount = luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite* | wc -l") + log(0, tonumber(icount)) + else + log(-1) + end + os.exit(0) + end else log("正在更新【GFW列表】数据库") update(uci:get_first("shadowsocksr", "global", "gfwlist_url"), "/etc/ssrplus/gfw_list.conf", "gfw_data", TMP_DNSMASQ_PATH .. "/gfw_list.conf") diff --git a/v2dat/Makefile b/v2dat/Makefile new file mode 100644 index 00000000000..29f5d229ac3 --- /dev/null +++ b/v2dat/Makefile @@ -0,0 +1,46 @@ +# +# Copyright (C) 2015-2016 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v3. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=v2dat +PKG_SOURCE_DATE:=2022-12-15 +PKG_SOURCE_VERSION:=47b8ee51fb528e11e1a83453b7e767a18d20d1f7 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/urlesistiana/v2dat/tar.gz/$(PKG_SOURCE_VERSION)? +PKG_HASH:=dca45a31006aca3dba5f543f6990ca755ffb2bde8e533cc2bbe6bac9ec12f157 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION) + +PKG_LICENSE:=GPL-3.0 +PKG_LICENSE_FILE:=LICENSE +PKG_MAINTAINER:=sbwml + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 + +GO_PKG:=github.com/urlesistiana/v2dat + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/v2dat + SECTION:=utils + CATEGORY:=Utilities + TITLE:=V2ray geo/ip data unpack tools + URL:=https://github.com/urlesistiana/v2dat + DEPENDS:=$(GO_ARCH_DEPENDS) +endef + +GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0 + +define Package/v2dat/install + $(call GoPackage/Package/Install/Bin,$(1)) +endef + +$(eval $(call GoBinPackage,v2dat)) +$(eval $(call BuildPackage,v2dat)) diff --git a/v2dat/patches/100-format-logtime.patch b/v2dat/patches/100-format-logtime.patch new file mode 100644 index 00000000000..ba18ffc9528 --- /dev/null +++ b/v2dat/patches/100-format-logtime.patch @@ -0,0 +1,47 @@ +From 7c6a252ab3f7d9aeb743f9fa8d0cc8c7402f984d Mon Sep 17 00:00:00 2001 +From: sbwml +Date: Wed, 20 Sep 2023 20:52:27 +0800 +Subject: [PATCH] format logtime + +--- + mlog/logger.go | 15 +++++++++++++-- + 1 file changed, 13 insertions(+), 2 deletions(-) + +diff --git a/mlog/logger.go b/mlog/logger.go +index c8b08a9..b44c88d 100644 +--- a/mlog/logger.go ++++ b/mlog/logger.go +@@ -1,17 +1,28 @@ + package mlog + +-import "go.uber.org/zap" ++import ( ++ "time" ++ ++ "go.uber.org/zap" ++ "go.uber.org/zap/zapcore" ++) + + var logger = mustInitLogger() + + func mustInitLogger() *zap.Logger { +- l, err := zap.NewDevelopment(zap.WithCaller(false)) ++ config := zap.NewDevelopmentConfig() ++ config.EncoderConfig.EncodeTime = customTimeEncoder ++ l, err := config.Build(zap.WithCaller(false)) + if err != nil { + panic("failed to init mlog:" + err.Error()) + } + return l + } + ++func customTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) { ++ enc.AppendString(t.Format("2006-01-02 15:04:05")) ++} ++ + func L() *zap.Logger { + return logger + } +-- +2.34.8 + From 4dbd29ee826613294d434d06ea49a8ee93349413 Mon Sep 17 00:00:00 2001 From: XiaoliChan <30458572+XiaoliChan@users.noreply.github.com> Date: Thu, 9 Nov 2023 15:14:12 +0800 Subject: [PATCH 447/972] luci-app-ssr-plus: `mosdns` switch config file to json format (#1326) Signed-off-by: XiaoliChan <30458572+XiaoliChan@users.noreply.github.com> --- luci-app-ssr-plus/Makefile | 4 +- .../root/etc/init.d/shadowsocksr | 57 ++--- .../etc/ssrplus/mosdns-config-chinadns.json | 202 ++++++++++++++++++ .../etc/ssrplus/mosdns-config-chinadns.yaml | 154 ------------- .../root/etc/ssrplus/mosdns-config.json | 71 ++++++ .../root/etc/ssrplus/mosdns-config.yaml | 41 ---- 6 files changed, 304 insertions(+), 225 deletions(-) create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 33173f39157..d2ae4c74c63 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=190 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -42,7 +42,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:mosdns \ - +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:yq \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:jq \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:v2dat \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:diffutils \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index e28483d512f..9a8a843707b 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -99,9 +99,9 @@ get_host_ip() { echo $ip } -yq_ssr() { +jq_ssr() { temp_file="$(echo "$2" | awk -F '.' '{print $1"-temp."$2}')" - cat $2 | yq e "$1" -M > "$temp_file" + cat $2 | jq "$1" > "$temp_file" mv "$temp_file" "$2" } @@ -219,45 +219,45 @@ start_dns() { local mosdns_dnsleak="$(uci_get_by_type global mosdns_dnsleak)" local netflix_enable="$(uci_get_by_type global netflix_enable)" if [ "$run_mode" = "router" ] && [ -n "$chinadns_mosdns" ]; then - mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.yaml" - cp /etc/ssrplus/mosdns-config-chinadns.yaml $mosdns_config_file + mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.json" + cp /etc/ssrplus/mosdns-config-chinadns.json $mosdns_config_file tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do dnsserver=${i%:*} dnsserver=${i##*/} add_dns_into_ipset $run_mode $dnsserver - yq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + jq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file done) if [ "$chinadns_mosdns" = "wan" ]; then wandns=$(ifstatus wan | jsonfilter -e '@["dns-server"]' | sed 's/\[//g; s/\]//g' | sed 's/"//g' | sed 's/ //g' | sed 's/,/ /g') tmp=$(for i in $(echo $wandns); do i="udp://$i:53" - yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + jq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file done) else tmp=$(for i in $(echo $chinadns_mosdns | sed "s/,/ /g"); do - yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + jq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file done) fi if [ "$mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file + jq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file else - yq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file + jq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file fi if [ "$mosdns_dnsleak" != "0" ]; then - yq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file + jq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file fi - yq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + jq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file if [ "$netflix_enable" == 1 ]; then - yq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file - yq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file + jq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file + jq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file + jq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file + jq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file + jq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file fi pdnsd_enable_flag=3 @@ -268,21 +268,21 @@ start_dns() { server=127.0.0.1#$dns_port EOF else - mosdns_config_file="$TMP_PATH/mosdns-config.yaml" - cp /etc/ssrplus/mosdns-config.yaml $mosdns_config_file + mosdns_config_file="$TMP_PATH/mosdns-config.json" + cp /etc/ssrplus/mosdns-config.json $mosdns_config_file tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do dnsserver=${i%:*} dnsserver=${i##*/} add_dns_into_ipset $run_mode $dnsserver - yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + jq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file done) if [ "$mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file + jq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file else - yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file + jq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file fi - yq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + jq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file pdnsd_enable_flag=3 ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file fi @@ -551,18 +551,19 @@ shunt_dns_command() { 2) local shunt_mosdns_disable_ipv6="$(uci_get_by_type global shunt_mosdns_disable_ipv6)" local shunt_mosdns_dnsserver="$(uci_get_by_type global shunt_mosdns_dnsserver)" - cp /etc/ssrplus/mosdns-config.yaml $TMP_PATH/mosdns-config-shunt.yaml + mosdns_shunt_config_file="$TMP_PATH/mosdns-config-shunt.json" + cp /etc/ssrplus/mosdns-config.json $mosdns_shunt_config_file tmp=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do - yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $TMP_PATH/mosdns-config-shunt.yaml + jq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $mosdns_shunt_config_file done) if [ "$shunt_mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml + jq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_shunt_config_file else - yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml + jq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_shunt_config_file fi - yq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $TMP_PATH/mosdns-config-shunt.yaml - ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config-shunt.yaml + jq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $mosdns_shunt_config_file + ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_shunt_config_file ;; esac } diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json new file mode 100644 index 00000000000..4524ed0fdfa --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json @@ -0,0 +1,202 @@ +{ + "log": { + "level": "info" + }, + "plugins": [ + { + "tag": "lazy_cache", + "type": "cache", + "args": { + "size": 20000, + "lazy_cache_ttl": 86400 + } + }, + { + "tag": "geosite_cn", + "type": "domain_set", + "args": { + "files": [ + "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt", + "/etc/ssrplus/white.list" + ] + } + }, + { + "tag": "geoip_cn", + "type": "ip_set", + "args": { + "files": [ + "/etc/ssrplus/china_ssr.txt" + ] + } + }, + { + "tag": "geosite_not_cn", + "type": "domain_set", + "args": { + "files": [ + "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt", + "/etc/ssrplus/black.list" + ] + } + }, + { + "tag": "forward_remote", + "type": "forward", + "args": { + "concurrent": 2, + "upstreams": null + } + }, + { + "tag": "forward_local", + "type": "forward", + "args": { + "concurrent": 2, + "upstreams": null + } + }, + { + "tag": "local_sequence", + "type": "sequence", + "args": [ + { + "exec": "$forward_local" + } + ] + }, + { + "tag": "remote_sequence_with_IPv6", + "type": "sequence", + "args": [ + { + "exec": "$forward_remote" + } + ] + }, + { + "tag": "remote_sequence_disable_IPv6", + "type": "sequence", + "args": [ + { + "exec": "prefer_ipv4" + }, + { + "exec": "$forward_remote" + }, + { + "matches": [ + "qtype 28 65" + ], + "exec": "reject 0" + } + ] + }, + { + "tag": "query_is_local_domain", + "type": "sequence", + "args": [ + { + "matches": "qname $geosite_cn", + "exec": "$local_sequence" + } + ] + }, + { + "tag": "query_is_proxy_domain", + "type": "sequence", + "args": [ + { + "matches": "qname $geosite_not_cn" + }, + { + "exec": "ipset blacklist,inet,24" + } + ] + }, + { + "tag": "query_is_local_ip", + "type": "sequence", + "args": [ + { + "exec": "$local_sequence" + }, + { + "matches": "!resp_ip $geoip_cn", + "exec": "drop_resp" + } + ] + }, + { + "tag": "query_is_remote_ip", + "type": "sequence", + "args": [ + { + "exec": "$remote_sequence_disable_IPv6" + }, + { + "exec": "ipset blacklist,inet,24" + } + ] + }, + { + "tag": "fallback", + "type": "fallback", + "args": { + "primary": "query_is_local_ip", + "secondary": "query_is_remote_ip", + "threshold": 600, + "always_standby": true + } + }, + { + "tag": "has_resp_sequence", + "type": "sequence", + "args": [ + { + "matches": "has_resp", + "exec": "accept" + } + ] + }, + { + "tag": "main_sequence", + "type": "sequence", + "args": [ + { + "exec": "$lazy_cache" + }, + { + "exec": "$query_is_local_domain" + }, + { + "exec": "jump has_resp_sequence" + }, + { + "exec": "$query_is_proxy_domain" + }, + { + "exec": "jump has_resp_sequence" + }, + { + "exec": "$fallback" + } + ] + }, + { + "tag": "udp_server", + "type": "udp_server", + "args": { + "entry": "main_sequence" + } + }, + { + "tag": "tcp_server", + "type": "tcp_server", + "args": { + "entry": "main_sequence" + } + } + ] +} + diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml deleted file mode 100644 index 5d0c8a0444a..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml +++ /dev/null @@ -1,154 +0,0 @@ -# Author: sbwml -# Origin from repository: https://github.com/sbwml/luci-app-mosdns -# Reference: https://github.com/sbwml/luci-app-mosdns/blob/v5/luci-app-mosdns/root/usr/share/mosdns/default.yaml -# Modify by: XiaoliChan -log: - level: info -plugins: - # Num0: Cache - - tag: lazy_cache - type: cache - args: - size: 20000 - lazy_cache_ttl: 86400 - - # Num1: CN domain - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/direct-list.txt - # cat direct-list.txt | grep -v "regexp:\|full:" | sort -u | uniq -u > china-domain-2.lst - - tag: geosite_cn - type: domain_set - args: - files: - - "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt" - - "/etc/ssrplus/white.list" - - # Num2: CN IP - # https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt - - tag: geoip_cn - type: ip_set - args: - files: - - "/etc/ssrplus/china_ssr.txt" - - # Num3: Domain need proxy (gfwlist) - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/gfw.txt - - tag: geosite_not_cn - type: domain_set - args: - files: - - "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt" - - "/etc/ssrplus/black.list" - - # Num4: Forward to google - - tag: forward_remote - type: forward - args: - concurrent: 2 - upstreams: - - # Num5: Forward to local - # ifstatus wan | jsonfilter -e '@["dns-server"]' - - tag: forward_local - type: forward - args: - concurrent: 2 - upstreams: - - # Num6 - - tag: local_sequence - type: sequence - args: - - exec: $forward_local - - # Num7 - - tag: remote_sequence_with_IPv6 - type: sequence - args: - - exec: prefer_ipv4 - - exec: $forward_remote - - # Num8 - - tag: remote_sequence_disable_IPv6 - type: sequence - args: - - exec: prefer_ipv4 - - exec: $forward_remote - - matches: - - qtype 28 65 - exec: reject 0 - - # Num9 - - tag: query_is_local_domain - type: sequence - args: - - matches: qname $geosite_cn - exec: $local_sequence - - # Num10 - - tag: query_is_proxy_domain - type: sequence - args: - - matches: qname $geosite_not_cn - - exec: ipset blacklist,inet,24 - - # fallback 用本地服务器 sequence - # 返回非国内 ip 则 drop_resp - # Num11 - - tag: query_is_local_ip - type: sequence - args: - - exec: $local_sequence - - matches: "!resp_ip $geoip_cn" - exec: drop_resp - - # Num12 - # fallback 用远程服务器 sequence - - tag: query_is_remote_ip - type: sequence - args: - - exec: $remote_sequence_disable_IPv6 - - exec: ipset blacklist,inet,24 - - # fallback 用远程服务器 sequence - # query_is_local_ip to query_is_remote_ip - # Num13 - - tag: fallback - type: fallback - args: - # DNS Leak solution - primary: query_is_local_ip - secondary: query_is_remote_ip - threshold: 600 - always_standby: true - - # 有响应终止返回 - # Num14 - - tag: has_resp_sequence - type: sequence - args: - - matches: has_resp - exec: accept - - # Num15 - - tag: main_sequence - type: sequence - args: - - exec: $lazy_cache - - exec: $query_is_local_domain - - exec: jump has_resp_sequence - - exec: $query_is_proxy_domain - - exec: jump has_resp_sequence - - exec: $fallback - - # Num16 - - tag: udp_server - type: udp_server - args: - entry: main_sequence - - # Num17 - - tag: tcp_server - type: tcp_server - args: - entry: main_sequence diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json new file mode 100644 index 00000000000..353c75fe77e --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json @@ -0,0 +1,71 @@ +{ + "log": { + "level": "info" + }, + "plugins": [ + { + "tag": "lazy_cache", + "type": "cache", + "args": { + "size": 8000, + "lazy_cache_ttl": 86400 + } + }, + { + "tag": "forward_google", + "type": "forward", + "args": { + "concurrent": 2, + "upstreams": null + } + }, + { + "tag": "main_sequence_disable_IPv6", + "type": "sequence", + "args": [ + { + "exec": "$lazy_cache" + }, + { + "exec": "prefer_ipv4" + }, + { + "exec": "$forward_google" + }, + { + "matches": [ + "qtype 28 65" + ], + "exec": "reject 0" + } + ] + }, + { + "tag": "main_sequence_with_IPv6", + "type": "sequence", + "args": [ + { + "exec": "$lazy_cache" + }, + { + "exec": "$forward_google" + } + ] + }, + { + "tag": "udp_server", + "type": "udp_server", + "args": { + "entry": "DNS_MODE" + } + }, + { + "tag": "tcp_server", + "type": "tcp_server", + "args": { + "entry": "DNS_MODE" + } + } + ] +} + diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml deleted file mode 100644 index 00facaa76c4..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml +++ /dev/null @@ -1,41 +0,0 @@ -log: - level: info -plugins: - - tag: lazy_cache - type: cache - args: - size: 8000 - lazy_cache_ttl: 86400 - - - tag: forward_google - type: forward - args: - concurrent: 2 - upstreams: - - - tag: main_sequence_disable_IPv6 - type: sequence - args: - - exec: $lazy_cache - - exec: prefer_ipv4 - - exec: $forward_google - - matches: - - qtype 28 65 - exec: reject 0 - - - tag: main_sequence_with_IPv6 - type: sequence - args: - - exec: $lazy_cache - - exec: $forward_google - - - tag: udp_server - type: udp_server - args: - entry: DNS_MODE - - - tag: tcp_server - type: tcp_server - args: - entry: DNS_MODE - From acd6e56e61a1f8000666f28e374588764f5f5d5b Mon Sep 17 00:00:00 2001 From: XiaoliChan <30458572+XiaoliChan@users.noreply.github.com> Date: Sat, 11 Nov 2023 00:43:09 +0800 Subject: [PATCH 448/972] mosdns: add new package (#1330) fix #1329 --- mosdns/Makefile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 mosdns/Makefile diff --git a/mosdns/Makefile b/mosdns/Makefile new file mode 100644 index 00000000000..c4a68f16cef --- /dev/null +++ b/mosdns/Makefile @@ -0,0 +1,46 @@ +# SPDX-License-Identifier: GPL-3.0-only +# +# Copyright (C) 2021 ImmortalWrt.org + +include $(TOPDIR)/rules.mk + +PKG_NAME:=mosdns +PKG_VERSION:=5.3.1 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=7c8c795de794df52fd2b51214826aea9ebde0dcd0da78d8dda9cc5e4ab98cd80 + +PKG_LICENSE:=GPL-3.0 +PKG_LICENSE_FILE:=LICENSE +PKG_MAINTAINER:=Tianling Shen + +PKG_BUILD_DEPENDS:=golang/host +PKG_BUILD_PARALLEL:=1 +PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 + +GO_PKG:=github.com/IrineSistiana/mosdns +GO_PKG_LDFLAGS_X:=main.version=v$(PKG_VERSION) + +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk + +define Package/mosdns + SECTION:=net + CATEGORY:=Network + SUBMENU:=IP Addresses and Names + TITLE:=A plug-in DNS forwarder/splitter + URL:=https://github.com/IrineSistiana/mosdns + DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle +endef + +GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0 + +define Package/mosdns/install + $(call GoPackage/Package/Install/Bin,$(1)) +endef + +$(eval $(call GoBinPackage,mosdns)) +$(eval $(call BuildPackage,mosdns)) From 8756dde1baf7b0f3698d9ac14ae0ee757ef70fa5 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sun, 12 Nov 2023 13:47:13 +0800 Subject: [PATCH 449/972] CI: bump SDK to v5 Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 09408a879fd..7365c083666 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -69,10 +69,12 @@ jobs: echo "PACKAGES=$PACKAGES" >> $GITHUB_ENV - name: Build - uses: immortalwrt/gh-action-sdk@v4.1 + uses: immortalwrt/gh-action-sdk@v5 env: - ARCH: ${{ matrix.arch }}-${{ env.BRANCH }} + ARCH: ${{ matrix.arch }} FEEDNAME: packages_ci + INDEX: 1 + V: s - name: Move created packages to project dir run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.ipk . || true @@ -98,8 +100,10 @@ jobs: Download-URL: $GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID Summary: $PACKAGES Platform: ${{ matrix.arch }} + Packages for ImmortalWrt $BRANCH running on ${{matrix.arch}}, built from PR $PRNUMBER at commit $HEAD_ID, against $BRANCH at commit $BASE_ID, with merge SHA $MERGE_ID. + Modified packages: _EOF_ for p in $PACKAGES @@ -116,6 +120,8 @@ jobs: with: name: ${{env.ARCHIVE_NAME}}-packages path: | + Packages + Packages.* *.ipk PKG-INFO From 6d8320550b1066bc55b967053654be48baa3d796 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 12 Nov 2023 13:51:42 +0800 Subject: [PATCH 450/972] Revert "luci-app-ssr-plus: `mosdns` switch config file to json format (#1326)" This reverts commit 4dbd29ee826613294d434d06ea49a8ee93349413. --- luci-app-ssr-plus/Makefile | 4 +- .../root/etc/init.d/shadowsocksr | 57 +++-- .../etc/ssrplus/mosdns-config-chinadns.json | 202 ------------------ .../etc/ssrplus/mosdns-config-chinadns.yaml | 154 +++++++++++++ .../root/etc/ssrplus/mosdns-config.json | 71 ------ .../root/etc/ssrplus/mosdns-config.yaml | 41 ++++ 6 files changed, 225 insertions(+), 304 deletions(-) delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index d2ae4c74c63..33173f39157 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=190 -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -42,7 +42,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:mosdns \ - +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:jq \ + +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:yq \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:v2dat \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:diffutils \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 9a8a843707b..e28483d512f 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -99,9 +99,9 @@ get_host_ip() { echo $ip } -jq_ssr() { +yq_ssr() { temp_file="$(echo "$2" | awk -F '.' '{print $1"-temp."$2}')" - cat $2 | jq "$1" > "$temp_file" + cat $2 | yq e "$1" -M > "$temp_file" mv "$temp_file" "$2" } @@ -219,45 +219,45 @@ start_dns() { local mosdns_dnsleak="$(uci_get_by_type global mosdns_dnsleak)" local netflix_enable="$(uci_get_by_type global netflix_enable)" if [ "$run_mode" = "router" ] && [ -n "$chinadns_mosdns" ]; then - mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.json" - cp /etc/ssrplus/mosdns-config-chinadns.json $mosdns_config_file + mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.yaml" + cp /etc/ssrplus/mosdns-config-chinadns.yaml $mosdns_config_file tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do dnsserver=${i%:*} dnsserver=${i##*/} add_dns_into_ipset $run_mode $dnsserver - jq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + yq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file done) if [ "$chinadns_mosdns" = "wan" ]; then wandns=$(ifstatus wan | jsonfilter -e '@["dns-server"]' | sed 's/\[//g; s/\]//g' | sed 's/"//g' | sed 's/ //g' | sed 's/,/ /g') tmp=$(for i in $(echo $wandns); do i="udp://$i:53" - jq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file done) else tmp=$(for i in $(echo $chinadns_mosdns | sed "s/,/ /g"); do - jq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file + yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file done) fi if [ "$mosdns_disable_ipv6" == "0" ]; then - jq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file + yq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file else - jq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file + yq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file fi if [ "$mosdns_dnsleak" != "0" ]; then - jq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file + yq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file fi - jq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + yq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file if [ "$netflix_enable" == 1 ]; then - jq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file - jq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file - jq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file - jq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file - jq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file + yq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file + yq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file fi pdnsd_enable_flag=3 @@ -268,21 +268,21 @@ start_dns() { server=127.0.0.1#$dns_port EOF else - mosdns_config_file="$TMP_PATH/mosdns-config.json" - cp /etc/ssrplus/mosdns-config.json $mosdns_config_file + mosdns_config_file="$TMP_PATH/mosdns-config.yaml" + cp /etc/ssrplus/mosdns-config.yaml $mosdns_config_file tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do dnsserver=${i%:*} dnsserver=${i##*/} add_dns_into_ipset $run_mode $dnsserver - jq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file + yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file done) if [ "$mosdns_disable_ipv6" == "0" ]; then - jq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file + yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file else - jq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file + yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file fi - jq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file + yq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file pdnsd_enable_flag=3 ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file fi @@ -551,19 +551,18 @@ shunt_dns_command() { 2) local shunt_mosdns_disable_ipv6="$(uci_get_by_type global shunt_mosdns_disable_ipv6)" local shunt_mosdns_dnsserver="$(uci_get_by_type global shunt_mosdns_dnsserver)" - mosdns_shunt_config_file="$TMP_PATH/mosdns-config-shunt.json" - cp /etc/ssrplus/mosdns-config.json $mosdns_shunt_config_file + cp /etc/ssrplus/mosdns-config.yaml $TMP_PATH/mosdns-config-shunt.yaml tmp=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do - jq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $mosdns_shunt_config_file + yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $TMP_PATH/mosdns-config-shunt.yaml done) if [ "$shunt_mosdns_disable_ipv6" == "0" ]; then - jq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_shunt_config_file + yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml else - jq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_shunt_config_file + yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml fi - jq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $mosdns_shunt_config_file - ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_shunt_config_file + yq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $TMP_PATH/mosdns-config-shunt.yaml + ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config-shunt.yaml ;; esac } diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json deleted file mode 100644 index 4524ed0fdfa..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.json +++ /dev/null @@ -1,202 +0,0 @@ -{ - "log": { - "level": "info" - }, - "plugins": [ - { - "tag": "lazy_cache", - "type": "cache", - "args": { - "size": 20000, - "lazy_cache_ttl": 86400 - } - }, - { - "tag": "geosite_cn", - "type": "domain_set", - "args": { - "files": [ - "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt", - "/etc/ssrplus/white.list" - ] - } - }, - { - "tag": "geoip_cn", - "type": "ip_set", - "args": { - "files": [ - "/etc/ssrplus/china_ssr.txt" - ] - } - }, - { - "tag": "geosite_not_cn", - "type": "domain_set", - "args": { - "files": [ - "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt", - "/etc/ssrplus/black.list" - ] - } - }, - { - "tag": "forward_remote", - "type": "forward", - "args": { - "concurrent": 2, - "upstreams": null - } - }, - { - "tag": "forward_local", - "type": "forward", - "args": { - "concurrent": 2, - "upstreams": null - } - }, - { - "tag": "local_sequence", - "type": "sequence", - "args": [ - { - "exec": "$forward_local" - } - ] - }, - { - "tag": "remote_sequence_with_IPv6", - "type": "sequence", - "args": [ - { - "exec": "$forward_remote" - } - ] - }, - { - "tag": "remote_sequence_disable_IPv6", - "type": "sequence", - "args": [ - { - "exec": "prefer_ipv4" - }, - { - "exec": "$forward_remote" - }, - { - "matches": [ - "qtype 28 65" - ], - "exec": "reject 0" - } - ] - }, - { - "tag": "query_is_local_domain", - "type": "sequence", - "args": [ - { - "matches": "qname $geosite_cn", - "exec": "$local_sequence" - } - ] - }, - { - "tag": "query_is_proxy_domain", - "type": "sequence", - "args": [ - { - "matches": "qname $geosite_not_cn" - }, - { - "exec": "ipset blacklist,inet,24" - } - ] - }, - { - "tag": "query_is_local_ip", - "type": "sequence", - "args": [ - { - "exec": "$local_sequence" - }, - { - "matches": "!resp_ip $geoip_cn", - "exec": "drop_resp" - } - ] - }, - { - "tag": "query_is_remote_ip", - "type": "sequence", - "args": [ - { - "exec": "$remote_sequence_disable_IPv6" - }, - { - "exec": "ipset blacklist,inet,24" - } - ] - }, - { - "tag": "fallback", - "type": "fallback", - "args": { - "primary": "query_is_local_ip", - "secondary": "query_is_remote_ip", - "threshold": 600, - "always_standby": true - } - }, - { - "tag": "has_resp_sequence", - "type": "sequence", - "args": [ - { - "matches": "has_resp", - "exec": "accept" - } - ] - }, - { - "tag": "main_sequence", - "type": "sequence", - "args": [ - { - "exec": "$lazy_cache" - }, - { - "exec": "$query_is_local_domain" - }, - { - "exec": "jump has_resp_sequence" - }, - { - "exec": "$query_is_proxy_domain" - }, - { - "exec": "jump has_resp_sequence" - }, - { - "exec": "$fallback" - } - ] - }, - { - "tag": "udp_server", - "type": "udp_server", - "args": { - "entry": "main_sequence" - } - }, - { - "tag": "tcp_server", - "type": "tcp_server", - "args": { - "entry": "main_sequence" - } - } - ] -} - diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml new file mode 100644 index 00000000000..5d0c8a0444a --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml @@ -0,0 +1,154 @@ +# Author: sbwml +# Origin from repository: https://github.com/sbwml/luci-app-mosdns +# Reference: https://github.com/sbwml/luci-app-mosdns/blob/v5/luci-app-mosdns/root/usr/share/mosdns/default.yaml +# Modify by: XiaoliChan +log: + level: info +plugins: + # Num0: Cache + - tag: lazy_cache + type: cache + args: + size: 20000 + lazy_cache_ttl: 86400 + + # Num1: CN domain + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/direct-list.txt + # cat direct-list.txt | grep -v "regexp:\|full:" | sort -u | uniq -u > china-domain-2.lst + - tag: geosite_cn + type: domain_set + args: + files: + - "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt" + - "/etc/ssrplus/white.list" + + # Num2: CN IP + # https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt + - tag: geoip_cn + type: ip_set + args: + files: + - "/etc/ssrplus/china_ssr.txt" + + # Num3: Domain need proxy (gfwlist) + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt + # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/gfw.txt + - tag: geosite_not_cn + type: domain_set + args: + files: + - "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt" + - "/etc/ssrplus/black.list" + + # Num4: Forward to google + - tag: forward_remote + type: forward + args: + concurrent: 2 + upstreams: + + # Num5: Forward to local + # ifstatus wan | jsonfilter -e '@["dns-server"]' + - tag: forward_local + type: forward + args: + concurrent: 2 + upstreams: + + # Num6 + - tag: local_sequence + type: sequence + args: + - exec: $forward_local + + # Num7 + - tag: remote_sequence_with_IPv6 + type: sequence + args: + - exec: prefer_ipv4 + - exec: $forward_remote + + # Num8 + - tag: remote_sequence_disable_IPv6 + type: sequence + args: + - exec: prefer_ipv4 + - exec: $forward_remote + - matches: + - qtype 28 65 + exec: reject 0 + + # Num9 + - tag: query_is_local_domain + type: sequence + args: + - matches: qname $geosite_cn + exec: $local_sequence + + # Num10 + - tag: query_is_proxy_domain + type: sequence + args: + - matches: qname $geosite_not_cn + - exec: ipset blacklist,inet,24 + + # fallback 用本地服务器 sequence + # 返回非国内 ip 则 drop_resp + # Num11 + - tag: query_is_local_ip + type: sequence + args: + - exec: $local_sequence + - matches: "!resp_ip $geoip_cn" + exec: drop_resp + + # Num12 + # fallback 用远程服务器 sequence + - tag: query_is_remote_ip + type: sequence + args: + - exec: $remote_sequence_disable_IPv6 + - exec: ipset blacklist,inet,24 + + # fallback 用远程服务器 sequence + # query_is_local_ip to query_is_remote_ip + # Num13 + - tag: fallback + type: fallback + args: + # DNS Leak solution + primary: query_is_local_ip + secondary: query_is_remote_ip + threshold: 600 + always_standby: true + + # 有响应终止返回 + # Num14 + - tag: has_resp_sequence + type: sequence + args: + - matches: has_resp + exec: accept + + # Num15 + - tag: main_sequence + type: sequence + args: + - exec: $lazy_cache + - exec: $query_is_local_domain + - exec: jump has_resp_sequence + - exec: $query_is_proxy_domain + - exec: jump has_resp_sequence + - exec: $fallback + + # Num16 + - tag: udp_server + type: udp_server + args: + entry: main_sequence + + # Num17 + - tag: tcp_server + type: tcp_server + args: + entry: main_sequence diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json deleted file mode 100644 index 353c75fe77e..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "log": { - "level": "info" - }, - "plugins": [ - { - "tag": "lazy_cache", - "type": "cache", - "args": { - "size": 8000, - "lazy_cache_ttl": 86400 - } - }, - { - "tag": "forward_google", - "type": "forward", - "args": { - "concurrent": 2, - "upstreams": null - } - }, - { - "tag": "main_sequence_disable_IPv6", - "type": "sequence", - "args": [ - { - "exec": "$lazy_cache" - }, - { - "exec": "prefer_ipv4" - }, - { - "exec": "$forward_google" - }, - { - "matches": [ - "qtype 28 65" - ], - "exec": "reject 0" - } - ] - }, - { - "tag": "main_sequence_with_IPv6", - "type": "sequence", - "args": [ - { - "exec": "$lazy_cache" - }, - { - "exec": "$forward_google" - } - ] - }, - { - "tag": "udp_server", - "type": "udp_server", - "args": { - "entry": "DNS_MODE" - } - }, - { - "tag": "tcp_server", - "type": "tcp_server", - "args": { - "entry": "DNS_MODE" - } - } - ] -} - diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml new file mode 100644 index 00000000000..00facaa76c4 --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml @@ -0,0 +1,41 @@ +log: + level: info +plugins: + - tag: lazy_cache + type: cache + args: + size: 8000 + lazy_cache_ttl: 86400 + + - tag: forward_google + type: forward + args: + concurrent: 2 + upstreams: + + - tag: main_sequence_disable_IPv6 + type: sequence + args: + - exec: $lazy_cache + - exec: prefer_ipv4 + - exec: $forward_google + - matches: + - qtype 28 65 + exec: reject 0 + + - tag: main_sequence_with_IPv6 + type: sequence + args: + - exec: $lazy_cache + - exec: $forward_google + + - tag: udp_server + type: udp_server + args: + entry: DNS_MODE + + - tag: tcp_server + type: tcp_server + args: + entry: DNS_MODE + From 8da98a47676463c9053dc5cfa771155f73bb4b9c Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 12 Nov 2023 13:51:59 +0800 Subject: [PATCH 451/972] Revert "[luci-app-ssr-plus]: add chinadns mode for mosdns (#1314)" This reverts commit dd3569e35e52448f99e6dec82b11d479cdaa33b5. --- luci-app-ssr-plus/Makefile | 7 +- .../model/cbi/shadowsocksr/advanced.lua | 6 +- .../luasrc/model/cbi/shadowsocksr/client.lua | 31 +- .../luasrc/model/cbi/shadowsocksr/status.lua | 32 +- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 39 +- .../root/etc/init.d/shadowsocksr | 107 +- .../ssrplus/mosdns-chinadns/geosite_cn.txt | 65044 ---------------- .../geosite_geolocation_not_cn.txt | 19306 ----- .../etc/ssrplus/mosdns-config-chinadns.yaml | 154 - .../root/etc/ssrplus/mosdns-config.yaml | 2 + luci-app-ssr-plus/root/usr/bin/ssr-monitor | 4 +- .../usr/share/shadowsocksr/geodata_update.sh | 44 - .../root/usr/share/shadowsocksr/update.lua | 10 - v2dat/Makefile | 46 - v2dat/patches/100-format-logtime.patch | 47 - 15 files changed, 53 insertions(+), 84826 deletions(-) delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt delete mode 100644 luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml delete mode 100755 luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh delete mode 100644 v2dat/Makefile delete mode 100644 v2dat/patches/100-format-logtime.patch diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 33173f39157..38a3d7e5838 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=190 -PKG_RELEASE:=1 +PKG_VERSION:=188 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -42,9 +42,6 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:mosdns \ - +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:yq \ - +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:v2dat \ - +PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS:diffutils \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ +PACKAGE_$(PKG_NAME)_INCLUDE_Tuic_Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadow_TLS:shadow-tls \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 302f5cf4822..ea08f58bda5 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -69,7 +69,7 @@ o:depends("netflix_enable", "1") o = s:option(ListValue, "shunt_dns_mode", translate("DNS Query Mode For Shunt Mode")) o:value("1", translate("Use DNS2SOCKS query and cache")) -o:value("2", translate("Use MosDNS query")) +o:value("2", translate("Use MOSDNS query")) o:depends("netflix_enable", "1") o.default = 1 @@ -97,9 +97,9 @@ o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4. o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) o:depends("shunt_dns_mode", "2") -o.description = translate("Custom DNS Server for MosDNS") +o.description = translate("Custom DNS Server for mosdns") -o = s:option(Flag, "shunt_mosdns_ipv6", translate("Disable IPv6 In MosDNS Query Mode (Shunt Mode)")) +o = s:option(Flag, "shunt_mosdns_ipv6", translate("Disable IPv6 In MOSDNS Query Mode (Shunt Mode)")) o:depends("shunt_dns_mode", "2") o.rmempty = false o.default = "0" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 4db7aaaf30d..8864d0be78e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -93,7 +93,7 @@ o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) o:value("1", translate("Use DNS2TCP query")) o:value("2", translate("Use DNS2SOCKS query and cache")) if is_finded("mosdns") then -o:value("3", translate("Use MosDNS query (Not Support Oversea Mode)")) +o:value("3", translate("Use MOSDNS query (Not Support Oversea Mode)")) end o:value("0", translate("Use Local DNS Service listen port 5335")) o.default = 1 @@ -125,9 +125,9 @@ o:value("tcp://4.2.2.1:53,tcp://4.2.2.2:53", translate("Level 3 Public DNS-2 (4. o:value("tcp://4.2.2.3:53,tcp://4.2.2.4:53", translate("Level 3 Public DNS-3 (4.2.2.3-4)")) o:value("tcp://1.1.1.1:53,tcp://1.0.0.1:53", translate("Cloudflare DNS")) o:depends("pdnsd_enable", "3") -o.description = translate("Custom DNS Server for MosDNS") +o.description = translate("Custom DNS Server for mosdns") -o = s:option(Flag, "mosdns_disable_ipv6", translate("Disable IPv6 in MosDNS query mode (only for Non-CN domain)")) +o = s:option(Flag, "mosdns_ipv6", translate("Disable IPv6 in MOSDNS query mode")) o:depends("pdnsd_enable", "3") o.rmempty = false o.default = "0" @@ -141,8 +141,8 @@ if is_finded("chinadns-ng") then o:value("119.29.29.29:53", translate("DNSPod Public DNS (119.29.29.29)")) o:value("223.5.5.5:53", translate("AliYun Public DNS (223.5.5.5)")) o:value("180.76.76.76:53", translate("Baidu Public DNS (180.76.76.76)")) - o:value("101.226.4.6:53", translate("DNS Pai (CT/CMCC/CU) (101.226.4.6)")) - o:value("123.125.81.6:53", translate("DNS Pai (CU) (123.125.81.6)")) + o:value("101.226.4.6:53", translate("360 Security DNS (China Telecom) (101.226.4.6)")) + o:value("123.125.81.6:53", translate("360 Security DNS (China Unicom) (123.125.81.6)")) o:value("1.2.4.8:53", translate("CNNIC SDNS (1.2.4.8)")) o:depends({pdnsd_enable = "1", run_mode = "router"}) o:depends({pdnsd_enable = "2", run_mode = "router"}) @@ -164,24 +164,5 @@ if is_finded("chinadns-ng") then end end -if is_finded("mosdns") then - o = s:option(Value, "chinadns_forward_mosdns", translate("Domestic DNS Server (ChinaDNS Mode With MosDNS)")) - o:value("", translate("Disable ChinaDNS in MosDNS")) - o:value("wan", translate("Use DNS from WAN")) - o:value("udp://114.114.114.114:53,udp://114.114.115.115:53", translate("Nanjing Xinfeng 114DNS")) - o:value("udp://119.29.29.29:53,udp://119.29.29.29:53", translate("DNSPod Public DNS")) - o:value("udp://223.5.5.5:53,udp://223.6.6.6:53", translate("AliYun Public DNS")) - o:value("udp://180.76.76.76:53,udp://180.76.76.76:53", translate("Baidu Public DNS")) - o:value("udp://101.226.4.6:53,udp://218.30.118.6:53", translate("DNS Pai (CT/CMCC/CU)")) - o:value("udp://123.125.81.6:53,udp://140.207.198.6:53", translate("DNS Pai (CU)")) - o:value("udp://1.2.4.8:53,udp://210.2.4.8:53", translate("CNNIC SDNS")) - o:depends({pdnsd_enable = "3", run_mode = "router"}) - o.description = translate("Custom DNS Server format as IP:PORT (default: disabled)") -end - -o = s:option(Flag, "mosdns_dnsleak", translate("Prevent DNS leak (Only Work With ChinaDNS Mode)")) -o:depends({pdnsd_enable = "3", run_mode = "router"}) -o.rmempty = false -o.default = "0" - return m + diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 33aa7c9e570..a095d44e908 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -14,8 +14,6 @@ local gfw_count = 0 local ad_count = 0 local ip_count = 0 local nfip_count = 0 -local mainland_domain_count = 0 -local non_mainland_domain_count = 0 local Process_list = luci.sys.exec("busybox ps -w") local uci = luci.model.uci.cursor() -- html constants @@ -54,14 +52,6 @@ if nixio.fs.access("/etc/ssrplus/netflixip.list") then nfip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/netflixip.list | wc -l")) end -if nixio.fs.access("/etc/ssrplus/mosdns-chinadns/geosite_cn.txt") then - mainland_domain_count = tonumber(luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite_cn.txt | wc -l")) -end - -if nixio.fs.access("/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt") then - non_mainland_domain_count = tonumber(luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt | wc -l")) -end - if Process_list:find("udp.only.ssr.reudp") then reudp_run = 1 end @@ -180,24 +170,10 @@ s.template = "shadowsocksr/refresh" s.value = ip_count .. " " .. translate("Records") if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then - s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) - s.rawhtml = true - s.template = "shadowsocksr/refresh" - s.value = nfip_count .. " " .. translate("Records") -end - -if uci:get_first("shadowsocksr", 'global', 'pdnsd_enable', '0') == '3' then - s = m:field(DummyValue, "geo_data", translate("Loyalsoldier's GeoData")) - s.rawhtml = true - s.template = "shadowsocksr/refresh" - - s = m:field(DummyValue, "mainland_domain_count", translate("Loyalsoldier's GeoData: Mainland Domain Data")) - s.rawhtml = true - s.value = mainland_domain_count .. " " .. translate("Records") - - s = m:field(DummyValue, "non_mainland_domain_count", translate("Loyalsoldier's GeoData: Non-Mainland Domain Data")) - s.rawhtml = true - s.value = non_mainland_domain_count .. " " .. translate("Records") +s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) +s.rawhtml = true +s.template = "shadowsocksr/refresh" +s.value = nfip_count .. " " .. translate("Records") end if uci:get_first("shadowsocksr", 'global', 'adblock', '0') == '1' then diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 0ad7a60568d..f498ed9bb21 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -188,6 +188,7 @@ msgstr "QUIC 连接接收窗口" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" + msgid "Lazy Start" msgstr "延迟启动" @@ -389,15 +390,6 @@ msgstr "【中国大陆 IP 段】数据库" msgid "Netflix IP Data" msgstr "【Netflix IP 段】数据库" -msgid "Loyalsoldier's GeoData" -msgstr "【GeoData】数据库 (Loyalsoldier)" - -msgid "Loyalsoldier's GeoData: Mainland Domain Data" -msgstr "【GeoData 中的大陆域名】数据库 (Loyalsoldier)" - -msgid "Loyalsoldier's GeoData: Non-Mainland Domain Data" -msgstr "【GeoData 中的非大陆域名】数据库 (Loyalsoldier)" - msgid "Advertising Data" msgstr "【广告屏蔽】数据库" @@ -539,11 +531,11 @@ msgstr "使用 DNS2TCP 查询" msgid "Use DNS2SOCKS query and cache" msgstr "使用 DNS2SOCKS 查询并缓存" -msgid "Use MosDNS query (Not Support Oversea Mode)" -msgstr "使用 MosDNS 查询 (不支持海外用户回国模式)" +msgid "Use MOSDNS query (Not Support Oversea Mode)" +msgstr "使用 MOSDNS 查询 (不支持海外用户回国模式)" -msgid "Disable IPv6 in MosDNS query mode (only for Non-CN domain)" -msgstr "禁止 MosDNS 返回 IPv6 记录 (仅限非大陆域名)" +msgid "Disable IPv6 in MOSDNS query mode" +msgstr "禁止 MOSDNS 返回 IPv6 记录" msgid "DNS Query Mode For Shunt Mode" msgstr "分流模式下的 DNS 查询模式" @@ -551,23 +543,14 @@ msgstr "分流模式下的 DNS 查询模式" msgid "Anti-pollution DNS Server For Shunt Mode" msgstr "分流模式下的访问国外域名 DNS 服务器" -msgid "Use MosDNS query" -msgstr "使用 MosDNS 查询" - -msgid "Custom DNS Server for MosDNS" -msgstr "MosDNS 自定义 DNS 服务器" - -msgid "Domestic DNS Server (ChinaDNS Mode With MosDNS)" -msgstr "国内 DNS 服务器 (MosDNS 下的 ChinaDNS 模式)" - -msgid "Disable IPv6 In MosDNS Query Mode (Shunt Mode)" -msgstr "禁止 MosDNS 返回 IPv6 记录 (分流模式)" +msgid "Use MOSDNS query" +msgstr "使用 MOSDNS 查询" -msgid "Prevent DNS leak (Only Work With ChinaDNS Mode)" -msgstr "防止DNS泄漏 (仅适用于ChinaDNS模式)" +msgid "Custom DNS Server for mosdns" +msgstr "MOSDNS 自定义 DNS 服务器" -msgid "Disable ChinaDNS in MosDNS" -msgstr "禁用 MosDNS 下的 ChinaDNS 模式" +msgid "Disable IPv6 In MOSDNS Query Mode (Shunt Mode)" +msgstr "禁止 MOSDNS 返回 IPv6 记录 (分流模式)" msgid "DNS Server IP:Port" msgstr "DNS 服务器 IP:Port" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index e28483d512f..2415b62469f 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -38,7 +38,6 @@ tmp_shunt_port="303" #shunt temporary port tmp_shunt_local_port="304" #shunt socks temporary port tmp_shunt_dns_port="305" #shunt dns2socks temporary port tmp_tcp_local_port="306" #tcp socks temporary port -mosdns_config_file= server_count=0 redir_tcp=0 @@ -99,12 +98,6 @@ get_host_ip() { echo $ip } -yq_ssr() { - temp_file="$(echo "$2" | awk -F '.' '{print $1"-temp."$2}')" - cat $2 | yq e "$1" -M > "$temp_file" - mv "$temp_file" "$2" -} - clean_log() { local logsnum=$(cat $LOG_FILE 2>/dev/null | wc -l) [ "$logsnum" -gt 1000 ] && { @@ -213,79 +206,24 @@ start_dns() { pdnsd_enable_flag=2 ;; 3) - local mosdns_disable_ipv6="$(uci_get_by_type global mosdns_disable_ipv6)" + local mosdns_ipv6="$(uci_get_by_type global mosdns_ipv6)" local mosdns_dnsserver="$(uci_get_by_type global tunnel_forward_mosdns)" - local chinadns_mosdns="$(uci_get_by_type global chinadns_forward_mosdns)" - local mosdns_dnsleak="$(uci_get_by_type global mosdns_dnsleak)" - local netflix_enable="$(uci_get_by_type global netflix_enable)" - if [ "$run_mode" = "router" ] && [ -n "$chinadns_mosdns" ]; then - mosdns_config_file="$TMP_PATH/mosdns-config-chinadns.yaml" - cp /etc/ssrplus/mosdns-config-chinadns.yaml $mosdns_config_file - tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do - dnsserver=${i%:*} - dnsserver=${i##*/} - add_dns_into_ipset $run_mode $dnsserver - yq_ssr '.plugins[4].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file - done) - - if [ "$chinadns_mosdns" = "wan" ]; then - wandns=$(ifstatus wan | jsonfilter -e '@["dns-server"]' | sed 's/\[//g; s/\]//g' | sed 's/"//g' | sed 's/ //g' | sed 's/,/ /g') - tmp=$(for i in $(echo $wandns); do - i="udp://$i:53" - yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file - done) - else - tmp=$(for i in $(echo $chinadns_mosdns | sed "s/,/ /g"); do - yq_ssr '.plugins[5].args.upstreams += [{"addr":"'"${i}"'"}]' $mosdns_config_file - done) - fi - - if [ "$mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[10].args[0].exec="$remote_sequence_with_IPv6" | .plugins[12].args[0].exec="$remote_sequence_with_IPv6"' $mosdns_config_file - else - yq_ssr '.plugins[10].args[0].exec="$remote_sequence_disable_IPv6" | .plugins[12].args[0].exec="$remote_sequence_disable_IPv6"' $mosdns_config_file - fi - - if [ "$mosdns_dnsleak" != "0" ]; then - yq_ssr '.plugins[13].args.primary="query_is_remote_ip"' $mosdns_config_file - fi - - yq_ssr '.plugins[16].args.listen="0.0.0.0:'${dns_port}'" | .plugins[17].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file - - if [ "$netflix_enable" == 1 ]; then - yq_ssr '.plugins |= (.[:4] + [{"tag": "netflix_domain", "type": "domain_set", "args": {"files": ["/etc/ssrplus/netflix.list"]}}] + .[4:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:7] + [{"tag": "forward_netflix", "type": "forward", "args": {"upstreams": [{"addr":"udp://127.0.0.1:'"${tmp_shunt_dns_port}"'"}]}}] + .[7:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:11] + [{"tag": "netflix_sequence", "type": "sequence", "args": [{"exec": "$forward_netflix"}]}] + .[11:])' $mosdns_config_file - yq_ssr '.plugins |= (.[:14] + [{"tag": "query_is_netflix_domain", "type": "sequence", "args": [{"matches": "qname $netflix_domain", "exec": "$netflix_sequence"}, {"exec": "ipset netflix,inet,24"}]}] + .[14:])' $mosdns_config_file - yq_ssr '.plugins[19].args |= (.[:3] + [{"exec": "$query_is_netflix_domain"}, {"exec": "jump has_resp_sequence"}] + .[3:])' $mosdns_config_file - fi + output=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do + dnsserver=${i%:*} + dnsserver=${i##*/} + add_dns_into_ipset $run_mode $dnsserver + echo " - addr: $i" + echo " enable_pipeline: true" + done) - pdnsd_enable_flag=3 - ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file - cat <<-EOF >> "$TMP_DNSMASQ_PATH/chinadns_fixed_server.conf" - no-poll - no-resolv - server=127.0.0.1#$dns_port - EOF + awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$dns_port/g" > $TMP_PATH/mosdns-config.yaml + if [ "$mosdns_ipv6" == "0" ]; then + sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config.yaml else - mosdns_config_file="$TMP_PATH/mosdns-config.yaml" - cp /etc/ssrplus/mosdns-config.yaml $mosdns_config_file - tmp=$(for i in $(echo $mosdns_dnsserver | sed "s/,/ /g"); do - dnsserver=${i%:*} - dnsserver=${i##*/} - add_dns_into_ipset $run_mode $dnsserver - yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","enable_pipeline":"true"}]' $mosdns_config_file - done) - - if [ "$mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $mosdns_config_file - else - yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $mosdns_config_file - fi - yq_ssr '.plugins[4].args.listen="0.0.0.0:'${dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${dns_port}'"' $mosdns_config_file - pdnsd_enable_flag=3 - ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file + sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config.yaml fi + ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config.yaml + pdnsd_enable_flag=3 ;; esac @@ -549,19 +487,20 @@ shunt_dns_command() { ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port $shunt_dnsserver 127.0.0.1:$tmp_shunt_dns_port -q ;; 2) - local shunt_mosdns_disable_ipv6="$(uci_get_by_type global shunt_mosdns_disable_ipv6)" + local shunt_mosdns_ipv6="$(uci_get_by_type global shunt_mosdns_ipv6)" local shunt_mosdns_dnsserver="$(uci_get_by_type global shunt_mosdns_dnsserver)" - cp /etc/ssrplus/mosdns-config.yaml $TMP_PATH/mosdns-config-shunt.yaml - tmp=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do - yq_ssr '.plugins[1].args.upstreams += [{"addr":"'"${i}"'","socks5":"127.0.0.1:'"${tmp_port}"'","enable_pipeline":"true"}]' $TMP_PATH/mosdns-config-shunt.yaml + output=$(for i in $(echo $shunt_mosdns_dnsserver | sed "s/,/ /g"); do + echo " - addr: $i" + echo " socks5: \"127.0.0.1:$tmp_port\"" + echo " enable_pipeline: true" done) + awk -v line=14 -v text="$output" 'NR == line+1 {print text} 1' /etc/ssrplus/mosdns-config.yaml | sed "s/DNS_PORT/$tmp_shunt_dns_port/g" > $TMP_PATH/mosdns-config-shunt.yaml - if [ "$shunt_mosdns_disable_ipv6" == "0" ]; then - yq_ssr '.plugins[4].args.entry="main_sequence_with_IPv6" | .plugins[5].args.entry="main_sequence_with_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml + if [ "$shunt_mosdns_ipv6" == "0" ]; then + sed -i "s/DNS_MODE/main_sequence_with_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml else - yq_ssr '.plugins[4].args.entry="main_sequence_disable_IPv6" | .plugins[5].args.entry="main_sequence_disable_IPv6"' $TMP_PATH/mosdns-config-shunt.yaml + sed -i "s/DNS_MODE/main_sequence_disable_IPv6/g" $TMP_PATH/mosdns-config-shunt.yaml fi - yq_ssr '.plugins[4].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'" | .plugins[5].args.listen="0.0.0.0:'${tmp_shunt_dns_port}'"' $TMP_PATH/mosdns-config-shunt.yaml ln_start_bin $(first_type mosdns) mosdns start -c $TMP_PATH/mosdns-config-shunt.yaml ;; esac diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt deleted file mode 100644 index 23f9db14504..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_cn.txt +++ /dev/null @@ -1,65044 +0,0 @@ -full:265.com -full:2mdn-cn.net -full:2mdn.net -full:a1.mzstatic.com -full:a2.mzstatic.com -full:a3.mzstatic.com -full:a4.mzstatic.com -full:a5.mzstatic.com -full:accounts.googlers.com -full:accounts.xn--9trs65b.com -full:accounts.xn--ggle-55da.com -full:adcdownload.apple.com -full:adcdownload.apple.com.akadns.net -full:admob-cn.com -full:adservice.google.com -full:ai.ytimg.com -full:amp-api-edge-lb-cn.itunes-apple.com.akadns.net -full:amp-api-edge-lb.itunes-apple.com.akadns.net -full:amp-api-edge.apps.apple.com -full:amp-api-search-edge.apps.apple.com -full:amp-api.apps.apple.com -full:aod.itunes.apple.com -full:api-edge.apps.apple.com -full:app-measurement-cn.com -full:app-measurement.com -full:app-site-association.cdn-apple.com -full:appldnld.apple.com -full:appldnld.g.aaplimg.com -full:appleid.cdn-apple.com -full:apps.mzstatic.com -full:apps5.oingo.com -full:apptrailers.itunes.apple.com -full:avail.googleflights.net -full:bag.itunes.apple.com -full:beacons-handoff.gcp.gvt2.com -full:beacons.gcp.gvt2.com -full:beacons.gvt2.com -full:beacons2.gvt2.com -full:beacons3.gvt2.com -full:bg.v4.a.dl.ws.microsoft.com -full:bg4.v4.a.dl.ws.microsoft.com -full:bj1.api.bing.com -full:bookkeeper.itunes.apple.com -full:borgmon.adz.google.com -full:c.admob.com -full:c.android.clients.google.com -full:cache-management-prod.google.com -full:cache.pack.google.com -full:cdn-cn1.apple-mapkit.com -full:cdn-cn2.apple-mapkit.com -full:cdn-cn3.apple-mapkit.com -full:cdn-cn4.apple-mapkit.com -full:cdn.ampproject.org -full:cdn.apple-mapkit.com -full:cdn.marketplaceimages.windowsphone.com -full:cdn1.apple-mapkit.com -full:cdn2.apple-mapkit.com -full:cdn3.apple-mapkit.com -full:cdn4.apple-mapkit.com -full:cds-cdn.v.aaplimg.com -full:cds.apple.com -full:cds.apple.com.akadns.net -full:cdsassets.apple.com -full:certs-lb.apple.com.akadns.net -full:certs.apple.com -full:checkin.gstatic.com -full:cl1-cdn.origin-apple.com.akadns.net -full:cl1.apple.com -full:cl2-cn.apple.com -full:cl2.apple.com -full:cl3-cdn.origin-apple.com.akadns.net -full:cl3.apple.com -full:cl4-cdn.origin-apple.com.akadns.net -full:cl4-cn.apple.com -full:cl4.apple.com -full:cl5-cdn.origin-apple.com.akadns.net -full:cl5.apple.com -full:clickserve.cc-dt.com -full:clickserve.dartsearch.net -full:clickserver.googleads.com -full:client-api.itunes.apple.com -full:clientflow.apple.com -full:clientflow.apple.com.akadns.net -full:clientservices.googleapis.com -full:cma.itunes.apple.com -full:cn.widevine.com -full:cn.windowssearch.com -full:cnappinstall.googleadapis.com -full:communities.apple.com -full:configuration.apple.com -full:configuration.apple.com.akadns.net -full:connectivitycheck.gstatic.com -full:content.googleadapis.com -full:corp.google.com -full:corp.googleapis.com -full:crashlyticsreports-pa.googleapis.com -full:crl-lb.apple.com.akadns.net -full:crl.alphassl.com -full:crl.apple.com -full:crl.pki.goog -full:crl2.alphassl.com -full:csi.gstatic.com -full:cstat.apple.com -full:cstat.cdn-apple.com -full:ctldl.windowsupdate.com -full:dartsearch-cn.net -full:dd-cdn.origin-apple.com.akadns.net -full:developer.microsoft.com -full:dg-meta.video.google.com -full:discussionschinese.apple.com -full:distribution.qatp1.net -full:distribution.qcpp1.net -full:distribution.qpdp1.net -full:dl.google.com -full:dl.l.google.com -full:docs.microsoft.com -full:doubleclick-cn.net -full:doubleclick.net -full:download.developer.apple.com -full:download.microsoft.com -full:download.mlcc.google.com -full:download.qatp1.net -full:download.qcpp1.net -full:download.qpdp1.net -full:download.tensorflow.google.com -full:download.visualstudio.microsoft.com -full:downloaddispatch.itunes.apple.com -full:emmapplecodevice.googleapis.com -full:emoi-cncdn.bing.com -full:fides-pol.apple.com -full:firebase-settings.crashlytics.com -full:fontfiles.googleadapis.com -full:fontfiles.googleapis.com -full:fonts.googleadapis.com -full:fonts.googleapis.com -full:fonts.gstatic.com -full:fs.microsoft.com -full:g0.gstatic.com -full:g1.gstatic.com -full:g2.gstatic.com -full:g3.gstatic.com -full:gcpnode.com -full:geetest.datasink.sensorsdata.cn -full:global.prd.cdn.globalsign.com -full:gog.qtlglb.com -full:gogalaxy.gog-statics.com -full:gonglchuangl.net -full:gongyichuangyi.net -full:google-analytics-cn.com -full:google-analytics.com -full:googleadservices-cn.com -full:googleadservices.com -full:googleanalytics.com -full:googleapis-cn.com -full:googleapps-cn.com -full:googleflights-cn.net -full:googleoptimize-cn.com -full:googleoptimize.com -full:googleplex.com -full:googlesyndication-cn.com -full:googlesyndication.com -full:googletagmanager-cn.com -full:googletagmanager.com -full:googletagservices-cn.com -full:googletagservices.com -full:googletraveladservices-cn.com -full:googletraveladservices.com -full:googlevads-cn.com -full:goto.google.com -full:gs-loc-cn.apple.com -full:gs-loc.apple.com -full:gsp10-ssl-cn.ls.apple.com -full:gsp13-cn.ls.apple.com -full:gsp4-cn.ls.apple.com -full:gsp4-cn.ls.apple.com.edgekey.net -full:gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net -full:gsp5-cn.ls.apple.com -full:gsp85-cn-ssl.ls.apple.com -full:gspe11-2-cn-ssl.ls.apple.com -full:gspe12-cn-ssl.ls.apple.com -full:gspe19-cn-ssl.ls.apple.com -full:gspe19-cn.ls-apple.com.akadns.net -full:gspe19-cn.ls.apple.com -full:gspe21-ssl.ls.apple.com -full:gspe21.ls.apple.com -full:gspe35-ssl.ls.apple.com -full:gspe85-cn-ssl.ls.apple.com -full:gstatic-cn.com -full:gstaticadssl.l.google.com -full:gtm.oasisfeng.com -full:guzzoni-apple-com.v.aaplimg.com -full:guzzoni.apple.com -full:gvt1-cn.com -full:gvt2-cn.com -full:hellofontpreview.oss-cn-beijing.aliyuncs.com -full:hellowebfonts.oss-cn-beijing.aliyuncs.com -full:hospital.pku.edu.cn -full:iadsdk.apple.com -full:icloud-cdn.icloud.com.akadns.net -full:icloud.cdn-apple.com -full:images-cn-8.ssl-images-amazon.com -full:images-cn.ssl-images-amazon.com -full:images.apple.com -full:images.apple.com.akadns.net -full:images.apple.com.edgekey.net.globalredir.akadns.net -full:imasdk.googleapis.com -full:inappcheck-cn.itunes-apple.com.akadns.net -full:inappcheck-lb.itunes-apple.com.akadns.net -full:inappcheck.itunes.apple.com -full:init-p01md-lb.push-apple.com.akadns.net -full:init-p01md.apple.com -full:init-p01st-lb.push-apple.com.akadns.net -full:init-p01st.push.apple.com -full:init-s01st-lb.push-apple.com.akadns.net -full:init-s01st.push.apple.com -full:init.gc-lb.apple.com.akadns.net -full:init.gc.apple.com -full:init.itunes.apple.com -full:iosapps.itunes.apple.com -full:iosapps.itunes.g.aaplimg.com -full:ipcdn.apple.com -full:iphone-ld.apple.com -full:iphone-ld.origin-apple.com.akadns.net -full:is1-ssl.mzstatic.com -full:is1.mzstatic.com -full:is2-ssl.mzstatic.com -full:is2.mzstatic.com -full:is3-ssl.mzstatic.com -full:is3.mzstatic.com -full:is4-ssl.mzstatic.com -full:is4.mzstatic.com -full:is5-ssl.mzstatic.com -full:is5.mzstatic.com -full:itunes-apple.com.akadns.net -full:itunes.apple.com -full:itunesconnect.apple.com -full:js-cdn.music.apple.com -full:kc.kexinshe.com -full:km.support.apple.com -full:manga.bilibili.com -full:maps.apple.com -full:menu-static.gog-statics.com -full:mesu-cdn.apple.com.akadns.net -full:mesu-china.apple.com.akadns.net -full:mesu.apple.com -full:monitoring.qatp1.net -full:monitoring.qcpp1.net -full:monitoring.qpdp1.net -full:moocs.unipus.cn -full:msgr.dlservice.microsoft.com -full:msgruser.dlservice.microsoft.com -full:music.apple.com -full:ocsp-lb.apple.com.akadns.net -full:ocsp.apple.com -full:ocsp.globalsign.com -full:ocsp.pki.goog -full:ocsp2-lb.apple.com.akadns.net -full:ocsp2.apple.com -full:ocsp2.globalsign.com -full:officecdn.microsoft.com -full:opencourse.pku.edu.cn -full:oscdn.apple.com -full:oscdn.origin-apple.com.akadns.net -full:osxapps.itunes.apple.com -full:osxapps.itunes.g.aaplimg.com -full:p1-juejin.byteimg.com -full:p2-juejin.byteimg.com -full:p3-juejin.byteimg.com -full:p3-novel.byteimg.com -full:p4-juejin.byteimg.com -full:p5-juejin.byteimg.com -full:p6-juejin.byteimg.com -full:p6-novel.byteimg.com -full:p7-juejin.byteimg.com -full:p8-juejin.byteimg.com -full:p9-juejin.byteimg.com -full:pagead-googlehosted.l.google.com -full:pancake.apple.com -full:pancake.cdn-apple.com.akadns.net -full:pd.itunes.apple.com -full:performanceparameters.googleapis.com -full:pki-goog.l.google.com -full:play.1ucrs.com -full:play.itunes.apple.com -full:prod-controlbe.floonet.goog -full:prod-databe.floonet.goog -full:prod-support.apple-support.akadns.net -full:prod.databe.floonet.goog -full:productcard.gog-statics.com -full:publicassets.cdn-apple.com -full:qagpublic.qatp1.net -full:qagpublic.qcpp1.net -full:qagpublic.qpdp1.net -full:qgadmin.qatp1.net -full:qgadmin.qcpp1.net -full:qgadmin.qpdp1.net -full:qh.dlservice.microsoft.com -full:qpx.googleflights.net -full:qualysapi.qatp1.net -full:qualysapi.qcpp1.net -full:qualysapi.qpdp1.net -full:qualysguard.qatp1.net -full:qualysguard.qcpp1.net -full:qualysguard.qpdp1.net -full:recaptcha.net -full:redirector.bdn.dev -full:redirector.c.chat.google.com -full:redirector.c.docs.google.com -full:redirector.c.drive.google.com -full:redirector.c.mail.google.com -full:redirector.c.pack.google.com -full:redirector.c.play.google.com -full:redirector.c.youtubeeducation.com -full:redirector.gcpcdn.gvt1.com -full:redirector.gvt1.com -full:redirector.offline-maps.gvt1.com -full:redirector.snap.gvt1.com -full:redirector.xn--ngstr-lra8j.com -full:regioninfo-pa.googleapis.com -full:reserve-prime.apple.com -full:s.mzstatic.com -full:safebrowsing.googleapis.com -full:scanservice1.qatp1.net -full:scanservice1.qcpp1.net -full:scanservice1.qpdp1.net -full:sdx.microsoft.com -full:se-edge.itunes.apple.com -full:se2.itunes.apple.com -full:search.itunes.apple.com -full:secure.globalsign.com -full:secure2.alphassl.com -full:service.urchin.com -full:settings.xn--9trs65b.com -full:sf-api-token-service.itunes.apple.com -full:silverlight.dlservice.microsoft.com -full:slupdate.dlservice.microsoft.com -full:smp-device-content.apple.com -full:sp.itunes.apple.com -full:ss.bjmu.edu.cn -full:ssl-google-analytics.l.google.com -full:ssl.gstatic.com -full:staging-controlbe.floonet.goog -full:staging-databe.floonet.goog -full:staging-regioninfo-pa.googleapis.com -full:staging.databe.floonet.goog -full:static-login.gog-statics.com -full:stocks-sparkline-lb.apple.com.akadns.net -full:stocks-sparkline.apple.com -full:store.apple.com -full:store.apple.com.edgekey.net -full:store.apple.com.edgekey.net.globalredir.akadns.net -full:store.storeimages.apple.com.akadns.net -full:store.storeimages.cdn-apple.com -full:storeedgefd.dsx.mp.microsoft.com -full:streamingaudio.itunes.apple.com -full:study.163.com -full:su.itunes.apple.com -full:support-china.apple-support.akadns.net -full:support.1ucrs.com -full:support.apple.com -full:swallow-apple-com.v.aaplimg.com -full:swallow.apple.com -full:swcatalog-cdn.apple.com.akadns.net -full:swcatalog.apple.com -full:swcdn.apple.com -full:swcdn.g.aaplimg.com -full:swdist.apple.com -full:swdist.apple.com.akadns.net -full:swscan-cdn.apple.com.akadns.net -full:swscan.apple.com -full:sync.itunes.apple.com -full:tac.googleapis.com -full:tesla-cdn.thron.cn -full:test.bugs-qa.chromium.org -full:test.gbugs-qa.chromium.org -full:tools.google.com -full:tools.l.google.com -full:up.corp.goog -full:up.gcp.googlers.com -full:update.crashlytics.com -full:update.googleapis.com -full:updates-http.cdn-apple.com -full:updates-http.cdn-apple.com.akadns.net -full:updates.cdn-apple.com -full:uplaypc-s-ubisoft.cdn.ubi.com -full:upos-hz-mirrorakam.akamaized.net -full:upp.itunes.apple.com -full:valid.apple.com -full:valid.origin-apple.com.akadns.net -full:wear.googleapis.com -full:weather-data.apple.com -full:weather-data.apple.com.akadns.net -full:weather-map.apple.com -full:weather-map2.apple.com -full:wl.dlservice.microsoft.com -full:wscont1.apps.microsoft.com -full:wscont2.apps.microsoft.com -full:www-google-analytics.l.google.com -full:www-googletagmanager.l.google.com -full:www.amd.com -full:www.apple.com -full:www.apple.com.edgekey.net -full:www.apple.com.edgekey.net.globalredir.akadns.net -full:www.destinationurl.com -full:www.googleadapis.com -full:www.gstatic.com -full:www.libvideo.com -full:www.microsoft.com -full:www.pxcc.com -full:www.recaptcha.net -full:www4-static.gog-statics.com -full:xb.dlservice.microsoft.com -full:xn--9kr7l.com -full:xn--flw351e.com -full:xp.apple.com -full:xz.pphimalayanrt.com -alibaba -xn--zfr164b -xn--xhq521b -xn--vuq861b -xn--io0a7i -xn--fiqz9s -xn--fiqs8s -xn--fiq64b -xn--estv75g -xn--8y0a063a -xn--6frz82g -xn--55qx5d -xn--1qqw23a -wang -unicom -tmall -taobao -sohu -icbc -cn -citic -baidu -alipay -jsjinfu.com -wxhon.com -004678.com -00544.com -00615.net -007.pub -0073.com -00791.com -007hd.com -007manhua.com -007qu.com -007shoes.com -007swz.com -00817.com -0086crane.com -0086l.com -0086org.com -0088dns.com -008gj.com -0098118.com -0099524.com -009y.com -00bx.com -00cdn.com -00cha.com -00cha.net -00ic.com -00it.net -00tera.com -00txt.com -00wv.com -01-123.com -01-cf.com -010123456.com -010155.net -0101shop.com -01095113.com -010bianhu.com -010bjzs.com -010byyy.com -010cns.com -010dell.com -010dsmzyy.com -010jianzhan.com -010lf.com -0123401234.com -0123456789.com -0135135.com -01368.com -0138.com -014.cc -016271.com -016sf.com -01caijing.com -01faxing.com -01happy.com -01home.com -01hour.com -01hr.com -01isp.com -01isp.net -01jzw.com -01ki.com -01p.com -01rv.com -01teacher.com -01w.com -01wb.com -01yo.com -01youyuan.com -01yun.com -01zhuanche.com -020.com -020.net -0208.com -020banjia.net -020job.com -020ym.com -020zp.net -021-atp.com -021-tp.com -021-zszx.com -021.com -021.net -0214.com -02156506666.net -02163.com -021bolang.com -021clean.com -021dianyuan.com -021dx.com -021dzjx.com -021east.com -021fenglei.com -021fx.com -021gjhb.com -021ja.com -021jingwei.com -021jingwu.com -021js.com -021lawfirm.com -021phone.com -021ren.com -021sports.com -021tk.com -021wfz.com -021yongzhuo.com -022003.com -0221155.com -022ee.com -022meishu.com -022s.com -022shui.com -022sunny.com -022v.com -023086.com -023buy.com -023cq.cc -023dir.com -023dns.com -023gmdk.com -023sm.com -023up.com -023wg.com -023yts.com -023zp.com -0243811.com -0243855.com -0245.cc -024888.net -024bj.com -024eps.com -024frde.com -024fuchan.com -024fuwu.com -024fzy.com -024heyi.com -024hh.com -024huada.com -024zxw.com -02516.com -025ct.com -025kaiyi.com -025nj.com -025sc.com -025xl.com -025zp.com -026idc.com -0270.cc -02712122.com -02727.com -027637.com -02766667777.com -027accp.com -027aige.com -027art.com -027cgb.com -027chuxun.com -027cloud.com -027down.com -027eat.com -027hhl.com -027hpedu.com -027hpit.com -027htxt.com -027hxzy.com -027hy.com -027idc.com -027jsxh.com -027jz.cc -027one.com -027qyy.com -027tianlong.com -027tytpf.com -027wcbyy.com -027xf.com -027yx.com -027zb.com -027zhan.com -027zpw.com -0283home.com -028brother.com -028hema.com -028hr.org -028ip.com -028kuaidai.com -028office.com -028pxw.com -028sjkj.com -028wzjs.com -029558.com -029900.com -029jiuda.com -029judao.com -029k.com -029shw.com -029weichen.com -029wsw.com -029xxw.com -029yjy.com -029yljj.com -029zp.com -02kdid.com -02lu.com -02o.pw -02shu.com -02wan.com -02wq.com -030303.com -030mall.com -0310it.com -0311wifi.com -0316.cc -0328.com -033033.com -0335e.com -035110000.com -0351data.com -0351fdc.com -0352fang.com -0352g.com -0355fk.com -0356f.com -0357hz.com -0368.com -036yx.com -0371wang.com -037201.com -037398.com -0378zz.com -0379home.com -0379pfw.com -03964.com -03dq.com -03k.org -0411.com -0411e.com -0411hd.com -0411zssy.com -0421wcbzk.com -0427.com -0430.com -0431cn.com -0437.com -0452e.com -0453.com -0455zd.com -0460.com -0470a.com -0470fcw.com -0471fcw.com -0472.com -0479xx.com -051058.com -0510syedu.com -0512118114.com -0512pearl.com -0513.net -0513.org -0513011.com -0513syedu.com -0513zs.com -0514.com -051591.com -0515auto.com -0515syedu.com -0515yc.tv -0516k.com -0517.net -0517999.com -0517cw.com -0517w.com -0519114.net -051jk.com -05236.com -0523tx.net -0523zp.com -0523zz.com -05273.com -0527ys.com -0527zz.com -052yx.com -0531.com -053135.com -0531jb.com -0531soso.com -0531wt.com -0532.com -0533.com -0535-0411.com -0536qz.com -0537yz.com -0539fc.com -053c.com -054057.com -0543hr.com -0546dsw.com -0546fdc.com -0550.com -055110.com -055178.com -0551fangchan.com -0551wl.com -0552jie.com -0553fang.com -0553zsw.com -0554news.com -0554zp.com -0555dsw.com -0558zp.com -0559fc.com -0561house.com -0563job.com -0566cn.net -0566fc.com -0566job.com -057.com -0570fc.com -0570zs.com -057191.com -0571ok.com -0573fang.com -0573ren.com -0574bbs.com -0574nbjg.com -0575bbs.com -0575life.com -0575xf.com -0576dsw.com -0577-it.com -0577cnw.com -0577home.net -0577hr.com -0577job.com -0577qiche.com -0578rencai.com -0578zhaopin.com -0579com.com -0579fw.com -0591job.com -05927.com -0592dsw.com -0592jj.com -0592xl.com -0594.com -0595job.com -0595rc.com -0596fc.com -0597kk.com -0597ok.com -0597seo.com -0598777.com -0598job.com -0598rc.com -0599yx.com -05bk.com -05bq.com -05cg.com -05eg.com -05info.com -05sun.com -05vm.com -05wan.com -063108.com -0632idc.com -0634.com -06362.com -065201.com -0660hf.com -0663.net -0663job.com -0668.com -06abc.com -06climate.com -06game.com -06peng.com -07.la -0701news.com -07073.com -07073h5.com -07073vr.com -0712fang.com -0713fang.com -0715fc.com -0715rc.com -0715zp.com -0716fw.com -0716mr.com -07177.com -0717ad.com -0718.cc -0719house.com -0722fc.com -0722zs.com -0724c.com -0728f.com -0730188.com -0730news.com -073122.com -0731a.com -0731cfw.com -0731fdc.com -0731i.com -0731jiaju.com -0731job.com -0731pgy.com -0731rj.com -0731tg.com -0731wan.com -0731zcgs.com -0733news.com -0734zpw.com -0735.com -07358.com -0735jz.com -0735zx.com -0735zz.com -0736fdc.com -0736zz.com -0737rencai.com -0738.cc -0738rc.com -0739tt.com -073img.com -07430743.com -0744tv.com -0745tuan.com -0746news.com -0750rc.com -075238.com -0752qc.com -0755400.com -075577777.com -0755888.com -0755bdqn.com -0755caibao.com -0755car.com -0755haoyu.com -0755hj.com -0755hz.com -0755rc.com -0755ws.com -0755yf.net -0755zb.com -0756hhr.com -0756home.com -0756idc.com -0756seo.com -0756tong.com -0757fc.com -0757p.com -0757rc.com -0758net.com -0759job.com -0759k.com -0759yc.com -0760.com -0760bw.com -0760rc.com -076299.com -0762uu.com -0763f.com -076650.com -0768.gd -0769che.com -0769net.com -0769sun.com -0769sx.com -0769yp.com -0771rc.com -0772fang.com -0772job.com -0775fcw.com -0775jzw.com -07879.com -07890.com -0791look.com -0791quanquan.com -0792jj.net -0792u.com -079768.com -0797rs.com -079y.com -07cn.com -07ren.com -07swz.com -07yue.com -0813fs.com -08172.hk -0817tv.com -0818tuan.com -082808.com -0832mh.com -0835.com -0835meiya.com -0838.com -0838che.com -085.com -0852diaoyu.com -0852job.com -0853rc.com -0854job.com -0856job.com -0857job.com -0859job.com -08644.com -086kd.com -0871gc.com -0890.com -0898.net -089858.com -0898888.com -0898cfw.com -0898hq.com -0898mmf.com -0898xbfc.com -089u.com -08an.com -08c6.com -08cms.com -08ky.com -090expo.com -0912app.com -0914cn.com -0915home.com -091601.com -0917.com -0917e.com -0919123.com -093.com -0937js.com -0938net.com -093nd9.com -09451.com -094j35.com -095196555.com -0951job.com -09635.com -0967ll.com -0991dj.com -0991net.com -0992.cc -09ge.com -09shijue.com -0bug.org -0car0.com -0cname.com -0d.work -0daily.com -0dayku.com -0du520.com -0duxs.com -0easy.com -0fw.net -0g1s.com -0gouche.com -0hgame.com -0kee.com -0o0o0o0o0o0.tokyo -0qda82zu.com -0rl.cc -0s52.com -0s8s.com -0sm.com -0uai.com -0x3.me -0x5.me -0x6.me -0x7.me -0x9.me -0xaa55.com -0xff000000.com -0xffffff.org -0xsky.com -0xue.com -1-123.com -1-b.tc -1-cs.net -1-du.net -1-yuan.net -1.cc -100-tong.com -100.com -100.me -1000.com -10000.com -10000.sh -10000gd.tech -10000idc.net -10000job.com -10000link.com -10000shequ.com -10000tc.com -10000yao.com -10001wan.com -100024.xyz -1000360.com -10006.info -1000eb.net -1000fr.net -1000fun.com -1000phone.com -1000phone.net -1000plan.org -1000qoi.com -1000thinktank.com -1000tuan.com -1000uc.com -1000xuexi.com -1000xun.com -1000zhu.com -10010.com -10010400.net -10010hb.net -10010js.com -10010ll.com -10010nm.com -1001g.com -1001hw.com -1001p.com -1001tvs.com -100580.com -100669.com -1008011.com -1008120.com -1008610086.com -100883.com -100allin.com -100alpha.com -100ask.net -100ask.org -100audio.com -100bt.com -100chou.com -100chui.com -100cjc.com -100credit.com -100cup.com -100data.com -100du.com -100e.com -100eshu.com -100exam.com -100fang.com -100font.com -100how.com -100ip.net -100jiapu.com -100ksw.com -100legend.com -100loujia.com -100lw.com -100market.net -100md.com -100mian.com -100msh.net -100niangudu.com -100njz.com -100nong.com -100offer.com -100pd.com -100ppi.com -100run.com -100shop.com -100skin.com -100stone.com -100sucai.com -100szy.com -100t.com -100tal.com -100tmt.com -100try.com -100txy.com -100ulife.com -100wa.com -100web.store -100weidu.com -100wen.cc -100wen.com -100wsanguo.com -100x100w.com -100xhs.com -100xiao.com -100xin.com -100xuexi.com -100ye.net -100yigui.com -100yingcai.com -100zhuang.com -100zp.com -101.com -10100000.com -10101111.com -10101111cdn.com -1010dy4.com -1010jiajiao.com -1010jz.com -1010pic.com -1010school.com -1010sh.com -101505.com -10155.com -1015600.com -10185.com -101hr.com -101jiajiao.com -101weiqi.com -1024.com -1024.ink -1024g.com -1024ie.com -1024nic.com -1024sou.com -1024ss.com -1024tools.com -10260.com -1026jz.com -102no.com -102pay.com -103153.com -1032.com -10333.com -1035.mobi -1040jy.com -10419.net -105mr.com -106.com -10639888.com -1065m.com -1066888.com -1073.com -107788.com -108101.xyz -108105.xyz -10865.com -108cun.com -108pk.com -108qi.com -108sq.com -108tian.com -109.com -109876543210.com -10bests.com -10besty.com -10fang.com -10gt.com -10guoying.com -10huan.com -10idc.com -10isp.com -10min.club -10moons.com -10pkpk.com -10s1.com -10sea.com -10soo.com -10uv.net -10vps.com -10yan.com -10yougame.com -110.com -11000.vip -11000011.com -1109.com -110ask.com -110hack.com -110tm.com -111111111.com -1111191.com -111155268.com -1113.cc -1113dns.com -1114dns.com -11160066.com -111867.com -111com.net -111g.com -111tt.icu -111yao.com -112112.com -1122.com -11222.com -112233vip.com -1122dh.com -1128job.com -112book.com -112seo.com -112wan.com -11315.com -1133p6.cc -113989.com -113dh.com -113ya.com -114-91.com -1140086.com -11467.com -114best.com -114cb.com -114cbd.com -114chn.com -114desk.com -114dev.com -114dg.com -114dns.com -114dns.net -114god.com -114hzw.com -114ic.com -114ic.net -114jcw.com -114la.com -114mall.com -114menhu.com -114mo.com -114my.com -114my.net -114oc.com -114photo.com -114piaowu.com -114pinpai.com -114px.com -114qy.com -114s.com -114sf.com -114shouji.com -114study.com -114yygh.com -114zhibo.com -114zpw.com -114zw.org -115.com -11544.com -1155871.com -1156.com -1156dns.com -115800.com -115cdn.com -115cdn.net -115img.com -115jk.com -1163.com -1166.com -11684.com -116cd.com -116cd.net -116kj.com -116yx.com -11773.com -117play.com -118114.net -118689.com -1188.com -118cy.com -118jm.com -118pan.com -118qikan.com -118study.com -118wa.com -119120.org -119958.com -119tx.com -119you.com -11chuangye.com -11dns.com -11dream.net -11fldxn.com -11flow.com -11g.com -11gai.com -11h5.com -11job.com -11job.net -11k.cc -11lx.com -11meigui.com -11pdf.com -11player.com -11qp94.com -11space.com -11sun.com -11wyx.com -11xotn7p.com -11ziyun.com -120-job.com -120.net -120185.com -120ask.com -120askimages.com -120bjgcyy.org -120btc.com -120fd.com -120kid.com -120kq.com -120top.com -120x.net -121121.net -12114job.com -12114rc.com -1212.com -12120.net -121314.com -121ask.com -121down.com -121mai.com -121mai0098.com -121mu.com -121wty.com -121xia.com -1220609.cc -122cha.com -122law.com -122park.com -123-789.com -123.cc -123.com -12301.cc -12306.com -12306bypass.com -12308.com -123123.net -12317.com -12317wan.com -1231818.com -12333.com -12333si.com -1234.cx -1234001.com -123456.la -12345good.com -12345good.net -12348.net -12349.net -1234biao.com -1234i.com -1234n.com -1234wu.com -1234wu.net -1234ye.com -1234yes.com -12354.com -12355.net -1236.com -12365auto.com -12366.com -12366.net -12366cn.com -12366ns.com -123aa.com -123ad.com -123admin.com -123aoe.com -123baofeng.com -123bo.com -123comeup.com -123ds.org -123du.cc -123ems.com -123fc.com -123haitao.com -123hala.com -123hao.com -123hdp.com -123juzi.com -123juzi.net -123meiyan.com -123menpiao.com -123nice.net -123novel.com -123pan.com -123qibu.com -123qy.com -123slg.com -123ths.com -123u.com -123v.net -123webgame.com -123xun.com -123xyq.com -124866.xyz -125.la -12530.com -12580.com -12580.net -12580.tv -12580study.com -125882.com -125edu.com -125job.com -125mx.com -125uu.com -125visa.com -125y.com -126.am -126.com -126.fm -126.link -126.net -126blog.com -126doc.com -126g.com -126qiye.com -126z.net -127-server.xyz -127.com -127.net -1278721.com -127xx.com -127z.com -128456.com -1288.tv -128qd.com -128sy.com -128uu.com -12988.net -12edu.com -12h5.com -12jn.com -12ky.com -12pk.com -12rj.com -12sporting.com -12tiku.com -12yao.com -12ym.com -12ystar.com -13.gs -130014.xyz -130158.com -1306030402.club -131.com -13112.com -1312.vip -1314520sz.com -131458.com -1314gl.com -1314study.com -1314wallet.com -1314zf.com -1317w.com -131cc.com -131w.tv -1322.com -132lawyer.com -1332vp.com -133335.xyz -13377608388.com -133998.com -133china.com -13482896776.com -135031.com -1351.com -13526785.com -135309.com -1353j.com -135650.com -13567.com -1356789.com -1356net.com -135958.com -135995.com -135bianjiqi.com -135box.com -135editor.com -135edu.com -135fa.com -135plat.com -135yuedu.com -136.com -1360.com -136136.com -13636.com -136fc.com -136hr.com -13707.net -13720.com -1374.com -1377.com -137home.com -13800.net -138gzs.com -138top.com -138txt.com -138vps.com -139.com -139000.com -1391.com -13910.com -139130.com -139135.com -1392189.com -13937180868.com -139592.com -13973.com -139cm.com -139erp.com -139life.com -139play.com -139shop.com -139talk.com -139w.com -139wanke.com -139y.com -139zhuti.com -13cr.com -13ejob.com -13gm.com -13hangpifa.com -13ww.net -13xiaoshuoa.com -13yx.com -140414.com -1415926.com -1415926.mobi -14294.com -14498.com -1451cn.com -147xs.com -147xz.com -148-law.com -14866.com -1488.com -148com.com -148la.com -14hj.com -14xd.com -150072.com -1502828.com -150cn.com -151.hk -1510game.com -15111223344.com -1512221.com -15153.com -15166.com -1516676.com -151733.com -1518.com -151rs.com -151top.com -151web.com -15211223344.com -152500.com -1527ego.com -15311223344.com -153g.net -1545ts.com -155.com -155175.com -155idc.com -1560168.cc -1560177.cc -156pay.com -15803.com -1588.tv -15880.com -158c.com -158jixie.com -159.com -15gg.com -15gift.com -15hr.com -15in.com -15ms.com -15solo.com -15str.com -15tianqi.com -15xdd.com -15yc.com -15yl.com -160.com -160.me -160yx.com -161580.com -1616.net -16163.com -1616dh.com -1616n.com -1618.com -161gg.com -1624.win -1626.com -163.cm -163.com -163.fm -163.gg -163.lu -163.net -1633.com -1633d.com -163663.com -1637.com -163888.net -163cdn.com -163cn.tv -163cp.com -163cs.com -163data.net -163fen.com -163hot.net -163industry.com -163jiasu.com -163k.cc -163k.com -163lady.com -163mail.com -163ns.com -163pinglun.com -163py.com -163qiyukf.com -163wh.com -163yu.com -163yun.com -164580.com -16466.com -165123.com -16587.com -166.com -166.net -166161.com -16640.com -1666.com -1668.net -1669la.com -166cai.com -166sh.com -166xs.cc -166zw.com -16768.com -16789.net -16816.com -16838.com -1684.cc -168510.com -1688.com -16885.com -16886000.com -16888.com -1688988.com -1688cdn.com -1688du.com -1688eric.com -1688la.com -1688na.com -1688s.com -1688zhuce.com -16899168.com -168cb.com -168chaogu.com -168dc.com -168dns.com -168hs.com -168job.com -168kk.com -168kn.com -168lyq.com -168manhua.com -168mlj.com -168moliao.com -168rcw.com -168tcw.com -168tea.com -168tex.com -168tochina.com -168zcw.com -169.com -169163.com -169369.com -1696.com -16999.com -169gold.net -169it.com -169kang.com -169t.com -16boke.com -16bus.net -16d.cc -16fan.com -16game.net -16hyt.com -16ker.com -16kxsw.com -16lao.com -16lo.com -16manhua.com -16p.com -16pic.com -16rd.com -16sucai.com -16tz.com -16wl.cc -16xcw.com -16xx8.com -16ye.com -17.com -170.com -17025.org -170hi.com -170mv.com -170tao.com -17167.com -17173.com -17173cdn.com -17173ie.com -17173v.com -17173yx.com -17178.com -1717kf.com -1717pk.com -1718china.com -1718world.com -171tax.com -171win.net -171zz.com -17207.com -172222.com -17284.net -172tt.com -173.com -1732.com -1732.net -17348.com -17350.com -17351.com -17369.com -173daxue.com -173eg.com -173fc.com -173funny.com -173iot.com -173kan.com -173kw.com -173on.com -173sy.com -173uu.com -173zb.com -173zy.com -17446.com -17566.com -1758.com -175club.com -175game.com -175ha.com -175kh.com -175pt.com -175pt.net -175sf.com -175wan.com -176616.com -17666.mobi -17673.com -1768.com -176878.com -176quan.com -1773.com -1778.com -178.com -178198.com -178448.com -1787.ink -178800.cc -178871.xyz -17888.com -178bit.com -178du.com -178hui.com -178linux.com -178online.com -178pt.com -178rw.com -179.com -179179.com -1794game.com -17986.net -17989.com -17admob.com -17ai.me -17avr.com -17b.net -17bang.ren -17bdc.com -17bianji.com -17byh.com -17caifu.com -17cdn.com -17ce.com -17chuang.cc -17coding.info -17cx.com -17dao.com -17dap.com -17dawan.com -17dm.com -17donor.com -17doubao.com -17dp.com -17emarketing.com -17ex.com -17fanwen.com -17fee.com -17fengguo.com -17fengyou.com -17fifa.com -17firefox.com -17font.com -17forex.com -17g.com -17game.com -17gaoda.com -17getfun.com -17gwx.com -17haibao.com -17hotplay.com -17house.com -17hpl.com -17huang.com -17itou.com -17ivr.com -17jc.net -17jita.com -17k.com -17kf.cc -17kgk.com -17kgl.com -17kjs.com -17koko.com -17kouyu.com -17kuxun.com -17kxgame.com -17lele.net -17lewan.net -17liuxue.com -17ll.com -17luyouqi.com -17m3.com -17meiwen.com -17mf.com -17mqw.com -17ms.com -17neo.com -17oh.com -17ok.com -17oko.com -17palyba.com -17pr.com -17python.com -17qcc.com -17qread.com -17rd.com -17rd.net -17read.com -17roco.com -17sucai.com -17syi.com -17sysj.com -17taotaoa.com -17taotaob.com -17taotaoba.com -17taotaoc.com -17tcw.com -17tigan.com -17track.net -17tui.cc -17tx.com -17u.com -17u.net -17u1u.com -17u7.com -17ugo.com -17uhn.com -17uhui.com -17uhui.net -17usoft.com -17usoft.net -17uxi.com -17v5.com -17vsell.com -17wan7.com -17wanba.com -17wanxiao.com -17wclass.com -17weike.com -17wendao.com -17whz.com -17win.com -17ww.cc -17xlm.com -17xsj.com -17xueba.com -17xxl.com -17ya.com -17yaoqu.com -17yc.com -17ym.org -17you.com -17yucai.com -17yund.com -17yunlian.net -17yy.com -17zhiliao.com -17zhuangxiu.com -17ziti.com -17zixue.com -17zjh.com -17zub.com -17zuoye.com -17zuoye.net -17zwd.com -18.cm -180102.com -18095.com -180disk.com -180qt.com -18183.com -18183g.com -1818hm.com -181ps.com -181ue.com -182208.com -18375.com -183me.com -183post.com -183read.com -18488.com -185185.com -186078.com -1866.tv -18665348887.com -186688.com -1873game.com -1874.cool -187997.com -188.com -188158.com -188187.xyz -188221.com -18856.com -188628.com -188app.xyz -188bifen.com -188diaoche.com -188hi.com -188lanxi.com -188mb.com -188naicha.com -188soft.com -188wan.com -188yd.com -1892139.com -1895m.com -189cha.com -189cube.com -189ebuy.com -189jxt.com -189read.com -189read.net -189sec.com -189smarthome.com -189store.com -189works.com -189young.com -18chonglou.com -18cp.vip -18daxue.com -18dx.com -18guanjia.com -18l.net -18ladys.com -18link.com -18ph.com -18qiang.com -18srcimg.com -18touch.com -18vps.com -18wk.com -18yl.com -18zhuanqian.com -18zw.com -19.com -1900.live -1903it.com -1905.com -19196.com -1919game.net -192ly.com -1931.com -1937cn.com -193839.com -1947.cc -1949idc.com -195155.com -195855.com -19687.com -197.com -197746.com -197946.com -197c.com -198254.com -19831110.com -198358.com -198424.com -198449.com -198503.xyz -198526.com -1985cd.com -1985t.com -1988.tv -19888.tv -1988wp.com -1989c.com -198game.com -198game.net -199508.com -1997sty.com -1998mall.com -1999019.com -1999year.com -199it.com -199u2.com -199yt.com -199zw.com -19bizhi.com -19call.com -19call.net -19lou.com -19mi.net -19mini.com -19pay.net -19ued.com -19where.com -19xsf.com -19yxw.com -19zhan.com -1an.com -1ang.com -1aq.com -1b23.com -1biaozhun.com -1bus.net -1cae.com -1caifu.com -1caitong.com -1cent.xyz -1checker.com -1cloudsp.com -1cnmedia.com -1cno.com -1d1d100.com -1dao99.com -1diaocha.com -1diary.me -1domedia.com -1drv.ws -1dufish.com -1dutm.com -1f11.com -1fenda.com -1foo.com -1fqw.com -1g31.com -1gbru.com -1gesem.com -1ggame.com -1gjh.com -1haigtm.com -1hangye.com -1hhd.com -1hkt.com -1hshop.com -1huamu.com -1huizhan.com -1iptv.com -1j1x.net -1jiajie.com -1jian.fun -1juzi.com -1k2k.com -1ka123.com -1kapp.com -1ke.net -1kejian.com -1kkk.com -1kmxc.com -1kuang.com -1kx.me -1kxun.com -1kyx.com -1lan.tv -1liantu.com -1look.tv -1lou.com -1lzs.com -1m.net -1m3d.com -1m85.com -1mall.com -1mao.cc -1maoshua.com -1mayi.com -1mfg.com -1miba.com -1mishu.com -1mit.com -1mm8.com -1mmed.com -1mod.org -1more.com -1mpi.com -1mushroom.com -1mxian.com -1n11.com -1nami.com -1nmob.com -1nongjing.com -1nsou.com -1nyz.com -1o26.com -1p1g.com -1pm2.com -1ppt.com -1q2q.com -1qa.link -1qfa.com -1qianbao.com -1qwe3r.com -1r1g.com -1ridai.com -1rtb.com -1rtb.net -1safety.cc -1sapp.com -1shang.com -1shangbiao.com -1shoucang.com -1sj.tv -1sohu.com -1stacks.net -1stchip.com -1stjc.com -1t1t.com -1tai.com -1tdw.com -1techan.com -1textile.com -1thx.com -1ting.com -1tjob.com -1tong.com -1tu-design.com -1tu.com -1tuikem.com -1uke.com -1uuc.com -1vp.me -1wang.com -1wii.com -1x3x.com -1xiezuo.com -1xinzulin.com -1xmb.com -1xz.com -1y.com -1y0g.com -1y2y.com -1yabc.com -1yaoda.com -1yb.co -1yd.me -1yee.com -1yun.cc -1yyg.com -1zhangdan.com -1zhao.org -1zhe.com -1zhengji.com -1zhixue.com -1ziyou.com -1zjob.com -1zr.com -1zu.com -1zw.com -2-class.com -2-mm.net -200.net -2000200.com -200022.xyz -2000888.com -2000dns.com -2000new.com -2000y.net -200218.com -20063365.com -2006q.com -2008php.com -2008red.com -200call.com -200wan.com -200y.com -201061.com -2011ly.com -201201.com -2012jxf33.com -20130123.com -2014.mobi -2014w7.com -201551.com -2015law.com -2016ruanwen.com -2016win10.com -20174555.com -2017taoke.com -2018zjjly.com -2019cdac.com -201g.com -202030.com -2021.com -2022cdnpl.com -2022pola.com -2023game.com -202m.com -202wan.com -2048sj.com -2049baby.com -2080ly.com -208xs.com -20ju.com -20planet.com -20qu.com -20xs.cc -20xue.com -20z.com -21-rent.com -21-sun.com -210997.com -210z.com -2113.net -2114.com -2115.com -211600.com -211ic.com -211lx.com -211zph.com -212300.com -2125.com -21263.net -2128.net -2133.com -21373.com -2143t.com -2144.com -2144gy.com -214yx.com -2155.com -216tt.com -217.net -217play.com -217wo.com -218318.com -218996.com -21bcr.com -21beats.com -21bm.com -21bowu.com -21cake.com -21cbr.com -21ccnn.com -21cd.com -21ce.cc -21cn.com -21cn.net -21cnev.com -21cnjy.com -21cnjy.net -21cnsungate.com -21cos.com -21cp.cc -21cp.com -21ctest.com -21datasheet.com -21dianyuan.com -21edu8.com -21ejob.com -21eline.com -21epub.com -21fid.com -21food.com -21ge2.com -21hubei.com -21hubei.net -21ic.com -21icsearch.com -21ido.com -21jingji.com -21jrr.com -21js.com -21kan.com -21ks.net -21kunpeng.com -21ld.com -21maoyi.com -21mcu.com -21mmo.com -21na.com -21our.com -21qa.net -21qphr.com -21rv.com -21shhr.com -21shipin.com -21shte.net -21skcy.com -21smov.com -21so.com -21softs.com -21spv.com -21sq.org -21tb.com -21tjsports.com -21tx.com -21tyn.com -21uv.com -21vbc.com -21vbluecloud.com -21vbluecloud.net -21viacloud.com -21vianet.com -21voa.com -21wecan.com -21wenju.com -21ww.cc -21xc.com -21xcx.com -21xianhua.com -21xl.info -21xuema.com -21yod.com -21yq.com -21ytv.com -21yunwei.com -21zbs.com -21znw.com -22.com -221234.xyz -2213.com -221400job.com -22145.com -2217.com -221700.com -2218j.com -222.com -222255268.com -222bz.com -222i.net -223.so -2239.com -223969ufy.com -224.com -22442400.com -2247.com -224700.com -225721.com -2258.com -22588888.com -225962tyy.com -226120.com -2265.com -226500.com -226531.com -2280.com -2281wa.ren -2288.org -2295.com -2298.com -22baobei.com -22dm.com -22doc.com -22edu.com -22hd.com -22ja.com -22k9.com -22lianmeng.com -22lrc.com -22mt.in -22n.com -22net.com -22plc.com -22shop.com -22tianbo.com -22vd.com -22zw.com -22zy.net -2300sjz.com -230596.com -230890.com -231122.com -232232.xyz -2323u.com -2323wan.com -232485.com -232929.com -233.com -233000.com -2333u.com -23356.com -233863.com -2339.com -233d.net -233leyuan.com -233lyly.com -233o.net -233py.com -233wo.com -233ww.net -233xyx.com -234.com -2344.com -2345.cc -2345.com -2345.gd -2345.net -23456v.com -2345a.com -2345ac.com -2345cdn.net -2345download.com -2345ff.com -2345mbrowser.com -2345soso.com -234du.com -234f.com -2356.com -236400.com -236501.xyz -2366.com -23673.com -236v.cc -236z.com -237y.com -239334.cc -23bei.com -23book.com -23class.com -23cpc.com -23do.com -23du.com -23ee.net -23hh.net -23img.com -23job.net -23kmm.com -23ks.com -23luke.com -23lvxing.com -23qb.com -23qb.net -23qun.com -23sk.com -23txt.com -23us.so -23us.tv -23us23us.com -23uswx.com -23wow.com -23wx.cc -23wx.io -23xs.cc -23xs.tv -23xsw.cc -23yy.com -240yx.com -246546.com -2478.com -248.com -2481e.com -248xyx.com -249m.com -24geban.com -24haowan.com -24hmb.com -24k99.com -24kdh.com -24ker.com -24kplus.com -24maker.com -24money.com -24om.com -24pay.net -24timemap.com -24u7tos.com -2500.tv -25000li.com -2500city.com -2500fang.com -2500sz.com -2529.com -253.com -253669vqx.com -253952.com -253u.com -2541.com -254game.com -255616.com -256app.com -25752.com -258.com -258288.com -25847.com -25863.com -2588qq.com -25892.com -258ch.com -258fuwu.com -258jituan.com -258sd.com -25992.com -25az.com -25dx.com -25game.com -25ku.com -25nc.com -25pp.com -25pyg.com -25un.com -25wy.com -25xm.com -25xt.com -25yi.com -25yz.com -260.net -2629.com -263.com -263.net -263em.com -263fc.com -263idc.com -263idc.net -263vps.com -263xmail.com -263y.com -263zw.com -264006.com -26595.com -265g.com -265o.com -265ps.com -266.la -266680.com -266wan.com -2672721.xyz -2678.com -267gg.com -2686.com -2688.com -268888.net -268v.com -269.net -26923.com -26ef.com -26host.com -26joy.com -26ks.org -26lady.com -26tc.com -26youxi.com -26yx.com -26zc.com -27270.com -273u.com -275.com -275st.com -277sy.com -278838mcu.com -2799web.com -279tt.com -279wo.com -27aichi.com -27dt.com -27dy.com -27l.com -27lvpai.com -27tj.com -27ws.com -28.com -281010.com -28123.com -281826.vip -2827.com -28283.com -2835177ccc.com -28493.com -2853x.com -2858999.com -285u.com -286392.com -288288dy.com -288idc.com -289.com -2898.com -28beiduo.com -28ka.com -28khy.com -28rv.com -28tui.com -28y.com -28yj.com -2918.com -29293.com -2929gou.com -293.net -29592.net -2961h.com -29663.com -296u.com -29797.com -2980.com -2981.com -29851.xyz -299906.com -29dnue.com -29nh.com -29xf.com -29yx.com -2abc8.com -2av7.com -2baxb.me -2bkw.com -2broear.com -2bulu.com -2caipiao.com -2ccc.com -2chcn.com -2cloo.com -2cname.com -2cq.com -2cto.com -2cycd.com -2cycomic.com -2cyxw.com -2cyzx.com -2d3d5d.net -2dan.cc -2danji.com -2df.me -2dfire.com -2dfire.info -2dph.com -2du.net -2dyou.com -2ed5d.com -2f.com -2fc5.com -2floorings.com -2fz1.com -2g88.vip -2gdt.com -2gei.com -2google.com -2hanjutv.com -2haohr.com -2heng.xin -2hua.com -2ibook.com -2ic.cc -2ita.com -2itcn.com -2j-m.by -2j88.com -2jianli.com -2jiapu.com -2k2k.com -2kb.com -2ktq.com -2ktvb.com -2kxs.org -2lian.com -2lieqi.com -2loveyou.com -2m2j.com -2ma2.com -2mjob.com -2mould.com -2muslim.org -2or3m.com -2p.com -2pcdn.com -2q10.com -2qupu.com -2r3r.com -2rich.net -2shihui.net -2sx.net -2tianxin.com -2tx.com -2v8d.com -2w.cm -2weima.com -2wzz.com -2xd.net -2xiazai.com -2y9y.com -2yuanyy.com -2yup.com -2zhk.com -2zimu.com -2zzzzzz.com -3-3.me -3.biz -30.com -30.net -3000.com -300033.info -3000api.com -3000idc.com -3000soft.net -3000test.com -3000xs.com -3001.net -300113.com -300624.com -300hu.com -300ppt.com -300zi.com -301-66cdn.com -301688.com -301mba.com -301nn.com -301zhuanfa.com -3023.com -302302.xyz -3033c.com -3044.com -306t.com -30c.org -30cgy.com -30cn.net -30fun.com -30ka.com -30play.com -30tqyb.com -30w.net -31.com -310game.com -310s-2520.com -310tv.com -310win.com -311100.com -311wan.com -312green.com -313.com -313515.com -3145.com -314pay.com -3150315.com -3158.com -315banzhao.com -315che.com -315fangwei.com -315hyw.com -315i.com -315online.com -315sc.org -315tech.com -315z.net -315zw.com -31609.com -317608.com -317hu.com -3188.la -318ek.com -3198.com -31alu.com -31bxg.com -31byq.com -31bzjx.com -31cg.com -31chaxun.com -31expo.com -31fabu.com -31food.com -31games.com -31gcjx.com -31huiyi.com -31idc.com -31jc.com -31jf.com -31jgj.com -31jiaju.com -31jmw.com -31jxw.com -31knit.com -31mada.com -31martech.com -31meijia.com -31ml.com -31mold.com -31pump.com -31rent.com -31seal.com -31sjjx.com -31spjx.com -31taoci.com -31wj.com -31xj.com -31xs.net -31yarn.com -31yj.com -31yr.com -31zscl.com -320106.com -320921.com -321200.com -321274.com -321ba.com -321cad.com -321cy.com -321dai.com -321fenx.com -321go.com -321kaishi.com -321key.com -321mh.com -321zou.com -322wl.com -3230.com -3234.com -3237.com -324.com -3259.com -326pay.com -3280.com -32800.com -3286.cc -328f.com -328vip.com -3290.com -32c3.com -32ka.com -32r.com -32wan.com -32yx.com -33.com -330123456.com -3304399.com -3304399.net -330shingpklk.com -33105.com -331234.xyz -3312345.com -3320.net -3321.com -3322.cc -3322.net -3322.org -3323.com -3323399.com -332831.com -333-555.com -3332358.com -33330354.com -333333.com -3335665.com -33360.com -3336637.com -3336639.com -3336653.com -3336657.com -333666999.club -3336672.com -3336673.com -3336683.com -3336691.com -3337726.com -3337729.com -3337736.com -3337739.com -3337751.com -3337756.com -3337765.com -3337780.com -3337781.com -3337782.com -3337783.com -3337785.com -33380xl.com -3338808.com -3338863.com -3339auto.com -333ck.com -333cn.com -333job.com -333ku.com -333y3.com -334433.xyz -3344u.com -33519.com -3359.com -3361.com -3366.com -3366.net -3366812ccc.com -336688.net -3366886633.com -3366img.com -3367.com -337000.com -337y.com -338336.com -3387.com -3389dh.com -3393.com -33aml.com -33app.net -33bus.com -33ip.com -33iq.com -33jianzhi.com -33jzw.com -33lc.com -33ly.com -33map.com -33map.net -33oncall.com -33trip.com -33xs.com -33yq.com -33yqw.com -34.com -341666666.com -3454.com -3456.cc -3456.com -3456.tv -34580.com -345fk.com -345huishou.com -345k.com -3464.com -3499.co -34job.com -34wl.com -35.com -350.com -350.net -3500.com -350200.com -350abc.net -35195.vip -352.com -3520.net -352200.com -3525.com -35321.com -3533.com -354054.com -3551.com -355xx.com -356123.com -35666c.com -35667.com -356688.com -3566t.com -357.com -357global.com -358.com -35941.com -3595.com -35ba.com -35dalu.com -35dxs.com -35go.net -35hw.com -35inter.com -35jk.com -35kds.com -35lz.com -35nic.com -35pic.com -35pn.com -35q.com -35wed.com -35zww.com -36.la -360-bo.tv -360-g.net -360-game.net -360-jr.com -360.com -360.net -3600.com -3600.net -3600d.com -3600du.com -360114.com -360118.com -360510.com -36099.com -360abc.com -360aiyi.com -360anyu.com -360bifen.net -360biji.com -360buy.com -360buyimg.com -360buyinternational.com -360byd.com -360bzl.com -360caifu.com -360cdn.com -360cdnjiasu.com -360changshi.com -360che.com -360chezhan.com -360chou.com -360cloudwaf.com -360daikuan.com -360ddj.com -360doc.com -360doc1.net -360doc2.net -360doc26.net -360doc28.net -360doc31.net -360doc33.net -360doc35.net -360doc7.net -360docs.net -360doo.com -360down.com -360drm.com -360dunjiasu.com -360eol.com -360fdc.com -360gann.com -360gogreen.com -360gtm.com -360guanai.com -360hapi.com -360hitao.com -360hqb.com -360huzhubao.com -360hx.com -360hy.com -360hyzj.com -360ic.com -360img.cc -360insurancemall.com -360ito.com -360jie.com -360jinrong.net -360jq.com -360jrjietiao.com -360jrkt.com -360jzhm.com -360kad.com -360kan.com -360ksbd.com -360kuai.com -360kuaixue.com -360kxr.com -360lj.com -360log.com -360longyan.com -360midi.com -360mkt.com -360os.com -360panyun.com -360powder.com -360qc.com -360qd.com -360qhcdn.com -360qikan.com -360qikan.net -360qws.com -360safe.com -360safedns.com -360sdn.com -360shouji.com -360shouzhuan.com -360sok.com -360sousou.com -360stamp.com -360taojin.com -360tianma.com -360tong.net -360top.com -360totalsecurity.com -360tpcdn.com -360tres.com -360u9.com -360uu.com -360vcloud.com -360vipshop.com -360vps.com -360vrzy.com -360wbl.com -360webcache.com -360weizhan.com -360wscdn.com -360wyw.com -360wzb.com -360wzws.com -360xh.com -360xiehui.com -360xkw.com -360xlab.org -360yao.com -360yfw.com -360youtu.com -360zhyx.com -360zqaq.com -361.cm -361757.com -3618med.com -361a.com -361dai.com -361mogame.com -361shipin.com -361sport.com -361way.com -362.cc -362728tdg.com -363.com -363.net -363322014.com -363u.com -364000.com -365111.com -365128.com -365135.com -36524hua.com -36543.com -365500.com -365708.com -36578.com -365960.com -365art.com -365auto.com -365autogo.com -365azw.com -365bj.com -365book.net -365cgw.com -365chanlun.com -365che.net -365css.com -365cyd.com -365cyd.net -365daan.com -365dhw.com -365diandao.com -365digitalonline.com -365ditu.com -365dmp.com -365editor.com -365eme.com -365essay.com -365f.com -365gangqin.com -365heart.com -365htk.com -365huaer.com -365huifu.com -365ibank.com -365icl.com -365ime.com -365inews.com -365j.com -365jcw.com -365jia.com -365jiating.com -365jilin.com -365jq.com -365jw.com -365jz.com -365kan.tv -365kandian.com -365key.com -365master.com -365pcbuy.com -365pk.com -365pp.com -365pr.net -365pub.com -365rili.com -365sec.com -365shequ.com -365sky.com -365ta.com -365tex.com -365ttcz.com -365webcall.com -365world.com -365xiaoyanzi.com -365xiazai.com -365xuet.com -365xxy.com -365yg.com -365you.com -3663.com -366300.com -36657.cc -366ec.com -366kmpf.com -366translation.com -36706.com -3673.com -368mall.com -368tea.com -369110.xyz -3694c.com -369785.com -3699.cc -3699wan.com -369wenku.com -369xxw.com -36cao.live -36dianping.com -36dj.com -36hjob.com -36jr.com -36kr.com -36kr.net -36krcdn.com -36krcnd.com -36nu.com -36tw.com -36ve.net -36yc.com -37.com -37088924.cc -370fd.com -371.com -371.net -3710167.com -37163.com -371house.com -371love.com -37201.com -3721ps.com -3722.com -3727.cc -37274.com -3733.com -3733game.com -3737.com -3737k.com -373best.com -373f.com -373net.com -373yx.com -375263.com -375772rug.com -375buy.com -37682.biz -37937.com -3798.com -3799qq.com -37bjw.com -37cos.com -37cs.com -37cu.com -37cy.com -37dh.com -37game2.com -37gogo.com -37gowan.com -37hr.com -37k.com -37med.com -37pps.com -37see.com -37tang.com -37tgy.com -37wan.com -37wan.net -37wanimg.com -37women.com -37www.com -37wxwl.com -37yue.com -37yzy.com -37zone.com -380852.com -380871.com -3817.com -381pk.com -38238r.com -3839.com -3839apk.com -3839app.com -3839app.net -3839img.com -3839pay.com -3839pic.com -3839vc.com -3839video.com -383yun.com -3887.com -388g.com -3892222.com -3895566.com -3899.net -389j.com -38blog.com -38ejed.com -38fan.com -38hack.com -38hot.net -38hp.com -38hzt.com -38mhw.com -38zj.com -39.com -39.net -391065.com -3911.com -391k.com -393.com -3937.com -3964.com -39655.com -3975.com -3975ad.com -3975ad.xyz -3975app.com -3975cdn.com -3977s.com -3977t.vip -399493.com -39ask.net -39center.com -39clean.com -39cs.com -39dg.com -39ej7e.com -39fei.com -39fengliao.com -39h83s.com -39health.com -39jks.com -39kan.com -39kf.com -39meitu.com -39shubao.com -39sk.com -39txt.com -39ws.com -39yst.com -3a4.net -3a4b5c.com -3aok.com -3avox.com -3b2o.com -3bu.com -3bwx.com -3c2p.com -3chongmen.com -3cjob.com -3conline.com -3cpp.org -3cvrc.com -3cwu.com -3cxg6v.com -3d-stereovision.com -3d2000.com -3d56.net -3d66.com -3daima.com -3dbuyu.com -3dbuyu.net -3ddayin.net -3ddl.net -3ddl.org -3deazer.com -3dgali.com -3dgenomics.org -3dhao.com -3dhat.com -3dhoo.com -3dinlife.com -3dinnet.com -3dkk.com -3dkunshan.com -3dllc.cc -3dllc.com -3dly.com -3dm.pw -3dmax8.com -3dmaxvip.com -3dmgame.com -3dmgame.hk -3dmgame.net -3dmo.com -3dmomoda.com -3dnew.com -3doe.com -3dsjw.com -3dsnail.com -3dtank.com -3dtvbits.org -3dwebyx.com -3dwwwgame.com -3dxia.com -3dxt.com -3dxuan.com -3dxy.com -3dzyw.com -3e.net -3elife.net -3eyes.org -3fang.com -3fantizi.com -3g-edu.org -3g210.com -3g3h.org -3g567.com -3gdisk.com -3gifs.com -3glasses.com -3gmfw.com -3gmimo.com -3gogogo.com -3gosc.com -3gpda.net -3gpk.net -3gsou.com -3gu.com -3gus.com -3h3.com -3incloud.com -3j4.com -3jdh.com -3jidi.com -3jke.com -3k.com -3k3cn.com -3ke.cc -3kid.com -3kk.com -3kmq.com -3ko.com -3kongjian.com -3kr.com -3kyi.com -3laohu.com -3laz.com -3lbrand.com -3lian.com -3lsoft.com -3mbang.com -3mh0yvx.com -3miao.net -3miii.com -3mtw.com -3mu.me -3n110.com -3nbb.com -3poo.com -3q2008.com -3qhouse.com -3qwe.com -3renhe.net -3richman.com -3rkr.com -3s.work -3s001.com -3s3w.com -3s78.com -3scard.com -3shuwu.com -3snews.net -3songshu.com -3stl.com -3tilabs.com -3u.com -3unshine.com -3uol.com -3us.com -3uww.cc -3v.do -3vjia.com -3vjuyuan.com -3vlm.net -3vsheji.com -3wads.com -3wcoffee.com -3wfocus.com -3wht.com -3wka.com -3wmm.com -3wzhaopin.com -3x88.net -3xgd.com -3xiazai.com -3y7h.com -3yakj.com -3yoqu.com -3yx.com -3zhijk.com -3zmuseum.com -4-xiang.com -4.cm -400-lighting.com -400.com -4000034168.com -4000278400.com -4000500521.com -4000730138.com -4000892990.com -4001006.com -4001006666.com -4001113900.com -4001581581.com -4001890001.com -4001961200.com -400301.com -40046aa.com -400516.com -4006026717.com -4006055885.com -4006216888.com -4006339177.com -4006695539.com -4006906600.com -4007108885.net -4007112366.com -4008000000.com -4008005216.com -4008060066.com -4008075595.com -4008090678.com -4008103103.com -4008107107.com -4008109886.com -4008117117.com -4008123123.com -4008600011.com -4008800016.com -4008863456.com -4008885166.com -4008885818.com -4009515151.com -4009700778.com -4009870870.com -4009991000.com -400cx.com -400gb.com -400iu.com -400jz.com -400lyw.com -400num.com -400qikan.com -400vv.com -400web.com -402043.com -40407.com -404600.com -404forest.com -404mzk.com -404wan.com -404youxi.com -405400.com -406yx.com -407wan.com -4080517.com -4080so.com -409874.com -40fenzhong.com -40manhua.com -40maoaa.com -40mdd.com -41114.cc -41188.com -411au.com -4124.com -41324.com -4138622.com -4143.cc -4177.com -418999.com -41game.com -41gw.com -41huiyi.com -41ms.com -41tp.com -41wan.com -41xt.com -42069.com -421.co -42144.com -423down.com -4243.net -425300.co -425yx.com -42651.com -426g.com -429006.com -42trip.com -42xz.com -4311.com -4321.com -432520.com -435000.com -435200.com -4355.com -4366.com -436675.com -4366aa.com -4366ga.com -4366pk.com -4377.com -4377info.com -437zhifu.com -4393.cc -4399-xyx.com -4399.com -4399.net -43999yx.com -4399api.com -4399api.net -4399biule.com -4399data.com -4399dmdq.com -4399dmw.com -4399doc.com -4399er.com -4399hhh.com -4399i.net -4399inc.com -4399j.com -4399mail.com -4399pk.com -4399sj.com -4399swf.com -4399sy.com -4399wanju.com -4399youpai.com -4399youxi.com -4399yyy.com -43ns.com -43zhubao.com -4425t.com -444333.xyz -444475.com -44485.com -444888qq.com -4480.cc -4484.win -4492.com -4493.com -44971.com -44dt.com -44vs.com -453600.net -456.net -4567w.com -456ss.com -457.com -45758924.vip -458kq.com -459.org -45app.com -45fan.com -45io.com -45ns.com -45r.com -45win.com -45xie.com -45yx.com -46412.com -46466.me -465676.tv -4658.net -46644.com -46771313.com -4699a.com -46design.com -46mlsv.com -47365.com -4738.com -4743.uk -47473.com -474b.com -4765.com -4779.com -477zw.com -47819.com -47gs.com -47test.com -47zu.com -48.com -4846.com -48575.com -4869.cc -48855268.com -48905.com -48hao.net -49321.com -49358.com -49363.com -4948.com -49644913.com -496601.com -497-img.com -497.com -498.net -499-img.com -499youxi.com -49app.com -49ms.net -49pic.com -49vps.com -49wanwan.com -49you.com -49yu.com -4a40.com -4apx.com -4aqq.com -4ci.cc -4cnzz.com -4cola.com -4cun.com -4dai.com -4db.com -4dtime.com -4dwan.com -4dzfoq.xyz -4everdns.com -4f89.com -4fang.net -4ggogo.com -4gh6.com -4glte.org -4gqp.com -4gtoefl.com -4h6s.com -4hgame.com -4hou.com -4hpy.com -4inlook.com -4jplus.com -4k123.com -4kbizhi.com -4kong.com -4kya.com -4l.hk -4lzr.com -4paradigm.com -4px.com -4pyun.com -4q5q.com -4sjob.com -4sscrm.com -4tdf.com -4thetooth.com -4to66.com -4u4v.net -4w8.net -4xseo.com -4y4.net -4ye.cc -4yt.net -4yx.com -5-link.com -50-jia.com -500.com -5000.com -50004.com -5000yan.com -50018.com -50027.com -500cache.com -500d.me -500doc.com -500fd.com -500gm.com -500hj.com -500px.me -500talk.com -500tb.com -500wan.com -500wancache.com -500zhongcai.com -5011.net -501wan.com -50215.com -503118.com -50331.net -503error.com -504pk.com -5054399.com -5054399.net -505gg.com -505uu.com -5066.com -5068yx.com -506fhq.com -50970.com -50bang.org -50bangzh.com -50pk.com -50pkpk.com -50sht.com -50tu.com -50union.com -50vm.com -50yc.com -50yin.com -50zera.com -50zw.co -50zw.com -50zw.la -51-cf.com -51-jia.com -51-n.com -51.com -51.la -51.net -5100.net -510560.com -510xds.com -510you.com -511.la -511023.com -51110.com -51119.com -5117.com -511718.com -5118.com -5118img.com -5119.net -511mv.com -511wan.com -511wx.com -511yj.com -5120.com -5120bb.com -51240.com -51269017.com -512999.xyz -512play.com -512wx.com -5132.com -513523.com -5137.cc -51386.com -513hjs.com -514193.com -514200.com -51508.com -51511.com -515158.com -5151app.com -5151sc.com -5153.com -51555.net -51569.com -5156rcw.com -515app.com -515car.com -515ha.com -515ppt.com -5163.com -51658042.com -51661182.com -5166ys.com -516a.com -516edu.com -516ly.com -5170d.com -5173.com -5173cdn.com -517best.com -517cdn.com -517ee.com -517hotel.com -517huizhou.com -517huwai.com -517idc.com -517japan.com -517la.com -517la.net -517lppz.com -517ming.com -517mr.com -517na.com -517rcw.com -517tez.com -517w.com -517xc.com -5184.com -51845.com -5184edu.com -5184pass.com -5185.cc -51864.com -5187g.com -5188.com -5188ab.com -518ad.com -519.best -519397.com -51969.com -5199.cc -5199.com -519rv.com -51ade.com -51ads.com -51aimei.com -51aiwan.com -51anidea.com -51app.com -51ask.org -51asm.com -51aspx.com -51auto.com -51autogo.com -51autoimg.com -51awifi.com -51azure.cloud -51babybuy.com -51baigong.com -51banban.com -51banhui.com -51baocan.com -51baoku.com -51baoshui.com -51baoxiu.com -51bbo.com -51besttea.com -51bi.com -51biaoqing.com -51biz.com -51bjrc.com -51bmb.com -51bonli.com -51bos.com -51bras.com -51btceth.com -51bushou.com -51businessview.com -51buy.com -51bxg.com -51bzi.com -51cacg.com -51callcenter.com -51callu.net -51camel.com -51ccd.com -51ccdn.com -51cdn.com -51chang.com -51changdu.com -51changdu.xyz -51changxie.com -51chaoban.com -51chost.com -51chuli.com -51cir.com -51cjyy.com -51cocoa.com -51code.com -51cok.com -51comp.com -51cosmo.com -51cpm.com -51credit.com -51csr.com -51cto.com -51cube.com -51cunzheng.com -51daao.com -51dai.com -51daifu.com -51daima.com -51dangpu.com -51daquan.com -51daxueedu.com -51dc.com -51devapp.com -51diangu.com -51din.com -51dingxiao.com -51ditu.com -51dmq.com -51dns.com -51dojoy.com -51dongshi.com -51down.vip -51dpub.com -51drv.com -51dtv.com -51dugou.com -51dzrc.com -51dzt.com -51dzw.com -51ean.com -51ebo.com -51ebooks.com -51edu.com -51eduline.com -51eim.com -51ejz.com -51ekt.com -51ele.net -51emo.com -51en.com -51epei.com -51eshop.com -51etong.com -51eyun.com -51f.com -51facai.com -51fangan.com -51fanli.com -51fanli.net -51feibao.com -51finace.com -51findshop.com -51flrc.com -51fpg.com -51fubei.com -51fucai.com -51fund.com -51fxkj.com -51fxzq.com -51fytx.com -51g3.com -51g3.net -51g4.com -51gaifang.com -51gfw.com -51ggwu.com -51gh.net -51give.org -51gjie.com -51gjj.com -51gme.com -51golife.com -51gongxiao.com -51goods.vip -51google.com -51gouke.com -51goupiao.com -51gowan.com -51gran.com -51grfy.com -51growup.com -51gsl.com -51guanhuai.com -51guoji.com -51h5.com -51hanghai.com -51hangkong.com -51haofu.com -51haojob.com -51hcb.com -51hchc.com -51hcw.com -51hei.com -51hejia.com -51hika.com -51hjk.com -51hlife.net -51hosting.com -51hostonline.com -51houniao.com -51hsw.com -51huanhuan.com -51huaya.com -51hunningtu.com -51hvac.com -51hwe.com -51hwzy.com -51ias.com -51ibm.com -51idc.com -51ielts.com -51ifind.com -51ifonts.com -51img1.com -51img2.com -51img3.com -51img5.com -51img6.com -51img7.com -51img9.com -51imo.com -51ios.net -51itapp.com -51itstudy.com -51iwifi.com -51ixuejiao.com -51jiabo.com -51jiameng.com -51jianxie.com -51jiaxiao.com -51jiecai.com -51jiemeng.com -51jingke.com -51jingying.com -51jishu.com -51jiuhuo.com -51job.com -51jobcdn.com -51jobdns.com -51js.com -51jt.com -51jucaimi.com -51julebu.com -51junshi.com -51jyrc.com -51kahui.com -51kaiye.com -51kanong.com -51kaowang.com -51kaxun.com -51kehui.com -51kids.com -51kik.com -51kim.com -51kt.com -51kupai.com -51kupin.com -51kywang.com -51la.net -51labour.com -51laizhe.com -51langtu.com -51ldb.com -51ldzx.com -51lg.com -51lifes.com -51lingji.com -51liucheng.com -51ljms.com -51lucy.com -51lunwenwang.com -51luying.com -51lyrc.com -51mag.com -51maiquan.com -51marryyou.com -51mdd.com -51mdq.com -51meeting.com -51meigu.com -51meiliao.com -51meishu.com -51microshop.com -51miit.com -51minbingtuan.net -51miz.com -51mkf.com -51mnq.com -51mo.com -51mockup.com -51mokao.com -51mole.com -51moot.net -51mrp.com -51mta.com -51mtw.com -51nicelearn.com -51niux.com -51nod.com -51nuoqi.com -51nwt.com -51offer.com -51oneone.com -51onion.com -51onlines.com -51only.com -51open.net -51opone.com -51ops.com -51pao.net -51papers.com -51pec.com -51peptide.com -51pgzs.com -51photo.vip -51php.com -51pibu.com -51pigai.com -51ping.com -51pinwei.com -51pjys.com -51pla.com -51pocket.com -51pocket.net -51pos.com -51pot.com -51pptmoban.com -51psj.com -51puer.com -51qc.com -51qc.net -51qianduan.com -51qianguo.com -51qianvisa.com -51qicheng.com -51qilv.com -51qingjiao.com -51qinxue.com -51qqt.com -51qtg.com -51qub.com -51qudao888.com -51qudong.net -51qumi.com -51quzhe.com -51rc.com -51rcsl.com -51read.site -51rencai.com -51render.com -51renpin.com -51renxing.com -51report.com -51rong.com -51room.com -51rp.com -51rry.com -51rz.org -51sai.com -51sanhu.com -51sao.net -51scb.com -51sdjob.com -51search.net -51seer.com -51self.com -51serive.com -51sgg.cc -51share.net -51shebao.com -51sheyuan.com -51shiping.com -51shop.ink -51shoubei.com -51shoufei.net -51shoushi.com -51shubiao.com -51shuobo.com -51shyc.com -51signing.com -51sjk.com -51sole.com -51speeds.com -51spjx.com -51suitui.com -51sutong.com -51sxue.com -51szhk.com -51talk.com -51talkenglish.com -51tanbao.com -51tao.com -51taonan.com -51taoshi.com -51taowei.com -51taoyang.com -51tb.me -51test.net -51testing.com -51testing.net -51testing.org -51tiangou.com -51tie.com -51tietu.net -51tijian.com -51tingyi.com -51tonglu.com -51tools.info -51toro.com -51touch.com -51toufang.com -51tour.com -51touxiang.com -51tra.com -51tracking.com -51ttxue.com -51tuiyi.com -51tunhuo.com -51tv.com -51tv.net -51tvbao.com -51tvrom.com -51tyty.com -51tz.com -51uc.com -51ukf.com -51uyi.com -51vimeo.com -51vip.biz -51vs.com -51vv.com -51vv2.com -51wan.com -51wangdai.com -51wanquan.com -51wcity.com -51web.com -51websec.com -51weihu.com -51wendang.com -51wf.com -51wincai.com -51windows.net -51wj.com -51wjrc.com -51wnl-cq.com -51wnl.com -51world.win -51wp.com -51wtp.com -51wuditu.com -51wxjz.com -51wydj.com -51wyfl.com -51wyrc.com -51wzg.com -51wzxz.com -51xbx.com -51xcrc.com -51xiancheng.com -51xianwan.com -51xiaohua.com -51xiaolu.com -51xie.com -51xingjy.com -51xinhu.com -51xinyuan.com -51xnj.com -51xpj.com -51xuanmu.com -51xuanxiao.com -51xue8.com -51xuetang.com -51xuewen.com -51xuexiaoyi.com -51xumei.com -51xxziyuan.com -51y5.com -51y5.net -51yabei.com -51yangsheng.com -51yanwang.com -51yasai.com -51yes.com -51yey.com -51yhdai.com -51yilu.com -51yip.com -51ykb.com -51ymxc.com -51yonggao.com -51you.com -51youcai.com -51youdian.com -51yougo.com -51youth.com -51youz.com -51ys.com -51ysrc.com -51yuansu.com -51yue.net -51yuepin.com -51yueqian.com -51yund.com -51yundong.me -51yuu.com -51ywx.com -51yxcyy.com -51zaliang.com -51zan.com -51zbz.com -51zbz.net -51zd.net -51zhangdan.com -51zheduoduo.com -51zhengxin.com -51zhi.com -51zhishang.com -51zhizhao.com -51zhucai.com -51zhujia.com -51zishentang.com -51zixuewang.com -51zjxm.com -51zmt.net -51zr.com -51zsjc.com -51ztzj.com -51zx.com -51zxw.net -51zyrc.com -51zyzy.com -51zzl.com -52-ic.com -520.com -520.net -5200cc.com -5200wx.com -520101.com -520520520520520.com -52091w.com -520990.com -520apk.com -520cc.com -520cfc.com -520chs.com -520fx.com -520hello.com -520hhht.com -520it.com -520jiabo.com -520jita.com -520lbl.com -520link.com -520love520.com -520mingmei.com -520mojing.com -520mwx.com -520way.com -520xiazai.com -520xp.com -520xst.com -520yidui.com -520z-2.com -520zg.net -520zuowens.com -52112.com -52114.org -52115211.com -5211game.com -52177.com -521che.com -521logo.com -521qw.com -521rmb.com -521ro.com -521szlx.com -521tieba.com -521up.com -52237377.com -522978.com -523333.com -52372.com -523touzi.com -525.life -5251.net -5251yx.com -5253.com -5254.com -5257.com -5258.net -5258da.com -525ok.com -525zf.com -52676.com -526net.com -527578.com -5277.com -527meeting.com -527pk.com -5281.com -52841819.com -528500.com -528529.com -52892.com -528btc.com -528day.com -5293.com -5298445.xyz -52ai.com -52aimo.com -52ali88.com -52alipay.com -52analysis.com -52article.com -52asus.com -52audio.com -52ayw.com -52bar.com -52biquge.com -52bjd.com -52bji.com -52bjy.com -52bqg.com -52bsj.vip -52bss.com -52bus.com -52by.com -52cake.net -52ch.net -52che.com -52cik.com -52ckd.com -52click.net -52da.com -52daohang.com -52debug.net -52design.com -52digua.com -52dmtp.com -52doc.com -52dr.net -52dsy.com -52dtv.com -52dus.cc -52dyy.com -52dzc.com -52dzxy.com -52ebook.com -52edy.com -52enku.com -52erhu.com -52fangzi.com -52fanxing.com -52flac.com -52gg.com -52gougouwang.com -52grz.com -52guixi.com -52gvim.com -52hardware.com -52hejia.com -52help.net -52hibuy.com -52homedecor.com -52hotel.net -52hrtt.com -52hrttpic.com -52hxw.com -52ig.net -52im.net -52investing.com -52inwet.com -52itstyle.com -52itstyle.vip -52jbj.com -52jdyy.com -52jianpan.com -52jiaoshi.com -52jingsai.com -52jisu.com -52jrjy.com -52js8.com -52jscn.com -52jt.net -52jubensha.com -52jxt.com -52kanxiaoshuo.com -52kb365.com -52kfly.com -52liaoshen.com -52life.cc -52linglong.com -52lion.com -52luohu.com -52lvyou.com -52mac.com -52maicong.com -52mba.com -52mengdong.com -52mhw.com -52miji.com -52miniapps.com -52ml.net -52mtc.com -52muyou.com -52myqq.com -52njl.com -52nyg.com -52opencourse.com -52pcfree.com -52pi.com -52pi.net -52pictu.com -52pk.com -52pk.net -52pkvr.com -52podcast.com -52pojie.com -52qixiang.com -52qj.com -52qmct.com -52qqba.com -52qudao.com -52queji.com -52qumao.com -52rd.com -52rd.net -52rental.com -52ruodian.com -52samsung.com -52shangou.com -52shici.com -52shijing.com -52shipping.com -52shufa.net -52shuw.cc -52shuxue.com -52solution.com -52souji.net -52souluo.com -52survey.com -52svip.cc -52svn.com -52sykb.com -52t1.com -52tc.co -52tc.info -52tech.tech -52tesla.com -52tgfc.com -52tian.net -52tiny.com -52toys.com -52tps.com -52tql.com -52tt.com -52tup.com -52udl.com -52vr.com -52wana.com -52wanh5.cc -52wlw.com -52wmb.com -52wubi.com -52xiaoshuowang.com -52xiaoyuan.net -52xie.com -52xinyou.com -52xitong.com -52xiuxian.com -52xiyou.com -52xyz.com -52yawa.com -52yh.com -52yifei.com -52ykjob.com -52youju.com -52youpiao.com -52youtu.com -52ywan.com -52yxyx.com -52z.com -52zhaopin.com -52zixue.com -52zjkj.com -52zuji.net -52zx.cc -52zx.net -52zxw.com -52zy.com -531314.com -5317wan.com -532106.com -5321vip.com -533.com -533.net -5334.com -5336.com -5338.org -533y.com -53431.com -53471.com -535300.net -5360jx.com -53617686.com -5366.com -5367.com -537.com -5379yx.com -537a.com -538618.com -5395.com -5399.com -53chewu.com -53dns.org -53info.com -53iq.com -53kf.com -53miji.com -53nic.com -53r.com -53shop.com -53shubiao.com -53xjd.com -53yao.com -53yu.com -54.com -54114.com -542i.com -5433.com -545c.com -5460.net -54674479.com -5490146.cc -5490196.cc -5499.com -54benniao.com -54doctor.net -54doctors.net -54hcz.com -54heb.com -54im.com -54jkw.com -54job.com -54kefu.net -54lol.com -54manong.com -54md.com -54op.com -54pictu.com -54qs.com -54traveler.com -54tusi.com -54xiaoshuo.com -54yt.net -54yuqing.com -55.cc -55.com -55.la -550400.com -5507p.com -550891.com -5510928.com -55178.com -55188.com -5523.com -55344.com -5548.net -555000d3.com -5551557.com -5551650.com -5551933.com -5552009.com -5553089.com -55555558.com -555dy.fun -555dyy1.com -555yst.com -555zw.com -5566.net -5566ua.com -5567.me -556z.com -557.net -5577.com -5580866.cc -5580981.cc -5581014.cc -5588.tv -55935.vip -5599.com -55bbs.com -55dai.com -55dian.com -55doc.com -55duanzi.com -55dushu.com -55e5.com -55haitao.com -55hl.com -55hl.net -55i8.com -55idc.com -55jisu.com -55jj.com -55kk.net -55la.com -55lady.net -55shantao.com -55tuan.com -55xiazai.com -55xoxo.vip -55y5.com -56-7.com -56.com -560.im -56015.com -5611.com -5611501.cc -5611535.cc -5611853.cc -561218.com -56135.com -5617.com -5629.com -5636.com -56360.com -564.cc -5648.cc -56506666.com -5654.com -56559971.com -566.com -5669.com -566job.com -5676.com -5678la.com -567idc.com -567pan.com -5680420.cc -5680433.cc -5684.com -569.com -56a.com -56ads.com -56beijing.org -56care.com -56che.com -56china.com -56clte.org -56da.com -56dagong.com -56dichan.com -56dr.com -56en.com -56ggb.com -56gk.com -56golf.com -56img.com -56img.net -56imgs.com -56kad.com -56laile.com -56md.com -56ml.com -56mp.com -56pan.com -56php.com -56qq.com -56show.com -56shuku.org -56steel.com -56tchr.com -56tj.com -56uu.com -56ye.net -56yun.com -56zzx.com -57.net -57023.com -571400.net -571free.com -571xz.com -57357.vip -57359.es -5755.com -576.com -57608.com -57616.com -57665.com -5768.com -576tv.com -57821.com -579609.com -57auto.com -57dp.com -57gif.com -57go.com -57px.com -57qy.com -57sc.com -57tibet.com -57tuan.com -57us.com -57uu.com -57yy.site -57zhe.com -58.com -5800.com -580114.com -580168.com -580590.com -580ban.com -580eda.net -580jz.net -580k.com -580tequan.com -58160.com -58199.com -5824.com -582hr.com -583go.com -58553v.com -5858.com -58611.net -5866.com -587343.com -587tuchuang.com -587tz079.cc -5884.com -5888.tv -588991.com -588art.com -588ku.com -5898yun.com -58abb.com -58antenna.com -58auv.com -58baogao.com -58buy.com -58che.com -58chxf.com -58cloud.com -58coin.com -58corp.com -58cyjm.com -58dadi.com -58daojia.com -58display.com -58dns.org -58duihuan.com -58food.com -58game.com -58ganji-corp.com -58ganji.com -58insure.com -58iwan.com -58jb.com -58jfhs.com -58jixie.com -58jurenqi.com -58kad.com -58kaifa.com -58kuaipai.com -58kuku.com -58lovepet.com -58meizhuo.com -58moto.com -58net.com -58pic.com -58q8.com -58qz.com -58supin.com -58touxiang.com -58trz.com -58ubk.com -58uxd.com -58wan.com -58wangwei.com -58wanwan.com -58woyou.com -58wzb.com -58xinghuo.com -58xinrui.com -58xs.la -58xueche.com -58xuexi.com -58yiji.com -58youtui.com -58yuesao.com -58zhuiju.com -59.com -5906333.com -590m.com -59120.com -59168.net -59178.com -5918dyw.com -591918.com -591change.com -591cto.com -591hx.com -591master.com -591moto.com -591mrzx.com -591wed.com -591wsh.com -591wy.com -591yhw.com -5923d.com -592sy.com -592zn.com -59313313.com -59370.com -593yx.com -5947.net -59490.com -5951835ccc.com -595818.com -595led.com -595tuchuang.com -595tz286.cc -595tz440.cc -5960681.cc -596fc.com -597.com -59706.com -59776.com -597rcw.com -59881.com -598991.com -599.com -5999.tv -599ku.com -599z.com -59b2b.com -59di.com -59dun.com -59edu.com -59iedu.com -59jt.com -59ni.com -59pk.net -59store.com -59w.net -59wanmei.com -59wj.com -59yx.com -5a8.org -5aaa.com -5acbd.com -5adanhao.com -5ag.net -5ailiwu.com -5aivideo.com -5aiyoo.com -5ajob.com -5any.com -5aq.net -5axxw.com -5azy.com -5bite.com -5biying.com -5ce.com -5ceimg.com -5cgo.com -5cocoi.com -5cpod.com -5d2ede2.com -5d6d.com -5d6d.net -5dashi.com -5dfp.com -5dfsd2.com -5ding.com -5djbb.com -5dmail.net -5down.net -5dplay.net -5ds.com -5earena.com -5earenacdn.com -5eplay.com -5eplaycdn.com -5etv.com -5ewin.com -5fen.com -5fun.com -5fwan.com -5g5gyy.com -5gcg.com -5glianc.com -5goto.com -5gwan.com -5gy.com -5gzm.net -5h.com -5ha.net -5haoxue.net -5hrc.com -5hte21mz.com -5i-training.net -5i.com -5i5aj.com -5i5j.com -5i5t.com -5i9u.com -5iag.com -5iag.net -5iape.com -5ibc.net -5ibear.com -5icbs.com -5ichecker.com -5ichong.com -5icomment.com -5icool.com -5idc.com -5idev.com -5idhl.com -5idream.net -5iec.com -5ifapiao.com -5ifit.com -5iflying.com -5ifund.com -5igupiao.com -5ihome.net -5ikang.com -5iln.com -5ilog.com -5imeishi.com -5imoban.net -5imomo.com -5imusic.com -5imx.com -5imxbbs.com -5iops.com -5ip9.com -5ipatent.com -5ipkwan.com -5isanguo.com -5isohu.com -5iucn.com -5ixuexiwang.com -5iyq.com -5iyuyan.com -5iyw.com -5iyxw.net -5j.com -5jjdw.com -5jli.com -5joys.com -5jtxt.com -5jwl.com -5jzw.com -5k5m.com -5kbox.com -5kcrm.com -5kcrm.net -5kda.com -5khouse.com -5kwuke.com -5l5qny.com -5lanren.com -5lbw.com -5lux.com -5m5m5m.com -5m68.com -5mapk.com -5minsgold.com -5nd.com -5nnj.com -5ooq.com -5pao.com -5pb.net -5plus1.net -5pop.com -5ppt.net -5pub.com -5q.com -5qwan.com -5qzone.net -5r1.net -5read.com -5ritt.com -5rs.me -5s4f.com -5sdy.cc -5seals.com -5see.com -5sem.com -5sha.com -5snow.com -5sw.com -5tangs.com -5tdalmui.cfd -5teacher.com -5thhospital.com -5thspace.net -5thspace.org -5tmovice.com -5tps.vip -5tscm.com -5u18.com -5u3d.com -5u5u5u5u.com -5upm.com -5usport.com -5uu.us -5uu8.com -5v13.com -5v55.com -5w.com -5w123.com -5w52.com -5w5w.com -5wanpk.com -5wx.org -5xcg.com -5xiaobo.com -5xini.com -5xts.com -5y51.com -5y6s.com -5y89.com -5yang.cc -5ydj.com -5yhua.org -5ykj.com -5you.com -5youchou.com -5zai.com -5zg.com -5zzu.com -6-china.com -60.cm -600052.com -600895.com -600zi.com -601601.com -602.com -602img.com -603ee.com -6046.net -605-zy.com -605dns.com -605zy.co -607.tv -6071.com -608.com -608.vip -608082.com -6080d.com -6080j.com -609999.xyz -60dj.com -60eee.net -60kan.com -60mil.com -60nm.com -60u1x.app -60wr.com -61.com -610115.com -610213.net -612.com -6120aa.com -612345.com -612459.com -6137.net -61611.net -6163.com -6164.com -61658.com -6168511.com -616pic.com -616wan.com -6186.com -6187wo.com -618cj.com -618day.com -618hr.com -618ky.com -618tech.com -61916.com -61baobao.com -61bb.com -61bbw.com -61cloud.net -61co.com -61diy.com -61draw.com -61ertong.com -61gequ.com -61hr.com -61ic.com -61info.com -61k.com -61kezhan.com -61mami.com -61mc.com -61sheji.com -61sou.com -61tg.com -61xiangce.com -62.com -623k.com -62669.com -626x.com -628.com -629600.com -62a.net -62game.com -63091138.com -6318537ccc.com -63243.com -6328.net -632news.com -636379.com -636935.com -6383.com -639311.com -63diy.com -63pe.com -63qingyou.com -63yx.com -641.com -642online.com -6431622.cc -64365.com -64518.com -6453.net -64538.net -645w.com -646000.com -6463.com -64644444.com -646av04.xyz -646av05.xyz -646av06.xyz -646av08.xyz -646av09.xyz -646av12.xyz -648sy.com -64ba.com -64dns.com -64ds.com -64gua.com -64ma.com -64mv.com -64pay.com -65.com -651700.com -6528.com -654320.com -6543210.com -654321wan.com -654h.com -65522v.com -655u.com -655yx.com -656463.com -65650000.com -65677358625.com -65688qp.com -6571n.com -65875.com -659595.com -65house.com -65mhxy.com -65wan.com -6600.org -66083797.com -660pp.com -66123123.com -66152.com -66163.com -66168.net -6617398ccc.com -66173yx.com -662city.com -662p.com -6631.com -66377311795.com -66378.com -66446200.com -66460.com -6655.com -6655.la -6660333.com -666546.xyz -6666519.net -66667aaa.com -666834.xyz -6669667.com -66696y.com -666gps.com -666idc.com -666pic.com -666shuwu.com -666wan.com -666wan.net -666xinxin.com -6673p.com -66762.com -667744.com -6678net.com -667905.com -66825.com -668559.com -6686683.com -6688.com -668895.com -6688pay.com -668app.com -668lw.com -668map.com -669322.com -6695.com -669pic.com -669play.com -669ye.com -66call.com -66cn.com -66ds.net -66house.com -66img.com -66ip.com -66jiedai.com -66mi.com -66mobi.com -66money.com -66mz8.com -66nao.com -66nh.com -66ov.com -66perfect.com -66play.com -66rjz.com -66rou.com -66rpg.com -66ruian.com -66shouyou.com -66sj.com -66ss.org -66sy.com -66team.com -66test.com -66to.net -66tv.tv -66u.com -66ui.com -66vod.net -66wc.com -66weiyou.com -66wz.com -66xue.com -66y.com -66you.com -66zhang.com -66zhizu.com -66zhuang.com -67.com -67017.com -6711.com -6711img.com -6726j.com -6760x.com -676711.net -676z.com -6786666.com -6787.com -67876.com -67883.com -678869.com -67888.com -6789.com -6789.net -678922c.com -6789che.com -678edu.net -678ie.com -678py.com -67gu.com -67joy.com -67mo.com -67omd71.com -67wanwan.com -67wx.com -67yes.com -68.com -680.com -68120120.com -6816.com -682.com -68211.com -6822.com -6844.com -68606060.com -6868.com -6868shop.com -6868yx.com -688xc.com -6899wan.com -68china.net -68eg.com -68gainian.com -68ge.com -68h5.com -68hanchen.com -68hr.com -68play.com -68team.com -68web.net -68websoft.com -69.com -69005a.com -69260.com -6934.net -693836.com -693975.com -6949.com -695157.com -695175.com -69525.com -695275.com -695828.com -695ljg.com -698wan.com -69916666.com -699g.com -699h5.com -699pic.com -699xs.com -69cy.net -69hr.com -69mok.com -69ps.com -69xiu.com -69yc.com -69ys.com -6a.com -6aas.com -6abc.net -6acm.com -6an8.com -6api.net -6apt.com -6b3b.com -6bdns.com -6c6c.com -6cang.com -6cit.com -6cnzz.com -6d4d5.com -6d4g.com -6dad.com -6dan.com -6diy.com -6ds.me -6du.in -6duoyu.com -6dvip.com -6eat.com -6edigital.com -6eys.com -6fcsj.com -6g5fd1a.com -6gh4.com -6ght.com -6hgame.com -6hwan.com -6ict.com -6jianshi.com -6k6g.com -6k9k.com -6kw.com -6laohu.com -6lk.net -6ll.com -6m5m.com -6mao.com -6mh7.com -6miii.com -6miu.com -6miu.net -6pifa.net -6plat.org -6puppy.xyz -6renyou.com -6rooms.com -6s4qki.com -6s54.com -6say.com -6sfg.com -6sq.net -6t12.com -6tennis.com -6thhosp.com -6tiantian.com -6tie.com -6tofsu.com -6v.com -6v6.work -6vps.net -6wan.com -6wtx.com -6wwww.com -6xd.com -6xhuo.com -6xigema.com -6xw.com -6y6s066.com -6yoo.com -6yuexi.com -6yxk.com -6yyy7.com -6z6z.com -6zu.com -7-vk.com -7-wx.com -70.com -700bike.com -700live.com -701.com -7017k.com -701sou.com -703804.com -7080edu.com -7082.com -70dh.com -70dir.com -70god.com -70mao.com -70ppt.com -70soft.com -70wx.com -70ym.com -70yx.com -71.am -71.com -71.net -71133.com -7116dns.com -711hospital.com -711pr.com -7120.com -712100.com -71268924.com -71360.com -7139.com -714.com -715083.com -715300.com -7163.com -71668.net -71683.com -71714.com -7172737.com -7176.com -71908.com -7192.com -719c.com -71acg.com -71acg.net -71baomu.com -71baomu.net -71big.net -71dm.com -71e.com -71edge.com -71k.com -71lady.com -71lady.net -71p.net -71study.com -71txt.com -71wl.com -71xe.com -720582.com -720pmovie.com -720static.com -720think.com -720ui.com -720yes.com -720yun.com -720yuntu.com -720zh.com -7211.com -72177.com -7220z.com -7230.com -7239ll.net -724001.com -7255.com -726033.com -726p.com -7273.com -7280.com -7298.com -72byte.com -72bz.com -72crm.com -72crm.net -72crm.org -72dj.com -72dns.com -72dns.net -72e.net -72en.com -72g.com -72la.com -72laodian.com -72link.com -72sc.com -72whys.com -72xf.com -72xit.com -72xuan.com -72yun.com -72zx.com -731.tv -7319n.com -73232yx.com -732732.com -734969.com -7360.cc -73652253191.com -737.com -73789.com -7384tv.com -738888.xyz -7399t.com -73bc.com -73bt.com -73card.com -73mq.com -73zw.com -74.com -7400238.cc -7428.net -744zy.com -7474.com -7477.com -747wan.com -74825467.vip -749997.com -74cms.com -74dsh94.com -74hao.com -75.team -75111.net -75184.com -75271.com -75367.com -75510010.com -75625358935.com -756u.com -7574.com -75757.com -757dy.com -7580.ltd -75982.com -75n474.com -75team.com -76065.com -7618.com -761a.com -762rc.com -7654.com -7659.com -765i.com -765q.com -766.com -7663.com -766z.com -7676.com -767stock.com -76868.com -76963.com -769car.com -76ab.com -76al.com -76baobao.com -76dongdong.com -76ju.com -76wu.com -76y.com -76zu.com -77005163.xyz -770921.com -7711.com -77119159.com -771633.com -77169.com -77169.net -7717wan.com -7723.com -7724.com -7724yx.com -7725.com -77275.cc -7729.com -77313.com -7735.net -77495.com -77521.com -7756.org -7759.com -7766.info -7766.org -77745.com -777524.com -7775367.com -7777733.com -777942.com -777biubiu.com -777lala.com -777moban.com -7788.com -7788aabb.com -7788js.com -7788sky.com -7788tools.com -7788xj.com -7789.com -778buy.cc -778buy.com -7794.com -77991.com -7799520.com -779wan.com -77acg.com -77bike.com -77bx.com -77dd23.com -77ds.com -77dushu.com -77ebooks.com -77hd.com -77l.com -77mh.app -77music.com -77nt.com -77piano.com -77tianqi.com -77vcd.com -77xmd.com -77xsw.la -77ys.com -77zn.com -782yx.com -78302.com -78360.net -7881.com -788899.com -788b.com -788v.com -78901.net -789gg.com -789hi.com -789zy.cc -78bar.com -78books.com -78dian.com -78diy.com -78dm.net -78ee.com -78fz.com -78gk.com -78hr.com -78oa.com -78tp.com -79.com -79151879798.com -793360.com -7937.com -7940.com -79432.com -7979u.com -797sun.com -7988wan.com -798com.com -798edu.com -798ydh.com -799.net -7999.com -7999.tv -799job.com -79cha.com -79da.com -79tao.com -79tui.com -79yougame.com -79yx.com -7a31jmf.com -7a8k.com -7acg.com -7ahr.com -7analytics.com -7b2.com -7buying.com -7c.com -7caiyun.com -7capp.com -7ccj.com -7chacha.com -7cname.com -7cxk.com -7dah8.com -7didc.com -7do.net -7down.com -7down.net -7dtest.com -7dugo.com -7e.hk -7east.com -7ed.net -7edown.com -7fei.com -7fgame.com -7flowers.com -7forz.com -7fresh.com -7gongzhu.net -7gz.com -7hcn.com -7help.net -7ho.com -7hon.com -7huang.org -7i2.com -7icp.com -7ipr.com -7jia.com -7jia2.com -7jiaqi.com -7jjjj.com -7jk.com -7juju.com -7junshi.com -7k35.com -7k7k.com -7k8k.com -7ka.co -7kk.com -7kla.com -7ko.com -7kww.net -7kzw.com -7littlemen.com -7liwu.com -7lk.com -7lw.com -7mah2.com -7mo.cc -7modifier.com -7moor-fs1.com -7moor-fs2.com -7moor.com -7msj.com -7mx.com -7mz3a.com -7nepal.com -7net.cc -7oh.net -7pa.com -7pc8.com -7pei.com -7po.com -7q5.com -7qile.com -7r7z.com -7road.com -7road.net -7ronggame.com -7runto.com -7rv.net -7sdn.com -7sheji.com -7sj.com -7sown.com -7su.com -7t9.com -7tapp.com -7tenet.net -7tgame.com -7tou.com -7tt3333.com -7tui.net -7usa.net -7v6.net -7vd7.com -7vk.com -7wa.cc -7wan.com -7wenku.com -7wenta.com -7wenyi.com -7wnews.com -7wsh.com -7wsh.net -7x24cc.com -7x24s.com -7xdown.com -7xm.net -7y5.net -7yc.com -7youxi.com -7yueji.com -7yun.com -7yz.com -7yzone.com -7zgame.com -7zhan.com -7zhou.com -7zkj.com -7zm.com -8-008.com -8-host.com -80.com -80.hk -80000.cc -800020308.com -800423.com -800535.com -8006506.com -8006511.com -8006tu.com -800820.net -8008202191.com -8008205555.com -800app.com -800bamboo.com -800best.com -800bestex.com -800cdn.com -800du.com -800hr.com -800jcw.com -800li.net -800lie.com -800lj.com -800mei.net -800pharm.com -800tu.com -800vod.com -800xs.net -800you.com -800youhuo.com -802203.com -807.com -80710.com -80800.vip -8080i.com -8081.net -80881.com -808w.com -8090.com -8090.pk -809090.xyz -8090app.com -8090cdn.com -8090mt.com -8090vision.com -8090xx.com -8090yx.com -8090yxs.com -809926.net -80baicai.biz -80bi.com -80data.net -80host.com -80juqing.com -80kongjian.com -80kuku.com -80paper.com -80s.im -80s.tw -80shihua.com -80sjy.net -80test.com -80tian.com -80txt.com -80txt.la -80vps.com -80xb.com -80xs.la -80ym.com -810840.com -810book.com -81265.net -81312.com -81329999.net -815.pub -815ybw.com -81629.com -81663344.com -81677.com -8169.com -817398.com -8175835ccc.com -81761.com -818.com -818it.com -818ps.com -818tu.com -81999.org -81book.com -81comdns.com -81it.com -81js.net -81kx.com -81pan.com -81tech.com -81tt.net -81xy.com -81xz.com -81zw.com -8203app.com -8211.com -82250856.com -822644.com -82335966.com -8234567.com -82392.cc -8246.net -8264.com -82645.es -826wan.com -8276n.com -828239sam.com -828377.com -82859.com -8289880.com -828g.com -82987977.com -82ip.com -82ky.com -82pk.com -83084.com -83133.com -832200.com -8325.com -8329555.com -8329607.com -833833833.net -8339.org -83480900.com -83562.me -83666.com -838.cc -83823.net -83830.com -838dz.com -83990567.com -83edu.net -83h87d.com -84.vc -8421.com -84399.com -844a.com -844wan.com -84519.com -84684.net -8477.com -848.com -8487x.com -8499136.com -8499159.com -8499163.com -849959.com -8499683.com -84fk.com -84ju.com -84ktv.com -84zcb.com -850718.xyz -8518.com -8521.org -85229666.com -85384.com -853lab.com -85462.lc -8555220.com -8558.org -85679999.com -85878078.com -858game.com -85ibb.com -85kf.com -85wp.com -85xt.com -86-import.com -86.cc -86010.net -860527.com -860598.com -861522.com -86175.com -861817.com -861ppt.com -86215.com -8624x.com -86255845.com -86262.com -8633.com -8644aaw.com -865211.com -86590.com -866ds.com -8673h.com -8682.cc -8684.com -868578.com -8686c.com -86873.com -86888qp.com -8688g.com -86898924.vip -86933.com -869d.com -869v.com -86amsdy.com -86clouds.com -86ditu.com -86eh.com -86fis.com -86fm.com -86fsp.com -86game.com -86gc.net -86hcdnsuv.com -86hh.com -86hr.com -86huoche.com -86jg.com -86jobs.com -86joy.com -86kang.com -86kl.com -86kongqi.com -86lawyer.com -86mai.com -86mail.com -86mama.com -86mdo.com -86nb.com -86office.com -86pla.com -86pm25.com -86ps.com -86qc.com -86sb.com -86tec.com -86uuu.com -86wan.com -86wol.com -86xq.com -86y.org -86yqy.com -86zsw.com -870818.com -87188718.com -872.cc -8721.com -872872.com -87535353.com -876web.com -8770000.com -877325.com -87794560.com -878009.com -87803.com -87870.com -87929881825.com -8795cp.com -87994.com -87box.com -87g.com -87money.com -87pk.com -87yy.com -88-z.com -88.com -8800808.com -8801.net -880114.com -880303.xyz -880331.net -880735.com -88077777.com -88090.com -880sy.com -880you.com -88106.com -88225233827.com -8825.com -8828dl.com -88303887.com -8831.app -88360.com -8838sl.com -883dai.com -884358.com -8844.com -88444l.cc -8848.com -8848phone.com -885.com -8850006.com -885210.net -8855.org -885741.com -88582.com -8860.net -8864.com -8864.org -8866.org -8866886688.com -88669aaa.com -886966.com -886abc.com -886vps.com -88765.com -887w.com -888-8.com -888074.com -88822.com -88883aaa.com -8888800000.com -88888aaa.com -88889aaa.com -888pic.com -888ppt.com -888rj.com -8890tu.com -88995799.com -88999.com -8899yyy.vip -88bank.com -88bx.com -88cdn.com -88chuangyewang.com -88dushu.com -88h3.com -88hom.com -88ht.com -88hu.com -88koo.com -88la.la -88lajs2.com -88lan.com -88lgo.com -88meishi.com -88mf.com -88ming.net -88pets.com -88popo.com -88rpg.net -88tang.com -88tph.com -88u.com -88wakuang.com -88xiaoshuo.com -88xr.org -88ysg.com -88zha.com -8910.io -89178.com -89243599.vip -89274.st -89303.com -8961zx.com -897263tqs.com -8977567.com -8979.com -898.travel -8989118.com -89958716765.com -8999.cc -89dj.com -89ds.com -89qw.com -89uu.com -8a.hk -8ao8ao.com -8aza.com -8b2.net -8bb.com -8bb8b.com -8bcd9.com -8bears.com -8btc-ops.com -8btc.com -8btm.com -8cheche.com -8cname.com -8cnet.com -8ddao.com -8dexpress.com -8dn.com -8dol.com -8dp.net -8dream.net -8dudata.com -8dwww.com -8e8z.com -8europe.com -8fe.com -8fenxiang.com -8gov.com -8guiclub.com -8gw.com -8gyu.com -8hsleep.com -8jdns.net -8jiaoye.com -8jie8.com -8jxn.com -8jzw.cc -8k7k.com -8kana.com -8kzw.com -8l8e.com -8le8le.com -8lhx.com -8liuxing.com -8lk.com -8llp.com -8mhh.com -8miu.com -8miu.net -8mkt.com -8ms.xyz -8n2.com -8n6n.com -8njy.com -8o9o.com -8pig.com -8pingce.com -8pu.com -8qwe5.com -8s123.com -8tgh.com -8ttt8.com -8tupian.com -8twan.com -8u58.com -8uyx.com -8wan.com -8win.net -8wiu.com -8wq.com -8wss.com -8yao.cc -8ym8.com -8yw.xyz -8yx.com -8yzw.com -8z.net -8zhuayu.cc -8zntx.com -8zy.com -9-xin.com -9-zhuce.com -900.la -9000idc.com -9000wy.com -900112.com -900501.xyz -900cha.com -900php.com -900ppt.com -900top.com -900yi.com -90123.com -90370.com -90432.net -90576.com -906you.com -90907.com -90bola.cc -90bola.me -90ckm.com -90e.com -90ko.net -90lhd.com -90qh.com -90sheji.com -90sjimg.com -90tank.com -90vm.com -90wmoyu.com -90yang.com -90zm.net -91-box.com -91.com -910app.com -910play.com -91160.com -9118fu.com -911a4.com -911cha.com -911pop.com -911sl.com -911yao.com -911zy.com -912366.com -9125.org -9125flying.com -912688.com -912k.com -912yx.com -913232.com -9133.com -9136.com -91378.com -913vr.com -913you.com -91472.com -915.com -915.im -9154wan.com -915658.com -9158ads.com -9158h5.com -9166yx.com -916m.com -917.com -9170.com -917558.com -917ka.com -917st.com -9188.com -9188wan.com -918dxs.com -918ka.cc -918rc.com -918ys.net -919.com -9191mr.com -9191net.com -9191zx.com -91985.com -91ac.com -91act.com -91all.net -91anjian.com -91art.net -91baby.com -91bee.com -91boshuo.com -91bushou.com -91carnet.com -91cdkey.com -91ceshi.com -91cha.com -91chang.com -91changxie.com -91chuxue.com -91cpm.com -91cps.com -91ctc.com -91cy.cc -91czxs.com -91dada.com -91daizhang.com -91danji.com -91data.com -91datong.com -91dba.com -91dbb.com -91dbq.com -91ddcc.com -91ddedu.com -91diany.com -91dict.com -91display.com -91dnso.com -91doujin.com -91dub.com -91duba.com -91duobaoyu.com -91exam.org -91exiu.com -91fangan.com -91feizhuliu.com -91fifa.com -91fyt.com -91game.com -91goodschool.com -91guzhi.com -91haiju.com -91haoka.com -91haoke.com -91huayi.com -91huoke.com -91huola.com -91ios.com -91jbz.com -91jf.com -91jfss.com -91jiabohui.com -91jiafang.com -91jianguo.com -91jin.com -91jinrong.com -91jinshu.com -91jiujige.com -91jkj.com -91jkys.com -91jm.com -91jmw.com -91job.com -91join.com -91jsj.com -91juice.com -91jujian.com -91kami.com -91keto.com -91laihama.com -91ld.com -91lda.com -91lewei.com -91liangcai.com -91linux.com -91listen.com -91lx.com -91lxs.com -91maker.com -91mariadb.com -91maths.com -91miaoshou.com -91money.com -91muzhi.com -91ndeh.xyz -91ninthpalace.com -91nzh.com -91pandian.com -91paopao.com -91pdf.com -91php.com -91pic.org -91pkpk.com -91ronghui.com -91rtb.com -91ruyu.com -91safety.com -91sd.com -91sem.cc -91shenshu.com -91smart.net -91soer.com -91soker.com -91sotu.com -91sph.com -91spj.com -91sport.cc -91ssw.com -91student.com -91suan.com -91suke.com -91taoke.com -91tech.net -91tianqi.com -91ting.net -91tingge.com -91tw.net -91up.com -91vpn.com -91vps.com -91vst.com -91waijiao.com -91waitang.com -91wan.com -91wangcai.com -91wangmeng.com -91way.com -91weimai.com -91weimi.com -91weiwang.com -91wenmi.com -91wllm.com -91wujia.com -91wutong.com -91wzg.com -91xcm.com -91xfw.com -91xhg.com -91xiake.com -91xiazai.com -91xsj.com -91xueshu.com -91xunyou.com -91xy.com -91xzba.com -91y.com -91yao.com -91yinpin.com -91yixun.com -91yk.com -91yong.com -91you.com -91youban.com -91yuedu.com -91yunxiao.com -91yunying.com -91yxbox.com -91yxl.com -91zhiwang.com -91zwk.com -92.net -921.com -9211.com -921716.com -9217web.com -921lu.com -92220668.com -92220701.com -922835.com -925g.com -925ps.com -927.la -927927.com -927953.com -927jx.com -928vbi.com -92913.com -929825.com -92987.com -9299.net -929g.com -92aliyun.com -92anycall.com -92aq.com -92ay.com -92bbs.net -92cloud.com -92demo.com -92dp.com -92ez.com -92fox.com -92game.net -92hidc.net -92kaifa.com -92kk.com -92le.com -92lm.com -92lucky.com -92mp.com -92ni.com -92python.com -92sucai.com -92tianjin.com -92u93e.com -92wan.com -92wenzhai.com -92wudao.com -92wx.com -92wy.com -92xygame.com -92yo.com -930hh.com -9312.net -933.moe -934dsw.com -9355.com -93636.com -93665.xin -9366qq.com -936u.com -9377.com -9377a.com -9377co.com -9377df.com -9377g.com -9377ja.com -9377ku.com -9377ne.com -9377os.com -9377s.com -9377si.com -9377z.com -93913.com -9396.net -93966.com -93bok.com -93cg.com -93eu.com -93hdw9.com -93jiang.com -93jx.net -93kk.com -93lh.com -93njf0.com -93pk.com -93sdk.com -93soso.com -93ta.com -93tyy.com -93wgames.com -93x.net -93zp.com -93zw.com -940177.com -941.so -942ss.com -944.com -94445.com -9453job.com -945idc.com -945n48.com -9466.com -94831.com -9495.com -949678.com -94994.com -949949.com -94afx.com -94cb.com -94cto.com -94he38.com -94i5.com -94ip.com -94ji.com -94lm.com -94mxd.com -94nw.com -94php.com -94q.com -94qy.com -94rp.com -94te.com -94xy.com -94you.net -94ys.com -95.com -95021.com -950901.com -95095.com -95105369.com -95105555.com -95105556.com -95105899.com -9512.net -951368.com -95158.com -95169.com -95191.com -95195.com -9527cha.com -9527cloud.com -95303.com -95408.com -95504.net -95508.com -95516.com -95516.net -95526.mobi -9553.com -9557.com -95572.com -95579.com -95588.com -95597.cc -95598pay.com -95599.hk -955yes.com -955yx.com -9560.cc -9564.com -9565.com -9570.me -9588.com -9596956.com -95en.com -95epay.com -95fenapp.com -95gq.com -95k.com -95links.com -95name.com -95px.com -95xiu.com -95ye.com -95yijing.com -96005656.com -960123.com -960638.com -96090090.com -960rc.com -9610.com -9611111.com -96160.cc -96189.com -9618968.com -962.net -962121.net -962168.com -962222.net -96225.com -962518.com -962600.com -962740.com -96369.net -963999.com -96459.com -964yx.com -96516.net -96520.com -96533.com -965373.com -96590.net -9665.com -966599.com -9665k.com -9666sr.com -9669.com -96711jmbm.com -96804.com -96811.com -96822.com -96845.com -968550.com -96877.net -968pk.com -969009.com -96966.com -969g.com -96caifu.com -96dp.com -96f2d.com -96hq.com -96jm.com -96jx.com -96kaifa.com -96kb.com -96lh.net -96lou.com -96ni.net -96sdk.com -96sir.com -96weixin.com -96yx.com -96zxue.com -97-7.com -9718.com -9718game.com -9724.com -973.com -97616.net -97775.com -977pk.com -97866.com -9787.com -978clouds.com -978sy.com -97936.com -97973.com -9797ly.com -9799.com -97add.com -97atc.com -97gg.net -97go.com -97jindianzi.com -97jz.com -97kid.com -97lk.com -97lp.com -97lpw.com -97ol.com -97rp.com -97ting.com -97ui.com -97uimg.com -97wd.com -97xiaoshuo.net -98.com -98.ma -9800.com -980512.com -980cje.com -98158.com -98182.com -984g.com -985.so -985dh.com -985ks.com -985ks.net -985sy.com -986338dsd.com -98654.com -987.com -9871.org -9873.com -987app.com -987jx.net -987you.com -98809.com -988272.com -988640.com -9898c.com -98a.ink -98du.com -98ep.com -98fp.com -98jx.com -98kkw.com -98kpm.com -98mp.com -98nice.com -98one.com -98t.la -98t.net -98weixin.com -98wubi.com -98znz.com -99.com -99083.com -99114.com -99118.com -9911yx.com -99166.com -9917.com -9918.tv -9919345.com -991kang.com -9922524.com -9928.tv -9939.com -99394.com -993h.com -994wan.com -9951.cc -995120.net -9955993.com -996.com -996.pm -9966.org -9966333.com -9966886699.com -9966w.com -996a.com -996dns.com -996pic.com -9973.com -997788.com -998.com -9981ypk.com -9982.com -99844666.com -99886aaa.com -99887w.com -99888aaa.com -998jk.com -998jx.com -9991.com -999120.net -999136.xyz -999178.com -99934066.com -999777.com -9998.tv -99988866.xyz -99997aaa.com -99998aaa.com -999ask.com -999bj.com -999brain.com -999d.com -999inandon.com -999tea.com -999wx.com -999xy.net -99aiji.net -99aly.com -99apsi.com -99bdf.com -99biaozhun.com -99bill.com -99bo.cc -99box.com -99bs.club -99cc.com -99cfw.com -99cloud.net -99corley.com -99danji.com -99ddd.com -99down.com -99dushu.com -99dw.com -99eo.com -99eyao.com -99fang.com -99fei.net -99fenlei.com -99fund.com -99fund.org -99haoche.com -99haoling.com -99hdf.com -99hkjf.com -99huodong.xyz -99ielts.com -99inn.cc -99jianzhu.com -99jiaoshi.com -99kgames.com -99lb.net -99leidun.com -99max.me -99mc.com -99meiju.tv -99meili.com -99mk.info -99mk.la -99mst.com -99music.net -99niu.com -99pdf.com -99ppt.com -99pto.com -99qh.com -99qimingzi.com -99qumingzi.com -99read.com -99shou.com -99sky.com -99sun.com -99sushe.com -99vf.com -99weidu99.ltd -99weiqi.com -99wj.com -99wuxian.com -99xr.com -99youmeng.com -99ys.com -99zhizhu.com -99zihua.com -99zuowen.com -99zzw.com -9a9.net -9ailai.com -9aimai.com -9air.com -9aoduo.com -9aola.com -9beike.com -9bianli.com -9cb.com -9ccapital.com -9chew.com -9clive.com -9conn.net -9cwx.com -9d19.com -9d4d.com -9damao.com -9damao.net -9ddm.com -9deli.com -9dfx.com -9dian.info -9douyu.com -9droom.com -9duw.com -9dwork.com -9earth.com -9ehao.com -9eii.com -9ele.com -9enjoy.com -9fav.com -9fbank.com -9first.com -9fpuhui.com -9fs.com -9fzt.com -9fzt.net -9g.com -9g8g.com -9gt.net -9gty.net -9he.com -9host.org -9hou.com -9ht.com -9huadian.net -9icode.net -9icy.com -9idudu.com -9igcw.com -9ihb.com -9ihome.com -9ilu.com -9imobi.com -9inx.com -9iphp.com -9ishe.com -9itan.com -9j9y.com -9ji.com -9jiu9jiu.com -9juewu.com -9jx.com -9k9k.com -9kd.com -9kld.com -9ku.com -9kus.com -9linux.com -9liuda.com -9longe.net -9man.com -9mayi.com -9mbv.com -9miao.com -9miaoxueyuan.com -9mic.com -9nali.com -9now.net -9ok.com -9om.com -9open.com -9orange.com -9pt.net -9qu.com -9rmb.com -9see.com -9skm.com -9sky.com -9sleep.org -9syw.com -9taobao.com -9tax.com -9to.com -9tong.com -9tov.com -9txs.com -9txs.org -9u.net -9upk.com -9vf.com -9w9.com -9wanjia.com -9wee.com -9wee.net -9weihu.com -9wuli.com -9wwx.com -9xgame.com -9xiazaiqi.com -9xiu.com -9xiuzb.com -9xkd.com -9xu.com -9xwang.com -9ya.net -9yao.com -9yaocn.com -9yc.com -9ye.com -9yjk.com -9yoho.com -9you.com -9you.net -9yread.com -9yuntu.com -9yuonline.com -9zas5.com -9zhen.com -9zjob.com -9zx.com -a-du.net -a-hospital.com -a-jazz.com -a-liai.com -a-map.link -a-sy.com -a0598.com -a0bi.com -a0f5etf2.icu -a135.net -a166.com -a1736.com -a2048.com -a21fs.com -a21yishion.com -a2dongman.com -a37jgfjl105.cc -a4s6.com -a5.net -a5b.cc -a5idc.net -a632079.me -a67dy.com -a7.com -a8.com -a8f947.com -a8tg.com -a8u.net -a8z8.com -a9188.com -a9377j.com -a963.com -a9market.com -a9vg.com -aa-ab.com -aa152.com -aa43z7.com -aa65535.com -aa665577aa.com -aa778899aa.com -aa8828.com -aa887766aa.com -aa887788aa.com -aaayun.com -aadongman.com -aads-cng.net -aamachina.org -aap5.com -aardio.com -aaronlam.xyz -aaspt.net -aastartups.com -aatccn.com -aavisa.com -aaxinwen.net -ab126.com -ab173.com -ab365.com -abab.com -abacaipu.com -abackup.com -abakua.com -abang.com -abaoshow.com -abardeen-online.com -abbooa.com -abbyschoice.net -abbyychina.com -abc-ca.com -abc12366.com -abc188.com -abc360.com -abc369.net -abcache.com -abcdao.com -abcdocker.com -abcdv.net -abcfintech.com -abcgonglue.com -abchina.com -abcjiaoyu.com -abcjifang.com -abckantu.com -abclogs.com -abcs8.com -abctang.com -abcve.com -abcxb.com -abcxyzkk.xyz -abcydia.com -abd007.com -abdstem.com -abe-tech.com -abeacon.com -abesmoke.com -abhouses.com -abiechina.com -abiestem.com -abifsey.com -abilie.com -abitcg.com -abite.com -abiz.com -ablanxue.com -able-elec.com -ablejeans.com -ablesci.com -ablesky.com -abletive.com -ablman.com -abloz.com -abmau.com -aboatedu.com -aboboo.com -aboilgame.com -aboutcg.com -aboutcg.net -aboutcg.org -aboutgk.com -aboutidc.com -aboutnew.net -aboutyun.com -abpuvw.com -abreader.com -abslw.com -abtt266.com -abublue.com -abuquant.com -abusi.net -abuyun.com -ac268.com -ac57.com -academypublication.com -acadki.com -acadn.com -acc3.net -acc5.com -accelink.com -accessgood.com -accessoft.com -accesspath.com -accgame.com -acconsys.com -accopower.com -accsh.org -acctdns.com -acctdns.net -accu.cc -accurate-china.com -accyy.com -ace-pow.com -ace-rubber.com -acejoy.com -acelamicro.com -acesheep.com -acetace.com -acetaffy.club -acewill.net -acftu.org -acfunchina.com -acg.gd -acg.tv -acg17.com -acg183.com -acg18s.com -acg4.com -acg456.com -acg6.com -acgaa.xyz -acgdb.com -acgdoge.net -acgist.com -acgn.pw -acgndog.com -acgorg.com -acgp.xyz -acgqd.com -acgrenwu.com -acgres.com -acgrip.com -acgsky.win -acgtofe.com -acgvideo.com -acgvr.com -acgw.pw -acgz.xyz -acgzc.com -acgzyj.com -achiming.com -acing.com -acingame.com -acirno.com -acjw.net -ackeline.com -acmcoder.com -acmicpc.info -acmoba.com -acmsearch.com -acmturc.com -acnow.net -aco-musical.com -aconf.org -acoolread.com -acpf-cn.org -acplay.net -acq42.com -acrel-eem.com -acrel-znyf.com -across-mbox.com -acrpc.com -acsrq.com -act-telecom.com -actacams.com -actamath.com -actcn.net -actime.net -actions-semi.com -actionsky.com -activeclub.net -activepower.net -activity04.com -activity180.com -actom.me -actoys.com -actranslation.com -actself.me -actuive.com -acucn.com -acumoxj.com -acuworld.net -acwifi.net -acwing.com -acxk.net -ad-cn.net -ad-gone.com -ad-goods.com -ad-safe.com -ad-survey.com -ad-young.com -ad110.com -ad12345.com -ad321.cc -ad5.com -ad518.com -ad7.com -ad778.com -adanxing.com -adapay.tech -adarrive.com -adaxin.com -adbkwai.com -adbxb.com -adc-expo.com -adccd.com -adcdn.com -adcomeon.com -adconfer.com -addaad.com -addgog.com -addinghome.com -addnewer.com -addoom.com -addpv.com -addsxz.com -addww.com -adeaz.com -adebang.com -adebibi.com -adesignbrasil.com -adesk.com -adexplain.com -adfcf.com -adflying.com -adfortest.com -adfuns.com -adfyt.com -adg-dental.com -adgomob.com -adhei.com -adhimalayandi.com -adhubbj.xyz -adhudong.com -adiexpress.com -adiic.com -adinall.com -adinallcdn.com -adipman.net -adjie.com -adjucai.com -adjumo.com -adjuz.com -adkwai.com -adl888.com -adlefee.com -adlefei.com -adluckin.com -adlvyou.com -admai.com -admaimai.com -admama.com -admamax.com -admasterto.com -admile.xyz -zzzzzz.me -zzzzaaaa.com -zzzyk.com -admin10000.com -admin168.net -admin5.com -admin5.net -admin6.com -admin88.com -admintony.com -admqr.com -admxh.com -adnineplus.com -adnyg.com -adobeae.com -adobeedu.com -adoregeek.com -adpchina.com -adplusx.com -adpolestar.net -adportion.com -adqkmob.com -adquan.com -ads4f6gf46.com -ads8.com -adsage.com -adsame.com -adscover.com -adsctl.com -adsense-plan.com -adsjdy.com -adslr.com -adsmogo.com -adsmogo.mobi -adsmogo.net -adssaas.com -adssap.com -adsspr.com -adstarcharm.com -adsunflower.com -adt100.com -adtaipo.com -adtchrome.com -adtianmai.com -adtime.com -adtmm.com -adtxl.com -adubest.com -adukwai.com -adunicorn.com -adunioncode.com -adunite.com -adups.com -adutou.com -adutp.com -advgbid.com -adview.com -advuser.com -adwangmai.com -adwep.com -adwetec.com -adwintech.com -adwo.com -adx.ms -adx666.com -adxflow.com -adxhi.com -adxiaozi.com -adxiny.com -adxmq.com -adxpand.com -adxqd.com -adxvip.com -adxwork.com -adyounger.com -adysimg.com -adyun.com -adzar-energy.com -adzh.com -adzhongdian.com -adznb.com -adzop.com -adzshd.com -ae-people.com -ae256.com -ae60.com -aebiz.net -aec188.com -aecichina.com -aeenets.com -aeespace.com -aegcar.com -aehyok.com -aemedia.org -aeo-cctv.com -aeonbuy.com -aeonlifes.com -aepku.com -aerfaying.com -aerochina.net -aesdrink.com -aesucai.com -aet21.com -aevit.xyz -aexpec.com -af360.com -afanti100.com -afarway.com -afcec.com -afdian.net -afdiancdn.com -afdsc.com -afdvr.com -afengseo.com -afengsoft.com -afenxi.com -affecthing.com -affu.net -afgame.com -afie.xin -afjk.com -afjob88.com -afriendx.com -afshanghai.org -aft1v1.com -afu.io -afuchina.com -afunan.com -afunapp.com -afzhan.com -agalwood.net -agamepower.com -agcloudcs.com -agconnect.link -age-spa.com -age.tv -age06.com -agedm1.com -agefans.app -agenge.com -agenow.com -aggresmart.com -aghcdn.com -agile-china.com -agileex.com -aginomoto.com -agiso.com -agora.io -agoralab.co -agrantsem.com -agrittex.com -agrochemshow.com -agrodt.com -agrofairs.com -agrosg.com -agrowingchina.com -agucn.com -agxs.net -ah-inter.com -ah-suuwaa.com -ah12333.com -ah163.com -ah3c.com -ah477.com -ah499.com -ah5166.com -ah8.cc -ah9yu.com -ahacpp.com -ahalei.com -ahanxun.com -ahao.moe -ahaohao.com -ahauto.com -ahbb.cc -ahbys.com -ahbztv.com -ahbzyy.com -ahc.ink -ahcaijing.com -ahcaw.com -ahchuangyebang.com -ahcjhjj.com -ahcnb.com -ahdf56.com -ahdsez.com -ahdzfp.com -aheading.com -ahemi.com -ahfdcb.com -ahfensitong.com -ahfgb.com -ahglj.com -ahgssh.com -ahhanmi.com -ahhdb.com -ahhhjx.com -ahhouse.com -ahhtzx.com -ahhwdp.com -ahitv.com -ahjdq.com -ahjem.com -ahjgxy.com -ahjk.com -ahjkjt.com -ahjtxx.com -ahjyec.com -ahjyzb.com -ahjzjy.com -ahjzw.com -ahkemi.com -ahkende.com -ahkjksw.com -ahkjw.com -ahkxsoft.com -ahlib.com -ahlife.com -ahljnews.com -ahlsm1.com -ahmky.com -ahnanfang.com -ahnews.org -ahougn.com -ahphi.com -ahqmdq.com -ahrunzi.com -ahs.pub -ahscl.com -ahsjxjy.com -ahsyj.com -ahsylsy.com -ahteacher.com -ahtlbyby.com -ahtlgc.com -ahtrain.com -ahuano.com -ahudows.com -ahugeship.com -ahuyi.com -ahwwnews.com -ahwxcs.com -ahxuran.com -ahxwkj.com -ahydnet.com -ahyessoft.com -ahyouan.com -ahyouth.com -ahzcw.cc -ahzs10000.com -ahzssw.com -ai-cai.com -ai-creator.net -ai-factory.com -ai-indestry.com -ai-qingchang.com -ai-rtc.com -ai-start.com -ai-thinker.com -ai.cc -ai012.com -ai7.com -ai7.org -ai9475.com -aiagain.com -aiagain.net -aiai6.com -aiaigu168.com -aialbb.com -aiaor.com -aiba.com -aibaimm.com -aibang.com -aibang.run -aibaov.com -aibe1e.cc -aibing.cc -aibo123.com -aibooks.cc -aic707.com -aicai.com -aicaicdn.com -aicdn.com -aicdn2.com -aicdn4.com -aicdn5.com -aichaicp.com -aichaoxing.com -aichat.net -aichunjing.com -aiclicash.com -aiclk.com -aicloud.com -aicode.cc -aicoinstorge.com -aicsnet.com -aicu8.com -aicunfu.com -aida64.cc -aida64cn.com -aidafen.com -aidai.com -aidaily.com -aidaiz.com -aidalan.com -aidangbao.com -aidanji.com -aidaxing.com -aidaxue.com -aideep.com -aidianji.net -aidiao.com -aidigger.com -aidigong.com -aidimedia.com -aidisida.com -aidjyun.com -aidlearning.net -aidoctor.world -aidog.com -aidong.me -aidoor.net -aidpaper.com -aidrive.com -aiduoka.com -aidusk.com -aiduwenxue.com -aiec-alliance.com -aiegle.com -aiemy.com -aier021.com -aier0755.com -aierchina.com -jsldweb.com -aieye8.com -aiezu.com -aifamu.com -aifanfan.com -aifang.com -aifangke.com -aifanyi.net -aifcdn.com -aifei8.net -aifengjie.com -aifenlei.com -aifont.com -aifu10.com -aifu360.com -aigame100.com -aiganggu.com -aige010.com -aigei.com -aigewc.com -aigo.com -aigobook.com -aigodiy.com -aigou.com -aigtek.com -aiguhuishou.com -aigupiao.com -aihaisi.com -aihala.com -aihanfu.com -aihanfu.net -aihangtian.com -aihao.org -aihecong.com -aihehuo.com -aihelp.net -aihoge.com -aihuajia.com -aihuaju.com -aihuau.com -aihuhua.com -aihuishou.com -aii-alliance.org -aiibii.com -aiijournal.com -aiimg.com -aiimooc.com -aiioii.com -aiizen.net -aiji66.com -aijianji.com -aijiatui.com -aijiayou.com -aijikong.com -aijishu.com -aiju.com -aik.com -aikaixin.com -aikaiyuan.com -aikan8.com -aikang.com -aikcms.com -aiketour.com -aikexi.com -aikf.com -aikucun.com -ailbaba.me -ailete.com -ailewan.com -aili.com -ailinglei.com -ailingmao.com -ailinux.net -ailinzhou.com -ailiyun.com -ailom.com -ailongmiao.com -ailuckyboy.com -ailuluz.com -ailuntan.com -ailvxing.com -aim-ec.com -aimagang.com -aimatech.com -aimatrix.ai -aimcx.com -aimeas.com -aimei39.com -aimeicity.com -aimeideni.com -aimeike.tv -aimingtai.com -aimipay.net -aimiplay.com -aimoge.com -aimsen.com -ainapian.com -ainiapp.com -ainirobot.com -ainiseo.com -ainiu.net -ainyi.com -aiops.com -aiotoolbox.com -aipage.com -aipai.com -aipark.com -aipear.com -aipenglai.com -aipiaxi.com -aipingxiang.com -aiprose.com -aipuo.com -aipz.com -aiqianduan.com -aiqianxq.com -aiqin.com -aiqingyu1314.com -aiqisoft.com -aiqiy.com -aiqiye.cc -aiqiyi.com -aiqiyivip.com -aiqu.com -aiquanjian.com -aiqygogo.com -aiqzu.net -air-level.com -air-matters.com -air.cc -airbft.com -airchangan.com -airchina.com -airchinacargo.com -airchinagroup.com -airchinaim.com -airchinajet.com -airchinamedia.com -aircn.org -aircourses.com -airdoc.com -airdropin.com -airen1314.com -airguilin.com -airj.website -airkunming.com -airmart.vip -airmate-china.com -airmb.com -airmobyte.com -airnut.com -zzzyb.com -airportcip.com -airsavvi.com -airspa.net -airstar.com -airtofly.com -airtu.com -airtu.me -airwh.com -aisaohuo.com -aisaw.com -aisbeijing.com -aisearch.cc -aisee.tv -aiseeking.com -aiseminar.com -aisenseinc.com -aishangba.org -aishangyangyu.com -aishengji.com -aishu5.com -aishuge.la -aisila.com -aisino.com -aisinogd.com -aisinogz.com -aisitool.com -aisixiang.com -aisky.cc -aiskycn.com -aisojie.com -aispeech.com -aispreadtech.com -aistar.site -aisy.com -aitaojin.com -aite.xyz -aitecar.com -aitemall.com -aitemple.com -aiterent.com -aitesu.com -aitiancheng.com -aitrans.net -aitransfy.com -aituan.com -aituwo.com -aityp.com -aiufida.com -aiurl.com -aiuxdesign.com -aiuxian.com -aiuxstudio.com -aiviy.com -aiviysoft.com -aivote.com -aiwall.com -aiwan4399.com -aiwan91.com -aiwanba.net -aiwanpai.com -aiwebsec.com -aiwei365.net -aiweibang.com -aiweline.com -aiwen.cc -aiwenyi.com -aiworkspace.com -aiwulao.com -aixchina.net -aixcoder.com -aixiaoduo.com -aixiashu.com -aixiashu.net -aixiatxt.com -aixiawa.com -aixiawx.com -aixiaxs.com -aixiaxsw.com -aixiegao.com -aixiezuo.com -aixifan.com -aixigua.com -aixinquban.com -aixinwu.org -aixinyunfan.com -aixiu.net -aixq.com -aixue.net -aixuedai.com -aixuejun.com -aixuetang.com -aixuexi.com -aixzu.com -aiyaapp.com -aiyangedu.com -aiyanqing.com -aiyaopai.com -aiyichuan.com -aiyidu.com -aiyinghun.com -aiyingli.com -aiyingshi.com -aiykj.com -aiyou.com -aiyoumi.com -aiyouzj.com -aiyoweia.com -aiysm.com -aiyuangong.com -aiyuke.com -aiyunxiao.com -aizaoqi.com -aizhan.com -aizhengli.com -aizhenrong.com -aizhet.com -aizhuizhui.com -aiziti.net -aizongyi.com -aizuna.com -aizuopin.com -ajaxjs.com -ajbbkf.com -ajcass.org -ajcctv.com -ajclass.com -ajhchem.com -ajinga.com -ajiuqian.com -ajkcdn.com -ajkdns2.com -ajkimg.com -ajmide.com -ajrcb.com -ajs17.com -ajwang.com -ajweishequ.com -ajxlx.com -ajyg.com -ajzq.com -ak0.tw -ak1ak1.com -ak47ids.com -akaifa.com -akaiwl.com -akaxin.com -akbe.com -akbkgame.com -akdanji.com -akdns.net -akey.im -akey.me -akeyun.com -akhtm.com -akhy.com -akjianding.com -akkogear.com -akng.net -akniu.com -akomr.com -akppt.net -akr-developers.com -akscan.com -akspeedy.com -akswe.com -aksxw.com -aku.pub -akuziti.com -akyiyou.com -akylq.com -al-jin.com -al8l.com -alabmed.com -alaboshuiyan.com -alacun.com -aladdin-e.com -aladdinnet.com -alai.net -alameal.com -alanyhq.com -aldcup.com -aldeee.com -aldnew.com -aldtop.com -aldwx.com -aledeco-hk.com -alertover.com -aletui.com -alexhaohao.com -alexyan.cc -alfeng.com -alfheim.cc -algorithmart.com -ali-health.com -ali-star.com -ali213.com -ali213.net -ali37.net -aliagain.com -alianhome.com -aliapp.com -aliapp.org -aliavv.com -003store.com -alibaba-inc.com -alibaba.com -alibaba.net -alibabacapital.com -alibabachengdun.com -alibabachengdun.net -zzzsxx.com -alibabacloud.com -zzzppp.com -zzzla.com -zzzj.com -zzzdm.com -zzz4.com -alibabacorp.com -alibabadesign.com -alibabadns.com -alibabadoctor.com -alibabafapiao.com -alibabafoundation.com -alibabafuturehotel.com -alibabagroup.com -alibabaonline.com -alibabapictures.com -alibabaplanet.com -alibabatech.org -alibabaued.com -alibabausercontent.com -alibjyun.com -alibjyun.net -alibole.com -alibuybuy.com -alicall.com -alicdm.com -alicdn.com -alicdngslb.com -alicelj.com -alicloud.com -alicloudapi.com -alicloudccp.com -alicloudlayer.com -alicloudsec.com -alicloudwaf.com -alicontainer.com -alidata.org -alidayu.com -alidns.com -aliedge.com -aliensidea.com -alientek.com -aliexpress-media.com -aliexpress.com -aliexpress.ru -aliexpress.us -alifabu.com -alifanyi.com -aligames.com -aligaofang.com -aligfwaf.com -alihd.net -alihealth.hk -alihuahua.com -aliimg.com -alijijinhui.org -alijk.com -alikmd.com -alikunlun.com -alikunlun.net -alili.tech -aliliying.com -aliloan.com -alimama.com -alimebot.com -alimei.com -alimmdn.com -alinx.com -alinx.vip -aliog.com -alip.biz -alipan.com -alipansou.com -00394.net -alipay-eco.com -alipay.com -alipay.hk -alipay.net -alipayauto.com -alipaycs.com -alipaydev.com -alipaydns.com -alipaylog.com -alipayobjects.com -alipayplus.com -alipcsec.com -aliplay.com -aliplus.com -aliqiche.com -aliresearch.com -alisabelen.com -alisoft.com -alisports.com -alitchina.com -alithefox.net -alithon.com -alitianji.com -alitrip.com -alitrip.hk -alittle-tea.com -alittlesoldier.com -aliued.com -aliunicorn.com -aliuv.com -alivecdn.com -alivv.com -alivv.net -aliway.com -aliwd.com -aliwears.com -aliwork.com -aliwx.net -alixiaomi.com -alixixi.com -alixox.com -aliyiyao.com -aliyue.net -aliyun-cdn.com -aliyun-inc.com -aliyun-iot-share.com -aliyun-youhui.com -aliyun.com -aliyun.org -aliyunbaike.com -aliyuncdn.com -aliyunceng.com -aliyuncs.com -aliyundaiwei.com -aliyunddos0002.com -aliyunddos0003.com -aliyunddos0005.com -aliyunddos0006.com -aliyunddos0010.com -aliyunddos0017.com -aliyunddos0018.com -aliyunddos0019.com -aliyunddos0020.com -aliyunddos0023.com -aliyunddos0025.com -aliyunddos0026.com -aliyunddos0027.com -aliyunddos0029.com -aliyunddos0030.com -aliyunddos1001.com -aliyunddos1002.com -aliyunddos1003.com -aliyunddos1004.com -aliyunddos1005.com -aliyunddos1006.com -aliyunddos1007.com -aliyunddos1008.com -aliyunddos1009.com -aliyunddos1010.com -aliyunddos1011.com -aliyunddos1012.com -aliyunddos1013.com -aliyunddos1014.com -aliyunddos1015.com -aliyunddos1016.com -aliyunddos1017.com -aliyunddos1018.com -aliyunddos1019.com -aliyunddos1020.com -aliyunddos1021.com -aliyunddos1022.com -aliyunddos1023.com -aliyunddos1025.com -aliyunddos1026.com -aliyunddos1028.com -aliyunddos1029.com -aliyunddos1030.com -aliyundrive.com -aliyundrive.net -aliyunduncc.com -aliyundunwaf.com -aliyunedu.net -aliyunfuwuqi.com -aliyunga0017.com -aliyunga0018.com -aliyunga0019.com -aliyungf.com -aliyunhelp.com -aliyunhn.com -aliyunj.com -aliyunlive.com -aliyunoos.com -aliyunos.com -aliyunpds.com -aliyunqifu.com -aliyuntest0161.xin -aliyunwaf.com -aliyunwaf1.com -aliyunwaf2.com -aliyunwaf3.com -aliyunwaf4.com -aliyunwaf5.com -aliyunx.com -aliyunyh.com -alizhaopin.com -alizila.com -alkuyi.com -all3c.com -all4seiya.net -allawnfs.com -allawntech.com -allbrightlaw.com -allchips.com -allcitygo.com -allcitysz.net -alldenmark.net -alldk.com -alldobetter.com -alldragon.com -alleadprint.com -allenmarket.com -allfang.com -allfunnies.com -allhistory.com -alliancebrh.com -allianz360.com -alliedjeep.com -allinfinance.com -allinpay.com -allinpayhb.com -alliread.com -alllget.com -alllook.tv -allmaga.net -allnow.com -alloyteam.com -allpayx.com -allposs.com -allrace.com -allsaintsmusic.com -allsenseww.com -allstack.net -allstor.org -alltoall.net -alltobid.com -alltosun.com -alltuu.com -allwin368.com -allwinnertech.com -allwinso.com -allyes.com -allyes.net -allystar.com -alo7.com -aloha-ukulele.com -alonemonkey.com -alongsky.com -alookbrowser.com -alookweb.com -alpha-browser.com -alpha-star.org -alphabole.com -alphafun.com -alsovalue.com -altstory.com -altxw.com -aluaa.com -alumni-scut.org -alwaysnb.com -alwindoor.com -alxw.com -alyisheng.com -alyzq.com -am774.com -am89.com -amaomb.com -amap.com -amapauto.com -amarsoft.com -amassfreight.com -amaxchina.com -amazeui.org -amazfit.com -amazingstuff4u.com -amazingsys.com -amazon1688.com -ambassador-sh.com -ambassadorchina.com -amberbj.com -amberedu.com -ambereduwh.com -ambition-soft.com -ambkct.com -ambow.com -amchamchina.org -amdotibet.com -amec-inc.com -amemv.com -americachineselife.com -amethystum.com -amexpressnetwork.com -amfproject.org -amgbs.com -amgepic.com -amh.sh -amhimalayanet.com -amhl.net -amicool.net -amif-expo.com -amijiaoyu.com -amindbox.com -aminer.org -aminglinux.com -amo9.com -amobbs.com -amoe.cc -amoere.com -ampcn.com -amplesky.com -ampmake.com -ampxl.com -ams-ic.com -amsoveasea.com -amssro.net -amtron-ic.com -amuletj.com -amuletor.com -amunion.com -amuren.com -amwiki.org -amyroutes.com -amysql.com -amyxun.com -amz123.com -amz520.com -amzcaptain.com -analysysdata.com -analytics-china.com -analyticskey.com -anandoor.com -anandzhang.com -ananzu.com -anatuprak.com -anav.com -anbang-life.com -anbanggroup.com -anbokeji.net -anchengcn.com -anchi-china.com -anchnet.com -ancii.com -ancun.com -andaike.com -andan.me -andcaifu.com -andfx.net -andhj.com -andisoon.com -andpay.me -andreader.com -android-doc.com -android-studio.org -androidinvest.com -androidmi.com -androidonline.net -androidonlines.com -androidperformance.com -androidvista.com -andwi.com -andyron.com -andyx.net -ane56.com -aneasystone.com -anf-z.com -anfan.com -anfang086.com -anfeng.com -anfensi.com -angeeks.com -angel-game.net -angel-usa.com -angelhome.org -angeljjangnara.com -angell-studio.com -angelmom.org -angelyeast.com -angelyeast.ru -angesi16.com -angiefans.com -angli.me -anglo-chinese.com -angogotech.net -angruo.com -angrymiao.com -angui.org -angwei.net -anhei2.com -anhei3.net -anheng.com -anhkgg.com -anhouse.com -anhuaedu.com -anhui365.net -anhuigwy.org -anhuihouniao.com -anhuihr.com -anhuijingu.com -anhuilife.com -anhuimobile.com -anhuinews.com -anhuiry.com -aniccw.net -aniceapp.com -anicoga.com -anijue.com -animalchina.com -animationcritics.com -animetamashi.com -animetaste.net -anitama.net -aniu.so -aniu.tv -anix.xyz -anji-ceva.com -anji-logistics.com -anji-tonghui.com -anji66.net -anjian.com -anjianghu.net -anjimicro.com -anjismart.com -anjixiong.com -anjuke.com -anjukestatic.com -ankang06.org -ankangfulu.com -ankangwang.com -ankebio.com -ankelife.com -ankerjiedian.com -ankevip.com -ankichina.net -ankki.com -anlaiye.com -anlibaby.com -anlink.com -anlogic.com -anlu114.com -anmobc.com -anmoxiansheng.com -ann9.com -annabelz.com -anneijun.com -annelhair.com -annhe.net -annto.com -anoah.com -anonym-hi.com -anosmcloud.com -anoyi.com -anqingonline.com -anqn.com -anquan.info -anquan.org -anquanbao.com -anquanke.com -anquantong.com -anrayer.com -anren.org -anrenmind.com -anruan.com -anruichina.com -ansgo.com -anshuntech.ltd -ansiding.com -ansky.com -ansteelgroup.com -ant-clean.com -ant78.com -anta.com -antaifans.com -antairui.net -antarx.com -antbuyhot.com -antcloud-miniprogram.com -antcut.com -antdv.com -antebao.com -antebo.com -antfans.com -antfin-inc.com -antfin.com -antfortune.com -antgroup.com -anticheatexpert.com -antiy.com -antiy.net -antpcdn.com -antpedia.com -antriver.com -antrol.com -antsdaq.com -antspainter.org -antuan.com -antuan365.com -antuni.com -antutu.com -antutu.net -antvr.com -antzk.com -anw.red -anweishi.com -anweizhi.com -anwen.cc -anxcn.com -anxia.com -anxiangkeji.net -anxiaoer.com -anxin.com -anxin360.com -anxin360.net -anxinapk.com -anxindavisa.com -anxindeli.com -anxinlirong.com -anxinmai.com -anxinssl.com -anxinyisheng.com -anxiu.com -anxiw.com -anxjm.com -anxz.com -any123.com -any8.com -anyan.com -anyang100.com -anyangedu.com -anyant.com -anybeen.com -anyelse.com -anyew.com -anyforprint.com -anyforweb.com -anygame.info -anyiidc.com -anyilv.com -anyka.com -anyknew.com -anymcu.com -anymetre.com -anyoy.com -anyrtc.io -anysdk.com -anyskygame.com -anysql.net -anytesting.com -anyunjianzhan.com -anyv.net -anyview.net -anyway.fm -anywood.com -anyxz.com -anzerclub.com -anzext.com -anzhen.org -anzhi.com -anzhitan.com -anzhixun.com -anzhuoapk.com -anzhuotan.com -anzogame.com -anzow.com -ao-hua.com -ao.space -aoao365.com -aoaob.com -aoapp.com -aobacore.com -aobaishi.com -aobosoft.com -aocde.com -aocdn.com -aoch.com -aochengcdn.com -aoclia.com -aocslb.com -aodabo.tech -aodaliyaqianzheng.com -aodbw.com -aoddoll.com -aodeng.cc -aodianyun.com -aodingsy.com -aoedi.com -aoerdz.com -aoetech.com -aofahairextension.com -aofenghuanjing.com -aofenglu.com -aograph.com -aohuasports.com -aoidf3.com -aojauto.com -aojian.net -aojian2.net -aojiaostudio.com -aojiyingyu.com -aojiyouxue.com -aojiyuke.com -aojoo.com -aoju.net -aokangsports.com -aolai.com -aolaigo.com -aoliday.com -aoliongame.com -aolvyou.com -aolylcd.com -aomeng.net -aomygodstatic.com -aonaotu.com -aoofu.com -aoogee.com -aoomoo.com -aoongmob.com -aopayun.com -aorankj.com -aoratec.com -aoscdn.com -aoscom.net -aosens.com -aoseo.com -aoserp.com -aoshitang.com -aoshowsh.com -aoshu.com -aosikazyimage.com -aosong.com -aosoo.com -aoswtc.com -aotian.com -aotrip.net -aotuzuche.com -aowei.com -aowenmarketing.com -aoxingsujiao.com -aoxintong.com -aoxtv.com -aoya-hk.com -aoyanchang.com -aoyangzg.com -aoye.com -aoyii.com -aoyiluoad.com -aoyor.com -aoyotech.com -aoyou.cc -aoyou.com -aoyou365.com -aoyoux.com -aoyu100.com -aoyuge.com -aoyunque.com -aozehuanbao.com -aozhanls.com -aozhougoufang.com -aozhuanyun.com -ap1983.com -ap88.com -apaas-zone-test.com -apabi.com -apachecn.org -apad.pro -apayun.com -apcdns.net -apclc.com -apcso.com -apcupse.com -apdcdn.com -ape8.com -apecome.com -apeeri.com -apehorse.com -apeiwan.com -apelearn.com -apesk.com -apetdog.com -apexmic.com -apexyun.com -apeyun.com -apgblogs.com -apgoview.com -aphidic.com -zzyyrl.com -apiadmin.org -apiairasia.com -apicase.io -apicloud.com -apifox.com -apigwtencent.com -apimkt.net -apispace.com -apitd.net -apiview.com -apixj.xyz -apizb.com -apizl.com -apizza.cc -apizza.net -apjingsi.com -apk3.com -apk4399.com -apk8.com -apkevery.com -apkpackagesys.com -apkplug.com -apkrj.com -apkyx.com -apkzu.com -aplaybox.com -aplum-inc.com -aplum.com -apluscap.com -aplusunion.com -apmarry.com -apmbooth.com -apme-magnetics.com -apmvista.com -apnring.com -apollo.auto -apollocode.net -apollotop.com -apous.com -apowo.com -apowogame.com -apoyl.com -app-router.com -app-web-seo-aso.com -app-zh.com -app001.com -app111.com -app111.org -app1116.app -app17.com -app178.com -app2006.com -app2pixel.com -app86.com -app887.com -appadhoc.com -appbi.com -appbk.com -appbocai.com -appbsl.com -appbyme.com -appbz.info -appchina.com -appchizi.com -appcoo.com -appcool.com -appcpa.net -appcpx.com -appcup.com -appcute.im -appdao.com -appdown.info -appdp.com -appduu.com -appeasou.com -appeeres.com -appgame.com -appganhuo.com -appgenuine.com -apphaiwangxing.com -appicplay.com -appinn.com -appjiagu.com -appkaifa.com -appkefu.com -appkg.com -apple110.com -apple4.us -apple88.net -apple886.com -appleads-trk.com -appleadstech.com -applebl.com -applehunt.com -applemei.com -appletuan.com -applex.net -applicationloader.net -applinzi.com -applogo.net -applysquare.com -applysquare.net -appmifile.com -appnode.com -appotronics.com -apppoo.com -apprcn.com -appresource.net -zzyjsmba.com -apps121.com -appscan.io -appsflower.com -appshike.com -appsimg.com -appsina.com -appsite.info -appso.com -apptao.com -apptianwangxing.com -apptuxing.com -appubang.com -appublisher.com -appurl.cc -appurl.me -appvipshop.com -appvv.com -appweiyuan.com -appwill.com -appwuhan.com -appwuhan.net -appxcode.com -appxzz.com -appyao.com -appying.com -appykt.com -appyouni.com -appzhonghua.com -apriltq.com -aprovadimamma.net -apsgo.com -aptchina.com -aptchip.com -aptenon.com -apusic.com -apxm.net -apxnlw.com -aqara.com -aqb.so -aqbxcdn9.com -aqbz.org -aqdcdn.com -aqdesk.com -aqdog.com -aqdstatic.com -aqee.net -aqfen.com -aqhbq.com -aqidb.org -aqioo.com -aqisite.com -aqiyi.com -aqniu.com -aqqcx.com -aqquan.org -aqtd.com -aqtxt.com -aquacity-tj.com -aquanutriera.com -aquanyou.com -aquapipetech.com -aquayee.com -aqueck.com -aqumon.com -aqyad.com -aqyun.com -aqyzm.com -aqzpw.com -aqzt.com -aqzyzx.com -ar-max.com -aragexpo.com -arapp.online -arayzou.com -arc-uds.com -arcas-da.com -arccode.net -arcdmi.com -archcollege.com -archcy.com -archermind.com -archeros.com -archerpeng.com -archery8.com -archerysalon.com -archgo.com -archi-motive.com -archiant.com -archina.com -archiname.com -archio.pro -architbang.com -archlinuxmips.org -archsummit.com -arcsoftai.com -arctime.org -ardsec.com -areader.com -arebz.com -arefly.com -zzyiquan.com -zzyedu.org -arestech-sz.com -areweloongyet.com -arfans.com -arhieason.com -arhoo.com -ariels.xyz -ariesmob.com -arinchina.com -arisastar.com -arkfeng.xyz -arkn81.com -arkoo.com -arkrdigital.com -arkread.com -arkteam.net -arliki.com -arlmy.me -arm9.net -arm9home.net -armbbs.net -armchina.com -armsword.com -armystar.com -armzl.com -arocmag.com -aromalong.com -arongsoft.com -arp.cc -arpg2.com -arpun.com -arrow-tower.com -arrowos.net -arsqb.com -art-ba-ba.com -art-child.com -art138.com -art238.com -art456.com -artacode.com -artbeijing.net -artbookinchina.com -artcg.design -artcns.com -artcto.com -artddu.com -artebuy.com -artech-graphite.com -artexamcq.com -artfinace.com -artfoxlive.com -artgohome.com -artgoin.com -arthome163.com -arthurchiao.art -artimg.net -artlinkart.com -artlnk.com -artnchina.com -artopia-group.com -artp.cc -artplusall.com -artpro.com -artpro.vip -artproglobal.com -artrade.com -artron.net -artronartdata.com -artronimages.com -artrus.net -arts-nj.com -artsbuy.com -artverse.work -artvisioncg.com -artwe.com -artwun.com -artww.com -artxun.com -arvato-ocs.com -arvinhk.com -aryasec.com -as-doll.com -as-hitech.com -as3f.com -as5.com -asao.com -asbeijing.com -asc-wines.com -aschina.org -aschtj.com -asciima.com -asczwa.com -asczxcefsv.com -asd868.com -asdyf.com -asean-china-center.org -aseoe.com -asfzl.net -asgxsy.com -ashan.org -ashj.com -ashvsash.net -asia-dns.com -asiabt.com -asiaci.com -asiacool.com -asiacorp.net -asiae.com -asiaeap.com -asiafactor.com -asiafpd.com -asiaidc.net -asiainfo-sec.com -asiainfo.com -asiainfodata.com -asianewsphoto.com -asianmetal.com -asiarobot.net -asifadeaway.com -asilu.com -asimi8.com -askci.com -askemq.com -asketchup.com -askgtja.com -askk.cc -asklib.com -asklicai.com -askpanda.cc -askququ.com -asktao.com -askxt.org -askzybf.com -aslzw.com -asm64.com -asnlab.com -asnlab.org -aso.ink -aso100.com -aso114.com -aso120.com -asoasm.com -asoulwiki.com -asp168.com -asp300.com -asp8php.com -aspbc.com -aspcool.com -aspire-info.com -aspirecn.com -aspsky.net -aspx.cc -aspxhome.com -aspxhtml.com -asrmicro.com -ass-casa.com -assassinscreedcodenamejade.com -zzydb.com -zzyb.org -zzxy.net -zzxw.net -zzxhns.com -assrt.net -astbbs.com -astestech.com -astfc.com -asthis.net -astorpiano.com -astron.ac -astropulsion.com -asurada.zone -asussmart.com -asussz-zp.com -asusw.net -aswetalk.net -asyzonline.com -aszvip.com -at0086.com -at0086.net -at58.com -at78.com -at851.com -at98.com -ata-edu.com -ata-test.net -atacchina.com -ataoju.com -atatech.org -atbug.com -atcc360.com -atchip.com -atcloudbox.com -atcontainer.com -atcpu.com -atelier39.org -atf.com -atfeng.com -atguigu.com -atguigu.org -athaitao.com -athmapp.com -athomewithdyslexia.com -atianqi.com -atido.com -ating.info -atmbox.com -atmlimited.com -atmob.com -atobo.com -atomgit.com -atomhike-en.com -atomhike.com -atomic-art.com -atoolbox.net -atpanel.com -atstudy.com -atsws.com -attacker.fit -attakids.com -attri.mobi -atuoyi.com -atwtech.net -atyun.net -atzjg.net -atzlinux.com -atzuche.com -auak.com -aucanlink.com -aucnln.com -audio160.com -audiobuy.cc -audiocn.com -audiocn.net -audiocn.org -audiofamily.net -audiowell.net -audiowellzq.com -audiy.com -audlabs.com -audley-printer.com -augsky.com -augth.com -augurit.com -aunapi.com -auniontech.com -aunload.com -aupu.net -aura-el.com -auromcs.com -ausaview.com -ausbio.com -auscoo.com -ausdn.com -aushinelyn.com -aushy.com -ausny.com -auspous.com -aussino.net -austargroup.com -austarstudy.com -ausuu.com -authing.co -auto-ccpit.org -auto-learning.com -auto-made.com -auto-mooc.com -auto-purify.com -auto-wo.com -auto18.com -auto318.com -auto328.com -auto333.com -auto510.com -auto6s.com -auto98.com -autoai.com -autobaidu.com -autobit.xyz -autobizreview.com -autocamel.com -autochina360.com -autochinashow.org -autochips.com -autodg.com -autodmp.com -autodwg.com -autoesd.com -autofull.net -autogslb.com -autoho.com -autohome.com -autohr.org -autoitx.com -autojingji.com -autojkd.com -autojs.org -autonavi.com -autoparts-yoto.com -autophagy.net -autoplansearch.com -autoprotect365.com -autoqingdao.com -autoshanghai.org -autosmt.net -autosup.com -autozw.com -auwinner.com -auxgroup.com -auyou.com -av-ic.com -av199.com -av2.me -av269.com -av380.net -avalon.pw -avalon233.com -avalss.com -avanpa.com -avatarmind.com -avatarmobi.com -avatr.com -avc-mr.com -avc-ott.com -avemaria.fun -aves.art -avgh5.com -avhome.net -avic.com -avicnews.com -avicone.com -avicsec.com -avicui.com -avivaqueen.com -avlsec.com -avlyun.com -avnpc.com -avoscloud.com -avpic.xyz -avq360.com -avrvi.com -avrw.com -avtechcn.com -avtt830.com -avyeld.com -aw-ol.com -aw.cc -awaimai.com -awaker.net -awaliwa.com -awaysoft.com -awc618.com -awcloud.com -awcn.cc -aweb.cc -awehunt.com -awemeughun.com -awinic.com -aword.net -awotuan.com -awoyun.com -awsdns-cn-21.biz -awsdns-cn-24.com -awsdns-cn-24.net -awsdns-cn-36.net -awsdns-cn-52.net -awsdns-cn-57.com -awsdns-cn-58.net -awsok.com -awspal.com -awstar.net -awtmt.com -awu3.net -awuming.com -awx1.com -ax2nc4.ren -ax630.com -axatp.com -axbsec.com -axbur.com -axbxw.com -axcf.com -axera-tech.com -axfys.com -axhub.im -axiaoxin.com -axjsw.com -axmag.com -axmro.com -axnsc.com -axshuyuan.com -axuer.com -axure.us -axureshop.com -axureux.com -axyxt.com -axzchou.com -axzlk.com -ay57.com -ay800.com -ay99.net -aybwg.org -aycav.com -ayfdc.com -ayfy.com -ayguge.com -ayhuowan.com -ayibang.com -ayidada.com -ayijx.com -ayilaile.com -ayizu.com -ayjs.net -ayqy.net -ayrbs.com -aysz01.com -ayuren.com -ayurumen.com -ayushan.com -ayux.net -ayxbk.com -ayxz.com -azbingxin.com -azchcdna.com -azchcdnb.com -azchcdng.com -azchcdnj.com -azchcdnm.com -azhimalayanvh.com -azhituo.com -azhjt.com -azinbate.info -azooo.com -azoyacdn.com -azoyagroup.com -azuretouch.net -azurew.com -azureyun.com -azycjd.com -azz.net -b-chem.com -b-eurochina.com -b-fairy.com -b1446.com -b1bj.com -b1qg.com -b23.tv -b2b-builder.com -b2b.biz -b2b168.com -b2b168.net -b2b168.org -b2b179.com -b2b6.com -b2b98.net -b2baa.com -b2bic.com -b2bname.com -b2bvip.com -b2bvip.net -b2byao.com -b2cedu.com -b2q.com -b3inside.com -b3log.org -b3logfile.com -b5200.net -b555b.com -b5b6.com -b5csgo.plus -b5esports.me -b5m.com -b612.me -b612kaji.com -b7l.cc -b8yx.com -ba-li.com -baalchina.net -bababian.com -bababus.com -babaike.com -babaimi.com -babao.com -babaofan.com -babapi.com -babariji.com -babaxiong.com -babeijiu.com -babsoft.net -baby-bus.com -baby577.com -baby611.com -baby868.com -babybus.com -babybus.org -babycdn.com -babymoro.com -babymozart.cc -babyqiming.com -babytree.com -babytreeimg.com -bacaoo.com -bacaosh.com -bachemiao.com -bacic5i5j.com -bacocis.com -badls.com -badmintoncn.com -badouxueyuan.com -badu.com -badudns.cc -baertt.com -bafangjuhe.com -bafangwang.com -bag198.com -bagb2b.com -bagesoft.net -bagevent.com -bageyalu.com -bags163.com -bagtree.com -bagualu.net -bagxs.com -bahens.com -bai.com -bai68.com -baibaoyun.com -baibianwukong.com -baibianyishu.com -baibm.com -baibo8.com -baibu.com -baic-hs.com -baicai.com -baicaio.com -baicaiyouxuan.com -baicaolu.net -baicaosoft.com -baicells.com -baichanghui.com -baicheng.com -baichenginedu.com -baichuanhd.com -baichuanhudong.com -baicizhan.com -baicizhan.org -baiclouds.com -baicmotor.com -baicmotorsales.com -baicongjun.com -baicuoa.com -baidajob.com -baidao.com -baidenafu.com -baideye.com -baidinet.com -baidouya.com -0037wan.com -baidu-int.com -baidu-itm.com -baidu-mgame.com -baidu-wenxue.com -baidu.cc -baidu.cm -baidu.com -baidu.mobi -baidu.to -baidu1.com -baidu120.cc -baidu123.com -baidu521.com -baiduads.com -baidubaidu.win -baidubaidubaidu.com -baidubaidubaidu.net -baidubce.com -baiducidian.com -baiducontent.com -baidudaquan.com -baidufe.com -baidufree.com -baiduhui.com -baiduisjkbvsjkl.com -baidulook.com -baidunongmin.com -baiduor.com -baidupan.com -baidupcs.com -baidusmartapps.com -baidusobing.com -baidustatic.com -baidusx.com -baidutab.com -baidutieba.com -baidutt.com -baiduux.com -baiduv.com -baiduvjsbvjknlsvsv.com -baiduwebgame.com -baiduwpan.com -baiduyun.com -baiduyun.wiki -baiduyundns.com -baiduyundns.net -baiduyunsousou.com -baiduzjn.com -baieryk.com -baifae.com -baifendian.com -baifubao.com -baifumeiba.com -baigepo.com -baigeseo.com -baigm.com -baigo.net -baigongbao.com -baihe.com -baiheee.com -baihephoto.com -baihexs.com -baihong.com -baihui.com -baihui168.com -baihuillq.com -baihuoke.com -baihuwang.com -baiila.com -baiinfo.com -baijia.com -baijiacloud.com -baijiahulian.com -baijiasheping.com -baijiayun.com -baijiayuncdn.com -baijiegroup.com -baijiekj.com -baijiexiu.com -baijincdn.com -baijindai.com -baijingapp.com -baijiu88.com -baijob.com -baijunyao.com -baijus.net -baikalminer.com -baike.biz -baike.com -baiked.com -baikemy.com -baikemy.net -baikeshiji.com -baikevod.com -baikezh.com -bailepin.com -bailiaijia.com -bailiangroup.com -bailiann.com -bailiban.com -bailiguangmang.com -bailing88.com -bailitech.com -bailitop.com -baima.com -baimao-expo.com -baimao.com -baimaohui.net -baimda.com -baimei.com -baimg.com -baimiaoapp.com -baimin.com -baina.com -bainaben.com -baineng.cc -baipu365.com -baiqiaogame.com -baiqishi.com -baiquandai.com -baiquefahuasi.com -baironginc.com -bairuitech.com -baiseyun.com -baishakm.com -baishan-cloud.com -baishan-cloud.net -baishan.com -baishancloud.com -baishancloud.org -baishangeek.com -baishengshouhou.com -baishicha.com -baishishuju.com -baishixi.xyz -baishudata.com -baishunet.com -baisiker.com -baisiweiting.com -baisu.com -baitaihuge.com -baitdu.com -baiteng.org -baithu.com -baitianinfo.com -baitiao.com -baituibao.com -baiu.com -baiven.com -baiwandz.com -baiwang.com -baiwangjs.com -baiwutong.com -baixiangxiang.com -baixiaosheng.net -baixing.com -baixing.net -baixingjd.com -baixiu.org -baiyangwang.com -baiyangzb.com -baiyaohy.com -baiycap.net -baiye5.com -baiyewang.com -baiyi181.com -baiyiba.com -baiyinggd.com -baiyjk.com -baiyou100.com -baiyu.tech -baiyuemi.com -baiyunairport.com -baiyundou.net -baiyunhuojia.com -baiyuno.com -baiyunxitong.com -baiyuxiong.com -baizhan.net -baizhanke.com -baizhanlive.com -baizhenzhu.com -baizhiedu.com -baizhu.cc -bajiebofang.com -bajiecaiji.com -bajiege.com -bajiehechuang.com -bajintech.com -bajiu.org -bakahosting.com -bakaxl.com -bakbitionb.com -bakchoi.com -bakingerp.com -bala.cc -baldc.com -baletu.com -balijieji.com -balimtoy.com -ballgametime.com -ballpure.com -balltv.cc -baltamatica.com -bama555.com -bamaiwo.com -bamaol.cc -bamaol.com -bamatea.com -bamaying.com -bamboo18.com -bamenzhushou.com -bamuyu.com -bamxs.com -bananalighter.com -bananau.com -bananaumbrella.com -bananaunder.com -banbaise.com -banbaowang.com -banciyuan.me -bandaoapp.com -bandayun.com -bandcevent.com -bandengw.com -bandianli.com -bandoristation.com -banfubbs.com -banfuzg.com -bang1.work -bangbang.com -bangbang93.com -bangboss.com -bangcle.com -bangdao-tech.com -banggo.com -banghaiwai.com -bangjixia.com -bangkao.com -bangkebao.com -banglianai.com -bangmai.com -bangnixia.com -bangongdashi.com -bangongyi.com -bangongziyuan.com -bangqi66.com -bangqu.com -bangrong.com -bangshouwang.com -bangthink.com -bangwo8.com -bangwo8.net -bangxuetang.com -bangyike.com -bangzechem.com -bangzhufu.com -banji001.com -banjia1680.com -banjiajia.com -banjiamao.com -banjixiaoguanjia.com -banjuanshu.com -bank-of-china.com -bankcomm.com -zzxfjxzz.com -zzxdc.com -bankcz.com -bankgz.com -bankhr.com -bankkf.com -bankksw.com -bankofbbg.com -bankofchangsha.com -bankofchina.com -bankofdl.com -bankofliaoyang.net -bankofshanghai.com -bankoftieling.com -bankofyk.com -bankpublish.com -banksteel.com -banksteeldns.com -bankyy.net -banma-inc.com -banma.com -banmaaike.com -banmajsq.com -banmamedia.com -banmashuo.com -banmasrf.com -banpie.info -banqumusic.com -banri.me -bansha.com -banshier.com -bantangapp.com -bantangbuy.com -banwagong.men -banwojia.com -banxiayue.com -banyuetan.org -banyuetanapp.com -banyuetanxcx.com -banyunjuhe.com -banzhe.xyz -banzou.name -banzouzhizuo.com -bao-cun.com -bao-fang.com -bao-hulu.com -bao100.com -bao12333.com -bao21.com -bao315.com -bao369.com -baobao.com -baobao001.com -baobao88.com -baobaobang.com -baobaoshu.com -baobei360.com -baobeicang.com -baobeigezi.com -baobeihr.com -baobeihuijia.com -baobeita.com -baobeituan.com -baocdn.com -baochaojianghu.com -baodan360.com -baodaohealth.com -baodaren.net -baodigs.com -baodingmeishi.com -baodu.com -baofeng.com -baofeng.net -baofeng365.com -baofengcinema.com -baofengtuandui.com -baofoo.com -baofoo.net -baofu.com -baogang.info -baogao.com -baogao.store -baogaoting.com -baogaozhiku.com -baoge.net -baoguangtai.com -baohebao.com -baohuagroup.com -baoimg.net -baojia.com -baojiazhijia.com -baojidaily.com -baojiehang.com -baojijob.com -baojinews.com -baojinling.com -baojunev.com -baokan.name -baokan.tv -baoku.com -baokuandi.com -baokutreasury.com -baoltx.com -baolu.store -baomi.com -baomi365.com -baomihua.com -baoming.com -baomitu.com -baoqin.com -baoqingvip.com -baoruan.com -baoshe.net -baoshuanglong.com -baoshuiguoji.com -baoshuo.ren -baosiair.com -baosight.com -baosteel.com -baostock.com -baotime.com -baotoulawyer.com -baotoushizx.com -baotuba.com -baowu.com -baowugroup.com -baoxian.com -baoxian72.com -baoxianhai.com -baoxianshichang.com -baoxiaobar.com -baoxiaohe.com -baoxinleasing.com -baoxinwen.com -baoxuexi.com -baoyang1.com -baoyang888.com -baoyangcs.com -baoyt.com -baoyung.com -baoyuntong.com -baoyz.com -baoz.net -baozang.com -baozhayun.cloud -baozhenart.com -baozheng.cc -baozhilin.com -baozhuang.biz -baozhuangren.com -baozifa.com -baozijishu.com -baozipu.com -baozou.com -baozoudi.com -baozoumanhua.com -baozugongkeji.com -baozy.com -baping.com -baqiu.com -baquge.com -barmap.com -baron-bj.com -baronzhang.com -barretlee.com -bartender.cc -base64.us -basecity.com -basemu.com -basequan.com -basestonedata.com -bashan.com -bashuhuapai.com -bashuku.com -basiccat.org -basicfinder.com -bat120.com -bathome.net -batian.net -batmanit.com -batmsg.com -batplay.com -battery-cert.com -battery-expo.com -batterydir.com -batterykey.com -battlecare.net -battleofballs.com -batupian.net -baudu.com -baufortune.com -bauschlombchina.com -bavei.com -bawagon.com -bawanglongbengye.com -baxiami.com -baxichina.com -baybox.club -baydn.com -baye.tech -bayescom.com -bayimob.com -bayinh.com -bayinmao.com -bayuegua.com -bayueju.com -bayueweb.com -bayunhome.com -bazaarjewelrychina.com -bazai.com -bazhan.com -bazhou.com -bazhua.me -bazhuay.com -bazhuayu.cc -bazhuayu.com -bazi.cloud -bazi.xin -bazi5.com -bazp.net -bb-game.com -bb-pco.com -bb06.com -bb778899bb.com -bb8gk.com -bbam58.com -bbanp.com -bbaod.com -bbaqw.com -bbb77qqq.xyz -bbbaaa.com -bbbao.com -bbbb.com -bbbcdns.com -bbbtgo.com -bbbvip.com -bbchin.com -bbcss.com -bbctop.com -bbdservice.com -bbdup.com -bbef.com -bbfoxgame.com -bbfstore.com -bbgsite.com -bbgstatic.com -bbicn.com -bbioo.com -bbiquge.com -bbjkw.net -bbk.com -bbkantu.com -bbmar.com -bbmy.net -bbobo.com -bbonfire.com -bbqe.com -bbqk.com -bbqmw.net -bbrtv.com -bbs-go.com -bbs1x.net -bbsaso.com -bbsds.com -bbsheji.com -bbsls.net -bbsmax.com -bbsnet.com -bbsut.com -bbsxp.com -bbtang.info -bbtcaster.com -bbtkid.com -bbtree.com -bbtw.net -bbugifts.com -bbwfish.com -bbwxbbs.com -bbxinwen.com -bbxinwen.net -bbzhh.com -bbzhi.com -bcactc.com -bcadx.com -bcb5.com -bcbanzou.com -bcbm55555.com -bcbm66666.com -bcbpm.com -bcbvi.com -bccastle.com -bccn.net -bccnsoft.com -bccv.com -bcdaren.com -bcdy.net -bceapp.com -bcebos.com -bcedns.com -bcedns.net -bcedocument.com -bcegc.com -bceimg.com -bcelive.com -bcevod.com -bcfmglobal.com -bcitb.com -bclsw.com -bcluo.com -bcmcdn.com -bcmeng.com -bcpcn.com -bcpgame.com -bcreat.com -bcrjl.com -bcsytv.com -bctest.com -bctmo.com -bcty365.com -bcvbw.com -bcwangluo.net -bcweibo.com -bcwxfy.com -bcxgame.com -bcxww.com -bcy.net -bcyimg.com -bczcdn.com -bczs.net -bd-apaas.com -bd-caict.com -bd-film.cc -bd-film.co -bd-film.com -bd001.net -bd2020.com -bd689.com -bd7kzs.site -bdall.com -bdapark.com -bdatu.com -bdc-rays.com -bdchina.com -bdcloudapi.com -bdclouddns.com -bdf2.com -bdfkb.com -bdfzcd.net -bdfzgz.net -bdgamelive.com -bdgp.cc -bdgslb.com -bdimg.com -bdinfo.net -bditong.com -bdkssc.com -bdkyr.com -bdpan.com -bdqn027.com -bdqn666.com -bdqnwh.com -bds-cn.com -bdsana.com -bdsgps.com -bdshuang.com -bdsimg.com -bdstar.com -bdstatic.com -bdstatlc.com -bdsye.com -bdtic.com -bdtjrcv.com -bdtjs.org -bdtm.net -bdurl.net -bdwater.com -bdwm.net -bdwork.com -bdxhj.com -bdxiguaimg.com -bdxiguastatic.com -bdxiguavod.com -bdxx.net -bdydns.com -bdydns.net -bdys.me -bdysite.com -bdyz.xyz -be-xx.com -be90.com -beadwallet.com -bear20.com -bearead.com -beargoo.com -bearjoy.com -bearminers.xyz -bearrental.com -bearyboard.com -bearychat.com -beasure.com -beats-digital.com -beatsbydre.com -beatu.net -beautifullinux.com -beautifulzzzz.com -bechangedt.com -beckwai.com -becukwai.com -bedtimepoem.com -beduu.com -bee-net.com -bee-station.com -beebeepop.com -beebeeto.com -beecook.com -beedancing.com -beejoygames.com -beekka.com -beelink.com -beemarket.tv -beep365.com -beeplay123.com -beeshow.tv -beestor.com -beestore.tv -beevideo.tv -beeweart.com -begcl.com -begindcc.com -bego.cc -begoto.com -begowin.com -behake.com -behe.com -bei1688.com -beianidc.com -beianw.net -beibaozq.com -beibei.com -beibeicdn.com -beicdn.com -beidahuang.net -beidasoft.com -beidd.com -beidian.com -beidoou.com -beidou.org -beidou66.com -beidouchong.com -beidouone.com -beidousafety.org -beidouxingxueche.com -beieryouxi.com -beifang.net -beifangfoshifen.com -beifeng.com -beifuni.com -beiguorc.com -beihai365.com -beihaidc.com -beihaiting.com -beihaiwz.com -beihuasoft.com -beijing-hmo.com -beijing-hualian.com -beijing-kids.com -beijing-lipin.com -beijing-marathon.com -beijing-time.org -beijing120.com -beijingbang.com -beijingbaomu.com -beijingcenterforthearts.com -beijingfenxiangkeji.com -beijingkbd.com -beijingnorthstar.com -beijingrc.com -beijingrc.net -beijingrenyi.com -beijingsheying.net -beijingtoon.com -beijingwenshendian.com -beijingxinzhuoyue.com -beike21.com -beikeapp.com -beikeba.com -beikeread.com -beikongyun.com -beileike.com -beimai.com -beimeigoufang.com -beimeihongfeng.com -beimiyouchuan.com -beimu.com -beingmate.com -beipy.com -beiren.cc -beisen.com -beisencorp.com -beitaichufang.com -beitao8.com -beitown.com -beiwaibest.com -beiwaiclass.com -beiwaiguoji.com -beiwaionline.com -beiwaiqingshao.com -beiwangshan.com -beiwo.com -beiww.com -beixingmh.com -beiying.online -beiyongzhan.com -beiyxiu.com -beizengtech.com -beizi.biz -beiziman.com -bej9.com -bejoin.net -bejson.com -belarusvisacenter.com -belfone.com -belgiumvisacenterd.com -belle8.com -beltandroadforum.org -beltxman.com -bemanicn.com -bemfa.com -bemhome.com -benbenlong.com -benber-tech.com -benber.com -benbun.com -bendan.website -bendi5.com -bendibao.com -bendiso.com -bendiw.cc -bendizhidao.com -benduo.net -benellimotor.com -bengbeng.com -bengden.com -bengfa.biz -benghuai.com -bengku.com -bengou.com -bengrong.com -bengtie.com -benhu01.com -beniao.com -benjamin.fun -benkejieye.com -benkua.com -benlai.com -benlailife.com -benmi.com -benmu-health.com -benniux.com -bensedl.com -benseshijue.com -benshouji.com -bensiea.com -benyh.com -benyouhui.com -benzhb.com -benzhibbs.com -benzhiwangluo.com -benztu.com -beony.com -beook.com -bepal.pro -bequgew.com -bequgexs.com -bequgezw.com -berfen.com -berlinchan.com -berlinix.com -berqin.com -berrydigi.com -bersella-ai.cc -berui.com -bes.ren -besclouds.com -besg-bee.com -besget.com -beshtech.com -bessystem.com -best-inc.com -best-intl-school.com -best100design.com -best66.me -best73.com -bestadprof.com -bestapp.us -bestatic.com -bestb2b.com -bestbaijiu.com -bestbeibao.com -bestcake.com -bestcdn.vip -bestcem.com -bestcovered.com -bestdo.com -bestebookdownload.com -bestechnic.com -bestedm.net -bestedm.org -besteduchina.com -bestexpresser.com -bestfuturevip.com -bestgo.com -besticity.com -bestinwo.com -bestjy.net -bestlee.net -bestopview.com -bestpay.net -bestpeng.com -bestqliang.com -bestsdwan.com -bestshinhwa.com -bestsign.info -bestsign.tech -bestsrc.com -bestswifter.com -besttrav.com -bestv6.com -bestvapp.com -bestvist.com -bestwa.com -bestwehotel.com -bestweshop.com -bestzone.org -bet007.com -bet555.com -bet8.cm -betaflare.com -betaidc.com -betajy.com -betamao.me -betawm.com -betazixun.com -betheme.net -betop-cn.com -betop365.com -bettbio.com -betteredu.net -betterzip.net -betterzipcn.com -beuyinm.com -beva.com -bevol.com -bevzc.com -bewellbio.com -beyebe.com -beyondbit.com -beyondcompare.cc -beyondcomparepro.com -beyondfund.com -beyondh.com -beyonditsm.com -beyonds.com -beyoner.net -bf-z.com -bf-zhengzhou.com -bf35.com -bfcmovie.com -bfdfe.com -bffzb.com -bfjkdfjknmhjsdf36.com -bfjr.com -bfqh.com -bfqifu.com -bfsu-artery.net -bfsutw.com -bftq.com -bftv.com -bfvvs.com -bfw.cc -bfw.wiki -bfyx.com -bfyx.net -bg-cs.com -bgbk.org -bgctv.com -bgdeco.com -bgee.cc -bggd.com -bgk100.com -bgl88.com -bgmfans.com -bgmlist.com -bgrdh.com -bgren.com -bgrimm.com -bgsdk.net -bgsdyz.com -bgteach.com -bguai.com -bgwcsz.com -bgwl.net -bgyfhyx.com -bh.sb -bh1t.com -bh3.com -bh4dks.com -bh5.com -bh8sel.com -bhcyts.cc -bhdata.com -bhfangchan.com -bhgmarketplace.com -bhhgallery.com -bhidi.com -bhjck.com -bhk.mobi -bhnsh.com -bhpiano.com -bhrencai.com -bhsr.com -bhuitong.com -bhxww.com -bhzck.club -bhzck.xyz -bhzhu203.com -bhzhuji.com -bhzpw.com -bhzyxy.net -bi-ci.com -bianbao.net -biancheng.net -bianchengquan.com -biancui.com -bianews.com -bianfeng.com -bianjiqi.net -bianjiyi.com -bianlidianjiameng.net -bianlifeng.com -bianlun.net -bianmachaxun.com -bianpingyou.com -bianshi.org -biantaishuo.com -bianwa.com -bianwanjia.com -bianxianmao.com -bianxianwu.com -bianyuandaigou.com -bianzhia.com -bianzhirensheng.com -biao12.com -biaodan.info -biaodiancloud.com -biaodianfu.com -biaofaw.com -biaoge.com -biaoge.me -biaoju01.com -biaonimeia.com -biaoniu.net -biaopeibao.com -biaoqing.com -biaoqing233.com -biaoqing888.com -biaoqingjia.com -biaoqingmm.com -biaotukeji.com -biaoyi.com -biaozhiku.com -biaozhun.org -biaozhun8.com -biaozhunkeji.com -biaozhuns.com -biaozhunyisheng.com -biask.com -bibaodao.com -bibenet.com -bibgame.com -bibibi.net -bibiku.com -biblioactiva.com -bibuzhengxing.com -bicpaedu.com -bicredit.xin -bid-view.com -bidchance.com -biddingos.com -biddingx.com -bidemi.com -bidewu.com -bidianer.com -bidingxing.com -bidizhaobiao.com -bidns.net -biduo.cc -biduobao.com -biduoxs.com -biduwenxue.com -bidwhy.com -biede.com -biedoul.com -bieshu.com -bietongfeng.com -bieyangapp.com -bifabu.com -bifeige.com -big-bit.com -big-shanghai.com -bigaaa.net -bigaka.com -bigan.net -bigbaicai.com -bigbenmeng.com -bigbigai.com -bigbigsun.com -bigbigwork.com -bigc.at -bigcat.com -bigcloud.click -bigda.com -bigdata-expo.org -bigdata.ren -bigdatasafe.org -bigdatastudy.net -bigecko.com -bigehudong.com -bigemao.com -bigeniao.com -bigerdata.com -bigeshuju.com -biggerlens.com -biggeryun.com -bigherdsman.com -bightbc.com -bigjpg.com -bigma.cc -bigniu.com -bignox.com -bigops.com -bigplayers.com -bigqiao.com -bigrnet.com -biguo100.com -biguolunwen.com -bigwayseo.com -bigwinepot.com -bigwww.com -bigxiao.com -bigzhong.com -bihe0832.com -bihongbo.com -bihoo.com -bihu-static.com -bihu.com -bihubao.com -biikan.com -biji.com -biji13.com -bijiago.com -bijiagou.com -bijianzw.com -bijiao.org -bijiasso.com -bijiatu.com -bijienetworks.com -bijirim.com -bijixia.net -bikecool.com -bikehome.net -biketo.com -biketour-giant.com -biking-m.com -bilezu.com -bili.fan -biliapi.com -biliapi.net -bilibil.com -bilibili.cc -bilibili.co -bilibili.com -bilibili.net -bilibiligame.co -bilibiligame.net -bilibilihelper.com -bilibilijj.com -bilibilipay.com -bilicdn1.com -bilicdn2.com -bilicdn3.com -bilicdn4.com -bilicdn5.com -bilicomic.com -bilicomics.com -biligame.co -biligame.com -biligame.net -biligo.com -bilihot.com -biliimg.com -bilimoe.com -bilive.com -bilivideo.com -bilivideo.net -biliyu.com -bill-jc.com -billchn.com -billionbottle.com -billionconnect.com -billionseo.com -billowlink.com -billwang.net -bilnn.com -bim-times.com -bimfmchina.com -bimilou.com -binaryai.net -binaryai.tech -binbinyl.com -binbla.com -bincailiuxue.com -binfen.tv -binfenquzu.com -binfenyeke.com -binfenyingyu.com -bing400.com -bingbing8.com -bingbingyy.com -bingchengwang.com -bingd.com -bingdian001.com -bingdian01.com -bingguner.com -binglai.net -binglanggu.com -binglingtech.com -binglixue.com -bingo321.com -bingqipu.net -bingsin.com -bingtuannet.com -bingyan.net -bingyongjin.vip -binkery.com -binmt.cc -binmtplus.com -binpang.me -binqsoft.com -binstream.live -binuoniu.com -binvul.com -binyin.com -binzc.com -binzhi.com -binzhouquan.com -binzhouw.com -binzhuang.com -bio-equip.com -bio-fuyang.com -bio-review.com -bio360.net -bio4p.com -biocloud.net -biocome.com -biodiscover.com -biodiscover.net -biogo.net -biohyalux.com -bioktech.com -biolab.xyz -bionav.cc -bioon.com -bioon.net -biosren.com -biosrepair.com -biostatistic.net -biotecan.com -bipvcn.com -biqige.cc -biqigewx.com -biqiudu.com -biqiuge.com -biqu6.com -biqubao.com -biqubu.com -biqudao.cc -biqudu.com -biqudu.net -biqudu.tv -biqufu.com -biquge.biz -biquge.info -biquge.la -biquge.vip -biquge11.com -biquge8.com -biquge9.cc -biquge99.cc -biqugeabc.com -biqugebook.com -biqugeg.com -biqugegg.cc -biquges.com -biqugesk.org -biqugetv.com -biqugew.com -biqugewx.com -biqugex.com -biqugexs.com -biqugexs.la -biqugexx.com -biquguan.com -biqukan.com -biquke.com -biquke.me -biquku.co -biquku.la -biqukun.la -biqulou.net -biquluo.com -biqupai.com -biqusa.com -biqushu.com -biqusoso.com -biquw.com -biquwo.com -biquwo.net -biquwx.la -biquxs.com -biquyue.com -biquyun.com -biqwo.com -biransign.com -bird4d.com -birdback.org -birdol.com -birdpush.com -birdwork.com -birentech.com -bisairi.com -bisenet.com -bishen.ink -bishengoffice.com -bisheziliao.com -bishijie.com -bit-king.net -bitauto.com -bitautoimg.com -bitautotech.com -bitbank.com -bitcar.com -bitcellulose.com -bitcongress.com -bitcron.com -bitdata.pro -bitdefender-cn.com -biteabc.com -bitecoin.com -biteedu.com -bitekou.com -bitell.com -bitett.com -bitetui.com -bitgo.cc -bitgo.net -bitguai.com -bithosts.net -bithub00.com -bitiful.net -bitjia.com -bitky.cc -bitlib.cc -bitmain.vip -bitmingw.com -bitol.net -bitonloop.com -bitqiu.com -bitscn.com -bitscn.net -bitsde.com -bitse.com -bitsqa.com -bittopmall.com -bitvh.com -biubiu.tv -biubiu001.com -biubiubiu.org -biulie.com -biusoft.com -bivean.com -biwanshequ.com -bixiabook.com -bixiaxs.net -bixingxing.com -bixinlive.com -bixishang.com -bixu.cc -bixu.me -bixueke.com -biyabi.com -biyangwang.com -biyao.com -biye.net -biye666.com -biyehome.net -biyele.com -biyelunwenjiance.com -biyi.net -biyidc.com -biyingniao.com -biyinjishi.com -biymx.com -biyong007.com -biyou.tech -biyuwu.cc -biz-east.com -biz178.com -biz72.com -bizcent.com -bizchallenge.net -bizcharts.net -bizcn.com -bizconfstreaming.com -bizhi360.com -bizhi88.com -bizhicool.com -bizhiquan.com -bizhizj.com -bizhizu.com -bizhongchou.com -bizmoto.com -biznewscn.com -bizopsmall.com -bizpai.com -bizsn.com -bizsofts.com -bizvane.com -bj-apc.com -bj-big.com -bj-dahon.com -bj-dsmzyy.com -bj-kpn.com -bj-sagtar.com -bj-sea.com -bj-shouqi.com -bj-sydc.com -bj-tvart.com -bj-zkhb.com -bj-zywh.com -bj003.com -zzwro.com -bj1000e.com -bj148.org -bj159zx.com -bj1777.com -bj315.org -bj51.org -bj5188.com -bj520.com -bj597.com -bj65z.com -bj96007.com -bjadn.net -bjatv.com -bjbaodao.net -bjbeifangjx.com -bjbtfu.com -bjbus.com -bjbxg8.com -bjbywx.com -bjbzc.com -bjbzszxy.com -bjcae.com -bjcancer.org -bjcankao.com -bjcathay.com -bjcdc.org -bjcec.com -bjceis.com -bjcgtrain.com -bjckkj.com -bjcls.net -bjcma.com -bjcoco.com -bjcomic.net -bjcshy.com -bjcsyg.com -bjcta.net -bjcxdf.com -bjcycg.com -bjcyzg.com -bjdcfy.com -bjdfxj.com -bjdiaoyu.com -bjdjc.com -bjdllti.com -bjdongxin.com -bjdsppa.com -bjeasycom.com -bjewaytek.com -bjexmail.com -bjexx.com -bjffdz.com -bjffkj.com -bjfsali.com -bjfwbz.org -bjfyw.org -bjgas.com -bjggk.com -bjglxf.com -bjglxt.com -bjgongteng.com -bjgujibaohu.com -bjgwy.org -bjhaiguang.com -bjhdnet.com -bjhee.com -bjhengjia.net -bjhj10000.com -bjhmcm.com -bjhmxx.net -bjhouse.com -bjhrkc.com -bjhscx.com -bjhsyuntai.com -bjhszp.com -bjhtzsgs.com -bjhwbr.com -bjhzkq.com -bjiab.com -bjicpark.com -bjidc.net -bjidit.com -bjinfobank.com -bjipwqzx.com -bjiwex.com -bjjchf.com -bjjdwx.com -bjjf.cc -bjjfsd.com -bjjihui.com -bjjiubo.com -bjjizhun.com -bjjkglxh.org -bjjnzf.com -bjjqzyy.com -bjjtat.com -bjjubao.org -bjjzsc.com -bjjzzpt.com -bjk30.com -bjkaihua.com -bjkaihua.net -bjkhzx.com -bjkqj.com -bjkrtwl.com -bjktwe.com -bjl777.com -bjlanqiao.com -bjlcs-tech.com -bjlevsoft.com -bjlkhd.net -bjllsy.com -bjlmfq.com -bjlongview.com -bjlot.com -bjlyw.com -bjmailqq.com -bjmama.com -bjmama.net -bjmantis.net -bjmcdh.com -bjmeikao.com -bjmjm.com -bjmslp.com -bjmti.com -bjnaxl.com -bjnsr.com -bjp321.com -bjpag.com -bjpowernode.com -bjqcjdcj.com -bjqh.org -bjqhgjj.com -bjqichezl.com -bjqingyang.com -bjqyjjlb.com -bjrc.com -bjrcb.com -bjrdhx.com -bjretech.com -bjreview.com -bjrhxp.com -bjrjgj.com -bjrmysjy.com -bjrqgd.com -bjrtcdn.com -bjrun.com -bjry.com -bjsantakups.com -bjsasc.com -bjsbnet.com -bjscfl.com -bjscp.com -bjscszh.com -bjsctx.com -bjsdfz.com -bjsdr.org -bjsfrj.com -bjsheng.com -bjshijin188.com -bjsidao.com -bjsjob.com -bjsjwl.com -bjsjxtm.com -bjsly.com -bjsoho.com -bjsound.com -bjsoyo.com -bjspw.com -bjsryc.com -bjsskdn.com -bjsubway.cc -bjsubway.com -bjsuewin.com -bjswds.org -bjsxt.com -bjsyqw.com -bjszhd.net -bjtcf.com -bjtelecom.net -bjtitle.com -bjtjw.net -bjtjzx.com -bjtlky888.com -bjtobacco.com -bjtonghui.com -bjtopli.com -bjtth.org -bjttsf.com -bjtvnews.com -bjtyzh.org -bjunionstar.net -bjuri.com -bjweizhifu.com -bjwfz.com -bjwhds.com -bjwkzl.com -bjwsxx.com -bjwwhc.com -bjwyseo.com -bjxcloud.com -bjxf315.com -bjximei.com -bjxinku.com -bjxinyou.com -bjxjyy666.com -bjxwx.com -bjxx.vip -bjxx8.com -bjxydh.com -bjyah.com -bjyczb.com -bjydzy.com -bjyestar.com -bjyhwy.com -bjyingyun.com -bjyixiaojian.com -bjyouth.net -bjyqsj.com -bjythd.com -bjyunyu.com -bjywt.com -bjzaxy.com -bjzbkj.com -bjzcha.com -bjzcth.com -bjzg.org -bjzghd.com -bjzhishi.com -bjzhongyi.com -bjzjgyl.com -bjzkhs.com -bjzklp.com -bjzmkm.com -bjzmqj.com -bjznnt.com -bjzph.com -bjzqw.com -bjzs114.com -bjzunlaotang.com -bjzwzx.com -bjzxcp.com -bjzyrxgs.com -bk-cdn.com -bk41.net -bk5u.com -bkapigw.com -bkapps.com -bkbyxa.com -bkclouds.cc -bkdou.com -bkill.net -bkjk-inc.com -bkjk.com -bkjpress.com -bkn.cc -bkpcn.com -bkqq.com -bkt123.com -bktencent.com -bkweek.com -bkwgf.com -bkxs.net -bkzzy.com -bl.com -bl0757.com -bla01.com -black-unique.com -blackbirdsport.com -blackdir.com -blackdragon.com -blackeep.com -blackh4t.org -blackshark.com -blackshow.me -blackswancake.com -blackxl.org -blackyau.cc -blackzs.com -bladewan.com -blakat.cc -blazefire.com -blazefire.net -blazingcats.com -blbx.com -blctwed.com -bldimg.com -bldz.com -bleege.com -blemall.com -blendercn.org -blenderget.com -blessedbin.com -bliao.com -blibao.com -blibee.com -blibee.net -blicube.com -blimage.com -bliner.me -bling.link -blingabc.com -blingclubs.com -blissmall.net -blizzardcn.com -blizztc.com -bljiancai.com -bln7.com -bln8.com -blockchain.hk -blockchain123.com -blockchainbrother.com -blockchainlabs.org -blockmeta.com -blockob.com -blocrepresents.com -zzwqqx.com -zzwljc.com -zzwhtg.com -blog007.com -blog120.com -blog1984.com -blogbus.com -blogchina.com -blogchinese.com -blogcn.co -blogdriver.com -blogfeng.com -bloggern.com -blogjava.net -bloglegal.com -blogqun.com -blogturn.com -blogways.net -blogxuan.com -bloomgamer.com -bloves.com -blowing-mould.com -blpack.com -blqx.com -blqy.com -blskye.com -blszhifa.com -blue-city.com -blue-zero.com -blueaggrestore.com -bluearchive-cn.com -bluebeebox.com -bluecatyun.com -bluecefa.com -bluecloudprod.com -blued.com -bluedon.com -bluefite.com -bluefocus.com -blueglass.vip -bluegq.com -bluehao.com -bluehn.com -blueidea.com -bluek.org -bluelettercn.org -bluelightfuse.com -bluelive.me -blueplus.cc -bluepoch.com -bluesdream.com -bluesharkinfo.com -blueshow.net -blueskykong.com -blueskyschool.net -blueskystudy.com -blueskyxn.com -blueslc.tech -bluesoleil.com -bluestar-pc.com -bluestep.cc -blw.moe -blyun.com -bm001.com -bm777777.com -bm8.tv -bm8885.com -bm999999.com -bmatch.tech -bmc-medical.com -bmcx.com -bmdbr.com -bmdxcx.com -bmeol.com -bmfsm.com -bmijs.com -bmlink.com -bmob.site -bmobapp.com -bmobcloud.com -bmobpay.com -bmp.ovh -bmpj.net -bmqy.net -bmrtech.com -bms16.com -bmshow.com -bmtcled.com -bmvps.com -bmw8033.com -bmyy.work -bnacg.com -bnbcamp.com -bnbtrip.com -bnc66.com -bnchina.com -bncwork.com -bnhgsb.com -bnhshiguan.com -bnjyks.com -bnncn.com -bnnd.net -bnqgsl.com -bnupg.com -bnwin.com -bnxb.com -bnzt88.com -bo-blog.com -bo-yi.com -bo56.com -boai.com -boanying.com -bob-cardif.com -bob-leasing.com -bob.com -bob4885.com -bobaow.com -bobbns.com -bobbystable.com -bobcfc.com -bobcoder.cc -bobdirectbank.com -bobidc.com -boblog.com -bobo.com -bobopic.com -bobopos.com -bobouny.com -bobtranslate.com -bocai.life -bocamchina.com -bocaviation.com -boccfc.cc -boce.com -bocep2c.com -bocfullertonbank.com -bocgi.com -bocgins.com -bochk.com -bocichina.com -bocifunds.com -bocigroup.com -bocim.com -bocomcc.com -bocommleasing.com -bocommlife.com -bocommtrust.com -bocsolution.com -bodahu.com -bodchan.com -bodimedia.net -bodoai.com -bodogqm.com -bodu.com -boduhappiness.com -boe.com -boendejc.com -bof98.com -bofangw.com -bofengkj.com -bofyou.com -bog.ac -bogokj.com -bohailife.net -bohaishibei.com -bohaiyun.com -bohe.com -bohejiasuqi.com -bohuihe.com -bohuitalent.com -bohutmt.com -boincdn.live -boiots.com -bojianger.com -bojoy.net -bojun-import.com -bojuwang.com -bokanghui.net -bokao2o.com -boke.com -boke112.com -boke8.net -bokeboke.net -bokecc.com -bokecs.net -bokee.com -bokee.net -bokeren.cc -bokesoft.com -bokesoftware.com -bokeyz.com -bokhra.com -bolaa.com -bolan.net -bolaninfo.com -bolanjr.com -boldseas.com -bolead.com -bolehu.net -boleihg.com -bolejiang.com -bolelink.com -bolepeixun.com -bolexiaozhao.com -boling04.com -bolink.club -bolo.me -bolopp.com -bolq.com -boluo.link -boluo.org -boluogouwu.com -boluomee.com -boluomeet.com -boluoyun.com -boluoyunyu.com -bom.ai -bom2buy.com -bomanair.com -bombox.org -bomeeting.net -bomin-china.com -bomman.com -bon-top.com -bon-wine.com -bonbonbongame.com -bondlady.com -bonepuppy.com -bongmi.com -bongv.com -bongwell.com -bonkee.net -bonnelivre.com -bonree.com -bonsj.com -bonwai.com -boobooke.com -booea.com -booeoo.com -boohee.com -book118.com -book1234.com -book1993.com -bookask.com -bookdao.com -bookdown.net -bookersea.com -bookfeel.com -booking001.com -bookinlife.net -books51.com -bookschina.com -bookshadow.com -bookshoptw.com -bookshuku.com -booksky.cc -booksn.com -booktxt.com -booktxt.net -bookuu.com -bookxnote.com -bookzx.org -boolan.com -boolaw.com -boole-tech.com -boolean93.com -boolv.com -boomsense.com -boooba.com -boosj.com -boostintensity.com -boosyi.com -bootcdn.net -bootcss.com -bootstrapmb.com -booyu-import.com -booz88.com -bopian.com -boqii.com -boqiicdn.com -boquxinxi.com -borderlessbd.com -borlonclan.com -borninsummer.com -bornlead.com -borpor.com -borscon.com -boruiqin.com -boruishijie.com -boruisx.com -boryou.com -bos.xin -bosdsoft.com -boseclub.com -bosen-fuji.com -bosenrui.com -bosera.com -zzwenxue.com -boshi.tv -boshika.com -boshixitong.com -boshiyl.com -boshungame.com -bosideng.com -bosideng.me -bosideng.net -bosigame.com -bosondata.net -bosonnlp.com -boss-young.com -bosscdn.com -bossgoo.com -bosshr.com -bosszhipin.com -bosunman.com -botaoo.com -botnet.cc -botocard.com -botongr.com -botorange.com -botsfy.com -botslab.com -bouffalolab.com -boweifeng.com -bowerp.com -bowuzhi.fm -boxgu.com -boxopened.com -boxuegu.com -boxueio.com -boxui.com -boxz.com -boy-toy.net -boy1904.com -boyaa.com -boyaceo.com -boyais.com -boyamicro.com -boyasoftware.com -boyaxun.com -boydwang.com -boyicn.com -boyingsj.com -boyoucy.com -boyue.com -boyunso.com -boyuonline.com -bozhihua.com -bozhong.com -bpfqmg7.xyz -bpimg.com -bppan.com -bpqwxsh.com -bpsemi.com -bpteach.com -bpxxfw.com -bq04.com -bq233.com -bqatj.com -bqfy.com -bqg8.cc -bqg8.la -bqg99.cc -bqgnovels.com -bqgyy.com -bqimg.com -bqpoint.com -bqq8.com -bqrdh.com -bqteng.com -bragood.com -brand4x4.com -brandcn.com -brandpano.com -brandvista.com -brbtyt.com -breadtrip.com -brentron.com -brg0.com -bricktou.com -bridge-image.com -bridgee.net -brighost.com -brightdairy.com -brightfood.com -brire.com -britesemi.com -brlinked.com -brmyx.com -broad-ocean.com -broadon.net -broadskytech.com -bronzesoft.com -brother-cn.net -brother-movie.com -zzwanshou.com -browurl.com -brsiee.com -brtbeacon.com -brtbeacon.net -bruceit.com -brunoxu.com -bryonypie.com -brzhang.club -bs-dolfin.net -bs008.com -bsaxt.com -bsbchina.com -bsbydd.com -bsccdn.com -bsccdn.net -bscdnd.com -bscdns.com -bscea.org -bscedge.com -bscstorage.com -bscstorage.net -bsd4fz.com -bsdgco.com -bsdt1688.com -bsgcnc.com -bsgslb.com -bsh-tech.com -bsh.com -bshare.com -bsida.com -bsidu.com -bsjhhzs.com -bskrt.com -bskuav.com -bsmz.net -bspapp.com -bsrczpw.com -bsrkt.com -bssrvdns.com -bstatics.com -bsteel.net -bstinfo.com -bstjiaoyu.com -bstzcs.com -bsurl.cc -bswtan.com -bsybx.com -bsyjrb.com -bsyxx.com -bt6.club -bt66.tv -bt9527.com -btb8.com -btba.cc -btbat.com -btbctex.com -btbdys.com -btbt.tv -btbtt9527.com -btc114.com -btc116.com -btc123.com -btc17.com -btc789.com -btcbbs.com -btcbd.com -btcbl.com -btcfans.com -btcha.com -btclass.net -btcside.com -btcsos.com -btcwatch.com -btcxue.com -btdad.live -btdad17.xyz -btdog.com -btgame.com -btgame01.com -btgang.com -btgtravel.com -bthhotels.com -bthlt.com -bthuifu.com -btime.com -btmayi.cc -btmeiju.com -btnotes.com -btoo3.com -btophr.com -btorange.com -btpig.com -btplay.net -btqsam.com -btrcsc.com -btschool.net -btsemi.com -btshidai.com -btsmth.com -btsmth.org -btspreads.com -btsteel.com -btten.com -bttiantang.cc -bttiantang.com -bttimg.com -btv.org -btvcd.net -btwob.net -btwuji.com -btxl8.com -btydjxc.com -btyou.com -btzhcc.com -buaaer.com -bubalusplus.com -bubugao.com -bubuko.com -bubukua.com -bubuol.com -bubuzheng.com -bucg.com -buckydrop.com -bucuo100.com -budao.com -budao24.com -budhano.com -buding.tv -buding3.com -budingmore.com -budou.com -buduanwang.vip -buduobaobao.com -bueryx.com -buffst.com -bugku.com -bugnull.com -bugscan.net -bugscaner.com -bugtags.com -buguangdeng.com -bugucn.com -bugukj.com -bugumanhua.com -bugutime.com -bugxia.com -buhuixiao.com -buhuyo.com -build-decor.com -build9s.io -buildface.com -buildhr.com -buildjob.net -buildwaterexpo.com -buimg.com -bujie.com -bukamanhua.com -bukamh.com -bukeyi.net -bulaisi.com -bulaoge.net -bulejie.com -bullcome.com -buluanmai.com -buluo007.com -bumimi.com -bumiu.com -bundpic.com -bunfly.com -bungba.com -bunze.com -buread.com -burgud.com -burl.cc -burnelltek.com -burongyi.com -bus365.com -bus84.com -busbaoche.com -bushangban.com -bushen365.com -businessconnectchina.com -businessreviewglobal-cdn.com -busionline.com -busiphi.com -busituzi.com -busnc.com -but7.com -butair.com -butongshe.com -butonly.com -butterapis.com -buxia.net -buxiugangban.net -buyanshufa.com -buyaocha.com -buycarcn.com -buychuan.com -buycoor.com -buyfine.net -buyhot.vip -buyigang.com -buyiju.com -buyjk.com -buykee.com -buylabel.com -buysun.net -buysweet.com -buyu1314.com -buzhi5.com -buzhibushi.com -buzzads.com -buzzfortoday.com -buzzinate.com -bvfcdn.com -bvgv.com -bvimg.com -bvseo.com -bvttsg.com -bw1006.com -bw30yun.com -bw36jnxjfna.com -bw40.net -bw8848.com -bwae.org -bwangel.me -bwbot.org -bwchinese.com -bwda.net -bwfapiao.com -bwfhmall.com -bwgrt.com -bwhero.com -bwhgsb.com -bwie.net -bwjf.com -bwlc.net -bwmelon.com -bwpx.com -bwsm.org -bwsoft.net -bwton.com -bwv8.com -bwxsj.com -bx1k.com -bx24k.com -bx58.com -bxb2b.com -bxcc.vip -bxcqd.com -bxdaka.com -bxdlkj.com -bxemln.com -bxfaka.com -bxgdl.com -bxgdunhua.com -bxgtd.com -bxhaibao.com -bxiangui.com -bxjob.net -bxkejian.com -bxkxw.com -bxlac.com -bxnjmj.com -bxpedia.com -bxr.im -bxrfund.com -bxsnews.com -bxv8.com -bxwst.com -bxwx.la -bxwx.tv -bxwx520.com -bxxy.com -bxyuer.com -bxzhiku.com -bxzxw.com -by-health.com -by56.com -by6.app -by6sx.com -byai.com -bybieyang.com -bybutter.com -bybzj.com -byc168.com -bycmw.com -byd.com -bydit.com -bydowstar.com -byete.com -byf.com -byfcw.com -byfen.com -byfunds.com -byfzxy.com -bygamesdk.com -bygw.net -byhard.com -byhlds.com -byhlds.net -byhua.com -byi.pw -byjdxy.com -byjgxy.com -byjsjxy.com -byjzxy.com -bykjad.com -bykszb.com -bylwcc.com -bylwjc.com -bymz.net -bynmc.com -bynsyh.com -byodonline.com -bypanghu.xyz -byprxy.com -byqcxy.com -byr-navi.com -byr.cc -byr.wiki -bysb.net -byshr.com -bysocket.com -bystack.com -bysxfz.com -bytapp.com -byte-gslb.com -byte.online -byte008.com -byteacctimg.com -byteactivity.com -byteactivity12.com -byteadverts.com -bytecdn.com -bytecdntp.com -byted-static.com -byted-ug.com -byted.org -bytedance.com -bytedance.net -bytedanceapi.com -bytedapm.com -bytedns.com -bytedns.net -bytedns1.com -bytednsdoc.com -byteedu.com -byteeffecttos.com -bytefae.com -bytefcdn.com -bytefcdnrd.com -bytegecko.com -bytegeckoext.com -bytegoofy.com -bytegslb.com -bytehwm.com -byteimg.com -byteintl.net -byteisland.com -bytelb.net -bytemaimg.com -bytemastatic.com -bytenew.com -byteoc.com -byteorg.com -byteorge.com -byteox.com -bytescm.com -bytesfield.com -bytesmanager.com -bytestacks.com -bytetcc.com -bytetos.com -bytewars.cc -bytexns.com -bytexservice.com -byts.com -bytter.com -byxx.com -byxy.com -byyapp.com -byzhihuo.com -byzlp.com -byzoro.com -byzp.com -bz-e.com -bz55.com -bzcm.net -bzcw8.com -bzd6688.com -bzddrive.com -bzfwq.com -bzfxw.com -bzgd.com -bzgwl.com -bzjw.com -bzkad.com -bzko.com -bzmfxz.com -bzname.com -bznx.net -bzonl.com -bzrb.net -bzshw.com -bzsoso.com -bzw315.com -bzxinganghulan.com -bzxinwen.com -bzxtkj.com -bzxz.net -bzxzk.net -bzzfq5.com -c-119.com -c-3.moe -c-canyin.com -c-cnc.com -c-cpp.com -c-ctrip.com -c-estbon.com -c-fol.net -c-lodop.com -c-nin.com -c-ps.net -c-rst.com -c-sz.com -c-t.work -c-yl.com -c.team -c1042.com -c1ass.com -c1channel.com -c1s.com -c2h4.org -c31.fun -c360dn.com -c3acg.com -c3crm.com -c3x.me -c4008.com -c400c.cc -c4d.live -c4datc.com -c4dcn.com -c4dpro.com -c4dsky.com -c4hcdn.com -c4ys.com -c4yx.com -c50forum.com -c55902.com -c571.com -c5game.com -c6c.com -c6n708.ren -c7575tp.com -c75uw72.com -c77c.com -c7c8.com -c7cc.com -c7w.tech -c833.com -c9018.com -c969.com -c9cc.com -ca-sme.org -ca001.com -ca002.com -ca003.com -ca168.com -ca39.com -ca800.com -caaa-spacechina.com -caaad.com -caacbook.com -caacsri.com -caah-kqem.com -caaladi.com -caanb.com -caasbuy.com -caasse.com -caayee.com -cabbagebox.com -cabbagelol.net -cabbeen.com -cabee.org -cabhr.com -cabinetbuy.com -cableabc.com -cabletiegun.com -cabling-system.com -cablingteam.com -cabplink.com -cacfo.com -cachedataby.com -cachekit.com -cackui.com -cacpp.com -cacre.org -cactifans.com -cactifans.org -cactmc.com -cad1688.com -cad8.net -cada.cc -cadforex.com -cadict.net -cadmon.net -cadreg.com -cadzhuan.com -cadzj.com -cadzxw.com -caecc.com -caexpo.com -caexpo.org -cafachine.com -cafagame.com -cafamuseum.org -cafebeta.com -cafemachico.com -caffci.org -caffeenglish.com -cagetest.com -cageystone.com -cagoe.com -cahkms.org -cahuo.com -cai8.net -caian.net -caibaojian.com -caibaopay.com -caibeike.com -caibowen.net -caichongwang.com -caicui.com -caidan2.com -caidao1.com -caidao8.com -caidaocloud.com -caidaoli.com -caidian.com -caidianqu.com -caiens.com -caifu.com -caifuxingketang.com -caifuzhongwen.com -caigaowang.com -caigou2003.com -caigoubao.cc -caigoushichang.com -caiguayun.com -caihang.com -caihcom.com -caihezi.com -caihong5g.com -caihongbashi.net -caihongqi.com -caihongtang.com -caihongto.com -caihongx.com -caihuaw.com -caij100.com -caijing365.com -caijingcaipiao22270.com -caijingche.com -caijingmobile.com -caijingnews.net -caijingwa.com -caijingwu.com -caijinyuan.com -caijuanjuan.com -caike.com -caiku.com -caikuai91.com -cailele.com -cailianpress.com -cailiao.com -cailiaoniu.com -cailiaoren.com -cailutong.com -caimai.cc -caimei365.com -caimitech.com -caimogu.cc -caimogu.net -caimomo.com -cainachina.com -caing.com -cainiao-inc.com -cainiao.com -cainiaobaoka.com -cainiaojc.com -cainiaojiaocheng.com -cainiaoxueyuan.com -cainongnet.com -caipiaogu.com -caipintu.com -caipopo.com -caipucaipu.com -caipucn.com -caiqiuba.com -cairongquan.com -cairot.com -caisan.io -caishen66.com -caishenpo.com -caishenwang.online -caistv.com -cait.com -caitaimg1.com -caitatd2.com -caitazx2.com -caitun.com -caiu8.com -caiweiming.com -caiwu51.com -caiwuchina.com -caixin.com -caixinfoundation.org -caixun.com -caiyicloud.com -caiyu.com -caiyun.com -caiyunai.com -caiyunapp.com -caiyuncdn.com -caiyunyi.com -caizhaowang.com -caizhihr.com -caj11.com -cake400.com -cake6.com -calawei.com -calb-tech.com -calculusdata.com -caldigit.net -cali-light.com -calibur.tv -callda.com -callmysoft.com -caloinfo.com -calorietech.com -calt.com -calterah.com -calvinneo.com -cambm.com -cambodiafang.com -cambricon.com -camcap.us -camcard.com -came-online.org -camelsee.com -camera360.com -camgle.com -camnpr.com -camoryapps.com -campanilechina.com -campus-app.net -campuschina.org -campushoy.com -campusphere.net -campusplus.com -campusroom.com -camscanner.com -can-dao.com -can.tv -cana.space -canaan-creative.com -canasy.com -cancda.net -cancer361.com -candou.com -candylab.net -candypay.com -candystars.net -canevent.com -canfire.net -cang.com -cangdu.org -cangfengzhe.com -cangjiaohui.com -cangnews.com -cangowin.com -cangpie.com -cangqiongkanshu.com -cangshui.net -cangshutun.com -cangya.com -canhighcenter.com -canhot.net -caniculab.com -canidc.com -cankao100.com -cankaoshouce.com -cankaowang.com -cankaoxiaoxi.com -canmounet.com -canpdu.com -canpoint.net -canrike.com -cansee.net -cansine.com -cantoge.com -canway.net -canwayit.com -canwaysoft.com -canxingmedia.com -canyidian.com -canyin.cc -canyin.com -canyin168.com -canyin2017.com -canyin375.com -canyin88.com -canyincha.com -canyincy.com -canyinzixun.com -canyon-model.com -canyouchina.com -canyuanzs.com -caobao.com -caogen.com -caogenb2b.com -caogenban.com -caohaifeng.com -caohejing.com -caohejing.org -caohua.com -caomeishuma.com -caomeixz10.xyz -caoniang.com -caotama.com -caoxianfc.com -caoxie.com -caoxile.com -caoxiu.net -caoxudong.info -caoyudong.com -capillarytech-cn.com -capitalcloud.net -capitalonline.net -capjoy.com -caplanking.com -capsuleshanghai.com -capvision.com -capwhale.com -car0575.com -car2100.com -car2sharechina.com -car388.com -carben.me -carbonscn.com -carcav.com -carcdn.com -cardbaobao.com -cardcmb.com -cardcn.com -cardinfolink.com -cardniu.com -cardniudai.com -cardqu.com -care110.com -careerchina.com -careerqihang.com -careersky.org -careuc.com -cargeer.com -cargo001.com -cargosmart.com -carimg.com -carking001.com -carltonyu.com -carmov.com -carnegiebj.com -carnoc.com -carodpiano.com -carp56.com -carrobot.com -carrotchou.blog -carrotchou.com -carry6.com -cartoonwin.com -carutoo.com -carxoo.com -carzd.com -carzyuncle.com -cas01.com -casarte.com -casboc.com -casctcp.com -casdoor.org -case91.com -casece.org -cashtoutiao.com -cashwaytech.com -casic-addsino.com -casic-t.com -casic.com -casic304.com -casic3s.com -casicloud.com -casicyber.com -caslease.com -casnb.com -casql.com -casqy.com -casszzy.com -castbd.com -castelu.com -casvino.com -casvm.com -casystar.com -cat898.com -catdggga.com -catering-shizuoka.com -catfish-cms.com -catguo.com -cathayagroup.com -catjc.com -cato-travel.com -cattsoft.com -cature.com -catv.net -caua99.com -caup.net -cauvet.com -cav-ad.com -cavca.org -cawae.net -caxa.com -cazpw.com -cbalx.com -cbca.net -cbcie.com -cbd263.com -cbdcn.com -cbdio.com -cbdjrsh.org -cbe21.com -cbea.com -cbec365.com -cbes21.com -cbevent.com -cbex.com -cbfau.com -cbgcloud.com -cbi360.net -cbice.com -cbiec.com -cbiec.net -cbismb.com -cbj1998.com -cbjuice.com -cbjzw.org -cbmay.com -cbmf.org -cbminfo.com -cbmwz.net -cbn.me -cbndata.com -cbndata.org -cbnmall.com -cbnri.org -cbnweek.com -cboad.com -cbsrc.com -cbtimer.com -cburi.com -cbvac.com -cbw111.com -cby.me -cc-glass.com -cc-pharming.com -cc.co -cc0808.com -cc11bh.com -cc55k.com -cc667788cc.com -cc7m.com -cc8.cc -ccabchina.com -ccai.cc -ccapbook.com -ccapedu.com -ccartd.com -ccarting.com -ccasy.com -ccb.com -ccbcos.com -ccbft.com -ccbfund.com -ccbfutures.com -zzw2zzw.com -ccbleasing.com -ccbookfair.com -ccbpension.com -ccbride.com -ccbseoul.com -ccbwfs.com -ccbxt.com -cccbs.net -cccdun.com -cccf-cloud.com -ccchz.com -cccitu.com -cccity.cc -cccm-em120.com -cccmat.com -cccnec.com -cccollector.com -cccovvv.com -cccp.online -cccpan.com -cccsql.com -ccctspm.org -cccwww.com -cccyun.cc -ccd86.com -ccdby.com -ccdol.com -ccea.pro -cceato.com -ccedisp.com -ccedpw.com -ccee.com -cceea.net -ccement.com -ccen.net -ccepc.com -cces2006.org -ccets.com -ccfei.com -ccflow.org -ccgaa.com -ccgfie.com -ccgslb.com -ccgslb.net -cchccc.com -cchezhan.com -cchfound.org -cchicc.com -cchorse.com -cchorse.net -cciatv.com -ccic.com -ccic2.com -cciccloud.com -ccice.com -ccichn.com -ccidcom.com -ccidconsulting.com -cciddata.com -cciddesign.com -ccidedu.com -ccidexpo.com -ccidgroup.com -ccidnet.com -ccidreport.com -ccidsmart.com -ccidthinktank.com -ccidwise.com -ccieh3c.com -ccigchina.com -ccihr.com -ccimz.com -ccipp.org -ccita.net -ccitimes.com -cciup.com -ccjkwjjedu.com -ccjoy.com -ccjoyland.com -ccjt.net -ccjzzj.com -cclcn.com -cclexpo.com -cclimg.com -cclinux.org -cclndx.com -cclolcc.com -cclqme.xyz -cclycs.com -cclyun.com -ccm-1.com -ccm99.com -ccmama.com -zzvips.com -zztyscl.com -ccme.cc -ccmfcm.com -ccmodel.com -ccmodel.net -ccmw.net -ccn360.com -ccnee.com -ccnew.com -ccnovel.com -ccnpic.com -ccnt.com -ccoalnews.com -ccoco.vip -ccoi.ren -ccops.net -ccopyright.com -ccpc360.com -ccpgssd.com -ccpit-academy.org -ccpit-ah.com -ccpit-henan.org -ccpit-sichuan.org -ccpit-sx.org -ccpit-tga.org -ccpit.org -ccpitbingtuan.org -ccpitbj.org -ccpitbm.org -ccpitbuild.org -ccpitcq.org -ccpitecc.com -ccpitfujian.org -ccpitgs.org -ccpitgx.org -ccpithebei.com -ccpithn.org -ccpithrb.org -ccpitjinan.org -ccpitjs.org -ccpitlight.org -ccpitln.org -ccpitnb.org -ccpitqd.org -ccpitsd.com -ccpittex.com -ccpittj.org -ccpitxiamen.org -ccpitxian.org -ccplay.cc -ccpnt.org -ccprec.com -ccproxy.com -ccqtgb.com -ccqyj.com -ccrgt.com -ccrjw.com -ccschy.com -ccshenghuo.com -ccsph.com -ccssmm.com -cct08.com -cct365.net -cctalk.com -cctalk.net -cctaw.com -cctb.net -cctbn.com -cctc.cc -cctcce.com -cctcct.com -cctiedu.com -cctime.com -cction.com -cctlife.com -cctocloud.com -cctpress.com -cctry.com -cctv-19.com -cctv-22.com -cctv-star.com -cctv.com -cctv18.com -cctv1zhibo.com -cctv4g.com -cctvcdn.net -cctvcj.com -cctvctpc.com -cctvdyt.com -cctvfinance.com -cctvmall.com -cctvpic.com -cctvsdyxl.com -cctvse.net -cctvweishi.com -cctvxf.com -cctvyscj.com -cctw.cc -cctzz.net -ccutchi.com -ccutu.com -ccv160.com -ccv168.com -ccview.net -ccwcw.com -ccwcyw.com -ccwonline.com -ccwonline.net -ccwow.cc -ccwqtv.com -ccxcn.com -ccxcredit.com -ccxinyuedu.com -ccxiyuecare.com -ccxjd.com -ccyjjd.com -ccyts.com -ccyunmai.com -cczq.com -cczq.net -cd-cxh.com -cd-kc.com -cd-sd.com -cd-zc.com -cd120.com -cd23f.com -cd37wan.com -cd6.com -cdabon.com -cdadata.com -cdadsj.com -cdairport.com -cdajcx.com -cdaten.com -cdbdsec.com -cdbsdyk.com -cdbsfund.com -cdbybo.com -cdccpit.org -cdcd.plus -cdcet.com -cdcgames.net -cdchuandong.com -cdcoslm.com -cdcyts.com -cdcz.net -cddgg.com -cddgg.net -cddscj.com -cddsgk.com -cde-os.com -cdedu.com -cdeledu.com -cdfanmu.com -cdfcn.com -cdfgsanya.com -cdfhnms.com -cdfinger.com -cdfmembers.com -cdfortis.com -cdfsunrise.com -cdfytx.com -cdgdad.com -cdggzy.com -cdgjbus.com -cdgmgd.com -cdgtw.net -cdgxfz.com -cdh3c.com -cdhaiguang.com -cdhfund.com -cdhr.net -cdhtnews.com -cdidc.net -cditv.tv -cdjingfeng.com -cdjingying.com -cdjnrc.com -cdjsjx.com -cdjxjy.com -cdjzso.com -cdjzw.com -cdjzwykj.com -cdjzx120.com -cdjzzg.com -cdkf.com -cdlaobing.com -cdlbyl.com -cdlgame.com -cdlinux.net -cdlsym.com -cdlxqn.com -cdmcaac.com -cdmfund.org -cdmm.net -cdmoz.org -cdn-cdn.net -cdn-dodo.com -cdn-files.net -cdn-gw-dv.net -cdn-hotels.com -cdn-speed.com -zztxkj.com -cdn-uc.cc -cdn-v.com -cdn.fun -zztline.com -zzt9.com -zzstep.com -zzsteel.com -cdn08.com -cdn1218.com -cdn16.com -cdn20.com -cdn20.info -cdn20.org -cdn2000.com -cdn2020.com -cdn30.com -cdn30.org -cdn3344.com -cdn35.com -cdn56.com -cdn86.net -cdn88.cc -cdnaaa.net -cdnbuild.net -cdnbye.com -cdncache.net -cdncdncdn.com -cdncenter.com -cdnchushou.com -cdncl.net -cdncloud.org -cdnclouds.net -cdnczydwl.com -cdndd.net -cdndm.com -cdndm5.com -cdndm5.net -cdndo.com -cdndoctor.com -cdndu.com -cdnet110.com -cdnetdns.net -cdnetworks.com -cdnff.com -cdngogo2.cc -cdngot.com -cdngslb.com -cdngslb8.com -cdngtm.com -cdnhwc1.com -cdnhwc2.com -cdnhwc3.com -cdnhwc5.com -cdnhwc6.com -cdnhwc8.com -cdnhwcajk17.com -cdnhwcatq08.com -cdnhwcbni108.com -cdnhwcbqs106.com -cdnhwcbzj102.com -cdnhwcchh18.com -cdnhwccmz121.com -cdnhwcead111.com -cdnhwcedi10.com -cdnhwcedt124.com -cdnhwcggk22.com -cdnhwcgnc118.com -cdnhwcgqa21.com -cdnhwchcg02.com -cdnhwcibv122.com -cdnhwcick110.com -cdnhwcjlg112.com -cdnhwcjog12.com -cdnhwcjsb120.com -cdnhwckfz116.com -cdnhwckon103.com -cdnhwcljk104.com -cdnhwcllh11.com -cdnhwclxu105.com -cdnhwclxw05.com -cdnhwcoem01.com -cdnhwcohm19.com -cdnhwcoph123.com -cdnhwcprh113.com -cdnhwcpsd13.com -cdnhwcqgw115.com -cdnhwcqir15.com -cdnhwcqve117.com -cdnhwcqwg14.com -cdnhwctnm107.com -cdnhwctxz24.com -cdnhwcuim119.com -cdnhwcupf06.com -cdnhwcurq03.com -cdnhwcvix16.com -cdnhwcxcy07.com -cdnhwczba04.com -cdnhwczjt20.com -cdnhwczks109.com -cdnhwczmn114.com -cdnhwczth23.com -cdnhwcztu09.com -cdnhwczxh101.com -cdnidc.net -cdnjson.com -cdnjtzy.com -cdnle.com -cdnle.net -cdnmama.com -cdnmaster.com -cdnok.com -cdnpe.com -cdnsvc.com -cdntip.com -cdntips.com -cdntips.net -cdnudns.com -cdnunion.com -cdnvp.com -cdnvpn.net -cdnvue.com -cdnyoyun.com -cdnyt69.com -cdqcnt.com -cdqcp.com -cdqph.com -cdqss.com -cdrbs.net -cdren.com -cdren.net -cdronghai.com -cdrtvu.com -cdruzhu.com -cdsb.com -cdsb.mobi -cdsenfa.com -cdsgsz.com -cdshangceng.com -cdsjjy.com -cdsme.com -cdsns.com -cdsuns.com -cdsxlc.com -cdt-md.com -cdtaishan.com -cdtianda.com -cduncname.com -cduyzh.com -cdvcloud.com -cdvisor.com -cdweikebaba.com -cdworking.com -cdwulian.com -cdxrdz.com -cdxsbdz.com -cdxwcx.com -cdyee.com -cdyestar.com -cdygdq.com -cdyou.net -cdyushun.com -cdyzg.com -cdzdgw.com -cdzdhx.com -cdzgh.com -cdzikao.com -cdzimo.com -cdzixun.net -cdzjryb.com -cdzmn.com -cdzszp.com -cdzvan.com -ce-air.com -ce04.com -ce12366.com -ce2293.com -ceair.com -ceairdutyfree.com -ceairgroup.com -ceaj.org -ceamg.com -cebbank.com -cebcn.com -ceblease.com -cebpubservice.com -cecb2b.com -cecc-cx.com -ceccen.com -cecdc.com -cece-mall.com -cece.com -cece.la -cecesat.com -cechoice.com -cecisp.com -cecloud.com -cecmath.com -cecom.cc -ceconline.com -ceconlinebbs.com -cecport.cc -cecport.com -cectcc.com -cectv.net -cedachina.org -cedarhd.com -cediy.com -cedock.com -ceecu.com -ceeger.com -ceeji.net -ceepsp.com -cef114.com -cefc.co -cehca.com -cehome.com -cehuan.com -cehuashen.com -cehui8.com -cei1958.com -ceiaec.org -ceibs.edu -ceibsonline.com -ceic.com -ceicloud.com -ceiea.com -cekid.com -celebpalace.com -celiang.net -cellixsoft.com -cellmean.com -cells-net.com -cells-net.net -celwk.com -cement365.com -cementren.com -cemyun.com -cenbel.com -cenbohao.com -cencs.com -cengcloud.net -cenray-ic.com -censh.com -centainfo.com -centanet.com -centcc.com -cententcymbals.com -centercmslinks.com -centerm.com -centong.com -centos.bz -centoscn.vip -centralsolomon.com -centricsoftwarechina.com -centrincloud.com -centrixlink.com -century21cn.com -cenvandns.com -cenwor.com -cenwoy.com -cenxilm.com -cenya.com -ceobiao.com -ceoeo.com -ceoim.com -ceook.com -ceotx.com -ceowan.com -ceowww.com -ceoxq.com -cepin.com -ceping.com -ceping365.com -cepmh.com -ceppedu.com -ceprei.com -ceprei.org -cer.net -cerambath.org -ceramicschina.com -cere.cc -cerestools.com -cernet.com -cernet.net -cernet2.net -cersp.com -ces-transaction.com -ceseasons.com -cesfutures.com -ceshanmi.com -ceshi.com -ceshi112.com -ceshigo.com -ceshigu.com -ceshiren.com -cespc.com -cet-46.com -cetc33.com -cetc52.com -cetccloud.com -cetccloud.store -cetcio.com -cetcmotor.com -cetcssi.com -cetgps.com -cethik.com -ceunion.com -ceve-market.org -cevsn.com -cf-china.info -cf-ns.com -cf-ns.net -cf-ns.site -cf-ns.tech -cf.com -cf69.com -cf9q4i.xyz -cfachina.org -cfbond.com -cfc365.com -cfca-c.org -cfcglx.com -cfcpn.com -cfcyb.com -cfd-china.com -cfd163.com -cfda.pub -cfdp.org -cfdtlee.com -cfej.net -cfeks.com -cfgjwl.com -cfhi.com -cfhot.com -cfhpc.org -cfido.com -cfiec.net -cfiecdns.net -cfimg.com -cflm.com -cfm119.com -cfmcc.com -cfmmc.com -cfmoto.com -cfogc.com -cfpsf.com -cfsino.com -cftea.com -cftest7.com -cftest8.com -cfucn.com -cfund108.com -cfwaf.com -cfxydefsyy.com -cfxyfsyy.com -cfxyjy.com -cfzq.com -cg-orz.com -cg-zwdb.com -cg.am -cg009.com -cg98.com -cgabc.xyz -cgadmob.com -cgahz.com -cgangs.com -cgartt.com -cgboo.com -cgcountry.com -cgdeuvip.com -cgdown.com -cgdream.org -cgebook.com -cgejournal.com -cger.com -cgiia.com -cgjoy.com -cgjoy.net -cgke.com -cglnn.com -cglw.com -cgmantou.com -cgmao.com -cgmcc.net -cgmodel.com -cgmol.com -cgnjy.com -cgnmc.com -cgnne.com -cgonet.com -cgown.com -cgpad.com -cgplayer.com -cgplusplus.com -cgptwd.com -cgris.net -cgsec.com -cgsfusion.com -cgsoft.net -cgtblog.com -cgtn.com -cgtsj.com -cgtsj.org -cgtz.com -cguardian.com -cguiw.com -cgvoo.com -cgwang.com -cgwenjian.com -cgwic.com -cgws.com -cgxia.com -cgxm.net -cgylke.com -cgylw.com -cgyou.com -cgyouxi.com -cgyu.com -cgzair.com -cgzy.net -cgzyw.com -ch-auto.com -ch-tools.com -ch-water.com -ch.com -ch028.net -ch12333.com -ch999.com -ch999img.com -cha-tm.com -cha001.com -cha127.com -cha138.com -chabeichong.com -chachaba.com -chachaqu.com -chacheliang.com -chacuo.net -chadianhua.net -chadianshang.com -chadianshang2.com -chadown.com -chaej.com -chafanhou.com -chafei.net -chahua.org -chahuo.com -chaic.com -chaichefang.com -chaicp.com -chaihezi.com -chaijing.com -chaim.in -chaima.com -chaimage.com -chain-store.net -chaincar.com -chaincatcher.com -chaindd.com -chainknow.com -chainnode.com -chainsdir.com -chainsql.net -chaishiguan.com -chaitin.com -chajiandaquan.com -chajie.com -chajn.org -chakahao.com -chakuaizhao.com -chalaili.com -chalangautozone.com -challenge-21c.com -chalwin.com -chamcfae.com -chamei.com -chamiji.com -champconsult.com -chance-ad.com -chandao.net -chandashi.com -changan.biz -changan120.net -changancap.com -changanfunds.com -changansuzuki.com -changantaihe.com -changba-ktv.com -changba.com -changbaapi.com -changbaapp.com -changbaimg.com -changbalive.com -changchun-ccpit.com -changchundaxuehs.com -changdunovel.com -changeol.com -changfon.com -changhe.tech -changhong-network.com -changhong.com -changhongdianzi.com -changhongit.com -changhuapower.com -changjiangdata.com -changjiangtimes.com -changjuyi.com -changker.com -changlipeixun.com -changliuliang.com -changning.net -changpingquzhongxiyijieheyiyuan.com -changpu3d.com -changqingshu.net -changsha-show.com -changshabdc.com -changshang.com -changshe.net -changshiban.com -changtong2800.com -changtounet.com -changtu.com -changwankeji.com -changxie.com -changxingyun.com -changyan.com -changyifan.com -changyin-lab.com -changyonggame.com -changyou.com -changyoyo.com -changyueba.com -changzhinews.com -chanjet.com -chanluntan.com -chanmama.com -channelbeyond.com -channeslcode.com -channingsun.bid -chanpay.com -chanpin100.com -chanpinban.com -chanpindashi.com -chansige.com -chanumber.com -chanway.net -chanwind.com -chanxuehezuo.com -chanyeren.com -chanzhi.org -chanzuimei.com -chao-fan.com -chaoart.com -chaofan.com -chaofanshuma.com -chaofenxiang.vip -chaohuishou.com -chaoji.com -chaojibiaoge.com -chaojifan.com -chaojifangyu.com -chaojihetong.com -chaojituzi.net -chaojixiaobaicai.club -chaojiying.com -chaojiyun.com -chaokaixin.net -chaolady.com -chaolean.com -chaolen.com -chaolongbus.com -chaomi.cc -chaonanrc.com -chaonei.com -chaonengjie.com -chaonenglu.com -chaoren.com -chaoshanren.com -chaoshen.cc -chaoshengboliuliangji.com -chaoskeh.com -chaosw.com -chaov.com -chaowanjoy.com -chaoxibiao.net -chaoxin.com -chaoxing.cc -chaoxing.com -chaoxingv.com -chaoyi996.com -chaoyindj.com -chaoyisy.com -chaoyuesd.com -chaoyuyun.com -chaozhiedu.com -chaozhoudaily.com -chaozhuo.net -chaozuo.com -chapangzhan.com -chapaofan.com -chaping.tv -chappell1811.com -chargerlab.com -chargerlink.com -charmingglobe.com -chartboost-china.com -chashebao.com -chatgpter.com -chatm.com -chatnos.com -chawenti.com -chawo.com -chaxinyu.net -chaxunfapiao.com -chayangge.com -chaye.com -chayeo.com -chayu.com -chayueshebao.com -chayuqing.com -chazhaokan.com -chazhengla.com -chazidian.com -chaziyu.com -chazuo.com -chazuo.net -chazuowang.com -chbcnet.com -chbtc.com -chcedo.com -chcnav.com -chcoin.com -chda.net -chdajob.com -chdelphin.com -chdtv.net -che.com -che0.com -che12.com -che127.com -che168.com -che300.com -che6che5.com -cheaa.com -cheapyou.com -cheari.com -chebaba.com -chebada.com -checar.mobi -checheboke.com -chechong.com -check.cc -checkip.pw -checkoo.com -checkpass.net -checkzeit.com -chediandian.com -cheduo.com -cheerfun.dev -cheerjoy.com -cheersee.com -cheersofa.com -cheerspublishing.com -cheerupmail.com -cheetahfun.com -chefafa.com -chefans.com -chefugao.com -cheguo.com -chehang168.com -chehejia.com -chehui.com -chekb.com -chekucafe.com -chelun.com -chem17.com -chem31.com -chem36.com -chem365.net -chem960.com -chem99.com -chemalink.net -chemao.com -chemayi.com -chembk.com -chemcp.com -chemcyber.com -chemdrug.com -chemicalbook.com -chemm.com -chemmade.com -chemnet.com -chemrc.com -chemsb.com -chemsrc.com -chemyq.com -chen-nuo.com -chenag.com -chenall.net -chenapp.com -chende.net -chenfan.info -cheng-sen.com -cheng.xin -chengadx.com -chengchuanren.com -chengdebank.com -chengdechina.com -chengdu-expat.com -chengdun.com -chengduworldcon.com -chengduzhouming.com -chengezhao.com -chengfeilong.com -chenggongguiji.com -chengguw.com -chengji1859.com -chengjing.com -chengkao365.com -chenglang.net -chenglangyun.com -chenglin.name -chengliwang.com -chenglou.net -chengpeiquan.com -chengrang.com -chengrengaokaobaoming.com -chengshidingxiang.com -chengshiluntan.com -chengshiw.com -chengshu.com -chengsmart.com -chengtu.com -chenguangblog.com -chengwei.com -chengxiangqian.com -chengxinyouxuan.com -chengxuan.com -chengyangyang.com -chengye-capital.com -chengyitex.com -chengyucd.com -chengyuw.com -chengyuwb.com -chengzhongmugu.ltd -chengzhongmugu.vip -chengzijianzhan.cc -chengzijianzhan.com -chengzivr.com -chengzz.com -chenhr.com -chenhui.org -chenii.com -chenjia.me -chenjie.info -chenjiehua.me -chenksoft.com -chenlb.com -chenlianfu.com -chenlinux.com -chenlinzuwu.com -chenmomo.com -chenpeng.info -chenplus.com -chenpot.com -chenruixuan.com -chenshipin.com -chensonglin.net -chensuyang.com -chenty.com -chenwenwl.com -chenxi-sh.com -chenxinghb.com -chenxinwood.com -chenxm.cc -chenxuehu.com -chenxuhou.com -chenxunyun.com -cheny.org -chenyea.com -chenyistyle.com -chenyongjun.vip -chenyou123.com -chenyuan588.com -chenyuanjian.com -chenyudong.com -chenyuemz.com -chenzao.com -chenzhicheng.com -chenzhilong.chat -chenzhongkj.com -chenzhongtech.com -cheonhyeong.com -cheoo.com -cheoz.com -chepin88.com -chepinnet.com -cherimm.com -cherymanuals.com -cheshi-img.com -cheshi.com -cheshi18.com -cheshouye.com -chesthospital.com -chesudi.com -chetuanwang.net -chetuobang.com -chetx.com -chetxia.com -chetxt.com -chevip.com -chewen.com -chexian9.com -chexiang.com -chexiaoliang.net -chexin.cc -chexinju.com -chexiu.com -chexun.com -chexun.net -cheyaoshi.com -cheyian.com -cheyipai.com -cheyishang.com -cheyisou.com -cheynewalk.com -cheyou123.com -cheyun.com -cheyuu.com -chez360.com -chezhanri.com -chezhibao.com -chezhubidu.com -chezhutech.com -chezhuzhinan.com -chezizhu.com -chfsmartad.com -chgcis.com -chgcw.com -chghouse.org -chgjedu.com -chgreenway.com -chhblog.com -chhua.com -chhzm.com -chi2ko.com -chi588.com -chiang.fun -chichou.me -chichuang.com -chidaolian.com -chidaoni.com -chidaoni.net -chidown.com -chidudata.com -chiefmore.com -chieftin.org -chigua2.com -chihaigames.com -chihe.so -chiheba.com -chiji-h5.com -chijianfeng.com -childjia.com -childlib.org -chilli.red -chillyroom.com -chilunyc.com -chiluyingxiao.com -chimaoyoupin.com -chimatong.com -chimelong.com -chimezi.com -china-10.com -china-3.com -china-315.com -china-ah.com -china-asahi.com -china-asm.com -china-audit.com -china-b.com -china-caa.org -china-cas.org -china-cba.net -china-cbn.com -china-cbs.com -china-ccie.com -china-ccw.com -china-cdt.com -china-ceco.com -china-ced.com -china-cfa.org -china-chair.com -china-channel.com -china-chuwei.com -china-cicc.org -china-clearing.com -china-cloud.com -china-co.com -china-coc.org -china-consulate.org -china-core.com -china-cpu.co -china-cpu.com -china-csdz.com -china-csm.org -china-d.com -china-designer.com -china-drm.net -china-dt.com -china-ef.com -china-eia.com -china-embassy.org -china-engine.net -china-entercom.com -china-enterprise.com -china-epa.com -china-erzhong.com -china-fire.com -china-fishery.com -china-flash.com -china-flower.com -china-g.com -china-galaxy-inv.com -china-gehang.com -china-genius.com -china-gold.com -china-goldcard.com -china-highway.com -china-holiday.com -china-hongfei.com -china-hrg.com -china-huaxue.com -china-huazhou.com -china-hzd.com -china-invests.net -china-isotope.com -china-jm.org -china-kaihua.com -china-kaoshi.com -china-key.com -china-kids-expo.com -china-lawoffice.com -china-led.net -china-lushan.com -china-lzmj.com -china-m2m.com -china-moutai.com -china-nengyuan.com -china-nlp.com -china-obgyn.net -china-packcon.com -china-pcba.com -china-pharmacy.com -china-pops.net -china-pub.com -china-qiao.com -china-re.net -china-reform.org -china-ric.com -china-riscv.com -china-rty.com -china-russia.org -china-see.com -china-seeq.com -china-share.com -china-shimo.com -china-show.net -china-shufajia.com -china-sites.com -china-slate.com -china-sorsa.org -china-spacenews.com -china-sss.com -china-tower.com -china-toy-edu.org -china-toy-expo.com -china-up.com -china-vcom.com -china-vision.org -china-vo.org -china-wanlin.com -china-warping.com -china-waste.com -china-wss.com -china-zbycg.com -china-zhengwei.com -china-zhongda.net -china-zikao.com -china.com -zzsjxt.com -china001.com -china12365.com -china17.net -china1baogao.com -china1f.com -china2000.org -china35.com -china356.com -china3gpp.com -china4a.org -china50plus.com -china5e.com -china60.com -china618.com -china6688.com -china724.com -china777.org -china95.net -china95.xyz -china9y.com -chinaacc.com -chinaadec.com -chinaaet.com -chinaagrisci.com -chinaagv.com -chinaairer.com -chinaamc.com -chinaanonymous.com -chinaartificialstone.com -chinaasc.org -chinaaseanenv.org -chinaaseantrade.com -chinaasic.com -chinaautosupplier.com -chinaaviationdaily.com -chinab4c.com -chinabaike.com -chinabaiker.com -chinabaogao.com -chinabaokan.com -chinabaoke.net -chinabbtravel.com -chinabda.org -chinabdh.com -chinabdt.com -chinabeer.net -chinabenson.com -chinabeston.com -chinabgao.com -chinabidding.com -chinabiddingzb.com -chinabigdata.com -chinabike.net -chinabimdata.org -chinabmi.com -chinabn.org -chinabookinternational.org -chinabooktrading.com -chinabreed.com -chinabug.net -chinabus.info -chinabuses.com -chinabym.com -chinabyte.com -chinabzp.com -chinac.com -chinac3.com -chinacace.org -zzsgjj.com -chinacache.com -chinacache.net -chinacaj.net -chinacamel.com -chinacampus.org -chinacarbide.com -chinacasa.org -chinaccm.com -chinaccnet.com -chinaccnet.net -chinaccsi.com -chinacct.org -chinacdc.com -chinaceot.com -chinaceotv.com -chinacfi.net -chinacfo.net -chinacft.org -chinachemnet.com -chinachilun.org -chinachugui.com -chinacid.org -chinacil.com -chinacir.com -chinacity.net -chinacitywater.org -chinacleanexpo.com -chinacma.org -chinacmo.com -chinacoal.com -chinacomix.com -chinaconch.com -chinaconsulatesf.org -chinaconveyor.com -chinacosco.com -chinacourt.org -chinacpda.com -chinacpda.org -chinacpx.com -chinacqic.org -chinacqsb.com -chinacrane.net -chinacreator.com -chinacrumpler.com -chinacses.org -chinacsf.com -chinactv.com -chinaculture.org -chinacxjs.org -chinadafen.com -chinadailyglobal.com -chinadance.com -chinadart.com -chinadatatrading.com -chinaday.com -chinadazhaxie.com -chinadds.net -chinadegi.com -chinadengshi.com -chinadentalshow.com -chinadep.com -chinadforce.com -chinadigit.org -chinadmoz.org -chinadns.org -chinadongchu.com -chinadonghai.com -chinadrtv.com -chinadsl.net -chinadyt.com -chinadz.com -chinadzyl.com -chinae.net -chinaeastlaw.com -chinaecnet.com -chinaeda.org -chinaedu.com -chinaedu.net -chinaedunet.com -chinaedunewsw.com -chinaefu.net -chinaega.com -chinaehs.net -chinaeinet.com -chinaeinv.com -chinaembassy.at -chinaemed.com -chinaequity.net -chinaesm.com -chinaexam.org -chinaexpo365.com -chinaexpressair.com -chinafarad.com -chinaffmpeg.com -chinafiber.com -chinafic.org -chinafilm.com -chinafilms.net -chinafinancenet.com -chinafinanceonline.com -chinafishtv.com -chinafix.com -chinaflashmarket.com -chinaflier.com -chinafoodj.com -chinaforklift.com -chinafpd.net -chinafph.com -chinafpma.org -chinaftat.org -chinafudaoban.com -chinagames.net -chinagayles.com -chinagb.net -chinagb.org -chinagba.com -chinagcp.org -chinagdg.com -chinagiftsfair.com -chinagoldcoin.net -chinagoldgroup.com -chinagongcheng.com -chinagov.pw -chinagp.net -chinagps.cc -chinagrid.net -chinagrowthcapital.com -chinagungho.org -chinaguyao.com -chinagwy.org -chinagwyw.org -chinagzn.com -chinagznw.com -chinahacker.com -chinaham.com -chinahao.com -chinaharp.com -chinahazelnut.com -chinahightech.com -chinahighto.com -chinahighway.com -chinahiyou.com -chinahkidc.net -chinahky.com -chinahnjs.com -chinahorse.org -chinahost.org -chinahotel.com -chinahpa.org -chinahqjjw.com -chinahr.com -chinahrd.net -chinahrgy.com -chinahrt.com -chinahte.com -chinahtz.com -chinahuben.com -chinahumanrights.org -chinahvacr.com -chinahw.net -chinahydro.com -chinahyyj.com -chinahzkj.com -chinaidaa.org -chinaidcnet.com -chinaidcnet.net -chinaidns.com -chinaido.com -chinaielts.org -chinaiern.com -chinaiia.com -chinainout.com -chinainsbrokers.com -chinaiol.com -chinaios.com -chinaipmagazine.com -chinaiprlaw.com -chinairn.com -chinairr.org -chinaitcapital.com -chinaitlab.com -chinaitpower.com -chinajan.com -chinajcz.com -chinajeweler.com -chinajjz.com -chinajnhb.com -chinajoy.net -chinajs120.com -chinajsxx.com -chinajungong.com -chinajuva.com -chinajyxdh.com -chinajzqc.com -chinakaoyan.com -chinakaratedo.org -chinakidville.com -chinakingland.com -chinakingo.com -chinakongzi.org -chinaksi.com -chinakyzl.com -chinalabexpo.com -chinalabs.com -chinalancoo.com -chinalandpress.com -chinalao.com -chinalawbook.com -chinalawedu.com -chinalawinfo.com -chinalawyeryn.com -chinaleather.org -chinaledger.com -chinaleeper.com -chinalibs.net -chinalicensing.org -chinalicensingexpo.com -chinalifang.com -chinalims.net -chinalincoln.com -chinalink-sh.net -chinalink.tv -chinalions.com -chinalive.com -chinaliyou.com -chinalm.org -chinalowcarb.com -chinalsjt.com -chinalubricant.com -chinalure.com -chinalushan.com -chinaluxus.com -chinalxnet.com -chinamae.com -chinamags.org -chinamani.com -chinamap.com -chinamaven.com -chinambn.com -chinamca.com -chinamcache.com -chinamcloud.com -chinameasure.com -chinameat.org -chinamendu.com -chinamenwang.com -chinamerger.com -chinametro.net -chinameyer.com -chinamfi.net -chinamining.com -chinamishu.net -chinamission.be -chinamlmcc.com -chinamobile.com -chinamobileltd.com -chinamobilesz.com -chinamost.net -chinamsa.org -chinamsr.com -chinamusical.net -chinamusicbusinessnews.com -chinamworld.com -chinamypp.com -chinanbb.com -chinanet-sh.com -chinanet.cc -chinanet88.com -chinanetcenter.com -chinanetidc.com -chinanetsun-dns.com -chinanetsun.com -chinaneweast.com -chinanewkey.com -chinanews.com -chinaningbo.com -chinanmi.com -chinanums.com -chinaobp.com -chinaoct.com -chinaonward.net -chinaopc.org -chinaopen.com -chinaopticsvalley.com -chinaore.com -chinaott.net -chinapastel.com -chinapay.com -chinape168.com -chinapet.com -chinapet.net -chinapharm.net -chinapipe.net -chinaplat.com -chinapm.org -chinapnr.com -chinaports.com -chinapost-life.com -chinapowerbi.com -chinapp.com -chinapp.net -chinaprint.org -chinapsy.com -chinapubmed.net -chinaqi.net -chinaqingtian.com -chinaqipeihui.com -chinaqking.com -chinaql.org -chinaqoe.net -chinaquest.com -chinaquickpcb.com -chinaqw.com -chinarayying.com -chinardr.com -chinardr.net -chinaredstar.com -chinaren.com -chinarootdesign.com -chinartlaw.com -chinarun.com -chinarzfh.com -chinasaat.com -chinasafety.net -chinasanc.com -chinasatcom.com -chinasb.org -chinasciencejournal.com -chinascope.com -chinascopefinancial.com -chinascrum.org -chinascsoft.com -chinasexq.com -chinashadt.com -chinashangpinku.com -chinashj.com -chinashop.cc -chinashpp.com -chinasi.com -chinasie.com -chinasilk.com -chinasiwei.com -chinasmartpay.com -chinasnow.net -chinasnw.com -chinaso.com -chinasofti.com -chinasoftinc.com -chinasoftosg.com -chinasosuo.cc -chinasou.com -chinasoushang.com -chinaspringtown.com -chinasrif.com -chinassl.com -chinassl.net -chinasspp.com -chinastoneforest.com -chinastor.com -chinasufa.com -chinasupercloud.com -chinasuperwool.com -chinaswim.com -chinasws.com -chinasydw.org -chinatai.com -chinatairun.com -chinatalent.org -chinatat.com -chinatechinsights.com -chinatelecom-ec.com -chinatelecom-h.com -zzsggzy.com -chinatelecomglobal.com -chinatelecomiot.com -chinatelling.com -chinatet.com -chinatex.com -chinatex.net -chinatex.org -chinatibetnews.com -chinaticket.com -chinatikfans.com -chinatimber.org -chinatimes.cc -chinatiner.com -chinatmic.com -chinatopbrands.net -chinatourguide.com -chinatpm.com -chinatpm.net -chinatrace.org -chinatranslation.net -chinatravel.net -chinatraveldepot.com -chinatruck.org -chinatrucks.com -chinatsi.com -chinatsp.com -chinattl.com -chinatungsten.com -chinatupai.com -chinatv-net.com -chinatvc.com -chinatyco.com -chinaufo.com -chinaui.com -chinauidesign.com -chinauma.com -chinaums.com -chinaun.net -chinaunicom-a.com -chinaunicom.com -zzsf.com -chinaunicomglobal.com -chinaunionpay.com -chinaunionpay.net -chinauniversalasset.com -chinaunix.com -chinaunix.net -chinaunix.org -chinauo.com -chinauos.com -chinauos.net -chinaups.com -chinaus-maker.org -chinaus.com -chinavalin.com -chinavalue.net -chinavcpe.com -chinavfx.net -chinavid.com -chinavideo.org -chinavipsoft.com -chinavisual.com -chinavoa.com -chinavr.net -chinawanda.com -chinawatchnet.com -chinawbk.com -chinawch.com -chinawebber.com -chinawebmap.com -chinaweiyu.com -chinaweizheng.com -chinawenben.com -chinawerewolf.com -chinawie.com -chinawiserv.com -chinawitmedia.com -chinawoodnet.com -chinawr.net -chinawudang.com -chinawutong.com -chinawutong.net -chinawuyuan.com -chinaxiaokang.com -chinaxinge.com -chinaxinport.com -chinaxinye.com -chinaxpp.com -chinaxq.com -chinaxqf.com -chinaxueqian.com -chinaxwcb.com -chinaxy.com -chinaxzrc.com -chinayigou.com -chinayigui.com -chinayk.com -chinaymc.com -chinayuanwang.com -chinayyjx.com -chinayyo.com -chinayzyh.com -chinaz.com -chinaz.net -chinazichan.com -chinazikao.com -chinazjph.com -chinazjy.com -chinaznj.com -chinazns.com -chinaznyj.com -chinazov.com -chinazwds.com -chinazwds.org -chinazxt.com -chinca.org -chindiaforum.com -chine-info.com -chinee.com -chinese-no1.com -chineseacc.com -chineseafs.org -chineseall.com -chinesecio.com -chineseconsulate.org -chineseembassy.org -chinesehongker.com -chinesejk.com -chinesejy.com -chineselaw.com -chinesemooc.org -chineserose.com -chinesetown.net -chingkun.com -chingli.com -chingmi.com -chinjpd.com -chinlingo.com -chint.com -chint.net -chipcoo.com -chipcreation.com -chipdance.com -chiphell.com -chiphometek.com -chiplayout.net -chipmanufacturing.org -chiponeic.com -chipown.com -chipsbank.com -chipsec.com -chipsgo.com -chipsir.com -chipup.com -chipwing.com -chiq-cloud.com -chiralquest.com -chisai.tech -chisc.net -chiselchina.com -chiser.cc -chishine3d.com -chishoes.com -chitanda.me -chitu.com -chitus.com -chivast.com -chivox.com -chivoxapp.com -chiwayedu.com -chixm.com -chixuyun.com -chiyekeji.com -chiyufeng.com -chizao.com -chizhouchacha.com -chizhoujob.com -chizhouren.com -chiznews.com -chjso.com -chloe99.com -chmecc.org -chmed.net -chmgames.com -chmia.org -chn112.com -chn168.com -chnart.com -chnau99999.com -chnbook.org -chnci.com -chncia.org -chncomic.com -chncopper.com -chncpa.org -chncwds.com -chndesign.com -chndtb.com -chnews.net -chnfi.com -chnfund.com -chngalaxy.com -chngc.net -chnhace.com -chnjet.com -chnlanker.com -chnlib.com -chnmodel.com -chnmus.net -chnmusic.org -chnp2p.com -chnpac.com -chnpec.com -chnppmuseum.com -chnpush.com -chnroad.com -chnsuv.com -chntel.com -chocei.com -chofn.com -chofn.net -chofn.org -chofnipr.com -choiceform.com -chong-wu.net -chong4.net -chongchi.com -chongchuang.biz -chongdeedu.com -chongdiantou.com -chongfabianli.com -chonghi.com -chongmingzhuce.com -chongnengjihua.com -chongqingdongjin.com -chongqingyoupin.com -chongso.com -chongsoft.com -chongwu.cc -chongwujiaoyi.com -chongwuxiang.com -chongya.com -chongya.vip -chongyacdn.com -chongyejia.com -chongyitang.org -chonka.com -choqi.com -chotee.com -chouchou.club -chouchoujiang.com -choujue.net -choukang.com -choupangxia.com -chouqu.com -chouti.cc -chouti.com -chplayer.com -chqgwy.org -chrent.com -chrice.net -chrieschina.com -chris-tina.com -christophero.xyz -chrmn.com -chromecj.com -chromedownloads.net -chromefor.com -chromeliulanqi.com -chronusartcenter.org -chroyoo.com -chrstatic.com -chshcms.com -chshouyu.com -chspu.com -chsqh.com -chste.com -chtf.com -chtfund.com -chtgc.com -chtpe.com -chtse.com -chtwm.com -chuaiguo.com -chuairan.com -chuaizhe.com -chuanboyi.com -chuandaizc.com -chuandong.com -chuang-fan.com -chuang.pro -chuangbie.com -chuangcache.com -chuangcdn.com -chuangchangnet.com -chuangchenwangluo.com -chuangcifang.com -chuangduyouyue.com -chuangen.com -chuangfeixin.com -chuangjiangx.com -chuangke.tv -chuangkem.com -chuangkeup.com -chuangkit.com -chuanglian.net -chuanglianhui.com -chuanglinggame.com -chuangluo.com -chuangread.com -chuangseo.com -chuangshifurui.com -chuangshitech.com -chuangtie.com -chuangtoo.com -chuangx.org -chuangxin.com -chuangxinapi.com -chuangxinoa.com -chuangye.com -chuangyebaba.com -chuangyejia.com -chuangyejmw.com -chuangyepu.com -chuangyijisu.com -chuangyimao.com -chuangyouqi.com -chuangyunet.com -chuangzaoshi.com -chuanjiaoban.com -chuanke.com -chuanmeixing.com -chuanmeizy.com -chuannan.net -chuanqi.com -chuanshanqundao.com -chuansong.me -chuansongme.com -chuantec.com -chuanxincao.net -chuanye.com -chuanyifu.com -chuanying365.com -chuanying520.com -chuanyinpx.com -chuanyuapp.com -chuapp.com -chuban.cc -chubaodai.com -chubh.com -chucaotang.com -chucaotang.net -chuchujie.com -chudeer.com -chudian365.com -chufaba.me -chufw.com -chuge8.com -chugou360.com -chuguo78.com -chuguofeng.com -chuguohao.com -chuhoi.com -chuimg.com -chuinet.com -chuixue.com -chuiyue.com -chuji8.com -chuju750.com -chujuan.net -chukong-inc.com -chukonggame.com -chukou1.com -chule.cc -chumacdn.com -chumanapp.com -chumenwenwen.com -chunbo.com -chunboimg.com -chuncui.net -chundi.com -chundi.org -chunengauto.com -chunfengapp.com -chunge188.com -chungeseo.com -chungkwong.cc -chunhingplasticbags.com -chunhui12.com -chunjingtech.com -chunmi.com -chunmiaosh.com -chunquff.com -chunshuitang.com -chunshuizhijia.com -chunsuns.com -chunxuanmao.com -chunyiscdk.com -chunyu.me -chunyu.mobi -chunyuqiufeng.com -chunyuyisheng.com -chuquan.me -chureng.com -churenjixie.com -chusan.com -chuseo.com -chushan.com -chushang027.com -chushibiao5.com -chushihome.com -chushiji.com -chushou.tv -chushu123.com -chutianlaser.com -chutianzhinu.com -chuxindata.com -chuxingyouhui.com -chuxinhd.com -chuxinhudong.com -chuxinm.com -chuxueyun.com -chuying.org -chuyouke.com -chuyu.me -chuzhaobiao.com -chvv.com -chwlsq.com -chxent.com -chxyq.com -chyfh.com -chysoft.net -chyw.pub -chyxx.com -chzhkeji.com -chzhw.com -chzybj.com -ci123.com -ci800.com -ciallo.cc -ciaoca.com -ciatcm.org -cibaike.com -cibawl.com -cibfintech.com -cibn.cc -cibn.com -cibntv.net -ciboedu.org -cibonet.com -cibresearch.com -cibuser.com -cicaf.com -cicc.com -ciccfund.com -cicconline.com -ciccphoto.com -ciccwargame.com -ciccwm.com -ciceme.com -ciciec.com -cicmag.com -cicphoto.com -cict.com -cidgroup.com -cidi.ai -cidiancn.com -cidianwang.com -cidschina.com -ciduoduo123.com -ciec-expo.com -ciect.com -cieet.com -cietac-hb.org -cietac-sc.org -cietac.org -cifalshanghai.org -cifco.net -cifm.com -cifnews.com -cifoo.com -ciftis.org -cigadesign.com -cigarambassador.com -cignacmb-ipmi.com -cignacmb.com -cignacmbamc.com -cihai123.com -cihaidaquan.com -cihexpo.com -ciicgat.com -ciidoo.com -ciie.org -ciif-expo.com -ciiip.com -ciimg.com -ciiplat.com -ciku5.com -cili001.com -ciliba.buzz -ciliba.life -ciliba5.xyz -cilin.org -cilishiye.com -cilogo.com -cim2025.net -cimamotor.com -cimc.com -cimen.club -cimictiles.com -ciming-bj.com -ciming-shop.com -ciming.com -cimingaoya.com -cimingsy.com -cimingyc.com -cimsic.com -cimtshow.com -cinasoft.com -cindasc.com -cindasoft.com -cinehello.com -cingta.com -ciniao.me -cinsee.com -cinyi.com -cio114.com -cio360.net -cioage.com -ciotimes.com -ciotour.com -ciou.com -ciouqt.com -cip.cc -cipgtrans.com -ciplawyer.com -cippe.net -ciprun.com -cipscom.com -cipunited.com -cirmall.com -cirno9.net -cirs-reach.com -cirunzhang.com -cismef.com -cisskwt.com -citahub.com -citexpo.org -citiais.com -0033.com -citic-cid.com -citic-wealth.com -citic.com -citicbank.com -citicbankuser.com -citiccapital.com -citiccard.com -citicguoanbn.com -citiciam.com -citicifh.com -citicnetworks.com -citics.com -zzrseng.com -citicsf.com -citicsinfo.com -citicsteel.com -citidigital.com -citisa.org -citiz.net -citreport.com -cits-sz.net -cits0871.com -citscq.com -citscsc.com -citsgbt.com -citshq.com -citssh.com -citszz.com -citure.net -citvc.com -city12580.com -city8.com -city84.com -citygf.com -cityhui.com -citylinker.com -citysbs.com -citysz.net -citytogo.com -cityup.org -citywo.com -citywy.com -cityy.com -civilness.com -civiw.com -ciweek.com -ciweekly.com -ciwei.net -ciweimao.com -ciweishixi.com -ciweiyuedui.com -ciwong.com -ciwork.net -cixibank.com -cixiedu.net -cixtech.com -ciyew.com -ciyocon.com -ciyuan.men -ciyuanji.com -cizhixin.com -cizip.com -cj-elec.com -cjavapy.com -cjdcw.com -cjdropshipping.com -cjdsp.com -cjdx1.com -cjftb.com -cjhb168.com -cjhospital.com -cjhxfund.com -cjienc.com -cjiit.com -cjjd04.com -cjjd05.com -cjjd06.com -cjjd07.com -cjjd08.com -cjjd15.com -cjjd18.com -cjjhb.com -cjjjs.com -cjjnff.com -cjk3d.net -cjkhd.com -cjkj.ink -cjkypo.com -cjkz.com -cjlap.com -cjm.so -cjmakeding.com -cjmit.com -cjmx.com -cjn.com -cjnis.com -cjol.com -cjolimg.com -cjrcsc.com -cjs-lwh.love -cjsc.com -cjsgegs.com -cjting.me -cjveg.com -cjxz.com -cjyun.club -cjyun.org -cjyyw.com -cjzkw.com -cjzzc.com -ck100.com -ck180.net -ck586.com -ckair.com -ckd.cc -ckd.so -ckdsql.com -ckdzb.com -ckefu.com -ckernel.org -ckeyedu.com -ckimg.com -ckjr001.com -ckmov.com -ckplayer.com -cksd888.com -cksic.com -ckuai.com -ckxsw.com -ckxx.net -ckzhijiaedu.com -cl-acg.com -cl-clw.com -cl-hs.com -cl-kongtiao.com -cl0438.com -cl2009.com -clady.cc -claiks.com -clanzx.net -claritywallpaper.com -class01.com -classinpaas.com -classmateer.com -classpassincn.com -clayidols.com -clb6.net -clboss.com -clbu.club -clbug.com -clcindex.com -clclibrary.com -clcmw.com -clcyd.com -cldbiz.com -clean-cn.com -clear-sz.com -clear888.com -clearaki.com -clearcrane.com -clearsky360.com -clewm.net -clfile.com -cli.im -click369.com -clicksdiy.com -clicksun.net -clickwifi.net -client51.com -cliffordtrading.com -cliim.com -cliim.net -clinicmed.net -cliport.com -clled.com -clloz.com -clngaa.com -cloopen.com -cloopen.net -cloopm.com -closertb.site -clotfun.online -clotfun.xyz -clotheshr.com -clothjob.com -clothr.com -clouclip.com -cloud-beijing.com -cloud-cube.net -cloud-dns.net -cloud-dns.vip -cloud-frame.com -cloud-hebi.com -cloud-industry-delivery.site -cloud-links.net -zzrbl.com -cloud-ningbo.com -cloud-ordos.com -cloud-rtc.com -cloud-scdn.com -cloud-shenzhen.com -cloud-shiyan.com -cloud-sun.com -cloud-wuhan.com -cloud-xian.com -cloud-xm.com -cloud-zhaoqing.com -cloud-zhongwei.com -cloud301.net -cloud56.net -cloud887325.com -cloudajs.org -cloudangelfunds.com -cloudanqing.com -cloudbaoshan.com -cloudbase.net -cloudbeibei.com -cloudbility.com -cloudbinzhou.com -cloudcachetci.com -cloudcc.com -cloudcdn.net -cloudcdns.com -cloudcdns.net -cloudchangde.com -cloudchangsha.com -cloudchangzhou.com -cloudchaozhou.com -cloudchengde.com -cloudchengdu.com -cloudchuzhou.com -cloudcross.com -cloudcsp.com -cloudczs.com -clouddalian.com -clouddatong.com -clouddcs.com -clouddiffuse.xyz -clouddn.com -clouddns.vip -clouddongying.com -clouddream.net -cloudflare-cn.com -cloudflarecn.net -cloudflareinsights-cn.com -cloudflareprod.com -cloudflarestaging.com -cloudflarestoragegw.com -cloudfoshan.com -cloudfront-cn.net -cloudfuqing.com -cloudganzhou.com -cloudgap.net -cloudgfw.com -cloudgfw.net -cloudglb.com -cloudgoing.com -cloudguangzhou.com -cloudguarding.com -cloudhaidong.com -cloudhefei.com -cloudhengshui.com -cloudhosts.xyz -cloudhua.com -cloudhuaihua.com -cloudhuizhou.com -cloudhvacr.com -cloudidaas.com -cloudinnov.com -cloudinward.com -cloudiplc.com -cloudjinan.com -cloudjinchang.com -cloudjingzhou.com -cloudjining.com -cloudjiujiang.com -cloudkirin.com -cloudkunming.com -cloudleft.com -cloudleshan.com -cloudlijiang.com -cloudlishui.com -cloudluohe.com -cloudluoyang.com -cloudmeishan.com -cloudmes.io -cloudminds.com -cloudmob.vip -cloudmob.xyz -cloudnanan.com -cloudnanjing.com -cloudnanning.com -cloudnantong.com -cloudnapps.com -cloudp.cc -cloudpense.com -cloudpnr.com -cloudquanzhou.com -cloudroom.com -cloudsanya.com -cloudsation.com -cloudsea.org -cloudsee.com -cloudseeplus.com -cloudseetech.com -cloudserver01.com -cloudsgis.com -cloudshanghai.com -cloudshaoyang.com -cloudshenfuxingqu.com -cloudsiping.com -cloudsite.vip -cloudsohu.net -cloudsuqian.com -cloudtangshan.com -cloudtianjin.com -cloudtomicro.com -cloudtongchuan.com -cloudtongliang.com -cloudtopo.com -cloudtrans.com -cloudtui.com -cloudvast.com -cloudvdn.com -cloudvip1.com -cloudvogue.com -cloudvse.com -cloudweinan.com -cloudwise.ai -cloudwise.com -cloudxiangtan.com -cloudxianyou.com -cloudxining.com -cloudxns.com -cloudyanan.com -cloudyancheng.com -cloudyantai.com -cloudyee.com -cloudyinchuan.com -cloudyo.net -cloudyouku.com -cloudyueyang.com -cloudyuncheng.com -cloudyuxi.com -cloudzhongshan.com -cloudzhuhai.com -clpga.org -clroi.com -clsa.com -clssn.com -clto.cc -cltt.org -clubcarev.com -zzqzz.com -clx360.com -clyric.com -clz.me -cm-analysis.com -cm-iov.com -cm-worklink.com -cm233.com -cm3721.com -cmacredit.org -cmaif.com -cmanuf.com -cmb-leasing.com -cmbajia.com -cmbbao.com -cmbchina.biz -cmbchina.com -cmbchina.net -cmbchinawm.com -zzqxs.com -cmbimg.com -cmbs-soft.com -cmbuat.com -cmbwinglungbank.com -cmbyc.com -cmcc.in -cmcm.com -cmcmcdn.com -cmct22.com -cmd5.com -cmd5.la -cmd5.org -cmda.net -cmdrh.com -cmdschool.org -cmdw.vip -cmechina.net -cmeii.com -cmejob.com -cmenergyshipping.com -cmes.org -cmf.biz -cmf.ltd -cmfchina.com -cmfish.com -cmfspay.com -cmft.com -cmfu.com -cmgadx.com -cmgame.com -cmge.com -cmgos.com -cmgrasp.com -cmhello.com -cmia.info -cmicapm.com -cmidc.net -cming.com -cmjz.net -cmljs.org -cmmim.com -cmnxt.com -cmoct.com -cmodel.com -cmodes.com -cmol.com -cmpassport.com -cmpay.com -cmqxysg.com -cmread.com -cmri.cc -zzqklm.com -cms1924.org -cmsblogs.com -cmschina.com -cmscmc.org -cmseasy.cc -cmsfg.com -cmsforo.com -cmsjournal.net -cmskcrm.com -cmstop.com -cmt7.com -cmtdi.com -cmtech.net -cmtopdr.com -cmtrq.com -cmu1h.com -cmuliang.com -cmviking.com -cmvtc.com -cmwb.com -cmwin.com -cmxrcw.com -cmzd.com -cmzfqn.com -cmzi.com -cmzj.net -cmzyk.com -002lzj.com -cn-bowei.com -cn-c114.net -cn-ecotextile.com -cn-em.com -cn-fe.com -cn-food.net -cn-healthcare.com -cn-lcd.com -cn-msedge.net -cn-mw.com -cn-natural.com -cn-office.com -cn-psy.com -cn-railway.net -cn-roofexpert.com -cn-soft.com -cn-truck.com -cn-visa.com -cn-zhentai.com -zzqfte.com -zzpuke.com -zzpd8.com -cn.net -cn.vc -cn.vu -zzobokj.com -cn0-6.com -cn006.com -cn010w.com -cn0434.com -cn0556.com -cn0713.com -cn0851.com -cn0917.com -cn12365.org -cn163.net -cn168.com -cn18k.com -cn22.net -cn2che.com -cn314.com -cn357.com -cn360cn.com -cn365c.com -cn365d.com -cn365e.com -cn3wm.com -cn486.com -cn4e.com -cn51.com -cn5135.com -cn539.com -cn6szx.com -cn8fre.com -cn99.com -cn9f.com -cnaaa15.com -cnaaa6.com -cnaaa7.com -cnaaa9.com -cnacg.cc -cnad.com -cnaf.com -cnagcoin.com -cnaicpa.org -cnaidc.com -cnaifm.com -cnair.com -cnal.com -cname-cdn.com -cname123.net -cnamegslb.com -cnanzhi.com -cnaomeng.com -cnappsoft.xyz -cnautofinance.com -cnautonews.com -cnbabylon.com -cnball.net -cnbanbao.com -cnbaowen.net -cnbct.org -cnbetnew.com -cnbidding.com -cnbigcloud.com -cnbiocell.com -cnbis.com -cnbis.org -cnbizmedia.com -cnbjx.com -cnbksy.com -cnbkw.com -cnblogs.com -cnbluebox.com -cnboat.com -cnbooking.net -cnbooks.org -cnbp.net -cnbuses.com -cnbw114.com -cnbzol.com -cnbzs.com -cnc-gd.net -cnca.net -cncbinternational.com -zznah001.com -cnccac.com -cnccar.com -cnccchina.com -cncdn.com -cncelab.com -cncells.net -cnceo.com -cncgw.org -cnchainnet.com -cnchanran.com -cncheng.com -cnchezhan.com -cnchu.com -cncico.com -cncjmjg.com -cncloud.com -cncmrn.com -cncms.com -cncn.com -cncn.net -cncnbd.com -cncncloud.com -cncncn.com -cncnet.net -cncnki.com -cncolour.com -cncookernet.com -cncoolm.com -cncopter.com -cncotton.com -cncourt.org -cncqcloud.com -cncraftinfo.com -cncrk.com -cncrony.com -cncrypt.com -cncsj.net -cnction.com -cncwkj.com -cnczjy.com -cnd8.com -cndao.com -cndata.com -cndatacom.com -cndds.com -cndesign.com -cndfilm.com -cndhotels.com -cndi.com -cndids.com -cndingxi.com -cndns.com -cndns5.com -cndoornet.com -cndoors.com -cndsnet.com -cndss.net -cndtour.com -cndw.com -cndy.org -cndzq.com -cndzys.com -cnecc.com -cnedres.org -cneeex.com -cnelc.com -cnelecom.net -cnelite.org -cneln.net -cnemb.com -cnena.com -cnenergy.org -cneol-dns.net -cnep001.com -cnepaper.com -cnepaper.net -cnepub.com -cnerlang.com -cnesf.com -cnetea.net -cnetec.com -cnetsec.com -cnevi.com -cnexp.net -cnexps.com -cneyoo.com -cnezsoft.com -cnfanews.com -cnfantasia.com -cnfaxie.org -cnfczn.com -cnfdlt.com -cnfeat.com -cnfeelings.com -cnfeol.com -cnffi.com -cnfiberhome.com -cnfina.com -cnfirst.org -cnfish.com -cnfisher.com -cnfla.com -cnfmp.net -cnfol.com -cnfolimg.com -cnforever.com -cnforex.com -cnfpzz.com -cnfq.com -cnfqy.com -cnfrag.com -cnfruit.com -cnfs-cn.com -cnfuyin.org -cnfxj.org -cnfyyj.com -cnfzflw.com -cngal.org -cngaosu.com -cngb.org -cngba.com -cngbdl.com -cngin.com -cngnu.net -cngold.org -cngoldres.com -cngrain.com -cngreenfield.com -cngui.com -cngulu.com -cnh5.net -cnhacker.com -cnhalo.net -cnhan.com -cnhanxing.com -cnhaoshengyi.com -cnhbstock.com -cnhbtc.com -cnhd.com -cnhetianyu.com -cnhhl.com -cnhis.cc -cnhls.com -cnhlsxe.com -cnhm.net -cnhmsq.com -cnhnb.com -cnhongke.org -cnhonker.com -cnhowotruck.com -cnhsjz.com -cnhszx.com -cnhuadong.net -cnhuanya.com -cnhubei.com -cnhutong.com -cnhvacrnet.com -cnhwjt.com -cnhzz.com -cniao5.com -cnibx.com -cnicif.com -cnidea.net -zzmyt.com -cninfo.net -cninnovatel.com -cninternetdownloadmanager.com -cnipa-gd.com -cnipa-hb.com -cnipa-pesc.com -cnipa-sc.com -cnipa-tj.com -cnipai.com -cnipr.com -cnisp.org -cnit-research.com -cnitblog.com -cniteyes.com -cniti.com -cnitom.com -cnitpm.com -cnjccrusher.com -cnjcs.com -cnjingchu.com -cnjiwang.com -cnjj.com -cnjjl.com -cnjjwb.com -cnjlc.com -cnjnsb.com -cnjob.com -cnjoel.com -cnjournals.com -cnjournals.net -cnjournals.org -cnjpetr.org -cnjunzilan.com -cnjxol.com -cnjyky.com -cnjywl.com -cnjzb.com -cnjzjj.com -cnk8.com -cnkaile.com -cnkang.com -cnkefa.com -cnkeyboard.com -cnki.net -cnki.vip -cnkicheck.info -cnkicheck.org -cnkiki.net -cnkinect.com -cnkiorg.com -cnkis.net -cnkitop.com -cnkivip.net -cnkix.com -cnkizw.com -cnklog.com -cnknowledge.com -cnkok.com -cnkuai.com -cnky.net -cnlaw.net -cnledw.com -cnlianjie.com -cnlid.net -cnlight.com -cnlightnet.com -cnlinfo.net -cnlist.com -cnlist.org -cnlive.com -cnliveimg.com -cnllz.com -cnlso.com -cnmanhua.com -cnmattson.com -cnmcom.com -cnmdy.com -cnmeishu.com -cnmeiwei.com -cnmia.org -cnmill.com -cnmineqs.net -cnmmsc.org -cnmo.com -cnmobile.net -cnmods.net -cnmods.org -cnmooc.org -cnmsl.net -cnmsn.net -cnmstl.net -cnmtpt.com -cnnaihuo.com -cnnb.com -cnnbfdc.com -cnndns.com -cnnerv.com -cnnetsec.com -cnnfootballclub.com -cnnic.pub -cnnmol.com -cnnorip.org -cnnot.com -cnnpz.com -cnns.net -cnnuo.com -cnnvisa.com -cnobol.com -cnoic.com -cnoil.com -cnolnic.com -cnolnic.net -cnonline.org -cnookr.com -cnool.net -cnops.xyz -cnosr.com -cnoswiki.com -cnoutdoor.com -cnovirt.com -cnpaf.net -cnpatent.com -cnpc-hy.com -cnpenjing.com -cnpereading.com -cnpghouse.com -cnphar.net -cnpharm.com -cnphotos.net -cnpickups.com -cnpkm.com -cnplugins.com -cnpmjs.org -cnponer.com -cnpou.com -cnpowdernet.com -cnpowdertech.com -cnpps.org -cnprofit.com -cnpubg.com -cnpusi.com -cnpv.com -cnpx.net -cnpython.com -cnpythoner.com -cnqc.com -cnqd.net -cnqiang.com -cnqichun.com -cnqjc.com -cnqjw.com -cnqr.org -cnquanjing.com -cnradio.com -cnraksmart.com -cnrancher.com -cnratchet.com -cnrceo.com -cnrcloudfm.com -cnrdm.com -cnrdn.com -cnreagent.com -cnree.com -cnrencai.com -cnrepair.com -cnrepark.com -cnrexue.com -cnrmall.com -cnrmobile.com -cnrouter.com -cnrunda.com -cnrv.io -cns.hk -cnsaes.org -cnsal.com -cnsat.net -cnsav.com -cnsb.org -cnsc8.com -cnsce.net -cnscee.com -cnsciedu.com -cnscore.com -cnsdb.com -cnsdjxw.com -cnseay.com -cnseeq.com -cnsesan.com -cnsfk.com -cnshipnet.com -cnsikao.com -cnsilkworm.com -cnsimin.com -cnskyit.com -cnsnpj.com -cnsnvc.com -cnso.org -cnsoc.org -cnsoe.com -cnsoftbei.com -cnsoftnews.com -cnsolomo.com -cnspeed.com -cnspeedtest.com -cnspeedtest.net -cnsphoto.com -cnstock.com -cnsun.cc -cnsun.net -cnsuning.com -cnsuv.com -cnswy.net -cnsynews.com -cnsyyx.com -cntagore.com -cntaiping.com -cntally.com -cntan.net -cntapp.com -cntexjob.com -cntheory.com -cnthinkers.com -cntiaoliao.com -cntofu.com -cntopgear.com -cntoplead.com -cntplus.com -cntrades.com -cntranslators.com -cntronics.com -cntslawfirm.com -cntuw.com -cntv.com -cntwg.com -cnuninet.net -cnur.com -cnutcon.com -cnuuu.com -cnv168.com -cnvcs.com -cnvf.com -cnvps.com -cnwa.com -cnwaking.com -cnwaternews.com -cnwb.net -cnwdsy.com -cnwear.com -cnwebe.com -cnweblog.com -cnwebshow.com -cnweisou.com -cnwen.net -cnwenshi.net -cnwest.com -cnwhc.com -cnwhotel.com -cnwindows.com -cnwinenews.com -cnwnews.com -cnwtn.com -cnwxw.com -cnxad.com -cnxclm.com -cnxct.com -cnxds.com -cnxhacker.com -cnxiangyan.com -cnxiantao.com -cnxianzai.com -cnxiaoyuan.com -cnxibu.com -cnxile.com -cnxingoplastics.com -cnxishui.net -cnxk.com -cnxklm.com -cnxnmy.com -cnxuntu.com -cnxzm.com -cnyanglao.com -cnyicheng.com -cnyings.com -cnyipu.com -cnyouhao.com -cnys.com -cnyu.com -cnyuming.com -cnyw.net -cnywinfo.com -cnzazhi.net -cnzhanting.com -cnzhanzhang.com -cnzhengmu.com -cnzhibo.com -cnzhiyuanhui.com -cnzjj.com -cnzjol.com -cnzlapp.com -cnzsqh.com -cnzsqh.hk -cnzsyz.com -cnzweal.com -cnzxsoft.com -cnzyao.com -cnzz.com -cnzz.net -cnzz07.com -cnzznn.com -cnzznz.com -co-effort.com -co-farming.com -co-inclusion.org -co-mall.net -co188.com -co188cdn.com -coahr.net -coalcn.com -coantec.com -coaoo.com -coatingol.com -cobenet.com -cocas.cc -coccccc.cc -cocimg.com -coco413.com -cocoachina.com -cocodiy.com -coconuet.com -cocophp.com -cocoren.com -cocos.com -cocos.org -cocos2d-x.org -cocos2d.org -cocos2dev.com -cocos2dx.net -cocostudio.org -cocounion.com -cocss.com -codante.org -code-by.org -code.sh -code4apk.com -code666.com -code668.com -code84.com -codeaha.com -codebaoku.com -codebe.org -codebus.net -codebye.com -codechina.net -codecomeon.com -codedefault.com -codedream.xin -codeforge.com -codehy.com -codejie.net -codekissyoung.com -codekk.com -codelover.link -codemany.com -codemart.com -codemm.net -codepku.com -codeplayer.vip -codeplaygames.com -codeprj.com -coder.work -coder100.com -coder4.com -coder55.com -coderbee.net -coderclock.com -codercto.com -coderdock.com -coderhuo.tech -coderli.com -coderplanets.com -coderprepares.com -codersec.net -codersrc.com -coderxing.com -coderyuan.com -coderzh.com -codes51.com -codesoft.hk -codesoftchina.com -codesoso.com -codess.cc -codetc.com -codeweblog.com -codewenda.com -codewoody.com -codezyw.com -coding-newsletter.com -coding-pages.com -coding.me -coding.net -codingapp.com -codingbelief.com -codingdao.com -codingke.com -codinglabs.org -codingpy.com -codingsky.com -codingwhy.com -codingyang.com -codm.com -codmwest.com -codoon.com -codooncdn.com -codrim.net -cofco-capital.com -cofco-trust.com -cofco.com -cofcoko.com -cofcosp.com -cofeed.com -cofess.com -coffee-hdl.com -coffee-script.org -coffee08.com -cofly.com -cofool.com -cofortest.com -cogcpa.org -cogitosoft.com -cogobuy.com -cogonline.com -cohim.com -cohulu.com -coilmx.com -coin007.com -coin163.com -coinall.live -coinall.ltd -coincola.net -coincsd.com -coindog.com -coinnice.com -coins-carnival.com -coinsky.com -coinvs.com -cokll.com -cokutau.com -coladrive.com -colahotpot.com -colamh.com -colasmart.com -coldextrusion.com -coldfunction.com -coldlar.com -colineapp.com -colinker.com -colipu.com -colobu.com -color365.com -colorbird.com -colorfulclouds.net -colorfulltech.net -colorgg.com -coloros.com -coloros.net -colorv.com -colourfulchina.com -colourlife.com -com.fi -com.tv -com4loves.com -comac.cc -comake.online -combofin.com -combomen.com -combpm.com -combss.com -comebond.com -comefilm.com -comeken.com -comet.cc -comeyes.com -comiai.com -comic520.com -comicdd.com -comicer.com -comicfans.net -comicocn.com -comicst.com -comicv.com -comicyu.com -comiis.com -comingchina.com -comlan.com -comlbs.com -commander1.com -commchina.net -commune-hair.net -communicatte.com -comocloud.net -companydns.com -compass-fit.jp -compassedu.hk -compevt.com -compgoo.com -computeinit.com -comra.org -comsenz-service.com -comsenz.com -comseoer.com -comsharp.com -comsol.com -comweixin.com -conbagroup.com -conchdesktop.com -concox.net -confuciusinstitute.net -cong9184.com -congm.in -congrongfund.com -congyicn.com -congzao.com -congzhi.com -connector-systems.com -conoha.vip -zzmscg.com -conshow.com -contentchina.com -contentchina.net -zzmama.net -contiez.com -controlinai.com -conuo.com -convergemob.com -convertlab.com -conyedit.com -conyli.cc -coobar.com -cooboys.com -coocaa.com -coocaatv.com -coocare.com -coocox.org -coodir.com -coofans.com -cooffee.net -cooh5.com -coohua.com -cookcai.com -cookie4you.com -cool-admin.com -cool-de.com -cool-play.com -cool80.com -coolact.net -coolaf.com -coolapk.com -coolapkmarket.com -coolapkmarket.net -coolbcloud.com -coolbuy.com -coolchuan.com -coolcode.org -coolcode.tech -coolcoolcloud.com -coolcou.com -cooldock.com -cooldu.com -cooleasy.net -coolecho.net -coolecloud.com -coolexe.com -coolfd.com -coolgamebox.com -coolgua.net -coolkit.cc -coolkk.net -coolling.net -coolnull.com -coolook.org -coolool.com -coolpad.com -coolpad.store -coolqi.com -coolrar.com -coolsc.net -coolsdream.com -coolsite.vip -coolsite360.com -coolsphoto.com -coolstyle.org -cooluc.com -coolwarmsy.com -coolwp.com -coolxap.com -coolxcloud.com -coolyun.com -coolzou.com -coomix.net -coonote.com -coooolfan.com -coooz.com -coophone.com -coorain.net -coorfeon.com -cootek.com -cootekos.com -cootekservice.com -coovbbs.com -coovee.com -coovee.net -cooyun.com -coozhi.com -copyedu.com -copymanga.info -copymanga.net -copymanga.org -cor-games.com -corachic.com -corebai.com -coreesports.net -coreldrawchina.com -corpautohome.com -corpease.net -corpize.com -corpring.com -cos-show.com -cosbuluo.com -cosco.com -coscon.com -coscoshipping.com -cosedm.com -cosfund.com -coshelper.com -coshi.cc -coship.com -cosize.com -cosmoplat.com -cosoar.com -cosplay8.com -cosplayla.com -cosyjoy.com -cotticoffee.com -coubei.com -counect.com -couns.com -couplefish.com -coupon996.com -coursegraph.com -cousz-gd.com -covcec.com -covernim.com -coverweb.cc -covinda.com -covtv.com -cowarobot.com -cowellhealth.com -cowlevel.net -cowrycare.com -cowtransfer.com -coyotebio-lab.com -coyuk.com -coyuns.net -cp127w.com -cp365.org -cp455.com -cpajia.com -cpass.com -cpatrk.net -cpbao.com -cpc.cc -cpcccac.com -cpcni.net -cpcw.com -cpdad.com -cpdaily.com -cpdyj.com -cpecc.net -cpeol.net -cphoto.net -cphoto.org -cpiano.com -cpiaoju.com -cpiccdn.com -cpihualai.com -cpitsh.org -cpjltx.com -cplchain.com -cpo.xyz -cpo2o.com -cpolar.io -cpolive.com -cpooo.com -cpp-prog.com -cpp114.com -cpp32.com -cppblog.com -cppc123.com -cppcns.com -cppfoto.com -cpph.com -cppinfo.com -cpplay.com -cpppc.org -cpppf.org -cppwh.com -cps1688.com -cpsbeijing.org -cpsenglish.com -cptae.com -cpu114.com -cpu668.com -cpubbs.com -cpvjob.com -cpython.org -cpzjzx.com -cq-ct.tech -cq-wnl.com -cq315house.com -cq3a.com -cq5135.com -cq6.com -cq6969.com -cq8.com -cqaaa.com -cqae.com -cqaso.com -cqbdfeng.com -cqbdksm.com -cqbm2007.com -cqbnedu.com -cqbnrc.com -cqbntv.com -cqbyer.net -cqbys.com -cqcaee.com -cqcatr.com -cqcb.com -cqcbank.com -cqccn.com -cqcklib.com -cqcoal.com -cqcp.net -cqcqcq.com -cqcsic.com -cqcy.com -cqdai.com -cqdailynews.com -cqddnap.com -cqddzx.com -cqdent.com -cqdingyan.com -cqdting.com -cqdzw.com -cqeca.org -cqedo.com -cqemme.com -cqfire.com -cqfuzhuang.com -cqfygzfw.com -cqgc.com -cqggzy.com -cqgmfw.com -cqgz.com -cqh2o.com -cqhansa.com -cqhcbk.com -cqhimalayanky.com -cqhkcdns.com -cqhpoldi.com -cqhxgf.com -cqhxzb.com -cqhyd.com -cqhydraulic.com -cqhyky.com -cqindex.com -cqinstinct.com -cqivip.com -cqjat.com -cqjbrc.com -cqjet.com -cqjiaz.com -cqjj.net -cqjjnet.com -cqjnw.org -cqjob.com -cqjy.com -cqkdtui1.com -cqkeb.com -cqkjwx.com -cqkqinfo.com -cqkundian.com -cqkx.com -cqkytq.com -cqleba.com -cqlinrui.com -cqliving.com -cqlp.com -cqlyckj.com -cqmama.net -cqmanfeite.com -cqmas.com -cqmcu.com -cqmjkjzx.com -cqmmgo.com -cqmw.com -cqnc.cc -cqncnews.com -cqnews.net -cqnhn.com -cqpa.org -cqpbx.com -cqph.com -cqpinjian.com -cqpix.com -cqpost.com -cqqigao.com -cqqiyi.com -cqqnb.net -cqqp.com -cqqsyy.com -cqqyn.com -cqrc.net -cqrcb.com -cqrcdsc.com -cqsckj02.com -cqscmy.net -cqshenou.com -cqslsc.com -cqsms.net -cqsoft.org -cqsqmp.com -cqsxedu.com -cqtally.co -cqtally.com -cqtanlaoda.com -cqtaotan.com -cqtea.com -cqtransit.com -cqtresearch.com -cqttech.com -cqtynpx.com -cquae.com -cquc.net -cqudp.com -cqvip.com -cqvip.vip -cqw.cc -cqwangwo.com -cqwenbo.com -cqwin.com -cqwulong.net -cqwzwl.com -cqxcx.net -cqxdfpr.com -cqxh120.com -cqxiehe.com -cqxingyun.com -cqxpxt.com -cqxyfl.com -cqyc.net -cqyestar.com -cqyingang.com -cqyouloft.com -cqyu.com -cqyzqsy.com -cqzhanguan.com -cqzhongxingyuan.com -cqzk.net -cqzls.com -cqzq6.com -cqzww.com -cqzyx.net -cqzz.net -cr-expo.com -cr-nielsen.com -cr-power.com -cr11gcsgd.com -cr11gee.com -cr173.com -cr175.com -cr18g.com -cr19gj.com -cr6868.com -crabchina.com -crackersta.com -craer.com -craftcontact.com -crandom.com -crazepony.com -crazyenglish.org -crazyflasher.com -crazyphper.com -crazypm.com -crbeverage.com -zzloop.com -crc.hk -crc81.com -crcapital.info -crcgas.com -crcrfsp.com -crcsz.com -crct.com -cre.net -cread.com -creatby.com -createcdigital.com -creati5.com -creationventure.com -crec4.com -crec4mc.com -crecg.com -crecohe.com -crecu.com -credibleglass.com -credit-cras.com -credit100.com -creditcn.com -creditsailing.com -creditzuji.com -creo-support.com -crepcrep.com -crestv.com -crewcn.com -crfchina.com -crfsdi.com -crgecent.com -crggcn.com -crgy.com -cric.com -cric2009.com -cricbigdata.com -crifst.com -crimoon.net -crispstata.com -crjfw.com -zzllq.com -crlf0710.com -crlg.com -crm.cc -crm1001.com -crmch.com -crmclick.com -crmeb.com -crmeb.net -crmg-ms.com -crmip.com -crmtldc.net -crnews.net -crodigy.com -crossingstarstudio.com -crossmo.com -crossoverchina.com -crosswaycn.com -crown-chain.com -crowndth.com -crowya.com -crpaas.com -crrcgc.cc -crrjz.com -crs811.com -crsc.cc -crsky.com -crsn168.com -cruelcoding.com -crvic.org -crym.cc -crystalcg.com -crystaledu.com -cryuantafund.com -cs-air.com -cs-cjl.com -cs-qsyq.com -cs-show.com -cs-video.com -cs0799.com -cs090.com -cs1212.xyz -cs12333.com -cs27.com -cs2c.com -cs2ccloud.com -cs30.net -cs528.com -cs53.com -csadec.com -csaimall.com -csair.com -csairdutyfree.com -csairholiday.com -csairshop.com -csapa.org -csaspx.com -csau.com -csbew.com -csc108.com -csc86.com -cscan.co -cscatv.com -cscdf.org -cscec.com -cscec1b.net -cscecst.com -csci.hk -cscyw.com -csdc.info -csdeshang.com -csdh.com -csdian.net -csdiy.wiki -csdn.com -csdn.net -csdnxiazai.xyz -csdtz.com -csdyx.com -csea767.com -csebank.com -csflgg.com -csflwb.com -csfounder.com -csftyy.com -csgm168.com -csgocn.net -csgokai.com -csgpc.org -csguan.com -csgwexpo.com -csharpkit.com -cshixi.com -cshnkj.com -cshope.net -cshuandu.com -cshufanyi.com -cshxdc.com -cshyqx.com -csic-711.com -csic-ljtech.com -csic612.com -csic6801.com -csic76.com -csicmakers.com -csiea.net -csjcs.com -csjplatform.com -csjwang.com -cskaoyan.com -cskefu.com -cskule.com -cslfans.com -cslou.com -cslyrc.com -csmadik.com -csmall.com -csmama.net -csmar.com -csmbcx.com -csmc-cloud.com -csmjzs.com -csmscon.com -csnbgsh.com -cspda.net -cspengbo.com -cspiii.com -cspro.org -cspruc.com -cspxw.com -csqc.cc -csqnews.com -csqqym.com -csrcare.com -csrcbank.com -csrcsc.com -csrda.com -csres.com -csrgm.com -csrlzyw.com -css-js.com -css6.com -css88.com -cssa-swansea.com -cssaaa.com -csseplastic.com -cssf.com -cssf.net -cssforest.org -cssg-ahi.com -cssj.fun -csslcloud.net -cssmagic.net -cssmoban.com -cssmxx.com -cssqt.com -csstoday.net -cssxt.com -cssyq.com -cssyzxx.com -csszone.net -cstccloud.org -cstcloud.net -cstcq.com -cstea.org -cstech.ltd -csteelnews.com -cstianye.com -cstimer.net -csto.com -cstong.net -cstriker1407.info -csuboy.com -csuedu.com -csundec.com -csvclub.org -csvsc.com -csvw.com -csw18.com -csweigou.com -cswf888.com -csxbank.com -csxcdj.com -csxdf.com -csxingfutemple.org -csxsjc.com -csxtedu.com -csxww.com -csyestar.com -csytv.com -csyuyism.com -cszb556.com -cszit.com -cszsjy.com -cszx.com -cszybdf.com -cszykt.com -cszzjc.com -ct-cdm.com -ct-laser.com -ct10000.com -ct108.com -ct52.com -ctaca.com -ctags.net -ctans.com -ctaoci.com -ctaweb.org -ctb50.com -ctbjia888.com -ctc100.com -ctcefive.com -ctcmo.com -ctcnn.com -ctcnpa.com -ctcwri.org -ctdcn.com -ctdisk.com -ctdns.net -ctdsb.com -ctdsb.net -ctdzsk.com -cteaw.com -ctecdcs.com -ctex.org -ctexcel.ca -ctexcel.com -zzliot.com -ctexcel.fr -ctexcel.us -ctfile.com -ctfile.net -ctflife.com -ctfmall.com -ctfo.com -ctfund.com -ctg75.com -ctgapp.com -ctghealthy.com -ctghr.com -ctghro.com -cthhmu.com -cthuwork.com -cthuwork.net -cthy.com -cti-cert.com -ctibet.com -ctiforum.com -ctiku.com -ctils.com -ctime.com -ctiot.info -ctjin.com -ctjsoft.com -ctkq.com -ctlcdn.com -zzjxbg.com -ctlife.tv -ctmon.com -ctn1986.com -ctnz.net -ctobsnssdk.com -ctocio.com -ctoclub.com -ctoutiao.com -ctqcw.com -ctracer.net -ctrip-ttd.hk -zzjunzhi.com -zzidc.com -zzhybz.com -ctrip.com -zzhuanruan.com -ctrip.my -ctrip.sg -ctripbiz.com -ctripbuy.hk -ctripcorp.com -ctripgslb.com -ctripins.com -ctripqa.com -ctripteam.com -ctriverenergy.com -ctrlqq.com -ctrmi.com -ctsbw.com -ctsec.com -ctsho.com -ctsscs.com -ctssr.com -ctsto.com -ctszh.com -cttip.org -cttq.com -cttsd.com -cttv.co -ctuaa.com -ctvpost.com -ctvwx.com -ctwxc.com -ctxyw.com -ctycdn.com -ctyo.com -ctzrnet.com -cu-air.com -cuaa.net -cuanhuang.com -cuav.net -cubavcenter.com -cubead.com -cubejoy.com -cubie.cc -cubox.pro -cucdc.com -cuchost.com -cuctv.com -cudaojia.com -cueber.com -cuebzzy.com -cuekit.com -cuelog.com -cufeyk.com -cufou.com -cug2313.com -cugstore.com -cuihuan.net -cuimm.com -cuiniaoedu.com -cuiniuhui.com -cuipengfei.me -cuipixiong.com -cuiqingcai.com -cuirushi.com -cuishuai.cc -cuiuc.com -cuiweijuxing.com -cuiyongjian.com -cujs.com -cuketest.com -cul-studies.com -culaiwan.com -cumtenn.com -cumulon.com -cunan.com -cuncunle.com -cuncx.com -cunfang.com -cunnar.com -cunyoulu.com -cunzhen.vip -cunzj.com -cuobiezi.net -cuour-edu.com -cuour.com -cuour.org -cupaaki.cyou -cupdapp.com -cupdata.com -cupdns.com -cupfox.app -cupfox.com -cupinn.com -cuplayer.com -cureedit.com -curlc.com -curryhuang.com -cusdvs.net -custeel.com -customsapp.com -cut35.com -cutecomm.com -cutefishos.com -cuteng.com -cutercounter.com -cutieshop153.com -cutout.pro -cutowallpaper.com -cutv.com -cuuhn.com -cuzz.site -cv0ve3.xyz -cvchina.info -cvchome.com -cvcri.com -cvhacr.com -cvicse.com -cvicseks.com -cvmart.net -cvonet.com -cvoon.com -cvrobot.net -cvte.com -cvtoutiao.com -cvtvcn.com -cw100.com -cwbpsi.com -cwddd.com -cwdma.org -cwebgame.com -cwems.com -cwestc.com -cwmcs.com -cwq.com -cwqu.com -cwroom.com -cwxzx.com -cwyan.com -cx312.com -cx580.com -cx930.net -cxacg.com -cxas.com -cxbiji.com -cxbz958.com -cxc233.com -cxcc.me -cxcyds.com -cxd-auto.com -cxfuwu.com -cxgame.net -cxh99.com -cxhl365.net -cxhr.com -cximg.com -cxjd2012.com -cxkjjy.com -cxmld.com -cxmt.com -cxmtc.net -cxssfjx.com -cxsw3d.com -cxta.com -cxthhhhh.com -cxtuku.com -cxtxt.com -cxw.com -cxwl.com -cxwyf.net -cxwyg.net -cxxjs.com -cxy521.com -cxy61.com -cxy7.com -cxyfjy.com -cxylfc.com -cxyob.com -cxytiandi.com -cxyxiaowu.com -cxyxwl.com -cxyym.com -cxz.com -cxz3d.com -cxzg.com -cxzudwk.com -cxzw.com -cy-cdn.com -cy-email.com -cy-isp.net -cy-jm.com -cy.com -cy2009.com -cy52.com -cy580.com -cy88.com -cy887.com -cyagen.com -cyanhillcapital.com -cyb-bot.com -cyb-cie.com -cyb800.com -cybermedicine2000.com -cyberway-china.net -cybtc.com -cybtc.info -cybtc.net -cycares.com -cychaiqian.com -cyclingchina.net -cyclone-robotics.com -cyclonemoto.com -cycnet.com -cycoo.com -cyctapp.com -cydiakk.com -cydow.com -cydp5.com -cyedu.org -cyegushi.com -cyfeng.com -cyfengchao.com -cyhm.com -cyhone.com -cyht168.com -cyhx98.com -cyikao.com -cyjcloud.com -cyjn.net -cyjnsy.com -cyjzzd.com -cyk-cable.com -cylong.com -cymh8.com -cynee.net -cynosurechina.com -cynovan.com -cyol.com -cyol.net -cyou-inc.com -cyoupic.com -cypatent.com -cypcb.net -cyphouse.com -cypmedia.com -cypresstel.com -cyprestar.com -cyqyzx.com -cyr168.com -cyruc.com -cysq.com -cyss19.com -cysua.com -cytcard.com -cyts.com -cytsls.com -cytstibet.com -cyudun.net -cyuew.com -cywetc.com -cywlxy.com -cywyjj.com -cyy18.com -cyycdn.com -cyypscl.com -cyyself.name -cyysjm.com -cyyvip.com -cyyz.org -cyzm.net -cz-toshiba.com -cz-yk.com -cz.cc -cz2sc.com -cz89.com -czb365.com -czbanbantong.com -czbank.com -czbq.net -czbtv.com -czbx18.com -czcarbon.com -czchuanlin.com -czchyz.com -czcid.com -czcqly.com -czctech.com -czdingming.com -czdrbz.com -czech-visacenter.com -czedu.com -czepb.com -czfcw.com -czfdc.com -czfesco-mg.com -czggsj.com -czgjj.com -czgjj.net -czgmjsj.com -czgongzuo.com -czham.net -czie.net -czifi.org -czitc.com -czjake.com -czjdu.com -czjpw.com -czjsy.com -czkbdq.net -czkingdee.com -czlogo.com -czlxgc.net -czmc.com -cznewcom.com -czongyi.com -czopen.com -czos.xyz -czpoly.com -czsbtjx.com -czsrc.com -cztour.com -cztv.com -cztv.tv -cztvcloud.com -czur.com -czvv.net -czwsg5.com -czxixi.com -czxsss.com -czxy.com -czyhq.com -czyxba.com -czzsw.com -czzy-edu.com -d-controls.com -d-ctrip.com -d-heaven.com -d-long.com -d.cg -d.design -d03jd.com -d163.net -d17.cc -d1999.com -d1cm.com -d1com.com -d1dengju.com -d1ev.com -d1lx.com -d1miao.com -d1net.com -d1sm.net -d1xf.net -d1xh.com -d1xn.com -d1xz.net -d20.net -d2fan.com -d2film.com -d2kdi2ss.com -d2scdn.com -d2shost.com -d2ziran.com -d3ch.com -d3cn.net -d3dweb.com -d3f.com -d3games.com -d3iz9md.com -d3skg.com -d3tt.com -d3zone.com -d4000.com -d5h.net -d5power.com -d65d6.com -d777.com -d7vg.com -d8th.com -d9ym.com -da-qian.com -da-quan.net -zzhaofang.com -da.do -da88.net -daanbar.com -daanche.com -daba.com -dabaicai.com -dabaicai.org -dabao123.com -dabaoku.com -dabieshu.com -dabin69.com -dabingseo.com -dabjy.com -daboluo.net -dabusi.com -dacai.com -dacankao.com -dacankao.net -dacaomei.com -daccf.com -dachanet.com -dachenglaw.com -dachengnet.com -dachengzi.net -dachuizichan.com -dachuw.com -dachuw.net -dadaabc.com -dadagame.com -dadagem.xyz -dadajiasu.com -dadajuan.com -dadakan.com -dadaojiayuan.com -dadayou.com -dadclab.com -daddymami.net -dadetong.com -dadianstudio.com -dadicinema.com -dadighost.com -dadijilu.com -dadiwang.com -dadiyimao.com -dadou.com -dadunet.com -daerzhu.com -daf-rs.com -dafaji.com -dafang24.com -dafangya.com -dafanshu.com -dafork.com -dafy.com -dagangcheng.com -dagao.net -dagongcredit.com -dagongnet.com -dagufood.com -daguzhe.com -dahainan.com -dahaiyang.com -dahanghaiol.com -dahangzhou.com -dahanwl.com -dahanyu.com -daheapp.com -dahecc.com -dahecube.com -dahei.com -dahelj.com -daheng-image.com -daheng-imaging.com -daheng-imavision.com -dahengit.com -dahepiao.com -dahongba.net -dahouduan.com -dahua8.com -dahuaab.com -dahuaddns.com -dahuatech.com -dahuawang.com -dahuhg.com -dahuifuwu.com -dahulu.com -dai361.com -dai911.com -daibi.com -daichuqu.com -daicuo.cc -daicuo.co -daicuo.net -daicuo.vip -daidaidui.club -daidaitv.com -daidongxi.com -daigou.com -daijun.com -daikela.com -daikuan.com -daikuane.com -dailianqun.com -dailiantong.com -dailianzj.com -dailiba.com -dailijizhang.cc -dailugou.com -dailygn.com -dailyheadlines.cc -dailyqd.com -daimabiji.com -daimadog.com -daimafans.com -daimajia.com -daimajiaoliu.com -daimajiayuan.com -daimami.com -daimasucai.com -daimg.com -daishangqian.com -daishu.com -daishujiankang.com -daishutijian.com -daiwoqu.com -daixiaobao.com -daixiaomi.com -daixiaorui.com -daiyanbao.com -daiyanmama.com -daizitouxiang.com -daji.com -dajiabao.com -dajiachou.com -dajiadaohang.com -dajiadu8.com -dajiaka.com -dajialaikan.com -dajialawyer.com -dajianet.com -dajiang365.com -dajiangcp.com -dajiangsai.org -dajiangtai.com -dajianhui.com -dajiashequ.com -dajiashuo.com -dajiazhao.com -dajiazhongyi.com -dajie.com -dajieimg.com -dajixie.com -dajke.com -dajuntech.com -dajuyuan.net -daka.app -daka.net -dakage.com -dakahr.com -dakamao8.com -dakao8.com -dakao8.net -dakaruanwen.com -dakawm.cc -dakayi.cc -dakele.com -dalaba.com -dalianair-china.com -dalianiso.com -daliapp.net -daling.com -dalinggong.com -dalipan.com -dalongkeji.com -dalongyun.com -daluma.com -daluo.com -daluwang.net -dalvlaw.com -damai.com -damaibs.com -damaicheng.com -damatu1.com -damddos.com -dameisheng.com -dameiweb.com -dameiyunduan.com -dameng.com -damingweb.com -damndigital.com -damoyang.com -damuchong.com -damuzzz.com -dan665.com -danaicha.com -danale.com -dance365.com -dancerspointewinchester.com -dancf.com -dancihu.com -dancingcg.com -dandanjiang.tv -dandanman.com -dandanplay.com -dandantang.com -dandanz.com -dandinghuayi.com -dandongbank.com -danews.cc -dang-jian.com -dang3.com -dangaocn.com -dangaoss.com -dangbei.com -dangbei.net -dangbeiprojector.com -dangcdn.com -dangdang.com -dangguai.com -danghongyun.com -danghuan.com -dangjian.com -dangjianwang.com -dangpu.com -dangtianle.com -dangwan.com -dangzhi.com -dangzhi.net -dangzhu.net -danhua.org -danhuaer.com -daniao.org -daniate.com -daningcenter.com -daningdaning.com -daniuit.com -daniujiaoyu.com -danji100.com -danji6.com -danji8.com -danji9.com -danjuanapp.com -danjuanfunds.com -danke.com -dankegongyu.com -dankexiaoyuan.com -danlan.org -danlirencomedy.com -danlu.net -danmaku.live -danmaku.tv -danmakupie.com -danmei.la -danmei.org -danmi.com -danming-ic.com -danmo.com -danmu.com -dannysite.com -danotest.com -danpin.com -danqi.com -danteng.me -dantengge.org -dantuvc.com -danxia.com -danxin.net -danyang.com -danzhaowang.com -dao123.com -dao42.com -dao50.com -daoapp.io -daoapp.me -daocloud.io -daocloudapp.com -daodao.com -daodaojizhang.com -daodaoliang.com -daodaozz.com -daodian100.com -daodianfu.com -daodoc.com -daododo.com -daoduoduo.com -daofengdj.com -daoguo.com -daohang4.com -daohang88.com -daohangmao.net -daohangtx.com -daohui.net -daoisms.org -daojia.com -daojiale.com -daokers.com -daokeyuedu.com -daokoudai.com -daokouren.org -daomengad.com -daonazhuce.com -daopub.com -daoqin.net -daoscript.org -daoshidianping.com -daoshui.com -daotin.com -daotudashi.com -daovoice.io -daoxiangcun.com -daoxila.com -daoxila.net -daoyu8.com -daozhao.com -dapaizixun.com -dapan.com -dapei.cc -dapengjiaoyu.com -dapenti.com -dapiniu.com -dapmax.com -dappdiscover.com -dapustor.com -daqi.com -daqianduan.com -daqiangpco.com -daqids.com -daqihui.com -daqiso.com -daqsoft.com -daquan.com -darczpw.com -darevip.com -darkmi.com -darknight.games -darmao.com -darongcheng.com -darryring.com -dartchina.com -dartou.com -daruan.com -darwinlearns.com -dasctf.com -dashanghaizhuce.com -dashangu.com -dashen520.com -dashengji.com -dashenglaile.com -dashengpan.com -dashengzuji.com -dashenquan.com -dashentv.com -dashet.com -dashgame.com -dashi.com -dashikou.com -dashitech.com -dashiyou.com -dashoucloud.com -dashuihua.com -dashuju123.com -dasoujia.com -dassm.com -dasung.com -dasungtech.com -data380.com -data5u.com -data777.com -data985.com -datacachelocation.com -datacaciques.com -datacname.com -datadragon.net -dataesb.com -dataeye.com -datafocus.ai -datagear.tech -datagrand.com -datahubtrack.com -dataie.com -datang.com -datang.net -datangnxp.com -datangweishi.com -datangzww.com -dataodu.com -dataoke.com -datarelab.com -datarj.com -zzgryl.com -datasheet5.com -datasl.com -datasoldier.net -datastoragesummit.com -datatang.com -datathinking.com -datatist.com -datatocn.com -datayes.com -datazt.com -datebao.com -datepj.com -datesdata.com -datia-inspect.com -datianmen.com -zzgm.net -datongtaxi.com -datuc.com -dav01.com -davdian.com -davidlovezoe.club -davinfo.com -davtd.com -davvar.com -dawaner.net -daweisoft.com -dawenming.com -dawenxue.net -dawenxue.org -dawnarc.com -dawndiy.com -dawnlab.me -dawnled.net -dawntech.net -dawuhanapp.com -dawx.com -dawx.net -daxi.com -daxia.com -daxiaamu.com -daxianghuyu.com -daxiangqun.net -daxianzuji.com -daxiit.com -daxinsz.com -daxuecn.com -daxueit.com -daxuepc.com -daxueshi.com -daxuesoutijiang.com -daxuesushe.com -daxuewang.com -dayaguqin.com -dayangmotorcycle.com -dayangyugame.com -dayanmei.com -dayanzai.me -dayday.plus -daydayup123.com -dayee.com -dayhao.com -dayhr.com -dayichang.com -dayifund.org -dayila.net -dayima.com -dayin.com -dayin.la -dayinhu.com -dayinjiqudong.com -dayinmao.com -dayinpai.com -dayinpiano.com -dayitong.net -dayong.name -dayoo.com -dayrui.com -daytokens.com -dayu-valve.com -dayu.com -dayuansouti.com -dayue8.com -dayugame.net -dayugslb.com -dayukaoshi.com -dayukeji.com -dayuntongzhou.com -dayup.org -dayuzy.com -dazahui123.com -dazhan123.com -dazhangfang.com -dazhaopeibang.com -dazhe5.com -dazhenzimiao.com -dazhewa.com -dazhong.com -dazhongbanben.com -dazhonghr.com -dazhoumzj.com -dazhoushan.com -dazhuangwang.com -dazhuanlan.com -dazibo.com -dazidazi.com -dazidian.net -dazijia.com -dazpin.com -daztoutiao.com -dazui.com -db-cache.com -db.ci -db9x.com -dbank.com -dbankcdn.com -dbankcloud.asia -dbankcloud.com -dbankcloud.eu -dbankcloud.ru -dbankedge.net -dbbqb.com -dbc2000.net -dbccv.com -dbcdh.com -dbcsq.com -dbcxz1.net -dbdna.com -dbgeek.org -dbh123.net -dbkan.com -dblgf.com -dbljj.com -dbm-sh.com -dbmailserver.com -dbmall.com -dbmeinv.com -dbqf.xyz -dbs724.com -dbscar.com -dbshop.net -dbt-coin.com -dc-cn.com -dcarapi.com -dcarimg.com -dcarlive.com -dcarstatic.com -dcarvod.com -dcatgame.com -dcb123.com -dcdapp.com -dcdkjx.com -dcement.com -dcetax.com -dcgsi.com -dcharm.com -dcic-china.com -dcits.com -dcloud.io -dcloudlive.com -dcloudstc.com -dcmagcn.com -dcmk17.com -dcpfb.com -dcsapi.com -dcsjw.com -dcsme.org -dcxnews.com -dcybkj.com -dd-advisor.com -dd-gz.com -dd-img.com -dd128.com -dd2007.com -dd373.com -dd4.com -dd6300.fun -dd8828.com -ddbiquge.cc -ddbiquge.com -ddbiu.com -ddd-china.com -ddddns.net -dddwan.com -dde-desktop.org -ddfans.com -ddfchina.com -ddgjjj.com -ddguanhuai.com -ddhy.com -ddiaas.com -ddianle.com -ddianshang.com -ddijg.com -ddimg.mobi -ddimg.net -dding.net -ddjjzz.com -ddjk.com -ddk-alink.com -ddkids.com -ddkt365.com -ddkwxd.com -ddky.com -ddle.cc -ddlequ.com -ddmap.com -ddmer.com -ddmogo.com -ddnddn.com -ddns-only.xyz -ddnsto.com -ddnx.com -ddong.com -ddooo.com -ddos.com -ddosc.com -ddosendns.com -ddoswafcdn.xyz -ddove.com -ddpai.com -ddqcw.com -ddsaas.com -ddstarapp.com -ddswcm.com -ddsy.com -ddtugame.com -ddtxgame.com -ddtz5.com -ddun.com -ddurl.to -dduser.mobi -dduwork.com -ddweilai.com -ddwhm.com -ddwzh.com -ddxinwen.com -ddxq.mobi -ddxstxt8.com -ddyqh.com -ddyun.com -ddyun123.com -ddyvip.com -ddz.com -ddzhj.com -ddztv.com -ddzuqin.com -de-moe.org -de0.cc -de123.net -de1919.com -de518.com -deaconhousewuxi.com -deadnine.com -deahu.com -dealsmake.com -deansys.com -dear520dear.com -dearda.com -dearedu.com -dearisland.com -deartree.com -deathearth.com -deau-cable.com -debao.com -deben.me -debt-management-site.com -debug.moe -debugdump.com -debuggap.com -debugger.wiki -debugo.com -debuycn.com -decard.com -decentcapital.com -decerp.cc -dechong.site -dechua.com -decorcn.com -decwhy.com -dede168.com -dedecms.com -dedecmsplus.com -dededao.com -dedeeims.com -dedejs.com -dedemao.com -dedesos.com -dedezhuji.com -deemos.com -deepbluenetwork.com -deepcloudsdp.com -deepepg.com -deepermobile.com -deepin-ai.com -deepin.com -deepin.io -deepin.org -deepinghost.com -deepinmind.com -deepinos.org -deepinout.com -deepleaper.com -deeplearn.me -deepoon.com -deepsheet.net -deeptechchina.com -deerchao.net -deerex.com -deerma.com -defcoding.com -deguanggroup.com -dehe99.com -deheheng.com -deheng.com -dehsm.com -dehua.net -dehuaca.com -dehuasd.com -deifei.com -deifgs.com -deikuo.com -dejiplaza.com -dekeego.com -dektw.com -dekyy.com -delanauto.com -deli-tools.com -delib2b.com -delibao.com -delicloud.com -delikaixi.com -delinklab.com -delishi.com -deliwenku.com -deliworld.com -delixi-electric.com -delixi.com -dell027.com -dellemc-solution.com -delphijiaocheng.com -delunyk.com -demage.com -demaxiya.com -demix.cc -demixc.com -demizhongbao.com -demlution.com -demo8.com -demodashi.com -demogic.com -demon.tw -demonlee.tech -demoso.net -demososo.com -denachina.com -denganliang.com -dengbi8.com -dengcuo.com -dengguobi.com -denghao.org -denghaoxuan.com -denghuo.com -dengji8.com -dengkanwen.com -dengmoe.com -dengpeng.me -dengshiyuanyi.com -dengta120.com -dengtacj.com -dengtadaka.com -dengwz.com -dengxiaolong.com -dengxiaopingnet.com -denopark.com -dentistshow.com -deosin.com -dep-star.com -depeat.com -dephir.com -deppon.com -deppxp.net -deqingbank.com -deqinglaw.com -derekchou.com -derenbs.com -derucci.com -derzh.com -des8.com -desaysv.com -desenqd.com -deserts.io -design006.com -designsketchskill.com -designuuu.com -deskcar.com -deskcity.com -deskguanjia.com -deskier.com -desktop-calculator.com -desktopcal.com -desktopqa.com -deskwc.com -desoonproduct.com -desperate.life -despiertocfilms.com -destoon.com -detion.com -detu.com -detuyun.com -dev-dh.com -dev798.com -dev996.com -devask.net -devclub.cc -develenv.com -zzgjj.com -zzgdapp.com -zzgcjyzx.com -zzfriend.com -devemi.com -devework.com -devexel-tech.com -devexel.com -devexpresscn.com -devio.org -devmyshopibar.com -devops-dev.com -devpss.com -devqinwei.com -devsiki.com -devtang.com -devui.design -devzeng.com -dewmobile.net -dewu.com -dewu.net -dewucdn.com -dewumall.com -dexian.mobi -dexingrv.com -dexinsg.com -dextercai.com -dexuee.com -dexunyun.com -deyang5.com -deyatech.com -deyayk.com -deyeehome.com -deyi.com -deyi.net -deyijijin.org -deyiso.com -deyoulife.com -deyun.fun -deyurumen.com -dezhong365.com -dezhongmobi.com -dezhoudaily.com -dezhounuoda.com -dezhuyun.com -df-nissanfl.com -df81.com -df9377.com -df962388.com -dfcfs.com -dfcfw.com -dfcx-bj.com -dfdaily.com -dfddd.com -dfdjy.net -dfdtt.com -dfedu.com -dfghaqea.xyz -dfham.com -dfhon.com -dfhtjn.com -dfkcgs.com -dfkhgj.com -dfkj.cc -dfmc.com -dfmcastrol.com -dfmingya.com -dfpk.com -dfpz.net -dfrcb.com -dfs168.com -dfs800.com -dfshurufa.com -dfshw.com -dfsrcw.com -dfss-club.com -dfstw.com -dfsyjm.com -dftoutiao.com -dftq.net -dftzcgs.com -dftzj.com -dfxq.com -dfxwdc.com -dfy027.com -dfyanyi.com -dfyapp.com -dfyl-luxgen.com -dfyoo.com -dfysw.net -dfyuan.com -dfyxs.com -dfyydl.com -dfyzx.com -dfzmzyc.com -dfzxvip.com -dfzystt.com -dg-360lhx.com -dg-cxwj.com -dg-hanxin.com -dg-mall.com -dg11185.com -dg114.com -dg121.com -dgchangan.com -dgddh.xyz -dgegbj.com -dgg.net -dggdf.com -dggdk.com -dgggs.com -dggjqw.com -dggkj.com -dggvip.net -dghehu.com -dghqmotor.com -dginfo.com -dgjiuqi.com -dgjoy.co -dgjxmk.com -dgjy.net -dgjyw.com -dgkj888.com -dglpool.com -dgmama.net -dgod.net -dgphospital.com -dgptjob.com -dgqjj.com -dgrbcj.com -dgsbtjx.com -dgsltx.com -dgsme.org -dgssmy.com -dgt-factory.com -dgtle.com -dgtpcj.com -dgtuoyue.com -dgwap.com -dgwtrl.com -dgxbjg.com -dgxinde.net -dgxue.com -dgyejia.com -dgygpx.com -dgykz.com -dgyuanyi.com -dgzhihongjx.com -dgzhisen.com -dgzz1.com -dgzzip.com -dgzzw.net -dh.cx -dh01.com -dh0580.com -dh5idnf.com -dh7373.com -dh7999.com -dh818.com -dh9191.com -dh978.com -dhb.hk -dhb168.com -dhboy.com -dheear.site -dhfeng.com -dhhqfw.com -dhimavision.com -dhjt.com -dhkipdsc.xyz -dhkq120.com -dhkqmz.com -dhkqyy.com -dhmeri.com -dhppa.com -dhqtech.com -dhrcbank.com -dhrest.com -dhsky.org -dht5867.com -dhvisiontech.com -dhwooden.com -dhxrop.com -dhyct.com -dhygw20.com -dhygw2999.com -dhygw488.com -dhyjaqa.com -dhyz.net -di3fang.com -di3fang.vip -diablohu.com -diaidi.com -diaigame.com -diamondfsd.com -dian-ai.com -dian-stable.com -dian-ying.com -dian.so -dian123.com -dian234.com -dian321.com -dian5.com -dianapp.com -dianbo.org -dianbobao.com -dianbucuo.com -diancaijun.com -dianchacha.com -dianchouapp.com -diandanbao.com -diandao.org -diandaxia.com -diandian.com -diandiannuo.com -diandianqi.com -diandianshu.com -diandianwaimai.com -diandianxie.com -diandianys.com -diandianzhe.com -diandianzu.com -diandong.com -diandong365.com -diandongche.biz -dianfengcms.com -dianfuji.com -diangan.org -diangon.com -diangong8.com -diangongbao.com -diangongwu.com -dianhen.com -dianhong.com -dianhou.com -dianji007.com -dianjianggame.com -dianjiliuliang.com -dianjin123.com -dianjinghu.com -dianjingzhe.com -dianjinzs.com -dianjiqi.com -diankeji.com -dianli.com -dianli08.com -dianliang8.com -dianliaoapp.com -dianlut.com -dianm.cc -dianmiaoshou.com -diannaoban.com -diannaodian.com -diannaoxianka.com -dianopen.com -dianou.com -dianpifa.com -dianping.com -dianpingba.com -dianqiweixiu.net -dianqizazhi.com -dianranart.com -dianrong.com -dianru.com -dianru.net -diansan.com -dianshang.com -dianshanghy.com -dianshangyi.com -dianshi.com -dianshige.com -dianshihome.com -dianshijia.com -dianshunxinxi.com -diansu-cdn.net -diantoushi.com -diantui.net -dianwanhezi.com -dianwannan.com -dianwantu.com -dianwoba.com -dianwoda.com -dianwoyou.com -dianwuque.com -dianxiaobao.net -dianxin.net -dianxinnews.com -dianxinos.com -dianyingjie.com -dianyingshow.com -dianyingwenxue.com -dianyong123.com -dianyongqi.com -dianyuan.com -dianzhanggui.net -dianzhangzhipin.com -dianzheli.com -dianzhenkeji.com -dianzhentan.com -dianzhi.com -dianziaihaozhe.com -dianzihetong.net -dianzixuexi.com -diaoben.com -diaochapai.com -diaochapai.net -diaocn.com -diaoding.biz -diaojiang.com -diaokeji.net -diaosaas.com -diaosi.net -diaosiweb.net -diaosu9.com -diaosu98.com -diaosunet.com -diaox2.com -diaoy.com -diaoyou.com -diaoyoupai.com -diaoyu.com -diaoyu123.com -diaoyu365.com -diaoyuren.com -diaoyuwang.com -diary365.net -diaxue.com -dib66.com -dibaotong.com -dibcn.com -diboot.com -dibunet.com -dic123.com -dicaotang.com -dichan.com -dichanlao.com -dichanren.com -dichedai.com -dictall.com -dida110.com -dida365.com -didacar.com -didachuxing.com -didao.com -didapinche.com -didatravel.com -diddgame.com -didi-food.com -didialift.com -didiapp.com -didiaustralia.blog -didibear.com -didichuxing.com -dididadidi.com -dididapiao.com -dididawo.com -dididi88.com -didiglobal.com -zzfly.net -didipay.com -didiqiche.com -didispace.com -didistatic.com -didiwuxian.com -didixk.com -didiyun.com -didiyunapi.com -didu86.com -diducoder.com -diebian.net -dieclock.com -diediao123.com -diemameishi.com -diemoe.net -dieniao.com -dierkezhan.com -diershoubing.com -dietfd.com -diezhan.me -diezhan6.com -difanapp.com -dig-gy.com -digcredit.com -digforfire.net -digi-wo.com -digiic.com -digirepub.com -digisky.com -digital-ren.com -digitalchina.com -digitalcq.com -digitaling.com -digitalvolvo.com -digitalwuhan.com -digitalwuhan.net -digitlink.net -digitser.net -digiwin.com -digiwork.com -digod.com -digu.com -digu365.com -digua.com -diguage.com -diguazu.com -diguobbs.com -dihuikj.com -diiqu.com -dijingchao.com -dijiuban.com -dijunsm.com -dikmnhyxz.xyz -dili360.com -dili365.com -dililitv.com -dim0.com -dimeng.net -dimensionalzone.com -dimpurr.com -dimsmary.tech -dinais.com -dindin.com -dingdanggj.com -dingdangjia.net -dingdangnao.com -dingdangsheji.com -dingdean.com -dingdianku.com -dingdiansk.com -dingdianzw.com -dingding.com -dingding.xin -dingding2014.com -dingdingdoctor.com -dingdingkaike.com -dingdone.com -dingdongcloud.com -dingdongxiaoqu.com -dingfang123.com -dinggou.org -dinghaiec.com -dinghuaren.com -dinghuihuojia.com -dinghuo123.com -dinghuo365.com -dinghuoche.com -dinghuovip.com -dingip.com -dingjicd.com -dingkeji.com -dinglia.com -dingliangame.com -dingliss.com -dingqidong.com -dingqingyun.com -dingsheng.com -dingso.com -dingtalent.com -dingtalk.com -dingtalk.net -dingtalkapps.com -dingtangzqx.com -dingteam.com -dingweilishi.com -dingxiang-inc.com -dingxinhui.com -dingxinwen.com -dingxuewen.com -dingyantec.com -dingyueads.com -dingzhijl.com -diningcity.asia -dinzd.com -dioenglish.com -diomasce.com -dionly.com -diopic.net -dious.cc -dipan.com -dipephoto.com -dipont.com -diqi.net -diqi.sh -diqishu.com -diqiujiayuan.com -diqiuw.com -diqua.com -dir001.com -directui.com -discourse-studies.com -discoversources.com -discoveryriflescope.com -discuz.chat -discuz.com -discuz.net -discuz.org -discuz.vip -discuzfans.net -discuzlab.com -dishen.com -dishuge.com -dishuizhijia.com -diskgenius.com -dislytegame.com -dismall.com -distantmeaning.com -distinctclinic.com -ditan360.com -ditan369.com -dithub.com -ditian-tech.com -ditiefuli.com -ditiezu.com -ditiezu.net -zzfcw.com -ditu100.net -dituhui.com -dituwuyou.com -diugai.com -div.io -divcss5.com -divepai.com -divetgallery.com -diving-fish.com -diwork.com -dixintong.com -diyamh.com -diybcq.com -diybuy.net -diycode.cc -diygogogo.com -diygw.com -diyhi.com -diyiapp.com -diyicai.com -diyidan.com -diyidan.net -diyifanwen.com -diyifanwen.net -diyigaokao.com -diyihuifu.com -diyinews.com -diyishijian.com -diyitech.com -diyixiazai.com -diyiyou.com -diyiyunshi.com -diyiziti.com -diyju.com -diymianmo.com -diymysite.com -diynova.com -diyosl.com -diypda.com -diyring.cc -diyvinylcutters.com -diywoju.com -diyyh.com -dizhi.xin -dizzylab.net -dj.net -dj.tc -dj10.com -dj134.com -dj16.com -dj175.com -dj63.com -dj88.com -dj89.com -dj97.com -dj99.com -djbh.net -djbstatic.com -djbx.com -djcc.com -djcp099.com -djdkk.com -djduoduo.com -djec.net -djeconomic.com -djf.com -djfj.net -djhgyy.com -djiavip.com -djjlseo.com -djjw.com -djkk.com -djkpai.com -djksq.com -djkxl.com -djlmvip.com -djlsoft.net -djsh5.com -djstechpc.com -djstg.com -dju8.com -djwcp.com -djye.com -djyjob.com -djysx.com -djzbl.com -djzhj.com -djzr88.com -djzxn47.com -dkdangle.com -dkjiaoyang.com -dklogs.net -dkmol.net -dkpdd.com -dkrsq.com -dksgames.com -dkskcloud.com -dky.cc -dkybpc.com -dl-huahong.com -zzect.com -dl-rc.com -zzdz666.com -zzdtec.com -zzdl.com -dl0728.com -dl158.net -dl2link.com -dl321.net -dl556677.com -dl8z.com -dlangchina.com -dlbbdk.com -dlbh.net -dlbyf.com -dlbyg.com -dlcaic.com -dld.com -dld56.com -dldlsw.com -dledu.com -dlfederal.com -dlgslb.net -dlgwbn.com -dljrw.com -dljs.net -dllake.com -dllhook.com -dllzj.com -dlmonita.com -dlmzk.com -dlnel.com -dlnel.org -dlosri.com -dlpuwan.com -dlrjtz.com -dlrkb.com -dlrtz.com -dlsjcsb.com -dlsqb.com -dlssa.com -dlsstax.com -dlsunworld.com -dlszywz.com -dltm.net -dltobacco.com -dltsfh.com -dltubu.com -dlvalve.com -dlwjdh.com -dlxgjy.com -dlxk.com -dlxww.com -dlzb.com -dlztb.com -dlzyc.com -dm004.net -dm0571.com -dm176.com -dm21.com -dm300.com -dm321.net -dm5.com -dm9.com -dmacg.net -dmaku.com -dmall.com -dmallcdn.com -dmbcdn.com -dmcbs.com -dmcdn.com -dmcgas.com -dmchina1.com -dmd968.com -dmeg88.com -dmeiti.com -dmeiti.net -dmeng.net -dmfuns.com -dmgapp.com -dmgeek.com -dmgpark.com -dmguo.com -dmhlj.com -dmhmusic.com -dmiug.com -dmjtxt.com -dmlei.com -dmm87d.xyz -dmoe.cc -dmozdir.org -dmpans.com -dmqst.com -dmread.com -dmrtb.com -dmssc.net -dmtg.com -dmwx.org -dmyz.org -dmyzw.com -dmzfa.com -dmzj.com -dmzj8.com -dmzx.com -dn.com -dn1234.com -dn580.com -dn8188.com -dnbbn.com -dnbbs.com -dnbiz.com -dncheng.com -dndiy.net -dnfziliao.com -dngswin7.com -dngsxitong.com -dngz.net -dnion.com -dnjsb.com -dnmall.com -dnnskin.net -dnnunion.com -dnparking.com -dnpz.net -dnpz123.com -dnqc.com -dns-diy.com -dns-diy.net -dns-dns.net -dns-sky.com -dns-url.com -dns-vip.com -dns-vip.net -dns.com -dns.la -dns.pub -dns0011.com -dns002.com -dns0755.net -dns100.net -dns110.com -dns123.net -dns12345.com -dns200.net -dns2008.com -dns2023.com -dns567.com -dns6132.com -dns6868.com -dns800.com -dnsbn.com -dnsce.com -dnscnc.com -dnsddos.com -dnsdiy.com -dnsdizhi.com -dnse0.com -dnse1.com -dnsfamily.com -dnsff.com -dnsfwq.com -dnsgtm.com -dnsgulf.net -dnsh6666.com -dnshot.net -dnsinside.net -dnsip.net -dnsis.net -dnsjia.com -dnslv.com -dnsmeasurement.com -dnsmsn.com -dnsng.net -dnsns5.com -dnsns6.com -dnsnw.com -dnsoray.net -dnsour.com -dnspai.com -dnspig.com -dnsplus.co -dnspod.com -dnspod.mobi -dnspod.net -dnspod.org -dnspood.net -dnsppdd.com -dnsrw.com -dnss.vip -dnsserverhe.com -dnssina.com -dnsurl.net -dnsv1.com -dnsv1.net -dnsv2.com -dnsv3.com -dnsv4.com -dnsv5.com -dnsv8.net -dnsvcache.com -dnsvhost.com -dnswa.com -dnswhk.com -dnswind.net -dnsyy.net -dnszh.com -dnxp.net -dnxtc.net -dnzhuti.com -dnzjds.com -do-shi.com -do123.net -do1618.com -do1999.com -doabit.com -dobest.com -dobunkan.com -doc163.com -doc88.com -doccamera.com -docer.com -docexcel.net -docin.com -docin365.com -dockerinfo.net -dockerone.com -dockone.io -doclass.com -docpe.com -zzdh.net -zzdengji.com -zzded.com -docschina.org -docsou.com -doctor-network.com -doctorcom.com -doctorxiong.club -doctoryou.ai -docx88.com -doczhi.com -doczj.com -dodjoy.com -dodo.link -dodo8.com -dodobook.me -dodobook.net -dodoca.com -dodoeasy.com -dodoedu.com -dodoh5.com -dodomh.com -dodonew.com -dodovip.com -doergob.com -dogecdn.com -dogecloud.com -dogedoge.com -dogfight360.com -doglg.com -doglobal.net -dogmr.com -dogwhere.com -dogyun.com -doh.plus -doh.pub -dohuo.com -doido.com -doii.cc -doit.am -doitim.com -doiua.com -doki8.com -dolcn.com -dole.club -dolfincdnx.com -dolfincdnx.net -dolfindns.net -dolike.com -doll-leaves.com -doll-zone.com -dollun.com -dolphin-browser.com -dolphin.com -dolphinphp.com -domaingz.com -domengle.com -dominoh.com -domobcdn.com -domolo.com -domp4.cc -domyshop.com -donews.com -dong-shou.com -dong-xu.com -dongannews.com -dongao.com -dongaocloud.com -dongbao120.com -dongbeishifandaxue.com -dongbucaijing.com -dongcai.net -dongcaibaoxian.com -dongchedi.com -dongchediapp.com -dongcheng1.com -dongcheng100.com -dongcheng120.com -dongchenghotels.com -dongdao.net -dongdongaijia.com -dongdongwenda.com -dongdongyx.com -dongdongzu.com -dongdui.com -dongeedu.com -dongeejiao.com -dongfang-wh.com -dongfang.com -dongfang77.com -dongfangfuli.com -dongfangnews.com -dongfangtech.net -dongfeng-honda-greiz.com -dongfeng-honda-inspire.com -dongfeng-honda-ur-v.com -dongfeng-honda-xr-v.com -dongfeng-nissan.com -dongfeng.net -dongfengtrucks.com -dongfund.com -dongge.com -dongguantoday.com -donghaifunds.com -donghao.org -donghulvdao.com -dongjinyu.com -dongjun.cc -dongke.org -dongkelun.com -dongkouren.com -donglingying.cc -donglishuzhai.net -dongliw.com -donglizhixin.com -dongmansoft.com -dongmanxingkong.com -dongmiban.com -dongnanmaifeng.com -dongni100.com -dongniao.net -dongnienglish.com -dongniyingyu.com -dongoog.com -dongputech.com -dongqiniqin.com -dongqiudi.com -dongqiudi.net -dongsenzs.com -dongshou.com -dongsport.com -dongtaijt.com -dongting.com -dongtu.com -dongua.com -dongwm.com -dongxi.net -dongxingkonggu.com -dongxuyitai.com -dongyaods.com -dongyin.net -dongyoutu.com -dongyun.biz -dongyun01.com -dongzhe93.com -dongzhougroup.com -dongzhuoyao.com -donhammondbattlecreekmi.com -donhonet.net -donvv.com -doodoobird.com -doofull.com -dooioo.com -dooland.com -doomii.com -dooo.cc -doooor.com -door-expo.com -dooreb.com -doorhr.com -doorzo.app -doorzo.net -doov5g.com -doowinfintec.com -dopa.com -dopic.net -dora-family.com -dorapp.com -dormforce.net -dorrr.com -doseeing.com -doserv.com -doshome.com -dosnap.com -dospy.com -dossav.com -dossen.com -dostor.com -dot.pub -dota2rpg.com -dota2tester.com -dotamax.com -dotcpp.com -doteck.com -dotgate.com -doticloud.com -dotty-china.com -dou.bz -dou.li -douban.co -douban.com -douban.fm -doubanio.com -doubean.com -doubilm.com -doubimeizhi.com -douboshi.net -douc.cc -doucang.com -douco.com -doudang.com -doudehui.com -doudier.com -doudou.com -doudou.in -doudou3.com -doudouad.com -doudouba.com -doudoubird.com -doufan.tv -doufl.com -doufm.net -douglassclub.com -douguo.com -douguo.net -douhan.li -douhao.com -douhaogongyu.com -douhaomei.com -douhua.net -douhuibuy.com -doukantv.com -doukeji.com -doulai.com -doulaicha.com -doulaidu.cc -doulaidu.com -doulaidu8.cc -douluodalu3.com -doumengkeji.mobi -doumi.com -doumistatic.com -doumobfour.club -doumobsix.site -doumpaq.com -doupai.cc -doupir.com -doupocangqiong1.com -douqi.com -douquyyds.com -doushen.com -doutian.me -doutub.com -doutukeji.com -doutushe.com -douwanweb.com -douxie.com -douya2.com -douyaobuy.com -douyapu.com -douyar.com -douyi.com -douyin.com -douyincdn.com -douyinec.com -douyinliving.com -douyinpic.com -douyinstatic.com -douyinvideo.net -douyinvod.click -douyinvod.com -douyou100.com -douyu.com -douyu.tv -douyuscdn.com -douyutv.com -douzi.com -douzihuyu.com -dovechina.com -dovesky.com -dovov.com -dowater.com -doweb8.com -dowebok.com -dowei.com -doweidu.com -dowell-health.com -dowhere.com -down123.cc -down123.me -down6.com -down7788.com -downbei.com -downcc.com -downclass.com -downerapi.com -downfi.com -downi9.com -downjoy.com -downk.cc -downkr.com -downkuai.com -zzd.pub -zzcszx.com -zzcomm.com -downok.com -downos.com -downpp.com -downsave.com -downv.com -downxia.com -downxy.com -downya.com -downyi.com -downza.com -downzz.com -dowv.com -doxue.com -doyee.com -doyoe.com -doyoo.net -doyoudo.com -doyouhike.net -dozer.cc -dozview.com -zzcodes.net -dp.tech -dp2u.com -dpcafc.com -dpcq1.net -dpcyjt.com -dper.com -dpfile.com -dplayerjsvideo.com -dplayersvideostatic.com -dplor.com -dplord.com -dplslab.com -dpqct.com -dptech.com -dptechnology.net -dpwl.net -dpxq.com -dq123.com -dq18.com -dq247.com -dq3c.com -dq99.net -dqccc.cc -dqccc.com -dqcccc.com -dqdaily.com -dqdgame.com -dqguo.com -dqhui.com -dqiis.com -dqjob88.com -dqpi.net -dqpkb.com -dqrailing.com -dqshdj.com -dqshjt.com -dqycw.com -dqyfapiao.com -dr009.com -draftstatic.com -drageasy.com -dragon-guide.net -dragon-hotel.com -dragonballcn.com -dragonest.com -dragonnewsru.com -dragonparking.com -dragonsea-china.com -dragontrail.com -dragonwell-jdk.io -dramx.com -drartisan.com -drasy.net -dratio.com -draveness.me -drawyoo.com -drcact.com -drcbank.com -drcg8.com -drclvs.com -drcuiyutao.com -drdrq.com -dream-loft.com -dream.ren -dream1986.com -dreamad.mobi -dreamcast.hk -dreamchasercapital.com -dreamershop.com -dreamine.com -dreamkite.net -dreammeta.net -dreamo100.com -dreampiggy.com -dreams-travel.com -dreamswood.com -dreamsz.net -dreawer.com -drfvtgbyk.xyz -drgou.com -drhcleanair.com -drice.cc -drinkmagazine.asia -drip.im -dripcar.com -driverdevelop.com -drivergenius.com -zzcm5.com -driverzeng.com -drivethelife.com -drli.group -drlmeng.com -drm-x.com -drm-x.net -drmaml.com -droi.com -droibaas.com -dropsec.xyz -drouma.com -drscrewdriver.com -drscrm.com -drtyf.com -drugfuture.com -druggcp.net -drumandbassworkout.com -drupalla.com -drupalproject.org -drv.tw -drvi.net -drvsky.com -ds-360.com -ds023.com -ds123456.com -ds5f.com -dsb.ink -dsblog.net -dscbs.com -dseman.com -dsfdc.com -dsfof.com -dshigao.com -dshrc.com -dsitni.com -dskb.co -dskystudio.com -dslbuy.com -dslyy.com -dsmxp.com -dsmyiyuan.com -dsmzyy.com -dsmzyy120.com -dsn300.com -dsnzyy120.com -dsook.com -dsp.com -dspwhy.com -dsq.com -dssz.com -dstfsbc.com -dsti.net -dswjcms.com -dswmt.com -dswzxh.com -dsxdn.com -dsxtv.pro -dsxys.pro -dsyjz0755.com -dszw.net -dtcj.com -dtcms.net -dtcoalmine.com -dtcxw.com -dtdream.com -dtdxcw.com -dtfcw.com -dtidc.com -dtime.com -dtmao.cc -dtmuban.com -dtrcb.com -dts007.com -dtstack.com -dtstatic.com -dtston.com -dttc-icp.com -dttt.net -dtuosh.com -dturl.cc -dtuyun.com -dtxfjs.com -dtxmw.com -dtxn.net -dtxww.com -dtysky.moe -dtyunxi.com -dtyzg.com -dtzj.com -du00.com -du175.com -du7.com -du8.com -dualaid.com -duan.red -duanlonggang.com -duanmale.com -duanmeiwen.com -duanqu.com -duanrong.com -duanshu.com -duantian.com -duanwenxue.com -duanxb.com -duanxin321.com -duanxin520.com -duanyoutv.vip -duanzao001.com -duanzikuaizui.com -duapp.com -duapps.com -duba.com -duba.net -dubaike.com -dubairen.com -dubbo.io -dubprince.com -dubyc.com -dudong.com -dudu25.com -dudubashi.com -dududu.la -dudumeijia.com -duduyu.net -duelcn.com -dugen.com -dugoogle.com -duguying.net -duhao.net -dui.ai -dui1dui.com -dui88.com -dui9999.com -duia.com -duiai.com -duihuashijie.com -duikuang.com -duimg.com -duimin.com -duiopen.com -duishu.com -duitang.com -duitianhe.com -duizhuang.com -dujiaoshou.org -dujiapin.com -dujin.org -dujiza.com -dukechiang.com -dukharo.com -dukuai.com -dulesocks.com -dullong.com -dullr.com -dulwich.org -dumanhua.com -dumasoftware.com -dumeiwen.com -dumi0898.com -dumpapp.com -dun-mfy-cdn.com -dunjiaodu.com -dunkhome.com -dunstanhardcastle.com -dunwang.com -duobei.com -duobeiyun.net -duobiji.com -duocaitou.com -duochang.cc -duodaa.com -duodanke.com -duodaoertong.com -duodian.com -duoduo123.com -duoduobaba.com -duoduocdn.com -duoduodashi.com -duoduoyin.com -duoduoyouli888.com -duoduozb.com -duoduozhifu.com -duoerpharmacy.com -duofriend.com -duogouhui.com -duohou.net -duohui.co -duoic.com -duojiaochong.com -duokaiwang.com -duokan.com -duokanbox.com -duoke.net -duokebao.net -duokebo.com -duoketuan.com -duoku.com -duolabao.com -duolabaocdn.com -duoladayin.com -duolaima.com -duolapiao.com -duolduo.com -duole.com -duolebo.com -duolegame.com -duolerong.com -duoluodeyu.com -duoluosb.com -duomai.com -duomi.com -duomi.me -duomiapp.com -duomicheng.com -duomijuan.com -duomiyou.com -duomni.com -duomu.tv -duopao.com -duoqu.com -duorenwei.com -duorou.com -duosai.com -duose.com -duosenfashion.com -duoshoubang.com -duoshuo.com -duososo.com -duost.com -duotai.net -duote.com -duotegame.com -duoti181.shop -duotoupiao.com -duotuscdn.com -duouoo.com -duowan.com -duowanns.com -duoxiangpai.com -duoximh.com -duoxinqi.com -duoxuanyundian.com -duoyewu.com -duoyi.com -duoyinsu.com -duoyoumi.com -duozhi.com -duozhishidai.com -duozhuayu.com -duozhuayu.net -duoziwang.com -dup2.org -dupan.ink -durongjie.com -dusays.com -dushewang.com -dushicn.com -dushiliren.net -dushimh.com -dushitiyan.com -dushu.com -dushu.io -dushu263.com -dushu365.com -dushu369.com -dushudaren.com -dushuge.net -dushw.com -dustess.com -dustglobal.com -dustit.me -dusulang.com -dute.me -dutenews.com -dutils.com -dutype.com -duuchin.com -duunion.com -duwenxue.com -duwenz.com -duwenzhang.com -duxiaoman.com -duxiaomanfintech.com -duxiaoshuo.com -duxinjianli.com -duxiu.com -duyandb.com -duyao001.com -duyixing.com -duzelong.com -duzhe.com -duzhoumo.com -dv37.com -dv58.com -dvagent.com -dvbbs.net -dvbcn.com -dvcms.com -dvd85.com -dvd94.com -dvdc100.com -dvdjy.com -dvmama.com -dvmission.com -dvr163.com -dvrdydns.com -dvvvs.com -dw.la -dwfei.com -dwhub.net -dwinput.com -dwion.com -dwjoy.com -dwmoniqi.com -dwntme.com -dwnxy.com -dwq.com -dwrh.net -dwsedu.com -dwstatic.com -dwstock.com -dwt.life -dwtedx.com -dwxw.net -dwz.date -dwz.lc -dwz.mk -dwzjd.com -dx-job.com -dx-tech.com -dx00.net -dx04131.com -dx106.com -dx114118.com -dx168.com -dxbei.com -dxclinics.com -dxda.com -dxdlw.com -dxecs.com -dxf5.com -dxf6.com -dxiazaicc.com -dxjs.com -dxlfile.com -dxmjinr.com -dxmpay.com -dxmstatic.com -dxpei.com -dxpmedia.com -dxqyy.com -dxrc.com -dxsaxw.com -dxsbb.com -dxsclass.com -dxsdb.com -dxsng.com -dxsport.com -dxsvr.com -dxszx.com -dxton.com -dxwei.com -dxxnews.com -dxxxfl.com -dxy.com -dxy.me -dxy.net -dxyan.org -dxyb.com -dxycdn.com -dxys.pro -dxzq.net -dxztc.com -dxzx.com -dxzy163.com -dy1905.net -dy2018.com -dy2018.net -dybeta.com -dycar.net -dycars.com -dycdn.com -dycf.net -dycic.net -dycyw.com -dydab.com -dydata.io -dydt.net -dydytt.com -dye-ol.com -dyee.org -dyfc.net -dyg-hec.com -dygang.com -dygangs.com -dygf.com -dygod.org -dygzs.com -dyhjw.com -dyhnbgtsl.xyz -dyhr88.com -dyhxgame.com -dyhzj.com -dyjqd.com -dyketai.net -dykj.site -dylc.com -dyly.com -dyonr.com -dyqc.com -dyrbw.com -dyrcb.net -dyrjjt.com -dytechnolog.com -dytt789.com -dytt7899.com -dytt8.com -dytt8.net -dyxldjy.com -dyxsdwm.com -dyxtw.com -dyxuexin.com -dyxw.com -dyxz.la -dyys.com -dyysoft.net -dyzdx.com -dyzxw.org -dz-z.com -dz.tt -dz11.com -dz19.net -dz1982.com -dz31hao.com -dz88.com -dzbake.com -dzbarcode.com -dzbchina.com -dzblxx.com -dzboligang.com -dzcj.tv -dzcjw.com -dzcmedu.com -dzdiy.com -dzdu.com -dzdvip.com -dzfc.com -dzfxh.com -dzglsb.net -dzgxq.com -dzh.link -dzhaoj.com -dzhope.com -dzhqexpo.com -dzjrc.com -dzkbw.com -dzlaa.com -dzllzg.com -dzmdq.com -dzmhospital.com -dzng.com -dzoptics.com -dzpk.com -dzqu.com -dzr120.com -dzrbs.com -dzrlvy.com -dzsaas.com -dzsaascdn.com -dzsc.com -dzsg.com -dzshengchi.com -dzsm.com -dzsrcw.com -dzssy.com -dztcbj.com -dztcnm.com -dztdkt.com -dztv.tv -dzty365.com -dzvv.com -dzw3.com -dzwebs.net -dzwindows.com -dzwww.com -dzwww.net -dzxwnews.com -dzxxzy.com -dzy.link -dzyqc.com -dzyqh.com -dzyule.com -dzyysb.com -dzyzj.com -dzz.cc -dzzgsw.com -dzzoffice.com -dzzui.com -e-10031.com -e-3lue.com -e-bidding.org -e-bq.com -e-bq.org -e-buychina.com -e-celap.com -e-chinalife.com -e-cloudstore.com -e-cookies.net -e-cspc.com -e-cuc.com -e-dache.com -e-eway.com -e-fangtong.com -e-flyinc.com -e-ging.com -e-ging.net -e-gooo.com -e-hongw.com -e-jjj.com -e-jlt.com -e-kawai.com -e-lining.com -e-lock.xin -e-mallchina.com -e-micromacro.com -e-nci.com -e-net.hk -e-onekey.com -e-picclife.com -e-pointchina.com -e-ruikd.com -e-sleb.com -e-sscard.com -e-tiller.com -e-transformer.com -e-tui.net -e-xina.com -e0514.com -e0575.com -e0734.com -e077.com -e118114.com -e12345.com -e12e.com -e139.com -e1988.com -e213155.com -e21cn.com -e22a.com -e24c.com -e253.com -e2capp.com -e2esoft.com -e2say.com -e360e.com -e360xs.com -e365.org -e365mall.com -e3ol.com -e4008.com -e4221.com -e521.com -e5421.com -e546.net -e5618.com -e5n.com -e5wq.cc -e66666.com -e68cname.com -e7890.com -e7ckr.icu -e7e6.net -e7e7e7.com -e7wei.com -e836g.com -e890.com -e8zw.com -e9377f.com -e9898.com -e99999.com -ea-retina.com -ea3w.com -eabax.com -eachinfo.com -eachnet.com -eachsee.com -eaeb.com -eafifaonline2.com -eagleyun.com -eahui.com -eaibot.com -eaka365.com -eal-ceair.com -ealdi.xyz -eallcn.com -eallerp.com -eallone.com -eamimi.com -eamn.net -earth2037.com -earthedu.com -earthstar-cloud.com -easck.com -eascs.com -easeeyes.com -easemob.com -easerun.com -easesale.com -easeslb.com -easetuner.com -easeus.com -easeyedelivery.com -easilysend.com -easitcn.com -easiu.com -easonad.com -eassos.com -east.net -eastall.com -eastar-group.com -eastbest.com -eastbuy.com -eastchinafair.com -eastcom-sw.com -eastcom.com -eastcom.site -eastcompeace.com -eastcoms.com -eastday.com -eastdesign.net -eastdrama.com -eastdushi.com -easteat.com -eastent.com -easternalong.com -eastforever.com -eastftp.net -eastfu.com -easthome.com -eastib.com -easticloud.com -eastled.com -eastlending.com -eastmannplastics.com -eastmoney.com -eastmoneyfutures.com -eastmoneyloans.com -eastobacco.com -eastpharm.com -eastsilver.com -eastsoo.com -easttone.com -eastups.com -eastwinn.com -easy-all.net -easy-china.com -easy-h5.com -easy-linkholiday.com -easy-mock.com -easy2world.com -easy361.com -easy888.com -easyaq.com -easyar.com -easyarvr.com -easybug.org -easydarwin.org -easyder.com -easydoc.xyz -easyfang.com -easyfapiao.com -easygame2021.com -easygametime.com -easyhaitao.com -easyhexo.com -easyhin.com -easylaa.com -easyliao.com -easyliao.net -easylink.io -easylinkin.com -easylinkin.net -easymorse.com -easymule.com -easynet.vip -easypayx.com -easyreadtech.com -easyrecovery.cc -easyrecovery.net -easyrecoverychina.com -easyrecoverycn.com -easysofthome.com -easyswoole.com -easytifen.com -easytimetv.com -easytite.com -easytocn.com -easytouch.com -easytrip.com -easyzw.com -eateapp.com -eaydu.com -eayou.com -eayuan.com -eayyou.com -eazytec-cloud.com -eb-ind.com -eb80.com -ebadu.net -ebaifo.com -ebaina.com -ebangchina.com -ebanma.com -ebanshu.net -ebaoquan.org -ebaotech.com -ebasset.com -ebchina.com -ebchinaintl.com -ebchinatech.com -ebdan.net -ebdoor.com -ebfcn.com -ebfortune.com -ebibi.com -ebico.com -ebigear.com -ebiobuy.com -ebioe.com -ebiotrade.com -ebioweb.com -ebjfinance.com -ebkj.net -eblockschina.com -ebnew.com -ebocert.com -ebookbao.net -ebookmen.com -ebopark.com -eboxmaker.com -ebrun.com -ebscn-am.com -ebscn.com -ebseek.com -ebsfw.com -ebtang.com -ebtrust.com -ebuckler.com -ebways.com -ec-ae.com -ec-cloudtech.com -ec-founder.com -ec-world.com -ec.com -ec3s.com -ec51.com -ec517.com -ec66.com -ecadi.com -ecaidian.com -ecaihr.com -ecami.xyz -ecamzone.cc -ecaray.com -ecare365.com -ecartoon.net -ecarxgroup.com -ecbcamp.com -ecboo.com -eccang.com -eccc-china.com -eccdnx.com -eccn.com -eccnmall.com -ecco-market.com -ecctaa.com -ecdpower.net -ecduo.com -eceibs.com -eceibs.net -eceibs20.com -ecej.com -ecer.com -ecezt.com -ecgci.com -ecgoods.com -echanceyun.com -echangye.com -echao8.com -echargenet.com -echarpile.com -echatsoft.com -echead.com -echepiao.com -echiele.com -echinacareers.com -echinacities.com -echinagov.com -echinatobacco.com -echo-isoftstone.com -echo188.com -echodns.xyz -echoing.tech -echoteen.com -echuandan.com -eciawards.org -ecice06.com -ecinnovations.com -ecitic.com -eciticcfc.com -ecjobhome.com -ecjson.com -eckjzx.com -eckwai.com -ecloud-gdu.com -ecloud.hk -ecmagnet.com -ecmoban.com -ecnu.net -ecnudec.com -ecoalchina.com -ecocn.org -ecombdapi.com -ecombdimg.com -ecombdstatic.com -ecombdvod.com -ecomoter.com -econewstv.com -ecool.site -ecoplastech.com -ecoprint.tech -ecorr.org -ecouser.net -ecovacs.com -ecp888.com -ecparty.net -ecphk.com -ecppn.com -ecqun.com -ecrrc.com -ecs004.com -ecs6.com -ecsage.net -ecshop.com -ecshop123.com -ecsits.com -ecsponline.com -ecsvst.com -ecsxs.com -ectrip.com -ecuc123.net -ecukwai.com -ecustmde.com -ecvv.com -ecwan77.net -ecydm.com -ecyj.net -ecyti.com -ed2000.com -ed2kers.com -ed2kk.com -eda-china.com -eda1024.com -eda2.com -eda365.com -eda365.net -edabbs.com -edaboss.com -edacn.net -edadoc.com -edagit.com -edai.com -edaibo.com -edaili.com -edaixi.com -edaizhijia.com -edajob.com -edanji.com -edaocha.com -edatahome.com -edatop.com -edawiki.com -edb-tech.com -edcba.com -eddic.net -eddycjy.com -ede35.com -edge-byted.com -edgesrv.com -edhic.com -edianshang.com -edianzu.com -ediclot.com -edifier.com -edimei.com -edingzhuan.com -editcode.net -ediuschina.com -edk24.com -edmadf.com -edmcn.net -edns.com -edodocs.com -edojia.com -edong.com -edongeejiao.com -edongli.net -edongyun.com -edoou.com -edowning.net -edozx.com -edqgk.com -edragongame.com -edrawsoft.com -edsionte.com -edspay.com -edt2017.com -edt2018.com -edtsoft.com -edu-book.com -edu-chineseembassy-uk.org -edu-cj.com -edu-nw.com -edu-shanghai.net -edu03.com -edu0851.com -edu201.com -edu24o1.com -edu24ol.com -edu4399.com -edu510.com -edu5a.com -edu63.com -edu777.com -edu80.com -edu84.com -edu84.net -edu88.com -eduartisan.com -educg.net -educhn.net -educoder.net -edudc.net -eduease.com -eduego.com -eduei.com -eduglobal.com -eduglobalchina.com -eduiso.com -edujia.com -edujianshe.com -edujiaoyu.com -edumail.pub -eduour.com -edupm.com -edurck.com -edushi.com -edusoho.com -edusoho.net -edutao.com -edutime.net -edutt.com -eduu.com -eduuu.com -eduwenzheng.com -eduwest.com -eduwo.com -eduwx.com -eduxiao.com -eduxiji.net -eduyf.com -eduyo.com -eduzhai.net -eduzhi.com -eduzhixin.com -eduzs.net -edward-han.com -edwiv.com -ee-nav.com -ee1234.com -ee68.com -ee8828.com -eebbk.com -eebbk.net -eeblog.net -eeboard.com -eechina.com -eecn.cc -eecnt.com -eecourse.com -eecso.com -eedevice.com -eedns.com -eee-eee.com -eee4.com -eeedri.com -eeedu.net -eeeen.com -eeeetop.com -eeeff.com -eeeknow.com -eeeqi.net -eeetb.com -eefans.com -eefcdn.com -eeff.net -eefocus.com -eehu.com -eeio99.com -eeioe.com -eelly.com -eeook.com -eeparking.com -eeq8.com -eeqiu.com -eeskill.com -eeso.net -eetoday.com -eetop.com -eetrend.com -eetrust.com -eeworld.com -eeworm.com -eexiaoshuo.com -eexing.com -eeyaa.net -eeyxs.com -eeyy.com -eeyys.com -eezml.com -ef-cdn.com -ef360.com -ef360.net -ef9377.com -efala.net -efang.tv -efapiao.com -efashionchina.com -efe.cc -efengji.org -efesco.com -eff-soft.com -effapp.com -effetspositifs.com -efficient.hk -effirst.com -efivestar.com -efly.cc -eflybird.com -eflycloud.com -eflydns.net -efnchina.com -efotile.com -efount.com -efoxconn.com -efpp.com -efucms.com -efueloil.com -efuncn.com -efunent.com -efunq.com -efwh.com -efy-tech.com -efyzhcwk.cfd -egainnews.com -egcmedia.com -egg-born.org -zzcm2.com -eggjs.org -eggtt.com -egongzheng.com -egoonet.com -egotops.com -egou.com -egou0515.com -egouz.com -egovsum.com -egreatworld.com -egret-labs.org -egret.com -egrowads.com -egsea.com -egshuyuan.com -egt365.com -ehafo.com -ehaier.com -ehaiwang.com -ehangtian.com -ehaoyao.com -ehaoyao.us -ehclglobal.com -ehcoo.com -ehealthcareforum.com -ehedco.com -eheren.com -ehijoy.com -ehinvest.hk -ehnasia.com -ehnchina.com -ehome5.com -ehome8.com -ehomeclouds.com -ehomeday.com -ehouse411.com -ehousechina.com -ehoutai.com -ehowbuy.com -ehowbuy.net -ehsy.com -ehtttop.com -ehualu.com -ehuarun.com -ehuatai.com -ehub.net -ehui.net -ehujia.com -ehuoke.com -ehuoyan.com -ehuzhu.com -ehvacr.com -ei6nd.com -eiabbs.net -eickaopei.com -eicodesign.com -eicp.net -eid-sft.com -eidcenter.com -eidlink.com -eigenvr.com -eightbridge.com -eightedu.com -eigpay.com -eiicn.com -eiimg.com -eiisys.com -eilieili.cc -eimoney.com -eingdong.com -einkcn.com -eintone.com -eiot.com -eiray.com -eisoo.com -eistudy.com -eit0571.com -ej22g.com -ejamad.com -ejcms.com -ejcop.com -ejdyin.com -ejectu.com -ejee.com -ejeegroup.com -ejfeng.com -ejiacn.com -ejianmedia.com -ejiayu.com -ejie.me -ejinqiao.com -ejinshan.net -ejion.net -ejiyao.com -ejktj.com -ejmrh.com -ejoy.com -ejoy365.com -ejoy365hk.com -ejrfood.com -ejttp.com -eju.com -ejudata.com -ejujiu.com -ejunshi.com -ejustcn.com -ek6.com -ekaidian.com -ekan001.com -ekang99.com -ekaobang.com -ekaoyan.com -ekaoyan365.com -ekclubinternational.com -ekuaibao.com -ekwangs.com -ekweixin.com -elabinfo.com -elane.com -elanso.com -elanw.com -elawoffice.net -elbmodel.com -eldawa.com -ele.me -ele001.com -ele12.com -elecfans.com -elecfans.net -elecinfo.com -elecrystal.com -elecshop.com -eleduck.com -elefang.com -eleme.io -elemecdn.com -element3ds.com -elementfresh.com -elenet.me -elephant-base.com -elex-tech.net -elexcon.com -elfartworld.com -elfinbook.com -elfjs.com -elgnet.com -elht.com -elian5.com -elianhong.com -elianmeng.vip -elichtmedia.com -elikeme.com -elikeme.net -elitecrm.com -eliushi.com -eliwang.com -elkpi.com -ellechina.com -elleffgee.com -ellemen.com -elliotxing.com -ellll.com -elmerlxy.com -eloancn.com -elong-edm.com -elong.com -elong.net -elongshine.com -elongstatic.com -elontest.com -eloonggame.com -elpcon.com -elpwc.com -els001.com -elsenow.com -elsz5.xyz -elt-china.com -eltws.com -eluosidy.com -eluxiu.com -eluying.com -elvgufen.com -elvshi.com -elvxing.net -elxk.com -em-ide.com -emadao.com -emaileds.com -emailflame.com -emailxqq.com -emakerzone.com -emall001.com -emao.com -emao.net -emarbox.com -emas-poc.com -emaup.com -embcom.net -embed.cc -embedfire.com -embedhq.org -embedsky.com -embedtrain.org -embedu.org -embedunion.com -embedway.com -embest-tech.com -embryform.com -embsky.com -emcbj.com -emcsosin.com -emeixs.com -emen.ltd -emepu.com -emilhk.com -emjob.com -emlinix.com -emlog.net -emodor.com -emojimobile.com -emojiwiz.com -emqx.com -emqx.net -emrl0z.com -ems-audio.com -ems517.com -emsec.hk -emshost.com -emsym.com -emtana.com -emtronix.com -emtx.com -emu999.net -emuban.com -emuch.net -emugif.com -emui.com -emui.tech -emuia.com -emulatedlab.com -emumax.com -emupic.com -emushroom.net -emwan.com -emyard.com -en.tm -en51.com -en8848.com -en998.com -ename.com -ename.net -enappstore.com -enaw-almg3.com -enbowang.com -enbrands.com -enec.net -enelcn.com -enet360.com -enetedu.com -enfi.vip -enfodesk.com -eng24.com -eng888.com -engeniustec.com -engkoo.com -englishgoai.com -englishtownpromotion.com -engloncar.com -engpx.com -engr-z.com -enguo.com -engz.net -enicn.com -enjoy.link -enjoy1992.com -enjoy3c.com -enjoydiy.com -enjoyfe.com -enjoying3d.com -enjoykorea.net -enjoymeet.com -enjoyyue.com -enjoyz.com -enkichen.com -enkiorder.com -enkj.com -enlightent.com -enlistsecurely.com -enlistsecureup.com -enmonster.com -enmotech.com -enmuo.com -enn-ng.com -ennresearch.com -ennweekly.com -enoya.com -enpapers.com -enqoo.com -enread.com -enroo.com -enroobbs.com -enrz.com -enshide.com -enshijob.com -ensotemple.com -enstylement.com -ent120.com -enterdesk.com -enunix.com -envisioncn.com -envisionhealthstudio.com -enyamusical.com -enzj.com -eoaoo.com -eoeandroid.com -eoemarket.com -eoemarket.net -eoffcn.com -eoivisa.com -eol8.com -eolink.com -eolinker.com -eomoy.com -eonun.com -eooioo.com -eoopoo.com -eooqoo.com -eoouoo.com -eoozoo.com -eoriver.com -eorzea.moe -eosantpool.com -ep-china.net -epaas.net -epaiclub.com -epailive.com -epalfish.com -epama.com -epanshi.com -epay.com -epbiao.com -epchina.com -epcnn.com -epcsw.com -epday.com -epeaksport.com -epeiyin.com -epet.com -epetbar.com -epetpet.com -epexpo-asia.com -ephen.me -epian1.com -epichust.com -epinautomation.com -epinduo.com -epinga.com -epinjob.com -epinv.com -epinzu.com -epjike.com -epjob88.com -epkey.com -eplove.com -epoos.com -eprezi.com -epsonconnect.com -epstsoft.com -epub360.com -epubchina.com -epubit.com -epweike.com -epwitkey.com -epwk.com -epzcw.com -eqbyc.com -eqding.com -eqh5.com -eqidi.com -eqie.com -eqifa.com -eqigou.com -eqingdan.com -eqiseo.com -eqishare.com -eqixiu.com -eqiyingxiao.com -eqmobi.com -eqnvip.com -equn.com -eqxiu.com -eqxiu.mobi -eqxiul.com -eqxiuzhan.com -eqyn.com -eqz.cc -er07.com -er236.com -eraclean.com -eran123.com -eranet-dns.com -eranet.com -ercc.cc -erdaicms.com -erdangame.xyz -erdangjiade.com -erdianzhang.com -erdong.site -erdosrcb.com -erentalcarpro.com -ereuiib.com -erfdhiu.com -erg2008.com -ergecdn.com -ergedd.com -ergengtech.com -ergengtv.com -ergouzi.fun -erhkpo.com -ericfu.me -erichfund.com -erji.com -erji.net -erke.com -erldoc.com -erlo.vip -erlou.com -ermao.com -ermiao.com -ernaonet.com -ernest.me -ernxzc.com -eroacg.com -erongdu.com -erpang.cc -erpcoo.com -ershenghuo.net -ershicimi.com -ershouhui.com -ersjk.com -ert295.com -ert7.com -ertmineq.com -ertonggushi.com -ertongkongjian.com -ertongtuku.com -ertoutiao.com -erun360.com -erutluv.com -erya100.com -eryajf.net -eryyutu.com -es-soccer.com -es123.com -es9e.com -esa2000.com -esafenet.com -esavip.com -escdn.com -esclass.com -esdaxiagu.com -esde.cc -esellerbox-case.com -esemseo.com -esensoft.com -esfimg.com -eshangle.com -esheep.com -eshenlin.com -eshimin.com -eshiyun.info -eshop-switch.com -eshopb2c.com -eshow365.com -eshufa.com -eshukan.com -eshuu.com -eshzp.com -esinidc.com -esk365.com -esky8.com -eskysky.com -eslosity.com -esmartwave.com -esmod-beijing.com -esmplus.com -esnai.com -esnai.net -esoboy.com -eson.org -esoo.org -esouou.com -esouti.com -esoyu.com -espnlol.com -esqc.xyz -esr.com -essaystar.com -essca.com -essclick.com -essemi.com -essencefund.com -ession.com -essjj.com -essurl.com -essyy.com -estock.cc -estory365.com -estrongs.com -estudychinese.com -esugimoto.com -esun21.com -esun88.com -esuniao.com -esunny.com -eswin.com -eswxj.com -eswzx.com -esycd.com -eszmall.com -esztsg.org -esztyg.com -eszwdx.com -eszyb.com -et-fine.com -et59.com -etao.com -etaog.com -etccenter.com -etcchebao.com -etcsd.com -etelux.com -eternalsakura.com -eternalsys.com -etescape.com -etest8.com -eteste.com -etf.group -etf88.com -ethainan.com -ethan.pub -ethercap.com -ethfans.org -etiantian.com -etiantian.net -etiantian.org -etimeusa.com -etiv.me -etjournals.com -etlong.com -etmchina.com -etmoc.com -etmt1.com -etocrm.com -etomlink.com -etongdai.com -etongguan.com -etonkidd.com -etoote.com -etoplive.com -etoubao.com -etowz.com -etpass.com -etrack01.com -etrack02.com -etrack03.com -etrack04.com -etrack05.com -etrack07.com -etrack08.com -etranshare.com -etrd.org -etrump.net -ets100.com -etsc-tech.com -etsoon.com -etsstar.com -etstock.net -ettbl.org -ettdnsv.com -ettshop.com -etu6.com -etuan.com -etudu.com -etycx.com -etyy.com -etyyy.com -etz927.com -etzuqiu.com -eu4cn.com -eub-inc.com -euci-software.com -eudic.net -eueueu.com -eufaka.com -eugnnn.com -eui.cc -euibe.com -eulike.com -eulixos.com -eureka.name -eurochinesedaily.com -eusercenter.com -ev123.com -ev123.net -ev3ds.com -eva001.com -evaad.com -evacg.co -evancg.com -evask360.com -evcar.com -evcard.com -evcard.vip -evdays.com -eve.moe -eventdove.com -everbaas.com -everbright.com -everdns.com -evereasycom.com -everedit.net -everet.org -evergrande.com -evergrandeauto.com -everknight.net -evernakedcake.com -eversino.com -everstar.xyz -everstray.com -everturst.com -everybodygame.com -everychina.com -everydo.com -everyinch.net -everyouthtech.com -evestemptation.com -evewan.com -evfchina.com -evget.com -evhui.com -evideostb.com -evilbinary.org -evileyesaint.com -evilwind.fun -evketang.com -evlook.com -evoc.com -evotrue.com -evv1.com -evzhidao.com -ew9z.com -ewaga.com -ewang.com -ewanshang.com -ewarecomputer.com -ewatt.com -ewceo.com -ewdcloud.com -ewdtx.com -ewebeditor.net -ewebsoft.com -ewecha.com -ewei.com -eweiqi.com -ewen.co -ewenyan.com -ewerew.com -ewide.net -ewidecloud.com -ewidewater.com -ewin007.com -ewinall.com -ewku.com -ewoka.com -ewomail.com -eworksglobal.com -eworldship.com -ewpeinfo.com -ewqcxz.com -ewstudy.com -ewtang.com -ewteacher.com -ewuqa.com -ex-silver.com -ex-starch.com -exam58.com -exam76.com -exam8.com -examcoo.com -examda.com -examebook.com -examk.com -exampx.com -exands.com -exaphotons.com -exasic.com -exbot.net -excake.com -excalibur.link -excbio.com -excean.com -excel8.com -excel880.com -excelcn.com -excelhome.net -excelpx.com -exceltip.net -exchen.net -excm.net -exdoll.com -exexm.com -exezhanqun.com -exfree.com -exhera.com -exiaoba.com -exinee.com -exmailgz.com -exmailqq.com -exmrw.com -exnpk.com -exntech.com -exo-mk.com -expba.com -expdns.net -expertizaobuvi.com -expin.site -expingworld.com -expiredns.net -expirenotification.com -expirepausedns.com -expku.com -expoeye.net -exponingbo.com -expoon.com -expoooo.com -expotu.com -expowindow.com -expresscompanynetwork.com -expreview.com -expsky.com -exsvc.net -ext2fsd.com -extbrand.com -extfans.com -exthin.net -extmail.org -extron-tech.com -extscreen.com -extstars.com -exuanfang.cc -exuanpin.com -exuanshi.com -exuekt.com -exuezhe.com -exxstar.com -exxvip.com -ey-app.com -ey100.com -ey99.com -eyangguang.com -eyangmedia.com -eyao168.com -eyaobei.com -eyasglobal.com -eyasgloble.com -eydata.net -eye024.com -eye027.com -eye0712.com -eye0731.com -eye0746.com -eyeabc.com -eyee.com -eyejin.com -eyeofcloud.com -eyeofcloud.net -eyepetizer.net -eyesar.com -eyeshenzhen.com -eyeso.net -eyhsj.com -eyili.com -eyingyubao.com -eyoodns.com -eyou.com -eyou.net -eyoucms.com -eyourbusiness.com -eyprint.com -eyu2017.xyz -eyuangong.com -eyuconnect.com -eyugame.com -eyunidc.com -eyunker.com -eyunzhu.com -eyurumen.com -eyuyan.com -eyuyan.la -eyuyao.com -eywedu.com -eywedu.net -eywedu.org -eyy168.com -ez-leaf.com -ezagoo.com -ezaiai.com -ezbuypay.com -ezca.org -ezchip.tech -ezcname.com -ezcpt.com -ezcun.com -ezdnscenter.com -ezeroshop.com -ezgckg.com -ezhangdan.com -ezhangu.com -ezhicai.com -ezhijiantuoluo.com -ezhun.com -ezitong.com -ezlippi.com -ezliushao.com -ezloo.com -ezlost.com -ezne.net -eznowdns.com -eznowdns.net -ezone-h5.com -ezpaychain.com -ezpro.pro -ezrpro.com -ezsmth.com -eztcn.com -eztest.org -eztg.com -eztvnet.com -ezucoo.com -ezwan.com -f-0.cc -f-stack.org -f.cx -f008.com -f0580.com -f09qgja1.com -f1-shanghai.com -f139.com -f1688.com -f1zd.com -f2e.im -f2qu.com -f2time.com -f2zd.com -f315.cc -f32365.com -f3322.org -f41g.com -f537.com -f5432.com -f54321.com -f5gh.com -f5sd.com -f5yx.com -f7777.net -fa-today.com -fa68.com -faakee.com -faanw.com -fabang.com -fabao365.com -fabaofoundation.com -fabiao.com -fabiaoqing.com -fabigbig.com -fabu114.com -faburuanwen.com -facaishiyi.com -facang.com -face100.net -face2ai.com -faceboer.com -facecloud.net -facehufu.com -faceid.com -faceplusplus.com -faceu.com -faceu.mobi -faceu.net -faceui.com -faceunity.com -fachcloud.com -facri.com -factj.com -factube.com -fad123.com -fadada.com -fadaren.com -fadesky.com -fadfunds.com -fadior.cc -fadoudou.com -fadsc.com -fadui.com -fafa9.com -fafa986.com -fafaku.com -fafawang.com -fafeng.com -fafuli.com -fagaoshi.com -fageka.com -fagua.net -fahai.com -fahao8.com -faidev.cc -faidns.com -faimallusr.com -faioo.com -faipod.com -fairguard.net -fairguard.tech -fairhr.com -fairygui.com -fairysoftware.com -fairytest.com -faiscm.com -faisco.com -faisys.com -faiusr.com -faiusrd.com -faiww.com -fajiayun.com -fakeloc.cc -falomall.com -faloo.com -fameile.net -famen88.com -famens.com -famensi.com -famicn.com -famige.com -familiacanina.com -familykoloro.com -familylifemag.com -famiyou.com -famulei.com -fan-lun.com -fan-xun.com -fan-yong.com -fan88.com -fanai.com -fancl-vip.com -fancyapi.com -fancydsp.com -fancyecommerce.com -fandengds.com -fandian.com -fandongxi.com -fane8.com -fanerkongjian.com -fanfannet.com -fanfou.com -fang-te.com -fang-zhou.com -fang.com -fang33.com -fang668.com -fang91.com -fang99.cc -fang99.com -fangbaoqiang.net -fangbei.org -fangbx.com -fangcang.com -fangchan.com -fangchan0573.com -fangchanhz.com -fangchip.com -fangcloud.com -fangdaijisuanqi.com -fangdd.com -fangdichanceo.com -fangdr.com -fangfa.net -fangfaku.net -fangguanjg.com -fanghuafu.com -fanghuihui.com -fanghuob.com -fanging.com -fangjia.com -fangjiadp.com -fangkeduo.net -fangkewang.com -fangkuai.link -fangkuaiwang.com -fangkuaiyi.com -fanglakeji.com -fangle.com -fanglimei.com -fanglinad.com -fanglist.com -fanglitong.com -fangmeileju.com -fangqk.com -fangshanzi.com -fangsi.net -fangstar.com -fangtan007.com -fangtangtv.com -fangte.com -fangtingzfc.com -fangtoo.com -fangtoon.com -fangtuwang.com -fangtx.com -fangwei315.com -fangweima.com -fangwuzaixian.com -fangxiaobao.net -fangxiaoer.com -fangxin.com -fangxinbao.com -fangxinmai.com -fangxinzhuomian.com -fangxuela.com -fangyb.com -fangyi.com -fangyiai.com -fangying.tv -fangyou.com -fangyouquan.com -fangyuan365.com -fangyuange.com -fangyunlin.com -fangzd.com -fangzhipeng.com -fangzhouad.com -fangzhouzi.com -fangzongguan.com -fanhai-hk.com -fanhai8.com -fanhaoyue.com -fanhonghua.net -fanhougame.com -fanhuan.com -fanhuan.org -faniuwenda.com -fanjian.net -fanjianhome.com -fanjinyan.com -fankebang.com -fankhome.com -fanli.com -fanli001.net -fanlibei.com -fanlicome.com -fanlihe.com -fanlijinfu.com -fanlisaas.com -fanlitou.com -fanmugua.net -fannaojiputi.com -fanpusoft.com -fanqiang.com -fanqianzhushou.com -fanqie.im -fanqienovel.com -fanqier.com -fanqiesdkpic.com -fanqiesoq.com -fanqietuan.com -fanqievv.com -fanqiewin10.com -fanqiexitong.com -fanquanba.com -fanquanwang.com -fanruan.com -fanruanclub.com -fans1.com -fans8.com -fansgu.com -fanshicekong.com -fanshui.net -fansiji.com -fansimg.com -fansjoy.net -fansobattery.com -fansoon.com -fansx.com -fansyes.com -fantablade.com -fantaiai.com -fantaicdn.net -fantanggame.com -fantatech.com -fantawild.com -fante.com -fantong.com -fanttec.com -fantuanhd.com -fanuchdf.com -fanw8.com -fanwe.com -fanwen118.com -fanwenbaike.com -fanwenq.com -fanwenzhan.com -fanxian.com -fanxiang.com -fanxiaocuo.com -fanxiaojian.com -fanxing.com -fanxingshidaitech.com -fanxuefei.com -fany-eda.com -fany-online.com -fanyantao.com -fanyeda.com -fanyedu.com -fanyeong.com -fanyi.com -fanyia.com -fanyibase.com -fanyigou.com -fanyigou.net -fanyijia.com -fanyiqi.net -fanyishang.com -fanypcb.com -fanyu.com -fanyu.work -fanyueciyuan.info -fanyuip.com -fanzehua.com -fanzhiyang.com -fanzoe.com -fapharm.com -fapiao.com -fapiao365.com -fapiaobang.com -faqianjia.com -faqrobot.org -far123.com -far2000.com -faradayfuturecn.com -fareastcontainers.com -farenhui.com -farennews.com -farerdak.com -farisl.com -farmkd.com -farmsec.com -farsee2.com -farsightdev.com -fas-bee.com -fashaoyou.net -fasheng.org -fashengba.com -fashuounion.com -fasionchan.com -fast.im -fastadmin.net -fastapi.net -fastcdn.com -fastcuting.com -fastdo.cc -fastgit.org -fastgz.com -fastidea.cc -fastliii.com -fastmirror.org -fastmis.com -fastmock.site -fastmovie88.com -fastmyna.com -fastonetech.com -fastreportcn.com -fastsoc.com -fastsoso.cc -faststatics.com -fat999.com -fatbobman.com -fatedier.com -fateskins.com -fatiao.pro -fatjio.xyz -fatjiong.com -fatvg.com -favdeb.com -favopen.com -favorites.ren -faw-benteng.com -faw-vw.com -fawaitui.com -fawan.com -fawulu.com -faxdns.com -faxdns.net -faxingchina.com -faxingcn.com -faxingsj.com -faxingtupian.com -faxingzhan.com -faxiufang.com -faxsun.com -faxuan.net -fayea.com -fayifa.com -fayiyi.com -fayurumen.com -fazhijx.com -fazz.fun -fb.mu -fbabi.com -fbaichuan.com -fbank.com -fbirdsmall.com -fbkjapp.com -fblife.com -fbook.net -fbsjedu.com -fbuy365.com -fbxslw.com -fc0531.com -fc0633.com -fc571.com -fc811.com -fcachinagsdp.com -fcai.com -fcapp.run -fcb16888.com -fcbox.com -fcchbj.com -fccs.com -fccscar.com -fcczp.com -fcgsnews.com -fcgtt.com -fcjob.net -fcjob88.com -fclouddns.net -fcloudpaas.com -fcnes.com -fcpiao.com -fcpowerup.com -fcrc114.com -fcsc.com -fcvvip.com -fcww19.com -fcxxh.org -fcyhw.com -fcz360.com -fczx.com -fd-trust.com -fd7c.com -fdcyun.com -fdczbstatic.com -fdddf.com -fdeent.org -fdemo.com -fdevops.com -fdjzu.com -fdkjgz.com -fdkm88.com -fdlbeckwai.com -fdlt.net -fdmgj.com -fdpx.com -fdqh360.com -fdsr.org -fduky.com -fdzq.com -fe-cable.com -fe2x.cc -fe520.com -feadi.com -fecn.net -fecshop.com -fedte.cc -feeclouds.com -feedcoopapi.com -feedou.com -feedsky.com -feedss.com -feeey.com -feehi.com -feekr.com -feelcars.com -feelchat.net -feelec.net -feemoo.vip -feepan.com -feesoon.com -feeyan.com -feeye.com -feeyeah.com -feeyo.com -feeyun.com -fegine.com -feheadline.com -fei-hong.com -fei580.com -feiair.com -feibaizhu.com -feibaokeji.com -feibing.tech -feibisi.com -feibisi.org -feibit.com -feibo.com -feicool.com -feicui168.com -feicuiwuyu.com -feidaep.com -feidavalve.com -feidee.com -feidee.net -feidieshuo.com -feidou.com -feie.work -feierlaiedu.com -feifanblog.com -feifandesign.com -feifanindustry.com -feifantxt.net -feifanwangg.com -feifei.com -feifeiboke.com -feifeicms.co -feifeixitong.com -feiffy.cc -feifustudio.com -feige.ee -feigo.fun -feihe.com -feihu.me -feihuo.com -feihutaoke.com -feijiu.net -feijizu.com -feikongbao.com -feiku.com -feilasi.com -feiliao.com -feiliks.com -feilu.cc -feilvway.com -feimalv.com -feimanzb.com -feimao666.com -feimaoyun.com -feimayun.com -feimosheji.com -feiniao.name -feiniaomy.com -feiniu.com -feiniubus.com -feinno.com -feiphp.com -feipin.com -feipinzhan.com -feiq18.com -feirar.com -feiren.com -feisan.net -feishu-3rd-party-services.com -feishu.net -feishucdn.com -feishupkg.com -feisu.com -feitian001.com -feitianwu7.com -feitsui.com -feiwentianxia.com -feixiaoquan.com -feixiong.tv -feixuege.com -feixueteam.net -feiyang.com -feiyang233.club -feiyit.com -feiyu.com -feiyuapi.com -feiyue.online -feiyunjs.com -feiyunxiazai.com -feiyuteam.com -feizan.com -feizhaojun.com -feizhu.com -feizhupan.com -felicitysolar.com -feling.net -felink.com -felix021.com -femrice.com -fenbaner.net -fenbei.com -fenbeijinfu.com -fenbi.com -fenby.com -fencescn.com -fenduotie.com -fenfen.com -fenfenriji.com -fenfenwz.com -fenfenzh.cc -feng.com -feng1.com -fengakj.com -fengbao.com -fengbaowo.com -fengbolive.com -fengbuy.com -fengchizixun.com -fengchuanba.com -fengchui.cc -fengchusheng.com -fengcms.com -fengcx.com -fengdu.com -fengduqi.com -fengedu.com -fengeek.com -fengeini.com -fengex.com -fengfeng.cc -fenghenever.com -fenghong.tech -fenghuaju.cc -fenghuidongman.com -fenghuoyunji.com -fengimg.com -fengj.com -fengji.me -fengji.net -fengjing.com -fengjinketang.com -fengjr.com -fengkongcloud.com -fengkuangzaoren.com -fengkui.net -fengli.com -fengli.su -fenglinjiu.com -fengmanginfo.com -fengmaniu.com -fengmeng.net -fengmk2.com -fengnayun.com -fengniao.com -fengniaohuanjing.com -fengniaojr.com -fengone.com -fengpengjun.com -fengpintech.com -fengread.com -fengshangweekly.com -fengshi.tech -fengsung.com -fengsuniang.com -fengtai.tv -fengtalk.com -fengtouwang.com -fengtupic.com -fengwanyx.com -fengwenyi.com -fengwo.com -fengxian110.com -fengxianrc.com -fengxiaotx.com -fengxuan.co -fengxuelin.com -fengyan.cc -fengyang.fun -fengyitong.name -fengyuansufen.com -fengyuncad.com -fengyuncx.com -fengyunpdf.com -fengyushan.com -fengyx.com -fengzhangame.net -fengzixbs.com -fenha.net -fenking.club -fenlei168.com -fenlei265.com -fenleidao.com -fenleitong.com -fenliu.net -fennessy.hk -fenqihome.com -fenqile.com -fenqix.com -fenqubiao.com -fens.me -fensebook.com -fenshua123.com -fensishenghuo.com -fenxi.cc -fenxi.com -fenxi.org -fenxiangdashi.com -fenxianglife.com -fenxiyi.com -fenxuekeji.com -fenyu.net -fenyucn.com -fenzhi.com -fenzijr.com -feotech.com -fequan.com -ferlie.net -fersese.com -fescoadecco.com -fescogroup.com -festaint.com -fetion-portal.com -fetiononline.com -fetionpic.com -feverassets.net -fevte.com -feydj.com -ff14yuanxiang.com -ff54.ink -ff63.com -ff8828.com -ffan.com -ffasp.com -ffbon.com -ffbuddy.com -ffcell.com -ffdns.net -ffeeii.com -ffepower.com -ffff.cc -ffgpol.com -ffhre.com -ffis.me -ffmarket.com -ffmomola.com -ffode.com -ffpedia.com -ffpk-cdn.xyz -ffquan.com -ffsgame.com -ffsky.com -fft.plus -fft123.com -ffxiv.co -ffxivhuntcn.com -ffyinxiang.com -ffzww.com -fg.cc -fgcndigital.com -fgeekcloud.com -fghi34.com -fgidna.com -fgkj.cc -fgo-teamup.com -fgo.wiki -fgowiki.com -fh1551.com -fh21.com -fh21static.com -fh77.com -fh77.net -fh86.com -fhadmin.org -fhd001.com -fhdjh.com -fhg90.com -fhhgj.com -fhldns.com -fhlun.com -fhmion.com -fhoverseas.com -fhrl2018.com -fhrlw.com -fhtao.com -fhtj.com -fhtlw.com -fhtre.com -fhwlgs.com -fhycedu.com -fhycs.com -fhyx.com -fhyx.hk -fhyx.online -fi1818.com -fi94.com -fiberhome.com -fiberhomegroup.com -fibocom.com -fibodata.com -fibrlink.net -ficochina.net -fiehff.com -fieldschina.com -fifedu.com -fifo.cc -fifsky.com -fiinote.com -fiio.com -fiio.net -filcochina.com -file001.com -filediag.com -fillersmart.com -fillseo.com -fim34s.com -fimmu.com -fimvisual.com -fin-shine.com -finacerun.com -finaltheory.me -financeun.com -financialstreetforum.com -finchain.info -finchina.com -finclip.com -finderweb.net -findhro.com -findic.com -findic.kr -findic.tw -findic.us -findlawimg.com -findmyfun.xyz -findoout.com -findshu.net -findxk.com -findyou.xin -findzd.com -finebi.com -fineidc.com -finer2.com -finereport.com -finereporthelp.com -finetopix.com -fineui.com -fineway.com -finewyx.com -fineyoga.com -finger66.com -fingerstylechina.com -fingertc.com -fingu.com -fingu.net -finndy.com -finogeeks.com -finshell-cib.com -fintechinchina.com -fintechquan.com -finupfriends.com -finupgroup.com -finzfin.com -finzjr.com -fiphoenix.com -fir.vip -firadio.net -fire233.com -fire2333.com -firebirdprint.com -fireemblem.net -fireemulator.com -fireflyacg.com -firepx.com -firetry.com -firevale.com -firhq.com -firim.ink -firstdrs.com -firstfood-cn.com -firstheartbeat.net -firstlinkapp.com -firstonesource.com -firstp2p.com -firstproduction.net -firstsolver.com -fish2bird.com -fish3000.com -fishapi.com -fishcn.com -fisherac.com -fishfay.com -fishing-sinkers.com -fishingjoy.com -fishings.biz -fishlee.net -fishmobi.com -fishs.com -fishtui.com -fit-start.co -fit-time.com -fitbbs.com -fitoneapp.com -fivestarsolar.com -fixdown.com -fixhdd.org -fixsub.net -fiyta.com -fj-atfz.com -fj10010.com -fj173.net -fj2000.com -fj263.com -fj96336.com -fj987.com -fjber.com -fjbgwl.com -fjcoop.com -fjcqjy.com -fjcyl.org -fjdaily.com -fjdh.com -fjdnf.com -fjeca.com -fjfoxiang.com -fjgdwl.com -fjgwy.org -fjhcw.com -fjhrss.com -fjhxbank.com -fjhxcaee.com -fjii.com -fjjcjy.com -fjjsp01.com -fjjszg.com -fjjyt.net -fjkqyy.com -fjlh.com -fjly.com -fjmlh.com -fjmstc.com -fjnacc.com -fjndwb.com -fjnet.com -fjotic.com -fjpta.com -fjreading.com -fjsdn.com -fjsen.com -fjsfa.org -fjsfy.com -fjsj.com -fjstfc.com -fjtelecom.com -fjtianya.com -fjtv.net -fjty1688.com -fjutu.com -fjvs.org -fjxiehe.com -fjxisuzi.com -fjxn.com -fjycw.com -fjyy.org -fjzixun.com -fjzol.com -fk100.com -fkblog.org -fkblz.com -fkcaijing.com -fkdmg.com -fkdxg.com -fke6.com -fkesfg.com -fkhdview.com -fkjie.com -fklngy.com -fkpbaoll.com -fkw.com -fkw100.com -fkxs.net -fkyuer.com -fkyun.com -fkzgz.com -fl-game.net -fl0632.com -fl168.com -fl365.com -fl5.co -flachina.com -flacro.me -flamecdn.com -flamesky.org -flamingcold.com -flan1688.com -flaredup.com -flash8.net -flash8f.com -flashgame163.com -flashgene.com -flashgirlz.com -flashmemoryworld.com -flashv8.com -flashwar.com -flashwing.net -flawcache.com -flduo.com -fle078.com -flexifont.com -fleyun.com -flgwx.com -flidc.net -fliggy.com -fliggy.hk -flintos.com -flip.fun -fliplus.com -floatingislandapps.com -flomoapp.com -flooc.com -floor181.com -floorb2b.com -florentiavillage.com -flower188.com -flower33.com -flowever.net -flowportal.com -flpsz.com -flstudiochina.com -fltacn.com -fltau.com -fltcsb.com -fltrp.com -fluke-ig.com -flutterchina.club -flvcd.com -flvsp.com -flvurl.net -flxc.net -flxdns.com -flxz.com -fly1999.com -fly3949.com -fly63.com -flyco.com -flycua.com -flydigi.com -flyenglish.com -flyert.com -flyertea.com -flyertrip.com -flyfishx.com -flyfunny.com -flygo.net -flygon.net -flyhand.com -flyine.net -flyme.com -flymeos.com -flyml.net -flymobi.biz -flymopaper.com -flypy.com -flysheep6.com -flytexpress.com -flyxg.com -flyzy.com -flyzyblog.net -flzc.com -flzhan.com -fm-uivs.com -fm0754.com -fm120.com -fm3838.com -fm4399.com -fm520.com -fm918.net -fm960.net -fmbimg.com -zzcm1.com -fminers.com -fmpan.com -fmsh.com -fmtol.com -fmtt6.xyz -fmwei.com -fmwhahaha.com -fmy90.com -fmzsjc.com -fn-mart.com -fn-tech.com -fn.com -fnconn.com -fnetlink.com -fnf-foods.com -fnfcutlery.com -fngz01.com -fnji.com -fnjiasu.com -fnjsq.com -fnkq.com -fnkslift.com -fnmobi.com -fnnsh.com -fnrcw.com -fnrczp.com -fnscore.com -fnvip100.com -fnysb.com -fob123.com -fob168.com -fobshanghai.com -focalbrand.com -focalhot.com -fochot.com -focus-eloan.com -focus-fusion.com -focuschina.com -focussend.com -fodian.net -fodlab.com -fodoco.com -fofa.info -fofa.so -foguanghui.org -folou.com -fomen123.com -foneplatform.com -fongmong.com -fongser.net -fonsoft.net -fonsview.com -font.im -font5.com -font6.com -fontke.com -food028.com -foodaily.com -foodbk.com -foodjx.com -foodmate.net -foods1.com -foodsc.net -foodspace.net -foodszs.com -foodu14.com -foofish.net -fooher.com -foojoo.com -fookwood.com -fookyik.com -fooleap.org -foooooot.com -footcdn.com -fooww.com -for-compass.com -for-she.com -for512.com -for68.com -forbeschina.com -forbetty.com -forbuyers.com -forcemz.net -forcger.com -ford.com -fordgo.com -forenose.com -forerunnercollege.com -foreseamall.com -foresightfund.com -foresl.com -forestfood.com -forestpolice.org -foreveross.com -forgame.com -forindata.com -forkeji.com -forlinx.com -form-create.com -formtalk.net -formysql.com -fornature.com -forrealbio.com -forrerri.com -forsou.com -forthxu.com -fortiortech.com -fortunebill.com -fortunebs.net -fortunevc.com -forwardgroup.com -forwe.store -foryone.com -foryougroup.com -fos.cc -foscam.com -foshanaosibo.com -foshanmuseum.com -foshannews.com -foshannews.net -foshanplus.com -fosi.hk -fosss.org -fosun-uhi.com -fosun.com -fosunholiday.com -fosunmetal.com -fosunpharma.com -fotao.name -fotao9.com -fotile.com -fotileglobal.com -fotilestyle.com -fotoe.com -fotomore.com -fotoplace.cc -fotosay.com -fototuan.com -foumeng.com -founder.com -founderbn.com -foundercentury.com -foundereagle.com -founderff.com -founderfu.com -founderic.com -founderinternational.com -founderit.com -founderpcb.com -founderpod.com -foundersc.com -founderstruth.org -foundertech.com -foundertype.com -foundpdf.com -founpad.com -fountask.com -four-faith.com -fovmy.com -fox-studio.net -fox008.com -fox800.xyz -foxconn.com -foxera.com -foxmail.com -foxphp.com -foxtable.com -foxweixin.com -foxwho.com -foxwq.com -foxzld.com -foyuan.net -fpdclub.net -fpdisplay.com -fpga-china.com -fpgabbs.com -fpgaw.com -fphis.com -fphs5.com -fpliu.com -fpoll.net -fps7.com -fpsace.com -fpwap.com -fpxz.net -fqapps.com -fqgj.net -fqis.xin -fqjob.net -fqnovel.com -fqnovelpic.com -fqnovelstatic.com -fqnovelvod.com -fqpai.com -fqxdw.com -fqxs.org -zzcjby.com -fr-trading.com -fr2007.com -fractal-technology.com -framemaker.com -francissoung.com -francochinois.com -franzsandner.com -fraproperty.com -frdabe.com -frdic.com -fread.com -fredamd.com -free-api.com -free-e.net -free-eyepro.com -free-img.com -free789.com -freebuf.com -freecat.work -freecplus.net -freedgo.com -freedomcribs.com -freefrp.net -freegeeker.com -freehome25.net -freehpcg.com -freeidea.win -freejishu.com -freekaobo.com -freekaoyan.com -freekeyan.com -freelycode.com -freelynet.com -freemancn.com -freemdict.com -freemindworld.com -freemoban.com -freemudgame.com -freeoa.net -freeqingnovel.com -freericheyes.com -freeshoppingchina.com -freessl.org -freeuid.com -freewhale.net -freeydch.com -freeyun.com -freezl.net -frensworkz.com -freqchina.com -fresh-ideas.cc -freshhema.com -freshippo.com -freshnewsnet.com -frhelper.com -friendeye.com -fright-tattoo.com -fringe-zero.com -friok.com -frlh168.com -frombyte.com -fromgeek.com -fromhomelearn.com -fromwiz.com -frontjs.com -frontopen.com -frontwize.com -frostwell.cc -frostwell.net -frostwing98.com -fruitday.com -frysb.com -fs-ade.com -zzcdsl.com -fs0757.com -fs121.com -fs31.com -fs315.org -fs7000.com -fsaligzf.com -fsbankonline.com -fsc555.com -fscinda.com -fscjkj.net -fsclzs.com -fscm.tech -fscmjt.com -fsdnp.cyou -fsecity.com -fsesa.com -fsfsfz.com -fsfund.com -fsgejian.com -fsggb.com -fsghgt.com -fsgplus.com -fsgzhg.com -fshd.com -fshzg.com -fsigc.com -fsirya.com -fsjoy.com -fsky.pro -fslgz.com -fsllq.com -fslsg.com -fsmama.com -fsmeeting.com -fsmy88888.com -fsoptronics.com -fsoufsou.com -fspage.com -fspcdn.com -fspinqiu.com -fssfs.com -fsshenneng.com -fstaoci.com -fstcb.com -fsthr.com -fstrhb.com -fswl66.com -fsxchina.com -fsxdwy.com -fsxinfengyi.com -fsxshjz.com -fsxsj.net -fsyule.net -ft12.com -ft22.com -ft3e.com -ftaro.com -ftbj.net -ftcauction.com -ftcgj.com -ftfast.com -ftfund.com -fthformal.com -ftium4.com -ftnormal00ab.com -ftqq.com -ftsafe.com -ftsfund.com -ftt.me -ftuan.com -ftxad.com -ftxgame.com -ftxsoccer.com -ftzn.net -fu-guan.com -fu57.com -fubaofei.com -fuchaoqun.com -fuckingdata.com -fucnm.com -fucol.club -fudaiapp.com -fudanglp.com -fudanmed.com -fudanpress.com -fudian-bank.com -fuedf.org -fufeng-group.com -fufuok.com -fugetech.com -fugui.net -fuhai360.com -fuhancapital.com -fuhanziben.com -fuhaodaquan.org -fuhaoku.com -fuheng.org -fuhuibao.club -fui.im -fuimg.com -fuiou.com -fuioupay.com -fujfu.com -fujiabin.com -fujianrc.com -fujiansme.com -fujianyinruan.com -fujieace.com -fujinjiazheng.com -fuka.cc -fukeha.com -fulantv.com -fuli1024.com -fuli404.net -fuliansheng.com -fuliao.com -fulijd.com -fulimin.org -fulin.org -fulinedu.com -fuling.com -fulingwx.com -fuliquan.com -fuliti.com -fuliw.net -full-way.com -fulllinks.com -fullstack.love -fulou.life -fultree.com -fulu.com -fumake.com -fumi.com -fumu.com -fumubang.com -fumuhui.com -fun-pix.com -fun.tv -funcdn.com -funchat.cc -functionads.com -fund001.com -fundebug.com -fundebug.net -fundog.cc -fundrive.com -funeralchain.com -funfungolf.com -funi.com -funinput.com -funiutang.net -funjsq.com -funletu.com -funliving.com -funnull31.com -funnull33.com -funnullv27.com -funnullv28.com -funnullv29.com -funnycore.com -funnyplaying.com -funplay66.com -funshion.com -funshion.net -funshipin.com -funtoygame.com -funvge.com -funwear.com -funxun.com -funyqq.com -furenkeji.com -furongedu.com -furrybar.com -furrychina.com -furuijiaju.vip -fusaide.com -fusion-inte.com -fusion.design -fute.com -futianlvshi.com -futufin.com -futuhn.com -futuniuniu.com -futunn.com -futureengineer.org -futureprize.org -futurescircle.com -futurescontest.com -fututrade.com -fuwa.org -fuwai.com -fuwaliuxue.com -fuweivision.com -fuwit.com -fuwj.com -fuwo.com -fuwuce.com -fuwuqinet.com -fuwuqu.com -fuxiafood.com -fuxinbank.com -fuxingtech.com -fuxingwang.com -fuxunpay.com -fuyangtv.com -fuych.net -fuyinchina.com -fuyou888.com -fuyoubank.com -fuyoukache.com -fuyuan5.com -fuyuandian.com -fuyuncc.com -fuyuncun.com -fuyuzhe.com -fuz.cc -fuzadu.com -fuzamei.com -fuzeetech.com -fuzegame.com -fuzfu.net -fuzhimao.com -fuzhoufashi.com -fuzhuangwang.com -fuzhugo.com -fview.com -fvo2o.com -fvti.com -fw-12365.com -fw365.online -fw4.co -fw4.me -fwcranes.com -fwdq.com -fwdqw.com -fwhzxxgbyy.com -fwqbdn.com -fwqtg.net -fwqzx.com -fwsir.com -fwtoys.com -fwxgx.com -fwzjia.com -fx120.net -fx168api.com -fx168vip.com -fx3q.com -fx678.com -fx678.net -fx678red.com -fxbaogao.com -fxcccbbs.com -fxclass.net -fxcsxb.com -fxcw.com -fxdm.net -fxdp.com -fxian.org -fxiaoke.com -fxl1950.com -fxlbb.com -fxltsbl.com -fxm.so -fxngpih.com -fxo2opt.com -fxpan.com -fxsw.net -fxtrip.com -fxtrips.com -fxw.la -fxwst.com -fxxw.net -fxxww.net -fxxz.com -fxzhj.com -fxzhjapp.com -fxzygc.com -fy-data.com -fy-game.com -fy027.com -fy169.net -fy35.com -fy558.com -fy65.com -fy98.com -fyapi.net -fybiji.com -fybxw.com -fychinago.com -fycpu.com -fydeos.com -fydns2023.com -fydns360.net -fyeds.com -fyeds0.com -fyeds1.com -fyeds2.com -fyeds3.com -fyeds4.com -fyeds5.com -fyeds6.com -fyeds7.com -fyeds8.com -fyeds9.com -fyfch.com -fygame.com -fygdrs.com -fygsoft.com -fyhapp66.com -fyigou.com -fyjsz.net -fymall0.com -fymall1.com -fymall4.com -fymall7.com -fymall9.com -fymallqa0.com -fymallqa1.com -fymallqa2.com -fymallqa3.com -fymallqa4.com -fymallqa7.com -fymallqa9.com -fynas.com -fynews.net -fyqnbg.com -fyrcbk.com -fyrexian.com -fyrsks.com -fyrwzz.com -fysoft3.com -fytcw.com -fytxonline.com -fytz.net -fyuanpack.com -fyvart.com -fywx.cc -fyxfcw.com -fyxxwb.com -fyyljkgl.com -fyyy.com -fyzku.com -fz222.com -fz2sc.com -fz597.com -fzahw.com -fzaqjy.com -fzccpit.org -fzcyjh.com -fzdmag.com -fzengine.com -fzf.com -fzfinancing.com -fzfzjx.com -fzg360.com -fzithome.com -fzjdct.com -fzjxw.com -fzl7.com -fzlawyers.net -fzlbar.com -fzlft.com -fzlol.com -fzmama.net -fzmeetdecor.com -fzn.cc -fzrsrc.com -fzshbx.org -fzsjob.com -fzwcn.com -fzxiaomange.com -fzxyyqd.com -fzyfan.com -fzyfan.net -fzyfs.net -fzzqcdn.com -g-emall.com -g-photography.net -g-var.com -g12345.com -g12e.com -g168.net -g188.net -g1c5.com -g1d.net -g1f5.com -g2.link -g207.com -g2g1.com -g2h3.com -g2us.com -g2work.com -g32365.com -g3d.org -g3img.com -g3user.com -g4weixin.com -g5h4.com -g72.com -g77775555.com -g77776666.com -g80mx.com -g88885555.com -g88886666.com -g931.com -ga001.com -ga002.com -ga25.com -gaapqcloud.com -gabrielmangano.com -gabuleu.com -gac-capital.com -gac-nio.com -gacfca.com -gacfcasales.com -gacfiatauto.com -gaclib.net -gacmotor.com -gacsofinco.com -gadscc.xyz -gaeadata.com -gaeamobile.net -gafata.com -gafei.com -gagaga.icu -gagaga.tech -gagahi.com -gagalee.ink -gagaslklxjasdkafj.com -gai.net -gaiamount.com -gaibar.com -gain-coupon.com -gainda.net -gainet.com -gaingreat.com -gaini.net -gairuo.com -gaitu.com -gaituba.com -gaitubao.com -gaitubao.net -gaituya.com -gaixue.com -gaiyadajidali.com -gaizhui.com -galaxix.com -galaxy-immi.com -galaxyappstore.com -galaxyasset.com -galaxyfont.com -galaxyinfo.com -galaxyns.net -gallopgazelle.com -galsun.com -galudisu.info -gamdream.com -game-as.com -game-props.com -game-reign.com -game12315.com -game13.com -game2.com -game234.com -game345.com -game3vs7novel.com -game5.com -game5399.com -game5iw.com -game798.com -game900.com -game9g.com -gameabc.com -gameabc2.com -gamebaike.com -gamebar.com -gamebean.com -gamebean.net -gamebee.net -gamebonfire.com -gamebto.com -gamecat.fun -gamecatstudio.com -gamecomb.com -gamecps.com -gamed9.com -gamedo.org -gameegg.com -gameexp.com -gamefk.com -gamefm.com -gamefv.com -gamehome.tv -gameinns.com -gameitop.com -gamejym.com -gamekee.com -gamekuaishou.com -gameley.com -gameloop.com -gameloveman.com -gamemale.com -gamemei.com -gamememories.net -gameol.com -gamepf.com -gamept.com -gamerboom.com -gameres.com -gamerhome.com -gamerhome.net -gamermake.com -gamersky.com -gamerstorm.com -gamesh.com -gameshr.com -gamesifu.com -gamesir.com -gametanzi.com -gametaptap.com -gametdd.com -gamethk.com -gametrees.com -gamett.net -gametu.net -gameweibo.com -gamewifi.net -gamexdd.com -gamexhb.com -gamexz.com -gameyisi.com -gamfe.com -gammatimes.com -gamutsoft.com -gamux.org -gan-ren.com -ganduee.com -ganggg.com -ganggouwang.com -gangguan8.com -ganghaowang.com -gangpaibao.com -gangqinpu.com -gangqinxiansheng.com -ganhuoche.com -ganhuodaquan.com -ganji.com -ganjiangrc.com -ganjinshengtai.com -ganjistatic1.com -ganjistatic2.com -gank-studio.com -gank.io -gankang.com -gankgames.com -gankh5.com -ganlv.org -ganlvji.com -ganniu.com -ganode.org -ganqi.com -ganqi.net -ganso.net -gansuairport.com -gantanhao.vip -ganwan.com -ganxianw.com -ganxianzhi.win -ganzhe.com -ganzhishi.com -gao.bo -gao.com -gao3d.com -gao4.com -gao7.com -gao7gao8.com -gaobei.com -gaocangyun.com -gaocegege.com -gaochengnews.net -gaochun.info -gaodabio.com -gaodage.com -gaode.com -gaodilicai.com -gaoding.com -gaoduanqianzheng.com -gaodugj.com -gaodun.com -gaodunwangxiao.com -gaofang.cloud -gaofangcache.com -gaofangz.com -gaofeib2c.com -gaofeie.com -gaofen.com -gaofenplatform.com -gaoguai.com -gaoguangcn.com -gaogulou.com -gaohaipeng.com -gaohangip.com -gaohr.com -gaoimg.com -gaoji.ren -gaojianli.me -gaojie.com -gaojihealth.com -gaojipro.com -gaokao.com -gaokao365.com -gaokao789.com -gaokaobaoming.com -gaokaohelp.com -gaokaopai.com -gaokaoq.com -gaokaozhiku.com -gaokin.com -gaokong.org -gaokowl.com -gaokw.com -gaokzx.com -gaolouimg.com -gaomeluo.com -gaomizixun.com -gaomon.net -gaopaiwood.com -gaopeng.com -gaoqingpai.com -gaoqiwenda.com -gaoqixhb.com -gaore.com -gaosan.com -gaoshou.me -gaoshouvr.com -gaoshouyou.com -gaosiedu.com -gaosivip.com -gaosouyi.com -gaosu.com -gaosudu.com -gaotang.cc -gaotie.net -gaotieshike.com -gaotu006.club -gaotu100.com -gaotuxueyuan.com -gaowoip.com -gaoxiaobang.com -gaoxiaojob.com -gaoxin123.com -gaoxinkc.com -gaoyimodel.com -gaoyizaixian.com -gaoyoujob.com -gaozhaiedu.com -gaozhongwuli.com -gaozhouba.com -gap.hk -gapitech.com -gara.cc -garden-aquarium.com -gardencn.com -garmuri.com -garnoc.com -garphy.com -garply.com -garqnv.xyz -gas-analyzers.com -gasfw.com -gasgoo.com -gashr.com -gasshow.com -gaszx.com -gate-dhgames.com -gateface.com -gather-dns.com -gathernames.com -gaussianoptics.com -gavindesign.com -gaxgame.com -gaxrmyy.com -gbase8a.com -gbasebi.com -gbdex.com -gbgba.com -gbhome.com -gbiac.net -gbicdn.com -gbicom.com -gblhgk.com -gbofd.com -gboooo.com -gbphar.com -gbpjam.com -gbt88.com -gbtranswins.com -gbw114.com -gc-zb.com -gc1616.com -gc39.com -gc600.com -gccdn.net -gcchina.com -gccmgw.com -gcdcrs.com -gcgd.net -gchao.com -gcihotel.net -gcimg.net -gcjc.com -gcjr.com -gcjx123.com -gcl-et.com -gcloudcs.com -gcloudcstest.com -gcloudcstestonly.com -gclouddolphin.com -gcloudgbs.com -gcloudsdk.com -gcmc.cc -gcoreinc.com -gcores.com -gcstorage.com -gcsz.net -gctd.xyz -gcwduoduo.com -gcwith.com -gcyts.com -gczp.cc -gczyg.com -gd-china.com -gd-hskj.com -gd-id.com -gd-linux.com -gd-linux.org -gd1580.com -gd165.com -gd2000.org -gd32.com -gd32mcu.com -gd3n.com -gda086.com -gdadjs.com -gdadri.com -gdatacube.net -gdbhnk.com -gdbljd.com -gdcct.com -gdcic.net -gdcoop.com -gdcrj.com -gdcts.com -gdctsvisa.com -gdcyl.org -gdczyy.com -gddata.net -gddcm.com -gddg.cc -gddhn.com -gddtop.com -gdeams.com -gdebidding.com -gdefair.com -gdems.com -gdevops.com -gdforestry.com -gdfplaza.com -gdgcep.com -gdggkf.com -gdgudong.com -gdgwyw.com -gdgzhengzhou.com -gdhaoma.com -gdhbsh.com -gdhwater.com -gdhy0668.com -gdie.com -gdinfo.net -gdiso.com -gdjdxy.com -gdjinge.com -gdjqwl.com -gdjyw.com -gdkepler.com -gdkjb.com -gdkjw.com -gdkszx.com -gdkz88.com -gdlalian.com -gdlins.com -gdliontech.com -gdlsgz.com -gdmm.com -gdmoa.org -gdmschina.com -gdmuseum.com -gdmxjy.com -gdong.com -gdou.com -gdpyrtvu.com -gdqianyou.com -gdqynews.com -gdrc.com -gdrc360.com -gdrc365.com -gdrcu.com -gdrfyy.com -gds-services.com -gdscse.net -gdsdwan.com -gdshisha.com -gdslwl.com -gdsports.net -gdsrcw.com -zzccom.com -gdstlab.com -gdswine.com -gdsxgd.com -gdsytech.com -gdszjgdj.org -gdszkw.com -gdtai.com -gdtaihao.com -gdtex.com -gdtextbook.com -gdtimg.com -gdtone.com -gdtongjiang.com -gdtravel.com -gdttc.com -gdtz888.com -gdunis.com -gdupi.com -gdvolunteer.net -gdwca.com -gdwlife.com -gdxinya.com -gdxxb.com -gdyegu.com -gdyjs.com -gdysdz.com -gdyunyin.net -gdyxc.com -gdzhongshan.com -gdzp.org -gdzrlj.com -gdzs2018.cc -gdzs2018.vip -gdzsxx.com -gdzuoxie.com -gdzzz.com -ge-garden.net -ge100.com -geakr.com -geality.com -geapu.com -gearfront.net -gearkr.com -geautos.com -gebilaoshi.com -gebiqu.com -gec123.com -geci345.com -gecimi.com -gedou8.com -gedoumi.com -gedu.org -geeboo.com -geebook.com -geedai.com -geedu.com -geeetech.com -geeeu.com -geejing.com -geek-docs.com -geek-era.com -geek-papa.com -geek-share.com -geek-workshop.com -geekbang.org -geekbangtech.com -geekcar.com -geekdata.com -geekdive.com -geekercloud.com -geekerconsulting.com -geekfan.net -geekfans.com -geekhub.com -geekiron.com -geekluo.com -geekmaker.com -geekman.vip -geekpark.net -geekpwn.org -geeksblog.cc -geektutu.com -geeku.net -geekwom.com -geekxue.com -geely.com -geement.com -geeqee.com -geermunews.com -geeseteam.com -geetest.com -geevisit.com -geewaza.com -geexek.com -geeyep.com -geezn.com -gegejia.com -gegeyingshi.com -gei6.com -geicloud.com -geihuasuan.com -geihui.com -geilicdn.com -geilijiasu.com -geimian.com -geindex.com -geiniwan.com -geisnic.com -geizan.cc -gejiba.com -gelicang.net -gelics.com -gelonghui.com -gelu.me -gemchina.com -gemdale.com -gemii.cc -gemini-galaxy.com -gemini530.net -geminight.com -gempoll.com -gemuedu.com -genbaike.com -genban.org -gendantong.com -geneskies.com -genetalks.com -geneworldcn.com -gengchuangz.com -gengnie.com -gengzhongbang.com -genial.vip -geniatech.com -geniusite.com -genrace.com -genscript.com -gensee.com -genshuixue.com -gentags.com -gentags.net -genuway.com -genzhuang.org -zzbtv.com -zzbs.org -zzbq.org -geo2k.com -geogsci.com -geohey.com -geoidc.com -geospatialsmart.com -geotmt.com -gepresearch.com -gepubbs.com -gepush.com -gequ77.com -gequdaquan.net -gerenjianli.com -gerhard-china.com -geruihuate.com -gesanghua.org -gesep.com -geshitong.net -geshui.com -geshui100.com -geshui99.com -geshuiw.com -gesuo.com -get.vip -get233.com -getbs.com -getcai.com -getcn.net -gethover.com -getiis.com -getiot.tech -getip.name -getkwai.com -getlema.com -getmarkman.com -getquicker.net -getsurfboard.com -getu.fun -getui.com -getui.net -getui.vip -getulab.com -getvidi.co -gewai-cnc.com -gewala.com -gewara.com -gewu.vc -gexiao.me -gexiaocloud.com -gexing.com -gexing.me -gexings.com -gexingzipai.com -geyo.com -geyoukj.com -gezhixq.net -gezida.com -gezila.com -gf-cloud.com -gf-funds.com -gf.app -gf.cc -gfan.com -gfanstore.com -gfcdn.xyz -gfcname.com -gfcvisa.com -gfd178.com -gfdj99665.com -gfdns.net -gfdsa.net -gfdun.icu -gfedu.com -gffirm.com -gffwq.com -gfglb.com -gfjl.org -gfrtrttweet.com -gfttek.com -gftuan.com -gfun.me -gfund.com -gfxaa.com -gfxcamp.com -gfxtr1.com -gfxy.com -gfzj.us -gg-lb.com -gg-led.com -gg1994.com -gg8828.com -ggac.net -ggcida.com -ggcj.com -ggcykf.com -ggdata.com -ggemo.com -ggerg.com -ggeye.com -ggg42.com -ggg868.com -gggqa.com -ggjrw.com -ggjstz.com -ggjtfw.com -gglenglish.com -ggmm777.com -ggo.la -ggo.net -ggqule.com -ggqx.com -ggsafe.com -ggsq.cc -ggt1024.com -ggwan.com -ggwan.net -ggweb.net -ggxx.net -ggxxe.com -ggzuhao.com -gh6.org -gh716398.cc -gh8s.com -ghatg.com -ghboke.com -ghgy.com -ghibliwiki.org -ghjie.com -ghlawyer.net -ghlearning.com -ghmba.com -ghmcchina.com -gho5.com -ghost008.com -ghost11.com -ghost123.com -ghost64.com -ghostchina.com -ghostsf.com -ghostw7.com -ghostwin10.net -ghostwin7.net -ghostxp2.com -ghostxpsp3.net -ghproxy.com -ghpy3333.com -ghpym.com -ghrlib.com -ghs.net -ghsmpwalmart.com -ght.me -ghwgame.com -ghxi.com -ghxsw.com -ghyg.com -ghzhushou.com -ghzs.com -ghzs666.com -giabbs.com -giaimg.com -giant-cycling-lifestyle.com -giantcdn.com -gibcp.com -giccoo.com -gicp.net -giexya.com -gif5.net -gifcool.com -giffox.com -gifhome.com -gifshow.com -giftsbeijing.com -gifu-pr.com -giga-da.com -giga-science.com -gigabyte.com -gigaget.com -gihg.com -giho.com -giikin.com -giiso.com -gildata.com -gilieye.com -giltbridge.com -giltworld.com -gimcyun.com -gimhoy.com -gimmgimm.com -gimoo.net -ginshio.org -gio.ren -giocdn.com -gionee.com -gionee.net -giordano.com -giraff3.com -girls-frontline.com -girlsfighters.com -girlw.net -giscafer.com -giser.net -giserdqy.com -gissaas.com -gissky.net -git-star.com -gitbook.net -gitcafe.net -gitclone.com -gitcode.com -gitcode.net -gitee.com -gitee.io -githang.com -github.red -githubusercontents.com -gitlee.com -gitlib.com -gitlore.com -gitmirror.com -gitnavi.com -gitnoteapp.com -gitsea.com -gitv.tv -gityuan.com -gityx.com -giveda.com -giveme5.cc -giwkgb.com -giyu8.com -gizwits.com -gj515.com -gjalk.com -gjb9001b.com -gjbaek.ren -gjceshi9.com -gjds.vip -gjdwzp.com -gjfax.com -gjfmxd.com -gjgwy.net -gjgwy.org -gjgzpw.com -gjjcxw.com -gjjnhb.com -gjmrk.com -gjnlyd.com -gjpdh.com -gjrwls.com -gjsj.com -gjtjjp.com -gjw.com -gjw123.com -gjxh.org -gjyys.com -gjzy.com -gk-net.com -gk-z.com -gk.link -gk100.com -gk114.com -gk99.com -gkbbapp.com -gkcyc.com -gkczgs.com -gkdgz.com -gkfb.com -gkkxd.com -gkmhq.com -gkmotor.com -gkong.com -gkoudai.com -gkpass.com -gkshuju.com -gktianshanjd.com -gkwo.net -gkxd.com -gkzhan.com -gkzj.net -gkzxw.com -gkzyb.com -gl-data.com -gl-inet.com -gl102.com -gl258.com -glab.online -glamever.com -glamourred.com -glanimaltrade.com -glanu.com -glasseasy.com -glawyer.net -glb3.com -glb6.com -glbdns.com -glcanyin.net -glcct.com -glclcsy.com -gldtztc.com -gleasy.com -glface.com -glgczk.com -glgoo.com -glgoo.net -glgoo.org -glhospital.com -glinfo.com -glinkmedia.com -gllue.com -gllue.me -gllue.net -glmama.com -glmapper.com -zzbd.org -global-harbor.com -global-idc.net -global-jf.com -global-scsl.com -global-tractor.com -global-trade-center.com -globalaccentchinese.com -globalbuy.cc -globalcompressor.com -globaldangdang.hk -globaletrust.com -globalhardwares.com -globalimporter.net -globalizex.com -globalmil.com -globalpingbao.com -globalscanner.com -globalslb.net -globalsources.com -globalstech.com -globeauto.org -globeedu.com -globeimmi.com -globrand.com -globrand.net -glodon.com -glofang.com -gloryre.com -gloryview.com -glorze.com -glosku.com -glowapp.fun -glqh.com -glshimg.com -gltjk.com -gltop.com -glvs.com -glxf110.com -glxinhu.com -glxlawyer.com -glzip.com -glzj88.com -glztj.com -gm193.com -gm2007.com -gm825.com -gm86.com -gm88.com -gm99game.net -gmacsaic.com -gmcc.net -gmcchina.net -gmdun.com -gmed.cc -gmem.cc -gmfintl.com -gmgc.info -gmgdc.com -gmgm668.com -gmhysj.com -gmilesquan.com -gming.org -gmiot.net -gmit.vip -gmjk.com -gmm01.com -gmmch5.com -gmmicro.com -gmmsj.com -gmonline-all.com -gmpanel.com -gmrmyy.com -gmssl.org -gmt-china.org -gmtv.cc -gmugmu.com -gmwiki.com -gmwtp.com -gmwuf.com -gmxmym.ren -gmz88.com -gmzhushou.com -gmzi.com -gn168.com -gndaily.com -gneec.com -gneec3.com -gneec4.com -gneec7.com -gnehr.com -gnetis.com -gng92.com -gnhpc.com -gnrcbank.com -gnssinfo.com -gnssopenlab.org -gnvip.net -gnway.com -go-gddq.com -go-goal.com -go.cc -go007.com -go05.cc -go108.com -go24k.com -go2aaron.com -go2hn.com -go2map.com -go2tu.com -go2yd.com -go300.com -go5.cc -goalhi.com -goalmobi.com -goapk.com -gobanma.com -gobasearcher.com -gobelike.net -gobivc.com -gocarjourney.com -gocashback.com -gocchina.com -gocea.net -goceshi.com -gochego.com -gocn.vip -gocye.com -godaily.org -godasai.com -godbiao.com -godblessyuan.com -goddelivery.com -goddessxzns.com -godeve.com -godic.net -godida.com -godiy8.com -godo.pub -godoor.com -godruoyi.com -godsheepteam.com -godsignal.com -godungit.com -godweiyang.com -godwolf.com -goeasy.io -goel-ptfe.com -goepe.com -goertek.com -goetheslz.com -goforandroid.com -goframe.org -gogbuy.com -gogo.so -gogo123.com -gogoauc.com -gogofly.com -gogojiang.com -gogokid.com -gogolinux.com -gogooffer.com -gogopzh.com -gogoqq.com -gogoup.com -gohighfund.com -goho.co -gohoedu.com -gohom.win -gohomesafe.org -gohong.com -gohugo.org -going-link.com -gojiaju.com -gojiscm.com -gokaigai.com -goke.com -gokols.com -gokuai.com -golangapi.com -golanger.com -golangweb.com -golaravel.com -gold-v.com -gold58.com -gold678.com -goldav.net -golday666.com -golday999.com -golday9999.com -goldbj.com -goldbox.vip -golden-book.com -golden-infor.com -goldenad.net -goldenholiday.com -goldenhome.cc -goldenname.com -goldentom.com -goldgrid.com -goldhoe.com -goldlvshi.com -goldmantis.com -goldmarkrealestate.com -goldstonepack.com -goldsunchn.com -goldtoutiao.com -golf568.com -golfvv.com -golink.com -golinksworld.com -golive-tv.com -golivetv.tv -golue.com -gomeart.com -gomecloud.com -gomegj.com -gomeholdings.com -gomehome.com -gomeplus.com -gomo.com -gonb.org -gonever.com -gong123.com -gongbaike.com -gongboshi.com -gongcdn.com -gongchang.com -gongchengbing.com -gongchou.com -gongfubb.com -gongfudou.com -gongheshengshi.com -gongjiao.com -gongjiaomi.com -gongju.com -gongju5.com -gongjuji.net -gongkaoleida.com -gongkong.com -gongkong001.com -gongkongbpo.com -gongkongedu.com -gongkongke.com -gongkongmall.com -gongmutang.com -gongnou.com -gongpin.net -gongpingjia.com -gongshang120.com -gongsibao.com -gongsijiaoyi.com -gongsizhijia.com -gongwuxing.com -gongxiangcj.com -gongxiao8.com -gongxuku.com -gongye360.com -gongyeku.com -gongyelian.com -gongyeyun.com -gongyi.xin -gongyicn.org -gongyingshi.com -gongyishibao.com -gongyixiang.com -gongyoumishu.com -gongzicp.com -gongzifu.com -gongzuobaogao.xyz -gongzuoshouji.net -gongzuoyun.org -gonsun.com -gonvvama.net -goo17.com -gooagoo.com -gooann.com -goobye.net -good-display.com -good-import.com -good.cc -good1230.com -good321.net -goodapk.com -goodbaby.com -goodbabygroup.com -goodbaike.com -goodcloud.xyz -goodcti.com -gooddr.com -gooddu.com -goodealwigs.com -goodera8.com -goodgupiao.com -goodid.com -goodix.com -goodjd.com -goodjili.com -goodkejian.com -goodlcm.com -goodlucknet.com -goodmorening.com -goodnic.net -goodprogrammer.org -goodrain.com -goods-brand.com -goodstudydayup.com -goodtea.cc -goodtp.com -goodzuji.com -goofish.com -googlebridge.com -googlenav.com -googlevip8.com -googlevoice.org -googleyixia.com -googvv.com -goolink.org -gooo8.com -gooogua.com -gooooal.com -goooob.com -gooood.hk -goootech.com -goootu.com -goosai.com -goosail.com -gooseeker.com -goosetalk.com -gooxi.com -gooyo.com -goozp.com -gopedu.com -gopeed.com -goplaycn.com -goplayervideo.com -goproxy.io -gorichox.com -gorouter.info -gorse.com -goselling.com -goshijia.com -gosinoic.com -gospelwin.com -gosuncdn.com -gosuncdn.net -gosunm.com -goten.com -goto-game.com -goto-game.mobi -goto-game.org -goto2jump.com -gotocdn.com -gotodn.com -gotohz.com -gotohzrb.com -gotoip.net -gotoip1.com -gotoip11.com -gotoip2.com -gotoip3.com -gotoip4.com -gotoip55.com -gotoip88.com -gotokeep.com -gotolink.net -gotonav.com -gotonets.com -gotostudyroom.com -gotoubi.com -gotozhuan.com -gotran.com -gotvg.com -gouchezj.com -goufang.com -goufw.com -gougoujp.com -gougoumh.com -gouhai.com -gouhao.com -gouhaowang.com -gouhuasuan.shop -goukuai.com -goulew.com -goulong.com -goumee.com -goumin.com -goupuzi.com -goushh.com -gouso.com -gousu.com -gouwanmei.com -gouwubang.com -gouwuke.com -gouwuyu.com -gouyoukeji.com -govfz.com -govmade.com -govqcloud.com -gow100.com -gowan8.com -goweb2.net -goweb3.net -goweike.net -gowinamc.com -gowincms.com -gowinlease.com -gowinxp.com -gowithmi.com -goyihu.com -goyoo.com -gozap.com -gp-tm.com -gp123.cc -gp1903.com -gp1907.com -gp241.com -gp259.com -gp451.com -gp51.com -gp88888.com -gp891.com -gpai.net -gpautobid.com -gpbctv.com -gpbeta.com -gpcqjy.com -gpd.hk -gpdi.com -gper.club -gpio.me -gpl-express.com -gplayspace.com -gplqdb.com -gpnewtech.com -gppapp.com -gps8.com -gpslook.net -gpsonextra.net -gpsoo.net -gpspw.net -gpsspg.com -gpsuu.com -gpticket.org -gpxxz.com -gpxygpfx.com -gpxz.com -gqgkj.com -gqjd.net -gqk.tv -gqqsm.com -gqsoso.com -gqsou.com -gqt168.com -gqtpw.com -gqxtq.com -gqyy8.com -gqzctsj.com -grablan.com -grabsun.com -gracece.com -gracg.com -gradaimmi.com -gradgroup.com -gradgroup.net -grainedu.com -grainstorage.net -grandinsight.com -grandomics.com -grandsail-servomotor.com -grapchina.org -graphene.tv -graphmovie.com -graueneko.xyz -gray-ice.com -grcbank.com -grchina.com -grdsv.com -greatbit.com -greatld.com -greatopensource.com -greatops.net -greatroma.com -greatsk.com -greatssp.com -greatstargroup.com -greatstartools.com -greatwalldns.com -greatwallships.com -gree-jd.com -gree.com -greebox.com -green12306.com -greenchengjian.com -greencompute.org -greendh.com -greenhua.com -greenism.net -greenlandsc.com -greentomail.com -greenxf.com -greenxiazai.com -grescw.com -gretf.com -greycdn.net -greyli.com -grfyw.com -grg2013.com -grgbanking.com -grge23.com -grgsecurity.com -grgvision.com -grgyintong.com -grid2048.com -gridsum.com -gridsumdissector.com -gridy.com -grikin.com -grinm.com -grirem.com -grizcom.com -grmxdy.com -groad.net -groovyfilmes.com -grouk.com -group-purchasing.com -groupjx.com -grouplus.com -growingio.com -grt-china.com -grth.xyz -gruntjs.net -gryu.net -grzmz.com -grzq.com -zzbbs.com -gs14.com -gs1cn.org -zzbblys.com -gs307.com -gs3jro.xyz -gs99gs.com -gsadds.com -gsafc.com -gsafety.com -gsbankchina.com -gsbankmall.com -gscidc.net -gsdk.tv -gsdpw.com -gse4sa.com -gsflcp.com -gsfzb.com -gsgs10086.com -gsgundam.com -gshhqy.com -gsi24.com -gsicpa.net -gsjie.com -gsjtky.com -gsjy.net -gsktraining.com -gskwai.com -gskyty.com -gsmpers.com -gspaceteam.com -gsqstudio.com -gsqx.com -gsrcu.com -gsrecv.com -gssdlv.com -gssfgk.com -gst-china.net -zzbaike.com -gstarcad.com -gstonegames.com -gsuus.com -gsxb.net -gsxcdn.com -gsxservice.com -gsxtj.com -gszlyy.com -gszph.com -gszq.com -gt-key.com -gt-oil.com -gt-semi.com -gt520.com -gtadata.com -gtags.net -gtan.com -gtanhao.com -gtarsc.com -gtaxqh.com -gtcedu.com -gtcim.com -gtdlife.com -gtdstudy.com -gter.net -gtfund.com -gtgres.com -gtibee.com -gtimg.com -gtja-allianz.com -gtja.com -gtjadev.com -gtjaqh.com -gtjazg.com -gtk2.com -gtlpaj.com -gtlrxt.com -gtm-a1b2.com -gtm-a1b3.com -gtm-a1b4.com -gtm-a1b6.com -gtm-a1b7.com -gtm-a1b8.com -gtm-a1b9.com -gtm-a2b2.com -gtm-a2b3.com -gtm-a2b4.com -gtm-a2b6.com -gtm-a2b7.com -gtm-a3b1.com -gtm-a3b5.com -gtm-a3b6.com -gtm-a3b7.com -gtm-a3b8.com -gtm-a4b1.com -gtm-a4b4.com -gtm-a4b6.com -gtm-a4b8.com -gtm-a4b9.com -gtm-a5b4.com -gtm-i1d1.com -gtm-i1d2.com -gtm-i1d6.com -gtm-i1d7.com -gtm-i1d8.com -gtm-i1d9.com -gtm-i2d3.com -gtm-i2d4.com -gtm-i2d8.com -gtm-i2d9.com -gtm.pub -gtmlufax.com -gtn9.com -gtobal.com -gtpromall.com -gttxidc.com -gtuanb.com -gtuu.com -gtxp2.com -gtzy123.com -gu166.com -guabu.com -guahao-inc.com -guahao.com -guahaoe.com -guahaowang.com -guaiguai.com -guaihou.com -guailuo.com -guailuzi.com -guaimai.net -guaixun.com -guajibao.club -guajibao.me -guajibaola.com -guajob.com -guakaoba.com -gualemang.com -gualudeng.com -guan.com -guan5.com -guanaitong.com -guanchangcun.com -guanchao.site -guandan.com -guandang.net -guandata.com -guandianle.com -guandongyucang.com -guang.com -guangbo.net -guangchilieche.com -guangdauser.com -guangdianyun.tv -guangdiu.com -guangdonglong.com -guangdongtaiji.com -guangdv.com -guangfeng.com -guanggao.com -guanggua.com -guanghe.tv -guanghuayigou.com -guangjiaohui888.com -guangjie5u.com -guangjieba.com -guangka.com -guangkatf.com -guangli88.com -guanglilvyuan.com -guanglunshiji.com -guangminggame.com -guangmingjx.com -guangshantang.vip -guangsuss.com -guangtuikeji.com -guanguser.com -guangwaifu.com -guangwangye.com -guangxi910.com -guangxigrc.com -guangxiyou.com -guangyinglvxing.com -guangyv.com -guangzhitui.com -guangzhou-logistics.com -guangzhou-marathon.com -guangzhouyibo.com -guanhaobio.com -guanhuaju.com -guanjiabo.net -guanjiajf.com -guanjianfeng.com -guankou.net -guanli360.com -guanliyun.com -guanmeikj.com -guanplus.com -guanrenjiaoyu.com -guanshangyu.cc -guanshi.net -guanting.com -guanvip8.com -guanwang.com -guanwangdaquan.com -guanwangshijie.com -guanwangyun.com -guanxiaokai.com -guanxxg.com -guanyiyun.com -guanzhongrc.com -guanzhu.mobi -guanzhulian.com -guanziheng.com -guapaijia.com -guardrailchina.com -guazhuan.com -guazi-apps.com -guazi.com -guazipai.com -guazistatic.com -guazixs.com -gubo.org -gucciblog.net -gucheng.com -gucn.com -gucun.info -gucunpark.net -gudaovision.com -gudemanage.com -gudi.cc -guduodata.com -gufengmh9.com -gugeanzhuangqi.com -gugeapps.net -gugong.net -gugu5.com -gugud.com -gugudang.com -guguread.com -guguyu.com -guguyuyin.com -guhai66.com -guheshuyuan.com -guhuozaiol.com -gui333.com -gui66.com -guibi.com -guibook.com -guidechem.com -guideir.com -guiderank-app.com -guiderank.org -guifun.com -guigu.org -guiguzhongguo.com -guihua.com -guihuayun.com -guiji.com -guijinshu.com -guilin.la -guilinhd.com -guilinlife.com -guilintravel.com -guimengning.com -guimilu.com -guimipay.net -guiqv.com -guitarpro.cc -guixue.com -guizeco.com -guizheng.net -guizumeimei.com -gujianba.com -gujiushu.com -gukaifu.com -gukaihu.com -gukun.com -gulandscape.com -gulinrongmei.com -gullmap.com -gulltour.com -gulou120.com -gulu.tv -gulu001.com -gulugj.com -gulumh.com -gulutea.com -gumang.com -gumaor.com -gumengya.com -gumingnc.com -gumo.pro -gunfans.net -guo.com -guo506393.xyz -guo7.com -guo98.com -guoanaz.com -guoanqi.com -guoaso.com -guobaihui.com -guobaoyou.com -guobensd.com -guobiao99.com -guoboshi.com -guocaiqinghai.com -guochaos.com -guocuijingju.com -guodegang.org -guodingnet.com -guodongbaohe.com -guodu.com -guodu.hk -guofen.com -guofenchaxun.com -guofenchaxun.net -guoguo-app.com -guoguomh.com -guohanlawfirm.com -guohuapharm.com -guoji.biz -guojiang.tv -guojianglive.com -guojidaigou.com -guojimami.com -guojing-tech.com -guojixuexiao.org -guojj.com -guojucloud.com -guojusoft.com -guokr.com -guokr.io -guokr.net -guoku.com -guolaiwanba.com -guoli.com -guoliangjie.com -guolianglab.org -guolier.com -guolin.tech -guoluonews.com -guolv.com -guomai.cc -guomii.com -guomu.com -guonongdai.com -guopc.com -guopeiwang.com -guopi8.com -guopika.com -guoping123.com -guoqinwang.com -guorentao.com -guorongfei.com -guoruiinfo.com -guoruijx.com -guoshi.com -guotv.com -guowaidiaocha.com -guowaitianqi.com -guoweitong.com -guoxiehao.com -guoxinlanqiao.com -guoxinmac.com -guoxinqh.com -guoxue.com -guoxue123.com -guoxuedashi.com -guoxuemeng.com -guoxuemi.com -guoxuwang.com -guoyang.cc -guoyi360.com -guoyice.com -guoyu.com -guozaoke.com -guozh.net -guozhihua.net -guozhivip.com -guozhongxin.com -guozi.org -guoziyx.com -gupaoedu.com -gupei.com -gupen.com -gupiao111.com -gupiao135.com -gupiao8.com -gupiaowajue.com -gupiaozhidao.com -gupowang.com -gupt.net -gupuu.com -gupzs.com -guqiankun.com -guqiu.com -guqu.net -gurukeji.com -gushequ.com -gushi.ci -gushi.com -gushi365.com -gushicimingju.com -gushiciqu.com -gushidaquan.cc -gushiju.net -gushiwen.org -gushufang.com -gusiyuan.com -gusuwang.com -gutianfood.com -gutou.com -guwan.com -guweimin.com -guwendao.net -guwenxs.com -guwu121.com -guxunw.com -guyuenglish.com -guyungame.com -guyut.com -guzaosf.com -guzhangting.com -guzhifengds.com -guzhihun.com -guziyy.com -gvacdn.com -gvi-tech.com -gvlocalization.com -gw-ec.com -zzay.net -gw2sc.com -gw66.vip -gwamcc.com -gwauto.com -gwclouds.net -gwdang.com -gweike.com -gwell.cc -gwgrow.com -gwidc.com -gwj-test.com -gwm-global.com -gwmfc.com -gwmsoft.com -gwname.com -gworg.com -gwoversea.com -gwy.com -gwyoo.com -gwyou.com -gwypxw.com -gwyzk.com -gwzwfw.com -gx-newmedia.com -gx8899.com -gxaedu.com -gxairlines.com -gxar.com -gxb.io -gxb2b.net -gxbaidutg.com -gxbf.net -gxbiandao.com -gxbys.com -gxbyw.com -gxcards.com -gxcic.net -gxdahua.com -gxdianhua.com -gxdmw.com -gxeqx.com -gxfcq.com -gxfdcw.com -gxfengjie.com -gxfengxiang.com -gxfin.com -gxfxwh.com -gxgkcat.com -gxglzj.com -gxgm.net -gxgwykh.com -gxgzlm.com -gxhl.com -gxhouse.com -gxhzxw.com -gxiang.net -gxiang.org -gxibvc.net -gxicpa.com -gxidc.com -gxind.com -gxipo.net -gxjfdz.com -gxjgdj.com -gxjs.net -gxjtaq.com -gxjznet.com -gxkjdns.com -gxkjec.com -gxkjjt.com -gxlcms.com -gxlxs2008.net -gxmlyjy.com -gxmmkt.com -gxnas.com -gxota.com -gxp.cc -gxpfyy.com -gxqcw.com -gxqihuan.com -gxqintang.com -gxqs.org -gxrc.com -gxrkyy.com -gxsell.com -gxshuairun.com -gxskm.com -gxsky.com -gxtodo.com -gxwenlian.com -gxwmcu.com -gxxgle.com -gxxiaotutu.com -gxxmyjs.com -gxycwy.com -gxyljf.com -gxyxlx.com -gxzjy.com -gxzmrl.com -gxzpw.org -gy-center.net -gy-fuji.com -gy.com -gy7n.com -gy818.com -gyb086.com -gybcq.com -gycf.com -gycode.com -gydongli.com -gydzxxxd.com -gyersf.com -gygl.com -gyguohua.com -gyhj.org -gyip.net -gyljc.com -gymama.com -gymbo-online.com -gymsj.com -gyncb.net -gynsh.net -gypserver.com -gyqcw.com -gyr.cc -gysk.com -gysou.com -gysq.org -gystatic.com -gytcwb.com -gytsg.net -gytsm.com -gyuancdn.com -gywygl.com -gyxdkjdl.com -gyxuan.com -gyypw.com -gyyqcloud.com -gyzfbz.net -gyzy.com -gz-cmc.com -gz-cube.com -gz-data.com -gz-gz.com -gz-lodihair.com -gz-notary.com -gz-station.com -gz007.net -gz121.com -gz12301.com -gz300.com -gz360.com -gz4399.com -gz4u.net -gz528.com -gz85.com -gz91.com -gzasp.net -gzate.com -gzbaibian.net -gzbaozhilin.com -gzbio.net -gzbmw.com -gzbzsport.com -gzchupai.com -gzcl999.com -gzcn.net -gzcppa.com -gzcxhd.com -gzcycling.com -gzdai.com -gzdaily.com -gzdata.net -gzdbx.com -gzdingyu.com -gzdjy.org -gzdsw.com -gzdysx.com -gzenxx.com -gzexpo.com -gzfc.net -gzfilm.com -gzfsnet.com -gzgdwl.com -gzgxkj.com -gzhakj.com -gzhangcha.com -gzhatao.com -gzhbsgg.com -gzhc365.com -gzhdcs.com -gzhe.net -gzhhr.com -gzhifi.com -gzhkl.com -gzhotelgroup.com -gzhphb.com -gzhtinfo.com -gzhttp.com -gzhuake.cc -gzhuojia.com -gzhxpw.com -gzhzcj.com -gzidc.com -gzittc.net -gzj568.com -gzjingsha.com -gzjisikj.com -gzjonathan.com -gzjpad.com -gzjqd.com -gzjtjx.com -gzjtjy.com -gzjunyu.com -gzjuqi.com -gzjykj.com -gzjzc.com -gzkz88.com -gzlex.com -gzlingli.com -gzlujiao.com -gzlz307.com -gzlzfm.com -gzmama.com -gzmath.com -gzmediaclick.com -gzmiyuan.com -gzmjhzs.com -gzmpc.com -gzmri.com -gzmtr.com -gzncstudios.com -gznemo.com -gznet.com -gzngn.com -gznxbank.com -gzpeite.com -gzpinda.com -gzpma.com -gzprobig.com -gzpts.com -gzpy120.net -gzqbd.com -gzqiche.com -gzqljxd.com -gzqunsheng.com -gzqxxz.net -gzrishun.com -gzrmw.com -gzrobot.com -gzrobots.com -gzshciw.com -gzshuimh.com -gzshujuhui.com -gzsjyzx.com -gzsjzx.com -gzsmove.com -gzspeedtest.com -gzstv.com -gzsuiti.com -gzsums.net -gzsy06.com -gzsy07.com -gzszgas.com -gztaiyou.com -gztcdj.com -gztfgame.com -gzthrc.com -gztime.cc -gztopkt.com -gztour.org -gztv.com -gztwkadokawa.com -gztxedu.com -gztz120.com -gzuc.net -gzuni.com -gzw.net -gzwanbao.com -gzwangshang.com -gzwanju.com -gzwarriortech.com -gzwcds.com -gzwcjs.com -gzweicai.com -gzweix.com -gzwhir.com -gzwrit.com -gzxdf.com -gzxf35.com -gzxhdyc.com -gzxict.com -gzxszf.com -gzxulang.com -gzxwtjy.com -gzyajs.com -gzycdy.com -gzych.vip -gzyct.com -gzylhyzx.com -gzyouai.com -gzyqtlxs.com -gzysbpay.com -gzyucai.com -gzyxls.com -gzzbgs.com -gzzhitu.com -gzzkzsw.com -gzzlfw.com -gzzlgame.com -gzzmedu.com -gzzoc.com -gzzongsi.com -gzzoo.com -gzzqy.net -gzzswy.com -gzzy04.com -gzzy05.com -h-college.com -h-heguo.com -h-shgroup.com -h-ui.net -h-world.com -h-zl.net -h0588.com -h0591.com -h0668.com -h0758.net -h1bz.com -h231.com -h2ex.com -h2o-china.com -h2os.com -h2vm.com -h3c.com -zz9ivb.com -h3dns.net -h3ue2s.com -h3wog.com -h3yun.com -h4.cc -h4532.com -h4kdxs.com -h5-share.com -h5-x.com -h5-yes.com -h5.net -h51h.com -h5495.com -h55u.com -h5abc.com -h5aiwan.com -h5anli.com -h5app.com -h5avu.com -h5ay.com -h5data.com -h5ds.com -h5eco.com -h5faner.com -h5gamecdn.club -h5gd.com -h5gdvip.com -h5in.net -h5jun.com -h5king.com -h5ky.com -h5le.com -h5mc.com -h5mgd.com -h5mota.com -h5mugeda.com -h5no1.com -h5po.com -h5shuo.com -h5tpl.com -h5uc.com -h5war.com -h5youxi.com -h5yunban.com -h6295.com -h6688.com -h6969.com -h6app.com -h7ec.com -h8jx.com -h9hash.com -ha1916.com -ha97.com -haawking.com -habadog.com -habbygames.com -hac-ker.net -hack-cn.com -hack-gov.com -hack0nair.me -hack50.com -hack520.com -hack99.com -hackav.com -hackdig.com -hackerav.com -hackernews.cc -hackhome.com -hackhp.com -hackhw.com -hacking-linux.com -hacking8.com -hackinn.com -hackline.net -hacknical.com -hackp.com -hackpascal.net -hackrf.net -hackroad.com -hacori.com -hacpai.com -haczjob.com -hadax.com -hadobi.com -hadsky.com -haers.com -haguan.com -haguworld.com -haha168.com -haha33.com -haha360.com -haha365.com -haha9911.com -hahack.com -hahaha365.com -hahait.com -hahasou.com -hahawen.com -hahayouxi.com -hahour.com -hai0.com -haiana.com -haianbank.com -haianedu.net -haianw.com -haibao.com -haibao123.xyz -haibaobaoxian.com -haibaoyl.com -haibaoyouxi.com -haibeinews.com -haibian.com -haiboinvest.com -haiboyi.com -haicent.com -haichangchina.com -haichangoceanpark.com -haichuanmei.com -haichufang.com -haici.com -haicj.com -haicoder.net -haidaibao.com -haidaoteam.com -haidaotrip.com -haidaozhu.com -haidii.com -haidilao.com -haidilao.net -haidilao.us -haidimao.com -haidubooks.com -haier.com -haier.hk -haier.net -haiercash.com -haiershequ.com -haierubic.com -haieruplus.com -haifangbao.com -haifangbest.com -haige.com -haigeek.com -haigehome.com -haigui001.com -haiguime.com -haihaiyu.com -haihuishou.com -haijia.org -haijiangzx.com -haijiaonet.com -haijiasu.com -haijingfang.cc -haiketrip.com -hailiangedu.com -hailiangip.com -haililiang.com -hailiys.com -hailuowu.com -haima.me -haima001.com -haimacloud.com -haimaiyun.com -haimawan.com -haimi.com -haimini.com -haina.com -hainachuan.org -hainanairlines.com -hainancom.com -hainancp.com -hainandj.com -hainanfp.com -hainanfz.com -hainanjiuzi.com -hainanpc.net -hainiaowo.com -hainic.com -haining.tv -hainingnews.net -hainiubl.com -hainiuxy.com -hainuotech.com -haiqingyanyu.com -haiqisoft.com -haiqq.com -hair43.com -hair8.net -hairbobo.com -hairunmedia.com -hairunpictures.com -haisenyouxi8.com -haishengfrp.com -haisheteam.com -haishui.cc -haishun.com -haishun6688.com -haitaibrowser.com -haitaichina.com -haitao.co -haitao.com -haitao369.com -haitao8.com -haitaoing.com -haitaoit.com -haitaoj.com -haitaolab.com -haitaopd.com -haitaoqq.com -haitaotong.com -haitaozu.org -haitianhome.com -haitl.com -haitongjiaoyu.com -haitou.cc -haitou360.com -haitoujia.com -haituie.com -haituncun.com -haitunshenghuo.com -haituntui.com -haitunvoice.com -haituoqi.com -haitutech.com -haiwaihuafei.com -haiwaimoney.com -haiwaioo.com -haiwaiyou.com -haiwaiyoujia.com -haiwanxinxi.com -haiweili.com -haiwell.com -haiwen-law.com -haiwenky.com -haixiahao.com -haixianlai.net -haixindichan.com -haixinews.com -haixingbangfu.com -haixiulive.com -haixiumv.com -haixiutv.com -haixiuvv.com -haixue.com -haixuemeili.com -haixunw.com -haiyi701.com -haiying168.com -haiyingshuju.com -haiyue.info -haiyun.me -haizhangs.com -haizhanweb.com -haizhlink.com -haizhoumo.com -haizhuyx.com -haizitong.com -haizol.com -hakaimg.com -halade.com -halead.com -halffashion.com -halfrost.com -haligenjudi.com -halixun.com -haliyy.com -halloar.com -hallofix.com -halobear.com -halomobi.com -haluoha.com -hamedal.com -hamir.net -han-ju.cc -han-tang.cc -hanamichi.wiki -hanbaoying.com -hanboshi.com -hanchao9999.com -hancloud.com -hanclouds.com -hand-china.com -handanjob.com -handanw.com -handanyz.com -handday.com -handfunds.com -handian027.com -handone.com -handpk.com -handu.com -handuyishe.com -handyfriendship.com -hanergy.com -hanergymobileenergy.com -hanfei.net -hanfengcars.com -hanfugong.com -hangdaxinli.com -hangduhc.com -hangfushi.com -hangge.com -hanghaimeng.com -hanghang666.com -hanghangcha.com -hangjiayun.com -hangjizulin.com -hangkong.com -hangomart.com -hangpu-topsys.com -hanguangbaihuo.com -hanguu.com -hangw.com -hangxinyiqi.xin -hangye365.com -hangzhiqiao.com -hangzhoufcw.com -hangzhouluohu.com -hangzhoutianqi114.com -hangzhouyiyao.com -hangzhouzhiqi.com -hanhai.net -hanhaiqikan.com -hanhuatin.com -hanhwlab.com -hanjianbing.org -hanjiaying.com -hanjie.biz -hanjjl.com -hanju-tv.org -hanjutv.com -hanjutv.me -hanjutvaa.com -hankai.ren -hankeer.org -hanking.com -hankunlaw.com -hanlefang.net -hanlei.org -hanlin.press -hanlinzhijia.net -hanmadiancan.com -hanmaker.com -hanmeilin.com -hannor.com -hannto.com -hanshijiaoye.com -hanshow.com -hansight.com -hansiji.com -hanslaser.net -hansme.com -hanspub.org -hansrobot.com -hansuku.com -hansunic.com -hantang59.com -hantangxintong.com -hanterry.com -hantinghotels.com -hanvitools.com -hanvon.com -hanvonmfrs.com -hanvontouch.com -hanweb.com -hanweimetal.com -hanxinsheng.com -hanyanseed.com -hanyi.studio -hanyou.com -hanyougame.com -hanyouwang.com -hanyucar.com -hanyurumen.com -hanzhifeng.com -hanzhong123.com -hanzify.org -hao-sheng-yi.com -hao.ac -hao0202.com -hao120.cc -hao123-hao123.com -hao123.com -zz96269.com -hao123.sh -hao123img.com -hao1258.com -hao163.com -hao168.cc -hao181.com -hao184.com -hao1970.com -hao1996.com -hao1cm.com -hao22.com -hao222.com -hao224.com -hao24.com -hao245.com -hao268.com -hao315.cc -hao315.com -hao315.tv -hao3399.com -hao352.com -hao353.com -hao360.com -hao378.com -hao394.com -hao5.net -hao568.com -hao6.com -hao61.net -hao695.com -hao7188.com -hao753.com -hao76.com -hao86.com -hao8dai.com -hao9669.com -haoad.org -haoamc.com -haoayi.xyz -haobanyi.com -haobiaoke.com -haobtc.com -haocai.com -haochang.tv -haochangyou.com -haocheedai.com -haochengda.net -haochijixie.com -haochu.com -haodaibao.com -haodanku.com -haodaquan.com -haodevps.com -haodewap.com -haodf.com -haodf.org -haodiany.com -haodiaoyu.com -haodingdan.com -haodiy.net -haodns123.cc -haodns999.cc -haodongdong.com -haodou.com -haoduofangs.com -haoduojiaju.com -haoduorou.net -haofang.net -haofang5.com -haofangkankan.com -haofenshu.com -haofenxiao.net -haofly.net -haofz.com -haoge500.com -haogewd.com -haogongzhang.com -haogoshop.com -haogow.com -haogu114.com -haohaizi.com -haohan-data.com -haohanfw.com -haohanguo.com -haohanpower.tech -haohaotuan.com -haohaowan.com -haohaoxiu.com -haohaoyx.com -haohaozhu.com -haohaozhu.me -haohead.com -haohiyou.com -haohongfan.com -haoht123.com -haohuan.com -haohuo.xin -haohuoa.com -haoii123.com -haoinvest.com -haoiyon.com -haoiyong.com -haoji.me -haojiameng.net -haojiao.cc -haojiaolian.com -haojing.org -haojit.com -haojue.com -haojue163.com -haokan.com -haokan123.com -haokan5.com -haokan58.com -haokanzhan.com -haokecheng.com -haokejie.com -haokongbu1.com -haokoo.com -haoku.net -haokuaiya.com -haolangtech.com -haolawyer.com -haole.com -haolexiang.com -haolietou.com -haoliners.net -haolints.com -haoliv.com -haolizi.net -haolvlv.com -haolyy.com -haoma.com -haomagujia.com -haomaishou.com -haomaiyi.com -haomaku.com -haomee.net -haomeili.net -haomenke.com -haomijie.com -haommn.com -haomove.com -haomugua.com -haonames.com -haonic.com -haonongzi.com -haopeixun.com -haopianyi.com -haoqiao.com -haoqikan.com -haoqixingstem.com -haoqq.com -haor233.com -haorc.com -haoread.com -haorencai.net -haorooms.com -haoseals.com -haosenchina.com -haoservice.com -haosf.com -haosf5.com -haoshanpu.com -haoshanxi.com -haoshengmall.com -haoshenqi.com -haoshetou.net -haoshici.com -haoshipin123.com -haoshiqi.net -haoshsh.com -haoshuang.site -haoshunjx.com -haoshuo.com -haosijia.com -haosijia.vip -haosix.com -haoso.com -haosou.com -haosou.net -haostay.com -haote.com -haotianhuyu.com -haotihui.com -haotijin.com -haotongjixie.com -haotoufa.com -haotougao.com -haotougu.com -haotui.com -haotukankan.com -haouc.com -haowa.com -haowaicaijing.com -haowandeni.com -haowanok.com -haowanyou.com -haoweishow.com -haowen100.com -haoword.com -haowu.com -haowu.info -haowu.link -haowui.com -haowusong.com -haowuyunji.com -haowuyx.com -haoxg.net -haoxiake.com -haoxiang.org -haoxiaoguo.net -haoxipu.com -haoxitong.com -haoxiyou.com -haoxue.com -haoxuetang99.com -haoyao.com -haoychuang.com -haoyisheng.com -haoyishui.com -haoyong.cc -haoyongapp.com -haoyouqian.com -haoyouyinxiang.com -haoyuanxiao.com -haoyue.asia -haoyun13.com -haoyun56.com -haoyunbb.com -haoyundao.net -haoyunma.com -haozai120.com -haozaishop.com -haozhai.com -haozhanhui.com -haozhebao.com -haozhexie.com -haozhuangji.com -haozhuji.net -haozi.org -haozi.xyz -haozip.com -haozjj.com -haozu.com -haozuojia.com -hapi123.net -hapingapp.com -haplat.net -happigo.com -happy24uk.com -happycamp.cc -happychang.net -happycodeboy.com -happyelements.com -happyev.com -happyhlddz.com -happyjuzi.com -happylivelife.com -happymath2009.org -happymmall.com -happynic.com -happypingpang.com -happyplaygame.net -happyroll.net -happysky.org -happytimenet.com -happyux.com -happywalk.net -happyya.com -hapying.com -haqu.com -harbin-electric.com -harborhousehome.com -hardkr.com -hardspell.com -hariogame.com -harlanc.vip -harmay.com -harmight.com -harmony3.com -harmony4s.com -harmonyos.com -harryhorsemedia.com -harrynull.tech -harrypottermagicawakened.com -harvestcm.com -harvesthanger.com -harvestpawn.com -harvey.plus -hasea.com -hasee.com -hasee.net -hashnest.com -hasivo.com -hasoltd.com -hassbian.com -hatfav.com -hatlonely.com -hatoem.com -haval-global.com -have.ink -havefun.im -havewo.com -hawbel.com -hawkeye.fun -haxiu.com -hayeen.com -hayseen.com -hazq.com -hb-ecloud.com -hb-green.com -hb-hengda.com -hb-ly.com -hb-ws.com -hb10000.com -hb10000sale.com -hb110.cc -hb12333.com -hb191.com -hb30.com -hb3rm.com -hb500.com -hb6.org -hb78.cc -hb96369.com -hb96568.com -hbaas.com -hbadei.com -hbanbao.com -hbap.net -hbbaidu.com -hbbidding.com -hbbsw.vip -hbbutler.com -hbbxpx.com -hbbzyys.org -hbccp.org -hbccpit.org -hbcdc.com -hbcg.cc -hbcggj.com -hbchen.com -hbcjh.net -hbcjlq.com -hbcjw.com -hbcjxx.com -hbcms.com -hbcofco.com -hbcourt.org -hbcsche.com -hbcszb.com -hbctjk.com -hbcwt.com -hbcyclub.com -hbcydlqc.com -hbdangyang.com -hbddrn.com -hbdmia.com -hbdtjqj.com -hbdx-kdyy.com -hbdzcg.com -hbeducloud.com -hbekt.com -hbepec.com -hbfie.org -hbfire.com -hbfootball.com -hbfy.com -hbfyhb.com -hbfzb.com -hbgajg.com -hbgbdst.com -hbgcxj.com -hbgdwl.com -hbglky.com -hbglobal.com -hbgrb.net -hbgsetc.com -hbgwy.org -hbgzh.com -hbha027.com -hbhande.com -hbhaolinju.com -hbhcdn.com -hbhdhd.com -hbhm.net -hbhqzyc.com -hbhtcm.com -hbhtxx.com -hbhxbb.com -hbhyychem.com -hbhz.net -hbicpa.org -hbidc.net -hbifeng.com -hbinitiate.com -hbisv.com -hbjcgy.com -hbjdxt.com -hbjhc.com -hbjhpx.com -hbjianzhuwang.com -hbjinnong.com -hbjjrb.com -hbjk114.com -hbjkjt.com -hbjlhw.com -hbjsinfo.com -hbjubao.com -hbjxjy.org -hbjxjyw.com -hbjxym.com -hbjzx.com -hbjzzx.com -hbkqw.com -hbksw.com -hbky.com -hblccy.com -hbldwx.com -hbliti.com -hblszq.com -hbltzb.com -hblykj.com -hbm360.com -hbmes.com -hbmmtt.com -hbn68.com -hbnews.net -hbnewsoft.com -hbneww.com -hbooker.com -hbpangu.net -hbpbnmb.com -hbpengxi.com -hbpic5.com -hbpictures.com -hbptzsbw.com -hbpukang.com -hbqnb.com -hbqtgg.com -hbqyj.org -hbqyxy.com -hbrbmedia.com -hbrc.com -hbrchina.org -hbrchinese.org -hbrd.net -hbrebond.com -hbrfxh.com -hbruicai.com -hbrunlin.com -hbryzx.net -hbrzkj.com -hbs-nd.com -hbsccloud.com -hbscsb.com -hbsdenterprise.com -hbsdjl.com -hbsfgk.org -hbshengbangwl.com -hbshgzx.com -hbshls.com -hbsia.org -hbskw.com -hbslndx.com -hbsmservice.com -hbsocar.com -hbsoft.net -hbsogdjt.com -hbspcar.com -hbsql.com -hbsrjyy.com -hbssfw.com -hbsszx.com -hbstars.com -hbsti.com -hbsunlink.com -hbswkj.com -hbszfw.com -hbsztv.com -hbszzd158.com -hbszzk.com -hbszzx.com -hbtcmu.com -hbtcw.com -hbtengniu.com -hbtobacco.com -hbtxbaidu.com -hbtycp.com -hbwh.net -hbwhcyw.com -hbwhgs.com -hbwhjj.com -hbwhrd.org -hbwjs.com -hbwlykt.com -hbww.org -hbxdf.com -hbxhxkj.com -hbxiyuan.com -hbxtzy.com -hbxyairport.com -hbxytc.com -hbyczk.com -hbyeson.com -hbyidu.com -hbyjfs.com -hbynet.net -hbyoyo.com -hbyscn.com -hbyspx.com -hbzaxh.com -hbzbw.com -hbzgjx.com -hbzhan.com -hbzhjxzz.com -hbzhonghai.com -hbzjjk.com -hbzjzb.com -hbzknet.com -hbzkzxw.com -hbzncz.com -hbzqzx.com -hbzsb.com -hbzuojia.com -hbzw56.com -hbzywh.com -hc-byq.com -hc-cdn.com -hc-software.com -hc01.com -hc121.com -hc23.com -hc360-inc.com -hc360.com -hc39.com -hc79.com -hc9.com -hcbbs.com -hcbuy.com -hcc11.com -hccpcba.com -hcctm.com -hcdamai.com -hcdyhr.com -hcfcc.com -hcgroup.com -hch518.com -hchbblg.com -hchbsb.com -hchezhu.com -hchlidc.com -hchliot.com -hcicloud.com -hcjms.com -hcjsk120.com -hcl100.com -hclouder.com -hcmiraefund.com -hcnamecdn.com -hcnamecdns.com -hcocoa.com -hcqixinhb.com -hcrlm.com -hcshebao.com -hcsilk.com -hctxf.org -hcty.com -hcwiki.com -hcx123.com -hcx99.com -hcxcw.com -hcxy6.com -hcyacg.com -hcyea.com -hcyzdc.com -hczc.com -hczfgjj.com -hczq.com -hczxmr.com -hczypay.com -hd-tvb.com -hd.gg -hd00.com -hd027.com -hd123.com -hd123.net -hd12333.com -hd199.com -hd199.net -hd3p.com -hdarea.club -hdavchina.com -hdb.com -hdbaichuan.com -hdcms.net -hdcolorant.com -hdd-group.com -hddata.net -hddhhn.com -hddid.com -hddznet.com -hdeexpo.com -hdem12.com -hdfimg.com -hdgogogo.com -hdh.im -hdhgzx.com -hdhospital.com -hdhui.com -hdj.me -hdjay.com -hdlcdns.com -hdlchina.com -hdletv.com -hdlogo.com -hdltest.com -hdmayi.com -hdmnw.com -hdmooncake.com -hdmtv168.com -hdmv.org -hdnd01.com -hdpyqa.com -hdpyqc.com -hdpyqd.com -hdsdyyy.com -hdslb.com -hdslb.net -hdslb.org -hdsx36hb.com -hdsx39hb.com -hdsx83hb.com -hdtgtm.com -hdtmedia.com -hduofen.com -hdurl.me -hduzplus.xyz -hdwbcloud.com -hdwbsaas.com -hdwebpyqa.com -hdwebpyqe.com -hdyouxi.com -hdypw.com -hdyunxin.com -hdyxgame.com -hdzp.com -hdzxyy.com -he-nan.com -he-one.com -he1j.com -he29.com -he2d.com -he9630.com -heacn.net -head-way.com -headphoneclub.com -healthcareol.net -healthjd.com -healthr.com -healthych.com -hearstchina.com -heart-game.com -heartide.com -heartinsti.com -heataek.com -heavenlywind.cc -hebangdianzi.com -hebaodai.com -hebbank.com -hebbr.com -hebca.com -hebei.cm -hebeifeimeng.com -hebeigwy.org -hebeijd.com -hebeinongzi.com -hebeizhouji.com -hebgtjt.com -hebiw.com -hebjxw.com -hebl.name -hebmusic.com -hebnx.com -hebolaw.com -hebooming.com -hebotc.com -hebradio.com -hebsg.net -hebshanggu.com -hebtv.com -hec-al.com -hec-changjiang.com -hecai360.com -hecaijing.com -hecdn.com -hecdn.net -hechangquan.com -hechengbb.com -heclouds.com -hecoe.com -hecpharm.com -hedgehogrock.com -heduibu.com -heeeeeh.com -heehee.club -heemoo.com -heerit.com -hefei.cc -hegii.com -hegouvip.com -hegsryjq.com -hehesheng.com -heheshouyou.com -hehesy.com -hehewan.com -hehouse.com -hei7.net -heibai.org -heibaige.com -heibaimanhua.com -heiban8.com -heicha.com -heicheng51.com -heidaren.com -heidiankeji.com -heigaga.com -heiguang.com -heiguang.net -heijiao.net -heijiaovip.com -heijin.org -heijingjihua.com -heilanhome.com -heilei.com -heiluo.com -heima.com -heima8.com -heimabao.com -heimac.net -heimadao.com -heimadata.com -heimai666.com -heimajijin.com -heimancc.com -heimaol.com -heimaoseo.org -heimaoseojishu.com -heimaoshe.com -heimayijiancai.com -heimaying.com -heimeiai.com -heimeng.net -heimizhou.com -heiniubao.com -heinote.com -heirenlei.com -heisener.com -heisha.net -heishao.net -heishenhua.com -heitao.com -heitao2014.com -heixi.com -heiyan.com -heiyan.la -heiyan.org -heiyan8.com -heiyange.com -heiyanimg.com -heiying.cc -heiyuewan.com -heiyunxitong.com -heizhushoes.com -hejiu2016.com -hejizhan.com -hejun.com -heketai.com -hekouxin.com -heku.org -hel168.com -helensbar.com -heliang.cc -helianhealth.com -helight.info -helijia.com -helingqi.com -helishun.com -heliuyan.com -hello-inc.com -hello1010.com -hellobanma.com -hellobi.com -hellobike.com -hellobiye.com -hellobtc.com -hellocq.net -hellodive.com -hellof1.com -helloflask.com -hellogame.net -hellogithub.com -helloglobal.com -hellogslb.com -hellohuohu.com -helloimg.com -hellojava.com -hellokang.net -hellokid.com -hellokidvip.com -hellomeowlab.com -hellonitrack.com -hellopcb.com -hellorf.com -hellotalk8.com -hellotw.com -helloweba.com -helloweba.net -hellowebfont.com -hellowgame.com -helloworld.net -helloxjn.com -helloyao.com -helong.info -help-hope.org -helperaddress.com -helpmeng.com -helpton.com -heluowenhua.net -hemamax.com -hemanc.com -hemanzi.com -hemaos.com -hemaread.com -hemayouxi.com -hemayun.com -hemayx.com -hempelgroup.com -hen360.com -henan100.com -henanart.com -henanfucai.com -henangeli.com -henanjianling.com -henanjubao.com -henansyj.com -henbt.com -hencin.com -hencoder.com -hengancaifu.com -hengannet.com -hengbogroup.com -hengchang6.com -hengdawenbo.com -hengdayun.com -hengdianfilm.com -hengdianworld.com -hengdu.cc -hengdulaw.com -hengfujz.com -hengjiafish.net -hengjiecdn.com -hengqian.com -hengqijy.com -hengqikuaiji.com -hengshuilaobaigan.net -hengtai-law.com -hengtiansoft.com -hengtianyun.com -hengwenzhendangqi.com -hengxiangtaji.com -hengxinjinshu.com -hengxueedu.com -hengyan.com -hengyidai.com -hengyigl.com -hengyoux.com -henha.com -henhaoji.com -henjay724.com -henkuai.com -henmimang.com -henri.ren -henxisoft.com -henzan.com -henzanapp.com -hepalink.com -hepan.com -hepan.org -hepatox.org -hepmall.com -hepost.com -hepuweilai.com -hercity.com -hercules-micro.com -herdsric.com -here120.com -here325.com -hermesguanwang.com -heroad-data.com -heroestactics.com -heroicyang.com -herosanctuary.com -heroskate.com -herostart.com -herowind.com -heroworld.net -hertzhu.com -heshui.com -hessianhealth.com -hetao101.com -hetaoa.com -hetaoapis.com -hetaobiancheng.com -hetaocdn.com -hetaointernal.com -hetaolin.com -hetianyu.cc -hetunzu.com -hetusoft.com -heu8.com -heweather.com -heweather.net -hewebgl.com -hexagonsemi.com -hexianrc.com -hexiaoxiang.com -hexicomtech.com -hexilai.com -hexindai.com -hexinli.org -hexmeet.com -hexun.com -heyang.cc -heyang365.com -heycan.com -heycode.com -heydayinfo.com -heyguo.com -heyi.com -heyinguanli.com -heymeo.net -heymeowfm.com -heymore.com -heyou51.com -heyplus.com -heyreport.com -heyria.com -heytap.com -heytapcs.com -heytapdownload.com -heytapimage.com -heytapmobi.com -heytea.com -heyuan5.com -heyunnet.com -heyuyhw.com -heywoodsminiprogram.com -heywow.net -hez70.com -heze.cc -hezebus.com -hezeribao.com -hezhidongli.com -hezhonglaw.com -hezhoubbs.com -hezi.com -hezibook.com -hezibuluo.com -hezijia.com -hezxs.com -hf-iflysse.com -hf10000.com -hf12345.vip -hf365.com -hf777.com -hfabiao.com -hfanss.com -hfbaogao.com -hfbeta.com -hfbz.com -hfchzyy120.com -hfcyh.com -hfdedu.com -hffund.com -hfgjj.com -hfhouse.com -hfhyw.com -hfi-health.com -hfjy.com -hfkeheng.com -hfkj0754.com -hfkktt.com -hflbysm.com -hflz.com -hfmama.com -hfmoney.com -hfqinhang.com -hfray.com -hfrc.net -hfrcbc.com -hfrqh.com -hfrsggff.com -hfsava.com -hfsid.com -hfssw.com -hfswcz.com -hfsxs.com -hftfund.com -hftogo.com -hfx.link -hfx.net -hfxst.com -hfyestar.com -hfykd.com -hfyouqi.com -hfyt365.com -hfyuqin.com -hg11844.com -hg12333.com -hg1946.vip -hg2693.com -hg5177.com -hg56699.com -hg6262.biz -hg707.com -hg87.com -hg8880.org -hga994.com -hgaas.com -hgame.com -hgbang.com -hgcyh.com -hgdgcxy.com -hgfdrf.com -hghhh.com -hgimage.com -hgitv.com -hgjart.com -hgjx.com -hglaser.com -hgmai.com -hgnc.net -hgyjs.com -hgyx.cc -hgzdq.com -hgzk.com -hgzkb.com -hgzrc.com -hh-gltd.com -hh010.com -hh112233hh.com -hh1488.com -hhailuo.com -hhbg123.com -hhcn.com -hhcx-led.com -hhczy.com -hhdx120.com -hhf2008.com -hhfbqzgs.com -hhfxw.com -hhgslb.com -hhh233.net -hhh885.com -hhhoo.com -hhhstz.com -hhhtfin.com -hhhtnews.com -hhhtscf.com -hhjtwl.com -hhl1916.com -hhpj.net -hhrcard.com -hhrdc.com -hhtmm.com -hhtravel.com -zz91.com -hhvv.com -hhxdkj.com -hhxin.com -hhycdk.com -hhygame.com -hhygames.com -hhyungu.com -hi-54.com -hi-books.com -hi-gtd.com -hi-lead.com -hi-linux.com -hi-mantech.com -hi-roy.com -hi-spider.com -hi0755.net -hi138.com -hi1718.com -hi2000.com -hi2000.net -hiaal.com -hiagr.com -hiaiabc.com -hiapk.com -hiascend.com -hiavr.com -hibea.com -hibixin.com -hibt.net -hibtc.org -hibuzz.net -hiby.com -hibymusic.com -hic.cloud -hicamelia.com -hicat.net -hiceon.com -hichao.com -hicheng.net -hichina.com -hiclc.com -hicling.com -hicloud.com -hiconey.com -hicoo.net -hicosmo.com -hicp.net -hicss.net -hiczp.com -hidesigncloud.com -hiditie.com -hidna.net -hidva.com -hienshi.com -hiersun-hdp.com -hiersun-ido.com -hiersun-zuanjindian.com -hiesquire.com -hifi168.com -hificat.com -hifidiy.net -hififf.com -hifime.net -hifini.com -hifiok.com -hifishuo.com -hifiveai.com -hifly.mobi -hifly.tv -hifpga.com -hifreud.com -hifuntv.com -higame123.com -higeshi.com -highdigitizing.com -highgo.com -highlightoptics.com -highlm.com -highsharp.com -hightopo.com -highwayguitar.com -higon.com -hihell.com -hihocoder.com -hihonor.com -hihonorcdn.com -hihonorcloud.com -hihope.org -hiido.com -hiigame.net -hiiyun.com -hijiaoshi.com -hijoys.com -hikailink.com -hikcreate.com -hiklife.com -hikoon.com -hikops.com -hikparking.com -hikrobotics.com -hikstor.com -hikunpeng.com -hikunpeng.net -hikvision-jl.com -hikvision.com -hikyun.com -hiliad.com -hillstonenet.com -hillyton.com -hiloong.com -hilunwen.com -himaker.com -himanufacture.com -himawari-japan.com -himeidian.com -himengyou.com -himetoo.com -himmpat.com -himofi.com -hinabian.com -hinavi.net -hindlish.com -hinpy.com -hiopensource.com -hiosu.com -hioug.com -hiparking.com -hipcam.net -hiphi.com -hiphop8.com -hipiao.com -hippoanimation.com -hippter.com -hipring.net -hipu.com -hirede.com -hiregistry.com -hireye.com -hiroop.com -hirosspac.com -hirossz.com -his.sh -hiscene.com -hisense-home.com -hisense-plaza.com -hisense-syxs.com -hisense.com -hisensehitachi.com -hishendeng.com -hisilicon.com -hisiphp.com -hislota.com -hismarttv.com -hisoft.com -hisofts.com -hisonracking.com -histarter.com -hisupplier.com -hit180.com -hitachi-helc.com -hitalk.com -hitalkers.com -hitevision-solution.com -hitfmfans.com -hitgk.com -hitnology.com -hitnslab.net -hitouch.com -hitozumi.com -hitui.com -hitutu.com -hitux.com -hituyu.com -hitv.com -hiuo08jnsoo00bytu32shcs555aa1564dvfguiio0o0885432.com -hiveview.com -hivi.com -hivictor.net -hiwafer.com -hiwbb.com -hiwebgl.com -hiwechats.com -hiwemeet.com -hiwenku.com -hiworld.com -hixgo.com -hixianchang.com -hixiaoman.com -hiyd.com -hiyongche.com -hiyouib.com -hiyouqu.com -hiyun.site -hizg.org -hizhiche.com -hizhu.com -hizj.net -hizyw.com -hj-bits.com -hj-mail.com -hj.vc -hjagent.com -hjapi.com -hjbbs.com -hjbxw.com -hjchee.com -hjcjifen.com -hjclass.com -hjd123.com -hjdict.com -hjdns.com -hjdns.net -hjdzn.com -hjenglish.com -hjgcd.com -hjhrcloud.com -hjido.com -hjiesuan.com -hjjfood.com -hjjg.com -hjjh.com -hjkhjkl.com -hjplw.com -hjpp.net -hjr-exchange.com -hjtag.com -hjwblog.com -hjwsky.com -hjwxcps.com -hjxsjx.com -hjy1314.com -hjyanxue.com -hjygame.com -hjyl.org -hjz518.com -hk-island.hk -hk-titan.com -hk-vstart.com -hk.uy -hk515.net -hkaco.com -hkaik.com -hkance.com -hkance.xyz -hkanews.com -hkbchina.com -hkcgart.com -hkcna.hk -hkcoalition.com -hkcts.com -hkctshotels.com -hkctsmembers.com -hkexpressworld.com -hkfc.hk -hkfe.hk -hkfljt.com -hkgcloudcs.com -hkgcr.com -hkgj07.com -hkjapp.com -hkklock.com -hkkuaiyixiu.com -hklego.com -hkm168.com -hkmjd.com -hknet-inc.com -hkpanamie.com -hkpep.com -hkproperty.com -hkqbh.com -hkscxh.com -hkstv.tv -hkszetsair.com -hkt4.com -hktheone.com -hkvisen.com -hkwb.net -hkxbjt.com -hkxen.com -hkyykq.com -hkzlcm.com -hl-brushes.com -hl95.com -hl95001.com -hlapi.com -hlbeixiu.com -hlbeixiu.net -hlcdn.cc -hldbtv.com -hldgp.com -hldnews.com -hldqjx.com -hldsjsjx.com -hlej.com -hlgad.com -hlgdata.com -hlgnet.com -hlgnet.net -hlhmf.com -hlideal.com -hlje.net -hljjjb.com -hljjkfp.com -hljjytkj.com -hljnzy.net -hljpost.com -hljradio.com -hljrcc.com -hljsfjy.com -hljszjxhw.com -hljtv.com -hljucm.net -hljyestar.com -hljyqnj.com -hljzl.icu -hlkkwl.com -hlkncse.com -hlltuozhan.com -hlmbbs.com -hlnmg.com -hloong.com -hlpretty.net -hlqiaojia.com -hlread.com -hlsdq.com -hltcy.com -hltmsp.com -hlwidc.com -hlxsykd.com -hlxy.com -hly.com -hlybar.com -hlytec.com -hlzq.com -hlzqgs.com -hm-3223.net -hm120.com -hm16888.net -hm86.com -hmecw.com -hmgj.com -hmgreat.com -hmh5.com -hminvestment.com -hmjblog.com -hmlan.com -hmltec.com -hmnst.com -hmoe.link -hmplay.com -hmrczp.com -hmsce.org -hmsem.com -hmsemi.com -hmseo.net -hmskw.com -hmsxw.com -hmszkj.com -hmting.com -hmxw.com -hmyz.com -hmz.com -hmzixin.com -hmzs.net -hmzx163.com -hn-cbec.com -hn-pc.com -hn165.com -hn96520.com -hnacargo.com -hnaccp.com -hnaee.com -hnagroup.com -hnagroup.net -hnair.com -hnair.net -hnaiya.com -hnangel.com -hnapay.com -hnayg.com -hnbaili.net -hnbits.com -hnbljy.com -hnbrush.com -hnbwsd.com -hnccpit.org -hncloud.com -hncourt.org -hncreate.com -hncsmjzs.com -hncsmtr.com -hncsvod.com -hndca.com -hndfbg.com -hndnews.com -hndpx.com -hndt.com -hnehome.net -hnemb.com -hnetn.com -hnfa.org -hnfapiao.com -hnfdx.com -hnfjz.com -hnfyqmj.com -hngbjy.com -hngbw.com -hnggzy.com -hngh.org -hngican.com -hngoldcorp.com -hngqjc.com -hngscloud.com -hngtrust.com -hngwg.com -hngyzx.org -hnh.cc -hnhflqgc.com -hnhnled.com -hnhxin.com -hnhxxk.com -hniec.org -hnied.xyz -hniic.com -hnisca.org -hniso.net -hnisvc.com -hnjg.com -hnjing.com -hnjing.net -hnjkjn.com -hnjkw.net -hnjshzy.com -hnjzga.com -hnkljnxh.com -hnks.com -hnksgf.com -hnktgame.com -hnkzy.com -hnlat.com -hnlbdl.com -hnleisu.com -hnliangku.com -hnlshm.com -hnlxq.com -hnlyy.com -hnlzhd.com -hnlzw.net -hnlzzq.com -hnmdtv.com -hnmgjr.com -hnmrffm888.com -hnmsw.com -hnmuseum.com -hnnx.com -hnnxs.com -hnnzwhyy.com -hnoceanrace.com -hnol.net -hnpet.net -hnpfw.com -hnpolice.com -hnqbb.com -hnqfseed.com -hnquxing.com -hnquyou.com -hnrcjob.com -hnrcsc.com -hnrcsc.net -hnrich.net -hnrmb.com -hnsdzjy.com -hnsfdc.com -hnshengben.com -hnsite.cc -hnsiwei.com -hnsktc.com -hnsmj.org -hnsqtg.com -hnsss.com -hnst.org -hnstguolu.net -hnsyda.com -hnsyu.net -hnteacher.net -hntengn.com -hntezhi.com -hnticai.com -hntobacco.com -hntv.tv -hntxxy.com -hnwisecom.com -hnwlcm.com -hnwlxh.net -hnwtv.com -hnwyxx.com -hnwz8.com -hnxdf.com -hnxfpfb.com -hnxmxit.com -hnxttv.com -hnxunch.com -hnxuntang.com -hnxxsmkj.com -hnxyjt.com -hnyanglao.com -hnyfkj.com -hnyh.net -hnyingfang.com -hnyinhan.com -hnyixiao.com -hnykcs.com -hnylstone.com -hnyouneng.com -hnyuanyou.com -hnyuedu.com -hnyunji.com -hnyunzhiyi.com -hnyuyuhui.com -hnyyss.com -hnzhaobiao.com -hnzhouyi.com -hnzhy.com -hnzjdc.com -hnzjip.com -hnzqw.com -hnztfs.com -hnzxyy.com -hnzycfc.com -hnzyzx.com -hoau.net -hobalab.com -hobbiestree.com -hocode.com -hodiasflavor.com -hodoop.com -hoehub.com -hogesoft.com -hoho.tv -hoho666.com -hohode.com -hokori.online -holaq.com -holdhr.com -holdsteel.com -holiland.com -holine.com -holleykingkong.com -hollischuang.com -hollycrm.com -hollysys.com -hollyuc.com -hollywant.com -holoalpha.com -holoem.com -holteksupport.com -holyxiongan.com -home-assistant.cc -zz618.com -zz314.com -home0311.com -home0538.com -home0668.com -home133.com -home178.com -home4love.com -home616.com -home77.com -homeartschina.com -homebehind.com -homecdn.com -homecloud-lab.com -homed.me -homedo.com -homedt.net -homeinframes.com -homeinmists.com -homeinns.com -homeking365.com -homekingcdn.com -homekoo.com -homekoocdn.com -homelandol.com -hometeda.com -hometex114.com -hometexjoin.com -homevv.com -homeyao.com -hommk.com -homolo.com -homolo.net -homylogistics.com -honda-sundiro.com -hong-lawfirm.com -hong-shun.com -hongbao.show -hongbeibang.com -hongbeicn.com -hongbizi.org -hongbo100.com -hongbowang.net -hongchengshuini.com -hongdaym.com -hongdefund.com -hongdezk.com -hongdi.icu -hongdian.com -hongdongpumps.com -hongdoufm.com -hongdoulive.com -hongen.com -hongfen.org -hongfengye.com -honggebang.com -honghailt.com -honghe-tech.com -hongheiku.com -honghuotai.com -hongjiang.info -hongjiejia.com -hongjin2.com -hongjing.com -hongjingedu.com -hongjiu66.com -hongkang-life.com -hongkongairlines.com -hongkou.net -hongku.com -hongkunjinfu.com -honglulan.com -hongmen.com -hongmoka.com -hongniang.com -hongpig.com -hongqi.tv -hongqipress.com -hongrenzhuang.site -hongru.com -hongruike.com -hongsanban.com -hongsat.com -hongsehuoxian.com -hongsejiqing.com -hongshi-tech.com -hongshn.xyz -hongshu.com -hongshunet.com -hongshunth.com -hongsong.club -hongsong.info -hongsungifts.com -hongtastock.com -hongtu.net -hongxiaolong.com -hongxin18.com -hongxingzn.com -hongxintaji.com -hongxiu.cc -hongxiu.com -hongyan.info -hongyanjin.com -hongyanliren.com -hongyaxuan.com -hongyeshuzhai.com -hongyu-qi.com -hongyuanqh.com -hongyue.com -hongyueedu.com -hongyunvren.com -hongze.net -hongzetai.com -hongzhoukan.com -honkaiimpact3.com -honorfair.com -honpery.com -honstarmemory.com -honsuntec.com -honycapital.com -honyuan.net -hoodinn.com -hoodong.com -hooenergy.com -hoofei.com -hoogge.com -hooh5.com -hookbase.com -hookdll.com -hoolai.com -hoolaigames.com -hoolee8.com -hoolinks.com -hoolo.tv -hoop-archi.com -hoopchina.com -hoopugames.net -hoosho.com -hooyagames.com -hooyoo.com -hopebank.com -hopebeauty.com -hopecool.com -hopeda.com -hopehook.com -hoperun.com -zz-zigzag.com -hopexr.com -hophingfood.com -hori3d.com -horion.com -horizon.ai -horizonfuelcell.com -horizonrcg.com -horn-yacht.com -horti-expo2019.com -hortor-comic.com -hortor.net -hortor002.com -hortor005.com -hortor020.com -hortorgames.com -hosizoraworks.org -hosory.com -hospmall.com -host1dns.com -hostadm.net -hostbbs.net -hostbuf.com -hostdie.com -hostkvm.com -hostmonit.com -hostxen.com -hotalk.com -hotdb.com -hotdeeplink.com -hoteamsoft.com -hoteastday.com -hotelcis.com -hoteldig.com -hotelgg.com -hotelvi.com -hotelyunos.com -hotent.com -hotent.xyz -hotgamehl.com -hotkd.com -hotkey123.com -hotkidclub.com -hotking.com -hotnewx.com -hotoos.com -hotpub.com -hotread.com -hotsales.net -hotssp.com -hotstoday.com -hottechsemi.com -hottui.com -hotwind.net -hotwindbox.com -houcaller.com -houdao.com -houdao.net -houdask.com -houdunwang.com -houge.biz -houhoucn.com -houjt.com -houkai.com -houqinbao.com -houqun.net -houquner.com -house086.com -house178.com -house365.com -house5.net -house510.com -house86.com -housebaby.com -housedp.com -housenhe.com -housoo.com -houxue.com -houyicaiji.com -houyuantuan.com -houzhibo.com -hoverlees.com -hovertree.com -hovfree.com -howardwchen.com -howbuy.com -howelllighting.com -howjoin.com -howsci.com -howtoing.com -howxm.com -howzhi.com -hoxing.com -hoxue.com -hoyakeji.com -hoyoverse.com -hozin.com -hp-marathon.com -hp123.com -hp888.com -hpccake.com -hpcwwd.com -hpkrcm.cfd -hpoi.net -hpool.online -hprt.com -hprx.com -hpstore.cc -hpttue.com -hpuoj.com -hpv112.com -hpwu.com -hpwxc.com -hpy93.com -hpyk.com -hq114.net -hq2011.com -hq52.com -hq88.com -hqbd.com -hqbnb.com -hqbsh.com -hqbuoh.com -hqbuy.com -hqbuycdn.com -hqc-china.com -hqcanyin.com -hqchip.com -hqcr.com -hqdlsn.com -hqepay.com -hqew.com -hqew.net -hqewimg.com -hqgq.com -hqh5.com -hqhl.net -hqhot.com -hqidi.com -hqjy.com -hqpcb.com -hqps.com -hqresearch.org -hqsec.com -hqwhw.com -hqwx.com -hqyj.com -hqyjsuccess.com -hqys.net -hqytgyh.com -hqyun.com -hqyxjy.com -hqzbcn.com -hr-channel.com -hr-mp.com -hr-self.com -hr-welink.com -hr0715.com -hr1000.com -hr135.com -hr2003.com -hr2trainer.com -hr369.com -hr448.com -hr510.com -hr5156.com -hr668.com -hr9000.com -hr987.com -hran.me -hrayw.com -hrbaodian.com -hrbar.com -hrbeduy.com -hrbesd.com -hrbjianchewang.com -hrbmama.com -hrbmilan.com -hrbrc.com -hrbslh.com -hrbswx.com -hrbuyu.com -hrbzdty.com -hrcfc.com -hrchina.cc -hrday.com -href.lu -hrexam.com -hrfc.net -hrflc.com -hrfoods.com -hrgrobotics.com -hrgsmz.com -hrhuiyi.com -hrhy365.com -zyzxs.com -hrloo.com -hrm100.com -hrmarket.net -hrmooc.com -hroot.co -hroot.com -hrpackage.com -hrrsj.com -hrrukou.com -hrs100.com -hrsalon.org -hrsay.com -hrsee.com -hrteachu.com -hrtechchina.com -hrtn.net -hrtx.com -hrxiongan.com -hrzy.cc -hs-defense.com -hs-fe.com -hs-outlets.com -hs.net -hs10000.com -hs13z.net -hs313.info -hs499.com -hs65.com -hsakyy.com -hsanhl.com -hsay.com -hsbdc.com -hsboss.com -hscbw.com -hscn.com -hsdatalab.com -hsdcw.com -hsddyy.com -hsdmall.com -hsehome.com -hsehome.org -hsez.net -hsfund.com -hsgjj.com -hsgjysj.com -hshotel.com -hshs.com -hshsjy.com -hshton.com -hshuiyi.com -hshw.com -hshy.net -hsigus.com -hsiii.com -hsimg11.com -hsjk.com -hsjkaoyan.com -hsmc.com -hsmdb.com -hsmob.com -hsmrt.com -hsoow.com -hspress.net -hsrnsw.com -hsrtd.club -hssdk.com -hssdtest.com -hssemi.com -hssenglish.com -hssjyj.com -hsslab.com -hssrc.com -hssyxx.com -hsszfx.com -hst.com -hst1966.net -hstczkj.com -hstechsz.com -hstong.com -hsutimes.com -hsweb.me -hswkzy.com -hswmb.com -hsxiang.com -hsxxad.com -hsybyh.com -hsyfcenter.com -hsysupply.com -hsyuntai.com -hsyunyi.com -hsyyf.me -hszhizhen.net -hszk.org -hszqxs.com -hszsb.org -hszsfz.com -hsztbzx.com -hszy8.com -hszzsyzx.net -hszzzx.net -ht-cao.com -ht-saae.com -ht-tech.com -ht88.com -ht9.com -htanwang.com -htaocloud.com -htbaba.com -htback.com -htbenet.net -htc-media.com -htcases.com -htcbbs.net -htcis.net -htcxfund.com -htd2000.com -htdata.com -hteacher.net -hteos.com -htexam.com -htexam.net -htfcn.com -htffund.com -htfoxit.com -htfutures.com -htgjjl.com -htguosheng.com -htgwf.com -htidc.com -htinfor.com -htinns.com -htinnsjm.com -htjs.net -htjsq.com -htkaoyan.com -htky365.com -html51.com -html5code.net -html5dw.com -html5plus.org -html5train.com -html5tricks.com -htmlai.com -htmleaf.com -htmlsucai.com -htnice.com -htobl.com -htoo.vip -htqyy.com -htranslate.com -htsc.com -htsec.com -httingshu.com -httpcanary.com -httpcn.com -httpdns.pro -htucloud.com -hturl.cc -htvaas.com -htwed.com -htwld.com -htx.cc -htxxpx.com -htyou.com -htys.cc -htyunwang.com -htzdj.com -htzdznjs.com -hu.com -hua-lan.com -hua-yong.com -hua.com -huaaiangel.com -huaaosoft.com -huaaotech.com -huaat.com -huabaike.com -huaban.com -huaban.net -huabanimg.com -huabanpro.com -huabeipay.com -huabian.com -huabo.net -huabokeji.com -huacaoshumu.net -huace.co -huacemedia.com -huacenter.com -huachao.vip -huachengenjoy.com -huachenit.com -huachenyuanyang.com -huacolor.com -huada120.com -huadan.com -huadehyd.com -huadonghospital.com -huadongmedia.com -huadoo.com -huadream.com -huadun315.com -huaduocai.net -huaease.net -huaer.cc -huafang.com -huafeng-food.com -huafeng.com -huafens.com -huafer.cc -huaguoshan.com -huahanart.com -huahua777.com -huahuacaocao.com -huahuo.com -huaibaobei.com -huaibei.com -huaien.com -huaihai.tv -huaijiufu.com -huaimi.com -huain.com -huainanhai.com -huainanren.net -huainet.com -huaisimida.com -huajia.cc -huajiakeji.com -huajialishe.com -huajianmed.com -huajiao.com -huajie8.com -huajifen.com -huajin100.com -huajing-inf.com -huajingsec.com -huajuan.net -huajuanyun.com -huajx.com -huake-weixin.com -huake360.com -huakeyun.com -hualady.com -hualala.com -hualet.org -hualiandressing.com -hualiantv.com -hualianxin.com -hualongxiang.com -hualu5.com -hualumedia.com -hualv.com -huamanlou.cc -huameiyuezi.com -huami.com -huan-tai.com -huan.tv -huanbao-world.com -huanbao.com -huanbaoscx.com -huanbeiloan.com -huancaicp.com -huandie.com -huane.net -huang-jerryc.com -huangbaoche.com -huangbowei.com -huangchun.net -huangdaojiri.org -huangdc.com -huangea.com -huanggao.net -huangh.com -huanghaicollege.com -huanghaiting.com -huanghanlian.com -huanghepiao.com -huanghouyz.com -huangjiemin.com -huanglei.me -huangli.com -huangliangbo.com -huangniu.in -huangpucn.com -huangqi1688.com -huangshaotian.com -huangwei.me -huangwei.pro -huangxinwei.com -huangye88.com -huangye88.net -huangyixiaoshuo.com -huangyuhui.net -huangyunkun.com -huangz.me -huangze.net -huanhaoba.com -huanhuanhuishou.com -huanhuanxin.com -huanhuba.com -huanidc.com -huanjinghaojia.com -huanjutang.com -huanjuyun.com -huankkk.com -huanlang.com -huanle.com -huanle800.com -huanlecdn.com -huanlefish.com -huanleguang.com -huanletang.com -huanlewan.net -huanlingxiuxian.com -huanlj.com -huanmusic.com -huanpingge.com -huanqiu.com -huanqiuauto.com -huanqiuchuguo.com -huanqiukexue.com -huanqiumil.com -huanqiuw.com -huanqiuyimin.com -huanqu-tec.com -huanrong2010.com -huansengifts.com -huanshoulv.com -huante.com -huantest.com -huanwen.com -huanxi.com -huanxia.com -huanxiongdd.com -huanxiyl.com -huanyingzq.com -huanyou365.com -huanyouji.com -huanyuantech.com -huanyudns.com -huanyutv.com -huaoe.com -huaon.com -huapiaoliang.com -huaqidigital.com -huaqin.com -huaqinchi.com -huaqiu.com -huaranhunsha.com -huaraytech.com -huarenyizhan.com -huarongdao.com -huarongled.com -huaruicom.com -huas.co -huaseyx.com -huash.com -huashangtop.com -huashen-edu.com -huasheng100.com -huashengdaili.com -huashengls.com -huashi6.com -huashichang.com -huashilm.com -huashitong.net -huashphoto.com -huashu-inc.com -huasimtour.com -huasyun.com -huatai-pb.com -huatai1993.com -huatengsci.com -huati365.com -huatian.net -huatu.com -huatugz.com -huatuo007.com -huatuowenda.com -huatuoyf.com -huaue.com -huawan.com -huawangzhixun.com -huawanyun.com -huawei-3com.com -huawei.asia -huawei.com -huaweiacad.com -huaweiapaas.com -huaweicloud-dns.com -huaweicloud-dns.net -huaweicloud-dns.org -huaweicloud-smn.com -huaweicloud-smn.net -huaweicloud.com -huaweicloudapis.com -huaweicloudlive.com -huaweicloudwaf.com -huaweidevice.com -huaweidun.com -huaweiief.com -huaweimall.com -huaweimarine.com -huaweimarketplace.com -huaweimossel.com -huaweirom.com -huaweisafedns.com -huaweistatic.com -huaweiuniversity.com -huaweiyun.com -huaweizdl.com -huawenfanyi.com -huawenonline.com -huawenwin.com -huaxi.net -huaxi100.com -huaxia.com -huaxia77.com -huaxiaf.com -huaxiald.com -huaxiangdiao.com -huaxianpai.com -huaxiao5.com -huaxiaobaokeji.com -huaxiazi.com -huaxincem.com -huaxincredit.com -huaxing.com -huaxiong.com -huaxirc.com -huaxiu.ink -huaxj.net -huaxuezoo.com -huayang.net -huayanghui.net -huayanxiu.com -huayanxiu.net -huayicn.com -huayidiaosu.com -huayijiahe.com -huayimedia.com -huayiming.com -huayingrc.com -huayingsc.com -huayinguolv.com -huayinjapan.com -huayiwork.com -huayiyuan.hk -huayou.com -huayoumengze.com -huayoutianyu.com -huayuanlaobao.com -huayuanlcd.com -huayuannongji.com -huayue119.com -huayuejob.com -huayun.com -huayunshuzi.com -huayunyy.com -huayuzj.com -huazhen2008.com -huazhen2008.net -huazhengcaiwu.com -huazhenjiaoyu.com -huazhongcar.com -huazhongcnc.com -huazhonghua.com -huazhongtimes.com -huazhu.com -huazhuanapp.com -huazhucorp.com -huazirc.com -hubcyts.com -hubeibbs.net -hubeici.com -hubeidaily.net -hubeihome.net -hubeiip.com -hubeikj.com -hubeipbx.com -hubeiwsd.com -hubeixuekao.com -hubeiyanjiusheng.com -hubeiyongtai.com -hubiazhi.com -hubokan.com -hubpd.com -hubu.com -hubulab.com -hubwiz.com -hucdn.com -huceo.com -huchaowei.com -hucheng100.com -hudai.com -hudbbs.com -hudong.com -hudongad.com -hudongba.com -hudongcdn.com -hudongku.net -hudunsoft.com -huduntech.com -huelead.com -huenhuenfood.com -hufangyun.com -hugaoba.com -hugd.com -hugecdn168.com -hugeland.com -huhoo.com -huhoo.net -huhua.net -huhuang.net -huhudi.com -huhuguanjia.com -huhustory.com -hui-ben.com -hui-chao.com -hui.net -hui10.com -hui10.net -hui100.com -hui43.com -hui712.com -hui800.com -hui800.net -huians.com -huibo.com -huicaishui.net -huiche100.com -huicheimg.com -huichengip.com -huichewang.com -huicx7.com -huidada.net -huidan.net -huidang.com -huideyecai.com -huidian.net -huidongnet.com -huidu.com -huidu.net -huidu001.com -huiemall.com -huieyes.com -huifachina.com -huifenqi.com -huifudashi.com -huifusihai.com -huifutz.com -huigao-magnetics.com -huigezi.org -huihaicenter.com -huihaicn.com -huihua365.com -huihuaren.com -huihuarensheng.com -huiji.wiki -huijiame.com -huijiaoyun.com -huijidata.com -huijie.shop -huijiewei.com -huijimall.com -huijistatic.com -huijita.com -huijitrans.com -huijiwiki.com -huiju.cool -huijucn.com -huila88.com -huilan.com -huilanyujia.com -huilianyi.com -huilitao.com -huiliubao.com -huiliuti.com -huilm.com -huilog.com -huilongsen.com -huilvwang.com -huim.com -huimaiche.com -huiman.net -huimee.com -huimee.net -huimeisports.com -huimengya.com -huimin111.com -huimingcn.com -huinaimei.com -huing.net -huion.com -huiqudsp.com -huiris.com -huirixiao.com -huishangbao.com -huishangol.com -huishanjianchayuan.com -huishenghuo888888.com -huishengqianzhushou.com -huishoubao.com -huishoubaojiadan.com -huishoujiuwu.com -huishoushang.com -huishuaka.com -huishuang.xyz -huisituo.com -huisky.com -huisou.com -huisuoping.com -huitangwenquan.com -huitao.net -huitaodang.com -huitaoyouhui.com -huitongqingsuan.com -huitoubj.com -huitouche.com -huitouyu.com -huitouzi.com -huitu.com -huitun.com -huiurl.com -huivo.com -huiwo.com -huiword.com -huixiang360.com -huixiangtiandi.com -huixiaoer.com -huixiaoer.net -huixing.hk -huixingsoft.com -huixinli.com -huixinyt.com -huixinyun.com -huixuanjiasu.com -huiyan315.com -huiyankan.com -huiyaohuyu.com -huiyi8.com -huiyiabc.com -huiyijh.com -huiyinxun.com -huiyizhuo.com -huiyou.com -huiyu.vc -huiyuandao.com -huiyuanyy.com -huiyumedia.com -huize.com -huizecdn.com -huizhan-inc.com -huizhaofang.com -huizhek.com -huizhijiaxun.com -huizhimob.com -huizhouf.com -huiziyuan.net -huizone.com -huizuche.com -huizucloud.com -huizuoyuezi.com -huizustore.com -hujia.org -hujiang.com -hujiuzhou.com -huke88.com -hukou021.com -hulai.com -hulanap.com -hulianmaibo.com -hulinhong.com -huliyx.com -huluboshi.com -huluip.tech -huluo.com -huluoyun.com -hulusaas.com -hulusi.com -huluwa365.com -huluwa8.com -huluxia.com -huluxia.net -huluzc.com -humaiyouxi.com -humanrights-china.org -humengyun.com -humensec.com -huming.com -hunancatv.com -hunanedu.net -hunantv.com -hunanwb.com -hunanzhibo.com -hunbei.com -hunbei1.com -hunbei2.com -hunbei3.com -hunbei4.com -hunbei5.com -hunbohui.info -hunbys.com -hunche.net -hundredcent.com -hundsun.com -hundun.net -hundx.com -hunger-valley.com -hunjuwang.com -hunli100.com -hunlihu.com -hunlihunli.com -hunliji.com -hunlimao.com -hunmiao.com -hunt007.com -huntchance.com -huntic.com -huntkey.com -huntkeydiy.com -hunuo.com -hunyinyiyuan.com -huo-cun.com -huo119.com -huoban.com -huobanhuyu.com -huobanjs.com -huobanmall.com -huobanniu.com -huobanxietong.com -huobaowang.com -huobaoyx.com -huobi.io -huocai.com -huocc.com -huochai.mobi -huoche.com -huoche.net -huoche.wiki -huochepiao.com -huochepiao.net -huocheso.com -huodao.hk -huodong.org -huodong.store -huodonghezi.com -huodonghui.net -huodongjia.com -huodongju.com -huodongju.net -huodongpro.com -huodongquan.net -huodongshu.com -huodongwang.com -huodongxing.com -huoduan.com -huofar.com -huofutp.com -huogz.com -huohoo.com -huohu123.com -huohuacdn.com -huohuo.com -huohuolife.com -huoji.com -huojiaba.com -huoju365.com -huokebao.net -huokesoft.com -huokeying.com -huolala.co -huolan.net -huolea.com -huoli.com -huolinhe.com -huolishaonianwang.com -huolug.com -huomakeji.com -huomao.com -huomaqun.com -huoming.com -huopinyuan.com -huoqiuapp.com -huosdk.com -huoshan.cc -huoshan.club -huoshan.com -huoshanimg.com -huoshanlive.com -huoshanstatic.com -huoshansxy.com -huoshanvod.com -huoshanzhibo.com -huoshen.com -huosu.com -huosubtc.com -huotan.com -huowan.com -huoxing24.com -huoxingba.com -huoxingzi.com -huoxun.com -huoyan.com -huoyan.io -huoyanio.com -huoying666.com -huoyuan.mobi -huoyuandl.com -huoyugame.com -hupan.com -hupanedu.com -hupo.com -hupo.tv -hupu.com -hupu.tv -hupucdn.com -hurbai.com -hurun.net -husenji.com -hushangcaifu.com -hushuang.me -husiyang.com -hust-laser.com -hust-snde.com -hust-wuxi.com -hust.cc -hust.online -hustcad.com -hustduyan.com -hustlife.com -hustlzp.com -hustmei.com -hustnews.com -hustoj.com -hustonline.net -hustp.com -hustunique.com -hustwenhua.net -hustxb.com -husubao.com -hutaojie.com -hutaolinight.com -hutaow.com -hutong-school.com -hutoufeng.net -hutoulang.com -hutu.me -hutui9.com -hutuii.com -hutusi.com -huuhoo.com -huwaibbs.com -huwaizb.com -huway.com -huweihuang.com -huweishen.com -huxiaofan.com -huxiaoshi.com -huxingroup.com -huxiu.com -huxiu.link -huxiucdn.com -huya.com -huyahaha.com -huyall.com -huyanapp.com -huyanbao.com -huyaohui.com -huyaruanwen.com -huyn.com -huyouxiong.com -huyuncdn.com -huyuxx.com -huzhan.com -huzhao1.com -huzheng.org -huzhifeng.com -huzhongxin.com -huzhoumuseum.com -huzicaotang.com -huzu.com -hvacstar.com -hvdiy.com -hvtong.com -hw-ai.com -hw-tm.com -hw100k.com -hw3static.com -hw555.com -hw99.com -hwactive.com -hwadmin.com -hwangda.com -hwanjia.com -hwasmart.com -hwbaoan.com -hwccpc.com -hwcdnsre.com -hwcha.com -hwcloudlive.com -hwclouds-dns.com -jskpcg.org -hwclouds.com -hwclouds.mobi -hwclouds.net -hwcloudvis.com -hwcpb.com -hwcrazy.com -hwehs.com -hweimall.com -hwfcw.com -hwht.com -hwjyw.com -hwlpz.com -hwocloud.com -hworld.com -hwrecruit.com -hwsem.com -hwshu.com -hwtelcloud.com -hwtrip.com -hwwt2.com -hwwt8.com -hwxda.com -hwxjp.com -hwxnet.com -hwxuanliuqi.com -hwyxxx.com -hwzyjt.com -hx008.net -hx110.com -hx2car.com -hx2cars.com -hx36.net -hx8886.com -hx99.net -hxage.com -hxbdf120.com -hxbdxled.com -hxbsth.com -hxbxw.com -hxcdn.net -hxchem.net -hxct.com -hxdi.com -hxdkfp.com -hxdkj88.com -hxen.com -hxepawn.com -hxfilm.com -hxfjw.com -hxfy888.com -hxgame.net -hxgqw.com -hxgs.net -hxgwott.com -hxhost.com -hxinq.com -hxjbcdn.com -hxjbh.com -hxjiqi.com -hxjlhn.com -hxjwang.com -hxkba.com -hxland.com -hxlsw.com -hxltad.com -hxmeishi.com -hxnews.com -hxpay01.com -hxppw.com -hxqc.com -hxqcgf.com -hxqcjt.com -hxqnj.org -hxrc.com -hxsd.com -hxsd.tv -hxsec.com -hxsme.org -hxstrive.com -hxtk.com -hxwglm.com -hxxkw.org -hxxl6.com -hxy365.com -hxyjw.com -hxys.com -hxytea.com -hxytw.com -hxzq.net -hy-la.com -hy-zr.com -hy01888.com -hy05190134.com -hy123.com -hy2046.com -hy233.tv -hy628.com -hy8881.com -hyahm.com -hyb2b.com -hybbtree.com -hycdn.com -hycfw.com -hycgy.com -hyckjic.com -hycn.com -hydarts.com -hydbest.com -hydcd.com -hydz999.com -hydzfp.com -hyedu.com -hyext.com -hyfutures.com -hyggfx.com -hygl.org -hygoldcup.com -hygy361.com -hyhcdn.com -hyhjbh.com -hyhl66.com -hyhro.com -hyhuo.com -hyhygame.com -hyimmi.com -hyipchina.com -hyj999.com -hyjgxx.com -hyjp.net -hykang.com -hykcsoft.com -hykj.cc -hyl1.tv -hylandslaw.com -hylname.com -hym68.com -hynews.net -hynixic.com -hynpay.com -hyocr.com -hyouda.com -hypefolio.com -hypefolio.net -hyper.sh -hypercachenet.com -hypergryph.com -hypersilicon.com -hyrainbow.com -hysdknb.com -hysec.com -hysemi-ic.com -hyshi.net -hysteeltube.com -hyt368.com -hytcshare.com -hytd.com -hytera.com -hyundai-hmtc.com -hyundaibeijing.com -hyuuhit.com -hyyf.net -hyyoa.com -hyzcservice.com -hyzkjh.com -hyzm.cc -hyznjs.com -hyzqxsb.com -hz-etest.com -hz-expo.com -hz-gn.com -hz-hospital.com -hz-winone.com -hz-xin.com -hz1cm.com -hz5800.com -hz66.com -hzaee.com -hzairport.com -hzallina.com -hzamcare.com -hzapuqi.com -hzbh.com -hzbianqing.com -hzbike.com -hzbook.com -hzbxm.com -hzc.com -hzcbparking.com -hzccb.net -hzccnet.com -hzcekong.com -hzchengdun.com -hzcnc.com -hzcopyright.com -hzcourse.com -hzdajiangdong.com -hzdjr.com -hzdledu.com -hzdlrj.com -hzdx.com -hzecsemir.com -hzeg.com -hzfc.cc -hzfeiyao.com -hzfolo.com -hzfucai.net -hzgh.org -hzgjj.com -hzgrow.com -hzguojiao.com -hzgxr.com -hzh1.com -hzhadx.com -hzhanbo.com -hzhcontrols.com -hzhengtong.com -hzhfzx.com -hzhike.com -hzhisoft.com -hzhlpt.com -hzhltec.com -hzhr.com -hzhuangxiang.com -hzhx.com -hzins.com -hzins.net -hzjbzg.com -hzjingxian.com -hzjizhun.com -hzjlcs.com -hzjlxx.com -hzjmjl.com -hzjqhy.com -hzjunglepay.com -hzkayo.com -hzkshx.com -hzkuangxiangzi.com -hzleshun.com -hzljlyy.com -hzlug.org -hzmama.net -hzman.net -hzmantu.com -hzmba.com -hzmogo.com -hzmylike.com -hzncc.com -hznews.com -hznk91.com -hznsh.com -hznzcn.com -hzou.net -hzpgc.com -hzpzs.net -hzqf123.com -hzqiuxue.com -hzqlpt.com -hzqx.com -hzr1.com -hzranqu.com -hzrc.com -hzredream.com -hzrobam.com -hzsaifang.com -hzsaso.com -hzsbz.com -hzsdyfzfxxx.com -hzsgjj.com -hzshanjie.com -hzshudian.com -hzstad88.com -hzthinker.net -hzti.com -hztosz.com -hztraining.com -hztygd.com -hzvillas.com -hzwer.com -hzwindpower.com -hzwmw.com -hzwsjyjt.com -hzwtech.com -hzwyx.net -hzxhymc.com -hzxiaobao.com -hzxituan.com -hzxiyuege.com -hzxsjgxx.com -hzxyns.com -hzyestar.com -hzyhzp.com -hzylpco.com -hzyoka.com -hzypro.com -hzyuedu.com -hzyuewan.com -hzywinf.com -hzyz.net -hzzhaobiao.com -hzzkj.net -hzzp.com -hzzrmc.com -hzzsfs.com -hzzuyin.com -i-27.name -i-520.net -i-bei.com -i-bigdatas.net -i-click.com -i-ev.com -i-excellence.com -i-firefly.com -i-hifi.com -i-jim.com -i-kan.me -i-lewan.com -i-m.dev -i-manji.com -i-matcher.com -i-md.com -i-modec.com -i-mofang.com -i-morefun.com -i-now.com -i-oranges.com -i-same.com -i-shu.com -i-size.com -i-study.net -i-tongfang.com -i-vision-cn.com -i-xinnuo.com -i-xoron.com -zyzw.com -i0349.com -i0746.com -i075.com -i0898.org -i100e.com -i11r.com -i121.net -i1515.com -i1766.com -i2abc.com -i2eas.com -i2ya.com -i360mall.com -i3839.com -i3abox.com -i3done.com -i3dpworld.com -i3geek.com -i3gt.com -i3smot.com -i3v.cc -i3yuan.com -i4px.com -i4t.com -i51game.com -i52tt.com -i5399.com -i5a6.com -i5i6.net -i5jh6b.cc -i5mai.com -i66wan.com -i6879.com -i7box.com -i7fh.com -i7gg.com -i7play.com -i7wx.com -i8001.com -i8cn.com -i8i8i8.com -i8tq.com -i9.org -i91pv.com -i9star.com -ia-shenzhen.com -iaddata.com -iadmob.com -iadmore.com -iaeac.org -iaikx.com -ialicdn.com -ialloc.com -iambanban.com -iambocai.com -iameduwork.com -iamfisher.net -iamhippo.com -iamjzs.com -iamle.com -iamlintao.com -iamshuaidi.com -iamsujie.com -iamtxt.com -iamverycute.com -iamwr.com -iamxiaoming.net -iamxk.com -iandun.com -ianvisa.com -iaoso.com -iaoyou.com -iapijy.com -iapolo.com -iapp4me.com -iapple123.com -iappler.net -iapps.im -iappstoday.com -iars-wuhan.com -iartsee.com -iask-media.com -iask.com -iask.in -iaskbus.com -iaskhot.com -iat-auto.com -iautodraw.com -iavira.com -iaviva.com -iaxure.com -iazhi.com -ib-china.com -ibaba88.com -ibadboy.net -ibaiji.org -ibailve.com -ibaizhu.com -ibanbu.com -ibangkf.com -ibangquan.com -ibanma.net -ibanquan.com -ibantang.com -ibanyu.com -ibaobay.com -ibaotu.com -ibaoxiu.net -ibayapp.com -ibbwhat.com -ibcde.com -ibcet.org -ibczy.com -ibeesoft.com -ibeifeng.com -ibeiig.com -ibeiliao.com -ibeiou.com -ibenxi.com -ibestapp.com -ibestfanli.com -ibestv.com -ibeta.me -ibianma.com -ibianqu.com -ibicn.com -ibidian.com -ibiji.com -ibimawen.com -ibimuyu.com -ibingniao.com -ibiquge.la -ibiquge.net -ibiquges.com -ibiquke.com -ibiquku.la -ibiquxs.net -ibireme.com -ibixiaxs.com -ibkcn.com -ibl520.com -iblimg.com -ibloger.net -iblue.com -iblue.me -ibluefrog.com -ibluesocial.com -ibmfwqdl.com -ibmhz.com -ibmwclub.com -ibook8.com -ibooker.cc -ibookstar.com -ibornclinic.com -iboxpay.com -ibr.cc -ibreader.com -ibroadlink.com -ibruce.info -ibscdn.com -ibtsat.com -ibuick.com -ibuscloud.com -ibuychem.com -ibw.cc -ibytedapm.com -ic-ldo.com -ic-valley.com -ic2china.com -ic37.com -ic72.com -ic98.com -ic9cube.com -ica-alliance.org -icafe28.net -icafe8.com -icafe8.net -icaidao.com -icaifu.com -icaile.com -icall.me -icammy.com -ican-contest.org -ican365.net -icandata.com -icangshu111.com -icardfinancial.com -icaredbd.com -icasiso.com -icastlewar.com -icax.org -001town.com -icbc-at.com -icbc-cz.com -icbc-ltd.com -icbc-uk.com -icbc-us.com -icbc.ae -icbc.be -zyzkb.net -zyzjmz.org -zyzj.org -zyzimg.com -zyzhan.com -zyzaojiao.com -zyz119.com -zyyfy.com -zyxuan.org -zyxr.com -zywxpress.com -zywjw.com -zyun.vip -zyue.com -zyucan.com -zytxgame.com -zytuozhan.com -icbc.de -icbc.eu -icbc.jp -icbc.lu -icbcalmaty.kz -icbcasia.com -zyt8.com -zystarlink.com -icbcina.com -icbcindia.com -icbcit.com -icbclondon.com -icbcme.ae -icbcmoscow.ru -icbcmy.com -icbcnz.com -icbcpanama.com -icbcparis.fr -icbcpl.com -icbcstandard.com -icbcstandardbank.com -icbcstandardresources.com -icbcstandardsecurities.com -icbcswiss.com -icbcthai.com -icbkfs.com -icbkus.com -icbuy.com -icc.link -icc365.com -iccchina.com -iccessh.org -iccgame.com -iccgame.net -icchaoren.com -iccidchaxun.com -iccircle.com -iccsmart.com -iccsz.com -icdeal.com -icdn2.com -icdream.com -icdt-conf.com -ice.work -ice1000.org -iceasy.com -icebear.me -icebound.cc -icecloud-car.com -iceflowsoft.com -icefoxgame.com -iceinto.com -icekr.com -icekylin.online -icemle.org -icentown.com -icepie.net -icesimba.com -icevpn.org -icewingcc.com -icfans.com -icfcc.com -icfgblog.com -icfqs.com -icfusions.com -icgoo.net -icgu.com -icgvisa.com -ich8.com -ichacha.com -ichacha.net -ichang8.com -ichangtou.com -ichanyu.com -ichaoshangyue.com -ichaotu.com -ichat800.com -ichdata.com -ichehaopei.com -ichehome.com -ichenfei.com -ichengyun.net -ichennan.com -ichinaceo.com -ichinaenergy.com -ichuanglan.com -ichuangwei.com -ichuangye.com -ichuanyi.com -ichunqiu.com -ichunt.com -ichzh.com -iciba.com -icicicic.com -icifit.com -icignacmb.com -icinfo.net -icirculation.com -icitymobile.com -icitypf.com -icixun.com -iciyuan.com -icjiemi.com -icjs.ink -ickeep.com -icketang.com -ickey.cc -ickimg.com -iclicash.com -iclickstatic.com -icloudcity.com -icloudgslb.com -icloudnative.io -icloudnews.net -iclouds.work -icloudv6.com -icloudwaf.com -icmade.com -icme14.org -icminer.com -icmomo.com -icmsdev.com -icnjob.com -icnkr.com -icnote.com -icntv.tv -icoat.cc -icoc.bz -icoc.cc -icoc.in -icoc.me -icocg.com -icodelogic.com -icoderobot.com -icofchina.com -icom5g.com -iconfans.com -iconfans.org -iconntech.com -icoou.com -icoremail.net -icos8.com -icosky.com -icourse163.com -icourse163.org -icourt.cc -icp100.net -icp21.com -icpcdn.com -icpcw.com -icpdaili.com -icphu.com -icpisp.net -icplishi.com -icrazyidea.com -icroom.com -icrosschina.com -ics.design -icshanghai.com -icsisia.com -icslx.com -icsoc.net -icson.com -icspec.com -icss.me -icstreet.com -icswb.com -ict361.com -ictcsr.org -ictehi.com -ictest8.com -ictlce.com -ictown.com -ictpaas.com -ictun.com -ictuniv.com -icver.com -icvip.com -icxbk.com -icxinli.com -icy-capital.com -iczhiku.com -iczoom.com -id-bear.com -id6.me -idabai.com -idachu.com -idadt.com -idafen.com -idaima.com -idangdai.com -idanpianji.com -idaocao.com -idatacube.com -idataforces.com -idatage.com -idataway.com -idbhost.com -idc-icp.com -idc002.com -idc021.com -idc029.com -idc123.com -idc180.com -idc218.com -idc31.com -idc4.com -idc400.com -idc45.com -idc789.com -idc917.com -idc96.net -idcay.com -idcbest.com -idcbest.hk -idccenter.net -idcchacha.com -idccom.net -idccun.com -idceb.com -idcfengye.com -idcgcloudcs.com -idchh.com -idchz.com -idcicp.com -idcicpdns.com -idcjf.com -idcjia.net -idckx.com -idcloudbase.com -idcoffer.com -idcquan.com -idcsec.com -idcser.com -idcsh.com -idcspy.com -idcspy.net -idcss.com -idctq.com -idcug.com -idcum.net -idcun.com -idcuw.com -idcvendor.com -idcvip.net -idcwn.com -idcys.com -idcyunwei.org -idczone.net -idd1.com -idea-king.org -idea1986.com -ideacms.net -ideagou.com -idealeer.com -idealshanghai.com -ideanote.cc -ideappt.com -ideasandroid.com -ideazhao.com -ideebank.com -ideepin.com -ideng.com -idesktopcal.com -idevz.org -idgvc.com -idianchou.com -idianfa.com -idianshijia.com -idigi.net -idlegog.com -idmchina.net -idmzj.com -idn100.com -idname.com -idnscloud.com -ido-love.com -ido512.com -idoacg.com -idocbank.com -idocv.com -idol001.com -idolranking.info -idolyx.com -idom.me -idong.ren -idongde.com -idongdong.com -idongmai.com -idongniu.com -idosend.com -idotools.com -idoupiao.com -idourl.com -idouyinstatic.com -idouyinvod.com -idouzi.com -idoyun.com -idqqimg.com -idreamsky.com -idreamsoft.com -idrools.com -idrwl.com -idscn.com -idscn.net -idsky.net -idspub.net -idsuipai.com -idtcdn.com -idtechwh.com -idu9.com -iduba.com -iduo8.com -iduochong.com -iduodou.com -iduokan.net -iduvip.com -idwzx.com -idyzs.com -idzcp.com -ie515.com -ie525.com -ie815.com -ie915.com -ie935.com -ie977.com -ieasn.com -ieasy123.com -ieasytech.com -ieayoio.com -iecdn.com -iecidc.com -iecity.com -iecnews.com -iecnu.com -iecool.com -ieduchina.com -ieechina.com -ieee-jas.net -ieeewifi.com -ieeod0.com -ieepa.org -iefang.com -iefans.net -iegcom.com -iegee.net -iegourl.com -iejiu.com -ieltsabc.com -ieltschn.com -ieltsonlinetests.com -iemblog.com -iemiq.com -ienjoys.com -ienjoys.mobi -iermu.com -iesdouyin.com -ieshu.com -iessay100.com -ietdata.com -ietheme.com -iewb.net -iewie.org -iewzx.com -iexx.com -iezuo.com -ifabao.com -ifabiao.com -ifaclub.com -ifanbei.com -ifangarden.com -ifangka.com -ifanr.com -ifanr.in -ifanrusercontent.com -ifanrx.com -ifareast.com -ifatrabbit.com -ifaxin.com -ifaxin.org -ifconfig.cc -ifeehei.xyz -ifeimo.com -ifeng.com -ifengcdn.com -ifenghui.com -ifengimg.com -ifengli.com -ifenglian.com -ifengniao.net -ifengo.com -ifengpai.com -ifengqun.com -ifenguo.com -ifengweekly.com -ifengwoo.com -ifensi.com -ifenxi.com -ifenxiang.cc -ifere.com -ifeve.com -ifindever.com -ifindhs.com -ifintechnews.com -ifireflygame.com -ifiretech.com -ifitbox.com -ifjing.com -iflyhealth.com -iflying.com -iflyink.com -iflynote.com -iflyread.com -iflyrec.com -iflyresearch.com -iflysec.com -iflytek.com -iflytektstd.com -ifma-china.org -ifmicro.com -ifmtech.com -ifnews.com -ifonelab.net -ifonts.com -iforce-media.com -ifoxfactory.com -ifreecdn.com -ifreecomm.com -ifreedom001.com -ifreetalk.com -ifreeurl.com -ifreewallpaper.com -ifresh.mobi -ifromvr.com -ifseclabs.com -ifundstore.com -ifunmac.com -ifunvip.com -ifutest.com -ifutureworks.com -ifval.com -ifxsb.com -ifxtx.com -ifzxs.cc -igaichong.com -igame007.com -igame58.com -igamecj.com -igao7.com -igaoda.com -igbill.com -igdzc.com -igea-un.org -igeak.com -igeciku.com -igeekbar.com -igeidao.com -igelou.com -igenetech.com -igengmei.com -igerun.com -igeshui.com -igetget.com -igetui.com -igevin.info -igexin.com -igigo.net -igo180.com -igome.com -igomkt.com -igooma.com -igoyx.com -igreatdream.com -igtm-a101.com -igtm-b101.com -igtm-e101.com -igtm-meeting-tencent.com -igtm.pub -iguanyu.com -iguazutraffic.xyz -iguder.com -iguitar.me -igumo.cc -iguoguo.net -iguopin.com -iguoplay.com -iguowan.com -iguxuan.com -igwfmc.com -ihacksoft.com -ihaier.co -ihaier.com -ihaima.com -ihaiu.com -ihanbridge.com -ihang360.com -ihanghai.com -ihanhua.com -ihani.tv -ihanshi.com -ihaoxi.com -ihaozhuo.com -ihappy.vip -ihappystudio.com -ihdt.tv -ihdty.com -ihebi.info -ihei5.com -iheima.com -iheima.net -ihelpy.net -ihemuu.com -ihengheng.com -ihenji.com -ihepa.com -ihewro.com -ihggccampaign.com -ihhubei.com -ihint.me -ihisce.com -ihitui.com -ihitun.com -ihjiu.com -ihktv.com -ihomefnt.com -ihomesoft.net -ihongma.com -ihongmeng.tech -ihongpan.com -ihongqiqu.com -ihou.com -ihowguide.com -ihr360.com -ihrscloud.com -ihuaben.com -ihuan.me -ihuanling.com -ihuanque.com -ihuayou.net -ihuazhan.net -ihui.com -ihuidian.com -ihuigo.com -ihuipao.com -ihuman.com -ihumand.com -ihungyi.com -ihuntto.com -ihuoqiu.com -ihuoshanlive.com -ihuoyan.com -ihuyi.com -ihuzuan.com -ihwrm.com -ihx.cc -ihxlife.com -ihykb.com -ihypo.net -ihzzy.com -ii.cc -ii010.com -ii090.com -ii77.com -iiad.com -iianews.com -iiaq.net -iibechina.com -iibq.com -iicha.com -iicp.net -iidns.com -iigs9.com -iii80.com -iiiimg.com -iiijk.com -iiiview.net -iikeji.com -iikuzhan.com -iikx.com -iiong.com -iipiano.com -iirii.com -iis7.com -iischool.com -iisfree2.com -iisicp.com -iisp.com -iissbbs.com -iissnan.com -iitcp.com -iitoutiao.com -iituku.com -iivey.com -iiycy.com -iiyi.com -iiyibbs.com -ijac.net -ijh.cc -ijia360.com -ijiandao.com -ijiangyin.com -ijianji.com -ijiatv.com -ijie.com -ijiedian.com -ijiela.com -ijindun.com -ijingdi.com -ijinshan.com -ijinzhuan.com -ijishu.cc -ijiujiao.com -ijiwei.com -ijiwen.com -ijizhi.com -ijjnews.com -ijnqc.com -ijq.tv -ijsi.org -ijson.com -ijsp.net -ijuanshi.com -ijuer.com -ijuhepay.com -ijunhai.com -ijunxun.com -ijuwu.com -ijycnd.com -ijzhang.com -ik123.com -ik3cloud.com -ikafan.com -ikaixun.com -ikaka.com -ikakuedu.com -ikanchai.com -ikandian.com -ikang.com -ikantu365.com -ikaoguo.com -ikaolaa.com -ikcd.net -ikcest.org -ikcrm.com -ikcw.com -ike-global.com -ikeguang.com -ikemeng.com -ikepu.com -ikjtao.com -ikjzd.com -ikmhua.com -ikmt.net -iknowbooks.com -ikonfx.com -ikongjian.com -ikongjun.com -ikonke.com -ikozn.com -iksea.com -iku.cool -iku8.com -ikuai8-wifi.com -ikuai8.com -ikuailian.com -ikuajing.com -ikunac.com -ikx.me -ikyy.cc -ikzybf.com -il8r.com -ilab-x.com -ilabilab.com -ilaisa.com -ilaitui.com -ilancai.com -ilanni.com -ilanx0.net -ilanyao.com -ilanzou.com -ilaw66.com -ilawpress.com -ilazycat.com -ileci.com -ileedarson.com -ileehoo.com -ilego.club -ileshua.com -ilewan.com -iliangcang.com -ilianyue.com -ilibrand.com -ilidubj.net -ilifesmart.com -ilinekesy.com -ilingdai.com -ilinki.net -ilinkone.com -ilinux.xyz -ilinuxkernel.com -ilinyi.net -ilishi.com -ilishi.net -iliuliu.com -ilivehouse.com -ilixiangguo.com -iliyu.com -ilkeji.com -ilkwork.com -illumpaper.com -ilmgq.com -ilohas.com -iloli.bid -ilongre.com -ilongterm.com -iloveanan.com -ilovefishc.com -ilovelvxing.com -iloveyou14.com -iloveyouxi.com -ilovezuan.com -ilsungf.com -ilufan.com -iluoyang.com -iluqi.com -ilustrepro.com -iluvatar.ai -ilv6.com -ilxdh.com -ilz.me -im-cc.com -im170.com -im286.com -im286.net -im2maker.com -im323.com -im520.com -im577.com -im5i.com -im9.com -imaccn.com -imacso.com -imaegoo.com -image-mangdiaxyz.com -imageaccelerate.com -imageedu.com -imagefz.com -imagehub.cc -imagelol.com -imagepy.org -images-cache.com -images-huoshan.com -zys.me -imagestoryai.com -imageter.com -imagetotxt.com -imaginde.com -imagineadtech.com -imags-google.com -imahui.com -imaibo.net -imaijia.com -imaitu.com -imalljoy.com -imandarin.net -imangodoc.com -imanhuaw.net -imaojiang.com -imarketchina.com -imaschina.com -imatlas.com -imayitxt.com -imazingchina.com -imbackr.com -imbeiyu.com -imblog.in -imbtk.com -imcapptest.com -imcec.org -imcn.me -imdadui.com -imdo.co -imdodo.com -imdst.com -imedao.com -imedicalai.com -imedp.com -imeete.com -imeete.net -imeidb.com -imeihei.com -imeiju.cc -imeishike.com -imeitools.com -imeitou.com -imeme.tv -imesong.com -imeyahair.com -imfirewall.com -img-space.com -img-sys.com -zyrykbiandao.com -img005.com -img168.net -img16888.com -img4399.com -img898.com -imgads.xyz -imgcdc.com -imgcdn2.com -imgchr.com -imgds.xyz -imgeek.org -imgets.com -imgii.com -imgkr.com -imglefeng.com -imglink.win -imgo.tv -imgscdn.com -imgse.com -imgsha.com -imgsina.com -imgtg.com -imgtu.com -imgurl.org -imhan.com -imhanjie.com -imhdr.com -imhuchao.com -imibaby.net -imicang.com -imiker.com -imindmap.cc -iminisd.com -imitui.com -imixpark.com -imjiayin.com -imkevinyang.com -imkira.com -imlaidian.com -imlcl.com -imlianai.com -imliuyi.com -immi520.com -immiexpo.com -immivip.com -immomo.com -immomogame.com -immusician.com -imnerd.org -imnight.com -imnks.com -imobile-ent.com -imobon.com -imochen.com -imoduo.com -imoe.me -imoeer.com -imoemh.com -imoeq.com -imofan.com -imoffice.com -imohu.com -imolink.com -imomoe.ai -imomoe.com -imomoe.in -imomoe.io -imooc.com -imoocc.com -imoonfm.com -imooo.com -imopan.com -imosi.com -imotao.com -imoxiu.com -imp3.net -imperfectionstudio.com -imperial-vision.com -impk.cc -impk113.com -impnails.com -impopper.com -impta.com -imqq.com -imququ.com -imquzan.com -imrfresh.com -imshell.com -imshu.cc -imshusheng.com -imsilkroad.com -imsle.com -imspm.com -imsun.net -imsxm.com -imtmp.net -imtuan.com -imudgame.com -imugeda.com -imuke.com -imuo.com -imvictor.tech -imw.me -imwaco.com -imwallet.com -imweb.io -imweia.com -imwexpo.com -imwork.net -imx365.net -imxh.com -imxingzhe.com -imxpan.com -imxyd.com -imycdn.com -imycloud.com -imydns.net -imyjdo.com -imys.net -imyshare.com -imyuedu.com -imzego.com -imzhongxin.com -imzhuomo.com -in-en.com -in-int.com -in.th -in001.com -in66.com -in6way.com -in800.com -in955.com -inabr.com -inad.com -inanrenbang.com -inbeijing.org -inbilin.com -inbooker.com -inboyu.com -inc365.com -incake.net -incensechina.com -incker.com -incloudexpo.com -incopat.com -incsg.com -ind-app-comp.com -ind-map.com -ind9ed.com -indexedu.com -indexedu.net -indexmob.com -indiancn.com -indics.com -indielight.net -indienova.com -indier.com -indmi.com -induta.com -ineice.com -inengyuan.com -inesa-it.com -inetech.fun -inetgoes.com -inetnoc.com -inewhope.com -inewoffice.com -infarts.net -infertilitybridge.com -infineon-autoeco.com -infinitescript.com -infinitynewtab.com -infinitytab.com -info.cc -info10.com -info110.com -info35.com -infobidding.com -infobigdata.com -infocloud.cc -infocomm-journal.com -infohpc.com -infoier.com -infoipwest.com -infong.net -infoobs.com -infoq.com -infoqstatic.com -inforbus.com -inforguard.net -informrack.com -inforsec.org -infosoft.cc -infovc.com -infowuxi.com -infoxgame.com -inframe.mobi -inftab.com -infyniclick.com -infzm.com -ing10bbs.com -ingageapp.com -ingaoyt.biz -ingcore.com -ingdan.com -ingenic.com -ingkee.com -ingping.com -inhdd.com -inhe.net -inhi.kim -inhuawei.com -ini3e.com -inibiru.com -inicoapp.com -inidc.net -inimc.com -ininin.com -initialview.com -initroot.com -inja.com -injoinic.com -inkankan.com -inkanke.com -inkcn.com -inke.com -inke.tv -inkeygo.com -inkonote.com -inktok.com -inkuai.com -inkwai.com -inlaylink.com -inlishui.com -inlovektv.com -inmeng.net -inmuu.com -inneed.club -innity.com -innity.net -innjia.com -innocn.com -innocomn.com -innodealing.com -innofidei.com -innojoy.com -innotechx.com -innotron.com -innovatedigital.com -innoveronline.com -innovidcn.com -innovisgroup.com -innvitor.com -inoherb.com -inoneh5.com -inoteexpress.com -inovance-automotive.com -inpla.net -inplayable.com -inputmore.com -inqan.com -inrice.com -inrugao.com -insarticle.com -inshiqi.com -insidelinuxdev.net -insightblog.ca -insnail.com -inspeed.biz -inspur.com -inspuronline.com -inspurpower.com -insta360.com -instafogging.com -installgreat.com -insun-china.com -inswindow.com -insxz.com -int-agri.com -int800.com -intaek.com -intcache.net -intdmp.com -intecol-10iwc.com -intekey.com -intel-space.com -intelcupid.com -intelligentmanufactory.com -intelvisioncn.com -inter12.org -inter1908.net -interactivebrokers.hk -intergreat.com -internationalbrand.net -internbird.com -internet-dns.com -internetke.com -internettrademark.com -internetworld.cloud -interotc.net -intertid.com -interval.im -intimerent.com -intio.org -intl-hzc.com -intlgame.com -intlqydd.info -intlscdn.com -intmedic.com -intmian.com -intohard.com -intopet.com -intovfx.com -intowz.com -intozgc.com -intple.com -intsavi.com -intsig.net -intsweet.com -intwho.com -inuobi.com -inuu6.com -inveno.com -inverter.so -invescogreatwall.com -invest-data.com -investoday.net -investorscn.com -investstkitts.org -invoee.com -inwaishe.com -inwatch.cc -inxedu.com -inxni.com -inyuapp.com -inzone-auto.com -inzotek.com -ioa365.com -ioage.com -ioclab.com -iocrest.com -iodraw.com -ioeyjsb.com -ioffershow.com -ioffice100.com -ioiox.com -iok.la -iol8.com -ioneball.com -ionewu.com -ionichina.com -iooeoo.com -iopenhec.com -iosappx.com -iosask.com -iosfengwo.com -iosinit.com -iosmu.com -iosre.com -iot-online.com -iot.moe -iot1001.com -iot101.com -iot688.com -iotachem.com -iotbay.com -iotexpo.org -iotfair.net -iotku.com -iotmag.com -iotpai.com -iotwrt.com -iotxing.com -iouluo.com -iovweek.com -iowiki.com -ip-cdn.com -ip-guard.net -ip008.com -ip138.com -ip192.com -ip33.com -ip3366.net -ip518.com -ip669.com -ip87.com -ipaddr.host -ipadown.com -ipadview.com -ipaiban.com -ipail.com -ipalfish.com -ipalmap.com -ipampas.com -ipanda.com -ipanda.net -ipandao.com -ipandata.com -ipangcai.com -ipanshi.com -ipaomi.com -ipaotuan.com -ipason.com -ipay.so -ipcfun.com -ipchaxun.com -ipchaxun.net -ipcmen.com -ipcodm.com -ipcorecatalog.com -ipctest.com -ipcwifi.com -ipcxz.com -ipdaili.com -ipddz.com -ipdfmaster.com -ipdftool.com -ipdianhua.com -ipdsms.com -ipduoduo.cc -ipduoduo.com -ipease.net -ipeedu.com -ipehr.com -ipehua.com -ipeijiu.com -ipengchen.com -ipengtai.com -iper2.com -iperson.xyz -ipexp.com -ipfeibiao.com -ipfen.com -ipfsbit.com -ipgoal.com -iphonediule.com -ipin.com -ipinba.com -ipingyao.com -ipinyou.com -ipip.net -ipktv.com -ipku.com -iplascloud.com -iplawyerlyj.com -iplay11g.com -iplaypy.com -iplaysoft.com -iplusmed.com -ipmay.com -ipmost.com -ipmph.com -ipo.la -ipo3.com -ipoceo.com -iposeidongame.com -ipple.net -ipplus360.com -ippzone.com -ipr114.net -ipr123.com -iprchn.com -iprdaily.com -iprdp.net -ipresst.com -iprtop.com -iprun.com -ips8.com -ipshudi.com -ipssh.net -iptalent.com -iptrm.com -ipuu.net -ipv4.host -ipv6dns.com -ipyy.com -iq123.com -iqalliance.org -iqcrj.com -iqdii.com -iqdnet.com -iqianggou.com -iqianjin.com -iqianyue.com -iqidian.com -iqihang.com -iqilu.com -iqilun.com -iqinbao.com -iqing.com -iqingdao.com -iqingua.com -iqishu.la -iqiyi.com -iqiyih5.com -iqiyipic.com -iqshw.com -iquanba.com -iquanfen.com -iquanwai.com -iqujing.com -iqunix.com -iqunix.store -iqupdate.com -iqushai.com -iqxbf.com -iqxedu.com -iqycamp.com -irain.in -iranshao.com -iraoping.com -ircmnr.com -ireader.com -ireadercity.com -ireadweek.com -ireadyit.com -irealbest.com -irealcare.com -irealtech.com -irecyclingtimes.com -iredwhale.com -irelandvisacenter.com -irelxtech.com -iresearchad.com -iresearchchina.com -irest.tv -irestapp.com -irising.me -irlianmeng.com -irockbunny.com -iroing.com -ironfishchina.com -irongbei.com -ironghui.com -irootech.com -irs01.com -irs01.net -irs03.com -irskj.com -iruanmi.com -iruidian.com -iruixing.com -irukou.com -is-programmer.com -is36.com -isamanhua.com -isay365.com -isbdai.org -iscrv.com -isd.com -isdox.com -isdpp.com -iseedog.com -iseekids.com -isenruan.com -iseoku.com -isf.ink -isfashion.com -isfirst.net -ish168.com -ishaanxi.com -ishala.com -ishang.net -ishanghome.com -ishangman.com -ishangtong.com -ishangtu.com -ishangu.com -ishanshan.com -ishansong.com -ishaohuang.com -isharebest.com -isharepc.com -isheely.com -isheet.net -isheji5.com -ishenbao.com -ishenping.com -ishenyou.com -ishhuo.com -ishipoffshore.com -ishoujizhuan.com -ishowchina.com -ishowx.com -ishubao.org -ishugui.com -ishuhui.com -ishuhui.net -ishuirong.com -ishuiyun.com -ishumei.com -ishuocha.com -ishuqi.com -ishuquge.com -isigu.com -isilent.me -isilicontech.com -isinosig.com -isixiang.com -isixue.com -isjike.com -iskcd.com -iskryou.com -isky000.com -iskyjoy.com -iskylinem.com -iskysoft.com -islide.cc -isluo.com -ismartgo.com -ismartware.com -ismdeep.com -isme.pub -isming.me -ismx8.com -iso-est.com -iso-iso9000.com -isobar.tech -isoftstone.com -isoo.cc -isorange.com -isotoo.com -isoucai.com -isoyes.com -isoying.com -isoyu.com -isp.cx -ispecial.xyz -ispqcloud.com -ispservice.cc -isrcb.com -isscloud.com -issconline.com -issedu365.com -issjj.com -issjr.com -issks.com -ist-zl.com -isthnew.com -istpei.com -istrongcloud.com -istudyinchina.org -istylepdf.com -isudaji.com -isuike.com -isummi.com -isun.org -isuzhou.me -isvee.com -isvjcloud.com -isvjd.com -isvup.com -iswifting.com -isxtv.com -isyour.love -it-bound.com -it-crazy.net -it007.com -it0746.com -it120.cc -it1352.com -it163.com -it165.net -it168.com -it2021.com -it376.com -it399.com -it525.com -it528.com -it578.com -it610.com -it666.com -it689.com -it69.net -it707.com -it7t.com -it918.com -it985.com -it9g.com -itaboola.com -itaic.org -itaiping.com -itakeeasy.com -italyvisacenterd.com -itamt.com -itangbole.com -itangyuan.com -itanlian.com -itanzi.com -itao.com -itaoke.org -itaokecms.com -itaored.com -itaotuo.com -itaoyun.com -itavcn.com -itbegin.com -itbilu.com -itbkz.com -itblw.com -itbole.com -itboth.com -itbour.com -itboy.net -itbulu.com -itbuy.com -itbyte.net -itcacfo.com -itchaguan.com -itcm.com -itcodemonkey.com -itcpn.net -itczh.com -itdabao.com -itdai.com -itdcw.com -itdiffer.com -itdks.com -itdoor.net -itdos.com -itdos.net -iteblog.com -itechate.com -itedou.com -iteer.net -itek-training.com -itelly.net -itellyou.com -itensoft.com -iter168.com -itest.info -itetc.org -itexamprep.com -iteye.com -itfans.net -itfeed.com -itfenghui.com -itfly.net -itfw5.com -itgd.net -itgeeker.net -itgege.com -itgemini.net -itgo.me -itgochina.com -itgoodboy.com -ithaowai.com -ithard.com -itheat.com -itheima.com -ithenticatecn.com -ithome.com -ithome.net -ithor.com -ithor.net -ithothub.com -ithov.com -itiankong.com -itiankong.net -itianliao.com -itiexue.net -itiger.com -itigergrowth.com -itilxf.com -itilzj.com -itingwa.com -itit.io -itiyan.net -itjoy.net -itjspx.com -itjuzi.com -itkoudai.com -itlu.org -itmanbu.com -itmastergame.com -itmind.net -itmoocs.com -itmop.com -itmsm.com -itmuch.com -itmuke.com -itmyhome.com -itnan.net -itnb.cc -itnec.org -itnihao.com -itniwota.com -itnpc.com -itnxs.com -itocp.com -itoec.org -itogame.com -itokit.com -itokoo.com -itonghui.com -itopcoupon.com -itopers.com -itophis.com -itopplay.com -itopsdk.com -itotii.com -itouchchina.com -itougu.com -itoumi.com -itoutiao.co -itoutiaoimg.com -itoutiaostatic.com -itoyfx.com -itpeo.net -itpon.com -itpow.com -itppi.org -itpub.net -itpux.com -itpux.net -itpwd.com -itrace.cc -itrid.com -itrip.com -itruelife.com -itruke.com -itry.com -its114.com -itshai.com -itshubao.com -itsiwei.com -itsk.com -itslaw.com -itsmephoto.net -itsogo.net -itsoku.com -itsun.com -itsvse.com -ittribalwo.com -ituad.com -itugo.com -ituite.com -itushuo.com -itutu.tv -ituu.net -itvssp.com -itwanger.com -itwlw.com -itwork.club -itwulin.com -itxe.net -itxia.club -itxiao.com -itxinwen.com -itxst.com -itxueyuan.com -itxuye.com -ityears.com -itying.com -ityouknow.com -itypen.com -ityuan.com -ityun.tech -ityxb.com -itzhp.com -itziy.com -itzjj.com -itzm.com -itzmx.com -itzmx.net -itzzh.com -iu18.com -iu95522.com -iuban.com -iucars.com -iucdn.com -iuctrip.com -iudodo.com -iufida.com -iuinns.com -iun2s8.xyz -iuni.com -iunus.com -iuoooo.com -iuplus.com -iusmob.com -iuynfg.com -iv06.com -ivali.com -ivan.xin -ivban.com -ivcheng.com -ivemusic.net -iventoy.com -ivideostar.com -iviewui.com -ivistang.com -ivixivi.com -ivocaloid.com -ivsky.com -ivtsoft.com -ivu4e.com -ivvajob.com -ivweb.io -ivwen.com -ivy-school.org -ivybaby.me -ivycoffee.com -ivydad.com -ivypub.org -ivyschools.com -ivysun.net -ivywing.me -iwala.net -iwan4399.com -iwan78.com -iwanbei.com -iwanboy.com -iwangding.com -iwangnan.com -iwanoutdoor.com -iwanws.com -iwanyl.com -iwapan.com -iwasai.com -iwatch365.com -iwcoo.com -iwebad.com -iwebchoice.com -iwecan.net -iweeeb.com -iweek.ly -iweekapi.com -iweidu.net -iweju.com -iwellen.com -iwen1.com -iwencai.com -iwenson.com -iwgame.com -iwhalecloud.com -iwhr.com -iwin10.cc -iwin10.com -iwin10.net -iwingchina.com -iwiscloud.com -iwjw.com -iwncomm.com -iwopop.com -iwordnet.com -iwordshow.com -iwpai.com -iwshang.com -iwshuma.com -iwucha.com -iwwwwwi.com -iwxapi.com -iwyv.com -iwyvi.com -iwzwy.com -ixbren.net -ixdc.org -ixfc.net -ixgvideo.com -ixiangyu.com -ixianlai.com -ixianzong.com -ixiao9.com -ixiaochengxu.cc -ixiaowai.com -ixiatxt.com -ixigua.com -ixiguan.com -ixiguavideo.com -iximo.com -ixinglu.com -ixingpan.com -ixinqing.com -ixintu.com -ixinwei.com -ixinyou.com -ixiqi.com -ixiqin.com -ixiumei.com -ixiway.com -ixixili.com -ixizang.com -ixmu.net -ixpub.net -ixs.la -ixsch.com -ixueshu.com -ixueyi.com -ixunke.com -iy51.com -iyangxi.com -iyaou.com -iyaxi.com -iyaxin.com -iyaya.com -iyaya.info -iyb.tm -iycdm.com -iycsky.com -iydsj.com -iydu.net -iyeeda.com -iyeele.com -iyenei.com -iyingdi.com -iyingji.com -iyint.com -iyiou.com -iyiqi.com -iyishengyuan.com -iyiyun.com -iymark.com -iyocloud.com -iyong.com -iyongpdf.com -iyooread.com -iyoucai.com -iyoudui.com -iyouhun.com -iyoujia.com -iyoujiao.net -iyoule.com -iyouman.com -iyouqian.com -iyouxia.com -iyouxin.com -iyouxun.com -iyruan.com -iytc.net -iyuedan.com -iyuedian.com -iyunbao.com -iyunbiao.com -iyunmai.com -iyunshu.com -iyunv.com -iyunxiao.com -iyunyue.com -iyunzk.com -iyxku.com -iyyin.com -iyz168.com -izacholsm.com -izaodao.com -izatcloud.net -izazamall.com -izdatatech.com -izdict.com -izestchina.com -izhanchi.com -izhangchu.com -izhangheng.com -izhaohe.com -izhaowo.com -izhenxin.com -izhihuicheng.net -izhihuo.com -izhikang.com -izhiliao.com -izhiqun.com -izhishi.com -izhuanfa.com -izhuce.com -izihun.com -iziyo.com -izjj.com -izmzg.com -izstz.com -izt8.com -iztwp.com -iztzq.com -izuanla.com -izuche.com -izuchebao.com -izuchecdn.com -izuiyou.com -izumicn.com -j-h-k.com -j-smu.com -j-test.com -j1health.com -j5k6.com -j66.net -j7994.com -jaadee.com -jaadee.net -jabizb.com -jackon.me -jackxiang.com -jacky-blog.com -jackyang.me -jackyyf.com -jackzhu.com -jadetowerccrc.com -jae.sh -jaeapp.com -jaeosc.com -jafeney.com -jajqj.com -jakegame.com -jakehu.me -jalorsoft.com -jamidol.com -jammyfm.com -jamoxi.com -jampotgames.com -janbao.net -jandan.com -jandan.net -jane7.com -janezt.com -janmeng.com -janpn.com -janrain.biz -janz.plus -jarencai.com -jarhu.com -jarvisw.com -jasolar.com -jason-z.com -jasongj.com -jasperxu.com -java-er.com -java1234.com -java2000.net -java2class.net -javaapk.com -javaboy.org -javacui.com -javadoop.com -javaer.xyz -javaeye.com -javafxchina.net -javanav.com -javashuo.com -javatang.com -javaweb.shop -javawenti.com -javawind.net -javaxxz.com -javazhiyin.com -javazx.com -javbuy.xyz -javier.io -jaxcx.com -jayce.icu -jayfc.com -jayfu.tk -jayjw.com -jayme.net -jayxhj.com -jazzbeauswings.com -jazzyear.com -jb1000.com -jb51.cc -jb51.com -jb51.net -jbaier023.com -jbaobao.com -jbb.one -jbcz.tv -jbdown.com -jbedu.org -jbelf.com -jbjc.org -jbryun.com -jbxy.com -jbzj.com -jbzwread.com -jbzyk.com -jbzyw.com -jc-ai.com -jc-dl.net -jc-saas.com -jc-space.com -jc0531.com -jc170.com -jc315.com -jc35.com -jc56.com -jc85.com -jcbjbcak.com -jccsoc.com -jccug.com -jcedu.org -jcelyj.com -jcf94.com -jcgcn.com -jchat.io -jchelec.com -jchl.com -jchla.com -jchunuo.com -jchxmc.com -jcicl.com -jcku.com -jcloud-cache.com -jcloud-cache.net -jcloud-cdn.com -jcloud-live.com -jcloud-oss.com -jcloud.com -jcloudcache.com -jcloudcache.net -jcloudcs.com -jclouddn.com -jclouddns.com -jclouddns.net -jcloudec.com -jcloudedge.com -jcloudedge.net -jcloudgslb.com -jcloudgslb.net -jcloudimg.com -jcloudimg.net -jcloudlb.com -jcloudlb.net -jcloudlive.com -jcloudlv.com -jcloudoss.com -jcloudresolve.com -jcloudresolve.net -jcloudss.com -jcloudstatic.com -jcloudstatic.net -jcloudvideo.com -jcloudvideo.net -jclps.com -jcmob.net -jcmtxs.com -jcnano.com -jcnk120.com -jcodecraeer.com -jcpeixun.com -jcqzw.com -jcrb.com -jcsb.com -jcsfs.com -jcsjt.com -jcsy66.com -jctmj.net -jctrans.com -jcu.cc -jcwcn.com -jcwgk.com -jcwxiao.com -jcyai.com -jcyes.com -jcyx2019.com -jczhijia.com -jczhiyao.com -jd-88.com -jd-app.com -jd-bbs.com -jd-df.com -jd-ex.com -jd-ex.net -jd-fm.com -jd.co -zyrmw.com -jd.com -jd.hk -jd.id -jd.ru -jd.shop -jd100.com -jd360.hk -jd5.com -jdair.net -jdallianz.com -jdapi.com -jdb100.com -jdbbs.com -jdbpcb.com -jdbusiness.com -jdcache.com -jdcapital.com -jdccie.com -jdcdn.com -jdcf88.com -jdcloud-api.com -jdcloud-api.net -jdcloud-edu.com -jdcloud-elite.com -jdcloud-elive.com -jdcloud-livebuy.com -jdcloud-mail.com -jdcloud-openapi.com -jdcloud-oss.com -jdcloud-scdn.net -jdcloud.com -jdcloudcache.com -jdcloudcache.net -jdcloudcdn.com -jdcloudcdn.net -jdcloudcs.com -jdclouddns.com -jdclouddns.net -jdcloudedge.com -jdcloudedge.net -jdcloudlb.com -jdcloudlb.net -jdcloudlive.com -jdcloudlive.net -jdcloudnaming.net -jdcloudresolve.com -jdcloudresolve.net -jdcloudshop.com -jdcloudsite.com -jdcloudstatic.com -jdcloudstatic.net -jdcloudstatus.com -jdcloudstatus.net -jdcloudvideo.com -jdcloudvideo.net -jdcloudwaf.com -jdcq.net -jdctky.com -jdd-hub.com -jdd.com -jddapeigou.com -jddaw.com -jddb.net -jdddata.com -jddebug.com -jddglobal.com -jddj.com -jddmoto.com -jdedu.net -jdemall.com -jdfcloud.com -jdfhq.com -jdfschool.com -jdfw1.com -jdgogo.com -jdgslb.com -jdgslb.net -jdgwdq.com -jdh.com -jdhmediajd.com -jdhyplay.com -jdiy.club -jdjingmai.com -jdjinrong.com -jdjob88.com -jdjrdns.com -jdjygold.com -jdkcb.com -jdl.com -jdlgw.com -jdluosi.com -jdlxzx.com -jdnews.net -jdon.com -jdpay.com -jdpaydns.com -jdplay.com -jdsafe.com -jdtjy.com -jdvisa.com -jdw001.com -jdw2.com -jdwan.com -jdwgame.com -jdwl.com -jdworldwide.com -jdwx.info -jdwxwz.com -jdx.com -jdxc.net -jdxcw.com -jdxfw.com -jdxlt.com -jdxs5200.net -jdxzz.com -jdy.com -jdycdn.com -jdyou.com -jdypf.com -jdzdeyy.com -jdzeduyun.com -jdzj.com -jdzmc.com -jdzol.com -jdzol.net -jeacar.com -jeagine.com -jeanphy.online -jeanssalon.com -jeasyui.net -jectronic.com -jecvay.com -jedi-games.com -jedoo.com -jeeanlean.com -jeebei.com -jeecg.com -jeecg.org -jeecms.com -jeee.ltd -jeejen.com -jeeplus.org -jeesci.com -jeesite.com -jeeyaa.com -jeffjade.com -jeffreyitstudio.com -jeffstudio.net -jegotrip.com -jehudf.com -jelleybrown.com -jellow.club -jellow.site -jellymoo.com -jellythink.com -jenglishj.com -jeongen.com -jeoshi.com -jerei.com -jerryzou.com -jescard.com -jesgoo.com -jesselauristonlivermore.com -jesselivermore.com -jestq.com -jethoo.com -jetmobo.com -jetneed.com -jetsum.com -jetsum.net -jewellworld.com -jewelryseeds.com -jexus.org -jeyi.com -jf9p.com -jfapv.net -jfbcb.com -jfbuilding.com -jfcaifu.com -jfcdns.com -jfcgf.com -jfdaily.com -jfdown.com -jfduoduo.com -jfedu.net -jfewle.com -jfh.com -jfh8ad.com -jfinal.com -jfinfo.com -jfkairporthotels.net -jfq.com -jfrogchina.com -jfshare.com -jfstatic.com -jfuwu.com -jfwypay.com -jfydgame.com -jfyiyao.com -jfyxmm.com -jfz.com -jfzhiyao.com -jgcqgf.com -jgdq.org -jgdun.com -jgew3d.com -jgg09.com -jggame.net -jggjj.com -jgjapp.com -jgjsoft.com -jgscct.com -jgsdaily.com -jgtc315.com -jguo.com -jgvnews.com -jgwsoft.com -jgxlzd.com -jgy.com -jgyljt.com -jgz518.com -jgzx.org -jgzyw.com -jh2sc.com -jh3j.com -jh8k.com -jhcb.net -jhcfz.com -jhcms.com -jhctbank.com -jhdqz.com -jhdxjk.com -jhfl.com -jhforever.com -jhgolfcarts.com -jhgtgb.com -jhltsl.com -jhm2012.com -jhnsh.com -jhnsyh.com -jhonge.net -jhonse.com -jhqshfly.com -jhrcbank.com -jhrdqx.com -jhsbggw.com -jhscm.com -jhscrm.com -jhsjtxx.com -jhssapp.com -jhszyy.com -jht868.com -jhtcgroup.com -jhwaimai.com -jhxms.com -jhygame.com -jhyongyou.com -jhypcy.com -jhyslw.com -jhzhizao.com -jhzpgw.com -ji36.net -ji7.com -jia-he-jia.com -jia.com -jia12.com -jia360.com -jia400.com -jiaads.com -jiaapps.com -jiabangcnc.com -jiabasha.com -jiacai001.com -jiachong.com -jiadingqiang.com -jiadounet.com -jiaduijiaoyou.com -jiae.com -jiafang168.com -jiafenqi.com -jiagedan.com -jiageip.vip -jiagle.com -jiagouyun.com -jiaguhome.com -jiagulun.com -jiaheu.com -jiahuacinema.com -jiahuaming.com -jiahuism.com -jiain.net -jiaji.com -jiaji28.net -jiajia.tv -jiajiakt.com -jiajianhudong.com -jiajiao114.com -jiajiaoban.com -jiaju.cc -jiaju.com -jiajuketang.com -jiajumi.com -jiajuol.com -jiakaobaodian.com -jiakaodashi.com -jiakaokemuyi.com -jialaxin.cc -jialebao.cc -jialez.com -jialiangad.com -jialidun.com -jialingmm.net -jialunkj.com -jiamei123.com -jiameng.com -jiameng001.com -jiamengdp.com -jiamengfei.com -jiamiantech.com -jiaming.pro -jiaminghi.com -jiamisoft.com -jiamofang.net -jian.net -jianada-qianzheng.com -jianai360.com -jianavi.com -jianbaizhan.com -jianbaolife.com -jianbihua.com -jianbihua.org -jianbihua360.com -jianbihuadq.com -jianbing.com -jiancai.com -jiancepaper.com -jianchacha.com -jianchihu.net -jianchuangwang.com -jiandaima.com -jiandan.net -jiandansousuo.com -jiandantianqi.com -jiandanxinli.com -jiandaopay.com -jiandaoyun.com -jiandati.com -jiandiao.com -jiando.com -jiane86.com -jianeryi.com -jianfei.com -jianfei.net -jianfeiba.com -jianfeibaike.com -jianfeidaren.com -jianfengstudio.com -jiangbeijituan.com -jiangbeishuicheng.com -jiangchaochina.com -jiangcp.com -jiangduoduo.com -jianghaihao.com -jianghehuagong.com -jianghui.xyz -jiangjiaolong.com -jiangkk.com -jiangmin.com -jiangpaipinpai.com -jiangque.com -jiangqx.com -jiangruyi.com -jiangshanlihong.com -jiangshi.org -jiangshi99.com -jiangsugqt.org -jiangsugwy.org -jianguo.tv -jianguoyun.com -jiangwang.net -jiangweishan.com -jiangxianli.com -jiangxiol.com -jiangzi.com -jianhaobao.com -jianhen.net -jianhui.org -jianianle.com -jianjian.tv -jianjiaobuluo.com -jianjie8.com -jiankang.com -jiankanghebei.com -jiankangju.com -jianke.cc -jianke.com -jianke.net -jiankong.com -jiankongbao.com -jianlaixiaoshuo.com -jianlc.com -jianlc.net -jianli-sky.com -jianli9.com -jianliao.com -jianliben.com -jianlika.com -jianlixiu.com -jianloubao.com -jianluote.net -jianmu.run -jianniang.com -jianpaimeiye.com -jianpian.info -jianpu8.com -jianpu99.net -jianpuw.com -jianq.com -jianqiaochina.com -jianshe99.com -jianshen8.com -jianshenmi.com -jianshiapp.com -jianshiduo.com -jianshu.com -jianshu.io -jianshu.tech -jianshuapi.com -jianshukeji.com -jiantizi.com -jiantufuwu.com -jiantuku.com -jianwang360.com -jianweidata.com -jianweitv.com -jianwenapp.com -jianxinyun.com -jianxun.io -jianyu360.com -jianyujiasu.com -jianyuweb.com -jianyv.com -jianzhan110.com -jianzhan580.com -jianzhanbao.net -jianzhangongsi.com -jianzhi8.com -jianzhibao.com -jianzhikeji.com -jianzhimao.com -jianzhiwangzhan.com -jianzhiweike.net -jianzhiyixin.com -jianzhu2008.com -jiao4.com -jiaoben.net -jiaobuser.com -jiaochengji.com -jiaochengzhijia.com -jiaodian.pub -jiaodong.net -jiaofei123.com -jiaohezhen.com -jiaohuilian.com -jiaohusheji.net -jiaoliuqu.com -jiaomai.com -jiaoman.cc -jiaonan.net -jiaonizuocai.com -jiaoping.com -jiaoqiuqingxi.net -jiaoshouhuayuan.com -jiaoshouwang.com -jiaoyimao.com -jiaoyin.com -jiaoyixia.com -jiaoyizhu.com -jiaoyudao.com -jiaoyumao.com -jiaoyuwo.com -jiapin.com -jiapu.tv -jiapujidi.com -jiapuvip.com -jiaren.org -jiarenvip.com -jiasale.com -jiashuangkuaizi.com -jiashule.com -jiasou.cc -jiasu.work -jiasubook.com -jiasudu666.com -jiasuhui.com -jiasule.com -jiasule.net -jiasule.org -jiatengflycdn.com -jiathis.com -jiatui.com -jiatx.com -jiawei.xin -jiawentrans.com -jiawin.com -jiaxianggame.com -jiaxianghudong.com -jiaxiangxm.com -jiaxiao100.com -jiaxiaozhijia.com -jiaxichina.net -jiaxin-industry.com -jiaxincloud.com -jiaxingren.com -jiaxiweb.com -jiaxuejiyin.com -jiayans.net -jiayi56.com -jiayin618.com -jiayongluyou.com -jiayouhaoche.com -jiayouxueba.com -jiayu.yoga -jiayu0x.com -jiayuan-law.com -jiayuan.com -jiazhao.com -jiazhongkeji.com -jiazhoulvke.com -jiazhua.com -jiazhuang.com -jiazhuang6.com -jiazile.com -jiazuo.cc -jibai.com -jibencaozuo.com -jibing57.com -jibite.fun -jicaifund.com -jice.io -jichangbus.com -jichangdaba.com -jiche.com -jicheng.net -jichuangke.com -jiclip.com -jidacheng.com -jidaihome.com -jidao.ren -jidaola.com -jide.com -jidekan.com -jideos.com -jidi.com -jidujiao.com -jidujiasu.com -jiduu.com -jie518.com -jiebaodz.com -jiebide.xin -jiecao.com -jiedaibao.com -jiediankeji.com -jiefadg.com -jiefuku.com -jiegames.com -jiegeng.com -jiehun021.com -jiehun027.com -jiehunmishu.com -jiejing.fun -jiejingku.net -jiekenmould.com -jiekon.com -jiekou.com -jielibj.com -jieligo.net -jielong-printing.com -jielong.co -jielongguanjia.com -jiemeng.tw -jiemeng8.com -jiemian.com -jiemo.net -jiemodui.com -jiemoselect.com -jiepaids.com -jiepei.com -jiepeng023.com -jieqi.com -jieqinwang.com -jiese91.com -jieshengit.com -jieshimt8.com -jieshu.me -jieshui8.com -jieshuwang.com -jietu365.com -jietuhb.com -jietuosh.com -jietusoft.com -jiexilaiba.com -jiexiyouxuan.com -jiexunyun.net -jieyang.la -jieyou.com -jieyougame.com -jieyougx.com -jieyoujob.com -jieyue.net -jifang360.com -jifang365.com -jifangcheng.com -jifenapp.com -jifenfu.net -jifengba.com -jifengdm.com -jifenh.com -jifenzhi.com -jifenzhong.com -jigao616.com -jiguangdaili.com -jiguangdanci.com -jiguo.com -jihai8.com -jihaoba.com -jihex.com -jiheyun.com -jihot.com -jihuachina.com -jihuanshe.com -jihulab.com -jihuoma.com -jijia.com -jijiagames.com -jijidown.com -jijigugu.club -jijing.site -jijinhao.com -jijuduo.com -jikabao.com -jikaicai.com -jike.city -jike.info -jikedaohang.com -jikedata.com -jikefan.com -jikeiot.cloud -jikejiazhuang.com -jikejidi.com -jikemac.com -jikewan.com -jikexiu.com -jikexueyuan.com -jikeyouzi.com -jikipedia.com -jilailawyer.com -jileniao.net -jiliguala.com -jilingwy.org -jilinpujiyiyuan.com -jilinwula.com -jilinxiangyun.com -jiliyun.com -jiluchengshi.com -jimeisilk.com -jimeng.mobi -jimetec.com -jimi168.com -jimicn.com -jimifashion.com -jimilier.com -jimiru-bj.com -jimistore.com -jimonet.cc -jimu.com -jimubox.com -jimuc.com -jimucake.com -jimufund.com -jimuhezi.com -jimujiazx.com -jin.red -jin10.com -jin10x.com -jinanguanggao.com -jinanqianji.com -jinanxww.com -jinbaiteng.com -jinbaobeiqiming.com -jinbaoidc.com -jinbaonet.com -jinbei.com -jinbiaohui.com -jinbifun.com -jinbilianmeng.com -jinbitou.net -jinbuguo.com -jincaicaiwu.com -jinchanbest.com -jinchuang.org -jinchutou.com -jincin.com -jindaixx.com -jindangit.com -jindaodao.com -jindianweb.com -jindidata.com -jindingfm.com -jindong.org -jindongsoft.com -jindun007.net -jindunfan.com -jinduoduo.net -jinenrunze.com -jinet.org -jinfangka.com -jinfantongyici.com -jinfengkou.com -jinfengpaint.com -jinfengwine.com -jinfuzi.com -jing-xian.com -jingbo.net -jingbotech.com -jingc.com -jingcai360.net -jingchang.tv -jingchengcb.com -jingchengwl.com -jingchurc.com -jingdaka.com -jingdata.com -jingdeluntan.com -jingdian230.com -jingdiancha.net -jingdianju.com -jingdianlaoge.com -jingdianxitong.com -jingdiao.com -jingdigital.com -jingdong.com -jingdongdaili.com -jingdongjinrong.com -jingdongyouxuan.com -jingdw.com -jingfanshidai.com -jingfentui.com -jingguan.ai -jinggui.com -jinghaishop.com -jinghangapps.com -jinghooo.com -jinghua.com -jinghujiaoyu.com -jingjia.net -jingjia.org -jingjia6.com -jingjiamicro.com -jingjiang.com -jingjiawang.com -jingjie360.com -jingjiezhileng.com -jingjiu.com -jingjusc.com -jingkaiyuan.com -jingkan.net -jingkids.com -jinglawyer.com -jingliangad.com -jinglingbiaozhu.com -jinglongyu.link -jingmaoyuanxin.com -jingme.net -jingmeiti.com -jingmiuyyds.com -jingniukeji.com -jingoal.com -jingos.com -jingp.com -jingpai.com -jingpaidang.com -jingpinhui.com -jingpinke.com -jingpt.com -jingqizhitongche.com -jingrongshuan.com -jingruigroup.com -jingsh.com -jingshibianhuren.com -jingshuiqicai.com -jingsocial.com -jingsoo.com -jingtanggame.com -jingtuitui.com -jingtum.com -jingua168.com -jinguanauto.com -jingujie.com -jingutrust.com -jingwacenter.com -jingwei.link -jingwuhui.com -jingwxcx.com -jingxi.com -jingxianglawfirm.com -jingxinad.com -jingxinhdf.com -jingxuanwang.com -jingyakt.com -jingyan8.cc -jingyanben.com -jingyanbus.com -jingyanlib.com -jingyanshu.com -jingyanzhinan.com -jingyeqian.com -jingyi186.com -jingyinb.com -jingyougz.com -jingytech.com -jingyu.com -jingyuan.com -jingyuelaw.com -jingyuxiaoban.com -jingyuyun.com -jingzhengu.com -jingzhunyunting.com -jingzhusz.com -jinhe-energy.com -jinher.com -jinheshiye.com -jinhongchina.com -jinhuatv.com -jinhuazhe.com -jinhusns.com -jinianbi.com -jiniance8.com -jinjianbio.com -jinjiang.com -jinjianginns.com -jinjie.tech -jinjingquan.com -jinju8.com -jinjuasdwehjkqwnfbjanfa.xyz -jinjunmei.net -jinkan.org -jinkejoy.com -jinkex.com -jinkezhexin.com -jinkosolar.com -jinku.com -jinlaiba.com -jinlianchu.com -jinlinghotel.com -jinlinghotels.com -jinliniuan.com -jinlishenghuo.com -jinliyu.cc -jinlong-jiaxiao.com -jinmao88.com -jinmaodigital.com -jinmaopartners.com -jinmaozs.com -jinmenrc.com -jinmi.com -jinmixuetang.com -jinmogame.com -jinmuinfo.com -jinnianduoda.com -jinnong.cc -jinphui.com -jinqiexia.com -jinqunla.com -jinridandong.com -jinriguanzhu.cc -jinrishici.com -jinritemai.com -jinrong-online.com -jinrongbaguanv.com -jinrongren.net -jinrui-tech.com -jins-cn.com -jinsdk.com -jinse.com -jinsebook.com -jinsehuaqin.com -jinshakemei.com -jinshangdai.cc -jinshangdai.com -jinshanju.com -jinshare.com -jinshisoft.com -jinshuivip.com -jinshuju.co -jinshuju.com -jinshuju.net -jinshuju.org -jinshujuapp.com -jinshujucdn.com -jinshujufiles.com -jinshun.com -jinshutuan.com -jinsiwei.com -jintaimall.com -jintang114.org -jinti.com -jintiango.com -jintianjihao.com -jintiankansha.me -jintonghua.com -jinwaimai.com -jinwin.net -jinxianglian.net -jinxidao.com -jinxinqh.com -jinxiu8.com -jinxuliang.com -jinxun.cc -jinyaco.com -jinyidun.com -jinyindao.com -jinying.com -jinyongwang.com -jinyoukai.com -jinyueya.com -jinyunweb.com -jinyuzd.cc -jinzheled.com -jinzhidagl.com -jinzhoubank.com -jinzhouwp.com -jinzhucaifu.com -jinzhuguo.com -jinzjy.com -jinzunjy.com -jioluo.com -jiongcun.com -jiongdm.com -jiongji.com -jiongtoutiao.com -jiongyaya.com -jiou.me -jiouyun.com -jiping.site -jipingacg.com -jipinwww.com -jiqid.com -jiqie.com -jiqike.com -jiqimao.com -jiqirenku.com -jiqizhixin.com -jiqrxx.com -jirengu.com -jirou.com -jirou.org -jirry.me -jisapower.com -jisec.com -jishi3.com -jishicloud.com -jishicn.com -jishuchi.com -jishukong.com -jishulink.com -jishuqq.com -jishux.com -jisi17.com -jisu-cnd.com -jisu.xin -jisuacg.com -jisuanke.com -jisuanqinet.com -jisuanzt.com -jisuapi.com -jisuchaxun.com -jisuchou.com -jisuclouds.com -jisucn.com -jisuim.com -jisuimg.com -jisujie.com -jisukandian.com -jisuoffice.com -jisupdf.com -jisupdfeditor.com -jisupdftoword.com -jisupe.com -jisutodo.com -jisutp.com -jisutui.vip -jisuwebapp.com -jisuxia.com -jisuye.com -jisuyilaixingpiyan.com -jita.fun -jita.im -jita5.com -jitadaren.com -jitailian.com -jitangcn.com -jitashe.org -jitavip.com -jitiku.com -jitu5.com -jitucdn.com -jitukaisuo.com -jituofuture.com -jituwang.com -jiubuhua.com -jiucaicaijing.com -jiucaigongshe.com -jiuchet.shop -jiuchutong.com -jiucool.org -jiuday.com -jiudianjiu.com -jiudianyongpin.com -jiudingcapital.com -jiufawang.com -jiugang.com -jiugangbid.com -jiuhuang.com -jiuhuashan.cc -jiuishizanjin.com -jiujiange.com -jiujiuhuyu.com -jiujiui.com -jiujiunn.com -jiujiups.com -jiujiuwan.com -jiujiuwj.com -jiujiuyunhui.com -jiujiuzu.com -jiuku.com -jiulesy.com -jiulishi.com -jiulku.com -jiulve.com -jiumaojiu.com -jiumaster.com -jiumei.com -jiumei8.com -jiunile.com -jiuniok.com -jiupaicn.com -jiupaicom.com -jiuq.com -jiurong.com -jiuse.cloud -jiushiadx.com -jiushixing.com -jiushu.net -jiushui.tv -jiusi.net -jiusihengyuan.com -jiusitm.com -jiusongjiankang.com -jiutong100.com -jiutu.net -jiuwa.net -jiuwan.com -jiuwei.net -jiuweige.com -jiuxian.com -jiuxianfeng.com -jiuxihuan.net -jiuxinban.com -jiuxing.com -jiuxusb.com -jiuyan.info -jiuyang.com -jiuyao666.com -jiuyi2005.com -jiuyiliebian.com -jiuyingwangluo.com -jiuyuehuyu.com -jiuyuu.com -jiuzhaigou-china.com -jiuzhang.com -jiuzheng.com -jiuzhenge.com -jiuzhilan.com -jiuzhinews.com -jiuzhuanzhuan.com -jiuzungame.com -jiwa123.com -jiweichengzhu.com -jiweixin168.com -jiwu.com -jiwudai.com -jixiangbaiwei.com -jixiangjili.com -jixiangyou.com -jixianku.com -jixie100.net -jixie5.com -jixiewz.com -jixiexinxi5.com -jixinbbd.com -jixixx.com -jixuanw.com -jixunjsq.com -jixunlyq.com -jiyifa.com -jiyili.net -jiyin-tech.com -jiyin2020.com -jiyixcx.com -jiyiyq.com -jiyou-tech.com -jiyoujia.com -jiyouwang.com -jiyuncn.com -jizhan.com -jizhangzhuce.com -jizhazha.com -jizhiba.com -jizhidsp.com -jizhimobi.com -jizhiyingxiao.net -jizhiyouke.com -jizhuba.com -jizhuomi.com -jizhutaoke.com -jiziyy.com -jj-inn.com -jj20.com -jj3658.com -jj55.com -jj59.com -jj831.com -jjb-static.com -jjbang.com -jjbank.net -jjbbs.com -jjbhn.com -jjbisai.com -jjbnews.xyz -jjccb.com -jjcdn.com -jjcoffetel.cc -jjcoffetels.com -jjcto.com -jjdc.net -jjdede.com -jjdiaoyu.com -jjdzc.com -jjecn.com -jjfinder.com -jjfuzu.com -jjg630.com -jjgjy.cc -jjglobal.com -jjgsxc.com -jjhgamedns.com -jjhh.com -jjhuifu.com -jjhuigou.com -jjhuoyan.com -jjidc.com -jjiehao.com -jjinfo.com -jjisp.com -jjj.ee -jjj802.com -jjjaaa.com -jjjoystudios.com -jjjsgczbtb.com -jjkeq.com -jjkk.org -jjkucunxie.com -jjldbk.com -jjldxz.com -jjlvu.com -jjmatch.com -jjmh.com -jjmkids.com -jjmmw.com -jjnz.com -jjonline.org -jjppt.com -jjqj.net -jjsedu.org -jjshang.com -jjsip.com -jjsjsjl.com -jjtfyjy.com -jjtianshangi.com -jjtonline.com -jjtravel.com -jjttjx.com -jjw.com -jjwli.com -jjwxc.com -jjwxc.net -jjwxc.org -jjxwzk.org -jjxyls.com -jjy118.com -jjygym.com -jjyl12349.com -jjyx.com -jjzdm.com -jjzfgjj.com -jk-px.com -jk126.com -jk2h.com -jk37du.com -jk3a.com -jk51.com -jk520.net -jk724.com -jkangbao.com -jkbexp.com -jkbl.com -jkc8.com -jkcorkpads.com -jkcsjd.com -jkdsz.com -jkfwvip.com -jkhapp.com -jkhealth.vip -jkimg.net -jkjzt.com -jkpan.cc -jkpj.com -jkqivrs.com -jktcom.com -jktong.com -jktower.com -jkx.cc -jkxds.net -jkximg.com -jkydt.com -jkyeo.com -jkzgr.net -jkzhilu.com -jkzl.com -jl0435.com -jl54.org -jl7y.com -jladi.com -jlakes.org -jlbtrip.com -jlc-gw.com -jlc.com -jlccpit.com -jlcerp.com -jlcsmt.com -jlfzb.com -jlgyjj.com -jljgdj.org -jljob88.com -jlkj.cc -jllihua.com -jlmhw.com -jlonline.com -jlpay.com -jlq.com -jlr360.com -jlsdzgckcy.com -jlsemi.com -jlsjsxxw.com -jlspr.com -jltchina.com -jltyjxzz.com -jlxfw.com -jlzkb.com -jlzsoft.com -jlzyz.com -jm1ds.com -jm1ph.com -jm2046.com -jm3q.com -jm678.com -jmads.net -jmbbs.com -jmd-china.com -jmdedu.com -jmeii.com -jmgle.com -jmgo.com -jmhapp.com -jmhd8.com -jmj1995.com -jmjc.tech -jmjxc.com -jmkjmob2.xyz -jmkjmob5.xyz -jmkx.com -jmlk.co -jmmuseum.com -jmonline.org -jmqy.com -jmrsksj.org -jmsnjh.com -jmsqw.com -jmstatic.com -jmtd0531.com -jmtsg.com -jmxlmc.com -jmxw.net -jmyna.net -jmzcgs.com -jmzns.com -jn-bank.com -jn001.com -jn123456.com -jn1535.com -jn6beq.xyz -jnbbbyy.com -jncarw.com -jncgzl.com -jncqj.com -jncyx.com -jndssd.com -jndwyy.com -jnesc.com -jnexpert.com -jnghm.com -jnhouse.com -jnjj.com -jnkason.com -jnky.com -jnlab.com -jnlc.com -jnlou.net -jnltwy.com -jnmama.com -jnnc.com -jnnews.tv -jnrain.com -jnshijia.com -jnshu.com -jnstdc.com -jntinchina.com -jntyhl.com -jnw.cc -jnwb.net -jnwenlian.com -jnyestar.com -jnzcsyj.com -jnzfwz.com -jnzycw.com -jo43.com -joaquinchou.com -job-cunni.com -job0768.com -job10000.com -job1001.com -job168.com -job256.com -job263.com -job36.com -job4ee.com -job510.com -job5156.com -job5588.com -job592.com -job910.com -job9151.com -job98.com -job9981.com -jobcdp.com -jobcn.com -jobdogame.com -jobeast.com -jobgojob.com -jobhb.com -jobi5.com -jobinhe.net -jobjm.com -jobloser.com -jobosoft.vip -jobpin.com -jobsalon.net -jobsdigg.com -jobsitechina.com -jobsun.com -jobtong.com -jobui.com -jobuy.com -jobvvv.com -jobyp.com -jocat.com -jodeibel.com -joe92.com -johhan.com -johogames.com -joiest.com -joinchitchat.com -joindata.net -joinf.com -joiningss.com -joinkchem.com -joinquant.com -joinsen.com -joint-harvest.com -jointforce.com -joinusad.com -joinwaylawfirm.com -joinwee.com -jojog.com -jojoin.com -jojoreading.com -joker.li -jolimark.com -joloplay.com -jomocdn.net -jomodns.com -jomoxc.com -jonllen.com -jonny.vip -jonsbo.com -joobot.com -joojcc.com -joojtech.com -joojzz.com -joooz.com -joouoo.com -joowhee.com -joox.com -jooyoo.net -jooyuu.com -joozone.com -joqoo.com -josephcz.xyz -joshreso.com -josncdn.com -jotop.net -jouav.com -joudou.com -jourlib.org -journalmc.com -journeyui.com -jourserv.com -jouypub.com -jovcloud.com -jovetech.com -jowto.com -joy5151.com -joyact.com -joyami.com -joyany.com -joyapi.com -joybuy.com -joybuy.es -joydin.com -joyeriapamelamacias.com -joyes.com -joyfire.net -joyglue.com -joying.com -joyj.com -joymeng.com -joynb.net -joyncleon.com -joynext.com -joyohub.com -joyoung.com -joyowo.com -joyshebao.com -joyslink.com -joysung.com -joytest.org -joytrav.com -joytraveller.com -joyu.com -joyuai.com -joyulf.com -joyuyx.com -joywii.net -joywok.com -joyyang.com -jp-moco.com -jp.com -jpanj.com -jpbeta.net -jpchinapress.com -jpeen.com -jperation.com -jpg.cm -jpghd.com -jphot.net -jpivfw.com -jpjc315.com -jpkcnet.com -jpkix.com -jpmorganchina.com -jpmsg.com -jpnettech.com -jpplanking.com -jpsdk.com -jpshuntong.com -jpsmile.com -jpthome.com -jpush.io -jpushoa.com -jpuyy.com -jpwb.cc -jpwb.net -jpwind.com -jpwindow.com -jpwxapp.com -jpxue.com -jpxzm.com -jpyoo.com -jpyssc.com -jq-school.com -jq22.com -jqcool.net -jqdzw.com -jqgc.com -jqgcw.com -jqhtml.com -jqpress.com -jqr.com -jqr5.com -jqrkc.com -jqrzhijia.com -jqsite.com -jqskygame.com -jquee.com -jquery123.com -jqueryfuns.com -jquerywidget.com -jqw.com -jqwater.com -jqzhuangshi.com -jqzjop.com -jqzw.com -jr-soft.com -jr123.com -jr18.com -jravity.com -jrdaimao.com -jrecchina.com -jrexam.com -jrgang.com -jrj.com -jrjhg.com -jrjingshan.com -jrjr.com -jrkantv.com -jrlady.com -jrlxym.com -jrmf360.com -jrnba.cc -jrpxw.com -jrqiwen.com -jrqzw.net -jrszw.com -jrteck.com -jrtj120.com -jrwenku.com -jrxjnet.com -jrxzj.com -jryghq.com -jrysdq.com -jryzt.com -jrzg84.com -jrzj.com -jrzp.com -js-aerfa.com -js-code.com -js-dys.com -js-weilong.com -js.design -js04999.com -js0573.com -js11183.com -js118114.com -js165.com -js3.org -js3n.com -js7xc.com -js8.in -js811.com -js96008.com -jsahj.com -jsballs.com -jsbc.com -jsbexam.com -jsbgj.com -jsceou.com -jsche.net -jschunxing.com -jscj.com -jsclearing.com -jscmjt.com -jscnc.net -jscsfc.com -jscssimg.com -jscts.com -jsd.cc -jsdaima.com -jsdcly.com -jsdesign1.com -jseepub.com -jseoptics.com -jser.io -jsfof.com -jsform.com -jsform3.com -jsfw8.com -jsfycdn3.com -jsgbds.com -jsgc168.com -jsgcbank.com -jsgh.org -jsgho.net -jsgjksl.com -jsgrb.com -jsguolv.com -jsgyrcb.com -jshaman.com -jshanchao.com -jsharer.com -jshbank.com -jshdata.com -jshdwh.com -jshmrcb.com -jshnh.com -jshqjt.com -jshrconsult.com -jshsoft.com -jshuachen.com -jshy.com -jshytec.com -jsinfo.net -jsiteec.org -jsjclykz.com -jsjdrcb.com -jsjdzf.com -0-6.com -jsjjy.com -jsjkx.com -jsjlzxw.com -jsjs.cc -jsjs.org -jsjsj123.com -jsjyhj.com -jsjyrcb.com -jskaiborui.com -jskale.com -hwclouds-dns.net -004218.com -aierfano.com -jslegal.com -jslottery.com -jslwzk.com -jslxs.com -jsly001.com -jsmfk.com -jsmian.com -jsmjys.com -jsmo.xin -jsmsg.com -jsmxw.com -jsningyi.com -jsnx.net -jsnxs.com -jsocr.com -json-json.com -jsonin.com -jsososo.com -jsp158.com -jsp51.com -jspang.com -jspatch.com -jspeople.com -jspp.com -jspxcms.com -jsq886.com -jsqlawer.com -jsqq.net -jsqsjn.com -jsqstg.com -jsqt.com -jsrcu.com -jsrdgg.com -jsrrcb.com -jsrsrc.com -jsruiyin.com -jsrun.net -jsrun.pro -jsrxjt.com -jssalt.com -jssfx.com -jsshow.net -jssnrcb.com -jsswordshop.com -jssytc.com -jstdtncj.com -jstfdz.com -jstore.site -jstour.com -jstoys.net -jstv.com -jstxdm.com -jstxrcb.net -jstycn.com -jstzjy.net -jstzrcb.com -jsw988.com -jswebcall.com -jswfg.com -jswjkj.net -jswku.com -jswmw.com -jswrhjkj.com -jswspocapi.com -jsxat788.com -jsxcra.com -jsxfedu.com -jsxhrcb.com -jsxhw.org -jsxiaoguo.com -jsycsy.com -jsyd10086.net -jsyfkj.com -jsyks.com -jsypj.com -jsyun.cc -jsyunmy.com -jsyxrcb.com -jszbtb.com -jszbw.com -jszg.org -jszhaobiao.com -jszks.com -jszks.net -jszygs.com -jt62.com -jtamc.com -jtbole.com -jtbtech.com -jtfengtou.com -jtggame.com -jtgzfw.com -jthailang.com -jthcsx.com -jthl.net -jtimg.com -jtj-kr.com -jtjr99.com -jtlw.com -jtm.pub -jtnsh.com -jtpipeline.com -jtsp98.com -jttv.net -jtv123.com -jtxys8.com -jtyjy.com -ju33.com -ju51.com -ju81.cc -juandou.com -juangua.com -juanpi.com -juanpimao.com -juanshangwang.com -juanta.com -juanyunkeji.com -juaq.com -jubaopay.com -jubaopeng5555.com -jubaozang.com -juben68.com -juben98.com -juc365.com -jucanw.com -jucelin.com -jucheng01.net -juchuangbio.com -judouapp.com -juduo.cc -juduoping.com -jue.so -juecan.com -juedui100.com -jueduilingyu.com -juefeng.com -juehuo.com -juejin.im -juejinchain.com -juejinqifu.com -juemei.com -juemuren4449.com -juesheng.com -juewei.com -juexiang.com -juexiaotime.com -jufaanli.com -jufengshang.com -jufidc.com -jufoinfo.com -jugezi.com -juhaof.com -juhaokan.org -juhcloud.com -juhe.com -juheweb.com -juhome.net -juhuasuan.com -juhuicloud.com -juhuisuan.com -jui.org -juicefs.com -jujayoupin.com -juji.tv -jujiangkk.com -jujiaobaby.com -jujiaonet.com -jujias.com -jujienet.com -jujin8.com -jujiu8.com -jujoy.com -jujumao.com -jujuwan.com -jukandiannews.com -jukebao.com -jukejia.com -juketai.net -jukuu.com -julaibao.com -julanhp.com -julecn.com -julefun.com -juliang8.com -juliangyinqing.com -julihun.com -julinghu.com -julive.com -julydate.com -julyedu.com -julym.com -julysong.com -jumanhua.com -jumanlou.com -jumei.com -jumeinet.com -jumengco.com -jumengren.com -jumengtbs.net -jumi-cdn.com -jumi.com -jumi18.com -jumin.cc -juming-xz.com -juming.com -jumore.com -jump-game.com -jumpjumpcat.com -jumple.com -jumppo.com -jumpserver.org -jumpstar-tech.com -jumpw.com -jumpwgame.com -jumpwo.com -jun360.com -jun4.com -junankeji.com -jundacheng.com -jundaobaoan.com -jundui.net -jundushan.com -junews.net -juneyao.com -juneyaoair.com -juneyaoairlines.com -junezx.com -junhe.com -juniu.tv -junjiahao.com -junjichu.net -junjing.net -junka.com -junlee.net -junlongtech.com -junmin.org -junmoseo.com -junnanhao.com -junph.com -junpin.com -junpin360.com -junpinhui.com -junpinzhi.com -junqing.ren -junqing360.com -junsangs.com -junsaozg.com -junshanggame.com -junshencm.com -junshi.com -junshi81.com -junshi881.com -junshidao.com -junshifuxin.com -junshijia.com -junshis.com -junshishu.com -junshitt.com -junshizhanlue.com -junsw.com -junsz.com -juntongtian.com -junwu262.com -junxilinux.com -junyao.tech -junying.com -junyudns.com -junyuewl.com -junzhuan.com -junziboxue.com -junzimen.com -junziqian.com -juooo.com -jupup.com -juqi.com -juqingbaowen.com -juqingjuqing.com -juqk.net -juren.com -jurenqi.com -jurongfangchan.com -jurongrencai.com -juseey.com -jusfoun.com -jusha.com -jushewang.com -jushigj.com -jushikk.com -jushiwangedu.com -jushuo.com -jussevent.com -jusssportsvenue.com -jusstickets.com -jussyun.com -just-glendale.com -just4coding.com -just4fun.site -just998.com -justalkcloud.com -justbilt.com -justbon.com -justep.com -justering.com -justgotyounger.com -justjavac.com -justpodmedia.com -justsy.com -justwe.site -justyle.cc -justylepro.com -jutao.com -jutean.com -jutingshop.com -jutoula.com -jutuike.com -jutuilian.com -juturn.com -juubei.com -juvefans.com -juwa.net -juwan.com -juwangmedia.com -juwanshe.com -juweixin.com -juxia.com -juxin.tv -juxinfu.com -juxing-edu.com -juxinhuizhi.com -juyanbao.com -juyingele.com -juyouqu.com -juyouquan.net -juyoutv.cc -juyouxuan.vip -juzhen.com -juzhen.io -juzhentech.com -juzhi720.com -juzhiyuan.com -juzhongjoy.com -juzicy.com -juzifenqi.com -juzilicai.com -juzimi.cc -juzimi.com -juzioo.com -juziseo.com -juzisy.com -juzivr.com -juzix.io -juzizhoutou.net -jvcxp.com -jvmai.com -jvrong.com -jvshi.net -jvyou.net -jw100.net -jwappgc.com -jwbl.com -jwdili.com -jwdns.com -jwetech.com -jwfun.com -jwipc.com -jwl100.com -jwnote.com -jwsaas.com -jwsem.com -jwshy.com -jwview.com -jwwey.com -jwyun.net -jx-bank.com -jx-lhmy.com -jx-nc.com -jx.la -jx09.com -jx139.com -jx188.com -jx3mogu.com -jx3pve.com -jx3tong.com -jxage.com -jxal.net -jxbhwl.com -jxbscbd.com -jxc4.com -jxcb.net -jxccb.com -jxcsedu.com -jxcua.com -jxdcnc.com -jxdiguo.com -jxdkzz.net -jxdown.com -jxdyf.com -jxedt.com -jxedu.net -jxeduyun.com -jxetv.com -jxexpressway.com -jxg1.com -jxgdw.com -jxgxbd.com -jxhyshiye.com -jxiaolan.com -jxicloud.com -jximage.com -jxjdgy.com -jxjee.com -jxjhkq.com -jxjia.net -jxjob.net -jxjyzy.com -jxkjzb.com -jxkp.com -jxksw.net -jxlgjd.com -jxlwgame.com -jxmlkd.com -jxndxuebao.com -jxnxs.com -jxnyc.net -jxold.com -jxorg.com -jxpta.com -jxqcw.com -jxqyfw.com -jxrsrc.com -jxrtv.com -jxrtvu.com -jxscct.com -jxsgfzx.com -jxshangyou.com -jxsjgjt.com -jxslsyy.com -jxsrfdc.com -jxsxdp.com -jxtech.net -jxtvbbs.com -jxtvshop.com -jxtyzx.org -jxtzw.com -jxunicom.com -jxw123.com -jxwmanage.com -jxwmsj.com -jxwz.net -jxxdf.com -jxxfzx.com -jxxhdn.com -jxxhsd.com -jxxyqm.com -jxyrzdh.com -jxysyz.com -jxyworld.com -jxzyx.com -jxzzhqalxy.com -jy0604.com -jy0832.com -jy135.com -jy1991.com -jyacht.com -jyaochi.com -jybase.net -jyblife.com -jyc99.com -jycbank.com -jycinema.com -jycloudgslb.com -jycloudgslb.net -jydc.com -jydoc.com -jyeoo.com -jyeoo.net -jyepc.com -jyfscl.com -jyfund.com -jyg-lighting.com -jygame.net -jyguagua.com -jygz.com -jyh007.com -jyhlo0.com -jyhmz.com -jyhyfintax.com -jyimg.com -jyip.net -jyjjc.com -jyjxlt2009.net -jyl88.com -jyltx.com -jylw.com -jynews.net -jyoptical.com -jypc.org -jypecdn3.com -jyqkx.com -jyqxz2015.com -jyrd.com -jyrlzy.com -jysd.com -jysld.com -jysq.net -jysrx.com -jyss.com -jyss.net -jysyzk.com -jytdlz.com -jytrump.com -jyxdyzx.com -jyxfzd.com -jyyun.com -jyz99.com -jyzysp.com -jyzzx.com -jz-cert.com -jz-job.com -jz0045.com -jz08.com -jz100.com -jz177.com -jz182.com -jz5u.com -jz6.com -jz6868.com -jz68888.com -jzb.com -jzbar.net -jzbdc.com -jzcbank.com -jzchou.com -jzclassroom.com -jzcxptm.com -jzedu24.com -jzerp.com -jzfz.net -jzgcjsysjzz.com -jzgcjszz.com -jzhfz.com -jzic.com -jzita.com -jzke.com -jzkjjt.com -jzkuaiji.com -jzmob.com -jzmsmj.com -jzmt.net -jznqp.net -jznyjt.com -jzongguan.com -jzqlyptall.com -jzrb.com -jzrc.net -jzsadlkfadf.com -jzsc.net -jzsc8.com -jzsec.com -jzsgzmhjyxgs.com -jzshequ.com -jzsjyksy.com -jzsousuo.com -jzsxinyudianqi.com -jzsyishu.com -jztdc.com -jztey.com -jztmgy.com -jztsjx.com -jztsoft.com -jztvxmt.com -jztylxx.com -jztzw.net -jzxs.com -jzyx.com -jzzhw.com -jzzx.com -k-kbox.com -k-res.net -k-xian.com -k0898.com -k0rz3n.com -k12.vip -k125.com -k12zx.com -k165.com -k18.com -k1u.com -k2ma.com -k2os.com -k366.com -k369.com -k518.com -k5n.com -k6271.com -k666.com -k6uk.com -k73.com -k780.com -k8008.com -k8ba.com -k8jdw.com -k8sj.com -k8smeetup.com -k8stech.net -k913.com -ka20.com -ka5188.com -ka8r0a.com -kaadas.com -kaayou.com -kaayun.com -kaba365.com -kabapay.com -kabasiji.com -kabitu.com -kaboy.net -kacheren.com -kada.com -kadang.com -kadingding.com -kafangtech.com -kafka.cc -kagirl.net -kai-asia-hk.com -kai-ying.com -kaiba315.com -kaiboer.com -kaichengschool.com -kaidanbao.com -kaidany.com -kaidianbang.com -kaieconblog.net -kaifabang.com -kaifae.com -kaifage.com -kaifakuai.com -kaifamei.com -kaifangkecheng.com -kaifapiao.com -kaifaxueyuan.com -kaifayun.com -kaifu.com -kaifubiao.com -kaifuzq.com -kaige68.com -kaihei.co -kaihu51.com -kaihuaeva.com -kaihual.com -kaihuia.com -kaijia.com -kaikeba.com -kailing.pub -kaimanhua.com -kaimg.com -kaipan88.com -kaipanla.com -kaiqiancq.com -kaishicha.com -kaishigo.com -kaishikan.com -kaishuhezi.com -kaishustory.com -kaitianad.com -kaivps.com -kaiwenda.com -kaiwind.com -kaixin.com -kaixin00.com -kaixin001.com -kaixinbao.com -kaixindou.net -kaixinguopiao.com -kaixinguopiaowu.net -kaixinhui.com -kaixinhui.net -kaixinit.com -kaixinlu.com -kaixinpaopao.com -kaixintang.com -kaixue.io -kaiyanapp.com -kaiygame.com -kaiyuan.me -kaiyuangroup.cc -kaiyuanhotels.com -kaiyuanweilaikeji.com -kaiyun.com -kajicam.com -kaka.com -kaka3.com -kakadm.com -kakalili.com -kakamobi.com -kakucloud.com -kalading.com -kalazan.com -kalcaddle.com -kalegou.com -kalingling.com -kaluli.com -kameng98.com -kamenwang.com -kamidm.com -kamidox.com -kamokamogo.com -kamopos.com -kamwu.com -kan.cc -kan0512.com -kan300.com -kanbaobei.com -kanbing.net -kanbox.com -kanchao.com -kandaoni.com -kandian.com -kandian.net -kandianshi.com -kandianzixun.com -kandzww.com -kanfangjilu.com -kanfeidie.com -kangaiweishi.com -kangame.tv -kangbaifoundation.com -kangbatv.com -kangbidz.com -kangbixing.com -kangcdn.com -kangchun.com -kangdajiuzhou.com -kangduu.com -kangepian.com -kanggou.com -kanggui.com -kanghao123.com -kanghu.net -kanghuayun.com -kanghui.com -kanghuwang.com -kangjian888.com -kanglaohui.com -kangle.net -kanglu.com -kangpeining.com -kangre.com -kangshuai.biz -kanguo.com -kanguowai.com -kangxi55wlsf.com -kangxidi.com -kangxin.com -kangyueshi.com -kangze.com -kangzhi.com -kanimg.com -kaniuquan.com -kanjia.com -kanjian.com -kanjianlishi.com -kanjianxinli.com -kanjiazhuli.com -kanjuqing.com -kankan365.cc -kankancity.com -kankanews.com -kankanmi.com -kankannews.com -kankanzhijian.com -kanketv.com -kankezw.com -kankun-smartplug.com -kanluzhe.com -kanman.com -kanmeinv.com -kannb.com -kanpula.com -kanqibao.com -kanqiye.com -kanqq.com -kanqu.com -kansdk.com -kansea.com -kanshangji.com -kanshangjie.com -kanshu.com -kanshu5.net -kanshu8.net -kanshuapp.com -kanshuge.com -kanshuhai.com -kanshula.com -kanshuwangzhan.com -kansp.com -kantao.net -kantianqi.net -kantiantang.com -kantsuu.com -kantu.com -kanxue.com -kanzhun.com -kao8.cc -kaobeitu.com -kaochong.com -kaogua.com -kaojionline.com -kaola.com -zyrj.org -kaola100.com -kaolacdn.com -kaolafm.com -kaolafm.net -kaolazhengxin.com -kaopu001.com -kaopubao.com -kaopubao.net -kaopuj.com -kaopuyun.com -kaopuyun.net -kaoqin.com -kaoqintong.net -kaoqinyi.com -kaoruo.com -kaoshenzazhi.com -kaoshi110.net -kaoshi365.com -kaoshibaike.com -kaoshibao.com -kaoshibb.com -kaoshidian.com -kaoshishenqi.net -kaoshizixun.com -kaotipai.com -kaotop.com -kaowana.com -kaowang.com -kaoyan.com -kaoyan.org -kaoyan001.com -kaoyan1v1.com -kaoyanbox.net -kaoyancas.com -kaoyancas.net -kaoyango.com -kaoyanjun.com -kaoyansiji.com -kaoyaya.com -kaozhiye.com -kaquanbao.com -kargocard.com -karlzhou.com -karrytech.com -kartlover.com -karuimall.com -kascend.com -kashen.com -kashen8.com -kashenji.com -kasscloud.com -katongji.com -katvr.com -katyusha.net -kaven.xyz -kawahdinosaur.com -kaytrip.com -kaytune.com -kazakcnr.com -kazhifu.com -kb.cc -kb9.com -kbcdn.com -kbdfans.com -kbengine.org -kbgogo.com -kbgok.com -kbiao.me -kblcdn.com -kbrightlaw.com -kbscloud.com -kbw2018.com -kbwq.com -kbyun.com -kc87.com -kcbebank.com -kccidc.com -kcdn0.com -kcdnvip.com -kchance.com -kchile.com -kchuhai.com -kciptv.com -kcjyyjzzs.com -kcjzsc.com -kcloudidc.com -kcouxp.com -kcrcb.com -kcwiki.org -kcyuri.com -kczhaosheng.com -kd120.com -kd128.com -kd185.com -kd21xs.com -kd9000.com -kdadj.com -kdatacenter.com -kdige.com -kdniao.com -kdpt.net -kdroid.club -kdslife.com -kdt.im -kdued.com -kdun.com -kdweibo.com -kdx.mobi -kdzwy.com -kdzxedu.com -ke.com -ke51.com -ke6.com -ke86.com -ke8u.com -keaiq.com -kean1688.com -kebango.com -kebi.biz -kebingzao.com -keboyunxiao.com -kebvalves.com -kechenggezi.com -kechuang.org -kechuangfu.com -keda-digital.com -keda-u.com -keda.com -kedabai.com -kedang.net -kedaotech.com -keddoo.com -kede.com -kedi.cc -kedou.com -keede.com -keenonrobot.com -keensky.com -keep.com -keepc.com -keepcdn.com -keepmobi.com -keepyoga.com -keerdapower.com -keerworld.com -keewin.com -kefenxi.com -kefusoft.com -kefutoutiao.com -kefuzu.com -kege.com -kegood.com -kehanedu.com -kehou.com -kehu51.com -kehuda.com -keinsci.com -kejet.com -kejet.net -keji100.net -kejian.design -kejianyi.com -kejihai.com -kejihub.com -kejijie.net -kejik.com -kejilie.com -kejimeixue.com -kejimt.com -kejingyuan.com -kejiqi.com -kejitai.com -kejiwang.cc -kejudati.com -kekaku.com -kekaoxing.com -kekaoyun.com -keke289.com -kekebaby.com -kekedj.com -kekejp.com -kekenet.com -kekepx.com -kekeshici.com -kekexueba.com -kekoku.com -kele8.com -kelehuyu.com -kelepi.com -keleqiu.com -keleyi.com -kelibiao.com -kelon.com -kelphome.com -kelu.org -kema66.com -kemaicrm.com -keman.com -kemanyun.com -kemasheying.com -kemavip.com -kemov.com -ken.io -ken74.com -kename.com -kendingde.com -kendryte.com -kenfor.com -kenfor.net -kengatoki.com -kengwan.com -keniu.com -keniub.com -kenkapacking.com -kenshu.cc -kenshuju.com -kentier.com -kenuonet.com -kenweini.com -kepingtong.com -kepusky.com -kepuyanxue.com -kequcps.com -ker58.com -kerlala.com -kernel-sh.com -kernel.cc -kernelnote.com -kerneltravel.net -keruibell.com -keruna.com -kerust.com -keruyun.com -keruyun.net -kesci.com -keshizhongguo.com -kesion.com -kesiyunlai.com -kesucorp.com -kesum.com -ketangpai.com -ketingkeji.com -ketm.vip -ketuimage.com -kevinems.com -kevinjiang.info -kevinlq.com -kewu.cc -kexianggroup.com -kexin001.com -kexing100.com -kexingchem.com -kexinguoji.com -kexinhaoma.org -kexinyun.org -kexu.com -kexue.com -kexue.fm -kexuezixunzzs.com -key-iot.com -keyboardancer.com -keyboardingonline.net -keycom-ip.com -keydatas.com -keyde.com -keydot.net -keygotech.com -keyigroup.com -keyislove.com -keylol.com -keymoe.com -keyoou.com -keyray-hk.com -keyshot.cc -keytoix.vip -keyuhome.com -keyunidc.com -keyunsoft.com -kezhaozhao.com -kezool.com -kf.ai -kf3msfm.com -kf5.com -kf911.com -kfadx.tech -kfang.xin -kfcdn.com -kfcms.com -kfd3sm2c.com -kfdcc.com -kfj.cc -kfjd.com -kfmanager.com -kfqrc.com -kfw001.com -kfyao.com -kfzimg.com -kg-gold.com -kg.com -kg884.com -kgimg.com -kgogame.com -kgula.com -kguowai.com -khdatasolutions.com -khdmw.com -khlysc.com -khotyn.com -khqihuo.com -khs1994.com -khysct.com -ki-pa.com -kiaic.com -kibinggroup.com -kibo.tech -kid17.com -kidscoding8.com -kidsdown.com -kidseq.net -kidsyun.com -kidulte.com -kidulty.com -kiees.com -kihgwe.com -kiiik.com -kiijoy.com -kikitamap.com -kikoplay.fun -kiku.vip -kililife.com -killdb.com -kiloai.com -kimiss.com -kimiss.net -kimiter.com -kimleo.net -kimqi.net -kimsom.com -kina.cc -kindeditor.net -kindlehub.mobi -kindlelib.com -kindlepush.com -kinefinity.com -king-capital.com -kingandwood.com -kingbank.com -kingborn.org -kingbos.com -kingbrother.com -kingcheergame.com -kingclouddns.com -kingdee-soft.com -kingdee.com -zyqjs.com -kingdee.org -kingdeemall.com -kingdeestar.com -kingdeeyun.com -kingdeezx.com -kingdelgc.com -kingdomfishing.com -kingdun.net -kingexplorer.com -kinggoo.com -kinggrid.com -kingidc.net -kingkaid.com -kingland119.com -kinglandtech.net -kingliton.com -kingnare.com -kingnet.com -kingnetdc.com -kingnettech.com -kingoit.com -kingreader.com -kingrein.com -kingroot.net -kings3d.com -kingsemi.com -kingsoft-office-service.com -kingsoft.com -kingsoft.net -kingsoftstore.com -kingst.org -kingstarfintech.com -kingstarmedical.com -kingtysin.com -kingwisoft.com -kingyon.com -kinhom.com -kinlong.com -kinpan.com -kinqee.com -kintiger.com -kinval.com -kinzoncap.com -kirgen.com -kirimasharo.com -kirin-tech.com -kirincloud.net -kirinmach.com -kirinvm.com -kischess.com -kisdee.com -kiss688.com -kisskisso.com -kissyui.com -kiswo.com -kit-lee.me -kitstown.com -kiwa-tech.com -kiwenlau.com -kiwisec.com -kiyuu.club -kj-pcb.com -kj1d.com -kj3.com -kjb2c.com -kjbld.com -kjcad.net -kjcdn.com -kjchina.com -kjcity.com -kjcxpp.com -kjdb.org -kjeport.com -kjiuye.com -kjjl100.com -kjkd.com -kjkp.com -kjks.net -kjkxun.com -kjnkj.club -kjr365.com -kjsng.com -kjson.com -kjsv.com -kjt.com -kjw.cc -kjwjcq.com -kjwlxt.com -kjycx.com -kjyicdn.com -kjzxtk.com -kk169.com -kk1885.com -kk2298.com -kk30.com -kk39w.com -kk3g.net -kk556677kk.com -kk667788kk.com -kkapp.com -kkcache.net -kkcaicai.com -kkcapture.com -kkcdn.net -kkcha.com -kkcodes.com -kkcoo.com -kkdict.com -kkdnsv1.com -kkdownload.com -kkeji.com -kkeye.com -kkfesw.com -kkguan.com -kkh-global.com -kkid.vip -kkidc.com -kkikan.com -kkj2.com -kkjiaofei.com -kkk5.com -kkkd.com -kkkwww.com -kklishi.com -kklxj.com -kkmh.com -kkminer.com -kkmop.com -kknn.com -kknss.com -kkoot.com -kkredian.com -kksmg.com -kksofts.com -kkt.com -kktijian.com -kktv1.com -kktv5.com -kktv8.com -kkuu.com -kkvv77.com -kkx.net -kkyoo.com -kkyp.shop -kkyuedu.com -kkzj.com -kl1l5.com -kl321.com -kl688.com -kl87n.xyz -kl91ccp.com -klandk.com -kldjy.com -klhuyan.com -klianfa.com -klicen.com -klinlee.com -kliwu.com -kljiyou.com -kllife.com -klmh5.com -klmnf.com -klmy118114.com -klmybbs.com -klmyssn.com -klniu.com -klpbbs.com -kltdo.com -kltong.com -klub11.com -klunf.com -klv5qu.com -klvtu.com -klxuexi.com -km.com -km169.net -km18.net -km1818.com -kmail.com -kmapp.net -kmcenter.org -kmcha.com -kmcits.com -kmcxedu.com -kmdn.net -kmdns.net -kmeecc.com -kmeitu.com -kmf.com -kmfangxun.com -kmg-jd.com -kmguolv.com -kmlcl.com -kmlhh.com -kmmama.com -kmplayercn.com -kmqsaq.com -kms.pub -kmw.com -kmway.com -kmxg.net -kmxkh.com -kmxqt.com -kmxyj.com -kmyestar.com -kmyjzb.com -kmzx.org -kn120.com -kneng.net -knewbi.com -knewone.com -knewsmart.com -kninebox.com -knnnd.com -knockdream.com -knotesapp.com -know88.com -knowingclouds.com -knowingcloudvip.com -knowingyun.com -knownpcb.com -knownsec.com -knowsafe.com -knowsurface.com -knowyourself.cc -knoya.com -knsheng.com -knsyxw.com -kntn.tech -knzlcq.com -koal.com -koalacam.net -koalareading.com -kobold1855.com -kobox.tv -kocla.com -kodcloud.com -kodmp.com -koduo.com -koeicn.com -kofficemart.com -kofuf.com -kofunion.net -koiclub.net -koikreative.com -koinocn.com -kokojia.com -kole8.com -kolrank.com -kolstore.com -komect.com -kometo.com -koncoo.com -konekomoe.com -konfan.net -kongao.com -kongapi.com -kongdao.com -kongdi.net -kongduan.com -kongfou.net -kongfz.com -kongge.com -konggu.net -kongjianjia.com -kongjie-zhaopin.com -kongjie.com -kongjitang.com -kongjun.com -konglei.com -kongming-inc.com -kongquecheng.com -kongqueyuzd.cc -kongrong.com -kongsun-hldgs.com -kongtiao365.com -kongyixueyuan.com -kongzhi.net -kongzhiji.com -kongzhong.com -konka.com -konkamobile.com -konkek2.com -konotaku.com -kooaoo.com -koocdn.com -koodudu.com -koofang.com -koofun.com -kookong.com -koolbao.com -koolcenter.com -kooldns.com -koolearn.com -koolproxy.com -koolyun.com -koomao.com -koopass.com -koorun.com -kooshui.com -kooteam.com -koovin.com -koovoo.com -koowo.com -kooxoo.com -koplayer.com -koreabt.com -koreaxing.com -korimscdn.com -korirl.com -korosensei.com -kotei-info.com -kotex-km.com -koto.com -kotoo.com -koubei.com -koubeiblog.com -koubeikc.com -koucai365.com -kouclo.com -koudai.com -koudai8.com -koudaigou.net -koudailc.com -koudaili.com -koudaionline.com -koudaionline.net -koudaipe.com -koudaitiku.com -koudaitong.com -koudashijie.com -kouer.com -kouer.net -kouke5.com -koukousky.com -koukuko.com -koumakan.cc -koushare.com -kouss.com -kouyu100.com -kouzi.com -kowa-dental.com -kowa103.com -kox.moe -koyuki.cc -kp8080.com -kpbgw.com -kpblw.com -kpjushi.com -kpkpw.com -kplanet.vip -kprepublic.com -kpzip.com -kpzip.net -kpzs.com -kq36.com -kq39.com -kq520.net -kq7.com -kq81.com -kq88.com -kqgeo.com -kqidong.com -kqj123.com -kqmmm.com -kqqy.com -kqw.com -kqzlzx.com -kr-cell.com -kr126.com -krahag.com -krbamboo.com -krbattery.com -krdrama.com -kriszhang.com -kriweb.com -krpano.tech -krshadow.com -krszf.com -krwz.com -krzzjn.com -ks-cdn.com -ks-cdn1.com -ks-live.com -ks-lxjy.com -ks-spring.com -ks1688.com -ks321.com -ks365.org -ks51.com -ks5u.com -zyqccs.com -ksapisrv.com -ksbao.cc -ksbao.com -ksc-test.com -kscac.com -kscdns.com -ksco.cc -ksdkcks.com -ksdown.com -ksdq0514.com -ksense.com -ksfang.com -ksgnr.com -kshot.com -ksjgs.com -kskwai.com -ksmobile.com -ksnows.com -ksops.com -ksord.com -ksosoft.com -kspays.com -kspkg.com -ksqdq.com -ksren.com -ksria.com -ksrong.com -kstao.com -kstz1.com -ksudi.com -ksupdate.com -ksy.com -ksydx.com -ksyiqiwan.com -ksyna.com -ksyuki.com -ksyun.com -ksyunad.com -ksyuncdn-k1.com -ksyuncdn.com -ksyuncs.com -ksyungslb.com -ksyunv5.com -ksyunv7.com -ksyunwaf.com -ksyxmc.com -kszhuanjia.com -kszpw.com -kt007.com -kt250.com -kt286.com -kt40.com -kt5u.com -ktang1.com -ktanx.com -ktbiao.com -ktfdsb.com -kting.info -ktkt.com -ktlshu.vip -ktlstbg.com -ktmap.com -ktmv.com -ktplay.com -ktvc8.com -ktvdaren.com -ktvme.com -ktvsky.com -ktvxg.com -ktxtc.net -ktxuexi.com -ku2048.net -ku25.com -ku3c.shop -ku6.com -ku6.net -ku6655.net -ku6cdn.com -ku6img.com -ku82.com -ku86.com -ku8ku8.com -ku90.com -ku9377.com -ku987.com -kuaaa.com -kuabaobao.com -kuacg.com -kuaddkee.cyou -kuafugame.com -kuai-fei.com -kuai-ying.com -kuai.ma -kuai65.com -kuai7.com -kuai8.com -kuaibbs.com -kuaibiancheng.com -kuaibiao2000.com -kuaibowang.net -kuaiboyun.com -kuaibuw.com -kuaicad.com -kuaichale.com -kuaidadi.com -kuaidaili.com -kuaidi.com -kuaidi100.com -kuaidihelp.com -kuaidil.com -kuaidizs.com -kuaiduizuoye.com -kuaiduwen.com -kuaiex.com -kuaifaka.com -kuaifawu.com -kuaifeng.com -kuaifuinfo.com -kuaigames.com -kuaigeng.com -kuaihaodai.com -kuaihou.com -kuaihz.com -kuaiji.com -kuaiji.so -kuaiji66.com -kuaijilunwen.com -kuaijinniu.com -kuaijishizi.com -kuaijisishu.com -kuaijitong.com -kuaijizheng365.com -kuaikanad.com -kuaikanmanhua.com -kuaikuaicloud.com -kuaikuaidai.com -kuaikuaiyu.com -kuaila.com -kuaile-u.com -kuaile800.com -kuailedo.com -kuailelunwen.com -kuailesh.com -kuailetongyao.com -kuailexs.com -kuailezu.com -kuailiyu.com -kuailiyu.net -kuailvzaixian.com -kuaimi.com -kuaimi.net -kuaipandata.com -kuaipao8.com -kuaipeilian.com -kuaipiyun.com -kuaipng.com -kuaiqin.com -kuaishebao.com -kuaishou.com -kuaishouapp.com -kuaishouba.com -kuaishoupay.com -kuaishouzt.com -kuaishuru.net -kuaisujiasu.net -kuaisushu-cnd.com -kuaitijian.com -kuaitu666.com -kuaitui123.com -kuaiwan.com -kuaiwenyun.com -kuaixiazai.com -kuaiyan.com -kuaiyiad.com -kuaiyilicai.com -kuaiyingxiao88.com -kuaiyingyong.vip -kuaiyong.com -kuaiyoujia.com -kuaiyouxi.com -kuaiyu.com -kuaiyugo.com -kuaiyunbd.com -kuaiyunds.com -kuaizhan.com -kuaizhang.com -kuaizhe.com -kuaizhihui.com -kuaizi.cc -kuaizi.co -kuaizip.com -kuaizitech.com -kuaizitech.net -kuaizy.com -kuajing.com -kuajing.hk -kuajingbiji.com -kuajingyan.com -kuakao.com -kuakao.net -kuaming.com -kuanfutong.com -kuang-chi.com -kuang-chi.org -kuangchan.biz -kuangjijia.com -kuangjiwan.com -kuangming.com -kuangren.cc -kuangwan.tv -kuangxiangit.com -kuangyi.com -kuanye.net -kuark.com -kuashou.com -kubey.cc -kubikeji.com -kuboluo.com -kuche.com -kuchuan.com -kucunguanli.online -kudianqi.com -kudianvip.com -kudiaoyu.com -kudingyu.com -kufangwuyou.com -kufaxian.com -kuge.cc -kugou.com -kugou.la -kugou.net -kuguopush.com -kugz.net -kuhii.com -kuicc.com -kuihuakeji.com -kuihuo.com -kuiniuca.com -kuishiba.com -kuishuling.com -kujiale.com -kujiang.com -kuk8.com -kukahome.com -kukasofa.com -kuke.com -kuke99.com -kukecloud.com -kukseo.com -kukulv.com -kukumai.com -kukupig.com -kukushow.com -kukuspeak.com -kukuw.com -kukuxiu.com -kuleiman.com -kulemi.com -kulengvps.com -kuletco.com -kuli.ren -kuliwang.net -kuman.com -kuman56.com -kumankeji.net -kumaoyun.com -kumiao.com -kumifeng.com -kumimall.com -kunduo.com -kungfucloud.com -kungfuenglish.com -kunguankeji.com -kunkkawu.com -kunlun-cdn.com -kunlunaq.com -kunlunar.com -kunlunca.com -kunluncan.com -kunlunce.com -kunlunea.com -kunlungem.com -kunlungr.com -kunlunhuf.com -kunlunjue.com -kunlunle.com -kunlunli.com -kunlunno.com -kunlunpi.com -kunlunra.com -kunlunsa.com -kunlunsc.com -kunlunsl.com -kunlunso.com -kunlunta.com -kunlunvi.com -kunlunwe.com -kunmingbc.com -kunmingkanghui.com -kunpo.cc -kunruiglwb.com -kuntaihotel.com -kunyueyun.com -kunyun8.com -kuo-yi.com -kuoo8.com -kuosanyun.com -kuosheng.net -kuotu.com -kuozhan.net -kupao.com -kuparts.com -kupoo.com -kuqin.com -kureader.com -kurogame.com -kurokingdom.com -kurukurumi.com -kusdk.com -kushanfudaojixie.com -kushou.com -kushuzw.com -kuso.xyz -kusouji.com -kutianxia.com -kutj.com -kutongji.com -kutuan.com -kuuke.com -kuwan8.com -kuwanapp.com -kuwanbang.com -kuwen.net -kuwew.com -kuwuu.com -kuxiaoji.com -kuxiaozhu.com -kuxiuktv.com -kuxuexi.com -kuy8.com -kuyh.com -kuyibu.com -kuyin123.com -kuyinyun.com -kuyiso.com -kuyumall.com -kuyun.com -kuzhazha.com -kuzhengame.com -kvegg.com -kvenjoy.com -kvevv.com -kviso.com -kvkaa.com -kvogues.com -kvov.com -kvps85.com -kwaicdn.com -kwaigobuy.com -kwaishop.com -kwaishouapp.com -kwaixiaodian.com -kwaiying.com -kwaizt.com -kweaake.cyou -kwenku.com -kwfser.com -kwimgs.com -kwkf.com -kwtzn.com -kwudor.com -kwx.gd -kwxjh.net -kx001.com -kx1158.com -kx1d.com -kx516.com -kx7p.com -kxapp.com -kxapps.com -kxbox.com -kxceping.com -kxdaili.com -kxdao.com -kxdpm.com -kxdw.com -kxfsw.com -kxgcw.com -kxiaoshuo77.com -kxinyk.com -kxji.com -kxll.com -kxp7.xyz -kxqo2ev.com -kxscience.com -kxt.com -kxting.com -kxtoo.com -kxtry.com -kxtseal.net -kxtui.com -kxtwz.com -kxx2.com -kxxsc.com -kxxxl.com -kxzmw.com -ky-express.com -ky.live -ky0001.vip -ky0048.cc -ky01002.com -ky01005.com -ky01010.com -ky01013.com -ky01020.com -ky107.co -ky151.co -ky55005.com -ky5yx.com -ky7yx.com -ky958.com -kybapp.com -kybapp.net -kybimg.com -kyboye.com -kydev.net -kye-erp.com -kyemall.com -kyhs.me -kyhtech.com -kyjxy.com -kylc.com -kyleduo.com -kyligence.io -kylin-os.com -kylinlot.com -kylinmobi.com -kylinos.com -kylinpet.com -kymjs.com -kyoceraconnect.com -kyppt.com -kytijian.com -kyw4y0s.com -kyxdloan.com -kyy6.com -kyyj.net -kyzf.net -kyzx.xyz -kyzyj.com -kz8yx.com -kza.cc -kzeaa.com -kzecc.com -kzehh.com -kzeoo.com -kzepp.com -kzerr.com -kzqs.com -kzread.com -kzt.cc -kztpms.com -kzwr.com -kzynews.com -kzyzz.com -l-zb.com -l069.com -l2h.site -l2t7.cc -l360qwfgg.com -l68.net -l7audiolab.com -l99.com -l9p9b.xyz -la-mo.com -laakan.com -lab-z.com -labagd.com -labbang.com -labbase.net -labfan.com -labgogo.com -labiciprimaditutto.com -labno3.com -laborlawtime.com -labview.help -labxing.com -lacesar.com -lache.me -lactec.net -ladiyoga.com -ladjzs.com -lady177.com -lady361.com -lady8844.com -lady98.com -ladybirdedu.com -ladydaily.com -ladymetro.com -ladystr.com -lafaso.com -lafy.org -lagou.com -lagouevents.com -lagoujobs.com -lagowang.com -lahm2018.com -lahuashanbx.com -lahuobao56.com -lai-ai.com -laiba.shop -laibeiparking.com -laibokeji.com -laichou.com -laichuanfeng.com -laidacai.com -laidingba.com -laidudu.com -laifeng.com -laifu.net -laigame7.net -laihema.com -laihua.com -laijiawen.com -laijiuye.com -laikan.com -laikanxing.com -laikanxs.com -laikeerp.com -laiketui.com -lailaihui.com -lailook.net -laima-tech.com -laimaidi.com -laiqi.net -laiqukankan.com -laird-tek.com -laishui.info -laisizuji.com -laisj.com -laituia.com -laituijian.net -laiwang.com -laiweishang.com -laiwo.com -laiwu.net -laiwumedia.com -laixiangzuji.com -laixiu.cc -laixiukeji.com -laixueedu.com -laixuexi.cc -laiyagushi.com -laiyetxt.com -laiyifen.com -laiyouxi.com -laiyunad.com -laizee.com -laizhouba.net -laizi.net -lajixs.com -lakala.com -lakecn.com -lakwdian.com -lalawaimai.com -lalkk.com -lamabang.com -lamahui.com -lamaison-arting.com -lamajie.com -lamall.com -lamaqun.com -lambda.hk -lamiu.com -lamost.org -lamoton.com -lampchina.net -lampouomo.com -lamyu.com -lan-bridge.com -lan-lin.com -lan1001.com -lanbts.com -lancdn.com -lancern.xyz -lanchenglv.com -lancn.net -lancome-beauty.com -lancong.net -lanconvey.com -landa-solenoid.com -landai.com -landchina.com -landed.cc -landi.com -landian.vip -landiannews.com -landing-med.com -landingbj.com -landintheair.com -landizs.com -landjs.com -landraco.com -landray.com -landroads.com -landscapecn.com -landtu.com -landui.com -landunxiaofang.com -landzestate.com -lanecn.com -lanfanapp.com -lanfeicastle.com -lanfeitech.com -lanfeiwine.com -lanfeng.net -lanfw.com -lang8.net -langao.com -langchao.com -langchengzhixin.com -langfang.com -langfangfc.com -langke.com -langke.tv -langlang.cc -langlangjiajiao.com -langlib.com -langlive.com -langmanzg.com -langnisen.com -langren001.com -langren8.com -langrencard.com -langrenclub.com -langrensha.net -langtao.cc -langtaojin.com -langtze.com -languangdy.com -langya.org -langyabang.com -langyuseo.com -langzi.fun -lanh.love -lanhaicaijing.com -lanhaiweb.net -lanhaizhi.com -lanhu.com -lanhuapp.com -lanhuhu.com -lanhusoft.com -lanindex.com -lanjie100.com -lanjie520.com -lanjing5.com -lanjinger.com -lanjingfm.com -lanjingtmt.com -lankecloud.com -lanlanlife.com -lanlv.com -lanmao.com -lanmaokeji.com -lanmaos.com -lanmit.com -lanmon.net -lanou3g.com -lanpanpan.com -lanqb.com -lanqi.com -lanqibing.com -lanqiudi.com -lanqiuzu.com -lanreelh.com -lanrenbijia.com -lanrenclub.com -lanrenexcel.com -lanrenmb.com -lanrentuku.com -lanrenzhaofang.com -lanrenzhijia.com -lanrenzhoumo.com -lansancn.com -lansedongli.com -lansha.tv -lanshanweb.com -lanshenniao.com -lanshizi.com -lantian-hotel.com -lantian.tv -lanting123.com -lantinglou.com -lanuss.com -lanvige.com -lanwoncloudfilm.com -lanwuzhe.com -lanxinbase.com -lanxiniu.com -lanxiongsports.com -lanxum.com -lanyingwang.com -lanyuanxiaoyao.com -lanyunbrand.com -lanyunone.com -lanyus.com -lanyusf.com -lanzhisky.com -lanzhuwh.com -lanzou.com -lanzoub.com -lanzouc.com -lanzoue.com -lanzouf.com -lanzoug.com -lanzouh.com -lanzoui.com -lanzouj.com -lanzouk.com -lanzoul.com -lanzoum.com -lanzouo.com -lanzoup.com -lanzouq.com -lanzous.com -lanzout.com -lanzouu.com -lanzouv.com -lanzouw.com -lanzoux.com -lanzouy.com -lanzouz.com -lanzun.net -laobaigan-hs.com -laobandq.com -laobanfa.com -laobangban.com -laobanmail.com -laobingmi.com -laobuluo.com -laobuxie.com -laocen.com -laodaoyun.com -laodong.me -laodong66.com -laodongfa.com -laoduo.net -laofu.online -laofuxi.com -laoge.xyz -laogongshuo.com -laogu.cc -laogu.com -laohu.com -laohu8.com -laohuabao.com -laohucaijing.com -laohutao.com -laohuyun.com -laojilu.com -laojiuxitong.com -laojuhui.com -laoke.com -laolai.com -laoliang.net -laoliboke.com -laolieren.shop -laolinow.com -laoluoshouji.net -laomaotao.com -laomaotao.net -laomaotao.org -laomaotaopan.com -laomoe.com -laonanren.cc -laoniushuju.com -laoqiange.club -laoqianzhuang.com -laoren.com -laosiji.com -laosunit.com -laotiaomao.com -laowalens.com -laowangappxy.xyz -laowangshengge.com -laowuxx.com -laoxiezi.com -laoxuehost.com -laoxuehost.net -laoxuezhuji.com -laoy.net -laoyaoba.com -laoyoujiaju.com -laoyouzhibo.com -laoyuanji.com -laoyuegou.com -laoyuge.com -laozhaopianxiufu.com -laozicloud.com -laozongyi.com -laozu.com -laozuo.org -lapin365.com -laravel-admin.org -laravel-china.org -laravelacademy.org -larenla.com -large.net -larkapp.com -larkroad.com -larksuite.com -larksuitecdn.com -larsonlimited.com -laruence.com -las88889999.com -lascn.net -laserfair.com -lashou.com -lastdream.net -lasy.site -lategege.com -latepost.com -latexstudio.net -latin100.com -lativ.com -latoooo.com -lattebank.com -lattecake.com -lattefinance.com -lavago.com -lavandehotels.com -lavapm.com -lavaradio.com -law-lib.com -law-star.com -law01.net -lawbang.com -lawbridge.org -lawbus.net -lawinfochina.com -lawlingyun.com -lawnewscn.com -lawtimeimg.com -lawxin.com -lawxp.com -lawyee.com -lawyee.net -lawyee.org -lawyer-wangjiawei.com -lawyerbridge.com -lawyermr.com -lawyerpass.com -lawyershanghai.net -laxiao.com -layabox.com -layoutad.com -laysky.com -layui.com -layuicdn.com -zyqc.cc -zyq366.com -lazada.com -zyplayer.com -zyoung.me -lazada.sg -lazada.vn -lazybios.com -lazydim.com -lbagan.com -lbbniu.com -lbd99.com -lbddd.com -lbdj.com -lbesec.com -lbgoo.com -lbinin.com -lbjljc.com -lbjn.cc -lbkrs.com -lbsmshop.com -lbsrmyy.com -lbwbw.com -lbx777.com -lbxcn.com -lbxdrugs.com -lbxueyuan.com -lbzuo.com -lbzx.xyz -lc-cn-e1-shared.com -lc-cn-n1-npxfk.com -lc-cn-n1-shared.com -lc-cn-n1-thovg.com -lc-news.com -lc1001.com -lc123.net -lc77.com -lc787.com -lcatgame.com -lcbdf.net -lcbtv.com -lccareer.com -lccdn.net -lccmw.com -lccz.com -lcddjm.com -lcdhome.net -lcdushi.com -lcdwiki.com -lcfby.com -lcfile.com -lcfw.co -lcgod.com -lchot.com -lcjh.com -lckeshun.com -lckiss.com -lcloc.com -lcofjp.com -lcouncil.com -lcrcbank.com -lcread.com -lcsrmyy.com -lcsrw.com -lcux.net -lcxwfc.com -lcyff.com -lcyp.net -lczm.com -lczq.com -lczyy.com -ld0766.com -ld12366.com -ld246.com -ldbc.net -ldcang.com -ldd.me -lddengine.com -lddgo.net -ldgslb.com -ldkj-zs.com -ldmap.net -ldmnq.com -ldqxn.com -ldshj.com -ldsink.com -ldszpx.net -ldtui.com -ldwxiao.com -ldycdn.com -ldygo.com -ldyh666.com -le-feng.com -le.com -le5le.com -le890.com -leachchen.com -leacol.com -lead-expo.com -leadal.com -leadal.net -leadbbs.com -leadcoretech.com -leaderhero.com -leadge.com -leadong.com -leadstong.com -leaferjs.com -leaforbook.com -leafword.com -leagcard.com -leagsoft.com -leangoo.com -leankun.com -leanote.com -leansoftx.com -leanwind.com -leap-pc.com -leapahead.vip -leapfive.com -leapmie.com -leapmotor.com -learn-quantum.com -learndiary.com -learnfans.com -learnfk.com -learnfuture.com -learning-archive.org -learnku.com -learsun.com -leb-china.com -lebang.com -lebang.net -lebocode.com -lebogame.net -leboweb.com -lecai.com -lecai08.com -lecake.com -lechain.com -lechange.com -leche.com -lechebang.com -lechinepay.com -lecloud.com -lecloudapis.com -lecoinfrancais.org -leconginfo.com -lecoo.com -lecoo8.com -lecuntao.com -ledanji.com -ledcax.com -ledchina-sh.com -ledctl.com -lede.com -ledhxgc.com -ledhyzm.com -ledianduo.com -ledianyun.com -lediaocha.com -ledo.com -ledouwan.com -ledouya.com -ledsdk.com -ledth.com -ledu.com -ledu365.com -leduimg.com -leduotv.com -leeco.com -leefanmr.com -leehon.com -leeiio.me -leenzhu.com -leeon.me -leepoint.net -leeqing.com -leesou.com -leetcode-cn.com -leetcodechina.com -leevy.net -leewiart.com -leeyegy.com -leeyuoxs.com -lefeng.com -leftfm.com -leftlady.com -leftso.com -lefuzuwu.com -legend-go.com -legendsec.com -legendtkl.com -legou456.com -legowechat.com -legu.cc -legu168.com -leguyu.com -leha.com -lehaitv.com -lehe.com -lehecai.com -lehejituan.com -lehihi.com -leho.com -lehu.host -lehuadisplay.com -lehuipay.com -lehuiso.com -lei001.com -leibei.cc -leibeiyipei.xyz -leida310.com -leidianip.com -leiduhuaya.com -leifengshi120.com -leigod.com -leihuo.net -leikeji.com -leikw.com -leileiluoluo.com -leilong158.com -leimi.com -leimingtech.com -leimingtelab.com -leimudata.com -leiniao.com -leiniao365.com -leining-shield.com -leiouxiong.com -leiphone.com -leirsw.com -leishen-lidar.com -leishouwin.cc -leisoon.com -leisu.com -leisu123.com -leisurelypanda.com -leiting.com -leitingcn.com -leitingjunshi.com -leitool.com -leiue.com -leixue.com -leiyunge.com -leiyunge.net -lejiachao.com -lejian.com -lejianweike.com -lejiaolexue.com -lejingxuan.com -lejj.com -leju.com -lejuliang.com -lejunwl.com -lekannews.com -lekarlwig.com -lekevr.com -lekkrrlel.com -lekoukou.com -lekpass.com -lelai.com -lele-lezhong.com -leleda.com -leledp.com -leleketang.com -lelelala.net -lelepyq.com -leletv.com -leletv.net -lelewl.com -lemai.com -lemaker.com -lemall.com -lemedu.com -lemeitu.com -lemeng.center -lemfix.com -lemiwan.com -lemo360.com -lemobar.com -lemonban.com -lemonpiggy.com -lemonyd.com -lemote.com -lempstack.com -lengcat.com -lenget.com -lengxiaohua.com -lengziyuan.com -lengzzz.com -lening100.com -leniugame.com -leniy.org -lenosoft.net -lenovator.com -lenovogame.com -lenovohci.com -lenovohuishang.com -lenovoimage.com -lenovomm.com -lenovomobile.com -lenovonetapp.com -lenovonowgo.com -lenovosj.com -lenovots.com -lenovouat.com -lenovowap.com -lenovows.com -lensuo.com -lenwoo.com -lenzhao.com -leo.moe -leoao-inc.com -leoao.com -leoboard.com -leocode.net -leohoo.xyz -leonblog.net -leopump.com -leozwang.com -lepaiok.com -lepaowang.com -lepiaoyun.com -leptv.com -leqian.com -lequ.com -lequ7.com -lequgo.com -lequyuanyi.com -lequz.com -lerengu.com -lergao.com -lerist.dev -lers123.com -lers168.com -lers168.net -lersang.com -lerye.com -leshanvc.com -leshiguang.com -leshow.com -leshu.com -leshuazf.com -leshuwu.com -leslie-cheung.com -lesports.com -less-bug.com -lesscss.net -lessisbetter.site -letabc.com -letaikeji.com -letao.com -letfind.com -letinet.com -leting.io -letongjiaxiao.com -letoom.com -letou8.com -lets-study.com -letsebuy.com -letsfilm.org -letsgaga.com -lettercloud.net -letuinet.com -letuknowit.com -leturich.org -letushu.com -letv.com -letv8.com -letv8.net -letvapp.net -letvcdn.com -letvcloud.com -letvimg.com -letvlb.com -letvps.com -letwind.com -letwx.com -letyo.com -leuok.com -levect.com -levelinfinite.com -leviding.com -lewaimai.com -lewang.ltd -leweicn.com -lewen.la -lewen567.com -lewen88.com -lewenba.cc -lewenn.com -lewenxsw.com -lewifi.com -lexar.com -lexiang-asset.com -lexiangjian.com -lexiangla.com -lexiangzuji.com -lexin.com -lexinchina.com -lexpq.com -lexs9.com -lexue.com -lexue8.com -lexueying.com -lexun.com -leyantech.com -leyaoyao.com -leyaoyao.org -leyard.com -leybc.com -leyifan.com -leying.com -leying365.com -leyingtt.com -leyishandong.com -leyixue.com -leyonb.com -leyoucp.com -leyoujia.com -leyouquan.com -leyue100.com -leyun001.com -leyungame.com -leyunge.com -leyuxyz.com -leyuz.com -lezai.com -lezhi.com -lezhi99.com -lezhibo.com -lezhiot.com -lezhiyun.com -lezhuan.com -lezhuan168.com -lezhuan365.com -lezhun.com -lezi.com -lezuan.net -lezuan9.com -lf127.net -lfan.net -lfang.com -lfbxw.com -lfcmw.com -lfdjex.com -lfex.com -lfhacks.com -lfhospital.net -lfhygl.com -lfkjgh.com -lfksqzj.com -lflucky.com -lfppt.com -lftdzd.com -lfungame.com -lfwin.com -lfwtc.com -lfwx1.com -lfx20.com -lfyzjck.com -lg1024.com -lg198.com -lg199.com -lg5.co -lg5.com -lgctshanghai.com -lgdisplayproduct.com -lgexam.com -lghsrh.com -lgimg.com -lgmi.com -lgo100.com -lgpic.com -lgstatic.com -lguohe.com -lgzzu.com -lh-lx.com -lh.link -lh168.net -lh310.com -lh75.com -lhao88.com -lhave.com -lhdxz.com -lhggjd.org -lhh.la -lhl7.com -lhrbszb.com -lhs-arts.org -lhs11.com -lhs99.com -lhsdad.com -lhsoso.com -lhwill.com -lhwytj.com -lhy1.xyz -lhy2.xyz -lhy3.xyz -lhygcn.com -lhyiliao.com -lhzq.com -li-ca.com -li-ning.com -li63.com -li91.com -liageren.com -lialiu.com -lian-ou.com -lianaibashi.com -lianaibiji.com -lianaiwz.com -lianchuang.com -liancsoft.com -liandaomobi.com -liandaquan.com -lianezs.com -lianfawy.com -liang.com -liangchan.net -liangchanba.com -liangduiban.com -liangjan.com -liangjianghu.com -liangjihui.com -liangjiu.shop -liangka.vip -liangkun.net -liangle.com -lianglong.org -liangpinriyu.com -liangqikeji.com -liangshunet.com -liangwei.cc -liangxinyao.com -liangxiongdi.com -liangyadong.com -liangyi.com -liangzhishu.com -liangzuji.com -lianhaikeji.com -lianhanghao.com -lianhecang.com -lianjia.com -lianjixia.com -liankaa.com -liankebio.com -lianle.com -lianlianlvyou.com -lianlianpay.com -lianliantaoshop.com -lianlife.com -lianmeng.la -lianmeng.link -lianmenhu.com -lianmishu.com -lianouyiyuan.com -lianpingd.com -lianpuie.com -lianqi.net -lianshijie.com -liansuo.com -liantai.cc -liantianhong.com -liantu.com -liantuobank.com -liantuofu.com -lianty.com -lianwangtech.com -lianwen.com -lianwifi.com -lianwo8.com -lianxiangcloud.com -lianxianjia.com -lianxinapp.com -lianxueqiu.com -lianyezy.com -lianyi.com -lianyu.com -lianzhong.com -lianzhongmingyuan.com -lianzhongyun.com -lianzhuli.com -liao1.com -liao98.com -liaocheng.cc -liaochuo.com -liaogu.com -liaogx.com -liaojieju.com -liaojiu.net -liaokeyu.com -liaokong.com -liaoliao.com -liaosam.com -liaoshenrc.com -liaotuo.org -liaowei.info -liaoxuefeng.com -liaozhai.tv -lib4d.com -lib520.com -liba.com -libaclub.com -libai.com -libaidns.com -libaopay.com -libinx.com -libisky.com -libomarathon.com -libreofficechina.org -libsou.com -libtop.com -libvideo.com -lic-bcbc.com -licai.com -licai18.com -licaie.com -licaifan.com -licaigc.com -licaike.com -licaiker.com -licaimofang.com -licat.com -lichangtai.com -lichangtao.com -lichee.pro -lichenglove.com -lichengwu.net -lichenjy.com -lichensafe.com -lickeji.com -licomsh.com -licqi.com -licstar.net -lidakang.com -lidazhuang.com -lidecloud.com -lidepower.com -lidewen.com -liding.me -lidodo.com -lidoooo.com -liebao.live -liebaoidc.com -liebiao.com -liebrother.com -liechan.com -liefangzhe.com -liegou.org -lieguo.com -lieguozhi.com -liehunwang.com -liehuo.net -liejin99.com -lieju.com -lielb.com -lielema.com -liemingwang.com -lienew.com -liepin.com -liepincc.com -liepinoverseas.com -lieqi.com -lieqibar.com -liesauer.net -lietou-edm.com -lietou-static.com -lietou.com -lietou007.com -lietuwang.com -liewen.cc -liewen.la -liexing-ai.com -liexing.com -lieyou.com -lieyou888.com -lieyuncapital.com -lieyunwang.com -lif8.com -lifan.com -life365.com -lifeeu.com -lifegatemedicine.com -lifeibo.com -lifeng.in -lifeng.net -lifenghang.com -lifeofguangzhou.com -lifesense.com -lifetm.com -lifetmt.com -lifevc.com -lifevccdn.com -lifeweeker.com -lifeyk.com -lifox.net -lifushop.com -lifves.com -ligerui.com -lighos.com -light3moon.com -lightalk.com -lightcss.com -lightgx.com -lighthillsolutions.com -lightingchina.com -lightinit.com -lightky.com -lightlygame.com -lightonus.com -lightpassport.com -lighttp.com -lightyy.com -liguda.com -liguhd.com -liguosong.com -lihaihong.com -lihaoquan.me -lihaoshuyuan.com -lihetong.com -lihtao.com -lihua.com -lihuia.com -lihun66.com -liigou.com -lijigang.com -lijingquan.net -lijishi.com -lijizhong.com -likamao.com -likangwei.com -like-ukraine.com -likeacg.com -likecha.com -likechuxing.com -likecs.com -likeface.com -likefar.com -likefont.com -likeji.net -likejianzhan.com -likeshare-tech.com -likeshuo.com -liketm.com -liketry.com -likewed.com -liking.site -likingfit.com -likuli.com -likuso.com -lilinwei.com -lilishare.com -lilisi.com -lilithgame.com -lilithgames.com -liliyago.com -lilosrv.com -lilvb.com -lily-collection.com -lilysamericandiner.com -lilysgame.com -limaoqiu.com -limax.com -limboy.com -limei.com -limian.com -limikeji.com -liminglight.com -liminjie714.com -liminwang.com -limkokwingchina.com -limless.com -linakesi.com -linban.com -lincoc.com -lindapatent.com -lindiankanshu.com -line0.com -lineartracklight.com -linecg.com -linecg.net -linekong.com -linelayout.com -linemore.com -linewell.com -linewow.com -linezing.com -linfan.com -linfeicloud.com -ling-shi.com -lingaoren.com -lingb.net -lingbao-e.com -lingchusw.xyz -lingd.cc -lingd.com -lingdai.name -lingdi.net -lingdiankanshu.co -lingdianksw.com -lingdonghuyu.com -lingdunwang.com -lingduohome.com -lingduzuji.com -lingdz.com -lingfengyun.com -lingganchengniu.com -lingganjia.com -linghit.com -lingji666.com -lingjiaocheng.com -lingjing.com -lingjiptai.com -lingjoin.com -lingkaba.com -lingki.net -lingkou.com -lingla.com -linglingkaimen.com -linglong.dev -linglongart.com -linglonglife.com -linglongtech.com -lingmo.org -lingmovie.com -lingnanpass.com -lingocn.com -lingosail.com -lingphone.net -lingquanb.com -lingrengame.com -lingrn.com -lingshangkaihua.com -lingshi.com -lingshoujia.com -lingsoul.com -lingtaoke.com -lingtiao.com -lingtool.com -lingtu.com -lingtuan.com -lingumob.com -lingw.net -lingwh.com -lingwu66.com -lingxi360.com -lingxicloud.com -lingxigames.com -lingxmall.com -lingxunyun.com -lingyi.org -lingyiliebian.com -lingyinsi.com -lingyue-digital.com -lingyuecloud.com -lingyun.net -lingyun5.com -lingyunip.com -lingyutxt.com -lingzhanwenhua.com -lingzhilab.com -lingzhitech.com -lingzhtech.com -linhuiba.com -lining.com -lining0806.com -linjia.me -linjie.org -linjin.net -linjunet.com -linjunlong.com -link27.com -link2lib.com -link2shops.com -linkadsapi.com -linkbroad.com -linkbux.com -linkchant.com -linkchic.com -linkease.com -linked-f.com -linkedbyx.com -linkedhope.com -linkedin-event.com -linkedkeeper.com -linkedme.cc -linkedsee.com -linker.cc -linkernetworks.com -linkfinancier.com -linkflowtech.com -linkh5.com -linkh5.xyz -linkhaitao.com -linkheer.com -linkiebuy.com -linkingme.com -linkist.net -linknewideas.com -linkpai.com -linkpro.tech -linkrall-trk.com -linkresearcher.com -linkscue.com -linksgood.com -linkshop.com -linksoon.net -linkstars.com -linktech.hk -linktom.net -linktt.com -linkunbin.com -linkvans.com -linkwebll.com -linkweway.com -linlongyun.com -linlongyx.com -linmi.cc -linni.com -linnsea.com -linnyou.com -linovel.co -linovel.net -linovelib.com -linpx.com -linquan.info -linqujob.com -linroid.com -linruanwangluo.com -linshang.com -linshigong.com -linshuwang.com -linsn.com -linstitute.net -lintai.tech -lintcode.com -lintey.com -lintongrc.com -linuo-paradigma.com -linuser.com -linux-code.com -linux-ren.org -linux.zone -linux178.com -linux265.com -linux5.net -linux6.com -linux78.com -linuxba.com -linuxbaike.com -linuxbaodian.com -linuxboy.net -linuxcool.com -linuxde.net -linuxdiyf.com -linuxdot.net -linuxdown.com -linuxea.com -linuxeden.com -linuxeye.com -linuxfly.org -linuxgogo.com -linuxidc.com -linuxidc.net -linuxkiss.com -linuxmi.com -linuxmingling.com -linuxpanda.tech -linuxpk.com -linuxprobe.com -linuxrumen.com -linuxsight.com -linuxsir.com -linuxso.com -linuxtone.org -linuxyan.com -linuxyunwei.com -linuxyw.com -linwenfa.com -linx-info.com -linxingyang.net -linyi.com -linyi.net -linyilongyuan.com -linyiren.com -linyizhizhiyuan.com -linzhuotech.com -linzhuxin.com -lion1ou.tech -lionaka.com -lionelliu.com -lionmobo.com -lionmobo.net -lipian.com -lipiji.com -lipilianghang.com -lipin.com -lipin010.com -lipinduihuan.com -lippt.com -liqinyi.com -liqucn.com -liquidnetwork.com -liqunshop.com -liqwei.com -liriansu.com -lirui.name -lis99.com -lisa33xiaoq.net -lisdn.com -lishi.com -lishi6.com -lishibu.com -lishichunqiu.com -lishiip.com -lishiming.net -lishiren.com -lishixinzhi.com -lishizhishi.com -lishouhong.com -lishuhang.me -lishuhao.ltd -lishui.com -lisinit.com -lisizhang.com -lisp123.com -listarypro.com -listeneer.com -listentide.com -listentoworld.com -listenvod.com -listtax.com -litaine.com -litaow.com -litchon.com -litecoin.ink -litecoin.ren -litefeel.com -liteng-industry.com -liticool.club -litilala.site -litilala.xyz -litipumps.com -lititop.group -litpo.com -litten.me -little-sun.com -littleboy.net -littleee.com -littlefoxgroup.com -littlehero.xyz -littleroost.net -littlesheep.com -littleswan.com -liu-kevin.com -liubaiapp.com -liubiji.com -liubo.live -liucaijiu.com -liuchengtu.com -liuchengtu.net -liuchuo.net -liudanking.com -liudatxt.com -liudon.org -liudu.com -liugejava.com -liugezhou.online -liugj.com -liugm.com -liugong.com -liuguofeng.com -liuhaolin.com -liujiajia.me -liujiangblog.com -liujiaoyidai.com -liujijun.com -liujto.com -liujunworld.com -liujy.com -liukebao.com -liulan.net -liulan7.net -liulanmi.com -liulanqi.com -liulanqi.net -liulantao.com -liulian.com -liuliangcanmou.com -liuliangdada.com -liulianggo.com -liuliangjie.com -liulianglf.com -liuliangzu.com -liulianqi123.com -liuliguo.com -liulin.cc -liulishuo.com -liulishuo.work -liulv.net -liumapp.com -liumeinet.com -liumh.com -liumuzulin.com -liumwei.org -liumx.com -liunian.info -liunianbanxia.com -liushidong.com -liusuping.com -liut.xyz -liuts.com -liuvv.com -liuwo.com -liuxianan.com -liuxiaoer.com -liuxiaofan.com -liuxing.com -liuxiting.com -liuxuchao.com -liuxue.com -liuxue114.com -liuxue360.com -liuxue51.net -liuxuegang.site -liuxuehksg.com -liuxuehr.com -liuxuekw.com -liuxuesmd.com -liuxuetown.com -liuxueyun.com -liuxx.com -liuyang.com -liuyangfcw.com -liuyanzhao.com -liuyifei.cc -liuzaoqi.com -liuzhixiang.com -liuzongyang.com -liuzuo.com -liuzy88.com -live-era.com -live-voip.com -live800.com -liveapp.ink -livechina.com -livecourse.com -liveinau.com -liveincy.com -liveme.com -livemediav.com -livemook.com -lives.one -livesone.net -livesupport24x7.com -liveuc.net -livevideostack.com -livotre.com -liwai.com -liweijia.com -liweiliang.com -liwenzhou.com -liwinon.com -liwuhy.com -liwumaoapp.com -liwushuo.com -lixcx.com -lixiang.com -lixiangshu.net -lixianhezi.com -lixianhua.com -lixiaocrm.com -lixiaolai.com -lixiaoskb.com -lixiaoyun.com -lixiaozhe.com -lixin.ee -lixinapp.com -lixinger.com -lixingguang.com -lixiphp.com -lixuan360.com -liyan365.com -liyangbit.com -liyanggroup.com -liyangliang.me -liyangtuopan.com -liyangweb.com -liyanmobi.com -liyaochao.com -liyingfei.com -liyp.cc -liyu8.com -liyuanheng.com -liyuanhospital.com -liyujn.com -lizaike.com -lizhaoblog.com -lizhaoxiang.com -lizhehaozhongyi.com -lizhenwang.com -lizhi.com -lizhi.fm -lizhi.io -lizhi110.com -lizhidaren.com -lizhifilm.com -lizhifm.com -lizhijitang.com -lizhilive.com -lizhiqiang.name -lizhiweike.com -lizhongyi.com -lizi.com -lizi.tw -lizilaw.com -liziqiche.com -lj-bank.com -lj-lighting.com -lj168.com -ljbao.net -ljcdn.com -ljia.com -ljia.net -ljimg.com -ljjgdj.org -ljlcd.com -ljmeng.site -ljsdk.com -ljt365.com -ljtx.com -ljwit.com -ljxww.com -ljyhtg.com -ljzfin.com -lk361.com -lkcash.com -lkcgyl.com -lkcoffee.com -lkcsgo.com -lkgame.com -lkgshq.com -lkgx.com -lkjujm.com -lkkbrand.com -lkkcdn.com -lkker.com -lkkued.com -lkmcdk.com -lkme.cc -lkong.com -lkong.net -lkssite.vip -lkszj.info -lkyou.com -ll-hao123.com -ll11.com -llbetter.com -llcat.tech -llever.com -llewan.com -llgjx.com -llgkm.com -llidc.com -lljgame.com -lljgxx.com -lljsq.net -llku.com -llqsq.com -lls.moe -llsapp.com -llscdn.com -llsops.com -llsserver.com -llssite.com -lltaohuaxiang.com -lltllt.com -lltoken.com -llttc.com -llxzu.com -llycloud.com -llzg.com -llzw888.com -lm284.com -lm335.com -lm685.com -lm7979.com -lm9999.com -lmacc.com -lmanmo.com -lmbang.com -lmbct.com -lmbest.com -lmbus.com -lmdk01.com -lmdouble.com -lmeee.com -lmf9.com -lmgouwu.com -lmjtgs.com -lmjx.net -lmlc.com -lmlym.com -lmm8.com -lmnsaas.com -lmsail.com -lmth2013.com -lmtw.com -lmubbs.com -lmwgame.com -lmwlhh.com -lmwljz.com -lmx7.com -lmxxxz.com -ln76yf.cfd -lnamphp.com -lncldapi.com -lncnw.com -lndao.com -lndhdx.com -lndwkj.com -lnemci.com -lnest.com -lnfw.net -lnfzb.com -lngche.com -lngqt.com -lngwyw.com -lngxdz.com -lnicc-dl.com -lnicp.com -lninfo.com -lnitec.com -lnjzxy.com -lnk0.com -lnkdata.com -lnlib.net -lnlotto.com -lnok.net -lnpjw.com -lnqwe.com -lnrcu.com -lnrsks.com -lnsent.com -lnsgczb.com -lnsyrjwz.com -lntenghui.com -lntvu.com -lntycp.com -lnyyzyxy.com -lnzikao.com -lnzsks.com -lnzy-edu.com -lo97.com -locatran.com -locez.com -lockfans.com -locklauncher.com -lockscreenimg.com -lockty.com -locnavi.com -locojoy.com -locoso.com -locoy.com -locoyposter.com -locren.com -loctek.com -locvps.com -locvps.net -lodashjs.com -loexu.com -loftcn.com -lofter.com -loftshine.com -logacg.com -logclub.com -loghao.com -logi-inno.com -logi.im -logicdsp.com -logiseasy.com -logo-emblem.com -logo123.net -logo33.com -logo520.com -logo888.com -logo9.net -logoaa.com -logobiaozhi.com -logodao.com -logodashi.com -logohhh.com -logoly.pro -logopay.com -logoquan.com -logoshe.com -logosheji.com -logosj.com -logowu.com -logozhan.com -logozhizuowang.com -logphp.com -logwing.com -logxu.com -lohaa.com -lohalink.com -lohaslady.com -lohasor.com -loho88.com -loj.ac -loji.com -loke123.com -lokyi.name -lol99.com -loldan.com -loldk.com -loldytt.org -loldytt.tv -lolgo.net -loli.cloud -loli.ee -loli.my -loli.wiki -loliloli.moe -loliloli.net -lolitawardrobe.com -loljy.com -lolkeng.com -lollipopo.com -lolmax.com -lolmf.com -lolmz.com -loltmall.com -lolyculture.net -lomoment.com -lomosky.com -lomu.me -loncent.com -loncin.com -loncinindustries.com -london9999.com -lonelystar.org -lonery.com -lonfu.org -long5.com -long7.com -longaa.com -longanlaw.com -longau.com -longbridgeapp.com -longcai.com -longcheer.com -longchen80.com -longcity.net -longclouds.com -longcore.com -longdear.com -longdezhu.com -longdian.com -longfajr.com -longfor.com -longfu360.com -longger.net -longguanjia.so -longhoo.net -longhu.net -longhua.net -longhuiren.com -longhuvip.com -longigroup.com -longjcun.com -longjiazuo.com -longjisz.com -longjunjiayuan.com -longk.com -longkui.site -longlinjiaoyu.com -longmaosoft.com -longmaoyouxifuwu.com -longmarchspace.com -longmeng.com -longmenhongfu.com -longnanke.com -longquan-baojian.com -longquecdn.com -longre.com -longruo.com -longsan.com -longshangrc.com -longsheng.com -longsheng988.com -longshine.com -longsok.com -longsto.com -longsys.com -longtaifoods.com -longtaiwj.com -longtanshuw.net -longtask.com -longtian.info -longtugame.com -longtuohy.com -longu.com -longwenedu.com -longwiki.org -longwin.org -longwisepr.com -longxi-tech.net -longxialjkashdiuhozhjksadlkfj.com -longxianwen.net -longxuan.ren -longygo.com -longyin.net -longyu.cc -longyucq.com -longyuedu.com -longyusheng.org -longzhu.com -longzhulive.com -longzu.com -lonlife.org -lontengsteel.com -lontiumsemi.com -lonway.net -loocall.com -loodd.com -looeen.com -looeo.com -looeoo.com -loohuo.com -look8.com -lookao.com -lookbaby.com -lookbravo.com -lookchem.com -lookcss.com -lookgame.com -looking-car.com -lookr.cc -looktm.com -looktmt.com -lookvin.com -loome.net -loonapp.com -loongnix.com -loongnix.org -loongshine.com -loongsin.com -loongson.org -loongsonclub.com -loongxy.com -looooker.com -loopjump.com -looquan.com -loorain.com -loovee.com -looyu.com -looyuoms.com -looyush.com -lopetech.net -lopkino.com -lopss.com -lorefree.com -loring.xyz -losking.com -lossyou.com -lostali.com -lostphp.com -lostsakura.com -lotevision.com -lotlab.org -lotour.com -lotour.net -lotpc.com -lotpen.com -lotsmv.com -lottery-sports.com -lotusair.net -lotusdata.com -lotuseed.com -lotut.com -loubobooo.com -louding.com -louge.ltd -louislivi.com -loukee.com -loukky.com -loulansheji.com -loulanwang.com -loupan.com -louruo.com -loushao.net -loushi12.com -lousj.com -lousw.com -louyue.com -lovcuty.com -love.tv -love21cn.com -love3721.com -love778.com -love85g.com -loveapp.com -lovebizhi.com -loveforvenus.com -lovehaimi.com -lovehhy.net -lovehifi.com -loveinhere.com -lovejavascript.com -lovejia.win -lovelacelee.com -loveliao.com -lovelive.tools -lovelixiang.com -lovemojito.com -lovengame.com -loveniwed.com -loveota.com -lovepd.com -loverili.com -lovesec.com -lovesoo.org -lovestu.com -loveteemo.com -loveuav.com -lovev.com -lovewith.me -lovewj.info -lovezhuoyou.com -lovfp.com -lovgiin.com -lovology.com -loxpo.com -loxue.com -loyalvalleycapital.com -loyar.com -loying.cc -loyo.cc -lpcheng.com -lpetl.com -lpllol.com -lppoll.com -lppz.com -lppzimg.com -lpq1688.com -lprcx.com -lprogram.site -lpswz.com -lpszl.com -lptiyu.com -lpxinjuhui.com -lpxt.com -lq-bm.com -lq328.com -lq5u.com -lqabr.com -lqbj.com -lqbj66.com -lqbyj.com -lqgrdj.com -lqhualang.com -lqjob88.com -lqpsj.com -lqqm.com -lqrcb.com -lqsdcc.com -lqxshop.com -lqyaopin.com -lqzh.me -lqzwdj.com -lr-amm.com -lr-link.com -lrc99.com -lrcb.net -lrcku.com -lrhold.net -lrist.com -lrkdzx.com -lrs001.com -lrscloud2.com -lrscloud3.com -lrswl.com -lrts.me -ls-gb.com -ls.link -ls0513.com -ls1018.com -ls666.com -lsbankchina.com -lsbchina.com -lsbin.com -lsbtly.com -lsccb.com -lsfyw.net -lsg3.com -lsgrandtheatre.com -lsgsgs.com -lsgw.com -lsgzn.com -lsh-cat.com -lshou.com -lsij3km.com -lsj.ac -lsjacg.com -lsjgcx.com -lsjkj.com -lsjlp8.com -lsjrcdn.com -lsjsm.com -lsjvps.com -lsjxck.com -lsjxww.com -lskejisoft.com -lskyf.com -lslkkyj.com -lsoos.com -lsplayer.com -lsqpay.com -lsrbs.net -lssggzy.com -lstazl.com -lstest.com -lsttapp.com -lsttnews.com -lsun.net -lsuoled.com -lsup.net -lsw315.com -lswld.com -lswlsw.com -lswqw.com -lsxz.org -lsywtc.com -lszj.com -lszjyj.com -lsznkyy.com -lszp.cc -lt-tree.com -lt-uv.com -lt3c.com -ltaaa.com -ltaaa.net -ltao.com -ltd.com -ltesting.net -ltfwzs.com -ltimg.net -ltnic.com -ltp-cloud.com -ltp.ai -ltplayer.com -ltsf.com -ltswxy.com -lttconn.com -lttvip.com -ltwkw.com -ltxjob.com -lty.fun -ltyears.com -ltzsjt.com -lu.com -lu35.com -lu4n.com -lua.ren -luaninfo.com -luanren.com -luastudio.net -luatos.com -lubandata.com -lubangd.com -lubanjianye.com -lubanlebiao.com -lubanpm.com -lubanshop.com -lubanso.com -lubansoft.com -lubanu.com -lubanway.com -lubiao.com -lubotv.com -luchinfo2.com -lucian.run -luciaz.me -luckeeinc.com -luckincoffee.co -luckincoffee.com -luckincoffeecdn.com -lucklnk.com -lucky286.com -lucky8k.com -luckyair.net -luckycoffee.com -luckyxp.net -lucode.net -lucoder.com -lucy365.com -lucydraw.com -ludashi.com -ludeqi.com -ludiban.com -ludou.org -ludoworld.net -ludu319.com -luedian.com -luexiao.com -luexpo.com -luezhi.com -lufangjia.com -lufax.com -lufaxcdn.com -luffycity.com -lufunds.com -lugangsoft.com -lugick.com -lugir.com -luhao198.com -luhehospital.com -lujiang56.com -lujianxin.com -lujingtao.com -lujun9972.win -lukachen.com -lukaplayer.com -lukiya.com -lukou.com -lukuanart.com -lul8.com -lulala.com -lulinux.com -lulu77.com -lulufind.com -lum114.com -lumai.net -lumajia.com -lumanman1688.com -lumiai.com -lumin.tech -lumingtec.com -lumiunited.com -lumyhouse.com -lunar2013.com -lunchong.com -lundao.pub -lunkuokeji.com -lunwendj.com -lunwengo.net -lunwenschool.com -lunwenstudy.com -lunwentianxia.com -lunwentong.com -lunwenxiazai.com -lunxia.com -lunzima.net -luobo020.com -luobo360.com -luobotou.org -luobowin8.com -luoboxia.com -luochen.com -luochenyl.com -luocs.cc -luodian.com -luodw.cc -luofan.net -luogu.org -luohanyu.cc -luohuedu.net -luointo.com -luojiji.com -luojilab.com -luokuang.com -luolai.com -luolai.tech -luomapan.com -luomi.com -luoohu.com -luooqi.com -luoqiu.com -luoqiuzw.com -luoqiuzww.com -luosi.com -luosimao.com -luotiannews.com -luotianyi.org -luotianyi.vc -luowave.com -luoxiang.com -luoxudong.com -luoxue.com -luoyechenfei.com -luoying66.com -luoyuanhang.com -luozhongxu.com -luozongle.com -lup2p.com -lupaworld.com -luqidong.com -lure123.com -lurefans.com -lurelogs.com -lurenshuwx.com -lusen.com -lushaojun.com -lushu.com -lusongsong.com -lussac.net -luster3ds.com -lustervision.com -lutao.com -luv66.com -luways.com -luwei.me -luweitech.com -luxe.co -luxee.com -luxemon.com -luxiangdong.com -luxianpo.com -luxiao.com -luxiwang.com -luxiyun.com -luxshare-ict.com -luxst.com -luxtarget.com -luxuqing.com -luxury-theme.com -luyanghui.com -luyinla.com -luyouqi.com -luyouwang.com -luyouwang.net -luyouxia.com -luyuanqj.com -luzexi.com -lv74.com -lv96.com -lvanol.com -lvbad.com -lvban365.com -lvbeijingtour.com -lvbenma.com -lvchanghuanbao.com -lvchayun.com -lvchehui.com -lvcheng.com -lvchicar.com -lvdao.fun -lvdhb.com -lvdoutang.com -lvfang.cc -lvfl.net -lvgou.com -lvguang.net -lvhuadai.com -lvjinsuo.com -lvkun.site -lvlian5.com -lvluowang.com -lvlvlvyou.com -lvmae.com -lvmama.com -lvmifo.com -lvnengliang.com -lvpai114.com -lvpin100.com -lvping.com -lvren.com -lvruan.com -lvrui.io -lvsanxia.com -lvse.com -lvsexitong.com -lvseyouxue.com -lvshedesign.com -lvshi567.com -lvshidaxia.com -lvshiguan.com -lvshiminglu.com -lvshou.com -lvshunfang.com -lvshunmuseum.org -lvsongguo.com -lvtds.com -lvtu.com -lvtu8.com -lvtudiandian.com -lvwan365.com -lvwang.com -lvwenhan.com -lvwmb.com -lvxing.net -lvye.com -lvye.org -lvyestudy.com -lvyetong.com -lvyidoor.com -lvyou521.com -lvyoubei.com -lvyougl.com -lvyouw.net -lvyuanpam.com -lvyuetravel.com -lvzheng.com -lw025.com -lw0591.com -lw0634.net -lw208.com -lw54.com -lwcj.com -lwd3699.com -lwdjc.com -lweasy.com -lwebapp.com -lwfengji.net -lwfjmj.com -lwgsw.com -lwguitar.com -lwgzc.com -lwhouse.com -lwinl.com -lwinst.com -lwksxs.com -lwkz.cc -lwlm.com -lwons.com -lwork.com -lwrcb.com -lwsay.com -lwurl.to -lwxgds.com -lwxs9.com -lwxstxt.com -zyou100.com -lx.pub -lx138.com -lx167.com -zyops.com -lx598.com -lxbbt.com -lxc1.com -lxcvc.com -lxdms.com -lxdns.com -lxdns.info -lxdns.net -lxdns.org -lxf.me -lxi.me -lxin007.com -lxjep.com -lxkj.site -lxlggo.com -lxlinux.net -lxs123.com -lxsales.com -lxsjm.com -lxtchina.com -lxw1234.com -lxway.com -lxway.net -lxws.net -lxx-inc.com -lxxm.com -lxybaike.com -lxyedu.com -lxyes.com -lxyl539.com -lxyllawfirm.com -ly-sky.com -ly.com -ly200-cdn.com -ly200.com -ly39zx.com -ly522.com -lyancafe.com -lyancoffee.com -lyangchuanbo.com -lyblog.net -lybol.com -lybtmy.com -lybus.com -lycheer.net -lycndq.com -lyd6688.com -lydct.com -lydezx.net -lydhb888.com -lydsy.com -lyecs.com -lyfeyaj.com -lyfff.com -lyfz.net -lyg.live -lyg001.com -lyg01.net -lyg321.com -lyg800.com -lygdfrcb.com -lygfdc.com -lyghi.com -lygmedia.com -lygnews.com -lygou.cc -lygrffw.com -lyhendry.com -lyhero.com -lyhomestayinn.com -lyhuadu.com -lyjiayi.com -lyjunshi.com -lyjxwl.com -lykxm.com -lylhkq.com -lymil.com -lynkco.com -lynlzqy.com -lynr.com -lyobs.com -lyou123.com -lypd.com -lypdl.com -lyps.net -lypyxx.com -lyrc.cc -lyric-robot.com -lysk.net -lysqzs.com -lysteel.com -lysy360.com -lythw.com -lytning.xyz -lytoufang.com -lytpw.com -lytq.com -lytuchuang10.com -lytuchuang12.com -lytuchuang13.com -lytuchuang17.com -lytuchuang18.com -lytuchuang2.com -lytuchuang3.com -lytuchuang4.com -lytuchuang7.com -lyunweb.com -lyvnee.com -lywenlv.com -lywf.me -lywww.com -lywxww.com -lyxyxx.com -lyy99.com -lyyapp.com -lyz810.com -lyzfgjj.com -lyzhujia.com -lyzp100.com -lz310.com -lz520.net -lzabcd.com -lzane.com -lzaru.com -lzbank.com -lzc369.com -lzcbnews.com -lzccb.com -lzeweb.com -lzfcjys.com -lzfjq.com -lzflqc.com -lzhongdian.com -lzhpo.com -lzhs.com -lzhygame.com -lzjdbjc.com -lzjoy.com -lzlj.com -lzmoyin.com -lzmy123.com -lzsgmf.com -lzsmedia.com -lzsq.net -lztv.tv -lztvnet.com -lztx123.com -lzvw.com -lzw.me -lzyun.vip -lzzg365.com -lzzyad.com -lzzzf.com -m-finder.com -m-rainbow.com -m.biz -zyoogame.com -zyoffice.com -m0.hk -m096.com -m1.run -m1315.com -m176.net -m18.com -m1905.com -m1910.com -m1938.com -m1book.com -m1ok.com -m1page.com -m1world.com -m1xia.com -m2ez.com -m2mzy.com -m3guo.com -m448.com -m5bn.com -m5stack.com -m6.run -m6go.com -m78.co -m8.com -m818.com -m8cool.com -m9.run -m90cc.com -m937.com -ma-china.com -ma.run -ma3office.com -ma3you.com -maa.plus -mabangerp.com -mabibook.com -mabiji.com -mabotech.com -mac189.com -mac69.com -mac89.com -macabc.com -macaihong.net -macapp.so -macapp8.com -macappbox.com -macappx.com -macat.vip -macauinternationalclubbingshow.com -macaumonthly.net -macbang.net -macchiato.xyz -maccura.com -macdaxue.com -machaojin.com -machenike.com -machine-information.com -machine-visions.com -machine35.com -machine365.com -machunjie.com -macjb.com -mackentan.com -mackext.com -macno1.com -macocn.com -macoshome.com -macpeers.com -macrosan.com -macrosilicon.com -macrounion.com -macrowing.com -macrr.com -macsc.com -macshuo.com -macsky.net -macv.com -macw.com -macxf.com -macxin.com -macxz.com -macz.com -maczd.com -maczhi.com -maczj.com -mad-infeed.jp -madaicaifu.com -madailicai.com -made-in-china.com -madefuns.com -madeqr.com -madio.net -madisonboom.com -madmalls.com -madouka.com -madouvip.com -madserving.com -maemo.cc -mafengs.com -mafengvwo.com -mafengwo.com -mafengwo.net -maff.com -mag10000.com -mag998.com -magcloud.net -magedu.com -magentochina.org -magewell.com -magi.com -magicax.com -magicdata.io -magicleaders.com -magicnetmall.com -magicwatchface.com -magicwinmail.com -magook.com -magtechjournal.com -maguang.net -magvision.com -mahjongai.net -mahjongcup.com -mahjongcup.net -mahoupao.com -mahoupao.net -mahua.com -mahuarili.com -mahuatalk.com -mai.com -maianhao.com -maibaokeji.com -maibuymai.com -maibw.net -maichawang.com -maiche.com -maiche168.com -maichuang.net -maicuole.com -maidangao.com -maidelong.com -maidengju.net -maidi.me -maidige.com -maidixun.com -maidoc.com -maidou.com -maidrom.net -maiduo.com -maifjb.com -maigoo.com -maihaoche.com -maijia.com -maijiaba.com -maijiakan.com -maijichuang.net -mail-qq.com -mail163.com -mail4399.com -maila88.com -mailbusinfo.com -mailehudong.com -mailejifen.com -mailpanda.com -mailshanguo.com -maimaimaiw.com -maimemo.com -maimemostatus.com -maimiaotech.com -maimn.com -mainaer.com -maine1688.com -mainlandip.com -mainone.com -maintao.com -mainwww.com -maipu.com -mairoot.com -mairuan.com -maisanqi.com -maiscrm.com -maishebei.com -maishitv.com -maishou88.com -maishoudang.com -maishoumm.com -maisorn.com -maisry.net -maisu.vip -maisucai.com -maitao.com -maitaowang.com -maitianquan.com -maitix.com -maitix.net -maitu.cc -maituan.com -maitube.com -maiwe.com -maiweikj.com -maixhub.com -maixiaba.com -maixuewen.com -maiya91.com -maiyanju.com -maiyaole.com -maizhi.com -maiziedu.com -maizipo.com -maizuo.com -majia99.com -majiamen.com -majianwei.com -major-epoch.com -majorsec.com -majsoul.com -maka.im -maka.mobi -makaevent.com -makaidong.com -makaiqian.com -makeapp.co -makecn.net -makedie.me -makeding.com -makefang.com -makefont.com -makelie.com -makelove.la -makepic.net -makepolo.com -makepolo.net -maker8.com -makerbio.com -makerfun.org -maketion.com -makeweiyuan.com -makuwang.com -malabeibei.com -malagis.com -malait.com -maldiveszh.com -maldun.com -males120.com -maliquankai.com -mall-builder.com -mall.com -mallchina.net -mallcoo.net -mallhaha.com -mallocfree.com -mallshow.net -mallstaroa.com -mallzhe.com -mallzto.com -malmam.com -malong.com -maltm.com -malu.me -mama100.com -mamacn.com -mamahao.com -mamahuo.com -mamcharge.com -mamecn.com -mamicode.com -mamilist.com -mamioo.com -mamoe.net -mamsh.org -man6.org -managershare.com -manben.com -manboker.com -mandao-tech.com -mandarinedu.org -mandarinhouse.com -mandian.com -mandiankan.com -mandudu.com -manduhu.com -manduwu.com -manew.com -manewvr.com -manfen.net -mangafuna.xyz -mangafunc.fun -mangg.com -mangg.net -mangguo.com -mangguo.org -mangguo168.com -mangguonews.com -mangocity.com -mangoebike.com -mangogame.com -mangomob.net -mangren.com -mangrovetreesanya.com -mangtuhuyu.com -manguo42.com -mangxia.com -mangxuewang.com -mangzitian.com -manhua1.com -manhua101.com -manhua166.com -manhua188.com -manhua365.com -manhua456.com -manhuacheng.com -manhuadaohang.com -manhualang.com -manhuama.net -manhuang.org -manhuapi.com -manhuaren.com -manhuatai.com -manhuayang.com -manibnb.com -maninmusic.com -manjiwang.com -manlinggame.com -manlongye.com -manluoni.com -manluotuo.com -manmanapp.com -manmanbuy.com -manmango.com -manmankan.com -manmu.net -mannkit.com -manogk.com -manongdao.com -manonggu.com -manongjc.com -manongzj.com -manosp.com -manpianyi.com -manrong.win -manshitea.com -mantianfei.net -mantusy.com -manulife-sinochem.com -manwuxian123.com -manxiu-law.com -manyibaojie.vip -manylaw.com -manyoo.net -manyou.com -manyoujing.net -manyupay.com -manzhan.com -manzj.net -manzuo.com -mao-shen.com -mao.bz -mao.li -maobotv.com -maobugames.com -maodou.com -maodouapp.com -maoercdn.com -maoflag.net -maogepingbeauty.com -maogp.com -maogumaogu.com -maogx.win -maoha.com -maohaha.com -maohetao.com -maoken.com -maoln.com -maomaoche.com -maomaojie.com -maomaoxue.com -maopuyouxi.com -maoqitian.com -maoqiumail.com -maoshimei.com -maoshu520.com -maotaizuichen.com -maotuying.com -maoxinhang.com -maoyachen.com -maoyan.com -maoyi.biz -maoyia.com -maoyidi.com -maoyigu.com -maoyingaipu.com -maoyiwang.com -maoyun.com -maoyuncloud.com -maoyundns.com -maozhuar.com -maozhuashow.com -map456.net -mapabc.com -mapbar.com -mapeng.net -mapgis.com -mapks.com -maple-game.com -maplef.net -mapmapping.com -mappn.com -maqingbo.com -maqingxi.com -maqinnews.com -mararun.com -marioall.com -marioin.com -markdown.xyz -markdream.com -marketingconv.com -marketreportchina.com -markhoo.com -markiapp.com -markjour.com -markmall.com -markmiao.com -marknum.com -markorchem.com -marksmile.com -marmot-cloud.com -maro6.com -marry5.com -marstor.com -marstv.com -martech365.com -martincl2.me -maryek.net -mas-omkj.com -mas10010.com -mas300275.com -masadora.jp -masadora.net -mascaw.com -masdjy.com -masej.com -mashang98.com -mashangmai.com -mashangshijie.com -mashiro.me -masjinquan.com -maspiece.com -mass-evo.com -massclouds.com -masscrunch.com -massygxx.net -mastergo.com -masterlab.vip -mastersay.com -mastersim123.com -mastertimes.net -mastodonhub.com -mastudio.org -masyi.com -mat-rev.com -mat-test.com -matao.com -matchupexpo.com -matchvs.com -mateair.com -mater-rep.com -math168.com -mathequality.com -mathfan.com -mathoe.com -mathpretty.com -mati.hk -maticsoft.com -matlabsky.com -matocloud.com -matongxue.com -matools.com -matpool.com -matpool.net -matrixerse.com -matt33.com -mattge.com -mattressmachinery.net -mauu.me -mawei.live -mawentao.com -max-c.com -max232.net -maxfor-tool.com -maxgj.net -maxhub.com -maxhub.vip -maxiang.info -maxiang.io -maxiaobang.com -maxitas.com -maxjia.com -maxket.com -maxlu.net -maxok.com -maxpda.com -maxreader.la -maxreader.net -maxscend.com -maxthon.com -maxthonimg.com -maxuscloud.com -maxwealthfund.com -maxwi.com -maxws.com -maxxipoint.com -may.ltd -maya09.com -mayahuashi.com -mayatu.com -maybe2016.com -maybeiwill.me -maycur.com -maydeal.com -mayi.com -mayiangel.com -mayicms.com -mayihr.com -mayima.net -mayishebao.com -mayishoubei.com -mayitek.com -mayitxt.com -mayiui.com -mayiw.com -mayiwenku.com -mayiyx.com -mayizhuanlan.com -mayou18.com -mayshijia.com -mayswind.net -maywant.com -maywonenergy.com -mazakii.com -mazc.org -mazey.net -mazhan.com -mazida.com -mb-go.com -mb5u.com -mbabao.com -mbabycare.com -mbachina.com -mbadashi.com -mbajyz.com -mbalib.com -mbalunwen.net -mbanggo.com -mbaobao.com -mbaoxian.net -mbazl.com -mbb0760.com -mbcloud.com -mbgo.com -mbian.com -mbinary.xyz -mbldbb.com -mbokee.com -mbsifu.com -mbsky.com -mbxt.net -mc-ccpit.com -mc-dj.com -mc-test.com -mc-xborder.com -mc26.com -mc361.com -mc91.com -mcake.com -mcarding.com -mcbang.com -mcbbs.net -mcbeam.pro -mccbim.com -mcchcdn.com -mcchina.com -mcchou.com -mcd.cc -mcdchina.net -mcdsusan.com -mcdusiv.com -mcdvisa.com -mcearnmore.com -mcfsji.com -mcfun.tv -mchat.com -mchifi.com -mcidc.net -mcjd.net -mckuai.com -mcmssc.com -mcooks.com -mcool.com -mcpemaster.com -mcpmaid.com -mcqyy.com -mcsafebox.com -mcu-home.com -mcufan.com -mcuisp.com -mcusky.com -mcuzone.com -mcuzx.net -mcwshop.com -mcx666.com -mcyhfl.com -mczyz.com -mdaxue.com -mdbimg.com -mdckj.com -mdeasydiagnosis.com -mdeditor.com -mdeer.com -mdfull.com -mdhjs.com -mditie.com -mdj2y.com -mdjyadi.com -mdl.ink -mdmmm.com -mdnice.com -mdpda.com -mdsmos.com -mdsyzx.com -mdtu.com -mdvdns.com -mdvoo.com -mdy-edu.com -mdybk.com -mdydt.net -mdyseducation.org -mdzgjx.com -me-city.com -me1.ltd -me361.com -me4399.com -me8gs.app -meadin.com -meaninggame.com -meazhi.com -meb.com -meban.cc -mebtf.com -mec027.com -mechatim.com -mechina.org -mechr.com -mechrevo.com -mecoxlane.com -med-water.com -med126.com -med66.com -meda.cc -medeming.com -mediatek.com -mediav.com -mediaxinan.com -medicexam.net -mediecogroup.com -medimg.org -meditrusthealth.com -mediumin.net -medlinker.com -medlinker.net -medme.net -medmeeting.org -medproad.com -medstarcorp.com -medtion.com -meechao.com -meegoe.com -meeket.com -meet99.com -meetfave.com -meethall.com -meeting666.com -meetingmeet.com -meetlawyer.com -meetsite.com -meetuvip.com -meetwhale.com -meetyoumuseum.com -meetzoom.net -meeuapp.net -megaemoji.com -megajoy.com -megobike.com -megomap.com -megou8.com -meguo.com -megvii.com -mei-shu.com -mei.com -mei1.com -mei1.info -meia.me -meianjuwang.com -meiaoju.com -meibai14.com -meibg.com -meican.com -meicanstatic.com -meichibao.com -meichuanmei.com -meidaojia.com -meidebi.com -meideng.net -meidunyipin.com -meidusacloud.com -meierbei.com -meifang.com -meifang8.com -meigeinc.com -meigongla.com -meigongyun.com -meiguanjia.net -meiguiwxw.com -meiguo-qianzheng.com -meiguoxiaoxue.com -meiguoxq.com -meiguozhuji.com -meigushe.com -meih5.com -meih5.net -meihaotoutiao.com -meihaoxueyuan.com -meiheups.com -meihouyun.com -meihu99.com -meihua.info -meihuainfo.com -meihuboyue.com -meihudong.com -meihutong.com -meijia66.com -meijiacun.com -meijiaedu.com -meijialove.com -meijiedaka.com -meijiehang.com -meijiehezi.com -meijieu.com -meijiexia.com -meijiezaixian.com -meijiezaixian.net -meijingjie.com -meijiu.com -meijufans.com -meijukan.com -meijuniao.net -meijuq.com -meijust.com -meijutt.com -meijutt.tv -meijuxia.com -meijuzj.com -meika360.com -meikankeji.com -meike-shoes.com -meikeda.net -meikr.com -meiktv.com -meiku123.com -meilecui.com -meili-inc.com -meilibaobao.com -meilidongnanya.com -meilijia.com -meiling.com -meilishuo.com -meilishuo.net -meilisite.com -meiliwan.com -meiliworks.com -meiliwu.com -meilunmeijia.com -meilvtong.com -meimeidu.com -meimeifa.com -meimeio.com -meimingteng.com -meingrace.com -meiniang3.lol -meiniang323.mom -meiniang349.mom -meinuo123.com -meinv.com -meionetech.com -meip0.me -meip4.me -meipai.com -meipian.me -meipian2.com -meipuapp.com -meiqia.com -meiqiausercontent.com -meiqinedu.com -meiqiu.me -meirenchong.com -meiritv.net -meiriyiwen.com -meirong.net -meirongshanghai.com -meisaitu.com -meishai.com -meishe-app.com -meisheapp.com -meishesdk.com -meishi.cc -meishi13.com -meishichina.com -meishij.net -meishijr.com -meishilife.com -meishiqin.com -meishiwangluo.com -meishow.com -meishubao.com -meishuquan.net -meisubq.com -meisupic.com -meitangdehulu.com -meitegou.com -meitianhui.com -meitu.com -meituan.com -meituan.net -meitubase.com -meitudata.com -meitumobile.com -meitun.com -meituncdn.com -meitushop.com -meitustat.com -meituyun.com -meiweis.com -meiweishudan.com -meiwenting.com -meixie.com -meixiong5.com -meiyaapp.com -meiyan.com -meiyedana.com -meiyi.ai -meiyinji.vip -meiyixia.com -meiyixinrui.com -meiyou.com -meiyue.com -meiyuwang.com -meizhanggui.cc -meizhou.com -meizhou.net -meizitu.net -meizu.com -zymxp.com -meizu.net -meke8.com -melanecholy.com -meldingcloud.com -melodyhome.com -melote.com -melove.net -memacx.com -memewan.com -memeyin.com -memeyule.com -memorieslab.com -memoryhere.com -mems.me -memsahibgin.com -memsconsulting.com -memseminar.com -memsky.com -memuu.com -men.ci -menchuang.biz -meng2u.com -meng3.com -meng800.com -mengat.com -mengchenghui.com -mengdian.com -mengdie.com -mengdodo.com -menggang.com -menghunli.com -mengjiagames.com -mengjianjiemeng.com -mengjiayouxi.com -mengkang.net -menglan.com -menglangroup.com -menglechong.com -menglegame.com -mengma.com -mengmax.fun -mengniang.tv -mengniu99.com -mengqiuju.com -mengsang.com -mengso.com -mengte.online -mengtian.com -mengtuchuang.xyz -mengtuiapp.com -mengwuji.net -mengxi.com -mengxiangeka.com -mengxintianxia.com -mengyou.org -mengyuangu.com -mengyuanshucheng.com -mengyuzhe.com -mengzhou.com -mengzhuangxiu.com -mengzhuboke.com -mengzone.com -menksoft.com -menpiao.com -menqiu.com -mentrends.com -menubarx.app -menwee.com -menww.com -menwww.com -menxue.com -menyuannews.com -meovse.com -meow.plus -meowcat.org -mepai.me -mepcec.com -meplayplay.com -meraki.life -mercedes-benzarena.com -mereith.com -mergeek.com -merklechina.com -mescroll.com -meshiot.com -mesince.com -mesowe.com -mesresearch.com -mesule.com -met.red -met169.com -metacd.com -metal-min.com -metalchina.com -metalrevolution.com -metasecurities.com -metax-tech.com -meten.com -meteni.com -metenk12.com -metersbonwe.com -metin520.com -metlifezeng.com -metnews.net -metro-3d.com -metroer.com -metrofastpass.com -metstr.com -metword.co -mew.fun -mewhoo.com -mexue.com -mexxum.com -meyet.net -mezw.com -mf-y.com -mf8.biz -mf999.com -mfbgz.com -mfbuluo.com -mfcad.com -mfcad.net -mfcpx.com -mfcteda.com -mfdzqj.com -mfexcel.com -mfgchn.com -mfisp.com -mfjgsrad.cfd -mfjxcn.com -mfk.com -mfpad.com -mfpjrj.com -mfqqx.com -mfqyw.com -mftianshanam.com -mftvideo.com -mfzdb.com -mfzxcs.com -mg-cdn.com -mg-pen.com -mg21.com -mg3721.com -mgc-games.com -mgd5.com -mgdzz.com -mgenware.com -mgff.com -mgjianshe.com -mgkj.vip -mgl9.com -mglip.com -mgmovie.net -mgmqq.net -mgogo.com -zymreal.com -mgpyh.com -mgsdk.com -mgslb.com -mgtv.com -mgw999.com -mgwxw.com -mgxzsy.com -mgyxw.net -mgyyw.com -mgzf.com -mgzgmyzz.com -mgzxzs.com -mh1234.com -mh456.com -mh51.com -mhacn.com -mhaoma.com -mhbras.com -mhcdkey.com -mhealth100.com -mhhf.net -mhi-ac.com -mhimg.com -mhito.net -mhpdf.com -mhrsrc.com -mhsf.com -mht.la -mhtclub.com -mhtml5.com -mhv2.net -mhwck.com -mhwmm.com -mhwy2.com -mhxin.com -mhxk.com -mhxqiu.com -mhxzhkl.com -mhyun.net -mhzd.cc -mhzd.net -mi-ae.net -mi-dun.com -mi-fds.com -mi-fds.net -mi-idc.com -mi-img.com -mi.com -mi1.cc -mia.com -miaibox.com -mian4.net -mian520.com -mianbao.com -mianbaoimg.com -mianbaotou.com -miandanbx.com -miandanshidai.com -mianfeiic.com -mianfeiwendang.com -mianfeiziti.com -mianhuatang.cc -mianhuatang.la -mianjue.com -mianshi365.com -mianshigee.com -mianshui365.com -mianwai.com -mianxiangxue.com -mianyazulin.com -miao-lang.com -miaobe.com -miaobolive.com -miaoche.com -miaodiyun.com -miaogu.com -miaohealth.net -miaokaikeji.com -miaokaiyun.com -miaokee.com -miaole1024.com -miaomaicar.com -miaomiaoxue.com -miaomiaoz.com -miaomiaozhe.com -miaomore.com -miaopai.com -miaoshou.com -miaoshou.net -miaoshoucdn.com -miaoshuwu.com -miaoshuzhai.com -miaoshuzhai.net -miaostreet.com -miaov.com -miaoweijianfei.com -miaowutech.com -miaoxiazai.com -miaozao.com -miaozhen.com -miaozhun.com -miaxis.net -miazhiyou.com -mibaoxian.com -mibimibi.com -mibokids.com -mibugs.com -mic-s.com -micad.org -micai.com -micaihu.net -micaiying.com -micblo.com -michael-j.net -michaelapp.com -michong.com -michplay.com -miclle.com -mico.io -micrenzheng.com -micro-bee.com -micro-servs.com -micro-x.net -microad-cn.com -microad.jp -microadinc.com -microbell.com -microbt.com -microcai.org -microcardio.com -microdiag.com -microdreams.com -microfotos.com -microlensyh.com -microlz.com -microrui.net -microstern.com -microvcard.com -microvirt.com -microvoip.com -microwear.com -microwu.com -microyan.com -microzuji.com -micstatic.com -micw.com -midaapi.com -midadata.com -midainc.com -midasbuy.com -midea.com -zymkcdn.com -midicn.com -midifan.com -midifan.org -midiyinyue.com -midlele.com -midongtech.com -miduiedu.com -midukanshu.com -miduoke.net -midureader.com -midust.com -midway.run -midwayjs.org -miecod.com -miemie.la -miercn.com -mieseng.com -mieshu.net -mieyisi.com -mifangba.com -mifanli.com -mifanlicdn.com -mifei.com -mifen517.com -mifengchengshi.com -mifengv.com -mifengvv.com -mifengxiuchang.com -mifengzhibo.com -mifispark.com -mifwl.com -migame.vip -mige.tv -migelab.com -migroom.com -migucloud.com -migufun.com -migugu.com -migutv.com -miguvideo.com -miguyu.com -mihan.cc -mihanw.com -mihayo.com -mihayou.com -mihayou.fun -mihoyo.com -mihoyocg.com -mihoyogift.com -mihoyomall.com -mihtool.com -mihua.net -mihuashi.com -mihui365.com -mihuwa.com -miicp.com -miidc.com -miidii.tech -miidim.com -miiee.com -miinaa.com -miinsurtech.com -miit-icdc.org -mij.cc -mijiadns.com -mijian360.com -mijiannet.com -mijiayoupin.com -mijisou.com -mijwed.com -mika123.com -mikannovel.com -mike-x.com -mikechen.cc -mikecrm.com -mikesent-awareness-02.com -mikesent.net -mikewootc.com -mikeyouxi.com -mikger.com -miko007.com -mikoshu.me -miku.ink -miku4567.com -mikuac.com -mikublog.com -mikucdn.com -mikuclub.fun -milaizu2023.com -milanvip.com -mileage.vip -milejia.com -milfuns.com -miliantech.com -miliao.com -milido.vip -milihua.com -milike.com -miliol.com -miliol.org -milipictures.com -miliyo.com -milkjpg.com -milkplayer.com -milliway-ic.com -millnovel.com -milnews.com -milo-star.com -miloktv.com -miloli.info -milu.com -milvzn.com -mima.club -mimgame.com -mimi456.com -mimi518.com -mimidi.com -mimiteng.com -mimixiaoke.com -mimiyc.net -mimo51.com -mimoprint.com -mimouse.net -mimvp.com -minapp.com -mincache.com -mincdn.com -mincoder.com -mindai.com -mindcherish.com -mindhave.com -mindmanager.cc -mindmanagerchina.com -mindmapper.cc -mindmeters.com -mindmm.com -mindpin.com -mindray.com -minecraftxz.com -mineplugin.org -minerfun.com -minerhome.com -minesage.com -minewtech.com -minfengtianfu.com -mingbianji.com -mingcalc.com -mingchaoonline.com -mingchaoyouxi.com -mingcloud.net -mingczh.com -mingda.net -mingdanwang.com -mingdao.com -mingdao.net -mingdao8.com -mingdaocloud.com -mingdongman.com -mingfengtang.com -mingfucdn.com -minghuatang.com -mingin.com -mingjian.com -mingjinglu.com -minglian.com -mingmen-tech.com -mingpian.biz -mingren888.com -mingrenteahouse.com -mingrenxiang.com -mingricctv.com -mingshi51.com -mingshiedu.com -mingshijt.com -mingsoft.net -mingstar.net -mingtaokeji.com -mingtian.com -mingxf.com -mingxiaodai.com -mingxing.com -mingxingku.com -mingxinglai.com -mingyannet.com -mingyantong.com -mingyaohui.com -mingyaweb.com -mingyi.com -mingyihui.net -mingyuanfund.com -mingyuanyun.com -mingyueqingfengshe.com -mingzhuxiaoshuo.com -minhang.cc -minhangshi.com -minhow.com -mini-audio.com -mini-program.net -miniadx.com -miniaixue.com -miniappss.com -miniblink.net -minidaxue.com -minidso.com -minieye.cc -minieye.tech -minigui.com -minigui.org -minihaowan.com -miniluck.com -mininglamp.com -miniprogramadmin.com -minisforum.com -miniso.com -minisoyo.com -ministudy.com -minitiao.com -minitos.com -miniui.com -minixiazai.com -miniyounger.com -minor-tech.com -minqingguancha.com -minra.com -minrank.com -minretail.com -minshengec.com -mintaibank.com -mintaylor.com -mintmuse.com -mintrust.com -mints-id.com -minunix.com -minxindai.com -minxing365.com -minxue.net -minyunit.cool -minzhifu.com -minzu56.net -miospay.com -miot-spec.org -mipa.fun -mipacc.com -mipang.com -mipangwang.com -mipay.com -mipcdn.com -mipengine.org -miplus.cloud -mipujia.com -miquapp.com -mir4399.com -miraclevision.net -mirgaga.net -mirmzhy.com -misaka.center -misall.com -miscd.com -mishangkeji.com -mishuhome.com -misiiyoo.com -miso-lab.com -mispos.cc -missevan.com -missfresh.net -missjia.net -missku.com -misstar.com -missyuan.net -misuland.com -mitang.com -mitangbao.com -mitaozhibo.org -miteno.com -miteo.net -mitiplus.com -mittrchina.com -miui.com -miuiver.com -miusi.co -miutour.com -miutrip.com -miwifi.com -mix.moe -mixbao.com -mixcapp.com -mixdo.net -mixian88.com -mixiaojin.com -mixin.cc -mixiong.tv -mixrnb.com -mixunds.com -mixvvideo.com -mixwing.com -miyabaobei.com -miyaboke.com -miyachat.com -miyanlife.com -miyapay.com -miyatech.com -miyoushe.com -miyouu.com -miyuangz.com -miyupu.com -miyushu.com -mizhe.com -mizhimedia.com -mizhizbb.vip -mizhizbf.vip -mizhuanba.com -mizuiren.com -mj85.com -mjasoft.com -mjceo.com -mjh5.com -mjia.cc -mjjcn.com -mjjq.com -mjlong.com -mjlsh.com -mjmj8.net -mjmjm.com -mjmobi.com -mjoys.com -mjrui.com -mjtom.com -mjxhgdl.com -mjyun.com -mjyx.com -mjzj.com -mk-yiliao.com -mk2048.com -mkaq.org -mkb0898.com -mkf.com -mkjump.com -mklimg.com -mkshell.com -mksrvdns.com -mkstone.club -mktcreator.com -mktdatatech.com -mktzr.com -mkvcn.com -mkwhat.com -mkzcdn.com -mkzhan.com -mkzhou.com -mkzoo.com -ml-kq.com -mlairport.com -mlgj.com -mlibaba.com -mlinks.cc -mlito.com -mlj130.com -mlj194.com -mlj36.com -mlj55.com -mljr.com -mlkmba.com -mlkxshop.com -mlmcms.com -mlnk.me -mlnrz.com -mlnsoft.net -mlocso.com -mlog.club -mlogcn.com -mlrzsj.com -mlsbmw.com -mlsub.net -mlt01.com -mlwanwan.com -mlwed.com -mlwplus.com -mlwu.net -mlxks.com -mlycdn.com -mlyfc.net -mlyfcyy.com -mlzcn.com -mm.com -mm111.net -mm131.kim -mm138.com -mm2hservices.com -mm52.com -mm52.net -mm8mm8.com -mmall.com -mmaqa.com -mmarket.com -mmarket6.com -mmbang.com -mmbang.info -mmbang.net -mmbao.com -mmbest.com -mmbjq.com -mmbread.com -mmc-data.com -mmcos.com -mmcsgo.com -mmfad.com -mmfang.cc -mmfi.net -mmfj.com -mmgl.net -mmgogo.com -mmhktv.com -mmhygame.com -mmi-shanghai.com -mmia.com -mmim8.com -mmimm.com -mmkkiivv.com -mmm.io -mmmmmmm.com -mmmtech.com -mmods.site -mmosite.com -mmscoo.com -mmsfw.com -mmsk.com -mmstat.com -mmtrix.com -mmtrixcnc.com -mmtrixcnet.com -mmuaa.com -mmww.com -mmxiaowu.com -mmy.la -mmybt.com -mmycdn.com -mmyfilm.com -mmzcn.com -mmzh.com -mn-soft.com -mnancheng.com -mnbvtgv.com -mndqlib.net -mng0303.com -mnihyc.com -mnjj.group -mnkan.com -mnpz8.com -mnwww.com -mnxz8.com -mo-yu.com -mo298.com -mo2g.com -mo9.com -moage.com -mob.com -mob55.com -mobaders.com -mobaibox.com -moban.com -mobanhao.com -mobanjing.com -mobanku.com -mobanlane.com -mobanma.com -mobantiankong.com -mobantianxia.com -mobantu.com -mobanwang.com -mobartsgame.com -mobawan.com -mobayke.com -mobayx.com -mobcent.com -mobcloud.mobi -mobdna.com -mobeehome.com -mobgi.com -mobgroupbuy.com -mobiapp.cloud -mobibao.com -mobibrw.com -mobike.com -mobile-ease.com -mobileanjian.com -mobilebone.org -mobiledissector.com -mobilegamebase.com -mobilegamecdn.com -mobilelegends.com -mobileppp.com -mobiletrain.org -mobileztgame.com -mobiw.com -mobjz.com -mobkeeper.com -mobking.biz -mobmore.com -mobo168.com -moboage.com -moboplayer.com -mobotap.com -mobring.co -mobrtb.com -mobsurl.com -mobtou.com -mobvoi.com -mocache.com -mocartoon.com -mochai.store -mochouu.com -mockingbot.com -mockplus.com -mockuai.com -mocn.cc -moco-mall.com -mocuz.com -modao.cc -modao.com -modao.io -modb.cc -modb.pro -modeng178.com -modernsky.com -modernweekly.com -modian.com -modianverse.com -modooplay.com -modulesocean.com -moduseo.com -modxz.com -moe.im -moe123.com -moe123.net -moe123.org -moe321.com -moeblog.vip -moeclub.org -moecoder.com -moeelf.com -moefactory.com -moefantasy.com -moefou.org -moegirl.org -moehu.org -moehui.com -moeid.com -moejam.com -moejp.com -moeking.me -moeli123.com -moemiao.net -moerkeji.net -moerlong.com -moetu.org -moetuji.com -moeub.com -moew.xyz -moeyue.com -moezu.com -moezx.cc -mofa.com -mofang.com -mofang.jp -mofangge.com -mofanghr.com -mofangshe.com -mofangyu.com -mofavideo.com -mofazhu.com -moffettai.com -mofile.com -mofishgames.com -mofoun.com -mofunenglish.com -mogoedit.com -mogohd.com -mogoo.com -mogoroom.com -mogu.com -mogu.io -mogua.co -mogubill.com -mogucdn.com -moguf.com -mogujia.com -mogujie.com -mogujie.org -mogumiao.com -moguproxy.com -mogustore.com -mogutong.com -moguupd5.com -moguv.com -moguvet.com -moguyun.com -moh.cc -moh7.com -moh8.com -mohangkeji.net -moheqq.com -mohou.com -mohu.org -moihu.com -moimg.net -moith.com -moji.com -moji001.com -moji002.com -mojicb.com -mojicdn.com -mojichina.com -mojidict.com -mojieai.com -mojitest.com -mojocube.com -mokahr.com -mokalady.com -mokaoba.com -mokatyper.com -mokayuedu.com -moko.cc -molbase.com -molbase.net -moleecel.com -molegu.com -molerose.com -molibaike.com -molibiancheng.com -molie.com -molihe.cc -molimoli.tech -molinsoft.com -moliplayer.com -moliqiji.com -molixiangce.com -molizm.com -molloc.com -momhui.com -momiji.fun -momishi.com -momoapk.com -momobako.com -momocdn.com -momooyo.com -momoshifu.com -momotn.com -momoyu.com -momoyuyouxi.com -momself.club -momzs.com -moneydata.hk -moneygz.com -moneyslow.com -monhun.fun -monidai.com -monknow.com -monph.com -monseng.com -monsooncvs.com -monsterlin.com -montage-tech.com -monternet.com -montnets.com -monv.com -monxin.com -moocollege.com -mooctest.net -moodmoon.com -moodoon.com -moogos.com -moojing.com -moojnn.com -moolsun.com -moomoo.com -moonbasa.com -moonbitlang.com -mooncell.wiki -moonfly.net -mooninbox.com -moonjer.com -moonlian.com -moonsec.com -moontc.com -moonton.com -moooc.cc -mooooc.com -moore.live -moore.ren -moore8.com -moorecat.com -mooreelite.com -mooreiot.com -mooreren.com -moorext.com -moowo.com -mop.com -mopaas.com -mopaasapp.com -mopair-erm.net -mopcn.com -mopei8.com -moper.me -mopicer.com -mopoint.com -mopsky.com -mopxz.com -moqifei.com -moqikaka.com -moqilin.net -moqing.com -moqipobing.com -moqu8.com -moquu.com -morancoo.com -morechinese.cc -moreck.com -morefood.com -moregy.com -moreless.io -morequick.net -moresing.com -moretickets.com -morevfx.com -morewis.com -morewiscloud.com -morganstanleyhuaxin.com -morigames.com -morihei.net -morketing.com -morning.work -morningcore.com -morninghan.com -morningwhistle.com -morstar.net -moseacg.com -moseeker.com -mosesenglish.com -mosgcj.com -mosheng520.com -moshike.com -moshou.com -moshua.net -moshuanghua.com -moshuqiqiu.com -mosoga.net -mossle.com -mostch.com -mostsd.com -motanku.com -motherchildren.com -motie.com -motieimg.com -motilive.com -motimaster.com -motisky.com -motiway.com -zymc1.com -moto8.com -motrix.app -motuo2.com -mouldbbs.com -mouldnews.com -moulem.com -moumi.com -mounriver.com -mounstar.com -mountor.net -mounui.com -mousycoder.com -mout.me -moutaichina.com -movcam.com -movcms.com -movesee.com -movesky.net -moviemore.com -moviereviewtoday.com -movit-tech.com -mowan123.com -mowowo.com -mowuhe.com -mox.moe -moxfive.xyz -moxiai.com -moxian.com -moxing.net -moxingyun.com -moxiu.com -moxiu.net -moxiuwl.com -moxiwh4.com -moyangmoyang.com -moyann.com -moye.me -moyoutang.com -moyoyo.com -moyublog.com -moyugroup.com -moyumedia.com -moz8.com -mozhan.com -mozheanquan.com -mozhedun.com -mozhenhau.com -mozhes.com -mozichina.com -mozigu.net -mozillaonline.com -mozillazg.com -mp4ba.com -mp4cn.com -mp4er.cc -mp4ju.com -mp4kan.com -mpaascloud.com -mpacc.net -mpaidata.com -mpdaogou.com -mpdsj.com -mpfmall.com -mphdx.com -mphh.cc -mpiano.com -mplife.com -mpll.cc -mplus.tech -mpopkart.com -mpos.ren -mpweixin.net -mpxiaomi.net -mpxiaoshuo.com -mpxx.net -mqant.com -mqcoffee.com -mqttx.app -mquanquan.com -mqxww.com -mr-ping.com -mr77.com -mr91.com -mrabit.com -mrbanana.com -mrcjcn.com -mrcrm.com -mrcywang.com -mrdede.com -mrentea.com -mrevisa.com -mrflay.com -mrhallacg.com -mrjeke.com -mrjiang.com -mrjjxw.com -mrlika.com -mro9.com -mross022.com -mross044.com -mrpyq.com -mrqf.com -mrsta.com -mrw.so -mrwish.net -mrzhenggang.com -mrzs.net -ms211.com -ms315.com -ms6666111.com -msanjia.com -mscbsc.com -mschcdn.com -mscodecloud.com -mscto.com -msddp.com -msfpay.com -msgcarry.com -msgtjj.com -mshandong.com -mshare.cc -mshc2018.com -mshot.com -mshouyou.com -mshw.net -mshxw.com -msits.com -mskjf.com -mslzz.com -msm.moe -msmartlife.com -msmbjp.com -mspharm.com -mspring.org -msrtvu.net -msstatic.com -mst-jc.com -mstarsemi.com -mstchina.com -msudz.com -msunland.com -msvod.cc -msweekly.com -msxf.com -msxf.net -msxfmall.com -msxh.com -msxiaobing.com -msymjz.com -msyos.com -msysk.com -mszdld.com -mszdld.net -mszlyoozo.com -mszmapp.com -mszq.com -mszsx.com -mszxyh.com -mt-bbs.com -mt-wire.com -mt4v4.com -mt77.com -mt888vip.com -mtavip.com -mtblj.com -mtchome.com -mtcnsoft.com -mtcop.com -mtcsys.com -mtcx99.com -mtcxsw.com -mtcxx.com -mtdpai.com -mtdpgame.com -mtedu.com -mtex.work -mtgchina.com -mti100.com -mtiancity.com -mtianshitong.com -mtide.net -mtime.com -mtimeimg.com -mting.info -mtizt.com -zyloushi.com -mtkan.net -mtkdy.com -mtketang.com -mtkpacker.com -mtksj.com -mtktk.com -mtm.mo -mtmits.com -mtmos.com -mtmss.com -mtmssdn.com -mtmssdn0.com -mtnets.com -mtnets.net -mtoilet.com -mtoou.info -mtr8.com -mtrendgroup.com -mttsq.com -mtty.com -mtuacg.com -mtv123.com -mtw.so -mtwine.com -mtwl.net -mtxgx.com -mtxyx.com -mtyun.com -mtzbs.com -mtzcjy.com -mtzmyjf.com -mtzuichen.com -mtzxgf.com -mubanjianli.com -mubanwan.com -mubu.com -mubu.io -mubucm.com -mucaipin.com -mucf.cc -mucfc.com -muchangqing.com -muchcloud.com -muchong.com -muchplans.com -muchrank.com -mudgj.com -mudongguang.com -mudoudou.net -mudu.com -mudu.tv -mufengyue.com -muftc.com -mugeda.com -muhai.net -muhoujiemi.com -muimg.com -mujihotel-beijing.com -mujj.us -mukewang.com -mukool.com -mulazim.com -mumayi.com -mumu01.com -muniao.com -muomou.com -mupao.com -mupceet.com -murdermysterypa.com -murl.tv -murphysec.com -muryi.net -muselab-tech.com -mushafa.net -mushroomchina.com -music4x.com -musicalpc.com -musicchina-expo.com -musicdu.com -musicedu8.com -musiceol.com -musicheng.com -musikid.com -musiness.vip -muslimwww.com -mustups.net -musyder.com -mutouxb.com -mutualhunter.com -mutuoluo.com -muwai.com -mux5.com -muxin.fun -muxiulin.com -muyangkuaibao.com -muyee.com -muyeseed.com -muyewx.com -muying.com -muyingjie.com -muyingzhijia.com -muyishu.com -muyuanfoods.com -muyuekj0.com -muzhi.us -muzhigame.com -muzhiwan.com -muzi999.com -muzijie.com -muzili.xyz -muzisoft.com -mvc188.com -mvhere.com -mvoicer.com -mvote.net -mvpdj.com -mvpsky.com -mvyxws.com -mw.com -mw1950.com -mwadx.com -mwave.tech -mwcloudcdn.com -mwcloudcdn.info -mwcname.com -mweda.com -mwjournalchina.com -mwjx.com -mwkhjc.com -mwrf.net -mwrfabc.com -mwrfchina.org -mwryx.com -mwtee.com -mwyzhcdn.com -mx-industry.com -mx007.com -mx175.com -mx3g.com -mxarts.com -mxbc.com -mxbc.net -mxchip.com -mxddp.com -mxde.com -mxew.com -mxguan.com -mxhaitao.com -mxhichina.com -mxifund.com -mxingkong.net -mxjinchao.com -mxjtedu.com -mxjyxx.com -mxk.cc -mxlvniao.com -mxnavi.com -mxnfq.com -mxnxs.com -mxomo.com -mxqe.com -mxria.com -mxs.com -mxslly.com -mxsyzen.com -mxtcn.com -mxtronics.com -mxw3.com -mxyn.com -mxzgame.com -mxzsjt.com -mxzx123.net -mxzzzs.com -my-3dcad.com -my-imcloud.com -my-qcloud.com -my-summit.com -zyl.me -my0511.com -my0513.com -my0538.com -my0551.com -my0832.com -my089.com -my120.org -my1616.net -my2space.com -my2w.com -my399.com -my3w.com -my4399.com -my478.com -my5m.com -my5v.com -my68.com -my7v.com -my88316666.com -my9166.com -my91app.com -my9527.com -my97.net -myagric.com -myaijarvis.com -myalicdn.com -myanjian.com -myanmarembassy.com -myantu.com -myapp.com -myapp.ltd -myaqsh.com -myarowanas.com -myauth.us -mybarrefitness.com -mybdqn.com -mybjx.net -mybosc.com -myboyan.com -mybwallet.com -mybxg.com -mycaigou.com -mycaijing.com -mycaraok.com -mycarbar.com -mycardgame.net -mychemy.com -mychery.com -mychery.net -mychinaevent.com -mychinaunicom.com -mychunyan.net -mycleanmymac.com -myclub2.com -mycnc.org -mycollect.net -mycolorway.com -mycoov.com -mycos.cc -mycos.com -mycos.net -mycos.org -mycospxk.com -mycosresearch.net -mycoss.com -mycoss.net -mycoss.org -mycreate.net -mydadao.com -mydao.net -mydbfx.com -mydcyj.com -mydeershow.com -mydf.net -mydianshijia.com -mydical.com -mydict.org -mydigi.net -mydigit.net -mydiyclub.com -mydnns.com -mydns8.com -mydnser.com -mydnspod.net -mydnsw.com -mydoc.io -mydown.com -mydreamplus.com -mydrivers.com -myeclipsecn.com -myekp.net -myelasticsearch.com -myezdns.com -myf6.com -myfans.cc -myfirstwon.com -myfrfr.com -myfun7.com -myfund.com -mygame66.com -mygame82.com -mygame88.com -mygjp.com -mygobatv.com -mygolbs.com -myguancha.com -mygx.net -mygzb.com -myhack58.com -myhaowai.com -myhard.com -myhayo.com -myhexin.com -myhithink.com -myhongzuan.com -myhostadmin.net -myhuaweicloud.com -myhuilv.com -myhwcdn.com -myhwcloudlive.com -myhwclouds.com -myie.me -myie9.com -myip.la -myipadbox.com -myiplay.com -myir-tech.com -myirtech.com -myitit.com -myjhxl.com -myjianzhu.com -myjiedian.com -myjishu.com -myjob.com -myjob500.com -myjoit.com -myjoy777.com -myk3.com -mykqyy.com -mykshow.com -mylbabao.com -mylguoji.com -mylibs.org -mylightsite.com -mylike.cc -mylike.com -mylikechat.com -mylikesz.com -mylikeyk.com -mylink.ink -mylitboy.com -myliwu.net -mylmad.com -mylotushealth.com -mylovehome.com -mylsfw.com -mym001.com -mymaitian.com -mymanhua.com -mymetal.net -mymhotel.com -myminapp.com -mymofun.com -mymoive.com -mymova.com -mynb8.com -mynee.com -myoas.com -myodatech.com -myoldtime.com -myopenwrt.org -myoppo.com -myottad.com -myouth.net -myp2pch.net -mypaas.com -mypcrun.com -mypethome.com -mypian.com -mypiao.com -mypiaojia.com -mypitaya.com -mypity.com -mypm.net -myprad.com -mypscloud.com -mypsy365.com -myptpt.com -myqcloud.com -myqcloud.net -myqee.com -myqiantu.com -myqqjd.com -myra2.com -myravendb.com -myrb.net -myreadme.com -myrice.com -myriptide.com -myroome.com -myrtb.net -myrunners.com -myruru.com -myscore.org -mysemlife.com -myshow360.net -myshow800.com -myshown.com -myshxz.com -mysinamail.com -mysipo.com -mysiteres.com -mysmth.net -mysongktv.com -mysore-yoga.com -myspain.org -mysqlab.net -mysqlops.com -mysqlpub.com -myssl.com -mystao.com -mysteel.com -mysteel.net -mysteelcdn.com -mysteelcms.com -mysubmail.com -mysupa.com -mysuperdns.com -mysvw.com -myt126.com -mytanwan.com -mythbird.com -mythcall.com -mythcare.com -mythidea.com -mythroad.net -mythsman.com -mythware.com -mythware.net -mytijian.com -mytju.com -mytokenpocket.vip -mytrix.me -mytv365.com -mytvgame.com -myuall.com -myubbs.com -myuclass.com -myujob.com -myun.tv -myunke.com -myunying.com -myushan.com -myvactrip.com -mywakao.com -mywayboo.net -myweimai.com -mywhh.com -mywll.com -mywood.cc -myworld6.com -myxypt.com -myyishu.com -myyoudao.com -myypark.com -myyx618.com -myyx915.com -myyzd.com -myzaker.com -myzhiniu.com -myzte.com -mz-oneacg.com -mz2225555.com -mz6.net -mzbei.com -mzbkw.com -mzboss.com -mzd1.com -mzeyes.com -mzfanyi.vip -mzfile.com -mzfxw.com -mzgtuan.com -mzh.ren -mzhb.com -mzhfm.com -mzhujia.com -mzjmedia.com -mzone.site -mzread.com -mzres.com -mzrwgo.com -mzsky.cc -mzsmn.com -mztgame.com -mztzzx.com -mzuan.com -mzuimg.net -mzwu.com -mzxjzp.com -mzyfz.com -mzyun.ren -mzyunyin.com -mzzjw.com -n-bros.net -n0808.com -n12345.com -n127.com -n18081.com -n21.cc -n28082.com -n3293.com -n3762.com -n3875.com -n3sd.com -n423.com -n459.com -n4x8.xyz -n5738.com -n802.com -n9cn.net -n9z.net -naadou.com -nacorokevalve.com -nadianshi.com -nafanlong.com -nagagame.net -nagain.com -nagcloudcs.com -nagekuai.com -nahuayuan.com -nahuo.com -nahuo9.com -naibabiji.com -naibago.com -naicha99.com -naichabiao.com -naifei.pro -naimal.com -naimei.com -nainiuapp.com -naiping.net -naisiw.com -naitang.com -naiveblue.com -naixuecha.com -najiaoluo.com -najnus.com -nakedhub.com -nakedsail.com -nakevip.com -nalanxi.com -nalichi.com -name1688.com -name2012.com -nameidi.com -namepre.com -namesilopro.com -namibox.com -namipan.com -namisoft.com -namitiyu.com -namoc.org -nanapro.org -nanbeijt.com -nanbeiyou.com -nanbushenghuo.com -nandagang.cc -nandasoft.com -nandu.com -nandufoundation.org -nanerjia.com -nanfu.com -nanguache.com -nangualin.com -nanhaitoday.com -nanhe111.com -nanhua.net -nanhufund.com -nanhuhr.com -nanhutravel.com -nani.online -nanjingchenxi.com -nanjinghuojia.net -nanjingkaishan.com -nanjingtianqi114.com -nanjixiong.com -nankaimba.org -nanlive.com -nanoer.net -nanputuo.com -nanqi.org -nanrentu.cc -nanrenvip.cc -nanrenvip02.cc -nanrenvip03.cc -nanrenwa.com -nanshanski.com -nantaihu.com -nantong-hst.com -nantonghua.net -nanxueqx.com -nanyangcable.com -nanyinwealth.com -nanyuetong.com -nanzhao1.com -naobiao.com -naoda.net -naoffer.com -naozhong.net -napiantian.com -naquan.com -naquan.org -naradafoundation.org -narkii.com -narrowad.com -naruto.red -narutom.com -nas66.com -nasack.net -nase.tech -nasgetinfo.com -nashwork.com -nasimobi.com -nasinet.com -nasiosoft.com -nasyun.com -nat123.com -natamoo.com -natapp1.cc -natapp4.cc -natappfree.cc -natbbs.com -natertech.com -natfrp.com -nationalchip.com -nationsky.com -nationstech.com -nattest-china.com -naturali.io -nature-museum.net -naturesvariety-china.com -natywish.com -nauac.com -navchina.com -navimentum.com -navinfo.com -naxcx.com -naxide.com -nayao.com -nayatec.com -nayei.com -nazo.fun -nb-medicalsystem.com -nb301.xyz -nb591.com -nbabm.com -nbahero.com -nbahi.com -nbahjx.com -nbaidai.com -nball.cc -nbalxhf.com -nbaqmq.com -nbayaobasketballclub.com -nbbeer.com -nbbjack.com -nbchao.com -nbcsgo.com -nbcyl.com -nbdeli.com -nbdeli.net -nbdisco.com -nbegame.com -nbegame.net -nbenl.com -nbfox.com -nbgdjt.com -nbhailan.com -nbhao.org -nbhky.com -nbimer.com -nbimg.com -nbjlw.com -nbjnw.com -nbjzjn.com -nbkc-rp.com -nblongzhan.com -nbmai.com -nbmedicalsystem.com -nboxnas.com -nbpolytheatre.com -nbren.net -nbrj.com -nbrlzy.com -nbsason.com -nbshuoxue.com -nbsqbank.com -nbt.ren -nbtarena.com -nbudp.com -nbunicom.com -nbvps.net -nbwaf.net -nbwan.net -nbwb.net -nbwbw.com -nbweekly.com -nbwskj666.com -nbyang.com -nbyeda.com -nbyizhu.com -nc8.fun -ncacg.org -ncartfoundation.org -nccqj.com -ncdxbbs.com -ncfcsa.org -ncfgroup.com -ncfwx.com -ncfxwhjjh.com -ncfz.com -nchq.cc -nciku.com -nciyuan.com -ncjld.com -ncjy.net -ncmem.com -ncnynl.com -ncpa-classic.com -ncpqh.com -ncpssd.org -ncpti.com -ncq8.com -ncu.me -ncvtinfo.com -ncvtmi.com -ncxb.com -ncyinghuochong.net -ncyunqi.com -nczfgjj.com -nd090.com -nd15.com -nd56.com -ndcpp.com -nddaily.com -nddnrm.com -ndhys.com -ndmh.com -ndoo.net -ndscsoft.com -ndser.net -ndt-sz.com -nduoa.com -nduotuan.com -ndzsx.com -ne21.com -nearcharge.com -nearsnet.com -nease.net -neat-reader.com -neatifyapp.com -nebulogy.com -nedaex.com -nedigitals.com -needexam.com -needyouknow.com -neegle.net -neeq.cc -neets.cc -neeu.com -zyku.net -negroupedu.org -neigou.com -neihanshequ.com -neisha.cc -neitui.com -neituixiaowangzi.com -neko.pub -nelkshuhe.com -nellit.net -nelson-textiles.com -nenben.com -nengapp.com -nenggeimall.com -nengshida.com -nengzuo.com -nenup.com -neo.org -neoap.com -neobiochina.com -neoease.com -neoease.org -neofaith.net -zykjgame.com -neohytung.com -neojos.com -neolee.com -neolix.net -neoremind.com -neptcn.com -nercel.com -nesbbs.com -nestgene.com -nestlechinese.com -net-add.com -net-swift.com -net0516.com -net111.info -net114.com -net130.com -net199.com -net2345.net -net263.com -net3q.com -net767.com -net9.org -netac.com -netat.net -netbian.com -netcnnet.net -netcoc.com -netconst.com -netcoretec.com -netded.com -netdzb.com -netease-inc.com -netease.com -netease.im -neteasegames.com -netentsec.com -netesee.com -netgamecar.com -netherlandvcenter.com -netiler.com -netinbag.com -netinfi.com -netinfi.net -netitest.com -netkao.com -netmeas.xyz -netnoease.com -netok.cc -netpi.me -netposa.com -netqd.com -netsmell.com -netspreading.com -netstatic.net -netsun.com -nettvl.net -networkbench.com -networkbrand.com -netzonesoft.com -neu-reality.com -neucrack.com -neuedu.com -neunn.com -neupeer.com -neuqsoft.com -neusncp.com -neusoft.com -neutrontek.com -neux.studio -nev-battery.org -new-mobi.com -new-more.com -new-thread.com -new1cloud.com -new253.com -new669.com -newacademic.net -newadblock.com -newadx.com -newaigou.com -newaircloud.com -newapi.com -newasp.com -newasp.net -newayz.com -newbandeng.com -newbanker.com -newbd.com -newbe.pro -newbeebook.com -newbmiao.com -newbolunesport.com -newbook8.com -newboshi.com -newcapec.net -newcger.com -newchainbase.com -newchieve.com -newchinalife.com -newclasses.org -newclouddenfender.com -newcoder.com -newcosemi.com -newdao.net -newday.me -newdon.net -newdruginfo.com -newdu.com -newdun.com -newer2001.com -newhopeagri.com -newhopegroup.com -newhtml.net -newhua.com -newistock.com -newjson.com -newlandaidc.com -newlifex.com -newmaker.com -newman.mobi -newmargin.com -newmediaconference.org -newnanbao.com -newnewle.com -newoasis.cc -newoer.com -newoo.com -neworiental.org -nework360.com -neworldedu.org -news18a.com -news606.com -newsccn.com -newscctv.net -newseasoft.com -newsgd.com -newsgroupusa.com -newsgu.com -newsing.com -newskj.com -newskj.org -newsletter-cn.com -newsmth.com -newsmth.net -newsmy-car.com -newsmy.com -newsmyshop.com -newsn.net -newspluse.com -newssc.net -newssc.org -newstarpress.com -newstartsoft.com -newstjk.com -newsv5.com -newsxc.com -newsyc.com -newszjk.com -newtalentaward.com -newtonghua.com -newtop100.com -newtouch-elec.com -newtrip.com -newume.com -newupbank.com -newvfx.com -newxing.com -newxitong.com -newxue.com -newyx.net -newzealandvscenter.com -newzgc.com -newzhizao.com -nexmoe.com -nexon.to -nextclass.club -nextday.im -nextjoy.com -nexto2o.com -nextpcb.com -nextrt.com -nextsee.com -nextstudios.com -nexttao.com -nexttix.net -nextworkshop.net -nextyu.com -zyjyyun.com -nexushd.org -nfc315.com -nfcic.com -nfckauto.com -nfcmag.com -nfcreader.net -nffund.com -nfg02df.com -nflchina.com -nfmedia.com -nfmrtfv.com -nfpeople.com -nfrencai.com -nfs-china.com -nfschina.com -nfzhouyi.com -ng-alain.com -nga.wiki -ngaagslb.net -ngabbs.com -ngacn.cc -ngacn.com -ngarihealth.com -ngbbs.com -ngcgears.com -ngctransmission.com -ngevnsmk5.com -ngfans.net -ngh6.com -nginstar.net -ngjjtg.com -ngnice.com -ngocn.net -ngoos.org -ngrok.cc -ngsxzfw.com -ngty556.com -ngui.cc -ngxfence.net -ngxfence.org -nh.com -nhaidu.net -nhdmd.com -nhganggeban.com -nhhwhxh.com -nhnexpo.com -nhnst.com -nhooo.com -nhstu.com -nhxz.com -nhygkj.com -nhzedu.com -nhzj.com -nhzs.com -ni8.com -ni93.com -nianbin.com -nianhua.plus -niankawang.com -nianzhi.cc -niaobee.com -niaobulashi.com -niaocms.com -niaogebiji.com -niaola.com -niaoquan.fun -niaoyun.com -niba.com -nibaguai.com -nibaku.com -nibiye.com -nic.ren -nic.xin -nicaicheng.com -nicaifu.com -nice-app.com -nice1688.com -nicebing.com -nicecdn.com -nicefilm.com -niceimg.net -niceisp.com -nicekid.com -nicekodi.xyz -nicelabel.cc -nicelinks.site -niceloo.com -nicesnow.com -nicetheme.xyz -nicetuan.net -nicky1605.com -nicolaszhao.com -niconiconi.cc -nicotine.vip -nics365.com -nie.io -nielsenccdata.tv -nies.org -niexiaotao.com -nieyou.com -nifengz.com -nightwishcn.com -nihao.net -nihaoafrica.org -nihaodd.com -nihaotw.com -nihaowang.com -nihil.cc -niiceda.com -niiddm.com -niimbot.com -niiwoo.com -nikanpian.com -nikebiji.com -nikkisoft.com -nikkiup2u2.com -nilai.com -niliu.me -nilmap.com -nimaseo.com -nimzx.com -ninebot.com -ninecoign.com -ninepart.com -nineplaying.com -nineroad.com -ninesix.cc -ninestargroup.com -ning0370.com -ningbo-airport.com -ningbocat.com -ningbofy.com -ningbotm.net -ningdo.com -ninghao.net -ningidc.com -ningkangyuan.com -ningkekeji.com -ningmengdou.com -ningmengyun.com -ningoo.net -ningto.com -nington.com -ningxiajob.com -ningxingxing.com -ninjacn.com -ninjadq.com -ninjamustdie.com -ninonanospeed.com -ninthpalace360.com -nio.com -nioapis.com -nipei.com -nipic.com -nishuoa.com -nitaitag.com -nitutu.com -niu-ba.com -niu.com -niua.com -niuaa1688.com -niuacc.com -niuap.com -niubb.net -niubi114.com -niubilai.com -niubilety.com -niubixia.com -niuboli.com -niucache.com -niucdn.com -niucodata.com -niudai120.com -niug8.com -niugame.net -niugp.com -niuguwang.com -niuhuagong.com -niuhudong.com -niujinniu.com -niukk.com -niuniufund.com -niuniutui.com -niupinhui.com -niupu.com -niuqia.com -niuschools.com -niushe.com -niutk.com -niutoushe.com -niutrans.com -niutrip.com -niuwk.com -niuxgame77.com -niuxiaoer.net -niuxiaoq.com -niuxyun.com -niuxz.com -niuyan.com -niuyou5.com -niuyuan.com -niuza.com -niuzhu.com -niuzhuan-test.com -nivta.com -nivtc.com -niwodai.com -niwodai.net -niwota.com -niwoxuexi.com -nixi.win -nixiba.com -nixwang.com -nizhan888.com -nizi88.com -nizkeyboard.com -nj-bl.com -nj-qiyiguo.net -njbaisou.com -njc100.com -njcdata.com -njcedu.com -njcgs.com -njcitygas.com -njcw.com -njcyt99.com -njd1.com -njdapaidang.com -njdewo.com -njdfwb.com -njgb.com -njgjj.com -njhaiwai.com -njhengyou.com -njhgame.com -njhgzg.com -njhszoo.com -njibhu.com -njjn.com -njjsyy.com -njjuntong.com -njkefayuan.com -njl114.com -njlike.com -njlingyun.com -njljjy.com -njlzsx.net -njmama.com -njmuseum.com -njnutz.com -njqxrc.com -njrx.cc -njsjz.com -njskps.com -njsxbw.com -njsyue.com -njuaplusplus.com -njuftp.org -njw88.com -njwww.net -njxmsm.com -njxsmaofa.com -njxsmfyh.com -njxsmz.com -njxzwh.com -njycwy.com -njyingtaoya.com -njyydl.com -njzdsp.com -njzhzx.net -njzztyl.com -nkscdn.com -nkyp.com -nlark.com -nlinkline.com -nljb.net -nlpjob.com -nlscan.com -nlxn.com -nlypx.com -nlzpy.com -nm8yx.com -nmboat.com -nmbxd1.com -nmcjdo04.xyz -nmet168.com -nmgchigang.com -nmgd.com -nmgfood.net -nmgfrank.com -nmggyy.com -nmgkjzx.com -nmglawyer.com -nmgwyw.org -nmgyjszx.com -nmgyljs.com -nmhfw.com -nmimi.com -nmkjxy.com -nmmlresearch.xyz -nmrdata.com -nmslqm.com -nmtyxy.com -nmvps.com -nmweidian.com -nmxc.ltd -nmzh.net -nn.com -nn12333.com -nncc626.com -nncj.com -nnddssaaddeeyy.com -nndims.com -nndssk.com -nnduyi.com -nngdjt.com -nngjjx.com -nnit30.com -nnjioko.com -nnjt.com -nnlib.com -nnmama.com -nnmutong.com -nnn666.com -nnnews.net -nnsc6.com -nnsky.com -nnszwl.com -nnt0.net -nnthink.com -nntlj.com -nntskq.com -nntxw.com -nnwb.com -nnynrc.com -nnzsxblaw.com -noahedu.com -noahgroup.com -noahsnail.com -noahteck.com -nobmoo.com -nocang.com -nocare.com -noclyt.com -nocode-tech.com -nocode.com -noddl.me -nodeasy.com -nodefu.net -nodeing.com -nodejs999.com -nodekey.com -nodepacific.com -noeic.com -nohken-sdy.com -nohup.cc -noirphoenix.studio -noizztv.com -nokia-sbell.com -nokia88.com -nolanchou.com -nolovr.com -nomax.vip -nome.com -nomuraoi-sec.com -nonemall.com -nonganxian.com -nongbaike.net -nongcun5.com -nongfen.com -nongfuspring.com -nongji1688.com -nongji360.com -nongjiao.com -nongjitong.com -nongjx.com -nongkeyu.com -nongli.com -nongli.net -nongli114.com -nonglirili.net -nongmintv.com -nongmuhezi.com -nongnet.com -nongplay.com -nongquan.net -nongshang.com -nongshijie.com -nongxinyin.com -nonobank.com -nonozone.net -noobyard.com -noobyy.com -noodba.com -noogel.xyz -noontec.com -noops.me -nooshen.com -nootoo.com -nopis.org -noposion.com -nor-land.com -nordfxs.com -nordicways.com -nordikr.com -nordritools.com -norinco-vehicle.com -norinco.com -norincogroup-ebuy.com -noritzd.com -normcore.com -normstar.net -norsencn.com -northdy.com -northidc.net -northsoar.com -northtimes.com -nosec.org -nosuchfield.com -not3.com -notadd.com -note52.com -notedeep.com -noteniu.com -notetech.org -notrisk.com -novaicare.com -novapps.com -novastargame.net -novel-supertv.com -noveless.com -novelfm.com -novelfmpic.com -novelfmstatic.com -novelfmvod.com -novell.me -novemideas.com -novtium.com -now-cn.net -nowapi.com -nowbeta.com -nowchip.com -nowcoder.com -nowcoder.net -nowcoder.org -nowec.com -nowmsg.com -nowo.com -nowodds.com -nowre.com -nows.fun -nowscore.com -nowshipin.com -nowxz.com -noxgroup.com -noxue.com -noxxxx.com -noyes88.com -npbdp.com -npc233.com -npcgo.com -npcka.com -nphoto.net -nplusgroup.com -nplusgroup.net -npmmirror.com -npodevelopment.org -npoll.net -npp.cc -nptpark.com -npxsw.com -npz.com -nq6.com -nr-esc.com -nrdzqwd.com -nrec.com -nrsfh.com -nrsg.net -nruan.com -ns1.hk -ns168.net -ns365.net -ns5n.com -ns8d.com -ns96.com -nsbeta.info -nscloudwaf.com -nscscc.com -nscscc.org -nseac.com -nsecsoft.com -nsfocus.com -nsfocus.net -nsforce.net -nshen.net -nshzpks.com -nsini.com -nslifang.com -nsoad.com -nsoft.vip -nspllines.com -nsrfww.com -nsrjlb.com -nsshare.com -nsstream.com -nsw88.com -nsw99.com -nswyun.com -nsydt.com -nszmz.com -nt.app -nt.cc -ntalker.com -ntaow.com -ntce.com -ntcfy.com -ntcor.com -ntdvf.com -ntechw.com -ntefyxq.com -ntes53.com -ntfabu.com -ntflk.com -ntfsformac.cc -nthysp.com -ntjob88.com -ntjoy.com -ntjrchina.com -ntjymall.com -ntlcjd.com -ntmyexp.com -ntneuro.org -zyjoygame.com -ntpcb.com -ntqcct.com -ntqfdq.com -ntrcb.com -nttui.com -ntuiw.com -ntwikis.com -ntwzy.com -ntyswlkj.com -ntyy888.com -ntzcb2b.com -nu1l.com -nuan.io -nuandao.com -nuanjiayuan.com -nuannuanapp.com -nuannuanzu.com -nuanshi100.com -nuantingapp.com -nuanyuehanxing.com -nubb.com -nubee.cc -nubesi.com -nubia.cc -nubia.com -nucc.com -nucleisys.com -nudpqt.com -nuedcchina.com -nufans.net -nufykysuam.com -nullice.com -nullno.com -num1dns.com -nuobeiliao.com -nuobg.com -nuobz.com -nuodefund.com -nuoder.com -nuoji.com -nuomi.com -nuomicikoi.com -nuomili.com -nuomiphp.com -nuonuo.com -nuozhan.com -nuozhensh.com -nuqk.com -nutriease.com -nutsbp.com -nutspace.com -nutz.io -nutzam.com -nuvoltatech.com -nuvoton-m0.com -nuvoton-mcu.com -nuxtv.com -nuxue.com -nv2118.com -nvcam.net -nvcong.com -nvdiao.com -nvidia-china.com -nvloo.com -nvpuse.com -nvpuwo.com -nvsay.com -nvsheng.com -nvshengjie.com -nvshuyun.com -nvwu.com -nvzhanshen.com -nvzhubo.cc -nvziwu.com -nw-host.com -nwbbs.com -nwct.me -nwdlink.com -nweon.com -nwtongcheng.com -nx-sc.com -nx.cm -nx5.com -nxadmin.com -nxcells.com -nxdns.net -nxecaiji.com -nxengine.com -nxez.com -nxflv.com -nxggzyjy.org -nxgjbyy.com -nxgqt.org -nxgtjt.com -nxhh.net -nxin.com -nxist.com -nxit.us -nxly766.com -nxnews.net -nxnjw.com -nxnresearch.com -nxol.net -nxrrvmy.com -nxsks.com -nxtianshangb.com -nxwly.com -nxyqs.com -nxyqs.net -ny-yy.com -ny83.com -nya.ink -nyaacat.com -nyasama.com -nyato.com -nybai.com -nybaidu.net -nyckidsclub.com -nylingshang.com -nync.com -nypd520.com -nyq.ink -nyrsksw.com -nyshszh.com -nysmfc.com -nyxr-home.com -nyyzjg.com -nz86.com -nz998.com -nzbdw.com -nzchina.com -nzsiteres.com -nzwgs.com -o--o.win -o-netcom.com -o-star.cc -o-tide.com -o136.com -o2123.com -o2ee.com -o2mania.com -o2moment.com -o2o4.com -o2obill.com -o2oexpo.com -o2onet.com -o2osd.com -o2ting.com -o365cn.com -o37o.net -o3ko.com -o3ndix.com -o6s.net -o7h.net -o8tv.com -oa025.com -oa0351.com -oa25.org -oa5588.com -oa8000.com -oabg.net -oact.net -oadz.com -oahelp.com -oahelp.net -oameibang.com -oaqi.com -oatos.com -oauto.com -ob-park.com -obagame.com -obesu.com -obins.net -obj6.com -objccn.io -objcer.com -objcoding.com -obkoro1.com -obkprint.com -obolee.com -oborad.com -obowin.com -obsapp.net -obsbot.com -obyee.com -ocar.tv -ocd120.com -oceanbase.com -oceanbites123.com -oceandatas.com -oceanengine.com -oceanlau.com -oceanol.com -oceanplayable.com -ocideal.com -ocimg.com -oclkj.com -ocooca.com -ocsjs.com -zyip.com -zyiis.net -oct-asia.com -oct-cts.com -oct-sh.com -octbay.com -octeshow.com -octholding.com -octhotels.com -octinn.com -octlink.com -octmami.com -octo.fm -octoparse.com -octopgo.com -octopusgame.com -octre.com -octwuhan.com -oculist.net -ocwms.com -odaily.news -odao.com -odict.net -odinichina.com -odinjc.com -odinjilin.com -odinliu.com -oealy.com -oeasy.org -oec365.com -oecr.com -oedun.com -oeebee.com -oeeee.com -oejournal.org -oelove.com -oemol.com -oemresource.com -oemsnavi.com -zyhot.com -oeob.net -oesell.com -oetsi.com -ofcard.com -ofenka.com -offcn.com -offer-wow.com -offerstrack.net -office-cn.net -office-peixun.com -zyhbxs.com -officectrl.com -officese.com -officesoftcn.com -officeweb365.com -officewj.com -officezhushou.com -officezu.com -offodd.com -offshoremedia.net -ofgame.net -ofidc.com -ofo.com -ofo.so -ofpay.com -ofpay365.com -ofuns.com -ofweek.com -ofweek.net -ofyoo.com -ogaoxiao.com -ogccdn.com -oh100.com -ohaotian.com -ohipic.com -ohqly.com -ohtly.com -ohtpc.com -ohtvu.com -ohwyaa.com -ohyee.cc -oi-wiki.com -oi-wiki.org -oiaqye7985.com -oicat.com -oicp.net -oicq88.com -oicto.com -oidchina.org -oiine.com -oilchem.net -oilepay.com -oilhr.com -oilmooc.com -oincp.com -oinva5yl.com -oiuwe.com -oje26fnevfdg.com -ok-meeting.com -ok06.com -ok1616.com -ok165.com -ok206.com -ok365.com -ok3w.net -ok86.com -ok888883.com -ok9624.com -oka-vip.com -okad.com -okada-china.com -okaoyan.com -okayapi.com -okaybio.com -okbao.com -okbase.net -okbiao.com -okbike.net -okbmf.com -okbuy.com -okcard.com -okcdnns.com -okchang.com -okchexian.com -okdai.com -okdd.net -okemu.com -okex.vip -okex.win -okeycar.com -okhimalayanzi.com -okhqb.com -okidc.com -okideaad.com -okii.com -okjike.com -okjk.co -okki.com -okkkk.com -oklaapp.com -oklink.com -oklx.com -okmart.com -okmyapp.com -okng.com -okoer.com -okooe.com -okooo.com -okoooimg.com -okpush.com -okrecovery.com -okskills.com -oksun.com -oksvn.com -oktools.net -oktools.xyz -oktranslation.com -okuer.com -okweb.info -okwuyou.com -okxr.com -okz.com -ol-cdn.com -ol-img.com -olabo.net -olacio.com -olami.ai -olcdn.com -oldboyedu.com -oldcat.me -oldding.net -oldking.net -oldmantvg.net -oldpan.me -olecn.com -oleony.com -olinone.com -oliver.ren -oliveryang.net -oliyi.com -ollomall.com -olo4.com -olymtech.com -omacloud.com -omarea.com -omayse.com -omccsh.com -omchain.com -omdnchina.com -omegatravel.net -omegaxyz.com -ometal.com -omhoa.com -omiaozu.com -omicsclass.com -omicshare.net -omifanyi.com -omlzx.com -omlzz.com -ommoo.com -omni-pharma.com -omnibeautylux.com -omobi.cc -omofundm.com -omooo.net -omos88.com -omowork.com -ompchina.net -omsheji.com -on-sun.com -onaliyun.com -oncanyin.com -onccc.com -oncdp.com -once.im -onceai.com -onceoa.com -onche.net -oncity.cc -one-all.com -one-netbook.com -one918.com -onealert.com -oneapm.com -oneasp.com -onebiji.com -onechildnetwork.com -onecoder.site -oneconnectft.com -onedi.net -onedict.com -onedns.net -onefoot365.com -onegreen.net -onehome.me -onein.com -oneinstack.com -oneiwff.com -onekey.cc -onekeyghost.com -onemob.mobi -onemovie.com -oneniceapp.com -onenoter.com -onephper.com -oneplus.com -oneplus.net -oneplusbbs.com -oneplusmobile.com -onescorpion.com -oneshao.com -onesight.com -onething.net -onethingcloud.com -onethingpcs.com -onetog.com -onetwo.ren -onev.cat -onevcat.com -oneway.mobi -onewedesign.com -onewo.com -onewrt.com -onewsimg.com -onewsvod.com -onexinli.com -onexmail.com -oneyac.com -onezapp.com -onezh.com -onijiang.com -onitroad.com -onjobedu.com -online-edu.org -onlinecn.com -onlinedown.net -onlinekr.com -onlinenic.net -onlinesjtu.com -onlinexijiang.com -only-moment.com -only4.work -onlycatch.com -onlyedu.com -onlyeduit.com -onlyidc.com -onlylady.com -onlyling.com -onlyliuxue.com -onlyou.com -onlyred.net -onlyrubberparts.com -onlystem.com -onlytg.com -onlywem.com -onlyyou.com -onmpw.com -ono-bbb.com -ononw.com -onsummer.com -ontheroadstore.com -onthink.com -ontvb.com -onyealink.com -oo14.com -oobao.net -oocct.com -ooclab.com -oogcw.com -oohdear.com -ookk58.com -oolap.com -oomake.com -ooniu.com -ooogo.com -ooooai.com -oooooooooo213.com -ooopic.com -ooopn.com -ooppoo.com -ootu.cc -oouee.com -oouyan.com -ooxxc.com -op86.net -opahnet.com -opark.com -opatseg.com -opcool.com -opdown.com -open-douyin.com -open-falcon.com -open-falcon.org -open-open.com -open189.net -open580.com -openailab.com -openaizh.com -openanolis.org -openapp.run -openasic.org -openbayes.com -opencas.org -opencourt.vip -opendrivers.com -openeda.com -openedv.com -openerp.hk -openeuler.org -openfrp.net -opengcc.org -opengslb.com -openinstall.io -openke.net -openlab.co -openlanguage.com -openlearning.com -openlink.cc -openloong.org -openloongson.org -openluat.com -openlyenter.com -openmidas.com -openos.org -openqa.com -openredcloud.com -openrice.com -opensoce.com -openthos.com -openvsm.com -openwbs.com -openwrt.pro -openxiaoniu.com -operachina.com -operationwink.com -opfibre.com -opinion.works -opjmw1.ren -oplay.net -oplus.com -opmaterial.com -opp2.com -oppein.com -opplestore.com -oppo.com -oppo.mobi -oppo518.net -oppodigital.com -oppoer.me -oppofind.com -oppomobile.com -oppopay.com -opposhop.in -opposhore.com -opqnext.com -oprtb.com -ops.ci -opsapp.com -opskb.com -opskumu.com -opsnote.com -opstatics.com -opstool.com -optaim.com -optbbs.com -opticsjournal.net -optimix.asia -optimized-ai.com -optinetchina.com -optol.net -opwill.com -opxincai.com -opython.com -oq78.com -oqss.com -or-sun.com -oracle-tencent.com -oracle-tencent.net -oradbca.com -oraev.com -oralpractice.com -orange2h.com -orangeapk.com -orangemum.com -orangenews.hk -orangepi.org -orangesgame.com -orangetage.com -orangetech.ltd -orangevip.com -orasos.com -oray.com -oray.net -oraybox.com -oraycn.com -orayer.com -orayimg.com -oraytek.com -orbitmes.com -orcadt.com -orchome.com -orcode.com -ordosbank.com -orgcc.com -orgleaf.com -orgnitu.net -oriemac.com -orient-fund.com -orient-safety.com -orientalpearltower.com -orientalwisdom.com -orientcasa.com -orientfoods.net -orientgolf.com -orientpc.com -orienttumor.com -originalkindergarten.com -origincn.com -originlee.com -originoo.com -orihard.com -oritive.com -orleto.com -ornglad.com -orsoon.com -orspr.com -orsun.cc -orvibo.com -orz.asia -orz123.com -orz520.com -os-easy.com -os-v.com -os7blue.com -osall.com -osbccdn.com -osbean.com -osbzr.com -oscarma.com -oscartutor.com -oscarzhoud.com -oschina.com -oschina.io -oschina.net -oscloudcdns.com -osechina.com -osedu.net -oseminfo.com -oserror.com -osfipin.com -osg.so -osgchina.org -oshadan.com -oshoplive.com -oshwhub.com -osjiaju.com -osk-clean.com -oskwai.com -oslaw.net -osmsg.com -oso6.com -osoos.com -ososn.com -osp.io -ospp.com -osredm.com -oss-cn-beijing-aliyuncs.com -oss.link -oss.so -osschina.com -osvlabs.com -oswdj.com -oswhy.com -osx.cx -osyunwei.com -otcgd.com -otcms.com -otkglass.com -otms.com -otome.me -otomedream.com -otosaas.com -otp-express.com -otpub.com -ott4china.com -ottcn.com -ottcn.help -ottffss.net -ottshopping.net -otype.com -ou99.com -ouapi.com -oubk.com -ouchgzee.com -oudapay.com -oudiscover.com -oueia.xyz -oufa-travel.com -oufengblog.com -oufusoft.com -ougei.com -ouhua.info -ouj.com -oujistore.com -oukan.online -ouklqd.com -oulvnet.com -oumakspt.com -oumengke.com -ounh.org -ouo.us -ouoou.com -ouou.com -ouou.icu -ouougo.com -oupeng.com -oupengcloud.net -oupuzw.com -our100.net -our360vr.com -ourai.ws -ourail.com -ourats.com -ouravr.com -ourcdns.com -ourcm.net -ourcoders.com -ourdian.com -ourdlbs.com -ourdomains.com -ourdvs.com -ourdvs.info -ourdvs.net -ourdvsss.com -oureman.com -ourgame.com -ourglb0.com -ourglb0.info -ourglb0.net -ourglb0.org -ourhlb.com -ourhlb.info -ourhlb.org -ourhy.net -ourjay.com -ourjg.com -ourjiangsu.com -ourjs.com -ourjz.com -ourlife365.com -ourlinc.com -ourpalm.com -ourplay.net -ourren.com -oursakura.com -oursec1.com -oursec2.com -ourselec.com -oursketch.com -oursmc.com -ourtour.com -ourwebat.com -ourwebcdn.com -ourwebcdn.info -ourwebcdn.net -ourwebcdn.org -ourwebhttps.com -ourwebpic.com -ourwebpic.info -ourwebpic.org -ourwebpicvip.com -ousaikj.com -oushangstyle.com -oushinet.com -oushivoyages.com -ousweixin.com -outlets365.com -outletscn.com -ouvps.com -ouxiangxiezhen.com -ouyabosi.com -ouyada.com -ouyaoxiazai.com -ouyeel.com -ouyi.date -ouyingyimin.com -ouzhougoufang.com -ovalechina.com -ovcreative.com -ovdream.com -ovear.info -oversearecruit.com -overtrue.me -overturechina.com -ovicnet.com -ovital.com -ovital.net -ovopark.com -ovopic.com -ovscdns.com -ovscdns.net -ovuems.com -ovupre.com -ovuwork.com -owecn.com -owendswang.com -owllook.net -zyhao.com -owoit.com -owsgo.com -owspace.com -owulia.com -ox11.com -oxbridgedu.org -oxerr.net -oxiang.com -oxiaohua.com -oxrm.com -oxygenos.com -oxyry.com -oyeahgame.com -oyewifi.com -oyohyee.com -oyonyou.com -oyoozo.com -oyoumo.com -oywine.com -oyyj-oys.org -oz138.com -ozm.net -ozsp.com -ozzyad.com -p-dragon.com -p-e-china.com -p-er.com -zyh365.com -p04e.com -p1.com -p12345.com -p2cdn.com -p2hp.com -p2p.com -p2p001.com -p2p178.com -p2pbbs.net -p2pchina.com -p2pcq.com -p2peye.com -p2peye.net -p2pjd.com -p2psearcher.org -p2psearchers.com -p2ptouhang.com -p2pxing.com -p2pxsj.com -p4pp.com -p5412.com -p5w.net -p6157.com -p8games.com -p99998888.com -pa.ci -pa18.com -pa1pa.com -paahu.com -paalermat.com -paascloud.net -paasmi.com -paat.com -pabulika.com -pacdn.com -pacgatelaw.com -packtom.com -packty.com -pactera.com -padasuo.net -paddlepaddle.org -paddlewaver.com -pafwl.com -pageadmin.net -pagechoice.com -pagechoice.net -pagescube.com -pageseagle.com -pagurian.com -pahaoche.com -pahou.com -pahx.com -pahys.com -paibanxia.com -paichen.net -paidai.org -paidanzi.com -paidui.com -paiduidai.com -paihang114.com -paihang360.com -paihangbangqian10ming.com -paihb.com -paihotels.cc -paiky.net -pailitao.com -pailixiang.com -paimaprint.com -paiming.net -paintinghere.org -paipai.com -paipai123.com -paipaibang.com -paipaiimg.com -paipianbang.com -pairmb.com -paishanglai.net -paishi.com -paiwo.co -paixie.net -paixin.com -paixueche.net -paiyiws.com -paizhe.com -paizi.com -paizi.net -pajkdc.com -palace-international.com -palanceli.com -palm-h.com -palmestore.com -palmfungames.com -palmjoys.com -palmtrends.com -palmyou.com -pamss.net -pan131.com -pan58.com -pan666.net -pan8.net -panabit.com -panasonicmall.com -panchuang.net -panda-home.com -panda98.com -pandadastudio.com -pandafoundation.org -pandahelp.vip -pandahome.org -pandainc.cc -pandaminer.com -pandara.xyz -pandateacher.com -pandatv.com -pandoe.com -pandolia.net -panduoduo.net -panduoduo.online -panewslab.com -panfn.com -pangbu.com -pangcheng.com -pangdly.com -pangdo.com -panggugu.com -panghuasheng.com -pangku.com -pangku01.com -pangmao56.com -pangmaovc.com -pangniao.net -pangoing.com -pangolin-dsp-toutiao.com -pangolin-sdk-toutiao-b.com -pangolin-sdk-toutiao.com -pangolin-sdk-toutiao1.com -pangomicro.com -pangqiu.com -pangshu.com -pangubox.com -pangukj.com -pangupy.com -panguso.com -pangxieke.com -panjindamibest.com -panjunwen.com -panku.cc -panmeme.com -pannacloud.com -panoeade.com -panoramastock.com -panpanr.com -panpay.com -panqibao.com -panshi101.com -panshianquan.com -panshixk.com -panshiyun.com -panshy.com -pansino-solutions.com -pansoso.com -pansou.com -pantrysbest.com -pantum.com -panweizeng.com -panyouwl.com -panyun.com -panziye.com -paoao.net -paochefang.com -paodoo.com -paojiao.com -paolanhuanbao.com -paomo.com -paomou.com -paopao.com -paopaoche.net -paopaohd.com -paopaoshipin.com -paopaox.com -paovn.com -paoxq.com -paoxue.com -paoying.net -papa21.com -papa91.com -papaao.com -papajohnshanghai.com -papapoi.com -papaquan.com -paparecipe.net -papegames.com -paper.tv -paper211.com -paperask.com -paperbert.com -paperbus.com -paperbye.com -paperccb.com -paperclipclub.net -papercool.com -papereasy.com -papergod.com -paperisok.com -paperok.com -paperonce.org -paperopen.com -paperpass.com -paperrater.net -paperright.com -papersay.com -papersee.com -papertime.cc -papertime.shop -papertime.vip -paperweekly.site -paperword.com -paperyy.com -papocket.com -paquapp.com -parallelsras.com -paratera.com -parawikis.com -parduscycle.com -parentshk.com -paris-sengfu.net -parkbees.com -parkblop.com -parkchina.net -parkdaily.com -parkicloud.com -parkingjet.com -parkingos.club -parkingquickly.com -parkmecn.com -parkviewgreen.com -parnassusdata.com -parsein.com -partinchina.com -pass7.cc -passby.me -passer-by.com -zyguidao.com -passwordkeyboard.com -pasteur.nc -pat-edu.org -patachina.org -patchallin.com -patchew.org -patent9.com -patexplorer.com -patheagames.com -patmm.com -patsev.com -patsnapglobal.com -paul.pub -paulzzh.com -paulzzh.tech -paxdn.com -paxgl.com -paydxm.com -payeco.com -paykwai.com -paylf.com -paymax.cc -paympay.com -payrao.com -paysapi.com -payxinyi.com -pb114.xyz -pb89.com -pbcan.com -pbiso.com -pblie.com -pbsidc.com -pbsvpn.com -pbtxt.com -pc-daily.com -pc120.com -pc18.net -pc34.com -pc51.com -pc521.net -pc5210.com -pc528.net -pc55.com -pc6.com -pc6a.com -pc811.com -pc89.com -pc9.com -pcaposter.com -pcapqz.com -pcb-hl.com -pcb3.com -pcb818.com -pcbask.com -pcbba.com -pcbbar.com -pcbbbs.com -pcbdoor.com -pcbeta.com -pcbhunt.com -pcbiot.com -pcbjob.com -pcbserve.com -pcbsheji.com -pcbtech.net -pcbtime.com -pccpa.hk -pccppc.com -pcdog.com -pcdrv.com -pcdyu.com -pceggs.com -pceva.net -pcfreetime.com -pcgeshi.com -pcgogo.com -pch.pub -pchealthcheck.net -pchome.com -pchome.net -pchpic.net -pciiss.com -pcitc.com -pcme.info -pcmgr-global.com -pcmiao.com -pcmoe.net -pcnsh.com -pcoic.com -pcpop.com -pcr9170.com -pcsee.org -pcshou.com -pct86.com -pctu.net -pctutu.com -pctutu.net -pctvx.com -pcviva.com -pcw365.com -pcwenti.com -pcwgu.com -pcwl.com -pcwolke.com -pcyangguangban.com -pd-italent.com -pd-sts.com -pd120.com -pd17.com -pd521.com -pdazw.com -pdbeta.com -pdcuo.com -pdd.net -pddcdn.com -pddeu.com -pddim.com -pddpic.com -pddugc.com -pddzj.com -pdf.la -pdf00.com -pdf100.net -pdf1122.com -pdf5.net -pdfbianji.com -pdfdowell.com -pdfexpert.cc -pdffsy.com -pdffx.com -pdfjia.com -pdflibr.com -pdfwang.com -pdfxd.com -pdfzj.com -pdgzf.com -pdidc.com -pdim.gs -pdosgk.com -pdowncc.com -pdrcfw.com -pdreading.com -pdryx.com -pds.so -pdscb.com -pdsggzy.com -pdsgjj.com -pdskgb.com -pdsxww.com -pdszhtl.com -pdty123.com -pduoduo.vip -pdvisa.com -pdxx.net -pe.vc -pe8.com -pe898.com -pea3nut.com -pea3nut.info -peace-read.com -peacekang.com -peaceticket.com -peacha.net -peak-labs.com -pear.hk -pearlinpalm.com -pearvideo.com -peasrch.com -pec33.com -peccn.com -pechoin.com -pediy.com -pedli.com -peekatmygirlfriend.com -peento.com -peepic.com -zygj.net -peidu.com -peihao.space -peikua.com -peilian.com -peilian365.com -peilili.com -peiluyou.com -peise.net -peixun.net -peixun5.com -peixune.com -peixunmatou.com -peixunxue.com -peiyake.com -peiyin.net -peiyinge.com -peiyinshenqi.club -peiyou.com -peiyouwang.com -peizi.com -pemap.com -penavicoxm.com -pending-renewal-domain.com -pendoapp.com -pengchengenergy.com -pengfu.com -penging.com -pengke.com -penglaiu.com -penglei.name -pengpeng.com -pengqi.club -pengqian.win -pengrl.com -pengshengcaishui.com -pengyaou.com -pengyou.com -pengyoujia.me -pengyoukan.com -pengyuwei.net -penhuijiqi.com -pentalaser.com -pentaq.com -penxiangge.com -peonyta.com -people-squared.com -peopleapp.com -peopleart.tv -peopledailyhealth.com -peopledailypress.com -peoplemooc.com -peoplerail.com -peopleyuqing.com -pepresource.com -perfect-input.com -perfect99.com -perfectdiary.com -peropero.net -peroperogames.com -personpsy.org -perspectivar.com -pescms.com -pesiv.com -pesyun.com -pet86.com -peter-zhou.com -petersonlian.com -petkit.com -petkoo.com -petktasia.com -petmrs.com -petnakanojo.com -petpcb.com -petroren.com -petrvet.com -pettime.info -pettwo.com -pewld.com -pewsc.com -pexue.com -pf110.com -pf168.com -pf178.com -pfchai.com -pfhoo.com -pfwx.com -pg-leak.com -pg114.net -pg9997.com -pgbee.com -pgc.tv -pgcog.com -pgjcqm.com -pgl-world.com -pglstatp-toutiao-b.com -pglstatp-toutiao.com -pgq.win -pgsql.tech -pgyer.com -pgyidc.com -pgzs.com -pgzx.net -ph-fc.com -phaetonsemi.com -phalapi.net -pharmacodia.com -pharmcube.com -phaser-china.com -phb123.com -phedu.net -phezzan.com -philanthropy.xin -philipswechat.com -phlexing.com -phnamedns.com -phnixpool.com -pho.so -phodal.com -phodin.com -phoemix.net -phoenixtea.org -phoenixtv.com -phoent.com -phoer.net -phome.net -phone580.com -phonecoolgame.com -phonegap.me -phonegap100.com -phonekr.com -phonelinksoft.com -phonertech.com -phopic.com -photo0086.com -photo3050.com -photoartiz.com -photocnc.com -photocome.com -photohn.com -photoint.net -photops.com -photozoomchina.com -phouses.com -php-note.com -php-oa.com -php168.com -php318.com -php7.site -phpbbchina.com -phpbloger.com -phpchina.com -phpcj.org -phpcom.net -phpcomposer.com -phpconchina.com -phpcoo.com -phpddt.com -phpdr.net -phpe.net -phpernote.com -phperservice.com -phperxuqin.com -phperz.com -phpfdc.com -phpfs.com -phpha.com -phphub.org -phpjiami.com -phpjiayuan.com -phpkaiyuancms.com -phpkoo.com -phpmianshi.com -phpok.com -phpor.net -phprpc.org -phpsong.com -phpspider.org -phpstat.net -phpstudy.net -phpv.net -phpvar.com -phpvod.com -phpweblog.net -phpwind.com -phpwind.net -phpxs.com -phpyun.com -phys.net -physicalchina.vip -physoe.com -phyt88.com -phyy.com -pi7.com -pianhd.com -pianohl.com -pianona.com -pianoun.com -piantou.net -pianyit.com -pianyiwan.com -pianziweb.com -piao.com -piao.tips -piao88.com -piao88.net -piao95.com -piaobuy.com -piaochong.com -piaodaren.com -piaode.ren -piaodian.net -piaodown.com -piaohua.com -piaojubao.com -piaolia.com -piaoliang.com -piaoliusan.com -piaoniu.com -piaoquantv.com -piaoshen.com -piaotian.org -piaotian5.com -piaotongyun.com -piaowutong.cc -piaoxian.net -piaoxingqiu.com -piaoyi.org -piaoyun.net -piaozhilan.com -piaozone.com -piasy.com -pic138.com -pic16.com -pic21.com -pic3733.com -pic720.com -picatown.com -picbling.com -picc.com -piccamc.com -picchealth.com -piccjs.com -piclabo.xyz -picooc.com -picosmos.net -picp.io -picp.net -picsays.com -pictureknow.com -picup.shop -picxiaobai.com -picyq.com -pidcn.com -pieeco.com -piekee.com -piekee.net -pieshua.com -pifa333.com -pifukezaixian.com -pig4cloud.com -pigai.org -pigcms.com -pigji.com -pigjian.com -pigqq.com -pigx.vip -pigyun.com -pihitech.com -piikee.net -piimg.com -piios.com -piis.pw -pikacn.com -pilaipiwang.com -pili-zz.net -pilidns.com -pilifu.com -pilifx.com -pimaoji.com -pimei.com -pin-color.net -pin-qu.com -pin0312.com -pin18pin.com -pin2eat.com -pin5i.com -pinbaitai.com -pinbang.com -pinbayun.com -pincai.com -pinchain.com -pinduoduo.com -pinduoduo.net -pineprint.com -ping-jia.net -ping-qu.com -zygg.cc -pingan.com -zygames.com -pingancdn.com -pinganfang.com -pinganwj.com -pinganyun.com -pinganzhengyang.com -pingcap.com -pingcode.tech -pingcoo.com -pingfangx.com -pingfenbang.com -pinggu.com -pinggu.org -pingguobaoxiu.com -pingguodj.com -pingguolv.com -pinghe.com -pinghu.tech -pinghui-cn.com -pingjiata.com -pingnanlearning.com -pingnuosoft.com -pingpang.info -pingpangwang.com -pingpingw.com -pingpingze.com -pingplusplus.com -pingpongx.com -pingshu8.com -pingshuku.com -pingshuocoal.com -pingstart.com -pingtan6.com -pinguo.us -pingwest.com -pingxiaow.com -pingxuan123.com -pingxx.com -pingyin.cc -pinhaohuo.com -pinhuba.com -pinhui001.com -pinidea.co -pinjiaolian.com -pinjie.cc -pinkecity.com -pinkertech.com -pinkobaby.com -pinkoichina.com -pinla.com -pinlian.net -pinmanduo.com -pinmh.com -pinmie.com -pinmuch.com -pinpai1.com -pinpaidadao.com -pinpailiu.com -pinpaime.com -pinpaing.com -pinqugongxiangktv.com -pinqukeji.com -pinshan.com -pinshu.com -pintu360.com -pintuan.com -pintuer.com -pintuxiu.net -pinuc.com -pinyuan.cc -pinyuew.com -pinyuncloud.com -pinzhi.org -pinzhikeji.net -pinzs.com -pioneersci.com -pipa.com -pipacdn.com -pipacoding.com -pipahealth.com -pipapai.com -pipaw.com -pipaw.net -pipedetect.com -pipikou.com -pipimp3.com -pipipan.com -pipipifa.com -pipiti.com -pipix.com -pipsemi.com -piqs.com -piscesys.com -pisx.com -pix73.com -pixelauth.com -pixhey.com -pixivic.com -pixivic.net -piyingke.com -piyipiba.com -pj-road.com -pj.com -pj00001.com -pj155.com -pjbest.com -pjf.name -pjgjg.com -pjhome.net -pjhubs.com -pjjyzx.com -pjlyds.com -pjob.net -pjrcn.com -pjrunfutang.com -pjtime.com -pk052.com -pk106.com -pk1xia.com -pk2234.com -pk361.com -pk532.com -pk571.com -pk855.com -pk995.com -pkbeta.com -pkbff.com -pkbhandari.com -pkbigdata.com -pkbkok.com -pkdyplayer.com -pkfj.xyz -pkfsxh.com -pkgklk.com -pkm360.com -pkmmo.com -pko123.com -pkoplink.com -pkpk.com -pkpky.com -pkpmsoft.com -pksfc.com -pksky.com -pku-hit.com -pku-lvxin.com -pku666.com -pkubr.com -pkucare.com -pkufh.com -pkulaw.com -pkulaws.com -pkupuzzle.art -pkurc.com -pkusky.com -pkusp.com -pkuszh.com -pkvs.com -pkzx.com -plaidc.com -plalzhang.com -planckled.com -planetmeican.com -plantname.xyz -plantower.com -plateno.cc -plateno.com -platenogroup.com -platinum-traveller.com -platinumchina.com -play-analytics.com -zyfj.com -play68.com -play700.com -play86.com -play910.com -play920.com -playbeta.net -playcomet.jp -playcrab.com -playfifa.com -playgm.cc -playlu.com -playnail.com -playpangu.com -playpi.org -playsm.com -playstudy.com -playtai.com -playtai.net -playuav.com -playwonderful.com -playwxgame.com -playyx.com -plcdn.net -plcent.com -plcloud.com -plesk-cn.com -plexpt.com -plngan.net -plob.org -plotcup.com -plqdf.com -plsadx.com -pluosi.com -plures.net -zyfchina.com -plusgantt.com -plusplustu.com -plutuspay.com -pluvet.com -plycd.com -plyz.net -pm-summit.org -pm222.com -pm25.com -pm25.in -pm265.com -pm28.com -pm360.com -pm360.net -pmacasia.com -pmcaff.com -pmceo.com -pmdak.com -pmdaniu.com -pmichina.org -pmish-tech.com -pmkiki.com -pmovie.com -pmparkchina.com -pmphmooc.com -pmptuan.com -pmquanzi.com -pmr66.com -pmsmzyy.com -pmsra.com -pmtalk.club -pmtoo.com -pmtown.com -pmway.com -pmxprecision.com -pmxsd.com -pmyes.com -pmyuanxing.com -pn1waq.com -pn66.com -pnetp.org -pngbag.com -pngui.com -pnlyy.com -pnol.net -pnwww.com -pnxs.com -pnzpw.com -po.co -pobaby.net -pobasoft.com -pocidian.com -pocketdigi.com -pocketuni.net -pocomagnetic.com -pocosite.com -pocsuite.org -podaaec.cyou -podinns.com -podjiasu.org -poem88.com -poemaster.com -poemfk.com -poemlife.com -pohaier.com -pohover.com -poikm.com -poikuri.com -poizon.com -poj.org -pokemmc.com -pokemon-unitepgame.com -pokermate.net -poketec.com -pokooo.com -polaris-vc.com -polars.cc -polarxiong.com -polaxiong.com -polayoutu.com -polebrief.com -polingba.com -poluoluo.com -polycent.com -polycn.com -polycom-china.com -polycom-jl.com -polyhotel.com -polytheatre.com -polytheatresz.com -polyv.net -polywuye.com -pomears.com -pomoho.com -ponley.com -ponycool.com -ponytest.com -ponytestqd.com -ponytestsh.com -ponytestsz.com -poo1.club -pooban.com -poobbs.com -poocg.com -pooioo.com -pook.com -pookcdn.com -poorren.com -pooy.net -pop-bags.com -pop-fashion.com -pop-shoe.com -pop136.com -pop800.com -popasp.com -popdg.com -popgo.org -popiano.org -popkart.tv -popkx.com -popmart.com -popmsg.com -popoho.com -popoxiu.com -poppace.com -poppur.com -popqiu.com -popsoft.com -popu.org -popumed.com -poputar.com -popziti.com -porlockz.com -porschesky.com -portablesoft.org -ports-intl.com -portugal-visacenter.com -pos580.com -posbar.com -zyfbjzsc.com -poseidong.com -posfree.com -posge.com -posn.net -post183.net -posterlabs.com -postgres.fun -postgresqlchina.com -postjson.com -postpony.com -potevio.com -potianji.net -potplayer.org -potplayercn.com -pouchcontainer.io -poweizu.com -power-bd.com -power-sensor.com -powerapp.io -powerbibbs.com -powercdn.com -powercx.com -powerde.com -powereasy.net -powerex1.com -poweric-china.com -powerlaw.ai -powerleadercdn.com -powerleaderidc.com -powerskystudio.com -powervision.me -powerxene.com -powsir.com -powzamedia.com -pozou.com -pp-xxgd.com -pp.cc -pp100.com -pp130.com -pp1o.com -pp25.com -pp250.com -pp51.com -pp6.cc -pp63.com -pp66.cc -pp8.com -pp9l.com -ppbizon.com -ppcall.com -ppchuguan.com -ppcode.com -ppcost.com -ppdai.com -ppdaicdn.com -ppdd.com -ppdesk.com -ppdqk.com -ppduck.com -ppfeng.com -ppfw.org -ppgame.com -pphimalayanrt.com -ppio.cloud -ppj.io -ppjtc.net -ppkankan01.com -ppkanshu.com -ppkao.com -pplib.net -pplive.com -ppliwu.com -pplock.com -ppm2.com -ppmake.com -ppmm.org -ppmoney.com -ppnames.com -pppet.net -pppie.com -pppoevps.com -pppoo.com -ppppic.com -ppqq.net -pps.tv -ppsao.com -ppsimg.com -ppsoftw.com -ppspain.com -ppsport.com -ppstream.com -ppstream.net -ppstv.com -ppswan.com -ppt118.com -ppt123.net -ppt20.com -ppt360.com -ppt920.com -pptair.com -pptbest.com -pptboss.com -pptbz.com -pptelf.com -ppthi-hoo.com -pptianliao.com -pptjia.com -pptmall.net -pptmao.com -pptmind.com -pptok.com -pptschool.com -pptstore.net -pptsupermarket.com -pptutor.com -pptv.com -pptvyun.com -pptxy.com -ppurl.com -ppvi.net -ppvod.net -ppwan.com -ppwang.com -ppwwyyxx.com -ppx520.com -ppxclub.com -ppxs.net -ppxvod.com -ppxwo.com -ppys.net -ppzhan.com -ppzhilian.com -ppzuche.com -ppzuowen.com -pqdtcn.com -pqpo.me -pqt-bearing.com -pqyhigh.com -pqylow.com -pqymiddle.com -pqzhichan.com -prcedu.com -prcee.org -pre-sence.com -pre6qh.com -precise-test.com -precision-biz.com -prefer-tyl.site -preludeid.com -premedglobal.com -pressmine.com -prestodb-china.com -prestolite-bj.com -prfc-cn.com -prfog.com -pricl.com -primegoalgroup.com -primerachina.com -primeton.com -print86.com -printer-china.com -printerwhy.net -printhome.com -printidea.art -printlake.com -prior24.com -privateadx.com -privatess.win -privspace.net -prjdrj.com -pro6e.com -procar.cc -processon.com -zyexhibition.com -productivity.wiki -proginn.com -program.today -programfan.com -programmer.group -programmer.ink -programschool.com -progressingeography.com -project-oa.com -projectaker.com -projector-window.com -prolto.com -promisingedu.com -pronax.tech -propsad.com -proresearch.org -prositsole.com -protect-file.com -prototype.im -providence-chemicals.com -prowritingteam.com -proximabeta.com -proya-group.com -proya.com -proyy.com -prts.wiki -prxxff.com -przhushou.com -przwt.com -ps123.net -ps265.com -ps314.com -psbc.com -psc4d.com -pscddos.com -psd.net -psd8.com -psdiv.com -pse-meti.com -pshsoutlet.com -psjxty.com -psnine.com -psoneart.com -pstatp.com -pstips.net -pstxg.com -psy-1.com -psychcn.com -psychspace.com -psyzg.com -psznh.com -pszx.com -pt-bus.com -pt-link.com -pt80.com -pt80.net -ptausercontent.com -ptbus.com -ptc-asia.com -ptcloud.info -ptcxmy.com -ptdsh.com -ptfdc.com -ptfish.com -pthc1.com -pthc8.com -pthxuexi.com -ptimg.org -ptkill.com -ptmind.com -ptorch.com -ptotour.com -ptpcp.com -ptshare.org -ptteng.com -ptweixin.com -ptxz.com -ptyg.com -ptyly.com -ptyqm.com -pua.hk -puaas.com -puaihospital.net -puasu.com -puata.info -pubchn.com -pubg8x.com -pubghelper.com -pubgtool.com -publiccms.com -pubmed007.com -pubone.cc -pubsage.com -pubukeji.com -pubuo.com -pubyun.com -pucms.com -pudn.com -pudongwater.com -puduzhai.com -puem.org -puer10000.com -puercha.cc -puercn.com -puertea.com -puhuacapital.com -puhuahui.com -puiedu.com -pujia8.com -pujiaba.com -pujiahh.com -pukalteng.com -pukinte.com -pule.com -pulisi.com -pullwave.com -pullword.com -pullywood.com -puloud.com -pumpvip.com -punaide.com -punakong.com -punchbox.info -puoke.com -pupuapi.com -pupugo.com -pupumall.com -pupumall.net -pupurazzi.com -pupuwang.com -purcotton.com -purcow.com -pureage.info -pureasme.com -purecpp.org -pureh2b.com -purenyy.com -purewhite.io -puronglong.com -pusa123.com -push2u.com -pushauction.com -pushcfg.com -pushgrid.net -pushjoy.com -pushthink.com -pushtime.net -putaoa.com -putaocdn.com -putaogame.com -putaojiu.com -putclub.com -putdb.com -putian508.com -putiandai.com -putitt.com -putonsoft.com -putop.net -puusa.net -puwenlong.com -puworld.com -puyurumen.com -puzeyf.com -pv001.net -pv4b.com -pvc123.com -pvcpanel-mzq.com -pvkj.com -pvpin.com -pw1999.com -pw88.com -pwmis.com -pwmqr.com -pword.net -pwrd.com -pwsannong.com -px0571.com -px5a.com -pxb7.com -pxc33.com -pxcn168.com -pxdier.net -pxemba.com -pxhuiben.com -pxtop1.com -pxtsc.com -pxtu.com -pxtx.com -pxx.io -py-axa.com -py1080p.com -py1314.com -py168.com -py3study.com -py94.com -pyadx.com -pyasfunds.com -pychina.org -pyddd.com -pyer.site -pyhead.com -pyjia.com -pyjsh.com -pyjtjx.com -pyker.com -pylist.com -pyneo.com -pyou.com -pysmei.com -pystarter.com -pytgo.com -python-china.com -python100.com -python51.com -pythonav.com -pythonclub.org -pythondoc.com -pythoner.com -pythonheidong.com -pythonke.com -pythonpub.com -pythontab.com -pythontip.com -pytorchtutorial.com -pytpw.com -pyxjiang.com -pyxk.com -pyxww.com -pyynsm.com -pz6.com -pzcgw.com -pzds.com -pzhccb.com -pzjdimg.com -pzjiadian.com -pzlink.com -pznews.com -pznrfsy.com -pznsh.com -pzoom.com -pzpu.com -q-alumni.com -q-dazzle.com -q-supreme.com -q1.com -q1qfc323.com -q1qq2.com -q2ak.com -q2d.com -q2zy.com -q3060.com -q5.com -q6993.com -q6haqi.com -q6u.com -q77777777.com -qacn.net -qalex.com -qapi.cc -qaqgame.com -qast.com -qaxanyu.com -qaxanyuv6.com -qaxcloudwaf.com -qaxwzws.com -qazxsdc.com -qb5.tw -qb5200.co -qbangmang.com -qbb6.com -qbdgame.com -qbeenslee.com -qbitai.com -qbjrxs.com -qbox.me -qbox.net -qbview.com -qbxz.com -qc-hr.com -qc178.com -qc188.com -qc6.com -qcc.com -zyecp.com -qccip.com -qccost.com -qccr.com -qccrm.com -qcds.com -qcenglish.com -qchdlb.com -qches.com -qchouses.com -qcinterfacet.com -qckuaizhi.com -qcloud-edumall.com -qcloud.com -qcloud.la -qcloudapps.com -qcloudcdn.com -qcloudcjgj.com -qcloudclass.com -qcloudcos.com -qclouder.com -qcloudestate.com -qcloudgme.com -qcloudimg.com -qcloudipv6.com -qcloudmail.com -qcloudmarket.com -qcloudns.com -qcloudsmartiot.com -qcloudtcic.com -qcloudtiw.com -qcloudtrip.com -qcloudtt.com -qcloudwaf.com -qcloudwzgj.com -qcloudzygj.com -qcmrjx.com -qcmuzhi.com -qcoco.com -qconbeijing.com -qconshanghai.com -qcplay.com -qcq3.com -qcql.com -qcr.cc -qcr365.com -qcsdn.com -qcsj.com -qcstudy.com -qctsw.com -qcwan.com -qcwdpt.com -qcwhxx.com -qcwlpay.com -qcwlseo.com -qcwxjs.com -qcy.com -qcymall.com -qcyoung.com -qczb.app -qczj.xyz -qd-metro.com -qd-weimob.com -qd256.com -qd8.com -qdac.cc -qdaeon.com -qdaiduo.com -qdaily.com -qdairlines.com -qdairport.com -qdbdsk.com -qdcaijing.com -qdccb.com -qdccdl.com -qdcdpjw.com -qdcu.com -qdcypf.com -qdcz.com -qddfxfpx.com -qddown.com -qddsjx.com -qdfuns.com -qdgaoshanyun.com -qdgw.com -qdgxqrc.com -qdhantang.com -qdhmsoft.com -qdhonmon.com -qdhsty.com -qdingnet.com -qdjimo.com -qdjjwsjf.com -qdjxhz.com -qdkebang.com -qdkingst.com -qdkmjc.com -qdkongtiao.com -qdlanrun.com -qdliye.com -qdlongre.com -qdmama.net -qdmcxh.com -qdmm.com -qdnsyh.com -qdooc.com -qdpdjx.com -qdpr.com -qdqihang.com -qdqunweite.com -qdsay.com -qdsbx.com -qdshitangchengbao.com -qdsxtkj.com -qdsysj.com -qdtech.ai -qdtgood.com -qdthgs.com -qdwebim.com -qdwenxue.com -qdwsb.com -qdxfgy.com -qdxtcw.com -qdycdx.com -qdyckj.com -qdyijiamei.com -qdymjy.com -qdyudie.com -qdyxbyy.com -qdzhengkang.com -qdzmm.com -qdznjt.com -qdzxyy.com -qdzz.com -qechu.com -qeebike.com -qeejoo.com -qeeka.com -qeeniao.com -qeerd.com -qefee.com -qeodns.com -qeodns.net -qerwsoft.com -qeto.com -qf027.com -qfamilylaw.com -qfang.com -qfangimg.com -qfcm.vip -qfedu.com -qfeiche.com -qfgolang.com -qfihdr.com -qfpay.com -qfq.me -qfrost.com -qfrxyl.com -qfsh.com -qfsyj.com -qftouch.com -qfun.com -qg.net -qg108.com -qgbnzb.com -qgbzyzl.com -qgcyjq.org -qgenius.com -qggfji.com -qgggxxw.com -qgpx.com -qgren.com -qgsydw.com -qgtql.com -qgvps.com -qgw.tm -qgxl.org -qgysj.org -qgyyzs.net -qgzzz.com -qh-cdn.com -qh-lb.com -zyea.com -qh.la -qh24.com -qh5800.com -qhass.org -qhbtv.com -qhcdn.com -qhchcb.com -qhclass.com -qhcz.net -qhd.net -qhdatongnews.com -qhdfxkj.com -qhdgjj.com -qhdglc.com -qhdnews.com -qhdok.com -qhdren.com -qhea.com -qhee-ma.com -qhee.com -qhfx.net -qhgxq.com -qhgy.net -qhimg.com -qhimgs0.com -qhimgs1.com -qhimgs2.com -qhimgs3.com -qhimgs4.com -qhimgs5.com -qhimgs6.com -qhimi.com -qhjyks.com -qhkyfund.com -qhlhfund.com -qhliepin.com -qhlingwang.com -qhlly.com -qhlyou.com -qhm123.com -qhmed.com -qhmsg.com -qhnet.club -qhnet.site -qhnews.com -qhong.net -qhpcc.com -qhpk.net -qhpta.com -qhrcsc.com -qhres.com -qhres2.com -qhrmyy.net -qhscw.net -qhsetup.com -qhsklw.com -qhstatic.com -qhsxf.net -qhtibetan.com -qhtycp.com -qhtyzx.com -qhupdate.com -qhwh.com -qhwmw.com -qhwww.com -qhxmlyts.com -qhxyms.com -qhyccd.com -qhyzzzs.com -qi-che.com -qi-ju.com -qi-wen.com -qi58.com -qiaiju.com -qiaiou.com -qiak.com -qiakr.com -qialol.com -qian-gua.com -qianba.com -qianbao.com -qianbaocard.com -qianbaohr.com -qianchengriben.com -qiandaoapp.com -qiandaqian.com -qiandd.com -qianduan.com -qianduanblog.com -qiandw.com -qianfan123.com -qianfan365.com -qianfanwanmu.com -qianfanyun.com -qiang100.com -qiangbus.com -qiangchezu.com -qiangchuan.com -qiangdun.com -qianggen.com -qianggou5.com -qiangidc.vip -qiangka.com -qianglihuifu.com -qiangmi.com -qiangpinzhe.com -qiangqiang5.com -qiangrongkg.com -qianhai12315.com -qianhaiaiaitie.com -qianhaibs.com -qianhuanhulian.com -qianhuaweb.com -qianhujz.com -qianinfo.com -qianjia.com -qianjiapp.com -qianjiayue.com -qianjin5.com -qianjing.com -qianju.org -qianka.com -qianliao.net -qianliao.tv -qianliaowang.com -qianlima.com -qianlimafile.com -qianlimazb.com -qianlinkj.com -qianlong.com -qianluxiaoshuo.com -qianmaiapp.com -qianmaidao.com -qianmh.com -qianmi.com -qianmingyun.com -qianmo.info -qianmoqi.com -qianmu.org -qianng.com -qianniu.com -qianp.com -qianpailive.com -qianpen.com -qianpin.com -qianqi.net -qianqian.com -qianqiankeji.xyz -qianqiantao.com -qianqu.cc -qianrihong.net -qianrong.me -qianshanren.com -qiantucdn.com -qianvisa.com -qianwa.com -qianxiangbank.com -qianxibj.net -qianxin.com -qianxinet.com -qianxingniwo.com -qianxs.com -qianxun.com -qianxunclub.com -qianyan.biz -qianyan001.com -qianyanapp.com -qianyu56.com -qianyuangx.com -qianyue999.com -qianyuewenhua.xyz -qianyunyingyong.com -qianyuwang.com -qianzhan.com -qianzhan123.com -qianzhengbanliliucheng.com -qianzhengdaiban.com -qianzhengziliao.com -qianzhu8.com -qiao88.com -qiaobo.net -qiaobutang.com -qiaochucn.com -qiaodan.com -qiaofangyun.com -qiaofanxin.com -qiaohu.com -qiaohuapp.com -qiaohumall.com -qiaojiang.tv -qiaomaren.com -qiaomi.com -qiaomizi.vip -qiaomukeji.com -qiaoshenghuo.com -qiaotu.com -qiaoxuanhong.com -qiaoyi.org -qiaozuji.com -qiaqa.com -qiaqiafood.com -qiawei.com -qibazaixian.com -qibingdaojia.com -qibo168.com -qibookw.com -qibosoft.com -qibuge.com -qibuluo.com -qicaispace.com -qicaitechan.com -qicaixianhua.com -qichacha.co -qichacha.com -qichacha.net -qichamao.com -qichecailiao.com -qichechaoren.com -qichegeyin.com -qichehot.com -qichemoxing.net -qichetansuo.com -qichetong.com -qichexin.com -qichezhan.net -qichuang.com -qicolor.com -qicp.net -qicp.vip -qida100.com -qidasoft.com -qidewang.com -qidian.com -qidianbox.com -qidiandasheng.com -qidianjob.com -qidianla.com -qidiantu.com -qidic.com -qidimjg.com -qidisheng.com -qidisheng.net -qidiwang.com -qidong.name -qidongyx.com -qidou.com -qie.tv -qiecdn.com -qieerxi.com -qiekj.com -qieman.com -qiepai.com -qieta.com -qieying.com -qieyou.com -qieyuedu.com -qiezip.com -qifake.com -qifandianlansh.com -qifangw.com -qifawang.com -qifeiye.com -qifub.com -qifuedu.com -qifun.com -qigongworld.net -qiguo.com -qiguoread.com -qih.cc -qihaoip.com -qihaxiaoshuo.com -qihihi.com -qihoo.com -qihoo.net -qihu.com -qihu.org -qihuapi.com -qihucdn.com -qihuiwang.com -qihuorumen.com -qii404.me -qiieer.net -qiigame.com -qijee.com -qiji.tech -qijiadianzi.com -qijian99.com -qijianzs.com -qijiapay.com -qijiarui-test.com -qijiayoudao.net -qijilvxing.com -qijishow.com -qijizuopin.com -qijoe.com -qijuan.com -qijucn.com -qikan.com -qikanmulu.com -qikanw.com -qikegu.com -qikekeji.com -qikoo.com -qikqiak.com -qiku-cloud.com -qiku.com -qikuailianwang.com -qikucdn.com -qikula.com -qilang.net -qilanxiaozhu.co -qilanxiaozhu.net -qilanxiaozhu.vip -qilecms.com -qiliaokj.com -qilindao.com -qiling.org -qilingames.com -qilinxuan.net -qilitech.ltd -qilong.com -qilongtan.com -qiluhospital.com -qiluhua.com -qiluivf.com -qiluyidian.mobi -qiluyidian.net -qima-inc.com -qiman5.com -qiman6.com -qimao.com -qimaomh.com -qimhua.com -qimi.com -qimiaomh.com -qimiaosenlin.com -qimiaozhiwu.com -qimihe.com -qiming.tech -qimingcx.com -qimingdao.com -qimingpian.com -qimingvc.com -qimingventures.com -qimingzi.net -qiminzi.com -qimodesign.com -qimser.com -qinbangherb.com -qinbei.com -qinbing.com -qinblog.net -qincai.com -qincaigame.com -qinchacha.com -qincj.me -qinco.net -qineasy.com -qiner520.com -qinfan.xyz -qing-shan.com -qing.su -qing5.com -qingbh.com -qingcache.com -qingcdn.com -qingchenyu.com -qingchu.com -qingchunbank.com -qingcigame.com -qingclass.cc -qingclass.com -qingclasscdn.com -qingcloud.com -qingcongxiaoyuan.com -qingdan.com -qingdaochina.org -qingdaograndtheatre.com -qingdaogxt.com -qingdaokohap.com -qingdaomaidige.com -qingdaomedia.com -qingdaomuseum.com -qingdaonews.com -qingdaoren.com -qingdaoticai.com -qingf001.com -qingfanqie.com -qingflow.com -qingfo.com -qingful.com -qingfuwucdn.net -qingfuyun.com -qinggl.com -qingguo.com -qinghe.tv -qinghua.cc -qinghua2017.com -qinghuaonline.com -qinghuaxuezi.com -qinghuo.net -qingjiaocloud.com -qingju.com -qingkan.tw -qingkeji.com -qingkuaipdf.com -qingkuw.com -qinglanji.com -qingliange.com -qingliangkeji.com -qinglin.net -qingliulan.com -qinglm.com -qinglue.net -qingman5.com -qingmang.mobi -qingmayun.com -qingmei.me -qingmo.com -qingmob.com -qingmuit.com -qingnianlvxing.com -qingnianwang.com -qingpanduola.com -qingpinji.com -qingqikeji.com -qingqin.com -qingrenw.com -qingruanit.net -qingshou.online -qingshow.net -qingsj.com -qingsong123.com -qingsongchou.com -qingstor.com -qingsucai.com -qingtaoke.com -qingtengzhilian.com -qingtian16265.com -qingtiancms.net -qingting.fm -qingting123.com -qingtingfm.com -qingtingip.com -qingtingtrip.com -qingtuan.tech -qinguanjia.com -qingwawa.com -qingwk.com -qingxiaoyun.com -qingxuetang.com -qingxun.com -qingyougames.com -qingzhanshi.com -qingzhiwenku.com -qingzhouaote.com -qingzhouip.com -qingzhu.co -qiniu.com -qiniu.in -qiniu.io -qiniuapi.com -qiniucdn.com -qiniudn.com -qiniudns.com -qiniukodo.com -qiniup.com -qiniupkg.com -qiniutek.com -qiniuts.com -qinlake.com -qinms.com -qinpu.com -qinqiang.org -qinqin.com -qinqinxiaobao.com -qinsilk.com -qinsmoon.com -qinto.com -qinwanghui.com -qinxing.xyz -qinxue.com -qinxue100.com -qinxue365.com -qinxuye.me -qinyi.net -qinzc.me -qinzhe.com -qinzhou8.com -qinzidna.com -qinziheng.com -qionghaif.com -qiongming.com -qipai007.com -qipaifan.com -qipamaijia.com -qipayuan.com -qipeiren.com -qipeisyj.com -qipeng.com -qiqici.com -qiqids.com -qiqipu.com -qiqiuyu.com -qiqiuyun.net -qiqu.la -qiquhudong.com -qire123.com -qiredy.com -qiremanhua.com -qirexiaoshuo.com -qirui.com -qisaoba.com -qisbook.com -qiseqiao.com -qishixitong.com -qishixunmei.com -qishu.co -qishu.tw -qishu.vip -qishunbao.com -qishuta.net -qisool.com -qita.love -qitete.com -qiti88.com -qitian-tech.com -qitiancom.com -qitongxq.com -qitoon.com -qitxt.com -qiu-ai.com -qiubiaoqing.com -qiucinews.com -qiudian.net -qiue21.com -qiufaqf.com -qiufengblog.com -qiugouxinxi.net -qiujiaoyou.net -qiujuer.net -qiujunya.com -qiukuixinxi.com -qiumei100.com -qiumeiapp.com -qiumibao.com -qiumijia.com -qiuqiusd.com -qiushi.com -qiushibaike.com -qiushibang.com -qiushile.com -qiushiwl.com -qiushu.cc -qiushuzw.com -qiusuoge.com -qiutianaimeili.com -qiutianmi.com -qiuweili.com -qiuwen.wiki -qiuwu.net -qiuxue360.com -qiuyexitong.com -qiuyueban.com -qiuzhang.com -qiuzhijiangtang.com -qiuziti.com -qiwen001.com -qiwenhui.com -qixia.ltd -qixin.com -qixin007.com -qixin18.com -qixin19.com -qixincha.com -qixing123.com -qixingcr.com -qixingquan.com -qixingtang.com -qixoo.com -qixuny.com -qiye.la -qiye.net -qiye163.com -qiye8848.com -qiyegongqiu.com -qiyeku.com -qiyeshangpu.com -qiyeshangpu.net -qiyetong.com -qiyeweixin.com -qiyewenhua.net -qiyeyougou.com -qiyeyouxiang.net -qiyi.com -qiyicc.com -qiyimusic.com -qiyipic.com -qiyou.com -qiyouji.com -qiyoujiage.com -qiyouwang.com -qiyouworld.com -qiyouzy.com -qiyqh.com -qiytech.com -qiyuange.com -qiyucloud.com -qiyue.com -qiyuebio.com -qiyuesuo.com -qiyujiasu.com -qiyukf.com -qiyukf.net -qiyukid.com -qiyuntong.com -qiyutianxia.com -qizhanming.com -qizheplay.com -qizhidao.com -qizhihaotian.com -qizhuyun.com -qizi.la -qizuang.com -qj023.com -qj26.com -qjbian.com -qjcz.com -qjfy.com -qjhlw.com -qjhm.com -qjimage.com -qjkc.net -qjmotor.com -qjrc.com -qjren.com -qjsb88.com -qjsmartech.com -qjtrip.com -qjwenming.com -qjwhzs.com -qjxgold.com -qjystang.com -qk365.com -qkagame.com -qkan.com -qkang.com -qkblh.com -qkcdn.com -qkeke.com -qkhtml.com -qking.ink -qkkjd.com -qkl123.com -qknown.com -qksw.com -qktoutiao.com -qkvop.com -qkzj.com -ql-cellbank.com -ql-msx.com -ql18.mobi -ql1d.com -ql361.com -ql361.shop -ql47.com -ql789.com -qlbchina.com -qlbg.net -qlchat.com -qldzj.com -qlelectrons.com -qlgpy.com -qlidc.com -qlivecdn.com -qll-times.com -qlmoney.com -qlotc.net -qlpw.net -qlrc.com -qls.fun -qlspx.com -qlteacher.com -qluu.com -qlwmw.com -qlxiaozhan.com -qm000.com -qm120.com -qm989.com -qmacro.com -qmail.com -qmango.com -qmcaifu.com -qmconfig.com -qmei.me -qmei.vip -qmhd87.com -qmht.com -qmht.mobi -qmiaomh.com -qmqm.net -qmrobot.com -qmsjmfb.com -qmtj.net -qmtk.com -qmtv.com -qmwtp.com -qmwyy.com -qmyq.com -qmz5.com -qmzs.com -qnbar.com -qncyw.com -qnfuli.com -qngcjx.com -qngslb.com -qnhdkj.com -qnhuifu.com -qnjslm.com -qnl1.com -qnmlgb.tech -qnqcdn.com -qnqcdn.net -qnsb.com -qnsdk.com -qnssl.com -qntz.cc -qnvod.net -qnydns.com -qnydns.net -qolai.com -qooboo.com -qoocc.com -qooic.com -qookar.com -qoqaoligei.com -qoqkkhy.com -qosq.com -qp110.com -qp46.com -qp666.com -qpaimg.com -qpb187.com -qpdiy.com -qpgame.com -qplus.com -qpoc.com -qpstar.com -qpxiaoshuo.com -qpzq.net -qq-xmail.com -qq.cc -zye.cc -qq.com -qq.design -qq.do -qq.net -qq123.xin -qq163.cc -qq163.com -qq163.net -qq190.com -qq2009.com -qq387.com -qq499.com -qq5.com -qq52o.me -qq5818.com -qq717.com -qq7c.com -qq933.com -qqaiqin.com -qqaku.com -qqan.com -qqba.com -qqbiaoqing.com -qqbiaoqing8.com -qqbibile.com -qqcf.com -qqcg.com -qqcjw.com -qqdcw.com -qqddc.com -qqdeveloper.com -qqdiannao.com -qqdiannaoguanjiadl.com -qqdna.com -qqe2.com -qqeo.com -qqgameapp.com -qqgamedesign.com -qqgb.com -qqgd.com -qqgexing.com -qqgexingqianming.com -qqgx.com -qqgyhk.com -qqhao123.com -qqhbx.com -qqhelper.net -qqhot.com -qqhubei.com -qqhuhu.com -qqjay.com -qqje.com -qqjia.com -qqjjsj.com -qqju.com -qqjyo.com -qqkqw.com -qqkrmotors.com -qqku.com -qqkuyou.com -qqleju.com -qqlxb.com -qqma.com -qqmail.com -qqmcc.org -qqmda.com -qqmra.com -qqmtc.com -qqmusic.com -qqnn.net -qqodjn.com -qqokk.com -qqopenapp.com -qqpao.com -qqpifu.com -qqppt.com -qqq.tv -qqqiyemail.com -qqqiyeyouxiang.com -qqqnm.com -qqqooo.com -qqqqqqqqqqqqq.com -qqrain.com -qqread.com -qqride.com -qqrizhi.com -qqro.com -qqsgame.com -qqshidao.com -qqshuoshuo.com -qqsk.com -qqsm.com -qqsort.com -qqssly.com -qqstudent.com -qqsurvey.net -qqswzx.com -qqt.com -qqteacher.com -qqtest.com -qqtf.com -qqtlr.com -qqtn.com -qqtouxiangzq.com -qqtu8.com -qqtz.com -qqu.cc -qqumall.com -qqurl.com -qqwechat.com -qqwmly.com -qqwmx.com -qqwxmail.com -qqwys.net -qqx.com -qqxmail.com -qqxs.la -qqxs5200.com -qqxsnew.com -qqxsnew.net -qqxsw.co -qqxsw.info -qqxsw.la -qqxww.com -qqxy100.com -qqxzb-img.com -qqxzb.com -qqy189.com -qqyewu.com -qqymail.com -qqyou.com -qqyouju.com -qqyy.com -qqzby.net -qqzhi.com -qqzi.net -qqzl.cc -qqzonecn.com -qqzsh.com -qqzzz.net -qr25.com -qrbtf.com -qrcdn.com -qrcpu.com -qrmanhua.com -qroad.cc -qrtest.com -qrx.cc -qs12315.com -qs921.com -qsacg.vip -qsbank.cc -qsbbs.net -qsbdc.com -qsboy.com -qscdn.com -qscfph.com -qschou.com -qsebao.com -qseeking.com -qsfcw.com -qshang.com -qskretkf.com -qsmis.com -qspfw.com -qspfwadmin.com -qss-lb.com -qssec.com -qstatic.com -qstbg.com -qstsking.com -qsw.la -qsw521.com -qswhcb.com -qswzayy.com -qsxi.com -qszs.com -qszt.com -qszt.net -qt-ly.com -qt56yun.com -qt6.com -qt86.com -qtav.org -qtbig.com -qtccolor.com -qtcn.org -qtconcerthall.com -qtdebug.com -qtdream.com -qter.org -qthmedia.com -qthnews.com -qtj5.com -qtlcdn.com -qtlcdncn.info -qtlcn.com -qtlglb.com -qtlglb.info -qtlgslbcn.info -qtmojo.com -qtonghua.com -qtool.net -qtrun.com -qtshe.com -qtshu.com -qtshu.la -qttc.net -qtumist.com -qtvcd.com -qtx.com -qtyd.com -qtymyy.com -qu.la -qu02.com -qu247.com -qua.com -quan.mx -quan007.com -quan365.com -quanbailing.com -quanben.com -quandangdang.net -quandashi.com -quanduoduo.com -quanfangtong.net -quanfangtongvip.com -quanfeng.tech -quanguoban.com -quanji.la -quanji.net -quanji55.com -quanjiao.net -quanjing.com -quanjingke.com -quankexia.com -quanlaoda.com -quanlaodaonline.com -quanlego.com -quanmaihuyu.com -quanmamaimg.com -quanmeipai.com -quanmin-game.com -quanmin.tv -quanmin110.com -quanminbagua.com -quanminbb.com -quanminfu.com -quanminyanxuan.com -quanqiuwa.com -quanquanapp.net -quanr.com -quanriai.com -quansheng-group.com -quanshi.com -quanshuge.com -quansucloud.com -quantacn.com -quantaoyougou.com -quantiku.org -quantil.com -quantuantuan.com -quantum-info.com -quanxi.cc -quanxiangyun.com -quanxiaoshuo.com -quanyin.xyz -quanzhanketang.com -quanzhi.com -quanzhifu.net -quanziapp.com -quarkbook.com -quarkers.com -quasarchs.com -quazero.com -quba360.com -qubaike.com -qubaobei.com -qubiankeji.com -qucai.com -qucaiad.com -qucaidd.com -qucaigg.com -quce001.com -quceaiqing.com -quchao.net -quchaogu.com -quchew.com -quclouds.com -qudah5.com -qudao.com -qudao168.com -qudaowuyou.com -qudaowuyou04.com -qudayun.com -qudingshui.com -qudong.com -qudong51.net -qudushu.com -quduzixun.com -quectel.com -queenl.com -quegame.com -quegui.run -queji.tw -quelingfei.com -queniuaa.com -queniuak.com -queniubg.com -queniubm.com -queniucf.com -queniuck.com -queniudns.com -queniudns.net -queniufm.com -queniuhy.com -queniuiq.com -queniuiy.com -queniukr.com -queniukt.com -queniukw.com -queniupl.com -queniuqy.com -queniurc.com -queniusa.com -queniuso.com -queniusy.com -queniusz.com -queniutc.com -queniuuf.com -queniuum.com -queniuwx.com -queniuyk.com -queqiaoba.com -queshao.com -queshu.com -questyle.com -questyleaudio.com -questyleshop.com -queyang.com -qufair.com -qufaya.com -qufeisoft.com -qufenqi.com -qufenqian.vip -qugame.com -qugongdi.com -quhaidiao.com -quhua.com -quhuaxue.com -quhuichang.net -quick-touch.com -quick-x.com -quickapi.net -quickbass.com -quickcan.com -quickcep.com -quickddns.com -quickjoy.com -quicklaser.com -quicklyopen.com -quicksdk.com -quicksdk.net -quickswan.com -quilimen.com -quimg.com -quji.com -qujianpan.com -qujie365.com -qujiemi.com -qujinhuo.com -qujishu.com -qujunde.com -qukaa.com -qukan.cc -qukanshu.com -qukantoutiao.net -qukantx.com -qukanvideo.com -quklive.com -qukuai.com -qukuaila.com -qulishi.com -qulv.com -qumaihuishou.com -qumaishu.com -qumaiyao.com -qumifeng.com -qumingdashi.com -qumingxing.com -qumitech.com -qun-net.com -qun.hk -qun100.com -qun7.com -quna.com -qunaer.com -qunale888.com -qunar.com -qunar.ink -qunarcdn.com -qunarzz.com -qunba.com -quncrm.com -qunfenxiang.net -qunhai.net -qunhei.com -qunhequnhe.com -qunjielong.com -qunkeng.com -qunliao.info -qunmi.vip -qunniao.com -qunonnet.com -qunsou.co -quntuishou.com -qunxingvc.com -qunyingkeji.com -qunyouxuan.com -qunzh.com -qunzou.com -quora123.com -qupaibei.com -qupaicloud.com -qupeiyin.com -qupingce.com -qupuji.com -quqi.com -quqike.com -quqiuhun.com -ququabc.com -ququyou.com -ququzhu.com -qusem.com -qushiw.com -qushixi.net -qushoumiao.com -qutaiwan.com -qutanme.com -qutaojiao.com -qutaovip.com -quthing.com -qutoutiao.net -qutouwang.com -qutu.com -qutuiwa.com -quumii.com -quvisa.com -quwaifu.com -quwan.com -quwangming.com -quweikm.com -quweiwu.com -quwenqing.com -quwenqushi.com -quwentxw.com -quwj.com -quwm.com -quwuxian.com -quxds.com -quxianchang.com -quxianzhuan.com -quxingdong.com -quxiu.com -quxuan.com -quxuetang.net -quyaoya.com -quyinginc.com -quyiyuan.com -quyouhui.net -quyu.net -quyundong.com -quzhiwen.com -quzhuanxiang.com -quzz88.com -quzzgames.com -qvip.net -qvkanwen.com -qvlz.com -qvpublish.com -qw5599.com -qweather.com -qweather.net -qwfync.com -qwgt.com -qwimm.com -qwolf.com -qwomcrm.com -qwpo2018.com -qwq.kim -qwq.moe -qwq.ren -qwqk.net -qwqoffice.com -qwsy.com -qwxcs.com -qwxsw.com -qwzhe.com -qx1000.com -qx10086.net -qx100years.com -qx121.com -qx162.com -qxbnkj.com -qxbx.com -qxcu.com -qxdaojia.com -qxiu.com -qxka.com -qxkp.net -qxlib.com -qxnav.com -qxnecn.com -qxnic.com -qxnzx.com -qxsdq.com -qxslyfjq.com -qxswk.com -qxueyou.com -qxw.cc -qxwz.com -qxxsjk.com -qxyaoc.com -qxzxp.com -qy-office.com -qy-qq.com -qy.net -qy266.com -qy6.com -qyc2008.com -qycn.com -qycn.net -qycn.org -qycname.com -qydimg.com -qydns1.com -qyec.com -qyer.com -qyerstatic.com -qyestar.com -qyg12.com -qyg30.com -qyg9.com -qyglzz.com -qygzbxpt.com -qyham.com -qyiliao.com -qyjks.com -qyjmmtc.com -qyjpzx.com -qykh2009.com -qykodo.com -qyle1.com -qymgc.com -qyous.com -qypiayer.xyz -qyrb.com -qysd.net -qysfl.com -qysgf.com -qysuliao.com -qyt1902.com -qytdesign.com -qytst.com -qytxhy.com -qyule.org -qyunapp.com -qywww.net -qyxgyu.com -qyxxpd.com -qyyqyj.com -qyzba.club -qyzc.net -qyzlgame.com -qz100.com -qz123.com -qz828.com -qz96811.com -qzbbs.com -qzbigstone.com -qzbonline.com -qzbuxi.com -qzcb.com -qzccbank.com -qzcklm.com -qzclfc.com -qzdatasoft.com -qzdyyy.com -qzh56.com -qzhlkj.net -qzhmzx.com -qzj2.com -qzjcd.com -qzjkw.net -qzjlw.com -qzkey.com -qzlo.com -qznews360.com -qzone.cc -qzone.com -qzoneapp.com -qzqstudio.com -qzrbx.com -qzrc.com -qzrx.net -qzshangwu.com -qzwb.com -qzxdianzi.com -qzxkeji.com -qzxx.com -qzyb.com -qzyxzs.com -qzze.com -qzzn.com -qzzres.com -qzzsbx.com -r-tms.net -r12345.com -r147emh.com -r1x1.com -r1y.com -r220.cc -r2coding.com -r2g.net -r2yx.com -r369.co -r51.net -r5k.com -r5tao.com -r77777777.com -ra2.com -ra2ol.com -rabbitpre.com -rabbitpre.me -race604.com -racing-china.com -radicalmail.net -radida.com -radio1964.com -radiotj.com -radiowar.org -radius-america.com -raeblog.com -rahisystems-cn.com -raidc.com -rail-transit.com -railcn.net -rails365.net -rain8.com -raina.tech -rainasmoon.com -rainbond.com -rainbow.one -rainbowcn.com -rainbowred.com -rainbowsoft.org -rainclassroom.com -raindi.net -raineggplant.com -rainersu.club -rainhz.com -rainlain.com -rainmanfloor.com -rainwe.com -rainyun.com -raisecom.com -raisedsun.com -raisinsta.com -raiyi.com -rajax.me -rakinda-xm.com -ralf.ren -ramadaplaza-ovwh.com -ramboplay.com -ramostear.com -ran10.com -random-online.com -ranfenghd.com -rangercd.com -rangnihaokan.com -ranhou.com -rankaiyx.com -rankingonline.jp -ranknowcn.com -ranling.com -rantu.com -ranwen.tw -ranwena.com -ranzhi.net -ranzhi.org -raoke.net -raonie.com -raorao.com -rapidppt.com -rapoo.com -rapospectre.com -rarcbank.com -rarelit.net -rashost.com -raspigeek.com -rastargame.com -rata-catering.com -rationmcu.com -ratuo.com -ravendb.me -ray-joy.com -ray8.cc -raychien.site -raycom-inv.com -raycuslaser.com -raydonet.com -raygame3.com -raygame4.com -rayjoy.com -rayli.com -raymx-micro.com -rayoptek.com -rayps.com -rayrjx.com -raysilicon.com -raythonsoft.com -raytoon.net -rayuu.com -rayyo.com -rayyzx.com -razrlele.com -raztb.com -rb400.com -rbbko.com -rbbrao.com -rbischina.org -rbqq.com -rbz1672.com -rbzygs.com -rc114.com -rc3cr.com -rccchina.com -rcdang.com -rcdn.fun -rcfans.com -rcgus.com -rchudong.com -rclbbs.com -rcpx.cc -rcss88.com -rcuts.com -rcw0375.com -rcwl.net -rcyd.net -rcyxdk.com -rczfang.com -rczhuyu.com -rczp.org -rd-game.com -rd351.com -rdamicro.com -rdbom.com -rdbuy.com -rddoc.com -rdfybk.com -rdgz.org -rdhyw.com -rdidc.com -rdnsdb.com -rdplat.com -rdsdk.com -rdsqs.net -rdtuijian.com -rdwork.com -rdxmt.com -rdyjs.com -rdzjw.com -rdzs.com -rdzx.net -reabam.com -reachace.com -react-china.org -react.mobi -read678.com -readboy.com -readceo.com -readdsp.com -readend.net -readers365.com -readfree.net -readgps.com -readhb.com -readhr360.com -readhub.me -readm.tech -readmeok.com -readmorejoy.com -readnos.com -readnovel.com -readpai.com -readpaper.com -readpaul.com -readten.net -readu.net -readwithu.com -ready4go.com -reaer.com -reai120.com -realcybertron.com -realforcechina.com -reallct.com -reallylife.com -realme.com -realmebbs.com -realmedy.com -realmemobile.com -realor.net -realsee-cdn.com -realsee.com -realshark.com -realsun.com -realtorforce.ca -realxen.com -reasonclub.com -rebatesme.com -rebo5566.com -rechaos.com -recolighting.com -recordpharm.com -recovery-transfer.com -recoye.com -recuvachina.com -recycle366.com -redatoms.com -redbaby.com -redcome.com -redcross-hx.com -redcross-sha.org -redefine.ltd -redelegation.net -redflag-linux.com -redhome.cc -redhongan.com -redhtc.com -redianduanzi.com -redianmao.com -redianyule.com -redianzixun.com -rediao.com -redicecn.com -redidc.com -redisbook.com -redisfans.com -redisguide.com -redisinaction.com -redjun.com -rednetdns.com -redocn.com -redoop.com -redoufu.com -redpact.com -redphon.com -redream.com -redredsquare.com -redrock.team -redsh.com -redshu.com -redstonewill.com -redsun-rp.com -redyue.com -redyue.org -reebbwi.cyou -reedoun.com -reeidc.com -reeiss.com -reeji.com -reekly.com -reenoo.com -reenoo.net -reeoo.com -refined-x.com -refineidea.com -reformdata.org -refractorywin.com -reg007.com -regengbaike.com -regexr-cn.com -reglogo.net -regtm.com -rehtt.com -rehuwang.com -rejoiceblog.com -rejushe.com -rekonquer.com -rekoo.com -rekoo.net -rela.me -relangba.com -relianfit.com -reloadbuzz.com -relxtech.com -relxyanyou.com -rely87779777.com -remaijie.net -remapcity.com -remark.dance -remax-bj.com -remeins.com -rememtek.com -remo-ai.com -remoteaps.com -remotedu.com -renaren.com -renatabonar.com -rencaiaaa.com -rencaijob.com -rendajingjiluntan.com -renderbus.com -renderincloud.com -rendna.com -renegade-project.org -renhence.com -renji.com -renjian.com -renjiaoshe.com -renjiyiyuan.com -renlijia.com -renliwang.xyz -renliwo.com -renmaiku.com -renmaitong.com -renminkaiguan.com -renniaofei.com -renping.cc -renqibaohe.com -renren-inc.com -renren.com -renren.io -renren3d.com -renrenbang.com -renrenbeidiao.com -renrenche.com -renrencou.com -renrendai.com -renrendoc.com -renrenfinance.com -renrening.com -renrenmoney.com -renrenpeizhen.com -renrenshipu.com -renrensousuo.com -renrenstudy.com -renrentou.com -renrentrack.com -renrentui.com -renrenyee.com -renrk.com -renrzx.com -rensheng123.com -rensheng2.com -rensheng5.com -rent.work -rentiantech.com -rentixuewei.com -renwen.com -renwuyi.com -renxueyanjiu.com -renyiwei.com -renyufei.com -renzha.net -reocar.com -repai.com -repaiapp.com -repanso.com -repian.com -repianimg.com -replays.net -replicated.cc -reptilesworld.com -resccske.cyou -resheji.com -resistor.today -resowolf.com -respect-lab.com -respondaudio.com -respusher.com -resset.com -resuly.me -retailo2o.com -retalltech.com -retiehe.com -retouchpics.com -return.net -returnc.com -reverselove.com -rew65.com -rewnat.xyz -reworlder.com -rewuwang.com -rexcdn.com -rexdf.org -rexinyisheng.com -rexsee.com -rexueqingchun.com -reyinapp.com -reyoo.com -reyun.com -rf-gsm.com -rf.hk -rfaexpo.com -rfc2cn.com -rfchina.com -rfchost.com -rfcreader.com -rfdl88.com -rfdy.hk -rfeyao.com -rffan.info -rffanlab.com -rfhhzx.com -rfidcardcube.com -rfidfans.com -rfidtech.cc -rfk.com -rfmwave.com -rfsister.com -rfthunder.com -rg950.com -rgb128.com -rgdhgdf.com -rgfc.net -rgoo.com -rgrcb.com -rgslb.com -rgyun.com -rgznworld.com -rh98.com -rhce.cc -rhce.net -rhctwy.com -rhhz.net -rhkj.com -rhsj520.com -rhtimes.com -rhusen03.com -rhyme.cc -ri-china.com -riaway.com -ribaoapi.com -ribaow.com -ribenbang.com -ribencun.com -ribenshi.com -ricebook.com -ricefish.io -ricequant.com -rich-chang.com -rich-futures.com -rich-healthcare.com -richeninfo.com -richiecn.com -richinfer.net -richkays.com -richong.com -richtech123.com -richtj.com -ricklj.com -rickyfabrics.com -rickyid.com -rickysu.com -ricterz.me -rightknights.com -rightpaddle.com -rigol.com -rigouwang.com -riitao.com -riji001.com -rijigu.com -rijiwang.com -rilvtong.com -rilzob.com -rim20.com -rinbowe.com -ringdoll.com -rinlink.com -rinvay.cc -ripic.xyz -rippleos.com -rippletek.com -risc-v1.com -riscv-mcu.com -riscv.club -risecenter.com -risechina.org -riselinkedu.com -risencn.com -risesoft.net -risfond.com -rishao.com -rishiqing.com -rishuncn.com -riskivy.com -risunsolar.com -riswing.com -ritao.hk -ritaomeng.com -ritarpower.com -ritering.com -rivergame.net -rixin.info -riyuexing.org -riyuezhuan.com -riyugo.com -riyujob.com -riyurumen.com -riyutool.com -rizhao9.com -rizhaociming.com -rizhaokjg.com -rizhiyi.com -rizhuti.com -rj-bai.com -rj.link -rj889.net -rjdk.org -rjghome.com -rjh0.com -rjhcsoft.com -rjoy.com -rjreducer.com -rjs.com -rjsjmbwx.com -rjsos.com -rjty.com -rjzxw.com -rkanr.com -rkaq110.com -rkdatabase.com -rkeji.com -rkgaming.com -rkkgyy.com -rksec.com -rkvir.com -rl-consult.com -rlair.net -rlkj.com -rlkj.net -rlnk.net -rlsofa.net -rlwyjf.com -rlydw.com -rlyl.net -zycultura.com -rmb.sh -rmcteam.org -rmejk.com -rmhospital.com -rmjtxw.com -rmlxx.com -rmnof.com -rmryun.com -rmsznet.com -rmttjkw.com -rmtyun.com -rmwxgame.com -rmxiongan.com -rmxsw.cc -rmzs.net -rmzt.com -rmzxb.com -rn-hswh.com -rnbqvet.com -rnfengwo.com -rngtest.com -rnhqxh.com -ro4.cc -ro50.com -road-group.com -roadjava.com -roadlady.com -roadoor.com -roadsigngroup.com -robam.com -robei.com -robook.com -roborock.com -robot-china.com -robotedu.org -robotplaces.com -rock-chips.com -rockbrain.net -rockemb.com -rockerfm.com -rockflow.tech -rockjitui.com -rockru.com -rockx.pub -rocky.hk -rockyaero.com -rockyenglish.com -roclee.com -roffar.com -roguelitegames.com -rohm-chip.com -roidmi.com -rojewel.com -rokid.com -rokidcdn.com -rokub.com -roland-china.com -rollingstone.net -rollupjs.com -rom100.com -rom333.com -romens.cloud -romhui.com -romjd.com -romleyuan.com -romphone.net -romzhijia.net -romzj.com -roncoo.com -rondygroup.com -rong-edge.com -rong360.com -ronganjx.com -rongba.com -rongbiz.com -rongbiz.net -rongbst.com -rongcfg.com -rongchain.com -rongchenjx.com -rongdasoft.com -rongechain.com -ronghaosk.com -ronghope.com -ronghub.com -ronghuiad.com -ronghuisign.com -rongji.com -rongledz.com -ronglianmeng.net -ronglicloth.com -rongmei.net -rongnav.com -rongroad.com -rongshiedu.com -rongshu.com -rongshuxia.com -rongstone.com -rongtai-china.com -rongxinzh.com -rongyao666.com -rongyi.com -rongyiju.com -rongyizhaofang.com -rongzhitong.com -rongzhongleasing.com -rongzhongloan.com -rongzi.com -rontgens.com -roobo.com -roodoo.net -roof325.com -roogames.com -room365.com -roosur.com -root-servers.world -root1111.com -rootcloud.com -rootdata.com -rootguide.org -rootk.com -rootop.org -rootopen.com -rootzhushou.com -roouoo.com -roov.org -ror-game.com -rorotoo.com -ros-lab.com -rosabc.com -rosaryshelties.com -rosecmsc.com -rosedata.com -rosefinchfund.com -rosinson.com -rossoarts.com -rossoarts.net -rossroma.com -roswiki.com -roszj.com -rotom-x.com -rouding.com -roukabz.com -round-in.com -roundexpo.com -roundyule.com -roushidongwu.com -rousin.com -router.tw -routeryun.com -routewize.com -routuan.com -rowcan.com -zyctd.com -royole.com -royotech.com -rp-pet.com -rpa-cn.com -rpfieldcdn.com -rpg99.com -rpgmoba.com -rpjrb.com -rpo5156.com -rqi17.com -rqjrb.com -rqkr.com -rqz1.com -rr-sc.com -rr365.com -rrb365.com -rrbay.com -rrbus.com -rrcimg.com -rrcp.com -rrd.me -rrdaj.com -rree.com -rrfed.com -rrfmn.com -rrimg.com -rrjc.com -rrkf.com -rrkvip.com -rrky.com -rrl360.com -rrmeiju.com -rrmj.tv -rrmrm.com -rrppt.com -rrr.me -rrrdai.com -rrrrdaimao.com -rrrxz.com -rrs.com -rrscdn.com -rrswl.com -rrting.net -rrtsangel.com -rruu.com -rruu.net -rrxh5.cc -rrxiu.cc -rrxiu.me -rrxiu.net -rrxiuh5.cc -rrys.tv -rrzu.com -rrzuji.com -rrzxw.net -rs-xrys.com -rs485.net -rscala.com -rscloudmart.com -rsdgd.com -rsdwg.com -rsdyy.com -rsng.net -rss.ink -rsscc.com -rssmeet.com -rsty77.com -rsuedu.com -rsw163.com -rswiki.org -rsxc01.com -rszfg.com -rt-blend.com -rt-thread.io -rt-thread.org -rtahengtai.com -rtalink.com -rtb5.com -rtbasia.com -rtcdeveloper.com -rtfcode.com -rtfcpa.com -rtfund.com -rthpc.com -rtjxssj.com -rtmap.com -rtrrx.com -rtsac.org -rtsoup.com -rtxapp.com -rtxplugins.com -rtxuc.com -ru4.com -ruaimi.com -ruan8.com -ruancan.com -ruanduo.com -ruandy.com -ruanfujia.com -ruanjiandown.com -ruanjianwuxian.com -ruankao.com -ruanko.com -ruanman.net -ruanmei.com -ruanmou.net -ruantiku.com -ruanwen.la -ruanwenclass.com -ruanwenkezhan.com -ruanwenlala.com -ruanyuan.net -rubaoo.com -ruby-china.com -ruby-china.org -rubyconfchina.org -rubyer.me -ruchee.com -ruchu.club -rudangla.com -rueinet.com -rufei.ren -rufengso.net -ruffood.com -rufida.com -rugao35.com -ruguoapp.com -ruhnn.com -ruian.com -ruibai.com -ruichuangfagao.com -ruicitijian.com -ruidaedu.com -ruideppt.com -ruideppt.net -ruidongcloud.com -ruidroid.xyz -ruifang-tech.com -ruihaimeifeng.com -ruihuo.com -ruiii.com -ruijiehuanbao.com -ruijienetworks.com -ruijiery.com -ruijinginfo.com -ruijinintl.com -ruikesearch.com -ruimao.xyz -ruiqicanyin.com -ruiscz.com -ruisizt.com -ruitairt.com -ruitian.com -ruitiancapital.com -ruiwant.com -ruiwen.com -ruixiangbest.com -ruixing.cc -ruixuesoft.com -ruixueys.com -ruixunidc.com -ruixunidc.net -ruiyang-ra.com -ruiyuanobserve.com -ruiyunit.com -ruizong-gz.com -rujiazg.com -ruketang.com -rulejianzhan.com -rulesofsurvivalgame.com -rumt-sg.com -rumt-zh.com -runcmd.com -runcome.com -rundamedical.com -runde666.net -rundejy.com -rundongex.com -rundvalve.com -runexception.com -runfox.com -runhe.org -runhuayou.biz -runjf.com -runjiapp.com -runker.net -runker.online -runmang.com -runnar.com -runnerbar.com -runningcheese.com -runningls.com -runnoob.com -runnuokeji.com -runoob.com -runpho.com -runsheng.com -runsisi.com -runsky.com -runtimeedu.com -runtimewh.com -runtronic.com -runwise.co -runwith.cc -runxinzhi.com -runzi.cc -ruochu.com -ruohuo.net -ruokuai.com -ruoren.com -ruoshui.com -ruoxia.com -ruoyi.vip -ruozedata.com -ruqimobility.com -rushb.net -rushi.net -rushivr.com -rushmail.com -russellluo.com -ruthus.com -ruubypay.com -ruvar.com -ruvisas.com -ruxi.online -ruyig.com -ruyigu.com -ruyile.com -ruyim.com -ruyimjg.com -ruyiqiming.com -ruyishi.com -ruyo.net -ruyu.com -ruyuexs.com -ruzw.com -rv28.com -rv2go.com -rvcore.com -rvfdp.com -rvkol.com -rvmcu.com -rwtext.com -rwxqfbj.com -rxbj.com -rxgl.net -rxhui.com -rxian.com -rxjhbaby.com -rxjiasu.com -rxjt.co -rxjy.com -rxohsn.xyz -rxshc.com -rxys.com -ry.rs -ry018.com -ry0663.com -ry1116.com -ryanbencapital.com -rybbaby.com -ryc360.com -rydth5.com -ryeex.com -rygjaqjaq.com -ryjer.com -ryjiaoyu.com -ryjoin.com -rylinkworld.com -rymooc.com -rypeixun.com -rypenwu.com -rysdline.com -rytad.com -rytx.com -ryweike.com -ryxiut.net -ryxxff.com -ryyqh.com -ryyyx.com -rz.com -rz1158.com -rzcdc.com -rzcdz2.com -rzfanyi.com -rzhuaqiangu.com -rzline.com -rzok.net -rzrc114.com -rzsie.com -rzspx.com -rzszp.com -rzwssy.com -rzx.me -rzzyfw.com -s-02.com -s-ns.com -s-reader.com -s-sgames.com -s-ts.net -s06661.com -s135.com -s163.com -s1979.com -s1craft.com -s2ceda.com -s2cinc.com -s4g5.com -s4yd.com -s575.com -s5ex.com -s5tx.com -s72c.com -s8dj.com -s8x1.com -s8xs.com -s936.com -s9523.com -s95r.com -s98s2.com -s9yun.com -sa-ec.com -sa-log.com -sa20.com -sa8zdui.com -sa96.com -saad-alhusayen.com -saasddos.com -saasops.tech -saasruanjian.com -saaswaf.com -saayaa.com -sablog.net -sac-china.com -sacdr.net -sact-digital.com -sae-china.org -saebbs.com -saen.com -saf158.com -safdsafea.com -safecenter.com -safehoo.com -safejmp.com -safenext.com -sagetrc.com -sagigame.net -sahcqmu.com -saibeiip.com -saibeinews.com -saibo.com -saiboauto.com -saic-audi.mobi -saic-gm.com -saicdt.com -saicgmac.com -saicgroup.com -saicjg.com -saicmaxus.com -saicmobility.com -saicmotor.com -saicyun.com -saiday.com -saifou.com -saigao.fun -saihuahong.com -saihuitong.com -saike.com -saikr.com -sail.name -sail2world.com -saili.science -sailingyun.com -saimogroup.com -sainacoffee.com -saintcos.hk -saintic.com -saipu88.com -saipujianshen.com -saipujiaoyu.com -sairaicc.com -sairui020.com -saitjr.com -saiyouedu.net -saiyunyx.com -sakesi.club -sakway.com -salasolo.com -saleoilpaintings.com -salogs.com -salonglong.com -salongweb.com -samanlehua.com -same-tech.com -samebar.com -samhotele.com -saming.com -samirchen.com -samsunganycar.com -samsungcloudcn.com -samsunghealthcn.com -samsungyx.com -samyuong.com -samzhe.com -san-health.net -san-petersburgo.net -san-sheng.net -sancanal.com -sancunrenjian.org -sandaha.com -sandai.net -sandaile.com -sandbean.com -sandcomp.com -sandeepin.com -sandianzhong.com -sanduoyun.com -sandworld.net -sandwych.com -sanen.online -sanfen666.com -sanfengyun.com -sanfo.com -sanfu.com -sangfor.com -sangfor.net -sangfor.org -sangforcloud.com -sangfordns.com -sangongzai.net -sangsir.com -sanguobbs.com -sanguocard.com -sanguoh5.com -sanguohero.com -sanguosha.com -sanguozz.com -sanhao.com -sanhaofushi.com -sanhaoradio.com -sanhaostreet.com -sanhe-scale.com -sanhucidiao.cc -sanjiang.com -sanjiasoft.com -sanjieke.com -sanjinjiake.com -sanjun.com -sankengriji.com -sankgo.com -sankougift.com -sankuai.com -sanlan123.com -sanliu2021.com -sanliwenhua.com -sanpowergroup.com -sanpuzhiyao.com -sanqin.com -sanqindaily.com -sanqinyou.com -sanqiu.org -sanquan.com -sansancloud.com -sansanyun.com -sansky.net -santaihu.com -santelvxing.com -santezjy.com -santiwang.com -santiyun.com -santongit.com -santostang.com -santsang.com -sanweimoxing.com -sanweiyiti.org -sanwen.com -sanwen.net -sanwen8.com -sanwer.com -sanxia-china.com -sanxiapharm.com -sanxige.com -sanxinbook.com -sanyachloe.com -sanyafz.com -sanyamotor.com -sanyanblockchain.com -sanyastar.com -sanyexin.com -sanygroup.com -sanyhi.com -sanyipos.com -sanyoutj.com -sanyuanbaobao.com -sanyuantc.com -sanyuesha.com -sanzang5.net -sanzangwang.com -sanzei.com -sao-ma.com -saoic.com -saolife.com -saomadang.com -saoniuhuo.com -saopu.com -saoso.com -saowen.net -sap-nj.com -sap1000.com -saraba1st.com -sarafeehan.com -sarft.net -sass.hk -sasschina.com -sasscss.com -sasseur.com -satrip.com -saturnbird.com -savokiss.com -savouer.com -sawenow.com -saxydc.com -sayabear.com -sayll.com -sayloving.com -saywash.com -sbanzu.com -sbc-mcc.com -sbeira.com -sbh15.com -sbk-h5.com -sbkh5.com -sbo8.com -sbr-info.com -sbrj.net -sbsjk.com -sbt123.com -sbwxz.com -sbzj.com -sc-jiaoyu.com -sc.gg -sc115.com -sc119.cc -sc157.com -sc1588.com -sc1618.com -sc2c.com -sc2car.com -sc2p.com -sc2yun.com -sc666.com -sc946.com -sc96655.com -scaffi.com -scala.cool -scanv.com -scarbbs.com -scarclinic-cn.com -scbaidu.com -scbao.com -scbh15.com -scbxmr.com -scbyx.net -scbz120.com -zycmfw.com -scccyts.com -sccin.com -scclssj.com -sccm.cc -sccnn.com -sccq.net -sccts.com -sccwz.com -scdbzzw.com -scdengbang.com -scdn1e8v.com -scdndsa6.com -scdnf80r.com -scdng.com -scdng8js.com -scdnj3in.com -scdnl3bk.com -scdnl9cm.com -scdnmogt.com -scdnn4t9.com -scdno5zl.com -scdnrlm1.com -scdnrvy1.com -scdnucc5.com -scdnurea.com -scdnygb7.com -scdri.com -scdzmw.com -scedu.net -sceeo.com -scenery.hk -scflcp.com -scfzbs.com -scgc.net -scgckj.com -scgglm.com -scgh114.com -scghseed.com -scgis.net -scgra.com -schengle.com -schezi.com -schneidercampus.com -scholarmate.com -scholat.com -school888.com -schoolpi.net -schove.com -schrb.com -schwarzeni.com -schwr.com -sci-hub.ee -sci-hub.ren -sci-hub.shop -sci-hub.tf -sci99.com -scichina.com -scicn.net -scidict.org -sciengine.com -scientrans.com -scies.org -scievent.com -scifans.com -scigy.com -scihubtw.tw -sciimg.com -sciirc.com -scijuyi.com -scimall.org -scimao.com -scinno-cn.com -scinormem.com -scio.icu -scipaper.net -sciping.com -sciscanpub.com -scisky.com -scistor.com -scitycase.com -sciyard.com -sciyon.com -scjhyq.com -scjjrb.com -scjyzb.net -scjzjyjc.com -scjzy.net -sclf.org -scmccboss.com -scmchem.com -scmeye.com -scmor.com -scmroad.com -scmsky.com -scmttec.com -scmxjs.com -scmylike.com -scnjnews.com -scnleee.com -scntv.com -sco-marathon.com -scodereview.com -scoee.com -scommander.com -scoregg.com -scpgroup.com -scplt.com -scqcp.com -scqiuchang.com -scrcu.com -scredcross.com -scriptcat.org -scriptjc.com -scrmtech.com -scrsw.net -scrumcn.com -scscms.com -scsdzxh.org -scsgk.com -scsjnxh.org -scsjsd.com -scsstjt.com -sctbc.net -sctcd.com -sctdzl.com -sctfia.com -sctobacco.com -sctszh.com -sctv.com -sctvf.com -scufida.com -scujj.com -scusec.org -scutde.net -scutsee.com -scuvc.com -scw98.com -scweixiao.com -scwj.net -scwlylqx.com -scwy.net -scxdf.com -scxyoa.com -scymob.com -scyongqin.com -scytyy.net -sczg.com -sczgzb.com -sczl123.com -sczlcts.com -sczprc.com -sczshz.net -sczsie.com -sczsxx.com -sczw.com -sczxmr.com -sczycp.com -sczyh30.com -sd-cellbank.com -sd-ex.com -sd-pic.com -sd-sma.com -sd-xd.net -sd-ysjt.com -sd11185.com -sd173.com -sd235.net -sd5g.com -sdadljx.com -sdailong.com -sdbao.com -sdbeta.com -sdbys.com -sdca119.com -sdchem.net -sdchina.com -sdchn.com -sdcqjy.com -sdcxsc.com -sdcyun.com -sddagongrubber.com -sddcp.com -sddengxiang.com -sddermyy.com -sddeznsm.com -sddh.online -sddrsji.com -sddzrljx.com -sde6.com -sdebank.com -sdeca.org -sdecloud.com -sdeerlive.com -sdenews.com -sdeqs.com -sderp.com -sdewj.com -sdey.net -sdfcxw.com -sdfhyl.com -sdfll.com -sdfmgg.com -sdg-china.com -sdgaoxing.com -sdgdwljt.com -sdgdxt.com -sdgh.net -sdgho.com -sdgongkao.com -sdgt1985.com -sdgude.com -sdguguo.com -sdgw.com -sdgwy.org -sdhangmoguan.com -sdhbcl.com -sdhdssd.com -sdhk2008.com -sdhoukang.com -sdhsg.com -sdhsie.com -sdhxnykj.com -sdiandian.com -sdiborn.com -sdiccapital.com -sdicin.com -sdicpower.com -sdicvc.com -sdiitu.com -sdiread.com -sditol.com -sdj-tech.com -sdjcw.com -sdjnwx.com -sdjtbd.com -sdjtcx.com -sdjushu.com -sdjzhc.com -sdkclick.com -sdkclickurl.com -sdklh.com -sdknext.com -sdksrv.com -sdlgjycm.com -sdlgzy.com -sdlinqu.com -sdljwomen.com -sdlldj.com -sdlongli.com -sdlvxing.com -sdly35.com -sdlz.tech -sdmic.com -sdmydcr.com -sdmyzsgs.com -sdnci.com -sdnfv.org -sdnjsbc.com -sdnlab.com -sdnxs.com -sdnysc.com -sdo-shabake.com -sdo.com -sdodo.com -sdongpo.com -sdoprofile.com -sdpku.com -sdqlkr.com -sdqmy.com -sdqoi2d.com -sdrcu.com -sdsgwy.com -sdshshb.com -sdsmefina.com -sdtdata.com -sdtrxx.com -sdtsrf.com -sdtvjiankang.com -sdtxmq.com -sdtzfmw.com -sduod.com -sdwcpm.com -sdwdxl.com -sdwenlian.com -sdwgyy.com -sdwscgs.com -zycits.com -sdxietong.com -sdxinboao.com -sdxitong.com -sdxjpc.com -sdxvisa.com -sdxyxhj.com -sdxzt.com -sdyhjszp.com -sdyinshuachang.com -sdyizhibi.com -sdylsc.com -sdyndcjx.com -sdynr.com -sdyuanbao.com -sdyyebh010.com -sdyypt.net -sdzbcg.com -sdzhidian.com -sdzk.co -sdzs.com -sdzsedu.com -sdzsyl.com -sdzxswhjygjlm.com -sea-group.org -sea-gullmall.com -sea789.com -seacatcry.com -seagulllocker.com -seaheart.cc -sealand100.com -sealeadbattery.com -sealyun.com -seamanhome.com -seaning.com -seanxp.com -seanya.com -seanyxie.com -seapard.com -search616.com -searchforit8.com -searchpstatp.com -searchtb.com -seaskyapp.com -seasouthgy.com -seassoon.com -seastarasset.com -seasungame.com -seasungames.com -seatonjiang.com -seavo.com -seayao.net -seayee.com -sebigdata.com -seblong.com -sebug.net -sec-wiki.com -secaibi.com -secbug.cc -secbug.org -seccw.com -secdoctor.com -secdriver.com -secec.com -secfree.com -secisland.com -secist.com -seclover.com -secoo.com -secooart.com -secooimg.com -secpulse.com -secretgardenresorts.com -secretmine.net -secrss.com -secrui.com -secshow.net -secsilo.com -sectigochina.com -secu100.net -zyccc.com -securitycn.net -securityeb.com -securityfrontline.org -securitypaper.org -secutimes.com -secwk.com -secwx.com -secxun.com -see-far.com -see-source.com -seebug.org -seebyleegee.com -seecmedia.net -seed-china.com -seedasdan.org -seeddsp.com -seedit.cc -seedit.com -seedland.cc -seedlandss.com -seedsufe.com -seefarger.com -seegif.com -seeingcare.com -seek114.com -seekbetter.me -seekchem.com -seekfunbook.com -seekhill.com -seekonly.net -seelvyou.com -seemmo.com -seemoread.com -seentao.com -seer520.com -seersee.com -seesawcoffee.com -seeseed.com -seeshentech.com -seetao.com -seewellintl.net -seewo.com -seewoedu.com -seexpo.com -seeyii.com -seeyon.com -seeyonoversea.com -seeyouhealth.com -seeyouyima.com -seezy.com -sefonsoft.com -segapi.com -segmentfault.com -segmentfault.net -segotep.com -segwayrobotics.com -seidns.com -seinfeldtv.com -seisman.info -sejai.com -sejianghu.com -sekede.net -sekorm.com -selboo.com -selfservicechina.com -selinuxplus.com -sell66.com -sellingexpress.net -selypan.com -sem123.com -semeye.com -semgz.com -semidata.info -semiee.com -semiinsights.com -semiway.com -sempk.com -semplus.org -semptian.com -sencdn.com -sencha-china.com -send2boox.com -senda360.com -sendbp.com -sendcloud.net -sendcloud.org -sendong.com -sendpioneer.com -sends.cc -senenwood.com -senfengg.com -senguo.cc -senguo.com -sengxian.com -seniverse.com -senlianshop.com -senlinjimore.com -senmeiju.com -senmiaoschool.com -senorsen.com -senra.me -sensate.hk -sense-hk.com -sensecn.com -senselock.com -senseluxury.com -sensertek.com -sensetime.com -senseyun.com -sensorlead.com -sensorsdata.com -sensorsdatavip.com -senszx.com -sentaijs.com -sentuxueyuan.com -senyou.com -senyuanhi.com -senyuanzhonggong.com -seo-820.com -seo.tm -seo123.net -seo628.com -seocxw.com -seodaniel.com -seofangfa.com -seohet.com -seoipo.com -seokoubei.com -seopath.net -seopeixun5.com -seopre.com -seosiguan.com -seosn.com -seosrx.net -seotcs.com -seowhy.com -seoxiaosai.com -seoxuetang.com -sepact.com -sepri.com -septinn.com -septwolves.com -sepu.net -sequ.biz -sequoiadb.com -serholiu.com -servasoft.com -serverless.ink -servicemesher.com -servicewechat.com -sesamestreetenglishchina.com -seseacg.com -sesier.com -seta5252.com -setbbts.cyou -seteuid0.com -seuic.com -sevdot.com -seven7777.eu -sevencdn.com -sevenseas-china.com -sevnday.com -sewise.com -sexytea2013.com -seyaose.net -seyuma-cn.com -sf-airlines.com -sf-bearing.com -sf-card.com -sf-cityrush.com -sf-dsc.com -sf-express.com -sf-financial.com -sf-pay.com -sf-saas.com -sf-zs.net -sf007.com -sf024.com -sf888.net -sfacg.com -sfb-100.com -sfbest.com -sfcar.hk -sfccn.com -sfcdn.org -sfddj.com -sfefqwq3.com -sfgj.org -sfgy.org -sfht.com -sfile2012.com -sfitcdp.com -sfjdml.com -sfkedu.com -sfkj.vip -sflep.com -sflqw.com -sfmianhua.com -sforest.in -sfoys.sbs -sfpgmk.com -sfplay.net -sfsigroup.com -sfvip1.com -sfwxf.com -sfyb.com -sfygroup.com -sfystatic.com -sfzj123.com -sg-micro.com -sg.work -sg169.com -sg560.com -sg8.cc -sg91.net -sg92.com -sgamer.com -sgcctd.com -sgcctop.com -sgchinese.com -sgcn.com -sgcn.org -sgcyjy.com -sgda.cc -sgdmobile.com -sge.sh -sghnny.com -sghxz.com -sgjwb.com -sgllk.com -sgmlink.com -sgmwlu.com -sgmwsales.com -sgnet.cc -sgnongkang.com -sgou.com -sgshero.com -sgsic.com -zybuluo.com -sgsugou.com -sgsxw.com -sguo.com -sgwk.info -sgyaogan.com -sgzhee.com -sgzm.com -sh-3ai.com -sh-anrong.com -sh-arpm.com -sh-autofair.com -sh-baolai.com -sh-deem.com -sh-dls.com -sh-eastwes.com -sh-game.com -sh-henian.com -sh-hilead.com -sh-holfer.com -sh-holiday.com -sh-hywin.com -sh-kechen.com -sh-kr.net -sh-ryjx.com -sh-service.com -sh-sfc.com -sh-shenou.com -sh-tangfeng.com -sh-warwick.com -sh-xinao.com -sh-xixuan.com -sh-yajia.com -sh-ybxhz.com -sh-yuy.com -sh-zbfm.com -sh.com -sh112.com -sh1122.com -sh414.com -sh5y.com -sh7.com -sh85gk.com -sh8y.com -sh9130.com -sh9156.com -sha-cun.com -sha-steel.com -sha2777.com -sha990.com -shaanxi56.com -shaanxijiankangyun.com -shaanxirk.com -shabc.net -shaca.net -shachong8.com -shacumox.com -shaddockfishing.com -shadowq.com -shaduizi.com -shafa.com -shafaguanjia.com -shaftgd.com -shahaizi.com -shahupark.com -shaidc.com -shailema.com -shairport.com -shaisino.com -shaizai.com -shallserve.cc -shamiao.com -shan-san.com -shan-yu-tech.com -shan.com -shanbay.com -shanbotv.com -shancemall.com -shanda960.com -shandagames.com -shandaz.com -shandianhuifu.com -shandianpan.com -shandjj.com -shandong-energy.com -shandongair.com -shandonghaiyang.com -shandongjuli.com -shandongruixiang.com -shandongsannong.com -shandongyunpin.com -shandw.com -shane-nanyang.com -shang-chain.com -shang0898.com -shang168.com -shang360.com -shangbaolai.com -shangbiao.com -shangbiao.store -shangbiaocheng.com -shangboo.com -shangbw.com -shangc.net -shangcaifanyi.com -shangdandan.com -shangdaotong.com -shangdiguo.com -shangdixinxi.com -shangdu.com -shangdu.info -shangeedu.com -shangeseo.com -shangeyun.com -shangfayuan.com -shangfox.com -shanggame.com -shanghai-air.com -shanghai-channel.com -shanghai-electric.com -shanghai-intex.com -shanghai-map.net -shanghaiairport.com -shanghaicaiyi.com -shanghaichannel.net -shanghaiconcerthall.org -shanghaicup.com -shanghaidaily.com -shanghaidisneyresort.com -shanghaihino.com -shanghaihuanli.com -shanghaiiot.org -shanghaik11.com -shanghaimart.com -shanghaimuseum.net -shanghainb.com -shanghaining.com -shanghaipower.com -shanghairanking.com -shanghairc.com -shanghairolexmasters.com -shanghaishuangyanpi.com -shanghaitianqi114.com -shanghaitower.com -shanghaiwater.com -shanghaixs.com -shanghaizhenji.com -shanghuiyi.com -shangji998.com -shangjialianpage6.win -shangjilian.com -shangjinssp.com -shangjinuu.com -shanglv51.com -shangpin.com -shangpintong.com -shangpo.com -shangpusou.com -shangpuzhan.com -shangqiulvxing.com -shangquanquan.com -shangque.com -shangrao-marathon.com -shangshaban.com -shangshangke.me -shangshi360.com -shangshici.com -shangshiwl.com -shangshuyixue.com -shangtao.net -shangtao360.com -shangtianhui.com -shangtongda.com -shanguansoft.com -shangusec.net -shangwb.com -shangwu168.com -shangxueba.com -shangyejihua.com -shangyekj.com -shangyeluoji.com -shangyexinzhi.com -shangyouze.com -shangyubank.com -shangyuer.com -shangzhang.com -shangzhibo.tv -shangzhushan.com -shanhaitujian.com -shanhaizhanji.com -shanhe.kim -shanhs.com -shanhu99.com -shanhuu.com -shanhuxueyuan.com -shanjianzhan.com -shanjinqh.com -shankejingling.com -shanliao.com -shanlink.com -shanliulian.com -shanmao.me -shannon-sys.com -shannonai.com -shanp.com -shanqu.cc -shanrongmall.com -shanse8.com -shanshanku.com -shanshoufu.com -shanshuihotel.com -shantoumama.com -shanweinews.net -shanweiyule.com -shanxicloud.net -shanxidiy.com -shanximuseum.com -shanxiol.com -shanxiumao.com -shanxiuxia.com -shanyemangfu.com -shanyetang.com -shanyhs.com -shanyishanmei.com -shanyougame.com -shanyuankj.com -shanzhen.com -shanzhen.me -shanzhildq.com -shanzhonglei.com -shaoanlv007.com -shaoerbc.org -shaogood.com -shaoke.com -shaolintagou.com -shaolinwy.com -shaoqun.com -shaoshilei.com -shaoyee.com -shaphc.org -shaqing.com -shaqm.com -share1diantong.com -share2dlink.com -share2uu.com -sharecharger.com -sharecore.net -sharedaka.com -shareditor.com -sharegog.com -shareinstall.com -shareinstall.net -sharejs.com -shareoneplanet.org -sharetome.com -sharetrace.com -sharevdi.com -sharewaf.com -sharewithu.com -sharexbar.com -sharingclass.vip -sharksci.com -sharkselection.com -sharpbai.com -sharpmobi.com -shartu.com -shasx.com -shawdo.com -shawdubie.com -shawnzeng.com -shaxian.biz -shayugg.com -shayujizhang.com -shb02.com -shbaimeng.com -shbangde.com -shbangdian.com -shbars.com -shbbq.net -shbear.com -shbg.org -shbicycle.com -shbike.com -shbj.com -shbnrj.com -shbobo.com -shbyer.com -shcaoan.com -shcas.net -shcc-horizon.com -shccig.com -shccineg.com -shccio.com -shcell.org -shchhukou.com -shcj88.com -shclearing.com -shcljoy.com -shcngz.com -shcs2010.com -shcsdljz.com -shcsdq.com -shcso.com -shcstheatre.com -shcxzc.com -shdancecenter.com -shdctp.com -shdjt.com -shdmt.net -shdrkj.com -shdsd.com -shdzby168.com -shdzfp.com -shebao.net -shebao5.com -shebao520.com -shebaotong.com -shebiaotm.com -sheboo.com -sheca.com -shedejie.com -shedoor.com -shedunews.com -sheencity.com -sheepmats.com -sheetgit.com -sheinet.com -sheji.com -shejibao.com -shejiben.com -shejidaren.com -shejihz.com -shejijia.com -shejijingsai.com -shejiku.net -shejiqun.com -shejis.com -shejiwo.net -shejiye.com -sheketiandi.com -shekou.com -shelive.net -shellsec.com -shelter-china.com -shelterdome.net -sheluyou.com -shelwee.com -shen321.com -shenanhui.com -shenbao.org -shenbinghang.com -shenbingyiyuan.org -shenchai.com -shenchuang.com -shencut.com -shendoow.com -shendu.com -shendugho.com -shenduliaojie.com -shenduwin10.com -shenduwin8.com -shengangzc.com -shengaohua.com -shengbangshenghua.com -shengbaoluo.com -shengbenzixun.com -shengcai.net -shengcaijinrong.com -shengdan.com -shengdaosoft.com -shengdaprint.com -shengdianhuadg.com -shengdianhuadk.com -shengejing.com -shengenv.com -shengfanwang.com -shenghan.org -shenghefilms.com -shengheplastic.com -shenghui56.com -shenghuo365.com -shenghuojia.com -shenghuorili.com -shenghuowo.com -shengjing360.com -shengjoy.com -shengjunshi.com -shenglan1101.com -shengli.com -shengming.net -shengniuuz.com -shengpay.com -shengqian51.com -shengqianlianmeng.net -shengqugames.com -shengren.work -shengsci.com -shengtaireli.com -shengtian.com -shengtongedu.com -shenguang.com -shengwu01.com -shengxiao.net -shengxin.ren -shengxinquan.net -shengyan985.com -shengyasd.com -shengyeji.com -shengyidi.com -shengzehr.com -shengzhaoli.com -shenhaiedu.com -shenhexin.com -shenhexin.vip -shenhongmao.com -shenhua.cc -shenhuagushi.net -shenjian.io -shenjianhui.com -shenjiballs.com -shenjing.com -shenkexin.com -shenkong.net -shenlanbao.com -shenliyang.com -shenma.com -shenmadsp.com -shenmayouxi.com -shenmikj.com -shenmou.com -shenou.com -shenpinwu.com -shenpucw.com -shenqhy.com -shenqibuy.com -shenqiwunet.com -shenquol.com -shenrongda.com -shenrongjidian.com -shenruan.org -shenshi777.com -shenshiads.com -shenshoucdn.com -shenshouwl.com -shenshouyouxi.com -shenshu.info -shenshuo.net -shenshuw.com -shensuantang.com -shensuokeji.com -shentongdata.com -shenweimicro.com -shenweisupport.com -shenweixiangjiao.com -shenxianhua.com -shenxianyu.cc -shenxingnet.com -shenyangoffice.com -shenyd.com -shenyecg.com -shenyehd.com -shenyou.tv -shenyu.me -shenyunlaw.com -shenzan.com -shenzaole.com -shenzhekou.com -shenzhen-world.com -shenzhenair.com -shenzhenfreesky.com -shenzhenjia.net -shenzhenmarathon.org -shenzhenshouxin.com -shenzhentong.com -shenzhentour.com -shenzhenware.com -shepai1688.com -shequfu.com -shequfu.net -shequnguanjia.com -sherc.net -sheshui.com -sheui.com -shevdc.org -shexiannet.com -sheyi8.com -sheying001.net -sheyingtg.com -shezaixian.com -shezhan88.com -shfangshui.com -shfcw.com -shfdyk.com -shfft.com -shfilmmuseum.org -shfinancialnews.com -shfq.com -shfrp.com -shftth.com -shganheng.com -shgao.com -shgaoxin.net -shgci.com -shgjj.com -shgk.com -shgsec.com -shgsic.com -shgskj.com -shgtheatre.com -shgyg.com -shhanqiao.com -shhdouyue.com -shheywow.com -shhgzf.com -shhorse.com -shhssts.com -shhuangding.com -shhuayi.com -shhuihai.com -shhuisd.com -shhuu.com -shhws.com -shhxf119.com -shhxzq.com -shhyhy.com -shhzcj.com -shi-ci.com -shi-ming.com -shi78.com -shianxin.net -shianzhixuan.com -shibaihui.org -shibeike.com -shibeiou.com -shibor.org -shicai.biz -shicaidai.com -shicaizhanlan.com -shichangbu.com -shichuedu.com -shichuihui.com -shici.store -shicihui.com -shicimingju.com -shicishe.com -shiciyun.com -shida66.com -shidaedu.vip -shidapx.com -shidastudy.com -shidi.org -shidianbaike.com -shidiao136.com -shidiao18.com -shidz.com -shifang.tech -shifangshike.com -shifen.com -shifendaojia.com -shifeng.com -shifenyuedu.com -shigaoshan.com -shige.group -shiguangkey.com -shiguangxu.com -shiguangyouju.com -shiguanvip.com -shij001.com -shijiala.com -shijian.cc -shijianla.com -shijiaok.com -shijicloud.com -shijie2.com -shijiebang.com -shijieditu.net -shijiehuarenbao.com -shijiemap.com -shijiemingren.com -shijieshangzuihaodeyuyan.com -shijiexia.com -shijieyouxi.com -shijieyunlian.com -shijifeifan.com -shijihengtai.com -shijihr.com -shijihulian.com -shijiong.com -shijiudao.com -shijuba.com -shijue.me -shijuechuanda.com -shijueju.com -shikang.net -shikee.com -shiku.co -shileizcc.com -shileizuji.com -shilian.com -shilian.net -shilicdn.com -shilipai.net -shilitie.net -shiliupo.com -shimano-fishchina.com -shimaowy.com -shiminjiaju.com -shimo.im -shimo.run -shimodev.com -shimolife.com -shimonote.com -shimonote.net -shimowendang.com -shine-ic.com -shineenergy.com -shinelink.vip -shinelon.com -shinerayad.com -shineu.com -shineway.com -shinewing.com -shineyie.com -shinianonline.com -shiningmidas.com -shiningnew.com -shinnytech.com -shinsoukun.com -shinycg.com -shinyway.org -shiove.com -ship56.net -shipfinder.com -shipgce.com -shiphr.com -shipinzhibojian.com -ships66.com -shipsc.org -shiptien247.com -shiptux.com -shipxy.com -shiqi.me -shiqichan.com -shiqichuban.com -shiqidu.com -shiqu.com -shiqutech.com -shishagame.com -shishangfengyun.com -shishihuihui.com -shishike.com -shisongya.com -shisukeji.com -shitac.com -shitianxia.vip -shitibaodian.com -shitoc.com -shitou.com -shitouboy.com -shitourom.com -shiwan.com -shiwangyun.com -shiweisemi.com -shiwusmd.com -shixiaojin.com -shixibiaozhi.com -shixijob.net -shixin.com -shixingceping.com -shixinhua.com -shixiseng.com -shixiu.net -shixunsuda.com -shixunwl.com -shiyan.com -shiyanbar.com -shiyanbar.net -shiyanbbs.com -shiyanhospital.com -shiyanjia.com -shiyanlou.com -shiyculture.com -shiye.org -shiyebian.net -shiyebian.org -shiyi.co -shiyi11.com -shiyibao.com -shiyide.com -shiyiyx.com -shiyongjun.biz -shiyouhome.com -shiyousan.com -shiyu.pro -shiyue.com -shiyuegame.com -shiyunlaile.com -shizhanxia.com -shizhuonet.com -shjdceo.com -shjgu.com -shjgxy.net -shjh120.com -shjhjc.com -shjob.work -shjsit.com -shjt.net -shjxfc.com -shjyou.com -shjyyx.com -shjzfutures.com -shkegai.net -shkingchem.com -shkkl.com -shkuangjing.com -shkypump.com -shl56.com -shlawserve.com -shlcxby.com -shld.com -shlgwy.com -shlll.net -shlmth.com -shlpk.com -shlungu.com -shmama.net -shmarathon.com -shmds.com -shmedia.tech -shmet.com -shmetro.com -shmiaosai.com -shmljm.com -shmog.org -shmulan.com -shmusic.org -shmxcz.org -shmylike.com -shnaer.com -shnb12315.com -shnczq.org -shneweye.com -shnsyh.com -shnti.com -shoasis.net -shobserver.com -shockerli.net -shoegaze.com -shoeshr.com -shojo.cc -shokan.org -shokw.com -shomyq.com -shootmedia.net -zyboe.com -shop2255.com -shop2cn.com -shop4taobao.com -shopbackdrop.com -shopchaoren.com -shopeesz.com -shopin.net -shopj.net -shopjyh.com -shoplazza.com -shopmaxmb.com -shopnc.net -shopplus.vip -shoprobam.com -shopxo.net -shopyy.com -shoubaodan.com -shouce.ren -shouce365.com -shoucheng123.com -shoucw.com -shoudayy.net -shoudian.com -shoudian.info -shoudian.org -shouduit.com -shoudurc.com -shoufaw.com -shoufm.com -shougongke.com -shouhoubang.com -shouji.com -shouji10086.com -shouji315.org -shouji56-img.com -shouji56.com -shoujibao.net -shoujiduoduo.com -shoujihuifu.com -shoujimi.com -shoujitouping.com -shoujiwan.com -shouliwang.com -shoumizhibo.com -shoumm.com -shouqianba.com -shouqiev.com -shouqu.me -shoushenlvcheng.com -shoutao.biz -shouxi.com -shouxi.net -shouxi88.com -shouxieti.com -shouxintec.com -shouyao.com -shouye-wang.com -shouyihuo.com -shouyou.com -shouyoubus.com -shouyoucdn.com -shouyoujz.com -shouyouqianxian.com -shouyoushenqi.com -shouyoutan.com -shouyoutv.com -shouyouzhijia.net -shouzan365.com -shouzhang.com -shouzhangapp.com -shouzhou365.com -shouzhuanfa.com -shouzhuanzhidao.com -shovesoft.com -show160.com -showapi.com -showapk.com -showchina.org -showcome.net -showdoc.cc -showerlee.com -showing9.com -showji.com -showjoy.com -showjoy.net -showmebug.com -showself.com -showstart.com -showxiu.com -showxue.com -showyu.com -shoyoo.com -shpans.com -shpanyou.com -shpd.net -shpgt.com -shpgx.com -shphschool.com -shppa.net -shppon.com -shqcplw.com -shqi7.net -shqianshuibeng.com -shqingzao.com -shqlty.com -shqmxx.com -shqswlgs.com -shqyg.com -shrail.com -shrbank.com -shrca.org -shrcb.com -shrcdy.com -shrenq.com -shrenqi.com -shrjoa.com -shrobotpark.com -shryjc.com -shryou.com -shsaic.net -shsbnu.net -shsby.com -shsci.org -shsee.com -shsgyq.com -shshilin.com -shshinfo.com -shshzu.com -shsipo.com -shsixun.com -shsjb.com -shskin.com -shsot.com -shssp.org -shsxjy.com -shtdgj.com -shtdsc.com -shtefu.com -shtfqx.com -shtgds.com -shtianhe.cc -shtic.com -shtimg.com -shtion.com -shtpin.com -shtrhospital.com -shtutian.com -shtw.cc -shtwjiebao.com -shtxcj.com -shu-ju.net -shu163.com -shuaigeshe.com -shuaihuajun.com -shuaiming.com -shuainiba.com -shuaishou.com -shuaishouzhuang.com -shuajb.com -shuaji.com -shuaji.net -shuajibang.net -shuajibao.com -shuajige.net -shuajizhijia.net -shuame.com -shuanghui.net -shuangkuai.co -shuangliusc.com -shuangmatbs.com -shuangmei2008.com -shuangtao.com -shuangxian.com -shuangxinhui.com -shuangyingsx.com -shuangyuejn.com -shuangzan.com -shuangzheng.org -shuashuaapp.com -shuax.com -shuazhibo.com -shubendi.com -shubiaob.com -shubulo.com -shubuzi.com -shucaixiaoshuo.com -shuchongread.com -shuchuandata.com -shucong.com -shudan.vip -shudaxia.com -shudc.com -shudongpoo.com -shuerjia.com -shufa.com -shufaai.com -shufabao.net -shufafin.com -shufaji.com -shufami.com -shufashibie.com -shufawu.com -shufazidian.com -shufaziti.com -shufe.com -shuge.net -shuge.org -shuge9.com -shugoo.com -shuguanghuayuan.com -shuhai.com -shuhaidata.com -shuhaisc.com -shuhaitz.com -shuhegroup.com -shuhua66.com -shuhuangla.com -shui12366.com -shuicao.cc -shuichachong.com -shuichan.cc -shuichan51.com -shuichuyu.com -shuidichou.com -shuididabingchou.net -shuidigongyi.com -shuidihealth.com -shuidihuzhu.com -shuidihuzhu.net -shuidike.com -shuiditech.com -shuidixy.com -shuiguo.com -shuihulu.com -shuihuoibm.com -shuijing100.com -shuijingcn.com -shuijingka.com -shuijingwanwq.com -shuijingwuyu.com -shuiliaosheji.com -shuimiao.net -shuimujiaju.com -shuimuyulin.com -shuini.biz -shuipingzuo.com -shuiwushi.net -shuiyinbao.com -shuiyinyu.com -shuiyoucam.com -shuizhiyuncaishui.com -shujike.com -shuju.net -shujuba.net -shujubang.com -shujubo.com -shujucun.com -shujupie.com -shujutang.com -shujuwa.net -shukeba.com -shukeju.com -shukingfashion.com -shukoe.com -shukongwang.com -shukuai.com -shulanapp.com -shuland.com -shulb.com -shuliao.com -shulidata.com -shuliyun.com -shumahezi.com -shumaidata.com -shumeipai.net -shumeipaiba.com -shumenol.com -shumensy.com -shumiao.com -shumiimg.com -shumilou.org -shumo.com -shunchangzhixing.com -shundecity.com -shunderen.com -shundred.com -shunfalighting.com -shunfangw.com -shunguang.com -shunmi.com -shunong.com -shunshikj.com -shunshunliuxue.com -shunvzhi.com -shunwang.com -shuo66.com -shuoba.org -shuobao.com -shuobofootball.xyz -shuocdn.com -shuodedui.com -shuomingshu.net -shuomingshuku.com -shuoshuo9.com -shuoshuokong.com -shuoshuokong.org -shuowan.com -shupaiyun.com -shuqi.com -shuqiaozt.com -shuqiapi.com -shuqiread.com -shuqireader.com -shuqistat.com -shuquge.com -shuquge.la -shuqun.com -shuquta.com -shuqw.com -shuren100.com -shushangyun.com -shushao.com -shushi100.com -shushihome.com -shushubuyue.com -shushubuyue.net -shusw.com -shutcm.com -shuti.com -shuwangxing.com -shuwenxianyun.com -shuwulou.com -shuxinyc.com -shuxinyi.net -shuxuehua.com -shuyangba.com -shuyfdc.com -shuyong.net -shuyouji.vip -shuyuewu.co -shuyun.com -shuzhi9.com -shuzhibaogao.net -shuzhiduo.com -shuzhou.cc -shuzibao.com -shuzixiaoyuan.com -shw8.com -shwcsh.com -shwdbjgs.com -shwebspace.com -shweiya.com -shwglm.com -shwpbbs.com -shwqjx.com -shws.org -shwsg.net -shwyky.net -shxbe.com -shxhgzf.com -shxiaoran.com -shxibeiquanshe.com -shxil.com -shxkwck.com -shxnetwork.com -shxwcb.com -shyanke.com -shydjscl.com -shyestar.com -shyfci.com -shygc.net -shyhhema.com -shyihuoh.com -shykx.com -shykz123456.com -shymte.com -shyonghui.xyz -shyongzeng.com -shyouai.com -shyouth.net -shyrcb.com -shyuanye.com -shyueai.com -shyuwl.com -shyuzhai.com -shywtb.com -shyxi5.com -shyxwz.com -shyy6688.com -shyyp.net -shyywz.com -shyz07.com -shyzsd.com -shzbc.com -shzbh.com -shzbkj.com -shzf.com -shzfzz.net -shzgd.org -shzgh.org -shzh.net -shzhangji.com -shzhanmeng.com -shzhiyingedu.com -shzhyx.com -shzkb.com -shzpin.com -shzq.com -shzs-benz-vpc.com -shzsun.com -shzyw.com -si-en.com -si-in.com -zybk6.com -si9377.com -siaedu.net -siaoao.com -sias-sha.com -sibfi.com -sibida.net -sicangart.com -sicheng.net -sicher-elevator.com -sichina.com -sichuan163.com -sichuanair.com -sichuangwy.org -sicimano.com -sidfate.com -siengine.com -sieredu.com -sifalu.com -sifangvideo.com -sifayun.com -siff.com -sifive-china.com -sifou.com -sifve.com -sigchina.com -sightp.com -siglent.com -siglff.com -sigmachip.com -sigmamed.net -sigmastarsemi.com -sigmoblive.com -sigongzi.shop -siguoya.name -siguschool.com -sihai-inc.com -sihaidj.com -sihaishuyuan.com -sihaitv.com -siheal.com -sihoo.com -sihuanpharm.com -sihuida.net -sihuisoft.com -siii.xyz -siilu.com -sijiaomao.com -sijijun.com -sijinchuanbo.com -sijitao.net -sikiedu.com -silanggame.com -sileadinc.com -silenceper.com -silianmall.com -siliaobaba.com -siliaokelijixie.com -siling.com -silkpresent.com -silkroadtechnologies.com -silksong.me -sillydong.com -silucar.com -silucg.com -siludao.com -siluecai.com -siluke.cc -siluke.tw -silukeke.com -siluwu.com -zybird.com -zybang.com -sim800.com -simagic.com -simapple.com -simcolux.com -simcom.com -simcomm2m.com -simcu.com -simei8.com -simengadx.com -simiam.com -simici3.com -simiki.org -simingcun.net -simingtang.com -simon96.online -simope.com -simp.red -simperfect.com -simple-is-better.com -simplecd.cc -simplecreator.net -simpledatas.com -simplexue.com -simpo-data.com -simu800.com -simul-china.com -simulway.com -simuwang.com -simwe.com -simxhs.com -sina.com -sina.lt -sina.net -sinaapp.com -sinacdn.com -sinachannel.com -sinacloud.com -sinacloud.net -sinaedge.com -sinahk.net -sinahlj.com -sinaif.com -sinaimg.com -sinajs.com -sinaluming.com -sinanet.com -sinanya.com -sinaquyong.com -sinashow.com -sinastorage.com -sinasws.com -sinauda.com -sinawallent.com -sinawap.com -sinawf.com -sincetimes.com -sinddsun.cyou -sindsun.com -sinereal.com -sinesafe.com -sinforcon.com -singaporepaya.com -singbon.com -singcere.net -singdown.com -singee77.com -singfun.com -singhead.com -singhot.com -singlecool.com -singmaan.com -singread.com -singtaonet.com -sinlu.net -sinmeng.com -sino-corrugated.com -sino-cr.com -sino-flexography.com -sino-foldingcarton.com -sino-info.net -sino-life.com -sino-manager.com -sino-rainbow.cc -sino-web.net -sinoancher.com -sinoaquafilter.com -sinoassistance.com -sinobaron.com -sinobasalt.com -sinobasedm.com -sinocare.com -sinocars.com -sinocateringexpo.com -sinocax.com -sinochem.com -sinochemb2c.com -sinochemitc.com -sinoclick.com -sinocul.com -sinoec.net -sinoevin.com -sinofo.com -sinofsx.com -sinogt.com -sinohb.com -sinohotel.com -sinohowe.com -sinohx.com -sinohydro.com -sinoid.com -sinoinfosec.com -sinoing.net -sinoins.com -sinointeractive.com -sinologyinstitute.com -sinolub.com -sinolube.com -sinomapping.com -sinomaps.com -sinomatin.com -sinonet.org -sinooilgas.com -sinopec-usa.com -sinopec.com -sinopecgroup.com -sinopechyzx.com -sinopecnews.com -sinopecsales.com -sinopecsenmeifj.com -sinopharm.com -sinopharmzl.com -sinophex.com -sinopr.org -sinosig.com -sinosiglife.com -sinoss.net -sinostargroup.com -sinosteel.com -sinosun.com -sinotf.com -sinotn.com -sinotone.net -sinotrans.com -sinovale.com -sinovatech.com -sinovatio.com -sinovationventures.com -sinovdc.com -sinovoice.com -sinowealth.com -zyautoe.com -sinowel.com -sinoxk.com -sinozoc-ex.com -sinreweb.com -sinsam.com -sintaytour.com -sintu.com -sinture.com -sinvofund.com -sinvta.com -sinyuee.com -sinzk.com -sipai.com -sipaphoto.com -sipco.com -sipeed.com -sipgl-lcl.com -siphrd.com -sipo-sc.com -siposchina.com -siqiquan.org -sique.com -sir3.com -sir66.com -siryin.com -sisen.com -sisensing.com -sishuok.com -sishuxuefu.com -sisijiyi.com -sisjava.com -sisp-china.com -sisuoyun.com -siswin.com -site-digger.com -site119.com -siteapp-static.com -sitekc.com -siteonlinetest.com -sithc.com -sitiaoyu.com -sitongedu.org -sitongzixun.com -sitrigroup.com -situdata.com -sivan.in -sivps.com -siwaman.com -siwazywcdn2.com -siwazywcdn3.com -siweidaotu.com -siweiearth.com -siweikongjian.net -siweiw.com -siwuprint.com -sixflower.com -sixianchina.com -sixiang.im -sixiju.com -sixstaredu.com -sixu.life -sixuexiazai.com -sixunited.com -siyanhui.com -siyuan.cc -siyuanedu.com -siyuanren.com -siyuefeng.com -siyuetian.net -siyuweb.com -sizeofvoid.net -sizuo.com -sj-lawyer.com -sj0763.com -sj11hb.com -sj123.com -sj33.net -sj3w.com -sj88.com -sj998.com -sjawards.com -sjcomic.com -sjdzp.com -sjdzp.net -sjebh.com -sjetdz.com -sjf029.com -sjfcdn.com -sjfpro.com -sjfzxm.com -sjgh94.com -sjgle.com -sjgnskf.com -sjhcip.com -sjhfkhgut009.com -sjhfrj.com -sjhgo.com -sjhl.cc -sjhy.net -sjjob88.com -sjlqgg.com -sjm.life -sjmdh.com -sjmeigao.com -sjmwsw.com -sjmxx.com -sjono.com -sjpcw.com -sjq315.com -sjqcj.com -sjrwzz.com -sjsbk.com -sjsydq.com -sjtickettech.com -sjtjcn.com -sjtug.org -sjtxt.com -sjtxt.la -sjtype.com -sjvi.net -sjwl.xyz -sjwtlm.com -sjwxzy.com -sjwyx.com -sjxinxiwang.com -sjxs.la -sjybsc.com -sjycbl.com -sjytech.com -sjyx.com -sjyyt.com -sjz.cc -sjz110.cc -sjzbasha.com -sjzbwx.com -sjzcmw.com -sjzcsw.com -sjzgxwl.com -sjzhu.com -sjzhushou.com -sjzjkqgs.com -sjzkz.com -sjzlg.com -sjzlgz.com -sjzmama.com -sjznews.com -sjzqcrl.com -sjzrbapp.com -sjzsidadianji.com -sjztd.com -sjzxtsh.com -sjzyz.net -sjzzimu.com -sk163.com -sk1999.com -sk2game.com -sk2w.net -skatehere.com -skcto.com -skdlabs.com -skeo.net -sketchchina.com -sketchchina.net -sketchcn.com -sketchupbar.com -sketchupbbs.com -skg.com -skieer.com -skight.com -skinme.cc -skip-links.com -skjcsc.com -sklinux.com -sklse.org -skomart.com -skongmx.com -skrshop.tech -sksdwl.com -sktfaker.com -skusoft.com -skwo.net -sky-deep.com -sky-fire.com -sky1shop.com -skyallhere.com -skyao.io -skybig.net -skybluek.com -skycaiji.com -skycloudsoftware.com -skycn.com -skycn.net -skydust.net -skyeaglee.com -skyecs.com -skyfeather.online -skyfollowsnow.pro -skyfont.com -skyfox.org -skyheng.com -skyju.cc -skylerzhang.com -skylook.org -skymoons.com -skymoons.net -skynicecity.com -skynj.com -skype-china.net -skyrichpower.com -skyrivers.org -skyrj.com -skysea.com -skysgame.com -skysriver.com -skysrt.com -skyts.net -skytv.cc -skyue.com -skywldh.com -skyworth-ac.com -skyworth-cloud.com -skyworth-ea.com -skyworth.com -skyworthbox.com -skyworthdigital.com -skyworthds.com -skyworthiot.com -skyworthlighting.com -skyworthznxyj.com -skyxinli.com -skyyin.org -skyzms.com -sl-360.com -sl.al -sl153.com -sl916.com -sl91d.com -slamtec.com -slanissue.com -slanmedia.com -slassgear.com -slatic.net -slchos.com -sle.group -sleele.com -sleepboy.com -slegetank.com -slertness.com -slfwq.com -slgfjzz.com -slicercn.com -slimtheme.com -slink8.com -slinli.com -slinuxer.com -sljkj.com -sljypt.com -slk1.net -sllai.com -sllssrq.com -slogra.com -slooti.com -slovakia-visacenter.com -slovenia-visacenter.com -slpi1.com -slrbs.com -slready.com -slssx.com -slsteel.com -slswx7.com -sltg2019.com -sltv.net -zyan.cc -slwh-dfh.com -slwwedding.com -slzsxx.com -slzww.com -sm-check.com -sm-cq.com -sm-main.com -sm012.com -sm160.com -sm160.net -sm688801.com -sm688839.com -sm96596.com -smabye.com -smallfighter.com -smalljun.com -smallk.net -smallpdfer.com -smallxu.me -smallyuan.com -smallyuzhou.com -smarch.com -smarchit.com -smart-idc.net -smart-ptt.com -smart-rise.com -smart4e.com -smartbgp.com -smartcityzhejiang.com -smartcloudcon.com -smartdeep.com -smartdot.com -smartedm.com -smartermicro.com -smartgaga.com -smartgeek.vip -smarthey.com -smarthomecn.com -smartisan.com -smartisanos.com -smartjoygames.com -smartleon.net -smartlifein.com -smartlinku.com -smartmidea.net -smartoct.com -smartont.net -smartpigai.com -smartpoweriot.com -smartqian.com -smartsenstech.com -smartsteps.com -smartstudy.com -smartwebee.com -smartx-cn.com -smartx.com -smartxiantao.com -smartyao.com -smartyoke.com -smarun.com -smaryun.com -smaty.net -smbais.com -smbinn.com -smbxw.com -smc18.com -smc3s.com -smcic.net -smd88.com -smdcn.net -smdiban.net -smdmark.com -smdyvip.com -smdyy.cc -sme-cn.com -sme8718.com -smebb.com -smemo.info -smeoa.com -smfsgs.com -smfyun.com -smggw.com -smgstar.com -smhdoto.com -smhsw.com -smhyplay.com -smianet.com -smic-sh.com -smics.com -smil888.com -smilec.cc -smilingwhitebear.com -smiseo.com -smk3000.com -smkmake.com -smkmp.com -smlaw8.com -smmy365.com -smo-clinplus.com -smo-software.com -smohan.net -smokeliq.com -smoothgroup.cc -smovie168.com -smppw.com -sms9.net -smsbao.com -smshx.com -smskb.com -smsot.com -smsyun.cc -smt-dip.com -smtcdns.com -smtcdns.net -smtchinamag.com -smtcl.com -smtdc.com -smthome.net -smtlzb.com -smtphub.org -smtsvs.com -smttouch.com -smtvip.com -smucdn.com -smudc.com -smwd.tech -smwenxue.com -smxdiy.com -smxgjj.com -smxs.com -smy01.com -smyfinancial.com -smyhvae.com -smyx.net -smyxxj.com -smzdm.com -smzdmimg.com -smzdwan.com -smzwgk.com -smzy.com -snai.edu -snail.com -snail007.com -snailgame.net -snailshub.com -snailsleep.net -snailyun.com -snapemoji.net -snbkf34.com -sncdental.com -sncoda.com -sndhr.com -sndo.com -sneac.com -sneia.org -sngct.com -sngdxsn.com -snh48.com -snhrm.com -sniec.net -snieri.com -snimay.com -snipurl.cc -snjairport.com -snjbs.com -snjjiu.com -snjrsks.com -snnd.co -snobten.com -snodehome.com -snor-china.com -snowballsecurities.com -snowballtech.com -snowdream.tech -snowyimall.com -snps.tech -snrat.com -snren.com -snrtv.com -snrunning.com -sns.io -snscz.com -snsfun.cc -snsfun.com -snsii.com -snssdk.com -snsyx.com -snto.com -snupg.com -snxw.com -snyu.com -snzfj.net -snzhz.com -so-love.com -so-naver.com -so.com -so666gslb.com -so8848.com -soarna.com -soarwatch.com -sobaidupan.com -sobeian.com -sobereva.com -sobeycache.com -sobeycloud.com -sobot.com -soboten.com -socang.com -socay.com -soccerbar.cc -socchina.net -sochengyi.com -sochips.com -socialark.net -socialbeta.com -socialfishface.com -socite.com -sockip.com -socks1688.com -socolar.com -socomic.com -socool-tech.com -sodalife.xyz -sodao.com -sodc8.com -sodeog.com -sodexo-cn.com -sodhef.com -sodianwan.com -sodino.com -sodocloud.com -sodocs.net -sody123.com -soeasysdk.com -sofabiao.com -sofang.com -sofangche.com -sofasofa.io -sofastack.tech -sofi-tech.com -sofreight.com -soft128.com -soft2005.com -soft50.com -soft5566.com -soft568.com -soft6.com -soft778.com -soft78.com -soft808.com -soft8899.com -softabc.com -softbanks.net -softbar.com -softbingo.net -softgostop.com -softhead-citavi.com -softhome.cc -softtest.com -softwarechn.com -softwarecn.com -softwarekeyclub.com -softweek.net -softwhy.com -softwincn.com -softworker.com -softxz.net -sofun.com -sogaa.net -sogo.com -sogoke.com -sogood360.com -sogou-inc.com -sogou-op.org -sogou.com -sogou2.com -sogoucdn.com -sogouimecdn.com -sogouw.com -sogowan.com -soharp.com -soho-yiming.com -soho3q.com -sohochina.com -sohodd.com -sohonow.com -sohotask.com -001tech.com -sohu-inc.com -sohu.com -sohu.net -sohucs.com -sohuhistory.com -sohunjug.com -sohuns.com -sohusce.com -sohuu.com -soicp.com -sojex.net -sojiang.com -sojiang.net -sojianli.com -sojixun.com -sojson.com -sojump.com -sojump.hk -sokoban.ws -soku.com -sokuba.com -sokutu.com -solarbe.com -solaridc.com -soldierstory-toys.com -soleilneon.com -solepic.com -solidot.org -soliloquize.org -solo-launcher.com -solochex.com -soloknight.xyz -solosea.com -solotoon.com -solution9.net -solvyou.com -somao123.com -somcool.com -somdom.com -someabcd.com -someonegao.com -somepen.com -something8.com -sometracking.com -somo.so -somode.com -sonald.me -songcn.com -songguo7.com -songguojiankang.com -songguosouben.com -songhaifeng.com -songhaoyun.com -songhaozhi.com -songhengnet.com -songhuwan.com -songker.com -songlei.net -songliguo.com -songma.com -songqili.net -songqinedu.com -songqinnet.com -songshitang.com -songshizhao.com -songshuai.com -songshudiandian.com -songshuhui.net -songshushuo.com -songsongruanwen.com -songsongyingxiao.com -songsongyun.com -songtaste.com -songtianlube.com -songxiaocai.com -songxiaojin.com -songyang.net -songyanjiaye.com -songyi.net -songyongzhi.com -songyuan163.com -songzhaopian.com -songzi100.com -songziren.com -songzixian.com -sonhoo.com -sonicmodel.net -soniu.net -sonkwo.com -sonkwo.hk -sonnewilling.com -sontan.net -soocang.com -sooele.com -soogif.com -soojs.com -soolco.com -soolun.com -soomal.com -soonku.net -soonwill.com -soonyo.com -sooopu.com -soopat.com -soopay.net -sooshong.com -sooshu.net -soosmart.com -sootoo.com -sooxue.com -sooyisi.com -sooyooj.com -sooyuu.com -soozhu.com -soperson.com -sophgo.com -soq.com -soqicrm.com -soquair.com -soripan.net -soruncg.com -sos919.com -sosdx.com -sosg.net -soshoo.com -soshoulu.com -sosidc.com -soso.com -sosobtc.com -sosohaha.com -sosomp.com -sosoo.net -sosoq.org -sosorank.com -sososteel.com -sosotec.com -sosoyunpan.com -sosoyx.com -sosoyy.com -sosuo.name -sotake.com -sotemall.com -sothink.com -sotoy.net -sotwm.com -sou-yun.com -sou.com -souaiche.com -soucai.com -souche-fin.com -souche-inc.com -souche.com -soucod.com -soudao.com -soudoc.com -soudron.com -soudu.org -souduanzu.com -soueast-motor.com -souebao.com -soufang.com -soufuli.net -soufun.com -soufunimg.com -souge.cc -sougu001.com -souho.cc -souho.net -souhu.com -souid.com -souidc.com -souidc.org -soukecheng.net -soukf.com -soukuyou.com -soulapp.me -souldee.com -soulgame.mobi -souluo.net -soulwonderland.com -sound-force.com -soundai.info -soupan.info -soupf.net -soupingguo.com -soupu.com -soupv.com -souqian.com -souqiu8.com -souqupu.com -source3g.com -sourcecodecap.com -sourcecvs.com -sourcedev.cc -sourcegcdn.com -sourl.co -sousea.com -soushai.com -soushu.vip -soushuking.com -sousou.com -sousou.pro -sousoudus.com -sousuoyouxi.com -soutaowang.com -southbeauty.com -southbeautygroup.com -southcn.com -southei.com -southernfund.com -southgis.com -southmoney.com -southnews.cc -southnews.net -southseagy.com -southsurvey.com -southyule.com -soutu123.com -soutushenqi.com -souvr.com -souwoo.com -souxue8.com -souya.com -souyidai.com -souyue.mobi -souyunku.com -sovell.com -soven.com -sowang.com -soweather.com -sowellwell.com -sowin.com -sowu.com -soxsok.com -soyim.com -soyiyuan.com -soyohui.com -soyoung.com -soyouso.com -soyunion.com -sozdata.com -sozhen.com -sp.cc -sp588.cc -sp588.net -sp6910.com -sp888.net -sp910.com -space1688.com -spacechina.com -spacemit.com -spacesystech.com -spanishknow.com -sparenode.com -spark-app.store -spark-page.com -spark4y.com -sparkandshine.net -sparkgis.com -sparkletour.com -spasvo.com -spawatervip.net -spawor.com -spay365.com -spbo.com -spbo1.com -spbosta.org -spc365.net -spcapsules.com -spcdntip.com -spcdntipbak.com -spcloudhw.com -spcloudhw.net -spcywang.com -spdbh5.com -spdbuser.com -spdcat.com -spdchgj.com -spdex.com -spdiy.com -spdiy.net -spdl.com -spdydns.com -spearpointing.com -specialcdnstatus.com -spectreax.site -speed-dns.cc -speedcdns.com -speednt.com -speedpdf.com -speedsz.net -speedtest.im -speedws.info -speedws.org -speiyou.com -spfmc.com -spforum.net -spgnux.com -spibj.com -spiiker.com -spin-view.com -spirit-doll.net -spirithy.com -spischolar.com -spjxcn.com -splaybow.com -splayer.org -splayer.work -splmcn.com -spnchinaren.com -spockker.com -spoience.com -spointdesign.com -sportnanoapi.com -sportq.com -sports-idea.com -sportsdt.com -sposter.net -spot.download -spoto.net -spotpear.com -spouyashop.com -spplnet.com -spprec.com -spr-atm.com -sprayv.com -spreton.com -spring4all.com -springairlines.com -springboot.io -springcloud.cc -springcocoon.com -springtour.com -springwater.vip -sprzny.com -spsb114.com -spsy.org -sptcc.com -sptccn.com -spthome.com -spush.com -spyouxi.com -spzs.com -sq.cc -sq1996.com -sq23.com -sq521.com -sq523.com -sq580.com -sq581.com -sq688.com -sqa-chn.com -sqage.com -sqanju.com -sqbot.vip -sqchunqiu.com -sqdaily.com -sqeatin.com -sqfcw.com -sqfgc.com -sqfortune.com -sqggzy.com -sqkb.com -sql110.com -sqncsx.com -sqngvd.com -sqqmall.com -sqqnh.org -sqrc.net -sqreader.com -sqrt9.com -sqrtthree.com -sqstudio.com -squarecn.com -squarefong.com -squirtle-skfjkdl.com -sqzw.com -srcb.com -srcbcz.com -srcgsre.com -srcmsh.com -srell.com -srfip.com -srgnmsrg.com -srgow.com -srichina.org -sritsoft.com -zy91.com -srrsh.com -srrtvu.com -srtong.com -srun.com -srusoq.com -srw00.com -srworld.net -srx3.net -srxww.com -sryjx.com -srzc.com -srzxjt.com -ss-ceo.com -ss8899888.com -ssaxx.com -ssaya.win -ssbbww.com -ssbgzzs.com -ssby.cc -sscity.org -sscmwl.com -sscom.vip -ssdata.com -ssdax.com -ssdfans.com -ssdzg.com -sseinfo.com -ssf.cc -ssgabc.com -ssgeek.com -ssggg.com -ssgushi.com -ssine.cc -ssine.ink -ssipex.com -ssish.com -ssjjss.com -ssjjtt.com -ssjlicai.com -ssky123.com -sslaaa.com -sslawy.com -sslceshi.com -sslchaoshi.com -sslchina.com -sslcity.com -ssldun.com -ssleye.com -sslibrary.com -sslnode.com -ssmec.com -ssmeow.com -ssnewyork.com -ssnuo-ch.com -ssofair.com -ssoffo.com -ssp86.com -sspaas.com -sspai.com -sspai.me -sspeeddns.com -ssports.com -ssports.net -ssqgx.com -ssqzj.com -ssrcdn.com -ssrcr.com -ssreader.com -ssscdn.com -ssso.com -sst-ic.com -sst-sd.com -sswater.com -sswchina.com -ssxcycy.com -ssxf.net -ssxpxjt.com -ssxxp.com -ssyar.com -ssyer.com -ssytnet.com -ssyxlx.com -ssyzx.net -sszgit.com -sszhg.com -sszjnc.com -sszzz.com -st-recovery.com -st001.com -st12121.net -st123.com -st180.com -stackboom.xin -stackcc.com -stackoom.com -stackoverflow.club -stackoverflow.wiki -stage1st.com -stage3rd.com -stajy.com -stakssyl.com -standardshop.net -star1024.com -star365.com -star7game.com -star7th.com -starbaby.cc -starbaby.com -starbaysoft.com -starde.net -stardict.net -stardict.org -stardoctor.com -starduster.me -starfivetech.com -stargame.com -starlakelab.com -starlott.com -starming.com -starooo.com -starpainters.net -starpiao.com -starrails.com -starrockinvest.com -starrtc.com -starrydyn.com -starrysurvey.com -stars-one.site -starschina.com -starschinalive.com -starsino.com -starsmicrosystem.com -starstech.cc -starswar.org -zy728.com -zy-cam.com -startcarlife.com -startech.ltd -starting2000.com -startogether1.com -startos.com -startos.org -startup-partner.com -starwarschina.com -starx-w.com -starxn.com -stat-nba.com -stat18.com -zxzyy.com -staticaa.com -staticdn.net -staticec.com -staticfile.org -statickksmg.com -statics.cc -zxzyl.com -staycu.com -stbieshu.com -stc2002.com -stcmcu.com -stcmcudata.com -stcn.com -stdaily.com -stdard.com -stdicloud.com -stdlibrary.com -stdout.pub -stdwp.com -steambang.com -steambig.com -steamboxs.com -steamchina.com -steamcn.com -steamdd.com -steampp.net -steamproxy.net -steamrepcn.com -steamxdf.com -stec.net -stedu.net -steelphone.com -steelsearcher.com -stefg.org -step-by-step.tech -stfile.com -stg8.com -stgairasia.com -stgod.com -stgowan.com -sthforme.com -sthifi.com -sthke.com -sticksgame.com -stkey.win -stklt.com -stlswm.com -stmaoyi.com -stmbuy.com -stmybj.com -stnn.cc -stnts.com -stnye.cc -stockhn.com -stockstar.com -stockwei.com -stointl.com -stojf.com -stone168.com -stonebuy.com -stoneios.com -stoneleague.com -stoneo2o.com -stonepoll.com -stonepoll.net -stoneread.com -stonescloud.com -stoneu.com -stonexp.com -stor-age.com -zxzt123.com -storagesemicon.com -zxzmail.com -zxzlf.com -zxzj.me -storkapp.me -stormorai.com -zxzhijia.com -story520.com -storyboardworld.com -storyday.com -storyren.com -stourweb.com -stourweb.net -stovol.club -stoyard.com -str-mo.com -straitchain.com -strangetop.com -strcpy.me -streamaxtech.com -streamcomputing.com -zxxxkj.com -streffy.com -strong-study.com -strongled.com -stswjx.com -sttcq.com -stubbornhuang.com -studa.net -studencis.com -studentboss.com -studioartiz.com -studyez.com -studyfr.net -studyget.com -studygolang.com -studyingtours.com -studyjamscn.com -studyll.com -studypay.com -studyuser.com -studyvip.com -stuhome.net -stuhui.com -stuliving.com -stuln.com -stupid77.com -stupidet.com -stuq.com -stutimes.com -stvgame.com -styadmin.com -stylar.hk -stylecdn.com -stylemode.com -styles-sys.com -su-long.com -suaee.com -suanbanyun.com -suandao.com -suanfazu.com -suanguajie.com -suanjuzi.com -suanlitou.com -suansheng.com -suanst.com -suanya.com -suapp.me -subangjia.com -subaonet.com -subaotuan.com -subingkang.com -subinwechat.com -subline.org -subo.net -subom.net -subond.com -subuy.com -sucai.com -sucaibar.com -sucaidao.com -sucaifu.com -sucaihuo.com -sucaijishi.com -sucainiu.com -sucaitu.cc -sucaiw.com -sucaixiang.com -such-game.com -suchasplus.com -suchz.com -sucop.com -sucoupon.com -suda123.com -sudaizhijia.com -sudaoa.com -sudaqq.com -suddenfix.com -sudidc.com -sudu-67ph.com -sudu-72ub.com -sudu-kay6.com -sudu-pq2y.com -sudu-q6wk.com -sudu-r8gh.com -sudu-sq56.com -sudu-tf42.com -sudu-xu9b.com -sudu-y94k.com -sudu123.net -suducha.com -sududa.com -sudupower.net -sudusite.com -sueflower.com -sueon.com -sufangxu.com -sufeinet.com -sufont.com -sugarforex.com -sugarguo.com -sugarle.com -sugon.com -sugou.com -suhaodian.com -suhuibao.com -suhuikj.com -suhuishou.com -sui.com -suibianla.com -suibianzhao.com -suibiji.com -suilengea.com -suileyoo.com -suinikan.com -suiniyi.com -suiqiao.com -suirui.com -suishenyun.net -suishouji.com -suisuihu.com -suisuijiang.com -suixinzulin.com -suixw.com -suiyichong.com -suiyiju.com -suiyuanjian.com -suiyueyule.com -suizhoushi.com -suizui.net -sujh.net -sujiaozhipin888.com -suki.club -sukimad.com -sukiu.net -sukkaw.com -sukoutu.com -sulabs.net -sulandscape.com -sule.cc -suleapi.com -suliaodingzhi.com -sumaart.com -sumaarts.com -sumatang.com -sumavision.com -sumeme.com -sumgotea.com -sumian.com -suming.in -sumkoo.com -sumkoo.net -sumly.net -summall.com -summerlight.name -sumoon.com -sumory.com -sumrday.net -sumscope.com -sumsz.com -sumygg.com -sumzc.com -sun-ada.net -sun-wish.com -sun0769.com -sun0769ns.com -sun0816.com -sun66.net -sunacctg.com -sunater.com -sunbloger.com -sunbo.com -sunbo367.com -sunborngame.com -sunbowhospital.com -sunboxsoft.com -sunboyu.com -suncco.com -sundan.com -sundayrx.net -sundns.com -sundray.com -sundung.com -sundxs.com -sunear.net -sunfcb.com -sunfounder.cc -sunfront.com -sunft.com -sungari1995.com -sungesoft.com -sungoal.org -sungoedu.com -sunhante.com -sunhaojie.com -suninf.net -suning.com -suningbank.com -suningcloud.com -suningestate.com -suningholdings.com -sunjs.com -sunlands.com -sunlandstudy.com -sunlandvip.com -sunlandzk.com -sunlife-everbright.com -sunlight-tech.com -sunlightbig.com -sunlogin.com -sunlons.com -sunlordinc.com -sunlune.com -sunmi.com -sunmingxia.com -sunmnet.com -sunnada.com -sunny90.com -sunnychina.com -sunnyos.com -sunnyqi.com -sunnyxx.com -sunofbeaches.com -sunowo.com -sunpala.com -sunpcm.com -sunpma.com -sunpun.com -sunrisedutyfree.com -sunrisenan.com -sunrtb.com -sunsetcare-mirrortech.com -sunsharer.com -sunshe.com -sunshine-power.net -sunshinechn.com -sunsky-online.com -sunstarasia.com -sunstu.com -suntop168.com -suntray.com -suntrayoa.com -sunup3d.com -sunupcg.com -sunwayworld.com -sunweiwei.com -sunwinon.com -sunwoda.com -sunwy.org -sunxiaoning.com -sunxinfei.com -sunyansong.com -sunyea.com -sunyet.com -sunyingchao.com -sunyixing.com -sunyongfeng.com -sunzhongwei.com -suo.im -suo.nz -suobao8.com -suobifa.com -suobuy.com -suofeiya.com -suofeiyashop.com -suoge.net -suokao.com -suoluomei.com -suosihulian.com -suoxin5.com -suoyiren.com -supcname.com -supcompute.com -supcon.com -supdri.com -supeeder.com -supei.com -super-mt.com -superayi.com -superboss.cc -superbrowser.hk -superbuy.com -superbuyy.com -supercodepower.com -supercrm.com -superfix.com -supergslb.com -superhl.com -superjq.com -superlib.com -superlib.net -superlink.mobi -supermap.com -supermap.io -supermapcloud.com -supermapol.com -superpb.com -superpowercn.com -superqq.com -supersharket.com -superslide2.com -supersocket.net -superyd.com -superzl.com -supesite.com -supesoft.com -supet.com -suplaymart.com -supmeter.com -supmil.com -supmil.net -supoin.com -supool.com -supor.com -suporpe.com -zxxww.com -zxxk.com -zxwyouxi.com -suqian360.com -suqicloud.com -suqishi.com -suqnn.com -suremotoo.site -surgerycast.com -surprising.studio -sursen.com -sursenelec.com -sursung.com -surtime.com -suruicloud.com -survey-y.com -survey.work -surveyhills.com -surveyunion.com -survivor99.com -sushiyanglao.com -susong51.com -susongbbs.com -susudm.com -suteidc.com -sutuiapp.com -sutune.me -suuuwsj9.xyz -suv666.com -suxiazai.com -suxieban.com -suxiege.com -suxing.me -suyuening.com -suyugame.com -suyujoy.com -suyutech.com -suzhou.cc -suzhoubank.com -suzhouds.com -suzhoulida.com -suzhoushilla.com -suzhousj.com -suzip.com -suzip.net -suzuki-china.com -suzuki-shanghai.com -sve.cc -svenhetin.com -svinsight.com -svip15.com -svip51.com -svipduihuan.com -svlik.com -svn999.com -svnbucket.com -svnspot.com -svp6.com -svw-volkswagen.com -svwuc.com -sw-bllp.com -sw0013.com -sw2008.com -sw996.com -swaeab.com -swakopuranium.com -swang8.com -swaqds.com -swarma.net -swarma.org -swatou.com -swbbsc.com -swchina.org -sweet-data.com -sweetalkos.com -sweetdan.com -sweetlove.cc -sweetmartmarketing.com -sweetread.net -swfc-shanghai.com -swg36.com -swgzs.com -swhysc.com -swift51.com -swifthumb.com -swiftjava.com -swiftlet.net -swiftstar.net -swijoy.com -swirebev.com -switchxiazai.com -switzerland-visacenter.com -swjoy.com -swkong.com -swliuxue.com -swoft.org -swomc.net -swoole-cloud.com -swoole.com -swordair.com -swordart.online -swordofmorning.com -swordtt.com -swotbbs.com -swsbw.com -swsm.net -swsmu.com -swstsg.com -swt0.com -swtuchuang4.com -swtuchuang5.com -zxwstong.com -swwlotus.com -swwy.com -swxk.cc -sx-sw.com -sx1211.com -sx189.com -sx267.com -sxafz.com -sxbada.com -sxbang.net -sxbawy.com -sxbest.com -sxccb.com -sxcits.com -sxcm.net -sxcntv.com -sxctf.com -sxcyts.com -sxcywy.com -sxd408.com -sxdkj.com -sxdygbjy.com -sxdzyp.com -sxepc.com -sxfblog.com -sxfoundation.com -sxfu.org -sxgdtv.com -sxggzp.com -sxglpx.com -sxgoo.com -sxgq.net -sxgs.com -sxgwyw.org -sxh3k.app -sxhctv.com -sxhlxy.com -sxhm.com -sxhr.net -sxhxbank.com -sxjagc.com -sxjh88.com -sxjhzsgc.com -sxjlzhifu.com -sxjzxww.com -sxkzxt.com -sxlcdn.com -sxldns.com -sxmaps.com -sxmcwlw.com -sxmtdz.com -sxmxwh.com -sxmyh.com -sxncb.com -sxnfss.com -sxnxl.com -sxnycl.com -sxol.com -sxpdk.com -sxplc.com -sxpmg.com -sxpojie.com -sxprgc.com -sxpta.com -sxpyzg.com -sxpyzx.com -sxrb.com -sxrbw.com -sxrczx.com -sxrjm.com -sxrtv.com -sxsapi.com -sxsgs.com -sxsim.com -sxsimg.com -sxsjgy.com -sxslnews.com -sxsng.com -sxsoft.com -sxsslz.net -sxssyh.com -sxszw.net -sxthzs.com -sxtppm.com -sxtqsl.com -sxtvs.com -sxtybook.com -sxuyr2nx.com -sxwbs.com -sxwpyx.com -sxwrsa.org -sxww.com -sxxdll.com -sxxl.com -sxxt.net -sxxw.net -sxxyfw.com -sxxynews.com -sxy7.com -sxycrb.com -sxyj.net -sxzb.app -sxzfcy.com -sxzhaobiao.com -sxzlycl.com -sxzq.com -sxzt.org -sxzydj.com -sy-home.com -sy12306.com -sy12328.com -sy2k.com -sy3.com -sy76.com -sybasebbs.com -syberos.com -sybj.com -sycaijing.com -sycdtz.com -sycxzx.net -sydaxxw.com -sydcch.com -sydimg.com -sydjwl.com -sydw8.com -sydzconn.com -syf.ink -syfabiao.com -syfly007.com -syfw.com -syg315.com -sygcjs.com -sygd.com -syhccs.com -syhhidc.com -syhhkj.com -syhospital.com -syhzml.com -syiptv.com -syitgz.com -syjiancai.com -syjkqzw.com -syjzedu.com -sykong.com -sylixos.com -sylnst.com -sylnyx.com -symama.com -symtc.com -symuge.com -symy100.com -syn029.com -synacast.com -synball.com -sync.sh -syncedoffplanet.com -synjones.com -synjones.net -synochip.com -syntao.com -synyan.net -syoits.com -syoker.com -syoogame.com -syoseo.com -syoucn.com -syounggroup.com -sypole.com -syr-sce.com -syrcb.net -syrecovery.com -syrhkj.com -sys-ele.com -sys321.com -syscan360.org -sysceo.com -syscxp.com -sysdyy120.com -sysengi.com -syshospital.com -syshospital.org -sysjnl.com -sysmaster.online -sysmini.com -sysmk120.com -sysnlt.com -sysrsksy.com -systoon.com -sysush.com -sysuyz.com -sysysjnk.com -sytcke.com -sythealth.com -syttgame.com -sytuku.com -syuan.net -syue.com -sywg.com -sywgy.com -sywtqc.com -syxb.com -syxlgame.com -syxwang.com -syxwnet.com -syylfh.com -syyqls.com -syyx.com -syyyking.com -syzlzz.com -syzoukan.com -sz-3a.com -sz-byg.com -sz-cerberus.com -sz-changfeng.com -sz-czzc.com -sz-dfl.com -sz-dns.net -sz-edsy.com -sz-etong.com -sz-jlc.com -sz-lcsc.com -sz-mtr.com -sz-osckj.com -sz-printing.com -sz-skt.com -sz-sunway.com -sz-tianmai.com -sz-trip.com -sz-ua.com -sz-ytq.com -sz121.com -sz189.com -sz1978.com -sz240.com -sz315.org -sz5156.com -sz5983.com -sz61.com -sz7h.com -sz836.com -sz886.com -szadst.com -szaeia.com -szaiaitie.com -szaima.com -szairport.com -szaisino.com -szaiten.com -szande.com -szaojin.com -szaudio.com -szbaicao.com -szbaoly.com -szbaoming.com -szbbs.org -szbcase.com -szbdyd.com -szbeilu888.com -szbelle.com -szbiu.com -szbnrj.com -szboruien.com -szbwgy.com -szbwpt.com -szbym.com -szc.com -szca.com -szcatic.com -szcec.com -szchi.net -szclmd.com -szcno.com -szcompare.com -szcp.com -szcsot.com -szcssx.com -szcua.org -szcwdz.com -szcy99.com -szczjy.com -szczkjgs.com -szdaily.com -szdc.org -szdcjd.com -szddns.net -szdesigncenter.org -szdiyibo.com -szdn1ms.com -szds.com -szdunan.net -szdxjf.com -szdyx8.com -szeant.com -szeasyin.com -szed.com -szedu.net -szeholiday.com -szelanpo.com -szelight.com -szfa.com -szfachina.org -szfangzhouhd.com -szffmr.com -szfg.net -szfw.org -szfwzl.com -szfx.com -szfyhd.com -szgalaxy.com -szggzy.com -szgky.com -szgla.com -szguanai.com -szguante.com -szgwsd.com -szgymz.com -szhdyic.com -szhetai.com -szhfwd.com -szhgh.com -szhh8.com -szhiross.com -szhk.com -szhkhui.com -szhlodz.com -szhlsg.com -szhome.com -szhomeimg.com -szhot.com -szhtbs.com -szhtp.com -szhuace.com -szhuhang.com -szhulian.com -szhulian.net -szhytrip.com -szicc.net -szider.com -szisland.com -szjcyyy.com -szjhxjt.com -szjinhuanyu.com -szjlwul.com -szjunfei.com -szjuquan.com -szjyos.com -szjys1888.com -szjytx.com -szkegao.net -szkingdom.com -szkoa.com -szlande.com -szlangwei.com -szlc9.com -szlcsc.com -szlddb.com -szledia.org -szleezen.com -szlhtram.com -szlianya.net -szlihuam.com -szlilun.com -szline9.com -szlingsheng.com -szlips.com -szlos.com -szlottery.org -szltech.com -szlvbarcode.com -szlwtech.com -szlzsd.com -szmadigi.com -szmall.com -szmama.com -szmama.net -szmc.net -szmctc.com -szmil.com -szmrcd.com -szmslaser.com -szmtzc.com -szmuseum.com -szmynet.com -szmyxc.com -szn360.com -sznews.com -szniego.com -szniushi.com -szns-marathon.com -szol.net -szolxd.com -szonline.net -szp168.com -szpa.com -szpclab.com -szpgm.com -szpiao.com -szpiaoyi.com -szpldq.net -szpmi.org -szpowerpms.com -szputy.com -szpxe.com -szqcz.com -szqf.org -szqsq.com -szqt.net -szquanli.com -szrcfw.com -szrrjc.com -szrtcpa.com -szryc.com -szschj.com -szsci.net -szscree.com -szsczx.com -szseafoodexpo.com -szshequ.org -szsia.com -szsing.com -szsjtjj.com -szsjxxpt.com -szsky.com -szslhssy.com -szsmk.com -szsnking.com -szsq.net -szsunlaser.com -sztaijier.com -sztalent.org -sztara.com -sztkc.com -sztopbrand.com -sztspi.com -sztxcpa.com -szuavia.org -szvca.com -szvft.com -szvi-bo.com -szwaishi.com -szwb.com -szwblm.com -szwego.com -szweijubao.com -szweita.com -szwfb.com -szwfzs.com -szwgroup.com -szwhxy.com -szwstui.com -szwtsd.com -szwuyukeji.com -szwwco.com -szxbyx.com -szxdhj.com -szxhdz.com -szxiangjun.com -szxihu.com -szxinghe.net -szxinjiaxin.com -szxinyixin.com -szxiot.com -szxlga.com -szxsdmy.com -szxuexiao.com -szxxtx.com -szycil.com -szyfdz.net -szyibei.com -szyin.com -szyingzhan.com -szyixiu.net -szyjedu.com -szymweb.com -szyran.com -szysmpay.com -szyuda88.com -szyxwdz.com -szyxwkj.com -szyy0373.com -szyyda.com -szyyt.com -szyyx.com -szzbmy.com -szzczl.com -szzfgjj.com -szzfzd.com -szzh365.com -szzhangchu.com -szzhaodaxin.com -szzs360.com -szzunbao.com -szzxks.net -szzyqc.net -szzyqy.com -t-d.tv -t-firefly.com -t-gafa.com -t-io.org -t-v.com -t.tt -t00ls.cc -t00ls.net -t00y.com -t086.com -t1.ink -t10.com -t105.com -t11.store -t12.com -t123yh.xyz -t1networks.com -t1y4.com -t1y5.com -t20000.com -t2cn.com -t3315.com -t4lover.com -t5.work -t56.net -t56jy.net -t5a9.com -t5xs.com -t6756.com -t6q.com -t85.net -t888.net -t888w.com -t8f.com -t8tcdn.com -ta26.com -taaas.org -tabalt.net -tachangxing.com -tacool.com -tactan.net -tadu.com -taeapp.com -tag.gg -tagcommander.com -tagjj.com -taglyst.com -tagphi.net -tagtxq.com -taguage.com -taguxdesign.com -tahua.net -tai-liang.com -tai1000.com -tai3399.com -tai666666.com -tai87.com -taian.com -taianmedia.com -taiantang.net -taibumall.com -taichi-maker.com -taichyfood.com -taicihome.com -taidao.net -taidic.net -taidous.com -taidu.com -taig.com -taigaoxiao.com -taihaikj.com -taihainet.com -taihaocn.com -taihe.com -taihehospital.com -taihemedia.com -taihuoniao.com -taihuwang.com -taihuyuan.com -taiji.com -taijicoder.com -taijiny.com -taijio.com -taijutv.com -taikang.com -taikanglife.com -taikangzhijia.com -taikeji.com -taikewei.com -taikongmedia.com -taikr.com -taimi100.com -taipingyang.hk -taipingyangyinshua.com -taiqigame.com -tairan.com -taisantech.com -taishangshiwu.com -taiwandao.tw -taiwu.com -taixi.cc -taixingren.com -taixsw.com -taiyang888.com -taiyangd.com -taiyanghttp.com -taiyangpo.com -taiyiche.com -taiyiplus.com -taiyulink.com -taizibao.com -tajdny.com -takungpao.com -taladapp.com -talbrain.com -talebase.com -talentable.com -talentjava.com -talents-tech.com -talentsmag.com -talicai.com -taliove.com -taljdns.com -talk-fun.com -talk007.com -talkgw.com -talkingchina.com -talkingdata.com -talkingdata.net -talklee.com -talkop.com -talkwithtrend.com -talkyun.com -taluo.com -talyscm.com -talzjsj.com -tamaegis.com -tamc8.com -tamersunion.net -tamguo.com -tamigroup.com -tamll.com -tan.cc -tan07.com -tan14.net -tan8.com -tanamari.com -tanapk.com -tanbao178.com -tanbo.name -tancdn.com -tanchinese.com -tandehao.com -tandjx.com -tang-lei.com -tang.su -tangdaoya.com -tangdou.com -tangdouimg.com -tangeche.com -tangentessays.com -tanggu11g.com -tangguoxian.com -tanghushi.com -tangjie.me -tangkabj.com -tanglei.name -tangmi.net -tangobrowser.net -tangongye.com -tangqingtuia1.com -tangrenjv.com -tangruiqian.com -tangsanshu.com -tangshijun.com -tangshuang.net -tangshui.net -tangsongys.com -tangsuanradio.com -tangtang.org -tanguan.net -tangux.com -tangyingkang.com -tangzhuan666.com -tanhaibo.net -tanho.com -tankeai.com -tankmm.com -tankywoo.com -tanling.com -tanluxia.com -tanma.tech -tanmer.com -tanmizhi.com -tanpoqiuer.com -tanrd.com -tanshudata.com -tansoole.com -tantanapp.com -tantu.com -tantu.info -tantuw.com -tanv.com -tanwan.com -tanwan123.net -tanwanyx.com -tanweime.com -tanwuapp.com -tanx.com -tanxuling.com -tanyu.mobi -tanyuantech.com -tanzhouedu.com -tanzhoujiaoyu.com -tao-jiujiu.com -tao-star.com -tao-studio.net -tao-wu.com -tao008.com -tao123.com -tao168.com -tao30.com -tao616.com -tao800.com -tao8090.com -taoa.com -001pp.com -taobao-img.com -taobao.com -taobao.cz -taobao.global -taobao.net -taobao.org -taobao.tw -taobao1111.com -taobao92.com -taobaocdn.com -taobaocdn.net -taobaozxw.com -taobc.com -taobeihai.com -taobeirj.com -taobizhong.com -taobz.com -taoc.cc -taocange.com -taoche.com -taoci.com -taocloudx.com -taocms.org -taocz.com -taodabai.com -taodake.com -taodaso.com -taodaxiang.com -taodb.net -taodianjia.com -taodiantong.com -taodiqupu.com -taodocs.com -taododo.com -taodu.com -taodudu.cc -taofang.com -taofen8.com -taofont.com -taogouxingxuan.com -taogula.com -taohaobang.com -taohhui.com -taohua.com -taohuazu.net -taohuazu.pw -taohui.pub -taohuichang.com -taohuren.com -taoibao.net -taojiji.com -taojin6.com -taojindi.com -taojingame.com -taojinhudong.com -taojinji.com -taojinyi.com -taoke.com -taokehome.com -taokewenan.com -taokezhushou.com -taokouling.com -taoku.com -taolinks.cc -taoluzhibo56.com -taolvtong.com -taolx.com -taomanhua.com -taomee.com -taomeiju.com -taoming.com -taomingyan.com -taonienie.com -taoniu.com -taoniupin.com -taooo.cc -taopb.com -taopiaopiao.com -taopinquan.com -taoq.net -taoqao.com -taoqian123.com -taoqizu.com -taoquanquan.com -taosdata.com -taosha.club -taoshouyou.com -taoshu.com -taoshudang.com -taosj.com -taotao.com -taotaocar.com -taotaoxz.com -taotieren.com -taotiwang.com -taotu8.net -taou.com -taowola.com -taoxiaolu.com -taoxie.com -taoxuemei.com -taoxv.com -taoyi-support.com -taoyizhu.com -taozaisheng.com -taozhanyun.com -taozhuo.com -taozhutu.com -tapapis.com -tapas.net -tapdata.net -tapdb.com -tapdb.net -tapenjoy.com -tapimg.com -tapotiexie.com -tapque.com -tapsvc.com -taptap-api.com -taptap.com -taptapcode.com -taptapdada.com -taraniss.com -tarczp.com -tarenacn.com -tarenwang.net -tarqk5.com -tarsier-infra.com -tarsocial.com -tartscenter.com -tasaiwang.com -tasiyun.com -taskcity.com -taskcn.com -taskyou.net -tasly.com -tastespirit.com -tastysteak.com -tatatimes.com -tatazu.com -taterli.com -tatstm.com -tattoo114.com -tattoo77.com -tattooo.net -taurentech.net -taurus66.com -tavsiktlig.com -tax-edu.net -taxjiangkewang.com -taxnote.org -taxspirit.com -taxwen.com -tayohya.com -tazhe.com -tb51.net -tb58.net -tb888.net -tbadc.com -tbadesign.org -tbankw.com -tbcache.com -tbh5.com -tbhcc.com -tbhelper.com -tbhjgc.com -tbizk.com -tbjt18.com -tbjtss.com -tbkf.net -tbl-import.com -tblk.me -tbnimg.com -tboxn.com -tbq168.com -tbs321.com -tbsandbox.com -tbscp.net -tbsgame.net -tbshops.com -tbsite.net -tbt.cc -tburl.in -tburl.net -tbuser.com -tbxt.com -tbyfsoft.com -tbyuantu.com -tc-21.com -tc12580.com -tc199.net -tc9011.com -tc930.com -tccxfw.com -tcdai.com -tcdlive.com -tcdnhw.com -tcdnkcbak.com -tcdnlive.com -tcdnlivebak1.com -tcdnlivebak2.com -tcdnos.com -tcdnos.net -tcdntip.com -tcdnv3.com -tcdnvod.com -tcdnvodbak.com -tcdnvp.com -tcdushi.com -tcecps.org -tceic.com -tcfhty.com -tcfmglobal.com -tcgcardgame.com -tchbgz.com -tchzt.com -tciplay.com -tcl.com -tclbusiness.com -tclclouds.com -tcljd.com -tclking.com -tclkqn.com -tcloudbase.com -tcloudbase.net -tcloudbaseapp.com -tcloudbi.com -tclouddrive.com -tcloudedu.com -tcloudfamily.com -tcloudhw.com -tcloudhw.net -tcloudscdn.com -tcloudscdn.net -tcm100.com -tcmfrj.com -tcnews.cc -tcnvmms.com -tcp.hk -tcpspc.com -tcrcb.com -tcrcsc.com -tcs-y.com -tcsae.org -tcsdzz.com -tcsnake.com -tcstzg.com -tctip.com -tctong.com -tcxw.cc -tcy365.com -tcyad.com -tcylgslb.com -td-tech.com -td22.com -td518.com -td776.com -td98.com -tdamtrade.com -tdatamaster.com -tddmp.com -tdfcw.com -tdict.com -tdigcw.com -tdimg.com -tdldz.com -tdlegg.com -tdnsv1.com -tdnsv12.com -tdnsv2.com -tdnsv3.com -tdnsv5.com -tdnsv6.com -tdnsv7.com -tdnsv8.com -tdnsx1.com -tdotapp.com -tdpress.com -tdun.com -tduou.com -tdyxmoto.com -tdzyw.com -te5.com -te6.com -tea26.com -tea7.com -teach365.com -teachblog.net -teachcn.net -teachercn.com -teacti.com -teakki.com -teaku.com -teallang.com -tealui.com -teamall.cc -teambition.com -teambition.net -teambitionapis.com -teamlogs.com -teamminus.com -teamotto.net -teamshub.com -teamtopgame.com -teandy.com -teapic.com -teatreexy.com -teazhishi.com -tebaidu.com -teboncapital.com -tec73.com -tecbbs.com -tecenet.com -tech-mx.com -tech-sonic.net -tech1024.com -tech110.net -tech126.com -tech2ipo.com -tech2real.com -techan.com -techantong.net -techbeat.net -techbrood.com -techflowpost.com -techgastronomy.com -techgogogo.com -techingrid.net -techmiao.com -techo.chat -techoke.com -techonegame.com -techqianmo.com -techshidai.com -techsir.com -techtmt.com -techuangyi.com -techug.com -techvisum.com -techwalker.com -teclast.com -tecobj.com -tecyle.com -tedaniu.com -teddymobile.net -tedx.net -tedxalc.com -teencn.com -teeny-websex.com -teeqee.com -tefl-china.net -tefscloud.com -tefscloud.net -tegongji.com -tegoushe.com -tehui001.com -tehuituan.com -tejiabei.com -tejiawang.com -tel-id.com -tel139.com -telaideyouxue.com -teld.net -telecomhb.com -telefen.com -telegtv.com -telehr.com -teleinfoo.com -teleland.net -teleows.com -telfri.net -teligen-cloud.com -teliute.org -telking.com -tell520.com -telling.com -telllove520.com -telnet404.com -telojob.com -telu.net -telunsu.net -tem.pw -tem365.com -temaihui88.com -temaiku.com -temox.com -temp.im -tenant-zone-dev.com -tencdns.net -tencent-blackboard.com -tencent-cloud.com -tencent-cloud.net -tencent-gcloud.com -tencent-gf.com -tencent.com -zxwindow.com -tencent.design -tencent.net -tencentads.com -tencentapps.com -tencentbyod.com -tencentcdb.com -tencentclb.com -tencentcloud-aiot.com -tencentcloud.com -tencentcloudapi.com -tencentcloudbase.com -tencentcloudclub.com -tencentcloudcr.com -tencentcloudmarket.com -tencentcloudns.com -tencentcloudsec.com -tencentcloudses.com -tencentcos.com -tencentcs.com -tencentdayu.com -tencentdb.com -tencentdba.com -tencentdevices.com -tencentdigitalassistant.com -tencentdms.com -tencenteiam.com -tencentelasticsearch.com -tencentid.com -tencentidentity.com -tencentipv6.com -tencentlog.com -tencentmeeting.com -tencentmind.com -tencentmusic.com -tencentproxy.com -tencentrio.com -tencentstart.com -tencentsuite.com -tencenttid.com -tencentwemeet.club -tencentwepark.com -tencentwm.com -tencentyun.com -tenchii.com -tendacn.com -tendawifi.com -tendbcluster.com -tendcode.com -tenddata.com -tendis.net -tendyron.com -tenganxinxi.com -tengbai-it.com -tengbo.cc -tengchu.com -tengdinggame.com -tengfang.net -tengfangyun.com -tengfeijob.com -tengfeizhida.com -tengfun.com -tenghen.com -tengma123.com -tengmed.com -tengmoney.com -tengwen.com -tengwen001.com -tengxunqiye.com -tengxunqiyeyou.com -tengy.com -tengyuejz.com -tengzhihh.com -tengzhipp.com -tengzhuan.com -tenhot.net -tenlonstudio.com -tenlywu.com -tenmh.com -tennoo.com -tenorshare.com -tenpay.com -tenqent.com -tensafe.com -tenshi.cc -tensorchip.com -tensornews.net -tenstars.net -tensynad.com -tensynchina.com -tentech.club -tentrue.com -tentx.com -tenxapp.com -tenxcloud.com -tenxcloud.net -teown.com -tepcb.com -tepintehui.com -terabuy.com -terapines.com -terence2008.info -terencexie.com -teridge.com -terminus.io -terransforce.com -teruide.net -tese5.com -tesexiu.com -teshenqi.com -tesolsh.com -tesoon.com -test-cignacmb.com -testbird.com -testcoo.com -testeb.com -testerhome.com -testerlife.com -testict.com -testingpai.com -testlrq.com -testroad.org -testrust.com -testtao.com -testwaf.com -testwo.com -testxy.com -teuhui.com -tex68.com -texasholdemcup.com -texasholdemcup.net -texclo.net -textin.com -teyizk.com -teyop.com -tezhengma.com -tezhongzhuangbei.com -tezign.com -tf.wiki -tf86.com -tfax.com -tfcaijing.com -tfcloud.com -tfclub.com -tfdccn.com -tfedu.net -tff.bz -tfg2.com -tfgame.vip -tfhj.com -tfme.com -tfogc.com -tfol.com -tfrl.net -tfsino.com -tfsmy.com -tftplay.com -tfvisa.com -tfxgt.com -tfyum.net -tfzcode.com -tfzq.com -tg-vision.com -tg-vision.net -tg0123.com -tg0550.com -tg1234.com -tg138.com -tg72.com -tgah.skin -tgbus.com -tgcid.org -tgcook.com -tgddsads.com -tghello.com -tgjh.com -tgking.net -tgljw.com -tglxh.com -tgnet.com -tgovcloud.com -tgshiguan.com -tgslsst.com -tgyoo.com -th.app -th38.com -thamco.com -thanhong.me -thankbabe.com -thatinterpreter.net -thatsmags.com -thatsmandarin.com -thcad.net -thcantech.com -thdb.com -the4can.com -the5fire.com -the9.com -thearenacapital.com -thearyong.com -theateliercouture.com -thebeastshop.com -thebeautools.com -thebeijinger.com -thebeijingnews.com -theblockbeats.info -thechihuo.com -thechois.cc -thecode.me -thecodeway.com -thedatasys.com -theduapp.com -thefastfile.com -thefastimg.com -thefatherofsalmon.com -thegallahotel.com -thegiac.com -thegraduation.store -thehanshow.com -thejamy.com -thejiangmen.com -thejoyrun.com -thelarkcloud.com -thelastsky.com -themebetter.com -themeila.com -themeol.com -themex.net -themez.cc -themisweeps.com -then9.com -thenburn.com -thenew123.com -theorychina.org -thesmartmelon.com -thestack.net -theszt.com -thethirdmedia.com -thetigerhood.com -thetongji.com -thetype.cloud -thewowa.com -thexnode.com -theyun.com -thfdc.net -thfdcsoft.com -thfure.com -thhome.net -thhymj.com -thief.im -thinbug.com -thingjs.com -think-mall.com -thinkcmf.com -thinkdream.com -thinkeridea.com -thinkindrupal.com -thinkjs.org -thinksns.com -thinksrc.com -thinvent.com -thiscute.world -thishealthsummit.com -thiztech.com -thjunshi.com -thmovie.com -thmz.com -thn21.com -thoughtworkers.org -thrbs.com -threadcn.com -threatbook.net -threegorgestours.com -threeol.com -threetong.com -ths123.com -ths8.com -thseoer.com -thstars.com -thtfpc.com -thufeng.net -thumedialab.com -thundercdn.com -thundercdn.net -thundercloud.group -thunderflash.net -thunderobot.com -thunderplaygame.com -thunderurl.com -thunis.com -thunisoft.com -thunlp.org -thupdi.com -thurcacca.org -thwiki.cc -thxbxg.com -thxddb.com -thxedu.com -thxflt.com -thxxw.com -thyclub.com -thyoo.com -thyou.com -thz56.com -thzab.com -ti-node.com -ti-solar.com -ti98.com -tian10.com -tianan-cyber.com -tianan.net -tiananmenlvyou.com -tianapi.com -tianbaosi.com -tianbiao.net -tiancaiui.com -tiancaixing.com -tianchu.com -tiancity.com -tiancitycdn.com -tiandaoedu.com -tiandi.com -tianditao.com -tianditu.com -tiandizw.com -tianduntech.com -tiandy.com -tianehui.net -tianelian.com -tianfeiyu.com -tianfuhui.xin -tianfupic.com -tianfusoftwarepark.com -tianhaohz.com -tianhejiayi.com -tianhongdiaosu.com -tianhongsunshine.com -tianhujy.com -tianji.com -tianji368.com -tianjiarun.com -tianjigame.com -tianjihr.com -tianjimedia.com -tianjin-air.com -tianjingrong.com -tianjinshunma.com -tianjinwe.com -tiankong.com -tianlaiedu.com -tianlaijiaoyu.com -tianlaikge.com -tianlailive.com -tianlan.net -tianmao.com -tianmaying.com -tianmidian.com -tianmu.mobi -tianmunews.com -tianmupe.com -tianmupr.com -tiann90.com -tiannv.com -tianpeng.com -tianpinjie.com -tianqi.cc -tianqi.com -tianqi123.com -tianqi24.com -tianqi321.com -tianqi518.com -tianqiaojuyuan.com -tianqiaoyishuzhongxin.org -tianqiapi.com -tianqicloud.com -tianqihoubao.com -tianqijun.com -tianqikb.com -tianqistatic.com -tianrow.com -tianruixinxi.com -tianruiyun.com -tianruo.net -tiansenjituan.com -tianshan277.com -tianshengdiyi.com -tianshi.info -tianshi2.net -tianshiyiyuan.com -tianshouzhi.com -tianshuge.com -tiantailaw.com -tiantang6.com -tiantangnian.com -tiantaxx.com -tianti.com -tiantian.com -tiantiancaipu.com -tiantianfm.com -tiantianfunds.com -tiantianleshuiguo.com -tiantianquce.com -tiantianqutao.com -tiantianxuexi.com -tiantk.com -tiantonglaw.com -tianvalue.com -tianwenhu.com -tianxiajiameng.com -tianxiang.com -tianxianmao.com -tianxiawangxiao.com -tianxiaxiao.net -tianxiaxinyong.com -tianxiaydslfd.com -tianxin100.vip -tianxing.com -tianxinsuye.com -tianya.com -tianya.tv -tianya999.com -tianyaluedu.com -tianyancha.com -tianyanqifu.com -tianyant.com -tianyaruanwen.com -tianyecollege.com -tianyi1368.com -tianyibook.com -tianyihy.net -tianyiidc.com -tianyijue.com -tianyinzaixian.com -tianyitop.com -tianyue100.com -tianyuimg.com -tianzhao.net -tianzhuo.com -tianzhuobj.com -tianziweb.net -tianzongyouxi.com -tiao.pro -tiaodao.com -tiaoguangbolimo.com -tiaohao.com -tiaoka.com -tiaomu.com -tiaona.com -tiaooo.com -tiaotiaotang.net -tiaoyue.xyz -tiaozhanbei.net -tiatiatoutiao.com -tibaitong.com -tibet3.com -tibet4wd.com -tibetanbible.org -tibetannet.com -tibetcn.com -tibetcnr.com -tibetcul.com -tibetculture.net -tibetcyts.com -tibetway.com -ticketdashi.com -ticketmars.com -ticp.io -ticp.net -ticstore.com -ticwear.com -tidaas.com -tidb.io -tide.fm -tideswing.fun -tidi.mobi -tiduyun.com -tieba.com -tiebaimg.com -tiebamm.com -tiebaobei.com -tiebashop.com -tiedan2019.com -tiegu.com -tiejia123.com -tiejiang.org -tiejiong.com -tiejp.com -tielemao.com -tielu.org -tiepishihu.com -tiequangame.com -tietie.la -tietuku.com -tieweishi.com -tieww.com -tiexing.com -tiexing.net -tiexiuyugudao.com -tiexue.net -tieyi.tm -tieyou.com -tiezhima.com -tiezis.com -tigerbbs.com -tigerbrokers.com -tigerbrokers.net -tigeresop.com -tigerfintech.com -tigersecurities.com -tigeryun.com -tiham.com -tiimg.com -tijian001.com -tijian123.com -tijianbao.com -tijianka.cc -tijianshangmen.com -tijianzhuanjia.com -tikane.com -tikersport.com -tikuol.com -tillcn.com -tillglance.com -timanetworks.com -timchen314.com -time-weekly.com -time-year.com -timecoo.com -timedg.com -timedoo.com -timeofdate.com -timeoutbeijing.com -timeoutcn.com -timeoutshanghai.com -timepill.net -timeread.com -timeread.net -timesboom.com -timesdf-hn.com -timeticktick.com -timetw.com -timev.com -timibase.com -timing360.com -timipc.com -timitime.com -timjx.com -timmerse.com -tinetcloud.com -tinfinite.com -tinfo.com -ting-tou.com -ting55.com -tinga88.com -tingbook.com -tingcd.com -tingchewei.net -tingchina.com -tingclass.com -tingclass.net -tingdegang.com -tingfun.net -tinghen.com -tingjiandan.com -tingke8.com -tingmall.com -tingmimi.net -tingniukeji.com -tingroom.com -tingsonglaw.com -tingtao.net -tingtingfm.com -tingxiangzu.com -tingyulou.com -tingyun.com -tingyutech.net -tinigame.xyz -tinkad.net -tinkerpatch.com -tinman798.net -tinsecret.com -tinsecret.org -tiny4.org -tinyems.com -tinyflare.com -tinygroup.org -tinylab.org -tinyservices.net -tinyyuan.com -tipaipai.com -tipask.com -tipdim.org -tipdm.com -tipray.com -tiprpress.com -tipsanakcerdas.com -tiqiaa.com -tiqianle.com -tiruna-cn.com -tisgame.com -tisino.com -tisiwi.com -tisohinge.com -tita.com -titan007.com -titan24.com -titanar.com -titanmatrix.com -titapark.com -tivitv.com -tiwb.com -tixa.com -tixaapp.com -tiye.me -tiyeji.com -tiyep.com -tiyu21.com -tiyu68.com -tiyucdn.com -tiyufeng.com -tiyule.com -tiyusaishi.com -tiyuxiu.com -tizi.com -tizi365.com -tizoinfo.com -tj-guangxin.com -tj-kingdee.com -tj-model.com -tj-un.com -tj-zt.com -tj0573.com -tj20.com -tjaide.com -tjashy.com -tjbearing.com -tjbh.com -tjbsq.com -tjbus.com -tjcamp.com -tjcondom.com -tjculture.com -tjdwkj.com -tjdyf.com -tjfer.com -tjgcs.com -tjgtgd.com -tjhskj.com -tjhukou.com -tjhyzyxy.com -tjinsuo.com -tjj.com -tjjapp.com -tjjt360.com -tjjwt.com -tjkx.com -tjkximg.com -tjllhbkj.com -tjluohuzhijia.com -tjmama.com -tjmhc.com -tjmuch.com -tjmysdq.com -tjnbuz.com -tjorthop.org -tjpa-china.org -tjpma.org -tjrenmu.com -tjrge.com -tjruien.com -tjsjnxh.com -tjsjx.com -tjst.net -tjstats.com -tjtele.com -tjtusuguan.com -tjufbase.com -tjumc.com -tjupdi.com -tjwch.com -tjwch.org -tjwenjie.com -tjwj88.com -tjwmschool.net -tjxmzd.com -tjxrm.com -tjxunlei888.com -tjxxcl.com -tjxz.cc -tjyfkt.com -tjyingxinkeji.com -tjyun.com -tjyywjc.com -tjyz.org -tjzb.com -tjzcsj.com -tjzekun.com -tjzfcg.com -tjzhongyiyao.com -tjzyec.com -tjzyfw.com -tk-rays.com -tk-xiong.com -zxwcbj.com -tk163.com -tkg5.com -tkgame.com -tkhealthcare.com -tkoubei.com -tkplusemi.com -tkw.cc -tkxxd.net -tky001.com -tl-self.com -tl-shida.com -tl-tek.com -tl-vogue.com -tl88.net -tlbaby.com -tlby120.com -tlbyx.com -tlcharity.com -tlfjw.com -tlfw.net -tlgslb.com -tlightsky.com -tlinx.com -tlivecdn.com -tlivemcdn.com -tliveplay.com -tlivepush.com -tlivesource.com -tljcw.com -tljob8001.com -tlqwine.com -tlrcbk.com -tlryjg.com -tlsj-hd.com -tlt5.com -tlte.com -tltesoft.com -tltuan.net -tltzg.com -tlwok.com -tm312.com -tmaill.com -001kd.com -tmall.casa -tmall.com -tmall.hk -tmall.ru -tmalltv.com -tmallvvv.com -tmbbs.com -tmcdn.net -tmdm.com -tmeiju.com -tmeissheng.com -tmgwdz.vip -tmhong.com -tmiep.org -tmisp.com -tmjiasuqi.com -tmjj.com -tmjl.ai -tmjob88.com -tmkoo.com -tmmini.com -tmqmqj.com -tmrcw.com -tmscnz.com -tmsf.com -tmsmh.com -tmtforum.com -tmtpost.com -tmtpost.net -tmtsmartlife.com -tmtsmartrun.com -tmuaih.com -tmuyun.com -tmwcn.com -tmxmall.com -tmxxw.com -tn2000.com -tnbz.com -tnccdn.com -tnet.hk -tngcjx.com -tnjyfc.com -tnkjmec.com -tntdown.com -to-future.net -to4f.com -to8to.com -to9.org -to999.com -tobaccobid.com -tobaccochina.com -toberp.com -tobetopone.com -tobkk.com -tobnews.com -tobo1688.com -tobosu.com -tobosu.net -tobsnssdk.com -tochgo.com -tochinajob.com -tocosc.com -today36524.com -todaycache.net -todayguizhou.com -todayidc.com -todayintnet.com -todayios.com -todayisp.net -todaynic.com -todesk.com -todoen.com -todokeji.com -todokit.xyz -todonow.com -todreamer.com -toec-gdgs.com -toec-iot.com -toec.com -toecsec.com -tofengmi.com -togj.com -togocareer.com -togogo.net -tohkalove.com -tohosting.com -tohosting.net -tohours.com -tohuo.com -toidea.com -token-ad.com -tokenet.site -tokenglish.com -tokensky.net -tokimekiclub.org -tol24.com -tom.cat -tom.com -tom163.net -tomatogames.com -tomatolei.com -tomax.xyz -tomczhen.com -tomdiy.com -tomonline-inc.com -tomotoes.com -tompda.com -tomujiang.com -tomwx.net -tonbao.com -tonehk.com -tonewinner.com -tongbanjie.com -tongbanjie.info -tongbaoyun.com -tongbu.com -tongbulv.com -tongbupan.com -tongbusj.com -tongcaihulian.com -tongchaba.com -tongcheng.cc -tongchengchaku.com -tongchengqun.vip -tongchouba.com -tongda2000.com -tongdaohui.com -tongdun.net -tongfangpc.com -tongfengkh.com -tongfengqu.com -tongfu.net -tonggao.info -tongguanbao.net -tonghuaji.com -tonghuiqiye.com -tongji.com -tongji.net -tongjiai.com -tongjitong.com -tongleer.com -tongli-hrcc.net -tongliangrc.com -tongliaowang.com -tonglu-tour.com -tongshanbank.com -tongshilu.com -tongshuai.com -tongtaiamc.com -tongtech.com -tongtianta.site -tongtool.com -tongtut.com -tongwang.net -tongxiang.net -tongxianghuicn.com -tongxiehui.net -tongxin.com -tongxin.org -tongxinghui.com -tongxinky.com -tongxinmao.com -tongxinteng.com -tongxinyiyaocs.com -tongxiong.com -tongxue.com -tongxue365.com -tongyavisa.com -tongye.biz -tongyi.com -tongyidrying.com -tongyuanos.com -tongyue.com -tongzhuo100.com -tonitech.com -tonnn.com -tony9410.tk -tonycrane.cc -tonysfarm.com -toocle.com -toodaylab.com -tool.la -tool.lu -tool77.com -toolmall.com -toolmao.com -toolnb.com -tools.team -tooming.com -toomoss.com -toon.mobi -toonmax.com -toonmaxmedia.com -tooopen.com -tooseo.com -tootour.com -toouoo.com -top-iot.com -top100summit.com -top147.com -top263.net -top2fun.com -topber.com -topbester.com -topbiz360.com -topbm.com -topbook.cc -topcdb.com -topcheer.com -topchitu.com -topciic.com -topcj.com -topcpu.net -topcrab.com -topcsic.com -topdodo.com -tope365.com -topeditsci.com -topeet.com -topeetboard.com -topengroup.net -topfisc.com -topflames.com -topfreeweb.net -topfro.com -topgslb.com -topgus.com -tophant.com -tophold.com -tophr.net -tophub.fun -tophub.today -topitme.com -topjoy.com -topjoycloud.com -topksw.com -topku.com -toplanit.com -toplee.com -toplife.com -toplinks.cc -toploong.com -topmba.mobi -topomel.com -toppdu.com -topperuse.com -topproio.com -topqh.net -toprand.com -toprocn.com -topsage.com -topscan.com -topsedu.com -topsrx.com -topswim.net -toptastewin.com -topthink.com -topthink.net -toptiao.com -toptourservice.com -topuc.com -topuplive.com -topwalk.com -topwanwan.com -topway.org -topwaysoft.com -topwinfo.com -topys.com -topzj.com -torovo.com -torphan.com -tosenscredit.com -toshiba-gtbs.com -toshiba-semicon-storage.com -toshiba-thpc.com -toshiba-tnis.com -toshow.com -tospur.com -totalacg.com -totodi.com -totoro.pub -totwoseal.com -tou360.com -toubang.tv -toucdn.com -touch-moblie.com -touch4.me -touchealth.com -touchev.com -touchpal.com -touchsprite.com -touchsprite.net -touchstudio.net -touchxd.com -touclick.com -touduyu.com -toufu321.com -toughcoder.net -tougub.com -touhou.casa -touhou.cd -touhou.vote -toujidao.com -touker.com -toumiao.com -toupb.com -toupiaoapp.com -touqikan.com -tour110.com -tourboxtech.com -tourenwang.com -tourhr.com -tourjob.net -tourongjia.com -tourongzi.org -toursbms.com -tourscool.com -tourye.com -toushibao.com -toushivip.com -toutiao.com -toutiao.org -toutiao11.com -toutiao12.com -toutiao13.com -toutiaoapi.com -toutiaoapp.com -toutiaobashi.com -toutiaobus.com -toutiaocdn.com -toutiaocdn.net -toutiaocloud.com -toutiaocloud.net -toutiaohao.com -toutiaohao.net -toutiaoimg.com -toutiaoimg.net -toutiaolite.com -toutiaolite1.com -toutiaonanren.com -toutiaopage.com -toutiaostatic.com -toutiaovod.com -toutiaoyule.com -toutiaozb.com -toutoufc.com -toutoupiao.com -touwenzi.com -touwho.com -touxiang8.com -touxiangwu.com -touying.com -touyouquan.com -touzhibang.com -touzhijia.com -touzi.com -touzid.com -touzikuaibao.com -touzime.com -touzizn.com -toviu.net -tower.im -towinor.com -townsky.com -towntour.net -towords.com -towry.me -toxingwang.com -toybaba.com -toycloud.com -toyean.com -toysir.com -tozzger.info -tp8.me -tpbook.com -tpcdnde88de.com -tpengyun.com -tpkey.com -tplife.com -tplm123.com -tplogincn.com -tpooo.com -tpoxiaozhan.com -tpsge.com -tpsxs.com -tpszw.com -tpturang.com -tpy100.com -tpyboard.com -tpyzq.com -tq163.com -tq520.net -tqcj.com -tqcto.com -tqedu.net -tqiantu.com -tql.ink -tqle.com -tqmall.com -tqmdp.net -tqmrg.com -tqqa.com -tqqyun.com -tqsafe.com -tqschool.net -tqybw.net -tqzsh.com -trace4me.com -tracefact.net -traceint.com -tracestour.com -track-roller.com -tracker.ink -trackingio.com -trackingmore.com -tracup.com -tracyclass.com -trade-over-world.com -trade-plug.net -trade2cn.com -tradeleo.com -tradew.com -tradow.com -tradplusad.com -traineexp.com -trainingipv6.com -trainnets.com -trait-wholesale.com -tranbbs.com -trans4e.com -transcn.org -transer-cn.com -transformer-cn.com -transfu.com -transfun.net -translatego.net -translation-dictionary.net -translationchina.com -transn.com -transnbox.com -transparcel.com -transplendor.com -transportjp.com -transrush.com -transtill.com -transwarp.io -transwiki.org -tratao.com -travel-x.cc -zxw51.com -travellingwithhotel.com -travellinkdaily.com -travelsky.com -travelsky.net -travelwuhan.com -travelyee.com -treehousesub.com -treetwins.com -treeyee.com -trekin.space -trekiz.com -trend6.com -trendingstar.tech -trendsbulletin.com -trendsmen.com -trendtokyo.com -trendy-men.com -tretars.com -trhj.net -trhos.com -trhui.com -trickypen.com -trinitigame.com -trioisobardev.com -trip.com -trip8080.com -tripbaba.com -tripbe.com -tripcdn.com -triphr.com -triplexservice.com -tripodeck.com -tripsanxia.net -tripurx.com -tripvivid.com -tripwirechina.com -triring.com -triumbest.net -trjcn.com -trjcn.net -trli.club -troila.com -trojantesting.com -tronixin.com -tropcdn.com -trpcdn.net -trqjrp.xyz -trsoft.vip -trsoft.xin -trsol.com -trt.hk -trtb.net -trucker365.com -trucklc.com -trueart.com -truebuty.com -truedian.com -trueeyu.com -trueland.net -trueme.net -truerun.com -truesing.com -trufun.net -trunktech.com -trusfort.com -trusple.com -trust-one.com -trust400.com -trustasia.com -trustedsign.com -trustexporter.com -trustie.net -trustkernel.com -trustlife.com -trustmover.com -trustmta.com -trustocean.com -trustsoc.com -trustutn.org -trvok.com -trwl.net -tryenough.com -tryfun.com -tryineapp.com -trylist.net -trymoka.com -tryudesk.com -tryurbest.com -tryxue.com -ts-cooling.com -ts-juheng.com -ts100.com -ts166.net -ts16949px.com -ts16949rz.org -ts95.com -tscf8.com -tsddu.com -tsdm.net -tsdxb.com -tsg-online.net -tsggwl.com -tshaisen.com -tshe.com -tshe.me -tshmkj.com -tshock.cc -tshtech.com -tshu.net -tsichuan.com -tsinghua-getinfo.com -tsinghuaic.com -tsinghuaicwx.com -tsinghuajournals.com -tsinghuan.com -tsinghuawoman.com -tsingj.com -tsingming.com -tsingoofoods.com -tsingpost.com -tsingtoo.com -tskscn.com -tskscn.org -tsljzs.com -tslongtai.com -tslsmart.com -tsmtkj.com -tsorder.com -tsov.net -tsp189.com -tsparkling.com -tspsy.com -tspweb.com -tsqw.com -tsrcw.com -tsshunxin.com -tssns.net -tsstorry.com -tstdtz.com -tswuby.com -tsxcx.xyz -tsybsmz.com -tsyqb.com -tsyvps.com -tsyzm.com -tszckj.com -tszhjk.com -tszyzx.com -tt-bike.com -tt-ly.com -tt116114.com -tt1386.com -tt286.com -tt65org.com -tt787.com -tt96596.com -ttaidu.com -ttbba.com -ttbbss.com -ttbc33.com -ttcad.com -ttdailynews.com -ttdown.com -ttechhk.com -ttfly.com -ttgjx.com -tthigo.com -ttic.cc -ttigame.com -ttime.com -ttionya.com -ttjianbao.com -ttjiasu.com -ttkdex.com -ttkefu.com -ttkkuu.com -ttkuan.com -ttkxh.com -ttll.cc -ttlsa.com -ttmark.com -ttmd5.com -ttmnq.com -ttmv.com -ttn8.com -ttpaicdn.com -ttpaihang.com -ttpaper.com -ttpet.com -ttplayer.com -ttpod.com -ttpp.com -ttq.com -tts8.com -ttsfgyrj.com -ttshengbei.com -ttsmmwb.com -ttstream.com -ttsz8.com -ttt.sh -tttarot.com -ttthing.com -tttuangou.net -tttxf.com -tttz.com -ttufo.com -ttunion.com -ttuu.com -ttvosc.com -ttwanjia.com -ttwebview.com -ttwoyun.com -ttwx.com -ttxn.com -ttxs123.net -ttxsapp.com -ttxuanpai.com -ttyingqiu.com -ttyjf.com -ttyjgg.com -ttymq.com -ttyongche.com -ttyqm.com -ttysq.com -ttyyuuoo.com -ttz.com -ttzhongbao.com -ttzw.com -ttzyw.com -tu520.cc -tu8.cc -tu960.com -tuan800.com -tuan800.net -tuanai.com -tuanche.com -tuancu.com -tuandai.com -tuanduishuo.com -tuanhuiwang.com -tuanidc.net -tuanimg.com -tuanjiebao.com -tuankezhan.com -tuanlin.net -tuanpibao.com -tuanping.com -tuanshan.com -tuanwen.com -tuanxia.com -tuanxue360.com -tuanxue360.net -tuanyx.com -tubachina.com -tubangzhu.com -tubaobao.com -tubaobaoqm.com -tubaoveneer.com -tubaoyz.com -tubebbs.com -tubiaoxiu.com -tubie.art -tuboshu.com -tubutu.com -tucaojie.com -tuchong.com -tuchong.net -tuchuanhuwai.com -tucia.net -tucoo.com -tudai.cc -tudan.cc -tudan.vip -tudou.com -tudouh5.com -tudoupe.com -tudouui.com -tudouxy01.com -tudouyx.com -tudu.com -tudu.im -tuer.me -tuer123.com -tugou.com -tuguaishou.com -tuhaihe.com -tuhaokuai.com -tuhu.com -tuhu.org -tuhu.work -tuhusmart.com -tui18.com -tui56.com -tuiaaaa.com -tuiaaae.com -tuiaaaf.com -tuiaaag.com -tuiabq.com -tuiapple.com -tuiayonghu.com -tuibamboo.com -tuibat.com -tuibear.com -tuibench.com -tuiberry.com -tuiclick.com -tuicoco.com -tuicool.com -tuidaniu.com -tuidc.com -tuideli.com -tuidove.com -tuidragon.com -tuifeiapi.com -tuifish.com -tuifrog.com -tuiguangdns.com -tuiguangpingtai.com -tuijian.biz -tuijianxin.com -tuijie.cc -tuikemima.com -tuikemohe.com -tuili.com -tuili8.com -tuilidashi.xin -tuilie.com -tuilisr.com -tuiliu.net -tuiliw.com -tuilixy.net -tuimob.com -tuimotuimo.com -tuipeanut.com -tuipear.com -tuipenguin.com -tuipine.com -tuipink.com -tuiplay.com -tuipony.com -tuirabbit.com -tuirice.com -tuishao.net -tuishark.com -tuishiben.com -tuishujun.com -tuisnake.com -tuistone.com -tuitiger.com -tuitui99.com -tuituitang.com -tuiwen.net -tuixue.online -tuizx.com -tuji.online -tujia.com -tujiacdn.com -tujian.com -tujidu.com -tujiwar.com -tujixiazai.com -tujuren.com -tuke8.com -tuke88.com -tukkk.com -tuku.com -tukucc.com -tukumanhua.com -tukuppt.com -tulading.com -tuliaohr.net -tuling123.com -tuliren.com -tuliu.com -tumajewelry.com -tumanfen.com -tumanyi.com -tumeinv.com -tumormed.com -tumukeji.com -tumuzhe.com -tuna.wiki -tungshungroup.com -tungsten-alloy.com -tungsten-bar.com -tungsten-copper.com -tungsten-jewellery.com -tungsten-powder.com -tunionfans.com -tuniu.cc -tuniu.com -tuniu.net -tuniu.org -tuniucdn.com -tuniuglobal.com -tuniuins.com -tuniuops.net -tunynet.com -tuo-pan.com -tuocad.com -tuodanyy.com -tuohuangzu.com -tuoluocaijing.com -tuoluozhuan.net -tuoniaox.com -tuotoo.com -tuotuozu.com -tuoweisi.com -tuoxiaoshebei.com -tuozhe8.com -tupai.me -tupian114.com -tupian1234.com -tupian365.com -tupiancunchu.com -tupianjp.com -tupiankucdn.com -tupianzj.com -tupu360.com -tuputech.com -tupuw.com -tuqou.com -tuquu.com -turangyq.com -turbomail.org -turbotech.pro -turingapi.com -turingbook.com -turingcat.com -turingdi.com -turingtopia.com -zxw114.com -turnitincn.com -turnitinuk.net -turuio.com -tusapi.com -tusay.net -tuscdn.com -tusdk.com -tushare.org -tushare.pro -tusholdings.com -tushu001.com -tushu007.com -tushuguan.cc -tushumi.com -tushuokeji.net -tushupdf.com -tusij.com -tusiot.com -tusooo.com -tuspark.com -tuspass.com -tuspass.net -tusstar.com -tutechanhb.com -tutu001.com -tutuapp.com -tutucloud.com -tutuge.me -tutuguai.com -tutuim.com -tutupan.com -tuvrblog.com -tuwan.com -tuwan21.com -tuwandata.com -tuwangwang.com -tuwanjun.com -tuwenba.com -tuweng.com -tuwenzhibo.com -tux.red -tuxi.com -tuxiaobei.com -tuxiu.com -tuxun.fun -tuya.com -tuyacn.com -tuyansuo.com -tuyaya.com -tuyeware.com -tuyiqi.com -tuyitu.com -tuyiyi.com -tuyoo.com -tuyou.me -tuyoujp.com -tuyoumi.com -tuyouxinxi.net -tuzhan.com -tuzhan.net -tuzhanai.com -tuzhanh5.com -tuzhaozhao.com -tuzhizhijia.com -tuzi123.com -tuzi8.com -tuzim.net -tuziyangzhi.com -tv0001.com -tv002.com -tv189.com -tv432.com -tvandnet.com -tvapk.com -tvapk.net -tvbbj.com -tvblack.com -tvbwind.com -tvcbook.com -tvccc.org -tventry.com -tvfanqie.com -tvfuwu.com -tvguo.tv -tvhome.com -tvhuan.com -tvjianshen.com -tvkou.com -tvkuai.com -tvmao.com -tvmcloud.com -tvmining.com -tvn.cc -tvnwang.com -tvoao.com -tvos.com -tvscn.com -tvsou.com -tvt.im -tvtide.com -tvtsg.com -tvxio.com -tvzhe.com -tvzn.com -tw-yun.com -tw2sm.com -tw93.fun -twanxi.com -twcad.com -twcczhu.com -twd2.me -twd2.net -tweakcube.com -twguozao.com -twh5.com -twinkleunion.com -twinsel.com -twinsenliang.net -twitterios.com -twk.cc -twoarmy.com -twocucao.xyz -twofei.com -twsapp.com -twscholar.com -twsyue.com -twszs.com -twtstudio.com -twtym.com -twwtn.com -twwtn.net -twyuxin.com -twyxi.com -tx-exhibition.com -tx-livetools.com -tx-trans.com -tx009.com -tx163.com -tx29.com -tx5d.com -tx9968.com -txbapp.com -txbimg.com -txbyod.com -txcbwgg.com -txcdns.com -txcfgl.com -txdai.com -txdzs.com -txdzw.com -txfeiyu.com -txffp.com -txfund.com -txga.com -txh00.com -txianning.com -txip8.com -txitech.com -txjsjgs888.com -txjszz.com -txjy689.com -txlt.com -txlunwenw.com -txmcu.com -txon.net -txooo.com -txqcw.net -txrjy.com -txrzx.com -txsc100.com -txsdk.com -txssw.com -txt321.com -txtbbs.com -txtbook.net -txtduo.com -txttool.com -txtyxg.com -txwb.com -txweekly.com -txwestart.com -txwy.com -zxttax.com -txxbxx.com -txy6666.com -txy8.com -txyapp.com -txyes.com -txylab.com -txyscdn.com -txyscdn.net -txzad.com -txzb.app -txzing.com -ty-im.com -ty-tyre.com -ty2y.com -ty3w.net -ty8866.com -tybai.com -tyc100.com -tychio.net -tychou.com -tycqxs.com -tycredit.com -tydevice.com -tydouke.com -tyfo.com -tyhjzx.com -tyi365.com -tyjmmy.com -tykeji.vip -tyksl.com -tymcdn.com -tyn.cc -tyouai.com -tyouquan.com -typany.com -type.so -typecho.me -typechodev.com -typecodes.com -typekuon.com -tyrantdb.com -tyrbw.com -tyread.com -tysdmh.com -tysj365.com -tysjyjy.com -tyswy.com -tyszy.com -tytlj.com -tytuyoo.com -tytywuliu.com -tytzzy.com -tyust.net -tyuyan.com -tyuyan.net -tywh.com -tywxw.la -tyy6.com -tyymt.com -tyzscl.com -tz-dsp.com -tz.app -tz121.com -tz12306.com -tz1288.com -tz1980.com -tz887.com -tz911.com -tzbank.com -tzbank.net -tzbao.com -tzcul.com -tzfdc.com -tzfeize.xyz -tzfile.com -tzgcjie.com -tzhubo.com -tzhwcc.com -tzidt.com -tzjwrml.com -tzjxl.com -tzlib.net -tzlongwu.com -tzm66.com -tzppg.com -tzres.com -tzrl.com -tzsnw.com -tzsports.com -tzsti.com -tzsysp.com -tztusi.com -tzvtc.com -tzxingtang.com -tzxwzx.com -u-cdn.net -u-jingling.com -u-link.org -u-om.com -u-qun.com -u-road.com -u.sb -u.tools -u005.com -u062.com -u14.com -u148.net -u17.com -u17i.com -u17t.com -u21a.com -u22011.com -u22033.com -u22055.com -u22066.com -u22077.com -u22088.com -u22099.com -u22e.com -u23011.com -u23022.com -u23033.com -u23055.com -u25011.com -u25022.com -u2j2ha.com -u2sz.com -u3dc.com -u3dcn.com -u3dol.com -u3v3.com -u51.com -u520.net -u55011.com -u58.com -u5wan.com -u69cn.com -u77.com -u7u9.com -u8sy.com -u8yx.com -u9h.com -u9time.com -u9u8.com -u9u9.com -u9wan.com -uahh.site -uami-global.org -uao-online.com -uao.so -uauc.net -uavvv.com -uayangtze-volga.org -ub-os.com -ub.cc -ubaiyi.com -uban.com -ubangmang.com -ubersz.com -ubestkid.com -ubetween.com -ubgame.com -ubicdn.com -ubijoy.com -ubiquant.com -ubismartparcel.com -ubixai.com -ubixioe.com -ubja.vip -ublese.com -ubmconlinereg.com -uboat100.com -uboxol.com -uboxsale.com -ubs001.com -ubssdic.com -ubtrobot.com -ubuntukylin.com -ubuntukylin.org -ubuntuqa.com -ubuuk.com -uc-union.com -uc108.com -uc123.com -uc129.com -uc1z.com -uc23.net -uc56.com -uc669.com -ucai123.com -ucaiyuan.com -ucaiyun.com -ucancs.com -ucantech.com -ucantech.net -ucarinc.com -ucassc.com -ucb6.com -ucbug.com -uccastore.com -uccheck.net -ucdchina.com -ucdok.com -ucdrs.net -ucfly.com -ucfma.com -ucfpay.com -ucgslb.com -ucgslb.info -ucgslb.net -uchangdi.com -uchiha.ltd -uchis.com -uchuanbo.com -ucicq.com -ucjoy.com -ucloud-edm.com -ucloud365.com -ucloudadmin.com -ucloudapi.com -ucloudgda.com -ucloudnaming.com -ucloudnaming.info -ucloudnaming.net -ucloudoss.com -uclouds3.com -ucloudstack.com -ucloudstack.net -ucloudstor.com -ucloudufile.com -ucly.net -ucnaming.com -ucnaming.info -ucnaming.net -ucnano.com -ucnest.com -ucpaas.com -ucpchina.com -ucpopo.com -ucren.com -ucss.ninja -uctrac.com -ucun.tech -ucuuc.com -ucw.pub -ucweb.com -ucying.com -uczhidao.com -ucziliao.com -uczzd.com -uczzd.net -udache.com -udalogistic.com -udamall.com -udangjia.com -udashi.com -udaxia.com -udbac.com -uddtrip.com -udecig.com -udeepin.com -udeskcs.com -udonmai.com -udows.com -udpis.com -udrig.com -udsdown.xyz -udxd.com -uebilling.com -uecook.com -uedbox.com -uedhome.net -uedna.com -uedsc.com -ueeshop.com -uehtml.com -ueibo.com -uelike.com -uemo.net -uepei.com -ueren.com -uestcedu.com -ueuz.com -uewaf.com -uf-crm.com -uf-tobacco.com -ufanw.com -ufcap.com -ufenqi.com -ufhost.com -ufhosted.com -ufida-lcwy.com -ufidaoa.com -ufileos.com -ufirefly.com -ufizl.com -uflowx.com -ufo.club -ufoer.com -ufofxw.com -ufojia.com -ufojoy.com -ufotm.com -ug888.com -ugainian.com -ugapi.com -ugbb.com -ugcar.com -ugdtimg.com -uggame.com -uggd.com -ugirls.tv -ugmars.com -ugmjd.com -ugojp.com -ugong.com -ugoshop.com -ugslb.com -ugslb.info -ugslb.net -ugslb2.net -ugsnx.com -ugubl.net -ugxsd.com -uhabo.com -uhandak.com -uhasadmin.com -uhomecp.com -uhomes.com -uhouzz.com -uhuitong.com -uhuwang.com -uhzcdn.com -ui100day.com -ui63.com -uibaba.com -uibep.com -uibim.com -uibmm.com -uibobo.com -uibot123.com -uicmall.com -uicom.net -uicool123.com -uid75.com -uidec.com -uidev.tech -uidev.xyz -uihacker.com -uiiiuiii.com -uil.ink -uileader.com -uimaker.com -uimix.com -uincall.com -uincall400.com -uincom400.com -uipower.com -uisdc.com -uisheji.com -uishijie.com -uisnetwork.com -uisrc.com -uiste.com -uitool.net -uiu.cc -uiusc.com -uiwow.com -ujakn.com -ujan2.cloud -ujia007.com -ujian.cc -ujiaoshou.com -ujinbi.com -ujing.online -ujipin.com -ujiuye.com -uk-edu.com -zxtnetwork.com -uk86.com -ukassignment.org -ukeban.com -ukelink.com -uker.net -ukh5.com -ukongm.com -ukonline2000.com -ukoo.net -ukpass.org -ukpathway.com -ukplanking.com -ukubang.com -ukui.org -ukulelecn.com -ukvisacenterd.com -ulaojiu.com -ulapia.com -ule.com -ule.hk -uleapp.com -ulecdn.com -uleek.net -uliang.vip -uliangwang.com -uliaobao.com -ulikecam.com -ulinix.com -ulink.cc -ulkoxbra.com -ulpay.com -ultramanol.com -ulucu.com -ulzdk.com -um.run -umajor.net -umaman.com -umbpay.com -umcloud.com -umdac.com -umeng.co -umeng.com -umeng.online -umeng100.com -umengcloud.com -umenglog.com -umetrip.com -umi.im -umihome.com -umilu.com -umindex.com -uminehotel.com -uminsky.com -umiwi.com -umjicanvas.com -uml-tech.com -umlchina.com -umlife.net -umlonline.org -umowang.com -umpay.com -umqlyy.com -ums86.com -umsamd.com -umsns.com -umtrack.com -umvafc.com -umvsoft.com -un-bug.com -un10086.com -un1c0de.xyz -una-ad.com -unaming.info -unaming.net -unasdwarfs.com -uncbd.com -unccr.com -uncle-ad.com -uncledesk.com -unclenoway.com -unclenoway.net -unclenowayapi.com -unclicks.com -underfill.cc -uneed.com -unfish.net -ungifts.com -uni-perfect.com -uni-ubi.com -unibizp.com -unicde.com -unicloud.com -001job.com -unicom-cz.com -unicomgd.com -unicomjnwy.com -unicomlife.com -unicompayment.com -unicomspeedtest.com -unicomtest.com -unicon-hibar.com -unicornacg.com -unifull.com -unifycarbon.com -unigress.com -unilaw.net -uninf.com -uninstall-tools.com -union-4.com -union-game.com -union-rnd.com -union-wifi.com -union178.com -union400.com -union555.com -unioncom.cc -unioncyber.net -unionli.com -unionpay.com -unionpay.net -unionpay95516.cc -unionpayintl.com -unionpaysecure.com -unionsy.com -uniontech.com -unionwebpay.com -uniostay.com -uniow.com -uniproud.com -uniqueway.com -uniscope.com -unisedu.com -unisemicon.com -unisguard.com -unishy.com -unisoc.com -unisound.com -unispim.com -unissoft.com -unistc.com -uniswdc.com -unitedbank.ltd -unitedmoney.com -unitek-it.com -uniteyun.com -unitymanual.com -uniview.com -uniworldart.com -unixhot.com -unixidc.com -unixs.org -unizai.com -unjmz.com -unjs.com -unlimax.com -unlimithealth.com -unmou.com -unnnnn.com -unogenius.com -unpcn.com -unqu.com -zxtjd.com -unspay.com -unsuv.com -unzg.com -uochen.com -uodoo.com -uodzhx.com -uoeee.com -uofon.com -uoften.com -uogby.com -uoj.ac -uoko.com -uomg.com -uonline-sh.com -uonline-sh.net -uono4521.com -uooconline.com -uooioo.com -uoolu.com -uooss.com -uooyoo.com -uoozi.com -uoschina.com -uouo123.com -uovz.com -up360.com -up4dev.com -up71.com -upai.com -upaidui.com -upaiyun.com -upan.cc -upanboot.com -upanok.com -upanshadu.com -upantool.com -upashance.com -upbz.net -upcdn.net -upchina.com -upchinapro.com -upchinaproduct.com -zxtang.com -updrv.com -upe.net -upecp.com -upesn.com -upho2015.com -uphong.com -upimgku.com -upin.com -upkao.com -uplinux.com -uplookedu.com -uplooking.com -upnb.com -upowerchain.com -uppsd.com -upqzfile.com -upqzfilebk.com -ups-huawei.net -zxt2007.com -ups001.com -upsapp.com -upst86.com -upsunet.com -uptougu.com -upupbug.com -upupfile.com -upupoo.com -upupw.net -upwardsware.com -upwith.me -upx8.com -upyun.com -upyunso.com -upzxt.com -uqbike.com -uqche.com -uqd1.net -uqee.com -uqeegame.com -uqer.io -uqidong.com -uqidong.net -uqite.com -uqseo.com -uqualities.com -uqude.com -uqulive.com -urart.cc -urbanchina.org -urbanmatters.com -urbanwy.com -urbetter.com -urbetter.net -urcb.com -urfire.com -urgc.net -uri6.com -uril6.com -url.cy -urlili.shop -urlos.com -urovo.com -urovoworld.com -ursb.me -urselect.com -urtrust.com -urumqi-air.com -us-ex.com -usa-gti.com -usa-idc.com -usaas.net -usaedu.net -usahaitao.com -usakongjian.net -usaliuxue.com -usaobb.com -usaphoenixnews.com -usashopcn.com -usbing.com -usbmi.com -usbxyz.com -uscnk.com -uscxm.com -usdxz1.com -usdxz1.net -use-trust.com -useaudio.com -usecubes.com -useragentinfo.com -userbp.com -userhostting.com -userresearch.net -useryun.net -useso.com -usfcw.com -ushaqi.com -ushendu.com -ushengame.com -usidt.com -using.club -usingde.com -usingwin.com -usitour.com -usitrip.com -usjuw.com -uslk.net -usnook.com -usocialplus.com -usoftchina.com -usonetrip.com -uspard.com -usplanking.com -ustack.com -ustalk.com -ustc.edu -ustcers.com -ustclug.org -ustui.com -usu8.com -usuredata.com -uszcn.com -ut8d.com -utan.com -utanbaby.com -utbon.com -utc-ic.com -utecbj.com -utepo.com -utermux.dev -utfinancing.com -uthinks.com -utiankong.com -utogame.com -utom.design -utoper.com -utopiafar.com -utourworld.com -utovr.com -utransm.com -uttjhu.xyz -uu-xs.net -uu.cc -uu.me -uu1.com -uu1314.com -uu178.com -uu38.com -uu456.com -uu55.tv -uu66.com -uu8281uu.com -uu89.com -uu898.com -uuaa.net -uucl.vip -uucolor.com -uudsp.com -uuecs.com -uufa2017.com -uufund.com -uugai.com -uugame.com -uugtv.com -uuh5.com -uuhimalayanqm.com -uuid.online -uuimg.com -uukit.com -uukkuu.com -uulucky.com -uulux.com -uumachine.com -uunice.com -uuns.com -uunt.com -uuoo.com -uupages.com -uupaotui.com -uupee.com -uupei.com -uupoop.com -uupt.com -uuradio.com -uus8.com -uusama.com -uusee.com -uusky.com -uusoo.net -uusos.com -uustory.com -uustv.com -uusucai.com -uutop.com -uutuu.com -uuu.moe -uuu.ovh -uuu9.com -uuuo.com -uuutu.com -uuvisa.com -uuvps.com -uuwtq.com -uuxn.com -uuyoyo.com -uuzham.com -uuzhufu.com -uuzo.net -uuzone.com -uuzu.com -uuzuonline.com -uuzuonline.net -uuzz.com -uvexperience.com -uviewui.com -uvledtek.com -uvov.com -uw3c.com -uw9.net -uwa4d.com -uwan.com -uwenku.com -uworter.com -ux18.com -ux6.com -ux87.com -ux98.com -uxacn.com -uxdc.net -uxiangzu.com -uxianhu.com -uxicp.com -uxigo.com -uxin.com -uxingroup.com -uxiting.com -uxpi.net -uya100.com -uyan.cc -uyanip.com -uycnr.com -uyess.com -uyi2.com -uyiban.com -uym11.xyz -uyou.com -uyouii.cool -uyouqu.com -uyshipin.com -uyueread.com -uyun-cdn.com -uyunad.com -uyunbaby.com -uyuncdn.net -uyuyao.com -uyyidc.com -uzai.com -uzaicdn.com -uzbox.com -uzing.net -uzise.com -uzshare.com -uzuzuz.com -uzzf.com -v-56.com -v-beautysalon.com -v-danci.com -v007.net -v0719.com -v114.com -v1bo.com -v1h5.com -v1lady.com -v1pin.com -v1tuan.com -v1tx.com -v2b3.com -v2ex.cc -v2geek.com -v2kt.com -v2make.com -v3best.com -v3edu.org -v3mh.com -v4.cc -v479.com -v4dwkcv.com -v5.com -v5875.com -v5bjq.com -v5cam.com -v5cg.com -v5dun.net -v5fox.com -v5kf.com -v5music.com -v5pc.com -v5ppt.com -v5shop.com -v5tv.com -v6c.cc -v6dp.com -v6lvs.com -v6ok.com -v78q.com -v86.org -v977.com -v997.com -v9b5n91.com -va-etong.com -vaakwe.com -vacanza-umbria.com -vacmic.com -vaecn.com -vaeliu.com -vakku.com -validform.club -valinbl.com -valinresources.com -value500.com -valuecome.com -valuedshow.com -valuepr.net -valueq.com -valueur.com -valurise.com -vamachina.com -vamaker.com -van-u.com -vanbaolu.com -vance-commerce.com -vanch.net -vanchhandheld.com -vanchip.com -vanchiptech.com -vanchu.com -vancl.com -vanclimg.com -vandream.com -vanfun.com -vangotech.com -vankang.com -vanke.com -vankeservice.com -vankeservice.mobi -vankeweekly.com -vankeytech.com -vanlinkon.com -vanmai.com -vanmatt.com -vanrui.com -vanterc.com -vants.org -vanzol.com -vapps.me -vaptcha.com -vaptcha.net -varena.com -variflight.com -varmilo.com -vart.cc -vartcn.com -vas.ink -vasee.com -vaslco.com -vasoon.com -vasuwebdev.com -vatano.net -vauoo.com -vbbobo.com -vbidc.com -vbiquge.com -vbmcms.com -vbooking.net -vbsemi.com -vbuluo.com -vc800.com -vcbeat.net -vcchar.com -vcd.io -vcdisgd.com -vceshi.net -vcg.com -vchangyi.com -vchat5.com -vchatshow.com -vcheer.com -vchello.com -vcimg.com -vcinchina.com -vckai.com -vckbase.com -vcloudgtm.com -vcloudstc.com -vcloudstc.net -vcloudvod.com -vclusters.com -vcnews.com -vcode.cc -vcomic.com -vcomputes.com -vcooline.com -vcore.hk -vcredit.com -vcsint.com -vdaye.com -vdiagnostic.com -vdian.com -vdisk.me -vdncache.com -vdncloud.com -vdndc.com -vdnplus.com -vdnsv.com -vdolady.com -vdongchina.com -ve70.com -vearne.cc -vecentek.com -vechain.com -vectorplaces.com -vedamobi.com -vedcdnlb.com -vedeng.com -veding.com -vediotalk.com -vedsalb.com -veelink.com -veeqi.com -veeqi.net -veer.com -veervr.tv -veeteam.com -veevlink.com -veikei.com -veilytech.com -veinbase.com -vejianzhan.com -veken.com -velasx.com -velep.com -velocaps.com -vemarsdev.com -vemarsstatic.com -vemic.com -vemvm.com -venlvcloud.com -ventoy.net -venucia.com -venuscn.com -venustrain.com -vephp.com -verdareto.com -verisilicon.com -verisyno.com -veritrans-link.com -verodillan.com -vertuonline.com -veryapex.com -verybeaut.com -verycd.com -verycdn.net -verydns.net -verydoc.net -verydz.com -veryevent.com -verygrass.com -verygslb.com -verygslb.net -veryhappy.pw -veryhuo.com -veryide.com -veryim.com -veryitman.com -verym.com -veryns.com -veryol.com -verypan.com -verysou.com -verysource.com -verystar.net -veryweibo.com -verywind.com -veryxiang.com -veryzhun.com -vesystem.com -vetscloud.com -vf5c.com -vfcsz.com -vfinemusic.com -vfocus.net -vftfishing.com -vfund.org -vfx123.com -vg.com -vgabc.com -vgbaike.com -vgctradeunion.com -vghall.com -vgjump.com -vglook.com -vgnclub.com -vgoapp.com -vgooo.com -vgoyun.com -vgtime.com -vhaey.com -vhall.com -vhallyun.com -vhao123.com -vhostgo.com -vi21.net -vi586.com -via-cert.com -viaeda.com -vial.cc -vibaike.com -vibit.cc -vibrou.com -vic18.com -vicchen.me -vichamp.com -vicigaming.com -vickn.com -vicovico.com -vicp.cc -vicp.net -vicrab.com -vicsdf.com -vida-bio.com -vidarsoft.com -viday.org -videaba.com -video-study.com -video-voip.com -videocc.net -videohupu.com -videoincloud.com -videoipdata.com -videojj.com -videoxiaoyouxi.com -videoyi.com -videoyx.com -videozhishi.com -vienblog.com -viewones.com -viewstock.com -viewtool.com -viewtrans.com -vigtm-meeting-tencent.com -viigee.com -viisan.com -viitalk.com -viixin.com -vijos.org -vikduo.com -vikecn.com -vilipix.com -villaday.com -viltd.com -vimage1.com -vimage2.com -vimage4.com -vimge.com -vimicro.com -vimiix.com -vimiy.com -vimlinux.com -vims04.com -vimsky.com -vin114.net -vinchin.com -vinehoo.com -vinetreetents.com -vingoojuice.com -vingoostation.com -vinjn.com -vinkdong.com -vinnywang.com -vinsondata.com -violetgo.com -violinerhu.com -violinstudy.net -violinww.com -vip-wifi.com -vip.com -vip120.com -vip1280.net -vip150.com -vip800.com -vip8849.com -vip9982.net -vipbaihe.com -vipbla.com -vipbuluo.com -vipchina.com -vipcn.com -vipcto.com -vipdlt.com -vipersaudio.com -vipexam.org -vipfashion.com -vipfengfei.com -vipfengxiao.com -vipfinal.com -vipglobal.hk -vipgs.net -vipgslb.com -viphxw.com -vipjingdong.com -vipjr.com -vipkaoyan.net -vipkid.com -vipkidresource.com -vipkidstatic.com -vipkj.net -vipkoudai.com -vipleyuan.com -vipliangmei.com -viplux.com -vipmaillist.com -vipmalljf.com -vipmro.com -vipmro.net -viponlyedu.com -vippluspai.com -vipqlz.com -vips100.com -vipshop.com -vipshopyao.com -vipsinaapp.com -vipsmt.com -vipsrc.com -vipstatic.com -vipstore.com -viptail.com -viptarena.com -viptijian.com -vipwhjtsgpc.com -vipwzswl.com -vipxap.com -vipxdns.com -vipxdns.info -vipxdns.net -vipxs.la -vipyaya.com -vipyl.com -vipyooni.com -vipyz-cdn1.com -vipzhuanli.com -viqq.com -virbox.com -vircloud.net -virscan.org -virtualevent.net -virusdefender.net -visa198.com -visa800.com -visabao.com -visacits.com -visadeguo.com -visaforchina.org -visajx.com -visas.to -visaun.com -visbodyfit.com -viseator.com -vishining.com -visionbbs.com -visionchinashow.net -visioncloudapi.com -visionly.org -visionsinactionusa.com -visionstar-tech.com -visionunion.com -visionvera.com -visitsz.com -viskem.com -visonforcoding.com -vista123.com -vistastory.com -visualchina.com -visvachina.com -vitagou.com -vitagou.hk -vitarn.com -vitechliu.com -viterbi-tech.com -vitian.vip -vivantecorp.com -vivcms.com -vividict.com -vivijk.com -viviv.com -vivo.com -vivo.xyz -vivoglobal.com -vivojrkj.com -vivokb.com -vivst.com -viwik.com -vixue.com -vj24co.com -vjia.com -vjiazu.com -vjie.com -vjshi.com -vjudge.net -vk6.me -vk8.co -vkaijiang.com -vkehu.com -vkelai.com -vkemai.com -vksoft.com -vku6.com -vlabstatic.com -vlan9.com -vland-official.com -vlandgroup.com -vlcms.com -vliang.com -vlightv.com -vlinkage.com -vlinke.com -vlion.mobi -vlong.tv -vlongbiz.com -vlzp.com -vm.sg -vmall.com -vmallres.com -vmanhua.com -vmartaw.com -vmaya.com -vmdo.net -vmengblog.com -vmeti.com -vmfor.com -vmicloud.com -vmoiver.com -vmonkey.mobi -vmovier.cc -vmoviercdn.com -vmsky.com -vmvps.com -vnet.mobi -vnnox.com -vnvshen.com -vnzmi.com -vobao.com -vocalmiku.com -voccdn.com -vocinno.com -vodjk.com -vodtcbk.com -vohringer.com -voicedic.com -voicer.info -voicer.me -voidcc.com -voidking.com -voidme.com -vojs.tv -vokop.com -vol.moe -volccdn.com -volcdns.com -volceapplog.com -volcengine.com -volces.com -volcfcdndvs.com -volcgslb.com -volcgtm.com -volchina.com -volcimagex.net -volcmcdn3.com -volcsirius.com -volcsiriusbd.com -volctracer.com -volcvideo.com -volcvod.com -voldp.com -volit.com -volmoe.com -voltmemo.com -volumes.cc -vomicer.com -vomicmh.com -vonets.com -vonwei.com -vooec.com -voole.com -voole.net -voopoo.com -voovlive.com -voovmeeting.com -vortexfun.com -vote8.cc -vote8.com -voycn.com -voyooo.com -vp3u.com -vpadn.com -vpaizu.com -vpal.com -vpalstatic.com -vpansou.com -vpbus.com -vpcs.com -vpgame.com -vpiaotong.com -vpie.net -vpimg1.com -vpimg2.com -vpimg3.com -vpimg4.com -vplayer.net -vpn39.com -vpnsoft.net -vpquc9rn.com -vps.im -vps.sh -vps234.com -vpsaa.com -vpsaa.net -vpsaff.com -vpscang.com -vpsdx.com -vpser.net -vpsjxw.com -vpsmm.com -vpsno.com -vpsoff.net -vpsor.com -vpsqb.com -vpsrb.com -vpssir.com -vpsss.net -vpszh.com -vqs.com -vqu.show -vqudo.com -vqudochina.com -vr-cat.com -vr-game.club -vr186.com -vr42.com -vralzuns.com -vrbeing.com -zxsygs.com -vrbig.com -vrbrothers.com -vrcfo.com -vrjie.com -vrlequ.com -vrpowder.com -vrrw.net -vrsat.com -vrupup.com -vrvlink.com -vrvmanager.com -vrwuhan.com -vrzb.com -vs-gascloud.com -vsaker.com -vsane.com -vsbclub.com -vsbuys.com -vsens.com -vshangdaili.com -vsharecloud.com -vsharing.com -vshouce.com -vshuoshuo.com -vsjwtcdn.com -vslai.com -vsnoon.com -vsnoon.net -vsnoon.org -vsochina.com -vsocloud.com -vsooncat.com -vsooncloud.com -vsoontech.com -vspk.com -vsppt.com -vsread.com -vstart.net -vstecs.com -vstmv.com -vstou.com -vsuch.com -vsun.com -vsyo.com -vtache.com -vtbs.fun -vtcdn000.com -vteamgroup.com -vtears.com -vtepai.com -vtepai.net -vtibet.com -vtool.vip -vtoutiao.cc -vtrois.com -vtuzx.com -vue-js.com -vue5.com -vuepr.icu -vuevideo.net -vuhbgtsi.xyz -vulbox.com -zxswjx.com -vulnhunt.com -vultr1.com -vultrcn.com -vultrvps.com -vunion.net -vurl.link -vurl3.vip -vutimes.com -vux.li -vuz.me -vv8.com -vv881.com -vv8yx.com -vv91.com -vvaii.com -vvbtc.com -vvddcc.com -vvdeal.com -vvebo.vip -vvfeng.com -vvfht.fun -vvgroup.com -vvhan.com -vvic.com -vvipcdn.com -vvjob.com -vvkaoyan.com -vvkw.com -vvl.cc -vvmeiju.com -vvo2o.com -vvpgwg.xyz -vvpingtai.com -vvpncdn.com -vvstc.com -vvtor.com -vvup.net -vvv.io -vvvcd.com -vvvdj.com -vvvfans.com -vvvvzv.com -vvzero.com -vwhulian.com -vwvvwv.com -vwwmsd.com -vx.com -vxia.net -vxiaocheng.com -vxiaoxin.com -vxinyou.com -vxo7tu.com -vxposed.com -vxsnk.com -vxuey.com -vxv.ink -vycool.com -vyin.com -vynior.com -vysj.com -vyuan8.com -vyun.com -vz41.com -vzan.cc -vzan.com -vzhang.net -vzhantong.com -vzhifu.net -vzhou.net -vzhuanba.com -vzhuji.com -vzhuo.com -vzhushou.com -vzidc.com -vzkoo.com -vzuu.com -w-e.cc -w-w-j-d.com -w0663.com -w0lker.com -w10a.com -w10xitong.com -w10zj.com -w123w.com -w1365.com -w18.net -w1989.com -w20.net -w2008.store -w218.com -w2bc.com -w2gou.com -w2solo.com -w333.com -w3cay.com -w3cbus.com -w3cfuns.com -w3chtml.com -w3cjava.com -w3cschool.cc -w3cshare.com -w3ctalk.com -w3ctech.com -w3cways.com -w3pop.com -w3tt.com -w3xue.com -w7.cc -w7000.com -w7ghost.net -w8xitong.com -w918.com -w9udx8.com -wa5.com -wa5as4.com -waaaat.com -waakee.com -wabcw.info -wabuw.com -wacai.com -wacaiyun.com -wacaoren.net -wacdn.com -wader1714.com -waduanzi.com -waerfa.com -wafcn.com -wafunny.com -wafzi.com -waha.cc -waheaven.com -wahlap.com -waibao123.com -waibao12333.com -waibaodashi.com -waibou.com -waig8.com -waigame.com -waigf.com -waiguofang.com -waihui888.com -waihuigu.net -waihuo.com -wailaishop.com -wailianvisa.com -waima.com -waimai.zone -waimai361.com -waimaiwanjia.com -waimao6.com -waimaolangtz.com -waimaoribao.com -waimaozhuge.com -waimungfire.com -waiqin365.com -waitingfy.com -waitsun.com -wajueji.com -wakatool.com -wakedata.com -wakeofgods.com -waketu.com -wakeup.fun -wakingsands.com -wakkaa.com -wakuai.com -wal8.com -walahe.com -walanwalan.com -walatao.com -walekan.com -wali.com -walibao.com -walimaker.com -walkerdu.com -walknode.com -walkthechat.com -wallba.com -wallcoo.com -wallcoo.net -walle-web.io -wallet.io -walletio.io -wallpapersking.com -wallstcn.com -wallstreetcn.com -wallswitch.com -wamawama.com -wamila.com -wan.cc -wan.com -wan1234.com -wan160.com -wan25.com -wan32.com -wan5d.com -wan68.com -wan7.xin -wan73.com -wan77.com -wan8.com -wan898.com -wan95.com -wanbang365.com -wanbaoju.com -wancai.com -wancaibb.com -wancaiinfo.com -wancaomei.com -wanche100.com -wancheng168.com -wanchengwenku.com -wanchenzg.com -wanchuweilai.com -wanda-cti.com -wanda-gh.com -wanda-group.com -wandacinemas.com -wandafilm.com -wandahotelinvestment.com -wandahotels.com -wandaplazas.com -wandarealm.com -wandasportstravel.com -wandavista.com -wandhi.com -wanding.net -wandodo.com -wandoer.com -wandongli.com -wandouip.com -wandoujia.com -waneziyuan.com -wanfangche.com -wanfangdata.com -wanfangqikan.com -wanfangs.com -wanfangtech.com -wanfangtech.net -wanfantian.com -wanfumei.net -wanfuqianqiu.com -001jm.com -wang-li.com -wang-nan.com -wang-russell.cc -wang1314.com -wang1314.net -wanga.me -wangamela.com -wangan.com -wanganedu.com -wangbixi.com -wangcaio2o.com -wangcaiwang.com -wangcanmou.com -wangchao.de -wangchujiang.com -wangchunsheng.com -wangcms.com -wangdahn.com -wangdaibus.com -wangdaicaifu.com -wangdaidongfang.com -wangdaijiamen.com -wangdaileida.com -wangdalao.com -wangdali.net -wangdaodao.com -wangdianmaster.com -wangdongjie.com -wangeditor.com -wangejiba.com -wangfujing.com -wanggou.com -wanggou236.com -wangguai.com -wanghaida.com -wanghualang.com -wanghuinet.com -wanghz.com -wangid.com -wangjianshuo.com -wangjinle.com -wangjubao.com -wangjumeng.xin -wangjunwei.com -wangkl.com -wangle.com -wanglibao.com -wanglu.info -wanglv.com -wanglv.vip -wangmeng.com -wangmingkuo.com -wangminping.com -wangmou.com -wangmou.net -wangpiao.com -wangpiao.net -wangpu.net -wangpu365.com -wangpuzhi.com -wangqi.com -wangren.com -wangrongbao.com -wangrunze.com -wangshangfayuan.com -wangsherong.com -wangshidi.com -wangshu.la -wangshuashua.com -wangshugu.com -wangsongxing.com -wangsu.com -wangsucloud.com -wangt.cc -wangtingrui.com -wangtongtong.com -wangtu.com -wanguan.com -wangukcn.com -wanguoschool.com -wanguoschool.net -wanguotong.com -wangwango.com -wangwo.net -wangxc.club -wangxiangyule.com -wangxianyuan.com -wangxiao.net -wangxiaobao.cc -wangxiaobao.com -wangxingcs.com -wangxinhao.com -wangxinlicai.com -wangyangyang.vip -wangyanpiano.com -wangye.com -wangyeyixia.com -wangyin.com -wangyou.com -wangyou2.com -wangyuan.com -wangyutang.com -wangyuwang.com -wangzhan123.net -wangzhan360.com -wangzhanbao.cc -wangzhanbianji.com -wangzhanchi.com -wangzhanzj.com -wangzhe.com -wangzhengzhen.com -wangzhennan.com -wanh5.com -wanheweb.com -wanhi.com -wanhongji.com -wanhu888.com -wanhuahai.com -wanhuajing.com -wanhui365.com -wanhunet.com -wanimal1983.org -wanjiashe.com -wanjidashi.com -wanjiedata.com -wanjiedu.com -wanjunda.net -wanka5.com -wankacn.com -wanke123.com -wanke798.com -wankukeji.com -wankuwl.com -wanlaiwang.com -wanlan.vip -wanli.com -wanlicd.com -wanlitong.com -wanmei.com -wanmeilink.com -wanmeilr.com -wanmeitang.com -wanmeiyunjiao.com -wanmi.cc -wanmi.com -wannaenergy.com -wannaexpresso.com -wannar.com -wannengxiaoge.com -wannengzj.com -wannianli.mobi -wannianli.net -wannianli2.com -wannianli8.com -wannuoda.com -wanplus.com -wanqianyun.com -wansf.com -wanshahao.com -wanshanshuju.com -wanshifu.com -wanshiruyi.net -wanshitong.com -wanshouyou.net -wanshuyun.com -wansongpu.com -wantexe.com -wantgame.net -wantiku.com -wantong-tech.net -wantouzi.net -wantowan.com -wantquotes.net -wantshopping.ltd -wantumusic.com -wantwords.net -wanwan4399.com -wanwanol.com -wanweipc.com -wanweixin.com -wanwudezhi.com -wanwupai.com -wanwushuo.com -wanwuxia.com -wanxiangqihang.com -wanxiangyouxian.com -wanyan.com -wanyiwang.com -wanyol.com -wanyoo.com -wanyoucn.com -wanyouw.com -wanyouxi7.com -wanyuanxiang.com -wanyuenet.com -wanyuhudong.com -wanyumi.com -wanyunshuju.com -wanyuwang.com -wanyx.com -wanyxbox.com -wanzhoumo.com -wanzhuang.com -wanzhuangkj.com -wanzhuanlea.com -wanzhucdn.com -wanzhugs.com -wanzi.cc -wanzi.com -wanzia.com -wanzjhb.com -wanzuile.com -waoo.cc -wapadv.com -waptt.com -wapzk.net -warcraftchina.com -warestage.com -warrillas.com -warsongmobile.com -warstudy.com -warsu.com -warting.com -warwickintl.com -was-expo.com -wasair.com -wasanfeng.com -wasd.plus -wasee.com -wasfzx.com -washpayer.com -wasintek.com -wasoinfo.com -wasu.com -wasu.tv -watch-life.net -watch-top.net -watchleader.com -watchstor.com -watchtop.com -water520.com -watercubeart.com -watergasheat.com -watertek.com -watertu.com -wauee.com -wauee.net -wave-game.com -wave-optics.com -waveshare.net -wavideo.tv -wavpub.com -wawa114.com -wawadns.com -wawanda.com -wawayaya.net -waxrain.com -waxxh.me -way2solo.com -wayboosz.com -wayhu.cc -wayhu8.com -waynetechs.com -wayos.com -wayoulegal.com -wayoxi.com -waytit.com -wayzim.com -wazhuti.com -wb0311.com -wb133.com -wb321.com -wb521.net -wb699.com -wbangdan.com -wbcm55.com -wbdacdn.com -wbiao.co -wbiao.com -wbimg.com -wbini.com -wbo529.com -wboll.com -wbolt.com -wbpvc.com -wbsdz.com -wbsrf.com -wbsz.com -wbtech.com -wbw.im -wbxgl.com -wbzol.com -wc44.com -wcbygame.com -wcd.im -wcfang.com -wch-ic.com -wcjbb.com -wcloud.com -wcmrpx.com -wcsapi.com -wcsfa.com -wcuhdi.com -wcwlmobi.com -wcyecs.com -wd1266.com -wdace.com -wdashi.com -wdaveh5game.com -wddcn.com -wddream.com -wdfangyi.com -wdfok.com -wdfxw.net -wdgaosheng.com -wdghy.com -wdiyi.com -wdjimg.com -wdjky.com -wdku.net -wdkud6.com -wdlny.com -wdmcake.com -wdmuz.com -wdodo.com -wdomob.com -wdres.com -wdsrc.com -wdstory.com -wdszb.com -wdtec.cc -wdtlfj.com -wduw.com -wdw88.com -wdxmzy.com -wdxtub.com -wdy33.com -wdy44.com -wdyxgames.com -wdzj.com -wdzx.com -we.com -zxsmd.com -we1130.com -we123.com -we2.name -we2marry.com -we4399.com -we4game.com -we7.cc -weachat.net -weakyon.com -wealink.com -weand.com -weaoo.com -weapp.com -weapp.me -wearemanner.com -weareqy.com -weartrends.com -weasing.com -weatherat.com -weathercn.com -weatherdt.com -weatherol.com -weaverdream.com -weaversoftware.com -weavi.com -weaview.com -web-tinker.com -web0518.com -web0898.net -web100.cc -web1800.com -web2060.com -web3.xin -web3389.com -web360.pw -web89.net -web930.com -webank.com -webankcdn.net -webdissector.com -webdiyer.com -webfalse.com -webfont.com -webfoss.com -webfreecounter.com -webfuwu.com -webgame138.com -webgame163.com -webgzs.com -webhek.com -webhivers.com -webjike.com -webkaka.com -webkdcdn.com -webkf.net -webkv.com -webmeng.net -webmulu.com -webnovel.com -webok.me -webond.net -weboss.hk -webpackjs.com -webportal.cc -webpowerchina.com -webqxs.com -webrtc.win -webs.so -websbook.com -websem.cc -webseo9.com -webshao.com -webshu.net -websjcdn.com -websocket-test.com -websoft9.com -webterren.com -webullzone.com -webuy.ai -webuy.vip -webview.tech -webworker.tech -webxgame.com -webxin.com -webxmf.com -webyang.net -wecarepet.com -wecash.net -wecatch.me -wecenter.com -weceshi.com -wechat.com -wechat.org -wechatapp.com -wechatify.net -zxshe.com -weclassroom.com -wecloudx.com -wecom.work -wecrm.com -wecycling.com -wecydia.com -wed6.com -wedate.me -weddingos.com -wedengta.com -wedfairy.com -wedn.net -wedo8.com -wedooapp.com -weebei.com -weebia.com -weedong.com -weefang.com -weeiy.com -weekus.com -weelv.com -weemall.shop -weeqoo.com -weeyun.com -wefans.com -wefinger.club -wefitos.com -wefunol.com -wegame.com -wegameapi.com -wegamedeveloper.com -wegameplus.com -zxsg88.com -wegene.com -weharvest.com -wehefei.com -weherepost.com -wei2008.com -wei6.com -weiao.online -weiba66.com -weibaji.com -weibanan.com -weibangong.com -weibanzhushou.com -weibo.co -weibo.com -weibocdn.com -weibohelper.com -weiboi.com -weibopay.com -weiboreach.com -weiboyi.com -weibusi.net -weica.net -weicaifu.com -weicewang.com -weichaishi.com -weicher-sz.com -weiclicai.com -weico.cc -weico.com -weicot.com -weida888.com -weidanbai.com -weidanci.com -weidaohang.org -weidaoliu.com -weidea.net -weidian.cc -weidian.com -weidian.gg -weidiancdn.com -weidianfans.com -weidiango.com -weidianyuedu.com -weidunewtab.com -weiduruanjian.com -weiengift.com -weifang666.com -weifenghr.com -weifengke.com -weifengou.com -weifengtang.com -weifenpay.com -weifrom.com -weigongju.org -weihai.tv -weihaicollege.com -weihaipoly.com -weihaobang.com -weihaoyi.com -weihua2.com -weihubao.com -weihuijob.com -weihulian.com -weihuo.site -weihz.net -weijiexi.com -weijifan.com -weijinsuo.com -weijiu.org -weijiuxin.com -weijj.com -weijq.com -weiju.net -weijuju.com -weikaowu.com -weikasen.com -weike.fm -weikebaba.net -weikeimg.com -weikejianghu.com -weikengtech.com -weikuw.com -weilaicaijing.com -weilaishidai.com -weilaitianwang.com -weilaitiku.com -weilaiyunxiao.com -weilaizhaiju.com -weilanhaian.com -weilanliuxue.com -weilanwl.com -weile.com -weileapp.com -weilekuiming.com -weileryiyt.com -weiling520.com -weilinovel.net -weilitoutiao.net -weilongshipin.com -weilt.net -weimai.com -weimaqi.net -weimeiba.com -weimeicun.com -weimeifan.net -weimeigu.net -weimiaocaishang.com -weimingcq.com -weimingedu.com -weimingkids.com -weimob.com -weimobapp.com -weimobcloud.com -weimobdc.com -weimobqa.com -weimobwmc.com -weinisongdu.com -weinm.com -weio6nkoe.cyou -weiot.net -weipaitang.com -weiphone.net -weiphp.com -weipinchu.com -weiping.com -weipu.com -weipuhj.com -weiq.com -weiqi.cc -weiqiaocy.com -weiqiaoyun.com -weiqidaxing.com -weiqinfang.com -weiqingbao.cc -weiqitv.com -weiqudao.net -weiqundaquan.com -weiquyx.com -weiren.com -weisanyun.com -weisay.com -weishan.cc -weishang99.net -weishangagent.com -weishangshijie.com -weishangtui.vip -weishangye.com -weishangzhonghe.com -weishi.com -weishi100.com -weishu.me -weisiliang.com -weismarts.com -weistang.com -weisurvey.com -weisuyun.com -weitehui.com -weitiaozhuan.com -weitiewang.com -weitip.com -weitoupiao.com -weitousuo.com -weituibao.com -weitunit.com -weituobang.net -weitushe.com -weiwangpu.com -weiwangvip.com -weiwanjia.com -weiweixiao.net -weiweixiong.com -weiweiyi.com -weiwenjia.com -weiwuhui.com -weixiang.net -weixiangshe.com -weixianmanbu.com -weixianzhuan.com -weixiaoduo.com -weixiaohan.com -weixiaoi.com -weixiaoqu.com -weixiaotong.com -weixiaotuoke.tech -weixiaov.club -weixin.com -weixin008.com -weixin111.com -weixin12.com -weixin12315.com -weixinbang.com -weixinbridge.com -weixincall.com -weixinduihuan.com -weixing.com -weixingate.com -weixingmap.com -weixingon.com -weixingongzuoshi.com -weixingv.com -weixinhost.com -weixinhow.com -weixinjia.net -weixinjiajia.com -weixinju.com -weixinkd.com -weixinmuban.com -weixinmvp.com -weixinpy.com -weixinqing.com -weixinqn.com -weixinquanzi.com -weixinrensheng.com -weixinsxy.com -weixinyunduan.com -weixistyle.com -weixiu2.com -weixiuchu.com -weixiuka.com -weixue100.com -weixueyuan.net -weixun.com -weixuncj.com -weixunyunduan.net -weixz.com -weixz8.com -weiyan.me -weiyangx.com -weiyapaper.com -weiye.me -weiyes.com -weiyi.com -weiyi.link -weiyianws.com -weiyichina.org -weiyiqibj.com -weiyitec.com -weiyituku.com -weiyoubot.com -weiyours.com -weiyun.com -weiyun001.com -weiyunchong.com -weiyuntop.com -weiyunyong.com -weizhanabc.com -weizhangjilu.com -weizhangwang.com -weizhanle.com -weizhike.club -weizhilink.com -weizhipin.com -weizhuangfu.com -weizhuanji.com -weizoom.com -wejianzhan.com -wejoydata.com -wekbo.com -wekuo.com -welansh.com -welaw.com -welcrm.com -welefen.com -weleve.com -weliads.com -welian.com -welidaimkt.com -welife001.com -welife100.com -welinkpark.com -well8.com -wellaide.com -wellhope.net -wellphp.com -wellpie.com -wellsoon.com -welltrend-edu.com -welove520.com -welovead.com -welqua.com -wemdsm.com -wemediacn.com -wemomo.com -wemorefun.com -wemvp.com -wen38.com -wenancehua.com -wenancn.com -wenangou.com -wenanzhe.com -wenbita.net -wenbo.cc -wenbofund.com -wencaischool.com -wenchain.com -wenda100.net -wenda123.com -wenda8.com -wendaifu.com -wendal.net -wendangdaquan.com -wendangku.net -wendangmao.net -wendangwang.com -wendangxiazai.com -wendax.com -wendaxiaowu.com -wenday.com -wendian.com -wendns.com -wendoc.com -wendu.com -wenduedu.com -wendumao.com -wenfangjushe.com -wenfangnet.com -wenfatang.net -wengbi.com -wengegroup.com -wengkui.com -wenguang.com -wenguangta.com -wenguo.com -wengzai.com -wenhaofan.com -wenhua.cc -wenhuabolan.com -wenhui.space -wenidc.com -wenjian.net -wenjianbaike.com -wenjiangs.com -wenjingnetwork.com -wenjiwu.com -wenjuan.cc -wenjuan.com -wenjuan.link -wenjuan.ltd -wenjuan.net -wenjuan.pub -wenjuanba.com -wenjuanshow.com -wenjunjiang.win -wenjuntech.com -wenjx.com -wenku.net -wenku365.com -wenku7.com -wenku8.com -wenku8.net -wenkudao.com -wenkudaquan.com -wenkumao.com -wenkuwenku.com -wenkuxiazai.net -wenlc.com -wenlvnews.com -wenmeng.com -wenmi.com -wenmingban.com -wenneart.com -wenpie.com -wenrouge.com -wenruya.com -wenryxu.com -wensang.com -wenshaktv.com -wenshao-art.com -wenshen.net -wenshen010.com -wenshen8.net -wenshendaka.com -wenshenku.com -wensheno.com -wenshijiawei.com -wenshuba.com -wenshubang.com -wensuocaster.com -wenten.net -wentu.io -wenwen.com -wenwentang.com -wenwo.com -wenwu8.com -wenxi777.com -wenxiang.org -wenxiaoyou.com -wenxin-ge.com -wenxiu.com -wenxue100.com -wenxueapp.com -wenxuedu.com -wenxuem.com -wenxuemi6.com -wenxuemm.com -wenxuetiandi.com -wenyijcc.com -wenyoutai.com -wenyu6.com -wenyw.com -wenzaizhibo.com -wenzhaihui.com -wenzhangba.com -wenzhanghui.com -wenzhen8.com -wenzhengwenhua.com -wenzhousx.com -wenzon.com -wepiao.com -wepie.com -weplaybubble.com -weplaymore.com -weplus.com -weplus.me -werewolf.online -wesane.com -wesdom.me -weshaketv.com -weshequ.com -weshineapp.com -wesiedu.com -west.xyz -west263.com -west95582.com -west999.com -westbund.art -westbund.com -westcits.com -weste.net -westengine.com -westfutu.com -westleadfund.com -westonecloud.com -westpac.group -westsecu.com -westsummitcap.com -wesure100.com -wetaoke.com -wetest.net -wetherm.com -weti.me -weton.net -wetruetech.com -wetsd.com -wetv.vip -wetvinfo.com -weui.io -wewean.com -wewinpe.com -wework-studio.com -weworkcloudesk.com -wex5.com -wexiaocheng.com -wexin.com -wey.com -weyee.com -weyhd.com -weyic.com -weyman.me -weyo.me -wezeit.com -wezhan.hk -wezhan.net -wezhan.us -wezhuiyi.com -wf.pub -wf163.com -wf66.com -wfaozhuo.com -wfbaiyou.com -wfbbs.com -wfbrood.com -wfc805.com -wfdata.club -wfeil.com -wfek.com -wff168.com -wffc120.com -wffms.com -wfhero.online -wfiltericf.com -wfilterngf.com -wfjimg.com -wfjtjy.com -wflgjx.com -wfsysc.com -wfuyu.com -wfxyny.com -wfzbjx.com -wfzqhb.com -wfzssz.com -wfzzz.com -wgcss.com -wghostk.com -wghpdi.com -wgimg.com -wglm.net -wgmf.com -wgnds.com -wgos.com -wgpsec.org -wgsptc.com -wguancha.com -wgxcn.com -wgxdxx.com -wgxy.com -wgxy.net -wh-baidu.com -wh-charity.com -wh-china.com -wh-haipu.com -wh-motorshow.com -wh-mx.com -wh10000.com -wh100idc.com -wh111.com -wh119.com -wh12345szzx.com -wh20zx.com -wh2work.com -wh50.com -wh6z.com -wh702g.ren -whadexpo.com -whairport.com -whalecloud.com -whaledu.com -whalenas.com -whaleunique.com -whalipaycs.com -what21.com -whatbuytoday.com -whatsns.com -whatua.com -whbaishitong.com -whbbs.com -whbc2000.com -whbcrs.com -whbear.com -whbester.com -whbjcs.com -whbjdn.com -whbjyy.com -whbsybj.com -whbts.com -whbuilding.com -whbwj.com -whbws.com -whcat.net -whcbank.com -whcbs.com -whccb.com -whcch802.com -whcdc.org -whcfs.org -whcgtx.com -whchenyi.com -whckxx.com -whcotton.com -whcqedu.com -whcrewin.com -whcst.com -whctv.com -whcx365.com -whcyit.com -whdayy.com -whdckj.com -whddgc.com -whdhz.net -whdlpu.com -whdonde.com -whdqhj.com -whdrawing.com -whdsyy.com -whduanwu.com -whecb.com -whecloud.com -whecn.com -whegj.com -whenchat.net -whenever-online.com -wherxian.com -whetc.com -whevt.com -whewash.com -whfazun.com -whfeiyou.com -whfengli.com -whflfa.com -whfyhouse.com -whg6.com -whgaodu.com -whgaopeng.com -whggjk.com -whggjtjs.com -whggvc.net -whgh.org -whghjt.com -whgjjtjx.com -whgjzt.com -whgk.com -whgmbwg.com -whgmxy.com -whgszx.com -whgtgh.com -whguo.com -whgwbn.net -whhbxh.org -whhdcz.com -whhdky.com -whhdmt.com -whhdsdq.com -whhengchang.com -whhexin.com -whhk520.com -whhkbyg.com -whhouse.com -whhpaccp.com -whhsg.com -whhslndx.com -whhuatian.com -whhuiyu.com -whhxts.com -whhysound.com -whhzhn.com -whhzyj.com -whib.com -whicec.com -whichmba.net -whidc.com -whidy.net -whiee.com -whinfo.net -whir.net -whisperto.net -whitebox.im -whitecat.com -whitegem.net -whitemedia-china.com -whitjy.com -whjbh.com -whjclgs.com -whjcly.com -whjhcz.com -whjiaoy.com -whjjhbj.com -whjm.com -whjtxx.com -whjuren.com -whjy.net -whjyx.com -whjzc.com -whjzw.net -whjzy.net -whjzyxh.org -whkakaxi.com -whkc.com -whkingdom.com -whkjz.com -whkpcnc.com -whkyjz.com -whkykj.com -whland.com -whlawyer.net -whlido.com -whljyl.com -whlkwy.com -whlovehome.com -whlrhd.com -whly56.com -whlynk.com -whmama.com -whmeigao.com -whmj.org -whmlcy.net -whmnls.com -whmnrc.com -whmnx.com -whmoocs.com -whmoto.com -whmxrj.com -whmylike.cc -whmylikekq.com -whnfc.com -zxsauto.com -whocool.com -whoil.net -whoolala.com -whooyan.com -whosedrop.com -whozen.com -whpantosoft.com -whpanva.com -whplmd.com -whptc.org -whpx.net -whqcbj.com -whqhyg.com -whqtdjy.com -whqunyu.com -whqywl.com -whrango.com -whrazf.com -whrcbank.com -whrcw.cc -whrenai.com -whres.net -whrhkj.com -whrl.net -whrsip.com -whrtmpay.com -whsdsyy.com -whsir.com -whsladz.com -whsladz.net -whsql.org -whsqsoft.com -whsrc.com -whssxpx.com -whsw.net -whsy.org -whsyy.net -whtbq.com -whtcm.com -whtdcb.com -whtdsc.com -whtfzy.com -whtmhh.com -whtongyun.com -whtpi.com -whtqedu.net -whtran.com -whtryine.com -whtto.com -whttsy.com -whtuff.com -whtxcloud.com -whtzb.org -whu-cveo.com -whu.pt -whualong.com -whudfr.com -whuh.com -whuhzzs.com -whuspark.com -whuss.com -whut-px.com -whutech.com -whwanshun.com -whwat.com -whwater.com -whwebsite.com -whweo.com -whwkzc.com -whwm.net -whwm.org -whwomensmarathon.com -whwuyan.com -whwx2018.com -whwxxy.com -whxh.com -whxinhuo.com -whxsdn.com -whxunw.com -whxy.net -whxyqb.com -whxysz.net -whybh2015.com -whycan.com -whyec.com -whyenjoy.com -whyestar.com -whyfcm.com -whyicheng.com -whyimingkeji.com -whyinzhimei.com -whyiqitong.com -whyldd.net -whyongwei.com -whyqi.com -whys558.com -whysdomain.com -whyshop.com -whysodiao.com -whysx.com -whyungu.com -whyyy.com -whzb.com -whzbtb.com -whzc2008.com -whzdyy.com -whzh-cw.com -whzhqsg.com -whzhtd.com -whzhzxmr.com -whzjyy.com -whzkb.com -whzph.com -whzsrc.com -whzwzk.com -whzwzs.com -whzxht.com -whzxzls.com -whzyblh.com -whzydz.com -whzyht.com -wicep.com -wicp.net -wicp.vip -wicresoft.com -widuu.com -wifenxiao.com -wifi.com -wifi0917.com -wifi188.com -wifi33.com -wifi8.com -wifibanlv.com -wifichain.com -wifidog.pro -wifidown.com -wifigx.com -wifilu.com -wifimsl.com -wifire.net -wifishenqi.com -wifiwx.com -wifizj.com -wiitrans.com -wiiyi.com -wiki8.com -wikielife.com -wikiimgs.com -wikimirror.org -wikiyuedu.com -wikore.net -wilddog.com -wilddream.net -wildgun.net -wildto.com -willapps.com -willcdn.com -willmao.com -willsemi.com -willsfitness.net -willsgym.com -willwin91.com -wiloon.com -wiloop.net -wimetro.com -wimiar.com -win-haoxiang-win.com -win-ke.com -win-man.com -win007.com -win1032.com -win1064.com -win10cjb.com -win10gw.com -win10net.com -win10set.com -win10world.com -win10ww.com -win10xitong.com -win10zyb.com -win2007.com -win3000.com -win4000.com -win71234.com -win789.com -win7china.com -win7en.com -win7qijian.com -win7sky.com -win7w.com -win8.net -win866.com -win8china.com -win8e.com -win8xiazai.com -win9008.com -winasdaq.com -winbaicai.com -winbaoxian.com -winbjb.com -winbond-ic.com -winbons.com -winbosmart.com -wincheers.com -wincheers.net -wincn.com -wincome.group -wind.moe -wind2021.com -windcoder.com -windin.com -windmsn.com -windows10.pro -windows10zj.com -windows11.pro -windows7en.com -windowszj.com -windowszj.net -windrunner.me -winds.red -windsns.com -windspeedbike.com -windtch.com -windtourgame.com -windworkshop.net -wine-world.com -wine9.com -winegame.net -wineln.com -winemagz.com -winenice.com -wines-info.com -winesinfo.com -winesou.com -wineworld.vip -winex-hk.com -winfang.com -winfanqie.com -winfreeinfo.com -wingconn.com -winglungbank.com -wingsbook.com -wingtecher.com -winhong.com -winicssec.com -winkingworks.com -winksi.com -winndoo.com -winner9.com -winnermicro.com -winnet.cc -winning11cn.com -winotes.net -winotmk.com -winrobot360.com -winsalesaas.com -winsenseos.com -winshang.com -winshangdata.com -winsing.net -wintalent.com -winteam500.com -winterchen.com -wintimechina.com -wintooo.com -wintopedu.com -winvvv.com -winwebmail.com -winwin7.com -winxp8.com -winxuan.com -winxuancdn.com -winxw.com -wio2o.com -wireless-driver.com -wirelesschina-summit.com -wisburg.com -wisder.net -wisdoing.com -wisdom-braun.com -wisdomcmmi.com -wisdontech.com -wisdri.com -wise-iot.com -wiseah.com -wisecotech.com -wisedoo.com -wisedsp.net -wisedu.com -wisegotech.com -wiseimp.com -wiselong.cc -wiselong.com -wisenjoy.com -wiseuc.com -wisevector.com -wishbuild.com -wishcad.com -wishcalls.com -wishdown.com -wishisp.com -wisiyilink.com -wismom.com -wison-engineering.com -wison.com -wisrc.com -wistone.com -wiswonder.com -wit-parking.com -wit0.com -wit5.com -witcp.com -with366.com -withcdn.com -withmedia.net -withpinbox.com -withsccdn.com -withubit.org -withzz.com -witmart.net -witnew.net -witontek.com -witschools.com -witspring.com -wiwide.com -wiz03.com -wizarcan.com -wj-hospital.com -wj001.com -wj166.com -wjajw.com -wjasset.com -wjceo.com -wjdaily.com -wjdhcms.com -wjdiy.com -wjdiy.net -wjgslb.com -wjhh666.com -wjhtxx.com -wjiaxing.com -wjika.com -wjin.cc -wjinmiao.com -wjjfjt.com -wjlkj.com -wjlxmedia.com -wjmktv.com -wjrcb.com -wjshw.com -wjsw.com -wjtzyg.com -wjunjie.com -wjwy.com -wjx.com -wjxcdn.com -wjyanghu.com -wjyh.com -wjyt-china.org -wjyw.com -wjzpgz.com -wk007.com -wk2.com -wk78.com -wkai.cc -wkandian.com -wkanx.com -wkbins.com -wkbrowser.com -wkcmall.com -wkderp.com -wkdty.com -wkepu.com -wkhub.com -wkimg.com -wklken.me -wklm2018.com -wkmic.com -wkread.com -wksc.com -wkshipark.com -wkyaoye.com -wkzf.com -wkzk.com -wkzuche.com -zxs-coffee.com -wl369.com -wlanadmin.com -wlanbanlv.com -wlcbnews.com -wlcbw.com -wlcxx.com -wld5.com -wldsb.com -wleye.com -wlinfor.com -wljy8.com -wljyyjy.com -wlkgo.com -wlkst.com -wlmq.com -wlmqwb.com -wlmxin.com -wlnh.net -wlphp.com -wlqtpolytheatre.com -wlrjy.com -wls911.com -wlsgjslgy.com -wlski.com -wlsrenzaocaoping.com -wlstock.com -wlsvt.com -wltieyaoban.com -wluotx.com -wlwujie.com -wlwx.com -wlxit.com -wlxmall.com -wlxww.com -wlyfw.com -wlyjbl.com -wlzni.com -wlzp.vip -wm-imotor.com -wm-motor.com -wm090.com -wm18.com -wmc-bj.net -wmcloud.com -wmcn.com -wmiao.com -wming.com -wmiyx.com -wmjk.net -wmjrc.com -wmjygg.net -wmjyqd.net -wmjyszba.com -wmlunwen.com -wmnetwork.cc -zxrtb.com -wmp169.com -wmphp.com -wmpic.me -wmpvp.com -wmpyol.com -wms100.com -wmsjsteam.com -wmsjyun.com -wmsub.com -wmton.com -wmupd.com -wmvideo.com -wmxpro.com -wmxxgy.com -wmxxgz.com -wmxxwh.com -wmxxxj.com -wmy-ad.com -wmzhe.com -wn1998.com -wn51.com -wn789.com -wnark.com -wnbsq.com -wndhw.com -wndlkj.com -wndroid.com -wnform.com -wnhuifu.com -wniecm.com -wnkj88.com -wnlbs.com -wnlpromain.com -wnlproyunying.com -wnlprozhanxing.com -wnlprozijia.com -wnplayer.net -wnrb.net -wnshouhu.com -wnsqzonebk.com -wnssedu.com -wntool.com -wnwb.com -wnxfs.com -wnzc.com -wnzhbb.com -wnzhuishu.com -wnzy.net -wo-smart.com -wo-xa.com -wo.cc -wo113.net -wo116114.com -wo186.tv -wo188.win -wo1990.com -wo1wan.com -wo685.com -woa.com -woaap.com -woaide.com -woaidu.org -woaifanyi.com -woaihaoyouxi.com -woaihuahua.com -woaipu.com -woair.com -woaishouban.com -woaixiao.com -woaizr.com -woaizuji.com -woaoo.net -wobenben.com -wobocn.com -wobu2.com -woc88.com -wocaoseo.net -wochacha.com -wochaw.com -wodai.com -wodavip.com -wodcloud.com -wode.im -wodeabc.com -wodecrowd.com -wodedagong.com -wodemeitu.com -wodeoffice.com -wodeshebao.com -wodiancan.net -wodidashi.com -wodingche.com -wodjob.com -wodocx.com -wodown.com -wofang.com -wofangwang.com -wofficebox.com -wofjhs.com -wogame.net -wogoo.com -wohenizaiyiqi.com -wohuamanhua.com -woi3d.com -woiyu.com -wojiacloud.com -wojiaoni.com -wojilu.com -wok.com -wokaola.com -wokeji.com -woko.cc -wol.tv -wolai.com -wolaidai.com -wolegou.net -wolezhibo.com -wolf.cc -wolfcstech.com -wolfgo.com -wolfogre.com -wolianw.com -wolife.com -wolighting.com -woliuda.com -wolonge.com -wolongge.com -wolongyin.com -wolongyoule.com -wolongzywcdn.com -wolongzywcdn2.com -wolongzywcdn3.com -wolwo.ltd -wolwobiotech.com -womai.com -womaiapp.com -woman91.com -womei.org -womeime.com -womeimenye.com -women-heart.com -womenjie.com -wonder.wiki -wondercv.com -wonderful-app.com -wonderful-pr.com -wonderfulsz.com -wonderjk.com -wonderkun.cc -wondermars.com -wonderscloud.com -wondersgroup.com -wondershare.cc -wondershare.com -wondershare.net -wondersmemory.com -wonderstar027.com -wonderyouxi.com -wonei.com -wonengxing588.com -wongcw.com -wongpeace.com -woniu.com -woniu8.com -woniubaoxian.com -woniucloud.com -woniugm.com -woniutrip.com -woniuwl.com -wonmay.com -wonmay.net -wonnder.com -wonote.com -wonpearl.com -wonplug.net -wonse.info -woo.im -wooaii.com -woocg.com -wood168.net -woodbunny.com -wooddb.com -woodnn.com -wooffice.net -woola.net -wooolab.com -wooqx.com -woordee.com -wooshoes.com -woosmart.com -wooxhome.com -wooyun.org -woozooo.com -wopaiyi.com -wopaw.com -wopus.org -woqidege.com -woqifoundation.com -woqu.com -woquyun.com -worccqww.cyou -word666.com -wordlm.com -wordpress.la -wordscan.net -work28.com -workchat.com -workec.com -workehr.com -workerman.net -workpcb.com -worksoho.com -worktile.com -worktilemail.com -workyun.com -world-pass.net -world68.com -worldcps.com -worldgoodvoices.com -worldh5.com -worldhello.net -worldinout.com -worldmall365.com -worldmr.net -worldmsports.com -worldpathclinic.com -worldpowerliftingchina.com -worlduc.com -worldwarner.com -worldwayhk.com -worldwu.com -worthtech.net -wosai-inc.com -wosaimg.com -woshao.com -woshipm.com -woshipt.com -woshiqian.com -wosign.com -wosigndoc.com -woskj2.com -woso100.com -wosouyun.com -wotrus.com -wotucdn.com -wotula.com -wouju.com -wowant.com -wowar.com -wowcat.net -wowchina.com -wowenda.com -wowo6.com -wowoit.com -wowoohr.com -wowops.com -wowoqq.com -wowoshijie.com -wowotech.net -wowotuan.com -wowoyoo.com -wowoyou.com -wowoyou.net -wowqu.cc -wowsai.com -wowys.com -woxian.com -woxiaoyun.com -woxihuan.com -woxiu.com -woxuexue.com -woxuyuan.com -woyao998.com -woyaobaoliang.com -woyaodayin.com -woyaogexing.com -woyaoqiudai.com -woyaosouti.com -woyaozhan.com -woying.com -woyoo.com -woyouche.com -woyouquan.net -wozaijia.com -wozaixiaoyuan.com -wozhangwan.com -wozhua.mobi -wozhuan.com -wozhuye.com -wp-china-yes.net -wp-h.com -wp10.cc -wpan123.com -wpceo.com -wpcio.com -wpcnzz.com -wpdaxue.com -wpdian.com -wpengapp.com -wpgdadatong.com -wpgdadawant.com -wphonelife.com -wphun.com -wping.org -wpjam.com -wpk8.com -wplizhi.com -wpmtp.com -wporder.com -wproedu.com -wps-office.net -wps.com -wpscdn.com -wpsdns.com -wpsep.com -wpsgo.com -wpsmail.net -wpsoffice.com -wptao.com -wpweixin.com -wpxap.com -wpyou.com -wpzhiku.com -wq96f9.com -wqbook.com -wqc.so -wqchat.com -wqcms.com -wqdian.com -wqdian.net -wqgp.com -wqhunqing.com -wqiis.com -wqingjian.com -wqketang.com -wqlin.com -wqop2018.com -wqqwmw.com -wqxuetang.com -wqycq.com -wqyunpan.com -wqzx.net -wrating.com -wrcdn.com -wrfou.com -write-bug.com -writebp.com -wrjzj.com -wrkdih.com -wrl163.com -wrlsw.com -wrltxt.com -wrmjk.com -wrsa.net -wrtnode.cc -wrtnode.com -wrtsz.com -zxpmq.com -wsaf.net -wsbuluo.com -wsc-expo.com -wscdns.com -wscdns.info -wscdns.org -wscloudcdn.com -wscloudcdn.org -wscloudsec.com -zxopen.com -zxnrh.com -wscrm.net -wscso.com -wscstrace.com -wscvdns.com -wscxy.com -wsdcasa.com -wsdccq.com -wsdianzi.com -wsdvs.com -wsdvs.info -wsdvs.org -wsecar.com -wseen.com -wselearning.com -wselearning.net -wsfdl.com -wsfdn.com -wsfff.com -wsfnk.com -wsgjp.com -wsglb0.com -wsglb0.info -wsglb0.org -wsglw.com -wsgph.com -wsgxsp.com -wshang.com -wshengda2009.com -wshenm.com -wshost.cc -wshoto.com -wshtgame.com -wshttpdns.com -wsisp.com -wsisp.net -wsiv.net -wsjx.net -wskam.com -wslcode.com -wsljf.xyz -wslmf.com -wsloan.com -wsltt.com -wsonh.com -wsoso.com -wsound.cc -wsoversea.info -wsq.cool -wsqejt.com -wss.ink -wsssec.com -wstong.com -wstx.com -wsurl.cc -wswebcdn.com -wswebcdn.info -wswebcdn.org -wswebpic.com -wswebpic.info -wswebpic.org -wsxa.com -wsxc.me -wsxcme.com -wsy7.com -wsyhn.com -wsyyxz.com -wszjj.com -wszwh.org -wt-px.com -wt168.com -wt8.com -wtaluo.com -wtango.com -wtapi.com -wtbds.com -wtcxs.com -wtd56.com -wtdex.com -wtdms.com -wtgsdl.com -wting.info -wtn5.com -wtoip.com -wtojob.com -wtoutiao.com -wtown.com -wts999.com -wtsimg.com -wtszx.com -wttms.com -wtwvision.com -wtxcdn.com -wtzw.com -wu-mart.com -wu-mi.com -wu35.com -wu37.com -wu7zhi.com -wuage.com -wuaiso.com -wubaiyi.com -wubaiyi.net -wubiba.com -wubisheng.net -wubizi.net -wubizigen.net -wubolive.com -wubx.net -wucaiabc.com -wuchenxu.com -wucuozi.com -wuczfj.com -wudage.com -wudangquan.net -wudangshan.com -wudao.com -wudaotech.com -wudaotv.com -wudayy.com -wueasy.com -wufafuwu.com -wufangbo.com -wufangzhai.com -wufazhuce.com -wufuba.com -wufun.net -wufuquanlawyer.com -wugongdong.com -wuguiyunwei.com -wuguyufen.com -wugx.net -wuhan-guide.com -wuhan-tour.net -wuhan-travel.com -wuhan.com -wuhan163.com -wuhananyu.com -wuhanbaituo.com -wuhanbiennial.com -wuhanbus.com -wuhancityofdesign.com -wuhaneca.org -wuhanev.com -wuhanfuke120.com -wuhanfukeyy.com -wuhanhengyi.com -wuhanins.com -wuhanjiaojing.com -wuhanjingce.com -wuhankb.com -wuhanly.com -wuhanmarathon.org -wuhanmeigao.com -wuhanmetro.com -wuhanopen.org -wuhanparking.com -wuhanpe.com -wuhanpep.com -wuhanport.com -wuhanrt.com -wuhantianqi114.com -wuhantskj.com -wuhanunion.com -wuhanxingfuwan.com -wuhanzdq.com -wuhaoha.xyz -wuhongsheng.com -wuhouhaodian.com -wuhu.cc -wuhuashe.com -wuhubtv.com -wuhusanlian.com -wui5.com -wuji.com -wujiangtong.com -wujiayi.vip -wujiecaifu.com -wujiehd.com -wujiehuyu.com -wujiexiang.com -wujiit.com -wujijiasu.com -wujinimg.com -wujinkk.com -wujinpp.com -wujiok.com -wujixiaoshuo.com -wukong.com -wukong.la -wukongapi.com -wukongkf.com -wukonglicai.com -wukongphp.com -wukongrom.com -wukongsearch.com -wukongshuo.com -wukongtj.com -wukongtv.com -wukongwenda.com -wukur.com -wukypay.com -wul.ai -wulannews.com -wuletv.com -wuli.wiki -wuliannanjing.com -wuliaoo.com -wuliaosi.com -wuliapi.com -wulicdn.com -wuligeigei.com -wuling.com -wuliujia2018.com -wuliujie.com -wulong365.com -wulvxing.com -wumart.com -wumeishebei.com -wumii.com -wumii.tv -wuming.com -wuqing.cc -wuqiong.info -wuqishike.com -wurenjifanzhi.com -wuruihong.com -wuscn.com -wuse.com -wusen.net -wuseng.com -wuseng.net -wuseyun.com -wushang.com -wushangplaza.com -wushen.com -wushifublog.com -wushuangol.com -wushuangtech.com -wushuhenan.com -wushuzw.com -wusuhan.com -wusunjiance.net -wusuobuneng.com -wuta-cam.com -wutaishanfojiao.com -wutanyuhuatan.com -wutep.com -wutianqi.com -wutongbao123.xyz -wutongguo.com -wutongtec.com -wutongxiang.cc -wutos.com -wutuojia.com -wuuxiang.com -wuweijob.com -wuweiyou.com -wuwenjun.net -wuxi.com -wuxiairport.com -wuxiamh.com -wuxianhaibao.com -wuxianlin.com -wuxiantu.com -wuxiaodi.com -wuxiatools.com -wuxibus.com -wuxijy.com -wuximarathon.com -wuximediaglobal.com -wuxin.info -wuxinban.com -wuxiwang.net -wuxiworld.com -wuxuwang.com -wuyang-honda.com -wuyangplatform.com -wuyazi.com -wuyecao.net -wuyehr.com -wuyenews.com -wuyetongxin.com -wuyida.com -wuyishan.net -wuyou.com -wuyou.net -wuyoufang.com -wuyousy.com -wuyouyun.com -wuys.com -wuyuan.cc -wuyublog.com -wuyueit.com -wuyukang.com -wuyumin.com -wuyuncdn.com -wuzhaiba.com -wuzhenfestival.com -wuzhenpay.com -wuzhenwic.org -wuzhenwucun.com -wuzhicms.com -wuzhiwei.net -wuzhouqianzheng.com -wuzhuiso.com -wvidc.com -wvshare.com -ww2bbs.net -wwc-blog.com -wwe008.com -wwenglish.com -wwenglish.org -wwfchina.org -wwjia.com -wwkbiva.com -wwmhdq.com -wws23.com -wwsgh.com -wwstat.com -www-123490.com -www-175345.com -www-4620.com -www-63608.com -www-hangzhou-aliyun.com -zxnic.net -zxmseed.com -zxmn2018.com -zxmall.com -www.cc -www.cg -zxlib.com -zxjsq.net -zxjg66.com -zxip.com -zxinzxw.com -zxinc.org -zxicrm.com -zxiaoxiang.com -zxhsd.com -zxhong.com -zxhgroup.com -zxgzw.com -zxgzs.com -zxgongshui.com -zxgj56.com -zxerp.com -zxdyw.com -zxdu.net -zxdoo.com -zxdb999.com -zxd.com -www21420.com -www2kkbb.com -zxcoder.com -zxcmk.com -www48-365365.com -zxbzr.com -zxblinux.com -wwwatch.in -wwwbuild.net -wwwer.net -wwwic.net -zx990.com -zx98.com -wwwwww.vip -wx-data.com -wx-youyan.net -wx.com -wx135.com -wx2share.com -wx42.com -wx8s.com -wx939.com -wxagame.com -wxang.com -wxaokai.com -wxapp-union.com -wxappclub.com -wxappvideo.com -wxatech.com -wxavu.com -wxb.com -wxblockchain.com -wxbm04.com -wxbrandway.com -wxbsgc.com -wxcloudrun.com -wxcsgd.com -wxdgjx.com -wxdw.info -wxeditor.com -wxfenxiao.com -wxfls.net -wxfncjd.com -wxfsgj.com -wxgamemini.com -wxgrcpa.com -wxguan.com -wxgz.net -wxhand.com -jskwt.com -wxhouse.com -wxhu.net -wxhudong.com -wxiao.net -wxiat.com -wxjmar.com -wxjx123.com -wxkj666.com -wxkjwlw.com -wxkol.com -wxlagame.com -wxlongre.com -wxmama.com -wxmetro.net -wxmolegames.com -wxmovie.com -wxnacy.com -wxngh.com -wxp114.com -wxp2022.vip -wxphp.com -wxpushuo.com -wxrb.com -wxrrd.com -wxsbank.com -wxscreen.com -wxsell.com -wxshake.com -wxsky.net -wxsteed.com -wxsy.net -wxsywh.com -wxt2020.com -wxthe.com -wxtj10086.com -wxtpb.com -wxtrust.com -wxw120.com -wxwzt.com -wxy1314.com -wxyxrc.com -wxzq.com -wxzzz.com -wy000.com -wy100.com -wy119.com -wy182000.com -wy213.com -wyaoqing.com -wybbao.com -wybgs.com -wycfw.com -wycntv.com -wydbw.com -wydljx.com -wydns.com -wyduihua.com -wyh138.com -wyhos.fun -wyins.net -wyjianzhan.com -wykefu.com -wyktwx.com -wykw.com -wykz.com -wylws.com -wyn88.com -wyptk.com -wypxj.com -wyq9.com -wysaid.org -wysap.com -wysfgc.com -wysls.com -wysm88.com -wysww.vip -wytfsp.com -wytx.net -wytype.com -wyuetec.com -wywy6.com -wywyx.com -wyx365.com -wyxokokok.com -wyydsb.xin -wyzc.com -wyzdg.com -wyzhifu.com -wyzxsd.com -wyzxwk.com -wyzyz.org -wz-emauto.com -wz01.com -wz120.cc -wz132.com -wz16.net -wz5.com -wzciming.com -wzdai.com -wzdjy.com -wzdlqj.com -wzdsb.net -wzdy.xyz -wzexe.com -wzfg.com -wzfou.com -wzfw.ltd -wzhealth.com -wzhekou.com -wzhouhui.com -wzhouhui.net -wzhuiheng.com -wzhust.com -wzhx365.com -wzhxlx.com -wzijia.com -wzime.com -wzits.com -wzj9.com -wzjxyq.com -wzksw.com -wzlysz.com -wzms.com -wzplc.com -wzpo.net -wzpod.com -wzrdwl2.com -wzright.com -wzsee.com -wzsky.net -wztf121.com -wzwmw.com -wzwqs.com -wzyestar.com -wzyun.net -wzz180809.net -wzz1809.com -wzznft.com -wzzp.com -wzzww.com -x-bows.com -x-cloud.cc -x-jishu.com -x-mol.com -x-plans.com -x-ui.com -x0769.com -x11263.com -x11296.com -x118.net -x12plus.com -x1340.com -x1997.net -x23118.com -x23119.com -x23qb.com -x23us.me -x23us.us -x23wxw.com -x315.com -x3322.net -x3366.com -x33699.com -x3china.com -x3cn.com -x431.com -x5dj.com -x64go.com -x64pro.com -x66597.com -x6d.com -x6kj.com -x6x8.com -x72y.com -x7sy.com -x81zw.co -x81zw.com -x821.com -x86android.com -x8ds.com -x8sb.com -xa-bank.com -xa-online.com -xa.com -xa189.net -xa30zx.com -xa71.cc -xa9t.com -xabbp.com -xacbank.com -xacbwl.com -xachangda.com -xacitywall.com -xacnnic.com -xactad.net -xadamai.com -xadiannao.com -xadlwx.com -xaecong.com -xafc.com -xaffp.com -xafpz.com -xafzjy.com -xagxp.com -xagxz.com -xahb.com -xahc971.com -xahhp.com -xahuapu.net -xahxp.com -xaidc.com -xaigame.com -xainjo.com -xaixs.org -xajfwy.com -xajjk.com -xajjwy.com -xajob.com -xajr.com -xajxcw.com -xalanq.com -xalawyer.net -xalhar.net -xalhlf.com -xamama.net -xamjx.com -xampp.cc -xanahotelle.com -xanbhx.com -xank120.com -xany6.com -xaoji.com -xaonline.com -xaoyao.com -xapcn.com -xaqhgas.com -xaredian.com -xaseastar.com -xasff.com -xasgxy.com -xashangwang.com -xashzhjz.com -xasimonds.com -xasrc.com -xaszjf.com -xatao029.com -xatcrj.com -xatielu.com -xatvs.com -xatyds.com -xatzj.com -xauat-hqc.com -xaudiopro.com -xawb.com -xawbb.com -xawdz.com -xawhz.com -xaxinghuo.com -xaxydr.com -xayestar.com -xayrc.com -xazcit.com -xazwy.com -xazzg.com -xazzp.com -xazzs.com -xb.app -xb21cn.com -xb2s.com -xbaofun.com -xbase.cloud -xbatu.com -xbauto.com -xbbei.net -xbbshuwu.com -xbceo.com -xbdym.com -xbequge.com -xbeta.info -xbext.com -xbfnet.com -xbfzb.com -xbhb.net -xbhy.com -xbhz.net -xbiao.com -xbidc.com -xbiquge.cc -xbiquge.com -xbiquge.la -xbiquge.tw -xbiqugew.com -xbiqukan.com -xbiquwx.la -xbirder.com -xbjianzhan.com -xbkjvip.com -xblds.com -xbltravel.com -xblyw.com -xbmiaomu.com -xbniao.com -xbongbong.com -xboot.org -xbpro.vip -xbptc.com -xbpz9.com -xbqgyy.com -xbriyu.com -xbrl-cn.org -xbrother.com -xbspace.com -xbwbh.com -xbwebyun.com -xbxgame.com -xbxxb.com -xbxxz.com -xbzlapp.com -xc2500.com -xc940.com -xcabc.com -xcao.win -xcape.cc -xcar.com -xcarimg.com -xcb-family.com -xcbank.com -xcdesign.net -xcdn.global -xcexe.com -xcfunds.com -xcggzzb.com -xcgogo.club -xcgogo.site -xcgp.com -xcgui.com -xchjw.org -xchlxx.com -xchmai.com -xchuandai.com -xchuxing.com -xciic.com -xcj.com -xckszx.com -xcloudbase.com -xcmad.com -xcmg.com -xcmgmall.com -xcmh.cc -xcn457.com -xcnchinese.com -xcode.me -xcoder.in -xcommon.com -xcoodir.com -xcot.com -xcpapa.site -xcpapa.xyz -xcphzs.com -xcpxssx.com -xcq2022.com -xcqxcq.com -xcrxykl.com -xcsc.com -xcsfcjyw.com -xcshaifen.com -xcstuido.com -xctmr.com -xcultur.com -xcurrency.com -xcvmbyte.com -xcvxcv.space -xcx-x.com -xcxd-inc.com -xcxvs.com -xcxwo.com -xcxx28.com -xcxzl.com -xcy8.com -xcyg.net -xcyo.com -xczyx.com -xczzs.com -xd-game.com -xd-tech.com -xd-world.com -xd.com -xd0.com -xd0731.com -xd57.com -xdapp.com -xdbcb8.com -xdc.at -xdcdn.com -xdcdn.net -xddpay.com -xde.com -xde6.net -xdfckjz.com -xdfkt.com -xdfpr.com -xdgalaxy.com -xdhcn.com -xdiarys.com -xdj-sz.com -xdja.com -xdjc.org -xdju.com -xdjunxiao.com -xdjy369.com -xdkb.net -xdkjjy.com -xdkjpx.com -xdmb.xyz -xdmnyy.com -xdmssp.com -xdnice.com -xdnote.com -xdnphb.com -xdocin.com -xdowns.com -xdplt.com -xdpvp.com -xdrenwu.com -xdressy.com -xdrig.com -xdrtc.com -xdrun.com -xdsipo.com -xdtos.com -xduoo.com -xduph.com -xdusz.com -xdwan.com -xdwyx.com -xdxdsz.com -xdxialingying.com -xdxmwang.com -xdxx.ink -xed.plus -xedaojia.com -xedaojia.net -xeeee.net -xeenho.com -xeeok.com -xefan.com -xege.org -xegneils.com -xehedu.com -xeknow.com -xeltek-cn.com -xelz.info -xen0n.name -xender.com -xenium.mobi -xerlang.com -xesapp.com -xescdn.com -xesdns.com -xesee.com -xesimg.com -xesv5.com -xet.tech -xetimes.com -xevd.co -xevddy.com -xeylon.com -xf-fund.com -xf-world.org -xf-yun.com -xf.com -xf0797.com -xf09.net -xf119.xin -xf120.com -xf1233.com -xf1433.com -xf3z.com -xf4hs.com -xf5z.com -xfabs.com -xfannix.com -xfb315.com -xfc888.com -xfcd365.net -xfconnect.com -xfdown.com -xfeng.me -xffcol.com -xfgctg.com -xfguo.org -xfhx.com -xfinfr.com -xfisp.com -xfjw.net -xfliusheng.com -xfnano.com -xfocus.net -xfocus.org -xforceplus.com -xfpass.com -xfplay.com -xfplay.tv -xfrizn.com -xfsb119.com -xfsub.com -xft123.com -xftclub.com -xfun233.com -xfxb.net -xfyousheng.com -xfyun.com -xfzhsf.com -xfztc.com -xgamevip.com -xgantt.net -xgate.com -xgcs618.com -xgcsczyc.com -xgcsyg.com -xgd.com -xgd666.com -xgdfhw.com -xgdfz.com -xgdown.com -xgdq.com -xgfz.net -xggjj.com -xghylt.com -xgimi.com -xgimi.net -xgiu.com -xgj-info.com -xgjiu.com -xgjxjy.com -xgkwx.com -xglpa.com -xgmeidiya.com -xgo.cc -xgqq.com -xgsdk.com -xgslb.net -xgsxt.net -xgt2014.com -xgwx.net -xgxedu.com -xgz.cc -xgzdhj.com -xgzx.org -xh456.com -xhaiwai.com -xhay1122.com -xhblog.com -xhboke.com -xhby.net -xhbycm.net -xhclub.net -xhcpas.com -xhd.org -xhdollar.com -xhedu.net -xhg.com -xhgame.com -xhgongsi.com -xhgyw.com -xhhd6.com -xhhdd.cc -xhidc.com -xhj.com -xhjingling.com -xhkt.tv -xhlaowu.com -xhma.com -xhnews.net -xhostserver.com -xhpfw.com -xhpiano.com -xhqqt.com -xhscdn.com -xhscdn.net -xhsd.com -xhslink.com -xhsyww.com -zx7b.com -xhtd291.com -xhungame.com -xhup.club -xhxsw.com -xhy.com -xhyd.com -xhytd.com -xhyun.vip -xi-soft.com -xi5jie.com -xia1ge.com -xiaa.net -xiabingbao.com -xiabor.com -xiabu.com -xiacai.com -xiacaipiao.com -xiachufang.com -xiada.net -xiadaolieche.com -xiadele.com -xiadts.com -xiadu.com -xiagaoqing.com -xiagepian.com -xiakeol.com -xiald.com -xialingying.cc -xialv.com -xiamag.com -xiamai.net -xiamenair.com -xiamenbg.com -xiamentianqi114.com -xiami.com -xiami.fm -xiami.net -xiamoyun.com -xiamp4.com -xian-tourism.com -xianba.net -xianbai.me -xianbdj.com -xianbeikeji.com -xianbey.com -xianchengyou.com -xianchihuo.net -xiancn.com -xiandanjia.com -xiandaohu.net -xianfae.com -xianfeng.net -xianfengsg.com -xiang5.com -xiang578.com -xiangange.com -xianganquan.com -xianganyu.com -xiangbababus.com -xiangbala.net -xiangbinjun.com -xiangbinmeigui.com -xiangbojiubo.com -xiangcunxiaoshuo.com -xiangdang.net -xiangdao.me -xianggangcheng.com -xiangguo.com -xiangguohe.com -xiangha.com -xianghunet.com -xianghus.com -xiangkanwang.com -xiangkesi.com -xiangley.com -xianglifood.com -xianglute.com -xiangmaita.com -xiangmu.com -xiangni.com -xiangpeach.com -xiangpi.com -xiangqianpos.com -xiangqin7.com -xiangqu.com -xiangrikui.co -xiangrikui.com -xiangrikuijianzhan.com -xiangruizulin.com -xiangshang360.com -xiangshangban.com -xiangshanpark.com -xiangshe.com -xiangshengbao.com -xiangshi.cc -xiangshi123.com -xiangshu.net -xiangsidi.com -xiangsw.com -xiangtaole.com -xiangtatech.com -xiangtuan.xyz -xianguo.com -xianguomall.com -xiangw.com -xiangwangdesh.com -xiangwushuo.com -xiangxingnet.com -xiangyang.net -xiangyiai.com -xiangyujiankang.com -xiangyukj.com -xiangyun.so -xiangyunseo.com -xiangzhan.com -xiangzhiren.com -xiangzhuyuan.com -xiangzukeji.com -xianjian10.com -xianjiaosuo.com -xianjichina.com -xianjiqun.com -xianjj.com -xiankan.com -xiankankan.com -xianlaigame.com -xianlaihy.com -xianlife.com -xianmaiyangsheng.com -xianniuzu.com -xianpinyun.com -xianpp.com -xianruan.com -xianshiqiba.com -xianshu.com -xianshua.net -xianshuabao.com -xianshufang.com -xianxiadao.com -xianxiadao.net -xianxueba.com -xianyang888.com -xianyin.net -xianyuange.com -xianyugame.com -xianyugouwu.com -xianyuso.com -xianyuwang.com -xianyuyouxi.com -xianzhanget.com -xianzhi.net -xianzhongwang.com -xiao-an.com -xiao-bo.com -xiao-new.com -xiao.lu -xiao84.com -xiao89.com -xiaoa.name -xiaoantech.com -xiaobai.com -xiaobaichongw.com -xiaobaipan.com -xiaobaishiji.com -xiaobaishixi.com -xiaobaiupin.com -xiaobaivr.com -xiaobaixitong.com -xiaobangbaoxian.com -xiaobao360.com -xiaobaodt.com -xiaobaoonline.com -xiaobaostudio.com -xiaobd.net -xiaobianli8.com -xiaobingxitong.com -xiaobu121.com -xiaocanhulian.com -xiaocaoo.com -xiaocaoyun.com -xiaocen.com -xiaoche001.com -xiaochengxucms.com -xiaochuan010.com -xiaocifang.com -xiaocms.com -xiaodaka.net -xiaodanyang.com -xiaodaotv.com -xiaodaozhi.com -xiaodengta.com -xiaodengvip.com -xiaodian.com -xiaodian.in -xiaodian.so -xiaodianpu.com -xiaodianweb.com -xiaodigu.com -xiaodigufz.com -xiaoding110.com -xiaodongrui.com -xiaodongxier.com -xiaodoubi.com -xiaodoushebao.com -xiaodouzuche.com -xiaoduoai.com -xiaoduseo.com -xiaodutv.com -xiaody.com -xiaoe-tech.com -xiaoe-tools.com -xiaoeknow.com -xiaoenai.com -xiaoeryi.com -xiaofantian.com -xiaofeng.org -xiaogan.com -xiaogj.com -xiaogouh5.com -xiaogr.com -xiaoguikuaipao.com -xiaoguosq.com -xiaoguowenhua.com -xiaogushi.com -xiaoh.me -xiaohansong.com -xiaohe-jiankang.com -xiaohe666.com -xiaohei.com -xiaoheima.com -xiaohengmaidan.com -xiaohongchun.com -xiaohongshu.com -xiaohongshu.net -xiaohongshulvyou.com -xiaohouyunyin.com -xiaohuabaichu.com -xiaohuabuluo.com -xiaohuai.com -xiaohuangji.com -xiaohulu.com -xiaohuochai.cc -xiaohuochai.site -xiaohus.com -xiaohuwl.com -xiaoice.com -xiaoj.com -xiaoji.com -xiaoji001.com -xiaojian.site -xiaojianjian.net -xiaojiaoyar.com -xiaojiaoyu.com -xiaojiding.com -xiaojifeng.com -xiaojing.work -xiaojing360.com -xiaojiuwang.com -xiaojl.com -xiaojuchefu.com -xiaojudeng.com -xiaojukeji.com -xiaojun.org -xiaoka.tv -xiaokache.com -xiaokakj.com -xiaokanba.com -xiaokanglongjiang.com -xiaokao.com -xiaokaxiu.com -xiaokcdn.com -xiaokcehui.com -xiaokeai.com -xiaokeduo.com -xiaokesoso.com -xiaokuihua.net -xiaokusha.com -xiaolai.net -xiaolajiao.com -xiaolanben.com -xiaolangtt.com -xiaolantiao.com -xiaolee.net -xiaoleidm.com -xiaoliangkou.com -xiaoliebian.com -xiaolin.in -xiaolincoding.com -xiaolinsi.com -xiaolinwl.com -xiaoliqing.net -xiaolizhuli.com -xiaolu123.com -xiaoluboke.com -xiaoluyouxuan.com -xiaoluyy.com -xiaoluzhidian.com -xiaoma.com -xiaoma.net -xiaomachuxing.com -xiaomagaojian.com -xiaomai5.com -xiaomaigongkao.com -xiaomaiketang.com -xiaomantu.com -xiaomaomv.com -xiaomape.com -xiaomashijia.com -xiaomastack.com -xiaomav.com -xiaomaxitong.com -xiaomei.cc -xiaomeiti.com -xiaomeng1235.com -xiaomi.com -xiaomi.hk -xiaomi.net -xiaomi.tw -xiaomiaozai.com -xiaomiflash.com -xiaominet.com -xiaominfo.com -xiaoming.me -xiaomingming.org -xiaomingtaiji.com -xiaomiqiu.com -xiaomiquan.com -xiaomirom.com -xiaomishu.com -xiaomiyoupin.com -xiaomlove.com -xiaomor.com -xiaomoyao.com -xiaomuji.info -xiaomy.net -xiaomyc.com -xiaonaodai.com -xiaonei.com -xiaonianyu.com -xiaoniba.com -xiaoniu66.com -xiaoniu88.com -xiaoniuben.com -xiaoniudunkj.com -xiaopangyu.com -xiaopena.com -xiaopeng.com -xiaophy.com -xiaopi.com -xiaopinw.com -xiaopiu.com -xiaoqiandao.com -xiaoqiangge.com -xiaoqingtou.com -xiaoqinre.com -xiaoqiqiao.com -xiaoqugang.com -xiaoquyijia.com -xiaorizi.me -xiaorui.cc -xiaoruibao.com -xiaoshentui.com -xiaoshijie.com -xiaoshituina.vip -xiaoshouhudong.com -xiaoshoukuaifa.com -xiaoshourc.com -xiaoshouyi.com -xiaoshu168.com -xiaoshujiang.com -xiaoshuo.com -xiaoshuo1-sm.com -xiaoshuo520.com -xiaoshuo530.com -xiaoshuo570.com -xiaoshuoba.com -xiaoshuobi.cc -xiaoshuodaquan.com -xiaoshuoli.com -xiaoshuoshu.org -xiaoshuowu.com -xiaoshuozu.com -xiaoshuxiong.com -xiaositv.com -xiaoso.net -xiaoss.net -xiaot.com -xiaota.com -xiaote.com -xiaote.net -xiaotee.com -xiaoten.com -xiaotengyouxi.com -xiaotiancai.com -xiaotud.com -xiaotut.com -xiaotuzhan.com -xiaou2014.com -xiaoupan.com -xiaowang.net -xiaowangshen.com -xiaowangyun.com -xiaowazi.com -xiaoweigod.com -xiaoweirobot.com -xiaowiba.com -xiaowm.com -xiaowuwl.com -xiaoxiaapi.com -xiaoxiangbz.com -xiaoxiangxueyuan.com -xiaoxiangyoupin.com -xiaoxiansheng.com -xiaoxiao.com -xiaoxiaodangan.com -xiaoxiaoketang.com -xiaoxiaomo.com -xiaoxiaotong.org -xiaoxiaozi.com -xiaoxichangliu.com -xiaoxineye.com -xiaoxinrili.com -xiaoxintoutiao.com -xiaoxintuku.com -xiaoxiongmeishu.com -xiaoxiongxitong.com -xiaoxiongyouhao.com -xiaoxiuapp.com -xiaoxue123.com -xiaoyantong.com -xiaoyaoyou.com -xiaoyaoyou365.com -xiaoyatong.com -xiaoyayun.com -xiaoyeren.com -xiaoyezi.com -xiaoyi.com -xiaoyida.com -xiaoyida.net -xiaoying.co -xiaoying.com -xiaoying.tv -xiaoyisysreset.com -xiaoyouxi100.com -xiaoyouxiqun.com -xiaoyouzb.net -xiaoyu.com -xiaoyuankousuan.com -xiaoyuanyun2.com -xiaoyuanzhao.com -xiaoyuanzhaopin.net -xiaoyuer.com -xiaoyun.com -xiaoyusan.com -xiaoyusanchou.com -xiaoyuxitong.com -xiaoyuzhoufm.com -xiaozaixiao.com -xiaozhan.cc -xiaozhang365.com -xiaozhibaoxian.com -xiaozhibo.com -xiaozhiyun.com -xiaozhu.com -xiaozhu2.com -xiaozhua.com -xiaozhuanlan.com -xiaozhuseo.com -xiaozhustatic1.com -xiaozhustatic2.com -xiaozhustatic3.com -xiaozuan8.com -xiaozujian.com -xiaozuowen.net -xiappt.com -xiaqunfeng.cc -xiarenzhuxin.com -xiarj.com -xiataoseo.com -xiatou.com -xiaw.net -xiawan8.com -xiaxiab8.com -xiaxs.info -xiaxs.la -xiayige.org -xiayiqu.com -xiayx.com -xiazai.com -xiazai163.com -xiazaiba.com -xiazaibao2.com -xiazaicc.com -xiazaidb.com -xiazaijidi.com -xiazaima.com -xiazaisoft.com -xiazaiwx.com -xiazaiziti.com -xibaiwang.com -xibanyaqz.com -xibao100.com -xibeicanyin.com -xibeidev.com -xibojiaoyu.com -xibsteel.com -xibu168.com -xicaijing.com -xicaishe.com -xichu.net -xichuangzhu.com -xici.com -xici.net -xicp.net -xidesheng.com -xidian.cc -xidibuy.com -xidie.com -xidong.net -xidongv.com -xiduobaby.com -xiebao18.com -xieboke.net -xieche.net -xiecheng.com -xiechuangw.com -xiecuo.com -xiedaimala.com -xiefenxiang.com -xiehejx.com -xiehekjkf.com -xiehuiyi.com -xiejiahe.com -xiejianji.com -xiejiaxin.com -xieliqun.com -xier.tech -xiesk.com -xieso.net -xietonghuaxue.com -xietui.com -xiexiaoyuan.com -xiexiebang.com -xiexingcun.com -xiexingme.com -xieyangzhe.com -xieyinwang.com -xiezefan.me -xiezewen.com -xieziqiu.net -xiezixiansheng.com -xiezuo100.com -xiezuocat.com -xifan.org -xifangw.com -xifenfei.com -xifenggroup.com -xifengjiuzhaoshang.com -xifu120.com -xifumi.com -xigeweb.com -xigou100.com -xigoubao.com -xigua110.com -xiguabook.com -xiguaimg.com -xiguaji.com -xiguang.xyz -xiguangtech.com -xiguaplayer.com -xiguavideo.net -xigushan.com -xigushan.net -xihachina.com -xihaiannews.com -xihawan8.com -xihuan.me -xihusgh.com -xiimoon.com -xiji.com -xijiangtv.com -xijing01.com -xikcloud.com -xikii.com -xiladaili.com -xilaiping.com -xilexuan.com -xileyougame.com -xilidou.com -xilinjie.com -xilinsi.org -xilish.com -xilu.com -xiluoxuan.com -xilvlaw.com -xima.org -xima.tv -ximalaya.com -ximalayaos.com -ximgs.net -ximiplay.com -ximiyouxi.com -ximizi.com -ximuw.com -xin.com -xin.xin -xin1234.com -xin3721.com -xin6.net -xinaigame.com -xinanidc.com -xinaoyun.com -xinbaby.com -xinbaicai.com -xinbalive.com -xinbear.com -xinbqg.com -xincache.com -xincai.com -xincaiguan.com -xincailiao.com -xincainet.com -xincaitong.net -xincanshu.com -xincg.com -xincha.com -xinchacha.com -xinchangol.com -xinchao.com -xinchaoss.com -xinchaoyue.com -xinchego.com -xincheng.com -xincheping.com -xinchong.com -xinchukj.com -xincmm.com -xindaifu.com -xindemarinenews.com -xindexuexi.com -xindi02.site -xindingwealth.com -xindns.com -xindong.com -xinduo.com -xinduoad.com -xineurope.com -xinfangsheng.com -xinfee.com -xinfei.com -xinfeijituan.com -xinfengxitong.net -xinfengxs.com -xinfenlei.com -xinfu888.com -xinfushe.com -xing73.com -xingames.com -xingbangip.com -xingbo.tv -xingcai.biz -xingchenjia.com -xingcheshixian.com -xingdatrip.com -xingdi.me -xingdong.co -xingdongliu.com -xinge.com -xingfagroup.com -xingfudu.com -xingfufangdai.com -xingfulizhaofang.com -xingfulo.com -xingfuu.com -xinggan.com -xinggan.net -xinghai365.com -xinghejoy.com -xinghengedu.com -xinghuankj.com -xinghuo100.com -xinghuo365.com -xinghuogroup.com -xinghuoxiaoshuo.com -xingjiesj.com -xingjijy.com -xingjimob.com -xingjuhe.com -xingketech.com -xingkong.com -xingkongmt.com -xingkoo.com -xingkuad.com -xingkupai.com -xinglai.com -xinglinpukang.com -xinglongdayuan.com -xingmai58.com -xingmao.cc -xingmima.com -xingming.com -xingming.net -xingpan.com -xingpin.com -xingqisihuishou.com -xingqiu.tv -xingqiu520.com -xingqu11.com -xingren.com -xingrongn.com -xingse.net -xingseapp.com -xingshangnet.com -xingshulin.com -xingshuo.net -xingtai123.com -xingtan001.com -xingtangzp.com -xingtu.com -xinguad.com -xingumin.net -xingweiedu.com -xingxing.com -xingxingjizhang.com -xingxingzu.com -xingye.work -xingyi.com -xingyigz.com -xingyongli.com -xingyoucai.com -xingyuanhuzhu.com -xingyuehuyu.com -xingyuhuwai.com -xingyunba.com -xingyunxc.com -xingyusoft.net -xingyuyouxi.com -xingzhang.com -xingzhige.com -xingzhilan.com -xingzhiyue.com -xingzuo.com -xingzuo8090.com -xingzuoshu.com -xingzuowu.com -xinhanhd.com -xinhanyx.com -xinhaolian.com -xinhaoqi.net -xinhay.com -xinhongru.com -xinhua-news.com -xinhua.org -xinhua08.com -xinhuaapp.com -xinhuacu.com -xinhuamm.net -xinhuan.mobi -xinhuanet.com -xinhuanet.ltd -xinhuaphoto.org -xinhuapo.com -xinhuaprs.com -xinhuapub.com -xinhuashe.org -xinhuasuye.com -xinhuatoupiao.com -xinhuawang.com -xinhuaxmt.com -xinhuayimin.com -xinhuazhiyun.com -xinhuoq.com -xiniu.com -xiniu3d.com -xiniugushi.com -xiniuyun.com -xiniuz.com -xinjiadiy.com -xinjiance.com -xinjianggou.com -xinjidian.com -xinjimo.com -xinjingks.com -xinjisuan.net -xinjunshi.net -xinjunshicn.net -xinkamai.com -xinkuai.com -xinkuaijie.com -xinle366.com -xinli001.cc -xinli001.com -xinli001wx.com -xinliangxiang.com -xinliceping.com -xinlifudao.com -xinlinghuayuan.com -xinlingletu.com -xinliwanju.com -xinluex.com -xinlvtu.com -xinmanduo.com -xinmei6.com -xinmeihu.com -xinmima.com -xinmintian.vip -xinnet.com -xinniangjie.com -xinnianhua.com -xinnong.com -xinnuodazu.com -xinorngyk.com -xinouhk.com -xinpianchang.com -xinpianyugao.com -xinpingmu.com -xinpure.com -xinqiannv.com -xinqigu.com -xinqing.com -xinqiyejia.com -xinqtech.com -xinquanedu.com -xinquji.com -xinran1016.com -xinranliu.me -xinray.net -xinrenxinshi.com -xinrong.com -xinrong88.com -xinrui-games.com -xinrui.biz -xinrz.com -xinsanbanbao.com -xinsdn.com -xinshangmeng.com -xinshangmeng3.com -xinshangshangxin.com -xinshiba.com -xinshipu.com -xinshishen.com -xinshoucun.com -xinshouyou.com -xinshouzhanzhang.com -xinshulaile.com -xinshuru.com -xinsilu.com -xinstall.com -xinstatic.com -xintaiwtp1.com -xintaizhou.com -xintheme.com -xintiao100.com -xintiao80.com -xintiaoyouxi.com -xintiku.com -xintongconference.com -xintuofalv.com -xinwangcj.com -xinweiyun.com -xinwen365.com -xinwen520.net -xinwengao.net -xinwo.com -xinx.love -xinxianghui.com -xinxianshilb.com -xinxiansk.com -xinxiaochina.com -xinxiaodian.com -xinxiaoqi.com -xinxiaozu.com -xinxifabu.net -xinxinapp.net -xinxindai.com -xinxing.org -xinxing100.com -xinxingly.com -xinxinhot.net -xinxinjoy.com -xinxisea.com -xinxue-edu.com -xinxuezx.com -xinxunwang.com -xinxunwei.com -xinyan.com -xinyaoyao.com -xinyayk.com -xinyegang.com -xinyi-tech.com -xinyisemi.com -xinyitt.com -xinyo100.com -xinyong.net -xinyongbuy.com -xinyou.com -xinyour.com -xinyu19.com -xinyuefei.com -xinyueseo.com -xinyukj99.com -xinyunfuwu.com -xinyuwanju.com -xinyuwen.com -xinyuwj.com -xinzaoxing.com -xinzengwj.net -xinzheng.cc -xinzhi.space -xinzuhe.com -xinzzfsdfdslk333.com -xinzzrowieir444.com -xioagege587skjdo.com -xionganxinxi.com -xionganzhuce.com -xiongdayq.com -xiongdong.com -xiongmao666.com -xiongmaojinku.com -xiongyin.com -xiongying.com -xiongzhangad.com -xipushuju.net -xiqb.com -xiqianyangyi.com -xiqihe.com -xiqingji.com -xiqinrc.com -xirang.com -xirenxuan.com -xisaiwang.com -xishanju.com -xishaoye.com -xishiqu.com -xishiwang.com -xishuai.com -xishuai.net -xishuashuatuan.com -xisj.com -xitao88.com -xitaoinfo.com -xitek.com -xitek.net -xitie.com -xitieba.com -xitieba.net -xitmi.com -xitong-tech.com -xitong110.com -xitong8.com -xitong86.com -xitongbuluo.com -xitongcheng.com -xitongdaquan.net -xitonggho.com -xitonghe.com -xitongjiaocheng.com -xitongku.cc -xitongle.com -xitongpe.com -xitongqingli.com -xitongtang.com -xitongtiandi.net -xitongtiankong.com -xitongtu.net -xitongxz.net -xitongzhijia.net -xitongzu.com -xitouwang.com -xitu.com -xitu.io -xituan.com -xiu.com -xiu8.com -xiuai.com -xiucai.com -xiudodo.com -xiufaxing.com -xiugu.com -xiuhome.com -xiuimg.com -xiujiadian.com -xiulian.com -xiuluowang.com -xiulv.com -xiumb.com -xiumeiziyuan.com -xiumi.com -xiumi.us -xiumius.com -xiumucn.com -xiuna.com -xiuno.com -xiupin.com -xiuqicloud.com -xiuren.com -xiusecai.com -xiushao.com -xiusheji.com -xiusheji.net -xiushuang.com -xiustatic.com -xiutuan.com -xiutv.com -xiuxiandou.com -xiuxiu.com -xiuxiustatic.com -xiuzhan365.com -xiuzhanwang.com -xivcdn.com -xiwangame.com -xiwangchina.com -xiwangd.com -xiwanglife.com -xiwangxiaoyuan.com -xiwantrip.com -xiwenquan.com -xiwnn.com -xiwuji.com -xixi520.com -xixiaoyou.com -xixiarc.com -xixibobo.com -xixiclothing.com -xixidoudizhu.com -xixik.com -xixik.net -xixin123.com -xixipan.com -xixiqipai.com -xixisys.com -xiyacs.com -xiyamaoyi.com -xiyang1.icu -xiyijiang.com -xiyin.life -xiyiqq.com -xiyogo.com -xiyoo.com -xiyou-g.com -xiyou360.net -xiyoucdn.com -xiyouchat.com -xiyouence.com -xiyouji.com -xiyouquan.com -xiyousdk.com -xiyouwebgame.com -xiyucosmetics.com -xiyuege.com -xiyufine.com -xiyun.net -xiyurumen.com -xizangguolv.net -xizangqinglv.com -xizangzl.com -xizhang.com -xizhi.com -xizi.com -xiziquan.com -xiziwang.net -xj-gr.com -xj-zp.com -xj120.com -xj123.info -xj169.com -xj71.com -xj7road.com -xj96596.com -xjabc.net -xjbdf.net -xjbhyx.com -xjbuluo.com -xjc18.com -xjcc.net -xjche365.com -xjcmtj.com -xjd360.com -xjdaily.com -xjdkctz.com -xjdpx.com -xjdsb.com -xjdwx.com -xjent.com -xjfda.com -xjfilm.net -xjfine.com -xjflcp.com -xjfzb.com -xjggjy.com -xjgj.com -xjgqt.org -xjgsdm.com -xjgwy.org -xjh.me -xjhgame.net -xjhjsd.com -xjhr.com -xjietiao.com -xjishu.com -xjisme.com -xjiyou.com -xjjnjp.org -xjlxw.com -xjlz365.com -xjmty.com -xjmw.net -xjoycity.com -xjpdf.com -xjphsd.com -xjr2018.com -xjrb.net -xjrmyy.com -xjshift.com -xjtour.com -xjtsnews.com -xjtuccjsj.com -xjtucompressor.com -xjtudlc.com -xjwljb.com -xjwyglw.com -xjxa.com -xjxbx.com -xjyou88.com -xjytjt.com -xjzdjx.com -xjzhongwu.com -xjzlyy.com -xjzsks.com -xk8090.com -xk89.com -xk9l.com -xkaxka.com -xkb1.com -xkcd.in -xkcun.com -xkcxh.com -xkdmp.com -xker.com -xkhouse.com -xkpx.com -xksafe.com -xksm54s.com -xktoupiao.com -xkw.com -xkwe.com -xkxiazai.com -xkyl.vip -xkyn.com -xkyn.net -xkzzz.com -xl-ai.com -xl-soft.com -xl13.com -xl18z.com -xl526.com -xl5bb.com -xl5dd.com -xl5du.com -xl5dw.com -xl699.com -xlaaa.com -xlbsoft.com -xlcfcyy.com -xlcidc.com -xlctyd.com -xlcz.com -xlgao.com -xlgogo.com -xlgtx.com -xlgxapp.com -xlhb.com -xlhk.net -xlhs.com -xlhtcucc.com -xlinclass.com -xlisp.net -xljnjy.com -xljsci.com -xlkorganic.com -xlkty.com -xllxdg.com -xlobo.com -xlpai.com -xlpan.com -xlqzh.com -xlsemi.com -xlshou.com -xltrip.com -xltzgy.com -xlylf.com -xlyouxi.com -xlys1904.com -xlysauc.com -xlysoft.net -xlyzjs.com -xlzfpt.com -xlzhao.com -xlzx.com -xlzx123.com -xlzyyw.com -xm-ad.com -xm-ais.net -xm-chuang.com -xm-olympic-museum.org -xm211.com -xm680.com -xm6wpp.com -xm909.com -xm9m.com -xmadx.net -xmamiga.com -xmanblog.net -xmantou.com -xmbankonline.com -xmbhw.com -xmbike.com -xmcbzj.com -xmccb.com -xmcdn.com -xmchong.com -xmcimg.com -xmcp.ltd -xmcwh.com -xmcx.net -xmd5.com -xmeasygo.com -xmecard.com -xmeye.net -xmf.com -xmfc.com -xmferry.com -xmfish.com -xmfunny.com -xmgps.com -xmgsd.com -xmheigu.com -xmheitu.com -xmhitek.com -xmhouse.com -xmhuixin.com -xmigc.com -xmindchina.net -xminfoport.com -xmisp.com -xmitic.com -xmj.app -xmjgjy.com -xmjhome.com -xmjiaruan.com -xmjim.com -xmjslh.com -xmjyw.com -xmkanshu.com -xml-data.org -xml-journal.net -xmlhifi.com -xmlulub.com -xmlvbarcode.com -xmmade.com -xmmama.com -xmmodo.com -xmmtoys.com -xmnjdwx.com -xmnovel.com -xmonecode.com -xmos.tv -xmpaoyou.com -xmpcba.com -xmqianzun.com -xmr-zh.com -xmrbi.com -xms45.com -xmsec.cc -xmshqh.com -xmsixian.com -xmsme.com -xmsmjk.com -xmsoft.com -xmsoushu.com -xmspace.net -xmtbang.com -xmtyy.net -xmuli.tech -xmwan.com -xmwsrc.com -xmxdev.com -xmxgame.com -xmxwl.net -xmxwz.com -xmyeditor.com -xmylhy.com -xmzangao.com -xmzdls.com -xmzjjl.com -xmzmmr.com -xmzsyg.com -xmzylh.com -001daima.com -xn--2krw29cdqai43k.com -xn--4qr912ma.com -001.com -000vw.com -xn--7dvw26h.xn--ses554g -xn--7hv285el2dtof.com -xn--7qvz7xssa.com -000pc.net -xn--chq7lp8e46htw3g.com -xn--cjr369c422a.xn--ses554g -xn--dkr447bejn.com -xn--dkr447bejn.net -xn--e9qp53aepg.xn--ses554g -xn--ebr05n.com -000e.com -000dn.com -xn--fiq6q20pz51d.com -000714.xyz -xn--fiqv94di0c54ipe.net -0006266.com -xn--glr604k.com -xn--iiq222b6igvp5c.com -00058.com -xn--it-1r3f.com -xn--jvrr72kgma408a.com -xn--ntsp37j.net -xn--nyqx2gbsm8u0b.com -xn--pbt1sj69ag8b.com -xn--q20av2y36ac54a.com -xn--rss99n.com -xn--s4t325g.com -xn--tfr76a.xn--czr694b -xn--uisx71c0r1a.com -00042.com -xn--w9q84az17hvpi.xn--ses554g -xn--w9qr0k.com -xn--w9qy23cc6adz7d.net -xn--wlqw5ebvdhpi5hepihs3c.com -000.link -xn--xkrs9ba41r.com -xn--xxv969f.xn--ses554g -xn--y8jhmm6gn.moe -xn--ygtp21bwyedsq.com -xn--yhqq38bmov17mqxi.com -00.net -xn-ck.com -xn121.com -xn2017.com -xnaidog.com -xnara.org -xnb.me -xncoding.com -xndm.tech -xnh123.com -xnhdgame.com -xninja.org -xnjcw.com -xnjjob.com -xnlkj.com -xnnpc.com -xnongren.com -xnpic.com -xns315.com -xntt.com -xntv.tv -xnw.com -xnwan.com -xnyauto.com -xnye.net -xnzjxx.com -xnzn.net -xoao.com -xoliao.com -xooooa.com -xorpay.com -xoudou.com -xox8688.com -xox8995.com -xox9325.com -xoxknct.com -xoxv.net -xoxxoo.com -xoyo.com -xoyobox.com -xoyocdn.com -xoyq.net -xp5.com -xp6000.com -xp666.com -xp85.com -xp868.com -xp933.com -xp9365.com -xpaper.com -xpaper.net -xpaper.vip -xpccdn.com -xpcha.com -xpdf.net -xpgod.com -xpj0755.cc -xpj0791.cc -xplaymobile.com -xpn.cc -xpsheying.com -xpsy.net -xptt.com -xpu93.com -xpw888.com -xpyx.net -xq0356.com -xq5.com -xqb24.com -xqbase.com -xqblog.com -xqbxz.com -xqckg.com -xqfunds.com -xqipu.com -xqiushu.com -xqjmzc.com -xqjs.net -xqnmz.com -xqras.asia -xqsbw.com -xqship.com -xqtesting.com -xqyk024.com -xqymuy.com -xqypay.com -xrcch.com -xrccp.com -xredu.com -xrender.com -xrichengapp.com -xrkapp.com -xrkcdn.com -xrkmonitor.com -xrso.com -xrunda.com -xrvm.com -xrwcn.com -xrwf66.com -xrxr.xyz -xrzww.com -xs-servers.com -xs.la -xs123.net -xs123.org -xs163.net -xs2500.com -xs3cnc.com -xs52.com -xs7.cc -xs7.com -xs7.la -xs74.com -xs91.net -xs920.com -xsa239.com -xsb120.com -xsbiquge.com -xsbja.com -xscbs.com -xschu.com -xsdma.com -xsdwk.com -xsee.cc -xsesc.com -xsfaya.com -xsfc.com -xshell.net -xshellcn.com -xshengyan.com -xshenshu.com -xshkvip.com -xshrcw.com -xshulin.com -xshuma.com -xshuoba.com -xsina.net -xsjedu.org -xsjs-cifs.com -xsjtxt.com -xsjwyx.com -xskhome.com -xslb.me -xsm818.com -xsmaofa.com -xsmore.com -xsmy54s.com -xsnsyh.com -xsool.com -xsp0311.com -xspcf.com -xsrtvu.com -xsshuku.com -xsslyjt.com -xsstomy.com -xssz.net -xsteach.com -xsthmy.com -xsti.net -xstqj.com -xstx.info -xsu.cc -xswdcasting.com -xsy.science -xsycps.com -xsyk021.com -xsyqmztg.com -xsyx.xyz -xsyxsc.com -xszp.cc -xszrcw.com -xszww.com -xt-kp.com -xt-tattoo.com -xt12333.com -xt70.com -xt918.com -xtao.me -xtbank.com -xtc-edu.com -xtcaq.com -xtcrm.com -xtdpye.com -xtedu.com -xthinking.net -xtibet.com -xtjc.com -xtjky.com -xtjxsb.com -xtlog.com -xtmtrj.com -xtongs.com -xtrc.net -xttblog.com -xttz.com -xtu2.com -xtuan.com -xtuos.com -xtutoring.com -xtxcm.com -xu1s.com -xuanad.com -xuanba.com -xuanbar.com -xuancaizi.com -xuanceo.com -xuancheng.org -xuanchuanyi.com -xuandan.com -xuande99.com -xuandecarpet.com -xuanfengge.com -xuanfengkeji.com -xuanhaikuwan.com -xuanhuafb.com -xuanhuange.com -xuanhuange.net -xuanjutong.com -xuanke.com -xuanlishi.com -xuanma.com -xuannaer.com -xuanqii.com -xuanquge.com -xuanqun.com -xuanruanjian.com -xuanshu.com -xuantaikeji.com -xuanwonainiu.com -xuanwu88.com -xuanwumobile.com -xuanwww.com -xuanxiaozhuanjia.com -xuanxuan.com -xuanxuangame.com -xuanxuantemai.com -xuanxue.com -xuanyangxl.com -xuanyouwang.com -xuanyuanhuangdi.org -xuanyusong.com -xuanzhuanmumatuwen.com -xubei.com -xuchuang.com -xudan123.com -xudankeji.com -xudongfood.com -xudoodoo.com -xuduan.vip -xue163.net -xue51.com -xue63.com -xueanquan.com -xueba100.com -xuebalib.com -xuebingsi.com -xuecaijie.com -xuecan.net -xuechebu.com -xuechela.com -xueda.com -xuedi.com -xuedong97.com -xueepay.com -xueersen.com -xueersi.com -xueersibook.com -xueerxing.com -xuefenxi.com -xuefo.net -xuegaogame.com -xuegeshui.com -xuegongkong.com -xueguoedu.net -xuehai.net -xuehaibjb.com -xuehaiwu.com -xuehuacdn.com -xuehuahua.cc -xuehuahua.net -xuehui.com -xuehuile.com -xuehuiwang.com -xueit.com -xuejiqiao.com -xuekanba.com -xuekeedu.com -xuekuaiji.com -xuekubao.com -xuekuibang.shop -xuelecn.com -xueleku.com -xuelema.com -xueleyun.com -xueli9.com -xuemh.com -xueming.li -xuenb.com -xuepaijie.com -xueqiu.com -xueqiu360.com -xuermh.com -xuesax.com -xueseo.com -xueshanlinghu.com -xueshen.net -xueshiyun.com -xueshu.com -xueshu5.com -xueshuda.com -xueshujia.com -xuetangonline.com -xuetangx.com -xuetangzaixian.com -xuetengedu.com -xueti.com -xuetimes.com -xuetu.net -xuetuwuyou.com -xueui.com -xuewangshang.com -xuewangzhan.com -xuewangzhan.net -xuewei360.com -xuexb.com -xuexi.la -xuexi365.com -xuexi365.net -xuexi637.com -xuexiaodaquan.com -xuexiaozhaopin.com -xuexibao.com -xuexicha.com -xuexigang.com -xuexila.com -xuexili.com -xuexin365.com -xuexiniu.com -xuexitong.com -xuexiwa.com -xueyanshe.com -xueyiyun.com -xueyou.org -xueyuanjun.com -xuezhouyi.com -xuezishi.net -xuezizhai.com -xugaoyang.com -xugucn.com -xuhai.press -xuheen.com -xuhehuan.com -xujianhua.com -xujingkj.com -xujun.org -xuka.com -xulaoshi68.com -xuld.net -xuliangwei.com -xuliehao.info -xulihang.me -xulizui6.com -xulv.net -xumenger.com -xumingxiang.com -xumurc.com -xun1688.com -xunbao178.com -xunbaozhifu.com -xunbibao.com -xunbin.com -xunbuy.com -xunchabing.com -xundayun.com -xundns.com -xundns.net -xundupdf.com -xunerjie.com -xunfang.com -xunfeivr.com -xunfeixxj.com -xungou.com -xunguanggame.com -xunhuoyi.com -xunhupay.com -xunicard.com -xunihao.net -xunjiecad.com -xunjiepdf.com -xunjieshipin.com -xunjietupian.com -xunkids.com -xunkoo.com -xunlei.com -xunlei.net -xunleigang.com -xunleige.com -xunleige520.com -xunleiyy.com -xunlew.com -xunliandata.com -xunlong.net -xunlong.tv -xunlonghe.net -xunlongsoft.com -xunlugame.com -xunmei.net -xunmeinet.com -xunmiweb.com -xunmzone.com -xunrenzhaoren.com -xunruicms.com -xunsearch.com -xunshou.com -xunsl.com -xunsns.com -xuntongwuxian.com -xuntou.com -xuntuoguan.com -xunurl.com -xunwan.com -xunwei.org -xunwei.tm -xunxi.com -xunxiang.site -xunxu.com -xunyangzaixian.com -xunyixia.com -xunyou.com -xunyou.mobi -xunyun.com -xunzai.com -xunzhuang.net -xuooo.com -xupea.com -xupu.name -xupu120.com -xuqyfw.com -xurong.xyz -xuruowei.com -xusseo.com -xuwenliang.com -xuxian.com -xuxian.me -xuxueli.com -xuxusheng.com -xuyi.net -xuyilx.com -xuyimin.club -xuyuanyi.com -xuyueswkj.com -xuzhi.net -xuzhoujob.com -xvista.com -xvv.cc -xw1806.com -xw360.com -xwadv.com -xwan.com -xwb8.com -xwbank.com -xwcool.com -xwcxgroup.com -xwdsp.com -xweb.vip -xwei.tv -xwhb.com -xwhodesign.com -xwin77.com -xwjqr.com -xwjr.com -xwjy.org -xwkjcms.com -xwko.com -xwlunwen.com -xwlxw.com -xwood.net -xwtex.com -xwuad.com -xwxguan.com -xwyun.net -xwz999.com -xwzc.net -xwzxjy.com -xx-motor.com -xx007.com -xx14a.com -xx4a.com -xx5.com -xx667788xx.com -xxadc.com -xxbiquge.com -xxbmm.com -xxbt.com -xxcang.com -xxccx.com -xxcig.com -xxcmw.com -xxdao.com -xxdlwx.com -xxfzl.com -xxgd888.com -xxggg.net -xxghh.biz -xxgj47.com -xxgzmlt.com -xxhd-tech.com -xxhh.com -xxhkt.com -xxingclub.com -xxjcy.com -xxjdns.com -xxjrjxc.com -xxjrqc.com -xxka.com -xxko.net -xxkucun.com -xxlcn.com -xxliudsp.com -xxlwin.com -xxmac.com -xxmanhua.info -xxminizu.com -xxnets.net -xxoojoke.com -xxorg.com -xxpie.com -xxpkg.com -xxptcs.com -xxqipai.com -xxqun.com -xxrou.net -xxs8.com -xxsb.com -xxsdfjx.com -xxshu.com -xxskins.com -xxsy.net -xxtaotao.com -xxtiao.com -xxtmail.com -xxtswzedu.com -xxue100.com -xxwolo.com -xxx6686.app -xxxbiquge.com -xxxcsf.com -xxxfeng.com -xxxmeng.com -xxxxxbbs.com -xxxzzlm.org -xxycw.com -xxyfgy.com -xxyhzd.com -xxyo.com -xxyw.com -xxyy.co -xxzfgjj.com -xxzhushou.com -xxzsgame.com -xy-365.com -xy-asia.com -xy.com -xy1212.com -xy1758.com -xy178.com -xy1989.com -xy2401.com -xy3000.com -xy58.net -xy599.com -xy78.com -xy980.net -xyb100.com -xyb2b.com -xybsyw.com -xybygw.com -xycaogen.com -xycareer.com -xycdn.com -xycdn.net -xycloud.com -xyclouds.com -xycwei.com -xyczero.com -xyd686.com -xydcname.com -xydcname.net -xydhl.com -xydxcloud.com -xyfc.com -xyfcw.com -xyffsb.com -xyffvip.com -xyfw.org -xygmed.com -xyh001.com -xyh2021.com -xyhc.com -xyhis.com -xyhlcd.com -xyhospital.com -xyhqsh.com -xyhtml5.com -xyimg.net -xyinzhe.com -xyj.link -xyj321.com -xyjpzz.com -xykmovie.com -xylh888.com -xylink.com -xylmf.com -xymcp3.com -xymfqb.com -xymlcs.com -xymvip.com -xynbnb.com -xyniubi.com -xynsh.com -xyookj.com -xyous.com -xyppzx.com -xyqb.com -xyqczy.com -xyrbszb.com -xyrtv.com -xysb.com -xysstgs.com -xystatic.com -xystoy.com -xysy.com -xytjcpj.com -xytzg.com -xytzjt.com -xyunqi.com -xyvcard.com -xyvend.com -xyvending.com -xyw.com -xywlapi.cc -xywm.ltd -xywooden.com -xywy.com -xywyfw.com -xywzs.com -xyx234.com -xyxcables.com -xyxdie.com -xyxl.net -xyxsc.com -xyxsns.com -xyxy.com -xyxy.net -xyxy01.com -xyy001.com -xyyh.xyz -xyyksy.com -xyyuedu.com -xyyx82.com -xyz-jm.com -xyz1001.xyz -xyz1412.net -xyz83.com -xyzcdn.net -xyzcn.com -xyzdict.com -xyzfm.link -xyzggg.com -xyzkj.xyz -xyzmdzs.com -xyzop.com -xyzs.com -xyzsq.com -xyzvo.com -xyzywl.com -xz-juming.com -xz.com -xz577.com -xz6.com -xz6699.com -xz7.com -xzapi56.com -xzbahd.com -xzcblog.com -xzcdc.com -xzddx.com -xzfile.com -xzggjyzpw.com -xzgjj.com -xzhengyida.com -xzhichang.com -xzhizao.com -xzhzkd.com -xzji.com -xzjxtsg.com -xzkd.com -xzking.com -xzlogo.com -xzlres.com -xzltzc.com -xzm56.com -xzn56.com -xzoo.org -xzper.com -xzpoll.com -xzrdwq.com -xzsec.com -xzsnw.com -xzstatic.com -xzsthj.com -xztzb.com -xzw.com -xzx.com -xzxw.com -xzyhealth.com -xzzp.net -xzzulin.com -y-os.net -y.to -y007.com -y1995.com -y2002.com -y5663.com -y5kfpt.com -y6162.com -y7q8.com -y80s.com -y999.com -y9photo.com -ya-bo888.com -ya17.com -ya247.com -yaahe.com -yabo.com -yabokzl.com -yabolive.com -yac8.com -yac8.net -yadashi.com -yadingtour.com -yaduo.com -yaeherhealth.com -yaersen.com -yafco.com -yafdev.com -yafeilinux.com -yageo.tech -yago-mall.com -yahacode.com -yahaha.net -yahaizi.com -yahoo001.com -yahotab.com -yahuhost.com -yahui.cc -yahui.hk -yahuishou.com -yaitest.com -yaiyuan.com -yajuke.com -yajxc.com -yakool.com -yakshacc.cool -yalayi.net -yalewoo.com -yalishiyanji.com -yalixinli.com -yalongsi.com -yalqq8976.com -yamadesignlab.com -yameijie.com -yameisj.com -yamibo.com -yanbinghu.com -yanbm.com -yanboyuan.com -yanchebang.com -yanchengzx.com -yanchupiaowu.com -yandianying.com -yandui.com -yanedu.com -yanfen.online -yangbing.club -yangchenglianhe.com -yangchunjian.com -yangcong.com -yangcong345.com -yangcongchufang.com -yangdongjia.com -yangerxiao.com -yangfannie.com -yangguanjun.com -yangguiweihuo.com -yanghui.com -yangjiaofood.com -yangjie.li -yangjisen.com -yangkatie.com -yangkeduo.com -yangki.net -yangkun.net -yanglajiao.com -yanglaocn.com -yanglaofuwu365.com -yanglaozhan.org -yanglee.com -yangli.com -yanglong.pro -yangluojob.com -yangmao.info -yangmaohao.net -yangner.com -yangpanzg.com -yangqianguan.com -yangqimanhua.com -yangqq.com -yangqu.com -yangsam.com -yangshengliang.com -yangtaiapp.com -yangtengfei.com -yangtianb.com -yangtse.com -yangtze-volga.org -yangwang.pw -yangwangauto.com -yangwc.com -yangxiang.com -yangxiangming.com -yangxikun.com -yangxingzhen.com -yangyangad.com -yangyangla.com -yangyanxing.com -yangyi.vip -yangyi02.com -yangyi08.com -yangyi19.com -yangyingming.com -yangyongquan.com -yangyq.net -yangzhe1991.org -yangzhiping.com -yangzhix.com -yangzhongchao.com -yangzijiang.com -yangzw.vip -yanhaijing.com -yanjiangwang.com -yanjiao.com -yanjiao.net -yanjiaoapp.com -yanjiaoweixin.com -yanjinews.com -yanjingge.com -yanjiubaogao.com -yanjiyou.net -yanjun7858.com -yanjunbo.com -yankanshu.net -yankay.com -yanliu.org -yanlutong.com -yannaisi.com -yannv.com -yanoda.com -yanpengjk.com -yanpk.com -yanpwy.com -yanqiao.com -yanqingzhan.net -yansedaquan.com -yanshihua.com -yanshishuo.com -yanshuangyingx.com -yantai-chuanpiao.com -yantaibank.net -yantaimarket.com -yantaitech.com -yantubao.com -yantuchina.com -yanue.net -yanworen.com -yanxian.org -yanxintong.com -yanxishe.com -yanxiu.com -yanxuezhang.net -yanxurui.cc -yanyapeng.com -yanyib2b.com -yanyijiameng.com -yanyijingling.com -yanyiwu.com -yanzhiwu.com -yao.com -yao123.com -yao51.com -yaobo.net -yaoburang.com -yaochufa.com -yaocsoft.com -yaodou.net -yaofangwang.com -yaofangwang.net -yaofx.net -yaoge123.com -yaoguo.com -yaohaixiao.com -yaohuiji.com -yaohuo.me -yaojibuyu.com -yaojidsfee.com -yaojiedianzi.com -yaojigames.com -yaojingtang.com -yaokaihui.com -yaolaifen.com -yaolan.com -yaoliwang.com -yaomaiche.com -yaoman.net -yaonano.com -yaooxx.space -yaopaiming.com -yaopinnet.com -yaoqingwo.com -yaosai.com -yaotia.com -yaowan.com -yaoyedan.net -yaoying.vip -yaoyl.com -yaoyouke.com -yaozh.com -yaozhixiang.com -yaozhizhu.com -yaozs.com -yaozui.com -yaqurc.com -yareiot.com -yaristyle.com -yarnn.com -yasishuo.com -yasiyasi.com -yasking.org -yasn.com -yasuotu.com -yatiku.com -yatiwang.com -yatsenglobal.com -yatsoft.com -yaucxrt.com -yauuy.com -yawancaiwu.com -yaxi.net -yaxige.com -yaxinde.com -yaxuntuhang.com -yaya.love -yayigou.net -yayihouse.com -yaypool.com -yayu.org -yayunjiqi.com -yazhifan.com -yazhougoufang.com -yazibt.com -yazjy.com -yazuo.com -yb1518.com -yb1867.com -yb3.cc -yb983.com -yba120.com -ybaby.com -ybao.org -ybaobx.com -ybask.com -ybbdzp.com -ybbgd.com -ybbxkj.com -ybccb.com -ybccode.com -ybe.net -ybhdmob.com -ybi.net -ybin.cc -ybirds.com -ybj.com -ybjasb.com -ybjk.com -yblp.com -ybm100.com -ybren.com -ybs120.com -ybscjp.com -ybtong.com -ybtvyun.com -ybvip.com -ybvv.com -ybword.com -ybxww.com -ybyxw.com -ybzhao.com -ybzkb.com -yc123.com -yc12313.com -yc2e.com -yc370.com -yc38.com -yc999vip.com -ycandyz.com -ycb.com -ycbright.com -yccdn.com -ycdongxu.com -ycdywl.com -yceshop.com -ycgame.com -ycgj.cc -ycgjj.net -ycgslb.com -ychromedgeie.com -ychxie.com -ychxiex.com -ycig.com -ycigilink.com -yciyun.com -ycjt2007.com -ycjyjt.com -yckceo.com -ycku.com -yclh6.com -ycloud.online -ycloudvip.com -yclunwen.com -ycmbcd.com -ycool.com -ycpack.net -ycpai.com -ycpsy.com -ycrh-tattoo.com -ycrh.com -ycrusher.com -ycrx360.com -ycs120.com -ycsd.work -ycsrc.com -ycsystem.com -yct-tec.com -ycty.org -ycwalker.com -ycwb.com -ycwhys.com -ycxfgroup.com -ycxjtd.com -ycyjkj.com -ycym.com -ycypin.com -ycyui.com -yczbw.com -yczihua.com -yczxyy.com -ydamc.com -ydbimg.com -ydc360.com -yddxkj.com -ydh.fun -ydimmi.com -ydjdcjc.com -ydjia.com -ydjt1166.com -ydkj2019.com -ydl.com -ydlcdn.com -ydmel.com -ydmeng.com -ydmob.com -ydn5.com -ydnewmedia.com -ydr.me -ydsaso.com -ydsjjs.com -ydstatic.com -ydsy.org -ydtad.com -ydtbl.com -ydtnotary.com -ydtongcheng.com -ydtykj.net -ydu6.com -yduav.com -ydwhgs.com -ydx2.com -ydxxt.com -ydyeducation.com -ydys1688.com -ydyspc.com -ydyy120.com -ye1992.com -ye3.com -ye40.com -yea.im -yeah.net -yeahexp.com -yeahka.com -yeahworld.com -yeai.com -yealink.com -yealinkvc.com -yeambin.com -yeaosound.com -yeapcloud.com -yeapcloud.net -yearnfar.com -yeastar.com -yebaike.com -yebangyu.org -yebaojiasu.com -yeboyzq.com -yecdn.com -yedingding.com -yeduxiaoshuo.com -yee5.com -yeeaoo.com -yeecai.com -yeecall.com -yeecin.com -yeecloud.com -yeedian365.com -yeefeitrip.com -yeefire.com -yeefx.net -yeekit.com -yeelight.com -yeelink.net -yeelogo.com -yeemiao.com -yeemiao.net -yeepay.com -yeepaycdn.com -yeepiao.com -yeetan.com -yeeuu.com -yeeyan.com -yeezon.com -yegame.com -yegenyou.com -yegoo.com -yehetang.cc -yeidc.com -yeidc.net -yejienet.com -yejing.biz -yejuu.com -yelanxiaoyu.com -yelinmall.com -yelishi.net -yelixiali.com -yellowjm.com -yelook.com -yemablog.com -yemacaijing.com -yemaili.com -yemancomic.com -yemaosheji.com -yemaosoft.com -yemayun.com -yemeihuoguo.com -yemet.com -yeolar.com -yeoner.com -yeree.com -yergoo.com -yes-chinese.com -yes515.com -yes58.net -yes88.com -yesacc.com -yesaha.com -yesanpole.com -yesapi.net -yesbt.cc -yesclouds.com -yesense.com -yeshen.com -yeshengarts.com -yeshj.com -yeshu.com -yesidos.com -yeskn.com -yesky.com -yeslib.com -yeslicake.com -yesmryang.net -yesmyimg.com -yesmywine.com -yesoulchina.com -yespearl.com -yestar.com -yestar1992.com -yestarcorp.com -yestarm.com -yestarvip.com -yeston.net -yestone.com -yesudoo.com -yesuse.net -yeswan.com -yesxun.com -yetianzi.com -yetingjk.com -yettos.com -yewen.us -yewuyuan.com -yexinggroup.com -yeyaji9.com -yeyday.com -yeyeriav.com -yeyexx.com -yeyexx8.com -yeyezhenxuan.com -yeyimg.com -yeyo.cc -yeyou.com -yeyoucdn.com -yeyoujia.com -yeyulingfeng.com -yeyun.com -yezhuwq.com -yezhuwuyou.com -yeziapp.com -yeziting.com -yezixigame.com -yezixueyuan.com -yfbudong.com -yfbzb.com -yfcache.com -yfcalc.com -yfcdn.net -yfcloud.com -yfdc.net -yfdns.net -yfdts.net -yfdurl.com -yfdxs.com -yfdyf.com -yffe.com -yfgj68.com -yfhl.net -yfhxtech.com -yfiot.com -yfjiakao.com -yfklxz.com -yfldocker.com -yfmhw.com -yfp2p.net -yfpayment.com -yfscdn.com -yfscdn.net -yfservice.com -yftxt.com -yfvb.com -yfway.com -yfwnm.com -yfwpt.vip -yfycrc.com -yfycyboil.com -yfzgzz.com -yg-dk.com -yg1997.com -ygc711iq.com -ygct.com -ygdns.com -ygdy8.net -yge.me -ygei.com -yget.me -yghsh.com -ygibao.com -yginsight.com -ygjj.com -ygo.wiki -ygread.com -ygsdmedia.com -ygsoft.com -ygtcpa.com -ygwenxue.com -ygwh.cc -ygym.org -ygzt.net -yh31.com -yh596.com -yh598.com -yh99.cc -yhachina.com -yhbimg.com -yhcko.com -yhcmovie.com -yhcqw.com -yhd.com -yhdfa.com -yhdm07.com -yhdm16.com -yhdm5.com -yhdns.net -yhdtns.com -yhees.com -yhgfb-cn-static.com -yhgo8.com -yhhh8888.com -yhidc.com -yhindustrial.com -yhj2000.com -yhj9.com -yhjbox.com -yhkgas.com -yhkingdee.com -yhm11.com -yhouse.com -yhq368.com -yhqapp.com -yhqdashi.com -yhquan365.com -yhqurl.com -yhrcb.com -yhres.com -yhshapp.com -yhsms.com -yhspy.com -yht7.com -yhtools.cc -yhtx.tv -yhurl.com -yhwomen.com -yhx3318.com -yhxuexiao.com -yhy50.com -yhyf.cc -yhz2000.com -yhz365.com -yhz66.com -yhzky.net -yhzky1.net -yhzm.cc -yhzm.com -yhzuche.com -yi-jy.com -yi-you.org -yi-yun-tong.com -yi114.com -yi6.com -yi7.com -yi958.com -yiaini.com -yiapp.com -yibaixun.com -yiban.io -yiban1314.com -yibaogao.com -yibei.com -yibeianyuming.com -yibenmanhua.com -yibite.com -yicai.com -yicaitangwangzhuan.com -yicamp.com -yichadan.com -yichangly.com -yiche.com -yichemall.com -yichengji.com -yichengjiajupt.com -yichesafe.com -yichuyifan.com -yiclear.com -yicongfound.org -yicuba.com -yicx.com -yidaba.com -yidai.com -yidaomobi.com -yidaservice.com -yideamobile.com -yidejia.com -yidejr.net -yidengxuetang.com -yidian360.com -yidianchina.com -yidianer.com -yidianfenqi.com -yidianhulian.com -yidianling.com -yidiansz.com -yidianting.xin -yidianzixun.com -yidianzx.com -yidmall.com -yidong-food.com -yidonghua.com -yidonglin.com -yidongtimes.com -yidoutang.com -yidu.cc -yidui.me -yidumen.com -yidun.com -yiehua.net -yiernews.com -yifabao.com -yifake.com -yifanghy.com -yifanmedia.net -yifanshangplus.com -yifansuo.com -yifatong.com -yifei.com -yifei.space -yifen.com -yifeng-mover.com -yifeng.com -yifenghudong.com -yifengke.com -yifengx.com -yifengxin.org -yifone.com -yifont.com -yifu.net -yifubao.com -yifucj.com -yifuhe.com -yifutangvip.net -yifutu.com -yigao.com -yigaosu.com -yige.org -yigecun.com -yigerlife.com -yigood.net -yigoonet.com -yigouu.com -yiguo.com -yiguoimg.com -yigxz.com -yihafo.com -yihaikerry.net -yihao.com -yihao01.com -yihaodian.com -yihaodianimg.com -yihaoduozhongduan.com -yihaohuoche.com -yihaojiaju.com -yihaomen.com -yihchina.com -yihecloud.com -yihedoors.com -yihong001.com -yihongzhihui.com -yihshou.com -yihu.com -yihuacomputer.com -yihuichuang.com -yihuikeji.vip -yihuimg.com -yihun.com -yiibai.com -yiibook.com -yiichina.com -yiigle.com -yiihuu.com -yiii.net -yijia-ai.com -yijia.com -yijia.ink -yijiaer.com -yijian119.com -yijianjiaoyu.com -yijianjiexi.com -yijianzj.com -yijiebuyi.com -yijiedai.com -yijiexiaomin.com -yijingji.com -yijintong.net -yijirecovery.com -yijiupi.com -yijiuplus.com -yijueweb.com -yikang1977.com -yikaochacha.com -yikaow.com -yikedou.com -yikehome.com -yiketalks.com -yiketianqi.com -yikeweiqi.com -yikexue.com -yikeyz.com -yikuaide.com -yikuaiqu.com -yikuns.com -yilantop.com -yilanvaas.com -yile8.com -yilewan.com -yileweb.com -yileyiqi.com -yileyoo.com -yileyunssp.com -yili.com -yilianmeiti.com -yilianyixue.com -yilibabyclub.com -yilihuo.com -yiliit.com -yilijet.com -yilingshop.com -yilinguoji.com -yilinweb.com -yillionbank.com -yilong.com -yilongnews.com -yilongtv.com -yilule.com -yilumh.com -yiluzouhao.com -yilvcheng.com -yimaoip.com -yimashijie.com -yimeima.com -yimeizhibo.com -yimenapp.com -yimeng.com -yimengmusic.com -yimenonline.com -yimenseo.net -yimenyun.net -yimian.xyz -yimianmian.com -yimiaozhongdemeng.com -yimidida.com -yimihaodi.com -yimin.biz -yimin168.com -yiminchaoshi.com -yimingkeji.net -yimingzhi.net -yimininfo.com -yiminjiayuan.com -yiminw.com -yimisoft.com -yimitongxue.com -yimiyisu.com -yimizhibo.tv -yimutian.com -yimuymc.com -yinar.com -yinbaitu.com -yinbangbroker.com -yinbin.ink -yinchenglawyer.com -yinchengpai.com -yinchuanzxd.com -yindon.com -yindou.com -yindudigital.com -yindui.net -yinduzx.com -yineitong.com -yinfeiy.com -ying-ji.com -yingbei365.com -yingbio.com -yingbishufa.com -yingcankeji.com -yingchaozhibo.com -yingchengnet.com -yingchuang.com -yingchulawyer.com -yingci86.com -yingdev.com -yinge.cc -yinge.tech -yingfeiyun.com -yingfeng.me -yinghaicar.com -yinghecloud.com -yingheying.com -yinghezhong.com -yinghualiu.com -yinghuaonline.com -yinghub.com -yingjia360.com -yingjianzhijia.com -yingjiesheng.com -yingjiesheng.net -yingjimall.com -yingk.com -yingkelawyer.com -yingle.com -yinglunka.com -yingmei.me -yingmi.com -yingming.net -yingpaigame.com -yingshe.com -yingsheng.com -yingshevip.com -yingshiyou.com -yingsoo.com -yingsun.net -yingsx.com -yingtai.com -yingtaoai.com -yingtaosiyue.com -yingtaoyun.com -yinguobing.com -yingwangtech.net -yingwenming.com -yingworks.com -yingwuyuzd.cc -yingxiahome.com -yingxiaoo.com -yingxiong.com -yingyang630.com -yingyinglicai.com -yingyongge.com -yingyonghao8.com -yingyonghui.com -yingyongmiao.com -yingyu.com -yingyuchat.com -yingyurumen.com -yingyushijie.com -yingyuweb.com -yingzaocms.com -yingzheng.com -yingzhongshare.com -yingzt.com -yinhai.com -yinhang123.net -yinhangchaxun.com -yinhanghanghao.com -yinhangkadata.com -yinhangkahao.com -yinhangkaoshi.net -yinhanglilv.net -yinhangzhaopin.com -yinhe.com -yinhengli.com -yinher.com -yinheyuedu.com -yinhu.com -yini.org -yinjiaji.com -yinjietd.com -yinka.co -yinker.com -yinmishu.com -yinpiao.com -yinsha.com -yinshua.cc -yinshuiyu.com -yintai.com -yintechi.com -yinuoedu.net -yinxi.net -yinxiang.com -yinxianggame.com -yinxiangma.com -yinxiangqingyang.com -yinxiao.com -yinxiaobao.net -yinxinbh.com -yinxing.com -yinxunbiao.com -yinyue7.com -yinyuegf.com -yinyuemeitu.com -yinyuetai.com -yinyueyouxi.com -yinzhaowang.com -yinzhijie.com -yinzhizhu.com -yinzifang.com -yinzuo100.com -yinzuojianshen.com -yioho.com -yioulai.com -yiovo.com -yipaogan.com -yiparts.com -yipemail.com -yipeng888.com -yipihuo.com -yipingmi.vip -yipinhr.com -yipinread.com -yipinsucai.com -yipintemian.com -yipuping.com -yiq.com -yiqi.com -yiqianbao.com -yiqianlian.com -yiqiao88.com -yiqibazi.com -yiqibing.com -yiqibuduoduo.com -yiqicesuan.com -yiqifa.com -yiqifa.org -yiqifengtian.com -yiqihao.com -yiqijian.com -yiqijixiang.com -yiqikan123.xyz -yiqikan8.com -yiqimaila.com -yiqiming88.com -yiqioffice.com -yiqishai.com -yiqishanyuan.com -yiqiso.com -yiqisoo.com -yiqisooimg.com -yiqisou.net -yiqistore.com -yiqitp.com -yiqiu.org -yiqiuu.com -yiqiv.com -yiqixie.com -yiqixiegushi.com -yiqiyou.com -yiquanhs.com -yiquanseo.com -yiquhai.com -yiqujing.com -yiquxapp.com -yiren001.com -yirendai.com -yirentong.com -yirenzhushou.com -yirenzuji.com -yirimao.com -yirlir.com -yiruan.la -yiruantong.com -yiruide.com -yiruikecorp.com -yiruituo.com -yisa.com -yisanban.com -yisanwu.com -yisell.com -yishalai.com -yishengfanyi.com -yishihui.com -yishion.com -yishion.net -yishixue.com -yishouapp.com -yishu.com -yishu168.com -yishujie.com -yishuliuxue.com -yishunft.com -yishuzhifa.com -yishuzi.com -yishuzi.org -yishuziti.com -yisier.com -yisocms.com -yisojuan.com -yisou.com -yisouti.com -yisouyifa.com -yisu.com -yisusoft.com -yit.com -yitaifang.com -yitanyun.com -yitaojiayuan.com -yitel.com -yitesoft.com -yitianshidai.com -yitianxinda.com -yiticm.com -yitongjiayou.com -yitongmedia.com -yituliu.site -yitutech.com -yituyu.com -yiuios.com -yiupin.com -yiuxiu.com -yivian.com -yivicar.com -yivizd.com -yiwaiart.com -yiwan.com -yiwangdujin.com -yiwanggo.net -yiwangtui.com -yiwanzhushou.com -yiwealth.com -yiweb.com -yiweilaogumin.com -yiwenyida.com -yiworld.com -yiwubuy.com -yiwufair.com -yiwugo.com -yiwugou.com -yiwuku.com -yiwusuppliers.com -yiwutalk.com -yixao.com -yixao.net -yixi.tv -yixia.com -yixiangzuji.com -yixiaozu.com -yixie8.com -yixiekeji.com -yixieshi.com -yixiin.com -yixin.com -yixin.im -yixin5.com -yixincao.com -yixincapital.com -yixine.com -yixinfinance.com -yixinfund.com -yixinli.xin -yixintui.com -yixinu.com -yixiubx.com -yixiuxueyuan.com -yixuan.net -yixue68.com -yixue99.com -yixuebiancheng.com -yixueks.com -yixuelunwen.com -yixuexianzhi.com -yixuezp.com -yixui.com -yixun.com -yiya520.com -yiyaha.com -yiyakq.com -yiyanche.com -yiyangidc.com -yiyaohang.com -yiyaojd.com -yiyaojie.com -yiybb.com -yiye.ai -yiyebang.com -yiyefei.com -yiyesheng.net -yiyiarts.net -yiyifoods.com -yiyihd.com -yiyimh.com -yiyisoft.com -yiyitech.com -yiyiwawa.com -yiyongcad.com -yiyou.org -yiyouliao.com -yiyoupay.net -yiyouqi.com -yiyu.com -yiyuanqiang.net -yiyuansoft.com -yiyuanyi.org -yiyuetop.com -yiyum.com -yiyurumen.com -yizenb.com -yizhanok.com -yizhanzx.com -yizhema.com -yizhengwx.com -yizhibi.com -yizhibo.com -yizhidayu.com -yizhifubj.com -yizhikan.com -yizhitou.com -yizhiwechat.com -yizhixiaogame.com -yizidy.com -yizimg.com -yizlife.com -yizu.org -yizuocity.com -yizuxing.com -yj-bank.com -yj-fun.com -yj.ink -yj1211.work -yj3g.com -yjai.art -yjbys.com -yjcf360.com -yjcp.com -yjctrip.com -yjdatasos.com -yjfs8.com -yjhyjl.com -yjihua.com -yjiyun.com -yjk.com -yjk.im -yjldp.com -yjlin4.com -yjlink.cc -yjllq.com -yjopen.com -yjpal.com -yjq.cc -yjrcyw.com -yjro.com -yjrxcw.com -yjrzj.com -yjs-cdn.com -yjs-cdn10.com -yjs111.com -yjscloud.com -yjvps.com -yjwlo.com -yjwujian.com -yjxsoft.com -yjz9.com -yjzb.app -yjzb.tv -yk211.com -ykccn.com -ykcer.com -ykchicheng.com -ykclass.com -ykdgd.com -ykdmsy.com -ykedu.net -ykimg.com -ykinvestment.com -ykplg.com -ykq.ink -ykqnl.com -ykread.com -yksdks.com -yksq.net -ykstarshine.com -yksuit.com -ykt.io -yktchina.com -yktworld.com -yktz.net -ykyao.com -ykzq.com -ykzr.com -yl.vip -yl1001.com -yladm.com -ylallinone.com -ylcs.cc -yle888.vip -ylfx.com -ylghsj.com -ylgj.com -ylhaitao.com -ylhh.net -ylhsrsrc.com -ylike.net -yliyun.com -ylizu.com -yljc888.com -yljjj.com -yljr.com -ylkjgame.com -ylmf.cc -ylmf.com -ylmf.net -ylmf888.com -ylmfeng.com -ylmfwin100.net -ylnetworks.com -yloo.org -ylq.com -ylrb.com -ylrj.com -ylstatic.com -yltpcb.com -yluu.com -ylwl.cc -ylws.net -ylwyw.com -ylxdtww.com -ylxw.net -ylyk.com -ylzbtech.com -ylzms.com -ylzpay.com -ym-trans.com -ym.run -ym01.tech -ym1998.com -ym23.com -ym68.cc -ym75168.com -ymadly.com -ymailcampaign.com -ymall.com -ymanz.com -ymapp.com -ymark.cc -ymars.com -ymatou.com -ymatou.hk -ymbaidu.com -ymbank.com -ymbq301.com -ymcall.com -ymcart.com -ymd520.net -ymd88.com -ymexf.com -ymfile.com -ymgmno.com -ymhudong.com -ymiot.net -ymkuzhan.com -ymlfxp.com -ymlinks.com -ymm56.com -ymmfa.com -ymmzb.com -ymoxuan.com -ympcb.com -ymq.com -ymraaa.com -ymrcw.vip -yms.cool -ymsteam.com -ymt.com -ymt360.com -ymtc.com -ymtmt.com -ymtnet.com -ymuuy.com -ymvkt.com -ymxinke.com -ymxinxi.com -ymxxs.com -ymyun.com -ymyxzz.com -ymzer.com -yn-tobacco.com -yn12396.com -yn58.com -ynairport.com -ynb2dca.com -ynbit.com -ynbojie.com -yncix.com -yncuc.net -yncunguan.com -yndaily.com -yndkt.com -yneg-ev.com -yneit.com -ynet.com -ynfabu.com -ynfxw.com -yngd016.com -ynggzy.com -yngp.com -ynguangsui.com -yngw518.com -yngwyw.org -ynhanfu.com -ynhl.net -ynho.com -ynhouse.com -ynhr.com -ynhzm.com -yni84.com -ynikon.com -ynkcfc.com -ynkmjj.com -ynlvyou14.com -ynlvyou20.com -ynmec.com -ynnits.com -ynpxrz.com -ynrayy.com -ynshangji.com -ynshf.com -ynshijian.com -ynsjg.com -ynteng.com -ynwfkj.net -ynwin.com -ynx111.com -ynxdfpr.com -ynxr.com -ynxxb.com -ynycloud.xyz -ynyes.com -ynyp.com -ynzczs.com -ynzg.org -ynzp.com -ynzxpx.com -ynzy-tobacco.com -yo4399.com -yo9.com -yoagoa.com -yobangbang.com -yobbom.com -yobo360.com -yobolove.com -yocajr.com -yocan.net -yocyxc.com -yodak.net -yodakgroup.com -yodao.com -yodao.net -yodo1.com -yodo1api.com -yodu.org -yoe365.com -yofc.com -yofcjs.com -yofijoy.com -yofish.com -yofond.com -yofond.net -yofus.com -yogeev.com -yogorobot.com -yoher.com -yoho.org -yohoblk.com -yohoboys.com -yohobuy.com -yohogirls.com -yoholm.com -yohomars.com -yohoshow.com -yohui.com -yojl.net -yojochina.com -yoju360.com -yoju360.net -yoka.com -yokacdn.com -yokagames.com -yokmob.com -yokong.com -yolanda.hk -yolewa.com -yolexi.com -yolinkmob.com -yolipai.net -yoloboo.com -yoloho.com -yoloogames.com -yolyon.com -yomiko.cloud -yomiko.club -yomiko.fun -yomiko.tech -yomob.com -yomocode.com -yongaomy.com -yongche.name -yongche.org -yongchengren.com -yongfan99.com -yonghe2008.com -yongheng.online -yonghongtech.com -yonghuigj.com -yonghuivip.com -yongkao.com -yongqianbao.com -yongqiaonews.com -yongqischool.net -yongsheng-sl.com -yongshikj.com -yongsy.com -yongtu.net -yongxinby.com -yongxinji.com -yongxintex.com -yongzhentang.com -yonho.com -yonlive.com -yonyou.com -yonyouaud.com -yonyoubao.com -yonyouccs.com -yonyoucloud.com -yonyoufintech.com -yonyougov.com -yonyouny.com -yonyouoa.com -yonyouup.com -yoo-hn.com -yoo616.com -yoodb.com -yooek.com -yooerjia.com -yoohouse.com -yoojia.com -yooknet.com -yooli.com -yoolin.cc -yooojie.monster -yoooooooooo.com -yoopu.me -yootou.com -yooxun.com -yooyoo360.com -yoozhe.com -yoozoo.com -yoozword.com -yopoint.cc -yopoint.com -yoptech.com -yopwork.com -yoqoo.com -yoqu.net -yorentown.com -york33.com -yoseleather.com -yostar.net -yotta800.com -you-mi.net -you1ke.com -you200.com -you2php.com -you6qu.com -youba.com -youba123.com -youban.com -youbangyun.com -youbbs.org -youbeichefu.com -youbh.com -youbian.com -youboy.com -youc.com -youcaizhushou.com -youcash.com -youcha.net -youchedaren.net -youchedi.com -youchejiuxing.com -youchent.com -youcheyihou.com -youchuhuodong.com -youcloud.com -youda8.com -youdaili.net -youdaiw.com -youdajx.com -youdanhui.com -youdao.com -youdas.com -youdashidai.com -youdawangluo.com -youdemai.com -youdiancms.com -youdingte.com -youdubook.com -youduzw.com -youdwh.com -youease.net -youedata.com -youeryun.com -youez.com -youfang123.com -youfangou.com -youfangzx.com -youfen666.com -youfubao.vip -youfunlab.com -yougababy.com -youganghangmoguan.com -yougaoji.com -yougaoyx.com -youginorg.com -yougou.com -yougu.tv -youguo.com -youguoquan.com -youguu.com -youhaodongxi.com -youhaosoft.com -youhaosuda.com -youhro.com -youhua.com -youhuaaa.com -youhuafuzhi.com -youhuashu.com -youhugmedia.com -youhundao.com -youhutong.com -youideal.net -youinsh.com -youjiands.net -youjiangzhijia.com -youjiao.com -youjiaus.net -youjiaxiao.com -youjidi.net -youjimilk.com -youjingnetwork.com -youjiuhealth.com -youjoy.tv -youkake.com -youke.co -youke.com -youke365.site -youkecn.com -youked.com -youkeda.com -youkego.com -youkelai.com -youkexueyuan.com -youkia.net -youkongkan.com -youkongwan.com -youku.com -youkua.net -youkudown.com -youlanw.com -youle55.com -youleliwu.com -youlian.fun -youlianfuwu.com -youliangda.com -youliaobaike.com -youliaoyi.com -youlinyouke.com -youlishipin.com -youloft.com -youlong123.com -youlongciqing.com -youlongteng.com -youlu.com -youlu.net -youlu6.com -youluwx.com -youmai.com -youmaolu.com -youme.im -youmenr.com -youmew.com -youmhdxb.com -youmi.net -youmiad.com -youminonline.com -youmobi.com -youmodou.com -youmooyouyoung.com -youneng.com -younet.com -younfor.com -young40.com -youngor.com -youni.im -youo.net -youoh.com -youonbike.com -youook.com -youpengw.com -youpin898.com -youpinhaoche.com -youpinppt.com -youpinshop.vip -youpinx.com -youpinzhekou.com -youpumao.com -youpzhaohuo.com -youqichuyun.com -youqiwu.com -youqizhan.com -youqo.com -youqu.in -youqudao.com -youranshare.com -yourbin.com -yourcollect.net -yourdream.cc -youren5.com -yourtion.com -yousc.com -youscm.com -yousee.com -yousenjiaoyu.com -youshang.com -youshanmeishi.com -yousheng.shop -youshenhudong.com -yousheyoujia.com -youshibeike.com -youshifu.com -youshikoudai.com -youshixiu.com -youshop04.com -youshop10.com -youshu.cc -youshuba.cc -youshuge.com -yousmyq.com -yousuu.com -yousuyuan.com -youtaidoors.com -youtaidu.com -youtak.com -youthi.com -youtiandi.com -youtianli.com -youtibao.com -youtoart.com -youtoupiao.com -youtu.com -youtube-dubbing.com -youtuzi.com -youtx.com -youwawa.com -youwei.com -youwinedu.com -youwo.com -youwoxing.net -youwoyou.com -youwu.today -youwusc.com -youxi.com -youxi01.com -youxi377.com -youxi527.com -youxi528.com -youxi567.com -youxia.com -youxiacg.com -youxiaju.com -youxiake.com -youxiake.net -youxiamotors.com -youxiaoad.com -youxiaoge.com -youxiaohou.com -youxiaxiazai.com -youxibao.com -youxibaoku.com -youxibd.com -youxicdn.com -youxichaguan.com -youxicheng.net -youxicitang.com -youxicity.com -youxicool.net -youxidaxue.com -youxidr.com -youxidun.com -youxiduo.com -youxifan.com -youxigongchang.com -youxigt.com -youxigu.com -youxigui.com -youxih.com -youxihezi.net -youxihun.com -youxij.com -youxike.com -youxila.com -youximao.com -youximt.com -youxin.com -youxingapp.com -youxiniao.com -youxinpai.com -youxinshi.com -youxinsign.com -youxipai.com -youxiping.com -youxiputao.com -youxiqiang.com -youxiqun.com -youxishuo.com -youxitexiao.com -youxituoluo.com -youxiuhui.com -youxiula.com -youxiwangguo.com -youxiwugui.com -youxixf.com -youxixj.com -youxizhan.com -youxizhongguo.com -youxuan.com -youxuanan.com -youxuangu.com -youxueke.com -youyacao.com -youyanchu.com -youyannet.com -youyantech.com -youyeetoo.com -youyegame.com -youyi-game.com -youyigame.com -youyilm.com -youyiqi.com -youyiqiaogou.com -youyiweizhan.com -youyizhidao.com -youyo88.com -youyou234.com -youyouwin.com -youyuan.com -youyuanapp.com -youyuanw.com -youyudf.com -youyuegame.com -youyur.com -youyuwei.com -youyuwo.com -youyy.com -youzan.com -youzanyun.com -youzhai.com -youzhan.org -youzhao.com -youzhi.net -youzhicai.com -youzhiwk.com -youzhixueyuan.com -youzhuan.com -youzi02.com -youzibuy.com -youzijie.com -youziku.com -youzikuaibao.com -youzu.com -yovisun.com -yovocloud.com -yovole.com -yovyuan.com -yowbbxi.cyou -yowhale.com -yowooa.com -yoxiha.com -yoximi.com -yoxyok.com -yoya.com -yoyi.tv -yoyiapp.com -yoyo1900.com -yoyojacky.com -yoyojie.com -yoyokko.com -yoyotown.com -yoyou.com -yoyou.net -yoytang.com -yozodcs.com -yozodoc.com -yozodocs.com -yozooffice.com -yozosoft.com -yozsc.com -yp007.net -yp900.com -ypank.com -ypfph.com -ypgyyq.com -yph-shop.com -yphuifu.com -ypiao.com -ypicw.com -ypjiameng.com -ypk.cc -yplady.com -ypppt.com -ypshengxian.com -ypstech.com -ypzdw.com -ypzhushou.com -yq027.com -yq1751.com -yq51.com -yqb.at -yqb.com -yqb920.com -yqbank.com -yqbdt.com -yqbimg.net -yqfml.com -yqh.com -yqh5.com -yqhapp.com -yqhbook.com -yqhlm.com -yqhouseware.com -yqhzz.com -yqjsj.com -yqjtgs.com -yqkbook.la -yqkk.link -yqkqw.com -yqmb001.com -yqmh.com -yqphh.com -yqsbz.com -yqslmall.com -yqsn.com -yqtc.com -yqtxzm.com -yqwyx.xyz -yqxhl.com -yqxiuyoung.com -yqxs.cc -yqxsge.cc -yqzww.cc -yqzww.la -yqzww.net -yr-info.com -yrcbank.com -yrgu.com -yrmpay.com -yrom.net -yrsm.net -yruan.com -yrucd.com -yrw.cc -yrw.com -yrwy.com -yrxsw.com -yryz.com -yrz.name -yrzjw.com -ys.cc -ys001.com -ys137.com -ys168.com -ys1688.cc -ys2345.com -ys4fun.com -ys630.com -ys7.com -ys720.com -ys8.com -ys991.com -ysaedesign.com -ysali.com -yscase.com -yscb.net -ysch.cc -yscq.com -ysedu.com -ysepan.com -ysepay.com -ysext.com -ysfog.com -ysgcdns.xyz -ysgfood.com -ysgtg.com -ysgushi.com -yshlmlr.com -yshp.net -yshsports.com -ysicing.me -ysicing.net -ysidcz.com -ysiis.com -ysjf.com -ysjgames.com -yskjzj.com -yslcw.com -yslqo.com -yslyhr.com -ysmiji.com -ysmine.com -ysoow.com -ysplay.com -ysrh.com -yssp88.com -ysstech.com -ysszzs.com -yst100.net -ysten.com -ysug.com -ysw365.com -ysw68.com -yswebportal.cc -yswh.com -yswlgame.com -yswliot.com -yswpq.com -ysx8.com -ysx8.net -ysx8.vip -ysx9999.com -ysxapp.com -ysxs8.com -ysxs8.vip -ysys.com -ysyycv.com -yszx99.com -yszyun.com -yszzlt.com -yt1998.com -yt211.com -yt69.com -yt698.com -yta-tech.com -ytaotao.net -ytb.io -ytbbs.com -ytbfilm.com -ytcbh.com -ytcj.com -ytcutv.com -ytdaily.com -ytdcloud.com -yte1.com -yteng.net -ytesting.com -ytet.org -ytfuzhen.com -ytghnb.com -ythouse.com -ytjcpj.com -ytlh120.com -ytlvbao.com -ytmedia.tv -ytnetgame.com -ytoexpress.com -ytoglobal.com -ytop8.com -ytpp.com -ytrenyu.com -ytsanchuan.com -ytszg.com -ytsznyy.com -yttwewx.com -ytud.net -ytusmart.com -ytxedu.com -ytxsc.com -ytzhihui.com -ytzq.com -yu.gs -yu1u.org -yu72.com -yuan7i.com -yuanbao.com -yuanbaobaoxian.com -yuanbaohui.com -yuanbin.me -yuancdn.com -yuancefund.com -yuanchengxiezuo.com -yuandi.com -yuandiancredit.com -yuanfeng021.com -yuanfr.com -yuanfudao.biz -yuanfudao.com -yuanfudao.ws -yuangongbao.com -yuanhaitaiji.com -yuanhuikai.com -yuaniis.com -yuanjie.org -yuanjisong.com -yuanjoy.com -yuanlai.com -yuanlian365.com -yuanliao.info -yuanlin.com -yuanlin365.com -yuanlin8.com -yuanma.net -yuanmadian.com -yuanmait.com -yuanmas.com -yuanmatao.com -yuanmawu.net -yuanqi46.com -yuanqiao.net -yuanqingsh.com -yuanqitu.com -yuanrenbang.com -yuanrengu.com -yuanrenxue.com -yuansfer.com -yuanshanbx.com -yuanshen.com -yuanshichang.com -yuansikeji2021.com -yuansouti.com -yuantengfei.org -yuantiku.com -yuantoushuo.com -yuantutech.com -yuanu.com -yuanxinbaoxian.com -yuanxuxu.com -yuanyangcoffee.com -yuanyeer.com -yuanyi.biz -yuanyoutao.com -yuanzhexi.com -yuanzidai.com -yuanzige.com -yuanzun.fun -yuanzunxs.cc -yuapt.com -yubaike.com -yubangweb.com -yubb12.site -yubohr.com -yuboinfo.com -yubosun.com -yucccc.com -yuchai.com -yuchen360.com -yucheng0769.net -yuchenw.com -yuchu3d.com -yuchuantech.com -yucl.com -yucoolgame.com -yucui.org -yudi.com -yudianda.com -yudiangame.vip -yudouyudou.com -yue365.com -yue7.com -yuebagu.com -yuebei.vip -yuebingcheng.com -yuebooemt.com -yuecdn.net -yuecheng.com -yuedaoec.com -yuedisk.com -yuedu.pro -yuedufang.com -yueduji.com -yuedunovel.com -yueduwen.com -yueduyun.com -yuego.net -yuegowu.com -yuehuan.com -yueimg.com -yueji.com -yuejianzun.xyz -yuejiewangluo.com -yuejuanbao.com -yuekenet.com -yuekeyun.com -yuelanxinghe.com -yueloo.com -yuelu.net -yuelun.com -yueme.tv -yuemei.com -yuenshui.com -yuenwooping-truelegend.com -yuepaijia.com -yueplus.ink -yueqi.com -yueqiquan.com -yueqiweixiu.com -yueqiziliao.com -yueque.com -yuer.com -yuerbao.com -yueru.com -yuesuoping.com -yuetu.tech -yuetutu.com -yuetuvip.com -yuetuvip.net -yueweimusic.com -yuewen.com -yuexing.com -yuexingfurniture.com -yuexinli.com -yuexirc.com -yuexiu.com -yuexunedu.com -yueyaa.com -yueyanglou.com -yueyat.net -yueyear.com -yueyouxs.com -yueyq.com -yueyu114.com -yueyuanzhiye.com -yueyues.com -yueyuevip.com -yueyueworld.com -yueyuez.com -yueyuzhushou.com -yueyv.com -yuezeyi.com -yufeitongji.com -yufu365.com -yufuid.com -yufuid.net -yufulaidoors.com -yugasun.com -yugew.com -yuguo.com -yuguo.us -yugusoft.com -yuhaiyiya.com -yuheii.com -yuheng.tech -yuhengye.com -yuhou.com -yuhuijob.com -yuiapi.com -yuike.com -yujia.com -yujiahui.com -yujianpay.com -yujunjie.com -yujunren.com -yujzw.com -yukeinfo.com -yukhj.com -yukicomic.com -yukiimall.com -yukuai.com -yule114.com -yule116.com -yule263.com -yuledaily.com -yulehezi.com -yuleie.com -yulejiaodian.com -yulekan.com -yuleres.com -yuli.be -yulicdn.com -yulinapp.com -yulingtianxia.com -yulongjun.com -yuloo.com -yulore.com -yulorepages.com -yulu1.com -yulu5.com -yulucn.com -yulumh.com -yumaoshu.com -yumchina.com -yumenikki.info -yumi.cc -yumi.com -yumimobi.com -yuming.com -yumingguwen.com -yumixitong.com -yummy.tech -yumstone.com -yun-gu.com -yun-idc.com -yun-img.com -yun-jinrong.com -yun-live.com -yun.ai -yun123.com -yun61.com -yunadmins.com -yunannet.com -yunaq.com -yunarm.com -yunaw.com -yunba.io -yunban.com -yunbang.net -yunbaoriji.com -yunbei.com -yunbiao.tv -yunbiaosoft.com -yunbiaowulian.com -yunbiaozhun.com -yunbiji.com -yunbook.vip -yunbuzhan.com -yuncai5.com -yuncaijing.com -yuncdn.bid -yuncdn123.com -yuncdn263.com -yuncdndun.com -yunceng.com -yuncheng.com -yunchou.com -yuncii.com -yuncode.net -yunconfig.com -yunda56.com -yundaex.com -yundagongyi.com -yundangan.com -yundasys.com -yundianjia.com -yundianseo.com -yundiantech.com -yundongfang.com -yundonghao.com -yundongit.com -yundousoft.com -yunduanzhishang.com -yundui.cc -yunduimedia.com -yundun.com -yundun.shop -yunduncdn.com -yunduncdns.com -yunduncname.com -yundunddos.com -yundundns.com -yundunjiasu.com -yunduns.com -yundunwaf.com -yundunwaf1.com -yundunwaf2.com -yundunwaf3.com -yundunwaf4.com -yundunwaf5.com -yunduocrm.com -yunduoke.net -yunduoketang.com -yunduokt.net -yundzh.com -yunews.net -yunexam.com -yunfabiao.com -yunface.com -yunfaka.com -yunfalv.com -yunfan.com -yunfancdn.com -yunfancdn.net -yunfandns.com -yunfangtan.com -yunfanka.com -yunfanyouxi.com -yunfei89.com -yunfutech.com -yungangbj.com -yungao-ssp.com -yungao.mobi -yungongchang.com -yungouos.com -yungousj.net -yunguajibao.com -yungujia.com -yunhaicangshu.com -yunhaike.com -yunhaiqiao.com -yunhedata.com -yunheit.com -yunhesanwan.com -yunhetong.com -yunhou.com -yunhuasheji.com -yunhulu.org -yunhuotong.net -yunhuzx.com -yunifang.com -yunify.com -yunio.com -yunip.com -yunipo.com -yunji.com -yunjian.com -yunjiasu-cdn.net -yunjiasu.com -yunjiasu360.com -yunjiasu666.com -yunjiazheng.com -yunjifarm.com -yunjiglobal.com -yunjitele.com -yunjiweidian.com -yunjix.com -yunjuwuliu.com -yunkangdoctor.com -yunkanpan.com -yunkawulian.com -yunke.com -yunkezan.com -yunkongpingban.com -yunlibeauty.com -yunlie.net -yunlietou.com -yunliketech.com -yunliunet.com -yunlucn.cc -yunmai.com -yunmayi.com -yunmd.net -yunmeipai.com -yunmiao.co -yunmishu365.com -yunmoseo.com -yunmoxing.com -yunna.me -yunnandns.com -yunnanjun.com -yunnao.com -yunnex.com -yunnut.com -yunos-inc.com -yunos-tv.com -yunos.com -yunpaiwang.net -yunpan.com -yunpansou.cc -yunpanx.com -yunpanziyuan.com -yunpanziyuan.xyz -yunpei.com -yunpian.com -yunpiao.net -yunpp.com -yunqi.org -yunqi2050.com -yunqiandai.com -yunqikecrm.com -yunqingugm.com -yunqishi.net -yunqishi8.com -yunqiyqh.com -yunque360.com -yunrg.com -yunrongu.com -yunruift.com -yunruikj.com -yuns1.net -yunscache.cc -yunsd.net -yunser.com -yunshan.net -yunshangnc.com -yunshanmeicai.com -yunshiketang.xyz -yunshipei.com -yunshipei.net -yunshouji123.com -yunshow.com -yunshuxie.com -yunsiya.com -yunsom.com -yunsong.com -yunsou168.com -yunstu.net -yunsuan.org -yunsuanzi.com -yunsuo.com -yunsuo.xyz -yuntaigo.com -yuntask.com -yuntemai.com -yuntianti.com -yuntingiot.com -yuntongbu.com -yuntongcloud.com -yuntongtech.com -yuntongxun.com -yuntouxiang.com -yuntu.io -yuntue.com -yunvm.com -yunvs.com -yunwei8.com -yunweibang.com -yunweipai.com -yunwenxue.com -yunwins.com -yunwuxian.net -yunxi.tv -yunxi10.com -yunxiao.com -yunxin123.com -yunxindai.com -yunxindns.com -yunxinfa.com -yunxinshi.com -yunxiu.com -yunxuetang.com -yunxzb.com -yunyi-dd.com -yunyihudong.com -yunyijk.com -yunyin.org -yunyingdashu.com -yunyingketang.com -yunyingmiao.com -yunyingpai.com -yunyingxuetang.com -yunyingzhe.com -yunyis.com -yunyize.com -yunyoufeitian.com -yunyouni.com -yunyousj.com -yunyu123.com -yunyue.cc -yunyuh5.com -yunzhan365.com -yunzhangfang.com -yunzhanggui.net -yunzhanghu.com -yunzhanxinxi.com -yunzhifankeji.net -yunzhijia.com -yunzhitai.com -yunzhixiyou.com -yunzhizao.net -yunzhu100.com -yunzmall.com -yunzongnet.com -yunzujia.com -yunzz.net -yupaowang.com -yupiao.info -yupoo.com -yupu.com -yuqianshu.com -yuqiaolong.com -yuquanhosp.com -yuque.com -yuriimg.com -yusa.me -yusainorthwest.com -yushanfang.com -yushengny.com -yushexuetang.com -yushin88.com -yushiyan.net -yushu5.com -yushunews.com -yusi.com -yusi.tv -yusi123.com -yutai365.com -yutaoyouxi.com -yuteng.site -yutennet.com -yutian.cc -yutianedu.com -yutong.com -yutuwo.com -yuu1.com -yuuboo.net -yuucn.com -yuudnn.com -yuwan-game.com -yuweixian.com -yuwell.com -yuwellgroup.com -yuwen360.com -yuwenchaoshi.com -yuwenmi.com -yuwennews.com -yuwenxiandaihua.com -yuxianall.com -yuxiaor.com -yuxinews.com -yuxingqiu.com -yuxitech.com -yuxungs.com -yuyicai.com -yuyin.tv -yuyu.com -yuyue111.com -yuyue27.com -yuyueshop.com -yuyuetec.com -yuyuhunter.com -yuyuntech.com -yuzeli.com -yuzhaimedia.com -yuzhenhai.com -yuzhike.com -yuzhong.net -yuzhongxxw.com -yuzhouwan.com -yuzhua.com -yuzhuagame.com -yuzhuan.com -yuzhulin.com -yuzi.net -yuzua.com -yuzvf.com -yvv.in -yvzfgigpiwmofux.com -yw11.com -yw2005.com -ywart.com -ywbank.com -ywcbs.com -ywdier.com -ywditan315.com -ywec.net -ywg7.com -ywgd.com -ywggzy.com -ywies-shpd.com -ywindex.com -ywinf.com -ywky.org -ywlm.net -ywnds.com -ywnz.com -ywopt.com -ywork.me -ywshouyou.com -ywsoftware.com -ywtd.xyz -ywtuchuang1.com -ywwpay.com -ywxue.com -ywxzz.com -ywyanxing.com -ywyishi.com -yx-g.com -yx-life.com -yx-s.com -yx-s.net -yx007.com -yx0599.com -yx090.com -yx10011.com -yx192.com -yx231.com -yx643.com -yx7088.com -yx74.com -yx7507.com -yxbao.com -yxbhhbkj.com -yxbox91.com -yxbuluo.com -yxcax.com -yxcc.net -yxchg.com -yxcity.com -yxdaily.com -yxdd.com -yxdgc.com -yxdh.com -yxdimg.com -yxdmgame.com -yxdoc.com -yxdown.com -yxdr.com -yxdsgs.com -yxduo.com -yxdwj.com -yxecg.com -yxen.net -yxfw.com -yxfwai.com -yxhenan.com -yxhhdl.com -yxhi.com -yxhqj.com -yxi.cc -yxiangzu.com -yxiannetgz.com -yximgs.com -yxin18.com -yxinbao.com -yxit.net -yxixy.com -yxjedu02.com -yxjia.com -yxkfw.com -yxkjlcd.com -yxlaba.com -yxlady.com -yxlady.net -yxle.net -yxlink.com -yxlmdl.net -yxm.com -yxmspx.com -yxn.fun -yxool.com -yxou.com -yxpk.net -yxpms.com -yxptfs.com -yxqchg.com -yxqiche.com -yxrank.com -yxrb.net -yxsc33.com -yxsea.com -yxsos.com -yxss.com -yxsss.com -yxt-tattoo.com -yxt.com -yxtk.xyz -yxttzb.com -yxtvg.com -yxwoo.com -yxwsgame.com -yxxgame.com -yxxurl.com -yxxzbox.com -yxyfhgc.com -yxyzjx.com -yxz.me -yxzb.tv -yxzd.info -yxztyy.com -yxzu.com -yxzxgy.com -yy-xjy.com -yy.com -yy138.com -yy2169.com -yy2hd.com -yy4080.com -yy591.com -yy6.fun -yy6080.org -yy845.com -yyasp.net -yybox.cc -yycec.com -yyclouds.com -yyclub.org -yycoin.com -yycqc.com -yycro.com -yydbzz.com -yydcs.com -yydidai.com -yyds.co -yydzh.com -yyearth.com -yyedufeb.com -yyes.shop -yyestar.com -yyetss.com -yyfangchan.com -yyfax.com -yyfdcw.com -yyfsb.com -yyfunning.com -yyg.com -yygjuu.club -yygold.com -yygrammar.com -yygzs.com -yyhao.com -yyhh.com -yyhhaa.com -yyhn365.com -yyjr.cc -yyjxcloud.com -yyjzt.com -yyk100.com -yyk2.com -yykj.site -yylending.com -yylm.org -yymedias.com -yyming2.com -yymoban.com -yynetwk.com -yyouren.com -yypm.com -yypt.com -yyq.com -yyrec.com -yyrenting.com -yyrplay.com -yyrtv.com -yystatic.com -yysub.net -yysweb.com -yytad.com -yytcdn.com -yytek.com -yytingli.com -yyuap.com -yyuasa.com -yywlsj.com -yywords.com -yywt.online -yywz123.com -yywzw.com -yyx168.com -yyxtao.com -yyxwzx.com -yyxx100.com -yyxxgame.com -yyxxgameyw.com -yyy5414.com -yyyeee.com -yyyy.games -yyyyy.run -yyziyuan1.com -yyzsoft.com -yyzw.com -yyzyytj.com -yyzzsem.com -yz-iot.com -yz-show.com -yz061.com -yz063.com -yz168.cc -yz2pp.com -yz360.cc -yz4l.com -yzbank.com -yzbo.tv -yzbqzx.net -yzcyjy.com -yzdir.net -yzdjkcy.com -yzdn.net -yzdx99.com -yzfang.com -yzfc8.com -yzfjy.com -yzgjgs.com -yzgnet.com -yzgttm.com -yzhbw.net -yzhsk.com -yzinter.com -yzipi.com -yzja.com -yzjjw.net -yzjsxy.com -yzkimage.com -yzkjpcb.com -yzlxjt.com -yzmcms.com -yzmcxx.com -yzmg.com -yzmiao03.com -yzmjw.com -yzmoney.com -yznano.com -yznn.com -yzops.net -yzpetfood.com -yzrb.com -yzrom.com -yzrshop.com -yzs.com -yzsbh.com -yzspdq.com -yzt-tools.com -yztcdn.com -yzwb.com -yzwb.net -yzxcfdj.com -yzyxgame.com -yzzs.cc -yzzsoft.com -yzzzn.com -z-bank.com -z-dd.net -z-inn.com -z-zhuji.com -z0.cc -z01.com -z0ukun.com -z1233.com -z12345.com -z17.link -z28j.com -z2sci.com -z316.com -z3quant.com -z4bbs.com -z5a.com -z5encrypt.com -z5z4.com -z6r7.com -z701.com -z729.com -z7xz.com -z7ys.com -z8q.cc -za-doctor.com -zablog.me -zac1993.com -zackku.com -zackxu.com -zaduonews.com -zadzs.com -zaeke.com -zahtb.com -zahuibaike.com -zahuishi.com -zahuoji.com -zai-art.com -zaiduu.com -zaifan.com -zaih.com -zaihuangshi.com -zaijia.com -zaijiawan.com -zailouxia.com -zaiminglvsuo.com -zainanjing365.com -zaitong.net -zaiwai.com -zaixian-fanyi.com -zaixianfanyi.com -zaixianjianli.com -zaixianjisuan.com -zaixiankaoshi.com -zaixs.com -zaiyulin.com -zaiyunli.com -zaizai8.com -zajilu.com -zakdy.com -zaker.com -zallcn.com -zallfuhui.com -zallgo.com -zallimg.com -zalljinfu.com -zampda.net -zampdmp.com -zampdsp.com -zamplink.net -zamplus.com -zanao.com -zanba.com -zanbai.com -zangaifamily.com -zangaopet.com -zangdiyg.com -zanghaihuatxt.com -zangx.com -zangyitong.com -zanpic.com -zantainet.com -zanyiba.com -zaobang.com -zaoche168.com -zaodao.net -zaodin.com -zaodula.com -zaofabiao.com -zaofacai.com -zaogai.com -zaojiance.com -zaojiance.net -zaojiao.com -zaojiu.com -zaojv.com -zaole.net -zaoshu.so -zaowandushu.com -zaoxu.com -zaoyang.org -zaoys.com -zaozuo.com -zarcw.com -zastatic.com -zasv.com -zasv.net -zat.cc -zatan.com -zatest.com -zaticdn.com -zatxt.com -zaxdcredit.com -zazhipu.com -zazsz.com -zb-kc.com -zb1.org -zb580.tv -zbbar.net -zbfilm.com -zbgedu.com -zbgl.net -zbgscm.com -zbhouse.com -zbintel.com -zbird.com -zbisq.com -zbj.com -zbjdev.com -zbjdr.com -zbjiangsu.com -zbjimg.com -zbjsaas.com -zbjwork.com -zbkszx.net -zbling.com -zblogcn.com -zbluqian.com -zblzm.xyz -zbmeishu.com -zbnews.net -zbopr.net -zbqlm.com -zbrushcn.com -zbstatic1.com -zbt.com -zbt.net -zbuhe.com -zbusa.com -zbwbbs.com -zbwdj.com -zbwg.cc -zbxinmeiti.com -zbxsoft.com -zbxyh.com -zbytb.com -zbyz.net -zbz.com -zbzaixian.com -zbzdm.com -zbzhandian.com -zbzw.la -zc-ha.com -zc-jk.com -zc0.net -zc0317.com -zc532.com -zcaijing.com -zcbxgg.com -zcccc.com -zcdiesel.com -zcdog.com -zcedustudy.com -zcfc.com -zcfirst.com -zcfuhua.com -zcfy.cc -zcgsfy.com -zcimg.com -zcitidc.com -zciv.com -zcjbgame.com -zcjxedu.com -zclock.xyz -zcmlc.com -zcoa365.com -zcobrand.com -zcom.com -zcoming.com -zcooler.com -zcosz.com -zcphp.com -zcppt.com -zcqh.com -zcqss.com -zcread.com -zcry007.com -zcs.cc -zcsbbs.com -zctl.net -zctpt.com -zctx.com -zcwlsc.com -zcwxjx.com -zcwz.com -zcxn.com -zcycdn.com -zcyiyao.com -zczbzx.com -zczj.com -zd-power.com -zd.hk -zd200572.com -zdao.com -zdaye.com -zdcj.net -zdcjw18.com -zdctid.com -zddhr.com -zddr.com -zddream.com -zdexe.com -zdface.com -zdfans.com -zdfx.net -zdgzc.com -zdh168.com -zdhaitao.com -zdhaitao.net -zdhnayr.com -zdic.net -zdkqyy.com -zdlife.com -zdlink.com -zdlpk.net -zdmimg.com -zdmr.net -zdnscloud.biz -zdnscloud.com -zdnscloud.info -zdnscloud.net -zdomo.com -zdoz.net -zdpeanut.com -zdrcrx.com -zdrcw.com -zdsee.com -zdslb.com -zdsr.net -zdwang.com -zdwfy.com -zdworks.com -zdwx.net -zdz.la -zdzdm.com -zdzwtesting.com -zdzxtech.com -ze13.com -ze5.com -zealer.com -zeali.net -zealquest.com -zealsafe.net -zebred.com -zechoriah.com -zeda1.com -zedukm.com -zeekrlife.com -zeelis.com -zeesin.com -zego.im -zeguoren.com -zeidei.com -zeisp.com -zeixihuan.com -zejiexinxi.com -zejiri.net -zeju.com -zeldacn.com -zelinai.com -zemismart.com -zemuo.com -zen-est.com -zengdefei.com -zenggaocn.com -zengjunpeng.com -zengrong.net -zenha.net -zenixauto.com -zenoven.com -zentao.net -zentaopm.com -zeperd.com -zepp.com -zeq366.net -zerobreeze.com -zerocollege.com -zerogfans.com -zeroling.com -zeroonead.com -zeruns.tech -zerustech.com -zesee.com -zesidasi.com -zesmob.com -zeststore.com -zetast.com -zx350zx.com -zeuux.com -zeuux.org -zexiaoqiao.com -zeyi.cc -zeyouquan.com -zeze.com -zezhenwangluo.com -zf-8.com -zf3d.com -zfancy.net -zfbhsxg.com -zfboke.com -zfbzhsq.com -zfcm.net -zfdmkj.com -zff888.com -zfhz.org -zfimg.com -zfkjgw.com -zfl9.com -zfowed.com -zfrmt.com -zfrontier.com -zfsc.com -zfsoft.com -zft.com -zfvnet.com -zfw.net -zfwimg.com -zg-import.com -zg-imsoft.com -zg114w.com -zg118.com -zg163.net -zg3721.com -zg388.com -zg3china.com -zgaxr.com -zgbenrun.com -zgbjyx.com -zgbk.com -zgbmcl.com -zgboke.com -zgbywl.com -zgc-bigdata.org -zgc-dsa.org -zgcahpw.com -zgcbank.com -zgcbb.com -zgcdiy.com -zgchawang.com -zgchrx.com -zgcicc.com -zgcindex.org -zgcjm.org -zgcjpx.com -zgcmlm.com -zgcsa.org -zgcswhcbw.com -zgcszkw.com -zgcups.com -zgddek.com -zgddmx.com -zgddwhzb.com -zgdlwl.com -zgdsw.com -zgdwzp.com -zgdxhbkf.com -zgdydyxh.com -zgfwgj.com -zgfxnews.com -zgfznews.com -zgg.com -zggbdsw.net -zggcks.com -zggdjj.com -zggjgy.com -zgglkx.com -zgglyun.com -zggonglue.com -zggqzp.com -zggua.com -zggx.net -zggys.com -zghde.com -zghhcyw.com -zghhzx.net -zghotnews.com -zghouse.net -zghtcd.com -zghtedu.com -zghtqk.com -zgjcks.com -zgjhjy.com -zgjiemeng.com -zgjjzyjy.org -zgjm.net -zgjm.org -zgjsks.com -zgjtb.com -zgjxcad.com -zgjxf.com -zgjyjj.com -zgjymhw.com -zgkao.com -zgkashi.com -zgkawah.com -zgkcc.com -zgkfzz.com -zgkjb.com -zgkjcx.com -zgkjw.org -zgkjxww.com -zgkjzx.com -zgkqw.com -zglb.org -zglcyx.com -zglibrary.com -zglipin.com -zgljl2012.com -zglkq.net -zglscom.com -zglww.net -zglxw.com -zglyfair.com -zgmba.com -zgmcxw.com -zgmdbw.com -zgmmtuan.com -zgmsbw.com -zgmsbweb.com -zgmxl.com -zgncjr.com -zgnfys.com -zgnhzx.com -zgnt.net -zgny.com -zgong.com -zgpingshu.com -zgpingxuan.com -zgps168.com -zgpts.com -zgqkk.com -zgqw.com -zgqyhzfy.com -zgqywhcbw.com -zgqyzxw.com -zgrdnews.com -zgrlm.com -zgruisai.com -zgrybhw.com -zgsc123.com -zgsclp.com -zgsd.net -zgserver.com -zgshifu.com -zgshige.com -zgshjj.com -zgshoes.com -zgshq.com -zgshxfw.com -zgsj.com -zgsmmhw.com -zgsnzj.com -zgsof.com -zgsssss.com -zgsta.com -zgswcn.com -zgsydw.com -zgsynews.com -zgtghccl.com -zgtianqi.com -zgtsm.com -zgtuku.com -zgtygg.com -zgtzhb.com -zgui.com -zguonew.com -zgw.com -zgweimeng.com -zgwenku.com -zgwhfe.com -zgwhw.com -zgwlcsj.com -zgwstxc.com -zgwt.co -zgxcfx.com -zgxf.org -zgxk.org -zgxledu.com -zgxqwqh.com -zgxrjy.com -zgxue.com -zgxyzx.net -zgycgc.com -zgyeda.com -zgyey.com -zgygsy.com -zgyhys.org -zgyinpin.com -zgyongxin.com -zgys.net -zgyssyxh.com -zgyxsw.org -zgyygl.com -zgzb.com -zgzcw.com -zgzcwy.com -zgzjzzs.com -zgzkw.com -zgznh.com -zgzsrc.com -zgzwl.com -zgzy.net -zgzylt.com -zgzzs.com -zh-itone.com -zh.cc -zh188.net -zh30.com -zh51home.com -zhai14.com -zhaiba.com -zhaidou.com -zhaihai.com -zhaiiker.com -zhaikexueyuan.com -zhaimansky.com -zhainanba.net -zhainanfulishe.com -zhainanhuayuan.com -zhairport.com -zhaishulou.com -zhaixiaoniu.com -zhaixue.cc -zhan.com -zhanbuba.com -zhandaren.com -zhandodo.com -zhang.ge -zhang365.com -zhangbo.org -zhangchi.art -zhangchi.work -zhangdanyang.com -zhangdongxuan.com -zhangdu5.net -zhangdu520.com -zhange8.com -zhangfensir.com -zhangferry.com -zhanggang.net -zhanggaoyuan.com -zhangge.net -zhanghonghong.com -zhanghongliang.com -zhanghuanglong.com -zhangjinkun.com -zhangjunbk.com -zhangkai.red -zhangle.com -zhangli2015.com -zhangliziyun.com -zhangluya.com -zhanglvtong.com -zhangmen.com -zhangmen.org -zhangmenkid.com -zhangnan.xyz -zhangnq.com -zhangqi.ltd -zhangqiaokeyan.com -zhangqiongjie.com -zhangqiu.cc -zhangrc.site -zhangread.com -zhangrunnan.com -zhangsenhao.com -zhangsh08.com -zhangshengrong.com -zhangtielei.com -zhangtu.com -zhangu365.com -zhangweifan.com -zhangwenli.com -zhangxinhulian.com -zhangxinxu.com -zhangyin.org -zhangyoubao.com -zhangyoushijie.com -zhangyu.com -zhangyu39.com -zhangyue.com -zhangyue.net -zhangyue01.com -zhangyue02.com -zhangyue03.com -zhangyuecdn.com -zhangyunling.com -zhangyuqing.me -zhangzhao.me -zhangzhengfan.com -zhangzhongpei.com -zhangzhongwang.com -zhangzhongyun.com -zhangzidao.com -zhangzifan.com -zhangziran.com -zhangzs.com -zhanh.com -zhanhi.com -zhanhuo.com -zhankoo.com -zhanlingol.com -zhanmang.com -zhanq.net -zhanqi.net -zhanqi.tv -zhanqitv.com -zhanqu.im -zhanshaoyi.com -zhanshiren.com -zhanst.com -zhansu.com -zhantai.com -zhantuo.com -zhanxingfang.com -zhanyouyun.com -zhanzhang.net -zhao-meng.com -zhao-zupu.com -zhaoapple.com -zhaobeidaxiao.com -zhaobeijing.com -zhaobuxiu.com -zhaocait.com -zhaocaiyan.com -zhaochafa.com -zhaoda.net -zhaodanji.com -zhaodatu.com -zhaodll.com -zhaofangbang.net -zhaofanguan.com -zhaofinger.com -zhaogang.com -zhaogangimg.com -zhaogepu.com -zhaohaipeng.com -zhaoj.in -zhaojiao.net -zhaojiaoan.com -zhaojiaxiao.com -zhaojs.com -zhaokaifeng.com -zhaokao.net -zhaokeli.com -zhaokuaizhao.com -zhaoliangji.com -zhaoliming.net -zhaomei.ink -zhaomengtu.com -zhaoming.biz -zhaomxd.com -zhaoniupai.com -zhaoonline.com -zhaopianzhibo.com -zhaopin.com -zhaopin668.com -zhaopinbao.me -zhaopingou.com -zhaopins.com -zhaoqianwang.com -zhaoqt.net -zhaoquanwang.vip -zhaosecha.com -zhaoshang.net -zhaoshang100.com -zhaoshang800.com -zhaoshangbang.com -zhaoshangbao.com -zhaoshangdai.com -zhaoshayou.com -zhaosheng.com -zhaosheng365.com -zhaosifang.com -zhaosw.com -zhaota8.com -zhaouc.com -zhaouc.net -zhaowenyu.com -zhaowofanyi.com -zhaoxi.org -zhaoxiaoshuo.com -zhaoxin.com -zhaoxitech.com -zhaoxiuyuan.com -zhaoyanblog.com -zhaoyangmao.com -zhaoyangsem.com -zhaoyangxueyuan.com -zhaoyaojd.com -zhaoyasai.com -zhaoyingtian.com -zhaoyinqian.com -zhaoyl.com -zhaoyo.com -zhaoyuan365.com -zhaoyuanedu.com -zhaoyun.com -zhaozhanxu.com -zhaozhaoqu.com -zhaozhishi.com -zhaozongjie.com -zhatoufa.com -zhbit.com -zhblawyer.com -zhblog.net -zhcf001.com -zhckw.com -zhcw.com -zhdba.com -zhdgps.com -zhe.com -zhe2.com -zhe800.com -zhe97.com -zhebei.com -zheerhui.com -zhefengle.com -zheiyu.com -zhejianglab.com -zhejiangmuseum.com -zhejiangqinghe.com -zhejing.tech -zhekangzc.com -zhekouo.com -zhelaoda.com -zheli.com -zheliyangsheng.com -zhen-ao.com -zhen.com -zhen4k.com -zhenai.com -zhenaihn.com -zhenaoyaoye.com -zhenbi.com -zhenbizi.com -zhending-chicken.com -zhenfund.com -zheng800.com -zhengcaimall.com -zhengcaishangcheng.com -zhengdabm.com -zhengdaojiapei.com -zhengdaotang.com -zhengdichaiqian.com -zhengdongzulin.com -zhengfenduojin.com -zhengguzhishen.com -zhenghangyq.net -zhengjia.com -zhengjiantong.com -zhengjianzhao.com -zhengjicn.com -zhengjie.com -zhengjimt.com -zhengmeng.net -zhengpinle.com -zhengqingsong.com -zhengruioi.com -zhengshihf.com -zhengshuku.com -zhengtaipro.com -zhengtoon.com -zhenguangchem.com -zhenguo.com -zhengwutong.com -zhengxiaoling.com -zhengxinbao.com -zhengyaing.win -zhengyee.com -zhengyexing.com -zhengyifeng.com -zhengyinyong.com -zhengyounet.com -zhengyouyoule.com -zhengzai.tv -zhengzhoubus.com -zhengzhoulvxing.com -zhengzi.me -zhengzihui.com -zhenhaofu.com -zhenhaotao.com -zhenhaotv.com -zhenhong56.com -zhenhuan888.com -zhenimg.com -zhenjiang-marathon.com -zhenleishan.com -zhenpin.com -zhenren.com -zhenrongbao.com -zhentan.la -zhenwu.com -zhenxiad.com -zhenxian.fm -zhenxinfu.com -zhenxingkuangchanpin.com -zhenyouliao.com -zhepic.com -zhesui.com -zhetao.com -zhetian.org -zheurl.com -zhexi.tech -zhexinit.com -zheyangai.com -zheye.cc -zheye.com -zheyibu.com -zheyouquan.net -zheyouxinxi.com -zhezheai.com -zhezhekan.com -zhfc.com -zhfund.com -zhgc.com -zhgjm.com -zhgl.com -zhgnj.com -zhgqt.com -zhguoguo.com -zhhainiao.com -zhhrm.com -zhhs-china.com -zhhuahui.com -zhhy-oa.com -zhi-bo.net -zhi-ming.com -zhi-niao.com -zhi.hu -zhi12.com -zhiaimusic.com -zhiannet.com -zhib.net -zhibiao8.com -zhibo.me -zhibo.tv -zhibo128x.xyz -zhibo8.cc -zhibo8.com -zhiboba.com -zhiboqiao.com -zhiboyun.net -zhibs.net -zhibugongzuo.com -zhicaiwang.com -zhicall.com -zhicg.com -zhichanli.com -zhichaoxt.com -zhicheng.com -zhichepin.com -zhichikeji.com -zhichiwangluo.com -zhichiweiye.com -zhicms.cc -zhidao91.com -zhidaoanli.com -zhidemai.com -zhidesoft.com -zhidieyun.com -zhidj.com -zhidtech.com -zhiduopc.com -zhidx.com -zhifa.cc -zhifang.com -zhifashengfa.com -zhifayangfa.com -zhifeishengwu.com -zhifoukeji.com -zhiftype.com -zhifufu.com -zhifujie.com -zhifutui.com -zhifuzi.com -zhigou.com -zhiguagua.com -zhiguang.me -zhigudata.com -zhiguf.com -zhihang100.com -zhihe.mobi -zhihejia.com -zhihemobi.com -zhihengwangchen.com -zhihevip.com -zhihjf.com -zhihu.com -zhihu.dev -zhihuclub.com -zhihudsp.com -zhihuiep.com -zhihuihuiwu.com -zhihuiji.com -zhihuijingyingba.com -zhihuinanzhan.com -zhihuirenshe.com -zhihuishitang.net -zhihuishu.com -zhihuiya.com -zhihuizhangyu.com -zhihuizp.com -zhihuoseo.com -zhiji.com -zhijia.com -zhijiangames.com -zhijiaoyi.com -zhijiapro.com -zhijiashe.com -zhijidoc.com -zhijieketang.com -zhijin.com -zhijinwang.com -zhijl.com -zhikao100.com -zhikaojy.com -zhiketong.com -zhiketong.net -zhikuai.com -zhikuaidi.com -zhikubao.net -zhilandaren.com -zhilehuo.com -zhileng.com -zhili-hr.com -zhili2000.com -zhilian.com -zhilian.host -zhilianfm.com -zhiliangren.com -zhilianiot.com -zhiliaoke.com -zhiliaomj.com -zhilingshidai.com -zhilong.me -zhilongtech.com -zhiluo.net -zhimacangku.com -zhimace.com -zhimantian.com -zhimapay.net -zhimaruanjian.com -zhimasdk.com -zhimatech.com -zhimawenda.com -zhimax.com -zhimaxkf.com -zhimg.com -zhimi.com -zhimijia.com -zhimoe.com -zhinengdayi.com -zhinengxia.com -zhinet.com -zhinikefu.com -zhiniu8.com -zhipan.net -zhipeix.com -zhipianbang.com -zhipin.com -zhipingke.com -zhiqiang.org -zhiqiangcdn.com -zhiqiapp.com -zhiqihuo.com -zhiqihuo.org -zhiquanxia.com -zhiquapp.com -zhiquyuan.com -zhiqwl.com -zhiren.com -zhiren.ren -zhirenhr.com -zhiribao.com -zhiru.com -zhirui-inv.com -zhiruyi.com -zhisanzhao.com -zhishangsoft.com -zhisheji.com -zhisheng.com -zhishengbang.com -zhishi.com -zhishi.life -zhishi.tech -zhishibo.com -zhishichong.com -zhishifenzi.com -zhishilin.com -zhishisoft.com -zhishiwu.com -zhishizhan.net -zhishuci.com -zhishuedu.com -zhishutang.com -zhisiyun.com -zhitongcaijing.com -zhitoudsp.com -zhitouxing.com -zhituad.com -zhitui.com -zhiweidata.com -zhiweisoft.com -zhiwo.com -zhiwushuo.com -zhiwuwang.com -zhixi.com -zhixiaohuoke.com -zhixiaoren.com -zhixin-semi.com -zhixingapp.com -zhixingbus.com -zhixiu.net -zhixuan.com -zhixue.com -zhixue.org -zhixueyun.com -zhiye.com -zhiyeapp.com -zhiyequan.com -zhiyi.com -zhiyicx.com -zhiyiedu.vip -zhiyinghui.com -zhiyinhao.com -zhiyinlou.com -zhiyinmedia.com -zhiyoubao.com -zhiyousx.com -zhiyuan98.com -zhiyuanhongda.com -zhiyuanxingxiang.com -zhiyuanyun.com -zhiyuanzhongyi.com -zhiyun-tech.com -zhizaoye.net -zhizaoyun.com -zhizhang.com -zhizhebuyan.com -zhizhen.com -zhizhi88.com -zhizhibaike.com -zhizhihu.com -zhizhizhi.com -zhizhonghl.com -zhizhoukeji.com -zhizhoumi.com -zhizhucms.com -zhizhuwu.com -zhizhuyx.com -zhizihuan.com -zhizihuan.net -zhiziyun.com -zhizugz.com -zhizunbao668.com -zhizunbo.com -zhizunnews.com -zhizuobiao.com -zhizuobiaojiaoyu.com -zhizuoh5.com -zhizuotu.com -zhj9.com -zhjiameng.com -zhjj.org -zhjncb.com -zhjp.net -zhjs.cc -zhjypco.com -zhjyu.net -zhk.me -zhku.com -zhl.com -zhld.com -zhld88.com -zhlhh.com -zhliqi.com -zhlzw.com -zhmeiwen.com -zhmf.com -zhmodaoli.com -zhmold.com -zhmzjl.com -zhmzqi.com -zhnxcw.com -zhong.com -zhong100.com -zhongan.com -zhongan.io -zhonganfengshang.com -zhonganinfo.com -zhongbangchou.com -zhongbaounion.com -zhongbenkeji.com -zhongbingtongxin.com -zhongbowenwu.com -zhongchebaolian.com -zhongchoujia.com -zhongchouke.com -zhongchouyan.com -zhongchuang365.com -zhongchuanjukan.com -zhongda021.com -zhongdeng.com -zhongdengwang.com -zhongdi168.com -zhongdoulicai.com -zhongfu.net -zhongguobaiyin.com -zhongguoditu.com -zhongguofeng.com -zhongguohao123.com -zhongguohuo.com -zhongguojie.org -zhongguopeixun.net -zhongguose.com -zhongguosou.com -zhongguowangshi.com -zhongguoyimin.net -zhongguoym.com -zhonghaitech.com -zhonghegame.com -zhonghhd.com -zhonghongwang.com -zhonghuacar.com -zhonghuacpa.com -zhonghuadiancang.com -zhonghuaent.com -zhonghuamba.com -zhonghuameiwang.com -zhonghuanus.com -zhonghuaqiming.com -zhonghuasuan.com -zhonghuawuxia.com -zhongjiangapp.com -zhongjie.com -zhongjijidian.com -zhongjincc.com -zhongjinjiaye.com -zhongjintongsheng.com -zhongjitou.com -zhongjiujiu.com -zhongjixinyuan.com -zhongkao.com -zhongkaohelp.com -zhongkerd.com -zhongkezhuyan.com -zhongkongbancn.com -zhongkongdaikuan.com -zhongleny.com -zhonglian.com -zhongliangxny.com -zhonglianhuashu.com -zhongliuyiyuan.com -zhonglun.com -zhongman.com -zhongmian.com -zhongniu.com -zhongpaiwang.com -zhongqixin360.com -zhongrenbang.cc -zhongrenma.com -zhongruigang.com -zhongruihuacheng.com -zhongruitech.com -zhongshang114.com -zhongshanpark.com -zhongshengdai.com -zhongshengxinyun.com -zhongshucan.com -zhongso.com -zhongsou.com -zhongsou.net -zhongtaitrust.com -zhongtieyintong.com -zhongtoufa.net -zhongtuobang.com -zhongwei-info.com -zhongweijy.com -zhongwen.wiki -zhongwenhexinqikan.com -zhongwucan.com -zhongxiangdichan.net -zhongxiaole.net -zhongxinwei.net -zhongxunrunda.com -zhongxuntv.com -zhongyao1.com -zhongyaoyi.com -zhongye.net -zhongyejy.com -zhongyiiot.com -zhongyiju360.com -zhongyishangwu.com -zhongyoo.com -zhongyouex.com -zhongyougc.com -zhongyoumedia.com -zhongyu87.xyz -zhongyulian.com -zhongyunjy.com -zhongzhao.com -zhongzhide.com -zhongzhifaqian.com -zhongzhilin.com -zhongzhixin.com -zhongzhoutm.com -zhongzq.com -zhopera.com -zhouao.com -zhouchun.net -zhoudaosh.com -zhougong.com -zhouhoulin.com -zhoujiahong.com -zhoujianhui.com -zhoujiping.com -zhoulaoshi.club -zhoulingjie.com -zhoupu123.com -zhoupudata.com -zhoushangren.com -zhoushengfe.com -zhoutoucg.com -zhouxingchi.info -zhouxuanyu.com -zhouyi.biz -zhouyi.cc -zhouyi.org -zhouyi114.com -zhouyiapi.com -zhouyigw.com -zhouyiju.com -zhouyuanchao.com -zhouzhuang.net -zhowe.net -zhqyue.com -zhqyx.com -zhrczp.com -zhrtc.com -zhsan.com -zhsho.com -zhshw.com -zhsyb.cc -zhtelecom.com -zhtmid.com -zhu23.work -zhu360.com -zhuainiu.com -zhuan16.com -zhuancorp.com -zhuanfa.net -zhuanfou.com -zhuang520.com -zhuang99.com -zhuangji.net -zhuangjiba.com -zhuangkou.com -zhuangku.com -zhuangpeitu.com -zhuangpin.com -zhuangxiaomi.com -zhuangxiu.com -zhuangxiu22.com -zhuangxiu567.com -zhuangxiubao.com -zhuangxiuzhai.com -zhuangyi.com -zhuangzhuang.net -zhuanhuanqi.com -zhuaniao.com -zhuanlichaxun.net -zhuanliqiao.com -zhuanmenmian.com -zhuannet.com -zhuanpinyin.com -zhuanspirit.com -zhuanstatic.com -zhuantilan.com -zhuanyejun.com -zhuanyepeixun.com -zhuanyes.com -zhuanyewanjia.com -zhuanyezhidao.com -zhuanyun.cc -zhuanyun123.com -zhuanyuntang.com -zhuanzfx.com -zhuanzhi.ai -zhuanzhi.net -zhuanzhuan.com -zhuanzhuantui.com -zhuatang.com -zhuaxia.com -zhuayou.com -zhuayoukong.com -zhuazi.com -zhubai.love -zhubai.pub -zhubaijia.com -zhubajie.com -zhubajie.la -zhubangbang.com -zhubao.com -zhubao668.com -zhubian.com -zhubiaoju.com -zhubijiao.com -zhubo123.com -zhubogu.com -zhuboqiang.com -zhuceshenzhengongsi.com -zhuceyou.com -zhucezn.com -zhuchao.cc -zhudai.com -zhudianquan.com -zhuding.net -zhufaner.com -zhufangdianping.com -zhufengpeixun.com -zhufenqi.com -zhuge.com -zhuge888.com -zhugeapi.com -zhugeapi.net -zhugefang.com -zhugeio.com -zhuhaily.com -zhuhd.win -zhuigong.com -zhuiguang.com -zhuihuodong.com -zhuimengzhu.com -zhuiqu.com -zhuishubang.com -zhuishushenqi.com -zhuishuwang.com -zhuishuyun.com -zhuiwan.org -zhuixin.cc -zhuixinfan.com -zhuiyi.ai -zhuizhuiimg.com -zhuizhuiyoyo.com -zhuji.com -zhuji.net -zhuji5.com -zhujia360.com -zhujian.org -zhujiangbeer.com -zhujiangrc.com -zhujiangroad.com -zhujib.com -zhujibank.com -zhujiceping.com -zhujingzp.com -zhujiwiki.com -zhujiwu.com -zhujiyou.com -zhuke.com -zhul.in -zhulang.com -zhulanli.com -zhuli999.com -zhulincat.com -zhulixiaolie.com -zhulogic.com -zhulong.com -zhulongjiang.com -zhulu86.com -zhumengwl.com -zhumu.me -zhuna.net -zhunc.vip -zhundao.net -zhundaoyun.com -zhuniangjia.com -zhuniu.com -zhunkua.net -zhunniao.com -zhuntui.com -zhuo.com -zhuobufan.com -zhuofan.net -zhuofansoft.com -zhuoguang.net -zhuohuamg.com -zhuojie.cc -zhuokearts.com -zhuolaoshi.net -zhuomogroup.com -zhuoquapp.com -zhuoqun.info -zhuoshigroup.com -zhuoshixiong.com -zhuotingwl.com -zhuoyi.com -zhuoyigame.com -zhuoyigame.site -zhuoyixuan.com -zhuoyou.com -zhuoyouba.net -zhuoyoutech.com -zhuoyuanxinfang.com -zhuoyuechenxing.com -zhuoyuegame.com -zhuozhengsoft.com -zhuozhoufangchan.com -zhuozhuogame.com -zhuqinit.com -zhuqiyang.com -zhuque.me -zhushou001.com -zhushuiwen.com -zhust.com -zhutao.com -zhuti.com -zhutihome.net -zhutile.com -zhutiwo.com -zhutix.com -zhutix.net -zhutou.com -zhutousan.net -zhuwang.cc -zhuwang360.com -zhuwona.com -zhuxianfei.com -zhuxiaobang.com -zhuxuejy.com -zhuxuncn.com -zhuye.kim -zhuyeshouhushen.com -zhuyitai.com -zhuyst.cc -zhuyunfeng.com -zhuzhai.com -zhuzher.com -zhuzhichao.com -zhuzhouwang.com -zhuzi.me -zhuzihaoke.com -zhuziplay.com -zhw2101024.com -zhwangart.com -zhwdw.com -zhwenxue.com -zhx-mall.com -zhxfei.com -zhxinuser.com -zhxszq.com -zhxww.net -zhxy1z.com -zhxygroup.com -zhy333.com -zhyccw.com -zhycn.com -zhyd.me -zhyedu.com -zhyi828.com -zhyingxiao.com -zhyouliang.com -zhyymall.com -zhyyz.com -zhzjw.net -zhzyw.com -zhzzx.com -zi.com -zi5.cc -ziboga.com -zicaitou.com -zichabaogao.com -zichenit.com -zidan.chat -zidanduanxin.com -zidanduanxin.net -zidg.com -zidian8.com -zidianwang.com -zidoo.tv -zidootv.com -zifandiaosu.com -zifumao.com -zige365.com -zigecha.com -zigeer.com -zigqnx.com -ziguhonglan.com -zihai0351.com -zihai0535.com -zihai24.com -zihaixiaochengxu.com -zihexin.net -zihu.com -zihua01.com -zihuazhijia.com -ziisp.com -zijieapi.com -zijiecdn.com -zijiecdn.net -zijieimg.com -zijinfx.com -zijinji.com -zijinsuo.com -zijizhang.com -zikao-zikao.com -zikao.gd -zikao365.com -zikao5.com -zikaocqi.com -zikaogd.com -zikaoshu.net -zikaoshu.vip -zikaosw.com -zikeys.com -zikoo.com -ziku123.com -zikui-design.com -zilanwl.com -zilhua.com -zilian8.com -ziliaoge.com -ziliaoh.com -zilongame.com -zilongshanren.com -ziluolanh.com -zimacaihang.com -zimilan.com -zimoapps.com -zimu.me -zimukeji.com -zimushe.com -zimuzu.io -zimuzu.tv -zine.la -zinewow.com -zinffer.com -zing-api.com -zingke.com -ziniao.com -ziniusoft.com -zintao.com -zintow.com -zip118.com -zipadc.com -zipjpg.com -ziqiangxuetang.com -ziranren.com -ziroom.com -ziroomapartment.com -ziroomstay.com -zisea.com -zisen.com -ziseyiliao.com -zisha.com -zishahuyu.com -zishapot.com -zishuo.com -zishuovideo.com -zisia.org -zisuo.com -ziti163.com -zitiao.org -zitichina.com -ziticq.com -zitiguanjia.com -zitijia.com -zitixiazai.org -zituo.net -zivers.com -zivoo.com -ziwanyouxi.com -ziweifu.com -ziweihuan.com -ziwojianding.net -ziwork.com -ziwoyou.net -ziwufang.com -zixia.com -zixiaodao.com -zixiaomao.com -zixigua.com -zixijiaoshi.com -zixike.cc -zixuejie.com -zixuekaoshi.net -zixuntop.com -ziy.cc -ziyainfo.com -ziyan666.com -ziyanfoods.com -ziyanmm.com -ziyexing.com -ziyimall.com -ziyou.com -ziyou.studio -ziyoufa.com -ziyouwu.com -ziyuan.tv -ziyuan605.com -ziyuangou.com -ziyuanku.com -ziyuanm.com -ziyuanmaow.com -ziyuantun.com -ziyuen.com -ziyuewentao.com -ziyun.com -zizaike.com -zizhengfang.com -zizhuauto.com -zizhupark.com -zizhuyuangongyuan.com -zizisi.com -zizizizizi.com -zizzs.com -zj-idc.com -zj.com -zj01.com -zj123.com -zj186.com -zj2460.com -zj31.net -zj32.com -zj339.com -zj4444.com -zj96596.com -zjabank.com -zjaf.net -zjags.com -zjapk.com -zjaqxy.com -zjautoparts.com -zjbinya.com -zjbiz.net -zjbyte.com -zjca.org -zjcb.com -zjcbank.com -zjcdn.com -zjchina.org -zjchuguo.com -zjcic.net -zjcio.org -zjckw.org -zjcnbank.com -zjcrjzj.com -zjcuhb.com -zjcxbank.com -zjdashi.com -zjdata.net -zjdh.org -zjdybank.com -zjdydlc.com -zjdyjob.com -zje.com -zjedps.com -zjedu.org -zjfdc.net -zjft.com -zjgas.net -zjgctwh.com -zjgf88.com -zjghep.com -zjgjj.com -zjgqt.org -zjgrrb.com -zjgslb.com -zjgt.com -zjguji.com -zjgwy.org -zjgwyw.org -zjgzcpa.com -zjhangyin.com -zjhcbank.com -zjhejiang.com -zjhnlianzhong.com -zjhnrb.com -zjhualing.com -zjhui.net -zjhx520.com -zjhyrcb.com -zjhzyg.net -zji.net -zjibao.com -zjiecode.com -zjiis.com -zjimpact.com -zjipc.com -zjj17u.com -zjj21.com -zjjd.org -zjjgcyz.com -zjjgy.com -zjjizhi.com -zjjlvyou8264.com -zjjr.com -zjjsbank.com -zjjsit.com -zjjubao.com -zjjushu.com -zjjy.com -zjjzyxh.com -zjkangzh.com -zjkccb.com -zjkelan.com -zjkgjj.com -zjkings.com -zjknews.com -zjks.com -zjlcwg.com -zjldrcb.com -zjlottery.com -zjlsbz.com -zjlsjc.com -zjlvjie.com -zjlxtx.com -zjmax.com -zjmi-mall.com -zjminghong.com -zjmobile.com -zjmoney.com -zjmrhpt.com -zjnad.com -zjnrcb.com -zjolcdn.com -zjoldns.com -zjpark.com -zjpcedu.com -zjphrcb.com -zjpost.com -zjpubservice.com -zjqbj.com -zjqll.com -zjrc.com -zjrc.net -zjrcu.com -zjsaisi.com -zjscdb.com -zjscs.com -zjshuo.com -zjsight.com -zjsjtz.com -zjsr.com -zjstv.com -zjsxlt.com -zjsxrz.com -zjszbank.com -zjtbe.com -zjtcn.com -zjtdw.com -zjtlcb.com -zjtntd.com -zjtree.com -zjtxedu.org -zjugis.com -zjujournals.com -zjuqsc.com -zjut.cc -zjwater.com -zjwc168.com -zjwhhly.com -zjwk.com -zjwmw.com -zjwttools.com -zjwxbank.com -zjxc.com -zjxf119.com -zjxhgd.com -zjxpp.com -zjxqyy.com -zjxsbank.com -zjxwtoy.com -zjyanxing.com -zjyari.com -zjycpx.com -zjydt.com -zjyiot.com -zjyiqiao.com -zjyyang.com -zjyygy.com -zjzdgj.com -zjzfcj.com -zjzg.com -zjzhengding.com -zjzhitan.com -zjzj.org -zjzjhotel.com -zjzs.net -zjzsxb.com -zjzydns.com -zk2013.com -zk528.com -zk5u.com -zk71.com -zkailun.com -zkbedu.com -zkbhj.com -zkck.com -zkcmg.com -zkcrm.com -zkcserv.com -zkcx.com -zkdt.net -zkecopro.com -zkeys.com -zkf5.com -zkh.com -zkh360.com -zkhb.group -zkhcsoft.com -zkhcsy.com -zkii.net -zking.com -zkl2333.com -zkmob.net -zkoffcn.com -zkpk.org -zkrdlab.com -zkread.com -zkroom.com -zksoftwaresz.com -zkteco.com -zkteco.xin -zktimecube.com -zktools.net -zktw.com -zku.net -zkunet.com -zkungfu.com -zkuyun.com -zkx.cc -zkxblog.com -zkxlkj.net -zkxww.com -zkyai.com -zkydib.com -zkyl.vip -zkyouxi.com -zkyxls.com -zkzj.org -zl168.xyz -zl99.org -zlbaba.com -zlca.org -zlcool.com -zle.com -zlfedu.com -zlfind.com -zlg.com -zlgmcu.com -zlgpy.com -zlgsj.com -zlhelp.com -zlhome.com -zlhui.com -zlibs.com -zlimg.com -zlink-e.com -zlkb.net -zlketang.com -zlkj.fit -zllife.net -zllyun.com -zlog.cc -zlongad.com -zlongame.com -zlook.com -zlqh.com -zlqiao.com -zlscn.net -zlsin.com -zlsnet.com -zlsoft.com -zltianhen.com -zluren.com -zlvod.com -zlxiang.com -zlygu.com -zm1717.com -zmapp.com -zmaxfilm.com -zmaxhotels.cc -zmbg.com -zmccx.com -zmctc.com -zmdfdc.com -zmdyzyey.com -zmdz.com -zmeng.cc -zmeng123.com -zmengzhu.com -zmfx8.com -zmgov.com -zmgrcw.com -zmifi.com -zmingcx.com -zmirrordemo.com -zmister.com -zmjiudian.com -zmkm8.com -zmlearn.com -zmmdn.com -zmmoo.com -zmndjm.com -zmnds.com -zmnedu.com -zmnoa.com -zmnrz.com -zmobuy.com -zmonster.me -zmpal.com -zmren.com -zmrenwu.com -zmrgame.com -zmsq.com -zmt.me -zmtc.com -zmtiantang.com -zmtpc.com -zmtquan.com -zmufivehospital.com -zmumu.com -zmwbf.com -zmwo.com -zmwxxcx.com -zmxiazai.com -zmxiu.com -zmye5vly.com -zmzb.com -zmzjk.com -zn8.com -znba.net -znbo.com -znczz.com -zndata.com -zndlkj.com -zndns.com -znds.com -znds.net -zndsbbs.com -zndstec.com -zngm.com -znhospital.com -znimg.com -znj.com -znjchina.com -znjj.tv -znlzd.com -znonline.net -znpin.com -znqnet.com -znshuru.com -znsjw.com -zntvrom.com -zntx.cc -zntxt.com -znvren.com -znwb.com -znyp.com -znyseo.com -znyshurufa.com -znznet.net -zo-station.com -zoassetmanagement.com -zocai.com -zoe360.com -zoebon.com -zoform.com -zofund.com -zohead.com -zoioo.com -zoker.io -zokogo.com -zol-img.com -zol.com -zollty.com -zolojo.com -zolsky.com -zombiescat.com -zomiu.com -zomzone.com -zon100.com -zone139.com -zoneben.com -zoneidc.com -zoneker.com -zonemore.com -zonen-tech.com -zonepp.com -zoneve.com -zongft.com -zonghangsl.com -zongheng.com -zongheng001.com -zonghengke.com -zonghengxiaoshuo.com -zongming.net -zongs365.com -zongshenmotor.com -zongtiku.com -zongxiankj.com -zongyiconverge.com -zongyifile.com -zongyigame.com -zongyijia.com -zongyimobile.com -zongyionline.com -zongyiphone.com -zongyixun.com -zonhen.com -zonmai.com -zonst.com -zontes.com -zooafun.com -zoocer.com -zoofon.com -zoogooy.com -zookingsoft.com -zookparts.com -zoom-china.com -zoom3g.com -zoomerstudio.com -zoomeye.org -zoomlion.com -zoopda.com -zoosnet.net -zoossoft.com -zoossoft.net -zooszyservice.com -zootope.ink -zootui.com -zooyoo.cc -zoroli.com -zorrospray.com -zou.la -zoubiao.com -zoucheng.cc -zoucz.com -zoues.com -zouhong365.com -zoukankan.com -zoular.com -zoutu.com -zouzhiqiang.com -zowoyoo.com -zoxun.com -zoyoo.net -zp.do -zp0716.com -zp0737.com -zp365.com -zp515.com -zp910.com -zpad.cc -zpan.space -zpascal.net -zpaudit.com -zpb365.com -zpedu.org -zpfdc.com -zphj1987.com -zphlkj.com -zpidc.com -zpjiashuo.com -zplayworld.com -zpm.so -zppxba.com -zptong.com -zptq.com -zq12369.com -zq235.com -zq99y.com -zqbzs.cc -zqcloudgame.com -zqcyzg.com -zqdns37.vip -zqfxj.com -zqgame.com -zqgreen.com -zqic.net -zqids.com -zqjjr.com -zqlian.com -zqlx.com -zqnf.com -zqread.com -zqsign.com -zqsos.com -zqtong.com -zquan.cc -zquan.org -zqvip8.cc -zqwzc.com -zqxsc.com -zqygame.com -zqzyxx.com -zrahh.com -zrblog.net -zrbx.com -zrcaifu.com -zrcbank.com -zrfan.com -zrhsh.com -zring.com -zritc.com -zrj96.com -zrmm.com -zrtech.org -zrtg.com -zrthink.com -zrway.com -zrwjk.com -zrxss.com -zry97.com -zs-e.com -zs-lzlj.com -zs-rh.com -zs0572.com -zs310.com -zs666.com -zs6y.com -zs8q.com -zsaber.com -zsacg.com -zsaxi.com -zsbeike.com -zsbsoft.com -zscaishang.com -zsdk.cc -zsdlw.com -zsemall.com -zseoo.com -zsezt.com -zsfund.com -zsgd.com -zsgjs.com -zsglrj.com -zsgoodlighting.com -zsh.com -zsh8.com -zshield.net -zshl.com -zshlife.com -zshtys888.com -zshuoshao.online -zsia.org -zsihuo.com -zsincer.com -zsite.com -zsj18.com -zsjinqi.com -zsjuchuang.com -zsjxwj.com -zskoubei.com -zsksdw.com -zsksw.net -zslady.com -zsld86.com -zslefx.art -zslin.com -zslp021.com -zslyyn12.com -zslyzjj11.com -zsmama.com -zsppsj.com -zsr.cc -zssl.net -zsso03.com -zssph.com -zstack.io -zsucai.com -zsucai.net -zsufivehos.com -zsvsz.com -zswcn.com -zsweai.club -zswebao.shop -zswebao.xyz -zswhtl.com -zswkled.com -zsxq.com -zsxq100.com -zsyinlu.com -zsyknk.com -zsythink.net -zszq.com -zt-express.com -zt-info.com -zt1f.com -ztautoparts.com -ztbest.com -ztcadx.com -ztch.ltd -ztcia.com -ztcnwy.com -ztdzgf.net -zte.net -ztedevice.com -ztedevices.com -ztedu8.com -ztemap.com -ztems.com -ztestin.com -ztfans.com -ztfiber.com -ztfsec.com -ztfssc.com -ztgame.com -ztgy.org -zthsqx.com -zthxcf.com -ztinfoga.com -ztjoin.com -ztjy61.com -ztjystore.com -ztkm.com -ztky.com -ztmao.com -ztms.net -ztnews.net -zto.com -zto56.com -ztomember.com -ztqqt.com -ztrhmall.com -ztrong.com -ztsafe.com -ztt.cc -zttx-exp.com -zttx.com -ztu-crm.com -ztupic.com -ztups.com -ztvcar.com -ztwx.net -ztxh-bj.com -ztxz.cc -ztzhsq.com -ztzy.com -zuan-cheng.com -zuanchuang.org -zuanchuang9.com -zuanke8.com -zuankezu.com -zuanqianyi.com -zuanshi.com -zuanshitoupiao.com -zuber.im -zubunet.com -zuche.com -zuchecdn.com -zucp.net -zudequ.com -zudong.com -zufang.com -zufangzi.com -zugame.com -zugeliang01.com -zuhaofa.com -zuhaohao.com -zuhaowan.com -zuhaowan.net -zuhedaikuan.com -zuhuanhao.com -zui.com -zui88.com -zuiben.com -zuibook.com -zuicool.com -zuidabao.com -zuidaima.com -zuidongxi.com -zuifengyun.com -zuifuli.com -zuihaodaxue.com -zuihuimai.com -zuihuimai.net -zuiidea.com -zuijiao.net -zuijunshi.com -zuik.ren -zuikc.com -zuiku.com -zuikzy.com -zuimeia.com -zuimeiqidai.com -zuimeitianqi.com -zuimeix.com -zuiqiangyingyu.net -zuirede.com -zuishidai.com -zuitang.com -zuitu.com -zuiwan.net -zuixiaoyao.com -zuixinyiqi.com -zuixu.com -zuiyou.com -zuiyouxi.com -zujuan.com -zujuanyi.com -zuk.com -zuka666.com -zukang88.com -zuker.im -zulijian.com -zulinbao.com -zumbacn.com -zun.com -zun.gd -zun315.com -zun9.com -zunxiangqiming.com -zunxun.com -zunxun.net -zuobaike.net -zuobin.net -zuoche.com -zuocheng.net -zuodanye.com -zuodao.com -zuodashi.com -zuodia.com -zuogj.com -zuohaotu.com -zuohuodong.com -zuoji-scm.com -zuojiachubanshe.com -zuojiawang.com -zuojing.com -zuojj.com -zuokesteak.com -zuolinyouli.vip -zuoqu.com -zuoqudashi.net -zuosa.com -zuoshangbao.com -zuoshipin.com -zuoshouyisheng.com -zuotishi.com -zuotixia.com -zuowen.com -zuowen8.com -zuowening.com -zuowenjun.com -zuowenku.net -zuowenren.com -zuowens.com -zuowenwang.net -zuowenxue.com -zuowenzhitiao.com -zuoxiaolong.com -zuoye5.com -zuoyebang.cc -zuoyebang.com -zuoyehezi.com -zuoyesou.com -zuozu.net -zuozuobuy.com -zupig.com -zupuk.com -zupulu.com -zuqiuba.com -zuqiuba.net -zutianke.com -zuulee.com -zuxcgames.com -zuxiaoqi.com -zuxiaoyi.com -zuyouzu.com -zuyunfei.com -zuyushop.com -zuzheyong.com -zuzhirenshi.com -zuzitech.com -zuzuche.com -zving.com -zvv.me -zw110.com -zw3w.com -zw808.com -zw885.com -zwads.com -zwcad.com -zwcnw.com -zwcsm.com -zwda.com -zwdn.com -zwdns.com -zwds.cc -zwdsty.com -zwdu.com -zwduxs.com -zwechat.com -zwfw.com -zwgeek.com -zwhz.com -zwie2003.com -zwjczx.com -zwjhl.com -zwjk.com -zwjl.net -zwkf.net -zwlhome.com -zwoptical.com -zws2.com -zwtianshangm.com -zwtkl8.com -zwtxipr.com -zwwank.com -zwwdm.com -zwwltkl.com -zwwx.com -zwzdiy.cc -zwzrent.com -zwzsh.net -zwzyzx.com -zx-tour.com -zx0093.com -zx017.com -zx017.net -zx080.com -zx0818.com -zx100.com -zx10000.com -zx110.org -zx181.com -ws.ksmobile.net -ping.ubnt.com -wwwimages2.adobe.com -wwwimages.adobe.com -www8.hp.com -www5.djicdn.com -www4.djicdn.com -www3.djicdn.com -www2.djicdn.com -www1.djicdn.com -www.volvocars.com -www.viveport.com -www.vive.com -www.tzoo-img.com -www.thinkpad.com -www.st.com -www.samsung.com -www.redhat.com -www.nike.com -www.microsoft.com -www.htcsense.com -www.htc.com -www.gov.mo -www.globalsign.com -icbci.com.hk -www.dji.com -www.dell.com -www.dell-brand.com -www.com.my -www.analog.com -www.amd.com -www.akamai.com -www.adobe.com -www.djivideos.com -1888.com.mo -images.samsung.com -wmota.htcsense.com -account.htcvive.com -whoami.akamai.net -wegamex.com.hk -wechatpay.com.hk -we.dji.com -admin.edu.pl -vrbi.viveport.com -ups.ksmobile.net -upd.kaspersky.com -unsemi.com.tw -uk-odc.samsungapps.com -txwy.com.tw -turnitin.org.in -travel6.co.uk -tk.anythinktech.com -tencent.com.hk -swupdl.adobe.com -support.lenovo.com -support.globalsign.com -support-cn.samsung.com -airoha.com.tw -stormsend1.djicdn.com -alibabacloud.co.in -store.nike.com -store.dji.com -storage-asset.msi.com -alibabacloud.com.au -static.eprintsw.com -start.htcsense.com -start.htc.com -srm.dji.com -alibabacloud.com.hk -sinowealth.com.hk -sim.djicdn.com -alibabacloud.com.my -alibabacloud.com.sg -shop.globalsign.com -alibabacloud.com.tw -secure.globalsign.com -sdx.microsoft.com -scc.ssacdn.com -royalpay.com.au -rm-static.djicdn.com -qq.cn.com -api.anythinktech.com -qcc.qualcomm.com -product1.djicdn.com -apps.samsung.com -plus.dji.com -play.craft.moe -pingan.com.hk -icbcbr.com.br -peersafe.com.sg -passport.lenovo.com -asset.msi.com -owner-api.teslamotors.com -img.samsungapps.com -assets-global.viveport.com -ocsp2.globalsign.com -ocsp.globalsign.com -ntp.felixc.at -nexus.dell.com -assets.analog.com -nefficient.co.kr -my.st.com -mtk.com.tw -moto-one.com.hk -midea.com.tr -mgplay.com.tw -meizu.com.hk -m.travelzoo.com -m.dji.com -assets.uxengine.net -assets.volvocars.com -lazada.com.ph -lazada.com.my -lazada.co.th -lazada.co.id -ksair.com.tw -kingdee.com.tw -kaola.com.hk -jd.co.th -officecdn.microsoft.com -staticssl.image-gmkt.com -bankcomm.com.mo -xht.com.hk -icbc.com.vn -icbc.com.sg -icbc.com.qa -icbc.com.pk -icbc.com.pe -icbc.com.mx -icbc.com.mo -icbc.com.mm -icbc.com.la -icbc.com.kw -icbc.com.kh -icbc.com.es -icbc.com.au -icbc.co.nl -icbc.co.kr -icbc.co.jp -icbc.co.id -i.dell.com -hrintl.com.hk -hopetrip.com.hk -home.htcsense.com -home-cn.htcsense.com -hhtravel.com.tw -hao123.com.sg -h3c.com.hk -gw.craft.moe -bankcomm.com.tw -blog.htc.com -blog.htcvive.com -global-download.acer.com -geo.kaspersky.com -geo-prism.htcsense.com -geo-prism-cn.htcsense.com -gdssl.image-gmkt.com -fs.microsoft.com -fr-odc.samsungapps.com -fmcoprc.gov.mo -egg.htcsense.com -drivers.amd.com -dp.image-gmkt.com -download.windowsupdate.com -blog.vive.com -download.microsoft.com -docs.oracle.com -docs.microsoft.com -docs.djicdn.com -dl.ubnt.com -dl.djicdn.com -bosera.com.hk -dl-origin.ubnt.com -ditu.live.com -didimobility.co.jp -developer.vive.com -developer.microsoft.com -developer.htcvive.com -developer.dji.com -datk.anythinktech.com -datasecurity.htcsense.com -da.anythinktech.com -ctrip.com.hk -ctrip.co.th -ctrip.co.kr -ctrip.co.id -ctldl.windowsupdate.com -ctexcel.com.hk -crl.globalsign.net -crc.com.hk -contentstore.htcvive.com -conpak.com.hk -cnimg.elex.com -cncc.bingj.com -cn.windowssearch.com -cn.msi.com -cn.bing.net -cn.bing.com -cms-live.pandora.net -cmbi.com.hk -clubweixin.samsung.com -brother.co.jp -citics.com.hk -chinaunicom.com.hk -chinatelecom.com.mo -chinacache.cedexis.com -china.mintel.com -ccbintl.com.hk -cdn.samsung.com -cdn.razersynapse.com -ccmdl.adobe.com -cdn-static.farfetch-contents.com -ccmdls.adobe.com -cdn.shanghai.nyu.edu -slupdate.dlservice.microsoft.com -cdn.marketplaceimages.windowsphone.com -wl.dlservice.microsoft.com -ares.dl.playstation.net -vulcan.dl.playstation.net -streaming.vn.teslamotors.com -bj1.api.bing.com -zeus.dl.playstation.net -wscont2.apps.microsoft.com -lx.cok.elexapp.com -2-01-5830-0005.cdx.cedexis.net -neofussvr.sslcs.cdngc.net -wscont1.apps.microsoft.com -cloud-neofussvr.sslcs.cdngc.net -download.visualstudio.microsoft.com -lx3.cok.elexapp.com -poseidon.dl.playstation.net -qh.dlservice.microsoft.com -silverlight.dlservice.microsoft.com -si.cdn.dell.com -sgst.prod.dl.playstation.net -p.cdn.persaas.dell.com -gst.prod.dl.playstation.net -storeedgefd.dsx.mp.microsoft.com -dl.delivery.mp.microsoft.com -oemssl.cn.cdn.cloudflare.net -gs2.ww.prod.dl.playstation.net -gs.ww.np.dl.playstation.net -regexp:.+\.awsdns-cn-[0-9][0-9]\.biz$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.com$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.net$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.top$ -regexp:.+\.awsdns-cn-[0-9][a-e0-9]\.cn$ -regexp:.+\.azchcdn[a-s]\.com$ -regexp:.+\.azure-dns-([1-9]|10)\.cn$ -regexp:.+\.cdnhwc([1-9]|10)\.(cn|com)$ -regexp:.+\.dnse[0-5]\.(cn|com)$ -regexp:.+\.tdnsv([1-9]|1[0-5])\.(com|net)$ -regexp:\.(.+-)?ap-beijing(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-beijing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-chengdu(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-chengdu(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-chongqing(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-chongqing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-guangzhou(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-guangzhou(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-nanjing(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-nanjing(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-shanghai(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-shanghai(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:\.(.+-)?ap-shenzhen(-.+)?\.myqcloud\.com$ -regexp:\.(.+-)?ap-shenzhen(-.+)?\.tencentcos\.(cn|com(\.cn)?)$ -regexp:^(.+\.)*zh\.okaapps\.com$ -regexp:^.+-mihayo\.akamaized\.net$ -regexp:^a[1-5]\.mzstatic\.com$ -regexp:^cdn(-cn)?[1-4]?\.apple-mapkit\.com$ -regexp:^cdn-akamai-.+\.gog-services\.com$ -regexp:^cdn\d-epicgames-\d+\.file\.myqcloud\.com$ -regexp:^cl[1-5]-cdn\.origin-apple\.com\.akadns\.net$ -regexp:^cl[1-5]\.apple\.com$ -regexp:^epicgames-download\d-\d+\.file\.myqcloud\.com$ -regexp:^gog-cdn-.+\.footprint\.net$ -regexp:^images(-\d)?\.gog-statics\.com$ -regexp:^is[1-5](-ssl)?\.mzstatic\.com$ -regexp:^s[1-5]?\.mzstatic\.com$ diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt deleted file mode 100644 index ca4b1fc177b..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt +++ /dev/null @@ -1,19306 +0,0 @@ -full:3dns-1.adobe.com -full:3dns-2.adobe.com -full:3dns-3.adobe.com -full:3dns-4.adobe.com -full:3dns-5.adobe.com -full:3dns.adobe.com -full:abematv.akamaized.net -full:activate-sea.adobe.com -full:activate-sjc0.adobe.com -full:activate.adobe.com -full:activate.wip1.adobe.com -full:activate.wip2.adobe.com -full:activate.wip3.adobe.com -full:activate.wip4.adobe.com -full:adobe-dns-1.adobe.com -full:adobe-dns-2.adobe.com -full:adobe-dns-3.adobe.com -full:adobe-dns-4.adobe.com -full:adobe-dns.adobe.com -full:adobeereg.com -full:alt1-mtalk.google.com -full:alt2-mtalk.google.com -full:alt3-mtalk.google.com -full:alt4-mtalk.google.com -full:alt5-mtalk.google.com -full:alt6-mtalk.google.com -full:alt7-mtalk.google.com -full:alt8-mtalk.google.com -full:amp.akamaized.net -full:angle.com.tw -full:anime-rule34-world.b-cdn.net -full:aod-pod-uk-live.akamaized.net -full:api-p.videomarket.jp -full:api.viu.now.com -full:apl-hamivideo.cdn.hinet.net -full:apple.com.akadns.net -full:appleworldwidedeveloper.hb-api.omtrdc.net -full:appleworldwidedeveloper.sc.omtrdc.net -full:as-dash-uk-live.akamaized.net -full:as-hls-uk-live.akamaized.net -full:asahishimbun.sc.omtrdc.net -full:audio-ak-spotify-com.akamaized.net -full:audio4-ak-spotify-com.akamaized.net -full:avatargarenanow-a.akamaihd.net -full:az764295.vo.msecnd.net -full:azure.microsoft.com -full:azuremarketplace.microsoft.com -full:bcovlive-a.akamaihd.net -full:bcsecure01-a.akamaihd.net -full:beatselectronicsllc.tt.omtrdc.net -full:beck-online.beck.de -full:bingsettingssearch.trafficmanager.net -full:blizzard.nefficient.co.kr -full:blizzcon-a.akamaihd.net -full:blzddist1-a.akamaihd.net -full:blzddistkr1-a.akamaihd.net -full:blzmedia-a.akamaihd.net -full:blznav.akamaized.net -full:bnetcmsus-a.akamaihd.net -full:bnetproduct-a.akamaihd.net -full:bnetshopus.akamaized.net -full:brightcove.imgix.net -full:cbsi.live.ott.irdeto.com -full:cbsplaylistserver.aws.syncbak.com -full:cbsservice.aws.syncbak.com -full:cdn-spotify-experiments.conductrics.com -full:cdn.jsdelivr.net -full:cdngarenanow-a.akamaihd.net -full:chat.openai.com.cdn.cloudflare.net -full:chinapower.csis.org -full:cisco.evergage.com -full:ciscolivehls-i.akamaihd.net -full:client-teamviewer-com.trafficmanager.net -full:clients1.google.com -full:cloudsync-prod.s3.amazonaws.com -full:courier-push-apple.com.akadns.net -full:crl.microsoft.com -full:crl.versign.net -full:csis-prod.s3.amazonaws.com -full:d1k2us671qcoau.cloudfront.net -full:d29vzk4ow07wi7.cloudfront.net -full:d2anahhhmp1ffz.cloudfront.net -full:d33wubrfki0l68.cloudfront.net -full:databank.worldbank.org -full:database.asahi.com -full:default.exp-tas.com -full:deutschewelle.h-cdn.com -full:developer.microsoft.com -full:developers.facebook.com -full:dfp6rglgjqszk.cloudfront.net -full:dl.begellhouse.com -full:dlgarenanow-a.akamaihd.net -full:dlmobilegarena-a.akamaihd.net -full:download.visualstudio.microsoft.com -full:ds-linear-abematv.akamaized.net -full:ds-vod-abematv.akamaized.net -full:dtlgalleryint.cloudapp.net -full:e122475.dscg.akamaiedge.net -full:ea.tt.omtrdc.net -full:eaassets-a.akamaihd.net -full:ebay-25-assets.s3-us-west-1.amazonaws.com -full:ecapi-pchome.cdn.hinet.net -full:elib.maruzen.co.jp -full:ereg.adobe.com -full:ereg.wip.adobe.com -full:ereg.wip1.adobe.com -full:ereg.wip2.adobe.com -full:ereg.wip3.adobe.com -full:ereg.wip4.adobe.com -full:espn.api.edge.bamgrid.com -full:espn.hb.omtrdc.net -full:espndotcom.tt.omtrdc.net -full:f3b7q2p3.ssl.hwcdn.net -full:fandom.zendesk.com -full:faronics.kayako.com -full:fbcdn-a.akamaihd.net -full:firebase.google.com -full:firebase.googleapis.com -full:firebaseappcheck.googleapis.com -full:firebasedynamiclinks-ipv4.googleapis.com -full:firebasedynamiclinks-ipv6.googleapis.com -full:firebasedynamiclinks.googleapis.com -full:firebaseinappmessaging.googleapis.com -full:firebaseinstallations.googleapis.com -full:firebaselogging-pa.googleapis.com -full:firebaselogging.googleapis.com -full:firebaseperusertopics-pa.googleapis.com -full:firebaseremoteconfig.googleapis.com -full:firstsearch.oclc.org -full:fontshop-prod-responsive-images.s3.amazonaws.com -full:foxnewsplayer-a.akamaihd.net -full:gamedownloads-rockstargames-com.akamaized.net -full:gamer-cds.cdn.hinet.net -full:gamer2-cds.cdn.hinet.net -full:gigabyte2.azureedge.net -full:github-cloud.s3.amazonaws.com -full:gitlab-assets.oss-cn-hongkong.aliyuncs.com -full:hamivideo.hinet.net -full:hammerandchisel.ssl.zendesk.com -full:heads-ak-spotify-com.akamaized.net -full:heads4-ak-spotify-com.akamaized.net -full:himalaya-exchange.zendesk.com -full:hl2rcv.adobe.com -full:hlrcv.stage.adobe.com -full:homebrew.bintray.com -full:hpstore.corpmerchandise.com -full:hulu.playback.edge.bamgrid.com -full:i.jeded.com -full:img-prod-cms-rt-microsoft-com.akamaized.net -full:img-s-msn-com.akamaized.net -full:impala-media-production.s3.amazonaws.com -full:imperial.insendi.com -full:lgelectronics.122.2o7.net -full:licdn.cn.cdn20.com -full:linear-abematv.akamaized.net -full:link.theplatform.com -full:linkedin.sc.omtrdc.net -full:live-patreon-marketing.pantheonsite.io -full:lm.licenses.adobe.com -full:lmlicenses.wip4.adobe.com -full:lolstatic-a.akamaihd.net -full:mdn.mozillademos.org -full:media-rockstargames-com.akamaized.net -full:medone-education.thieme.com -full:misa-prod.s3.ap-northeast-1.amazonaws.com -full:mobilelive-hamivideo.cdn.hinet.net -full:mscrl.microsoft.com -full:mtalk.google.com -full:muse.jhu.edu -full:mwf-service.akamaized.net -full:na1r.services.adobe.com -full:nab.demdex.net -full:nationalaustraliaban.tt.omtrdc.net -full:netflix.com.edgesuite.net -full:nurofensk-prod-env.eu-west-1.elasticbeanstalk.com -full:nvidia.tt.omtrdc.net -full:ocsp.microsoft.com -full:officecdn-microsoft-com.akamaized.net -full:onekey.zendesk.com -full:oneocsp.microsoft.com -full:ood.opsource.net -full:openaiapi-site.azureedge.net -full:openaicom-api-bdcpf8c6d2e9atf6.z01.azurefd.net -full:openaicomproductionae4b.blob.core.windows.net -full:opgg-static.akamaized.net -full:origin-a.akamaihd.net -full:p-events-delivery.akamaized.net -full:p16-tiktokcdn-com.akamaized.net -full:paper-attachments.s3.amazonaws.com -full:pchomeonline.com.tw -full:pki.google.com -full:poshtestgallery.cloudapp.net -full:practivate.adobe -full:practivate.adobe.com -full:practivate.adobe.ipp -full:practivate.adobe.newoa -full:practivate.adobe.ntp -full:prd-priconne-redive.akamaized.net -full:production-openaicom-storage.azureedge.net -full:psg-int-centralus.cloudapp.net -full:psg-int-eastus.cloudapp.net -full:push-apple.com.akadns.net -full:pvr-hamivideo.cdn.hinet.net -full:qualcomm.sc.omtrdc.net -full:rink.hockeyapp.net -full:rtm.tnt-ea.com -full:sa78gs.wpc.edgecastcdn.net -full:scc.ott.hinet.net -full:scholar.google.ae -full:scholar.google.at -full:scholar.google.be -full:scholar.google.bg -full:scholar.google.ca -full:scholar.google.cat -full:scholar.google.ch -full:scholar.google.cl -full:scholar.google.cn -full:scholar.google.co.cr -full:scholar.google.co.id -full:scholar.google.co.il -full:scholar.google.co.in -full:scholar.google.co.jp -full:scholar.google.co.kr -full:scholar.google.co.nz -full:scholar.google.co.th -full:scholar.google.co.uk -full:scholar.google.co.ve -full:scholar.google.co.za -full:scholar.google.com -full:scholar.google.com.ar -full:scholar.google.com.au -full:scholar.google.com.bo -full:scholar.google.com.br -full:scholar.google.com.co -full:scholar.google.com.cu -full:scholar.google.com.do -full:scholar.google.com.ec -full:scholar.google.com.eg -full:scholar.google.com.gt -full:scholar.google.com.hk -full:scholar.google.com.ly -full:scholar.google.com.mx -full:scholar.google.com.my -full:scholar.google.com.ni -full:scholar.google.com.pa -full:scholar.google.com.pe -full:scholar.google.com.ph -full:scholar.google.com.pk -full:scholar.google.com.pr -full:scholar.google.com.py -full:scholar.google.com.sg -full:scholar.google.com.sv -full:scholar.google.com.tr -full:scholar.google.com.tw -full:scholar.google.com.ua -full:scholar.google.com.uy -full:scholar.google.com.vn -full:scholar.google.cz -full:scholar.google.de -full:scholar.google.dk -full:scholar.google.es -full:scholar.google.fi -full:scholar.google.fr -full:scholar.google.gr -full:scholar.google.hn -full:scholar.google.hr -full:scholar.google.hu -full:scholar.google.is -full:scholar.google.it -full:scholar.google.li -full:scholar.google.lt -full:scholar.google.lu -full:scholar.google.lv -full:scholar.google.nl -full:scholar.google.no -full:scholar.google.pl -full:scholar.google.pt -full:scholar.google.ro -full:scholar.google.ru -full:scholar.google.se -full:scholar.google.si -full:scholar.google.sk -full:scholar.googleusercontent.com -full:scholar.l.google.com -full:sni1dcb6gl.wpc.edgecastcdn.net -full:spotify.com.edgesuite.net -full:spotify.map.fastly.net -full:spotify.map.fastlylb.net -full:ssl-lvlt.cdn.ea.com -full:static-hamivideo.cdn.hinet.net -full:statics-marketingsites-eas-ms-com.akamaized.net -full:statics-marketingsites-eus-ms-com.akamaized.net -full:statics-marketingsites-wcus-ms-com.akamaized.net -full:steambroadcast.akamaized.net -full:steamcdn-a.akamaihd.net -full:steamcommunity-a.akamaihd.net -full:steammobile.akamaized.net -full:steampipe-kr.akamaized.net -full:steampipe-partner.akamaized.net -full:steampipe.akamaized.net -full:steamstore-a.akamaihd.net -full:steamusercontent-a.akamaihd.net -full:steamuserimages-a.akamaihd.net -full:steamvideo-a.akamaihd.net -full:t21.nikkei.co.jp -full:t21ipau.nikkei.co.jp -full:teamviewer.com.cdn.cloudflare.net -full:tesla-cdn.thron.com -full:tvcastlive-hamivideo.cdn.hinet.net -full:ubisoft-orbit-savegames.s3.amazonaws.com -full:ubisoft-uplay-savegames.s3.amazonaws.com -full:ubistatic3-a.akamaihd.net -full:ulrichsweb.serialssolutions.com -full:ve-dash-uk-live.akamaized.net -full:ve-uhd-push-uk-live.akamaized.net -full:venmo.s3.amazonaws.com -full:videos-rockstargames-com.akamaized.net -full:vmware.tt.omtrdc.net -full:vod-abematv.akamaized.net -full:vod-dash-uk-live.akamaized.net -full:vod-dash-ww-live.akamaized.net -full:vod-hls-uk-live.akamaized.net -full:vod-sub-uk-live.akamaized.net -full:vod-thumb-uk-live.akamaized.net -full:vod-thumb-ww-live.akamaized.net -full:vs-cmaf-push-uk-live.akamaized.net -full:vs-cmaf-pushb-ww-live.akamaized.net -full:vs-hls-push-uk-live.akamaized.net -full:vs-hls-pushb-uk-live.akamaized.net -full:vscode-sync-insiders.trafficmanager.net -full:vscode-sync.trafficmanager.net -full:vscode.blob.core.windows.net -full:vscode.search.windows.net -full:vsmarketplacebadge.apphb.com -full:weblive-hamivideo.cdn.hinet.net -full:widgets.stripst.com -full:wip.adobe.com -full:wip1.adobe.com -full:wip2.adobe.com -full:wip3.adobe.com -full:wip4.adobe.com -full:wrds-www.wharton.upenn.edu -full:wwis-dubc1-vip100.adobe.com -full:wwis-dubc1-vip101.adobe.com -full:wwis-dubc1-vip102.adobe.com -full:wwis-dubc1-vip103.adobe.com -full:wwis-dubc1-vip104.adobe.com -full:wwis-dubc1-vip105.adobe.com -full:wwis-dubc1-vip106.adobe.com -full:wwis-dubc1-vip107.adobe.com -full:wwis-dubc1-vip108.adobe.com -full:wwis-dubc1-vip109.adobe.com -full:wwis-dubc1-vip110.adobe.com -full:wwis-dubc1-vip111.adobe.com -full:wwis-dubc1-vip112.adobe.com -full:wwis-dubc1-vip113.adobe.com -full:wwis-dubc1-vip114.adobe.com -full:wwis-dubc1-vip115.adobe.com -full:wwis-dubc1-vip116.adobe.com -full:wwis-dubc1-vip117.adobe.com -full:wwis-dubc1-vip118.adobe.com -full:wwis-dubc1-vip119.adobe.com -full:wwis-dubc1-vip120.adobe.com -full:wwis-dubc1-vip121.adobe.com -full:wwis-dubc1-vip122.adobe.com -full:wwis-dubc1-vip123.adobe.com -full:wwis-dubc1-vip124.adobe.com -full:wwis-dubc1-vip125.adobe.com -full:wwis-dubc1-vip30.adobe.com -full:wwis-dubc1-vip31.adobe.com -full:wwis-dubc1-vip32.adobe.com -full:wwis-dubc1-vip33.adobe.com -full:wwis-dubc1-vip34.adobe.com -full:wwis-dubc1-vip35.adobe.com -full:wwis-dubc1-vip36.adobe.com -full:wwis-dubc1-vip37.adobe.com -full:wwis-dubc1-vip38.adobe.com -full:wwis-dubc1-vip39.adobe.com -full:wwis-dubc1-vip40.adobe.com -full:wwis-dubc1-vip41.adobe.com -full:wwis-dubc1-vip42.adobe.com -full:wwis-dubc1-vip43.adobe.com -full:wwis-dubc1-vip44.adobe.com -full:wwis-dubc1-vip45.adobe.com -full:wwis-dubc1-vip46.adobe.com -full:wwis-dubc1-vip47.adobe.com -full:wwis-dubc1-vip48.adobe.com -full:wwis-dubc1-vip49.adobe.com -full:wwis-dubc1-vip50.adobe.com -full:wwis-dubc1-vip51.adobe.com -full:wwis-dubc1-vip52.adobe.com -full:wwis-dubc1-vip53.adobe.com -full:wwis-dubc1-vip54.adobe.com -full:wwis-dubc1-vip55.adobe.com -full:wwis-dubc1-vip56.adobe.com -full:wwis-dubc1-vip57.adobe.com -full:wwis-dubc1-vip58.adobe.com -full:wwis-dubc1-vip59.adobe.com -full:wwis-dubc1-vip60.adobe.com -full:wwis-dubc1-vip61.adobe.com -full:wwis-dubc1-vip62.adobe.com -full:wwis-dubc1-vip63.adobe.com -full:wwis-dubc1-vip64.adobe.com -full:wwis-dubc1-vip65.adobe.com -full:wwis-dubc1-vip66.adobe.com -full:wwis-dubc1-vip67.adobe.com -full:wwis-dubc1-vip68.adobe.com -full:wwis-dubc1-vip69.adobe.com -full:wwis-dubc1-vip70.adobe.com -full:wwis-dubc1-vip71.adobe.com -full:wwis-dubc1-vip72.adobe.com -full:wwis-dubc1-vip73.adobe.com -full:wwis-dubc1-vip74.adobe.com -full:wwis-dubc1-vip75.adobe.com -full:wwis-dubc1-vip76.adobe.com -full:wwis-dubc1-vip77.adobe.com -full:wwis-dubc1-vip78.adobe.com -full:wwis-dubc1-vip79.adobe.com -full:wwis-dubc1-vip80.adobe.com -full:wwis-dubc1-vip81.adobe.com -full:wwis-dubc1-vip82.adobe.com -full:wwis-dubc1-vip83.adobe.com -full:wwis-dubc1-vip84.adobe.com -full:wwis-dubc1-vip85.adobe.com -full:wwis-dubc1-vip86.adobe.com -full:wwis-dubc1-vip87.adobe.com -full:wwis-dubc1-vip88.adobe.com -full:wwis-dubc1-vip89.adobe.com -full:wwis-dubc1-vip90.adobe.com -full:wwis-dubc1-vip91.adobe.com -full:wwis-dubc1-vip92.adobe.com -full:wwis-dubc1-vip93.adobe.com -full:wwis-dubc1-vip94.adobe.com -full:wwis-dubc1-vip95.adobe.com -full:wwis-dubc1-vip96.adobe.com -full:wwis-dubc1-vip97.adobe.com -full:wwis-dubc1-vip98.adobe.com -full:wwis-dubc1-vip99.adobe.com -full:www-cdn.icloud.com.akadns.net -full:zeenews-fonts.s3.amazonaws.com -and -zw -zuerich -zm -zippo -zara -zappos -za -yt -youtube -yokohama -yodobashi -yellowpages -ye -yandex -yamaxun -yahoo -xxx -xperia -xn--ygbi2ammx -xn--yfro4i67o -xn--y9a3aq -xn--xkc2dl3a5ee0h -xn--wgbl6a -xn--wgbh1c -xn--w4rs40l -xn--w4r85el8fhu5dnra -xn--s9brj9c -xn--rvc1e0am3e -xn--qxam -xn--qxa6a -xn--qcka1pmc -xn--q7ce6a -xn--pgbs0dh -xn--pgb3ceoj -xn--p1ai -xn--ogbpf8fl -xn--o3cw4h -xn--node -xn--nnx388a -xn--ngbe9e0a -xn--mix891f -xn--mix082f -xn--mgbx4cd0ab -xn--mgbtx2b -xn--mgbtf8fl -xn--mgbqly7cvafr -xn--mgbqly7c0a67fbc -xn--mgbpl2fh -xn--mgbi4ecexp -xn--mgbgu82a -xn--mgberp4a5d4ar -xn--mgberp4a5d4a87g -xn--mgbcpq6gpa1a -xn--mgbc0a9azcg -xn--mgbbh1a71e -xn--mgbbh1a -xn--mgbb9fbpob -xn--mgbayh7gpa -xn--mgbai9azgqp6j -xn--mgbai9a5eva00b -xn--mgbah1a3hjkrd -xn--mgbaam7a8h -xn--mgbaakc7dvf -xn--mgba7c0bbn0a -xn--mgba3a4fra -xn--mgba3a4f16a -xn--mgba3a3ejt -xn--mgb9awbf -xn--mgb2ddes -xn--lgbbat1ad8j -xn--l1acc -xn--kpry57d -xn--kprw13d -xn--kcrx7bb75ajk3b -xn--kcrx77d1x4a -xn--jlq61u9w7b -xn--jlq480n2rg -xn--j6w470d71issc -xn--j6w193g -xn--j1amh -xn--hxt035czzpffl -xn--hxt035cmppuel -xn--h2brj9c8c -xn--h2brj9c -xn--h2breg3eve -xn--gecrj9c -xn--fzys8d69uvgm -xn--fzc2c9e2c -xn--fpcrj9c3d -xn--flw351e -xn--e1a4c -xn--dkwm73cwpn -xn--d1alf -xn--cg4bki -xn--cckwcxetd -xn--b4w605ferd -xn--90ais -xn--90ae -xn--90a3ac -xn--80ao21a -xn--5su34j936bgsg -xn--55qx5d8y0buji4b870u -xn--54b7fta0cc -xn--4dbrk0ce -xn--45brj9c -xn--45br5cyl -xn--3oq18vl8pn36a -xn--3hcrj9c -xn--3e0b707e -xn--2scrj9c -xfinity -xerox -xbox -wtf -wtc -ws -woodside -wolterskluwer -wme -wine -windows -wilmar -williamhill -wien -wf -weir -webjet -weber -weatherchannel -weather -warman -walter -walmart -wales -vu -vons -volvo -volkswagen -vodka -vn -vlaanderen -vivo -viva -vistaprint -vista -visa -virgin -viking -vig -vi -vg -verisign -vegas -ve -vc -vanish -vanguard -vana -va -uz -uy -us -uol -unicorn -ummah -ultrabook -uk -ug -uconnect -ubs -ubank -ua -tz -tw -tvs -tv -tui -tt -trv -travelguard -travelersinsurance -travelers -travelchannel -transunion -translations -transformers -tradershotels -tr -toyota -total -toshiba -toray -tokyo -to -tn -tm -tl -tkmaxx -tk -tjx -tjmaxx -tj -tirol -tiffany -tiaa -thehartford -theguardian -thd -th -tg -tf -teva -terra -tennic -temasek -telefonica -telecity -tdk -td -tci -tc -tattoo -tatar -tatamotors -tata -target -taipei -tab -sz -symantec -sydney -sy -sx -swiss -swiftcover -swatch -svr -sv -suzuki -supersport -sucks -su -style -stockholm -stcgroup -stc -statoil -statefarm -statebank -starhub -staples -stada -st -ss -srt -sr -spiegel -sony -softbank -so -sncf -sn -smart -sm -sling -sl -skype -skydrive -sky -skolkovo -sk -sj -si -shriram -showtime -shopyourway -shia -shell -shaw -sharp -shangrila -sh -sg -sfr -sexy -sex -sew -seven -ses -sener -seek -seat -se -sd -scot -scor -scjohnson -schwarzgroup -schwarz -schmidt -schaeffler -scb -sca -sc -sbs -sbi -sb -saxo -sas -sapphire -sapo -sap -sanofi -sandvikcoromant -sandvik -samsung -samsclub -sakura -safeway -saarland -sa -ryukyu -rwe -rw -ruhr -ru -rs -rogers -rockwool -rocher -ro -rmit -rio -ril -rightathome -ricoh -richardli -rexroth -reliance -redumbrella -redstone -redken -re -ram -raid -qvc -quest -quebec -qtel -qa -py -pwc -pt -ps -prudential -pru -progressive -praxi -pramerica -pr -porn -polo -poker -pohl -pnc -pn -pm -playstation -pl -pk -pitney -piperlime -pioneer -pictet -piaget -philips -ph -pg -pfizer -pf -persiangulf -pe -pccw -payu -patch -patagonia -paris -panerai -panasonic -pamperedchef -pa -ovh -otsuka -osaka -origins -orientexpress -orange -oracle -open -onyourside -omega -om -olympus -ollo -oldnavy -olayangroup -olayan -okinawa -office -off -obi -nz -nyc -nu -ntt -nrw -nra -nr -np -nowtv -norton -northwesternmutual -northlandinsurance -nokia -no -nl -nissay -nissan -nikon -nike -aaa -nico -ni -nhk -ng -nfl -nf -nexus -nextdirect -next -newholland -aarp -neustar -abarth -abb -abbott -abbvie -netflix -abc -netbank -netaporter -nec -ne -nc -nba -natura -nationwide -naspers -nagoya -nadex -nab -na -able -mzansimagic -mz -my -mx -mw -mv -mutuelle -mutual -multichoice -mu -mtr -abudhabi -ac -mtpc -mtn -mt -msd -ms -mrporter -accenture -mrmuscle -mr -mq -mp -mozaic -movistar -moscow -mopar -montblanc -monash -mobily -mo -mnet -mn -acer -mma -mm -mlb -ml -mk -mitsubishi -mitek -mit -mint -mini -mil -mii -mih -microsoft -miami -mh -mg -mf -metlife -merckmsd -merck -meo -melbourne -md -mckinsey -mcdonalds -mcd -mc -aco -maybelline -mattel -matrix -maserati -marshalls -active -marriott -mango -ad -man -adac -maif -madrid -macys -ma -ly -lv -lupin -lundbeck -lu -lt -ls -lr -lplfinancial -lpl -lotte -loreal -london -loft -locus -locker -lk -lixil -livestrong -lipsy -linde -lincoln -lilly -lidl -liaison -li -lgbt -lexus -lego -lefrak -leclerc -lc -lb -latrobe -lat -lasalle -lanxess -landrover -lancome -lancia -lancaster -lamer -lamborghini -ladbrokes -lacaixa -la -kz -kyoto -kyknet -ky -kw -kuokgroup -ksb -krd -kr -kpn -kpmg -kp -adult -kone -konami -komatsu -koeln -kn -km -kiwi -kindle -kinder -kiehls -kia -ki -kh -kg -kfh -kerryproperties -kerrylogisitics -kerryhotels -kerastase -ke -kddi -justforu -juniper -jprs -jpmorganchase -jpmorgan -jp -joburg -jo -jnj -jmp -jm -jll -jlc -jio -jeep -je -jcp -jcb -java -jaguar -iwc -iveco -itv -itau -it -istanbul -ist -ismaili -islam -iselect -is -irish -ir -iq -ipiranga -io -intuit -intel -infy -infosys -infiniti -ae -in -imdb -imamat -im -aeg -il -ikano -iinet -ifm -aetna -ieee -af -ie -afamilycompany -id -ice -ibm -hyundai -hyatt -afl -hughes -hu -htc -ht -hsbc -hr -hotmail -hot -africa -africamagic -ag -honeywell -agakhan -honda -homesense -homegoods -homedepot -hn -hm -hkt -hk -hitachi -hisamitsu -hilton -hgtv -hermes -helsinki -heinz -hdfcbank -hdfc -ai -hbo -hangout -hamburg -halal -gy -aig -aigo -gw -guge -gucci -guardianmedia -guardianlife -guardian -gu -gt -gs -airbus -gree -grainger -gr -gp -gov -gotv -google -goog -goodyear -goodhands -goo -goldpoint -airtel -godaddy -gn -gmx -gmo -gmc -gmail -gm -globo -globalx -glean -gle -glade -gl -gi -gh -ggee -gg -gf -george -genting -gent -gecompany -gea -ge -gd -gcc -gbiz -gb -gay -garnier -gap -gallup -gallo -gal -ga -fujixerox -fujitsu -ftr -frontier -frontdoor -frogans -frl -fresenius -fr -fox -ford -foodnetwork -food -fo -fm -flsmidth -fls -flir -flickr -fk -fj -firmdale -firestone -finish -fido -fidelity -fiat -fi -ferrero -ferrari -fedex -farmers -fairwinds -fage -extraspace -everbank -eus -eurovision -eu -etisalat -et -esurance -es -erni -ericsson -er -epson -epost -akdn -emerson -emerck -eh -eg -al -ee -edu -edeka -ec -dz -dwg -dvag -durban -dupont -alcon -duns -dunlop -duck -alfaromeo -dubai -dtv -dstv -doosan -domains -doha -dodge -docomo -do -dnp -dnb -dm -dk -dj -diy -dish -discover -digikey -dhl -deutschepost -delta -deloitte -delmonte -dell -de -dclk -datsun -dating -dabur -allfinanz -allfinanzberater -allfinanzberatung -cz -cymru -cy -cx -cw -cv -cuisinella -cu -csc -crs -crown -cr -corsica -cookingchannel -connectors -conlogne -commbank -comcast -cm -clubmed -allstate -clinique -cl -ally -ck -cityeats -citi -citadel -cisco -cipriani -cimb -cialis -ci -chrysler -chrome -chloe -chk -alsace -alstom -chintai -chevy -chevrolet -chesapeake -chatr -chat -chase -chartis -changiairport -chanel -ch -cg -cfa -cf -cern -ceb -cd -cbs -am -cbre -cbn -cba -catholic -cat -casino -cashbackbonus -caseih -case -casa -cartier -caremore -caravan -capitalone -capetown -canon -canalplus -calvinklein -cadillac -ca -bzh -bz -by -bway -bw -bv -buick -bugatti -budapest -bt -bs -brussels -brother -bridgestone -bradesco -br -boston -bostik -bosch -boots -bofa -boehringer -bo -bnpparibas -bnl -bn -bmw -bms -bm -bloomingdales -bloomberg -blockbuster -blanco -bl -bj -bingo -amazon -bing -bible -bi -bharti -bh -bg -bf -bestbuy -berlin -bentley -beknown -beats -be -bd -bcn -bcg -bbva -bbt -bbc -bbb -bb -bayern -bauhaus -barefoot -barclays -barclaycard -barcelona -bar -bananarepublic -banamex -baby -ba -azure -az -axis -axa -americanexpress -americanfamily -ax -aws -aw -avianca -avery -auspost -audi -au -amex -amfam -athleta -amica -at -astrium -asia -asda -as -arte -aramco -arab -amp -ar -aquarelle -aq -apple -aol -ao -anz -anthem -amsterdam -ansons -android -jizzonline.com -toosexyvaginas.com -amzn.com -amznl.com -anacams.com -anaconda.cloud -anaconda.com -anaconda.org -anal-f.net -anal-pantyhose.com -anal.media -analamateursex.com -analcamshow.com -analdin.com -analfuckvideo.com -analhomeporn.com -anallivecams.com -analpornhouse.com -analpornonly.com -analpornosex.com -analqts.com -analsaga.com -analscreen.com -analtime.org -analvids.com -analytictech.com -anandtech.com -anb.org -ancensored.com -anchorfree.com -ancsconf.org -amtb-taipei.org -andfaraway.net -amsterdamluxescort.com -android-x86.org -android.com -androidify.com -androidplus.co -androidtv.com -andygod.com -andysparis.com -anfutong.com -angel-gto.com -angelfire.com -angola.org -angulardart.org -angularjs.org -anibooru.com -anidom.com -anilos.com -animal-hentai.com -animal-porn.net -animalforsex.com -animalincum.com -animalporn.me -animalpornxxx.me -animalsporn.net -animalzoosex.me -anime-pictures.net -anime-tube.pw -animecrazy.net -animedao-tv.com -animegal.net -animehentaihub.com -animeidhentai.com -animepornhd.com -animesex.me -animesexhq.com -animestigma.com -animezilla.com -aniscartujo.com -anistreaming.xyz -ankarazirvesi2018.com -annamilk.com -annatam.com -annstores.net -annualpelvicexam.com -annualreviews.org -anobii.com -anon-v.com -anon-v.lol -anonfiles.com -anonproxy.info -anontext.com -anonymitynetwork.com -anonymizer.com -anonymouse.org -anpopo.com -zzycdz.com -amsterdamhotescort.com -answering-islam.org -antarvasnaclips.com -antarvasnax.com -ams02.space -anthemgame.com -anthemthegame.com -anthonycalzadilla.com -anti1984.com -antichristendom.com -antiwave.net -anudetube.com -anybunny.org -anydesk.com -anyhentai.com -anyporn.com -anypornhd.com -anypornsexxx.com -anysex.com -anyshemale.com -anyxxx.me -anyxxx.pro -ams.org -ampproject.org -ao3.org -zzux.com -aofriend.com -aojiao.org -aokwholesale.net -ampproject.net -zzitube.com -aomedia.org -aomiwang.com -aorus.com -aoxx69.net -zzgays.com -zzcloud.me -zzcartoon.com -zyzc9.com -zyxel.com -zyns.com -zynamics.com -zynaima.com -zwtvusa.com -zweiporn.com -ap.org -ap0le.com -apa.org -apache.org -apartmentratings.com -apartments.com -apat1989.org -apetube.com -apexlegends.com -api-extractor.com -01.org -zvereff.com -api.news -zuola.com -apibay.org -zuobiao.me -apigee.com -apina.biz -apisof.net -apk-dl.com -apk.support -apkcombo.com -apkmirror.com -apkmonk.com -apkplz.com -apkpure.com -aple.com -aplestore.com -aplleipods.com -aplusvpn.com -apnews.com -apole.com -apornotube.net -aporntv.com -apornvideo.com -app-dynamics.com -app-measurement-cn.com -app-measurement.com -app-store.wang -zunked.com -02weqj32.com -zuckerberg.net -app0le.com -appbrain.com -appcloud.com -appdomain.cloud -appdownloader.net -appdynamics.com -appdynamics.info -appdynamics.org -appe-store.com -appexchange.com -appl-e.com -appl.com -appl4e.com -appla.com -ampproject.com -apple-cloudkit.com -apple-darwin.com -apple-darwin.net -apple-darwin.org -apple-dns.com -apple-dns.net -apple-enews.com -apple-expo.com -apple-hk.com -apple-imac.com -apple-inc.net -apple-livephotoskit.com -apple-mapkit.com -apple-online.com -apple-pay.com -apple-pay.wang -apple-store.net -apple-store.wang -apple-usa.net -apple.co -apple.com -zuckerberg.com -zteman.net -apple.me -apple.net -apple.news -apple.xn--czr694b -apple.xn--fiqs8s -apple.xyz -appleaccount.net -appleafrica.com -appleantilles.com -appleappstore.net -appleaustralia.com -applebk.net -applecarbon.com -applecare.cc -applecare.wang -applecensorship.com -applecentre.info -appleclassicipod.com -applecom.com -applecomputer-imac.com -applecomputer.com -applecomputerimac.com -applecomputerinc.info -applecoronavirus.com -appledaily.com -appledarwin.com -appledarwin.net -appleenews.com -appleexpo.info -applefilmaker.com -applefilmmaker.com -applefinalcutproworld.com -applefinalcutproworld.net -applefinalcutproworld.org -applefruity.com -applehongkong.com -appleid-applemx.com -appleid-iclou.com -appleid.com -appleimac.com -appleinclegal.com -appleinsider.com -appleiphone.net -appleiphonecell.com -appleipodsettlement.com -appleiservices.com -applelink.com -applemagickeyboard.com -applemasters.info -applemusic.co -applemusic.com -applemusic.wang -applemusicconnect.com -applemusicfestival.com -applemx-icloud.com -applenewsformat.com -appleone.audio -appleone.blog -appleone.cloud -appleone.club -appleone.community -appleone.film -appleone.guide -appleone.host -appleone.space -appleone.tech -appleone.website -appleonline.com -appleonline.net -appleoriginalproductions.com -applepay.info -applepaycash.net -applepaymerchantsupplies.info -applepaysupplies.com -applepaysupplies.info -applepaysupplies.net -applepencil.net -applepodcasts.com -applereach.com -applereach.net -applescreensavers.com -applescript.info -appleshare.info -applestor.com -applestore.cc -applestore.com -applestore.me -applestore.net -applestore.wang -applestoreonline.com -applesurveys.com -appleswift.com -appletaiwan.com -appletips.net -appletv.com -appletv.wang -applewallet.com -applewatch.wang -applewatchedition.com -applewatchseries3.net -applewatchsport.com -appleweb.net -applexpo.net -applezh.com -applf.com -applfe.com -applicationinsights.net -applle.com -applw.com -appmediagroup.com -approvedusedbmw.com -zsrhao.com -appsflayer.com -appshopper.com -appsocks.net -appsonebay.net -appspot.com -appule.com -appye.com -appyq.com -apress.com -aps.org -aptoide.com -apture.com -apyle.com -amplifyframework.com -amplifyapp.com -amp.dev -zspeeder.me -amourangels.com -arabianchicks.com -arabidopsis.org -arabnek.com -arabxn.com -arabxnxx.org -arabysexy.com -arabysexy.mobi -amoiist.com -arcadewank.com -arcgis.com -arcgisonline.com -archive-it.org -archive.org -archive.today -archiveofourown.com -archiveofourown.net -archiveofourown.org -archlinux.org -archlinuxarm.org -arctosia.com -area120.com -areca-backup.org -arewereadyyet.com -areyoucreditwise.com -argotunnel.com -arirangmeari.com -armovs.com -arphic.com -art1lib.com -art4tibet1998.org -amodoll.com -artixlinux.org -artnudegalleries.com -artoferotica.info -artofpeacefoundation.org -artstation.com -artstationmedia.com -artstor.org -artsy.net -arxiv.org -amnyemachen.org -asacp.org -asagaku.com -asahi.com -ascelibrary.org -amnestyusa.org -asebay.com -asexdoll.com -asextube.net -asha.org -ashemaletube.com -ashemaletv.com -ashleysageellison.com -amnesty.org -asia-gaming.com -asiacrazy.xyz -asiaharvest.org -asiamoviepass.com -asian-anal-sex.com -asian-max.com -asianage.com -asianboygay.com -asiancamgirllive.com -asiancamly.com -asianfreeporn.net -asiangfvideos.com -asiangirlsnextdoor.com -asianphd.com -asianporn.rest -asianpornjav.com -asianpornlabs.com -asianpornmovies.com -asianpornonly.com -asianporntrends.com -asianprivatetube.com -asianscreens.com -asiansexdiary.com -asiansmaster.com -asianspiss.com -asianthumbs.org -asianwifeporn.com -asianxxxjoy.com -asianxxxvideos.cc -asiaone.com -asiatgp.com -askfacebook.net -askfacebook.org -asknudes.com -askstudent.com -askubuntu.com -askynz.net -asm.org -asme.org -asmhentai.com -asminternational.org -asmrbuluo.com -asn-online.org -asp-cc.com -asp.net -aspbjournals.org -aspenpublishing.com -aspnetcdn.com -asproex.com -asproexapi.com -asredas.com -ass4all.com -assembla.com -assesphoto.com -assetsadobe.com -assimp.org -assistirhentai.com -assoass.com -associates-amazon.com -assylum.com -astm.org -astrill.com -amiibo.com -asus.com -amigobbs.net -atandt.com -atasale.com -atchinese.com -atdmt.com -atdmt2.com -ateam-oracle.com -atgfw.org -athenaeizou.com -amiblockedornot.com -atkgallery.com -atlanta168.com -atlantaminidealers.com -atlasdmt.com -atlasonepoint.com -atlaspost.com -atlassian.com -atlassian.net -atnext.com -atos.net -atscaleconference.com -att-bundles.com -att-idns.net -att-japan.com -att-mail.com -att-promotions.com -att-rsvp.com -att.com -att.jobs -att.net -attalascom.com -attbelieves.com -attbusiness.net -attcenter.com -attcollaborate.com -attdns.com -attdns.net -attexperts.com -attglobal.net -attinnovationspace.com -attinternetservice.com -attjoy.com -attnetclient.com -attonlineoffers.com -attproxy.com -attpublicpolicy.com -attpurchasing.com -attsavings.com -attspecial.com -attssl.com -attstadium.com -attsuppliers.com -atttvnow.com -attuverseoffers.com -attuverseonline.com -attvoip.com -attwatchtv.com -attwifi.com -attwirelessinternet.com -attwirelessonline.com -attwirelesssolutions.com -atubex.com -atypi.org -amerikiskhma.com -aucheapbeats.com -amerikayidzayn.com -audible.com -audiencenetwork.com -audiobeatsau.com -audiobeatsbydre.com -audiomonsterbeatsonline.com -auntymaza.com -auricularemonsterbeats.com -auricularesbeatsbaratosshop.com -auricularesbeatsmarkt.com -auroraoss.com -ausbeatsbydrdre.com -amerikaovozi.com -auth0.com -authorizeddns.net -authorizeddns.org -authorxml.com -authy.com -autodesk.com -autodraw.com -autumn-jade.com -av-baron.com -av-channel.com -av-e-body.com -av-th.net -av-top.com -av.com -av.movie -zsh.org -av11.org -av1688.cc -av234567.com -av369.net -av6k.com -avaaz.org -zqqpwz.com -avbebe.com -avcar.vip -avcens.xyz -avcnn.com -avcool.com -avcrempie.com -avdudu.top -avdwang.xyz -avelip.com -aventertainments.com -amerikaninsesi.org -avfantasy.com -avfox.cc -avg.com -avgigi.com -avgle.com -avgle.net -avgod.club -avh.world -avhbo.com -avhd101.com -avhome.one -amerikaninsesi.com -avidemux.org -avinetworks.com -avinin.com -avizoon.site -avizoone.com -avjb.com -avjoy.me -avlulu.cc -avmo.pw -avmoo.click -avmoo.com -avmoo.net -avmoo.pw -avn.com -avnana5.com -avoision.com -avpanda.cc -avriri.top -avseesee.com -avsforum.com -avstar.me -avstar01.me -avstar02.me -avstar03.me -avstar04.com -avstar04.me -avstar05.me -avstar06.me -avstar07.com -avstar07.me -avstar09.com -avstar09.me -avstar1.com -avstar2.com -avstar3.com -avstar4.com -avstar5.com -avstar6.com -avstar8.com -avstar9.com -avwong.com -avwto.com -avxde.org -avxlive.icu -avyahoo.com -americasvoice.news -awayoutgame.com -aweencore.com -awempire.com -awetv.com -awflapp.top -americanunfinished.com -aws-iot-hackathon.com -awsautopilot.com -awsautoscaling.com -awsbraket.com -awscommandlineinterface.com -awsedstart.com -awseducate.com -awseducate.net -awseducate.org -awsglobalaccelerator.com -awsloft-johannesburg.com -awsloft-stockholm.com -awssecworkshops.com -awsstatic.com -awsthinkbox.com -awstrack.me -awstrust.com -americangreencard.com -amebaowndme.com -axios.com -amebaownd.com -axureformac.com -ayshdade.info -ayshdee.xyz -ayudanintendo.com -amebame.com -azadiradio.com -azadliq.org -azathabar.com -azatliq.org -azattyk.org -azattyq.org -azerimix.com -aziani.com -aznude.com -amdfanstore.com -azure-devices-int.net -azure-devices.net -azure-dns.com -azure-dns.info -azure-dns.net -azure-dns.org -azure-mobile.net -azure-sphere.com -azure-test.net -azure.com -azure.net -azurecomcdn.net -azurecomm.net -azurecosmos.net -azurecosmosdb.com -azurecosmosdb.info -azurecosmosdb.net -azuredatabricks.net -azuredevopslaunch.com -azuredigitaltwin.com -azuredigitaltwins.com -azuredigitaltwins.net -azuredns-prd.info -azuredns-prd.org -azureedge-test.net -azureedge.net -azurefd.net -azureiotcentral.com -azureiotsolutions.com -azureiotsuite.com -azureplanetscale.info -azureplanetscale.net -azureserviceprofiler.com -azuresmartspaces.net -azurestackvalidation.com -azurewebsites.net -b-eroland.net -b-ok.cc -b-ok.global -b-ok.org -b0ne.com -b3boos.com -b3bos.com -b6b33.com -amd.com -baazee.com -babble.com -babecentrum.com -babeimpact.com -babepedia.com -babes.com -babes34.com -babes34.pro -babesandbitches.net -babesandgirls.com -babesandstars.com -babesaround.com -babesbang.com -babesinporn.com -babesmachine.com -babesnetwork.com -babesofindia.com -babesource.com -babestube.com -babosas.com -babushky.club -amazonworkdocs.com -babycondom.com -babylonbee.com -babyzone.com -backchina.com -backdoorlesbians.com -backroomcastingcouch.com -backtotiananmen.com -bacon.com -badaas.com -badasianpussy.com -badgen.net -badiucao.com -badjojo.com -badoinkvr.com -badoo.com -badsexygirl.com -badteenspunished.com -badvirtue.com -baeb.com -bag-glasses1.com -baicaonetwork.com -baijie.org -bailandaily.com -baixing.me -baizhi.org -ballbustingtube.com -baltimorebmw.com -bamgrid.com -bamtoki.com -amazonvideodirect.com -banana-vpn.com -amazonvideo.com -banatal3arab.com -banatfun.com -bandag.cc -bandag.com -bandcamp.com -bandgirlz.com -bandpage.com -bandwagonhost.com -bang-movies.com -bangbros.com -bangbrosnetwork.com -bangchen.net -bangdream.space -bangher.net -bangkokbangers.com -bangkokpost.com -bangkokstreetwhores.com -bangyoulater.com -bangyourwife.com -bankmobilevibe.com -banned.video -bannedbook.net -bannedbook.org -bannednews.org -banorte.com -amazonvideo.cc -baraero.com -baramangaonline.com -amazontrust.com -amazonstudiosguilds.com -amazonses.com -amazonsdi.com -barefootnetworks.com -barelist.com -barenakedislam.com -bareporno.com -barfuck.com -barium-enema.com -barkadahansasmartone.com -barrons-advisor.com -barrons-conferences.com -barrons.com -baselinestudy.com -baselinestudy.org -basilisk-browser.org -bastillepost.com -bastropfirestone.com -baterias-hp.com -batsa.me -battle.net -battlebreakers.com -battlefield.com -battlefield1943.com -battlefield3.com -battlefield4.com -battlefield5.com -battlefieldbadcompany2.com -battlefieldheroes.com -battlefieldv.com -battleforcecomix.com -battlefront2.com -battlefrontii.com -battlelog.com -amazonprimevideos.com -baxsound.com -bayareabmw.com -amazonpay.com -bayvoice.net -bazel.build -amazonlumberyard.wang -bb33.net -amazonliterarypartnership.com -bbbaihu.vip -amazonlaunchpad.com -bbc-anal.com -bbc-reporting-api.app -bbc.com -bbcchinese.com -bbcpersian.com -bbcpornonly.com -bbcverticals.com -bbestmall.com -bbgevent.com -bbgwatch.com -bbkz.com -bbnradio.org -bbs-tw.com -zozotown.com -zorrovpn.com -zorglist.com -zopim.com -zophar.net -zoozle.net -zoozhamster.com -zooyouporn.com -zooxxxsexporn.red -zootube1.com -zootool.com -zooskoolvideos.com -zoosexnet.com -zoosexfarm.com -bbsdigest.com -bbsfeed.com -bbsland.com -bbsmo.com -bbsone.com -amazonimages.com -bbthat.com -bbtoystore.com -amazonianblog.com -bbwmilftube.com -bby.com -bbycloud.com -bbycontent.com -bbycontent.net -bbyintl.com -bbystatic.com -bcbits.com -bcchinese.net -amazonfctours.com -bcicdn.com -bcmorning.com -amazondevicesupport.com -bcove.video -bcrncdn.com -bcvp0rtal.com -bcy01.com -amazonbusinessblog.com -bdawnvr.xyz -bdn.dev -bdsm-mov.net -bdsm.com -bdsm123.xyz -bdsmboard.org -bdsmbunker.com -bdsmcafe.com -bdsmland.org -bdsmlibrary.com -bdsmlr.com -bdsmpornonly.com -bdsmsexgame.com -bdsmstreak.com -bdsmtubexxx.com -bdsmtv.cc -bdsmvideos.net -amazonbusiness.org -beaconevents.com -beascoremodel.com -beastiegals.com -beastysexlinks.com -beastythumbs.com -beatbd.com -beatbydre2013.com -beatbydreheadphonesonsale.com -beatbydrekopen.com -beatbydremonster.com -beatbydreuk2014.com -beatdrdres.com -beatfactoryoutlets.com -beatmonstersaustralia.net -amazonaws.com -beats-by-dre-australia.com -beats-bydrdre.net -beats-bydre-mall.com -beats-bydrecheapsale.com -beats-bydreoutletonline.com -beats-bydreoutletsale.com -beats-bydreoutletsale.net -beats-bydreoutletssale.net -beats-bydrestore.com -beats-bydreuk.com -lhasocialwork.org -beats-dre-us.com -beats-headphones-buy-cheap.com -beats-sale.com -beats-seller.com -beats-soaho.com -beats1.cc -beats123.com -beats4.net -beats4outlets.com -beats4salecheap.com -beatsallsale.com -beatsaudifonos.com -beatsaudiobydre.com -beatsaudiobydre.net -beatsaudios.net -beatsbeatsmonster.com -beatsbestdeals.com -beatsblackfridaydeals.net -beatsblackfridayretails.com -beatsboxingdayuksale.com -beatsbydrdre-headphones.com -beatsbydrdre-officials5.com -beatsbydrdre-online.com -beatsbydrdre-onsale.com -beatsbydrdre-store.com -beatsbydrdre4sale.com -beatsbydrdrebiz.com -beatsbydrdrecustom.com -beatsbydrdredanmark.com -beatsbydrdremall.com -beatsbydrdreoutlet.com -beatsbydrdres.com -beatsbydrdresale.net -beatsbydrdrestore.com -beatsbydrdreus.com -beatsbydre-beatsheadphone.com -beatsbydre-chen.com -beatsbydre-club.com -beatsbydre-headphones.com -beatsbydre-headphonesshop.com -beatsbydre-mall.com -beatsbydre-outlet.com -beatsbydre-outletsale.net -beatsbydre-outletstore.com -beatsbydre-sell.com -beatsbydre-store.com -beatsbydre-studio.com -beatsbydre-us.com -beatsbydre2081.com -beatsbydre411.com -beatsbydre4usales.com -beatsbydreauofficial.com -beatsbydreausale.net -beatsbydreaustralia-sale.com -beatsbydreaustraliaonline.com -beatsbydreaustraliaonlines.com -beatsbydreaustraliasales.com -beatsbydrebeatsby.com -beatsbydreblackfriday2013.com -beatsbydreblackfridaypro.com -beatsbydreboxingdayca.com -beatsbydrecasquesfr.com -beatsbydrecheap-outletstore.com -beatsbydrecheaper.com -beatsbydrecheaponlinesales.com -beatsbydrecolors.com -beatsbydrecustomwireless.com -beatsbydrecybermondaydeals2013.com -beatsbydrecybermondaydeals2013.net -beatsbydredanmarks.com -beatsbydredealsblackfriday.com -beatsbydredealscybermonday.com -beatsbydrediscount.com -beatsbydrediscountonline.net -beatsbydredr.com -beatsbydreexecutivesale.com -beatsbydreformall2013-nl.com -beatsbydreforsalesonline.com -beatsbydreforshop2013-nl.com -beatsbydreforstore.com -beatsbydreforyououtlet.com -beatsbydrefr.com -beatsbydrefrcasquepascher.com -beatsbydrefriday.com -beatsbydregot.com -beatsbydrehd.com -beatsbydrehd.net -beatsbydreheadphones-nz.com -beatsbydreheadphonesolo.com -beatsbydrehut.com -beatsbydreinexpensive.com -beatsbydreireland-sales.com -beatsbydreirelandonlines.com -beatsbydreirelandsale.com -beatsbydreirelandsonline.com -beatsbydremall2013.com -beatsbydremonsteraustralia.com -beatsbydrenls.com -beatsbydrenorge1.net -beatsbydreofficialdanmark.com -beatsbydreoksale.com -beatsbydreol.com -beatsbydreonlie2013-nl.com -beatsbydreonlines-ireland.com -beatsbydreonlines-uk.com -beatsbydreonlinesale-nz.com -beatsbydreoordopjes.com -beatsbydreoslo.com -beatsbydreoutletsale.com -beatsbydreoutletscheap.com -beatsbydrerealstore.com -beatsbydres-shop.com -beatsbydresale-uk.com -beatsbydresalemall2013.com -beatsbydresaleonlines-nz.com -beatsbydresalesonline-australia.com -beatsbydresdanmark.net -beatsbydreshop-uk.com -beatsbydreshops.net -beatsbydresingapores.com -beatsbydresingaporesale.com -beatsbydresold.com -beatsbydresolohdonline-canada.com -beatsbydresonline-nz.com -beatsbydrespeakers.com -beatsbydressale.com -beatsbydressolo.com -beatsbydresstudio.com -beatsbydrestorevip.com -beatsbydrestudio-australia.com -beatsbydrestudio.com -beatsbydretoutlet.com -beatsbydreuk.com -beatsbydreuk.net -beatsbydreus.com -beatsbydrevipde.com -beatsbydrew.com -beatsbydrsmonsterinusa.com -beatsbymusic.net -beatsbysdrbre.com -beatsbysdrdres.com -beatscasque-france.com -beatscheap-nz.com -beatscheap-uk.com -beatscheapforsale.com -beatscollection2014.com -beatscustomblackfriday.com -beatsdanmark2013.com -beatsdrdre-headphones.com -beatsdrdre-it.com -beatsdrdre-solo.com -beatsdrdre2014.com -beatsdrdrecuffie.net -beatsdrdrekaufenschweiz.net -beatsdrdreneon.com -beatsdre-monster.com -beatsdre.net -beatsdre4cheap.com -beatsdrecheap.com -beatsdredreheadphones.com -beatsdreforsale.com -beatsdreinau.com -beatsdremonster-uk.com -beatsdrenewcolorful4usale.com -beatsdreoutletsale.com -beatsdresale2013.com -beatsdresalestore.com -beatsdresolo2013.com -beatsdreus.com -beatsearbudsheadphoness.com -beatselectronic.net -beatselectronics.com -beatsep.com -beatsep.net -beatsfacstore.com -beatsfactoroutlets.com -beatsfactorycollection.com -beatsfactoryoutles.com -beatsforcheap-usa.com -beatsforme.com -beatsfranceofficiel.com -beatsheadphones-discount.com -beatsheadphones1.com -beatsheadphones2u.com -beatsheadphonesale.com -beatsheadphonesdealer.com -beatsheadphonesforcheap.net -beatsheadphonesonline.com -beatsheadphoness.com -beatsheadphonestudio.com -beatsheadphonesusamall.com -beatshopuk.com -beatsincanada.com -beatsinsingapore.com -beatsireland.net -beatsjoy.com -beatsmonstersales.com -beatsmusic.com -beatsmusic.wang -beatsneon.com -beatsnzsale.com -beatsodre.com -beatsofdre-usa.com -beatsonblackfriday2013.com -beatsone.net -beatsoutlet.net -beatsoutletanytime.com -beatsoutletonlines.com -beatspascher-bydre.com -beatspascher-fr.net -beatspascher.net -beatspaschers.net -beatspillnewcolor.com -beatspills.com -beatspromonsterjp.com -beatspromotions.com -beatssales.com -beatssaleus.com -beatssaustraliabuy.com -beatssbyaustralia.com -beatssbydredanmark.com -beatsshop-uk.com -beatsshop-usa.com -beatsshopstore.com -beatssingapores.com -beatssingaporeshop.com -beatsstudiohodetelefoner.com -beatsstudiosite.com -beatstoreusa.com -beatsua.com -beatswirelesscheap.com -beatswirelesscuffie.com -beatthatquote.com -beautifulandbusty.com -beautyescortsamsterdam.com -bebo.com -becomeindex.com -bedstegratisporno.com -beeg.com -beeg.rest -beegfree.com -beejp.net -beevpn.com -befuck.com -befuck.net -begin-trade.com -behance.net -behindkink.com -beibao.com -beijing1989.com -beijing2022.art -beijingnike.com -beijingspring.com -beijingzx.org -beiyongzhan1.com -bejav.net -bejeweledstars.com -bejewled-stars.com -amazonaws-china.com -belamionline.com -bell.wiki -bellebound.com -bellesa.co -bellotube.com -bellsouth.net -bemywife.cc -benaughty.fun -bengalisexvideos.com -benliton.com -amazonauthorinsights.com -beric.me -berkanawireless.com -amazonalexavoxcon.com -berlincompanions.com -berlintwitterwall.com -best-sex-games.com -best3dhere.com -bestamateurcumshots.com -bestbeats4u.com -bestbhy.com -amazon.red -bestbuy-audio.com -bestbuy-communityrelations.com -bestbuy-giftcard.info -bestbuy-int.com -bestbuy-jobs.com -bestbuy.com -bestbuy.info -bestbuy24x7solutions.com -bestbuybusiness.com -bestbuybusinessadvantageaccount.com -bestbuycanada.com -bestbuycharityclassic.com -bestbuycoffeemakers.com -bestbuyethics.com -bestbuygsm.com -bestbuyideax.com -bestbuyphotoworkshoptours.com -bestbuyrewards.com -bestbuys.com -bestbuysgeeksquad.com -bestbuysolutions.net -bestbuystores.com -bestbuytradein.com -bestbuyus.com -bestcamsites.net -besterpornos.com -bestforchina.org -bestfreecams.club -bestfreesexgames.com -bestfreetube.net -bestgames-2022.com -bestgore.com -besthandjobporn.com -besthentaitube.com -bestiality.guru -bestialitysextaboo.com -bestiphonestuff.com -bestjapanesepornsites.com -bestjavporn.com -bestjavporn.net -bestkinky.com -bestlistofporn.com -bestmallawards.com -bestpornclip.com -bestporncomix.com -bestporngames.com -bestpornsites.guide -bestpornstardb.com -bestporntube.me -bestpremiumpornsite.com -bestsexcam.com -bestshoesale2014.net -besttitstube.com -besttube4you.com -bestvpn.com -bestvpnanalysis.com -bestvpnserver.com -bestvpnservice.com -bestvpnusa.com -bestxxxsites.com -besuty99.com -besztbuy.com -bet365.com -betfair.com -beth.games -bethesda.net -bethesdagamestudios.com -bethsoft.com -betterexplained.com -betterhdporn.com -betternet.co -betternike.com -bettervpn.com -bettween.com -betvictor.com -beurettesvideo.com -bewww.net -bexjt5wz.xyz -bextbuy.com -beyondcore.com -beyondfirewall.com -amazon.jobs -bffshd.com -bfnn.org -amazon.dev -bgov.com -bgvpn.com -amazon.com -amazon-launchpad.com -amazon-lantern.com -bianlei.com -biantailajiao.com -biaoqs.xyz -biaoqs1.xyz -biaoqs2.xyz -amazon-jp-recruiting.com -biblesforamerica.org -bibox.com -bic2011.org -bidbay.com -bidong25.com -bidong9.com -bidorbuyindia.com -biedian.me -big.one -bigbeans.solutions -bigbigshop.com -bigblackdicklover.com -bigboobbundle.com -bigboobsalert.com -bigboobsandhotsex.com -bigboobsonline.org -bigboobspov.com -bigboobswives.com -bigboss.video -bigbuckbunny.org -bigcharts.com -bigcocker.com -bigdick.com -bigdickorgasm.com -bigfools.com -biggggg.com -bighead.group -bigindiansex.mobi -bigjapanesesex.com -bigmoney.biz -bignews.org -bigone.com -bigporn.com -bigsound.org -bigtitangelawhite.com -bigtithitomi.com -bigtithooker.com -bigtitsextapes.com -bigtitsgallery.net -bigtitsmodelsdirectory.com -bigtitsthreesomes.com -bigtitterrynova.com -bigtitvenera.com -bigtopsites.com -biguz.net -biitii.com -bijukujo.club -bikaa.xyz -bikac.xyz -bikaios.xyz -bili2.cc -bili888.com -bili999.com -biliintl.com -biliplus.com -biliworld.com -bill-safe.com -billmelater.com -billmelater.info -billmelater.net -billpoint.com -billpoint.info -billpointnewzealand.com -billypan.com -bimbim.com -bimbolive.com -binads.com -binance.cc -binance.charity -binance.cloud -binance.co -binance.com -binance.info -binance.me -binance.net -binance.org -binance.vision -binanceapi.com -binancezh.biz -binancezh.cc -binancezh.co -binancezh.com -binancezh.info -binancezh.ink -binancezh.kim -binancezh.link -binancezh.live -binancezh.mobi -binancezh.net -binancezh.pro -binancezh.top -amazon-fashions.com -bing.com -bing.net -bingads.com -bingagencyawards.com -bingapis.com -bingapistatistics.com -amazingcuckold.com -bingsandbox.com -bingvisualsearch.com -bingworld.com -binoculus.com -bintray.com -binux.me -biologists.com -biomedcentral.com -bioone.org -bioporno.com -biorxiv.org -bioware.com -biowarestore.com -biqle.org -bisq.network -bit-z.com -bitballoon.com -bitbank.cc -bitbay.net -bitbucket.org -bitchesgirls.com -bitchmomporn.com -bitchute.com -bitcoin.org -bitcointalk.org -bitcoinworld.com -bitfinex.com -bitflyer.com -bitget.com -bithumb.com -bitly.com -bitmex.com -bitnami.com -bitnamiapp.com -bitnamistudio.com -bitporno.com -bitquick.co -bitshare.com -bitsnoop.com -bitstamp.net -bitstream.com -bitterwinter.org -bittrex.com -bitvise.com -bitwarden.com -bizarresexuality.com -bizhat.com -bizographics.com -amatura.com -bjnewlife.org -bjs.org -bjzc.org -bkkdown.site -amatporn.com -bl-doujinsouko.com -blackamateurfuck.com -blackamateursvideos.com -blackandstacked.com -blackboxgames.com -blacked.com -blackfridaydrebeatsnew.com -blackfridaydrebeatsshop.com -blackhomeporn.com -blacklogic.com -blackmonsterterror.com -blackshemalevideo.com -blacksonblondes.com -blackstonespoliceservice.com -blacktowhite.net -blackvpn.com -amatorialesesso.com -blaoshi.cc -blazor.net -blender.org -blewpass.com -blink.org -blinkload.zone -blinkx.com -blinw.com -blizzard.com -blizzardgearstore.com -amateurxx.org -blockcn.com -blockedbyhk.com -blockless.com -zoos.gold -zooredtube.com -zooporno.biz -zoopornmd.com -zooporn.video -zooporn.shiksha -zooporn.pro -zoophilist.net -zoomobileporn.com -zoom.com -zoohun.com -zoogvpn.com -zoofilianet.com -zoofiction.com -zoo-xvideo.com -zoo-xnxx.com -zoo-tube8.com -zoo-porno.biz -zoo-hardcore.com -zononi.com -blogblog.com -blogcatalog.com -blogcity.me -blogdns.org -blogebay.com -blogger.com -bloggrowup.com -bloglines.com -bloglovin.com -blogoverflow.com -zonghexinwen.net -zonghexinwen.com -zonaeuropa.com -blogspot.com -zomobo.net -blogtd.net -blogtd.org -blogterest.net -bloodshed.net -amateurwivesvideos.com -bloomberg.com -bloombergapps.com -bloombergarcade.com -bloombergbeta.com -bloombergbna.com -bloombergbreakaway.com -bloombergbriefs.com -bloombergchina.com -bloombergenvironment.com -bloombergforeducation.com -bloomberggovernment.com -bloombergindices.com -bloombergindustry.com -bloomberglabs.com -bloomberglaw.com -bloomberglive.com -bloomberglp.com -bloombergmedia.com -bloombergnext.com -bloombergpolarlake.com -bloombergprep.com -bloombergquint.com -bloombergradio.com -bloombergsef.com -bloombergspace.com -bloombergstatus.com -bloombergsurvey.com -bloombergtax.com -bloombergtax1.com -bloombergtaxtech.com -bloombergtradingchallenge.com -bloombergvault.com -bloombergview.com -bloomfortune.com -amateurwifevideos.com -bloommicroventures.com -bloomsburycollections.com -bloomsburydesignlibrary.com -blowjobit.com -blowjobqueens.net -blpcareers.com -blpevents.com -blpprofessional.com -blubrry.com -blueangellive.com -bluefootcms.com -bluehatil.com -bluehatnights.com -bluemix.com -bluemix.net -bluestacks.com -bluffyporn.com -blurams.com -blz-contentstack.com -amateurwifetits.com -bmfinn.com -bmia.org -bmj.com -bml.info -amateurwifefuck.com -amateurthreesomeporn.com -bmw-abudhabi.com -bmw-adventskalender.com -bmw-albania.com -bmw-art-journey.com -bmw-arts-design.com -bmw-asia.com -bmw-auslieferungszentrum.com -bmw-authority-vehicles.com -bmw-bahrain.com -bmw-businessdrive.com -bmw-classic.com -bmw-clubs-international.com -bmw-connected-drive.com -bmw-connecteddrive.com -bmw-corporate-sales.com -bmw-diplomatic-sales.com -bmw-drivingexperience.com -bmw-dubai.com -bmw-eg.com -bmw-fleet.net -bmw-ghana.com -bmw-golfsport.com -bmw-group.com -bmw-group.net -bmw-grouparchives.com -bmw-i-pure-impulse.com -bmw-int1.com -bmw-iraq.com -bmw-jordan.com -bmw-ksa.com -bmw-kuwait.com -bmw-lebanon.com -bmw-m-safetycar.com -bmw-m.com -bmw-mdrivetour.com -bmw-me.com -bmw-military-sales.com -bmw-motorcycle.com -bmw-motorrad-abudhabi.com -bmw-motorrad-authorities.com -bmw-motorrad-dubai.com -bmw-motorrad-motorsport.com -bmw-motorrad-now-or-never.com -bmw-motorrad-service-inclusive.com -bmw-motorrad-test-ride.com -bmw-motorrad.co -bmw-motorrad.com -bmw-motorsport.com -bmw-mountains.com -bmw-museum.com -bmw-museum.net -bmw-nigeria.com -bmw-oman.com -bmw-pakistan.com -bmw-plant-munich.com -bmw-powertrain.com -bmw-product-highlights.com -bmw-qatar.com -bmw-routes.com -bmw-rp.com -bmw-rrdays.com -bmw-saudiarabia.com -bmw-security-vehicles.com -bmw-special-sales.com -bmw-sports.com -bmw-sudan.com -bmw-tahiti.com -bmw-tunisia.com -bmw-voli.me -bmw-welt.com -bmw-welt.net -bmw-world.com -bmw-world.net -bmw-worldfinal.com -bmw-yachtsport.com -bmw-yemen.com -bmw.cc -bmw.com -zoig.com -bmwartjourney.com -bmwasia.com -bmwauslieferungszentrum.com -bmwbikes.com -bmwcenternet.com -bmwchampionship.com -bmwchampionshipusa.com -bmwcharitygolf.com -bmwcitychallenge.com -bmwclassic.com -bmwcolorado.com -bmwconnecteddrive.com -bmwcustomapparel.com -bmwdcsnet.net -bmwdealercareers.com -bmwdealerdirect.com -bmwdelawarevalley.com -bmwfilms.com -bmwgroup-classic-heart.com -bmwgroup-classic.com -bmwgroup-gaad.com -bmwgroup-plants.com -bmwgroup-posdigital.com -bmwgroup-werke.com -bmwgroup.com -bmwgroup.jobs -bmwgroup.net -bmwgroupclassic.com -bmwgroupdesignworks.com -bmwgroupdirect.com -bmwgroupfs.com -bmwgroupinfobahn.com -bmwgroupna.com -bmwhk.com -bmwiventures.com -bmwjamaica.com -bmwlat.com -bmwm.com -bmwmagazine.com -bmwmass.com -bmwmass.net -bmwmc.net -bmwmotorcycles.com -bmwmotorcycleusa.com -bmwmotorradhk.com -bmwmotorshowblog.com -bmwmotorsport.com -bmwmperformance.com -bmwmuseum.net -bmwmyanmar.com -bmwofannapolis.com -bmwofcentralpa.com -bmwoftulsa.com -bmwondemandusa.com -bmworegon.com -bmwperformancecenter.com -bmwpittsburgh.com -bmwproductnews.com -bmwsafari.com -bmwsfl.com -bmwsfl.net -bmwsports.com -bmwstartupgarage.com -bmwstep.com -bmwstepconnections.com -bmwsummerschool.com -bmwtampabay.com -bmwusa.com -bmwusaservice.com -bmwusatires.com -bmwusfactory.com -bmwusrideracademy.com -bmwvalueservice.com -bmwwholesaleconnect.com -bmwworld.com -bmwworld.net -bmwzentrum.com -amateurswingersmovies.com -bnbstatic.com -bnef.com -bnews.co -amateursvid.com -bnn.co -amateurslovesporn.com -bnrmetal.com -amateursexpussy.com -boardreader.com -boboporn.com -boboporn.net -bobovip.cc -bobs-tube.com -bobvoyeur.com -bodgirls.com -bodog88.com -bodyfluids-jav.com -amateursecrets.net -amateurs-gone-wild.com -bokep.net -bokepseks.org -bokepvidz.com -bolehvpn.net -zohowebstatic.com -bollywoodlife.com -boltdns.net -bonbonme.com -bonbonsex.com -bondagecomixxx.net -bondagesex-xxx.com -bondagesm.xyz -bonedathome.com -bonfoundation.org -bongacams.com -bonyu.cyou -boobieblog.com -boobpedia.com -boobsrealm.com -boobstagram.com -boodigo.com -boodigogo.com -zohouniversity.com -book18.org -book4you.org -bookclubcorner.com -bookclubgirl.com -bookdepository.com -bookepub.com -bookfi.net -booking.com -bookmybridgestonetyre.com -bookonsky.net -booksc.me -booksc.org -booksc.xyz -bookshome.info -bookshome.net -bookshome.world -booksinprint.com -bookstagram.com -booloo.com -boomba.club -boomerang.com -boomssr.com -booru.org -amateurs-fuck.com -bootstrapcdn.com -bootyliciousmag.com -bootysource.com -borderlessprepaid.com -borgenmagazine.com -boringcompany.com -borwap.com -amateurpornsexvideos.com -boshancy.com -boslife.biz -boslife.net -bossae.com -amateurpornonly.com -amateurpornhouse.com -boswp.com -botanwang.com -botframework.com -botorch.org -botstop.com -boulx.com -boundhub.com -bountyhunterporn.com -bowenpress.com -bowlroll.net -bowsersinsidestory.com -box57.one -boxofficemojo.com -boxpn.com -boxun.com -boxunblog.com -boxunclub.com -boy18tube.com -boyangu.com -boycall.com -boyfriendtv.com -boylabs.net -boylove.cc -boylove.com -boylove.live -boylove1.cc -boyloves.cc -boypost.com -boysfood.com -boysmaster.com -boyspornpics.com -boyvid.com -boyztube.com -amateurporndump.com -zohostatic.com -amateurporn.photos -braeburncapital.com -braintreegateway.com -braintreepayments.com -braintreepayments.info -braintreepayments.org -braintreepaymentsolutions.com -braintreeps.com -brainyquote.com -branchportal.com -brand-protection-team.com -brandeasygo.com -brandelectronic.com -brandonhutchinson.com -brandporno.com -brandproducts1688.com -brands098.com -brasilincesto.com -brasiltudoliberado.com -braumeister.org -brave.com -braventures.com -braveux.com -bravoerotica.com -bravoporn.com -bravoteens.com -bravotube.net -brazilpartneruniversity.com -brazzer.com -brazzers-porno.online -brazzers-xxx.net -brazzers.com -brazzersnetwork.com -brazzersporn.mobi -brazzfan.com -brdteengal.com -break.com -breakdown.me -breakgfw.com -breaking911.com -breakingtweets.com -breakwall.net -breasthealthinfo.com -breath-takers.com -breitbart.com -brepolis.net -brewmp.com -briantreepayments.net -amateurpages.com -bridgestone-asiapacific.com -bridgestone-bandag.com -bridgestone-brand.com -bridgestone-plt-eng.com -bridgestone-tac-oman.com -bridgestone.com -zohoschools.com -bridgestoneamericas.com -bridgestonearena.com -bridgestonecntc.com -zohopublic.com -bridgestonegolf.com -bridgestonegz.com -bridgestonela.com -bridgestonemarketing.com -bridgestonemerchandise.com -bridgestonenationalfleet.com -bridgestoneperformance.com -bridgestoneperformancemedia.net -bridgestonerapiddelivery.com -bridgestonerewards.com -bridgestonesyb.com -bridgestonetire.com -bridgestonevan.com -bridgestonewx.com -briefdream.com -brightcove.com -brightcove.net -brightcove.services -brightcovecdn.com -briian.com -brill.com -brilliant.org -britsexcash.com -brizzly.com -brkmd.com -brliilantsdates.com -broadbandreports.com -broadbook.com -broadpressinc.com -brocaproject.com -brokenteens.com -bromite.org -bromo.com -bronto.com -amateuroldsluts.com -brotli.org -brourou.com -zohomerchandise.com -browserleaks.com -brucewang.net -amateurmommymovies.com -brutalbdsmtube.com -brutalfetish.com -brutaltgp.com -amateurhousewifefuck.com -bs-adreview.com -bsersd.xyz -bstatic.com -amateurhomevids.com -bt2mag.com -bt95.com -btaia.com -btbtav.com -btc98.com -btcbank.bank -btdig.com -btdigg.org -btku.me -btku.org -btspread.com -btsynckeys.com -btt804.com -btt904.com -bttzyw.com -bttzyw.net -bubbaporn.com -buck.build -buckbuild.com -budaedu.org -amateurgirlfriends.net -budatt.com -buddymedia.com -buffered.com -amateurgalore.net -bugzilla.org -buhidoh.net -amateurest.com -builtfromebay.com -bukkake-jav.com -bukkake.link -bullguard.com -bullog.org -bullogger.com -bululusexdoll.com -bumingbai.net -bumpshare.com -bumptop.com -bumptop.net -bumptop.org -bumptunes.com -bunbunhk.com -bunnylust.com -burningcamel.com -burstly.net -burstlyrewards.com -busayari.com -business-humanrights.org -business.page -businesscatalyst.com -businessinsider.com -businesswebwise.com -businessweek.com -businessweekmag.com -bustyangelique.com -bustyarianna.com -bustydanniashe.com -bustydustystash.com -bustyinescudna.com -bustykellykay.com -bustykerrymarie.com -bustylornamorgan.com -bustymerilyn.com -bustymomsvideo.com -bustynudebabes.com -bustyoldsluts.com -bustysammieblack.com -busu.org -busytrade.com -buugaa.com -buy-from-shanghai.com -buyaapl.com -buyaapl.net -buyaltera.com -buyaple.com -buybeatsbydre-uk.com -buybeatsheadphonesbydre.com -buycheapbeatsbus.com -buycheapbeatsbydre.com -buycheapbeatsbydreshop.com -buycheapbeatsdreuk.com -buydrdrebeatbox.com -buyfast-paysmart.net -buyingfacebooklikes.com -buyitnow.com -buyitnow.net -buyitnow.org -buyitnowshop.net -buymeacoffee.com -buyminibeatbox.com -buynikechina.com -buyoculus.com -buyonlineheadphones.com -buypass-ssl.com -buypass.com -buyshoponly.com -buzzardflapper.com -buzzav.com -buzzhand.com -buzzhand.net -buzzorange.com -buzzsprout.com -amateure-xtreme.com -bvdinfo.com -bvfce6wz.xyz -bvpn.com -amateurcuckoldporn.com -amateurcool.com -bwgyhw.com -bwh1.net -bwh8.net -bwh81.net -bwh88.net -bwh89.net -bwin.com -amateurblowjobporn.com -bybeatsdre.com -bybit.com -bydrebeats.com -byjav.me -byjhd.com -bypasscensorship.org -byrut.org -byspotify.com -byteoversea.com -amateurblondegirls.com -bzazi.com -amateurbdsmporn.com -c-est-simple.com -c-ij.com -c-span.org -c-spanvideo.org -c0930.com -c100tibet.org -c2cx.com -c4rex.co -c4slive.com -amateurarchiver.com -zohomeetups.com -cableav.xyz -cablegatesearch.net -cabletvdirectv.com -cachinese.com -cacnw.com -cactusvpn.com -amateuranalvideos.com -cafepress.com -caijinglengyan.com -caime.xyz -cairn.info -calameo.com -calebelston.com -calendarserver.org -calgarychinese.com -calgarychinese.net -calgon.com -calgoncarbon-china.com -calgoncarbon.com -calgonit.com -callabitch.org -callersbane.com -callhulu.com -calvappd.me -amateuranalporn.com -cam4.com -cam69.com -cambaddies.com -cambiaip.org -cambridge.org -cambridgedigital.net -cambridgemaths.org -cambridgeschoolshakespeare.com -camcam.cc -camdolls.com -camelot-europe.com -camelotherald.com -camelotherald.net -camelphat.com -camelspaceeffect.com -cameraboys.com -camerfirma.com -camfinder.com -camfox.com -camfrog.com -camgirlfinder.net -camgirlstemple.com -camgirlvideos.org -camonster.com -campaignforuyghurs.org -campushp.com -campuslondon.com -camrabbit.com -cams.com -camsoda.com -camsoda1.com -camstagestudio.com -camster.com -camvideos.org -camvideoshub.com -camwhores-tv.com -camwhores.forum -camwhores.video -camwhoresbay.com -camwhoreshd.com -camwhoria.com -canada-beatsbydre.com -canadameet.com -amateuralbum.net -canalporno.com -candidforum-videos.com -candycumcity.com -candypleasure.com -amateur-threesomes.com -canon-cee.com -canon-cmos-sensors.com -canon-cna.com -canon-emea.com -canon-europa.com -canon-europe.com -canon-me.com -canon.com -canon.me -canon.net -canonfoundation.org -canonical.com -canonproprinters.com -canyu.org -caobian.info -caochangqing.com -amateur-pussies.com -capitalgames.com -capitaliq.com -amateur-porn-tube.net -carabinasypistolas.com -amateur-porn-clips.com -carbon.com -cardinalkungfoundation.org -carebay.com -careerfundas.com -careerjournal.com -careersatfb.com -carekit.org -amateur-home-sex.com -carfax.com -cargigileads.com -caribbeancom.com -caribbeancompr.com -carmotorshow.com -carrd.co -carstagram.com -amateur-gallery-post.com -cartoon18.com -cartoon3thumbs.com -cartoonmovement.com -cartoonporn.com -cartoonpornonly.com -cartoonpornvideos.com -cartoonregistry.com -cartoonscity.com -cartoonsexfantazy.com -cartoontube.com -cartoonville.net -cas.org -amateur-fetish.com -casadeltibetbcn.org -amateur-exhibitionist.org -amateur-cougar.com -cash.app -cash2.com -cashback69.com -amapornofilme.com -cashbycashapp.com -cashify.com -cashify.net -cashpassport.com -cashpassport.net -cashpassportglobe.com -cashvideotube.com -casimages.com -amanmi.com -casinobellini.com -casinoking.com -casinoriva.com -casoneexchange.com -casque-fr.com -casquebeatsbydrdresolohd.com -casquebeatsdocteurdre.com -casquebeatsdre2013.com -casquebeatsenligne.com -casquebeatsfracheter.com -casquebeatsmer.net -casquebeatsofficiel-fr.com -casquebeatspascher2013.com -casquebeatssolo.net -casquedrdrebeatssfr.com -casquemonsterbeats.com -casquemonsterbeatsbydre2013.com -casquesbeatsaudio.com -castingcouch-x.com -casualhomemadesex.com -amandalist.com -catalinacruz.com -catch22.net -catchgod.com -catchplay.com -amamanualofstyle.com -catmiimi.com -cato.org -cattt.com -cavporn.com -amakings.com -cbart.net -amabitch.com -amaaozn.com -alwaysvpn.com -cbs.com -cbsaavideo.com -cbscorporation.com -cbsi.com -cbsi.video -cbsiam.com -cbsig.net -cbsimg.net -cbsinteractive.com -cbsistatic.com -cbsivideo.com -cbsnews.com -cbspressexpress.com -cbssports.com -cbsstatic.com -cbssvideo.com -cc18.biz -cc18tv.com -ccav69.info -ccav69.me -ccav691api.com -cccat.cc -cccat.co -ccdtr.org -cchere.com -cciernslabs.com -cciesecuritylabs.com -ccievoicelabs.com -ccim.org -cclife.org -cclifefl.org -ccna5.net -ccnsite.com -ccpsx.com -ccstatic.org -ccthere.com -ccthere.net -cctmweb.net -cctongbao.com -ccue.com -alwaysdata.net -cdbook.org -cdcparty.com -cdef.org -cdig.info -cdjp.org -cdkworkshop.com -cdmatech.com -cdn-apple.com -zohocdn.com -cdn-terapeak.com -zoho.com -zobry.site -zndsk.com -030buy.com -zlibcdn2.com -cdn77.com -cdn77.org -cdninstagram.com -cdnjs.com -cdnlab.live -cdnpure.com -cdp1989.org -cdp1998.org -cdp2006.org -cdpeu.org -cdpusa.org -cdpweb.org -cdpwu.org -cdw.com -alwaysdata.com -cebay.com -ceicdata.com -celebforum.co -celebgramme.com -celebmasta.live -celebritygay.com -celebritynakeds.com -celebrityslips.com -celebritystorysite.com -celebsporno.com -celebsroulette.com -celeron.com -celeron.net -cell.com -cellulo.info -cencoastbmw.com -cenkei.com -centerforhumanreprod.com -centos.org -centralnation.com -centralvalidation.com -centrino.com -centrino.net -centurys.net -cepacol.com -cerdas.com -alvinalexander.com -certificat2.com -certificate-transparency.org -zlibcdn.com -certinomis.com -cervical-exam.com -altrec.com -cf-ipfs.com -altporn.net -cfake.com -cfblob.com -cfna.com -cfr.org -cftfc.com -cfwives.com -altmetric.com -cgdepot.org -zlib.life -alternativeto.net -zkaip.com -championshipseriesleague.com -alternate-tools.com -change.org -changeip.name -changeip.net -changeip.org -alterauserforums.net -changp.com -changsa.net -channelnewsasia.com -chaoex.com -chapm25.com -chargenow.com -chargenowusa.com -charlestonroadregistry.com -charmescorts.com -charticulator.com -alterauserforums.com -alterauserforum.net -alterauserforum.com -chatango.com -chatnook.com -alteraforums.net -chatter.com -chaturbate.com -chatwhores.com -chatwhores.net -chatwhores.org -cheap-beats-by-dre.net -cheap-beatsbydre.com -cheap-nike.com -cheapbagshoes.com -cheapbeats365.com -cheapbeats4sale.net -cheapbeatsaustraliasale.com -cheapbeatsbus.com -cheapbeatsbydr.com -cheapbeatsbydrdrepro.com -cheapbeatsbydre-au.com -cheapbeatsbydre99.com -cheapbeatsbydrefau.com -cheapbeatsbydremall.com -cheapbeatsbydremonster.com -cheapbeatsbydrenz.net -cheapbeatsbydreonsale.com -cheapbeatsbydreoutlet-nz.com -cheapbeatsbydreoutlet.com -cheapbeatsbydreoutlets2013.com -cheapbeatsbydresale.com -cheapbeatsbydreshop.com -cheapbeatsbydrestudioedition.com -cheapbeatsbydrestudioutlet.com -cheapbeatsdrdresolo.com -cheapbeatsdrestudios.com -cheapbeatsheadphone2014.com -cheapbeatsie.com -cheapbeatsla.com -cheapbeatssale4u.com -cheapbeatsshopbydre.com -cheapcustombeatsbydre.com -cheapdrdrebeats8.com -cheapdrdrebeatsca.com -cheapdrebeats8.net -cheaperbeatsbydresale.com -cheapestbeatsdrdre.com -cheapheadphonesland.com -cheapheadphonessale.com -cheapheadsetmall.com -cheapheadsetshop.com -cheapmonsterbeatsbydrdre.com -cheapmonsterbeatsheadsets.com -cheapmonsterbeatssale.com -cheapmonstersbeatsonsale.com -cheapnewbeatsbydre.com -cheapnikedunks.com -cheapnikeoutlet.com -cheapsalemonster.com -cheapshoesvip.com -cheapwireless04.com -cheapwirelessbeats.com -checkgfw.com -chegg.com -cheggcdn.com -chemequations.com -chemnetbase.com -chengjuanseo.com -chengmingmag.com -chenguangcheng.com -chenpokong.com -chenpokong.net -chenpokongvip.com -cherry-tale.com -cherryasia.com -cherrybrady.com -cherrynudes.com -cherrypai.com -cherrypanpan.com -cherrypimps.com -cherrypornhd.com -cherrysave.com -alteraforums.com -alteraforum.com -altera.com -chhongbi.org -chicagolandbmw.com -chicagoncmtv.com -chickstagram.com -chickteases.com -chihair-straightener.com -chikiporn.com -chillingo.com -chimeforchange.org -china-facebook.com -zishy.com -china-mmm.net -zippyshare.com -china-week.com -04647.club -china101.com -china18.org -china21.com -china21.org -chinaaffairs.org -chinaaid.me -chinaaid.net -chinaaid.org -chinachange.org -chinaclothesstore.com -chinacomments.org -chinadecoding.com -chinadialogue.net -chinadigitaltimes.net -chinaeconomicreview.com -chinaelections.org -chinaeweekly.com -chinafile.com -chinafreepress.org -chinagate.com -chinageeks.org -chinagfw.org -chinagonet.com -chinagreenparty.org -chinahorizon.org -chinahush.com -chinainperspective.com -chinainterimgov.org -chinalaborwatch.org -chinalawandpolicy.com -chinalawtranslate.com -chinamule.com -chinamz.org -chinanewscenter.com -chinarightsia.org -chinasmile.net -chinasocialdemocraticparty.com -chinasoul.org -chinasucks.net -chinatimes.com -chinatopsex.com -chinatweeps.com -chinaway.org -chinaworker.info -chinaxchina.com -chinayuanmin.org -chinese-hermit.net -chinese-leaders.org -chinese-memorial.org -chinese-porn-videos.com -chinese-xnxx.com -ziporn.com -zinio.com -zingtruyen.net -chinesedaily.com -chinesedailynews.com -chinesedemocracy.com -chinesegay.org -chinesepen.org -chineseradioseattle.com -chinesespanking.com -chinesetalks.net -chineseupress.com -chinesexxxporn.net -chingcheong.com -chinman.net -alt.com -chips.com -chithu.org -alpinelinux.org -chla3.com -alphera.net -chloesworld.com -chobit.cc -chocam.com -chocolatey.org -choicereviews.org -chomp.com -chrdnet.com -christianfreedom.org -christianstudy.com -christusrex.org -christymarks.com -alphera.com -chrome.com -chromebook.com -chromecast.com -chromeexperiments.com -chromeos.dev -chromercise.com -chromestatus.com -chromium.org -chronicle.security -chroniclesec.com -alphassl.com -chuang-yen.org -chubbypornonly.com -chubold.com -chubun.com -chunja19.net -chuporno.com -churchinhongkong.org -chwr7s8u.com -chyoa.com -alphaporno.com -ci-en.net -alphabetfinance.net -ciattackers.com -cienen.com -cilk.com -cilk.net -alphabet.info -cindymovies.com -cinemax.com -cinepornogratis.com -cios.org -cipfg.org -alphabet.com -circlethebayfortibet.org -cirosantilli.com -alphabet.biz -cisco-returns.com -cisco-warrantyfinder.com -cisco.com -cisco.mobi -ciscoccservice.com -ciscoconnectcloud.com -ciscoconnectcloud.net -ciscoconnectcloud.org -ciscocontest.com -ciscoerate.com -ciscofax.com -ciscoinvestments.com -ciscojabbervideo.net -ciscokinetic.com -ciscoknowledgenetwork.com -ciscolearningsociety.org -ciscolearningsystem.com -ciscolive.com -cisconetapp.com -cisconetspace.com -cisconetspace.info -cisconetspace.net -ciscopartnermarketing.com -ciscopowercube.com -ciscoprice.com -ciscoresearch.com -ciscosoftware.com -ciscospark.com -ciscotaccc.com -ciscotr.com -ciscoturk.net -ciscovideo.com -ciscowebseminars.com -cispaletter.com -cispaletter.org -alotporn.com -citasecuador.com -alohatube.com -citizencn.com -citizenlab.org -citizensradio.org -city-hentai.com -city9x.com -almostmy.com -cityheaven.net -citylab.com -cityoflove.com -citytourgirls.com -civildisobediencemovement.org -civilhrfront.org -civiliangunner.com -civitai.com -cixp.net -ciyuanjie.cc -almasdarnews.com -ck101.com -ckcdn.com -ckck.fun -ckss98.com -allthefallen.moe -zind.cloud -claravenger.com -clarionproject.org -clarivate.com -clasporno.org -classicalguitarblog.net -classicnike.com -classymomsex.com -clco.cc -zillionk.com -cleansite.biz -cleansite.info -clearharmony.net -clearlinux.org -clearsurance.com -clearwisdom.net -clementine-player.org -click-url.com -ziddu.com -zibacity.com -clinical-videos.com -clinicalkey.com -allswingersclubs.org -clip16.com -clipcake.com -cliphayho.com -cliphunter.com -clips4sale.com -clipsaoyai.com -clipsbai.com -clipseksi.com -clitgames.com -cloakpoint.com -clojure.org -cloudapp.net -cloudappsecurity.com -cloudburstresearch.com -cloudc.one -cloudchoose.com -cloudcone.com -cloudcone.net -cloudconvert.com -cloudcraze.com -cloudcredibility.com -cloudflare-dns.com -cloudflare-ech.com -cloudflare-gateway.com -cloudflare-ipfs.com -cloudflare-quic.com -cloudflare.com -cloudflare.net -cloudflareaccess.com -cloudflareapps.com -cloudflarebolt.com -cloudflareclient.com -cloudflareinsights.com -cloudflareok.com -cloudflareportal.com -cloudflarepreview.com -cloudflareresolve.com -cloudflaressl.com -cloudflarestatus.com -cloudflarestorage.com -cloudflarestream.com -cloudflaretest.com -cloudflarewarp.com -cloudfront.com -cloudfront.net -cloudfunctions.net -cloudhealthtech.com -cloudinary.com -cloudinary.net -cloudinsights.com -cloudlive.com -cloudlock.com -cloudn.me -cloudproxy.app -cloudrobotics.com -cloudvolumes.com -cloudyzgirl.com -cloupia.com -cloupia.net -club1069.com -clubhouse.com -clubhouseapi.com -allspyclips.com -clubseventeen.com -clubsweethearts.com -clubtubes.com -clusterconnection.com -allpornsitespass.com -cmcn.org -cmhalq.com -cmpaas.com -cms-twdigitalassets.com -cmule.com -cmule.org -cn-proxy.com -zi.media -zhuichaguoji.org -zhuatieba.com -zhuangbi.me -zhreader.com -zhoushuguang.com -zhongmeng.org -zhongguotese.net -zhongguorenquan.org -cnabc.com -zhinengluyou.com -cnbc.com -cnbcfm.com -cnbeta.com -cnbetacdn.com -cncrivals.com -cnd.org -cnet.com -cnineu.com -cnix-gov-cn.com -cnn.com -cnnamador.com -cnnarabic.com -zhimeishe888.com -cnnikebrand.com -cnnlabs.com -cnnmoney.com -cnnmoneystream.com -cnnpolitics.com -cnpmjs.org -cnpolitics.org -cnproxy.com -cnshopin.com -cnyes.com -cobatt.com -cobinhood.com -cobrasearch.com -cochina.co -cochina.org -cochranelibrary.com -cock4stepmom.com -cockofhorse.com -cocksuckersguide.com -cocktailsandcocktalk.com -cockyboys.com -code.org -code1984.com -codeberg.org -codecademy.com -codeforces.com -codeish.co -codeskulptor.org -codespot.com -codethemicrobit.com -codivorexxx.com -coedcherry.com -coinbase.com -coinbene.com -coinegg.com -coinex.com -coingecko.com -coingi.com -coinglass.com -coinmarketcap.com -coinonecore.com -coinonecorp.com -cointiger.com -cointobe.com -coinut.com -coithienthai.com -coitustube.com -colegialasdeverdad.com -colegialasreales.com -collabora.com -collabora.org -collaboraoffice.com -collateralmurder.com -collateralmurder.org -collection-3d.com -collectionofbestporn.com -collective99.com -collegejournal.com -collegepornonly.com -collegesexgames.com -colliderporn.com -colombianas.webcam -colorfulstage.com -colorprotechnology.com -allpornsites.net -comdotgame.com -comeav.com -comefromchina.com -cometotheduckside.com -comic-mega.me -comicbox.xyz -comicscartoonporn.com -comicunivers.com -comicuniverse.org -comixzilla.com -commandandconquer.com -commandarms.com -allporncomic.com -comments.app -commentshk.com -commerceos.com -communistcrimes.org -communitychoicecu.com -como-hackearfacebook.com -comodo.com -comodo.net -comodoca.com -comodoca2.com -comodoca3.com -comodoca4.com -compaq.org -comparitech.com -compileheart.com -componentkit.org -compresspdf.new -computer.org -computingreviews.com -comsoc.org -conair.me -allpasswords.com -connect-in-canada.com -connectcommerce.info -connected-drive.com -connectedcommerce.com -connectionsacademy.com -connectionseducation.com -connectionslearning.com -allowed.org -conquerwithcharacter.com -conscrypt.com -conscrypt.org -contactmagazine.net -contactossexoecuador.com -containersonaws.com -zhenxiang.biz -contentful.com -contest.com -zhenlibu1984.com -convio.net -convrgencegame.com -coobay.com -cookiechoices.org -allover30.com -cool-comics.com -cool18.com -coolaler.com -coolder.com -coolinet.net -cooliphonecasesstore.com -coolmonster.net -coolncute.com -coolsexnew.com -coolstuffinc.com -coomer.party -coova.com -coova.net -coova.org -copro.pw -coqnu.com -corbinfisher.com -cordcloud.org -coreduo.com -coreextreme.com -coreml.net -coreoptics.net -corepublishingsolutions.com -coronavirusnow.com -corporatecashpassport.com -allmovie.com -cortanaanalytics.com -cortanaskills.com -cortexrpg.com -corumcollege.com -cos-moe.com -zhenlibu.info -zhengwunet.org -zhengjian.org -cosmosdb.info -cosmosdb.net -cosplay-jav.com -cosplayporntube.com -cosplayworld.net -zhenghui.org -costco-static.com -costco.com -costcobusinessdelivery.com -cotolia.com -cotweet.com -cougarsexmovies.com -counter.social -coupang.com -coupangcdn.com -coursehero.com -coursera-for-business.org -coursera.community -coursera.help -coursera.org -covid19-rx.org -covid19rx.org -cowboom.com -cozydrdrebeats.com -cp44.net -cpan.org -cpedge.com -cpj.org -cqcorea.com -allmomsex.com -crabporn.com -crackle.com -craigslist.org -crazy-amateurs.com -crazyav.xyz -crazybook.xyz -crazyfiction.xyz -crazylivecams.com -crazynovel.xyz -crazys.cc -crazyshit.com -crazyxxx3dworld.com -crazyxxx3dworld.net -crazyxxx3dworld.org -crazyxxxworld.com -crbug.com -crchina.org -crd-net.org -creaders.net -creadersnet.com -creamasia.com -creamlemon.info -creampieforgranny.com -creampiehomevideos.com -createspace.com -creativecloud.com -creativecommons.engineering -creativecommons.org -creativelab5.com -creativesdk.com -crececonebay.com -creditcardsbay.com -cricketcountry.com -cristyli.com -crit-staging.com -crmdynint-gcc.com -crmdynint.com -crocotube.com -cromite.org -crossborderexpansion.com -crossfitfirestone.com -crossmediapanel.com -crossthewall.net -crossvpn.net -crosswalk-project.com -crosswalk-project.net -crowdtangle.com -alljapanesepass.com -croxyproxy.com -crr.com -crrev.com -alljackpotscasino.com -crucial.com -cruel-furies.com -crunchyroll.com -crustwebsites.net -crypto.com -cryptocompare.com -crystalgunnsworld.com -crystalmiss.com -cs.co -cs4hs.com -allinternal.com -csdparty.com -csgfnmdb.com -cshive.com -csifund.org -csis.org -csmonitor.com -csnjcbnxdnb.com -cstatic.net -ctan.org -ctao.org -ctfassets.net -ctfriend.net -ctotires.com -ctowc.org -ctwant.com -ctyun.online -allinfa.com -cuckfilmswifefuck.com -cuckold69.com -cuckoldfuck.com -cuckoldingwifey.com -cuckoldinterracialporn.com -cuckoldinterracialwife.com -cuckoldplacetube.com -cuckoldporntube.com -cuckoldwifesex.com -cuckoldwifesexxx.com -cuckoldwifetube.com -cuckporn.com -cuckvideos.com -cuckwatchingwife.com -cuckwimp.com -cuebic.biz -cuffiesaldi.com -cuhkacs.org -cuihua.org -alliancesages.com -cuiweiping.net -cultoferotica.com -cum4k.cc -cumasianporn.com -cumfox.com -cumlouder.com -cumshotlist.com -cumswappingsis.com -cumteenporn.com -cuntempire.com -cuntwars.com -cups.org -curbed.com -currently.com -currently.net -cursecdn.com -curseforge.com -curvefish.com -curvybbwwives.com -curvyerotic.com -custom-iphonecase.com -custombeatsbydrebuy.com -custombeatsdeals.com -custombeatsforcheap.com -custombeatsny.com -custombeatssbydreus.com -customdrdrebeats.com -customizedbeatbydre.com -customizedbeatsbydre.com -customizedbeatsdre.com -customnikeshoes.com -cutscenes.net -allhorsesex.com -allhen.online -cwcams.com -allgravure.com -allgirlsallowed.org -cyber-bay.info -cyber-bay.org -zhanlve.org -cyberghostvpn.com -cybermondaybeats4sale.com -cygwin.com -cylink.pro -cylink0122.icu -allgirlmassage.com -cynscribe.com -cython.org -cyyeshb.com -allfinegirls.com -czechav.com -czechbiporn.com -czechcasting.com -czechhunter.com -czechlesbians.com -czechmassage.com -czechstreets.com -czechvideo.org -czechvr.com -czechwifeswap.com -d-fukyu.com -d-trust.net -d-upp.com -d100.net -d2bay.com -d2mrry2to5rg.com -d2pass.com -da-files.com -da3dsoul.dev -daboja18.com -dabr.me -dabr.mobi -allfet.net -dacebook.com -dachix.com -dadazim.com -daddyslilangel.com -dadi360.com -dafabet.com -dafagood.com -dafahao.com -dafoh.org -daftporn.com -daftsex-hd.com -daftsex.com -dagfs.com -dailidaili.com -dailybasis.com -dailymail.com -dailymailonline.com -dailymotion.com -zhangtianliang.com -dailyporn.club -dailysabah.com -daindianporn.com -daiphapinfo.net -dajiyuan.com -zhangboli.net -dalailama-archives.org -dalailama.com -dalailama80.org -dalailamacenter.org -dalailamafellows.org -dalailamafilm.com -dalailamafoundation.org -dalailamahindi.com -dalailamainaustralia.org -dalailamajapanese.com -dalailamaprotesters.info -dalailamaquotes.org -dalailamatrust.org -dalailamaworld.com -dalianmeng.org -daliulian.org -damduc.org -damnhotz.com -damplips.com -dandalinvoa.com -dandanzan.cc -danemarket.com -danke4china.net -danmarkbeatsbydrdre.com -danskpornofilm.com -dansmovies.com -daoc.net -zhanbin.net -daolan.net -daretoku-eromanga.info -darivoa.com -darkageofcamelot.com -darkcategories.com -darknaija.com -darkness-risen.com -darknessporn.com -darknun.com -darksidemagazine.com -darktech.org -darktoy.net -darrenliuwei.com -dart.dev -dartlang.org -dartpad.dev -dartsearch-cn.net -dartsearch.net -darwinsource.com -darwinsource.org -darwinsourcecode.com -dashwood360.com -dastanhisexy.cc -dastrassi.org -dat.foundation -data-vocabulary.org -data.com -zhainanjidid.top -dataliberation.org -datasheets360.com -datawav.club -date2night.xyz -allervpn.com -alldrawnsex.com -daum.net -david-kilgour.com -david-laserscanner.com -dawangidc.com -dawngate.com -dawngatechronicles.com -daylenerio.com -daylife.com -daytonbmw.com -daytontrucktires.com -dazn-api.com -dazn.com -dazndn.com -dbgjd.com -dcard.cc -dcard.link -alldrawingshere.com -dcmilitary.com -dctbeatsbydre.com -ddd-smart.net -ddg.co -ddhw.info -dditsadn.com -dditscdn.com -ddns.info -ddns.mobi -ddns.name -ddns.net -allconnected.co -de-sci.org -de1lib.org -deadline.com -deadspacegame.com -deaftone.com -dealbay.com -dealerspeed.net -dealsbeatsblackfriday.com -dealtime.com -dealtree.org -deasians.com -debank.com -debian.org -debug.com -debugproject.com -decentr.net -dechamora.com -decodet.co -decorativemodels.com -decrypt.day -deeper.com -deepfake-porn.com -deepfakeporn.net -deepfreeze.com -deepfreeze.net -deepfreeze.tech -deepl.com -deepmind.com -deezer.com -definebabe.com -definefetish.com -degruyter.com -deiightfuidates.net -deja.com -delcamp.net -delicious.com -allcoin.com -dell-brand.com -dell.com -dellcdn.com -all4mom.org -all3dsexpics.com -all-sex-links.com -delvenetworks.com -demandware.com -demdex.net -demfhz.xyz -zhainanjidi.xyz -democracy.earth -democrats.org -demoprint.com -dengeamerika.com -dengiamerika.com -deno.land -dentalhypotheses.com -dependabot.com -depositphotos.com -deps.dev -deps.info -zhaimankan.com -derpibooru.org -desertbmw.com -designeriphonescases.com -desihoes.com -desiporn.tube -desipornfilms.com -desiraesworld.com -zh99.net -desiresecrets.com -desk.com -desktopmovie.com -desktopmovie.net -desktopmovie.org -desktopmovies.net -desktopmovies.org -dessci.com -detaliczny.com -detentiongirls.com -dettol-prize.com -dettol.com -dettol.net -dettolarabia.com -dettolcleannaija.com -dettolthailand.com -deutsch-sexfilme.com -deutschepornos-kostenlos.net -alkasir.com -deutschsex.com -dev-guardianapis.com -dev-theguardian.com -devcon.org -developer-advisor.com -zgzcjj.net -zgsddh.com -developria.com -deviantart.com -deviantart.net -deviantclip.com -devilsfilm.com -devm2m.com -devopsassessment.net -devopsms.com -devpn.com -devsitetest.how -devtools-paypal.com -dewitwithdurex.com -dexterhorn.com -dezyred.com -df-bet.com -dfn.org -dgaqp.com -dgwav.com -dharamsalanet.com -dharmakara.net -dhcp.biz -aljazeera.net -zfreet.com -diablo3.com -diabloimmortal.com -dialga.com -dialogflow.com -diamantewebcam.com -diamondgirlstudio.com -dianapost.com -dianepoppos.com -diaoyuislands.org -zeutch.com -dicela.com -dicela.net -dickeomas.com -dickhardon.com -didce.com -diddykongracing.com -didilist.com -dierectv.com -difangwenge.org -digicert-cn.com -digicert-validation.com -digicert.com -aljazeera.com -digisfera.com -digital-anime.com -digital-rb.com -digitalassetlinks.org -digitalcertvalidation.com -digitaldesire.com -digitalhub.com -digitalnomadsproject.org -digitalocean.com -digitaloceanspaces.com -digitalpack.com -digitalplayground.com -digitalplaygroundnetwork.com -diigo.com -dilcdn.com -dinotube.com -dipity.com -dirctv.com -direcpath.com -direcpath.net -directcreative.com -directtv-dish.com -directtv.net -directtvreviews.com -directv-4-you.com -directv-newyork.com -directv.com -directvadsales.com -directvatlantaga.com -directvboston.com -directvbundles.com -directvbusiness.com -directvbusinessmarket.com -directvcincinnatioh.com -directvcinema.com -directvconnect.com -directvcookevilletn.com -directvcrossvilletn.com -directvdealer.com -directvdeals.com -directvdealsnow.com -directvforhotels.com -directvgrandslam.com -directvhouston.com -directvinternet.com -directvkentucky.com -directvlebanontn.com -directvlosangeles.com -directvmetropolisil.com -directvmonitoring.com -directvmurfreesborotn.com -directvnewhampshire.com -directvnow.com -directvoffercodes.com -directvonline.com -directvplans.com -directvpomise.com -directvpromise.com -directvpromotions.com -directvrebate.com -directvrichmond.com -directvsavings.com -directvsports.com -directvsundayticket.com -direectv.com -diretv.com -dirty.games -dirtyasiantube.com -dirtydoglinks.com -dirtyfarmer.com -dirtyflix.com -dirtyhomefuck.com -dirtyleague.com -dirtyonline.com -dirtypornvids.com -dirtyscat.org -dirtyshack.com -dirtyship.com -disco-api.com -discoins.com -disconnect.me -discord-activities.com -discord.co -discord.com -discord.design -discord.dev -discord.gift -discord.gifts -discord.media -discord.new -discord.store -discord.tools -discordactivities.com -discordapp.com -discordapp.net -discordcdn.com -discordmerch.com -discordpartygames.com -discordsays.com -discordstatus.com -discountbeatsbydre-us.com -discountbeatsstore.com -discountedporn.com -discountporn.club -alivevue.com -discoveryplus.com -discuss4u.com -discussionsapple.com -alivevmax.com -dish.com -dishworld.com -disney-asia.com -disney-discount.com -disney-plus.net -zettai-ero.com -disney-studio.com -disney-studio.net -disney.com -disneyadsales.com -disneyarena.com -disneyaulani.com -disneybaby.com -disneycareers.com -disneychannelonstage.com -disneychannelroadtrip.com -disneycruisebrasil.com -disneyenconcert.com -disneyhentai.com -disneyiejobs.com -disneyinflight.com -disneyinternational.com -disneyinternationalhd.com -disneyjunior.com -disneyjuniortreataday.com -disneylatino.com -disneymagicmomentsme.com -disneyme.com -disneymeetingsandevents.com -disneymovieinsiders.com -disneymusicpromotion.com -disneynewseries.com -disneynow.com -disneypeoplesurveys.com -zerohedge.com -disneyplus.com -disneyredirects.com -disneysrivieraresort.com -disneystore.com -disneystreaming.com -disneysubscription.com -disneytvajobs.com -disneyworld-go.com -disp.cc -disqus.com -disquscdn.com -disqusservice.com -zerochan.net -zeriamerikes.com -zeplin.dev -alivevm.com -diyarbakirescort.com -dizhidizhi.com -dizhuzhishang.com -alivertsm.com -djangosnippets.org -djorz.com -djreprints.com -aliverewind.com -dkbeatsbydre.com -dkcloud.cc -dkk37.com -dkr.com -dkrecttv.com -dl-iphone.com -zenodo.org -dldlinks.com -dldshare.net -dlercloud.com -dlercloud.me -dlercloud.org -dleris.best -dlfacebook.com -zenmate.com -dlsite.com -dlsitenews.com -dlsitestudio.com -dlyoutube.com -alivercm.com -dm-event.net -dm530.net -dmcdn.net -dmed.technology -dmhy.org -dmm-extension.com -dmm.com -dmmapis.com -dmmrex.com -dmthin.com -dmthus.com -dmtiny.com -dmtone.com -dmtoss.com -dmugly.com -dmunit.com -dmupon.com -dmurge.com -dmuser.com -dmvary.com -dmvast.com -dmvery.com -dmvote.com -dmwage.com -dmwait.com -dmwake.com -dmwant.com -dmwarm.com -dmwarn.com -dmwash.com -dmweak.com -dmwhat.com -dmwhom.com -dmwife.com -dmwild.com -dmwing.com -dmwipe.com -dmwish.com -dmword.com -dnaav.com -dnaindia.com -aliveprofiler.com -dndbeyond.com -aliveitsm.com -dns-dns.com -dns-stuff.com -dns04.com -dns05.com -dns2go.com -dnscrypt.org -dnset.com -dnsrd.com -dnssec.net -dnsvisa.com -dnvodcdn.me -aliveipc.com -do.co -dobbyporn.com -doceapower.com -docker.com -dockerizer.com -docleradn.com -doclercdn.com -alipaymo.com -docs.com -doctor-videos.com -doctorvoice.org -documentforce.com -documentingreality.com -aliengu.com -dodgersexcartoons.com -doeda.com -dogcumshot.net -dogecoin.com -dogfart.com -dogfartnetwork.com -dogmovie.net -dogofcum.com -dogspics.net -alicloud.com -doi.info -doi.org -dojin-dl.com -dojin.com -dojindb.net -dojinmanga.net -dojinwatch.com -dok-forum.net -dollarfotoclub.com -dollarphotoclub.com -dollarphotosclub.com -dollf.com -dollnight.com -alibabacloud.com -domywife.com -donatecarsoh.org -dongtaiwang.com -dongtaiwang.net -dongyangjing.com -donkeykongcountryreturns.com -donkparty.com -donpornogratis.com -donsnaughtymodels.com -dontmovetochina.com -doodhwali.com -doom.com -doom9.org -alhs.xyz -dopaminegirl.com -dorjeshugden.com -doseofporn.com -dot.net -dotcernpilot.info -dotdeb.org -dotfacebook.com -dotfacebook.net -dotfreesex.com -dotherex.com -dothq.org -dotplane.com -dotsub.com -dotvpn.com -doubibackup.com -doubleclick-cn.net -doubleclick.net -doublethinklab.org -dougscripts.com -douhokanko.net -doujin-eromanga.com -doujin-freee.com -doujin-info.net -doujin-night.com -doujincafe.com -doujinfree.com -doujinland.info -doujinnomori.com -doujins.com -doure.net -douwriteright.com -douya.org -douyintt10.me -douzinnsi-eromannga.com -dowei.org -dowjones.com -dowjoneson.com -zengjinyan.org -zendesk.com -zencoder.com -zencdn.net -downloadpass.com -downloadsforipod.com -dphk.org -dpr.info -draftjs.org -dragonage.com -dragonagekeep.com -dragonagemovie.com -dragonhentai.net -dragoniscoming.com -dragonsprings.org -drbdsmporn.com -drbeatsukmart.com -drbizzaro.com -drdre-beats.com -drdrebeats-chen.com -drdrebeats-headphone.com -drdrebeats-usa.com -drdrebeatsale.com -drdrebeatsbillig.com -drdrebeatsdesale.com -drdrebeatsdiscount.com -drdrebeatsforu.com -drdrebeatsretail2013.com -drdrebeatssale7.com -drdrebeatsuk.com -drdrefnac.com -drdreheadphonebeats.com -drdreheadphonekey.com -drdreheadphonesusstore.com -drdremonster-beats.com -drdremonsterdre.com -drdreprobeatssale.com -dreamamateurs.com -dreamforce.com -dreammovies.com -dreamteamfc.com -dreamtoplay.com -dreamworks.com -drebeats-australia.com -drebeats-france.com -drebeats-monster.com -drebeats-monsteraustralia.com -drebeats-monsterusa.com -drebeats-singapore.com -drebeats-singapore.net -drebeats-singaporecheap.com -drebeats-singaporecheap.net -drebeats-solo.com -drebeats-studio.com -drebeatsaustralia-cheap.com -drebeatsaustralia-cheap.net -drebeatsbuy.com -drebeatsbydreoutlet.com -drebeatscanada.com -drebeatsdeutschland.net -drebeatsforsaleus.com -drebeatsheadphones-nz.com -drebeatshome.com -drebeatsoldes.com -drebeatsoutletstore.com -drebeatspill.com -drebeatssite.com -drebeatssolocybermondaysale.com -drebeatsstudio2013.com -drebeatstudio.com -drebyby.com -dremonsterbeatsoutlets.com -dreprobeats.com -dreprofy.com -drepung.org -drgan.net -dribbble.com -driverxxx.com -drivevideo.xyz -drkogyi.com -drmario-world.com -drmingxia.org -dronedj.com -dropbox-dns.com -dropbox.com -dropbox.tech -dropboxapi.com -dropboxbusiness.com -dropboxcaptcha.com -dropboxforum.com -dropboxforums.com -dropboxinsiders.com -dropboxmail.com -dropboxpartners.com -dropboxstatic.com -dropboxusercontent.com -drsunacademy.com -drtuber.com -drunk6.com -drunkenstepfather.com -drunkentop.com -dscn.info -dslr.net -dslreports.com -dsmtp.com -dssott.com -alhs.link -dswz88.xyz -dtci.co -dtci.technology -dtdns.net -dtiblog.com -dtsell.com -alhayat.com -dtv2009offers.com -dtvce.com -dtwang.org -dualeotruyen1s.com -duanzhihu.com -alforattv.net -dubai-escort-list.com -dubaihotties.org -dubox.com -alexlur.org -duck.co -duck.com -duckdns.org -duckduckco.com -duckduckgo.co -duckduckgo.com -duckduckgo.org -duckduckhack.com -duckgo.com -duckload.com -duckmovie.com -duckmylife.com -duckside.com -dudethrill.com -duihua.org -duihuahrjournal.org -dukgo.com -dulceecuador.com -dumb1.com -dumps69.com -dumpxxx.net -dungeonkeeper.com -alexanderstreet.com -alexa.com -dunyabulteni.net -duolingo.com -duoweitimes.com -duoweiweek.com -duping.net -duplicati.com -dupola.com -dupola.net -alchemysynth.com -albeats.com -durex-shopline.com -durex.com -zen8ok.xyz -durexcam.com -durexcanada.com -durexchina.com -durexindia.com -durexloveclub.com -durexukraine.com -durexusa.com -dutrai.com -duyaoss.com -duyaossr.com -albastudio.co -dvdpac.com -dvdstudiopro.biz -dvdstudiopro.com -dvdstudiopro.info -dvdstudiopro.net -dvdstudiopro.org -dvdtrailertube.com -dvh30n.vip -dvorak.org -dw-world.com -dw.com -dweb.link -albagals.com -dwnews.com -dwnews.net -dx9527.cc -dxyav.co -dykycl.com -dynacw.com -dynafleetonline.com -dynamic-dns.net -dynamicdns.biz -dynamics.com -dynawebinc.com -dyncdn.me -dyndns-ip.com -dyndns-pics.com -dyndns.org -dyndns.pro -dynssl.com -dynu.com -dynu.net -zello.com -dysfz.cc -dyttapi.com -dyttapis.com -alasbarricadas.org -dzze.com -e-bay.com -e-bay.net -e-cba.org -e-gold.com -e-hentai.org -e-hentaidb.com -e-traderland.net -e-tugra.com -e53w.com -e621.net -ea-anz-press.com -ea.com -eaaccess.com -eablackbox.com -eac-cdn.com -eacashcard.com -eachpay.com -eachpay.net -eacodigos.com -eadultgames.com -eafootballworld.com -eamirrorsedge.com -eamobile.com -eamythic.com -eamythic.net -eanordic.com -eaplay.com -earlyob.com -earlytibet.com -earngeek.com -earphonescheapest.com -earpod.net -earthcam.com -earthvpn.com -easic.com -easports.com -easportsactive.com -easportsactiveonline.com -easportsfootball.com -easportsfootballclub.com -easportsmma.com -easportsworld.com -eastbabes.com -eastern-ark.com -easternlightning.org -eastore.com -eastturkestan.com -eastturkistan-gov.org -eastturkistancc.org -easyanticheat.net -easymatureporn.com -easynike.com -easypic.com -easysexporn.com -eater.com -ebahy.com -ebalovo.com -ebay-authenticate.net -ebay-confirm.com -ebay-course.com -ebay-cz.com -ebay-delivery.com -ebay-discoveries.com -ebay-fashion.com -ebay-inc.com -ebay-inc.net -ebay-inc.org -ebay-online.com -ebay-sales.com -ebay-stories.com -ebay-us.com -ebay-vacation.com -ebay.com -ebay.org -ebay25.com -ebay68.com -ebaya.com -ebayads.com -ebayads.net -ebayadvertising.com -ebayanunsios.net -ebayauction.com -ebayaustralia.com -ebaybags.com -ebaybank.com -ebaybenefits.com -ebayboutique.com -ebayca.com -ebayca.org -ebaycafe.com -ebaycar.com -ebaycareers.com -ebaycdn.net -ebaychina.net -ebayclassifieds.com -ebayclassifieds.info -ebayclassifieds.org -ebayclassifiedsgroup.com -ebayclassifiedsgroup.info -ebayclassifiedsgroup.org -ebayclassifies.com -ebayclub.com -ebaycoins.com -ebaycom.com -ebaycommercenetwork.com -ebaycourse.com -ebayd.com -ebayde.com -ebaydlassifieds.com -ebaydts.com -ebayedu.com -ebayeletro.com -ebayenterprise.com -ebayenterprise.info -ebayenterprise.net -ebayetc.com -ebayfashion.com -ebayfashion.net -ebayforcharity.org -ebayforeclosure.org -ebayfrance.com -ebayglobalshipping.com -ebaygroup.com -ebayhabit.com -ebayheels.com -ebayhots.com -ebayimg.com -ebayinc.com -ebayinc.net -ebayinc.org -ebayincconnectedcommerce.net -ebayinkblog.com -ebayinternetsalestax.com -ebayit.com -ebayjewelry.com -ebayjob.com -ebayla.org -ebaylisting.com -ebaylocal.net -ebaylocationsdevacances.com -ebaymag.com -ebaymainstreet.com -ebaymall.com -ebaymarketplace.net -ebaymotors.com -ebaymotors.org -ebaymotorsblog.com -ebaynow.com -ebaynyc.com -ebayon.com -ebayon.net -ebayoncampus.com -ebayopen.com -ebayopensource.com -ebayopensource.net -ebaypakistan.net -ebaypark.com -ebayparts.com -ebayprivacycenter.com -ebayqq.com -ebayradio.com -ebayrtm.com -ebayseller.com -ebayshoesstore.com -ebayshop.com -ebayshop111.com -ebayshopping.org -ebaysocial.com -ebaysoho.com -ebaysohos.com -ebaystatic.com -ebaystore.com -ebaystore77.com -ebaystyle.com -ebaysweden.com -ebayt.com -ebaytechblog.com -ebaytopratedseller.net -ebaytrading.com -ebaytradingassistant.com -ebaytv.org -ebayuae.net -ebayvakantiehuizen.com -ebayvalet.com -ebayvietnam.net -ebayworlds.com -ebayy.com -ebenporno.com -ebony-beauty.com -ebonyinlove.com -ebonywebcamhub.com -eboobstore.com -ebookbrowse.com -ebookee.com -ebookforipad.com -ebsco.com -ebscohost.com -ebtcbank.com -ebuyheadphones.com -alanhou.com -ecgapp.net -echichimato.com -echocdn.com -echofon.com -echosign.com -ecministry.net -economist.com -economistgroup.com -economistgroupcareers.com -zeitworld.com -ecuatorianas.best -ed21.cc -alabout.com -edengay.net -zeit.co -zeit-world.org -edgecastcdn.net -edgedatg.com -edgefonts.net -edgemeplease.com -edgesuite.net -edicypages.com -edisebay.com -editorx.com -edmontonservice.com -edninfo.com -edns.biz -edoors.com -al-qimmah.net -edu-research.org -edubridge.com -edupro.org -edx-cdn.org -edx.org -al-islam.com -eebay.com -eenike.com -eevpn.com -eff.org -effers.com -efksoft.com -efproject.net -efuckt.com -efukt.com -akthelp.com -egotastic.com -egta.com -akow.org -ehgt.org -ehtracker.org -ehv.cc -ehwiki.org -eic-av.com -eilieili.cc -einstein.com -eireinikotaerukai.com -eisbb.com -eiu.com -ekhindi.com -ekhokavkaza.com -ekolojik.org -eksisozluk.com -el-ladies.com -elasticbeanstalk.com -elderscrolls.com -electbabe.com -electionsmeter.com -electrek.co -electricluxury.com -electrochem.org -electronicarts.com -electronjs.org -elephantlist.com -elephantsdream.org -elephanttube.com -elephanttubenew.com -elgaronline.com -elifesciences.org -elite.com -elitebabes.com -eliteindianporn.com -elixir-lang.org -ellawine.org -elog-ch.com -elog-ch.net -elpadrote.com -elpais.com -elpornoamateur.com -elrepo.org -els-cdn.com -elsevier-ae.com -elsevier.com -eltondisney.com -emaga.com -emanna.com -embase.com -embed-cdn.com -embedly.com -embl.org -emblstatic.net -embs.org -emcs.org -emerald.com -akiba-web.com -akiba-online.com -emojipedia.org -emome.net -empfil.com -empflix.com -empornium.site -ems-ph.org -emule-ed2k.com -emulefans.com -emuparadise.me -zeit-world.net -zeit-world.com -enablementadobe.com -encoretvb.com -encrypt.me -encuentroscasualesoecuador.com -encyclopedia.com -enema-porn.com -enema-videos.com -enemabasics.com -enemaexperiences.com -enemahistory.com -enemainformation.com -enemanozzle.info -enemaprocedure.com -enemarotica.com -enemas4fun.com -enemasexfetish.com -enemasupplier.com -enematube.com -enewstree.com -enf-cmnf.com -enfaaplus.com -enfababy.com -enfabebe.com -zeeuk.com -enfagrow4.com -enfamil.com -enfasmart.com -engagedaily.org -engineeringvillage.com -englishforeveryone.org -englishpen.org -enjoyasianporn.com -enjoyfuck.com -enpirion.com -enspireformula.com -entensity.net -entermap.com -entermediadb.net -entermediadb.org -enterprisepaging.com -enterprisessl.com -entrust.net -entrustdatacard.com -epicbrowser.com -epicgames.com -epicgames.dev -epicreads.com -epigeum.com -epikporn.com -epinions.com -episcopalchurch.org -episodic.com -epoch.cloud -epochbuy.com -epochcar.com -epochhk.com -epochmall.com -epochmediagroup.com -epochshop.com -epochstories.com -epochtime.com -epochtimes-bg.com -epochtimes-romania.com -epochtimes.com -epochtimeshk.org -epochtimestr.com -epochweek.com -epochweekly.com -eporner.com -akatns.net -eprintsw.com -akastream.net -equinenow.com -akastream.com -erabaru.net -erepublik.com -akasha.world -erights.net -erito.com -eriversoft.com -erktv.com -erlang.org -ernestmandel.org -akamqi.com -ero-anime.net -ero-comic-hunter.net -ero-kawa.com -ero-labs.cloud -ero-labs.com -ero-labs.net -ero-labs.online -ero-labs.site -ero-ma-nia.com -ero-manga-platinum.net -ero-mangalife.com -eroan.xyz -erocurves.com -erodaizensyu.com -zeetv.com -zeenite.com -erodougazo.com -erodoujinlog.com -erodoujinshi-world.com -erodoujinworld.com -eroelog.com -eroero69.work -erofights.com -erofullsets.net -erofus.com -erogames.com -erogazo-jp.net -erogazo-ngo.com -erogazopple.com -erogazou-pinkline.com -erogazoufactory.com -erohentai.net -erolabs.cloud -erolabs.com -erolabs.game -erolabs.net -erolabs.online -eromanga-ace.com -eromanga-cafe.com -eromanga-hentai.com -eromanga-kingdom.com -eromanga-mainichi.com -eromanga-school.com -eromangadouzin.com -eromangajukujo.com -eromazofu.com -erome.com -eromon.net -eropasture.com -eropics.org -eroprofile.com -erosberry.com -eroshiko.net -erotelki.org -eroterest.net -erothots.co -erotic-artsites.com -erotic-hentai.com -erotic-photos.net -eroticart-top100.com -eroticbeauties.net -eroticbeautyhub.com -erotichdworld.com -eroticsaloon.net -erotictube.me -eroxia.com -eroyakuba.com -ertk.net -akamii.com -es-visiontimes.com -esbeatsbydrebuy.com -escandinavia-arg.com -escort.guide -escort24h.net -escortamsterdam1.com -escortdude.com -zeenews.com -eskimotube.com -eslite.com -esm.run -esmarthealth.com -esmatube.com -esmtp.biz -esp32.com -esp8266.com -esperanzagomez.org -espn.com -espn.net -espncdn.com -espnqa.com -esposasymaridos.com -espressif.com -esri.com -zeeentertainment.com -estudiopenthouse.com -esu.dog -akami.net -esurance.com -akami.com -etadult.com -etaiwannews.com -etheadphones.com -etherdelta.com -ethereum.foundation -ethereum.org -akamci.com -etizer.org -etokki.com -zeebiz.com -etowns.net -etowns.org -etsy.com -ettoday.net -etviet.com -etwealth.com -akamam.com -eu-consumer-empowerment.com -zeebioskop.com -zee5.com -zee.com -eu.org -eubluecardvisa.com -eucasino.com -eulam.com -eurekaselect.com -eurekavpt.com -eurobabeindex.com -eurogirlsescort.com -euroipad.com -euronews.com -europalibera.org -europepmc.org -europornstar.com -eurosexscene.com -akamak.com -akamaizercentral.com -evaelfie.com -evanottyvideos.com -evemodels.com -eventsinfocus.org -akamaized.net -everia.club -evernote.com -every1dns.net -everydayporn.co -evgld7cg58l8.com -evilangel.com -evise.com -evropaelire.org -evschool.net -eworld.com -exacttarget.com -examroom.info -exascale-tech.com -excedo.com -excitebots.com -exec-appointments.com -exgirlfriendmarket.com -exhentai.org -exiporn.com -exmo.com -exmormon.org -exoav.com -exotic-ghana.com -exoticuganda.com -expatshield.com -expecthim.com -expekt.com -experience-vmware.com -experiencebillmelater.com -expertmaker.com -experts-univers.com -explicittube.com -exploader.net -exploitedcollegegirls.com -exploitedteensasia.com -exploreintel.com -explorespanking.com -exporntoons.net -exposedlatinas.com -expressvpn.com -expresswifi.com -exrates.me -exs8fkw0.xyz -extensionworkshop.com -extmatrix.com -extraasian.com -extraindiansex.com -extrajapaneseporn.com -akamaized-staging.net -extreme-board.com -extremepornfilms.com -extremetube.com -exx.com -exxxtra.net -exxxtrasmall.com -exxxtrasmall1.com -eyny.com -ezpeer.com -ezua.com -f-dro1d.org -f-droid.com -f-droid.org -f6988.com -f8.com -faacebok.com -faacebook.com -faapy.com -faasbook.com -fabhairypussy.com -fabuye.top -fabuyemian.com -facbebook.com -facbeok.com -facboo.com -facbook.com -facbool.com -facboox.com -faccebook.com -faccebookk.com -facdbook.com -facdebook.com -face-book.com -faceabook.com -facebboc.com -facebbook.com -facebboook.com -facebcook.com -facebdok.com -facebgook.com -facebhook.com -facebkkk.com -facebo-ok.com -faceboak.com -facebock.com -facebocke.com -facebof.com -faceboik.com -facebok.com -facebokbook.com -facebokc.com -facebokk.com -facebokok.com -faceboks.com -facebol.com -facebolk.com -facebomok.com -faceboo.com -facebooa.com -faceboob.com -faceboobok.com -facebooc.com -faceboock.com -facebood.com -facebooe.com -faceboof.com -facebooi.com -facebooik.com -facebooik.org -facebooj.com -facebook-corp.com -facebook-covid-19.com -facebook-ebook.com -facebook-forum.com -facebook-hardware.com -facebook-inc.com -facebook-login.com -facebook-newsroom.com -facebook-newsroom.org -facebook-pmdcenter.com -facebook-pmdcenter.net -facebook-pmdcenter.org -facebook-privacy.com -facebook-program.com -facebook-studio.com -facebook-support.org -facebook-texas-holdem.com -facebook-texas-holdem.net -facebook.cc -facebook.com -facebook.design -facebook.net -facebook.org -facebook.shop -facebook.wang -facebook123.org -facebook30.com -facebook30.net -facebook30.org -facebook4business.com -facebookads.com -facebookadvertisingsecrets.com -facebookappcenter.info -facebookappcenter.net -facebookappcenter.org -facebookatschool.com -facebookawards.com -facebookblueprint.net -facebookbrand.com -facebookbrand.net -facebookcanadianelectionintegrityinitiative.com -facebookcareer.com -facebookcheats.com -facebookck.com -facebookclub.com -facebookcom.com -facebookconnect.com -facebookconsultant.org -facebookcoronavirus.com -facebookcovers.org -facebookcredits.info -facebookdating.net -facebookdevelopergarage.com -facebookdusexe.org -facebookemail.com -facebookenespanol.com -facebookexchange.com -facebookexchange.net -facebookfacebook.com -facebookflow.com -facebookgames.com -facebookgraphsearch.com -facebookgraphsearch.info -facebookgroups.com -facebookhome.cc -facebookhome.com -facebookhome.info -facebookhub.com -facebooki.com -facebookinc.com -facebookland.com -facebooklikeexchange.com -facebooklive.com -facebooklivestaging.net -facebooklivestaging.org -facebooklogin.com -facebooklogin.info -facebookloginhelp.net -facebooklogs.com -facebookmail.com -facebookmanager.info -facebookmarketing.info -facebookmarketingpartner.com -facebookmarketingpartners.com -facebookmobile.com -facebookmsn.com -facebooknews.com -facebooknfl.com -facebooknude.com -facebookofsex.com -facebookook.com -facebookpaper.com -facebookpay.com -facebookphonenumber.net -facebookphoto.com -facebookphotos.com -facebookpmdcenter.com -facebookpoke.net -facebookpoke.org -facebookpoker.info -facebookpokerchips.info -facebookporn.net -facebookporn.org -facebookporno.net -facebookportal.com -facebookquotes4u.com -facebooks.com -facebooksafety.com -facebooksecurity.net -facebookshop.com -facebooksignup.net -facebooksite.net -facebookstories.com -facebookstudios.net -facebookstudios.org -facebooksupplier.com -facebooksuppliers.com -facebookswagemea.com -facebookswagstore.com -facebooksz.com -facebookthreads.net -facebooktv.net -facebooktv.org -facebookvacation.com -facebookw.com -facebookwork.com -facebookworld.com -facebool.com -facebool.info -facebooll.com -faceboom.com -faceboon.com -faceboonk.com -faceboooik.com -faceboook.com -faceboop.com -faceboot.com -faceboox.com -facebopk.com -facebpook.com -facebuk.com -facebuok.com -facebvook.com -facebyook.com -facebzook.com -facecbgook.com -facecbook.com -facecbook.org -facecook.com -facecook.org -facedbook.com -faceebok.com -faceebook.com -faceebot.com -facegbok.com -facegbook.com -faceid99.com -faceid99.net -faceidglobal.com -faceless.me -faceobk.com -faceobok.com -faceobook.com -faceook.com -facerbooik.com -facerbook.com -facesbooc.com -facesofnyfw.com -facesoftibetanselfimmolators.info -facesounds.com -facetime.net -facetook.com -facevbook.com -facewbook.co -facewook.com -facfacebook.com -facfebook.com -faciometrics.com -fackebook.com -facnbook.com -facrbook.com -factograph.info -factpedia.org -factwire.org -facultyopinions.com -facvebook.com -facwebook.com -facxebook.com -fadebook.com -faebok.com -faebook.com -faebookc.com -faeboook.com -faecebok.com -faesebook.com -fafacebook.com -akamaitechnologies.net -faicbooc.com -fairmarket.com -akamaitechnologies.com -faith100.org -faithfuleye.com -faiththedog.info -fakehub.com -faketaxi.com -fakings.com -fakku.net -faldgjalg.xyz -fallenark.com -falsefire.com -falun-co.org -falun-ny.net -falunart.org -falunasia.info -falunau.org -falunaz.net -falundafa-dc.org -falundafa-florida.org -falundafa-nc.org -falundafa-pa.net -falundafa-sacramento.org -falundafa.org -falundafaindia.org -falundafamuseum.org -falungong.club -falunhr.org -faluninfo.net -falunpilipinas.net -falunworld.net -fameregistry.com -family-sex.me -familyfed.org -familypies.net -familypornhd.com -familysexsimulator.com -familysimulator.com -familystrokes.com -famosascalvas.com -famous-nudes.com -famousinternetgirls.com -famousinternetgirlsgalleries.com -famousnudes.com -famouspornstars.com -famunion.com -fan-qiang.com -fanaken.com -fanatical.com -fanbox.cc -fandango.com -fandom.com -fanfox.net -fangbinxing.com -fangeming.com -fangeqiang.com -fanglizhi.info -fangmincn.org -zdusercontent.com -fangong.org -fangongheike.com -fangsung.com -fanhaodang.com -fanhaodian.com -fanhaolou.com -fanleakstoday.com -fanqiang.network -fanqiangdang.com -fanqianghou.com -fanqianglu.com -fanqiangyakexi.net -fanqiangzhe.com -fans-here.com -fansnudes.com -fansta.me -fansteek.com -fanswong.com -fantasiasguatemala.com -fantasti.cc -fantasticyoungporn.com -fanyue.info -fap-xxx.com -fap18.net -fap666.com -fapality.com -fapcat.com -fapdu.com -fapdude.com -faperoni.com -fapforfun.net -faphdporn.com -faphouse.com -fapmovz.com -fapnado.com -fapopedia.net -fappcelebs.com -fappeningbook.com -fappeningthots.com -fappenist.com -fapphub.com -fapporn.me -faproulette.co -faproulette.online -faproxy.com -fapsafari.com -fapteencam.com -faptitans.com -fapvid.com -fapxl.com -faqserv.com -fareastpornhub.com -farfetch-apps.com -farfetch-contents.com -farfetch.com -farfetch.net -akamaitech.net -faronics.com -faronics.tech -faronicslabs.com -faronicswise.com -fartit.com -farwestchina.com -fasebokk.com -fasebook.com -faseboox.com -fashionnike.com -fast.com -zdassets.com -fastestvpn.com -fastindianporn.com -fastlane.tools -fastly-terrarium.com -fastly.com -fastly.net -fastlylabs.com -fastlylb.net -fastssh.com -faststone.org -fasttext.cc -fasttrackreadysupport.com -fatbtc.com -fatstube.com -fau11.com -favebook.com -favelaporno.com -favepornmovs.com -favepornvids.com -favjapaneseporn.com -fawanghuihui.org -fawgaf.xyz -faycbok.com -faydao.com -fayuanbooks.com -faz.net -fb.careers -fb.com -fb.me -fb.watch -fbacebook.com -fbaddins.com -fbbmarket.com -fbboostyourbusiness.com -fbcdn.com -fbcdn.net -fbf8.com -fbfeedback.com -fbhome.com -fbinc.com -fbinfer.com -fbinnovation.com -fbjav.com -fblitho.com -fbmarketing.com -fbmessenger.com -fbooktaiwan.com -fbredex.com -fbreg.com -fbrell.com -fbrpms.com -fbsbx.com -fbsbx.net -fbsupport-covid.net -fbthirdpartypixel.com -fbthirdpartypixel.net -fbthirdpartypixel.org -fburl.com -fbworkmail.com -fc2.com -fc2blog.net -fc2china.com -fc2cn.com -fcacebook.com -fcaebook.com -fcebook.com -fcebookk.com -fcfacebook.com -fcww0.com -fdacebook.info -fdc64.org -fdiintelligence.com -fdroid.org -feacboo.com -feacbook.com -feacbooke.com -feacebook.com -fecbbok.com -fecbooc.com -fecbook.com -feceboock.com -fecebook.net -feceboox.com -fececbook.com -akamaitech.com -fedoraforum.org -fedoramagazine.org -fedorapeople.org -fedoraproject.org -feedburner.com -feeder.co -feedherfuckher.com -feedly.com -zbporn.com -feedx.net -feelssh.com -feer.com -feet9.com -feifeiss.com -feipang.link -feitian-california.org -feitianacademy.org -feixiaohao.com -femalefounderscomp.com -femalestars.com -femdomcc.net -feministteacher.com -femjoy.com -femscat.com -fengzhenghu.com -fengzhenghu.net -feook.com -ferabook.com -akamaistream.net -akamaisingapore.net -ferronetwork.com -ferryclean.com -fescebook.com -fesebook.com -festinhasbrasil.com -fetish-bb.com -fetishbank.net -fetishdreamz.com -fetishes.cam -fetishfishcams.com -fetishpapa.com -fetishpornfilms.com -fetishpornonly.com -fetishshrine.com -fetishtown.net -fetlife.com -fevernet.com -ffacebook.com -fffdm.com -fffucked.com -fflick.com -fflnk.net -ffmpeg.org -ffotolia.com -ffprofile.com -ffvpn.com -fgacebook.com -fgmtv.net -fgmtv.org -fhreports.net -akamaiphillipines.net -fi11.com -fi11av1.com -fi11tv1.com -akamaiphillipines.com -ficeboock.com -zb.live -akamainewzealand.com -akamaimagicmath.net -fifastreet.com -fifastreet3.com -fightforux.com -figma.com -figprayer.com -fileflyer.com -files2me.com -fileserve.com -filesmonster.vip -filesor.com -filipino-music.net -fillthesquare.org -filmeporno.blog -filmesdesexo.blog -filmespornos.net -filmingfortibet.org -filmsexeporno.com -filtercams.com -filthdump.com -fimfiction.net -finalcutpro.com -financeleadsonline.com -financetwitter.com -financialadvisoriq.com -finchvpn.com -find-apple.com -findacard.com -findasians.live -findbare.com -findcams.live -findhername.net -findmespot.com -findmybeats.com -findmyipad.com -findsav.com -findtubes.com -findvrporn.com -findyourlimits.com -findyoutube.com -findyoutube.net -fine-art-nude.org -fineartteens.com -finehub.com -finenike.com -fingerdaily.com -akamaihd.net -finisharabia.com -finishdishwashing.com -finishinfo.com -finler.net -finlitsummit.org -fiotolia.com -fire-emblem-heroes.com -firearmsworld.net -zb.com -firebase.com -firebaseapp.com -firebaseio.com -fireemblemawakening.com -firefox.com -firefoxusercontent.com -fireofliberty.org -firesidegatherings.com -akamaihd.com -zb.app -firestonebpco.com -zazzybabes.com -firestonecompleteautocare.com -firestonedrivestore.com -firestoneip.com -firestonerewards.com -firestonetire.com -firmaprofesional.com -akamaihd-staging.net -firstanalvideos.com -firstasianpussy.com -firstfivefollowers.com -firstgynexam.com -firstpelvicexam.com -firstpost.com -firstrade.com -fishmpegs.com -fitnakedgirls.com -fivestarpornsites.com -fixtracking.com -akamaietpphishingtest.com -fjlkajhgfa.top -akamaietpmalwaretest.com -fl310.com -flagrasamadores.net -flaru.com -flash-xxx.com -flashtranny.com -flatandfuckedmilfs.com -flathub.org -flatpak.org -flbjc.net -fleshbot.com -fleshlyx.com -fleursdeslettres.com -flexsig.com -flgjustice.org -fli8.xyz -akamaietpcompromisedmalwaretest.com -flickr.com -flickr.net -flickrhivemind.net -flickriver.com -fling.com -flipboard.com -flipfap.com -flipkart.com -flipnotestudio.com -flipshare.com -flipwithsurface.com -akamaietpcompromisedcnctest.com -flirt4free.com -flirtmoms.com -flirtyhoookup.com -flitto.com -fljmh.com -fljmh1.com -flnet.org -floorp.app -floppy-tits.com -flow.dev -flow.org -flowtype.org -akamaietpcnctest.com -akamaientrypoint.net -fluidpreview.com -flutter.dev -flutterapp.com -flyflv.com -flyingjizz.com -flyvpn.com -flyzy2005.com -akamaiedge.net -fmcebook.com -fnac.com -fnacebook.com -fnlondon.com -akamai.net -foampositeshoes.com -fochk.org -focusvpn.com -fofg-europe.net -fofg.org -fofldfradio.org -foftolia.com -follasian.com -fonolia.com -fontawesome.com -fontbook.com -fontexplorerx.com -zavat.pw -fonts.com -zattoo.com -fonts.net -fontshop.com -fontsinuse.com -akamai.com -akamai-trials.com -foofle.com -fooooo.com -footprintdns.com -footseen.com -footstockings.com -forbes.com -forbesimg.com -forbiddenasian.com -forbiddenmomsarchive.com -force.com -akamai-thailand.net -forduck.cyou -foreignaffairs.com -foreignpolicy.com -forgecdn.net -forhertube.com -fortawesome.com -forthebadge.com -forthethrone.com -fortnite.com -fortuneinsight.com -zatrahal.online -0cgdklr5sfwj.com -zapto.org -0dzn.com -zaozon.com -zaobao.com -forum4hk.com -forzamotorsport.net -forzaracingchampionship.com -forzarc.com -fosebook.com -fotile.me -fotiolia.com -fotoiia.com -fotolia-noticias.com -fotolia.cc -fotolia.com -fotolja.com -fotoscaserasx.com -foundationdb.org -zannel.com -fourthinternational.org -akamai-thailand.com -fox-corporation.com -fox-news.com -fox.com -fox10news.com -fox10phoenix.com -fox11.com -fox13memphis.com -fox13news.com -fox23.com -fox23maine.com -fox247.com -fox26.com -fox26houston.com -fox28media.com -fox29.com -fox2detroit.com -fox2news.com -fox32.com -fox32chicago.com -fox35orlando.com -fox38corpuschristi.com -fox42kptm.com -fox46.com -fox46charlotte.com -fox47.com -fox4news.com -fox51tns.net -fox5atlanta.com -fox5dc.com -fox5ny.com -fox5storm.com -fox6now.com -fox7.com -fox7austin.com -fox9.com -foxacrossamerica.com -foxaffiliateportal.com -foxandfriends.com -foxbet.com -foxbusiness.com -foxbusinessgo.com -foxcanvasroom.com -foxcareers.com -foxcharlotte.com -foxcincy.com -foxcincy.jobs -foxcincy.net -foxcollegesports.com -foxcorporation.com -foxcreativeuniversity.com -foxcredit.com -foxcredit.org -foxdcg.com -foxdeportes.com -foxdeportes.net -foxdigitalmovies.com -foxdoua.com -foxentertainment.com -foxest.com -foxfaq.com -foxfdm.com -foxfiles.com -foxgay.com -foxhq.com -foxinc.com -foxkansas.com -foxla.com -foxlexington.com -foxmediacloud.com -foxnation.com -foxnebraska.com -foxneo.com -foxneodigital.com -foxnetworks.info -foxnetworksinfo.com -foxnews.cc -foxnews.com -foxnews.net -foxnews.org -foxnewsaffiliates.com -foxnewsaroundtheworld.com -foxnewsb2b.com -foxnewschannel.com -foxnewsgo.net -foxnewsgo.org -foxnewshealth.com -foxnewslatino.com -foxnewsmagazine.com -foxnewsnetwork.com -foxnewsopinion.com -foxnewspodcasts.com -foxnewspolitics.com -foxnewsradio.com -foxnewsrundown.com -foxnewssunday.com -foxon.com -foxphiladelphia.com -foxplus.com -foxpoker.com -foxporns.com -foxredeem.com -foxrelease.com -foxrichmond.com -foxrobots.com -foxsmallbusinesscenter.com -foxsmallbusinesscenter.net -foxsmallbusinesscenter.org -foxsoccer.net -foxsoccermatchpass.com -foxsoccerplus.com -foxsoccerplus.net -foxsoccershop.com -foxsports-chicago.com -foxsports-newyork.com -foxsports-world.com -foxsports.co -foxsports.com -zalmos.com -foxsports.info -foxsports.net -foxsports2.com -foxsportsflorida.com -foxsportsgo.com -foxsportsla.com -foxsportsnetmilwaukee.com -foxsportsneworleans.com -foxsportsracing.com -foxsportssupports.com -foxsportsuniversity.com -foxsportsworld.com -foxstudiolot.com -foxsub.com -foxsuper6.com -foxtang.com -foxtel.com -foxtelevisionstations.com -foxtube.com -foxtv.com -foxtvdvd.com -foxuv.com -foxweatherwatch.com -fpacebook.com -fpmt-osel.org -fpmt.org -fpmtmexico.org -fptolia.com -fqcebook.com -fqok.org -fqrouter.com -akamai-sucks.net -fr-beatsbydrestore.com -fracebook.com -fragrancebay.com -francecasquebeatssolde.com -francemail.com -franklc.com -frcasquesbeats.com -freakshare.com -free-3d-porn.com -free-aa.com -free-abbywinters.com -free-erobooks.com -free-gate.org -free-hada-now.org -free-sns.com -free-ss.site -free-ssh.com -free-strip-games.com -free-wap-tube.com -free-xxx-porn.org -free00.com -free18.net -free3dadultgames.com -free64all.com -freeadultcomix.com -freealim.com -freeanimalporn.net -freearabsexx.com -freeb.com -freebasics.com -freebasics.net -freebdsmxxx.org -freebeacon.com -freebigmovies.com -freebrowser.org -freebs.com -freebsd.org -freecamsfan.com -freecamstars.com -freecartoons.biz -freechal.com -freechatnow.com -freechina.net -freechina.news -freechinaforum.org -freechinaweibo.com -freecodecamp.org -freeddns.com -freeddns.org -freedirecttvspecial.com -freedomchina.info -freedomcollection.org -freedomhouse.org -freedomsherald.org -freefacebook.com -freefacebook.net -freefacebookads.net -freefblikes.com -freeforums.org -freefq.com -freefuckvids.com -freegao.com -freegaypornfinder.com -freegaypornhdtube.com -freegaysexgames.com -freehentaipic.com -freehentaistream.com -freehongkong.org -freehqtube.com -freehulu.com -freeilhamtohti.org -freejavbt.com -freejavporn.mobi -freekazakhs.org -freekwonpyong.org -freelifetimefuckbook.com -freelotto.com -freeman2.com -freematuresgallery.com -freemoren.com -freemorenews.com -freemuse.org -freenet-china.org -freenetproject.org -freenewscn.com -freenode.net -freeones.com -freeopenvpn.com -freeoz.org -freeporn.com -freepornhdonlinegay.com -freepornhentaigames.com -freepornpreview.net -freepornq.com -freepornvideos.life -freesexalbum.com -freesexgames.games -freesexvideos2k.com -freesexyindians.com -freesexyindians.org -freesitexxx.com -freessl.com -freetcp.com -freetibet.net -freetibet.org -freetibetanheroes.org -freetribe.me -freeuseporn.com -freeviewmovies.com -freevpn.me -freewallpaper4.me -freewebs.com -freewechat.com -freeweibo.com -freewww.biz -freewww.info -freexinwen.com -freexvideos.org -freexxx.best -freexxx.win -freexxxporn.org -freeyellow.com -freeyouporn.mobi -freeyoutubeproxy.net -freezhihu.org -freieporno.com -freindfeed.com -frescolib.org -akamai-staging.net -freshporno.net -freshscat.com -freudbox.com -freyalist.com -friendbook.info -friendfed.com -friendfeed-api.com -friendfeed-media.com -friendfeed.com -friendfeedmedia.com -friends-of-tibet.org -friendsoftibet.org -fring.com -fringenetwork.com -frishoes.com -fritchy.com -akamai-regression.net -akamai-platform.net -from-pr.com -from-sd.com -fromchinatousa.net -frommel.net -akamai-platform-staging.com -akamai-platform-internal.net -frontiersin.org -frontlinedefenders.org -froogle.com -frootvpn.com -frostbite.com -frprn.com -fruitycams.com -fsacebok.com -fscebook.com -fscked.org -fsdn.com -fssta.com -fstopimages.com -fsurf.com -ft.com -ftadviser.com -ftcdn.net -ftchinese.com -fteproxy.org -ftiecla.com -ftopx.com -ftp1.biz -ftpserver.biz -akamai-cdn.com -ftvgirls.com -ftvmilfs.com -ftx.com -fu62.vip -fucd.com -fuchsia.dev -fuck-xxx-movies.com -fuck.com -fuck55.net -fuck6teen.com -fuckableteens.net -fuckbookecuador.com -fuckcnnic.net -fuckcuck.com -fuckgfw.org -fuckingawesome.com -fuckingfreemovies.com -fuckingmatures.com -fuckingthreesome.com -fuckmatureporn.com -fuckmaturepussy.com -fuckmeplease.net -fuckmoral.com -fuckmypakistanigf.com -fucksexhub.com -fuckteenvids.com -fuckthathussy.com -fucktube.com -fuckvideos.biz -fuhouse.club -akamai-access.net -akamai-access.com -fukzr1.cc -fulanax.com -fuli3.net -fulib711.shop -fuliba2021.com -fuliba2023.net -fulione.com -fulldesisex.com -fullerconsideration.com -fullfuli.com -fullhdxxx.com -fullpornnetwork.com -fullsexmovs.com -fullxxxmovies.net -fulue.com -fundaiphone5s.com -fundfire.com -fundinginstitutional.com -fundpaypal.com -fundraisingwithfacebook.com -funimation.com -funkyimg.com -funnyfacebook.org -funnyordie.com -funp.com -funshemale.com -fuq.com -fuqqt.com -furaffinity.net -furbo.org -furhhdl.org -furinkan.com -furl.net -furrypornvideos.com -furuke.com -fury.blog -fury.co -fury.dev -fury.help -fuskator.com -futanarihq.com -futhead.com -futpromos.com -futunited.com -futurechinaforum.org -futuremessage.org -futureofbusinesssurvey.org -fux.com -fuxporn.com -fuyin.net -fuyindiantai.org -fuzokudx.com -fxcm-chinese.com -fxnetwork.com -fxnetworks.com -fxporn.net -fzdm.com -fzdshare.net -fzh999.com -fzh999.net -fzlm.com -g-area.org -g-queen.com -g-technology.com -g-tun.com -g-tvapp.com -g-xxxhub.com -g.co -g.dev -g.page -g0v.social -g1d1goob.xyz -g6hentai.com -akamah.com -gab.com -gabocorp.com -gacebook.com -gaeproxy.com -gaforum.org -gagaoolala.com -gaito.xyz -akamaa.com -galaxyappstore.com -galaxymacau.com -gale.com -galegroup.com -galenwu.com -gallery-dump.club -galleryarchives.com -akam.net -akaint.net -galstars.net -gamboporn.com -gamcore.com -game-platform.net -game735.com -gamebeforethegame.com -gamejolt.com -gameon-masters.com -gamepass.com -gamepedia.com -gameroom.com -gamerotic.com -gamesathletes.com -gamesfuckgirls.com -gamesofdesire.com -gamesstack.com -gameuxmasterguide.com -gaming-notebooks.com -gamousa.com -gandi.net -ganges.com -ganjing.com -ganjingworld.com -gannett-cdn.com -gannett.com -gannettdigital.com -gao1.cc -gaofuwu.cc -gaoming.net -gaopi.net -gaozhisheng.net -gaozhisheng.org -akahost.net -gardennetworks.com -gardennetworks.org -garena.com -garena.live -garenanow.com -akagtm.org -garotaporno.com -garotoesperto.com -gartlive.com -gastrointestinalexam.com -gate-project.com -gate.cc -gatecoin.com -gateway.dev -zacebook.com -gather.com -gatherproxy.com -akafms.net -gay0day.com -gay1069sex.com -gay4tube.com -gayapatal.com -gayasianamateurs.com -gayasiantheater.com -gayasianxxx.com -gaybeeg.info -gaybf.com -gayboystube.com -gaybubble.com -gaycamvideos.net -gaycn.net -gaycock4u.com -gayfuckporn.com -gayfuror.com -gayharem.com -gayheaven.org -gayhub.com -gaymaletube.com -gaymap.cc -gaymenring.com -gayonthenet.net -gaypad.net -gaypinoyporn.com -gayporn.com -gayporn.pro -gaypornforyou.com -gaypornhdfree.com -gaypornlinks.com -gaypornlove.net -gaypornmenu.com -gaypornonly.com -gaypornsky.com -gayrawclub.com -gayroom.com -gaysitessearch.cc -gaystarnews.com -gaystream.pw -gaythebest.com -gaytopcams.com -gaytube.com -gayvl.net -gaywatch.com -gazotube.com -gazounabi.com -akaeai.com -akadns6.net -akadns.net -gcld-line.com -gclooney.com -gclubs.com -gcmasia.com -gcolle.net -gcpnews.com -gcpnode.com -gcrtires.com -akadns.com -gdansk-amazon.com -gdbt.net -gdsrx888.com -gdzf.org -akademiye.org -akadeem.net -gears5.com -gearspop.com -gearstactics.com -akacrypto.net -geek-art.net -geek-squad-support.com -geek-squad.net -geek-squad.org -geek-squads.net -geekerhome.com -geekheart.info -geeksquad.cc -geeksquad.com -geeksquad.net -geeksquadcares.com -geeksquadcentral.com -geeksquadforums.com -geeksquadonline.com -geeksquadprotectionplan.org -geeksquadservices.org -geeksquadwebroot.org -geforce.com -geilegratisporno.com -geileomas.com -geinoueroch.com -gekikame.com -gelbooru.com -gelbooru.me -0emm.com -gemfire.net -gemfury.com -gendai.net -genitourinaryexam.com -genius.com -genkai-hounyo.com -genshin-porn.com -genshinh.com -genshinimpact.com -aka-ai.net -aka-ai.com -gentoo.org -geocities.com -geodesummit.com -geolytics.com -geoport.com -ak1.net -geotrust.com -z676869.com -geraldoatlarge.com -gerefoundation.org -gerritcodereview.com -get.app -get.dev -get.how -get.new -get.page -get.rsvp -getadblock.com -getastrill.com -getbootstrap.com -getboxer.com -getbraintree.com -getbumptop.com -getchu.com -getcloak.com -getcomposer.org -getdrebeatssale.com -getdropbox.com -getfappy.com -getfedora.org -getfoxyproxy.org -getfreedur.com -getgom.com -geti2p.net -getiton.com -getjetso.com -getlantern.org -getmalus.com -getoutline.org -getpocket.com -getprintersupports.com -getscorecash.com -getsexgames.com -getsocialscope.com -getsync.com -gettr.com -gettrials.com -gettyimages.com -getuploader.com -getws1.com -getwsone.com -getzola.org -ajtalk.com -gfacecbook.com -gfarchive.com -gfashion.com -gfjizz.com -gfleaks.com -gfotolia.com -gfpics.com -gfpornbox.com -gfpornmovies.com -gfpornvideos.com -gfrevenge.com -gfsale.com -gfw.press -gfw.report -gfycat.com -gfysex.com -ajsjx.com -ggdiao.com -ajplus.net -ggjav.com -ggoogle.com -ggpds.com -ggpht.com -ggsrv.com -ggssl.com -aiweiweiblog.com -ghettotube.com -ghidra-sre.org -ghostgames.com -ghostpath.com -ghtv666.top -ghut.org -aiweiwei.com -giantessbooru.com -giantessnight.com -giffgaff.com -giffgaff.design -gifnuki.com -gifree.com -gigabyte.com -gigantits.com -gigaporn.org -gigaxvideos.com -gigjam.com -gimy.cc -gimy.co -ginmoe.com -gipscorp.com -giratina.com -girl-secret.com -girl7942.com -girlbanker.com -girlfriendgalleries.net -girlfriendhomeporn.com -girlfriendvideos.com -girlfriendvids.net -girlfuckshorse.net -girlfur.com -girls.xyz -girlscanner.cc -girlscv.com -girlsdelta.com -girlsfuck-tube.com -girlsheaven-job.net -girlsnudepic.com -girlsofdesire.org -girlsongirlstube.com -girlspoopingtube.com -girlssexxxx.com -girlstryanal.com -girlsway.com -girlswelustfor.com -girlsxxx.net -gisplanning.com -git-scm.com -gitbook.com -github.blog -github.com -github.community -github.dev -githubapp.com -githubassets.com -githubhackathon.com -githubnext.com -githubpreview.dev -githubstatus.com -githubuniverse.com -githubusercontent.com -gitlab-static.net -gitlab.com -gitlab.net -gitstar.com -gitstar.net -gittigidiyor.net -gittigidiyorsikayet.com -gizlen.net -gizmoxxx.com -gjczz.com -aiv-cdn.net -aishegw.com -gladporn.com -glam0ur.com -glamourtits.com -glasamerike.net -aisex.com -aisejushi.com -global-sci.org -globaledu.org -globaljihad.net -globalmediaoutreach.com -globalmuseumoncommunism.org -globalrescue.net -globalriskregulator.com -globalsecurity.org -globalsign-media.com -globalsign.com -globalsign.net -globalspec.com -globaltm.org -globalvoices.org -globalvoicesonline.org -globalvpn.net -airwickarabia.com -airwick.net -glock.com -gloporn.com -gloryhole.com -gloryholefucking.com -gloryholeswallow.com -gloryofheracles.com -glorystar.me -gluckman.com -glype.com -glyphsapp.com -airwick.com -airwatchqa.com -gmail.com -airwatchexpress.com -gmgard.com -gmhz.org -gmll.org -gmnetworks.net -airvpn.org -gmodules.com -gmoney.org -z5.com -airtunes.net -airtunes.info -gnews.org -gnom-cham.com -gnu.org -gnzi.xyz -gnzi1.top -go-disneyworldgo.com -go-gaytube.com -go-lang.com -go-lang.net -go-lang.org -go-pki.com -go.com -go.dev -z5.app -go141.com -go2av.com -goagent.biz -z18r.com -goagentplus.com -gobeatsye.com -gobet.cc -gobianywhere.com -gobuyonlinestore.net -gockhuatviet.com -airtunes.com -godaddy.com -godfootsteps.org -godns.work -godoc.org -godsdirectcontact.org -godsimmediatecontact.com -goduckgo.com -gofucker.com -gofuckmenow.com -gofundme.com -gog-statics.com -gog.com -gogle.com -gogo-load.com -gogoanime.wiki -gogocdn.net -gogole.com -gogotunnel.com -gohentai.net -gokbayrak.com -golang.com -golang.net -golang.org -gold-gay.com -goldbet.com -goldbetsports.com -golden-ages.org -goldeneyevault.com -goldenfrog.com -goldjizz.com -goldnikeclub.com -airsupportapp.com -goldsexvideos.com -goldstep.net -goldteenporn.com -goldwave.com -golosameriki.com -gonglchuangl.net -gongmeng.info -gongminliliang.com -gongwt.com -gongyichuangyi.net -gonike.com -gonzo-movies.com -gonzo.com -airsextube.com -good-gay.com -gooday.xyz -gooddaychicago.com -gooddns.info -airport.com -goodhope.school -goodporno.cc -goodreaders.com -goodreads.com -goodsdunk.net -goodsexporn.org -airport-gov-cn.com -goofind.com -airmay.com -googel.com -googil.com -googl.com -airmax360.com -google-access.net -google-analytics-cn.com -google-analytics.com -google-syndication.com -google.co -google.com -z18r.co -google.dev -google.me -google.net -google.org -google.ventures -googleacquisitionmigration.com -googleadservices-cn.com -googleadservices.com -googleanalytics.com -googleapis-cn.com -googleapis.com -googleapps-cn.com -googleapps.com -googlearth.com -googleartproject.com -googleblog.com -googlebot.com -googlecapital.com -googlecert.net -googlechinawebmaster.com -googlecode.com -googlecommerce.com -googledanmark.com -googledomains.com -googledrive.com -googlee.com -googleearth.com -googlefiber.com -googlefiber.net -googlefinland.com -googleflights-cn.net -googlegroups.com -googlehosted.com -googleideas.com -googleinsidesearch.com -googlelabs.com -googlemail.com -googlemaps.com -googlemashups.com -googleoptimize-cn.com -googleoptimize.com -googlepagecreator.com -googlephotos.com -googleplay.com -googleplex.com -googleplus.com -googlescholar.comusa -googlesile.com -googlesource.com -googlestore.com -googlesverige.com -googlesyndication-cn.com -googlesyndication.com -googletagmanager-cn.com -googletagmanager.com -googletagservices-cn.com -googletagservices.com -googletraveladservices-cn.com -googletraveladservices.com -googleusercontent.com -googlevads-cn.com -googleventures.com -googlevideo.com -googleweblight.com -googlezip.net -googlr.com -goolge.com -gooogle.com -gopetition.com -gopivotal.com -gopivotal.net -goporngate.com -goproxing.net -goragay.com -gordonmoore.com -goreforum.com -goregrish.com -gosexpod.com -goshemalecams.com -gospelherald.com -gosq.co -gosq.com -gostorego.com -gostosanovinha.com -got-game.org -gotblop.com -gotcosmos.com -gotgayporn.com -gotgeeks.com -gothdporn.com -gotporn.com -gotraffic.net -gotrusted.com -airitilibrary.com -gouri.xyz -airiti.com -govforce.com -airhornbot.com -gpstheseries.com -gputechconf.com -gqzmnav.cc -airhorn.solutions -gr-assets.com -gr8domain.biz -gr8name.biz -grabhentai.com -grabpussy.com -gradeuptube.com -grafolio.com -graias.com -graiasmovies.com -airgonetworks.com -grammaly.com -grandepornogratis.com -grandtrial.org -grangorz.org -grannygetsafacial.com -grannylister.com -grannylovesbbc.com -grannylovesyoungcock.com -grannytube.net -graph.org -graphql.org -gravatar.com -gravitytank.com -greasespot.net -great-firewall.com -great-roc.org -greatergothammini.com -greatfire.org -z00.world -greatfirewall.biz -greatfirewallofchina.net -greatfirewallofchina.org -greatretroporn.com -greatroc.org -greatzhonghua.org -airconsole.com -greenpeace.org -greenplum.net -greenreadings.com -greenvpn.net -greenvpn.org -greginhollywood.com -gridaware.app -grindr.com -grooby.com -grotty-monday.com -groupfun.com -groups.com -grss-ieee.org -grupobmw.com -airav.wiki -gs-discuss.com -gscanada.info -gsccdn.com -gsearch.media -z-lib.org -gstatic-cn.com -gstatic.com -gsuite.com -airav.cc -yzzk.com -gtricks.com -gts-vpn.com -gtv.org -gtv1.org -gtvmediagroupfairfund.com -airasia.com -gu-chu-sum.org -gu-web.net -guaguass.com -guaguass.org -guambmw.com -guancha.org -guaneryu.com -guangming.org -guangnianvpn.com -guaranitermal.com -air-watch.com -guardianapis.com -air-nike-shoes.com -aiph.net -guardianproject.info -guardster.com -aipa553.com -gucci.com -guccimuseo.com -guccitimeless.com -aimsciences.org -guifw.xyz -guifw2.top -guishan.org -gumroad.com -gun-world.net -gunsamerica.com -gunsandammo.com -guo.media -guochantube.com -guochanw.life -guruofporn.com -gutteruncensored.com -guysnightlife.com -gv.com -gvlib.com -gvt0.com -gvt1-cn.com -gvt1.com -gvt2-cn.com -gvt2.com -gvt3.com -gvt5.com -gvt6.com -gvt7.com -gvt9.com -aimei133.com -gwiki.net -gwins.org -gwtproject.org -aibaobei.me -gyakusimei.com -gyalwarinpoche.com -gyatsostudio.com -gynoexam.info -gyutto.com -gzone-anime.info -h-china.org -h-doujinshi.xyz -h-flash.com -h-moe.com -yzld188.top -h-webtoon.com -h0930.com -h18ani1.vip -h1n1china.org -h2porn.com -h528.com -h5dm.com -h5galgame.me -hacg.club -hacg.me -hacg.red -hacken.cc -hacker.org -hackerfacebook.com -hackerguardian.com -hackfacebook.com -hackfacebookid.com -hacklang.org -hackthatphone.net -hackthedrive.com -hackyourconsole.com -hadesex.com -haha888.xyz -hahlo.com -haho.moe -hairy-amateurs.com -hairy-beauty.com -hairy-women-pussy.net -hairyclassic.com -hairydivas.com -hairynature.com -hairyolder.com -hairypornsite.com -haisetu.net -haitenjp.com -haiwaikan.com -aiaa.org -half.com -halfcanada.com -halfjapan.com -yyjlymb.xyz -hamsterfucktube.com -handbags-nike.com -handbagsoutletebay.com -handcraftedsoftware.org -handjobcumvideos.com -handjobhub.com -handjobtube4free.com -ai-wen.net -hanime.me -hanime1.me -hanunyi.com -yyii.org -hao.news -haori888.com -haplorrhini.com -happy-vpn.com -haproxy.org -hardanalfucking.com -hardcore-sex-filme.com -hardcoregayblog.com -hardsex8.com -hardsextube.com -hardx.com -harperacademic.com -harperapps.com -harpercollins.com -harpercollinsadvantage.com -harpercollinschristian.com -harpercollinsspeakersbureau.com -harunyahya.com -hashicorp.com -haskell.org -haskellstack.org -hath.network -hautelook.com -hautelookcdn.com -have8.com -haveibeenpwned.com -hawaiibmw.com -hayabusa.dev -hayabusa.media -hbabit.com -hbfile.net -hbg.com -ai-kan.net -hbo.com -yyfb.cyou -hboasia.com -hbogo.com -hbogoasia.com -yx51.net -hbomax.com -hbomaxcdn.com -hbonow.com -hbrowse.com -hcaptcha.com -hcaptchastatus.com -hcbdsm.com -hclips.com -hcomic.net -hcomicbook.com -hcpdts.com -hd-tubes.com -hd1999.top -hdabla.net -hdb1.app -hdbigass.com -hddgames.cc -hddirectv.com -ahxxx.club -ahvideosexe.com -hdfreeporn.net -hdhole.com -hdjavonline.com -hdlt.me -hdouban.com -hdouban2.com -hdouga.com -hdporn1080.net -hdporn92.com -hdporncomics.com -hdpornmax.net -hdpornt.com -hdreporn.com -hdrplusdata.org -hdsex.pro -hdsexxx.net -hdtube.co -hdtube1.com -hdtvb.net -hdvideosporn.net -hdzog.com -he.net -headphonepubs.com -headphones-cool.com -headphones-dre.com -headphones-outlet-online.com -headphonesbeatsaudio.com -headphonesbeatsbydre.com -headphoneses.com -headphoneshome.com -headphoneshotsales.com -headphonesol.com -headphonesretailer.com -headphonessupply.com -headphonezip.com -headset987.com -healthcarecareeronline.com -heartbreakers.gallery -heartbreakers.info -heartyit.com -heaven-burns-red.com -heavenlyhentai.com -heavy-r.com -heavyfetish.com -hebiphone.com -hecaitou.net -hechaji.com -hegre-art.com -hegre.com -heijidi.life -heinonline.org -ahtranny.com -helixstudios.net -helloandroid.com -helloavgirls.com -hellokittybeats.com -helloqueer.com -hellosmartbook.com -helloss.pw -hellotxt.com -hellouk.org -hellporno.com -hellven.net -ywpw.com -helpeachpeople.com -helplinfen.com -helpuyghursnow.org -helpzhuling.org -ahtops.com -hentai-ani.me -hentai-archive.com -hentai-books.com -hentai-cosplays.com -hentai-covers.site -hentai-eroanime.net -hentai-for.net -hentai-fun.com -hentai-gamer.com -hentai-gif-anime.com -hentai-img.com -hentai-moon.com -ywoos.com -ywbclx.top -hentai-vostfr.net -hentai.desi -hentai.game -hentai.name -hentai.pink -hentai.pro -hentai.toys -hentai0.com -hentai01.com -hentai2.net -hentai2012.com -hentai247.net -hentai24h.org -hentai2games.com -hentai2read.com -hentai2w.com -hentai3dvideo.biz -hentai44.com -hentai4free.net -hentai4manga.com -hentai69.life -hentai69.online -hentaia.net -hentaiaction.net -hentaiasmr.moe -hentaiathome.net -hentaibaka.one -hentaibar.com -hentaiblue.com -hentaibros.com -hentaicity.com -hentaicloud.com -hentaiclub.net -hentaicomics.life -hentaicore.net -hentaicore.org -hentaicovid.com -hentaidirectory.org -hentaidude.com -hentaienvy.com -hentaiera.com -hentaiero.net -hentaifc.com -hentaifox.com -hentaifreak.org -hentaifromhell.org -hentaigamer.org -hentaigamesplanet.com -hentaigasm.com -hentaihand.com -hentaihaven.com -hentaihaven.me -hentaihaven.red -hentaiheadlines.com -hentaihere.com -hentaiheroes.com -hentaikey.com -hentaiknight.com -hentailabs.com -hentailegendado.com -hentaimangaporn.com -hentaimovieplanet.com -hentainanime.com -hentainhaven.com -hentainstream.com -hentaipapa.com -hentaipaw.com -hentaiplay.net -hentaiporn.com -hentaipornonly.com -hentaiprn.com -hentaiprno.com -hentaipros.com -yvesgeleyn.com -hentairead.com -hentairead.info -hentairead.vip -hentairox.com -hentairules.net -hentais.tube -hentaisea.com -hentaiseason.com -hentaispark.com -hentaistream.com -hentaistube.com -hentaisub.info -hentaitalk.com -hentaitk.com -hentaitokyo.com -hentaitube.online -hentaiverse.org -hentaivideos.net -hentaivideoworld.com -hentaivn.net -hentaivvz.com -hentaiworldporn.com -hentaix.me -hentaixxx.vip -hentaixxxvids.com -hentaiyes.com -hentaiz.cc -hentaiz.co -hentaiz.mobi -hentaiz.vip -hentaizap.com -hentaizilla.com -hentaizz.net -henti-night.com -heptio.com -heqinglian.net -hereistheporn.com -herexxx.com -heritage.org -ahswingerporno.com -hernudepics.com -herodex.org -heroero.com -heroesofdragonage.com -heroesofthestorm.com -heroku-app.com -heroku-charge.com -heroku.co -heroku.com -heroku.me -herokuapp.com -herokucdn.com -herokucharge.com -herokussl.com -herringnetwork.com -hetzner.cloud -hetzner.com -heungkongdiscuss.com -hexatronik.com -hexieshe.com -hexieshe.xyz -hexxeh.net -hey.boo -heydoga.com -heydouga.com -heyuedi.com -heywire.com -heyzo.com -hf-iphone.com -hgamer.pro -hgsacx.com -hgseav.com -ahsexfilme.com -hh-content.com -hhdcb3office.org -hhtdq17.com -hhthesakyatrizin.org -hhvm.com -hibdontire.com -hiccears.com -hidden-advent.org -hiddenvoyeurspy.com -hiddify.com -hide.me -hidecloud.com -hidein.net -hideipvpn.com -hideman.net -hidemy.name -hidemyass.com -hidemycomp.com -hidive.com -hifacebook.info -hifiporn.fun -hifixxx.fun -hifuli.com -higfw.com -highbolt.net -highcolonic.info -highdefinitionbeatsbydre.com -highpeakspureearth.com -highporn.net -highrockmedia.com -hightopnikes.com -highwirepress.com -hihiforum.com -hihigv.com -hihistory.net -hiitch.com -hikinggfw.org -hilostripper.com -ahpornotube.com -himalaya.exchange -himalayan-foundation.org -himalayanglacier.com -himemix.com -himemix.net -hindawi.com -hindiweb.com -hinet.net -hipaa6020.com -hiporn.net -hippyhillscomix.com -hipzoom.net -ahpornogratuit.com -historyofdota.com -historyofdota.net -historyofdota.org -hiswifepussy.com -ahorsecock.com -hitbdsm.com -hitbtc.com -hitxhot.com -hiwifi.com -hizb-ut-tahrir.info -hizb-ut-tahrir.org -hizbuttahrir.org -hjclub.info -ahentaitv.com -hk-pub.com -yuvutu.com -yusjb.com -yusercontent.com -yuntipub.com -yunlaopo.net -hk01.com -hk1lib.org -hk32168.com -hkacg.com -hkacg.net -hkatvnews.com -hkbc.net -hkbf.org -hkbigman.net -hkbn.net -hkbnes.net -hkbookcity.com -hkchronicles.com -hkchurch.org -hkcircleapp.com -hkcitizenmedia.com -hkcnews.com -hkcoc.com -hkcsl.com -hkday.net -hkdf.org -hkedcity.net -hkej.com -hkepc.com -hket.com -hketgroup.com -hkfaa.com -hkfreezone.com -hkfront.org -hkgalden.com -hkgolden.com -hkgolden.media -hkgpao.com -hkgreenradio.org -hkheadline.com -hkhkhk.com -hkjc.com -hkjp.org -hklft.com -hkmap.live -hkopentv.com -hkpeanut.com -hkporn.net -hkptu.org -hkreadingcity.net -hkreporter.com -ahegao.online -hkt-enterprise.com -hkt-eye.com -hkt.com -hkteducation.com -hktpremier.com -hktshop.com -hkusu.net -hkvwet.com -hkzone.org -hlbelygl.com -ahcathyxxx.com -hm.com -hmd.site -hmoegirl.com -hmonghot.com -hmvdigital.com -ah-me.com -hnalady.com -hnjhj.com -hnntube.com -hobonichielog.com -hochi.news -hoes.com -yunlaopo.com -hola.com -hola.org -holdemstripem.com -holloporn.com -hollyrandall.com -hololens.com -holymountaincn.com -holyspiritspeaks.org -home-made-porn-movies.com -home-made-videos.com -home-sex-tapes.com -home-song.com -yunlaopo.cc -homealonemilfs.com -agzy1.com -homedepot-static.com -homedepot.com -homefuckingmovies.com -agu.org -homegrownfreaks.net -homemade-porn-video.com -homemadeamateur.com -homemadeanalporn.com -homemadefucktube.com -homemadepornclip.com -homemadeporntubes.com -homemadevids.net -homemoviestube.com -homeperversion.com -homephoneplus.com -homepornbay.com -homepornking.com -homepornvideo.net -agoogleaday.com -homeservershow.com -homesexmade.com -honawalaan.com -agendaweek.com -honestpornreviews.com -aga-expo.com -hongjie10.xyz -hongjie11.xyz -hongkongdollvideo.org -hongkongfp.com -hongmaodan100.com -hongmeimei.com -honkaiimpact3.com -honkaistarrail.com -honven.xyz -hoodamateurs.com -hooligapps.com -hoolu.com -hootsuite.com -hoover.org -hoovers.com -hopedialogue.org -hopto.org -hornybitches.org -hornybutt.com -hornychat.net -hornyelephant.com -hornygamer.com -hornygfporn.com -hornygirlsonline.org -hornyjav.com -hornysexgame.com -hornytrip.com -hornywhores.net -horrorporn.com -horse-cum.net -horse4sex.com -horsecock.guru -horsecumshot.net -horsedick.net -horsedicks.net -horsemecum.com -hostloc.com -afriboyz.com -hot-arab-films.com -hot-cartoon.com -hot-gayporn.com -hot-sex-photos.com -hot-sex-tube.com -hot-teens.com -hot2048.com -hotair.com -hotamateurblowjobs.com -hotasianbabes.com -hotbeatsonsale.com -hotcandyland.com -hotcoin.com -hotcuckoldwife.com -hotcumporn.com -hotescortdusseldorf.com -hotfiesta.com -hotfucktube.com -hotgaylist.com -hotgirlsclips.com -hotgoo.com -hothomemade.com -hotindianbabe.com -hotindianxxxsex.com -hotladsworld.com -hotladyhere.com -afreecatv.com -hotmail.co -hotmail.com -hotmail.net -hotmail.org -hotmonsterbeats.com -hotmovies.com -hotmovs.com -hotntubes.com -hotnudegirls.net -hotporn.today -hotpornbible.com -hotpornfile.org -hotpornshow.com -hotporntubes.com -hotsexvideo.mobi -hotsexydolls.com -hotshame.com -hotspotshield.com -hotstar-cdn.net -hotstar-labs.com -hotstar.com -hotstarext.com -hotstunners.com -hotteenfreecam.com -hottestfilms.com -hottestheadphonesonline.com -hottg.com -hottystop.com -hotvpn.com -hotwifemovies.com -hotzxgirl.com -hougaige.com -housing.com -housingcdn.com -howfuck.me -howtoforge.com -howtohackfacebook-account.com -hoxx.com -hoyo.link -hoyolab.com -hoyoverse.com -hp-imagine.com -hp-infolab.com -hp-invent.com -hp-invent.info -hp-mns.com -hp-printing.com -hp-webplatform.com -hp-ww.com -hp.com -hp.company -hp3d.com -hp3dmetals.com -hp3dprinter.com -hp3dsamplepromo.com -hpallinoneprinter.com -hpapplicationscenter.com -hpayshop.com -hpbestbuy.com -hpbluecarpet.com -hpbluecarpet.net -hpbuiltforlearning.com -hpbundle.com -hpcampus.com -hpcatridge.com -hpccp.com -hpceo.com -hpcmw.net -hpcodewarsbcn.com -hpcomputers.com -hpcomputerservices.com -hpconnected.com -hpconnected.net -hpconnected.org -hpconnectedstage.com -hpcontinuum.com -hpcpi.com -hpcu.org -hpcustomersupport.com -hpcustomersupport.net -hpdaas.com -hpdesignjetl25500.com -hpdesktopcomputer.com -hpdownloadstore.com -hpdreamcolor.com -hpdriver.com -hpdrivers.com -hpdrivers.org -hpeclipse.com -hpengage.com -hpeprint.com -hpeprintcenter.com -hpeurope.com -hpeventcenter.com -hpfaqs.com -hpfeedback.com -hpgift.com -hpgpas.com -hpgraphicspartners.com -hpiie.org -hpinc.info -hpinc.net -hpindigopress.com -hpinkjet.com -hpinstantink.com -hpkeyboard.com -hplaptop.com -hplaptopbattery.com -hplargeformatremote.com -hplatexknowledgecenter.com -hplfmedia.com -hplip.net -hplipopensource.com -hpmarketplace.com -hpmemorychips.com -hpmicrcartridge.com -hpmini.com -hpmobile.com -hpofficejetprinter.com -hponlinehelp.com -hponlineprinting.com -hppage5000.com -hppavillionlaptop.com -hpphotoscanners.com -hpprinterdrivers.com -hpprinterinstalls.com -hpprintersupplies.com -hpsalescentral.com -hpserver.com -hpservices.com -hpshooping.com -hpshop.com -hpshoping.com -hpsignage.com -hpsmart.com -hpsmarts.com -hpsmartstage.com -hpsmartupdate.com -hpsoftware.com -hpspeaker.com -hpsprocket.com -hpsso.com -hpstore-china.com -hpstore-emea.com -hpstore.com -hpstorethailand.com -hpsupport.com -hpsuresupply.com -hptechventures.com -hpto.net -hptouch.com -hptouchpointmanager.com -hptrainingcenter.com -hptv.fun -hpuae.com -hpuniversity.info -hpusertraining.com -hpveer.com -hpvirtualthin.com -hpwallart.com -hpwellnesscentral.com -hpwsn.com -hq69.com -hqbabes.com -hqbutt.com -hqcdp.org -hqcollect.net -hqdesexo.com -hqjapanesesex.com -hqmovies.com -hqporner.com -hqseek.com -hqtrannytube.com -hqxxxmovies.com -afr.com -hrcchina.org -hrcir.com -hrea.org -hrichina.org -hrsaz.com -hrtsea.com -hrw.org -hrweb.org -afpforum.com -hsex.men -hsfacebook.com -hshsxkj.com -hsjp.net -hsselite.com -hstern.net -hstt.net -hsxhr.cc -afp.com -ht3200.top -yunchao.net -aflamsexhd.com -htkou.net -html5rocks.com -httpfacebook.com -https443.net -https443.org -httpsfacebook.com -httpwwwfacebook.com -htvncdn.net -htyj-bj.com -aflamsex.net -hu1u.com -hua-yue.net -huaglad.com -huanghuagang.org -huangse.love -huangyiyu.com -huanyuju.com -huaren4us.com -huarenav.com -huarenporn.com -huashangnews.com -huashundg.com -huati.cc -huaweicloud-dns.net -huaweicloud-dns.org -huaxia-news.com -huaxiabao.org -huaxin-lls.xyz -huayuworld.org -hubblephone.com -hudson.org -huffingtonpost.com -huffpost.com -huffpostarabi.com -huffpostbrasil.com -huffpostmaghreb.com -hugedildo.com -huggingface.co -aflamporn.com -huhaitai.com -huhamhire.com -huhangfei.com -huj-pizda.com -hulkshare.com -huloo.cc -hulu.com -huluaction.com -huluad.com -huluapp.com -huluasks.com -hulucall.com -hulufree.com -hulugans.com -hulugermany.com -hulugo.com -huluhuluhuluhulu10.work -huluim.com -huluinstantmessenger.com -huluitaly.com -hulunet.com -hulunetwork.com -huluplus.com -hulupremium.com -hulupurchase.com -huluqa.com -hulurussia.com -huluspain.com -hulusports.com -hulustream.com -huluteam.com -hulutv.com -huluusa.com -humanrightspressawards.org -humblebundle.com -humoron.com -hung-ya.com -hungerstrikeforaids.org -hungryclit.com -huobi.co -huobi.com -huobi.me -huobi.pro -huobiasia.vip -huobigroup.com -huobipro.com -huobitoken.com -huohaore.net -huping.net -hurgokbayrak.com -hussiepass.com -hustler.com -hustlercash.com -hutao.cloud -hutianyi.net -hutong9.net -hutpromos.com -huyandex.com -hwgo.com -hwinfo.com -hwslabs.com -hxc10.vip -hxcsxs.pro -hxdoll.com -hxwk.org -hxwq.org -hxxn12.top -affirmtrust.com -hybrid-analysis.com -hycgm1324.shop -hyperdreams.com -hyperrate.com -hypnohub.net -hypnoporn.net -hypnotube.com -hypodermic-injection.com -hypodermicinjectiononline.com -hyu2.com -affect3dstore.com -hzmn.net -i-123-hp.com -i-book.com -i-book.net -i-cable.com -i-o-u.info -i-scmp.com -yulghun.com -i.org -i2runner.com -i818hk.com -i91av.org -iaablog.com -iafd.com -iam.soy -iamakamai.com -iamakamai.net -iamremarkable.org -iamtopone.com -iana.org -iav19.com -iavnight.com -ibb.co -ibeats-uk.com -ibeatsbydre.cc -ibeatsbydre.com -ibiblio.org -iblist.com -iblogserv-f.net -afewmomentswith.com -ibm.com -ibm.net -ibonedyourmom.com -ibook.com -ibook.net -ibookpartner.com -ibooksauthor.com -ibradome.com -ibros.org -ibvpn.com -ibytedtos.com -ibyteimg.com -icams.com -afappyending.com -yuenuge113.xyz -iceporn.com -iceporncasting.com -icevirtuallibrary.com -ichigocandy.com -ichineseporn.com -icij.org -icl-fi.org -icloud-content.com -icloud-isupport.com -icloud.com -icloud.org -icloudads.net -icloudbox.net -icloudbrowser.net -icloude.com -icloudhome.com -icloudmail.net -icloudmusic.net -icloudnet.net -icloudo.com -icloudo.net -icloudos.net -icloudpay.net -icloudsecure.net -icloudsetup.com -icoco.com -iconpaper.org -icu-project.org -icuminside.com -afantibbs.com -yuanzhengtang.org -idarkdoll.com -ideal-teens.com -idelreal.org -identrust.com -identrust.net -idiomconnection.com -idnike.com -idol-sagasukun.com -idouga.com -idreamx.com -ids-apple.com -idservice.inc -idx.dev -yuanming.net -ie10.com -ie11.com -ie8.co -ie9.com -ieasy5.com -iebay.com -ied2k.net -aex.com -ieee-aess.org -ieee-cas.org -ieee-ccnc.org -ieee-ceda.org -ieee-ecce.org -ieee-edusociety.org -ieee-ies.org -ieee-ims.org -ieee-into-focus.org -ieee-isto.org -ieee-npss.org -ieee-pels.org -ieee-pes.org -ieee-ras.org -ieee-region6.org -ieee-sensors.org -ieee-tems.org -ieee-uffc.org -ieee-vics.org -ieee.org -ieeeaps.org -ieeecsc.org -ieeecss.org -ieeeday.org -ieeedeis.org -ieeefoundation.org -ieeemagnetics.org -ieeemce.org -ieeenano.org -ieeeoes.org -ieeer10.org -ieeer5.org -ieeer8.org -ieeesmc.org -ieeesystemscouncil.org -ieeeusa.org -ienergy1.com -ietf.org -ytimg.com -ifanqiang.com -ifcss.org -ifjc.org -aesworkshops.com -ifontcloud.com -iframejav.com -ifreewares.com -ifuckedmy.mom -ifuckedtheboss.com -ig.me -igaychat.com -igcd.net -igcdn.com -igetnaughty.com -igfw.net -igfw.tech -igi-global.com -igkbroker.com -ignitedetroit.net -ignites.com -ignitesasia.com -igniteseurope.com -igoogle.com -igoshopping.net -igotpornpics.com -igpublish.com -igsonar.com -igtv.com -igvita.com -ihakka.net -ihao.org -iicns.com -iijav.com -aerogardcn.com -iirmll.com -ijavhd.com -aenhancers.com -ikea.com -ikea.net -ikids.com -iknowthatgirl.com -ikstar.com -ikwb.com -aei.org -ilbe.com -ilhamtohtiinstitute.org -ilife.wang -illianacomputerrecycling.com -illusion111.com -illusionas.com -illusionchn.com -illusionfactory.com -illusiongw.com -illusionh.com -illusionl.com -illusionn2.com -illusionn3.com -illusionn4.com -illusionn5.com -illusionxz.com -illusiony.com -illusionze.com -illusnoi.com -ilongman.com -ilove-movies.com -iloveinterracial.com -ilovelongtoes.com -iloveprettylolimm.com -ilovexs.com -aebn.com -imac-apple.com -imac-applecomputer.com -imac.co -imac.com -imac.one -imacapple.com -imacapplecomputer.com -imacsources.com -imageab.com -imagebam.com -imagecurl.com -imagecurl.org -imagefap.com -imageflea.com -imagepost.com -images-amazon.com -images-gaytube.com -imageshack.com -imagetwist.com -imagevenue.com -imageworks.com -imagezilla.net -imagineecommerce.com -aeasyshop.com -imaypb.com -imb.org -ae.org -imdb.com -imgasd.com -imgbb.com -imgchili.net -imgcrl.org -imgix.com -imgix.net -imgmega.com -imgur.com -imgurinc.com -imilfs.com -imkev.com -imlive.com -immidio.com -immxd.com -imod.com -imonsterbeats.com -imoviegallery.com -imoviestage.com -imperialbusiness.school -imperiodefamosas.com -impermium.com -imsrbx.xyz -imstagram.com -imtagram.com -imzog.com -ytht.net -in-disguise.com -in99.org -inaporn.com -inasian.club -incapdns.net -incentivetravelgifts.com -incestflix.com -incestvidz.com -incezt.net -incloak.com -inclusivegrowthscore.com -incommon-rsa.org -indazn.com -indaznlab.com -independentdubaiescorts.com -independentoperatorcn.com -indexxx.com -india.com -indiablooms.com -indiaipad.com -indian-free-xnxx.com -indian-pornstars.com -indianarrative.com -indiancolleges.com -indianfuck2.com -indiangfvideos.com -indiangirlsclub.com -indianhiddencams.com -indianpornfast.com -indianporngirls.com -indianpornvideo.org -indianpornvideos2.com -indiansexmms2.com -indiansexpussy.com -indiansexstories.net -indiansexstories2.net -indiemerch.com -indienudes.com -indonesiaporn.name -industrialtoys.com -infinitetoons.com -infinitetube.com -adx.promo -influencersgonewild.com -infocert.digital -informs.org -advertisercommunity.com -infowars.com -infowarsmedia.com -infrapedia.com -advertfan.com -ingads.com -ingka.com -ingka.dev -ingkacentres.com -ingyenszexvideo.top -inhumanity.com -inikesneakers.com -init.shop -initiativesforchina.org -initproducts.com -inkchoice.com -inkedravens.com -inkui.com -inlethd.com -inmediahk.net -innermongolia.org -innovations-i.com -inoreader.com -inporn.com -insecam.org -inshot.cc -inshot.com -inshotapp.com -insidefilms.com -insidemacintosh.com -insider-intelligence.com -insider.com -insiderdevtour.com -insiderintelligence.com -insidevoa.com -instaadder.com -instabang.com -instachecker.com -instafallow.com -instafollower.com -instagainer.com -instagda.com -instagify.com -instagmania.com -instagor.com -instagram-brand.com -instagram-engineering.com -instagram-help.com -instagram-press.com -instagram-press.net -instagram.com -instagramci.com -instagramcn.com -instagramdi.com -instagramhashtags.net -instagramhilecim.com -instagramhilesi.org -instagramium.com -instagramizlenme.com -instagramkusu.com -instagramlogin.com -instagramm.com -instagramn.com -instagrampartners.com -instagramphoto.com -instagramq.com -instagramsepeti.com -instagramtakipcisatinal.net -instagramtakiphilesi.com -instagramtips.com -instagramtr.com -instagran.com -instagranm.com -instagrem.com -instagrm.com -instagtram.com -instagy.com -instamgram.com -instangram.com -instantfap.com -instantfapgay.com -instanthq.com -instantink.com -instantssl.com -instanttelegram.com -instaplayer.net -instawank.com -instgram.com -institut-tibetain.org -instituteofwar.org -intagram.com -intagrm.com -intc.com -integral7.com -adventuresbydisney.com -intel-research.net -intel-university-collaboration.net -intel.cc -intel.com -0plkijj.vip -intel.me -intelamericasstore.com -intelapacstore.com -intelatom.net -intelcapital.com -intelcapital.net -intelcloudbuilders.com -intelcloudfinder.com -intelemeastore.com -inteleventexpress.com -intelforchange.com -intelfreepress.com -intelgo.net -intelinsight.com -inteliotmarketplace.com -intell.com -intellearningseries.com -intellij.com -intellij.net -intellij.org -intellinuxgraphics.com -intellinuxgraphics.net -intellinuxwireless.net -intelnervana.com -intelnet.component -intelplay.com -intelquark.com -intelrealsense.com -intelrxt.com -intelsalestraining.com -intelsecurity.com -intelserveredge.com -intelsoftwarenetwork.com -intelstore.com -inteltechnologyprovider.com -intelvmwarecybersecurity.com -interactivebrokers.com -intercom.com -intercomassets.com -intercomcdn.com -internationalconnectionsacademy.com -internationalsaimoe.com -internet.org -internetdefenseleague.org -internetdownloadmanager.com -internetexplorer.co -internetexplorer.com -internetexxxplorer.com -internetfreedom.org -internetofeverything.com -internetpopculture.com -interracial-sites.com -intescort.com -intgram.com -inthenameofconfuciusmovie.com -intimateinvasions.com -intltencentcos.com -intporn.com -intramuscularinjection.info -adventofcode.com -intunewiki.com -inxian.com -inxporn.com -advanscene.com -ioe.com -ioffergift.com -ioinformatics.org -iop.org -ios-icloud.com -iosinthecar.com -iotinactionevents.com -iownyour.biz -iownyour.org -ip73.com -ipa-iphone.net -ipad.host -ipad.wang -ipad3.com -ipadaustralia.com -ipadpro.buzz -ipalter.com -ipfire.org -ipfs-gateway.cloud -yswet.com -ysvia.com -ystry.com -yssir.com -iphine.com -iphone-cd.com -iphone-cn.com -iphone-sh.com -iphone-vip1.com -iphone-vip2.com -iphone-vip3.com -iphone-vip4.com -iphone-vip5.com -iphone-yh.com -iphone-zh.com -iphone.com -iphone.host -iphone.wang -iphone4.com -iphone4hongkong.com -iphone4s.com -iphone5.com -iphone5casescovers.com -iphone5s5case.com -iphonecase2013.com -iphonecase5.com -iphonecases100.com -iphonecases5.com -iphonecollcase.com -iphonefc.com -iphonegermany.com -iphonehacks.com -iphonehangzhou.com -iphoneimessage.com -iphoneplus.wang -iphonerip.net -iphonetaiwan.org -iphoneunlockimei.com -iphoto.wang -advancediddetection.com -ipjetable.net -ipleadership.org -ipns.co -ipobar.com -ipod.co -ipod.com -ipod.net -ipodcleaner.com -ipoditouch.com -ipodnano.com -ipodnano.net -ipodprices.com -ipods.com -ipodtouch.co -ipodtouch.com -ipoock.com -iporntoo.com -iporntv.net -iportal.me -ipostnaked.com -ipple.com -ippog.org -ippotv.com -ippstatic.com -iproperty.com -iptvbin.com -ipvanish.com -adultvirtualworlds.net -iq.com -iqq2.cc -iqq3.cc -iqqtv.net -adultvideotop.com -iranianboobs.com -iransextv.com -iranx.net -iredmail.org -adultvideodump.com -iromod91.info -ysset.com -ironpython.net -ironsocket.com -irotv301.top -irribay.com -adulttoontube.com -is-a-hunter.com -isaacmao.com -isasecret.com -isca-speech.org -ischool.com -adulttime.com -isfocus.net -isgame365.cc -isgreat.org -isheppc.com -isiknowledge.com -iskoot.com -islahhaber.net -adultsextoys.com -islamawareness.net -islamhouse.com -islamiccenterofnewlondon.com -islamicity.com -islamicpluralism.org -islamtoday.net -ismaelan.com -adultsexgames.biz -ismalltits.com -ismprofessional.net -isohunt.com -israbox.com -iss138.com -issitedownrightnow.com -issquaredown.com -issquareup.com -issuu.com -adultsexgame.biz -adultrental.com -istiqlalhewer.com -istockphoto.com -istripper.com -isunaffairs.com -isuntv.com -isupportuyghurs.org -adultpornvideos.net -ita-do.com -itaboo.info -itaeromanga.com -italiabeatsbydrdre.com -italiatibet.org -itasoftware.com -adulto.vip -itcanwait.com -itcfonts.com -itemdb.com -itemfix.com -itfromtheinside.com -ithaisex.com -itnel.com -itools.info -itripto.com -itsaol.com -itsbetterwhenyouwinit.com -itsfuck.com -itshidden.com -itsoc.org -itu.int -itunbes.com -ituneas.com -itunes-radio.net -itunes.co -itunes.com -itunes.org -itunes12days.com -itunesessentials.com -itunesfestivals.com -itunesiradio.com -ituneslatino.com -ituneslogin.net -itunesmatch.com -itunesparty.com -itunesradio.com -itunesstore.co -itunesu.com -itunesu.net -adultmagazinespdf.com -itweet.net -iu45.com -iuhrdf.org -iuksky.com -iutunes.com -ivacy.com -adultlister.com -iverycd.com -ivintageporn.com -ivpn.net -iw8j.cc -iwantavnow.com -iwantgalleries.com -iwantmature.com -iwantporn.net -iwaponline.com -adultkeep.net -iwork.com -iwork.wang -iwyn138.com -ixquick.com -ixxx.com -iyalc.com -iyottube.com -iyouport.com -iyouport.org -izles.net -izlesem.org -j2objc.org -jabcomix.com -jable.org -jade-net-home.com -jadult.net -jafgrown.com -adultism.com -jamaat.org -jamanetwork.com -jambotube.com -jamestown.org -jamyangnorbu.com -jandyx.com -janor6.net -janwongphoto.com -japan-forward.com -japan-whores.com -japan18tube.com -japanbeast.com -japanese-scat.net -japaneseasmr.com -japanesebeauties.net -japanesebeauties.one -japanesegirlspictures.com -japaneselovelygirl.com -ysrub.com -japanfist.org -japanknowledge.com -japanxxxfilms.com -japon-girls.com -japteenx.com -japxtube.com -jasmin.com -jav-1080.com -jav-angel.net -jav-legend.com -jav-subtitles.com -jav-vr.net -jav.com -jav.dog -jav.gallery -jav.guru -jav.land -jav.place -jav01.cc -jav101.com -jav168.cc -jav19.com -jav223.com -jav24.com -jav2be.com -jav321.com -jav4you.org -jav789.com -jav889.xyz -jav9999.com -adultinfojpn.com -java.com -java.net -javakiba.org -javbabe.net -javbangers.com -javbobo.com -javbooks.com -javbraze.com -javbus.com -javbus22.com -javbuz.com -javcc.cc -javcc.com -javcdn.cc -javcl.com -javct.net -javcup.com -javdb.com -javdisk.com -javdock.com -javdoe.com -javdove.com -javdove8.xyz -javextreme.net -javfilms.com -javfor.me -javforme.ninja -javfree.me -javfuck.net -javfull.net -javfun.me -javfv.com -javgg.net -javgrown.com -javhard.net -javhard.org -javhaven.com -javhay.net -javhd.com -javhd.icu -javhd.pro -javhd.today -javhd3x.com -javhdfree.net -javhdhello.com -javhdonline.com -javhdporn.com -javhdporn.net -javher.com -javheroine.com -javhihi.com -javhip.com -javhub.me -javhub.net -javhuge.com -javidol.org -javjack.com -javjunkies.com -javkiki.com -javlands.net -javleak.com -javlibrary.com -javmany.com -javmenu.com -javmix.me -javmobile.mobi -javmobile.net -javmodel.com -javmoo.com -javmoo.xyz -javmost.com -javmost.xyz -javmuch.com -javnew.net -javopen.co -javout.co -javplatform.com -javpop.com -javpop.link -javporn.tech -javpost.net -javprice.com -javprime.net -javpub.me -javpush.com -javqd.com -javrank.com -javrave.club -javscat.net -javscatsex.com -javscatting.com -javscreens.com -javseen.com -javspanking.com -javstar.club -javstore.net -javsx.com -javtag.com -javtag.net -javtasty.com -javteg.net -javtiful.com -javtorrent.me -javtrailers.com -javtrust.com -javtube.cc -javtube.com -javtube.net -javvids.com -javwide.com -javxspot.com -javxxx.me -javynow.com -javzoo.com -jayspov.net -jbe-platform.com -jbtalks.cc -jbtalks.com -adulti01.com -adultgeek.net -jcpenney.com -jdavsp.pw -jdbimgs.com -jdbstatic.com -jdforum.net -jdwsy.com -adultgamingroom.com -jeanyim.com -adultgamestop.com -jennylist.xyz -jerk-porn.com -jerk24.com -jerkdolls.com -jerkdude.com -jerkmate.com -jerkmatelive.org -jerkofftocelebs.com -jessicaturner.com -jetbrains.com -jetbrains.net -jetbrains.space -jetbrains.team -jetfuelapp.com -jetfuelapps.com -jetos.com -jex.com -jfengtime.com -jfqu36.club -jfqu37.xyz -jfrog.com -jfrog.org -jgg18.xyz -jgoodies.com -jhxl.org -jiangweiping.com -jiaoyou8.com -jiayoulu.com -jibemobile.com -jichangtj.com -jieav.com -jieshibaobao.com -jigglegifs.com -jigong1024.com -ysrow.com -jihadology.net -jiji.com -jilhub.com -jims.net -jinbushe.org -jingpin.org -jingsim.org -jinmantiankong.com -jinnaju.com -jinpianwang.com -jinroukong.com -jinsilubanzhao.com -jintian.net -jinx.com -adultgamesportal.com -jitouch.com -jitsi.org -jiuse904.com -jiuse905.com -jiuzhouyihuo.com -jiyou520.com -jizzboom.com -jizzbunker.com -jizzhut.com -jizzle.com -000webhost.com -jizzthis.com -jjaaxyz.com -jjdong7.com -jjgirls.com -jkb.cc -jkbeats.com -jkf.net -jkface.net -jkforum.net -jkub.com -adultgameson.com -adultgamescollector.com -adultgamesapk.com -jm98.cc -jmcomic.me -jmcomic.mobi -jmcomic.moe -jmcomic1.city -jmcomic1.me -jmcomic1.mobi -jmcomic2.moe -jmlr.org -adultgames18.com -jmscult.com -jmvbt.com -jneurosci.org -adultgames.me -adultgames.games -joachims.org -joanabliss.com -adultgamereviews.com -jodic-forum.org -joeswall.com -johnpersons.com -johren.games -johren.net -joiasmr.com -joinclubhouse.com -joinmaidez.com -joinmastodon.org -joinside.org -jokerlu1.cc -jokerlu1.info -joox.com -jorropo.net -jos.com -journalchretien.net -journalofdemocracy.org -jove.com -joyhentai.com -joyjoy.net -joylovedolls.com -joymiihub.com -joyourself.com -joysporn.com -adultfriendfinder.com -ysraw.com -jpavcom.com -jpbabe.com -jpboy1069.net -jpg4.biz -jpg4.info -jpg4.pw -jpg4us.net -adultfreex.com -adultfilmdatabase.com -jpopforum.net -adulters.org -jpvhub.com -jquery.com -jquerymobile.com -jqueryui.com -jr24h.com -js.org -jsbridgestone.com -jsdelivr.com -jsdelivr.net -jstor.org -jsz91.com -jtube.space -jtvnw.net -jubushoushen.com -judeporn.com -juggsjoy.com -juhuaren.com -juicytwink.com -jukujo-club.com -julesjordan.com -juliamiles.com -juliamovies.com -juliepost.com -juliereyc.com -junauza.com -june4commemoration.org -junefourth-20.net -jungleheart.com -adulterfree.com -juoaa.com -jupyter.org -justav.net -justdied.com -justduckit.com -justfamilyporn.com -adultepic.com -justfreevpn.com -justfullporn.org -justhd.xyz -justicefortenzin.org -justindianporn.me -justlesbianpussy.com -justmysocks.net -justmysocks1.net -justmysocks2.net -justmysocks4.net -justnudepic.com -justpicsplease.com -justporn.com -justporn.link -justswallows.com -justtristan.com -justusboys.com -juyangbee.xyz -juyangto.info -juyuange.org -juzige.xyz -juziyue.com -jvid.com -jwkcgd.xyz -jwmusic.org -jwpcdn.com -jwplatform.com -jwplayer.com -jwpltx.com -jwpsrv.com -jyxf.net -k-doujin.net -k9vidz.com -ka-wai.com -kaamuu.com -kaggle.com -kaggle.net -kaggleusercontent.com -kagyu.org -kagyumonlam.org -kagyuoffice.org -kairakudoujin.net -kakao.com -kakaocdn.net -kakaocorp.com -kaktuz.com -kalachakralugano.org -kali.org -kamababa.com -kamisama-maeda-lab.com -kampalaexclusiveescorts.com -kankan.today -kannewyork.com -kanporno.com -kanshifang.com -kantie.org -kanzhongguo.com -kaob3.xyz -kaotic.com -karayou.com -karger.com -karinahart.com -karkhung.com -karlajames.com -karmapa-teachings.org -karmapa.org -karupsha.com -karupspc.com -kastatic.org -katestube.com -kavkazr.com -kawase.com -ysput.com -kba-tx.org -kbdxlesx.xyz -kcoolonline.com -adultempire.com -adultdvdtalk.com -keaiav.com -kebrum.com -kechara.com -kechtube.com -keepandshare.com -keepmovingwithmovefree.com -keezmovies.com -keiba.net -kemono.party -kendatire.com -kendincos.net -kendralist.com -kenengba.com -kenxxx.com -kenya4.com -kenyaraha.net -kenyasexparadise.com -keontech.net -kepard.com -adultdvdmarketplace.com -kernel.org -adultdeepfakes.com -adultcamslover.com -adultblogtoplist.com -kex.com -keycdn.com -keyhole.com -keyporntube.com -keytransparency.com -keytransparency.foo -keytransparency.org -adultblogranking.com -adultbay.org -adultartsites.com -khabdha.org -khanacademy.org -khatrimaza.org -khotruyentranhx.com -ysporn.com -adult3dtoons.com -kichiku-doujinko.com -kichikuou.com -kickporn.com -kickshatchannel.com -kicksnike1.com -kidsnikeshoes.com -adult3dporno.com -kik.com -kikdirty.com -killcovid2021.com -killwall.com -kilmeadeandfriends.com -kimogirl.cc -kimosex.com -adult3dfantasycomics.com -kindgirls.com -kindindianporn.com -adult3dcomics.com -kindle.com -kindle4rss.com -kindleoasis.com -kindleoasis.info -kindleoasis.org -kindleoasisnews.com -kindleproject.com -kindleren.com -kindnudist.com -kindteenporn.com -kingcomix.com -kingdomsalvation.org -kingextre.me -kinghost.com -kingkongapp.com -kingofpics.com -kingstagram.com -kink.com -kinkbook.com -kinklive.com -kinkoid.com -kinkyfamily.com -kinkypeepz.com -kinmen.travel -kinokuniya.com -kir2kos.net -kirbysepicyarn.com -kirbysuperstarultra.com -kismia.com -kisscos.net -kissjav.com -ysmust.com -kiwibrowser.com -kk.stream -kkbox.com -kkfcc03.com -kkff2484.live -kkiah.com -kknews.cc -kktix.com -kktv.me -klik.me -ysmuch.com -kmc-av.com -kmdhyy.com -kmeleonbrowser.org -kmff17.com -adult-web-site.net -knovel.com -knowledgerush.com -knowyourmeme.com -knoxemm.com -koalaporn.com -kobbeatssbydredk.com -kobe-pastel.com -kobo.com -kobobooks.com -kodi.wiki -kodingen.com -adult-sex-games.com -adult-list.com -kompoz.com -kompoz2.com -kompozer.net -konachan.com -konachan.net -ysmere.com -adult-home-videos.com -adult-h.com -kone.com -koolsolutions.com -koornk.com -kopfhorergunstigshop.com -koranmandarin.com -koreanpornmovie.com -korenan2.com -korewaeroi.com -koskade.com -kostenlosepornoclips.com -kotlinlang.org -adsense.com -kphimsex.net -ads-twitter.com -adorevids.com -kqes.net -adorable-teens.net -kraken.com -krakenjs.com -adobexdplatform.com -krhentai.com -kristenbjorn.com -krux.com -krymr.com -adobetechcommdemo.com -kscisco.com -ksd235qw.com -ksdl.org -ksescortclub.com -kspcoin.com -ksyp10.com -ktvu.com -ktzhk.com -kuaipa.net -kuanrenxs.com -kubakuba.global -kubakuba1996.com -kubeacademy.com -kubeapps.com -kucoin.com -kui.name -kuke.com -kum.com -kumo.com -kundun1069.com -adobetechcommcallback.com -kurashsultan.com -kurtmunger.com -kusocity.com -kusugurizanmai.com -kutjeporno.com -adobetechcomm.com -kwok7.com -kxsw.life -adobetcstrialdvd.com -adobetarget.com -kyodo-d.info -kyodonews.net -kyofun.com -kyohk.net -adobetag.com -kyoyue.com -kyurem.com -kyzyhello.com -adobestock.com -kzeng.info -ysmelf.com -ysmeet.com -adobess.com -la-forum.org -ysmeat.com -ysmeal.com -ysmass.com -labiennale.org -adobespark.com -lacomics.org -adobesigncdn.com -ladbrokes.com -ladies.com -ladybaba.net -ladyboygold.com -ladyboypornonly.com -lagranepoca.com -lalulalu.com -lamayeshe.com -adobesign.com -adobesc.com -lamrim.com -lanasbigboobs.com -adobeprojectm.com -adobeplatinumclub.com -adobeoobe.com -adobelogin.com -langsuirs.com -lanternal.com -lantosfoundation.org -adobelanding.com -laogai.org -laogairesearch.org -laomiu.com -laosijifuli9009.top -laowang.vip -laoyang.info -laptoplockdown.com -laqingdan.net -laracasts.com -largecamtube.com -largeporntube.com -larsgeorge.com -adobeku.com -lastcombat.com -lasvegasbmw.com -adobejanus.com -latampartneruniversity.com -latamvmwareforum.com -latelinenews.com -latencytop.com -latex-project.org -latinaabuse.com -latintubeporn.com -adobehiddentreasures.com -latticedata.com -launchpad.net -launchpad.wang -launchpadlibrarian.com -launchpadlibrarian.net -launchpadlibrarian.org -lavteam.org -laxd.com -lazymike.com -adobegov.com -lbank.info -lbfmaddiction.com -lbtube.com -adobeexperienceawards.com -lcgirls.com -lcsmerch.com -ysmany.com -le-vpn.com -leafyvpn.net -leaguehighschool.com -leagueoflegends.com -leagueoflegends.info -leagueoflegends.net -leagueoflegends.org -leagueoflegendsscripts.com -leaguesharp.info -leaguoflegends.com -leakedmeat.com -leaksmodels.com -leakxxx.com -leannecrowvideos.com -learnwithleague.com -leavinghpinc.com -adobeexchange.com -lecloud.net -lecoin.cc -lede-project.org -ledger.com -leecountytimes.com -lefora.com -adobedtm.com -legalporno.com -ysmale.com -legaltracker.com -adobedemo.com -legsex.com -legsjapan.com -leisurepro.com -lelavement.com -leliao1.com -lemoncams.com -lencr.org -lenporno.red -lenwhite.com -leorockwell.com -leporno.org -lepornochaud.com -lepornofrais.com -lerosua.org -lesbian8.com -lesbianpics.org -lesbianpornvideos.com -lesbiansubmission.com -lesboerotica.net -letfap.com -lethalhardcore.com -lethalhardcorevr.com -letmejerk.com -letmejerk.fun -letou.com -letscorp.net -letsdoeit.com -letsencrypt.com -letsencrypt.org -letsfuckme.net -letsjerk.cc -lettherebeporn.com -levelsex.com -lewdthots.com -lewdvrgames.com -lewdweb.net -lexisnexis.com -lexuemei.com -adobedc.net -lezpoo.com -lfai.foundation -lflink.com -lflinkup.com -lflinkup.net -lflinkup.org -lg.com -lgappstv.com -adobecreativityawards.com -lgbtq.games -lge.com -lgecareers.com -lghvac.com -lghvacstory.com -lgrecyclingprogram.com -lgsalesportal.com -lhakar.org -beats-deal.com -amytele.com -redditlist.com -liangyou.net -liangzhichuanmei.com -lianhonghong.com -lianjiajr.net -lianyue.net -liaowangxizang.net -liberapay.com -liberapay.org -libgen.fun -libgen.life -libgen.me -liboggirls.net -librarylovefest.com -libraryofthumbs.com -librewolf.net -libsolutions.app -libsolutions.net -licdn.com -licensebuttons.net -adobecc.com -life-global.org -lifemiles.com -lifeselector.com -lifewire.com -lightbridge.com -lighti.me -lightxxxtube.com -lightyearvpn.com -lihkg.com -lihksnap.com -like.com -likeseiyu.com -liketruyen.net -liketwice.com -likuoo.video -lilhumpers.com -liliav.com -lilith-soft.com -adobeawards.com -limelight.com -limertw.cc -limeteensex.com -limiao.net -adobeaemcloud.net -adobeaemcloud.com -lindylist.org -line-apps-beta.com -line-apps-rc.com -line-apps.com -line-beta.me -line-cdn.net -line-scdn.net -line.biz -line.me -linearcollider.org -linecorp.com -linefriends.com -linemobile.com -linemyshop.com -lineshoppingseller.com -lingeriepornonly.com -linglingfa.com -linguee.com -lingvodics.com -link-o-rama.com -link.com -link2galleries.com -link69.com -linkedin.com -linkideo.com -linkjunkies.com -linkshit.com -linkuswell.com -linotype.com -linseysworld.com -linux.org -linuxfoundation.org -linuxfromscratch.org -linuxmint.com -linuxtoy.org -lionsroar.com -adobe.com -lipuman.com -liquiditytp.com -liquidvpn.com -lisiku.com -lisiku1.com -listennotes.com -listentoyoutube.com -listinganalytics.net -listorious.com -litbus-anime.com -literatumonline.com -literotica.com -littleasians.com -littlesexdolls.com -liu-xiaobo.org -liudejun.com -liuhanyu.com -liuhefabu.club -liujianshu.com -liuxiaobo.net -liuxiaotong.com -live.com -live.net -liveauction.com -livecamclips.com -livecoin.net -livefilestore.com -livehdcams.com -livejasmin.com -livejasminbabes.net -liveleak.com -livemint.com -livemodels.co -liveporngirls.com -liveprivates.com -liverail.com -livesex.com -livesexasian.com -livestation.com -livestream.com -adobe-video-partner-finder.com -livevideo.com -livexxx.me -livingstream.com -livingyourambition.com -liwangyang.com -adobe-audience-finder.com -lizardporn.com -lizhizhuangbi.com -adobe-aemassets-value.com -lkcn.net -lldns.net -lliusno.com -llnw-trials.com -llnw.com -llnw.net -llnwd.net -llnwi.net -llss.me -llwht88.xyz -lmmbtc.com -lncn.org -lnstagram-help.com -loanbuilder.com -lobsangwangyal.com -lobstertube.com -localbitcoins.com -localbitcoinschain.com -localizecdn.com -localizejs.com -localizestatus.com -localpresshk.com -localxlist.org -admob.com -lockestek.com -admob-cn.com -admeld.com -logbot.net -logi.com -logicoolg.com -login-account.net -login-paypal.com -login-paypal.info -logiqx.com -logitech.biz -logitech.com -logitechg.com -loholidayhk.com -lokinet.org -lol-europe.com -lolclub.org -lolespor.com -lolesports.com -lolfanart.net -lolhentai.net -loli.net -lolibus.cc -lolibus.top -lolislove.info -lolita.bet -lollipopescorts.com -lolpcs.com -lolstatic.com -lolusercontent.com -adidas.com -londonhotescort.com -londonmithraeum.com -lonestarnaughtygirls.com -longmusic.com -longtailvideo.com -longtermly.net -longtoes.com -lookinside.com -lookpic.com -looktoronto.com -looporn.com -looti.net -lordofultima.com -adhelpnews.com -lostbetsgames.com -lotcrap.com -lotsawahouse.org -adguard.com -love4porn.com -love7.xyz -loveamateurfacials.com -lovebeatsdr.com -lovedolltorso.com -lovegirls.cam -lovehomeporn.com -lovejav.net -loveloveskill.com -lovemarca.com -lovemstudios.com -loveparents.org -lovepartners.life -loverslab.com -lovesexbody.com -lovesexdurex.com -lovethiscity.com -lovetvshow.com -lowergiseries.com -lowiro.com -lp99.pw -adguard-vpn.com -adguard-dns.com -lpsg.com -lqh0bon3.xyz -adgoogle.net -lrfz.com -lrip.org -lrysgee.xyz -adelaidebbs.com -lsawards.com -lsforum.net -lsj2.shop -lsj40.xyz -lsjfuli308.xyz -lsm.org -lsmchinese.org -lsmkorean.org -lsmradio.com -lsmwebcast.com -lsnzxzy1.com -lspimg.com -lss55.com -lsxszzg.com -addyoutube.com -ltube.life -addtoany.com -lu2100.com -lu2200.com -lu23.com -lu2300.cc -lua.org -luanlunmv.cc -lubetube.com -lucahmelayu.club -lucasentertainment.com -luckydesigner.space -luckyissue.com -luke54.com -luke54.org -lululu.one -addthisedge.com -luoli.info -addthiscdn.com -lupm.org -lupoporno.com -luscious.net -lushstories.com -lustery.com -lusthero.com -lustteens.net -lustylist.com -luticlip.com -luvmov.com -luw666.xyz -luw666cm.cc -luxebc.com -luxuretv.com -luxuretv.fun -addthis.com -lvhai.org -lvv2.com -lxxlxx.com -adcex.com -lyfhk.net -lysol.com -lysol.net -lyzsxx.com -lzjscript.com -lzmtnews.org -m-power.com -m-team.cc -m.me -yslung.com -ysluck.com -m2m.com -m5ir5np1.shop -adblockplus.org -ysloud.com -ma1lib.org -maa.plus -mac-mini.com -mac.com -mac.wang -macbook.co -macbook.wang -macbookair.com -macbookair.net -macbookpro.co -macbookpro.com -macbookpro.net -macbookpros.com -macbooksale.com -macboxset.com -macgamestore.com -mach-os.com -mach-os.net -machigle-sp.com -machogaytube.com -machos.net -macintoshsoftware.com -macmini.com -macosforge.org -macossierra.com -macosx.info -macosxlion.com -macpazar.com -macports.org -macreach.com -macreach.net -macromedia.com -macrovpn.com -macruby.com -macruby.net -macruby.org -macrumors.com -adbkm.com -madchensex.com -maddawgjav.net -maddenchampionship.com -maddenrewards.com -maddenseason.info -maddenseason.net -maddenseason.org -madewithcode.com -madhomemadeporn.com -madonna-av.com -madou.club -madouav.one -madouzx.monster -madouzx.top -madpeople.net -madrau.com -adbecrsl.com -madshi.net -madthumbs.com -madvagina.com -madvr.com -madvr.net -madvrlabs.llc -mageconf.com -magento.com -magento.net -magentocommerce.com -magentoliveconference.com -magentomobile.com -magic-net.info -magicalmirai.com -magicmovies.com -mahabodhi.org -mahajantech.com -adanaatikhaber.com -maiio.net -mail-archive.com -maildns.xyz -maileoch.com -mailhealth.com -mailonline.com -mainichibooks.com -maiplus.com -mairbeats.com -maizhong.org -makaan.com -makebettercode.com -makecode.org -makeeu.com -makeitopen.com -makemymood.com -makesenseofdata.com -makkahnewspaper.com -maktoob.com -yslost.com -malayalamanorama.com -malayporn.site -malayporn.space -malaypornhub.com -malaysiakini.com -mallandrinhas.net -mallheadphone.com -malvastudios.com -mamacitaz.com -mamingzhe.com -ad69.com -managedmeetingrooms.com -managedpki.com -management-azure-devices-int.net -management-azure-devices.net -manchukuo.net -mandatewire.com -mandiant.com -manga-mill.com -manga18.art -mangafox.com -mangafox.me -mangahentai.me -mangahome.com -activpn.com -mangoporn.net -mangotporn.com -manhuabika.com -manhuagui.com -manhub.com -manhunt.net -manhuntdaily.com -manhwa24h.com -manhwahentai.me -maniash.com -manorama.com -manoramanews.com -manoramaonline.com -manototv.com -mansion.com -mansionglobal.com -mansionpoker.com -mansurfer.com -manta.com -mantochichi.com -manurefetish.com -manytoon.com -manyvids.com -manyvoices.news -mapbox.com -maplew.com -marc.info -mariadb.org -marioandluigidreamteam.com -mariobroswii.com -mariokart7.com -mariokart8.com -mariosupersluggers.com -marketexecutive.net -marketing-cloud.com -marketing-nirvana.com -marketingcloud.com -marketo.com -marketo.net -marketodesigner.com -marketolive.com -marketwatch.com -markzuckerberg.com -marranazas.com -activeteachonline.com -actfortibet.org -martau.com -martincartoons.com -martsangkagyuofficial.org -marvel.com -marvel10thanniversary.com -marveldimensionofheroes.com -marvelparty.net -marvelpinball.com -marvelsdoubleagent.com -marvelspotlightplays.com -marvelsuperheroseptember.com -marvelsuperwar.com -marxist.com -marxist.net -marxists.org -masalabin.com -masaladesi.com -masalaseen.net -masalladeloslimites.com -actalis.com -mashaalradio.com -maskedip.com -maskedsingerfox.com -massage-in-taipei.com -massagerepublic.com -masseffect.com -masseffectarchives.com -mastercad.com -mastercard-email.com -mastercard.com -ysloss.com -mastercard.inc -mastercardacademy.com -mastercardadvisors.com -mastercardbiz.com -mastercardbusinessnetwork.com -mastercardcenter.com -mastercardcenter.org -mastercardcenterforinclusivegrowth.org -mastercardconnect.com -mastercardezsavings.com -mastercardidtheftalerts.com -mastercardmoments.com -mastercardrestaurant.com -mastercardservices.com -mastercardworldwide.com -masterclass.com -masterintelligence.com -masterpassteststore.com -masterwanker.com -mastodon.cloud -mastodon.host -mastodon.social -mastodon.xyz -masturbate2gether.com -mat6tube.com -matainja.com -mathiew-badimon.com -mathoverflow.net -matome-plus.com -matome-plus.net -acs.org -matrix.org -matsushimakaede.com -acrobat.com -matters.news -matters.one -matters.town -mattwilcox.net -mature-amateur-sex.com -mature-porn-flix.com -matureclub.com -maturefuck.cc -maturejp.com -matureladiesxxx.com -matureporner.com -maturepornonly.com -matures-loving-sex.com -maturescam.com -maturesexual.com -maturesinhd.com -maturetube.com -maturewifeporn.cc -maturewomenanal.com -maturexxxvideos.cc -maxgo.com -maximumerotica.com -maxis.com -maya5.net -acpica.com -mayimayi.com -maying.co -mbeats-tech.com -mbheadphone.com -acmvalidationsaws.com -mcadforums.com -acmvalidations.com -mcd.com -mcdindonesia.com -acmetoy.com -mcdonalds.com -mcdonaldsarabia.com -mcfog.com -mcisco.com -acmedia365.com -mcpeaceofmind.com -mcreasite.com -mcrouter.net -mcrouter.org -mcstories.com -acm.org -md-t.org -mdhcdn.com -mdialog.com -mdlf.xyz -yslose.com -mdn.dev -ysless.com -mdnkids.com -mdnplay.dev -mdnyalp.dev -mdpi.com -me-gay.com -me.com -me.me -meadjohnson.com -meadjohnson.net -meansys.com -mearki.com -media-amazon.com -media-imdb.com -mediachinese.com -mediafiles-cisco.com -mediafire.com -mediafreakcity.com -mediasama.com -mediawiki.org -medium.com -medium.systems -medrxiv.org -meendo.com -meet.new -meetandfuck.games -meetandfuckgames.com -meetav.com -meetfasttrack.com -meetsmartbook.com -meetup.com -meetyourdevices.com -mefeedia.com -mefound.com -megacamz.com -megafilmporno.com -megahdporno.net -megapornfreehd.com -megapornpics.com -megaproxy.com -megarotic.com -megatitsminka.com -megavideo.com -megurineluka.com -meguso.com -meilleurpornos.com -meitula.net -meizhong.blog -meizhong.report -aclweb.org -melonstube.com -meltoday.com -meme111.com -memehk.com -memorybbs.com -memri.org -memrijttm.org -men.com -men18.net -menatplay.com -mendeley.com -mengnan.shop -menhdv.com -menshin-channel.com -acjj.net -meoriental.com -mepn.com -meraki-go.com -merakigo.com -mercatox.com -mercdn.net -achievementanalytics.com -acheterfollowersinstagram.com -mercyprophet.org -mergersandinquisitions.org -meridian-trust.org -meridian.net -meripet.biz -meripet.com -meshrep.com -mesotw.com -messenger.com -messengerdevelopers.com -messytube.com -met-nude.com -meta.com -metacafe.com -metacloud.com -metacpan.org -metafilter.com -metaporn.com -metart.com -metarthunter.com -metartnetwork.com -metcams.com -meteorshowersonline.com -acheterdesfollowersinstagram.com -metrotoons.com -meuhentai.com -mewe.com -mexc.com -mexcsensors.com -meyul.com -acheter-followers-instagram.com -mfg-inspector.com -mfxmedia.com -achat-followers-instagram.com -mgo-images.com -mgo.com -mgoon.com -mgstage.com -acgww.cyou -mh4u.org -mhhanman.xyz -mhqwe.xyz -mhradio.org -mhshosting.com -mi9cdn.com -acgwr.com -miamifintechfestival.com -miaomwu.com -miaopa.net -michaelanti.com -michaelmarketl.com -mickybells.com -microbit.org -acgvipss.com -microsoft-give.com -microsoft-int.com -microsoft-ppe.com -microsoft-sap-events.com -microsoft-sbs-domains.com -microsoft.com -microsoft.net -microsoft.red -microsoft365.com -microsoftaccountguard.com -microsoftadc.com -microsoftads.com -microsoftadvertising.com -microsoftadvertisingregionalawards.com -microsoftaffiliates.com -microsoftapp.net -microsoftazuresponsorships.com -microsoftcloud.com -microsoftcloudsummit.com -microsoftcloudworkshop.com -microsoftcommunitytraining.com -microsoftdiplomados.com -microsofteca.com -microsoftedge.com -microsoftgamestack.com -microsofthouse.com -microsofthouse.net -microsoftinternetsafety.net -microsoftiotcentral.com -microsoftiotinsiderlabs.com -microsoftlatamaitour.com -microsoftlatamholiday.com -microsoftlinc.com -microsoftmxfilantropia.com -microsoftnews.cc -microsoftnews.com -microsoftnews.net -microsoftnews.org -microsoftnewsforkids.com -microsoftnewsforkids.net -microsoftnewsforkids.org -microsoftnewskids.com -microsoftnewskids.net -microsoftnewskids.org -microsoftonline-p.com -microsoftonline.com -microsoftpartnercommunity.com -microsoftpartnersolutions.com -microsoftreactor.info -microsoftreactor.net -microsoftreactor.org -microsoftready.com -microsoftsilverlight.com -microsoftsilverlight.net -microsoftsilverlight.org -microsoftsiteselection.com -microsoftsqlserver.com -microsoftstart.com -microsoftstore.com -microsoftstream.com -microsoftteams.com -microsofttradein.com -microsofttranslator.com -microsoftuwp.com -microvpn.com -micstl.com -midatlanticbmwmotorcycles.com -middle-way.net -midentsolutions.com -midoushe.com -miexnoviadesnuda.com -acgnmanhua.com -mihr.com -mihua.org -acgkj.com -miitomo.com -miiverse.com -ysleft.com -mikesoltys.com -mikrotik.com -miktex.org -mikuexpo.com -acgfbw.com -milehighmedia.com -milfbundle.com -milfed.com -milffox.com -milfhunter.com -milflove.live -milfmaturesex.net -milfmovs.com -milfnut.com -milfporn.pro -milfpornonly.com -milfprime.com -milfs-gone-wild.com -milfs-now.com -milfslesbian.com -milfsover30.com -milfthreesomes.com -milftube.pro -milftugs.com -milfvr.com -milfzr.com -milkmanbook.com -millymarks.com -milofetch.com -milph.net -milsurps.com -mimei.store -mimi22.top -mimiai.net -mimivip.com -mimivv.com -minbrowser.org -mindgeek.com -mindmeld.com -mindrolling.org -minecraft.net -minecraftshop.com -mingdemedia.org -minghui-a.org -minghui-b.org -minghui-school.org -minghui.org -mingjinglishi.com -mingjingnews.com -mingjingtimes.com -mingky.org -mingkyaa.com -mingpao.com -mingpaocanada.com -mingpaomonthly.com -mingpaonews.com -mingpaony.com -mingpaosf.com -mingpaotor.com -mingpaovan.com -mings-fashion.com -mingshengbao.com -mingw.org -mingwatch.com -minhhue.net -acgfabu.com -mini-abudhabi.com -mini-bahrain.com -mini-bosnia.com -mini-clubs-international.com -mini-connected.com -mini-corporate-sales.com -mini-dubai.com -mini-e.com -mini-egypt.com -mini-georgia.com -mini-grouparchive.com -mini-jordan.com -mini-ksa.com -mini-kuwait.com -mini-lebanon.com -mini-me.com -mini-oman.com -mini-qatar.com -mini-srilanka.com -mini-stjohns.com -mini-tahiti.com -mini-vietnam.com -mini-windsor.com -mini.cc -ysleaf.com -mini.com -yslawn.com -miniargentina.com -minibrossard.com -minicaribbean.com -minidealer.com -minidealernet.com -minidowntown.com -minidrivingexperienceusa.com -minidurham.com -minie.com -miniforum.org -minifs.com -minigrandriver.com -minihalifax.com -minihk.com -miniitalianjob.com -minikelowna.com -minilangley.com -minilat.com -minilaval.com -minilondon.co -minimarkham.com -minimoncton.com -minimontroyal.com -minimotoringrewards.com -minimotoringschool.com -minimotorsport.com -mininanaimo.com -minioakville.com -miniofmonrovia.com -minipetfriendly.com -minirichmond.com -minisaskatoon.com -minisexdoll.com -miniso-au.com -miniso-bh.com -miniso-np.com -miniso-nz.com -miniso.co -miniso.com -minisoindia.com -minisojordan.com -minisokorea.com -minisothailand.com -minispace.com -minispygear.com -ministeagathe.com -ministrybooks.org -minitakesthestates.com -miniusa.com -miniusaservice.com -miniusatires.com -minivalueservice.com -minivaughanwest.com -minivictoria.com -minivilledequebec.com -miniwholesaleconnect.com -miniwindsor.com -miniworkshop.com -minnano-av.com -minneapolisbmw.com -minneapolisbmw.net -acgdv.com -minuporno.com -minzhuhua.net -minzhuzhanxian.com -minzhuzhongguo.org -miohentai.com -miraheze.org -mirailab.tech -miroguide.com -mirrorbooks.com -mirrorsedge.com -mirrorsedge.net -mirrorsedge2.com -mirrorsedge2d.com -missav.com -misshotgirls.com -mist.vip -mistresskym.com -acgdg.com -mit.net -mitbbs.com -mitbbsau.com -acgcf.com -mitnaka.com -mitpressjournals.org -acgbox.org -mixasiansex.com -mixero.com -mixmaturesex.com -mixpod.com -mixvintagesex.com -mixx.com -mizzmona.com -mjv-art.org -acg18.me -mk5000.com -mkt.com -mktdns.com -mkto-c0100.com -mktorest.com -mktroute.com -acevpn.com -aceros-de-hispania.com -mlcool.com -mlzs.work -acer.com -mm-cg.com -mm9841.cc -mm9c63ae.xyz -acer-group.com -mmaaxx.com -mmdnn.com -mmmca.com -mmonsterheadphones.net -mmtv.life -acebook.com -acebooik.com -mnewstv.com -accuweather.com -ysjail.com -moapi.site -moapi1.club -moapi1.online -mobatek.net -mobile01.com -mobilefacebook.com -mobileinternational.com -mobilemarketo.com -mobileporngames.com -mobilepornmovies.com -mobileview.page -mobilevrxxx.com -ysiron.com -mobypicture.com -mochajs.org -mocloudplus.com -modelmediaus.com -modeloswebcambogota.com -modelsfreecams.com -modeltv.com -modernchinastudies.org -modrinth.com -moeero-library.com -moeerolibrary.com -moefuns.co -moeimg.net -moemax.net -moez-m.com -mofaxiehui.com -mofos.com -mofosex.com -mofosnetwork.com -mog.com -mohu.club -mohu.rocks -mojang.com -mojim.com -molesports.com -molihua.org -mom-gfs.com -mom-sex-videos.com -mom50.com -ysinto.com -momentumms.com -momfucktube.com -momhomeporn.com -mommystoytime.com -momo5188.com -momon-ga.com -momoniji.com -moms-sex-videos.com -momsbangteens.com -momsboysmovies.net -momsexypics.com -momsfuckingboys.net -momsgiveass.com -momshardcoreporn.com -momsneversayno.com -momspornvideos.com -momsteachsex.com -momsteachsex.info -momsyoungboys.net -momtarts3d.com -momtube.club -monaitv.me -accountpaypal.org -monbeats2013.com -mondex.org -moneyhome.biz -moneyswift.online -moneywithfacebook.com -mongodb.com -mongodb.org -monitorchina.org -yshurt.com -yshour.com -ysholy.com -monitrix.net -mono-project.com -mono33.top -monocloud.me -monotype.com -monotypeimaging.com -monster-beats-by-dr-dre.com -monster-beats-headphones.com -monster.com -monsterbeats-cheap.com -monsterbeats-headphone.com -monsterbeats-onsale.com -monsterbeats-solo.com -monsterbeats-solo.net -monsterbeats365buy.com -monsterbeats8beatsbydre.com -monsterbeatsale.com -monsterbeatsalestore.com -monsterbeatsau.com -monsterbeatsbydrdre-nz.com -monsterbeatsbydrdre-usa.com -monsterbeatsbydrdrecanada.com -monsterbeatsbydrdrestudio.com -monsterbeatsbydre-nz.com -monsterbeatsbydre-usa.com -monsterbeatsbydre2015.com -monsterbeatsbydreaustraliacheap.com -monsterbeatsbydrebilligde.com -monsterbeatsbydrefactory.com -monsterbeatsbydrenew.com -monsterbeatsbydres.com -monsterbeatsbydreshop.com -monsterbeatscasques.com -monsterbeatscommunity.com -monsterbeatsdrdrecheap.com -monsterbeatsfactory.net -monsterbeatsfinland.com -monsterbeatsforsale.com -monsterbeatsheadphone.com -monsterbeatsheadphones.net -monsterbeatshere.com -monsterbeatsitaly.com -monsterbeatsmall.com -monsterbeatsnegozi.net -monsterbeatsok.com -monsterbeatsonlinestoreuk.com -monsterbeatspascher.net -monsterbeatsru.com -monsterbeatssales.com -monsterbeatssalg.com -monsterbeatsshops.net -monsterbeatsstore.com -monsterbeatssydneyaustralia.com -monsterbeatstang.com -monsterbeatstienda.com -monsterbeatstudio.com -monsterbydrebeat.com -monstercasquebeatspascher.net -monstercheapbeatss.com -monstercockland.com -monsterdrebeats-canada.net -monsterdrebeats-usa.com -monsterdrebeats-usa.net -monsterheadphone.net -monsterproduct.net -monstersbeatbydres.com -monstersdebea.com -monstersexporn.net -monstershopcheapbeats.net -accountpaypal.net -monthlyav.com -moodstocks.com -moodyz.com -moonbbs.com -moonbingo.com -moozporn.com -accountpaypal.com -morazzia.com -moreheadphones.com -morganclaypool.com -morningsun.org -mornporn.com -moroneta.com -morphcharts.com -mortein.com -morteincam.com -accountkit.com -mostpopularpornsites.com -motherless.com -motionpictureser.com -motiyun.com -motolia.com -motorshowblog.com -mottainai.info -mousebreaker.com -move-free.net -move.com -moveaws.com -movefreeoffers.com -movefreerewards.com -movefrees.com -movements.org -movenetworks.com -movetv.com -movidius.com -movidius.net -movie-erog.com -movie1000.xyz -moviefap.com -moviepost.com -moviesanywhere.com -moviesarena.com -moviesfree4u.xyz -moviesneek.com -account-paypal.org -mox.moe -moxing.mobi -moxing.news -moystoys.com -account-paypal.net -mozilla.com -mozilla.community -mozilla.net -mozilla.org -account-paypal.info -mp3buscador.com -mpettis.com -mpfinance.com -mpinews.com -mplstudios.com -mpnevolution.com -mpweekly.com -accim.org -mqxd.org -accessfacebookfromschool.com -mray.club -mrbasic.com -mrbdsm.com -mrbonus.com -mrchewsasianbeaver.com -mrcong.com -mrdeepfakes.com -mrface.com -mrlivecam.com -mrloli.com -acces-vod.com -mrpinks.com -mrporngeek.com -mrpornlive.com -accbusiness.com -mrskin.com -mrslove.com -mrssiren.com -mrtweet.com -acast.com -ms-studiosmedia.com -ms365surfaceoffer.com -ms4dre.com -msa-it.org -msads.net -msauth.net -mschallenge2018.com -academynetriders.com -msdn.com -msecnd.net -msedge.net -msflj.vip -msft.info -msft.net -msftauth.net -msftnet.org -msgamesresearch.com -msguancha.com -msinnovationchallenge.com -msn.com -msn.net -msnbc.com -msnewskids.com -msnewskids.net -msnewskids.org -msnkids.com -msocdn.com -msocsp.com -mspairlift.com -msropendata.com -msturing.org -msudalosti.com -msunlimitedcloudsummit.com -mswe1.org -yshole.com -mtao.fun -mthruf.com -yshill.com -ac-pocketcamp.com -absolutewhores.com -mtt.org -mtvnservices.com -absoluporn.com -mu6bce1c.xyz -mubi.com -muchohentai.com -muchomasporno.com -muchosucko.com -mucinex.com -mucinex.net -mucinexprofessional.com -mudfish.net -muji.com -muji.net -mujikorea.net -mulheresafoder.com -mullvad.net -mult34.com -aboutyourmini.com -multicurrencycashpassport.com -multiply.com -multiplydiversity.com -multipornfor.me -multiproxy.org -multiupload.com -multporn.net -mummysgold.com -muncloud.dog -muryouav.net -muscdn.com -musclegirlflix.com -mushroomtrack.com -musicade.net -musicbay.net -musickit.net -musixmatch.com -muslimvideo.com -muthead.com -aboutporno.net -aboutmcdonalds.com -muyzorras.com -muzi.com -muzi.net -aboutgfw.com -mvk.com -aboutfacebook.com -mwhentai.net -aboutamazon.com -yshigh.com -mx981.com -mxmcdn.net -about.me -my-enema.com -my-formosa.com -my-magazine.me -my-proxy.com -yshide.com -my03.com -my13la.com -my20dc.com -my20houston.com -my29tv.com -my3dhentai.com -my45.com -my9nj.com -myaccountglobalcash.com -myactimes.com -myamateurgirls.net -myamateurtv.com -myanmar-porn.com -myanniu.com -myappleid.com -myatos.net -myaudiocast.com -myavfun.com -myavok.com -myavsuper.com -myavxx.xyz -mybabehotz.com -mybeatsbydrestudio.com -mybeatsbydreuk.com -mybeatscheapbydre.com -mybestbuy.com -mybestbuyclaims.com -mybet.com -mybmw.com -myboylove.com -mybridgestoneeducation.com -mybukkakeporn.com -myca168.com -mycams.com -mycanadanow.com -mycardbenefits.com -mycartoonsexgames.com -mycdn.me -mychinamyhome.com -mychinanet.com -mychinanews.com -mychinese.news -myciscobenefits.com -myclitgames.com -mycnnews.com -mycomicsxxx.com -myconstructionworld.net -mycould.com -mydad.info -myddns.com -mydirectgroove.com -mydirectvchannels.com -mydirtyhobby.com -myeasytv.com -myebay.com -myeclipseide.com -myfappening.org -myfavoritearcade.com -myfbfans.com -myferrariheadphones.com -myfistingporn.com -myfonts.com -myfonts.net -myfoxatlanta.com -myfoxaustin.com -myfoxboston.com -myfoxcharlotte.com -myfoxchicago.com -myfoxdc.com -myfoxdetroit.com -myfoxdfw.com -myfoxhouston.com -myfoxhurricane.com -myfoxla.com -myfoxlosangeles.com -myfoxlubbock.com -myfoxmaine.com -myfoxny.com -myfoxorlando.com -myfoxphilly.com -myfoxphoenix.com -myfoxsanfran.com -myfoxtampa.com -myfoxtampabay.com -myfoxtwincities.com -myfoxzone.com -myfreeblack.com -myfreecams.com -myfreepaysite.com -myfreeporngames.com -myfreshnet.com -myftp.info -myftp.name -myfun.com -mygaysites.com -myhelpinglab.com -myhentaicomics.com -myhentaigallery.com -myhomemadesex.com -myhpsupport.com -myhulu.com -myicloud.net -myiphide.com -myipod.net -myjkwd.com -mykomica.org -mylcloud.net -mylf.com -mylftv.com -mylittlenieces.com -mylogiclab.com -mylust.com -mymasturbators.com -mymediarom.com -mymicrosoft.com -myminisexdoll.com -myminiso.com -mymmode.com -mymoe.moe -mymom.info -mymusclevideo.com -mynetav.net -mynetav.org -mynike.com -mynumber.org -myoctocat.com -myparagliding.com -mypearson.com -mypicture.info -mypikpak.com -mypop3.net -mypop3.org -mypopescu.com -mypornads.com -mypornadviser.com -mypornbookmarks.com -mypornfox.com -myporngay.com -mypornhere.com -myporno.photos -mypornolab.click -mypornstarbook.net -mypornvid.fun -mypornwap.fun -myq2.com -myqnapcloud.com -myreadingmanga.info -myrewardzone.com -myrimmingporn.com -myrz.com -mysdn.com -mysdn.info -mysdn.net -mysecondarydns.com -mysexgames.com -mysexygfs.com -myshopify.com -mysims.com -mysimsracing.com -mysinablog.com -mysinchew.com -mysocialworklab.com -myspace.com -myspacecdn.com -mysql.com -mystrikingly.com -mytalkbox.com -myteenwebcam.com -mythicentertainment.com -mythicentertainment.net -mythicgames.com -mytizi.com -mytokenapi.com -mytrannycams.com -mytving.com -mytvsuper.com -myvisaluxuryhotels.com -mywaytopay.info -mywaytopay.net -mywife.cc -mywifecuckold.com -mywww.biz -myxvids.com -myxxgirl.com -myyoungmomisnude.com -myyoungwifeisnude.com -myz.info -aboluowang.com -ablwang.com -mzed.com -mzstatic.com -n0vadesktop.com -n15zev3w.shop -n3ro.lol -n3ro.net -ysbed.com -ysbad.com -na-att-idns.net -ysav184.xyz -ysand.com -ysaim.com -naacoalition.org -naaktevrouwenporno.com -abigass.com -abema-tv.com -abellalist.com -naiadsystems.com -naijauncut.com -nailedhard.com -naitik.net -naizitv.top -naked-girls.me -naked.com -nakedamateurmilf.com -nakedasiansex.com -nakedgirlpic.com -nakedgirls.biz -nakedmodelsxxx.com -nakednews.com -ysage.com -nakido.com -nakuz.com -nalandabodhi.org -nalandawest.org -namemybeats.com -namethatporn.com -namethatpornad.com -namgyal.org -namgyalmonastery.org -namsisi.com -nan-net.com -nanonamad.com -nanyang.com -nanyangpost.com -nanzao.com -naoconto.com -naol.cc -napiszex.com -abebooks.com -nasty.singles -nastyvids.com -nat.moe -nataliefiore.com -natgeomaps.com -nationalawakening.org -nationalgeographic.com -nationalgeographicpartners.com -nationalinterest.org -nationalreview.com -nationsonline.org -abeatsbydrdre.com -nationwide.com -abclite.net -naturalvoices.com -nature.com -naturemag.org -naughty.com -naughtyamerica.com -naughtyblog.org -naughtyfootjobs.com -naughtygamesource.com -naughtyhentai.biz -naughtymachinima.com -naughtymag.com -naughtysophie.com -naughtytugs.com -naughtywomenpics.com -naver.com -naver.net -navercorp.com -naweeklytimes.com -abclider.com -nbabot.net -nbc.co -nbc.com -nbcnews.com -nbcolympics.com -nbcsports.com -nbcudigitaladops.com -nbcuni.com -nbcuniversal.com -nbtvpn.com -abchinese.com -nchrd.org -ncn.org -ndi.org -abcheadphones.com -nebay.net -neborder.com -abc.xyz -ned.org -needforspeed.com -needforspeedboost.com -needforspeeddriftkings.com -needforspeedeliminator.com -needforspeedlightning.com -needforspeedoverdrive.com -needforspeedproven.com -needforspeedredline.com -needforspeedshowdown.com -needforspeedstreetkings.com -needforspeedtakedown.com -needforspeedtherun.com -needforspeedtimeattack.com -needforspeedundergroundeast.com -needgayporn.com -negozimonsterbeats.com -negoziomonsterbeats.com -nejm.org -nekoslovakia.net -nekoxxx.com -ysact.com -nenitas.club -nentindo.net -neo-miracle.com -ypncdn.com -neowin.net -nepusoku.com -nerdnudes.com -nervanasys.com -nesaporn.com -nesaporn.mobi -nest.com -neswangy.net -net-fits.pro -netacad.com -netacad.net -netalert.me -abc.com -netarabic.com -abc-studios.com -netbirds.com -netcolony.com -netfapx.com -netflav.com -netflav1.com -abbywintersfree.com -netflix.com -netflix.net -netflixdnstest1.com -netflixdnstest10.com -netflixdnstest2.com -netflixdnstest3.com -netflixdnstest4.com -netflixdnstest5.com -netflixdnstest6.com -netflixdnstest7.com -netflixdnstest8.com -netflixdnstest9.com -netflixinvestor.com -netflixtechblog.com -netlify.app -netlify.com -netlifystatus.com -netme.cc -netpornsex.com -netpornsex.net -netsarang.com -netsneak.com -netsolssl.com -netsurf-browser.org -nettyinternet.com -netvideogirls.com -netvigator.com -network54.com -networkedblogs.com -networktunnel.net -neuerporno.com -neuralink.com -neurology.org -aavs.xyz -neverforget8964.org -nevex.com -new-3lunch.net -new-akiba.com -new-jero.net -new-redtube.com -new.day -new3dcomics.com -newbeatsblackfriday.com -newbemany.com -newbienudes.com -newbrazz.com -newcenturymc.com -newcenturynews.com -newchen.com -newdrediscount.com -neweconomyforum.com -newenergyfinance.com -newestbeatsbydre.com -newgrounds.com -newhampshirebmw.com -newhentai.org -newhighlandvision.com -aaplimg.com -newipnow.com -newisiknowledge.com -newlineporn.com -newlysprung.net -newmitbbs.com -newmonst1erbeatsto1re.com -newmonsterbeatsheadphones.com -newpppp.com -ypmate.com -newsamerica.com -newsancai.com -newschinacomment.org -newschristmasshopping.com -newscn.org -newscorp.com -newscorpaustralia.com -newsdh.com -newsensations.com -newsextv.com -newsexwap.com -newsexxxx.com -newsfeed.com -newsgawakaru.com -newsmax.com -newsmaxtv.com -newsnowfox.com -newspeak.cc -newssyndication.com -newstamago.com -newstapa.org -newstarnet.com -newstatesman.com -newsukadops.com -newsupermariobrosu.com -newsweek.com -newton.com -newxxx24.cc -newyorker.com -newyorktimes.com -nexcat.com -nexitally.com -nexitallysafe.com -nexitcore.com -nexon.com -nexpart.com -aanaan.com -next.com -nextapple.com -aamacau.com -nextechafrica.net -nextgenerationcenter.com -nextjs.org -nextmedia.com -nextmgz.com -nextstop.com -aalah.me -nexusmods.com -aadmv.com -nfjtyd.com -aacrjournals.org -nflhotsalejerseys.com -nflxext.com -nflximg.com -nflximg.net -nflxsearch.net -nflxso.net -nflxvideo.net -nfsc.global -nfscdict.com -nfscofficial.com -nfsworld.com -nftstorage.link -aabb1803.com -ngensis.com -ngeo.com -ngfiles.com -nginx.com -nginx.org -ngodupdongchung.com -nhentai.com -nhentai.net -nhentaihaven.com -nhentaihaven.org -aabb1802.com -aaapp.cyou -yoyoav.net -niceanimegames.com -nicesshop.net -nichepornsite.com -nichepornsites.com -nickscipio.com -aaagradeheadphones.com -nicolepeters.com -niconico.com -nighost.org -youyu.services -nights.fun -nijiclamp.com -nijidoujin.com -nijie.info -nijieronavi.com -nijifeti.com -nijigen-daiaru.com -nijinchu.com -nijioma.blog -aa1142.com -nike-air-max.com -nike-dunksb.com -nike-fr.com -nike-org.com -nike-uk.com -nike-us.com -nike-usa.com -nike.com -nike.host -nike.shop -nike.xn--hxt814e -nike0594.com -nike23.com -nikeadidas.com -nikeairhuarache.com -nikeairmax.com -nikeairmaxs.com -nikeairmaxshoes.com -nikeairrift.com -nikeasia.com -nikeaustralia.com -nikeaw77.com -nikeb.com -nikebbn.com -nikebetrue.com -nikebetterworld.com -nikebetterworld.info -nikebetterworld.net -nikebetterworld.org -nikebiz.info -nikebuy.com -nikeby.com -nikecdn.com -nikechosen.com -nikecloud.com -nikeclub.com -nikecompany.com -nikeconfluence.com -nikecraft.com -nikedawn.com -nikedunks.net -nikedunksshoes.com -nikeelite.com -nikefactorystore.com -nikefind.com -nikefirm.com -nikefoamposites.com -nikefoampositeshoes.com -nikefootballcleats.com -nikefootballgloves.com -nikefootballjersey.com -nikefoundation.org -nikefr.com -nikefrance.com -nikefree.com -nikefreeshoes.com -nikefuelband.com -nikegadgets.com -nikegenealogy.com -nikegrid.com -nikehelp.com -nikehightops.com -nikehyperdunk.com -nikeidshoes.com -nikeinc.com -nikeincchemistry.com -nikeinstock.com -nikeit.com -nikeitalia.com -nikeitaly.com -nikekd.com -nikekid.com -nikelink.com -nikeliuxiang.com -nikelives.com -nikelunarglide.com -nikemarketing.com -niken7.com -nikenews.com -nikeonlinestore.com -nikeoutletstore.com -nikeoutletstores.com -nikepioneer.com -nikeplus.com -nikeplus.org -nikepress.com -nikeprice.com -nikeproduct.com -nikepromax.com -nikeresponsibility.com -nikereuseashoe.com -nikerunner.com -nikerunningshoes.com -nikesb.com -nikesbdunks.net -nikeseason.com -nikeselling.com -nikesellorder.com -nikeshoemarket.com -nikeshoes-store.com -nikeshoes21.com -nikeshoes4u.com -nikeshoescity.com -nikeshoesgroup.com -nikeshoesinc.com -nikeshoesmarket.com -nikeshoesretro.com -nikeshoeswon.com -nikeshoponline.com -nikeshoxsale.com -nikesku.com -nikesnowboarding.com -nikesoccercleats.com -nikesportswear.com -nikestares.com -nikestore.com -nikestyles.com -nikeswim.com -niketaiwan.net -niketracking.com -niketradeweb.com -niketrainer.com -niketrainers.com -niketraining.com -nikeusa.com -nikewear.com -nikey.com -nikezoom.com -nikkan-gendai.com -nikkansports.com -nikke-de.com -nikke-en.com -nikke-fr.com -nikke-jp.com -nikke-kr.com -nikke-sea.com -nikkei.com -nikkei4946.com -aa1141.com -ninecommentaries.com -nineteentube.com -ninjacloak.com -ninjaproxy.ninja -ninpu.cyou -nintendium.com -nintendo-europe-sales.com -nintendo-europe.com -nintendo.com -nintendo.net -nintendo3ds.com -nintendodsi.com -nintendoeurope.com -nintendonetwork.net -nintendonyc.com -nintendostore.com -nintendoswitch.com -nintendoswitch.net -nintendoswitchtogether.com -nintendowii.com -ninth.biz -niosii.com -niosii.net -a7sex.com -a2z.com -nitter.cc -nitter.net -youxu.info -niu.moe -niuc2.com -niusnews.com -nivodz.com -nixos.org -niziero.info -njactb.org -njuice.com -nke6.com -a1av.xyz -nlfreevpn.com -nlsexfilmpjes.com -nlt-media.com -nmbmw.com -nmsl.website -a0pple.net -no-ip.org -nobelprize.org -nodejs.org -nodesource.com -noisullifb.com -a-teenz.com -nokiantyres.com -nokogiri.org -nokola.com -nomachine.com -nomulus.foo -nonktube.com -nonstopfap.com -noodlemagazine.com -noodlevpn.com -norbulingka.org -nordstrom.com -nordstromimage.com -nordstrommedia.com -nordstromrack.com -nordvpn.com -norsk.mobi -a-normal-day.com -9zipai.net -9xlove.xyz -notepad-plus-plus.org -notion-static.com -notion.com -notion.new -notion.site -nottinghampost.com -novelasia.com -noveltrove.com -novinhabucetuda.com -novinhagostosa10.com -novinhasdozapzap.com -novojoy.com -novostrong.com -now-ashare.com -now-tv.com -now.com -nowe.com -nowjav.com -nownews.com -nowtorrents.com -9xav.cc -noxinfluencer.com -noypf.com -9to5toys.com -npm.community -npmjs.com -npmjs.org -npnt.me -npr.org -npsboost.com -9to5terminal.com -9to5mac.com -nradio.me -9to5google.com -ns01.biz -ns01.info -ns02.biz -ns02.info -ns1.name -ns2.name -ns3.name -nsfwmemes.com -nsimg.net -ntc.party -ntd.com -ntdca.com -ntdimg.com -ntdtv-dc.com -ntdtv.com -ntdtv.org -ntdtvla.com -ntdvn.com -ntrfun.com -9hentaiz.com -9gag.com -nu-bay.com -nu36.vip -nubilefilms.com -nubiles-casting.com -nubiles-porn.com -nubiles.net -nubileset.com -nubilesunscripted.com -nuddess.com -nude-pics.org -nude-share.com -nudeandhairy.com -nudebeachpussy.com -nudecams.cam -nudecelebforum.com -nudedrawer.com -nudedxxx.com -nudeeroticteens.com -nudefiles.net -nudegfporn.com -nudekenya.com -nudelive.com -nudematurewomenpics.com -nudemilfporn.com -nudes7.com -nudespree.com -nudeteen.org -nudeteenboys.net -nudeteenladies.com -nudevietnam.com -nudevista.best -nudevista.club -nudevista.com -nudevista.fun -nudevista.link -nudevista.net -nudevista.vip -nudewifeporn.com -nudewomenpics.net -nudify.online -nudistbeachporn.com -nudistic.com -nudistlog.com -nudistsexvideos.com -nudistvoyeurbeach.com -nudity911.com -nudography.com -nuespournous.com -nuexpo.com -nuget.org -nugettest.org -nuita.net -nukemanga.com -nuki-dokoro.com -nukistream.com -nunuyy.cc -nurgo-software.com -nurofen.com -nurofen.net -nurofengel.com -nurumassage.net -nurxxx.mobi -nusatrip.com -nushemale.com -nutaku.com -nutaku.net -nutramigen.net -nutsvpn.work -nuuporn.com -nuuvem.com -nuvid.com -nuzcom.com -nvdst.com -nverxs.xyz -nvidia.com -nvidiaforhp.com -nvidiagrid.net -nvquan.org -nvtongzhisheng.org -nwtca.org -nwxs8.com -nxta.org -youwuss.com -nyaa.net -nyansa.com -nybooks.com -9cdn.net -nylon-angel.com -nylonstockingsonline.com -nypost.com -nypost.help -nypostreprints.com -nyt.com -nyt.net -nytchina.com -nytcn.me -nytco.com -nytimes.com -nytimg.com -nytstyle.com -9ccms.me -nzchinese.com -o365weve-dev.com -o365weve-ppe.com -o365weve.com -oaistatic.com -oanda.com -oanencore.com -oann.com -oath.cloud -oath.com -oauthz.com -9cao9.com -observable.net -observechina.net -obsrvbl.com -obutsumania.com -obutu.com -ocaspro.com -ocbmwdealers.com -occupytiananmen.com -ocreampies.com -ocry.com -ocsp-certum.com -ocsp-responder.com -october-review.org -oculus-china.com -oculus.com -oculus2014.com -oculus3d.com -oculusblog.com -oculusbrand.com -oculuscasino.net -oculuscdn.com -oculusconnect.com -oculusdiving.com -oculusforbusiness.com -oculusrift.com -oculusvr.com -odysee.com -oecd-ilibrary.org -oed.com -oex.com -9cache.com -offbeatchina.com -offerairjordanlebron.com -9bis.net -office.com -office.net -office365.com -office365love.com -office365tw.com -officeoftibet.com -officialbeatsbydreshop.com -officialbeatsbydrestore.com -officialdrdre.com -officialheadphone.com -offrezdesipods.com -ofile.org -ogameblog.com -ogaoga.org -ogate.org -ogp.me -ohentai.org -ohgratisporrfilm.com -ohmyrss.com -ohpornocasero.com -ohpornovideo.com -ohsesso.com -ohsexfilm.com -ohsexotube.com -ohyeah1080.com -oiktv.com -oiobbs.com -oizoblog.com -okaapps.com -okayfreedom.com -okex.com -9bis.com -okkisokuho.com -okx.com -99thz.com -99thz.cc -old-cat.net -youwin.com -youversion.com -older-women-movies.com -older-women-porn.com -older.tube -oldhornymilfs.com -oldje.com -99re.com -olehd.com -olehdtv.com -olelive.com -olemovienews.com -olevod.com -olevodtv.com -oli-school.com -99quse.cc -olumpo.com -olympicwatch.org -99cn.info -99btgc01.com -omafotze.com -omaps.app -omct.org -991.com -omekinteractive.com -omg.blog -omghk.com -omgili.com -omgteens.com -omniroot.com -omnitalk.com -omnitalk.org -omniture.com -omobi.cc -omoplanet.com -omorashi.org -omscr.com -omtrdc.net -on.cc -on.here -on2.com -onahodouga.com -onani-daisuki.com -onapp.com -onbeatsbydresale.com -youtubemobilesupport.com -one889.app -oneapi.com -onedinesfree.com -onedrive.co -onedrive.com -onedrive.net -onedrive.org -onedumb.com -onefifteen.net -onefifteen.org -onejapanese.com -onejav.com -onekey-asset.com -onekeycn.com -onenote.com -onenote.net -onepornlist.com -onesiterip.com -oneworldmanystories.com -onindiansex.com -oninstagram.com -onion.city -onionshare.org -online-deals.net -online-instagram.com -youtubekids.com -onlineapplestore.com -onlinecha.com -onlinefucktube.com -onlinegeeksquad.com -onlineinstagram.com -onlinemonsterbeatsonsale.com -onlineporn-vids.com -onlineteenhub.com -onlinexxxgames.com -onlineyoutube.com -only-xxx-porn.com -only-xxx.com -only3x.com -onlyams.com -onlycartoonsex.com -onlydudes.com -onlyfanspw.com -onlyfreelatinaporn.com -onlygayvideo.com -onlyhdporn.com -onlyhentaistuff.com -onlyhomemadeanal.com -onlyincestporn.com -onlyindianporn2.com -onlyiphone5case.com -onlyleaks.me -onlynudes.org -onlysiterip.com -onlytweets.com -onmanorama.com -onmoon.com -onmoon.net -onmypc.biz -onmypc.info -onmypc.net -onmypc.org -onsalekey.com -onsaletrend.com -onstream.cc -onthehunt.com -ontrac.com -onxxxtube.com -onxxxvideo.com -97dounai.top -ooni.org -oopsforum.com -op7979.com -978.life -openai.com -openallweb.com -openamt.com -openapiplatform.com -openapiservice.com -opencollective.com -opencreate.org -opendemocracy.net -opendn.xyz -opendroneid.org -opengraphprotocol.com -opengraphprotocol.org -opengw.net -openid.net -openjsf.org -openleaks.org -openlibrary.org -openmaps.org -openmidas.com -openresty.org -opensource.guide -opensourceinsight.dev -opensourceinsights.dev -openssl.org -openstreetmap.com -openstreetmap.net -openstreetmap.org -openstreetmaps.org -opensuse.org -opentech.fund -opentgc.com -opentranslatorstothings.org -openvinotoolkit.org -openvpn.net -openvpn.org -openweathermap.org -openwebster.com -openwrt.org -opera.com -opinionjournal.com -youtubego.com -oppai-doga.info -oppainorakuen.com -optanedifference.com -opte.org -optica.org -opticsforthecloud.net -optimumssl.com -opus-gaming.com -9550.fun -oracle.com -oraclecloud.com -oraclefoundation.org -oracleimg.com -941tube.com -oranum.com -orbitera.com -oreilly.com -oreilly.review -oreillystatic.com -oreno3d.com -organharvestinvestigation.net -organiccrap.com -organicmaps.app -orgasm.com -orgasmlist.com -orgfree.com -orgypornonly.com -orgyxxxhub.com -orient-doll.com -orientalasianporn.com -92ccav.com -origin.com -originalhulu.com -originalindianporn.com -928.plus -orithegame.com -orlandohurricane.com -orsm.net -orzistic.org -orzqwq.com -922tp.com -osakamotion.net -osapublishing.org -osdn.net -osfoora.com -osiri-suki-club.com -osm.org -osmfoundation.org -ospray.net -ospray.org -youtubegaming.com -youtubefanfest.com -youtubeeducation.com -youtubecn.com -youtubecisco.com -youtube.soy -youtube.me -youtube.com -youtube.co -youtube-nocookie.com -1000giri.net -youtrannytube.com -youthnetradio.org -youthforfreechina.org -youskbe.com -otaku-168.com -otaku18a.info -otaku55.xyz -otakuboo.com -otbm.com -otcbtc.com -otnd.org -otokonokoland.com -921bb.com -otzo.com -oudoll.com -oup.com -ouplaw.com -ourdearamy.com -ourhobby.com -ouroath.com -oursexgames.com -ourshdtv.com -ourshemales.com -oursogo.com -oursweb.net -outdoorpublicsex.com -outingsapp.com -outletbeatsshop.com -outletnike.com -outlook.com -over18arcade.com -overapple.com -overdaily.org -overleaf.com -overplay.net -youshun12.com -overthumbs.com -920share.com -ovid.com -ovpn.com -owltail.com -oxfordaasc.com -oxfordartonline.com -oxfordbibliographies.com -oxfordclinicalpsych.com -oxforddnb.com -oxfordfirstsource.com -oxfordhandbooks.com -oxfordlawtrove.com -oxfordmedicine.com -oxfordmusiconline.com -oxfordpoliticstrove.com -oxfordre.com -oxfordreference.com -oxfordscholarlyeditions.com -oxfordscholarship.com -oxfordwesternmusic.com -oxlife.co -oxyporn.com -oyax.com -oyeloca.com -oyghan.com -ozchinese.com -ozeex.com -ozodi.org -ozodlik.org -ozvoice.org -ozxw.com -ozyoyo.com -91vps.club -pa9pal.com -paaypal.com -pachosting.com -pacifickitchenandhome.com -pacificpoker.com -packagist.org -packetix.net -pacloudflare.com -pacopacomama.com -padmanet.com -paerosnen.club -page.link -page2rss.com -page3.com -pagecdn.com -pages.dev -pagespeedmobilizer.com -pageview.mobi -pagodabox.com -pahabicilemezsurprizler.com -paheal.net -paidpornguide.com -paidpornsites.com -paily.net -paily.org -painfulpussytortures.com -painnovel.com -paipal.com -paipancon.com -paisapay.cc -paisapay.info -pakistanporntube.net -palacemoon.com -palcomix.com -paldengyal.com -palemoon.org -palestineremix.com -pali.ltd -paljorpublications.com -paltalk.com -91sew.xyz -91sesex.xyz -panasonic.com -pandamovies.pw -pandanet-igs.com -pandapow.co -pandapow.net -pandavpn-jp.com -pandavpnpro.com -pandora.com -91se.fun -pankwire.com -panluan.net -panoramio.com -pantswalker.net -pao-pao.net -paofu.cloud -paofuyun.me -papalah.com -paradisehill.cc -paradisehotelquizfox.com -paradisepoker.com -paragon.com -paramount.com -paramountplus.com -parastorage.com -pardot.com -91rb.net -park-now.com -parkansky.com -parkinfo.com -parler.com -parse.com -parsevideo.com -parstream.com -parstream.net -parstream.org -partycasino.com -partylikeits1986.org -partypoker.com -pascherbeatsmonster.com -pashtovoa.com -pasionmujeres.com -paskoocheh.com -passion-hd.com -passion.com -passport.net -pastebin.com -pastie.org -91rb.com -91quanji.com -patentgold.net -patenttruth.org -patreon.com -patreoncommunity.com -patreonusercontent.com -paulsimon-music.com -pavpal.com -pawoo.net -paxful.com -paxlicense.org -paydiant.com -paygonline.com -payhulu.com -paylike.com -paypa1.com -paypa1.org -paypaal.com -paypal-activate.com -paypal-activate.info -paypal-activate.org -paypal-apac.com -paypal-apps.com -paypal-biz.com -paypal-brandcentral.com -paypal-business.com -paypal-business.net -paypal-business.org -paypal-cardcash.com -paypal-cash.com -paypal-center.com -paypal-center.info -paypal-center.net -paypal-center.org -paypal-communication.com -paypal-communications.com -paypal-communications.net -paypal-community.com -paypal-community.net -paypal-comunidad.com -paypal-corp.com -paypal-database.com -paypal-donations.com -paypal-dynamic.com -paypal-engineering.com -paypal-europe.com -paypal-excelinvoicing.com -paypal-exchanges.com -paypal-forward.com -paypal-galactic.com -paypal-gift.com -paypal-gifts.com -paypal-gpplus.com -paypal-here.com -paypal-hrsystem.com -paypal-innovationlab.com -paypal-integration.com -paypal-japan.com -paypal-knowledge.com -paypal-labs.com -paypal-latam.com -paypal-learning.com -paypal-login.com -paypal-login.info -paypal-login.org -paypal-luxury.com -paypal-mainstreet.net -paypal-marketing.com -paypal-media.com -paypal-merchantloyalty.com -paypal-mobilemoney.com -paypal-network.org -paypal-notice.com -paypal-notify.com -paypal-online.info -paypal-online.net -paypal-online.org -paypal-optimizer.com -paypal-pages.com -paypal-photocard.com -paypal-plaza.com -paypal-portal.com -paypal-prepagata.com -paypal-prepagata.net -paypal-prepaid.com -paypal-profile.com -paypal-proserv.com -paypal-qrshopping.org -paypal-recargacelular.com -paypal-redeem.com -paypal-referral.com -paypal-retail.com -paypal-scoop.com -paypal-search.com -paypal-secure.net -paypal-secure.org -paypal-security.net -paypal-security.org -paypal-service.org -paypal-signin.com -paypal-special.com -paypal-specialoffers.com -paypal-sptam.com -paypal-status.com -paypal-support.com -paypal-survey.com -paypal-survey.org -paypal-team.com -paypal-viewpoints.net -paypal.com -paypal.info -paypal.me -paypalbeacon.com -paypalbenefits.com -paypalbrasil.com -paypalcommunity.com -paypalcommunity.net -paypalcommunity.org -paypalcorp.com -paypalcredit.com -paypalcreditcard.com -paypalgivingfund.org -paypalhere.com -paypalhere.info -paypalhere.net -paypalhere.org -paypali.net -paypalinc.com -paypalindia.com -paypalinsuranceservices.org -paypall.com -paypallabs.com -paypalme.com -paypalnet.net -paypalnet.org -paypalnetwork.info -paypalnetwork.net -paypalnetwork.org -paypalobjects.com -paypalonline.net -paypalonline.org -paypalprepagata.com -paypalprepagata.net -paypalservice.com -paypalshopping.com -paypalshopping.net -paypalsurvey.com -paypalx.com -paypaly.com -paypass.net -payppal.com -payserve.com -paysitesreviews.net -91qk41rf.com -payypal.com -pbabes.com -pbs.org -pbwiki.com -pbworks.com -pbxes.com -pbxes.org -pc.com -pcanywhere.net -91porny.com -pccw.com -pccwglobal.com -pccwsolutions.com -pcij.org -pcre.org -pctlwm.com -pdetails.com -pdf.new -pdncommunity.com -pdproxy.com -pdxbmw.com -91porn.work -peacefire.org -peacehall.com -peach-cherry.com -peachy18.com -peachyforum.com -peacocktv.com -pearlher.org -pearson-anaya.com -pearson-intl.com -pearson.com -pearsonactivelearn.com -pearsonassessments.com -pearsoncmg.com -pearsoncred.com -pearsoned.com -pearsoneducacion.net -pearsoneducationbooks.com -pearsonelt.com -pearsonenespanol.com -pearsonhighered.com -pearsononlineacademy.com -pearsonvue.com -pearsonvue.net -peeasian.com -peekvids.com -peepholecam.com -peerj.com -peing.net -pejyyah.com -pekingduck.org -pelvicexam.info -penchinese.com -penchinese.net -pengyulong.com -penisbot.com -pensions-expert.com -penthouse.com -pentium.com -pentium.net -peoplebookcafe.com -peopledreamfunding.com -peopo.org -perfect-privacy.com -perfectgirls.net -perfectgonzo.com -perfectjizz.com -perfectkickz.net -perfectnaked.com -perfectsexnow.com -perfectshemales.com -perfecttitspics.com -perl.org -persagg.com -persecutionblog.com -persianepochtimes.com -91porn.party -persiankitty.com -person.com -personaltrainermath.com -personeelsland.com -pervclips.com -perverttube.com -petardas.com -petite.one -petiteamateurteen.com -petiteballerinasfucked.com -petitehdporn.com -91porn.com -91porn.best -91oo.xyz -pgyy67.top -91moxiong.com -phantomjs.org -phapluan.org -phayul.com -pheonix.money -philborges.com -91md.me -philly.com -phimsex47.club -phimsexhentai.me -phimsexkhongche.cyou -phimsexnhanh.club -phmsociety.org -phncdn.com -photo-image.monster -photodharma.net -photofocus.com -photolia.net -photonicssociety.org -photos18.com -photoshop.com -php.net -phprcdn.com -phun.org -phuquocservices.com -phxbmw.com -physicalexam.info -physiology.org -91jinman.com -piapro.net -picacg2022.com -picacgp.com -picacgy.com -picacn.xyz -picacomic.com -picacomic.xyz -picacomiccn.com -picasa.com -picasaweb.com -picasaweb.net -picasaweb.org -pichunter.com -picidae.net -pickinguppussy.com -picknicekicks.net -pickshoesclothes.com -picnik.com -picpost.com -picsee.co -picsee.pro -91gay.me -pictoa.com -pictocum.com -picturedip.com -picturesocial.com -pieceofplastic.com -pifpafarabia.com -pigav.com -pikabu.monster -pikpak.me -pikpakdrive.com -pillbeatsblackfridaysale.com -pin-cong.com -pin6.com -pincong.rocks -pinduck.com -pinflix.com -pingguotv.xyz -pingxiangpuer.com -pinimg.com -pinkcore.com -pinkcore.net -pinkdino.com -pinkporno.com -pinkrod.com -pinksporn.com -pinkteentube.net -pinkvelvetvault.com -pinkworld.com -pinoy-n.com -pinterest.co -pinterest.com -pinterest.engineering -pinterest.info -pinterest.net -pinterestmail.com -pintool.com -pinyinxiang.com -91fans.org -yousendit.com -91dy.club -piposay.com -piraattilahti.org -piratecams.com -pirates-forum.org -piring.com -pirouvr.com -pise.pw -91cy.app -pittpatt.com -pivotalinitiative.com -piwheels.org -pixanalytics.com -pixapp.net -pixate.com -pixelqi.com -pixfs.net -pixiv.me -pixiv.net -pixiv.org -pixnet.cc -pixnet.net -pixnet.pro -pixtronix.com -pjgirls.com -91avfuli.com -pk.com -908taiwan.org -placemix.com -placesdocs.com -planetminecraft.com -planetsuzy.org -plantsvszombies2.com -platinumlinks.org -play4free.com -playapex.com -playartifact.com -playbar.biz -playboy.com -playboyplus.com -playbydurex.com -playforceone.com -playhearthstone.com -playmation.com -playmeow.com -playnintendo.com -playno1.com -playoverwatch.com -playparagon.com -playpcesor.com -playporngame.com -playporngames.com -playpornogames.com -playsexygame.com -playshowtv.com -9001700.com -playstation.com -playstation.net -playvalorant.com -playvids.com -playwarcraft3.com -playyoungtube.com -pleasefuck.org -pleasurebabe.com -pleasuregirl.net -pleasuremore.com -plexvpn.pro -plos.org -plug.game -plumperpass.com -plunder.com -plurk.com -plus.codes -plus28.com -plusbb.com -plusone8.com -plusporn.net -plutotv.net -8z1.net -pm.me -pmatehunter.com -pmates.com -8xxx.net -pnas.org -8thstreetlatinas.com -po2b.com -pobieramy.top -pobl-content.com -pocketbiketrader.com -pocketcasts.com -podbean.com -podcast.co -podictionary.com -poe.com -poecdn.net -pogo.com -pogobeta.com -8teenxxx.com -poi.moe -poisontube.com -pojiefuli20033.xyz -pojiefuli9113.xyz -pokedex3d.com -pokemon-moon.com -pokemon-sun.com -pokemon-sunmoon.com -pokemon-unitepgame.com -pokemon.com -pokemonbank.com -pokemonblackwhite.com -pokemonbw.com -pokemonchampionships.com -pokemongoldsilver.com -pokemonhome.com -pokemonletsgoeevee.com -pokemonletsgopikachu.com -pokemonmysterydungeon.com -pokemonpicross.com -pokemonplatinum.com -pokemonrubysapphire.com -pokemonsunmoon.com -pokemonswordshield.com -pokemonultrasunmoon.com -pokemonvgc.com -pokemonwifi.net -8muses.com -pokerstars.com -pokerstars.net -politicalchina.org -politicalconsultation.org -politiscales.net -8kpornvids.com -poloniex.com -polygon.com -polymer-project.org -polymerhk.com -polymerproject.org -ponyanimalsex.com -poofetish.com -poolin.com -poop-pee.online -poopee-puke.com -poopeegirls.com -popcap.com -popporn-world.com -popxi.click -popyard.com -popyard.org -porcore.com -poringa.net -porkahd.co -porkbun.com -porm.club -8kcosplay.com -porn-bokep.com -porn-comic.com -porn-discounts.com -porn-gratis.info -porn-images-xxx.com -porn-list.site -porn-portal.com -porn-sex-video.me -porn-star.com -porn.biz -porn.com -porn1videos.com -porn2.com -porn2012.com -porn2018.com -porn300.com -porn300.online -porn34.me -porn3dgalleries.com -porn4days.cc -porn4fap.com -porn5.com -porn555.com -porn5f.com -porn62.com -porn7.net -porn87.com -porn91.org -porn93.cc -pornachi.com -pornacho.com -pornadoo.com -pornaf.com -pornaffected.com -pornandxxxvideos.com -pornaroma.com -pornav.co -pornaxo.com -pornbase.org -pornbest.org -pornbit.cc -pornbozz.com -pornbraze.com -pornbrb.com -pornburger.com -porncana.com -porncoil.com -porncomics.com -porncomics.me -porncomixonline.net -porncore.net -porncoven.com -porncrash.com -porndabster.com -porndeals.com -porndeepfake.net -porndex.com -porndiamond.com -porndig.com -porndigger.me -porndiscount.org -porndiscounts.com -porndish.com -porndisk.com -pornditos.com -porndoe.com -porndoepremium.com -porndork.com -porndr.com -porndroids.com -porndude2.com -porndudecasting.com -pornelephant.com -pornenix.com -pornerbros.com -pornexpress.net -pornez.net -pornfactory.info -pornfhd.com -pornfidelity.com -pornfind.org -pornfinder.biz -pornflip.com -pornfoolery.com -pornfuck.net -pornfuror.com -porngames.club -porngames.com -porngames.games -porngameshub.com -porngamesverse.com -porngeek.com -porngem.com -porngladiator.com -porngo.com -porngo.tube -yourxxxvideos.pro -porngrabbz.com -porngub.com -pornguide.blog -pornguz.com -pornhail.com -pornhat.com -pornhat.one -pornhd.com -pornhd8k.net -pornhdfuck.com -pornheed.com -pornheli.com -pornhits.com -pornhoho.com -pornhost.com -pornhub-deutsch.info -pornhub-deutsch.net -pornhub-german.com -pornhub-sexfilme.net -pornhub.com -pornhub.org -pornhub00.com -pornhubapparel.com -pornhubdeutsch.net -pornhubpremium.com -pornhubs.video -pornhubselect.com -pornhun.xyz -pornhutdeutsch.com -pornhuub.xyz -pornicom.com -pornimg.xyz -porniq.com -pornirani.com -pornjam.com -pornjav.org -pornjizz.co -pornjk.com -pornkai.com -pornkind.net -pornking.fun -pornkino.cc -pornkro.com -pornktube.com -pornky.com -pornlaundry.com -pornlegendsclub.com -pornlist18.com -pornlistdude.com -pornloser.com -pornlulu.com -pornluxme.com -pornma.com -pornmadeathome.com -pornmagnet.org -pornmaki.com -pornmaster.fun -pornmate.com -pornmaturetube.com -pornmd.com -pornmegaload.com -pornmemo.com -pornmm.net -pornmonde.com -pornmovies2.me -pornmoviescave.com -pornmz.com -pornmz.net -pornnetworkdeals.com -pornnut.com -porno-erotica.com -porno365.net -porno365.website -porno49.com -porno800.com -pornoaid.com -pornoamateurlatino.net -pornobae.com -pornobengala.com -pornoboard.net -pornoboliviaxxx.com -pornobox.net -pornobrasil.com -pornobrasil.org -pornobrasileiro.xyz -pornobuzz.net -pornocarioca.com -pornocaserotube.com -pornocomic.net -pornodanke.com -pornodebolivia.net -pornodoido.com -pornoecuadorxxx.com -pornoelena.net -pornofilmlist.com -pornofint.com -pornofrog.com -pornogayphy.com -pornogids.net -pornogramxxx.com -pornogrund.com -pornoh.info -pornohd.blue -pornohd.plus -pornohut.info -pornohutdeutsch.net -pornoid.com -pornoincreible.com -pornoirado.com -pornoisy.com -pornoitaliano.com -pornojefe.com -pornojux.com -pornoko.net -pornokrol.com -pornolab.net -pornolaba.mobi -pornomasse.com -pornomineiro.com -pornomovies.mobi -pornone.com -pornoorzel.com -pornopantry.com -pornoreino.com -pornorips.com -pornos.live -pornoscanner.com -pornosex.cam -pornosfilmes.com -pornoslon.me -pornosphere.com -pornotime.net -pornotree.com -pornotron.net -pornov1080.name -pornovenezolanox.com -pornovideosfree.net -pornovideoshub.com -pornovideow.com -pornoweb.win -pornoxo.com -pornpair.com -pornpander.com -pornpaw.com -pornper.com -pornpics.com -pornpost.net -pornpros.com -pornprosnetwork.com -pornproxy.app -pornqd.com -pornrabbit.com -pornrapidshare.com -pornreactor.cc -pornrips.cc -pornrox.com -pornscat.org -pornscum.com -pornsearchengine.com -pornsexer.com -pornshare.biz -pornsharing.com -pornsites.com -pornsitesnow.com -pornsocket.com -pornsoldiers.com -pornsos.com -pornspark.com -pornstarbyface.com -pornstarclub.com -pornstripgames.com -porntea.com -pornteen123.com -porntitan.com -porntn.com -porntop.com -porntoplinks.com -porntrex.com -porntry.com -porntsunami.com -porntube.com -porntubenews.com -porntubent.com -porntv.com -porntvblog.com -pornultras.com -pornv.org -pornve.com -pornvibe.org -pornvideobb.com -pornvideotop.com -pornvideotube.online -pornvidhd.club -pornvisit.com -pornwatchers.com -pornwebmasters.com -pornwhite.com -pornwhitelist.com -pornxnxxmovies.com -pornxp.com -pornxp.net -pornxp.org -pornxs.com -pornxvideos.win -pornxxx.bid -pornxxxmovies.cc -pornxxxplace.com -pornxxxweb.com -pornyeah.com -pornyteen.com -pornzog.com -pornzone.com -porstoporno.site -port25.biz -porzo.com -poshtestgallery.com -positivessl.com -poskotanews.com -post01.com -post76.com -post852.com -postadult.com -postgresql.org -postimages.org -postimg.cc -postimg.org -postini.com -potvpn.com -povpornonly.com -povr.com -power.com -powerapple.com -powerappscdn.net -powerautomate.com -powerbeats2wireless.com -powerbeatsbydrdre.com -powerbeatsbydre.com -powerbi.com -powercx.com -poweredbyintel.com -powerofresolve.com -powerphoto.org -powershellgallery.com -powersunitedvr.com -pp-soc.com -pp6.info -ppaypal.com -ppe.lawyer -pplah.com -pplusstatic.com -ppp91.cc -pppds.com -8964museum.com -practicalbusinessskills.com -8949.voto -89.com -prayforchina.net -pre-bmwgroup.jobs -predictivetechnologies.com -premeforwindows7.com -premiumbooty.com -premiumhd.net -premiumpornlist.com -premobay.com -premproxy.com -prepsure.com -presentationzen.com -press.vin -prestige-av.com -pretty-ass.xyz -prettynubiles.com -prettyvirgin.com -priceless.com -priceless.org -pricelessafrica.com -pricelessarabia.com -pricelessaruba.com -pricelessbeijing.com -pricelesshongkong.com -pricelesshonolulu.com -pricelessmarketingengine.com -pricelesspick.com -pricelesssantiago.com -pricelesssurprises.com -pricelesssydney.com -pricelesstv.com -pridetube.com -prime-video.com -primecurves.com -primeday.info -primeindianporn.com -primematures.com -primemomsex.com -primepornlist.com -primevideo.cc -primevideo.com -primevideo.info -primevideo.org -princesscum.com -printeron.com -printersetupsupport.com -printspots.com -printspots.net -prism-break.org -prisoneralert.com -pritunl.com -privacysandbox.com -privacysimplified.com -private.com -privatebrowsingmyths.com -privatecasting-x.com -privateclassics.com -privateinternetaccess.com -privatemarketplaces.net -privatepaste.com -privatetunnel.com -privatevoyeurvideos.com -privatevpn.com -privoxy.org -procopytips.com -proctoscopeexam.com -prodrive-japan.com -profreeporno.com -yourwifemymeat.com -project-syndicate.org -projectapex.com -projectara.com -projectbaseline.com -projecteuclid.org -projectjav.com -projectmurphy.net -projectsangam.com -projectvoyeur.com -promonsterbeatsbydre.com -pron.guru -propertysex.com -proporn.com -proptiger.com -proquest.com -prostate-exam-info.com -prostoporno.net -prostores.com -prostudiobeatscybersale.com -prothots.com -proton.me -protondb.com -protonmail.com -protonstatus.com -protonvpn.com -provideocoalition.com -provpnaccounts.com -proxfree.com -proxifier.com -proxomitron.info -proxpn.com -proxyadult.org -proxydns.com -proxypy.net -proxyrarbg.org -proxyroad.com -proxytunnel.net -proyectoclubes.com -prozz.net -prpops.com -prts.plus -89-64.org -88square.com -88kkn.com -psblog.name -pscdn.co -pshvpn.com -yourvoyeurvideos.com -psiphon3.com -psiphontoday.com -pstatic.net -pstorage.space -psyccareers.com -88gals.com -ptapjmp.com -ptt.cc -ptt2.cc -ptt3.cc -pttgame.com -pttvan.org -ptzwx.com -pu82.vip -public-sex-porn.com -public-trust.com -publicagentxxx.com -publichealthdepartment.info -publicpornvideo.com -publicsexhub.com -publishproxy.com -pubmatic.com -puffinbrowser.com -puffstore.com -pugetsoundbmw.com -pugetsoundmini.com -pugpig-dev.com -pugpig-stage.com -pugpig.com -pullfolio.com -pullstring.net -pulsebrowser.app -punishbang.com -punishworld.com -punyu.com -pure18.com -pureapk.com -pureconcepts.net -pureinsight.org -purelov5.com -purelyceleb.com -purenudism.com -purepdf.com -puresexmovies.com -puretaboo.com -purevpn.com -purextc.com -puripuriunkomura.com -purplelotus.org -pursuestar.com -pushchinawall.com -pussy-pics.net -pussy3dporn.com -pussyboy.net -pussymomsex.com -pussyporntubes.com -pussysexgames.com -pussyshine.info -pussyspace.com -pussyspace.net -putihome.org -putinho.net -putlocker.com -putty.org -puuko.com -pvp.net -pvue1.com -pvue2.com -pvzgw2.com -pvzheroes.com -pwabuilder.com -888poker.com -pwmnet.com -pwned.com -pwnedpasswords.com -pximg.net -888.com -pycon.org -pyhapp.com -pypi.org -pypl.com -pypl.info -pypl.net -pyrobot.org -python.com -python.org -pythonhackers.com -pythonhosted.org -pytorch.org -q13.com -q13fox.com -881903.com -yourupskirt.com -yourtrap.com -yourspeculumexam.com -qanote.com -qatarescortsvip.com -qckprn.com -qctconnect.com -qdiehzz7.me -qdmomentum.com -yoursigmoidoscopy.com -yourprivatevpn.com -yourporngod.com -qhigh.com -qi-gong.me -qiandao.today -qiangwaikan.com -qiangyou.org -qienkuen.org -qinav.com -qingenporn.net -qingse.one -qkjuyet.com -qkshare.com -qmap.pub -qmov.com -qmov.net -qmttqg3k.me -qnap.com -qombol.com -qooqlevideo.com -qoos.com -qorno.com -qpoe.com -qprize.com -yourporndump.com -qq.design -qqgamedesign.com -qstatus.com -qt-project.org -8664av.com -qtweeter.com -qualcomm-email.com -qualcomm.com -qualcommhalo.com -qualcommlabs.com -qualcommmea.com -qualcommretail.com -qualcommventures.com -qualphone.com -yourphysicalexam.com -yourpelvicultrasound.com -yourpelvicexam.com -yourmonsterbeats.com -yourmomsgotbigtits.com -yourmomlovesanal.com -quanben-xiaoshuo.com -quannengshen.org -quantil.com -quantumbooter.net -quatrowireless.com -85tube.com -85st.com -questvisual.com -quicinc.com -quickiepage.com -quickoffice.com -quicktake.video -quicktime.cc -quicktime.com -quicktime.net -quiksee.com -quip-cdn.com -quip.com -quipelements.com -quitccp.net -quitccp.org -quiz.directory -qumingwz.com -quora.com -quoracdn.net -quotable.com -quovadisglobal.com -quran.com -quranexplorer.com -qusi8.net -qutebrowser.org -85cc.net -qvodzy.org -qwant.com -qxbbs.org -qz.com -r-project.org -r10s.com -yourlust.com -r18.com -r18av.com -r18lu.com -r34porn.net -rabbitscams.com -rabbitsreviews.com -racked.com -radeon.com -radian6.com -radicalparty.org -radio.garden -radiofarda.com -radiohilight.net -radioline.co -radiomarsho.com -radiosvoboda.org -radiovaticana.org -radiovncr.com -radiyoyacuvoa.com -rael.org -raggedbanner.com -ragnaporn.com -82mvmv.com -rainbowplan.org -rajwaphq.com -rakuten-static.com -rakuten.com -8111y.top -randyblue.com -rangwang.biz -rangzen.com -rangzen.net -rangzen.org -ranyunfei.com -rapbull.net -rapefilms.net -rapetube.me -rapidgator.net -rapidmoviez.com -rapidssl.com -rapidvpn.com -raponlinereview.com -rarbg.me -rarbgaccess.org -rarbgaccessed.org -rarbgget.org -rarbggo.org -rarbgmirror.com -rarbgmirror.org -rarbgproxy.org -rarbgprx.org -rarbgto.org -rarbgunblock.com -rarbgunblock.org -rarbgunblocked.org -rarbgway.org -raremovie.cc -raremovie.net -raspberrypi.org -raspbian.org -ratedgross.com -rateyourmusic.com -rationalwiki.org -yourlisten.com -rawgit.com -rawgithub.com -razer.com -razersupport.com -razerzone.com -razyboard.com -rb-crisis.com -rb.com -rb.net -rbbusinessshop.com -rbc007.com -rbdigitalab.com -rbdigitallab.com -rbe996.com -rbeopp.com -rbeuroinfo.com -rbgrads.com -rbgraduates.com -rbmavericks.com -rbnainternational.com -rbplc.com -rbrandlibrary.com -rbsgr.com -rbspeakup.com -rclon.com -yourgynexam.com -rd.com -rdio.com -rdtcdn.com -8008206616.com -re25.vip -rea-asia.com -rea-group.com -rea.design -rea.global -rea.tech -reabble.com -reachporn.com -reachtheworldonfacebook.com -react.com -reactjs.com -reactjs.org -read01.com -read100.com -readerswivesonline.com -readmoo.com -readthedocs-hosted.com -readthedocs.com -readthedocs.org -readydown.com -real-homemade-movies.com -real-mature-porn.com -real-thaipussy.com -realamericanstories.com -realamericanstories.info -realamericanstories.net -realamericanstories.org -realclear.com -realclearbooks.com -realcleardefense.com -realcleareducation.com -realclearenergy.org -realclearfoundation.org -realclearhealth.com -realclearhistory.com -realclearinvestigations.com -realclearlife.com -realclearmarkets.com -realclearpolicy.com -realclearpolitics.com -realclearpublicaffairs.com -realclearreligion.org -realclearscience.com -realclearworld.com -realcourage.org -realcuckoldsex.com -realdoll.com -realestatejournal.com -yourflashporn.com -realgfporn.com -realitykings.com -reallesbianexposed.com -realmaturesfuck.com -realmilwaukeenow.com -realpornclip.com -realraptalk.com -realsexdoll.com -realsexpass.com -realteengirls.com -realtor.com -realvision.com -realzoomovies.com -reason.com -reastatic.net -reaxys.com -rebatesrule.net -rebrandly.com -recaptcha.net -recelebrity.com -reckitt.net -reckittbenckiser.com -reckittbenckiser.net -reckittprofessional.com -recode.net -recoiljs.org -reconinstruments.com -reconjet.com -recordhistory.org -rectovaginalexam.com -red-lang.org -redamateurtube.com -redballoonsolidarity.org -redbubble.com -redchinacn.net -redchinacn.org -reddit.com -adobecce.com -redditmail.com -redditmedia.com -redditstatic.com -redfaptube.com -redgifs.com -redhat.com -redhat.org -redhotlabs.com -redislabs.com -8-d.com -redkix.com -redlightcenter.com -redmatureporn.com -redpornpictures.com -redsexhub.com -7tb.cc -redteenporn.com -redtub3xxx.com -redtube.blog -redtube.com -redtube9.com -redtubepremium.com -7cow.com -redwap-xxx.com -redwap.me -redwap.pro -redxxx.cc -redxxxvideos.com -redzonechannel.com -ree007.xyz -reflectivecode.com -reform-apple.com -regex101.com -regiongold.com -registerhulu.com -registeridm.com -reiporno.com -relateiq.com -relaxbbs.com -releaseinternational.org -7capture.com -religionnews.com -religioustolerance.org -remirepo.net -renchead.com -renderos.com -reneerossvideos.com -renminbao.com -renovacionoffice.com -renovacionxboxlive.com -rentaride.com -renyurenquan.org -renzhe.cloud -repe21.com -repo.new -repsneakermall.com -repswing.com -resao.com -researchandcare.org -researchgate.net -researchintel.com -researchkit.net -researchkit.org -resilio.com -resistchina.org -respawnbyrazer.com -rethink.net -retroclassicporn.com -retrohomevideos.com -retroxxxmovs.com -retweeteffect.com -retweetist.com -retweetrank.com -reurl.cc -reuters.com -reutersmedia.net -revenue-performance-management.com -revleft.com -revolv.com -revver.com -rexcha.com -77maott.com -rexxx.org -rfa.org -rfachina.com -rfamobile.org -rfaweb.org -rferl.org -rhodeislandbmw.com -ricefever.com -777xporn.com -777tv.net -ridepenguin.com -7719.me -rightbtc.com -rigpa.org -rigums.xyz -riku.me -75m.co -rileyguide.com -748av.com -riot-games.com -riot.com -riot.net -riotcdn.net -riotforgegames.com -riotgames.com -riotgames.info -riotgames.net -riotpin.com -riotpoints.com -riseup.net -risextube.com -rixcloud.com -rk.com -rlczdo.xyz -rlwlw.com -rm2029.com -721av.com -rmjdw.com -rmjdw132.info -6xxxvideos.com -ro89.com -road-crew.com -roboforex.com -roborecall.com -robustnessiskey.com -6twseb.com -rocket-inc.net -rocketfishproducts.com -rockettube.com -rocksdb.com -rocksdb.net -rocksdb.org -rocksextube.com -rockstargames.com -6sextube.com -6parknews.com -rojo.com -roku.com -rokutime.com -rolfoundation.org -rolia.net -rolls-roycecullinan.com -rolls-roycemotorcars.com -rolls-roycemotorcarsna.com -roloflix.com -roloxxx.com -rolsociety.org -romantic-sex-video.com -ronjoneswriter.com -roodo.com -rootsigning.com -rosechina.net -rosemarydoll.com -rotten.com -rou.video -roughebonysex.com -roughman.net -routerboard.com -routledgehandbooks.com -royalcams.com -royalsocietypublishing.org -rplay.live -rpmfusion.org -rprimelab.com -rrs1.xyz -rrtis.com -6parker.com -rsc.org -rsdlmonitor.com -rsf-chinese.org -rsf.org -rsgamen.org -rsshub.app -rssing.com -rssmeme.com -rstatic.net -rt.com -rtalabel.org -rtings.com -rtycminnesota.org -6parkbbs.com -yourfantasybeginsnow.com -ruanyifeng.com -ruby-lang.org -rubygems.org -rude.com -6park.com -ruinedking.com -rukoebxx.com -rukor.org -rule34.world -rule34.xyz -rule34h.com -rule34pornvids.com -rule34video.com -ruleporn.com -rumah123.com -rumble.com -rumporn.com -run.app -runbtx.com -rundf665.cyou -runnike.com -runningnike.com -runporn.com -runwayescorts.com -rupress.org -rushbee.com -rushporn.online -russianrape.org -rust-lang.org -rustdesk.com -rusvpn.com -rutracker.net -ruvideos.net -ruyiseek.com -6neek.com -6mature9.com -rxhj.net -6kea.com -s-bluemix.net -s-books.com -s-cashonmobile.com -s-cute.com -s-dragon.org -s-microsoft.com -s-msft.com -s-msn.com -s-nbcnews.com -s-xoom.com -s.team -yourepeat.com -s1heng.com -s1s1s1.com -s2stagehance.com -s81c.com -s8ds5gfm.xyz -s8forum.com -6japaneseporn.com -yourdoll.com -yourdirtymind.com -yourcolonoscopy.com -6e8xr2gk.me -saasexch.com -sabuibo.net -sacduc.com -sacks.com -sacredhentai.com -sadistic-v.com -sae.org -saerock.com -safebooru.org -safechat.com -safeguarddefenders.com -safervpn.com -6do.news -saffrontech.com -sagepub.com -sagernet.org -sahabatsetiasmartone.com -saintyculture.com -saiq.me -6asianporn.com -sakuralive.com -sakya.org -sale-nikeshoes.com -salebeatslasteststyle4you.com -saleblackfridaydrebeats.com -salecheaphandbags.com -salesforce.com -salesforce.org -salesforceiq.com -salesforceliveagent.com -salesforcemarketingcloud.com -sambaporno.com -sambhota.org -samebags.com -6arabs.com -69xx560.xyz -samsung.com -samsungapps.com -samsungcloud.com -samsungdm.com -samsunggalaxyfriends.com -samsungknox.com -samsungqbe.com -sandisk.com -69xx.one -69xporn.com -sankakucomplex.com -sankei-ad-info.com -sankei-ad.net -sankei-kurashi.com -sankei-tours.com -sankei.com -sankie.net -69vj.com -sanspo.com -sanvaras.com -sanwapub.com -saoni91.xyz -saonidh01.cc -69tubesex.com -sapikachu.net -69story.com -sapphicerotica.com -sapphicpornonly.com -69luolie.com -sarajevopodopsadom.com -sarapbabe.com -sarennasworld.com -69loli.com -satan18av.com -satnym.com -satv01.me -saveliuxiaobo.com -savemedia.com -savethedate.foo -savethesounds.info -savetibet.org -savetibetstore.org -saveuighur.org -savevid.com -savitabhabhi.com -savitabhabhi.vip -savitahd.net -69gayporno.com -say2.info -saynow.com -69flv.com -sb-telecom.net -69femdom.com -sbitravelcard.com -sbme.me -sbnation.com -69bag.xyz -sbuxcard.com -69av.one -sc-cdn.net -69-sexgames.com -sca-tolo.info -scala-lang.org -scala-sbt.org -scaleflex.com -scandalplanet.com -scanlover.com -yourcolonic.com -yourbrain.com -yourassbig.com -scasino.com -scat-enema.com -scat-japan.com -scat-shop.net -scat.gold -scatfap.com -scatfinder.com -scathd.com -scatkings.com -scatnetwork.com -scatolo-guromania.com -scatshop.com -scatsite.com -scatvids.club -scatville.com -67maoab.com -scdn.co -scene7.com -scenesource.me -67id.com -scharferporno.com -schema.org -schemer.com -schiffvitamins.com -66wwmm.com -scholarpedia.org -666kb.com -64wiki.com -youramateurporn.com -your-freedom.net -science.com -science.org -sciencedirect.com -sciencedirectassets.com -sciencemag.org -sciencenets.com -scienceonline.org -scientificamerican.com -scientificlinux.org -scieron.com -scifisex.net -scitation.org -scival.com -64tianwang.com -scmp.com -scmpchinese.com -scnshop.cc -scnsrc.me -scolle.net -scopus.com -64museum.org -scoreclassics.com -scorediscounts.club -scoregroup.com -scoreland.com -scoreland2.com -scorepass.com -scoreuniverse.com -scorevideos.com -63i.com -scp-wiki.net -scpdb.org -scpwiki.com -screenwisetrends.com -screenwisetrendspanel.com -screw-my-wife.com -scribd.com -scriptspot.com -scrolller.com -62fh1bnj.me -sdcountybmw.com -61jxbs42.xyz -seagroup.com -seamonkey-project.org -seancody.com -seaofsolitude.com -seaporn.org -youpornxvideos.net -search.com -searchtruth.com -searx.me -60plusmilfs.com -seattlefdc.com -secomtrust.net -secret-flirt-hub.com -secretchina.com -secretsline.biz -secretubes.com -sectigo.com -secure-paypal.info -youpornru.com -youpornpremium.com -securepaypal.info -secureservercdn.net -securetunnel.com -securityinabox.org -securitykiss.com -seed4.me -seedmov18.com -seehorsepenis.com -6-ar.com -seematureporn.com -seemilfporn.com -seemygf.com -seemyporn.com -seesmic.com -seevpn.com -seezone.net -sego8.cc -sego8.co -sego8.xyz -sehuatang.net -seiroganmania.com -seiron-sankei.com -sejie.com -youpornlist.com -selectanescort.com -selectyourgame.com -selfloversworld.com -sellclassics.com -sellercommunity.com -semanticscholar.org -sendsmtp.com -sendspace.com -seneporno.com -5q5zu9f1.me -seniortgp.com -senpaiheat.com -sensortower.com -sensorynetworks.com -sensualgirls.org -sensualmothers.com -sensueel.net -senzuritv.net -seqing.one -seqingwangzhan.pro -seqingx.com -sequence.com -ser7.cc -serbiporno.net -serialssolutions.com -servehttp.com -serverfault.com -serverlesslibrary.net -serveuser.com -serveusers.com -services-apple.net -services-exchange.com -serviceshp.com -serviporno.com -5mo.fun -sesawe.net -sesawe.org -seselah.com -sesenovel.com -sesez.com -sessoamatorialeitaliano.com -setapp.com -sethwklein.net -setn.com -5mb48g.com -sevenload.com -severeporn.com -severreal.org -sevgikurtulmaz.com -5maodang.com -5lml.com -sex-11.com -sex-amateur-clips.com -sex-av.com -sex-for-work.com -sex-gif.org -sex-hay.pro -sex-hot-sites.com -sex-ly.com -sex-teen.net -sex-young.com -sex.cam -sex.com -sex0098.com -sex021.net -sex3.com -sex3.mobi -sex4arabxxx.com -sex588.net -sex8.cc -sexalarab.com -sexandsplash.com -sexandsubmission.com -sexanimalvideos.com -sexanime.net -sexarea.org -sexasia.net -sexavidols.com -sexbebin.com -sexbombo.com -sexbookecuador.com -sexbot.com -sexbq.com -sexcartoon.biz -sexcelebrity.net -sexcord.com -sexdollpornhd.com -sexdolls.com -sexdollsshow.com -sexdug.com -sexecherche.com -sexedanslepre.net -sexei.net -sexemulator.com -sexfilm4free.com -sexfilmeporno.com -sexfilmstube.com -sexfl.xyz -sexflashgame.org -sexflexible.com -sexgalaxy.net -sexgame.com -sexgamefun.com -sexgames.cc -sexgamesbox.com -sexgamesclub.com -sexharlot.com -sexhd.fun -sexhd.pics -sexhdmovs.com -sexhotgames.com -sexhu.com -sexhuang.com -sexhub.red -sexhubhd.com -sexidude.com -sexifilm.top -sexiframe.com -sexindians.cc -sexinsex.net -sexiranian.party -sexjk.com -sexkomix2.com -sexkorea.net -sexlikereal.com -sexmadeathome.com -sexmature.club -sexmerci.com -sexmix.net -sexmomsex.com -sexmovies24.com -sexmummy.com -sexmutant.com -sexnaweb.net -sexnudo.com -sexo123.net -sexodama.com -sexodeamor.com -sexopornolive.com -sexoquente.blog -sexplustube.net -sexpornimg.com -sexpornpictures.com -sexpornvideoasian.com -sexsaoy.com -sexsex1.com -sexsexe1.com -sexsiam.com -sexsim.com -sexsimulator.com -sexsiteinc.com -sexstoriespost.com -sextb.net -sextop.net -sextop1.net -sextorso.com -sextoystop.com -sextreffen-portale.com -sextreffensite.com -sextube.desi -sextube69free.net -sextubebox.com -sextubedot.com -sextubehub.com -sextubeset.com -sextubespot.com -sextubexxl.com -sextubish.com -sextvx.com -sextw.net -sexu.com -sexualhentai.net -sexuria.com -sexvideo10.com -sexvideo12com.pro -sexvideos.host -sexvideos.tel -sexvideosxxx.mobi -sexvids.cc -sexvr.com -sexwebvideo.com -sexwithhorse.net -sexxx.cfd -sexxx8.xyz -sexxxdoll.com -sexxxhd.com -sexxxtape.net -sexxxx.rodeo -sexxxxfilms.com -sexxxy.biz -5isotoi5.org -sexy-babe-pics.com -sexy-beauties.com -sexy-models.net -sexy-more.com -sexy-older-women.com -sexy-photos.net -sexy-torrents.com -sexy3dtoon.com -sexyandfunny.com -sexyasiangirls.cc -sexyavenue.com -sexybabesz.com -sexycandidgirls.com -sexyculo.com -sexyfuckgames.com -sexygirlfriendtube.com -sexygirlspics.com -sexygloz.com -sexyhomewives.com -sexyhub.com -sexyhumorgames.com -sexykittenporn.com -sexyoung.me -sexypornpictures.org -sexyseeker.com -sexysexdoll.com -sexyteenssite.com -sexytuber.com -sexywetpussy.com -sexzy4.com -sf.net -sfbassets.com -sfbassets.net -sfdcstatic.com -sfileydy.com -sfmcompile.club -sforce.com -5i01.com -sfshibao.com -sftindia.org -sftuk.org -5fang.cc -sg120.me -sg1lib.org -youporngay.com -sgp1.fun -5ch.net -sh-xuxingda.com -sh83.xyz -shadbase.com -shadeyouvpn.com -shadowcomplex.com -shadowsky.xyz -shadowslaves.com -shadowsocks-r.com -shadowsocks.com -shadowsocks.org -shadowsocks9.com -shahit.biz -shahvani.com -shahvani.site -shahvatsaraa.com -shakethesnake.com -shambalapost.com -shambhalasun.com -shameless.com -shangfang.org -5beatsbydre.com -shapelcounset.xyz -shapeservices.com -youporn.com -sharebee.com -sharecool.org -sharepoint.com -sharepointonline.com -sharethis.com -sharizelvideos.com -sharkyporn.com -sharmota.com -5aimiku.com -shat-tibet.com -59mvmv.com -shazam.com -sheflix.com -shegg.com -shegods.com -sheikyermami.com -shelfstuff.com -592r.com -shellcheck.net -shemale-porn-galls.com -shemalebestlabel.com -shemaleleaks.com -shemalemodelstube.com -shemaleporn.fun -shemalepornonly.com -shemalespoiledwhore.com -shemalestardb.com -shemalestube.com -shemaletrannypics.com -shemaletube.pro -shemaletubevideos.com -shemalez.com -shenshi-cha.com -shenshou.org -shenyun.com -shenyun.org -shenyuncreations.com -shenyunperformingarts.org -shenyunshop.com -shenzhoufilm.com -shenzhouzhengdao.org -shequ8.cam -shequdaohang.com -sherabgyaltsen.com -shesfreaky.com -sheshaft.com -58avgo.com -shianyuanfang.com -shiatv.net -shibashuwu.net -shicheng.org -shikorina.net -shiksha.com -shinhangmc.com -shinychan.com -shipcamouflage.com -shireyishunjian.com -shiroutoav.net -shit-porn.net -shitaotv.org -shithd.com -shitjav.com -shittytube.com -shixiao.org -shizhao.org -shkspr.mobi -shockingmovies.com -shodanhq.com -shoers.com -shoestop2.com -shooshtime.com -shop-headphones.net -shop.app -shopbeatsdre.com -shopbmwmotorcycles.com -shopbmwusa.com -shopbydre.com -shopcustomizedbeats.com -shopdisney.com -shopdrebeats.com -shopdurex.com -shopee.com -youporn-germany.com -shopeemobile.com -shopfacebook.com -shopibay.net -shopify.com -shopify.dev -shopifycdn.com -shopifycloud.com -shopifystatus.com -shopifysvc.com -shoping.com -shopminiusa.com -shopmonsterbeats.com -shoppercentre.com -shopping-days.net -shopping.com -shoppinguheadphones.com -shops-disney.com -shopspeedtv.com -shoptraivip.com -youpai.org -shotwithgeforce.com -showhaotu.com -568xe.com -showtime.com -showtimeanytime.com -showybeauty.com -55dndn.com -shrkurl.com -shufflesex.com -shutterstock.com -shuziyimin.org -shwchurch.org -shwchurch3.com -shyav.com -shymysex.com -shywifeswap.com -54647.org -siam.org -sibreal.org -siddharthasintent.org -sidelinesnews.com -sidelinessportseatery.com -siege-amazon.com -sierrafriendsoftibet.org -sigmoidoscopeexam.com -sign.new -signal.art -signal.org -signalbar.com -signalprocessingsociety.org -signalusers.org -sijihuisuo.club -sijihuisuo.com -sikiswap.com -silkbook.com -silkengirl.com -silverchair-cdn.com -silversluts.com -simbolostwitter.com -simcity-buildit.com -simcity.com -simgbb.com -similar-porn.fun -simility.com -simonsgirls.com -simplecd.org -simpleproductivityblog.com -simplify.com -simplifycommerce.com -simply-hentai.com -simplyipod.com -sing68.com -singfortibet.com -singlelogin.app -singlelogin.me -singlelogin.site -singtao.com -singtaobooks.com -singtaola.com -singtaonewscorp.com -singtaoopo.com -singtaousa.com -sino-monthly.com -sinoants.com -sinoca.com -sinocast.com -sinocism.com -sinoinsider.com -sinopitt.info -sinoquebec.com -sipml5.org -siport.com -sipriyearbook.org -sirenxxxstudios.com -siri.com -sis001.com -siscache.com -sisisl.com -siska.video -sislovesme.com -sissy-university.com -sissy.game -sissyporncrossdresser.com -site.com -site2unblock.com -site90.net -sitekreator.com -sitemaps.org -sitepoint.com -siterips.org -siteripz.com -siteripz.net -situero.com -sixth.biz -54647.online -sjcollect.com -sjrt.org -54647.global -skate2.com -skebetter.com -sketchappsources.com -skillshare.com -skimtube.com -skinstrip.net -skokka.com -53worldsweeps.com -sksarab.top -skunkgirl.cc -53world.com -sky.com -skyassets.com -skybet.com -531tr.com -skyoceanrescue.com -52hyse.com -skype.com -skype.net -skypeassets.com -skypeassets.net -skyporn.online -skysports.com -skysportsonline.com -skysportsracing.com -skyvegas.com -skyxvpn.com -52fuliji.cc -slack-core.com -slack-edge.com -slack-files.com -slack-imgs.com -slack-msgs.com -slack-redir.net -slack.com -slackb.com -slackcertified.com -slackdemo.com -slacker.com -slackhq.com -slashdot.org -slaytizle.com -sldolls.com -sleazydream.com -sleazyneasy.com -slheng.com -slickvpn.com -slideshare.com -slideshare.net -slidesharecdn.com -52av.one -sling.com -slinginternational.com -slinkset.com -slotbitches.com -slutclit.com -slutdump.com -slutload.com -slutmoonbeam.com -sluts.xyz -sluttyrat.com -slyip.com -slyip.net -52av.com -sm-miracle.com -smallteenpussy.com -5278.cc -smart-edge.com -smartcommunitiescoalition.com -smartcommunitiescoalition.org -smartdnsproxy.com -smartexpos.com -smarthide.com -smartone.com -smartoneholdings.com -smartonerobotics.com -smchbooks.com -smhric.org -smm99999.com -smokinmovies.com -smplace.com -smpte.org -smutcam.com -smutcams.com -smutindia.com -smutstone.com -smutty.com -smuttymoms.com -smyw.org -smyxy.org -520avtv.com -snap-dev.net -snap.com -snapchat.com -snapdragonbooth.com -snapkit.co -snapseed.com -snaptu.com -snapvolumes.com -snapwebcams.com -51pincha.cc -sndcdn.com -sneaker666.com -sneakerpage.net -sneakerskick.com -sneakme.net -snjulebu.com -snowlionpub.com -snowmiku.com -51mh.app -soasta-dswb.com -sobees.com -socalbmw.com -soccermatchpass.com -social.com -socialblade.com -socialmediagirls.com -socialwhale.com -sociolotron.com -socks-proxy.net -sockscap64.com -sockslist.net -socrec.org -51luoli.info -softbank-ipo.com -softbank-jp.com -softbank-robotics.com -softbank-telecom.com -softbank-telecom.net -softbankbb.com -softbankbb.net -softbankci.com -softbankmobile.net -softbankrobotics.com -softbanktelecom.com -softbankusa.net -softbankventuresasia.com -softbankworld.com -softether-download.com -softether.org -softfamous.com -softmodels.net -softnology.biz -softwarebychuck.com -sogclub.com -sogrady.me -sohcradio.com -sohfrance.org -soirt4.fun -sokamonline.com -sokmil.com -solana.com -solarcity.com -solidaritetibet.org -solidfiles.com -solostudioksale.com -solv.finance -solveforx.com -somanylolies.com -somee.com -songjianjun.com -sonicbbs.cc -sonidodelaesperanza.org -sonorousporn.com -51luoben.com -sony-africa.com -sony-asia.com -sony-europe.com -sony-latin.com -sony-mea.com -sony-olympus-medical.com -sony.com -youngtube.me -sony.net -sonybsc.com -sonyclassics.com -sonydesign.com -sonydna.com -sonyentertainmentnetwork.com -sonylatvija.com -sonypictures.com -sonypicturesanimation.com -sonypicturesmuseum.com -sonypicturesstudios.com -sonypicturestelevision.com -sonypicturestelevisiongames.com -soolakhi.com -sopcast.com -sopcast.org -sora6.com -sorairi.info -sorazone.net -sorcerersarena.com -sorting-algorithms.com -sos.org -soso7778.com -sosreader.com -sostibet.org -soubory.com -souka.xyz -soul-plus.net -soulcaliburhentai.net -soumo.info -soundcloud.com -soundofhope.org -soupofmedia.com -sourceforge.com -sourceforge.net -sourcewadio.com -sourcingforebay.net -south-plus.net -south-plus.org -southfloridamini.com -youngteenhomeporn.com -sovec.net -soylentnews.org -sp.cool -spaceexplored.com -youngsex.video -spacex.com -spaindisney.com -spankandbang.com -spankbang.com -spankbang.party -spankbang1.com -spanking.wiki -spankingstudio.com -spankingtube.com -spankmonster.com -spankred3d.com -spankwire.com -spb.com -speakerdeck.com -specialtyheadphones.com -spectraltube.com -youngpornvideos.com -speeddreamride.com -speedfantasybid.com -speedhunters.com -speedify.com -speedracegear.com -speedrun.com -speedxtra.com -spektral.cc -spencertipping.com -spendee.com -spermyporn.com -speybay.com -spicevpn.com -spiceworks.com -spiceworksstatic.com -spicybigtits.com -spicystory.net -spideroak.com -spiedigitallibrary.org -51jav.org -spike.com -spiritclubs.com -spiritofecstasy.com -spizoo.com -splatoon2tournament.com -spore.com -sportsfacebook.com -sportstream.com -spotflux.com -spotify-everywhere.com -spotify.com -spotify.design -spotifycdn.com -spotifycdn.net -spotifycharts.com -spotifycodes.com -spotifyforbrands.com -spotifyjobs.com -spraynwash.com -spreadporn.org -spreadprivacy.com -spring06.top -spring13.top -spring4u.info -springboardplatform.com -springer.com -springerlink.com -springernature.com -springwood.me -sprinklesapp.com -sprite.org -sproutcore.com -sproxy.info -spyjinx.com -sqlite.org -sqlserveronlinux.com -squarecapital.com -squarecdn.com -squarecloudservices.com -squareup.com -squirly.info -squirrelgroup.net -squirrelvpn.com -51dh.site -youngpornonly.com -srebrenica360.com -51cg1.com -srtcdn.net -srwwu.uno -50plusmilfs.com -ss-link.com -youngpornhd.com -youngmommyfucksme.com -younglibertines.com -ss7.app -ssdevrd.com -ssglobal.co -ssglobal.me -ssh91.com -sshs.club -sshs.pw -sshs.xyz -ssl-images-amazon.com -ssl.com -ssl443.org -sslpaypal.org -sspanel.net -ssplive.pw -ssr.tools -ssrpass.pw -ssrshare.com -sss.camp -ssshuqian.xyz -sssins.com -sssjav.com -sssuo1.xyz -sstatic.net -sstm.moe -sstmlt.moe -sstmlt.net -ssx3.com -50dh.app -stackage.org -stackapps.com -stackauth.com -stackexchange.com -stackmod.blog -stackoverflow.blog -stackoverflow.co -stackoverflow.com -stackoverflow.email -stackoverflowbusiness.com -stackoverflowcareers.com -stackpath.com -stackpath.dev -stacksnippets.net -stacyvandenbergboobs.com -500caocao.com -stadia.dev -standardsuniversity.org -standupfortibet.org -standwithhk.org -4u4c.com -star-brasil.com -star-latam.com -starbucks-stars.com -starbucks.com -youngheaven.com -starbucksathome.com -starbuckscardb2b.com -starbuckscoffeegear.com -starbuckscoffeegearstore.com -starbucksforlife.com -starbuckspoq.com -starbucksreserve.com -starbucksrewardsstarland.com -starbucksrtd.com -starbuckssummergame.com -starcraft.com -starcraft2.com -starfieldtech.com -starfishfx.com -starfox.com -4tubefree.net -starott.com -starp2p.com -starplus.com -starsze.icu -start.com -startpage.com -startpath.com -startupjournal.com -startuplivingchina.com -startupschool.org -starwars.com -starwarsbattlefront.com -starwarsbattlefront2.com -starwarsfallenorder.com -starwarsgalacticstarcruiser.com -starwarsjedifallenorder.com -starwarskids.com -starwarstheoldrepublic.com -4tube.com -4sqi.net -stateofthemap.com -stateofthemap.org -static-cisco.com -static-economist.com -static-nike.com -static-verizon.com -static.fun -staticflickr.com -4shared.com -statsmakemecry.com -statueofdemocracy.org -staxus.com -stboy.net -4rbtv.com -stc-server.com -4pu.com -stcroixmosquito.com -stcroixmosquitoproject.com -steam-api.com -steam-chat.com -youngermommy.com -youngerbabes.com -younger19.com -youngamateursporn.com -young-xxx.net -steamcommunity.com -steamcontent.com -steamdb.info -steamdeck.com -steamgames.com -steamofporn.com -steampowered.com -steamserver.net -steamstatic.com -steamunlocked.net -steamusercontent.com -steamygamer.com -steel-storm.com -steelbrick.com -steemit.com -steezylist.com -steganos.com -steganos.net -stepchina.com -stepdaughter.love -stepfamilyporn.com -stephaniered.com -stepmaturesex.com -stepmom.one -stepsiblingscaught.com -stheadline.com -sthoo.com -stickam.com -stickeraction.com -stickofjoy.com -stileproject.com -stimorolsex.com -stlouisbmw.net -sto.cc -stockagainstphotography.com -4porn4.com -stocking-tease.com -stockingfetishvideo.com -stonefoxlingerie.com -stonefoxproductions.com -stoporganharvesting.org -stoptibetcrisis.net -storagenewsletter.com -store-bridgestonesports.com -young-webcam.net -storesense.com -storiesonline.net -storify.com -stormmediagroup.com -storyful.com -stoweboyd.com -straightouttasomewhere.com -straightpornstuds.com -straitstimes.com -stranabg.com -straplessdildo.com -stream-mydirtyhobby.biz -streamable.com -streamate.com -streamhentaimovies.com -streamingdisney.net -streamingporn.xyz -streamingthe.net -streamlatina.com -streamporn.cc -streamporn.pw -streamsex.com -streema.com -streetmeatasia.com -young-amateur-movies.com -strepsils.net -strepsilsarabia.com -strikingly.com -strikinglycdn.com -stripcamfun.com -stripchat.com -stripe-terminal-local-reader.net -stripe.com -stripe.network -stripecdn.com -stripparadise.com -stripselector.com -stripskunk.com -strongvpn.com -strongwindpress.com -studentsforafreetibet.org -studiobeatsbydrdre.com -studiofow.com -studioluxus.com -studywatchbyverily.com -studywatchbyverily.org -stufferdb.com -stumbleupon.com -stunnel.org -stupidcams.com -stupidvideos.com -stxmosquito.com -stxmosquitoproject.com -stxmosquitoproject.net -stxmosquitoproject.org -4porn.com -4pig.com -sub147.com -youmaker.com -sublimedirectory.com -sublimetext.com -submityourflicks.com -subscene.com -substack.com -successfn.com -successwithteams.com -youlucky.com -4myminicard.com -sucksex.com -sugarsync.com -sugobbs.com -sugumiru18.com -suissl.com -sukebelinks.com -sulian.me -sulwerphoto.com -summify.com -sumomo-ch.com -sumrando.com -sun.com -sun1911.com -sundanceignite2016.com -sundayguardianlive.com -sundayready.com -sunglassessale2014.com -sunporno.com -sunskyforum.com -sunvpn.net -youjizz.com -suoluo.org -supanimegames.com -supchina.com -superadultgames.com -supercell.com -superearsenjoy.com -superfreevpn.com -supergratisporno.com -superhqporn.com -superjapanesesex.com -supermario.com -supermario3dworld.com -supermariogalaxy.com -supermariorun.com -superokayama.com -superpages.com -superpapermario.com -supersexeamateur.com -4mydomain.com -supertop.co -superuser.com -supervpn.net -superzooi.com -supjav.com -suppig.net -supplybestjerseys.com -supportfacebook.com -supremacy.com -supremacy.net -suprememastertv.com -sureporn.com -surface.com -surfeasy.com -surflite.co -surflite.net -surfshark.com -suroot.com -surrenderat20.net -suruga-ya.com -susiewildin.com -sustainthesound.com -suxib.com -4kup.net -4ksex.me -svaboda.org -svensksexfilm.com -sverigebeatsbydrdre.com -svipshipin.store -svoboda.org -svp-team.com -svpply.com -4irc.com -svscomics.com -svsfx.com -svsgames.org -swag.live -swagbucks.com -swapsmut.com -4greedy.com -sway-cdn.com -sway.com -sweetadult-tube.com -sweetmlif.net -sweetsext.com -sweetsinner.com -swegold.com -swift.org -swiftbank.info -swiftcapital.com -4f1v1.top -swiftfinancial.com -swiftfinancial.info -swiftfinancial.net -swingercuckoldporn.com -swingerpornfun.com -swingerporntube.com -swingers-homemade-videos.com -youjism.com -swingersexorgy.com -4everproxy.com -swissign.com -swisssign-group.com -swisssign.com -swisssign.net -swisssign.org -swisssigner.com -swisssigngroup.com -swissstick.com -swissvpn.net -switchvpn.net -swjedifallenorder.com -swjfo.com -swoosh.com -youdontcare.com -swtor.com -swtor.net -4ertik.one -sxarab.top -sxshentai.com -sxyprn.com -4ertik.live -4ebaytraders.com -sydneytoday.com -syhacked.com -sylfoundation.org -4dq.com -symantec.com -symcb.com -symcd.com -synaptic.net -syncback.com -synergyse.com -syosetu.com -sysinternals.com -sysresccd.org -sytes.net -syzbj36.xyz -4club.com -szbbs.net -szcheapmonsterheadphones.com -szexvideo.top -szwinnertechnology.com -t-g.com -t.co -t.me -youav.com -t35.com -t66y.com -taa-usa.org -4channel.org -taboola.com -tabooporns.com -tabustudios.co -tacamateurs.com -tacem.org -tafm.org -tagwalk.com -taiav.com -tail-f.com -tailf.com -tailwindtraders.com -4chan.org -taipeisociety.org -taipeitimes.com -taiwan-sex.com -taiwanadultexpo.com -taiwanbible.com -taiwancon.com -taiwandaily.net -taiwandc.org -taiwanhot.net -taiwanjustice.com -taiwanjustice.net -taiwankiss.com -youassporn.com -taiwannation.com -taiwantp.net -taiwanus.net -taiwanyes.com -you.com -take2games.com -takegoto.com -taknai.com -takporn.com -talentlens.com -taleofthenight.com -talk853.com -talkboxapp.com -talkcc.com -talkonly.net -talksport.com -tamilsexvideos.cc -tanc.org -tandberg-china.com -tandberg.com -tandfonline.com -tanflix.com -tangben.com -tantaly.com -taoism.net -taolun.info -tapanwap.com -tapatalk.com -taptotokyo.com -taradinhos.com -4chan.com -target.com -targetimg1.com -tasexy.com -tasexy.top -tastyblacks.com -4cdn.org -4bluestones.biz -4beatsbydre.com -tati-log.com -466453.com -taup.net -taweet.com -tawny-peaks.com -taxi69.com -taxidrivermovie.com -taylorandfrancis.com -taylorfrancis.com -tbcollege.org -tbib.org -tbicn.org -tbjyt.org -tblop.com -tbpic.info -you-get.org -tbrc.org -tbs-rainbow.org -tbsec.org -tbsmalaysia.org -tbsn.org -tbsseattle.org -tbssqh.org -tbswd.org -tbthouston.org -4550.fun -tccwonline.org -tcewf.org -tchrd.org -445nan.com -tcnynj.org -tcpspeed.co -tcpspeed.com -tcsofbc.org -tcsovi.org -tctsx28d.xyz -445jun.com -tdesktop.com -445gei.com -teacherfucksteens.com -teachmyass.com -teachparentstech.org -teamamericany.com -teamneedforspeed.com -teamskeet.com -teamviewer.com -tearapeak.com -teatroporno.com -yoshisnewisland.com -techatbloomberg.com -techcrunch.com -techliquidators.com -technics.com -technologyandsociety.org -techspot.com -techstreet.com -techtimes.com -techviz.net -teco-hk.org -teco-mo.org -ted.com -tedcdn.com -teddysun.com -teen-girl.net -teen-lover.net -teen-sexy.com -teen3x.mobi -teenagefucking.com -teenchoice.com -teendreams.com -teengirlfriendtube.com -teeniefuck.net -teenporngallery.net -teenport.com -teenpussypicture.com -teenqueens.net -teenrave.org -teensex.me -teensinasia.com -teensloveanal.com -teensloveporn.net -teensnow.com -teensnow.link -teentube.pro -teenwebcamtube.com -teeztube.com -tegrazone.co -tegrazone.com -tehrantimes.com -telebay.com -444.coffee -telecomspace.com -41maonn.com -telega.one -telegram-cdn.org -telegram-porn.com -telegram.dog -telegram.me -telegram.org -telegram.space -telegramdownload.com -telekom.com -telesell.com -telex.cc -tellapart.com -tellme.pw -tellmewhygame.com -40somethingmag.com -tenacy.com -tenbyfotolia.com -tencent.design -40shopping.com -tensorflow.org -tenzinpalmo.com -terabox.com -terapeack.com -terapeak.com -terapeak.info -teraperk.com -termius.com -termux.com -termux.dev -termux.org -40momporntube.com -terragraph.com -terrapeak.com -terrlficdates.com -tesla.com -tesla.services -teslaenergy.services -teslamotors.com -teslazta.net -test-ipv6.com -testonfox.com -404museum.com -tew.org -tex-talk.net -textnow.me -texttobuy.org -texture.com -3xxx.pro -tferwq.com -tfhub.dev -tfiflve.com -tfsallin.net -3xplanetimg.com -tg.dev -tgirlcentral.com -tgirlpostop.com -tgp6.com -tgtube.com -tgutube.com -3xplanet.net -yopornshop.com -thai-xxx.com -thai69.com -thaicherry.com -thaichix.com -thaicn.com -thaicuties.com -thaigirls.net -thaigirls100.net -thanksloyalty.com -thawte.com -3xplanet.com -the-japan-news.com -the-m-festival.com -the-monster-beats.com -theaffairs.com -theatlantic.com -theatrum-belli.com -theav.cc -thebanker.com -thebankerdatabase.com -thebayuk.com -thebcomplex.com -thebeatsbydre.com -thebeatsbydre.net -thebeatsheadphonesale.com -thebestfetishsites.com -theblaze.com -theblemish.com -thebobs.com -thebodyshop-usa.com -thebondagefiles.com -thecamdude.com -thecandidbay.com -thechinabeat.org -thechinacollection.org -theclasshroom.com -thecleversense.com -theclubprive.com -theclyster.com -thecompaqstore.com -theconversation.com -thecuckold.com -thecuckoldporn.com -thedailysnkr.com -thedalailamamovie.com -thediplomat.com -thedreadwolfrises.com -theebayshop.com -theepochtimes.com -theepochtimessubscribe.com -thefacebook.com -thefacebook.net -thefappening.pro -thefappening.wiki -thefappeningblog.com -thefind.com -thefoxnation.com -thegatewaypundit.com -thegay.com -thegayoffice.com -thegeorgiascene.com -thegithubshop.com -thegly.com -thegooglestore.com -3tui.net -theguardian.com -theguardiandns.com -thehabibshow.com -3pornstarmovies.com -thehealthsite.com -thehentaiworld.com -thehots.info -thehousenews.com -thehulubraintrust.com -thehun.net -theindianleaks.com -theinitium.com -theinstagramhack.com -theintelstore.com -thekarups.com -thelancet.com -theleakbay.com -thelegendarystarfy.com -thelittleslush.com -themarvelexperiencetour.com -themathsfactor.com -themilfmovies.com -themoviedb.org -thenationalpulse.com -thenewgirlspooping.com -thenewporn.com -thenewslens.com -thenextweb.com -thenipslip.com -theopportunityproject.org -thepaypalshop.com -thepervs.com -thepiratebay.org -theporn.cc -thepornarea.com -thepornbest.com -thepornbet.com -thepornbin.com -thepornblender.com -theporndude.cc -theporndude.com -theporndude.vip -thepornguy.org -thepornlinks.com -thepornlist.com -thepornlist.net -thepornlistdude.com -thepornmap.com -thepornscat.com -theporntoplist.com -theportalwiki.com -thesafeporn.com -thesexbible.com -thesffblog.com -theshoppingexpresslane.net -thesims.com -thesims3.com -thesims4.com -thesimssocial.com -thestandnews.com -thestationbymaker.com -theteenhome.com -thethothub.com -thetibetcenter.org -thetibetconnection.org -thetibetmuseum.org -thetibetpost.com -thetinhat.com -thetranny.com -thetread.com -thetrotskymovie.com -thetvdb.com -thetype.com -theuab.net -theverge.com -thevirtualsexreview.com -thevivekspot.com -thewgo.org -thewonderful101.com -theync.com -theyxxx.com -thieme-connect.com -thinkboxsoftware.com -thinkgeek.com -thinkingtaiwan.com -thinkofliving.com -thinkquarterly.com -thinkwithgoogle.com -thisav.com -thisav.org -thisispolaris.com -thisvid.com -thisvidscat.net -thlib.org -thomasbernhard.org -thomsonreuters.com -thomsonreutersmexico.com -thongdreams.com -thottok.com -thotvids.com -threadreaderapp.com -threads.net -threatchaos.com -thrixxx.com -throughnightsfire.com -thtmod1.com -thumbnailseries.com -thumbzilla.com -thunderbird.net -thunderbolttechnology.net -thywords.com -thz7.net -thzu.cc -3pornhere.com -tiananmenduizhi.com -tiananmenmother.org -tiananmenuniv.com -tiananmenuniv.net -tianbiav10.com -tiandixing.org -tianhuayuan.com -tianlawoffice.com -tiantang.today -tiantibooks.org -tianzhu.org -tiava.com -tiava1.com -tiaz.site -tiberiumalliances.com -tibet-foundation.org -tibet.com -tibet.net -tibet.org -tibet3rdpole.org -tibetaction.net -tibetaid.org -tibetalk.com -tibetan-alliance.org -tibetanaidproject.org -tibetanarts.org -tibetanbuddhistinstitute.org -tibetancommunity.org -tibetancommunityuk.net -tibetanculture.org -tibetanentrepreneurs.org -tibetanfeministcollective.org -tibetanhealth.org -tibetanjournal.com -tibetanlanguage.org -tibetanliberation.org -tibetanpaintings.com -tibetanphotoproject.com -tibetanpoliticalreview.org -tibetanreview.net -tibetansports.org -tibetanwomen.org -tibetanyouth.org -tibetanyouthcongress.org -tibetchild.org -tibetcity.com -tibetcollection.com -tibetcorps.org -tibetexpress.net -tibetfocus.com -tibetfund.org -tibetgermany.com -tibethaus.com -tibetheritagefund.org -tibethouse.org -tibetinfonet.net -tibetjustice.org -tibetmuseum.org -tibetnetwork.org -tibetoffice.org -tibetonline.com -tibetoralhistory.org -tibetsites.com -tibetsociety.com -tibetsun.com -tibetsupportgroup.org -tibettelegraph.com -tibettimes.net -tibetwrites.org -tiburon.com -tickdata.com -tictoc.video -tidal.com -tidalhifi.com -tidelift.com -tiendabestbuy.com -3naked.com -tiffany-towers.com -tig-ol-bitties.live -tigervpn.com -tik-tokapi.com -tiktok.com -tiktokcdn.com -tiktokd.net -tiktokd.org -tiktokv.com -tiltbrush.com -timdir.com -time.com -timelinestoryteller.com -timesmembership.com -timesnownews.com -yomilogi.com -timestalks.com -timi1.me -timo0.com -timsah.com -timtales.com -tinc-vpn.org -tineye.com -tinhduc.org -tintuc101.com -tiny.cc -tiny4k.com -tinychat.com -tinypaste.com -tinyurl.com -tiohentai.com -tipas.net -tiresplus.com -3movs.xyz -tistory.com -titanfall.com -titsandtugs.com -titsbox.com -titsintops.com -tittykings.com -3movs.com -3lib.net -tjsbfj.com -tjstats.com -3hentai.net -3go.fun -tkb008.xyz -tkb2233.life -tkbqf2.life -tkcs-collins.com -3dsexy.net -tktube.com -3dsexvilla.com -3dsexplay.xyz -tmagazine.com -tmdb.org -tmdfish.com -tmei-taoyuan.com -tmi.me -tmpp.org -3dsexmovies.biz -tnaflix.com -tnatryouts.com -tngrnow.com -tngrnow.net -tnntoday.com -tnp.org -tnt-ea.com -3dsexgames.biz -to-porno.com -togetter.com -toh.info -3dhentaix.com -tokyo-247.com -tokyo-hot.com -tokyo-porn-tube.com -tokyo-tosho.net -tokyocn.com -tokyomotion.com -tokyomotion.net -tokyonightstyle.com -tokyoporns.com -tokyotosho.info -tomatespodres.com -tomonews.net -tomovie.net -tonec.com -tonicmovies.com -tonyyan.net -toodoc.com -toolforge.org -toomadporn.pro -toon-3d.com -toonel.net -toonsexblog.com -adobeccstatic.com -top100nl.net -top100sexgames.com -top10vpn.com -topadultgames.biz -topanime.biz -topartporn.com -topbabesblog.org -topbeatsbydrdreoutlet.com -topbeatsdealer.com -topbeatsforsale.com -topbtc.com -topcartoonsites.com -topcelebnudes.com -topchats.com -topchineseporn.com -topcoder.com -topcuckolds.com -toperoticartsites.com -topescortbabes.com -topexhib.net -topface.com -topfantasyart.com -topfreepornvideos.com -tophdsex.com -tophentai.biz -tophentaicomics.com -toplayerserver.com -topmanga.biz -topnudemalecelebs.com -topporn.me -toppornguide.com -toppornoduro.com -toppornsites.com -toppornsites.net -toprealvideos.com -topsexart.com -topsexhdvideos.com -topsexygames.com -topshareware.com -topsy.com -toptoonsites.com -topvids.net -topxxxpornvids.com -topyoungporn.com -yolasite.com -100beatscheap.com -3dfuckhouse.com -torcidadeouro.com -torcn.com -torguard.net -torlock.com -toroporno.com -torproject.org -torrentleen.com -torrentprivacy.com -torrenty.org -torrindex.net -torvpn.com -yogify.com -3devilattack.net -3danimeworld.com -totalmateria.com -totalvpn.com -totoleak.com -touchid.wang -touchsmartpc.com -touchsmartpc.net -touchsmartpc.org -touhouwiki.net -tourporno.com -toutapp.com -toutiaoabc.com -toutoupa1024.fun -towerauction.com -towngain.com -townofsins.com -3dadultgames.net -toythieves.com -toytractorshow.com -tparents.org -tpornstars.com -tps138.info -3d-xxx.com -tr.com -tracfone.com -tracking-location.com -3d-toon.com -tradevip1.com -tradingview.com -trafficmanager.net -tranny.one -trannygem.com -trannyvideosxxx.com -yogichen.org -trans500.com -transangels.com -transarmuito.com -transcamslive.com -3d-game.com -translatetheweb.com -translatewiki.net -translatewiki.org -3d-comics.com -transparency.org -transpornsites.com -3boys2girls.com -3arabtv.com -travelcontroller.com -3arabporn.com -3animalsextube.com -travelex.com -travelexae.com -travelexch.com -travelexmoneycard.com -travelgirls.com -3a5a.com -trello.com -trellocdn.com -trendmicro.com -trendsmap.com -trendyporn.com -trialofccp.org -triballo.net -tribler.org -trickip.net -trickip.org -trikepatrol.com -triokini.com -tristatebmw.com -trithucvn.net -trithucvn.org -trixhentai.com -trmini.com -troisrivieresmini.com -tronscan.org -tropictube.com -trueamateurmodels.com -trueamateurs.com -trueanal.com -truebeachporn.com -truebuddha-md.org -truedepth3d.com -trulyergonomic.com -trust-provider.com -trustcor.com -trustedanalytics.com -trustedanalytics.net -trustedpeach.com -trustisfps.com -trustwave.com -truthontour.org -truthordarepics.com -truthsocial.com -truveo.com -truyen-hentai.com -truyen18.xyz -truyengihay.net -truyenhentai.xyz -truyenkk1.com -truyentranh86.com -truyenwk.com -39group.info -tryboobs.com -trycloudflare.com -trycuckold.com -trydurex.net -tryengineering.org -tryfuckmenow.com -tryfunctions.com -tryquinn.com -tryrating.com -tryst.link -tsctv.net -tsemtulku.com -tsescortsdirectory.com -tsmodelstube.com -tssp.best -tsthai.com -tsumino.com -tsunagarumon.com -tsundora.com -yogalayout.com -tsyum.com -3789av.com -tt1069.com -tteshop.com -tttan.com -ttvnw.net -tu8964.com -tubaholic.com -tube-pornomovs.com -tube-sex-videos.com -tube.com -tube188.com -tube2011.com -tube2012.com -tube2017.com -tube4sex.com -tube4world.com -tube8.com -tube8zoo.com -tube911.com -tubebdsm.com -tubecaptain.com -tubecop.com -tubecup.com -tubedna.com -tubedupe.com -tubeenema.com -tubefuckme.net -tubegalore.com -tubegals.com -tubeislam.com -tubelombia.net -tubemovies4k.com -tubeorigin.com -tubepatrol.org -tubepornclassic.com -tubepornlist.com -tubepornstars.com -tubepornup.com -tubesafari.com -tubesex.me -tubeshemales.com -tubestack.com -tubetop69.com -tubetria.mobi -tubetubetube.com -tubev.pro -tubevintageporn.com -tubewolf.com -tubexclips.com -tubinge.com -tubous.com -tubsexer.com -tubxporn.com -tug.org -36rain.com -100bucksbabes.com -tuibeitu.net -tuidang.net -tuidang.org -tuitwit.com -tukif.com -tumblr.com -tumutanzi.com -tumview.com -tunein.com -tunnelbear.com -tunnelblick.net -tunnelr.com -tunsafe.com -turansam.org -turbobit.net -turbogvideos.com -turbohide.com -turborepo.org -turbotwitter.com -turkeyblocks.org -turkistantimes.com -tushy.com -tushycash.com -tutanota.com -tuvpn.com -tuzaijidi.com -36717.info -tv.com -yobt.com -tvants.com -tvappstore.net -tvb.com -tvbanywhere.com -tvboxnow.com -tvbusa.com -tvbweekly.com -tvider.com -tvplayvideos.com -tvpromise.com -365buymy.com -tvunetworks.com -35s4.com -tw-blog.com -tw-npo.org -yobit.net -yo1health.com -ynoproject.net -ymail.com -yjcontentdelivery.com -yizhihongxing.com -tw01.org -tw985.com -twaitter.com -twapperkeeper.com -twavi.com -twavking.com -twbbs.org -twblogger.com -twcomix.com -tweepguide.com -tweeplike.me -tweepmag.com -tweepml.org -tweetbackup.com -tweetboard.com -tweetboner.biz -tweetcs.com -tweetdeck.com -tweetedtimes.com -tweetphoto.com -tweetrans.com -tweetree.com -yiyechat.com -tweettunnel.com -tweetwally.com -tweetymail.com -tweez.net -twelve.today -twerkingbutt.com -twftp.org -twgreatdaily.com -twgreatnews.com -twhentai.com -twibase.com -twibbon.com -twibs.com -twicountry.org -twicsy.com -twiends.com -twifan.com -twiffo.com -twifuli.com -twiggit.org -twilightsex.com -twilog.org -twimbow.com -twimg.com -twindexx.com -twinkspornos.com -twinkybf.com -twinprime.com -twip.me -twishort.com -twistar.cc -twistedlinks.net -yiqiedoushiganggangkaishi.org -twisterio.com -twisternow.com -twistory.net -twistys.com -twit2d.com -twitbrowser.net -twitcause.com -twitchcdn.net -twitchsvc.net -twitgether.com -twitgoo.com -twitiq.com -twitlonger.com -twitmania.com -twitoaster.com -twitonmsn.com -twitpic.com -twitstat.com -twittbot.net -twitter.biz -twitter.com -twitter4j.org -twittercommunity.com -twittercounter.com -twitterfeed.com -twitterflightschool.com -twittergadget.com -twitterinc.com -twitterkr.com -twittermail.com -twitteroauth.com -twitterrific.com -twitthat.com -twitturk.com -twitturly.com -twitvid.com -twitzap.com -twiyia.com -twlegs.com -twline5.com -twnextdigital.com -twoo.com -twporn.net -twreporter.org -twskype.com -twstar.net -twtkr.com -twtrdns.net -twtrland.com -twttr.com -twttr.net -twvid.com -twyac.org -tx.me -tx5254.com -tx5ptbp7.com -txcloud.net -txdirectv.com -txqzz34r.com -txvia.com -txvlog.com -txxx.com -txxx1.com -tycool.com -tyler-brown.com -tyms2022.com -typeisbeautiful.com -typekit.com -typekit.net -typenetwork.com -typepad.com -typesquare.com -typography.com -tytng189.com -tytporno.online -32red.com -u15.info -u3c3.com -u9a9.cc -u9a9.com -u9un.com -32bm.cc -uaa.com -ub0.cc -315lz.com -ubddns.org -uber-assets.com -uber.com -ubereats.com -uberproxy.net -ubi.com -ubisoft.com -ubisoftconnect.com -ubnw.net -30plusgirls.com -ubuntu.com -ubuntu.net -ubuntuforums.org -uc-japan.org -ucdc1998.org -30boxes.com -udacity.com -udemy.com -udemycdn.com -udfs.com -udn.com -udnbkk.com -udndata.com -udnfunlife.com -udtrucksmeena.com -ufreevpn.com -3-a.net -ugo.com -uguisupapa.net -uhairy.com -uhdwallpapers.org -uhrp.org -uhtube.me -uhub.com -uighurbiz.net -uiporn.com -ujapanesesex.com -2waky.com -uk-exhibitionist.com -ukipad.com -ukwhoswho.com -ulike.net -ulol.com -ulop.net -ultimaforever.com -ultimaonline.com -2shared.com -ultradonkey.com -ultraxs.com -ultrayoungsex.com -2o7.net -un.org -unblock-us.com -yipub.com -unblockdmm.com -unbrandedproducts.com -uncams.com -uncensoredsexparties.com -uncyclomedia.org -underhentai.net -underlords.com -underwoodammo.com -unfiltered.news -ungrounded.net -unholyknight.com -uni.cc -2mdn.net -unification.net -uninhibitedcomix.com -unirule.cloud -uniswap.org -unitedsocialpress.com -unity.com -unity3d.com -universalorlando.com -universalpictures.com -universalpicturesinternational.com -universalstudioshollywood.com -universitypressscholarship.com -unix100.com -unknownspace.org -unkoscene.com -unlocklimitlesslearning.com -unodedos.com -unpkg.com -unpo.org -unravel2.com -unraveltwo.com -unrealengine.com -unrealtournament.com -unstable.icu -unusualporn.net -uo.com -uocn.org -uoherald.com -2mdn-cn.net -yinshuiger.info -up01.cc -yinmh.com -updatetube.com -upghsbc.com -upholdjustice.org -upjav.cc -uplay-istrip.com -uplay.com -uplinq.com -upload4u.info -uploaded.net -uploadstation.com -uplust.com -uplynk.com -upornia.com -uproxy.org -uptodown.com -upwill.org -ur7s.com -uraban.me -urasma.com -urbandictionary.com -urbansurvival.com -urchin.com -urduvoa.com -uriminzokkiri.com -urlborg.com -urlgalleries.net -urlparser.com -urukawa.com -2lipstube.com -usa-beatsbydreheadphonesonsale.net -usacn.com -usaco.org -usatoday.com -usatodaynetworkservice.com -uscnpm.org -uselessjunk.com -useplannr.com -userapi.com -yinlei.org -usercontent.dev -usertrust.com -yingsuoss.com -yingpianqu.com -usocctn.com -ustibetcommittee.org -usus.cc -usvimosquito.com -usvimosquitoproject.com -utopianpal.com -uu-gg.com -uug22.com -uug23.com -uug25.com -uug26.com -uug27.com -uuk28.com -uukanshu.com -uun78.com -uun79.com -uun82.com -uun83.com -uun85.com -uun86.com -uun87.com -uun89.com -uun92.com -uun93.com -uun95.com -uun96.com -uun97.com -uun98.com -uun99.com -uusexdoll.com -uusextoy.com -uux68.com -uverse.com -uvwxyz.xyz -uwants.com -uwants.net -uwpcommunitytoolkit.com -uxxxporn.com -2lib.org -uyghur-j.org -uyghuraa.org -uyghuramerican.org -uyghurbiz.org -uyghurcongress.org -uyghurpen.org -uyghurpress.com -uyghurstudies.org -uyghurtribunal.com -yinac5.top -uygur.org -uymaarip.com -2kgames.com -v-av.com -v-has.com -v2ex.com -v2fly.org -v2ph.com -v2ray.com -v2ray.cool -v2raycn.com -v2raytech.com -v7hds.com -v8.dev -v8project.org -2kcoretech.online -vagabundasdoorkut.net -vaginacontest.com -vaginal-ultrasound.com -vaginalultrasound.info -vaginapics.pro -vagrantcloud.com -vagrantup.com -valeursactuelles.com -valoryirene.com -valuegb.com -valvesoftware.com -van001.com -van698.com -2k.com -2gayboys.com -vanilla-jp.com -2drdrebeats.com -yinac.xyz -vanisharabia.com -vanishcentroamerica.com -vanishstains.com -vanitaonline.com -vanithaveedu.com -vanpeople.com -vansky.com -vatn.org -vaultify.com -vaultify.info -vaultify.net -vbejeyv.shop -2dgen.com -vcanedge.com -vcf-online.org -vcfbuilder.org -vcloudair.net -vct.news -vdoav.com -yimg.com -2chav.com -veet.com -yilubbs.com -veetarabia.com -veetbangladesh.com -veetcentroamerica.com -2ch.net -vegasred.com -velocloud.com -velostrata.com -venbbs.com -venchina.com -vendu.com -venetianmacao.com -venezporn.com -venmo-touch.com -venmo.com -venmo.info -venmo.net -venmo.org -ventureswell.com -veoh.com -veporn.com -vepornhd.club -veporno.net -vercel-dns.com -vercel-status.com -vercel.app -vercel.blog -vercel.com -vercel.events -vercel.live -vercel.pub -vercel.store -verily.com -verilylifesciences.com -verilystudyhub.com -verilystudywatch.com -verilystudywatch.org -2buybeatsbydre.com -verisign.biz -verisign.com -verisign.info -verisign.jobs -verisign.mobi -verisign.name -verisign.net -verisign.org -verisign.pro -verisigninc.com -verizon.com -verizon.net -verizonbusinessfios.com -verizondigitalmedia.com -verizonenterprise.com -verizonfios.com -verizonmedia.com -verizonwireless.com -vermonttibet.org -verpeliculasporno.gratis -versavpn.com -versly.com -vervesex.com -verybs.com -verygoodnike.com -veryladyboy.com -veryshortintroductions.com -vevo.com -vfabric.net -vfsco.com -vfsforgit.com -vfsforgit.org -2bit8.com -vgcareers.net -vgg8.com -vhxqa1.com -vhxqa2.com -vhxqa3.com -vhxqa4.com -vhxqa6.com -2beeg.me -via0.com -viacbs.com -viacom.com -viacomcbs.com -viacomcbspressexpress.com -viber.com -vica.info -victimsofcommunism.org -vid.me -vidble.com -viddeo-jav.net -video-jav.net -video-one.com -yigeni.com -yieamnd.com -video01.org -videobam.com -videobreakdown.com -videochampion.com -videodelivery.net -videodesexo.blog -videodetective.com -videojs.com -videolan.org -videoleak.me -videomo.com -videopediaworld.com -videopress.com -videos4sale.com -videos6.com -videosamadoresreais.com -videosdemadurasx.com -yidio.com -videosection.com -videoshorny.com -videoskaseros.com -videosmadeathome.com -videosporno.life -videosxxxnicaragua.top -videoxxxporn.biz -videozzz.com -vidinfo.org -vidmpreview.com -vidown.com -vidspornoduro.com -viet69.dev -viet69.link -viet69.news -vietdaikynguyen.com -viewerswives.net -viewgals.com -viewpointsfromfacebook.com -2beatsdre.com -vijayatemple.org -2adultflashgames.com -vikiporn.com -vilavpn.com -vilavpn.xyz -vilavpn1.xyz -vilavpn2.xyz -vilavpn3.xyz -vilavpn4.xyz -vilavpn5.xyz -vilavpn6.xyz -vilavpn7.xyz -vim.org -vimeo-staging.com -vimeo-staging2.com -vimeo.com -vimeobusiness.com -vimeocdn.com -vimeogoods.com -vimeoondemand.com -vimeostatus.com -vimperator.org -vincnd.com -vine.co -vinniev.com -vintage-erotica-forum.com -vintageamateurporn.com -vintagehomemadesex.com -vintagemedicalpictures.com -vintagexxxfilms.com -vip-beats.com -vip-enterprise.com -vipbeatsbydre.com -vipheadphones.com -vipissy.com -vipmatureporn.com -vipshoes2.com -vipstudiocali.com -viralcum.com -viralporn.com -2789av.com -virginpornlinks.com -virsto.com -virsto.net -virtualearth.net -virtualpartyworld.com -virtualporn.com -virtualrealgay.com -virtualrealporn.com -virtualrealtrans.com -virtualtaboo.com -virtuata.com -265sdwe3.com -visa-atm.com -visa.com -yibei.org -visabank.org -visabg.com -visabusinessinsights.com -visacarddesignlab.com -visacards.com -visacheckout.net -visacheckout.org -visaconciergelac.com -visadigital.com -visadigitalconcierge.com -visadns.com -visaeverywhereshop.com -visafintechfasttrack.com -visafulfillment.com -visaglobalfinance.com -visaicsdirect.com -visaitalia.com -visakorea.com -visaluxuryhotelcollection.com -visaluxuryhotels.com -visamiddleeast.com -visanet.net -visapcsdirect.com -visaplus.com -visasignaturehotels.com -visasoutheasteurope.com -visb.org -visceralgames.com -visibletweets.com -visiontimes.com -visiontimes.net -visiontimesjp.com -265.com -25u.com -visualstudio-staging.com -visualstudio.co -visualstudio.com -visualstudio.net -vital247.org -vitukali.com -viu.com -258porn.com -vivahentai4u.net -vivaldi.com -vivatube.com -vivaxnxx.com -24smile.org -vivthomas.com -vixen.com -vizvaz.com -vjav.com -vk-cdn.me -vk-cdn.net -vk-portal.net -vk.cc -vk.com -vk.design -vk.link -vk.me -vkcache.com -vkgo.app -vklive.app -vkmessenger.app -vkmessenger.com -vkuseraudio.com -vkuserlive.net -vkuservideo.com -vkuservideo.net -vl4x.net -24porn.pro -vllcs.org -vmglobal.net -vmixcore.com -vmmark.com -vmpsoft.com -vmtestdrive.com -vmw.com -vmware-cloudmanagement.com -vmware-techcenter.com -vmware.com -vmware20mosaic.com -vmwareausnews.com -vmwarecertificationvideos.com -vmwarecloud.com -vmwaredemandcenter.com -vmwareemeablog.com -vmwaregrid.com -vmwarehorizon.com -vmwareidentity.com -vmwarelearning.com -vmwarelearningplatform.com -vmwarestuff.com -vmwareusergroupstore.com -vmwareviewpoint.com -vmwarevmc.com -vmwdemo.com -vmwgcomms.com -vmwhorizonair.com -vmwidm-ads.com -vmwidm.com -vmwlabconnect.com -vmwlearningplatform.com -vmworld.com -vmworld2010.com -vmworld2013.com -vmwsalesrewards.com -vmwservices.com -vmwxw.com -24porn.com -yibaochina.com -vnet.link -vnware.net -voaafaanoromoo.com -voaafrique.com -voabambara.com -voabangla.com -voacambodia.com -voacantonese.com -voachinese.com -voachineseblog.com -voadeewanews.com -voadeewaradio.com -voagd.com -voahausa.com -voaindonesia.com -voakorea.com -voalingala.com -voandebele.com -voanews.com -voanoticias.com -voanouvel.com -voaportugues.com -voashona.com -voasomali.com -voaswahili.com -voathai.com -voatibetan.com -voatibetanenglish.com -voatiengviet.com -voatour.com -voazimbabwe.com -vocativ.com -vocus.cc -vod360.net -vodafone.com -24hjav.com -voicettank.org -vokevr.com -vol.moe -2371tom.com -233abc.com -volvo.com -volvobrandshop.com -volvobuses.co -volvobuses.com -volvoce.com -volvodefense.com -volvogroup.com -volvomerchandise.com -volvopenta.com -volvospares.com -volvotrucks.com -yibada.com -volvotrucks.net -vomitkings.com -21sextury.com -vot.org -votolia.com -vovo2000.com -vox-cdn.com -vox.com -voxcreative.com -voxer.com -voxfieldguide.com -voxmedia.com -voxops.net -voy.com -voyeureye.com -voyeurhit.com -voyeurhouse.com -voyeurmonkey.com -voyeurpapa.com -voyeurporntapes.com -voyeurstyle.com -voyeurweb.com -vpejey.xyz -vpn4all.com -vpnaccount.org -vpnaccounts.com -vpnbook.com -vpncomparison.org -vpncoupons.com -vpncup.com -vpndada.com -vpnfan.com -vpnfire.com -vpnfires.biz -vpnforgame.net -vpngate.net -vpngratis.net -vpnhq.com -vpnhub.com -vpninja.net -vpnintouch.com -vpnintouch.net -vpnjack.com -vpnmaster.com -vpnmentor.com -vpnpick.com -vpnpop.com -vpnpronet.com -vpnreactor.com -vpnreviewz.com -vpnsecure.me -vpnshazam.com -vpnshieldapp.com -vpnsp.com -vpntraffic.com -vpntunnel.com -vpnuk.info -vpnunlimitedapp.com -vpnvip.com -vpnworldwide.com -vporn.com -vpornvideos.com -vpro.com -vpro.net -vpser.net -vraiesagesse.net -vrbgay.com -vrfdgswx.xyz -vrfun18.com -vrmtr.com -vrporn.com -vrporncat.com -vrpornjack.com -vrpornmania.com -vrpornranked.com -vrsexgames.biz -vrsmash.com -vrsumo.com -vrv.co -vsallin.net -vscode-cdn.net -vscode-unpkg.net -vscode.dev -vsezoo.com -vsphere.com -vsphere.net -vtsociety.org -vtunnel.com -vtvan.com -21pron.com -vuasanhrong.com -vuku.cc -vulgarx.com -vultr.com -vultryhw.com -vxnbbrs.xyz -vxxsred.xyz -vzw.com -w-mt.co -yhy.cool -w.org -w.wiki -w0512.com -w3.org -w3schools.com -w6un.com -wa.me -waffle1999.com -wahas.com -waigaobu.com -waikeung.org -wailaike.net -wainao.me -waisongcha.com -yho.com -waiwaier.com -wal-mart.com -wal.co -21naturals.com -wallet.com -wallmama.com -wallornot.org -wallpapercasa.com -wallproxy.com -wallsttv.com -21join.com -walmart-content.com -walmart.com -walmart.pharmacy -walmartimages.com -21hub.com -waltermartin.com -waltermartin.org -wanderinghorse.net -wangafu.net -wangjinbo.org -wanglixiong.com -wango.org -wangruoshui.net -wankgames.com -wankizer.com -wankoz.com -wankz.com -wankzvr.com -wanokokorosoh.com -want-daily.com -want-media.com -want520.com -wantblogger.com -wantmywife.com -wanz-factory.com -wapedia.mobi -waplog.com -waranlov.com -yhcw.net -warddogs.com -wariolandshakeit.com -wariowarediy.com -21centuryaccess.com -warp.plus -warroom.org -wasdj.com -waselpro.com -washeng.net -washingtondcbmw.com -washingtonpost.com -waskucity.com -watch-ebay.org -watch-my-gf.com -watch-porn.net -watch8x.com -watchanimeattheoffice.com -watchdisneyfe.com -watchersweb.com -watchespn.com -watchindianporn.net -watchinese.com -watchjavonline.com -watchmyexgf.net -watchmygf.me -watchmygf.net -watchteencam.com -water-and-power.com -waterdamagesandiego.org -waterfox.net -watersex.com -wattpad.com -waveprotocol.org -wawatv.net -waymo.com -waze.com -wballiance.com -wbdnbo.net -wbvm4s.com -wd.com -wdc.com -wdf5.com -wdfiles.com -weareebay.com -wearehairy.com -wearn.com -21andy.com -2047.name -weav.xyz -web-instagram.net -web.app -web.dev -ygugu4.com -web2project.net -webappfieldguide.com -webbang.net -webcam-teen.net -webcamjackers.com -webcammedellin.co -webcamtubexxx.com -2022.dev -webevader.org -webex.com -webflow.com -webfreer.com -webgata.net -webgirlsonline.net -webhosting.com -webjb.org -2021hkcharter.com -webkit.org -webkitgtk.org -weblagu.com -webmoneyinfo.com -webmproject.org -webnovel.com -webobjects.com -webobjects.net -webofknowledge.com -webofscience.com -webpkgcache.com -webrtc.org -webrush.net -webs-tv.net -ygto.com -websitepulse.com -webtoons.com -webtype.com -webwarper.net -webworkerdaily.com -wechatlawsuit.com -weekly-economist.com -weekmag.info -wefightcensorship.org -wefong.com -wegamedeveloper.com -yeyuehuachao13.com -weiboleak.com -weihuo.org -weijingsheng.org -weimi180.com -weiming.info -weinvoiceit.com -weiquanwang.org -2014cheapbeatsbydre.com -weixinbridge.com -weiyuksj.com -weknowporn.com -welcomix.com -wellfuckedwife.com -wellmaturetube.com -welovecock.com -wemigrate.org -wengewang.com -wengewang.org -wenxuecity.com -wenyunchao.com -westca.com -westerndigital.com -westernshugdensociety.org -westernwolves.com -westkit.net -westlaw.com -wet-ass-pussy.com -wetandpuffy.com -wetchicks.org -wetnhorny.com -wetplace.com -wetpussygames.com -wetsextube.com -wexiaobo.org -wezhiyong.org -wezone.net -2013pascherbeatsbydre.com -wfm.com -wforum.com -what-fan.net -whatblocked.com -whatboyswant.com -whatbrowser.org -whatisairwatch.com -whatisworkspaceone.com -whatsapp-plus.info -whatsapp-plus.me -whatsapp-plus.net -whatsapp.cc -whatsapp.com -whatsapp.info -whatsapp.net -whatsapp.org -whatsappbrand.com -whatsonweibo.com -whatthefox.com -wheatseeds.org -wheelockslatin.com -wheelpop.com -wheelworks.net -whengirlsplay.com -whentai.com -whereiswerner.com -wheretowatch.com -whichav.com -whichav.video -whippedass.com -whisolutions.com -whispersystems.org -yeyuehuachao12.com -whitexxxtube.com -who.int -whodns.xyz -whoer.net -wholecitiesfoundation.org -wholefoods.com -wholefoodsmarket.com -wholekidsfoundation.org -wholeplanetfoundation.org -wholesale-exporter1.com -wholesalediscountpurses.com -wholesalefine.com -wholesaleonlinemart.com -wholevideos.com -whonix.org -whoreasianporn.com -whoreshub.com -whoreslag.com -whoreteensex.com -whorevintagesex.com -whosthehost.com -whotalking.com -whvuxtub.com -whychoosehorizon.com -whychooseview.com -whychoosevmwareeuc.com -whyfacebook.com -whyiwantciscotelepresence.com -whylover.com -whynotbi.com -whyx.org -widevine.com -2013newbeatsworld.com -wife-home-videos.com -wifehomeporn.com -wifeinlove.com -wifeinterracialfuck.com -wifeloversporn.com -wifemovies.net -wifesexorgy.com -wifesharingpics.com -wifevideos.net -wifewantstoplay.com -wifi-mx.com -wii-u.com -wiifit.com -wiifitu.com -wiipartyu.com -wiisports.com -wiisportsresort.com -wiiugamepad.com -wiivc.net -wikaba.com -wikawika.xyz -yeyuehuachao11.com -yeyeclub.com -yeswegays.com -yespornpleasexxx.com -wikia.com -yespornplease.com -wikia.org -wikibooks.org -wikidata.org -wikidot.com -wikifeet.com -wikihow.com -wikileaks-forum.com -wikileaks.com -wikileaks.org -wikilivres.info -wikimapia.org -wikimedia.org -wikimediacloud.org -wikimediafoundation.org -wikinews.org -wikipedia.org -wikiquote.org -wikisexguide.com -wikisource.org -wikiunblocked.org -wikiversity.org -wikivoyage.org -wikiwand.com -wiktionary.org -wildammo.com -wildcamporn.com -wildfanny.com -wildfreevideos.com -wildxxxhardcore.com -wiley.com -2013cheapestbeats.com -williamhill.com -willw.net -willyporn.com -2013beatshdcybermonday.com -wimpmusic.com -2013beatsbydreshop.com -windows-int.net -windows.com -windows.net -windowsazure.com -windowscommunity.net -windowsmarketplace.com -windowsphone-int.com -windowsphone.com -windowsphoneme.com -windowssearch.com -windowsuem.com -windowsupdate.com -windscribe.com -windy.com -2013beatsbydrdreshop.com -wingamestore.com -wingy.site -winhec.com -winhec.net -winning11.com -winudf.com -winwhispers.info -wionews.com -wipower.com -wire.com -wired.com -wiredbytes.com -wiredpen.com -wireguard.com -wireless.radio -wirelessreach.com -wiremoneytoirelandwithxoomeasierandcheaper.com -wireshark.org -wisdompubs.org -wise-research.com -wisecoin.com -wiseid.com -wisekey.com -wisevid.com -wish.com -withgoogle.com -withyoutube.com -witnessleeteaching.com -witopia.net -wix-code.com -wix.com -wixanswers.com -wixapps.net -wixipedia.net -wixmp.com -wixsite.com -wixstatic.com -wizcrafts.net -wjbk.org -yespornfree.com -wldfnjh.com -yesasia.com -wmcloud.org -2013beatsbydrdreonline.com -wmflabs.org -wmfusercontent.org -wmt.co -wn.com -wnacg.com -wnacg.link -wnacg.org -wnoaissulli1.com -woeser.com -woesermiddle-way.net -woflthenewsstation.com -wogx.com -wokar.org -wolfatbestbuy.com -wolfatbestbuy.net -wolfax.com -2008xianzhang.info -wolterskluwer.com -womensnikeshox.com -womenwill.com -wonporn.com -wonporn.net -woodmancastingx.com -2000fun.com -woolite.com -woolitecarpet.com -woolyss.com -wordpress.com -wordpress.org -workatruna.com -workerempowerment.org -workers.dev -workersthebig.net -workplace.com -workplaceusecases.com -workspaceair.com -workspaceone.com -world3d.biz -worldcat.org -worldcoinpay.com -worldemojiawards.com -worldemojiday.com -worldescortindex.com -worldhack.com -worldjournal.com -worldofwarcraft.com -worldpornvideos.com -worldscientific.com -worldsecureemail.com -worldsecuresystems.com -worldsex.com -worldsfastestgamer.net -worldvpn.net -wow-life.net -wow.com -wowgirls.com -wowhead.com -wowindianporn.com -wowporn.com -wowpornlist.xyz -wowrk.com -wowstars.com -wowyoungporn.com -woxinghuiguo.com -woyaolian.org -wp-themes.com -wp.com -wpewebkit.org -wpoforum.com -wpvip.com -wqyd.org -wrchina.org -wrenchead.com -wretch.cc -2-hand.info -wsj.com -wsj.jobs -wsj.net -wsjbarrons.com -wsjhk.com -wsjmediakit.com -wsjplus.com -wsjshop.com -wsjwine.com -wtbn.org -1watchmygf.com -1vwapi4d.xyz -wtfpeople.com -wto.org -wuerkaixi.com -wufafangwen.com -wuguoguang.com -wujie.net -wujieliulan.com -wukangrui.net -wumashe.com -wunvb.com -wuso.me -wuw.red -wuxiapple.com -wuyanblog.com -wuyefuli.org -wvm0agb4.me -ww9094.com -wwapple.net -wwe.com -wwe9.com -wwitv.com -wwtbam.com -www-bestbuystores.com -www-facebook.com -www-paypal.info -www-sms-apple.com -yes-news.com -yepporn.com -yeonda.com -100classicbooks.com -yegle.net -yeeyi.com -yeelou.com -yecl.net -yeahteentube.com -100ke.org -ydy.com -ycombinator.com -yazhouse8.com -yayadizhi.xyz -yayabay.com -yaya.cyou -yavtube.com -yatong.info -yastatic.net -yasarang.net -yarnpkg.com -yarininsuyu.com -yaptube.com -yaoyaomumu.com -yaoiotaku.com -yaoimangaonline.com -yaohubaba.com -yangjianli.com -yanghengjun.com -www1.biz -yandexcloud.net -yandex.org -www8-hp.com -wwwapple.com -wwwapple.net -wwwapplemusic.com -wwwdecide.com -wwwebay.com -wwwebay.net -wwwfacebok.com -wwwfacebook.com -wwwhost.biz -wwwhuluplus.com -wwwicloud.com -wwwinstagram.com -wwwipodlounge.com -wwwitunes.com -wwwlapple.com -wwwmacbookair.com -wwwmfacebook.com -wwwpaypass.com -wwwpornhub.pro -wwwwebay.com -wwwxoom.com -wxoyt.com -wyqqdz.com -wzlthw.com -wzmyg.com -wztv8.com -x-art.com -x-artvideo.net -x-berry.com -x-caprice.com -x-fetish.org -x-wall.org -x.co -x.com -x.company -x.org -x.team -x18r.co -x18r.com -x1949x.com -x24hr.com -x365x.com -x3guide.com -x3vid.com -x6av.com -x99av.com -x9wang.com -xacmbq.xyz -xamarin.com -xandr.com -xanga.com -xanimeporn.com -xapplist.com -xattractive.com -xb18.me -xbabe.com -xbabe.mobi -xbahis33.com -xbahis44.com -xbanny.com -xbeegtube.com -xbnat.com -xbookcn.com -xbookcn.net -xbooks.work -xbooru.com -1ucrs.com -xbox.co -xbox.com -xbox.org -xbox360.co -xbox360.com -xbox360.org -xboxab.com -xboxgamepass.com -xboxgamestudios.com -xboxlive.com -xboxone.co -xboxone.com -xboxplayanywhere.com -xboxservices.com -xboxstudios.com -xboyvids.com -xbrasilporno.com -xbtce.com -xcafe.com -xcams.com -xcg123.com -xchina.co -xchina.fun -xcritic.com -xcum.com -xda-cdn.com -xda-developers.com -xdaforums.com -xdir.vip -xdporner.com -xdsummit.com -xdty.org -xecce.com -xemales.com -xenoblade.com -xeon.com -xerotica.com -1pornlist.com -xfantazy.com -xfemaledom.com -1monsterbeatsbydreus.com -xfinity.com -xfockers.com -xfreehd.com -xfuckonline.com -xgames.zone -xgaytube.com -xgirls.webcam -xgmyd.com -xgroovy.com -xh-porn.com -xh.video -xhamster.com -xhamster.desi -xhamster18.com -xhamster18.desi -xhamster2.com -xhamsterlive.com -xhcdn.com -xhot.pro -xianba.net -xianchawang.net -xianqiao.net -xiaobaiwu.com -xiaochuncnjp.com -xiaofu.me -xiaogirls.com -xiaohexie.com -xiaolan.me -xiaoma.org -xiaoyaoge.xyz -xiaxiaoqiang.net -xie56.xyz -xiezhua.com -xindelu.com -xinfhw.com -xing.com -xing66.life -xingrz.me -xinhuanet.org -xinjiangpolicefiles.org -xinmeitulu.com -yandex.net -xinsheng.net -xinshijue.com -xinyubbs.net -xiongpian.com -xiuren.org -xixicui.icu -xizang-zhiye.org -xjavporn.com -xjp.cc -xjtravelguide.com -xkeezmovies.com -xknoop.com -xkontakt18.com -xkorean.cam -xl-gaytube.com -xlecx.org -xlfmtalk.com -xlfmwz.info -xlgirls.com -xlovecam.com -xlstudio.com -xm.com -xmalay.com -xml-training-guide.com -xmovies.com -xmoviesforyou.com -1mobile.com -1lib.limited -xn--3et96bj49ahpq.com -1lib.education -1lib.cloud -1jsa22.vip -1jjdg2.vip -1eew.com -xn--4gq171p.com -xn--4vq475g.com -xn--4vq477m.com -1e100.net -1dumb.com -1drv.com -xn--6eup7j.com -xn--6eup7j.net -xn--74q035i.xn--hxt814e -xn--7hv594h.com -xn--80aaazx1an0a.lol -1classtube.com -1bokeponline.top -1bigclub.com -1bao.org -xn--90wwvt03e.com -xn--9kr7l.com -xn--9pr62r24a.com -xn--9trs65b.com -1998cdp.org -xn--cck4d8b3009a.com -1991way.com -1984bbs.org -xn--czq75pvv1aj5c.org -1984bbs.com -xn--d4ty0ojsqzfd.com -1949er.org -18virginsex.com -xn--fiqs8sxootzz.xn--hxt814e -18sex.org -xn--flw351e.com -18schoolgirlz.me -18qt.com -18push.com -18pornsex.com -xn--ggle-55da.com -xn--gmq92kd2rm1kx34a.com -xn--gogl-0nd52e.com -xn--gogl-1nd42e.com -xn--gtvq61aiijy0b.xn--hxt814e -xn--gtvz22d.wang -xn--gtvz22d.xn--hxt814e -18porncomic.com -18p2p.com -18onlygirls.com -xn--hb4aw0g.com -xn--hckl3e1e8a8ajin0czf.net -xn--hhr917d3fecva.xyz -18novel.xyz -18jms.com -xn--hxtr4rozx.xn--czr694b -xn--i2ru8q2qg.com -18insta.com -18hmanga.com -18hmanga.click -18exgfs.com -18eighteen.com -18doujinshi.xyz -18doujin.com -18commic.com -18comic.vip -xn--kput3imi374g.xn--hxt814e -18comic.org -18comic.company -xn--m1abbbgjah.lol -18comic.cc -18board.info -18board.com -18avx.com -18av.pro -188channel.com -18-teen-xxx.com -18-teen-porn.com -17t17p.com -17mimei.com -17mimei.club -179na.com -177picyy.com -177pic.info -173ng.com -171xx.com -16honeys.com -16fhgdty.xyz -168sex.top -16885858.com -161sex.com -159i.com -141tube.com -141jj.com -141jav.com -141hongkong.com -141-hk.com -138.com -132288.cc -xn--mts47c3w9b1qr.net -xn--mtswd61ejxq.com -12vpn.net -xn--ngstr-lra8j.com -12vpn.com -12joursdecadeauxdeitunes.com -yandex.jobs -12diasderegalosdeitunes.com -xn--oiq.cc -12diasderegalosdeitunes.co -xn--p8j9a0d9c9a.xn--q9jyb4c -xn--pearsonenespaol-brb.com -12diasdepresentesdeitunes.com -12bet.com -xn--q41am8x.com -128100.xyz -126728.net -xn--qoq462m.com -123sex.top -123rf.com -xn--r8jwklh769h2mc880dk1o431a.com -xn--r8jwklh769hk43amcfoyl3z3a.com -xn--ruq8a011kt6y.xn--hxt814e -123hplaserjet.com -123-hp.com -xn--sgt856gbjl.cc -xn--tkry91n.com -xn--ubt498knmf.com -xn--uis17aj9kmuf.com -11jav.com -114av.xyz -112263.com -110xnxx.com -xn--x-qeu1ji09tzlg.biz -xn--x-qeu1ji09tzlg.net -10xfotolia.com -xn--xsq421m.com -xn--xsq605n.com -xn--xsq959n.com -10musume.com -xn--yf1at58a.com -10conditionsoflove.com -10bet.com -xnalgas.com -xnostars.com -xnxvideos.org -xnxx-cdn.com -xnxx-com.cfd -xnxx-sex-tube.com -xnxx-sex-videos.com -xnxx-teens.com -xnxx-tv.net -xnxx-xxx.win -xnxx.com -xnxx.health -xnxx.net -xnxx18.pro -xnxx2.info -xnxx2.org -xnxx2.pro -xnxx3.com -xnxx4porn.com -xnxxarab.cc -xnxxarabsex.com -xnxxcom.club -xnxxcom.xyz -xnxxcomvideos.com -xnxxfap.info -xnxxhamster.net -xnxxhd.biz -xnxxmovies.com -xnxxporn.fun -xnxxpornvid.com -xnxxsexclips.com -xnxxsexmovies.com -xnxxtime.com -xnxxvideos.rest -xnxxx.cc -xo.com -xo104.com -xogogo.com -xoom-experience.com -xoom.com -xoomcom.com -xoteens.com -xoxoteiras.com -xozilla.com -xpaja.net -xpdo.net -xpee.com -10beasts.net -xplr.co -xpoleuno.com -xpornblog.com -xpornplease.com -xposed.info -xpud.org -xrentdvd.com -xsava.xyz -xscale.com -xsden.info -xsela.cc -xshaker.net -xshr.online -xskywalker.com -xskywalker.net -xsrxpwvg.com -xstas.biz -xsvod.xyz -xsz-av.com -xtube.com -xtubebdsm.com -xtubezoo.com -xu97.vip -xuchao.net -xuchao.org -xuite.net -xujan.com -xuzhiyong.net -xv1.monster -xvbelink.com -xvedo.net -xvideo-jp.com -xvideo.cc -xvideo.com -xvideo.run -xvideos-cdn.com -xvideos-dl.top -xvideos-porn-video.com -xvideos-xxxx.com -xvideos.blog -xvideos.co -xvideos.com -xvideos.red -xvideos2.com -xvideos3.com -xvideosamadoras.com -xvideosbrasil.com -xvideosbrasileiro.net -xvideoscom.me -xvideosincesto.com -xvideosjingxiang.com -xvideosnovinha.com -xvideosnovinhas.com -xvideoz.win -xvidios.blog -xvidzz.com -xvinlink.com -xvirtual.com -xvxx.stream -xvxxtube.com -xx-map.com -xx9.app -xxbay.com -xxbb9.com -xxbbx.com -xxbook.cc -xxbrits.com -xxeronetxx.info -xxgasm.com -xxindianporn.com -xxlmovies.com -xxmovz.com -xxnx.rest -xxnxx-porn.com -xxnxx-sex.com -xxu.mobi -xxuz.com -xxvideo.mobi -xxvideoss.org -xxvids.net -101xxx.xyz -xxx-channel.com -xxx-com.cfd -xxx-fap.com -xxx-files.org -xxx-porn-fuck.com -xxx-porn-tube.com -xxx-porn.info -xxx-video.cfd -xxx-ways.com -xxx.com -xxx18.uno -xxx18teen.net -xxx2022.com -xxx2023.com -xxx4hindi.com -xxxaporn.com -xxxassfuck.com -xxxbit.com -xxxbolivianas.com -xxxbule.com -xxxbullet.com -xxxbunker.com -xxxccc4.com -xxxclub.club -xxxcomics.org -xxxdan.com -xxxdesi.cc -xxxdinotube.com -xxxengine.net -xxxfile.org -xxxfiles.com -xxxflare.com -xxxforte.com -xxxfree.watch -xxxfuckmom.com -xxxgames.biz -xxxgames.games -xxxgirls88.com -xxxgratisfilms.com -xxxhd.pro -xxxhdporn.cc -xxxhdvideo.mobi -xxxhentai.net -xxxhentaipics.com -xxxhentaipics.pro -xxxhomefuck.com -xxxhub123.com -xxxhubvideos.com -xxxifuck.com -xxxindianporn2.com -xxxindiantv.com -xxxjapanesemovies.com -xxxland.net -xxxlesbians.me -xxxlucah.com -xxxmaturepussypics.com -xxxmatures.net -xxxmofo.com -xxxmomporn.tube -xxxmovies.fun -xxxmovies.pro -xxxn.me -xxxner.com -xxxnewvideos.com -xxxnu.com -xxxnxx.me -xxxpenguin.com -xxxpicz.com -xxxporn123.com -xxxporndig.com -xxxpornhd.pro -xxxpornmovs.com -xxxpornotuber.com -xxxpornzeed.com -xxxreal.com -xxxscenes.net -xxxsexanal.com -xxxsexcinema.com -xxxsexocasero.com -xxxsextubes.com -xxxsexzoo.com -xxxshame.com -xxxstreams.org -xxxstreams.watch -xxxteenanal.net -xxxtube1.com -xxxtubeasian.net -xxxtubedot.com -xxxtubegf.com -xxxtubenote.com -xxxtubeset.com -xxxtubezoo.com -xxxv.mobi -xxxvideo.one -xxxvideo.vip -xxxvideo.world -xxxvideoamatoriali.com -xxxvideor.com -xxxvideos247.com -xxxvideoszoo.com -xxxvidos.vip -xxxvidso.com -xxxvirtualworld.com -xxxvogue.net -xxxwow.net -xxxxvideo.uno -xxxy.biz -xxxy.info -xxxymovies.com -xxxyoungxxx.com -yandex.com -xys.org -xysblogs.org -xyy69.com -xyy69.info -xzxxporn.com -xzxxtube.com -y2mate.com -yabang.org -yaburi.men -yadori.club -yaeby.info -101tubeporn.com -yahoo.com -yandex.aero -yahoo.me -yahoo.net -yahooapis.com -yahoodns.net -yahoofinance.com -yahoohealth.com -yahoomusic.com -yahoosandbox.com -yahoosportsbook.com -yakbutterblues.com -yam.com -101boyvideos.com -yamaxun.com -yammer.com -yamoon.club -100shmar.net -distribution.qpdp1.net -distribution.qatp1.net -12diasderegalosdeitunes.com.co -xinqimeng.over-blog.com -www2.rocketbbs.com -www2.ohchr.org -ansin.erodayo.com -www.websnapr.com -www.wangruowang.org -www.wan-press.org -www.thechinastory.org -www.taiwanonline.cc -www.tablesgenerator.com -www.s4miniarchive.com -www.pxcc.com -www.powerpointninja.com -www.owind.com -www.orchidbbs.com -www.moztw.org -www.monlamit.org -www.linksalpha.com -www.lamenhu.com -www.klip.me -www.idlcoyote.com -www.googleadapis.com -www.gmiddle.net -www.gmiddle.com -www.eastturkistan.net -www.dwheeler.com -l-0005.dc-msedge.net -www.cmoinc.org -aoaou.iillii.net -www.aolnews.com -www.antd.org -www.ajsands.com -wlx.sowiki.net -wlcnew.jigsy.com -wikia.nocookie.net -wiki.phonegap.com -wiki.oauth.net -wiki.moegirl.org -wiki.cnitter.com -whitebear.freebearblog.org -wego.here.com -website.informer.com -web.nebula-emby.com -warbler.iconfactory.net -waittingfor001.weebly.com -w.idaiwan.com -volvotrucks.com.co -vn.hao123.com -visa.com.co -videosdesexo.br.com -video.fdbox.com -video.aol.com -veet.com.co -vds.rightster.com -vanish.com.co -uygur.fc2web.com -usmgtcg.ning.com -ushuarencity.echainhost.com -yahoo.com.co -update.crashlytics.com -aolchannels.aol.com -unblock.cn.com -twister.net.co -tweets.seraph.me -tw.voa.mobi -tw.streetvoice.com -adult.friendfinder.com -tw.iqiyi.com -tw.hao123.com -tw.gigacircle.com -ap-bangkok.myqcloud.com -tui.orzdream.com -tsuradou.noonvob.com -trans.wenweipo.com -tosh.comedycentral.com -tor.updatestar.com -tor.blingblingsquad.net -timesofindia.indiatimes.com -yomiuri-shimbun.pressreader.com -th.hao123.com -tech2.in.com -tbr.tangbr.net -taiwanyes.ning.com -taiwannation.50webs.com -t.orzdream.com -swpr.livedoor.blog -swingers.theadulthub.com -sunwinism.joinbbs.net -suche.gmx.net -subacme.rerouted.org -strepsils.com.co -ap-hongkong.myqcloud.com -ap-jakarta.myqcloud.com -ap-mumbai.myqcloud.com -ap-seoul.myqcloud.com -ap-singapore.myqcloud.com -ap-southeast-1.myhuaweicloud.com -starbucks.com.co -ss.pythonic.life -ss.levyhsu.com -ss.carryzhou.com -srcf.ucam.org -specxinzl.jigsy.com -spaces.hightail.com -southpark.cc.com -sony.com.co -56cun04.jigsy.com -shopee.com.co -share.ovi.com -ap-southeast-2.myhuaweicloud.com -sekai.colorfulpalette.org -secure.raxcdn.com -secure.logmein.com -search.aol.com -sci.hubg.org -sci-hub.mksa.top -scanservice1.qpdp1.net -scanservice1.qcpp1.net -scanservice1.qatp1.net -sa.hao123.com -sa-saopaulo.myqcloud.com -sa-brazil-1.myhuaweicloud.com -s1.nudezz.com -ru-northwest-2.myhuaweicloud.com -realforum.zkiz.com -rconversation.blogs.com -adult.toonsearch.net -r18.clickme.net -qualysguard.qpdp1.net -qualysguard.qcpp1.net -qualysguard.qatp1.net -qualysapi.qpdp1.net -qualysapi.qcpp1.net -qualysapi.qatp1.net -qpx.googleflights.net -qgadmin.qpdp1.net -qgadmin.qcpp1.net -qgadmin.qatp1.net -qagpublic.qpdp1.net -qagpublic.qcpp1.net -qagpublic.qatp1.net -psiphon.civisec.org -ap-southeast-3.myhuaweicloud.com -porngogo.supertop-100.com -pioneer-worker.forums-free.com -oversea.istarshine.com -oss-us-west-1.aliyuncs.com -oss-us-east-1.aliyuncs.com -oss-me-east-1.aliyuncs.com -oss-eu-west-1.aliyuncs.com -oss-eu-central-1.aliyuncs.com -oss-cn-hongkong.aliyuncs.com -oss-ap-southeast-7.aliyuncs.com -oss-ap-southeast-6.aliyuncs.com -youtube.com.co -oss-ap-southeast-5.aliyuncs.com -oss-ap-southeast-3.aliyuncs.com -oss-ap-southeast-2.aliyuncs.com -oss-ap-southeast-1.aliyuncs.com -oss-ap-south-1.aliyuncs.com -oss-ap-northeast-2.aliyuncs.com -oss-ap-northeast-1.aliyuncs.com -opml.radiotime.com -online.recoveryversion.org -one.one.one -old.nabble.com -old.honeynet.org -ny.stgloballink.com -nitter.pussthecat.org -night.livedoor.biz -nic.cz.cc -news.seehua.com -neotokyo.supertop-100.com -nemesis2.qx.net -nakedsecurity.sophos.com -na-toronto.myqcloud.com -na-siliconvalley.myqcloud.com -na-mexico-1.myhuaweicloud.com -na-ashburn.myqcloud.com -abitno.linpie.com -my.pcloud.com -mx.hao123.com -ac.jiruan.net -academic.eb.com -monitoring.qpdp1.net -monitoring.qcpp1.net -monitoring.qatp1.net -momami18.livedoor.blog -accounts.googlers.com -mo.nightlife141.com -mini.com.co -mini.co.me -mike.cz.cc -mdn.mozit.cloud -mdn.allizom.net -mastercard.com.co -makzhou.warehouse333.com -ma.hao123.com -m.slandr.net -m.plixi.com -legaltech.law.com -ld.hao123img.com -lab.skk.moe -la-south-2.myhuaweicloud.com -la-north-2.myhuaweicloud.com -l-0005.l-msedge.net -www.destinationurl.com -userapi.nytlog.com -xys.dxiong.com -raw.githack.com -adultartlinks.supertop-100.com -kb.monitorware.com -jp.hao123.com -jihadintel.meforum.org -japanfirst.asianfreeforum.com -ironbigfools.compython.net -ipfs.runfission.com -ipfs.fleek.co -ap-tokyo.myqcloud.com -ipfs.anonymize.com -intel.com.co -ae.hao123.com -ifan.cz.cc -af-south-1.myhuaweicloud.com -id.hao123.com -ice.audionow.com -i.lithium.com -htanime.epizy.com -home.sina.com -hoge.7jp.info -hk.jiepang.com -hk.hao123img.com -hk.gradconnection.com -hk.frienddy.com -api.linksalpha.com -hentairank.supertop-100.com -hentai-top100.supertop-100.com -hentai-space.supertop-100.com -help.linksalpha.com -hbomax-images.warnermediacdn.com -api.nebula-emby.com -hanzhen.xmulib.org -ai.binwang.me -h-top.supertop-100.com -gtm.oasisfeng.com -api.proxlet.com -apidocs.linksalpha.com -google.com.co -goagent.codeplex.com -go.nesnode.com -gmozomg.izihost.org -app.box.com -gelbooru.wjcodes.com -gateway.pinata.cloud -foxsports.com.co -fourface.nodesnoop.com -forum.palmislife.com -forum.mymaji.com -forum.my903.com -forum.idsam.com -forum.cyberctm.com -forum.baby-kingdom.com -fonts.googleadapis.com -fontfiles.googleadapis.com -firestonecomercial.com.co -firestone.com.co -firebase-settings.crashlytics.com -fiddle.jshell.net -feeds.fileforum.com -fast.wistia.com -fangong.forums-free.com -eu-west-0.myhuaweicloud.com -eu-moscow.myqcloud.com -eu-frankfurt.myqcloud.com -etools.ncol.com -estudio360.com.co -esg.t91y.com -erodouga.8sp.biz -erodou.tousatu.fun -enfabebe.com.co -en.hao123.com -en.favotter.net -app.evozi.com -app.smartmailcloud.com -ecsm.vs.com -dynupdate.no-ip.com -durex.com.co -download.qpdp1.net -download.qcpp1.net -download.qatp1.net -download.aircrack-ng.org -dlib.eastview.com -dl.box.net -konachan.wjcodes.com -distribution.qcpp1.net -tw.jiepang.com -disneyplus.bn5x.net -apple.com.co -diarrheafan.livedoor.blog -dhlestudio.com.co -developers.box.net -developer.allizom.org -zh.pokerstrategy.com -desire-xx.supertop-100.com -derekhsu.homeip.net -demo.opera-mini.net -data.flurry.com -daodu14.jigsy.com -dajusha.baywords.com -dailynews.sina.com -cyberghost.natado.com -zhao.1984.city -cossgp.myqcloud.com -coshk.myqcloud.com -cosger.myqcloud.com -cosca.myqcloud.com -contests.twilio.com -content.googleadapis.com -cnnews.chosun.com -cnappinstall.googleadapis.com -cn2.streetvoice.com -cn.voa.mobi -cn.streetvoice.com -cn.shafaqna.com -cn.sandscotaicentral.com -cn.ibtimes.com -cn.giganews.com -cn.fmnnow.com -cn.dayabook.com -clickserver.googleads.com -clickserve.cc-dt.com -cldr.unicode.org -cl.d0z.net -chinese.soifind.com -chinese.engadget.com -chinese.donga.com -china.ucanews.com -china-mmm.sa.com -china-mmm.jp.net -ch.shvoong.com -cgkate.jinvod.com -certificate.revocationcheck.com -apple.comscoreresearch.com -cdn.softlayer.net -cdn.seatguru.com -cdn.printfriendly.com -apps5.oingo.com -cdn-images.mailchimp.com -ar.hao123.com -browser.kagi.com -bridgestonecomercial.com.co -bridgestone.com.co -br.hao123.com -book.zi5.me -bolin.netfirms.com -bmw.com.co -blogspot.com.co -blogs.tampabay.com -blogs.libraryinformationtechnology.com -blogs.icerocket.com -blog.tiney.com -blog.taragana.com -blog.syx86.com -blog.soylent.com -blog.sogoo.org -blog.ranxiang.com -blog.pentalogic.net -blog.pathtosharepoint.com -blog.martinoei.com -blog.lester850.info -blog.kangye.org -blog.jackjia.com -blog.istef.info -blog.fuckgfw233.org -blog.foolsmountain.com -blog.fizzik.com -blog.expofutures.com -blog.descargasgay.com -blog.cryptographyengineering.com -blog.calibre-ebook.com -bbs.tuitui.info -bbs.sou-tong.org -bbs.skykiwi.com -bbs.sina.com -bbs.qmzdd.com -bbs.netbig.com -bbs.morbell.com -bbs.mikocon.com -bbs.junglobal.net -bbs.huasing.org -bbs.hasi.wang -bbs.hanminzu.org -bbs.ecstart.com -bbs.brockbbs.com -avail.googleflights.net -av.nightlife141.com -disney-portal.my.onetrust.com -up.gcp.googlers.com -cdn1.lp.saboom.com -hk.file.myqcloud.com -edge-skype-com.s-0001.s-msedge.net -cdn.assets.lfpcontent.com -sgp.file.myqcloud.com -greatfire.us7.list-manage.com -tv.jtbc.joins.com -steam.ru.qtlglb.com -www.zensur.freerk.com -ipfs.eth.aragon.network -steam.apac.qtlglb.com -ger.file.myqcloud.com -ca.file.myqcloud.com -steam.cdn.on.net -steam.eca.qtlglb.com -steam.naeu.qtlglb.com -hbo.com.c.footprint.net -store.apple.com.edgekey.net -edge.steam-dns.top.comcast.net -www.apple.com.edgekey.net -89.64.charter.constitutionalism.solutions -gsp4-cn.ls.apple.com.edgekey.net -regexp:(^|\.)18tv[1-5]\.com$ -regexp:(^|\.)69bag[0-1][1-9]?\.com$ -regexp:(^|\.)783([a-z][a-z]?)?\.tv$ -regexp:(^|\.)7mm0([0-1][0-9]?)?\.com$ -regexp:(^|\.)8dgo[1-57-9]\.com$ -regexp:(^|\.)91porn[0-9]{3}\.me$ -regexp:(^|\.)91p[0-9][0-9]?\.com$ -regexp:(^|\.)91sew1[1-6]\.buzz$ -regexp:(^|\.)989[a-z]?\.tv$ -regexp:(^|\.)99pp[1-9][0-9]\.com$ -regexp:(^|\.)aipa(111|222|333|444|555|666|777|888|999)\.life$ -regexp:(^|\.)aisejushi(2|3|5|6)\.com$ -regexp:(^|\.)avcc1[0-9]\.com$ -regexp:(^|\.)avstar0[1-9]\.(com|me)$ -regexp:(^|\.)banyinjia[0-9]?\.com$ -regexp:(^|\.)bilibili3(0[1-9]|1[0-2])\.xyz$ -regexp:(^|\.)byyum([3589]|2[235689]|3[34]|4[1-9]|5[1-79]|6[0134679])?\.com$ -regexp:(^|\.)cav1(0[2-9]|1[0-9])\.com$ -regexp:(^|\.)cgbb([1-9]|1[0-9]|20)\.com$ -regexp:(^|\.)cosaa[a-z]\.cyou$ -regexp:(^|\.)douyintt[0-9]\.me$ -regexp:(^|\.)dualstack\.apiproxy-.+\.amazonaws\.com$ -regexp:(^|\.)dualstack\.ichnaea-web-.+\.amazonaws\.com$ -regexp:(^|\.)fi11sm([0-9]+)?\.com$ -regexp:(^|\.)fiftymvapi\..+$ -regexp:(^|\.)forduck[0-1][0-9]\.com$ -regexp:(^|\.)gaogediao\.(com|me|net|org)$ -regexp:(^|\.)guifw3[1-3]\.cc$ -regexp:(^|\.)h5ccav[1-5]\.com$ -regexp:(^|\.)hhmen[1-3]\.xyz$ -regexp:(^|\.)hkfg[1-7]\.xyz$ -regexp:(^|\.)jav777\.(cc|tv|work)$ -regexp:(^|\.)jbk0([0-1][0-9]?)?\.com$ -regexp:(^|\.)jdyy[1-9]?\.me$ -regexp:(^|\.)kimoav([1-9][0-9]?)?\.com$ -regexp:(^|\.)ksyp0[1-9]\.com$ -regexp:(^|\.)lianren[1-7]\.cc$ -regexp:(^|\.)loibus(100|101|202|505|606)\.top$ -regexp:(^|\.)loibus\.(cc|com|link)$ -regexp:(^|\.)maa18[0-2][0-9]\.com$ -regexp:(^|\.)mdyy[0-1][0-9]\.com$ -regexp:(^|\.)mdyy[0-9][0-9]\.cc$ -regexp:(^|\.)mimi[0-9]{3}\.com$ -regexp:(^|\.)mimi\.(cfd|lol|onl|sbs|so|vc)$ -regexp:(^|\.)mitao[1-3]\.tv$ -regexp:(^|\.)mmtv[1-5]\.life$ -regexp:(^|\.)mmwz\.(fun|in|la|me|one|pro|pw|run|tv|ws)$ -regexp:(^|\.)putaozy([1-9][0-9]?)?\.com$ -regexp:(^|\.)qqsp0[1-3]\.com$ -regexp:(^|\.)rbp[1-9][0-9]\.com$ -regexp:(^|\.)sao[1-6]0000\.com$ -regexp:(^|\.)sg11[3-9]\.me$ -regexp:(^|\.)spankwire[1-9]\.com$ -regexp:(^|\.)syjc1[1-6]\.xyz$ -regexp:(^|\.)tianbiav([1-9]|1[0-6])?\.com$ -regexp:(^|\.)tqav[1-9][0-9]\.com$ -regexp:(^|\.)ttghg[1-9][0-9]\.xyz$ -regexp:(^|\.)tttv([1-9][0-9]?|100)\.com$ -regexp:(^|\.)tt[1-2][0-9]\.tv$ -regexp:(^|\.)twseb([1-9][0-9]?)?\.com$ -regexp:(^|\.)uu[a-z][1-9][0-9]?\.com$ -regexp:(^|\.)whtdh0[1-3]\.cc$ -regexp:(^|\.)wmm33[0-5]\.com$ -regexp:(^|\.)wyfuli[1-9]\.net$ -regexp:(^|\.)xnkl[3-8]\.cn$ -regexp:(^|\.)yiren[1-9][0-9]\.com$ -regexp:(^|\.)youyuapi\..+$ -regexp:(^|\.)yrrj[1-9]?\.buzz$ -regexp:(^|\.)zh9[0-7]\.net$ -regexp:(^|\.)zztt[1-6][0-9]\.com$ -regexp:(^|\.)zzz[1-9][0-9]\.top$ -regexp:(^|\.)[1-5]gaoap\.com$ -regexp:(^|\.)[1-9]+aipai\.(com|net)$ -regexp:(^|\.)[1-9]+zipai\.(com|net)$ -regexp:(^|\.)[1-9]00caocao\.com$ -regexp:(^|\.)[3-9]0000sao\.com$ -regexp:(^|\.)[a-z]?fulibl\.(cc|com|org|net|xyz)$ -regexp:(^|\.)[a-z][1-9][0-9][a-z]\.com$ -regexp:.+\.ap-bangkok\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-hongkong\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-jakarta\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-mumbai\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-seoul\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-singapore\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.ap-tokyo\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.biz$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.com$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.net$ -regexp:.+\.awsdns-cn-[0-9][0-9]\.top$ -regexp:.+\.awsdns-cn-[0-9][a-e0-9]\.cn$ -regexp:.+\.awsdns-[0-9][0-9]\.com$ -regexp:.+\.awsdns-[0-9][0-9]\.co\.uk$ -regexp:.+\.awsdns-[0-9][0-9]\.net$ -regexp:.+\.awsdns-[0-9][0-9]\.org$ -regexp:.+\.dkr\.ecr\.[^\.]+\.amazonaws\.com$ -regexp:.+\.eu-frankfurt\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.eu-moscow\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.na-ashburn\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.na-siliconvalley\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.na-toronto\.tencentcos\.(cn|com(\.cn)?)$ -regexp:.+\.sa-saopaulo\.tencentcos\.(cn|com(\.cn)?)$ -regexp:github-production-release-asset-[0-9a-zA-Z]{6}\.s3\.amazonaws\.com -regexp:^epicgames-download\d\.akamaized\.net$ -regexp:^ewcdn[0-9]{2}\.nowe\.com$ -regexp:^hses[1-7]?.akamaized.net$ -regexp:^[0-9]+vod-adaptive\.akamaized\.net$ diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml deleted file mode 100644 index 5d0c8a0444a..00000000000 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config-chinadns.yaml +++ /dev/null @@ -1,154 +0,0 @@ -# Author: sbwml -# Origin from repository: https://github.com/sbwml/luci-app-mosdns -# Reference: https://github.com/sbwml/luci-app-mosdns/blob/v5/luci-app-mosdns/root/usr/share/mosdns/default.yaml -# Modify by: XiaoliChan -log: - level: info -plugins: - # Num0: Cache - - tag: lazy_cache - type: cache - args: - size: 20000 - lazy_cache_ttl: 86400 - - # Num1: CN domain - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/direct-list.txt - # cat direct-list.txt | grep -v "regexp:\|full:" | sort -u | uniq -u > china-domain-2.lst - - tag: geosite_cn - type: domain_set - args: - files: - - "/etc/ssrplus/mosdns-chinadns/geosite_cn.txt" - - "/etc/ssrplus/white.list" - - # Num2: CN IP - # https://raw.githubusercontent.com/Hackl0us/GeoIP2-CN/release/CN-ip-cidr.txt - - tag: geoip_cn - type: ip_set - args: - files: - - "/etc/ssrplus/china_ssr.txt" - - # Num3: Domain need proxy (gfwlist) - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/proxy-list.txt - # https://raw.githubusercontent.com/Loyalsoldier/v2ray-rules-dat/release/gfw.txt - - tag: geosite_not_cn - type: domain_set - args: - files: - - "/etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt" - - "/etc/ssrplus/black.list" - - # Num4: Forward to google - - tag: forward_remote - type: forward - args: - concurrent: 2 - upstreams: - - # Num5: Forward to local - # ifstatus wan | jsonfilter -e '@["dns-server"]' - - tag: forward_local - type: forward - args: - concurrent: 2 - upstreams: - - # Num6 - - tag: local_sequence - type: sequence - args: - - exec: $forward_local - - # Num7 - - tag: remote_sequence_with_IPv6 - type: sequence - args: - - exec: prefer_ipv4 - - exec: $forward_remote - - # Num8 - - tag: remote_sequence_disable_IPv6 - type: sequence - args: - - exec: prefer_ipv4 - - exec: $forward_remote - - matches: - - qtype 28 65 - exec: reject 0 - - # Num9 - - tag: query_is_local_domain - type: sequence - args: - - matches: qname $geosite_cn - exec: $local_sequence - - # Num10 - - tag: query_is_proxy_domain - type: sequence - args: - - matches: qname $geosite_not_cn - - exec: ipset blacklist,inet,24 - - # fallback 用本地服务器 sequence - # 返回非国内 ip 则 drop_resp - # Num11 - - tag: query_is_local_ip - type: sequence - args: - - exec: $local_sequence - - matches: "!resp_ip $geoip_cn" - exec: drop_resp - - # Num12 - # fallback 用远程服务器 sequence - - tag: query_is_remote_ip - type: sequence - args: - - exec: $remote_sequence_disable_IPv6 - - exec: ipset blacklist,inet,24 - - # fallback 用远程服务器 sequence - # query_is_local_ip to query_is_remote_ip - # Num13 - - tag: fallback - type: fallback - args: - # DNS Leak solution - primary: query_is_local_ip - secondary: query_is_remote_ip - threshold: 600 - always_standby: true - - # 有响应终止返回 - # Num14 - - tag: has_resp_sequence - type: sequence - args: - - matches: has_resp - exec: accept - - # Num15 - - tag: main_sequence - type: sequence - args: - - exec: $lazy_cache - - exec: $query_is_local_domain - - exec: jump has_resp_sequence - - exec: $query_is_proxy_domain - - exec: jump has_resp_sequence - - exec: $fallback - - # Num16 - - tag: udp_server - type: udp_server - args: - entry: main_sequence - - # Num17 - - tag: tcp_server - type: tcp_server - args: - entry: main_sequence diff --git a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml index 00facaa76c4..a0b9f5c5617 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml +++ b/luci-app-ssr-plus/root/etc/ssrplus/mosdns-config.yaml @@ -33,9 +33,11 @@ plugins: type: udp_server args: entry: DNS_MODE + listen: 0.0.0.0:DNS_PORT - tag: tcp_server type: tcp_server args: entry: DNS_MODE + listen: 0.0.0.0:DNS_PORT diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/luci-app-ssr-plus/root/usr/bin/ssr-monitor index 30fef133e62..f637d5090a9 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-monitor +++ b/luci-app-ssr-plus/root/usr/bin/ssr-monitor @@ -111,8 +111,8 @@ while [ "1" == "1" ]; do #死循环 logger -t "$NAME" "mosdns tunnel error.restart!" echolog "mosdns tunnel error.restart!" dnsserver=$(uci_get_by_type global tunnel_forward 8.8.4.4:53) - kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | grep $mosdns_config_file | awk '{print $1}') >/dev/null 2>&1 - ln_start_bin $(first_type mosdns) mosdns start -c $mosdns_config_file + kill -9 $(busybox ps -w | grep $TMP_BIN_PATH/mosdns | grep -v grep | awk '{print $1}') >/dev/null 2>&1 + ln_start_bin $(first_type mosdns) mosdns start -c /etc/mosdns/config.yaml fi fi #chinadns-ng diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh b/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh deleted file mode 100755 index 34fcc2baecf..00000000000 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/geodata_update.sh +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -rm -rf /tmp/geo* - -#wget --no-check-certificate -q -O /tmp/geoip.dat https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geoip.dat -wget --no-check-certificate -q -O /tmp/geosite.dat https://cdn.jsdelivr.net/gh/Loyalsoldier/v2ray-rules-dat@release/geosite.dat - -remove_full_string() { - temp_file="$(echo "$1" | awk -F '.' '{print $1"-temp."$2}')" - temp_file2="$(echo "$1" | awk -F '.' '{print $1"-temp2."$2}')" - cat $1 | grep 'full:' | awk -F 'full:' '{print $2}' > $temp_file - cat $1 | grep -v 'full:' > $temp_file2 - cat $temp_file $temp_file2 | sort -u | uniq -u > $1 - rm -rf $temp_file $temp_file2 -} - -clean_up() { - temp_file="$(echo "$1" | awk -F '.' '{print $1"-temp."$2}')" - diff $1 $2 | grep '< ' | awk -F '< ' '{print $2}' > $temp_file - mv $temp_file $1 -} - -merge_file() { - temp_file="/tmp/merged" - cat $1 $2 | sort -u | uniq -u > $temp_file - mv $temp_file $2 -} - -if [ -f "/tmp/geosite.dat" ]; then - #v2dat unpack geosite -o /tmp/ -f cn -f apple-cn -f google-cn -f geolocation-!cn /tmp/geosite.dat - v2dat unpack geosite -o /tmp/ -f cn -f google-cn -f geolocation-!cn /tmp/geosite.dat - remove_full_string /tmp/geosite_cn.txt - #remove_full_string /tmp/geosite_apple-cn.txt - remove_full_string /tmp/geosite_google-cn.txt - remove_full_string /tmp/geosite_geolocation-!cn.txt - clean_up /tmp/geosite_cn.txt /tmp/geosite_google-cn.txt - merge_file /tmp/geosite_google-cn.txt /tmp/geosite_geolocation-!cn.txt - mv /tmp/geosite_cn.txt /etc/ssrplus/mosdns-chinadns/geosite_cn.txt - mv /tmp/geosite_geolocation-!cn.txt /etc/ssrplus/mosdns-chinadns/geosite_geolocation_not_cn.txt - rm -rf /tmp/geosite* - echo 111 -else - echo 000 -fi diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 94784b1c6c3..e49825efa09 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -184,16 +184,6 @@ if args then update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args) os.exit(0) end - if args == "geo_data" then - string = luci.sys.exec("/usr/share/shadowsocksr/geodata_update.sh") - if string.find(string, "111") then - icount = luci.sys.exec("cat /etc/ssrplus/mosdns-chinadns/geosite* | wc -l") - log(0, tonumber(icount)) - else - log(-1) - end - os.exit(0) - end else log("正在更新【GFW列表】数据库") update(uci:get_first("shadowsocksr", "global", "gfwlist_url"), "/etc/ssrplus/gfw_list.conf", "gfw_data", TMP_DNSMASQ_PATH .. "/gfw_list.conf") diff --git a/v2dat/Makefile b/v2dat/Makefile deleted file mode 100644 index 29f5d229ac3..00000000000 --- a/v2dat/Makefile +++ /dev/null @@ -1,46 +0,0 @@ -# -# Copyright (C) 2015-2016 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v3. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=v2dat -PKG_SOURCE_DATE:=2022-12-15 -PKG_SOURCE_VERSION:=47b8ee51fb528e11e1a83453b7e767a18d20d1f7 -PKG_RELEASE:=1 - -PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_DATE).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/urlesistiana/v2dat/tar.gz/$(PKG_SOURCE_VERSION)? -PKG_HASH:=dca45a31006aca3dba5f543f6990ca755ffb2bde8e533cc2bbe6bac9ec12f157 -PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_VERSION) - -PKG_LICENSE:=GPL-3.0 -PKG_LICENSE_FILE:=LICENSE -PKG_MAINTAINER:=sbwml - -PKG_BUILD_DEPENDS:=golang/host -PKG_BUILD_PARALLEL:=1 - -GO_PKG:=github.com/urlesistiana/v2dat - -include $(INCLUDE_DIR)/package.mk -include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk - -define Package/v2dat - SECTION:=utils - CATEGORY:=Utilities - TITLE:=V2ray geo/ip data unpack tools - URL:=https://github.com/urlesistiana/v2dat - DEPENDS:=$(GO_ARCH_DEPENDS) -endef - -GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0 - -define Package/v2dat/install - $(call GoPackage/Package/Install/Bin,$(1)) -endef - -$(eval $(call GoBinPackage,v2dat)) -$(eval $(call BuildPackage,v2dat)) diff --git a/v2dat/patches/100-format-logtime.patch b/v2dat/patches/100-format-logtime.patch deleted file mode 100644 index ba18ffc9528..00000000000 --- a/v2dat/patches/100-format-logtime.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 7c6a252ab3f7d9aeb743f9fa8d0cc8c7402f984d Mon Sep 17 00:00:00 2001 -From: sbwml -Date: Wed, 20 Sep 2023 20:52:27 +0800 -Subject: [PATCH] format logtime - ---- - mlog/logger.go | 15 +++++++++++++-- - 1 file changed, 13 insertions(+), 2 deletions(-) - -diff --git a/mlog/logger.go b/mlog/logger.go -index c8b08a9..b44c88d 100644 ---- a/mlog/logger.go -+++ b/mlog/logger.go -@@ -1,17 +1,28 @@ - package mlog - --import "go.uber.org/zap" -+import ( -+ "time" -+ -+ "go.uber.org/zap" -+ "go.uber.org/zap/zapcore" -+) - - var logger = mustInitLogger() - - func mustInitLogger() *zap.Logger { -- l, err := zap.NewDevelopment(zap.WithCaller(false)) -+ config := zap.NewDevelopmentConfig() -+ config.EncoderConfig.EncodeTime = customTimeEncoder -+ l, err := config.Build(zap.WithCaller(false)) - if err != nil { - panic("failed to init mlog:" + err.Error()) - } - return l - } - -+func customTimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) { -+ enc.AppendString(t.Format("2006-01-02 15:04:05")) -+} -+ - func L() *zap.Logger { - return logger - } --- -2.34.8 - From 28504024db649b7542347771704abc33c3b1ddc8 Mon Sep 17 00:00:00 2001 From: qwerttvv <56712217+qwerttvv@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:55:31 +0800 Subject: [PATCH 452/972] shadowsocks-rust: update to 1.17.1 (#1343) --- shadowsocks-rust/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 19c53346c4f..cedb8b0948c 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.17.0 +PKG_VERSION:=1.17.1 PKG_RELEASE:=1 PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) @@ -16,29 +16,29 @@ PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/downloa ifeq ($(ARCH),aarch64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=a96cd12ec3d7216e028418790c1ae9d0f0ef3220317a136c7397526644f8f98f + PKG_HASH:=ac172822b579ac0fe59e4cc519e9f4ffee32ed069b10ffdc7421fb1bfdb8c03e else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=3f993ee38ad5b059ea92f993aee7606536dbdc274f816225784f0dc50e4d3ef3 + PKG_HASH:=2468a4a3077326661b696e2603850db06667c60c107842ce054e3f70d772952d else PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=2e387ea0d07c4da0a653dd4bd3ff016666d0d51d62a3e8df49a3c82a7db6a724 + PKG_HASH:=155e62782afcdf46ea88319253853c573e9542a7a8e91769e4a6dedbef1f1c35 endif else ifeq ($(ARCH),i386) PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=af194ca7f9b50a8b76673fc929bf9cbabcf1dc345bbada8ad3e7be8d4302ce2e + PKG_HASH:=d71024f5f79ebe209173124ed6c733c546214f091f2552eb13217ea65aa54940 else ifeq ($(ARCH),mips) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e4cca3b239dc7858b8a90dafacbd2bdca5201ccdaa886635ac1148c13ef4cd24 + PKG_HASH:=1a8ab79ef3904290c564933b3cff60f0b80211c769b25103adb910e1adb0a4d8 else ifeq ($(ARCH),mipsel) PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=05ea77c8b05b96fbf6f1a7b19ec397bec07fb527bbccee801b41eb3a0b9406c0 + PKG_HASH:=e3909ba7e07c89adf7818f8c4c07a980650e9a0fa05f522d41e9fcba636f2cb8 else ifeq ($(ARCH),x86_64) PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=9ed72f3a257923f1b141aacba7ab96b2aed7aac193a935512d4418f6132348b4 + PKG_HASH:=8ee466b7919480f33db45c3995d4b0baa0c310470f88f7d65b7bb4a89e256624 # Set the default value to make OpenWrt Package Checker happy else PKG_SOURCE:=dummy From b9bc05d488deadd4e425d195600c63a92abaf643 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:55:48 +0800 Subject: [PATCH 453/972] v2ray-plugin: update to 5.12.0 (#1344) --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 1417798ee59..2f39d9ffdad 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.11.0 +PKG_VERSION:=5.12.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4080dc0597f1c4f4099bdcd5aafd6bce463542eb9b691153c756cab86cd0decb +PKG_HASH:=b03de5889dd918c2db756f96f35378c95fc97438d1f178ae95078e4ea1ad6daa PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From c10ae0acd01255d2c2d6b6f8d2d7569b257b0ffc Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:56:06 +0800 Subject: [PATCH 454/972] v2ray-core: update to 5.12.1 (#1347) * v2ray-core: update to 5.12.0 * v2ray-core: update to 5.12.1 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 2727b4890b7..ec74727d68d 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.11.0 +PKG_VERSION:=5.12.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c25490d6b0600cd316409f112d39e10f5d7c66bb89f18dafcd3a95d26f889bc2 +PKG_HASH:=fa1845d42b46c6b5046a8f95d49cc7a9175e40efc5c13b95174b4c556567aca1 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From cd8749b10778e0db127b58ba6b484a57318503ce Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:56:28 +0800 Subject: [PATCH 455/972] xray-plugin: update to 1.8.6 (#1345) * xray-plugin: update to 1.8.5 * xray-plugin: update to 1.8.6 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index ec1ecb9fbdb..162d0e7dadf 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.4 +PKG_VERSION:=1.8.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7154310f1108bb8538327f35696cbce1ca22feb1e7d26922a8a359ccab68d952 +PKG_HASH:=9df7e65fe1ae6a001240d304db3aeaa3d4b1e3a2f4db00aa498bbe1e2bb18729 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From b247dcaa31d8031df1423e02aaf00d62cb6ad1fb Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 27 Nov 2023 22:56:49 +0800 Subject: [PATCH 456/972] xray-core: update to 1.8.6 (#1346) --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index fef5441bd8f..262d77f4e3c 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.4 +PKG_VERSION:=1.8.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=89f73107abba9bd438111edfe921603ddb3c2b631b2716fbdc6be78552f0d322 +PKG_HASH:=d828296c9f29f9e59a61ab73d44f072ab2a30fe979679e39aea43b33ddb7d6bf PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 70e87cd2f96547a8c777a60e362ea135bc5d2f78 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Sat, 2 Dec 2023 02:49:13 +0800 Subject: [PATCH 457/972] CI: dont generate index since no signing key Signed-off-by: Tianling Shen --- .github/workflows/multi-arch-test-build.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 7365c083666..8b5dd56fa3f 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -73,7 +73,6 @@ jobs: env: ARCH: ${{ matrix.arch }} FEEDNAME: packages_ci - INDEX: 1 V: s - name: Move created packages to project dir From 63de76b1cd3f8d537a5b2e0a73985867002b52bb Mon Sep 17 00:00:00 2001 From: Yonsm Date: Sat, 2 Dec 2023 23:50:31 +0800 Subject: [PATCH 458/972] Add libopenssl-legacy to fix chipher failure on openwrt 23 with openssl 3.0 --- shadowsocksr-libev/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 304c4f18a80..bc83334842a 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -34,7 +34,7 @@ define Package/shadowsocksr-libev/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocksr-libev ssr-$(1) URL:=https://github.com/shadowsocksrr/shadowsocksr-libev - DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre +libudns +zlib + DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre +libudns +zlib +libopenssl-legacy endef define Package/shadowsocksr-libev-ssr-$(1)/install From 42d85cce5f1287172ef4ca0375ecfce4b569f162 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 13 Dec 2023 03:25:43 +0800 Subject: [PATCH 459/972] v2ray-plugin: update to 5.13.0 (#1354) Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 2f39d9ffdad..e1107f3a4e1 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.12.0 +PKG_VERSION:=5.13.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b03de5889dd918c2db756f96f35378c95fc97438d1f178ae95078e4ea1ad6daa +PKG_HASH:=23b3a66516cb3b722839754913a4f0c8ac4bbb01631a4ad9251252fd9b401100 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 3c707988a27b0e44acd5059b790302a7902e8093 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 13 Dec 2023 03:25:56 +0800 Subject: [PATCH 460/972] v2ray-core: update to 5.13.0 (#1353) Signed-off-by: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index ec74727d68d..fe6198cc59e 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.12.1 +PKG_VERSION:=5.13.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=fa1845d42b46c6b5046a8f95d49cc7a9175e40efc5c13b95174b4c556567aca1 +PKG_HASH:=6b2eb6286c99da010db5c5f629f950e753fc4addeed189d3d898c1ef56d5a785 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 4840ddc1ab38952ba2ba2d9b2b29c0a935f25973 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 1 Jan 2024 03:03:57 +0800 Subject: [PATCH 461/972] luci-app-ssr-plus: Repair `Hysteria2` version detection (#1358) --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 2415b62469f..5103c9f868c 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -433,7 +433,7 @@ start_udp() { hysteria) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print $1,$3}') Started!" + echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print $1,$2}') Started!" ;; tuic) # FIXME: ipt2socks cannot handle udp reply from tuic @@ -564,7 +564,7 @@ start_shunt() { fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file shunt_dns_command - echolog "shunt:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" + echolog "shunt:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" ;; tuic) local chain_shunt_port="30${tmp_shunt_port}" @@ -663,7 +663,7 @@ start_local() { if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file - echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" + echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" fi ;; tuic) @@ -758,7 +758,7 @@ Start_Run() { hysteria) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file - echolog "Main node:$($(first_type hysteria) version | awk '{print $1,$3}') Started!" + echolog "Main node:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" ;; tuic) local PARAM From f5c3e82712c1e1f29a4faaf07a2b9f39ee461400 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 1 Jan 2024 03:08:06 +0800 Subject: [PATCH 462/972] luci-app-ssr-plus: Fix `Hysteria2` failure to start problem (#1360) --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 9e84683e28d..36e7b84adf1 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -290,7 +290,7 @@ local hysteria = { transport = { type = server.transport_protocol, udp = { - hopInterval = tonumber(server.hopinterval) and tonumber(server.hopinterval) .. "s" or nil + hopInterval = tonumber(server.hopinterval) and tonumber(server.hopinterval) .. "s" or "30s" } }, --[[ From f0a3c45c2b094ceba99080da3d2cbdd28faa35c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 2 Jan 2024 00:30:35 +0800 Subject: [PATCH 463/972] luci-app-ssr-plus: add Xray-core `xudpConcurrency` `xudpProxyUDP443` `tcpcongestion` `tcpMptcp` `tcpNoDelay` (#1362) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Xray Mux parameter (client-config.lua) 新增 xudpConcurrency xudpProxyUDP443 修订 concurrency 和 xudpConcurrency 值范围 * Add Xray Mux parameter (gen_config.lua) 补充 destOverride 中缺少 "quic" 新增 sockopt 有关的 tcpcongestion tcpMptcp tcpNoDelay 和 Mux 的相关修改 * Add Xray Mux parameter (ssr-plus.po) 新增中文翻译 --- .../model/cbi/shadowsocksr/client-config.lua | 31 ++++++++++++++++--- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 10 ++++-- .../usr/share/shadowsocksr/gen_config.lua | 15 ++++++--- 3 files changed, 46 insertions(+), 10 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d8f5ca14fa9..caf24284141 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -920,12 +920,35 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) -o = s:option(Value, "concurrency", translate("Concurrency")) -o.datatype = "uinteger" +o = s:option(Value, "concurrency", translate("concurrency")) +o.datatype = "integer" o.rmempty = true -o.default = "4" +o.default = "-1" o:depends("mux", "1") -o:depends("type", "naiveproxy") + +o = s:option(Value, "xudpConcurrency", translate("xudpConcurrency")) +o.datatype = "integer" +o.rmempty = true +o.default = "16" +o:depends("mux", "1") + +o = s:option(Value, "xudpProxyUDP443", translate("xudpProxyUDP443")) +o.rmempty = true +o.default = "reject" +o:value("reject", translate("reject")) +o:value("allow", translate("allow")) +o:value("skip", translate("skip")) +o:depends("mux", "1") + +-- [[ MPTCP ]]-- +o = s:option(Flag, "mptcp", translate("MPTCP")) +o.rmempty = false +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) -- [[ Cert ]]-- o = s:option(Flag, "certificate", translate("Self-signed Certificate")) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index f498ed9bb21..2bd12182346 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -88,8 +88,14 @@ msgstr "TLS 主机名" msgid "allowInsecure" msgstr "允许不安全连接" -msgid "Concurrency" -msgstr "最大并发连接数" +msgid "concurrency" +msgstr "TCP 最大并发连接数" + +msgid "xudpConcurrency" +msgstr "UDP 最大并发连接数" + +msgid "xudpProxyUDP443" +msgstr "对被代理的 UDP/443 流量处理方式" msgid "If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates." msgstr "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 36e7b84adf1..a4fdd4cb506 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -125,7 +125,7 @@ local Xray = { port = tonumber(local_port), protocol = "dokodemo-door", settings = {network = proto, followRedirect = true}, - sniffing = {enabled = true, destOverride = {"http", "tls"}} + sniffing = {enabled = true, destOverride = {"http", "tls", "quic"}} } or nil, -- 开启 socks 代理 inboundDetour = (proto:find("tcp") and socks_port ~= "0") and { @@ -156,7 +156,6 @@ local Xray = { } or nil } or nil, realitySettings = (server.reality == '1') and { - show = false, publicKey = server.reality_publickey, shortId = server.reality_shortid, spiderX = server.reality_spiderx, @@ -175,6 +174,7 @@ local Xray = { } } or nil, kcpSettings = (server.transport == "kcp") and { + -- kcp mtu = tonumber(server.mtu), tti = tonumber(server.tti), uplinkCapacity = tonumber(server.uplink_capacity), @@ -216,12 +216,19 @@ local Xray = { health_check_timeout = tonumber(server.health_check_timeout) or nil, permit_without_stream = (server.permit_without_stream == "1") and true or nil, initial_windows_size = tonumber(server.initial_windows_size) or nil + } or nil, + sockopt = (server.mptcp == "1") and { + tcpcongestion = "bbr", + tcpMptcp = true, + tcpNoDelay = true } or nil }, - mux = (server.mux == "1" and server.transport ~= "grpc") and { + mux = (server.mux == "1") and { -- mux enabled = true, - concurrency = tonumber(server.concurrency) + concurrency = tonumber(server.concurrency), + xudpConcurrency = tonumber(server.xudpConcurrency), + xudpProxyUDP443 = server.xudpProxyUDP443 } or nil } or nil } From e2c63e12bcf042b6f7e94af7c1e45a58be98f731 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 3 Jan 2024 01:01:40 +0800 Subject: [PATCH 464/972] luci-app-ssr-plus: Optimal `hysteria2` allocation (#1363) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、取消端口跳跃时点击“保存和应用”无效,在右上角必须再次保存和应用,此修改修复此问题; 2、启用端口跳跃时,自动隐藏了节点设置的端口,导致服务器列表为乱码字符,此修改实现仍然显示节点端口。 3、此修改仍然显示节点端口并启用端口跳跃时,配置能改为端口跳跃设置的端口范围,如取消端口跳跃,配置改为节点端口; 4、增加配置使用 `apln` --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index caf24284141..e06e4f92ebf 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -218,7 +218,7 @@ o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends({type = "hysteria",port_hopping = false}) +o:depends("type", "hysteria") o:depends("type", "tuic") o:depends("type", "shadowtls") o:depends("type", "socks5") @@ -341,7 +341,7 @@ o.default = "30" o = s:option(Value, "port_range", translate("Port Range")) o:depends({type = "hysteria", port_hopping = true}) -o.rmempty = false +o.rmempty = true o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) o:depends("type", "hysteria") diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index a4fdd4cb506..5d7f5fbfb54 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -285,7 +285,7 @@ local ss = { reuse_port = true } local hysteria = { - server = server.server_port and (server.server .. ":" .. server.server_port) or (server.server .. ":" .. server.port_range), + server = (server.port_range and (server.server .. ":" .. server.port_range)) or (server.server_port and (server.server .. ":" .. server.server_port)), bandwidth = { up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil @@ -327,6 +327,7 @@ local hysteria = { auth = server.hy2_auth, tls = (server.tls_host) and { sni = server.tls_host, + alpn = server.tls_alpn or nil, insecure = (server.insecure == "1") and true or false, pinSHA256 = (server.insecure == "1") and server.pinsha256 or nil } or { From 318391ca152327977f5d56d3c3997d0d1002d3b7 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 3 Jan 2024 01:02:23 +0800 Subject: [PATCH 465/972] luci-app-ssr-plus: Only in log display `hysteria2` version number (#1364) --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 5103c9f868c..4fadbf079c2 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -433,7 +433,7 @@ start_udp() { hysteria) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print $1,$2}') Started!" + echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" ;; tuic) # FIXME: ipt2socks cannot handle udp reply from tuic @@ -564,7 +564,7 @@ start_shunt() { fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file shunt_dns_command - echolog "shunt:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" + echolog "shunt:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" ;; tuic) local chain_shunt_port="30${tmp_shunt_port}" @@ -663,7 +663,7 @@ start_local() { if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file - echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" + echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" fi ;; tuic) @@ -758,7 +758,7 @@ Start_Run() { hysteria) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file - echolog "Main node:$($(first_type hysteria) version | awk '{print $1,$2}') Started!" + echolog "Main node:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" ;; tuic) local PARAM From b56fff0d4247fd9e4de19540445b2f54d3474555 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 3 Jan 2024 01:04:14 +0800 Subject: [PATCH 466/972] hysteria: update to 2.2.3 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index fb0262ca56e..aaeef43e021 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.2.0 +PKG_VERSION:=2.2.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=d3e6809ac2b8e1c58e1c95cdb96bd44d99b17c7824bdd931d4d51c9e3818d402 +PKG_HASH:=123bc416b21bc7288a24504915d81b87651f4b1e1b93805a69864e9adccf1066 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 69abbd0ea55b161f564a9a02a5de8f17f63ba377 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 4 Jan 2024 11:20:48 +0800 Subject: [PATCH 467/972] Revert-luci-app-ssr-plus-drop-vmess-node-with-alterID --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 7 +++++++ luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 1 + .../root/usr/share/shadowsocksr/gen_config.lua | 1 + .../root/usr/share/shadowsocksr/subscribe.lua | 5 +---- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index e06e4f92ebf..de5abf86aca 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -569,6 +569,13 @@ o.datatype = "uinteger" o.default = 1500 o.rmempty = true +-- AlterId +o = s:option(Value, "alter_id", translate("AlterId")) +o.datatype = "port" +o.default = 16 +o.rmempty = true +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) + -- VmessId o = s:option(Value, "vmess_id", translate("Vmess/VLESS ID (UUID)")) o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index f51d21d4586..5eecbee6a51 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -252,6 +252,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = ssm.ps; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = ssm.add; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 5d7f5fbfb54..8a89a87a12a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -23,6 +23,7 @@ function vmess_vless() users = { { id = server.vmess_id, + alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, flow = ((server.tls == '1') or (server.reality == '1')) and server.tls_flow or nil diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 1de63b259c6..219f06acee1 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -173,6 +173,7 @@ local function processData(szType, content) result.server = info.add result.server_port = info.port result.transport = info.net + result.alter_id = info.aid result.vmess_id = info.id result.alias = info.ps -- result.mux = 1 @@ -228,10 +229,6 @@ local function processData(szType, content) else result.tls = "0" end - -- https://www.v2fly.org/config/protocols/vmess.html#vmess-md5-认证信息-淘汰机制 - if info.aid and (tonumber(info.aid) > 0) then - result.server = nil - end elseif szType == "ss" then local idx_sp = 0 local alias = "" From 66fa0c54cab25d4ef9990d0d74f889ce1981f3fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sat, 6 Jan 2024 23:19:30 +0800 Subject: [PATCH 468/972] luci-app-ssr-plus: add Xray `sniffing`(enable/disable) `domainsExcluded` `routeOnly` (#1370) --- .../model/cbi/shadowsocksr/advanced.lua | 5 ++ .../model/cbi/shadowsocksr/client-config.lua | 46 +++++++++++++++++-- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 15 ++++++ .../usr/share/shadowsocksr/gen_config.lua | 43 ++++++++++++++--- 4 files changed, 100 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index ea08f58bda5..0f8cd034bcf 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -1,5 +1,8 @@ local uci = luci.model.uci.cursor() local server_table = {} +local function is_finded(e) + return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false +end uci:foreach("shadowsocksr", "servers", function(s) if s.alias then @@ -69,7 +72,9 @@ o:depends("netflix_enable", "1") o = s:option(ListValue, "shunt_dns_mode", translate("DNS Query Mode For Shunt Mode")) o:value("1", translate("Use DNS2SOCKS query and cache")) +if is_finded("mosdns") then o:value("2", translate("Use MOSDNS query")) +end o:depends("netflix_enable", "1") o.default = 1 diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index de5abf86aca..635c20a8573 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -920,6 +920,7 @@ o.rmempty = true -- [[ Mux ]]-- o = s:option(Flag, "mux", translate("Mux")) o.rmempty = false +o.default = false o:depends({type = "v2ray", v2ray_protocol = "vless"}) o:depends({type = "v2ray", v2ray_protocol = "vmess"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) @@ -931,13 +932,13 @@ o = s:option(Value, "concurrency", translate("concurrency")) o.datatype = "integer" o.rmempty = true o.default = "-1" -o:depends("mux", "1") +o:depends("mux", true) o = s:option(Value, "xudpConcurrency", translate("xudpConcurrency")) o.datatype = "integer" o.rmempty = true o.default = "16" -o:depends("mux", "1") +o:depends("mux", true) o = s:option(Value, "xudpProxyUDP443", translate("xudpProxyUDP443")) o.rmempty = true @@ -945,11 +946,38 @@ o.default = "reject" o:value("reject", translate("reject")) o:value("allow", translate("allow")) o:value("skip", translate("skip")) -o:depends("mux", "1") +o:depends("mux", true) -- [[ MPTCP ]]-- o = s:option(Flag, "mptcp", translate("MPTCP")) o.rmempty = false +o.default = false +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) + +-- [[ custom_tcpcongestion ]]-- +o = s:option(Value, "custom_tcpcongestion", translate("custom_tcpcongestion")) +o.rmempty = true +o.default = "" +o:value("", translate("comment_tcpcongestion_disable")) +o:value("bbr", translate("bbr")) +o:value("cubic", translate("cubic")) +o:value("reno", translate("reno")) +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) + +-- [[ custom_sniffing ]]-- +o = s:option(Flag, "custom_sniffing", translate("custom_sniffing")) +o.rmempty = false +o.default = true o:depends({type = "v2ray", v2ray_protocol = "vless"}) o:depends({type = "v2ray", v2ray_protocol = "vmess"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) @@ -957,6 +985,18 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) +-- [[ custom_domainsExcluded ]]-- +o = s:option(Flag, "custom_domainsExcluded", translate("custom_domainsExcluded")) +o.rmempty = false +o.default = true +o:depends("custom_sniffing", true) + +-- [[ custom_routeOnly ]]-- +o = s:option(Flag, "custom_routeOnly", translate("custom_routeOnly")) +o.rmempty = false +o.default = false +o:depends("custom_sniffing", true) + -- [[ Cert ]]-- o = s:option(Flag, "certificate", translate("Self-signed Certificate")) o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 2bd12182346..c1673c752c6 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -97,6 +97,21 @@ msgstr "UDP 最大并发连接数" msgid "xudpProxyUDP443" msgstr "对被代理的 UDP/443 流量处理方式" +msgid "custom_tcpcongestion" +msgstr "连接服务器节点的 TCP 拥塞控制算法" + +msgid "comment_tcpcongestion_disable" +msgstr "使用系统默认值" + +msgid "custom_sniffing" +msgstr "流量嗅探" + +msgid "custom_domainsExcluded" +msgstr "流量嗅探域名排除列表" + +msgid "custom_routeOnly" +msgstr "嗅探得到的域名仅用于 Xray 内部路由" + msgid "If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates." msgstr "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 8a89a87a12a..5be1c735335 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -126,7 +126,38 @@ local Xray = { port = tonumber(local_port), protocol = "dokodemo-door", settings = {network = proto, followRedirect = true}, - sniffing = {enabled = true, destOverride = {"http", "tls", "quic"}} + sniffing = { + enabled = (server.custom_sniffing == "1") and true or false, + routeOnly = (server.custom_routeOnly == "1") and true or false, + destOverride = {"http", "tls", "quic"}, + domainsExcluded = (server.custom_domainsExcluded == "1") and { + "courier.push.apple.com", + "rbsxbxp-mim.vivox.com", + "rbsxbxp.www.vivox.com", + "rbsxbxp-ws.vivox.com", + "rbspsxp.www.vivox.com", + "rbspsxp-mim.vivox.com", + "rbspsxp-ws.vivox.com", + "rbswxp.www.vivox.com", + "rbswxp-mim.vivox.com", + "disp-rbspsp-5-1.vivox.com", + "disp-rbsxbp-5-1.vivox.com", + "proxy.rbsxbp.vivox.com", + "proxy.rbspsp.vivox.com", + "proxy.rbswp.vivox.com", + "rbswp.vivox.com", + "rbsxbp.vivox.com", + "rbspsp.vivox.com", + "rbspsp.www.vivox.com", + "rbswp.www.vivox.com", + "rbsxbp.www.vivox.com", + "rbsxbxp.vivox.com", + "rbspsxp.vivox.com", + "rbswxp.vivox.com", + "Mijia Cloud", + "dlg.io.mi.com" + } or nil, + } } or nil, -- 开启 socks 代理 inboundDetour = (proto:find("tcp") and socks_port ~= "0") and { @@ -218,11 +249,11 @@ local Xray = { permit_without_stream = (server.permit_without_stream == "1") and true or nil, initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil, - sockopt = (server.mptcp == "1") and { - tcpcongestion = "bbr", - tcpMptcp = true, - tcpNoDelay = true - } or nil + sockopt = { + tcpMptcp = (server.mptcp == "1") and true or false, + tcpNoDelay = (server.mptcp == "1") and true or false, + tcpcongestion = server.custom_tcpcongestion + } }, mux = (server.mux == "1") and { -- mux From 93e9e51f55f8e6791ed4ce15a4aac7e3111c1bb8 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Sun, 7 Jan 2024 10:12:08 +0800 Subject: [PATCH 469/972] Update Makefile update shadow-tls to 2.2.5 --- shadow-tls/Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile index 488e6c436cd..36c90799cd0 100644 --- a/shadow-tls/Makefile +++ b/shadow-tls/Makefile @@ -4,8 +4,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/package.mk PKG_NAME:=shadow-tls -PKG_VERSION:=0.2.23 -PKG_RELEASE:=1 +PKG_VERSION:=0.2.25 +PKG_RELEASE:=2 PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=FluffyTigerFear @@ -13,19 +13,19 @@ RELEASE_HEAD:=$(PKG_NAME) RELEASE_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) RELEASE_ARCH:=$(RELEASE_HEAD)-aarch64-$(RELEASE_FOOT) - PKG_HASH:=62081cdb011bcf82064c0f3313ee581df536914106108b137efdc5014c207b5b + PKG_HASH:=3295476b37f549a68906519d3eaecb74bf3b6eaf9094cebb16ee84f0151373c6 else ifeq ($(ARCH),arm) ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) - RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabi - PKG_HASH:=eb1346ec83e154f2722ab671fbcdd1c95739b4a7c29655effae9cd4ffe8d23b6 + RELEASE_ARCH:=$(RELEASE_HEAD)-arm-$(RELEASE_FOOT)eabi + PKG_HASH:=b6743bc60e1727972ece0fd5acf3a931e5be05cedee6f637e7e3d8c5b8d58f16 else RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf - PKG_HASH:=be005c23a4d5c51d52f2a96f1f060734dd43b80a7912516c130d433d04c7dfa1 + PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f endif else ifeq ($(ARCH),x86_64) RELEASE_ARCH:=$(RELEASE_HEAD)-x86_64-$(RELEASE_FOOT) - PKG_HASH:=acc7296e50cf310a15fca5756efa5f721ffc62dd0e4dd16581bc229b21b4b549 + PKG_HASH:=a173f5f2d57f45211b68e10ceeddc15b1791077b914fa89747bc705fddc71532 else PKG_SOURCE:=dummy PKG_HASH:=dummy From d4fe5abf672c982557791c9ba2929e59d0a1d472 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Sun, 7 Jan 2024 10:46:45 +0800 Subject: [PATCH 470/972] Update Makefile Update shadow-tls to the latest version --- shadow-tls/Makefile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile index 36c90799cd0..fa243f4c3a2 100644 --- a/shadow-tls/Makefile +++ b/shadow-tls/Makefile @@ -15,14 +15,16 @@ ifeq ($(ARCH),aarch64) RELEASE_ARCH:=$(RELEASE_HEAD)-aarch64-$(RELEASE_FOOT) PKG_HASH:=3295476b37f549a68906519d3eaecb74bf3b6eaf9094cebb16ee84f0151373c6 else ifeq ($(ARCH),arm) - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - RELEASE_ARCH:=$(RELEASE_HEAD)-arm-$(RELEASE_FOOT)eabi - PKG_HASH:=b6743bc60e1727972ece0fd5acf3a931e5be05cedee6f637e7e3d8c5b8d58f16 - else - RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf - PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f - endif + ifeq ($(CONFIG_CPU_TYPE),cortex-a7) + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf + PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f + else ifeq ($(CONFIG_CPU_TYPE),cortex-a9) + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf + PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f + else + RELEASE_ARCH:=$(RELEASE_HEAD)-arm-$(RELEASE_FOOT)eabi + PKG_HASH:=b6743bc60e1727972ece0fd5acf3a931e5be05cedee6f637e7e3d8c5b8d58f16 + endif else ifeq ($(ARCH),x86_64) RELEASE_ARCH:=$(RELEASE_HEAD)-x86_64-$(RELEASE_FOOT) PKG_HASH:=a173f5f2d57f45211b68e10ceeddc15b1791077b914fa89747bc705fddc71532 From bdf6b123cadb776d97cf2d9dd1afb516b046912a Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 8 Jan 2024 22:59:18 +0800 Subject: [PATCH 471/972] xray-core: update to 1.8.7 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 262d77f4e3c..98d55c21352 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.6 +PKG_VERSION:=1.8.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d828296c9f29f9e59a61ab73d44f072ab2a30fe979679e39aea43b33ddb7d6bf +PKG_HASH:=e8f46177d792b89700f164ca28fbf1a3c7d95a3ecf98871cb0dd5e474b46a859 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 453ecb778763db98f1a05c65d5a0b8c0adbc61a3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 8 Jan 2024 23:00:00 +0800 Subject: [PATCH 472/972] xray-plugin: update to 1.8.7 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 162d0e7dadf..47a92706dbe 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.6 +PKG_VERSION:=1.8.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9df7e65fe1ae6a001240d304db3aeaa3d4b1e3a2f4db00aa498bbe1e2bb18729 +PKG_HASH:=6ee5ed3a6bbecc41dba99a107849de00e2e72d99fdea4f9af8ea95783cb38528 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 2f19517938f165eb56bae8251b96bcc96dcdabce Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 8 Jan 2024 23:00:39 +0800 Subject: [PATCH 473/972] luci-app-ssr-plus: clean up spaces (#1372) --- .../root/etc/init.d/shadowsocksr | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4fadbf079c2..a9a7e57a8f9 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -380,13 +380,13 @@ gen_config_file() { #server1 type2 code3 local_port4 socks_port5 chain6 threads5 ;; shadowtls) case "$3" in - 1|2|4) - [ -z "$6" ] && lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file || lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file - ;; - 3) - lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file - lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file - ;; + 1|2|4) + [ -z "$6" ] && lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file || lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file + ;; + 3) + lua /usr/share/shadowsocksr/gen_config.lua $1 $type $4 >$chain_config_file + lua /usr/share/shadowsocksr/gen_config.lua $1 $mode $4 $5 $6 >$config_file + ;; esac ;; socks5) @@ -452,14 +452,14 @@ start_udp() { ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file local chain_type=$(uci_get_by_name $UDP_RELAY_SERVER chain_type) case ${chain_type} in - vmess) - ln_start_bin $(first_type xray v2ray) v2ray run -c $udp_config_file - echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type xray) --version) Started!" - ;; - sslocal) - ln_start_bin $(first_type sslocal) sslocal -c $udp_config_file - echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type sslocal) --version) Started!" - ;; + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $udp_config_file + echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $udp_config_file + echolog "UDP TPROXY Relay:shadow-tls chain-to $($(first_type sslocal) --version) Started!" + ;; esac ;; socks5) @@ -588,14 +588,14 @@ start_shunt() { shunt_dns_command local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type) case ${chain_type} in - vmess) - ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file - echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type xray) --version) Started!" - ;; - sslocal) - ln_start_bin $(first_type sslocal) sslocal -c $shunt_config_file - echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type sslocal) --version) Started!" - ;; + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file + echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $shunt_config_file + echolog "Netflix Separated Shunt Server:shadow-tls chain-to$($(first_type sslocal) --version) Started!" + ;; esac ;; # socks5) @@ -681,14 +681,14 @@ start_local() { ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_local_config_file local chain_type=$(uci_get_by_name $LOCAL_SERVER chain_type) case ${chain_type} in - vmess) - ln_start_bin $(first_type xray v2ray) v2ray run -c $local_config_file - echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type xray) --version) Started!" - ;; - sslocal) - ln_start_bin $(first_type sslocal) sslocal -c $local_config_file - echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type sslocal) --version) Started!" - ;; + vmess) + ln_start_bin $(first_type xray v2ray) v2ray run -c $local_config_file + echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type xray) --version) Started!" + ;; + sslocal) + ln_start_bin $(first_type sslocal) sslocal -c $local_config_file + echolog "Global Socks5 Proxy:shadow-tls chain-to$($(first_type sslocal) --version) Started!" + ;; esac fi ;; From 079a90a51eb85d092a0bdfd485d3578ed817d28e Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Tue, 9 Jan 2024 10:38:36 +0800 Subject: [PATCH 474/972] Update Makefile --- shadow-tls/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile index fa243f4c3a2..cd21b7ff6c9 100644 --- a/shadow-tls/Makefile +++ b/shadow-tls/Makefile @@ -5,7 +5,7 @@ include $(INCLUDE_DIR)/package.mk PKG_NAME:=shadow-tls PKG_VERSION:=0.2.25 -PKG_RELEASE:=2 +PKG_RELEASE:=1 PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=FluffyTigerFear From 8b3e6a5d5b09055a206951b1c3d174ebb1a53192 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Tue, 9 Jan 2024 23:21:41 +0800 Subject: [PATCH 475/972] shadow-tls: update to 0.2.25 (#1371) --- shadow-tls/Makefile | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/shadow-tls/Makefile b/shadow-tls/Makefile index 488e6c436cd..cd21b7ff6c9 100644 --- a/shadow-tls/Makefile +++ b/shadow-tls/Makefile @@ -4,7 +4,7 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/package.mk PKG_NAME:=shadow-tls -PKG_VERSION:=0.2.23 +PKG_VERSION:=0.2.25 PKG_RELEASE:=1 PKG_LICENSE_FILES:=LICENSE @@ -13,19 +13,21 @@ RELEASE_HEAD:=$(PKG_NAME) RELEASE_FOOT:=unknown-linux-musl ifeq ($(ARCH),aarch64) RELEASE_ARCH:=$(RELEASE_HEAD)-aarch64-$(RELEASE_FOOT) - PKG_HASH:=62081cdb011bcf82064c0f3313ee581df536914106108b137efdc5014c207b5b + PKG_HASH:=3295476b37f549a68906519d3eaecb74bf3b6eaf9094cebb16ee84f0151373c6 else ifeq ($(ARCH),arm) - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabi - PKG_HASH:=eb1346ec83e154f2722ab671fbcdd1c95739b4a7c29655effae9cd4ffe8d23b6 - else - RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf - PKG_HASH:=be005c23a4d5c51d52f2a96f1f060734dd43b80a7912516c130d433d04c7dfa1 - endif + ifeq ($(CONFIG_CPU_TYPE),cortex-a7) + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf + PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f + else ifeq ($(CONFIG_CPU_TYPE),cortex-a9) + RELEASE_ARCH:=$(RELEASE_HEAD)-armv7-$(RELEASE_FOOT)eabihf + PKG_HASH:=e6f918a072557c50fd0ea950af9a156a9b102af72c1d010ff85d08d13006c54f + else + RELEASE_ARCH:=$(RELEASE_HEAD)-arm-$(RELEASE_FOOT)eabi + PKG_HASH:=b6743bc60e1727972ece0fd5acf3a931e5be05cedee6f637e7e3d8c5b8d58f16 + endif else ifeq ($(ARCH),x86_64) RELEASE_ARCH:=$(RELEASE_HEAD)-x86_64-$(RELEASE_FOOT) - PKG_HASH:=acc7296e50cf310a15fca5756efa5f721ffc62dd0e4dd16581bc229b21b4b549 + PKG_HASH:=a173f5f2d57f45211b68e10ceeddc15b1791077b914fa89747bc705fddc71532 else PKG_SOURCE:=dummy PKG_HASH:=dummy From 311f6ef039ba1d31f3671fc9d8b9c9eadfdc0bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sat, 13 Jan 2024 00:34:31 +0800 Subject: [PATCH 476/972] luci-app-ssr-plus: add Xray `DNS` `Log` Setting options Simplifying `Mux` Options (#1374) --- .../model/cbi/shadowsocksr/client-config.lua | 146 ++++++++++++++++-- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 47 +++++- .../usr/share/shadowsocksr/gen_config.lua | 115 +++++++++++--- 3 files changed, 271 insertions(+), 37 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 635c20a8573..3bdb464ccdc 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -117,7 +117,8 @@ local securitys = { local tls_flows = { -- tls "xtls-rprx-vision", - "xtls-rprx-vision-udp443" + "xtls-rprx-vision-udp443", + "none" } m = Map("shadowsocksr", translate("Edit ShadowSocksR Server")) @@ -868,7 +869,7 @@ if is_finded("xray") then o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) -- [[ XTLS ]]-- - o = s:option(Value, "tls_flow", translate("Flow")) + o = s:option(ListValue, "tls_flow", translate("Flow")) for _, v in ipairs(tls_flows) do o:value(v, translate(v)) end @@ -878,7 +879,7 @@ if is_finded("xray") then -- [[ uTLS ]]-- o = s:option(Value, "fingerprint", translate("Finger Print")) - o:value("", translate("disable")) + o.default = "chrome" o:value("chrome", translate("chrome")) o:value("firefox", translate("firefox")) o:value("safari", translate("safari")) @@ -889,6 +890,7 @@ if is_finded("xray") then o:value("qq", translate("qq")) o:value("random", translate("random")) o:value("randomized", translate("randomized")) + o:value("", translate("disable")) o:depends({type = "v2ray", tls = true}) o:depends({type = "v2ray", reality = true}) end @@ -917,6 +919,7 @@ o = s:option(Value, "pinsha256", translate("Certificate fingerprint")) o:depends({type = "hysteria", insecure = true }) o.rmempty = true + -- [[ Mux ]]-- o = s:option(Flag, "mux", translate("Mux")) o.rmempty = false @@ -928,19 +931,21 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) -o = s:option(Value, "concurrency", translate("concurrency")) -o.datatype = "integer" +o = s:option(ListValue, "concurrency", translate("concurrency")) o.rmempty = true o.default = "-1" +o:value("-1", translate("disable")) +o:value("8", translate("8")) o:depends("mux", true) -o = s:option(Value, "xudpConcurrency", translate("xudpConcurrency")) -o.datatype = "integer" +o = s:option(ListValue, "xudpConcurrency", translate("xudpConcurrency")) o.rmempty = true o.default = "16" +o:value("16", translate("16")) +o:value("-1", translate("disable")) o:depends("mux", true) -o = s:option(Value, "xudpProxyUDP443", translate("xudpProxyUDP443")) +o = s:option(ListValue, "xudpProxyUDP443", translate("xudpProxyUDP443")) o.rmempty = true o.default = "reject" o:value("reject", translate("reject")) @@ -948,6 +953,7 @@ o:value("allow", translate("allow")) o:value("skip", translate("skip")) o:depends("mux", true) + -- [[ MPTCP ]]-- o = s:option(Flag, "mptcp", translate("MPTCP")) o.rmempty = false @@ -959,14 +965,14 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) --- [[ custom_tcpcongestion ]]-- -o = s:option(Value, "custom_tcpcongestion", translate("custom_tcpcongestion")) +-- [[ custom_tcpcongestion 连接服务器节点的 TCP 拥塞控制算法 ]]-- +o = s:option(ListValue, "custom_tcpcongestion", translate("custom_tcpcongestion")) o.rmempty = true o.default = "" o:value("", translate("comment_tcpcongestion_disable")) -o:value("bbr", translate("bbr")) -o:value("cubic", translate("cubic")) -o:value("reno", translate("reno")) +o:value("bbr", translate("BBR")) +o:value("cubic", translate("CUBIC")) +o:value("reno", translate("Reno")) o:depends({type = "v2ray", v2ray_protocol = "vless"}) o:depends({type = "v2ray", v2ray_protocol = "vmess"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) @@ -974,7 +980,8 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) --- [[ custom_sniffing ]]-- + +-- [[ custom_sniffing 流量嗅探 ]]-- o = s:option(Flag, "custom_sniffing", translate("custom_sniffing")) o.rmempty = false o.default = true @@ -985,18 +992,125 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) --- [[ custom_domainsExcluded ]]-- +-- [[ custom_domainsExcluded 流量嗅探域名排除列表 ]]-- o = s:option(Flag, "custom_domainsExcluded", translate("custom_domainsExcluded")) o.rmempty = false o.default = true o:depends("custom_sniffing", true) --- [[ custom_routeOnly ]]-- +-- [[ custom_routeOnly 嗅探得到的域名仅用于 Xray 路由 ]]-- o = s:option(Flag, "custom_routeOnly", translate("custom_routeOnly")) o.rmempty = false o.default = false o:depends("custom_sniffing", true) + +-- [[ custom_dns_enable Xray DNS 功能 ]]-- +o = s:option(Flag, "custom_dns_enable", translate("custom_dns_enable")) +o.rmempty = false +o.default = false +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) +o.description = translate("comment_dns_inbound_enable") + +-- [[ custom_dns_local 本地 DNS ]]-- +o = s:option(ListValue, "custom_dns_local", translate("custom_dns_local")) +o.rmempty = true +o.default = "https+local://223.5.5.5/dns-query" +o:value("https+local://223.5.5.5/dns-query", translate("https+local://223.5.5.5/dns-query")) +o:value("https+local://119.29.29.29/dns-query", translate("https+local://119.29.29.29/dns-query")) +o:depends("custom_dns_enable", true) + +-- [[ custom_dns_remote 远端 DNS ]]-- +o = s:option(ListValue, "custom_dns_remote", translate("custom_dns_remote")) +o.rmempty = true +o.default = "https://1.1.1.1/dns-query" +o:value("https://1.1.1.1/dns-query", translate("https://1.1.1.1/dns-query")) +o:value("https://8.8.8.8/dns-query", translate("https://8.8.8.8/dns-query")) +o:depends("custom_dns_enable", true) + +-- [[ custom_dns_remote_domains 远端 DNS 域名列表 ]]-- +o = s:option(ListValue, "custom_dns_remote_domains", translate("custom_dns_remote_domains")) +o.rmempty = true +o.default = "geosite:geolocation-!cn" +o:value("geosite:geolocation-!cn", translate("geosite:geolocation-!cn")) +o:depends("custom_dns_enable", true) + +-- [[ custom_nonIPQuery 非 A 和 AAAA 记录处理方式 ]]-- +o = s:option(ListValue, "custom_nonIPQuery", translate("custom_nonIPQuery")) +o.rmempty = true +o.default = "skip" +o:value("skip", translate("skip")) +o:value("drop", translate("drop")) +o:depends("custom_dns_enable", true) + +-- [[ custom_nonIPQuery_outbound_tag 非 A 和 AAAA 记录查询方式 ]]-- +o = s:option(ListValue, "custom_nonIPQuery_outbound_tag", translate("custom_nonIPQuery_outbound_tag")) +o.rmempty = true +o.default = "direct" +o:value("direct", translate("direct")) +o:value("proxy", translate("proxy")) +o:depends({custom_nonIPQuery = "skip"}) + +-- [[ custom_dokodemo_door_dns_address 查询非 A 和 AAAA 记录 DNS ]]-- +o = s:option(ListValue, "custom_dokodemo_door_dns_address", translate("custom_dokodemo_door_dns_address")) +o.rmempty = true +o.default = "223.5.5.5" +o:value("223.5.5.5", translate("223.5.5.5")) +o:value("119.29.29.29", translate("119.29.29.29")) +o:value("1.1.1.1", translate("1.1.1.1")) +o:value("8.8.8.8", translate("8.8.8.8")) +o:depends({custom_nonIPQuery = "skip"}) + + +-- [[ custom_log Xray 日志功能 ]]-- +o = s:option(Flag, "custom_log", translate("custom_log")) +o.rmempty = false +o.default = false +o:depends({type = "v2ray", v2ray_protocol = "vless"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "trojan"}) +o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) +o:depends({type = "v2ray", v2ray_protocol = "socks"}) +o:depends({type = "v2ray", v2ray_protocol = "http"}) + +-- [[ custom_loglevel 日志级别 ]]-- +o = s:option(ListValue, "custom_loglevel", translate("custom_loglevel")) +o.rmempty = true +o.default = "warning" +o:value("error", translate("error")) +o:value("warning", translate("warning")) +o:value("info", translate("info")) +o:value("debug", translate("debug")) +o:depends("custom_log", true) + +-- [[ custom_dnsLog DNS 查询记录 ]]-- +o = s:option(Flag, "custom_dnsLog", translate("custom_dnsLog")) +o.rmempty = true +o.default = true +o:depends("custom_log", true) + +-- [[ custom_access 访问记录 ]]-- +o = s:option(ListValue, "custom_access", translate("custom_access")) +o.rmempty = true +o.default = "/tmp/access.log" +o:value("/tmp/access.log", translate("/tmp/access.log")) +o:value("none", translate("none")) +o:depends("custom_log", true) + +-- [[ custom_error 错误记录 ]]-- +o = s:option(ListValue, "custom_error", translate("custom_error")) +o.rmempty = true +o.default = "/tmp/error.log" +o:value("/tmp/error.log", translate("/tmp/error.log")) +o:value("none", translate("none")) +o:depends("custom_log", true) + + -- [[ Cert ]]-- o = s:option(Flag, "certificate", translate("Self-signed Certificate")) o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index c1673c752c6..8d3bdd7eae3 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -88,6 +88,7 @@ msgstr "TLS 主机名" msgid "allowInsecure" msgstr "允许不安全连接" + msgid "concurrency" msgstr "TCP 最大并发连接数" @@ -97,12 +98,14 @@ msgstr "UDP 最大并发连接数" msgid "xudpProxyUDP443" msgstr "对被代理的 UDP/443 流量处理方式" + msgid "custom_tcpcongestion" msgstr "连接服务器节点的 TCP 拥塞控制算法" msgid "comment_tcpcongestion_disable" msgstr "使用系统默认值" + msgid "custom_sniffing" msgstr "流量嗅探" @@ -110,7 +113,49 @@ msgid "custom_domainsExcluded" msgstr "流量嗅探域名排除列表" msgid "custom_routeOnly" -msgstr "嗅探得到的域名仅用于 Xray 内部路由" +msgstr "嗅探得到的域名仅用于 Xray 路由" + + +msgid "custom_dns_enable" +msgstr "Xray DNS 功能" + +msgid "comment_dns_inbound_enable" +msgstr "监听 5335 端口,需要上传 geosite.dat 到 /usr/share/xray,更新固件后要重新上传" + +msgid "custom_dns_local" +msgstr "本地 DNS" + +msgid "custom_dns_remote" +msgstr "远端 DNS" + +msgid "custom_dns_remote_domains" +msgstr "远端 DNS 域名列表" + +msgid "custom_dokodemo_door_dns_address" +msgstr "查询非 A 和 AAAA 记录 DNS" + +msgid "custom_nonIPQuery" +msgstr "非 A 和 AAAA 记录处理方式" + +msgid "custom_nonIPQuery_outbound_tag" +msgstr "非 A 和 AAAA 记录查询方式" + + +msgid "custom_log" +msgstr "Xray 日志功能" + +msgid "custom_loglevel" +msgstr "日志级别" + +msgid "custom_dnsLog" +msgstr "DNS 查询记录" + +msgid "custom_access" +msgstr "访问记录" + +msgid "custom_error" +msgstr "错误记录" + msgid "If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates." msgstr "是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 5be1c735335..02603c3cf42 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -116,21 +116,57 @@ end local settings = outbound:new() settings:handleIndex(server.v2ray_protocol) local Xray = { - log = { - -- error = "/var/ssrplus.log", - loglevel = "warning" + -- 日志 + log = (server.custom_log == "1") and { + loglevel = server.custom_loglevel, -- 日志级别 + dnsLog = (server.custom_dnsLog == "1") and true or false, -- DNS 查询记录 + access = server.custom_access, -- 访问记录 + error = server.custom_error -- 错误记录 + } or nil, + -- DNS + dns = { + hosts = { + ["dns.alidns.com"] = "223.5.5.5", + ["doh.pub"] = "119.29.29.29" + }, + servers = (server.custom_dns_enable == "1") and { -- Xray 内置 DNS + server.custom_dns_local, -- 本地 DNS + { + address = server.custom_dns_remote, -- 远端 DNS + domains = { + server.custom_dns_remote_domains -- 远端 DNS 域名列表 + }, + skipFallback = true, + queryStrategy = "UseIP" + } + } or nil, + queryStrategy = "UseIP" + }, + -- 路由 + routing = { + domainStrategy = "AsIs", + rules = { + { + type = "field", + inboundTag = { + "dns-in" + }, + outboundTag = "dns-out" + } + } }, -- 传入连接 - inbound = (local_port ~= "0") and { + inbounds = { + (local_port ~= "0") and { -- listening port = tonumber(local_port), protocol = "dokodemo-door", settings = {network = proto, followRedirect = true}, sniffing = { - enabled = (server.custom_sniffing == "1") and true or false, - routeOnly = (server.custom_routeOnly == "1") and true or false, + enabled = (server.custom_sniffing == "1") and true or false, -- 流量嗅探 + routeOnly = (server.custom_routeOnly == "1") and true or false, -- 嗅探得到的域名仅用于 Xray 内部路由 destOverride = {"http", "tls", "quic"}, - domainsExcluded = (server.custom_domainsExcluded == "1") and { + domainsExcluded = (server.custom_domainsExcluded == "1") and { -- 流量嗅探域名排除列表 "courier.push.apple.com", "rbsxbxp-mim.vivox.com", "rbsxbxp.www.vivox.com", @@ -159,6 +195,17 @@ local Xray = { } or nil, } } or nil, + (server.custom_dns_enable == "1") and { -- Xray 内置 DNS + port = 5335, + protocol = "dokodemo-door", + settings = { + address = server.custom_dokodemo_door_dns_address, -- 查询非 A 和 AAAA 记录DNS + port = 53, + network = "udp" + }, + tag = "dns-in" + } or nil, + }, -- 开启 socks 代理 inboundDetour = (proto:find("tcp") and socks_port ~= "0") and { { @@ -169,7 +216,9 @@ local Xray = { } } or nil, -- 传出连接 - outbound = { + outbounds = { + { + tag = "proxy", protocol = server.v2ray_protocol, settings = outbound_settings, -- 底层传输配置 @@ -185,7 +234,7 @@ local Xray = { certificates = server.certificate and { usage = "verify", certificateFile = server.certpath - } or nil + } or nil, } or nil, realitySettings = (server.reality == '1') and { publicKey = server.reality_publickey, @@ -250,19 +299,45 @@ local Xray = { initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil, sockopt = { - tcpMptcp = (server.mptcp == "1") and true or false, - tcpNoDelay = (server.mptcp == "1") and true or false, - tcpcongestion = server.custom_tcpcongestion + tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP + tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP + tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 } }, - mux = (server.mux == "1") and { - -- mux - enabled = true, - concurrency = tonumber(server.concurrency), - xudpConcurrency = tonumber(server.xudpConcurrency), - xudpProxyUDP443 = server.xudpProxyUDP443 - } or nil - } or nil + mux = { + enabled = (server.mux == "1") and true or false, -- Mux + concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 + xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 + xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 + } + }, + { + protocol = "freedom", + settings = { + domainStrategy = "ForceIPv6v4" + }, + streamSettings = { + sockopt = { + tcpFastOpen = true + } + }, + tag = "direct" + }, + { + protocol = "blackhole", + tag = "block" + }, + (server.custom_dns_enable == "1") and { -- Xray 内置 DNS + protocol = "dns", + settings = { + nonIPQuery = server.custom_nonIPQuery -- 非 A 和 AAAA 记录处理方式 + }, + proxySettings = (server.custom_nonIPQuery == "skip") and { + tag = server.custom_nonIPQuery_outbound_tag -- 非 A 和 AAAA 记录查询方式 + } or nil, + tag = "dns-out" + } or nil, + } } local cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA" local cipher13 = "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384" From 24c4890aa810a7351c1d2b3e298b868168aa100e Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 15 Jan 2024 00:45:43 +0800 Subject: [PATCH 477/972] shadowsocksr-libev: fix build with GCC12/13 --- shadowsocksr-libev/Makefile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 304c4f18a80..df6d9555722 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -60,6 +60,14 @@ CONFIGURE_ARGS += \ TARGET_CFLAGS += -flto TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed +ifeq ($(GCC_MAJOR_VERSION),12) + TARGET_CFLAGS += -Wno-error=use-after-free +endif + +ifeq ($(GCC_MAJOR_VERSION),13) + TARGET_CFLAGS += -Wno-error=use-after-free +endif + $(foreach component,$(SHADOWSOCKSR_COMPONENTS), \ $(eval $(call BuildPackage,shadowsocksr-libev-ssr-$(component))) \ ) From edb9e0f633c10b04a782f135459610846e07fa0a Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 15 Jan 2024 01:03:37 +0800 Subject: [PATCH 478/972] shadowsocksr-libev: bump version --- shadowsocksr-libev/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index df6d9555722..e856a8d677d 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocksr-libev PKG_VERSION:=2.5.6 -PKG_RELEASE:=9 +PKG_RELEASE:=10 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev @@ -60,11 +60,11 @@ CONFIGURE_ARGS += \ TARGET_CFLAGS += -flto TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -ifeq ($(GCC_MAJOR_VERSION),12) +ifeq ($(CONFIG_GCC_VERSION_12),y) TARGET_CFLAGS += -Wno-error=use-after-free endif -ifeq ($(GCC_MAJOR_VERSION),13) +ifeq ($(CONFIG_GCC_VERSION_13),y) TARGET_CFLAGS += -Wno-error=use-after-free endif From f3ecd43e16a3dd770e574b212a465a4be3332d41 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sat, 27 Jan 2024 12:18:39 +0800 Subject: [PATCH 479/972] v2ray-geodata: remove package --- v2ray-geodata/Makefile | 79 ------------------------------------------ 1 file changed, 79 deletions(-) delete mode 100644 v2ray-geodata/Makefile diff --git a/v2ray-geodata/Makefile b/v2ray-geodata/Makefile deleted file mode 100644 index 32302315e6d..00000000000 --- a/v2ray-geodata/Makefile +++ /dev/null @@ -1,79 +0,0 @@ -# SPDX-License-Identifier: GPL-3.0-only -# -# Copyright (C) 2021-2022 ImmortalWrt.org - -include $(TOPDIR)/rules.mk - -PKG_NAME:=v2ray-geodata -PKG_RELEASE:=1 - -PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=Tianling Shen - -include $(INCLUDE_DIR)/package.mk - -GEOIP_VER:=202210200105 -GEOIP_FILE:=geoip.dat.$(GEOIP_VER) -define Download/geoip - URL:=https://github.com/v2fly/geoip/releases/download/$(GEOIP_VER)/ - URL_FILE:=geoip.dat - FILE:=$(GEOIP_FILE) - HASH:=08b8039a1a3f6fca59864b658bd0b0698588a950dc08ff76e83d3e204fc10679 -endef - -GEOSITE_VER:=20221023064040 -GEOSITE_FILE:=dlc.dat.$(GEOSITE_VER) -define Download/geosite - URL:=https://github.com/v2fly/domain-list-community/releases/download/$(GEOSITE_VER)/ - URL_FILE:=dlc.dat - FILE:=$(GEOSITE_FILE) - HASH:=d1706f66a29795fa29093f85a6cd620854c53911c0b437ba80d81953280d7bf7 -endef - -define Package/v2ray-geodata/template - SECTION:=net - CATEGORY:=Network - SUBMENU:=IP Addresses and Names - URL:=https://www.v2fly.org - PKGARCH:=all -endef - -define Package/v2ray-geoip - $(call Package/v2ray-geodata/template) - TITLE:=GeoIP List for V2Ray - VERSION:=$(GEOIP_VER)-$(PKG_RELEASE) - LICENSE:=CC-BY-SA-4.0 -endef - -define Package/v2ray-geosite - $(call Package/v2ray-geodata/template) - TITLE:=Geosite List for V2Ray - VERSION:=$(GEOSITE_VER)-$(PKG_RELEASE) - LICENSE:=MIT -endef - -define Build/Prepare - $(call Build/Prepare/Default) -ifneq ($(CONFIG_PACKAGE_v2ray-geoip),) - $(call Download,geoip) -endif -ifneq ($(CONFIG_PACKAGE_v2ray-geosite),) - $(call Download,geosite) -endif -endef - -define Build/Compile -endef - -define Package/v2ray-geoip/install - $(INSTALL_DIR) $(1)/usr/share/v2ray - $(INSTALL_DATA) $(DL_DIR)/$(GEOIP_FILE) $(1)/usr/share/v2ray/geoip.dat -endef - -define Package/v2ray-geosite/install - $(INSTALL_DIR) $(1)/usr/share/v2ray - $(INSTALL_DATA) $(DL_DIR)/$(GEOSITE_FILE) $(1)/usr/share/v2ray/geosite.dat -endef - -$(eval $(call BuildPackage,v2ray-geoip)) -$(eval $(call BuildPackage,v2ray-geosite)) From 97b62ac84e68eb1839168005d7dcd72657c44337 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:27:09 +0000 Subject: [PATCH 480/972] naiveproxy: update to 121.0.6167.71-1 --- naiveproxy/Makefile | 18 ++++++-------- naiveproxy/patches/100-macros.patch | 38 ----------------------------- naiveproxy/src/init_env.sh | 12 +++++++-- 3 files changed, 17 insertions(+), 51 deletions(-) delete mode 100644 naiveproxy/patches/100-macros.patch diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 82963f972b3..13857b1089b 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,23 +5,19 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=113.0.5672.62-2 +PKG_VERSION:=121.0.6167.71-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=75db685789d550094343a76fdcbb6ea2bfcb708c3330af621ca532842251fb26 +PKG_HASH:=8e6d3029a0249140595fab3d668103881689f6c7ef7c65230191f674a370b309 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen PKG_BUILD_DEPENDS:=gn/host -ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) -PKG_BUILD_DEPENDS+= ninja/host -endif PKG_BUILD_PARALLEL:=1 -PKG_USE_MIPS16:=0 PKG_BUILD_FLAGS:=no-mips16 ifneq ($(CONFIG_CPU_TYPE)," ") @@ -59,22 +55,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=17-init-4759-g547e3456-1 +CLANG_VER:=18-init-12938-geb1d5065-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=1949427e0030523dc86bdf4b63dac88228cfe05c57318be2d0b0b290297925f6 + HASH:=fd1628fdb22157a7328c25802a745f17f92f5210a8b62591202deb92413f52e5 endef -PGO_VER:=5672-1682419203-4df9c2f8b97b0e23303fa2b15279906232abc306 +PGO_VER:=6167-1705427108-cb39f8a22759d3159f79efc273ac8b13a0f3882a PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=5fae812f617d882222cd5aa5620fb355583391127f608759b030c231b71d4c90 + HASH:=7632c875db539cb1d4a0df6eb3acc9e155d2d477376dec1f815081bbae7cdd4f endef define Build/Prepare @@ -103,7 +99,7 @@ define Build/Configure endef define Build/Compile - ninja -C "$(PKG_BUILD_DIR)/src/out/Release" naive + +$(NINJA) -C "$(PKG_BUILD_DIR)/src/out/Release" naive endef define Package/naiveproxy/install diff --git a/naiveproxy/patches/100-macros.patch b/naiveproxy/patches/100-macros.patch deleted file mode 100644 index f317ccb0708..00000000000 --- a/naiveproxy/patches/100-macros.patch +++ /dev/null @@ -1,38 +0,0 @@ ---- a/src/base/allocator/partition_allocator/tagging.cc -+++ b/src/base/allocator/partition_allocator/tagging.cc -@@ -18,22 +18,25 @@ - #define PR_GET_TAGGED_ADDR_CTRL 56 - #define PR_TAGGED_ADDR_ENABLE (1UL << 0) - --#if BUILDFLAG(IS_LINUX) --#include -- --// Linux headers already provide these since v5.10. --#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 10, 0) --#define HAS_PR_MTE_MACROS --#endif --#endif -- --#ifndef HAS_PR_MTE_MACROS -+#ifndef PR_MTE_TCF_SHIFT - #define PR_MTE_TCF_SHIFT 1 -+#endif -+#ifndef PR_MTE_TCF_NONE - #define PR_MTE_TCF_NONE (0UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_SYNC - #define PR_MTE_TCF_SYNC (1UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_ASYNC - #define PR_MTE_TCF_ASYNC (2UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TCF_MASK - #define PR_MTE_TCF_MASK (3UL << PR_MTE_TCF_SHIFT) -+#endif -+#ifndef PR_MTE_TAG_SHIFT - #define PR_MTE_TAG_SHIFT 3 -+#endif -+#ifndef PR_MTE_TAG_MASK - #define PR_MTE_TAG_MASK (0xffffUL << PR_MTE_TAG_SHIFT) - #endif - #endif diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index eb777f35874..e32b7faa957 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -40,7 +40,7 @@ export naive_flags=" is_official_build=true exclude_unwind_tables=true enable_resource_allowlist_generation=false -symbol_level=1 +symbol_level=0 is_clang=true use_sysroot=false @@ -64,6 +64,9 @@ enable_reporting=false include_transport_security_state_preload_list=false use_nss_certs=false +enable_backup_ref_ptr_support=false +enable_dangling_raw_ptr_checks=false + target_os=\"openwrt\" target_cpu=\"${naive_arch}\" target_sysroot=\"${toolchain_dir}\"" @@ -87,7 +90,12 @@ case "${target_arch}" in [ -n "${cpu_type}" ] && naive_flags+=" arm_cpu=\"${cpu_type}\"" ;; "mipsel"|"mips64el") - naive_flags+=" use_thin_lto=false chrome_pgo_phase=0 mips_arch_variant=\"r2\"" + naive_flags+=" use_thin_lto=false chrome_pgo_phase=0" + if [ -z "${cpu_type}" ]; then + naive_flags+=" mips_arch_variant=\"r1\"" + else + naive_flags+=" mips_arch_variant=\"r2\"" + fi if [ "${target_arch}" == "mipsel" ]; then if [ "${cpu_subtype}" == "24kf" ]; then naive_flags+=" mips_float_abi=\"hard\"" From 11c5a52e595699c2c94b2d016a05f6f341039b73 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:29:23 +0000 Subject: [PATCH 481/972] gn: update to git HEAD --- gn/Makefile | 11 ++++------- gn/patches/010-gcc.patch | 11 ----------- gn/src/out/last_commit_position.h | 4 ++-- 3 files changed, 6 insertions(+), 20 deletions(-) delete mode 100644 gn/patches/010-gcc.patch diff --git a/gn/Makefile b/gn/Makefile index 14c8f8c3e31..eb1c24263cb 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,17 +9,14 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2023-04-05 -PKG_SOURCE_VERSION:=28b7b6c507eb808567e3aea446cd259f7691fddc -PKG_MIRROR_HASH:=5b112442eabea4b906cc409237fac13b8efb4f5acb25989b1883d5ce96deebd2 +PKG_SOURCE_DATE:=2024-01-24 +PKG_SOURCE_VERSION:=a2e2717ea670249a34b0de4b3e54f268d320bdfa +PKG_MIRROR_HASH:=13d4b2ac0ca78cedf25ca9919c2969eb37c36b6dd5e8e6e8cd114441500daa76 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE PKG_MAINTAINER:=Tianling Shen -ifneq ($(wildcard $(TOPDIR)/feeds/packages/devel/ninja/ninja.mk),) -PKG_BUILD_DEPENDS+= ninja/host -endif PKG_HOST_ONLY:=1 HOST_BUILD_PARALLEL:=1 @@ -45,7 +42,7 @@ define Host/Configure endef define Host/Compile - ninja -C $(HOST_BUILD_DIR)/out + +$(NINJA) -C $(HOST_BUILD_DIR)/out endef define Host/Install diff --git a/gn/patches/010-gcc.patch b/gn/patches/010-gcc.patch deleted file mode 100644 index bfdc39445dc..00000000000 --- a/gn/patches/010-gcc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/build/gen.py -+++ b/build/gen.py -@@ -368,7 +368,7 @@ def WriteGNNinja(path, platform, host, o - cxx = os.environ.get('CXX', 'g++') - ld = os.environ.get('LD', 'g++') - ar = os.environ.get('AR', 'ar -X64') -- elif platform.is_msys() or platform.is_mingw(): -+ elif platform.is_msys() or platform.is_mingw() or platform.is_linux(): - cxx = os.environ.get('CXX', 'g++') - ld = os.environ.get('LD', 'g++') - ar = os.environ.get('AR', 'ar') diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 9c21421e880..5f82253b92a 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2085 -#define LAST_COMMIT_POSITION "2085 (28b7b6c507eb)" +#define LAST_COMMIT_POSITION_NUM 2143 +#define LAST_COMMIT_POSITION "2143 (a2e2717ea670)" #endif // OUT_LAST_COMMIT_POSITION_H_ From bbdf63e01769d9cb3eb2ce1b41eb51eb73f8ea20 Mon Sep 17 00:00:00 2001 From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 27 Jan 2024 18:44:27 +0000 Subject: [PATCH 482/972] v2raya: sync upstream --- v2raya/Makefile | 20 +- v2raya/files/v2raya.config | 14 +- v2raya/files/v2raya.init | 7 +- ...-interface-ppp-to-avoid-to-break-net.patch | 38 -- ...ad-from-vless-sharing-link-and-add-m.patch | 105 ------ ...that-supervisor-cannot-exit-normally.patch | 100 ------ ...ected-exit-does-not-apply-stop-steps.patch | 52 --- .../017-optimize-reduce-disk-writes.patch | 336 ------------------ ...x-do-not-rollback-closed-transaction.patch | 27 -- v2raya/patches/100-compat-v5.patch | 21 -- 10 files changed, 17 insertions(+), 703 deletions(-) delete mode 100644 v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch delete mode 100644 v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch delete mode 100644 v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch delete mode 100644 v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch delete mode 100644 v2raya/patches/017-optimize-reduce-disk-writes.patch delete mode 100644 v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch delete mode 100644 v2raya/patches/100-compat-v5.patch diff --git a/v2raya/Makefile b/v2raya/Makefile index fb680970cad..2a5410f0cc5 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=1.5.9.1698.1 +PKG_VERSION:=2.2.4.6 PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=247a357230c616bf48309c61d119686e4ad56939c05afef584c45051e9dc6220 +PKG_HASH:=22285b2fdf321d68993b38ad738f4af210920757d7944691a78e151abd99cb3a PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -23,7 +23,9 @@ PKG_USE_MIPS16:=0 PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/v2rayA/v2rayA -GO_PKG_LDFLAGS_X:=$(GO_PKG)/conf.Version=$(PKG_VERSION) +GO_PKG_LDFLAGS_X:= \ + $(GO_PKG)/conf.Version=$(PKG_VERSION) \ + $(GO_PKG)/core/iptables.TproxyNotSkipBr=true include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk @@ -38,11 +40,7 @@ define Package/v2raya SUBMENU:=Web Servers/Proxies DEPENDS:=$(GO_ARCH_DEPENDS) \ +ca-bundle \ - +iptables-mod-conntrack-extra \ - +iptables-mod-extra \ - +iptables-mod-filter \ - +iptables-mod-tproxy \ - +kmod-ipt-nat6 \ + +kmod-nft-tproxy \ +xray-core URL:=https://v2raya.org endef @@ -59,10 +57,10 @@ endef WEB_FILE:=$(PKG_NAME)-web-$(PKG_VERSION).tar.gz define Download/v2raya-web - URL:=https://codeload.github.com/v2rayA/v2raya-web/tar.gz/v$(PKG_VERSION)? - URL_FILE:=$(WEB_FILE) + URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/ + URL_FILE:=web.tar.gz FILE:=$(WEB_FILE) - HASH:=149097a42c3e5fa6f5c3cd46d1bf7ec4546e79ad37c1446b759539e700bd75e2 + HASH:=09109442abac13801b7b82433fccbb769657b1d292ac4820af179c297e845135 endef define Build/Prepare diff --git a/v2raya/files/v2raya.config b/v2raya/files/v2raya.config index d9ff36581af..66b66b24380 100644 --- a/v2raya/files/v2raya.config +++ b/v2raya/files/v2raya.config @@ -5,19 +5,17 @@ config v2raya 'config' # Listening address option address '0.0.0.0:2017' - # v2rayA configuration directory - option config '/etc/v2raya' - # Make sure your IPv6 network works fine before you turn it on. # Optional values: auto, on, off. option ipv6_support 'auto' + # Experimental feature. Make sure you have installed nftables. + # Optional values: auto, on, off. + option nftables_support 'auto' + # Optional values: trace, debug, info, warn or error option log_level 'info' - # The path of log file - option log_file '/var/log/v2raya/v2raya.log' - # Maximum number of days to keep log files option log_max_days '3' @@ -44,7 +42,3 @@ config v2raya 'config' # v2rayA will pass in the --stage (pre-start, post-start, pre-stop, post-stop) argument. option plugin_manager '' - # Specify the certification path instead of automatically generating a self-signed certificate. - # Example: /etc/v2raya/grpc_certificate.crt,/etc/v2raya/grpc_private.key - option vless_grpc_inbound_cert_key '' - diff --git a/v2raya/files/v2raya.init b/v2raya/files/v2raya.init index 4120e90ffd0..1e55a187e47 100755 --- a/v2raya/files/v2raya.init +++ b/v2raya/files/v2raya.init @@ -40,18 +40,19 @@ start_service() { procd_set_param command "$PROG" procd_set_param env XDG_DATA_HOME="/usr/share" + append_env "config" "/etc/v2raya" + append_env "log_file" "/var/log/v2raya/v2raya.log" + append_env_arg "config" "address" "0.0.0.0:2017" - append_env_arg "config" "config" "/etc/v2raya" append_env_arg "config" "ipv6_support" "auto" + append_env_arg "config" "nftables_support" "auto" append_env_arg "config" "log_level" "info" - append_env_arg "config" "log_file" "/var/log/v2raya/v2raya.log" append_env_arg "config" "log_max_days" "3" append_env_arg "config" "v2ray_bin" append_env_arg "config" "v2ray_confdir" append_env_arg "config" "transparent_hook" append_env_arg "config" "core_hook" append_env_arg "config" "plugin_manager" - append_env_arg "config" "vless_grpc_inbound_cert_key" append_env_bool "config" "log_disable_color" append_env_bool "config" "log_disable_timestamp" diff --git a/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch b/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch deleted file mode 100644 index 07e426a14df..00000000000 --- a/v2raya/patches/013-fix-we-should-skip-interface-ppp-to-avoid-to-break-net.patch +++ /dev/null @@ -1,38 +0,0 @@ -From ca6a05273284daa04856a840e64f3936f700b7c3 Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Fri, 16 Sep 2022 15:13:11 +0800 -Subject: [PATCH] fix: we should skip interface ppp+ to avoid to break net - ---- - service/core/iptables/tproxy.go | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - ---- a/core/iptables/tproxy.go -+++ b/core/iptables/tproxy.go -@@ -16,7 +16,7 @@ var Tproxy tproxy - func (t *tproxy) AddIPWhitelist(cidr string) { - // avoid duplication - t.RemoveIPWhitelist(cidr) -- pos := 5 -+ pos := 7 - if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { - pos += 3 - } -@@ -68,6 +68,8 @@ iptables -w 2 -t mangle -A TP_RULE -m ma - iptables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - iptables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN -+iptables -w 2 -t mangle -A TP_RULE -i ppp+ -j RETURN -+iptables -w 2 -t mangle -A TP_RULE -i dn42-+ -j RETURN - ` - if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { - commands += ` -@@ -127,6 +129,8 @@ ip6tables -w 2 -t mangle -A TP_RULE -m m - ip6tables -w 2 -t mangle -A TP_RULE -i br-+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i docker+ -j RETURN - ip6tables -w 2 -t mangle -A TP_RULE -i veth+ -j RETURN -+ip6tables -w 2 -t mangle -A TP_RULE -i ppp+ -j RETURN -+ip6tables -w 2 -t mangle -A TP_RULE -i dn42-+ -j RETURN - ` - if configure.GetSettingNotNil().AntiPollution != configure.AntipollutionClosed { - commands += ` diff --git a/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch b/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch deleted file mode 100644 index ba503062445..00000000000 --- a/v2raya/patches/014-fix-seed-cannot-be-read-from-vless-sharing-link-and-add-m.patch +++ /dev/null @@ -1,105 +0,0 @@ -From 5db722b22b39642280572a62b149d4e1efa21ce3 Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Mon, 8 Aug 2022 22:30:36 +0800 -Subject: [PATCH] fix: seed cannot be read from vless sharing-link and add - missing sni field. #616 - ---- - service/core/serverObj/v2ray.go | 24 +++++++++++------------- - 1 file changed, 11 insertions(+), 13 deletions(-) - ---- a/core/serverObj/v2ray.go -+++ b/core/serverObj/v2ray.go -@@ -12,7 +12,6 @@ import ( - "time" - - jsoniter "github.com/json-iterator/go" -- "github.com/tidwall/gjson" - "github.com/v2rayA/v2rayA/common" - "github.com/v2rayA/v2rayA/core/coreObj" - "github.com/v2rayA/v2rayA/core/v2ray/service" -@@ -39,6 +38,7 @@ type V2Ray struct { - Net string `json:"net"` - Type string `json:"type"` - Host string `json:"host"` -+ SNI string `json:"sni"` - Path string `json:"path"` - TLS string `json:"tls"` - Flow string `json:"flow,omitempty"` -@@ -69,7 +69,8 @@ func ParseVlessURL(vless string) (data * - ID: u.User.String(), - Net: u.Query().Get("type"), - Type: u.Query().Get("headerType"), -- Host: u.Query().Get("sni"), -+ Host: u.Query().Get("host"), -+ SNI: u.Query().Get("sni"), - Path: u.Query().Get("path"), - TLS: u.Query().Get("security"), - Flow: u.Query().Get("flow"), -@@ -86,16 +87,13 @@ func ParseVlessURL(vless string) (data * - if data.Type == "" { - data.Type = "none" - } -- if data.Host == "" { -- data.Host = u.Query().Get("host") -- } - if data.TLS == "" { - data.TLS = "none" - } - if data.Flow == "" { - data.Flow = "xtls-rprx-direct" - } -- if data.Type == "mkcp" || data.Type == "kcp" { -+ if data.Net == "mkcp" || data.Net == "kcp" { - data.Path = u.Query().Get("seed") - } - return data, nil -@@ -145,6 +143,7 @@ func ParseVmessURL(vmess string) (data * - if aid == "" { - aid = q.Get("aid") - } -+ sni := q.Get("sni") - info = V2Ray{ - ID: subMatch[1], - Add: subMatch[2], -@@ -152,6 +151,7 @@ func ParseVmessURL(vmess string) (data * - Ps: ps, - Host: obfsParam, - Path: path, -+ SNI: sni, - Net: obfs, - Aid: aid, - TLS: map[string]string{"1": "tls"}[q.Get("tls")], -@@ -165,12 +165,6 @@ func ParseVmessURL(vmess string) (data * - if err != nil { - return - } -- if info.Host == "" { -- sni := gjson.Get(raw, "sni") -- if sni.Exists() { -- info.Host = sni.String() -- } -- } - } - // correct the wrong vmess as much as possible - if strings.HasPrefix(info.Host, "/") && info.Path == "" { -@@ -328,7 +322,9 @@ func (v *V2Ray) Configuration(info Prior - core.StreamSettings.TLSSettings.AllowInsecure = true - } - // SNI -- if v.Host != "" { -+ if v.SNI != "" { -+ core.StreamSettings.TLSSettings.ServerName = v.SNI -+ } else if v.Host != "" { - core.StreamSettings.TLSSettings.ServerName = v.Host - } - // Alpn -@@ -345,6 +341,8 @@ func (v *V2Ray) Configuration(info Prior - // SNI - if v.Host != "" { - core.StreamSettings.XTLSSettings.ServerName = v.Host -+ } else if v.Host != "" { -+ core.StreamSettings.TLSSettings.ServerName = v.Host - } - if v.AllowInsecure { - core.StreamSettings.XTLSSettings.AllowInsecure = true diff --git a/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch b/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch deleted file mode 100644 index 5447dc0f9e9..00000000000 --- a/v2raya/patches/015-fix-a-problem-that-supervisor-cannot-exit-normally.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 3f78422f81f3abc2668fc3938b31d213bfe4dfff Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Sun, 28 Aug 2022 17:54:36 +0800 -Subject: [PATCH] fix: a problem that supervisor cannot exit normally - ---- - service/core/specialMode/infra/handle.go | 11 ++++++---- - service/core/specialMode/infra/supervisor.go | 22 ++++++++------------ - 2 files changed, 16 insertions(+), 17 deletions(-) - ---- a/core/specialMode/infra/handle.go -+++ b/core/specialMode/infra/handle.go -@@ -127,10 +127,13 @@ func (interfaceHandle *handle) handleRec - return results, msg - } - --func packetFilter(portCache *portCache, pPacket *gopacket.Packet, whitelistDnsServers *v2router.GeoIPMatcher) (m *dnsmessage.Message, pSAddr, pSPort, pDAddr, pDPort *gopacket.Endpoint) { -- packet := *pPacket -- trans := packet.TransportLayer() -+func packetFilter(portCache *portCache, packet gopacket.Packet, whitelistDnsServers *v2router.GeoIPMatcher) (m *dnsmessage.Message, pSAddr, pSPort, pDAddr, pDPort *gopacket.Endpoint) { -+ //跳过非网络层的包 -+ if packet.NetworkLayer() == nil { -+ return -+ } - //跳过非传输层的包 -+ trans := packet.TransportLayer() - if trans == nil { - return - } -@@ -180,7 +183,7 @@ func packetFilter(portCache *portCache, - } - - func (interfaceHandle *handle) handlePacket(packet gopacket.Packet, ifname string, whitelistDnsServers *v2router.GeoIPMatcher, whitelistDomains *strmatcher.MatcherGroup) { -- m, sAddr, sPort, dAddr, dPort := packetFilter(interfaceHandle.portCache, &packet, whitelistDnsServers) -+ m, sAddr, sPort, dAddr, dPort := packetFilter(interfaceHandle.portCache, packet, whitelistDnsServers) - if m == nil { - return - } ---- a/core/specialMode/infra/supervisor.go -+++ b/core/specialMode/infra/supervisor.go -@@ -9,7 +9,6 @@ import ( - v2router "github.com/v2rayA/v2ray-lib/router" - "github.com/v2rayA/v2rayA/pkg/util/log" - "sync" -- "time" - ) - - type DnsSupervisor struct { -@@ -70,7 +69,7 @@ func (d *DnsSupervisor) DeleteHandles(if - } - close(d.handles[ifname].done) - delete(d.handles, ifname) -- log.Trace("DnsSupervisor:%v closed", ifname) -+ log.Trace("DnsSupervisor:%v deleted", ifname) - return - } - -@@ -81,28 +80,24 @@ func (d *DnsSupervisor) Run(ifname strin - d.inner.Lock() - handle, ok := d.handles[ifname] - if !ok { -+ d.inner.Unlock() - return fmt.Errorf("Run: %v not exsits", ifname) - } - if handle.running { -+ d.inner.Unlock() - return fmt.Errorf("Run: %v is running", ifname) - } - handle.running = true - log.Trace("[DnsSupervisor] " + ifname + ": running") -- pkgsrc := gopacket.NewPacketSource(handle, layers.LayerTypeEthernet) -+ // we only decode UDP packets -+ pkgsrc := gopacket.NewPacketSource(handle, layers.LayerTypeDNS) - pkgsrc.NoCopy = true -+ //pkgsrc.Lazy = true - d.inner.Unlock() - packets := pkgsrc.Packets() - go func() { -- for { -- //心跳包,防止内存泄漏 -- packets <- gopacket.NewPacket(nil, layers.LinkTypeEthernet, gopacket.DecodeOptions{}) -- select { -- case <-handle.done: -- return -- default: -- time.Sleep(2 * time.Second) -- } -- } -+ <-handle.done -+ packets <- gopacket.NewPacket(nil, layers.LinkTypeEthernet, pkgsrc.DecodeOptions) - }() - out: - for packet := range packets { -@@ -113,5 +108,6 @@ out: - } - go handle.handlePacket(packet, ifname, whitelistDnsServers, whitelistDomains) - } -+ log.Trace("DnsSupervisor:%v closed", ifname) - return - } diff --git a/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch b/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch deleted file mode 100644 index a945dbdebef..00000000000 --- a/v2raya/patches/016-fix-unexpected-exit-does-not-apply-stop-steps.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 153b72ed623876ad73b731c2ec2344e9057d3c35 Mon Sep 17 00:00:00 2001 -From: mzz2017 -Date: Wed, 21 Sep 2022 16:50:24 +0800 -Subject: [PATCH] fix: unexpected exit does not apply stop steps - ---- - service/core/v2ray/process.go | 4 ++-- - service/core/v2ray/processManager.go | 8 +++----- - 2 files changed, 5 insertions(+), 7 deletions(-) - ---- a/core/v2ray/process.go -+++ b/core/v2ray/process.go -@@ -35,7 +35,7 @@ type Process struct { - tag2WhichIndex map[string]int - } - --func NewProcess(tmpl *Template, prestart func() error, poststart func() error) (process *Process, err error) { -+func NewProcess(tmpl *Template, prestart func() error, poststart func() error, stopfunc func(p *Process)) (process *Process, err error) { - process = &Process{ - template: tmpl, - } -@@ -111,7 +111,7 @@ func NewProcess(tmpl *Template, prestart - // canceled by v2rayA - return - } -- defer ProcessManager.Stop(false) -+ defer stopfunc(process) - var t []string - if p != nil { - if p.Success() { ---- a/core/v2ray/processManager.go -+++ b/core/v2ray/processManager.go -@@ -245,16 +245,14 @@ func (m *CoreProcessManager) Start(t *Te - return m.beforeStart(t) - }, func() error { - return m.afterStart(t) -+ }, func(p *Process) { -+ m.p = p -+ ProcessManager.Stop(false) - }) - if err != nil { - return err - } - m.p = process -- defer func() { -- if err != nil { -- m.stop(true) -- } -- }() - - configure.SetRunning(true) - return nil diff --git a/v2raya/patches/017-optimize-reduce-disk-writes.patch b/v2raya/patches/017-optimize-reduce-disk-writes.patch deleted file mode 100644 index 5437570c93a..00000000000 --- a/v2raya/patches/017-optimize-reduce-disk-writes.patch +++ /dev/null @@ -1,336 +0,0 @@ -From 00366b224b2e28861b80f677e8aa604c5d08dae3 Mon Sep 17 00:00:00 2001 -From: Kelo -Date: Sat, 29 Oct 2022 16:27:26 +0800 -Subject: [PATCH] optimize: reduce disk writes - ---- - service/db/boltdb.go | 43 +++++++++++++++++++++++++++++++---- - service/db/listOp.go | 48 +++++++++++++++++++++------------------ - service/db/plainOp.go | 52 ++++++++++++++++++++++++------------------- - service/db/setOp.go | 20 +++++++++-------- - 4 files changed, 105 insertions(+), 58 deletions(-) - ---- a/db/boltdb.go -+++ b/db/boltdb.go -@@ -1,13 +1,14 @@ - package db - - import ( -- "go.etcd.io/bbolt" -- "github.com/v2rayA/v2rayA/conf" -- "github.com/v2rayA/v2rayA/pkg/util/copyfile" -- "github.com/v2rayA/v2rayA/pkg/util/log" - "os" - "path/filepath" - "sync" -+ -+ "github.com/v2rayA/v2rayA/conf" -+ "github.com/v2rayA/v2rayA/pkg/util/copyfile" -+ "github.com/v2rayA/v2rayA/pkg/util/log" -+ "go.etcd.io/bbolt" - ) - - var once sync.Once -@@ -46,3 +47,37 @@ func DB() *bbolt.DB { - once.Do(initDB) - return db - } -+ -+// The function should return a dirty flag. -+// If the dirty flag is true and there is no error then the transaction is commited. -+// Otherwise, the transaction is rolled back. -+func Transaction(db *bbolt.DB, fn func(*bbolt.Tx) (bool, error)) error { -+ tx, err := db.Begin(true) -+ if err != nil { -+ return err -+ } -+ defer tx.Rollback() -+ dirty, err := fn(tx) -+ if err != nil { -+ _ = tx.Rollback() -+ return err -+ } -+ if !dirty { -+ return nil -+ } -+ return tx.Commit() -+} -+ -+// If the bucket does not exist, the dirty flag is setted -+func CreateBucketIfNotExists(tx *bbolt.Tx, name []byte, dirty *bool) (*bbolt.Bucket, error) { -+ bkt := tx.Bucket(name) -+ if bkt != nil { -+ return bkt, nil -+ } -+ bkt, err := tx.CreateBucket(name) -+ if err != nil { -+ return nil, err -+ } -+ *dirty = true -+ return bkt, nil -+} ---- a/db/listOp.go -+++ b/db/listOp.go -@@ -2,13 +2,14 @@ package db - - import ( - "fmt" -- "go.etcd.io/bbolt" -- jsoniter "github.com/json-iterator/go" -- "github.com/tidwall/gjson" -- "github.com/tidwall/sjson" - "reflect" - "sort" - "strconv" -+ -+ jsoniter "github.com/json-iterator/go" -+ "github.com/tidwall/gjson" -+ "github.com/tidwall/sjson" -+ "go.etcd.io/bbolt" - ) - - func ListSet(bucket string, key string, index int, val interface{}) (err error) { -@@ -31,20 +32,21 @@ func ListSet(bucket string, key string, - } - - func ListGet(bucket string, key string, index int) (b []byte, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - v := bkt.Get([]byte(key)) - if v == nil { -- return fmt.Errorf("ListGet: can't get element from an empty list") -+ return dirty, fmt.Errorf("ListGet: can't get element from an empty list") - } - r := gjson.GetBytes(v, strconv.Itoa(index)) - if r.Exists() { - b = []byte(r.Raw) -- return nil -+ return dirty, nil - } else { -- return fmt.Errorf("ListGet: no such element") -+ return dirty, fmt.Errorf("ListGet: no such element") - } - } - }) -@@ -79,24 +81,25 @@ func ListAppend(bucket string, key strin - } - - func ListGetAll(bucket string, key string) (list [][]byte, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - b := bkt.Get([]byte(key)) - if b == nil { -- return nil -+ return dirty, nil - } - parsed := gjson.ParseBytes(b) - if !parsed.IsArray() { -- return fmt.Errorf("ListGetAll: is not array") -+ return dirty, fmt.Errorf("ListGetAll: is not array") - } - results := parsed.Array() - for _, r := range results { - list = append(list, []byte(r.Raw)) - } - } -- return nil -+ return dirty, nil - }) - return list, err - } -@@ -143,21 +146,22 @@ func ListRemove(bucket, key string, inde - } - - func ListLen(bucket string, key string) (length int, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - b := bkt.Get([]byte(key)) - if b == nil { -- return nil -+ return dirty, nil - } - parsed := gjson.ParseBytes(b) - if !parsed.IsArray() { -- return fmt.Errorf("ListLen: is not array") -+ return dirty, fmt.Errorf("ListLen: is not array") - } - length = len(parsed.Array()) - } -- return nil -+ return dirty, nil - }) - return length, err - } ---- a/db/plainOp.go -+++ b/db/plainOp.go -@@ -2,50 +2,54 @@ package db - - import ( - "fmt" -- "go.etcd.io/bbolt" -+ - jsoniter "github.com/json-iterator/go" - "github.com/v2rayA/v2rayA/common" - "github.com/v2rayA/v2rayA/pkg/util/log" -+ "go.etcd.io/bbolt" - ) - - func Get(bucket string, key string, val interface{}) (err error) { -- return DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ return Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - if v := bkt.Get([]byte(key)); v == nil { -- return fmt.Errorf("Get: key is not found") -+ return dirty, fmt.Errorf("Get: key is not found") - } else { -- return jsoniter.Unmarshal(v, val) -+ return dirty, jsoniter.Unmarshal(v, val) - } - } - }) - } - - func GetRaw(bucket string, key string) (b []byte, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - v := bkt.Get([]byte(key)) - if v == nil { -- return fmt.Errorf("GetRaw: key is not found") -+ return dirty, fmt.Errorf("GetRaw: key is not found") - } - b = common.BytesCopy(v) -- return nil -+ return dirty, nil - } - }) - return b, err - } - - func Exists(bucket string, key string) (exists bool) { -- if err := DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ if err := Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - v := bkt.Get([]byte(key)) - exists = v != nil -- return nil -+ return dirty, nil - } - }); err != nil { - log.Warn("%v", err) -@@ -55,23 +59,25 @@ func Exists(bucket string, key string) ( - } - - func GetBucketLen(bucket string) (length int, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - length = bkt.Stats().KeyN - } -- return nil -+ return dirty, nil - }) - return length, err - } - - func GetBucketKeys(bucket string) (keys []string, err error) { -- err = DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ err = Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { -- return bkt.ForEach(func(k, v []byte) error { -+ return dirty, bkt.ForEach(func(k, v []byte) error { - keys = append(keys, string(k)) - return nil - }) ---- a/db/setOp.go -+++ b/db/setOp.go -@@ -4,8 +4,9 @@ import ( - "bytes" - "crypto/sha256" - "encoding/gob" -- "go.etcd.io/bbolt" -+ - "github.com/v2rayA/v2rayA/common" -+ "go.etcd.io/bbolt" - ) - - type set map[[32]byte]interface{} -@@ -28,26 +29,27 @@ func toSha256(val interface{}) (hash [32 - } - - func setOp(bucket string, key string, f func(m set) (readonly bool, err error)) (err error) { -- return DB().Update(func(tx *bbolt.Tx) error { -- if bkt, err := tx.CreateBucketIfNotExists([]byte(bucket)); err != nil { -- return err -+ return Transaction(DB(), func(tx *bbolt.Tx) (bool, error) { -+ dirty := false -+ if bkt, err := CreateBucketIfNotExists(tx, []byte(bucket), &dirty); err != nil { -+ return dirty, err - } else { - var m set - v := bkt.Get([]byte(key)) - if v == nil { - m = make(set) - } else if err := gob.NewDecoder(bytes.NewReader(v)).Decode(&m); err != nil { -- return err -+ return dirty, err - } - if readonly, err := f(m); err != nil { -- return err -+ return dirty, err - } else if readonly { -- return nil -+ return dirty, nil - } - if b, err := common.ToBytes(m); err != nil { -- return err -+ return dirty, err - } else { -- return bkt.Put([]byte(key), b) -+ return true, bkt.Put([]byte(key), b) - } - } - }) diff --git a/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch b/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch deleted file mode 100644 index b9815f4592b..00000000000 --- a/v2raya/patches/018-fix-do-not-rollback-closed-transaction.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 451912074ba1ba4000c66874876bc0a6b64cb5da Mon Sep 17 00:00:00 2001 -From: Kelo -Date: Sun, 30 Oct 2022 16:49:22 +0800 -Subject: [PATCH] fix: do not rollback closed transaction - ---- - service/db/boltdb.go | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/db/boltdb.go -+++ b/db/boltdb.go -@@ -56,14 +56,13 @@ func Transaction(db *bbolt.DB, fn func(* - if err != nil { - return err - } -- defer tx.Rollback() - dirty, err := fn(tx) - if err != nil { - _ = tx.Rollback() - return err - } - if !dirty { -- return nil -+ return tx.Rollback() - } - return tx.Commit() - } diff --git a/v2raya/patches/100-compat-v5.patch b/v2raya/patches/100-compat-v5.patch deleted file mode 100644 index ef358c9446a..00000000000 --- a/v2raya/patches/100-compat-v5.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/core/v2ray/process.go -+++ b/core/v2ray/process.go -@@ -226,6 +226,7 @@ func StartCoreProcess(ctx context.Contex - dir := path.Dir(v2rayBinPath) - var arguments = []string{ - v2rayBinPath, -+ "run", - "--config=" + asset.GetV2rayConfigPath(), - } - if confdir := asset.GetV2rayConfigDirPath(); confdir != "" { ---- a/core/v2ray/where/where.go -+++ b/core/v2ray/where/where.go -@@ -41,7 +41,7 @@ func GetV2rayServiceVersion() (variant V - if err != nil || len(v2rayPath) <= 0 { - return Unknown, "", fmt.Errorf("cannot find v2ray executable binary") - } -- out, err := exec.Command(v2rayPath, "-version").Output() -+ out, err := exec.Command(v2rayPath, "version").Output() - var fields []string - if fields = strings.Fields(strings.TrimSpace(string(out))); len(fields) < 2 { - return Unknown, "", fmt.Errorf("cannot parse version of v2ray") From 26a3ebc9dd5c3d2f78ff7e1712cb13e65bf445d6 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 28 Jan 2024 03:22:02 +0800 Subject: [PATCH 483/972] hysteria: update to 2.2.4 (#1390) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index aaeef43e021..eb40cf169a2 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.2.3 +PKG_VERSION:=2.2.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=123bc416b21bc7288a24504915d81b87651f4b1e1b93805a69864e9adccf1066 +PKG_HASH:=efd15d2ad1fc13a42d0e4a75f5c7396b1219e9923a10ccef2c6f45251266c9a5 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 21b670bce7aeeb4c959e87171dfbf5ac7ef86866 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 30 Jan 2024 03:20:10 +0800 Subject: [PATCH 484/972] shadowsocks-rust: build from source code (#1392) Co-authored-by: Signed-off-by: Tianling Shen --- shadowsocks-rust/Makefile | 55 +++++++++------------------------------ 1 file changed, 12 insertions(+), 43 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index cedb8b0948c..4eab536f5c0 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0-only # # Copyright (C) 2017-2020 Yousong Zhou -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2021-2023 ImmortalWrt.org include $(TOPDIR)/rules.mk @@ -9,49 +9,21 @@ PKG_NAME:=shadowsocks-rust PKG_VERSION:=1.17.1 PKG_RELEASE:=1 -PKG_SOURCE_HEADER:=shadowsocks-v$(PKG_VERSION) -PKG_SOURCE_BODY:=unknown-linux-musl -PKG_SOURCE_FOOTER:=tar.xz -PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-rust/releases/download/v$(PKG_VERSION)/ - -ifeq ($(ARCH),aarch64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).aarch64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=ac172822b579ac0fe59e4cc519e9f4ffee32ed069b10ffdc7421fb1bfdb8c03e -else ifeq ($(ARCH),arm) - # Referred to golang/golang-values.mk - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabi.$(PKG_SOURCE_FOOTER) - PKG_HASH:=2468a4a3077326661b696e2603850db06667c60c107842ce054e3f70d772952d - else - PKG_SOURCE:=$(PKG_SOURCE_HEADER).arm-$(PKG_SOURCE_BODY)eabihf.$(PKG_SOURCE_FOOTER) - PKG_HASH:=155e62782afcdf46ea88319253853c573e9542a7a8e91769e4a6dedbef1f1c35 - endif -else ifeq ($(ARCH),i386) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).i686-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=d71024f5f79ebe209173124ed6c733c546214f091f2552eb13217ea65aa54940 -else ifeq ($(ARCH),mips) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).mips-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=1a8ab79ef3904290c564933b3cff60f0b80211c769b25103adb910e1adb0a4d8 -else ifeq ($(ARCH),mipsel) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).mipsel-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=e3909ba7e07c89adf7818f8c4c07a980650e9a0fa05f522d41e9fcba636f2cb8 -else ifeq ($(ARCH),x86_64) - PKG_SOURCE:=$(PKG_SOURCE_HEADER).x86_64-$(PKG_SOURCE_BODY).$(PKG_SOURCE_FOOTER) - PKG_HASH:=8ee466b7919480f33db45c3995d4b0baa0c310470f88f7d65b7bb4a89e256624 -# Set the default value to make OpenWrt Package Checker happy -else - PKG_SOURCE:=dummy - PKG_HASH:=dummy -endif +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=97a1c8ebf7fd19de94cd6d0dfee398667e1f4e131ec8a37ecb7c3191af7cc75e PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE -include $(INCLUDE_DIR)/package.mk +PKG_BUILD_DEPENDS:=rust/host +PKG_BUILD_PARALLEL:=1 + +RUST_PKG_FEATURES:=local-redir -TAR_CMD:=$(HOST_TAR) -C $(PKG_BUILD_DIR) $(TAR_OPTIONS) +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/rust/rust-package.mk define Package/shadowsocks-rust/Default define Package/shadowsocks-rust-$(1) @@ -60,12 +32,12 @@ define Package/shadowsocks-rust/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocks-rust $(1) URL:=https://github.com/shadowsocks/shadowsocks-rust - DEPENDS:=@USE_MUSL @(aarch64||arm||i386||mips||mipsel||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) + DEPENDS:=$$(RUST_ARCH_DEPENDS) endef define Package/shadowsocks-rust-$(1)/install $$(INSTALL_DIR) $$(1)/usr/bin - $$(INSTALL_BIN) $$(PKG_BUILD_DIR)/$(1) $$(1)/usr/bin + $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/bin/$(1) $$(1)/usr/bin/ endef endef @@ -77,9 +49,6 @@ define shadowsocks-rust/templates endef $(eval $(call shadowsocks-rust/templates)) -define Build/Compile -endef - $(foreach component,$(SHADOWSOCKS_COMPONENTS), \ $(eval $(call BuildPackage,shadowsocks-rust-$(component))) \ ) From 3a77e751ea20f3d4b0146e5d759d5c6109d3c624 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:06:07 +0800 Subject: [PATCH 485/972] support kcptun port range --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3bdb464ccdc..704741d9141 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -1187,7 +1187,7 @@ if is_finded("kcptun-client") then o:depends("type", "ss") o = s:option(Value, "kcp_port", translate("KcpTun Port")) - o.datatype = "port" + o.datatype = "portrange" o.default = 4000 o:depends("type", "ssr") o:depends("type", "ss") From 1ca1748c59d39213e10d7b4d9fbfb0839d22a7c5 Mon Sep 17 00:00:00 2001 From: FluffyTigerfear <20527882+AmberisMyShiba@users.noreply.github.com> Date: Wed, 31 Jan 2024 15:07:07 +0800 Subject: [PATCH 486/972] Fix the hysteria configuration's generation function if some values do not exist. Improve more compatibilities and stabilities for gen_config.lua to create a hysteria config-file Update gen_config.lua --- .../root/usr/share/shadowsocksr/gen_config.lua | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 02603c3cf42..91498b0bfcc 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -392,7 +392,7 @@ local ss = { reuse_port = true } local hysteria = { - server = (server.port_range and (server.server .. ":" .. server.port_range)) or (server.server_port and (server.server .. ":" .. server.server_port)), + server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. server.port_range) or server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. server.port_range or server.server .. ":443")), bandwidth = { up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil @@ -401,12 +401,13 @@ local hysteria = { listen = "0.0.0.0:" .. tonumber(socks_port), disable_udp = false } or nil, - transport = { - type = server.transport_protocol, - udp = { - hopInterval = tonumber(server.hopinterval) and tonumber(server.hopinterval) .. "s" or "30s" - } - }, + transport = (server.transport_protocol) and { + type = (server.transport_protocol) or udp, + udp = (server.port_range and (server.hopinterval) and { + hopInterval = (server.port_range and (tonumber(server.hopinterval) .. "s") or nil) + } or nil) + } or nil, + --[[ tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { listen = "0.0.0.0:" .. tonumber(local_port) From 2c2fd4d17cdbf9ca7dff3ca07b3ea8f1ce2279d6 Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:27:58 +0800 Subject: [PATCH 487/972] update for hysteria client configrations --- .../model/cbi/shadowsocksr/client-config.lua | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 704741d9141..eb716f0626f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -323,33 +323,39 @@ o = s:option(Value, "hy2_auth", translate("Users Authentication")) o:depends("type", "hysteria") o.rmempty = false -o = s:option(ListValue, "transport_protocol", translate("Protocol")) +o = s:option(Flag, "flag_port_hopping", translate("Enable Port Hopping")) o:depends("type", "hysteria") -o:value("udp", translate("udp")) -o.default = "udp" +o.rmempty = true +o.default = "0" + +o = s:option(Value, "port_range", translate("Port Range")) +o:depends({type = "hysteria", flag_port_hopping = true}) +o.datatype = "portrange" o.rmempty = true -o = s:option(Flag, "port_hopping", translate("Enable Port Hopping")) +o = s:option(Flag, "flag_transport", translate("Enable Transport Protocol Settings")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Value, "hopinterval", translate("Port Hopping Interval(Unit:Second)")) -o:depends({type = "hysteria", port_hopping = true}) -o.datatype = "uinteger" +o = s:option(ListValue, "transport_protocol", translate("Transport Protocol")) +o:depends({type = "hysteria", flag_transport = true}) +o:value("udp", translate("UDP")) +o.default = "udp" o.rmempty = true -o.default = "30" -o = s:option(Value, "port_range", translate("Port Range")) -o:depends({type = "hysteria", port_hopping = true}) +o = s:option(Value, "hopinterval", translate("Hop Interval(Unit:Second)")) +o:depends({type = "hysteria", flag_transport = true, flag_port_hopping = true}) +o.datatype = "uinteger" o.rmempty = true +o.default = "30" -o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) +o = s:option(Flag, "flag_obfs", translate("Enable Obfuscation")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Flag, "flag_obfs", translate("Enable Obfuscation")) +o = s:option(Flag, "lazy_mode", translate("Lazy Mode")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" @@ -369,6 +375,11 @@ o:depends("type", "hysteria") o.rmempty = true o.default = "0" +o = s:option(Flag, "disablepathmtudiscovery", translate("Disable QUIC path MTU discovery.")) +o:depends({type = "hysteria",flag_quicparam = "1"}) +o.rmempty = true +o.default = false + --[[Hysteria2 QUIC parameters setting]] o = s:option(Value, "initstreamreceivewindow", translate("QUIC initStreamReceiveWindow")) o:depends({type = "hysteria", flag_quicparam = "1"}) @@ -406,11 +417,6 @@ o.rmempty = true o.datatype = "uinteger" o.default = "10" -o = s:option(Flag, "disablepathmtudiscovery", translate("Disable Path MTU discovery")) -o:depends({type = "hysteria", flag_quicparam = "1"}) -o.rmempty = true -o.default = false - --[[ Shadow-TLS Options ]] o = s:option(ListValue, "shadowtls_protocol", translate("shadowTLS protocol Version")) @@ -902,9 +908,7 @@ o:depends("reality", true) o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) -o:depends("tls", true) -o:depends("type", "tuic") -o:depends("type", "hysteria") +o:depends({type = "tuic", tls = true}) o.rmempty = true -- [[ allowInsecure ]]-- From a68e48f6fbab971e99c8776cb444934403911a2d Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:44:59 +0800 Subject: [PATCH 488/972] fix hysteria starting log output --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a9a7e57a8f9..9f2690243a3 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -433,7 +433,7 @@ start_udp() { hysteria) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" + echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | grep Version | awk '{print "Hysteria2:" $2}') Started!" ;; tuic) # FIXME: ipt2socks cannot handle udp reply from tuic @@ -564,7 +564,7 @@ start_shunt() { fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file shunt_dns_command - echolog "shunt:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" + echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2})' Started!" ;; tuic) local chain_shunt_port="30${tmp_shunt_port}" @@ -663,7 +663,7 @@ start_local() { if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file - echolog "Global_Socks5:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" + echolog "Global_Socks5:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2}') Started!" fi ;; tuic) @@ -758,7 +758,7 @@ Start_Run() { hysteria) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file - echolog "Main node:$($(first_type hysteria) version | awk '{print "Hhysteria2: " $2}' | head -9 | tail +9) Started!" + echolog "Main node:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2}') Started!" ;; tuic) local PARAM From afecdcbb096367275f01af328f881610f2172d51 Mon Sep 17 00:00:00 2001 From: AmberisMyShiba <20527882+AmberisMyShiba@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:50:39 +0800 Subject: [PATCH 489/972] add translations msgid --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 8d3bdd7eae3..6e70883eebe 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -181,6 +181,9 @@ msgstr "注意: 如果服务器使用 userpass 验证,格式必须是 userna msgid "Enable Port Hopping" msgstr "启用端口跃迁" +msgid "Enable Transport Protocol Settings" +msgstr "启用传输协议设置" + msgid "Port Range" msgstr "端口范围值" From b6a810065733f85b272b15ec39edd36dd0cf65b1 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 3 Feb 2024 02:21:10 +0800 Subject: [PATCH 490/972] shadowsocks-rust: update to 1.17.2 (#1395) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 4eab536f5c0..b7a300e08ff 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.17.1 +PKG_VERSION:=1.17.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=97a1c8ebf7fd19de94cd6d0dfee398667e1f4e131ec8a37ecb7c3191af7cc75e +PKG_HASH:=79d3d5204fad725bd2712f29066e71d14a329c3ea956b708cb6ea64bb0316a0b PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 190b1ac4ed5d5168d07966f9749c98c87228cfc7 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 9 Feb 2024 00:25:27 +0800 Subject: [PATCH 491/972] shadowsocks-rust: update to 1.18.0 (#1400) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index b7a300e08ff..2872a93a5d9 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.17.2 +PKG_VERSION:=1.18.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=79d3d5204fad725bd2712f29066e71d14a329c3ea956b708cb6ea64bb0316a0b +PKG_HASH:=e854743ecef9ab3b371fdcb139e6f4452831b487d449c97c2129abbf4f51e863 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 246aedf99b1574c513d004b99465000507fd4649 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Feb 2024 12:30:30 +0800 Subject: [PATCH 492/972] luci-app-ssr-plus: Fix typo erro Unable to start due to code format error... --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 9f2690243a3..49eecec56d5 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -433,7 +433,7 @@ start_udp() { hysteria) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port ln_start_bin $(first_type hysteria) hysteria client --config $udp_config_file - echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | grep Version | awk '{print "Hysteria2:" $2}') Started!" + echolog "UDP TPROXY Relay:$($(first_type "hysteria") version | grep Version | awk '{print "Hysteria2: " $2}') Started!" ;; tuic) # FIXME: ipt2socks cannot handle udp reply from tuic @@ -564,7 +564,7 @@ start_shunt() { fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file shunt_dns_command - echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2})' Started!" + echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!" ;; tuic) local chain_shunt_port="30${tmp_shunt_port}" @@ -663,7 +663,7 @@ start_local() { if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port ln_start_bin $(first_type hysteria) hysteria client --config $local_config_file - echolog "Global_Socks5:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2}') Started!" + echolog "Global_Socks5:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!" fi ;; tuic) @@ -758,7 +758,7 @@ Start_Run() { hysteria) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port ln_start_bin $(first_type hysteria) hysteria client --config $tcp_config_file - echolog "Main node:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2:" $2}') Started!" + echolog "Main node:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!" ;; tuic) local PARAM From ea568fd75d772757e679c9276281ed0158949e6a Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:02:22 +0800 Subject: [PATCH 493/972] luci-app-ssr-plus: Update translate --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 6e70883eebe..c5192ae4122 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -79,6 +79,9 @@ msgstr "流控(Flow)" msgid "Transport" msgstr "传输协议" +msgid "Transport Protocol" +msgstr "传输协议" + msgid "Protocol" msgstr "传输协议" From e103ed29fd1a9efe8a6e8efcc48d071f7152b316 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:04:37 +0800 Subject: [PATCH 494/972] luci-app-ssr-plus: Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index eb716f0626f..67ec7fb053f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -355,7 +355,7 @@ o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Flag, "lazy_mode", translate("Lazy Mode")) +o = s:option(Flag, "lazy_mode", translate("Enable Lazy Mode")) o:depends("type", "hysteria") o.rmempty = true o.default = "0" From 7535384863f13fe1e669f7d7905d61f14d079d0a Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Feb 2024 20:07:21 +0800 Subject: [PATCH 495/972] luci-app-ssr-plus: Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 91498b0bfcc..688e184c2e9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -435,7 +435,7 @@ local hysteria = { auth = server.hy2_auth, tls = (server.tls_host) and { sni = server.tls_host, - alpn = server.tls_alpn or nil, + --alpn = server.tls_alpn or nil, insecure = (server.insecure == "1") and true or false, pinSHA256 = (server.insecure == "1") and server.pinsha256 or nil } or { From 3d17bfdd3a07321eb729dff0de13e9a2605230a0 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 21 Feb 2024 00:49:29 +0800 Subject: [PATCH 496/972] shadowsocks-rust: update to 1.18.1 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 2872a93a5d9..364903229b4 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.18.0 +PKG_VERSION:=1.18.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e854743ecef9ab3b371fdcb139e6f4452831b487d449c97c2129abbf4f51e863 +PKG_HASH:=c2e1d8838e4578c0a6b0de6e1da00e9ece2d780dc452117fd109bb091e5d106f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 88c94228b1057d20ec8f940798d282dc6ee548fc Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 21 Feb 2024 12:54:14 +0800 Subject: [PATCH 497/972] luci-app-ssr-plus: Update translate --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 --- 1 file changed, 3 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index c5192ae4122..8bd7ced1aa1 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -264,9 +264,6 @@ msgstr "QUIC 流接收窗口" msgid "Lazy Start" msgstr "延迟启动" -msgid "Disable Path MTU discovery" -msgstr "禁用 MTU 探测" - msgid "Enable Tunnel(DNS)" msgstr "启用隧道(DNS)转发" From 8a3ea91d9ec59e0640b8034e7f04e9714a31c9f9 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 26 Feb 2024 20:18:55 +0800 Subject: [PATCH 498/972] xray-core: update to 1.8.8 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 98d55c21352..d040b674ca1 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.7 +PKG_VERSION:=1.8.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e8f46177d792b89700f164ca28fbf1a3c7d95a3ecf98871cb0dd5e474b46a859 +PKG_HASH:=156105b89465ca948971a774c0bc7e56ee68e764bdfde58923037dc837aab4be PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 65933beb142df6124f245a0ab9c272a788507e87 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:29:55 +0800 Subject: [PATCH 499/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme --- luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm index 5f6a673a6d0..4a16adce695 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/check.htm @@ -13,9 +13,9 @@ if (s) { if (rv.ret=="0") - s.innerHTML =""+"<%:Connect OK%>"+""; + s.innerHTML =""+"<%:Connect OK%>"+""; else - s.innerHTML =""+"<%:Connect Error%>"+""; + s.innerHTML =""+"<%:Connect Error%>"+""; } btn.disabled = false; btn.value = '<%:Check Connect%>'; From 80847275b52a810297c4260308fce2ebf7a32811 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:32:41 +0800 Subject: [PATCH 500/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme --- luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm index da89fd53778..ea4113d878b 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/refresh.htm @@ -15,13 +15,13 @@ switch (rv.ret) { case 0: - s.innerHTML =""+"<%:Refresh OK!%> "+"<%:Total Records:%>"+rv.retcount+""; + s.innerHTML =""+"<%:Refresh OK!%> "+"<%:Total Records:%>"+rv.retcount+""; break; case 1: - s.innerHTML =""+"<%:No new data!%> "+""; + s.innerHTML =""+"<%:No new data!%> "+""; break; default: - s.innerHTML =""+"<%:Refresh Error!%> "+""; + s.innerHTML =""+"<%:Refresh Error!%> "+""; break; } } From 14e1cbac469b9abd2713528b99ccab34a0b44b5f Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:34:34 +0800 Subject: [PATCH 501/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme --- luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm index 1882ac568ae..ff0c4860f2d 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm @@ -7,7 +7,7 @@ return false; } if (reset != "reset") { - s.innerHTML = "<%:The content entered is incorrect!%>"; + s.innerHTML = "<%:The content entered is incorrect!%>"; return false; } btn.disabled = true; @@ -15,7 +15,7 @@ murl=dataname; XHR.get('<%=luci.dispatcher.build_url("admin", "services", "shadowsocksr","reset")%>', { set:murl }, function(x,rv) { btn.value = '<%:Reset complete%>'; - s.innerHTML = "<%:Reset complete%>"; + s.innerHTML = "<%:Reset complete%>"; }); return false; } From 1a1645b260eab4aba7657f55ea72411c8283fbc9 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:39:04 +0800 Subject: [PATCH 502/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme --- .../luasrc/view/shadowsocksr/ssrurl.htm | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 5eecbee6a51..479d7e2f5af 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -69,9 +69,9 @@ textarea.select(); try { document.execCommand("copy"); // Security exception may be thrown by some browsers. - s.innerHTML = "<%:Copy SSR to clipboard successfully.%>"; + s.innerHTML = "<%:Copy SSR to clipboard successfully.%>"; } catch (ex) { - s.innerHTML = "<%:Unable to copy SSR to clipboard.%>"; + s.innerHTML = "<%:Unable to copy SSR to clipboard.%>"; } finally { document.body.removeChild(textarea); } @@ -83,7 +83,7 @@ if (!s) return false; var ssrurl = prompt("<%:Paste sharing link here%>", ""); if (ssrurl == null || ssrurl == "") { - s.innerHTML = "<%:User cancelled.%>"; + s.innerHTML = "<%:User cancelled.%>"; return false; } s.innerHTML = ""; @@ -118,7 +118,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = params.get("insecure") ? true : false; document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "ss": var url0, param = ""; @@ -164,7 +164,7 @@ if (param != undefined) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; } else { var sstr = b64decsafe(url0); document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = ssu[0]; @@ -179,7 +179,7 @@ if (param != undefined) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; } return false; case "ssr": @@ -212,7 +212,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.protocol_param')[0].value = dictvalue(pdict, 'protoparam'); var rem = pdict['remarks']; if (typeof (rem) != 'undefined' && rem != '' && rem.length > 0) document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = b64decutf8safe(rem); - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "trojan": try { @@ -234,7 +234,7 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = url.searchParams.get("sni"); - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vmess": var sstr = b64DecodeUnicode(ssu[1]); @@ -287,7 +287,7 @@ } document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vless": try { @@ -357,10 +357,10 @@ } break; } - s.innerHTML = "<%:Import configuration information successfully.%>"; + s.innerHTML = "<%:Import configuration information successfully.%>"; return false; default: - s.innerHTML = "<%:Invalid format.%>"; + s.innerHTML = "<%:Invalid format.%>"; return false; } } From d4eafcf073a706fcfeef849a1ab4fab4c333befd Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 26 Feb 2024 21:41:30 +0800 Subject: [PATCH 503/972] luci-app-ssr-plus: adapter luci-theme-openwrt-2020 theme --- .../luasrc/view/shadowsocksr/server_list.htm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm index 259cb7fff96..d0b77f10f8c 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm @@ -18,7 +18,7 @@ const wsPath = wsPaths[index]; const tls = tlss[index]; if (!dom) res() - port.innerHTML = 'connect'; + port.innerHTML = 'connect'; XHR.get('<%=luci.dispatcher.build_url("admin/services/shadowsocksr/ping")%>', { index, domain: dom.getAttribute("hint"), @@ -34,11 +34,11 @@ if (result.ping < 200) col = '#ff7700'; if (result.ping < 100) col = '#249400'; } - dom.innerHTML = `${(result.ping ? result.ping : "--") + " ms"}` + dom.innerHTML = `${(result.ping ? result.ping : "--") + " ms"}` if (result.socket) { - port.innerHTML = 'ok'; + port.innerHTML = 'ok'; } else { - port.innerHTML = 'fail'; + port.innerHTML = 'fail'; } res(); }); From 040df9bc1529a0cc342d1da22a672b4f6be6ccbb Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 26 Feb 2024 23:28:44 +0800 Subject: [PATCH 504/972] xray-core: compatible with go1.21.5 --- xray-core/patches/010-go1.21.patch | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 xray-core/patches/010-go1.21.patch diff --git a/xray-core/patches/010-go1.21.patch b/xray-core/patches/010-go1.21.patch new file mode 100644 index 00000000000..a95d4181118 --- /dev/null +++ b/xray-core/patches/010-go1.21.patch @@ -0,0 +1,10 @@ +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/xtls/xray-core + +-go 1.22 ++go 1.21.5 + + require ( + github.com/ghodss/yaml v1.0.1-0.20220118164431-d8423dcdf344 From 91fdd72bccd1b4bb739d04d7d2cedabe9b61bb9f Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 26 Feb 2024 23:18:20 +0800 Subject: [PATCH 505/972] xray-plugin: update to 1.8.8 --- xray-plugin/Makefile | 4 ++-- .../0001-fix-go-1.21-build-error.patch | 24 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 xray-plugin/patches/0001-fix-go-1.21-build-error.patch diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 47a92706dbe..e1776b28515 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.7 +PKG_VERSION:=1.8.8 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6ee5ed3a6bbecc41dba99a107849de00e2e72d99fdea4f9af8ea95783cb38528 +PKG_HASH:=bafef6d458337b85fc258d93592a437f691914e88753054515176ee6ea9844c0 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/xray-plugin/patches/0001-fix-go-1.21-build-error.patch b/xray-plugin/patches/0001-fix-go-1.21-build-error.patch new file mode 100644 index 00000000000..d214f008908 --- /dev/null +++ b/xray-plugin/patches/0001-fix-go-1.21-build-error.patch @@ -0,0 +1,24 @@ +From 45368856980e030ddd95221289304c33e2749aa6 Mon Sep 17 00:00:00 2001 +From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> +Date: Mon, 26 Feb 2024 15:45:35 +0000 +Subject: [PATCH] fix go 1.21 build error + +--- + go.mod | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/go.mod b/go.mod +index 71a9a02..077ac79 100644 +--- a/go.mod ++++ b/go.mod +@@ -1,6 +1,6 @@ + module github.com/teddysun/xray-plugin + +-go 1.22 ++go 1.21.5 + + require ( + github.com/xtls/xray-core v1.8.8 +-- +2.34.1 + From 2b71afd85f2fabc5dc05371103a352680b2f599b Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 28 Feb 2024 00:18:09 +0800 Subject: [PATCH 506/972] Revert "xray-plugin: update to 1.8.8" (#1413) --- xray-plugin/Makefile | 4 ++-- .../0001-fix-go-1.21-build-error.patch | 24 ------------------- 2 files changed, 2 insertions(+), 26 deletions(-) delete mode 100644 xray-plugin/patches/0001-fix-go-1.21-build-error.patch diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index e1776b28515..47a92706dbe 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.8 +PKG_VERSION:=1.8.7 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=bafef6d458337b85fc258d93592a437f691914e88753054515176ee6ea9844c0 +PKG_HASH:=6ee5ed3a6bbecc41dba99a107849de00e2e72d99fdea4f9af8ea95783cb38528 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/xray-plugin/patches/0001-fix-go-1.21-build-error.patch b/xray-plugin/patches/0001-fix-go-1.21-build-error.patch deleted file mode 100644 index d214f008908..00000000000 --- a/xray-plugin/patches/0001-fix-go-1.21-build-error.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 45368856980e030ddd95221289304c33e2749aa6 Mon Sep 17 00:00:00 2001 -From: Beginner-Go <70857188+Beginner-Go@users.noreply.github.com> -Date: Mon, 26 Feb 2024 15:45:35 +0000 -Subject: [PATCH] fix go 1.21 build error - ---- - go.mod | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/go.mod b/go.mod -index 71a9a02..077ac79 100644 ---- a/go.mod -+++ b/go.mod -@@ -1,6 +1,6 @@ - module github.com/teddysun/xray-plugin - --go 1.22 -+go 1.21.5 - - require ( - github.com/xtls/xray-core v1.8.8 --- -2.34.1 - From fa80fc06b12fbd4a27b2a04057644383bc591049 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 1 Mar 2024 00:44:04 +0800 Subject: [PATCH 507/972] mosdns: drop GO_PKG_TARGET_VARS variable --- mosdns/Makefile | 2 -- 1 file changed, 2 deletions(-) diff --git a/mosdns/Makefile b/mosdns/Makefile index c4a68f16cef..7d1f6ff76c2 100644 --- a/mosdns/Makefile +++ b/mosdns/Makefile @@ -36,8 +36,6 @@ define Package/mosdns DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0 - define Package/mosdns/install $(call GoPackage/Package/Install/Bin,$(1)) endef From bcd28d8a87755f3e5825d00a068d2c394848a0ac Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 1 Mar 2024 00:51:58 +0800 Subject: [PATCH 508/972] Update README.md --- README.md | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c62b7def5ee..80f35481888 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ ## Setup instruction +Install clang first. + ### Method 1 - Clone this repo directly 1. Clone this repo: @@ -73,12 +75,6 @@ ### Note #### ⚠ For OpenWrt 21.02 or lower version -You have to manually upgrade Golang toolchain to [1.19](https://github.com/openwrt/packages/tree/openwrt-22.03/lang/golang) or higher to compile Xray-core. +You have to manually upgrade Golang toolchain to [1.21](https://github.com/openwrt/packages/tree/openwrt-23.05/lang/golang) or higher to compile Xray-core. -e.g.: -```bash -./scripts/feeds update packages -rm -rf feeds/packages/lang/golang -svn co https://github.com/openwrt/packages/branches/openwrt-22.03/lang/golang feeds/packages/lang/golang -``` From 76c963208c324cb24121b343332bf390741d9213 Mon Sep 17 00:00:00 2001 From: shenyunet Date: Fri, 1 Mar 2024 19:36:21 +0800 Subject: [PATCH 509/972] luci-app-ssr-plus: Enhance proxy port configuration with custom port support --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua | 4 ++++ luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 8864d0be78e..3b91739dc32 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -87,6 +87,10 @@ o.default = gfw o = s:option(ListValue, "dports", translate("Proxy Ports")) o:value("1", translate("All Ports")) o:value("2", translate("Only Common Ports")) +o:value("3", translate("Custom Ports")) +cp = s:option(Value, "custom_ports", translate("Enter Custom Ports")) +cp:depends("dports", "3") -- 仅当用户选择“Custom Ports”时显示 +cp.placeholder = "e.g., 80,443,8080" o.default = 1 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode")) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 49eecec56d5..e9a439e2d0d 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -1013,6 +1013,11 @@ start_rules() { all) echo "-z" ;; esac } + if [ "$(uci_get_by_type global dports)" == "3" ]; then + local custom_ports=$(uci_get_by_name $GLOBAL_SERVER custom_ports) #custom_ports 存储了用户自定义的端口 + if [ -n "$custom_ports" ]; then + local proxyport="-m multiport --dports $custom_ports" + fi if [ "$(uci_get_by_type global dports 1)" == "2" ]; then local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418" fi @@ -1141,6 +1146,7 @@ reset() { set shadowsocksr.@global[0].threads='0' set shadowsocksr.@global[0].run_mode='router' set shadowsocksr.@global[0].dports='2' + set shadowsocksr.@global[0].custom_ports='80,443' set shadowsocksr.@global[0].pdnsd_enable='1' set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53' set shadowsocksr.@global[0].monitor_enable='1' From acf5fb5b969ff91d263214776e1157ddb53b6a86 Mon Sep 17 00:00:00 2001 From: shenyunet Date: Fri, 1 Mar 2024 19:51:15 +0800 Subject: [PATCH 510/972] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=B0=8F=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index e9a439e2d0d..9d22e62aa72 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -1014,13 +1014,16 @@ start_rules() { esac } if [ "$(uci_get_by_type global dports)" == "3" ]; then - local custom_ports=$(uci_get_by_name $GLOBAL_SERVER custom_ports) #custom_ports 存储了用户自定义的端口 - if [ -n "$custom_ports" ]; then - local proxyport="-m multiport --dports $custom_ports" - fi - if [ "$(uci_get_by_type global dports 1)" == "2" ]; then - local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418" + local custom_ports=$(uci_get_by_name $GLOBAL_SERVER custom_ports) # custom_ports 存储了用户自定义的端口 + if [ -n "$custom_ports" ]; then + local proxyport="-m multiport --dports $custom_ports" + fi + else + if [ "$(uci_get_by_type global dports 1)" == "2" ]; then + local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418" + fi fi + get_arg_out() { case "$(uci_get_by_type access_control router_proxy 1)" in 1) echo "-o" ;; From 4d5fb9278033f89952f386a07d3eff101132a8b1 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 2 Mar 2024 03:39:36 +0800 Subject: [PATCH 511/972] luci-app-ssr-plus: update translate (#1416) --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 8bd7ced1aa1..5534dbd1c17 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -780,6 +780,12 @@ msgstr "所有端口(默认)" msgid "Only Common Ports" msgstr "仅常用端口(不走 P2P 流量到代理)" +msgid "Custom Ports" +msgstr "自定义端口" + +msgid "Enter Custom Ports" +msgstr "输入自定义端口" + msgid "Socket Connected" msgstr "连接测试" From 4ae3148919e894ac72394af32f77ab255face193 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 3 Mar 2024 19:18:28 +0800 Subject: [PATCH 512/972] microsocks: update to 1.0.4 (#1417) --- microsocks/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsocks/Makefile b/microsocks/Makefile index ebd4b59fb64..9f3b13a9e30 100644 --- a/microsocks/Makefile +++ b/microsocks/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=microsocks -PKG_VERSION:=1.0.3 +PKG_VERSION:=1.0.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6801559b6f8e17240ed8eef17a36eea8643412b5a7476980fd4e24b02a021b82 +PKG_HASH:=130127a87f55870f18fbe47a64d9b9533020e2900802d36a0f6fd2b074313deb PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING From 6a352e64d210008487033f8a5fbf161fe570fa15 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 11 Mar 2024 03:40:01 +0800 Subject: [PATCH 513/972] hysteria: update to 2.3.0 (#1421) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index eb40cf169a2..50a5e5ae983 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.2.4 +PKG_VERSION:=2.3.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=efd15d2ad1fc13a42d0e4a75f5c7396b1219e9923a10ccef2c6f45251266c9a5 +PKG_HASH:=46cfe0cb25938f837ff9046f2dd20ad76e75c9c9b995ce99ceaa3976a626701b PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 598383eb0dc3b3c8832b946e1f33680b0844c2de Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 13 Mar 2024 22:26:51 +0800 Subject: [PATCH 514/972] xray-plugin: update to 1.8.9 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 47a92706dbe..a8e96d36e2b 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.7 +PKG_VERSION:=1.8.9 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6ee5ed3a6bbecc41dba99a107849de00e2e72d99fdea4f9af8ea95783cb38528 +PKG_HASH:=728ad3eacc089af4a4f0e0aa539e1c6922ae391905f7b45bf5dc89f256f5b1c9 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 0d06648fb71e69a209050da09ed467a5ff8eb306 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 13 Mar 2024 22:28:35 +0800 Subject: [PATCH 515/972] xray-plugin: update to 1.8.9 --- xray-plugin/patches/010-go1.21.patch | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 xray-plugin/patches/010-go1.21.patch diff --git a/xray-plugin/patches/010-go1.21.patch b/xray-plugin/patches/010-go1.21.patch new file mode 100644 index 00000000000..723de095f9c --- /dev/null +++ b/xray-plugin/patches/010-go1.21.patch @@ -0,0 +1,27 @@ +--- a/go.mod ++++ b/go.mod +@@ -1,9 +1,9 @@ + module github.com/teddysun/xray-plugin + +-go 1.22 ++go 1.21.5 + + require ( +- github.com/xtls/xray-core v1.8.9 ++ github.com/xtls/xray-core v1.8.7 + google.golang.org/protobuf v1.33.0 + ) + +--- a/go.sum ++++ b/go.sum +@@ -157,8 +157,8 @@ github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1Y + github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= + github.com/xtls/reality v0.0.0-20231112171332-de1173cf2b19 h1:capMfFYRgH9BCLd6A3Er/cH3A9Nz3CU2KwxwOQZIePI= + github.com/xtls/reality v0.0.0-20231112171332-de1173cf2b19/go.mod h1:dm4y/1QwzjGaK17ofi0Vs6NpKAHegZky8qk6J2JJZAE= +-github.com/xtls/xray-core v1.8.9 h1:wefcON0behu4DoQvCKJYZKsJlSvNhyq2I7vC2fxLFcY= +-github.com/xtls/xray-core v1.8.9/go.mod h1:XDE4f422qJKAU3hNDSNZyWrOHvn9kF8UHVdyOzU38rc= ++github.com/xtls/xray-core v1.8.7 h1:lb8O1l3/eAg3YAXA6tLm5M6N7BsX8wxW9sJLjU3dHkA= ++github.com/xtls/xray-core v1.8.7/go.mod h1:9rFpflfQbgFeH1VKJw7yUmEy7myOyDCgNXXl0bmmyOo= + go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= + go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= + go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= From 6cc3f5d4dc39c97e1ddecfe8d1e0f159fc8140fb Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Thu, 14 Mar 2024 02:49:45 +0800 Subject: [PATCH 516/972] shadowsocks-rust: update to 1.18.2 (#1424) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 364903229b4..5e76eb785ef 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.18.1 +PKG_VERSION:=1.18.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c2e1d8838e4578c0a6b0de6e1da00e9ece2d780dc452117fd109bb091e5d106f +PKG_HASH:=b772792e2d3f8ccc3a5d5255bfc65b85801b97e1139bbb0e50d39a91fb7d9e61 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From e5779259ea17341a431fbddd2809a6b27b2aebc8 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 15 Mar 2024 22:50:00 +0800 Subject: [PATCH 517/972] luci-app-ssr-plus: fix translate --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 67ec7fb053f..46907b0d923 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -344,7 +344,7 @@ o:value("udp", translate("UDP")) o.default = "udp" o.rmempty = true -o = s:option(Value, "hopinterval", translate("Hop Interval(Unit:Second)")) +o = s:option(Value, "hopinterval", translate("Port Hopping Interval(Unit:Second)")) o:depends({type = "hysteria", flag_transport = true, flag_port_hopping = true}) o.datatype = "uinteger" o.rmempty = true @@ -375,7 +375,7 @@ o:depends("type", "hysteria") o.rmempty = true o.default = "0" -o = s:option(Flag, "disablepathmtudiscovery", translate("Disable QUIC path MTU discovery.")) +o = s:option(Flag, "disablepathmtudiscovery", translate("Disable QUIC path MTU discovery")) o:depends({type = "hysteria",flag_quicparam = "1"}) o.rmempty = true o.default = false From ee93e8828acb059d99e4786d84ea3aa6524d4377 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 15 Mar 2024 22:53:19 +0800 Subject: [PATCH 518/972] luci-app-ssr-plus: fix translate --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 5534dbd1c17..82cd1390425 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -264,6 +264,9 @@ msgstr "QUIC 流接收窗口" msgid "Lazy Start" msgstr "延迟启动" +msgid "Disable QUIC path MTU discovery" +msgstr "禁用 QUIC 启用 MTU 探测" + msgid "Enable Tunnel(DNS)" msgstr "启用隧道(DNS)转发" From 290831fa4b42d942cbbf26b584f1c61037deaca9 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:17:00 +0800 Subject: [PATCH 519/972] shadowsocksr-libev: Upgrade PCRE2 & drop libopenssl-legacy depends --- shadowsocksr-libev/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index f4b96be160b..9b7160c130d 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -34,7 +34,7 @@ define Package/shadowsocksr-libev/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocksr-libev ssr-$(1) URL:=https://github.com/shadowsocksrr/shadowsocksr-libev - DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre +libudns +zlib +libopenssl-legacy + DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib endef define Package/shadowsocksr-libev-ssr-$(1)/install From b0e5a5c3f1795d717128e338c93feeb7f76da10f Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:21:39 +0800 Subject: [PATCH 520/972] shadowsocksr-libev: Upgrade PCRE2 & drop libopenssl-legacy depends * shadowsocksr-libev: Upgrade PCRE to PCRE2 --- shadowsocksr-libev/src/server/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocksr-libev/src/server/Makefile.in b/shadowsocksr-libev/src/server/Makefile.in index 3bfa53eaafd..17dad9597bc 100644 --- a/shadowsocksr-libev/src/server/Makefile.in +++ b/shadowsocksr-libev/src/server/Makefile.in @@ -105,7 +105,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/mbedtls.m4 \ - $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre.m4 \ + $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre2.m4 \ $(top_srcdir)/m4/polarssl.m4 \ $(top_srcdir)/m4/stack-protector.m4 $(top_srcdir)/m4/zlib.m4 \ $(top_srcdir)/libev/libev.m4 $(top_srcdir)/configure.ac From ec53e2ba4bbc72740a3d9720a925358b0eff8d31 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:22:43 +0800 Subject: [PATCH 521/972] shadowsocksr-libev: Upgrade PCRE2 & drop libopenssl-legacy depends * shadowsocksr-libev: Upgrade PCRE to PCRE2 --- shadowsocksr-libev/src/server/rule.c | 47 ++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/shadowsocksr-libev/src/server/rule.c b/shadowsocksr-libev/src/server/rule.c index 8aae04ea7f9..41ba5e7d9d4 100644 --- a/shadowsocksr-libev/src/server/rule.c +++ b/shadowsocksr-libev/src/server/rule.c @@ -82,14 +82,28 @@ int init_rule(rule_t *rule) { if (rule->pattern_re == NULL) { - const char *reerr; - int reerroffset; + int errornumber; + PCRE2_SIZE erroroffset; + rule->pattern_re = pcre2_compile( + (PCRE2_SPTR)rule->pattern, /* the pattern */ + PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminated */ + 0, /* default options */ + &errornumber, /* for error number */ + &erroroffset, /* for error offset */ + NULL); /* use default compile context */ - rule->pattern_re = - pcre_compile(rule->pattern, 0, &reerr, &reerroffset, NULL); if (rule->pattern_re == NULL) { - LOGE("Regex compilation of \"%s\" failed: %s, offset %d", - rule->pattern, reerr, reerroffset); + PCRE2_UCHAR errbuffer[512]; + pcre2_get_error_message(errornumber, errbuffer, sizeof(errbuffer)); + LOGE("PCRE2 regex compilation failed at offset %d: %s\n", (int)erroroffset, + errbuffer); + return 0; + } + + rule->pattern_re_match_data = pcre2_match_data_create_from_pattern(rule->pattern_re, NULL); + + if (rule->pattern_re_match_data == NULL) { + ERROR("PCRE2: the memory for the block could not be obtained"); return 0; } } @@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *rules, const char *name, size_t name_len) cork_dllist_foreach_void(rules, curr, next) { rule_t *rule = cork_container_of(curr, rule_t, entries); - if (pcre_exec(rule->pattern_re, NULL, - name, name_len, 0, 0, NULL, 0) >= 0) + if (pcre2_match( + rule->pattern_re, /* the compiled pattern */ + (PCRE2_SPTR)name, /* the subject string */ + name_len, /* the length of the subject */ + 0, /* start at offset 0 in the subject */ + 0, /* default options */ + rule->pattern_re_match_data, /* block for storing the result */ + NULL /* use default match context */ + ) >= 0) return rule; } @@ -131,7 +152,13 @@ free_rule(rule_t *rule) return; ss_free(rule->pattern); - if (rule->pattern_re != NULL) - pcre_free(rule->pattern_re); + if (rule->pattern_re != NULL) { + pcre2_code_free(rule->pattern_re); /* data and the compiled pattern. */ + rule->pattern_re = NULL; + } + if (rule->pattern_re_match_data != NULL) { + pcre2_match_data_free(rule->pattern_re_match_data); /* Release memory used for the match */ + rule->pattern_re_match_data = NULL; + } ss_free(rule); } From 6e39a49eca6680b95d9ce60db8e85fc29643efbc Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:23:45 +0800 Subject: [PATCH 522/972] shadowsocksr-libev: Upgrade PCRE2 & drop libopenssl-legacy depends * shadowsocksr-libev: Upgrade PCRE to PCRE2 --- shadowsocksr-libev/src/server/rule.h | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/shadowsocksr-libev/src/server/rule.h b/shadowsocksr-libev/src/server/rule.h index 015bc42b5b3..84a89af671f 100644 --- a/shadowsocksr-libev/src/server/rule.h +++ b/shadowsocksr-libev/src/server/rule.h @@ -33,17 +33,27 @@ #include -#ifdef HAVE_PCRE_H -#include -#elif HAVE_PCRE_PCRE_H -#include -#endif +/* + * The PCRE2_CODE_UNIT_WIDTH macro must be defined before including pcre2.h. + * For a program that uses only one code unit width, setting it to 8, 16, or 32 + * makes it possible to use generic function names such as pcre2_compile(). Note + * that just changing 8 to 16 (for example) is not sufficient to convert this + * program to process 16-bit characters. Even in a fully 16-bit environment, where + * string-handling functions such as strcmp() and printf() work with 16-bit + * characters, the code for handling the table of named substrings will still need + * to be modified. + */ +/* we only need to support ASCII chartable, thus set it to 8 */ +#define PCRE2_CODE_UNIT_WIDTH 8 + +#include typedef struct rule { char *pattern; /* Runtime fields */ - pcre *pattern_re; + pcre2_code *pattern_re; + pcre2_match_data *pattern_re_match_data; struct cork_dllist_item entries; } rule_t; From f9541752cb959e4eb28538e12cf3d160e44da725 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 17 Mar 2024 21:25:07 +0800 Subject: [PATCH 523/972] shadowsocksr-libev: Upgrade PCRE2 & drop libopenssl-legacy depends * shadowsocksr-libev: Upgrade PCRE to PCRE2 --- .../patches/105-Upgrade-PCRE-to-PCRE2.patch | 479 ++++++++++++++++++ 1 file changed, 479 insertions(+) create mode 100644 shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch diff --git a/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch new file mode 100644 index 00000000000..c040755c626 --- /dev/null +++ b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch @@ -0,0 +1,479 @@ +From 32f944b9a06fb2be4cd50da2434f2fd4b4decede Mon Sep 17 00:00:00 2001 +From: sbwml <984419930@qq.com> +Date: Thu, 1 Feb 2024 21:21:56 +0800 +Subject: [PATCH] Upgrade PCRE to PCRE2 + +Signed-off-by: sbwml <984419930@qq.com> +--- + configure.ac | 8 +-- + m4/pcre.m4 | 152 ------------------------------------------ + m4/pcre2.m4 | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/rule.c | 47 ++++++++++--- + src/rule.h | 22 +++++-- + 5 files changed, 238 insertions(+), 172 deletions(-) + delete mode 100644 m4/pcre.m4 + create mode 100644 m4/pcre2.m4 + +--- a/configure.ac ++++ b/configure.ac +@@ -20,10 +20,10 @@ AC_DISABLE_STATIC + AC_DISABLE_SHARED + LT_INIT([dlopen]) + +-dnl Check for pcre library +-TS_CHECK_PCRE +-if test "x${enable_pcre}" != "xyes"; then +- AC_MSG_ERROR([Cannot find pcre library. Configure --with-pcre=DIR]) ++dnl Check for pcre2 library ++TS_CHECK_PCRE2 ++if test "x${enable_pcre2}" != "xyes"; then ++ AC_MSG_ERROR([Cannot find pcre2 library. Configure --with-pcre2=DIR]) + fi + + dnl Checks for using shared libraries from system +--- a/m4/pcre.m4 ++++ /dev/null +@@ -1,152 +0,0 @@ +-dnl -------------------------------------------------------- -*- autoconf -*- +-dnl Licensed to the Apache Software Foundation (ASF) under one or more +-dnl contributor license agreements. See the NOTICE file distributed with +-dnl this work for additional information regarding copyright ownership. +-dnl The ASF licenses this file to You under the Apache License, Version 2.0 +-dnl (the "License"); you may not use this file except in compliance with +-dnl the License. You may obtain a copy of the License at +-dnl +-dnl http://www.apache.org/licenses/LICENSE-2.0 +-dnl +-dnl Unless required by applicable law or agreed to in writing, software +-dnl distributed under the License is distributed on an "AS IS" BASIS, +-dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-dnl See the License for the specific language governing permissions and +-dnl limitations under the License. +- +-dnl +-dnl TS_ADDTO(variable, value) +-dnl +-dnl Add value to variable +-dnl +-AC_DEFUN([TS_ADDTO], [ +- if test "x$$1" = "x"; then +- test "x$verbose" = "xyes" && echo " setting $1 to \"$2\"" +- $1="$2" +- else +- ats_addto_bugger="$2" +- for i in $ats_addto_bugger; do +- ats_addto_duplicate="0" +- for j in $$1; do +- if test "x$i" = "x$j"; then +- ats_addto_duplicate="1" +- break +- fi +- done +- if test $ats_addto_duplicate = "0"; then +- test "x$verbose" = "xyes" && echo " adding \"$i\" to $1" +- $1="$$1 $i" +- fi +- done +- fi +-])dnl +- +-dnl +-dnl TS_ADDTO_RPATH(path) +-dnl +-dnl Adds path to variable with the '-rpath' directive. +-dnl +-AC_DEFUN([TS_ADDTO_RPATH], [ +- AC_MSG_NOTICE([adding $1 to RPATH]) +- TS_ADDTO(LIBTOOL_LINK_FLAGS, [-R$1]) +-])dnl +- +-dnl +-dnl pcre.m4: Trafficserver's pcre autoconf macros +-dnl +- +-dnl +-dnl TS_CHECK_PCRE: look for pcre libraries and headers +-dnl +-AC_DEFUN([TS_CHECK_PCRE], [ +-enable_pcre=no +-AC_ARG_WITH(pcre, [AC_HELP_STRING([--with-pcre=DIR],[use a specific pcre library])], +-[ +- if test "x$withval" != "xyes" && test "x$withval" != "x"; then +- pcre_base_dir="$withval" +- if test "$withval" != "no"; then +- enable_pcre=yes +- case "$withval" in +- *":"*) +- pcre_include="`echo $withval |sed -e 's/:.*$//'`" +- pcre_ldflags="`echo $withval |sed -e 's/^.*://'`" +- AC_MSG_CHECKING(checking for pcre includes in $pcre_include libs in $pcre_ldflags ) +- ;; +- *) +- pcre_include="$withval/include" +- pcre_ldflags="$withval/lib" +- AC_MSG_CHECKING(checking for pcre includes in $withval) +- ;; +- esac +- fi +- fi +-], +-[ +- AC_CHECK_PROG(PCRE_CONFIG, pcre-config, pcre-config) +- if test "x$PCRE_CONFIG" != "x"; then +- enable_pcre=yes +- pcre_base_dir="`$PCRE_CONFIG --prefix`" +- pcre_include="`$PCRE_CONFIG --cflags | sed -es/-I//`" +- pcre_ldflags="`$PCRE_CONFIG --libs | sed -es/-lpcre// -es/-L//`" +- fi +-]) +- +-if test "x$pcre_base_dir" = "x"; then +- AC_MSG_CHECKING([for pcre location]) +- AC_CACHE_VAL(ats_cv_pcre_dir,[ +- for dir in /usr/local /usr ; do +- if test -d $dir && ( test -f $dir/include/pcre.h || test -f $dir/include/pcre/pcre.h ); then +- ats_cv_pcre_dir=$dir +- break +- fi +- done +- ]) +- pcre_base_dir=$ats_cv_pcre_dir +- if test "x$pcre_base_dir" = "x"; then +- enable_pcre=no +- AC_MSG_RESULT([not found]) +- else +- enable_pcre=yes +- pcre_include="$pcre_base_dir/include" +- pcre_ldflags="$pcre_base_dir/lib" +- AC_MSG_RESULT([$pcre_base_dir]) +- fi +-else +- AC_MSG_CHECKING(for pcre headers in $pcre_include) +- if test -d $pcre_include && test -d $pcre_ldflags && ( test -f $pcre_include/pcre.h || test -f $pcre_include/pcre/pcre.h ); then +- AC_MSG_RESULT([ok]) +- else +- AC_MSG_RESULT([not found]) +- fi +-fi +- +-pcreh=0 +-pcre_pcreh=0 +-if test "$enable_pcre" != "no"; then +- saved_ldflags=$LDFLAGS +- saved_cppflags=$CFLAGS +- pcre_have_headers=0 +- pcre_have_libs=0 +- if test "$pcre_base_dir" != "/usr"; then +- TS_ADDTO(CFLAGS, [-I${pcre_include}]) +- TS_ADDTO(CFLAGS, [-DPCRE_STATIC]) +- TS_ADDTO(LDFLAGS, [-L${pcre_ldflags}]) +- TS_ADDTO_RPATH(${pcre_ldflags}) +- fi +- AC_SEARCH_LIBS([pcre_exec], [pcre], [pcre_have_libs=1]) +- if test "$pcre_have_libs" != "0"; then +- AC_CHECK_HEADERS(pcre.h, [pcre_have_headers=1]) +- AC_CHECK_HEADERS(pcre/pcre.h, [pcre_have_headers=1]) +- fi +- if test "$pcre_have_headers" != "0"; then +- AC_DEFINE(HAVE_LIBPCRE,1,[Compiling with pcre support]) +- AC_SUBST(LIBPCRE, [-lpcre]) +- else +- enable_pcre=no +- CFLAGS=$saved_cppflags +- LDFLAGS=$saved_ldflags +- fi +-fi +-AC_SUBST(pcreh) +-AC_SUBST(pcre_pcreh) +-]) +--- /dev/null ++++ b/m4/pcre2.m4 +@@ -0,0 +1,181 @@ ++dnl -------------------------------------------------------- -*- autoconf -*- ++dnl Licensed to the Apache Software Foundation (ASF) under one or more ++dnl contributor license agreements. See the NOTICE file distributed with ++dnl this work for additional information regarding copyright ownership. ++dnl The ASF licenses this file to You under the Apache License, Version 2.0 ++dnl (the "License"); you may not use this file except in compliance with ++dnl the License. You may obtain a copy of the License at ++dnl ++dnl http://www.apache.org/licenses/LICENSE-2.0 ++dnl ++dnl Unless required by applicable law or agreed to in writing, software ++dnl distributed under the License is distributed on an "AS IS" BASIS, ++dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++dnl See the License for the specific language governing permissions and ++dnl limitations under the License. ++ ++dnl Modified by Syrone Wong to support pcre2 8bit variant only ++ ++dnl ++dnl TS_ADDTO(variable, value) ++dnl ++dnl Add value to variable ++dnl ++AC_DEFUN([TS_ADDTO], [ ++ if test "x$$1" = "x"; then ++ test "x$verbose" = "xyes" && echo " setting $1 to \"$2\"" ++ $1="$2" ++ else ++ ats_addto_bugger="$2" ++ for i in $ats_addto_bugger; do ++ ats_addto_duplicate="0" ++ for j in $$1; do ++ if test "x$i" = "x$j"; then ++ ats_addto_duplicate="1" ++ break ++ fi ++ done ++ if test $ats_addto_duplicate = "0"; then ++ test "x$verbose" = "xyes" && echo " adding \"$i\" to $1" ++ $1="$$1 $i" ++ fi ++ done ++ fi ++])dnl ++ ++dnl ++dnl TS_ADDTO_RPATH(path) ++dnl ++dnl Adds path to variable with the '-rpath' directive. ++dnl ++AC_DEFUN([TS_ADDTO_RPATH], [ ++ AC_MSG_NOTICE([adding $1 to RPATH]) ++ TS_ADDTO(LIBTOOL_LINK_FLAGS, [-R$1]) ++])dnl ++ ++dnl ++dnl pcre2.m4: Trafficserver's pcre2 autoconf macros ++dnl ++ ++dnl ++dnl TS_CHECK_PCRE2: look for pcre2 libraries and headers ++dnl ++AC_DEFUN([TS_CHECK_PCRE2], [ ++enable_pcre2=no ++AC_ARG_WITH(pcre2, [AC_HELP_STRING([--with-pcre2=DIR],[use a specific pcre2 library])], ++[ ++ if test "x$withval" != "xyes" && test "x$withval" != "x"; then ++ pcre2_base_dir="$withval" ++ if test "$withval" != "no"; then ++ enable_pcre2=yes ++ case "$withval" in ++ *":"*) ++ pcre2_include="`echo $withval |sed -e 's/:.*$//'`" ++ pcre2_ldflags="`echo $withval |sed -e 's/^.*://'`" ++ AC_MSG_CHECKING(checking for pcre2 includes in $pcre2_include libs in $pcre2_ldflags ) ++ ;; ++ *) ++ pcre2_include="$withval/include" ++ pcre2_ldflags="$withval/lib" ++ AC_MSG_CHECKING(checking for pcre2 includes in $withval) ++ ;; ++ esac ++ fi ++ fi ++], ++[ ++ AC_CHECK_PROG(PCRE2_CONFIG, pcre2-config, pcre2-config) ++ if test "x$PCRE2_CONFIG" != "x"; then ++ enable_pcre2=yes ++ pcre2_base_dir="`$PCRE2_CONFIG --prefix`" ++ pcre2_include="`$PCRE2_CONFIG --cflags | sed -es/-I//`" ++ pcre2_ldflags="`$PCRE2_CONFIG --libs8 | sed -es/-lpcre2-8// -es/-L//`" ++ fi ++]) ++ ++if test "x$pcre2_base_dir" = "x"; then ++ AC_MSG_CHECKING([for pcre2 location]) ++ AC_CACHE_VAL(ats_cv_pcre2_dir,[ ++ for dir in /usr/local /usr ; do ++ if test -d $dir && ( test -f $dir/include/pcre2.h || test -f $dir/include/pcre2/pcre2.h ); then ++ ats_cv_pcre2_dir=$dir ++ break ++ fi ++ done ++ ]) ++ pcre2_base_dir=$ats_cv_pcre2_dir ++ if test "x$pcre2_base_dir" = "x"; then ++ enable_pcre2=no ++ AC_MSG_RESULT([not found]) ++ else ++ enable_pcre2=yes ++ pcre2_include="$pcre2_base_dir/include" ++ pcre2_ldflags="$pcre2_base_dir/lib" ++ AC_MSG_RESULT([$pcre2_base_dir]) ++ fi ++else ++ AC_MSG_CHECKING(for pcre2 headers in $pcre2_include) ++ if test -d $pcre2_include && test -d $pcre2_ldflags && ( test -f $pcre2_include/pcre2.h || test -f $pcre2_include/pcre2/pcre2.h ); then ++ AC_MSG_RESULT([ok]) ++ else ++ AC_MSG_RESULT([not found]) ++ fi ++fi ++ ++pcre2h=0 ++pcre2_pcre2h=0 ++if test "$enable_pcre2" != "no"; then ++ saved_ldflags=$LDFLAGS ++ saved_cppflags=$CFLAGS ++ pcre2_have_headers=0 ++ pcre2_have_libs=0 ++ if test "$pcre2_base_dir" != "/usr"; then ++ TS_ADDTO(CFLAGS, [-I${pcre2_include}]) ++ TS_ADDTO(CFLAGS, [-DPCRE2_STATIC]) ++ TS_ADDTO(LDFLAGS, [-L${pcre2_ldflags}]) ++ TS_ADDTO_RPATH(${pcre2_ldflags}) ++ fi ++ AC_SEARCH_LIBS([pcre2_match_8], [pcre2-8], [pcre2_have_libs=1]) ++ if test "$pcre2_have_libs" != "0"; then ++ AC_MSG_CHECKING([pcre2.h]) ++ AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include ++ ]], ++ [[ ++ ]] ++ )], ++ [pcre2_have_headers=1 ++ AC_MSG_RESULT([ok])], ++ [AC_MSG_RESULT([not found])] ++ ) ++ ++ AC_MSG_CHECKING([pcre2/pcre2.h]) ++ AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include ++ ]], ++ [[ ++ ]] ++ )], ++ [pcre2_have_headers=1 ++ AC_MSG_RESULT([ok])], ++ [AC_MSG_RESULT([not found])] ++ ) ++ fi ++ if test "$pcre2_have_headers" != "0"; then ++ AC_DEFINE(HAVE_LIBPCRE2,1,[Compiling with pcre2 support]) ++ AC_SUBST(LIBPCRE2, [-lpcre2-8]) ++ else ++ enable_pcre2=no ++ CFLAGS=$saved_cppflags ++ LDFLAGS=$saved_ldflags ++ fi ++fi ++AC_SUBST(pcre2h) ++AC_SUBST(pcre2_pcre2h) ++]) +--- a/src/rule.c ++++ b/src/rule.c +@@ -82,14 +82,28 @@ int + init_rule(rule_t *rule) + { + if (rule->pattern_re == NULL) { +- const char *reerr; +- int reerroffset; ++ int errornumber; ++ PCRE2_SIZE erroroffset; ++ rule->pattern_re = pcre2_compile( ++ (PCRE2_SPTR)rule->pattern, /* the pattern */ ++ PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminated */ ++ 0, /* default options */ ++ &errornumber, /* for error number */ ++ &erroroffset, /* for error offset */ ++ NULL); /* use default compile context */ + +- rule->pattern_re = +- pcre_compile(rule->pattern, 0, &reerr, &reerroffset, NULL); + if (rule->pattern_re == NULL) { +- LOGE("Regex compilation of \"%s\" failed: %s, offset %d", +- rule->pattern, reerr, reerroffset); ++ PCRE2_UCHAR errbuffer[512]; ++ pcre2_get_error_message(errornumber, errbuffer, sizeof(errbuffer)); ++ LOGE("PCRE2 regex compilation failed at offset %d: %s\n", (int)erroroffset, ++ errbuffer); ++ return 0; ++ } ++ ++ rule->pattern_re_match_data = pcre2_match_data_create_from_pattern(rule->pattern_re, NULL); ++ ++ if (rule->pattern_re_match_data == NULL) { ++ ERROR("PCRE2: the memory for the block could not be obtained"); + return 0; + } + } +@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *ru + + cork_dllist_foreach_void(rules, curr, next) { + rule_t *rule = cork_container_of(curr, rule_t, entries); +- if (pcre_exec(rule->pattern_re, NULL, +- name, name_len, 0, 0, NULL, 0) >= 0) ++ if (pcre2_match( ++ rule->pattern_re, /* the compiled pattern */ ++ (PCRE2_SPTR)name, /* the subject string */ ++ name_len, /* the length of the subject */ ++ 0, /* start at offset 0 in the subject */ ++ 0, /* default options */ ++ rule->pattern_re_match_data, /* block for storing the result */ ++ NULL /* use default match context */ ++ ) >= 0) + return rule; + } + +@@ -131,7 +152,13 @@ free_rule(rule_t *rule) + return; + + ss_free(rule->pattern); +- if (rule->pattern_re != NULL) +- pcre_free(rule->pattern_re); ++ if (rule->pattern_re != NULL) { ++ pcre2_code_free(rule->pattern_re); /* data and the compiled pattern. */ ++ rule->pattern_re = NULL; ++ } ++ if (rule->pattern_re_match_data != NULL) { ++ pcre2_match_data_free(rule->pattern_re_match_data); /* Release memory used for the match */ ++ rule->pattern_re_match_data = NULL; ++ } + ss_free(rule); + } +--- a/src/rule.h ++++ b/src/rule.h +@@ -33,17 +33,27 @@ + + #include + +-#ifdef HAVE_PCRE_H +-#include +-#elif HAVE_PCRE_PCRE_H +-#include +-#endif ++/* ++ * The PCRE2_CODE_UNIT_WIDTH macro must be defined before including pcre2.h. ++ * For a program that uses only one code unit width, setting it to 8, 16, or 32 ++ * makes it possible to use generic function names such as pcre2_compile(). Note ++ * that just changing 8 to 16 (for example) is not sufficient to convert this ++ * program to process 16-bit characters. Even in a fully 16-bit environment, where ++ * string-handling functions such as strcmp() and printf() work with 16-bit ++ * characters, the code for handling the table of named substrings will still need ++ * to be modified. ++ */ ++/* we only need to support ASCII chartable, thus set it to 8 */ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++ ++#include + + typedef struct rule { + char *pattern; + + /* Runtime fields */ +- pcre *pattern_re; ++ pcre2_code *pattern_re; ++ pcre2_match_data *pattern_re_match_data; + + struct cork_dllist_item entries; + } rule_t; From 4240b1546356dda01ac7e90582fc2111b08351b0 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 20 Mar 2024 01:21:47 +0800 Subject: [PATCH 524/972] xray-core: update to 1.8.9 (#1423) --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index d040b674ca1..9ab1d720110 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.8 +PKG_VERSION:=1.8.9 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=156105b89465ca948971a774c0bc7e56ee68e764bdfde58923037dc837aab4be +PKG_HASH:=708cf7754c733c8eb98939495c0c2e698ca5712383b87dc25eea974a0d332721 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From d940196de4578ed730a122e3cbcaf064c6b57f0a Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 21 Mar 2024 18:25:18 +0800 Subject: [PATCH 525/972] luci-app-ssr-plus: add ssl lib selection --- luci-app-ssr-plus/Makefile | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 38a3d7e5838..82e06b3e781 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=3 +PKG_RELEASE:=5 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -32,10 +32,12 @@ PKG_CONFIG_DEPENDS:= \ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuic/ShadowTLS/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ - @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat \ +ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ + +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls:libustream-mbedtls \ + +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl:libustream-openssl \ + +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-wolfssl:libustream-wolfssl \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ @@ -61,9 +63,24 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server:shadowsocksr-libev-ssr-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan + define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) +choice + prompt "Uclient SSL Lib Selection" + default PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl + + config PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls + bool "libustream-mbedtls" + + config PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl + bool "libustream-openssl" + + config PACKAGE_$(PKG_NAME)_INCLUDE_PACKAGE_libustream-wolfssl + bool "libustream-wolfssl" +endchoice + choice prompt "Shadowsocks Client Selection" default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client if aarch64 || x86_64 @@ -180,8 +197,10 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan bool "Include Trojan" select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks default n + endef + define Package/$(PKG_NAME)/conffiles /etc/config/shadowsocksr /etc/ssrplus/ From 3f00632988b9b9ea7f2d7674081becea876985dd Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Mon, 25 Mar 2024 01:20:26 +0800 Subject: [PATCH 526/972] hysteria: update to 2.4.0 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 50a5e5ae983..0e492f5e2a2 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.3.0 +PKG_VERSION:=2.4.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=46cfe0cb25938f837ff9046f2dd20ad76e75c9c9b995ce99ceaa3976a626701b +PKG_HASH:=7776ba22b76446d6c71f496be8e635780f1b219c7d0d3a3bd99ee81067f8c8b4 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 409bd58e8957ac621f2d35b9e3e27e85688e6e4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:24:51 +0800 Subject: [PATCH 527/972] add httpupgrade in client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 46907b0d923..67988f9e9b5 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -674,6 +674,18 @@ if is_finded("v2ray") then o.rmempty = true end +-- [[ httpupgrade部分 ]]-- + +-- httpupgrade域名 +o = s:option(Value, "httpupgrade_host", translate("Httpupgrade Host")) +o:depends({transport = "httpupgrade", tls = false}) +o.rmempty = true + +-- httpupgrade路径 +o = s:option(Value, "httpupgrade_path", translate("Httpupgrade Path")) +o:depends("transport", "httpupgrade") +o.rmempty = true + -- [[ H2部分 ]]-- -- H2域名 From 4282202bc7612887df61d9b59567bbbbe4718aed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:25:43 +0800 Subject: [PATCH 528/972] add httpupgrade in gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 688e184c2e9..13e528bead4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -276,6 +276,11 @@ local Xray = { maxEarlyData = tonumber(server.ws_ed) or nil, earlyDataHeaderName = server.ws_ed_header or nil } or nil, + httpupgradeSettings = (server.transport == "httpupgrade") and { + -- httpupgrade + host = (server.httpupgrade_host or server.tls_host) or nil, + path = server.httpupgrade_path or "" + } or nil, httpSettings = (server.transport == "h2") and { -- h2 path = server.h2_path or "", From ead95bd927a0f65bc01820a81da7712f9fd297ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:27:17 +0800 Subject: [PATCH 529/972] add httpupgrade in ssr-plus.po --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 82cd1390425..88ed1342ecd 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -921,6 +921,12 @@ msgstr "最大前置数据" msgid "Early Data Header Name" msgstr "前置数据标头" +msgid "Httpupgrade Host" +msgstr "HTTPUpgrade 主机名" + +msgid "Httpupgrade Path" +msgstr "HTTPUpgrade 路径" + msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" From 41d232bbceb63c4fd068d6c81baeba4ef41f8ef2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Tue, 26 Mar 2024 17:35:20 +0800 Subject: [PATCH 530/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 67988f9e9b5..3bf73380d7e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -618,6 +618,7 @@ o = s:option(ListValue, "transport", translate("Transport")) o:value("tcp", "TCP") o:value("kcp", "mKCP") o:value("ws", "WebSocket") +o:value("httpupgrade", "HTTPUpgrade") o:value("h2", "HTTP/2") o:value("quic", "QUIC") o:value("grpc", "gRPC") From 693847e7e358a990979eda8b55b8d560c816c9c3 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 31 Mar 2024 01:52:03 +0800 Subject: [PATCH 531/972] xray-core: update to 1.8.10 (#1437) * xray-core: update to 1.8.10 --- xray-core/Makefile | 4 ++-- xray-core/patches/010-go1.21.patch | 10 ---------- 2 files changed, 2 insertions(+), 12 deletions(-) delete mode 100644 xray-core/patches/010-go1.21.patch diff --git a/xray-core/Makefile b/xray-core/Makefile index 9ab1d720110..07535f269ae 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.9 +PKG_VERSION:=1.8.10 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=708cf7754c733c8eb98939495c0c2e698ca5712383b87dc25eea974a0d332721 +PKG_HASH:=af5bb501b50e3abe6b54c8d8ea764d7f8b021c4d53540a468254a24f3334afc5 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 diff --git a/xray-core/patches/010-go1.21.patch b/xray-core/patches/010-go1.21.patch deleted file mode 100644 index a95d4181118..00000000000 --- a/xray-core/patches/010-go1.21.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/go.mod -+++ b/go.mod -@@ -1,6 +1,6 @@ - module github.com/xtls/xray-core - --go 1.22 -+go 1.21.5 - - require ( - github.com/ghodss/yaml v1.0.1-0.20220118164431-d8423dcdf344 From e0042b7216d7981f931516b9c6c2c4a5493c4599 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 31 Mar 2024 01:52:18 +0800 Subject: [PATCH 532/972] xray-plugin: update to 1.8.10 (#1438) * xray-plugin: update to 1.8.10 --- xray-plugin/Makefile | 4 ++-- xray-plugin/patches/010-go1.21.patch | 27 --------------------------- 2 files changed, 2 insertions(+), 29 deletions(-) delete mode 100644 xray-plugin/patches/010-go1.21.patch diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index a8e96d36e2b..7d53c33a383 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.9 +PKG_VERSION:=1.8.10 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=728ad3eacc089af4a4f0e0aa539e1c6922ae391905f7b45bf5dc89f256f5b1c9 +PKG_HASH:=ee2f403682c664108d00791540c544b6ae6f24dc84db876bd4d8f7ba618e9cba PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE diff --git a/xray-plugin/patches/010-go1.21.patch b/xray-plugin/patches/010-go1.21.patch deleted file mode 100644 index 723de095f9c..00000000000 --- a/xray-plugin/patches/010-go1.21.patch +++ /dev/null @@ -1,27 +0,0 @@ ---- a/go.mod -+++ b/go.mod -@@ -1,9 +1,9 @@ - module github.com/teddysun/xray-plugin - --go 1.22 -+go 1.21.5 - - require ( -- github.com/xtls/xray-core v1.8.9 -+ github.com/xtls/xray-core v1.8.7 - google.golang.org/protobuf v1.33.0 - ) - ---- a/go.sum -+++ b/go.sum -@@ -157,8 +157,8 @@ github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1Y - github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= - github.com/xtls/reality v0.0.0-20231112171332-de1173cf2b19 h1:capMfFYRgH9BCLd6A3Er/cH3A9Nz3CU2KwxwOQZIePI= - github.com/xtls/reality v0.0.0-20231112171332-de1173cf2b19/go.mod h1:dm4y/1QwzjGaK17ofi0Vs6NpKAHegZky8qk6J2JJZAE= --github.com/xtls/xray-core v1.8.9 h1:wefcON0behu4DoQvCKJYZKsJlSvNhyq2I7vC2fxLFcY= --github.com/xtls/xray-core v1.8.9/go.mod h1:XDE4f422qJKAU3hNDSNZyWrOHvn9kF8UHVdyOzU38rc= -+github.com/xtls/xray-core v1.8.7 h1:lb8O1l3/eAg3YAXA6tLm5M6N7BsX8wxW9sJLjU3dHkA= -+github.com/xtls/xray-core v1.8.7/go.mod h1:9rFpflfQbgFeH1VKJw7yUmEy7myOyDCgNXXl0bmmyOo= - go.opencensus.io v0.18.0/go.mod h1:vKdFvxhtzZ9onBp9VKHK8z/sRpBMnKAsufL7wlDrCOA= - go.uber.org/mock v0.4.0 h1:VcM4ZOtdbR4f6VXfiOpwpVJDL6lCReaZ6mw31wqh7KU= - go.uber.org/mock v0.4.0/go.mod h1:a6FSlNadKUHUa9IP5Vyt1zh4fC7uAwxMutEAscFbkZc= From 7e632a1c446bf85a8006f44164165983d7c258da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sun, 31 Mar 2024 01:53:14 +0800 Subject: [PATCH 533/972] luci-app-ssr-plus: Add options menu for httpupgrade (#1433) --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 13 +++++++++++++ luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 6 ++++++ .../root/usr/share/shadowsocksr/gen_config.lua | 5 +++++ 3 files changed, 24 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 46907b0d923..3bf73380d7e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -618,6 +618,7 @@ o = s:option(ListValue, "transport", translate("Transport")) o:value("tcp", "TCP") o:value("kcp", "mKCP") o:value("ws", "WebSocket") +o:value("httpupgrade", "HTTPUpgrade") o:value("h2", "HTTP/2") o:value("quic", "QUIC") o:value("grpc", "gRPC") @@ -674,6 +675,18 @@ if is_finded("v2ray") then o.rmempty = true end +-- [[ httpupgrade部分 ]]-- + +-- httpupgrade域名 +o = s:option(Value, "httpupgrade_host", translate("Httpupgrade Host")) +o:depends({transport = "httpupgrade", tls = false}) +o.rmempty = true + +-- httpupgrade路径 +o = s:option(Value, "httpupgrade_path", translate("Httpupgrade Path")) +o:depends("transport", "httpupgrade") +o.rmempty = true + -- [[ H2部分 ]]-- -- H2域名 diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 82cd1390425..88ed1342ecd 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -921,6 +921,12 @@ msgstr "最大前置数据" msgid "Early Data Header Name" msgstr "前置数据标头" +msgid "Httpupgrade Host" +msgstr "HTTPUpgrade 主机名" + +msgid "Httpupgrade Path" +msgstr "HTTPUpgrade 路径" + msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 688e184c2e9..13e528bead4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -276,6 +276,11 @@ local Xray = { maxEarlyData = tonumber(server.ws_ed) or nil, earlyDataHeaderName = server.ws_ed_header or nil } or nil, + httpupgradeSettings = (server.transport == "httpupgrade") and { + -- httpupgrade + host = (server.httpupgrade_host or server.tls_host) or nil, + path = server.httpupgrade_path or "" + } or nil, httpSettings = (server.transport == "h2") and { -- h2 path = server.h2_path or "", From c92fd40ab410c41cd9337d3b36afb3ebe720dec3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sun, 31 Mar 2024 08:40:39 +0800 Subject: [PATCH 534/972] Update client-config.lua luci-app-ssr-plus: Xray cancel changes #1370 #1374 --- .../model/cbi/shadowsocksr/client-config.lua | 135 +----------------- 1 file changed, 4 insertions(+), 131 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3bf73380d7e..d2b87a7fa0e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -948,6 +948,7 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) +-- [[ TCP 最大并发连接数 ]]-- o = s:option(ListValue, "concurrency", translate("concurrency")) o.rmempty = true o.default = "-1" @@ -955,13 +956,15 @@ o:value("-1", translate("disable")) o:value("8", translate("8")) o:depends("mux", true) +-- [[ UDP 最大并发连接数 ]]-- o = s:option(ListValue, "xudpConcurrency", translate("xudpConcurrency")) o.rmempty = true o.default = "16" -o:value("16", translate("16")) o:value("-1", translate("disable")) +o:value("16", translate("16")) o:depends("mux", true) +-- [[ 对被代理的 UDP/443 流量处理方式 ]]-- o = s:option(ListValue, "xudpProxyUDP443", translate("xudpProxyUDP443")) o.rmempty = true o.default = "reject" @@ -998,136 +1001,6 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) --- [[ custom_sniffing 流量嗅探 ]]-- -o = s:option(Flag, "custom_sniffing", translate("custom_sniffing")) -o.rmempty = false -o.default = true -o:depends({type = "v2ray", v2ray_protocol = "vless"}) -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) -o:depends({type = "v2ray", v2ray_protocol = "trojan"}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o:depends({type = "v2ray", v2ray_protocol = "socks"}) -o:depends({type = "v2ray", v2ray_protocol = "http"}) - --- [[ custom_domainsExcluded 流量嗅探域名排除列表 ]]-- -o = s:option(Flag, "custom_domainsExcluded", translate("custom_domainsExcluded")) -o.rmempty = false -o.default = true -o:depends("custom_sniffing", true) - --- [[ custom_routeOnly 嗅探得到的域名仅用于 Xray 路由 ]]-- -o = s:option(Flag, "custom_routeOnly", translate("custom_routeOnly")) -o.rmempty = false -o.default = false -o:depends("custom_sniffing", true) - - --- [[ custom_dns_enable Xray DNS 功能 ]]-- -o = s:option(Flag, "custom_dns_enable", translate("custom_dns_enable")) -o.rmempty = false -o.default = false -o:depends({type = "v2ray", v2ray_protocol = "vless"}) -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) -o:depends({type = "v2ray", v2ray_protocol = "trojan"}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o:depends({type = "v2ray", v2ray_protocol = "socks"}) -o:depends({type = "v2ray", v2ray_protocol = "http"}) -o.description = translate("comment_dns_inbound_enable") - --- [[ custom_dns_local 本地 DNS ]]-- -o = s:option(ListValue, "custom_dns_local", translate("custom_dns_local")) -o.rmempty = true -o.default = "https+local://223.5.5.5/dns-query" -o:value("https+local://223.5.5.5/dns-query", translate("https+local://223.5.5.5/dns-query")) -o:value("https+local://119.29.29.29/dns-query", translate("https+local://119.29.29.29/dns-query")) -o:depends("custom_dns_enable", true) - --- [[ custom_dns_remote 远端 DNS ]]-- -o = s:option(ListValue, "custom_dns_remote", translate("custom_dns_remote")) -o.rmempty = true -o.default = "https://1.1.1.1/dns-query" -o:value("https://1.1.1.1/dns-query", translate("https://1.1.1.1/dns-query")) -o:value("https://8.8.8.8/dns-query", translate("https://8.8.8.8/dns-query")) -o:depends("custom_dns_enable", true) - --- [[ custom_dns_remote_domains 远端 DNS 域名列表 ]]-- -o = s:option(ListValue, "custom_dns_remote_domains", translate("custom_dns_remote_domains")) -o.rmempty = true -o.default = "geosite:geolocation-!cn" -o:value("geosite:geolocation-!cn", translate("geosite:geolocation-!cn")) -o:depends("custom_dns_enable", true) - --- [[ custom_nonIPQuery 非 A 和 AAAA 记录处理方式 ]]-- -o = s:option(ListValue, "custom_nonIPQuery", translate("custom_nonIPQuery")) -o.rmempty = true -o.default = "skip" -o:value("skip", translate("skip")) -o:value("drop", translate("drop")) -o:depends("custom_dns_enable", true) - --- [[ custom_nonIPQuery_outbound_tag 非 A 和 AAAA 记录查询方式 ]]-- -o = s:option(ListValue, "custom_nonIPQuery_outbound_tag", translate("custom_nonIPQuery_outbound_tag")) -o.rmempty = true -o.default = "direct" -o:value("direct", translate("direct")) -o:value("proxy", translate("proxy")) -o:depends({custom_nonIPQuery = "skip"}) - --- [[ custom_dokodemo_door_dns_address 查询非 A 和 AAAA 记录 DNS ]]-- -o = s:option(ListValue, "custom_dokodemo_door_dns_address", translate("custom_dokodemo_door_dns_address")) -o.rmempty = true -o.default = "223.5.5.5" -o:value("223.5.5.5", translate("223.5.5.5")) -o:value("119.29.29.29", translate("119.29.29.29")) -o:value("1.1.1.1", translate("1.1.1.1")) -o:value("8.8.8.8", translate("8.8.8.8")) -o:depends({custom_nonIPQuery = "skip"}) - - --- [[ custom_log Xray 日志功能 ]]-- -o = s:option(Flag, "custom_log", translate("custom_log")) -o.rmempty = false -o.default = false -o:depends({type = "v2ray", v2ray_protocol = "vless"}) -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) -o:depends({type = "v2ray", v2ray_protocol = "trojan"}) -o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) -o:depends({type = "v2ray", v2ray_protocol = "socks"}) -o:depends({type = "v2ray", v2ray_protocol = "http"}) - --- [[ custom_loglevel 日志级别 ]]-- -o = s:option(ListValue, "custom_loglevel", translate("custom_loglevel")) -o.rmempty = true -o.default = "warning" -o:value("error", translate("error")) -o:value("warning", translate("warning")) -o:value("info", translate("info")) -o:value("debug", translate("debug")) -o:depends("custom_log", true) - --- [[ custom_dnsLog DNS 查询记录 ]]-- -o = s:option(Flag, "custom_dnsLog", translate("custom_dnsLog")) -o.rmempty = true -o.default = true -o:depends("custom_log", true) - --- [[ custom_access 访问记录 ]]-- -o = s:option(ListValue, "custom_access", translate("custom_access")) -o.rmempty = true -o.default = "/tmp/access.log" -o:value("/tmp/access.log", translate("/tmp/access.log")) -o:value("none", translate("none")) -o:depends("custom_log", true) - --- [[ custom_error 错误记录 ]]-- -o = s:option(ListValue, "custom_error", translate("custom_error")) -o.rmempty = true -o.default = "/tmp/error.log" -o:value("/tmp/error.log", translate("/tmp/error.log")) -o:value("none", translate("none")) -o:depends("custom_log", true) - - -- [[ Cert ]]-- o = s:option(Flag, "certificate", translate("Self-signed Certificate")) o.rmempty = true From ba4590d49a8993623a806d026e0203eb0fde91b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sun, 31 Mar 2024 08:41:22 +0800 Subject: [PATCH 535/972] Update gen_config.lua luci-app-ssr-plus: Xray cancel changes #1370 #1374 --- .../usr/share/shadowsocksr/gen_config.lua | 94 ++----------------- 1 file changed, 9 insertions(+), 85 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 13e528bead4..cbb911ebed9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -116,57 +116,20 @@ end local settings = outbound:new() settings:handleIndex(server.v2ray_protocol) local Xray = { - -- 日志 - log = (server.custom_log == "1") and { - loglevel = server.custom_loglevel, -- 日志级别 - dnsLog = (server.custom_dnsLog == "1") and true or false, -- DNS 查询记录 - access = server.custom_access, -- 访问记录 - error = server.custom_error -- 错误记录 - } or nil, - -- DNS - dns = { - hosts = { - ["dns.alidns.com"] = "223.5.5.5", - ["doh.pub"] = "119.29.29.29" - }, - servers = (server.custom_dns_enable == "1") and { -- Xray 内置 DNS - server.custom_dns_local, -- 本地 DNS - { - address = server.custom_dns_remote, -- 远端 DNS - domains = { - server.custom_dns_remote_domains -- 远端 DNS 域名列表 - }, - skipFallback = true, - queryStrategy = "UseIP" - } - } or nil, - queryStrategy = "UseIP" - }, - -- 路由 - routing = { - domainStrategy = "AsIs", - rules = { - { - type = "field", - inboundTag = { - "dns-in" - }, - outboundTag = "dns-out" - } - } + log = { + -- error = "/var/ssrplus.log", + loglevel = "warning" }, -- 传入连接 - inbounds = { - (local_port ~= "0") and { + inbound = (local_port ~= "0") and { -- listening port = tonumber(local_port), protocol = "dokodemo-door", settings = {network = proto, followRedirect = true}, sniffing = { - enabled = (server.custom_sniffing == "1") and true or false, -- 流量嗅探 - routeOnly = (server.custom_routeOnly == "1") and true or false, -- 嗅探得到的域名仅用于 Xray 内部路由 + enabled = true, destOverride = {"http", "tls", "quic"}, - domainsExcluded = (server.custom_domainsExcluded == "1") and { -- 流量嗅探域名排除列表 + domainsExcluded = { "courier.push.apple.com", "rbsxbxp-mim.vivox.com", "rbsxbxp.www.vivox.com", @@ -192,20 +155,9 @@ local Xray = { "rbswxp.vivox.com", "Mijia Cloud", "dlg.io.mi.com" - } or nil, + } } } or nil, - (server.custom_dns_enable == "1") and { -- Xray 内置 DNS - port = 5335, - protocol = "dokodemo-door", - settings = { - address = server.custom_dokodemo_door_dns_address, -- 查询非 A 和 AAAA 记录DNS - port = 53, - network = "udp" - }, - tag = "dns-in" - } or nil, - }, -- 开启 socks 代理 inboundDetour = (proto:find("tcp") and socks_port ~= "0") and { { @@ -216,9 +168,7 @@ local Xray = { } } or nil, -- 传出连接 - outbounds = { - { - tag = "proxy", + outbound = { protocol = server.v2ray_protocol, settings = outbound_settings, -- 底层传输配置 @@ -310,38 +260,12 @@ local Xray = { } }, mux = { + -- mux enabled = (server.mux == "1") and true or false, -- Mux concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 } - }, - { - protocol = "freedom", - settings = { - domainStrategy = "ForceIPv6v4" - }, - streamSettings = { - sockopt = { - tcpFastOpen = true - } - }, - tag = "direct" - }, - { - protocol = "blackhole", - tag = "block" - }, - (server.custom_dns_enable == "1") and { -- Xray 内置 DNS - protocol = "dns", - settings = { - nonIPQuery = server.custom_nonIPQuery -- 非 A 和 AAAA 记录处理方式 - }, - proxySettings = (server.custom_nonIPQuery == "skip") and { - tag = server.custom_nonIPQuery_outbound_tag -- 非 A 和 AAAA 记录查询方式 - } or nil, - tag = "dns-out" - } or nil, } } local cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA" From 443fcc4887b12bc42d5c98154f99a92feb58c09e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Sun, 31 Mar 2024 08:41:42 +0800 Subject: [PATCH 536/972] Update ssr-plus.po luci-app-ssr-plus: Xray cancel changes #1370 #1374 --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 53 +------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 88ed1342ecd..d343d4f28aa 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -106,58 +106,7 @@ msgid "custom_tcpcongestion" msgstr "连接服务器节点的 TCP 拥塞控制算法" msgid "comment_tcpcongestion_disable" -msgstr "使用系统默认值" - - -msgid "custom_sniffing" -msgstr "流量嗅探" - -msgid "custom_domainsExcluded" -msgstr "流量嗅探域名排除列表" - -msgid "custom_routeOnly" -msgstr "嗅探得到的域名仅用于 Xray 路由" - - -msgid "custom_dns_enable" -msgstr "Xray DNS 功能" - -msgid "comment_dns_inbound_enable" -msgstr "监听 5335 端口,需要上传 geosite.dat 到 /usr/share/xray,更新固件后要重新上传" - -msgid "custom_dns_local" -msgstr "本地 DNS" - -msgid "custom_dns_remote" -msgstr "远端 DNS" - -msgid "custom_dns_remote_domains" -msgstr "远端 DNS 域名列表" - -msgid "custom_dokodemo_door_dns_address" -msgstr "查询非 A 和 AAAA 记录 DNS" - -msgid "custom_nonIPQuery" -msgstr "非 A 和 AAAA 记录处理方式" - -msgid "custom_nonIPQuery_outbound_tag" -msgstr "非 A 和 AAAA 记录查询方式" - - -msgid "custom_log" -msgstr "Xray 日志功能" - -msgid "custom_loglevel" -msgstr "日志级别" - -msgid "custom_dnsLog" -msgstr "DNS 查询记录" - -msgid "custom_access" -msgstr "访问记录" - -msgid "custom_error" -msgstr "错误记录" +msgstr "系统默认值" msgid "If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates." From 68350a729cbe47860123474b098e955e4699bcd1 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 31 Mar 2024 20:06:12 +0800 Subject: [PATCH 537/972] shadowsocksr-libev: fix use-after-free due to a typo --- .../patches/104-fix-use-after-free.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 shadowsocksr-libev/patches/104-fix-use-after-free.patch diff --git a/shadowsocksr-libev/patches/104-fix-use-after-free.patch b/shadowsocksr-libev/patches/104-fix-use-after-free.patch new file mode 100644 index 00000000000..5095eca37dd --- /dev/null +++ b/shadowsocksr-libev/patches/104-fix-use-after-free.patch @@ -0,0 +1,11 @@ +--- a/server/server.c ++++ b/server/server.c +@@ -1943,7 +1943,7 @@ main(int argc, char **argv) + memcpy(text, protocol, strlen(protocol) - 11); + int length = strlen(protocol) - 11; + free(protocol); +- obfs = (char*)malloc(length); ++ protocol = (char*)malloc(length); + memset(protocol, 0x00, length); + memcpy(protocol, text, length); + LOGI("protocol compatible enable, %s", protocol); From b47885ed772c92cb3e592ab16db0a5aa657af7d6 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 1 Apr 2024 16:56:51 +0800 Subject: [PATCH 538/972] shadowsocksr-libev: Upgrade PCRE to PCRE2 --- shadowsocksr-libev/Makefile | 12 ++---------- ....patch => 104-pointer-used-after-free.patch} | 13 +++++++++---- .../patches/105-Upgrade-PCRE-to-PCRE2.patch | 17 ++++++++++++++++- 3 files changed, 27 insertions(+), 15 deletions(-) rename shadowsocksr-libev/patches/{104-fix-use-after-free.patch => 104-pointer-used-after-free.patch} (53%) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 9b7160c130d..8701d96e361 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocksr-libev PKG_VERSION:=2.5.6 -PKG_RELEASE:=10 +PKG_RELEASE:=11 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev @@ -34,7 +34,7 @@ define Package/shadowsocksr-libev/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocksr-libev ssr-$(1) URL:=https://github.com/shadowsocksrr/shadowsocksr-libev - DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib + DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib +PACKAGE_libopenssl-legacy:libopenssl-legacy endef define Package/shadowsocksr-libev-ssr-$(1)/install @@ -60,14 +60,6 @@ CONFIGURE_ARGS += \ TARGET_CFLAGS += -flto TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -ifeq ($(CONFIG_GCC_VERSION_12),y) - TARGET_CFLAGS += -Wno-error=use-after-free -endif - -ifeq ($(CONFIG_GCC_VERSION_13),y) - TARGET_CFLAGS += -Wno-error=use-after-free -endif - $(foreach component,$(SHADOWSOCKSR_COMPONENTS), \ $(eval $(call BuildPackage,shadowsocksr-libev-ssr-$(component))) \ ) diff --git a/shadowsocksr-libev/patches/104-fix-use-after-free.patch b/shadowsocksr-libev/patches/104-pointer-used-after-free.patch similarity index 53% rename from shadowsocksr-libev/patches/104-fix-use-after-free.patch rename to shadowsocksr-libev/patches/104-pointer-used-after-free.patch index 5095eca37dd..9081d5560c3 100644 --- a/shadowsocksr-libev/patches/104-fix-use-after-free.patch +++ b/shadowsocksr-libev/patches/104-pointer-used-after-free.patch @@ -1,11 +1,16 @@ --- a/server/server.c +++ b/server/server.c -@@ -1943,7 +1943,7 @@ main(int argc, char **argv) +@@ -1942,12 +1942,12 @@ + text = (char*)malloc(strlen(protocol) - 11); memcpy(text, protocol, strlen(protocol) - 11); int length = strlen(protocol) - 11; - free(protocol); -- obfs = (char*)malloc(length); -+ protocol = (char*)malloc(length); +- free(protocol); + obfs = (char*)malloc(length); memset(protocol, 0x00, length); memcpy(protocol, text, length); LOGI("protocol compatible enable, %s", protocol); + free(text); ++ free(protocol); + protocol_compatible = 1; + } + } diff --git a/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch index c040755c626..1e493bd28c2 100644 --- a/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch +++ b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch @@ -14,6 +14,8 @@ Signed-off-by: sbwml <984419930@qq.com> delete mode 100644 m4/pcre.m4 create mode 100644 m4/pcre2.m4 +diff --git a/configure.ac b/configure.ac +index f9c51ab..0513db0 100755 --- a/configure.ac +++ b/configure.ac @@ -20,10 +20,10 @@ AC_DISABLE_STATIC @@ -31,6 +33,9 @@ Signed-off-by: sbwml <984419930@qq.com> fi dnl Checks for using shared libraries from system +diff --git a/m4/pcre.m4 b/m4/pcre.m4 +deleted file mode 100644 +index 4d965bc..0000000 --- a/m4/pcre.m4 +++ /dev/null @@ -1,152 +0,0 @@ @@ -186,6 +191,9 @@ Signed-off-by: sbwml <984419930@qq.com> -AC_SUBST(pcreh) -AC_SUBST(pcre_pcreh) -]) +diff --git a/m4/pcre2.m4 b/m4/pcre2.m4 +new file mode 100644 +index 0000000..fcec4b7 --- /dev/null +++ b/m4/pcre2.m4 @@ -0,0 +1,181 @@ @@ -370,6 +378,8 @@ Signed-off-by: sbwml <984419930@qq.com> +AC_SUBST(pcre2h) +AC_SUBST(pcre2_pcre2h) +]) +diff --git a/src/rule.c b/src/rule.c +index 8aae04e..41ba5e7 100644 --- a/src/rule.c +++ b/src/rule.c @@ -82,14 +82,28 @@ int @@ -407,7 +417,7 @@ Signed-off-by: sbwml <984419930@qq.com> return 0; } } -@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *ru +@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *rules, const char *name, size_t name_len) cork_dllist_foreach_void(rules, curr, next) { rule_t *rule = cork_container_of(curr, rule_t, entries); @@ -441,6 +451,8 @@ Signed-off-by: sbwml <984419930@qq.com> + } ss_free(rule); } +diff --git a/src/rule.h b/src/rule.h +index 015bc42..84a89af 100644 --- a/src/rule.h +++ b/src/rule.h @@ -33,17 +33,27 @@ @@ -477,3 +489,6 @@ Signed-off-by: sbwml <984419930@qq.com> struct cork_dllist_item entries; } rule_t; +-- +2.42.0 + From 03a8dfe9477af12cf8a2488a8a588f4a12c339e1 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Tue, 2 Apr 2024 01:15:10 +0800 Subject: [PATCH 539/972] shadowsocksr-libev: resolve recursive depend --- shadowsocksr-libev/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 8701d96e361..5b960a47606 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -34,7 +34,7 @@ define Package/shadowsocksr-libev/Default SUBMENU:=Web Servers/Proxies TITLE:=shadowsocksr-libev ssr-$(1) URL:=https://github.com/shadowsocksrr/shadowsocksr-libev - DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib +PACKAGE_libopenssl-legacy:libopenssl-legacy + DEPENDS:=+libev +libsodium +libopenssl +libpthread +libpcre2 +libudns +zlib endef define Package/shadowsocksr-libev-ssr-$(1)/install From c0abcd264717fc2f954cc4f641e16c607f0d1a5d Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 5 Apr 2024 22:45:12 +0800 Subject: [PATCH 540/972] luci-app-ssr-plus: Add WireGuard `kernelMode` `reserved` `keepalive` ` allowedips` argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit whether to use the virtual NIC TUN of the Linux kernel!Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. Some routes cannot be connected if they are used. --- .../model/cbi/shadowsocksr/client-config.lua | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d2b87a7fa0e..3831ce64209 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -831,11 +831,22 @@ o:depends("transport", "kcp") o.rmempty = true -- [[ WireGuard 部分 ]]-- +o = s:option(Flag, "kernelmode", translate("Enabled Kernel virtual NIC TUN(optional)")) +o.description = translate("Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. If used, IPv6 routing table 1023 is occupied.") +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.default = "0" +o.rmempty = true + o = s:option(DynamicList, "local_addresses", translate("Local addresses")) o.datatype = "cidr" o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.rmempty = true +o = s:option(DynamicList, "reserved", translate("Reserved bytes(optional)")) +o.description = translate("Wireguard reserved bytes.") +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.rmempty = true + o = s:option(Value, "private_key", translate("Private key")) o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.password = true @@ -850,6 +861,19 @@ o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.password = true o.rmempty = true +o = s:option(Value, "keepalive", translate("Heartbeat interval(second)")) +o.description = translate("Default value 0 indicatesno heartbeat.") +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.default = "0" +o.rmempty = true + +o = s:option(DynamicList, "allowedips", translate("allowedIPs(optional)")) +o.description = translate("Wireguard allows only traffic from specific source IP.") +o.datatype = "cidr" +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) +o.default = "0.0.0.0/0" +o.rmempty = true + -- [[ TLS ]]-- o = s:option(Flag, "tls", translate("TLS")) o.rmempty = true From 6f6f2b679b9e0a30b2c68d5479edc8c506f687b6 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 5 Apr 2024 22:53:23 +0800 Subject: [PATCH 541/972] luci-app-ssr-plus: Add `kernelMode` `reserved` `keepalive` ` allowedips` argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** whether to use the virtual NIC TUN of the Linux kernel!Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. Some routes cannot be connected if they are used. *** Current Wireguard protocol `outbound` Is not supported `streamSettings`. --- .../usr/share/shadowsocksr/gen_config.lua | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index cbb911ebed9..c98d623a809 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -72,9 +72,13 @@ function wireguard() { publicKey = server.peer_pubkey, preSharedKey = server.preshared_key, - endpoint = server.server .. ":" .. server.server_port + endpoint = server.server .. ":" .. server.server_port, + keepAlive = tonumber(server.keepalive), + allowedIPs = (server.allowedips) or nil, } }, + kernelMode = (server.kernelmode == "1") and true or false, + reserved = {server.reserved} or nil, mtu = tonumber(server.mtu) } end @@ -172,7 +176,7 @@ local Xray = { protocol = server.v2ray_protocol, settings = outbound_settings, -- 底层传输配置 - streamSettings = { + streamSettings = (server.v2ray_protocol ~= "wireguard") and { network = server.transport or "tcp", security = (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, tlsSettings = (server.tls == '1') and { @@ -258,14 +262,14 @@ local Xray = { tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 } - }, - mux = { + } or nil, + mux = (server.v2ray_protocol ~= "wireguard") and { -- mux enabled = (server.mux == "1") and true or false, -- Mux concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 - } + } or nil } } local cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA" @@ -322,7 +326,7 @@ local ss = { } local hysteria = { server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. server.port_range) or server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. server.port_range or server.server .. ":443")), - bandwidth = { + bandwidth = (server.uplink_capacity or server.downlink_capacity) and { up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil }, @@ -336,12 +340,11 @@ local hysteria = { hopInterval = (server.port_range and (tonumber(server.hopinterval) .. "s") or nil) } or nil) } or nil, - --[[ tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { - listen = "0.0.0.0:" .. tonumber(local_port) -} or nil, -]] + listen = "0.0.0.0:" .. tonumber(local_port) + } or nil, +]]-- tcpRedirect = (proto:find("tcp") and local_port ~= "0") and { listen = "0.0.0.0:" .. tonumber(local_port) } or nil, @@ -359,7 +362,7 @@ local hysteria = { maxConnReceiveWindow = (server.maxconnreceivewindow and server.maxconnreceivewindow or nil), maxIdleTimeout = (tonumber(server.maxidletimeout) and tonumber(server.maxidletimeout) .. "s" or nil), keepAlivePeriod = (tonumber(server.keepaliveperiod) and tonumber(server.keepaliveperiod) .. "s" or nil), - disable_mtu_discovery = (server.disablepathmtudiscovery == "1") and true or false + disablePathMTUDiscovery = (server.disablepathmtudiscovery == "1") and true or false } or nil, auth = server.hy2_auth, tls = (server.tls_host) and { @@ -394,7 +397,7 @@ local chain_sslocal = { mode = (proto:find("tcp,udp") and "tcp_and_udp") or proto .. "_only", protocol = "redir", tcp_redir = "redirect", - --tcp_redir = "tproxy", + --tcp_redir = "tproxy", udp_redir = "tproxy" }, socks_port ~= "0" and { From 4834ba4dbd09933402120c5308f74df962d9bd37 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 5 Apr 2024 23:06:36 +0800 Subject: [PATCH 542/972] luci-app-ssr-plus: Add `kernelMode` `reserved` `keepalive` `allowedips` argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** whether to use the virtual NIC TUN of the Linux kernel!Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. Some routes cannot be connected if they are used. *** Current Wireguard protocol `outbound` Is not supported `streamSettings`. --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index d343d4f28aa..632b5c9e44f 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -942,9 +942,21 @@ msgstr "写入缓冲区大小" msgid "Congestion" msgstr "拥塞控制" +msgid "Enabled Kernel virtual NIC TUN(optional)" +msgstr "启用内核的虚拟网卡 TUN(可选)" + +msgid "Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. If used, IPv6 routing table 1023 is occupied." +msgstr "需要系统支持且有 root 权限才能使用 Linux 内核的虚拟网卡 TUN,使用后会占用 IPv6 的 1023 号路由表。" + msgid "Local addresses" msgstr "本地地址" +msgid "Reserved bytes(optional)" +msgstr "保留字节(可选)" + +msgid "Wireguard reserved bytes." +msgstr "Wireguard 保留字节。" + msgid "Private key" msgstr "私钥" @@ -954,6 +966,15 @@ msgstr "节点公钥" msgid "Pre-shared key" msgstr "预共享密钥" +msgid "Default value 0 indicatesno heartbeat." +msgstr "默认为 0 表示无心跳。" + +msgid "allowedIPs(optional)" +msgstr "allowedIPs(可选)" + +msgid "Wireguard allows only traffic from specific source IP." +msgstr "Wireguard 仅允许特定源 IP 的流量。" + msgid "Network interface to use" msgstr "使用的网络接口" From fdf7b30d2f9786406aef01d00b3e98afbe7519d6 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 6 Apr 2024 09:47:32 +0800 Subject: [PATCH 543/972] luci-app-ssr-plus: Add WireGuard `kernelMode` `reserved` `keepalive` `allowedips` argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** whether to use the virtual NIC TUN of the Linux kernel!Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. Some routes cannot be connected if they are used. *** Current Wireguard protocol outbound Is not supported streamSettings. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3831ce64209..44b29af29a4 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -525,7 +525,9 @@ o.default = "3" o.rmempty = true o = s:option(Value, "timeout", translate("Timeout for establishing a connection to server(second)")) +o.description = translate("Default value 0 indicatesno heartbeat.") o:depends("type", "tuic") +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.datatype = "uinteger" o.default = "8" o.rmempty = true @@ -861,12 +863,6 @@ o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.password = true o.rmempty = true -o = s:option(Value, "keepalive", translate("Heartbeat interval(second)")) -o.description = translate("Default value 0 indicatesno heartbeat.") -o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) -o.default = "0" -o.rmempty = true - o = s:option(DynamicList, "allowedips", translate("allowedIPs(optional)")) o.description = translate("Wireguard allows only traffic from specific source IP.") o.datatype = "cidr" From f60f1978a0b5feaf801b84e7a0ed4b86cba400f9 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 6 Apr 2024 09:48:42 +0800 Subject: [PATCH 544/972] luci-app-ssr-plus: Add WireGuard `kernelMode` `reserved` `keepalive` `allowedips` argument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** whether to use the virtual NIC TUN of the Linux kernel!Virtual NIC TUN of Linux kernel can be used only when system supports and have root permission. Some routes cannot be connected if they are used. *** Current Wireguard protocol outbound Is not supported streamSettings. --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index c98d623a809..b07949e5f19 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -73,7 +73,7 @@ function wireguard() publicKey = server.peer_pubkey, preSharedKey = server.preshared_key, endpoint = server.server .. ":" .. server.server_port, - keepAlive = tonumber(server.keepalive), + keepAlive = tonumber(server.heartbeat), allowedIPs = (server.allowedips) or nil, } }, From 554ebc26a4fdc32343360e6a98d8ab7a2d92c89a Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 13 Apr 2024 22:54:55 +0800 Subject: [PATCH 545/972] luci-app-ssr-plus: Fix 'TUIC' does not run or cannot connect. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、If the listening socket is not set to dual-stack, the socket behavior depends on the platform. 2、Settings for the local inbound socks5 server should be set to [::] for proper running after the dual-stack configuration. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 44b29af29a4..280d03caacd 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -568,6 +568,7 @@ o.rmempty = true -- Tuic settings for the local inbound socks5 server o = s:option(Flag, "tuic_dual_stack", translate("Dual-stack Listening Socket")) +o.description = translate("If this option is not set, the socket behavior is platform dependent.") o:depends("type", "tuic") o.default = "0" o.rmempty = true @@ -941,7 +942,8 @@ o:depends("reality", true) o.rmempty = true o = s:option(DynamicList, "tls_alpn", translate("TLS ALPN")) -o:depends({type = "tuic", tls = true}) +o:depends("type", "tuic") +o.default = "h3" o.rmempty = true -- [[ allowInsecure ]]-- From 6515bbbd0d0db3fdcac098df7d617dbeeeff96d6 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 13 Apr 2024 22:57:16 +0800 Subject: [PATCH 546/972] luci-app-ssr-plus: Fix 'TUIC' does not run or cannot connect. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、If the listening socket is not set to dual-stack, the socket behavior depends on the platform. 2、Settings for the local inbound socks5 server should be set to [::] for proper running after the dual-stack configuration. --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index b07949e5f19..877d955408c 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -476,8 +476,8 @@ local tuic = { receive_window = tonumber(server.receive_window) }, ["local"] = { - server = tonumber(socks_port) and (server.tuic_dual_stack == "1" and "[::1]:" or "127.0.0.1:") .. (socks_port == "0" and local_port or tonumber(socks_port)), - dual_stack = (server.tuic_dual_stack == "1") and true or false, + server = tonumber(socks_port) and "[::]:" .. (socks_port == "0" and local_port or tonumber(socks_port)), + dual_stack = (server.tuic_dual_stack == "1") and true or nil, max_packet_size = tonumber(server.tuic_max_package_size) } } From f37eb16f64b301272309b2b676af76cce5898d0a Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 13 Apr 2024 22:59:16 +0800 Subject: [PATCH 547/972] luci-app-ssr-plus: Fix 'TUIC' does not run or cannot connect. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、If the listening socket is not set to dual-stack, the socket behavior depends on the platform. 2、Settings for the local inbound socks5 server should be set to [::] for proper running after the dual-stack configuration. --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 632b5c9e44f..523463807e9 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -1050,6 +1050,9 @@ msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb) msgid "Dual-stack Listening Socket" msgstr "双栈Socket监听" +msgid "If this option is not set, the socket behavior is platform dependent." +msgstr "如果监听套接字未设置为双栈,则套接字的行为取决于平台。" + msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" From 47848e614b8006615ac5e273cc3ac8170f27552e Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 13 Apr 2024 23:20:30 +0800 Subject: [PATCH 548/972] luci-app-ssr-plus: Fix 'TUIC' does not run or cannot connect. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、If the listening socket is not set to dual-stack, the socket behavior depends on the platform. 2、Settings for the local inbound socks5 server should be set to [::] for proper running after the dual-stack configuration. See official WIKI: https://github.com/EAimTY/tuic/tree/dev/tuic-client --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 523463807e9..7d9f13bfa72 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -1051,7 +1051,7 @@ msgid "Dual-stack Listening Socket" msgstr "双栈Socket监听" msgid "If this option is not set, the socket behavior is platform dependent." -msgstr "如果监听套接字未设置为双栈,则套接字的行为取决于平台。" +msgstr "如果未设置此选项,则套接字行为依赖于平台。" msgid "Maximum packet size the socks5 server can receive from external" msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" From 5ae36df0b585e2e084eb83458904ddb0e9962c41 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 16 Apr 2024 01:48:12 +0800 Subject: [PATCH 549/972] hysteria: update to 2.4.1 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 0e492f5e2a2..d71d5c59587 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.4.0 +PKG_VERSION:=2.4.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=7776ba22b76446d6c71f496be8e635780f1b219c7d0d3a3bd99ee81067f8c8b4 +PKG_HASH:=a03d8843048e87c26417c1eac7107aa4eea7f8d5329a18eb56d7ce89f6fedf29 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 6f3b6a1181ec0a98b051cc264da9192fc30f8914 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 21 Apr 2024 00:36:52 +0800 Subject: [PATCH 550/972] luci-app-ssr-plus: Fixing misconfigurations (#1454) * luci-app-ssr-plus: Fixing misconfigurations The heartbeat interval should be configured, incorrectly configured to `Timeout`. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 4 ++-- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 280d03caacd..cd993d9d903 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -412,7 +412,9 @@ o.datatype = "uinteger" o.default = "30" o = s:option(Value, "keepaliveperiod", translate("The keep-alive period.(Unit:second)")) +o.description = translate("Default value 0 indicatesno heartbeat.") o:depends({type = "hysteria", flag_quicparam = "1"}) +o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.rmempty = true o.datatype = "uinteger" o.default = "10" @@ -525,9 +527,7 @@ o.default = "3" o.rmempty = true o = s:option(Value, "timeout", translate("Timeout for establishing a connection to server(second)")) -o.description = translate("Default value 0 indicatesno heartbeat.") o:depends("type", "tuic") -o:depends({type = "v2ray", v2ray_protocol = "wireguard"}) o.datatype = "uinteger" o.default = "8" o.rmempty = true diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 877d955408c..9c04c7436d8 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -73,7 +73,7 @@ function wireguard() publicKey = server.peer_pubkey, preSharedKey = server.preshared_key, endpoint = server.server .. ":" .. server.server_port, - keepAlive = tonumber(server.heartbeat), + keepAlive = tonumber(server.keepaliveperiod), allowedIPs = (server.allowedips) or nil, } }, From 6f6e9ae329ba4ca09ae62808755824b173d41c1f Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 21 Apr 2024 00:37:18 +0800 Subject: [PATCH 551/972] =?UTF-8?q?luci-app-ssr-plus:=20Fixed=20an=20issue?= =?UTF-8?q?=20with=20the=20official=20latest=20master=20bran=E2=80=A6=20(#?= =?UTF-8?q?1453)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * luci-app-ssr-plus:Fixed an issue with the official latest master branch not working. luci-base: conversion of ucitrack handling from uci to json. See the official commit for details: https://github.com/openwrt/luci/commit/d5c413d2853fde0d5cec98641606a0a30f93281c * luci-app-ssr-plus:Fixed an issue with the official latest master branch not working. luci-base: conversion of ucitrack handling from uci to json. See the official commit for details: https://github.com/openwrt/luci/commit/d5c413d2853fde0d5cec98641606a0a30f93281c --- luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus | 2 ++ .../root/usr/share/ucitrack/luci-app-ssr-plus.json | 4 ++++ 2 files changed, 6 insertions(+) create mode 100644 luci-app-ssr-plus/root/usr/share/ucitrack/luci-app-ssr-plus.json diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 72b338183e5..64751cf4d7a 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -1,10 +1,12 @@ #!/bin/sh uci -q batch <<-EOF >/dev/null + [ -e "/etc/config/ucitrack" ] && { delete ucitrack.@shadowsocksr[-1] add ucitrack shadowsocksr set ucitrack.@shadowsocksr[-1].init=shadowsocksr commit ucitrack + } delete firewall.shadowsocksr set firewall.shadowsocksr=include diff --git a/luci-app-ssr-plus/root/usr/share/ucitrack/luci-app-ssr-plus.json b/luci-app-ssr-plus/root/usr/share/ucitrack/luci-app-ssr-plus.json new file mode 100644 index 00000000000..5f4740d9692 --- /dev/null +++ b/luci-app-ssr-plus/root/usr/share/ucitrack/luci-app-ssr-plus.json @@ -0,0 +1,4 @@ +{ + "config": "shadowsocksr", + "init": "shadowsocksr" +} From 7ac7c34f0c87db2f2061b68aa6140660bb965dc3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 21 Apr 2024 23:13:12 +0800 Subject: [PATCH 552/972] shadowsocks-rust: update to 1.18.3 (#1455) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 5e76eb785ef..50e646e3ffd 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.18.2 +PKG_VERSION:=1.18.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b772792e2d3f8ccc3a5d5255bfc65b85801b97e1139bbb0e50d39a91fb7d9e61 +PKG_HASH:=0eb817d81e6827e65593c67d4eef6a1136ca84a1c33cf4c97b3a84e98e5a7f60 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From f5ef48d4aafaefbbd648d6b90e062c578b015bf3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 May 2024 03:14:54 +0800 Subject: [PATCH 553/972] hysteria: update to 2.4.3 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index d71d5c59587..63ce938e04b 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.4.1 +PKG_VERSION:=2.4.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=a03d8843048e87c26417c1eac7107aa4eea7f8d5329a18eb56d7ce89f6fedf29 +PKG_HASH:=7bc27f917e86293f3a23a7e14d4583f31b02669f76c81fcce48bb014daf52b6a PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 51f1eeb75011fdcdd3dcc11839e84ca738c9c644 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 May 2024 03:16:14 +0800 Subject: [PATCH 554/972] xray-core: update to 1.8.11 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 07535f269ae..f501ab305d3 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.10 +PKG_VERSION:=1.8.11 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=af5bb501b50e3abe6b54c8d8ea764d7f8b021c4d53540a468254a24f3334afc5 +PKG_HASH:=d99ee6008c508abbad6bbb242d058b22efb50fb35867d15447a2b4602ab4b283 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 5ff8528ef583b0cb05858b5ad5b25c4991cba1ea Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 May 2024 03:17:13 +0800 Subject: [PATCH 555/972] xray-plugin: update to 1.8.11 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 7d53c33a383..df0e0b3c174 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.10 +PKG_VERSION:=1.8.11 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ee2f403682c664108d00791540c544b6ae6f24dc84db876bd4d8f7ba618e9cba +PKG_HASH:=71fac8c5f816f493b120549d64ccc14cf6534c0a7db619a4cee292adb306e9dd PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From de8bdaade01227d70286bbd6ab37d07530112fed Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 4 May 2024 03:18:08 +0800 Subject: [PATCH 556/972] v2ray-core: update to 5.16.1 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index fe6198cc59e..b2f471b953a 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.13.0 +PKG_VERSION:=5.16.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=6b2eb6286c99da010db5c5f629f950e753fc4addeed189d3d898c1ef56d5a785 +PKG_HASH:=e5d61b97168ebdf6da3d672ab40abe5b22951d46997072ca1ee497a3aa47ba05 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 4219ffed181ec721451731442f9f5f7334ef7ecf Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 12 May 2024 23:59:08 +0800 Subject: [PATCH 557/972] shadowsocks-rust: update to 1.18.4 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 50e646e3ffd..1e1341b1545 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.18.3 +PKG_VERSION:=1.18.4 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0eb817d81e6827e65593c67d4eef6a1136ca84a1c33cf4c97b3a84e98e5a7f60 +PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 8e378bab4a4d30edde3a9b207d9f49a10733e7ee Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 17:50:10 +0800 Subject: [PATCH 558/972] =?UTF-8?q?luci-app-ssr-plus=EF=BC=9A=20Update=20t?= =?UTF-8?q?ranslate?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 38 +++++++++++++------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 7d9f13bfa72..e292f10261f 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -155,22 +155,22 @@ msgid "Obfuscation Password" msgstr "混淆密码" msgid "Hysterir QUIC parameters" -msgstr "QUIC参数" +msgstr "QUIC 参数" msgid "QUIC initStreamReceiveWindow" -msgstr "QUIC初始流接收窗口大小。" +msgstr "QUIC 初始流接收窗口大小。" msgid "QUIC maxStreamReceiveWindow" -msgstr "QUIC最大的流接收窗口大小" +msgstr "QUIC 最大的流接收窗口大小" msgid "QUIC initConnReceiveWindow" -msgstr "QUIC初始的连接接收窗口大小" +msgstr "QUIC 初始的连接接收窗口大小" msgid "QUIC maxConnReceiveWindow" -msgstr "QUIC最大的连接接收窗口大小" +msgstr "QUIC 最大的连接接收窗口大小" msgid "QUIC maxIdleTimeout(Unit:second)" -msgstr "QUIC最长空闲超时时间(单位:秒)" +msgstr "QUIC 最长空闲超时时间(单位:秒)" msgid "The keep-alive period.(Unit:second)" msgstr "心跳包发送间隔(单位:秒)" @@ -195,7 +195,7 @@ msgid "Shadow-TLS ChainPoxy type" msgstr "代理链类型" msgid "Shadowsocks-rust Version" -msgstr "shadowsocks rust版本" +msgstr "shadowsocks rust 版本" msgid "Vmess Protocol" msgstr "VMESS协议" @@ -1003,19 +1003,19 @@ msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" msgid "TUIC User UUID" -msgstr "TUIC用户uuid" +msgstr "TUIC 用户 uuid" msgid "TUIC Server IP Address" -msgstr "TUIC 服务器IP地址" +msgstr "TUIC 服务器 IP 地址" msgid "TUIC User Password" -msgstr "TUIC用户密钥" +msgstr "TUIC 用户密钥" msgid "UDP relay mode" -msgstr "UDP中继模式" +msgstr "UDP 中继模式" msgid "native UDP characteristics" -msgstr "原生UDP特性" +msgstr "原生 UDP 特性" msgid "lossless UDP relay using QUIC streams" msgstr "使用 QUIC 流的无损 UDP 中继" @@ -1030,13 +1030,13 @@ msgid "Timeout for establishing a connection to server(second)" msgstr "连接超时时间(单位:秒)" msgid "Garbage collection interval(second)" -msgstr "UDP数据包片残片清理间隔(单位:秒)" +msgstr "UDP 数据包片残片清理间隔(单位:秒)" msgid "Garbage collection lifetime(second)" -msgstr "UDP数据包残片在服务器的保留时间(单位:秒)" +msgstr "UDP 数据包残片在服务器的保留时间(单位:秒)" msgid "Disable SNI" -msgstr "关闭SNI服务器名称指示" +msgstr "关闭 SNI 服务器名称指示" msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" @@ -1048,13 +1048,13 @@ msgid "TUIC receive window" msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" msgid "Dual-stack Listening Socket" -msgstr "双栈Socket监听" +msgstr "双栈 Socket 监听" msgid "If this option is not set, the socket behavior is platform dependent." -msgstr "如果未设置此选项,则套接字行为依赖于平台。" +msgstr "如果未设置此选项,则 Socket 行为依赖于平台。" msgid "Maximum packet size the socks5 server can receive from external" -msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" +msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位:字节)" msgid "Disable ChinaDNS-NG" -msgstr "直通模式(禁用ChinaDNS-NG)" +msgstr "直通模式(禁用 ChinaDNS-NG)" From eaef2115631098d7cd7cb70107ac812830d815d5 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 19:57:41 +0800 Subject: [PATCH 559/972] dns2tcp: update to 1.1.1 --- dns2tcp/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dns2tcp/Makefile b/dns2tcp/Makefile index e65f95ed60c..0ad98ae7aa1 100644 --- a/dns2tcp/Makefile +++ b/dns2tcp/Makefile @@ -5,14 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dns2tcp -PKG_VERSION:=1.1.0 +PKG_VERSION:=1.1.1 PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/zfl9/dns2tcp.git -PKG_SOURCE_DATE:=2020-05-05 -PKG_SOURCE_VERSION:=10ed687778f18d1b9c98bb51187a3a9086d3a0d9 -PKG_MIRROR_HASH:=bb40f027fef8534b0f905a827dbc3cc613fd06b705392148a12b80e1f9570a88 +PKG_SOURCE_DATE:=2024-05-18 +PKG_SOURCE_VERSION:=8796f058ee0c578b71e71ed22f07b942339be999 +PKG_MIRROR_HASH:=7e5ecac83a171ffa7dbeddbaa1425b5bdba72a22b43a3b2995ce08e34fe743b5 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=AGPL-3.0-only From 043cbe40519421ea9694a30a26f61f8b74383d82 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 20:01:22 +0800 Subject: [PATCH 560/972] naiveproxy: update to 125.0.6422.35-1 --- naiveproxy/Makefile | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 13857b1089b..cb2a114060d 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=121.0.6167.71-1 +PKG_VERSION:=125.0.6422.35-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8e6d3029a0249140595fab3d668103881689f6c7ef7c65230191f674a370b309 +PKG_HASH:=fd1fdab08aa00f19fb6ca1cb80cc132ab5a8d2bd3c95fa4ba41b3d79fbc88ebd PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -55,22 +55,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=18-init-12938-geb1d5065-1 +CLANG_VER:=19-init-8091-gab037c4f-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=fd1628fdb22157a7328c25802a745f17f92f5210a8b62591202deb92413f52e5 + HASH:=6b797d118cc593eca0f2e568169295a5a9b65ddabed2de34b9a201a4bb7990f5 endef -PGO_VER:=6167-1705427108-cb39f8a22759d3159f79efc273ac8b13a0f3882a +PGO_VER:=6422-1715102072-9bdbfa29f2bb1ff28f0f031b98501a1193b8d03b-13cfbf145656b369f9c23bff70ab2fb07e1e2fdb PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=7632c875db539cb1d4a0df6eb3acc9e155d2d477376dec1f815081bbae7cdd4f + HASH:=5a0b3d3f75c536cade97f15a71c17424c868948fa26a8267488bd588756b66af endef define Build/Prepare From 44d2b574e422bb028b666acc17fa5b0bbf3822cb Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 20:02:42 +0800 Subject: [PATCH 561/972] naiveproxy: update to 125.0.6422.35-1 --- naiveproxy/src/init_env.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index e32b7faa957..166bead99d5 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -55,6 +55,7 @@ use_gio=false use_gtk=false use_platform_icu_alternatives=true use_glib=false +enable_js_protobuf=false disable_file_support=true enable_websockets=false From 922c8399f5a7755380051fc13d7db7f0da98b7c0 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 20:04:17 +0800 Subject: [PATCH 562/972] gn: Update to git HEAD --- gn/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index eb1c24263cb..abcca95b3e8 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2024-01-24 -PKG_SOURCE_VERSION:=a2e2717ea670249a34b0de4b3e54f268d320bdfa -PKG_MIRROR_HASH:=13d4b2ac0ca78cedf25ca9919c2969eb37c36b6dd5e8e6e8cd114441500daa76 +PKG_SOURCE_DATE:=2024-05-13 +PKG_SOURCE_VERSION:=df98b86690c83b81aedc909ded18857296406159 +PKG_MIRROR_HASH:=3c3ce5cb69a8ec210bb6574db84d53745f7f58e1d82442af0423f69f7190c31f PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 4df5e0a0450158c8d36574489ca9cce5b65d381e Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 20:05:05 +0800 Subject: [PATCH 563/972] gn: Update to git HEAD --- gn/src/out/last_commit_position.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 5f82253b92a..2581a12993a 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2143 -#define LAST_COMMIT_POSITION "2143 (a2e2717ea670)" +#define LAST_COMMIT_POSITION_NUM 2171 +#define LAST_COMMIT_POSITION "2171 (df98b86690c8)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 084f677511cf05894b08a64766b8455f9426bfcb Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 May 2024 20:06:57 +0800 Subject: [PATCH 564/972] v2ray-plugin: update to 5.15.1 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index e1107f3a4e1..71a869974bb 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.13.0 +PKG_VERSION:=5.15.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=23b3a66516cb3b722839754913a4f0c8ac4bbb01631a4ad9251252fd9b401100 +PKG_HASH:=833c2ee956ca054865ede20029a92b1eaf821c22cdbc5ec4ed4108e1f493ad1f PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From fa5405f046004ff7cf61c3366c811383da100393 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 22 May 2024 21:52:36 +0800 Subject: [PATCH 565/972] xray-plugin: update to 1.8.12 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index df0e0b3c174..402ec8c9873 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.11 +PKG_VERSION:=1.8.12 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=71fac8c5f816f493b120549d64ccc14cf6534c0a7db619a4cee292adb306e9dd +PKG_HASH:=dddc552e1d3616a93bd93082439f042c048833307eb009a4df97f336deac3346 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From f2b08db26225df4e42d3606d59b1d318b1163518 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 22 May 2024 21:53:20 +0800 Subject: [PATCH 566/972] xray-core: update to 1.8.12 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index f501ab305d3..8d8cd2a4575 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.11 +PKG_VERSION:=1.8.12 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=d99ee6008c508abbad6bbb242d058b22efb50fb35867d15447a2b4602ab4b283 +PKG_HASH:=28a7a721eaa69425e2bef63a54b3fd05564eba4ba427b418fb1ee6a25d46eb7a PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From f6120c170cbadae34d168a52f65d46d384fb29b7 Mon Sep 17 00:00:00 2001 From: zxlhhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 24 May 2024 01:45:00 +0800 Subject: [PATCH 567/972] xray-core: update to 1.8.13 (#1480) --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 8d8cd2a4575..5757fad8d3e 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.12 +PKG_VERSION:=1.8.13 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=28a7a721eaa69425e2bef63a54b3fd05564eba4ba427b418fb1ee6a25d46eb7a +PKG_HASH:=9e63fbeb4667c19e286389c370d30e9e904f4421784adcbe6cf4d6e172a2ac29 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From b7d1d04dbb8549ae264580df97ea2467575de842 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Fri, 24 May 2024 02:03:11 +0800 Subject: [PATCH 568/972] dns2tcp: sync upstream (#1481) --- dns2tcp/Makefile | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/dns2tcp/Makefile b/dns2tcp/Makefile index 0ad98ae7aa1..cc67f7e5e5b 100644 --- a/dns2tcp/Makefile +++ b/dns2tcp/Makefile @@ -6,13 +6,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dns2tcp PKG_VERSION:=1.1.1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/zfl9/dns2tcp.git -PKG_SOURCE_DATE:=2024-05-18 -PKG_SOURCE_VERSION:=8796f058ee0c578b71e71ed22f07b942339be999 -PKG_MIRROR_HASH:=7e5ecac83a171ffa7dbeddbaa1425b5bdba72a22b43a3b2995ce08e34fe743b5 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/zfl9/dns2tcp/tar.gz/v$(PKG_VERSION)? +PKG_HASH:=35251fbe1645601086f21cdbd5a2f75471d812f99ed8017bb05158840456b43c PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=AGPL-3.0-only @@ -20,6 +18,7 @@ PKG_LICENSE_FILES:=LICENSE PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 +PKG_BUILD_FLAGS:=no-mips16 gc-sections lto include $(INCLUDE_DIR)/package.mk @@ -31,7 +30,7 @@ define Package/dns2tcp URL:=https://github.com/zfl9/dns2tcp endef -TARGET_CFLAGS+= $(FPIC) -flto +TARGET_CFLAGS+= $(FPIC) MAKE_FLAGS+= \ CFLAGS="-std=c99 $(TARGET_CFLAGS)" \ EVCFLAGS="$(TARGET_CFLAGS)" From 3ec99acde6b6da0f36600628fb4424906d41e515 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 26 May 2024 01:26:58 +0800 Subject: [PATCH 569/972] shadowsocks-rust: update to 1.19.0 (#1483) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 1e1341b1545..6f8ccb5f861 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.18.4 +PKG_VERSION:=1.19.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1df8961d4b16f756081a554bf84ded124d43062f92cf36f2ac3f590ee72d22f3 +PKG_HASH:=1c009fc412588cae6145d37382fca35708e3b79f806a90d5cb0fa24e0097d09f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 9abc42a3ef66fbde42e70c97efd49b5f9ef83ab3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Tue, 28 May 2024 02:36:01 +0800 Subject: [PATCH 570/972] shadowsocks-rust: refresh hash fixed: https://github.com/fw876/helloworld/issues/1484 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 6f8ccb5f861..dacf05dd2a9 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -7,11 +7,11 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust PKG_VERSION:=1.19.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1c009fc412588cae6145d37382fca35708e3b79f806a90d5cb0fa24e0097d09f +PKG_HASH:=080d2042eede744d2182ebb47929b504cd42ef8e0eefacdc5ece402f99328ea8 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 862e556f11b9da752c7fd56ee6599af2f196c953 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 15 Jun 2024 23:27:49 +0800 Subject: [PATCH 571/972] shadowsocks-rust: update to 1.19.4 (#1491) * shadowsocks-rust: update to 1.19.3 * shadowsocks-rust: update to 1.19.4 --- shadowsocks-rust/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index dacf05dd2a9..30cad78d91b 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.19.0 -PKG_RELEASE:=2 +PKG_VERSION:=1.19.4 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=080d2042eede744d2182ebb47929b504cd42ef8e0eefacdc5ece402f99328ea8 +PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 3d45c0384e22996392492975bc27325607877d52 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sun, 16 Jun 2024 01:48:39 +0800 Subject: [PATCH 572/972] shadowsocks-rust: update to 1.20.0 (#1492) --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 30cad78d91b..2da3c088db3 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.19.4 +PKG_VERSION:=1.20.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=241a722c7267418443f354e56f89f8790b9e5cc3ea6e286d37028a607d1fc206 +PKG_HASH:=c818124252528886dd2a26c0f4730a34cdeb5764c3812cae0d98e9fc9c1d8ce9 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From c1027dbbef5f9a886f3e736c4d9ef1f85496f6ea Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:26:38 +0800 Subject: [PATCH 573/972] xray-core: update to 1.8.15 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 5757fad8d3e..a07a1876c22 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.13 +PKG_VERSION:=1.8.15 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9e63fbeb4667c19e286389c370d30e9e904f4421784adcbe6cf4d6e172a2ac29 +PKG_HASH:=4e0ac5170668033fd55544688a1d56938de91bc00c5ebc7d8c5211fd97cbca65 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 899b24271e4a4981c98694bae7d3dcae7ee5c3a9 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:27:26 +0800 Subject: [PATCH 574/972] xray-plugin: update to 1.8.15 --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index 402ec8c9873..d52e6b3243c 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.12 +PKG_VERSION:=1.8.15 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=dddc552e1d3616a93bd93082439f042c048833307eb009a4df97f336deac3346 +PKG_HASH:=0079b964dedfa1e5823cc8e8c75c0589875466d91aa1e13cb3683ba5cee0fae5 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 7c8caa1eb45650d922b36376d7ee0302accbae1d Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Thu, 20 Jun 2024 21:30:50 +0800 Subject: [PATCH 575/972] shadowsocks-rust: update to 1.20.1 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 2da3c088db3..36dd5c09e5a 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.20.0 +PKG_VERSION:=1.20.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c818124252528886dd2a26c0f4730a34cdeb5764c3812cae0d98e9fc9c1d8ce9 +PKG_HASH:=95bef16ced3d937e085fdce0bc8de33e156c00bdc9c10100778d3e3ff4df95f0 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 9fc20d617daae4d0964e502b18a1dd849e8304da Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 21 Jun 2024 18:04:34 +0800 Subject: [PATCH 576/972] xray-core: update to 1.8.16 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index a07a1876c22..849baf3667e 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.15 +PKG_VERSION:=1.8.16 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=4e0ac5170668033fd55544688a1d56938de91bc00c5ebc7d8c5211fd97cbca65 +PKG_HASH:=61a96fba9ae18e91ea163f317a3641bca21fa744c214fb912270a3e6b7a8da6d PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From e1b6d6206f89b03466c7b039efa15b10530ba67a Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 21 Jun 2024 19:54:08 +0800 Subject: [PATCH 577/972] i18n: change zh_CN to zh-Hans --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/po/zh-cn | 1 + luci-app-ssr-plus/po/zh_Hans | 1 - luci-app-ssr-plus/po/{zh-cn => zh_Hans}/ssr-plus.po | 0 4 files changed, 2 insertions(+), 2 deletions(-) create mode 120000 luci-app-ssr-plus/po/zh-cn delete mode 120000 luci-app-ssr-plus/po/zh_Hans rename luci-app-ssr-plus/po/{zh-cn => zh_Hans}/ssr-plus.po (100%) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 82e06b3e781..7ea5e11e3fd 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/po/zh-cn b/luci-app-ssr-plus/po/zh-cn new file mode 120000 index 00000000000..8d69574dddc --- /dev/null +++ b/luci-app-ssr-plus/po/zh-cn @@ -0,0 +1 @@ +zh_Hans \ No newline at end of file diff --git a/luci-app-ssr-plus/po/zh_Hans b/luci-app-ssr-plus/po/zh_Hans deleted file mode 120000 index 41451e4a19c..00000000000 --- a/luci-app-ssr-plus/po/zh_Hans +++ /dev/null @@ -1 +0,0 @@ -zh-cn \ No newline at end of file diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po similarity index 100% rename from luci-app-ssr-plus/po/zh-cn/ssr-plus.po rename to luci-app-ssr-plus/po/zh_Hans/ssr-plus.po From 888663f1c0d6bef859d40b89969a058d419c88a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Wed, 26 Jun 2024 22:55:39 +0800 Subject: [PATCH 578/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index cd993d9d903..4a09561cf48 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -690,6 +690,18 @@ o = s:option(Value, "httpupgrade_path", translate("Httpupgrade Path")) o:depends("transport", "httpupgrade") o.rmempty = true +-- [[ splithttp部分 ]]-- + +-- splithttp域名 +o = s:option(Value, "splithttp_host", translate("Splithttp Host")) +o:depends({transport = "splithttp", tls = false}) +o.rmempty = true + +-- splithttp路径 +o = s:option(Value, "splithttp_path", translate("Splithttp Path")) +o:depends("transport", "splithttp") +o.rmempty = true + -- [[ H2部分 ]]-- -- H2域名 From eb06c0e3367c7ab993f3d91c33b141ae81a954de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Wed, 26 Jun 2024 22:59:56 +0800 Subject: [PATCH 579/972] Update client-config.lua --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 4a09561cf48..04871789c28 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -622,6 +622,7 @@ o:value("tcp", "TCP") o:value("kcp", "mKCP") o:value("ws", "WebSocket") o:value("httpupgrade", "HTTPUpgrade") +o:value("splithttp", "SplitHTTP") o:value("h2", "HTTP/2") o:value("quic", "QUIC") o:value("grpc", "gRPC") From db0e90b42330bc47731d39314ac90aa9ce5db566 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:00:16 +0800 Subject: [PATCH 580/972] Update gen_config.lua --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 9c04c7436d8..545e0b88e30 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -235,6 +235,11 @@ local Xray = { host = (server.httpupgrade_host or server.tls_host) or nil, path = server.httpupgrade_path or "" } or nil, + splithttpSettings = (server.transport == "splithttp") and { + -- splithttp + host = (server.splithttp_host or server.tls_host) or nil, + path = server.splithttp_path or "" + } or nil, httpSettings = (server.transport == "h2") and { -- h2 path = server.h2_path or "", From 7ea550f679b5dfbd88ac160f306d0a07dba8841c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=81=A1=E3=81=8B?= <88967758+chika0801@users.noreply.github.com> Date: Wed, 26 Jun 2024 23:02:36 +0800 Subject: [PATCH 581/972] Update ssr-plus.po --- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index e292f10261f..8184bee7d78 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -876,6 +876,12 @@ msgstr "HTTPUpgrade 主机名" msgid "Httpupgrade Path" msgstr "HTTPUpgrade 路径" +msgid "Splithttp Host" +msgstr "SplitHTTP 主机名" + +msgid "Splithttp Path" +msgstr "SplitHTTP 路径" + msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" From d3eff8a0a54bd368857ec6da923f079fed3c42a3 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Wed, 3 Jul 2024 04:37:39 +0800 Subject: [PATCH 582/972] hysteria: update to 2.5.0 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 63ce938e04b..3d3a849535e 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.4.3 +PKG_VERSION:=2.5.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=7bc27f917e86293f3a23a7e14d4583f31b02669f76c81fcce48bb014daf52b6a +PKG_HASH:=78afca9c9c3f2c1a89c2356c66e70489bba74d3b4ede42f4194d179a09959d8c PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 5b8dffe3fad1757f3f073b64d84317d634bf5482 Mon Sep 17 00:00:00 2001 From: Miles Poupart Date: Sat, 13 Jul 2024 02:16:46 +0800 Subject: [PATCH 583/972] hysteria: fix compile error (#1503) --- hysteria/Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 3d3a849535e..d949792626e 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -23,12 +23,12 @@ PKG_USE_MIPS16:=0 PKG_BUILD_FLAGS:=no-mips16 GO_PKG:=github.com/apernet/hysteria -GO_PKG_BUILD_PKG:=$(GO_PKG)/app +GO_PKG_BUILD_PKG:=$(GO_PKG)/app/v2 GO_PKG_LDFLAGS_X = \ - $(GO_PKG)/app/cmd.appVersion=v$(PKG_VERSION) \ - $(GO_PKG)/app/cmd.appType=release \ - $(GO_PKG)/app/cmd.appPlatform=$(GO_OS) \ - $(GO_PKG)/app/cmd.appArch=$(GO_ARCH) + $(GO_PKG)/app/v2/cmd.appVersion=v$(PKG_VERSION) \ + $(GO_PKG)/app/v2/cmd.appType=release \ + $(GO_PKG)/app/v2/cmd.appPlatform=$(GO_OS) \ + $(GO_PKG)/app/v2/cmd.appArch=$(GO_ARCH) include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk From 08d3d7a1a35fb47668f46158cd57780cb8961c3e Mon Sep 17 00:00:00 2001 From: Zeezorn <31385055+Zeezorn@users.noreply.github.com> Date: Mon, 22 Jul 2024 15:24:43 +0800 Subject: [PATCH 584/972] Update xray-core 1.18.21 Update xray-core 1.18.21 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 849baf3667e..6c0099d50d2 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.16 +PKG_VERSION:=1.8.21 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=61a96fba9ae18e91ea163f317a3641bca21fa744c214fb912270a3e6b7a8da6d +PKG_HASH:=464636c323c20cd17a6e10d6fdf0120f0a84096f1c66c0ab4851141d238a1a0b PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From e72c0aac7d56f5f1822b19ae73afcd7fdc02fb1f Mon Sep 17 00:00:00 2001 From: Zeezorn <31385055+Zeezorn@users.noreply.github.com> Date: Mon, 29 Jul 2024 20:12:51 +0800 Subject: [PATCH 585/972] Update Makefile xray-core 1.8.23 Update Makefile xray-core 1.8.23 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 6c0099d50d2..447643994b5 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.21 +PKG_VERSION:=1.8.23 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=464636c323c20cd17a6e10d6fdf0120f0a84096f1c66c0ab4851141d238a1a0b +PKG_HASH:=c3731f11efae32296be75774cb4e86667fbc6e685cae4a891a0bc567b839ac7f PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From f6600cb131268ef9663a5296cda0dc91c96a8e4e Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 17 Aug 2024 16:38:46 +0800 Subject: [PATCH 586/972] chinadns-ng: update to 2024.07.21 --- chinadns-ng/Makefile | 80 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 70 insertions(+), 10 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 0edbb2114c7..8bdd1ffde34 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,19 +5,72 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2023.10.28 +PKG_VERSION:=2024.07.21 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/zfl9/chinadns-ng/tar.gz/$(PKG_VERSION)? -PKG_HASH:=8dbce6ec767b6d132c5625e5533f96c42310f8b67ce4ca963ea34a6797ae99b4 +ifeq ($(ARCH),aarch64) + ifeq ($(BOARD),rockchip) + PKG_ARCH:=$(PKG_NAME)+wolfssl@aarch64-linux-musl@generic+v8a@fast+lto + PKG_HASH:=1a65fadc48956231eba439efd9ae914f6e5eb0f5d257a34cd8c6b0d5734ade57 + else + PKG_ARCH:=$(PKG_NAME)+wolfssl_noasm@aarch64-linux-musl@generic+v8a@fast+lto + PKG_HASH:=9414c8f237b8a919d411fb38a7d2aa83c7617ae441695af54ea84feb22b0639c + endif +else ifeq ($(ARCH),arm) + # Referred to golang/golang-values.mk + ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) + ifeq ($(ARM_CPU_FEATURES),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v5t+soft_float@fast+lto + PKG_HASH:=3d1a89bdc413f6922df43f2c1a18f199e83ec7e5d6d68961a10229a73188b07a + else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v6+soft_float@fast+lto + PKG_HASH:=d9095d72dba4018c21ab794c81e467011eee8b3582822a3fa45b803bfdf0d4fa + else + PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabihf@generic+v7a@fast+lto + PKG_HASH:=61fff30848f687d93e58bb91029252818d76e0980d4d32fd2bf6d67dfa51cd4f + endif +else ifeq ($(ARCH),i386) + ifneq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@i686@fast+lto + PKG_HASH:=8fd1f8cc1ee5f24a10a45367d3444a7af0618f01bf5ea1d14c8bfac856062a23 + else + PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@pentium4@fast+lto + PKG_HASH:=15983518255abc1849b13352763112442388519109625a9fcd92f50e05831b1c + endif +else ifeq ($(ARCH),mips) + ifeq ($(CPU_TYPE),mips32) + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto + PKG_HASH:=1b804d4c450d10cb6f91ac0656121bf9fd3e499f15ea569770b8d5523d5290c2 + else + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32r2+soft_float@fast+lto + PKG_HASH:=a8c0644d5c9715dadafa7890cd24a911718a71f58a4328b426cb9a239c1a2cde + endif +else ifeq ($(ARCH),mipsel) + ifeq ($(CPU_TYPE),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto + PKG_HASH:=82d07d148e2c20d4247df7baa0421f1c365954c0953e0e0fbe76e1cd78d1f1b2 + else ifeq ($(CONFIG_HAS_FPU),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32r2+soft_float@fast+lto + PKG_HASH:=375453bc696e3cd11dda7476c99aaca0933f6f282a909a2220d459e4624ba550 + else + PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32r2@fast+lto + PKG_HASH:=fadbf0d08e154922431a29a1d5f63b0347e0728886a23f2fed836c0b908f07f8 + endif +else ifeq ($(ARCH),x86_64) + PKG_ARCH:=$(PKG_NAME)+wolfssl@x86_64-linux-musl@x86_64@fast+lto + PKG_HASH:=8d600757acf4fcb6250aef6ba5bf19d9a2182a188e900d1201381ab0a52a5463 +else + PKG_ARCH:=dummy + PKG_HASH:=dummy +endif + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(ARCH_PACKAGES) +PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(PKG_VERSION)/$(PKG_ARCH)? +UNPACK_CMD=$(CP) $(DL_DIR)/$(PKG_SOURCE) $(PKG_BUILD_DIR)/$(PKG_NAME) PKG_LICENSE:=AGPL-3.0-only PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=pexcn - -PKG_BUILD_PARALLEL:=1 -PKG_INSTALL:=1 +PKG_MAINTAINER:=Tianling Shen include $(INCLUDE_DIR)/package.mk @@ -27,12 +80,19 @@ define Package/chinadns-ng SUBMENU:=IP Addresses and Names TITLE:=ChinaDNS next generation, refactoring with epoll and ipset. URL:=https://github.com/zfl9/chinadns-ng - DEPENDS:=+ipset + DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) +endef + +define Package/chinadns-ng/description +ChinaDNS Next Generation, refactoring with epoll and ipset. +endef + +define Build/Compile endef define Package/chinadns-ng/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_INSTALL_DIR)/chinadns-ng $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/chinadns-ng endef $(eval $(call BuildPackage,chinadns-ng)) From 23e50e7153b06000e4fe27e011cecac031706e9a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 17 Aug 2024 17:28:04 +0800 Subject: [PATCH 587/972] chinadns-ng: update to 2024.07.21 --- chinadns-ng/Makefile | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 8bdd1ffde34..96734225a6e 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -38,23 +38,20 @@ else ifeq ($(ARCH),i386) PKG_HASH:=15983518255abc1849b13352763112442388519109625a9fcd92f50e05831b1c endif else ifeq ($(ARCH),mips) - ifeq ($(CPU_TYPE),mips32) + ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto PKG_HASH:=1b804d4c450d10cb6f91ac0656121bf9fd3e499f15ea569770b8d5523d5290c2 else - PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32r2+soft_float@fast+lto - PKG_HASH:=a8c0644d5c9715dadafa7890cd24a911718a71f58a4328b426cb9a239c1a2cde + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32@fast+lto + PKG_HASH:=27e47f61de09af4b0775f9e0efa5b74271f0f4e00d9643d2580a60b2ab9f9f37 endif else ifeq ($(ARCH),mipsel) - ifeq ($(CPU_TYPE),) + ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto PKG_HASH:=82d07d148e2c20d4247df7baa0421f1c365954c0953e0e0fbe76e1cd78d1f1b2 - else ifeq ($(CONFIG_HAS_FPU),) - PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32r2+soft_float@fast+lto - PKG_HASH:=375453bc696e3cd11dda7476c99aaca0933f6f282a909a2220d459e4624ba550 else - PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32r2@fast+lto - PKG_HASH:=fadbf0d08e154922431a29a1d5f63b0347e0728886a23f2fed836c0b908f07f8 + PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32@fast+lto + PKG_HASH:=4a0f66796fbde9c276345ca5e5d4995ce28fef9d54c9538cd931fc2e03de78dd endif else ifeq ($(ARCH),x86_64) PKG_ARCH:=$(PKG_NAME)+wolfssl@x86_64-linux-musl@x86_64@fast+lto @@ -83,10 +80,6 @@ define Package/chinadns-ng DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) endef -define Package/chinadns-ng/description -ChinaDNS Next Generation, refactoring with epoll and ipset. -endef - define Build/Compile endef From bdb993ff7adb66666f9fcb3ad9e781144e66d81c Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 18 Aug 2024 13:38:34 +0800 Subject: [PATCH 588/972] chinadns-ng: update to 2024.07.21 --- chinadns-ng/Makefile | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 96734225a6e..ced8e349f30 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -38,13 +38,8 @@ else ifeq ($(ARCH),i386) PKG_HASH:=15983518255abc1849b13352763112442388519109625a9fcd92f50e05831b1c endif else ifeq ($(ARCH),mips) - ifeq ($(CONFIG_HAS_FPU),) - PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=1b804d4c450d10cb6f91ac0656121bf9fd3e499f15ea569770b8d5523d5290c2 - else - PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32@fast+lto - PKG_HASH:=27e47f61de09af4b0775f9e0efa5b74271f0f4e00d9643d2580a60b2ab9f9f37 - endif + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto + PKG_HASH:=1b804d4c450d10cb6f91ac0656121bf9fd3e499f15ea569770b8d5523d5290c2 else ifeq ($(ARCH),mipsel) ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto From b58e9a2c87d95c2a73c58dcc073a2db8ac9b9cb0 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:04:31 +0800 Subject: [PATCH 589/972] naiveproxy: update to 127.0.6533.64-2 (#1518) * naiveproxy: update to 127.0.6533.64-2 * naiveproxy: improve support for mips32 --- naiveproxy/Makefile | 12 ++++++------ naiveproxy/src/init_env.sh | 10 +++++++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index cb2a114060d..45528b2df09 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=125.0.6422.35-1 +PKG_VERSION:=127.0.6533.64-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=fd1fdab08aa00f19fb6ca1cb80cc132ab5a8d2bd3c95fa4ba41b3d79fbc88ebd +PKG_HASH:=1eeb7c9cfc5ec36d100c559285ec0946cc5a032a9d178b61ec7b15402e5f8d16 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -55,22 +55,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=19-init-8091-gab037c4f-1 +CLANG_VER:=19-init-10646-g084e2b53-57 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=6b797d118cc593eca0f2e568169295a5a9b65ddabed2de34b9a201a4bb7990f5 + HASH:=256569cef49a1a955570a3026b8910689cac106a1336238f592296c544f6b8c3 endef -PGO_VER:=6422-1715102072-9bdbfa29f2bb1ff28f0f031b98501a1193b8d03b-13cfbf145656b369f9c23bff70ab2fb07e1e2fdb +PGO_VER:=6533-1721647559-b59d3252e50dcc0e34a9d5ca3790d80421583ca4-419f07950174cbcea67e9a8035fcc0a2ced2ff1e PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=5a0b3d3f75c536cade97f15a71c17424c868948fa26a8267488bd588756b66af + HASH:=4cc810ce3d9f9979a6dbcd6df1c65c8070ab7635f399af3b0bfc7df3f17083c3 endef define Build/Prepare diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 166bead99d5..f1dc9b7b34f 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -86,13 +86,18 @@ case "${target_arch}" in else naive_flags+=" arm_float_abi=\"soft\" arm_use_neon=false" fi + + # LLVM does not accept muslgnueabi as the target triple environment + if [ -d "$toolchain_dir/lib/gcc/arm-openwrt-linux-muslgnueabi" ] && [ ! -d "$toolchain_dir/lib/gcc/arm-openwrt-linux-musleabi" ]; then + ln -sf "$toolchain_dir/lib/gcc/arm-openwrt-linux-muslgnueabi" "$toolchain_dir/lib/gcc/arm-openwrt-linux-musleabi" + fi ;; "arm64") [ -n "${cpu_type}" ] && naive_flags+=" arm_cpu=\"${cpu_type}\"" ;; "mipsel"|"mips64el") naive_flags+=" use_thin_lto=false chrome_pgo_phase=0" - if [ -z "${cpu_type}" ]; then + if [ -z "${cpu_type}" ] || [ "${cpu_type}" == "mips32" ]; then naive_flags+=" mips_arch_variant=\"r1\"" else naive_flags+=" mips_arch_variant=\"r2\"" @@ -105,4 +110,7 @@ case "${target_arch}" in fi fi ;; +"x86_64") + naive_flags+=" use_cfi_icall=false" + ;; esac From b03900b95fe81e1a7d815f6fbef1aeb0a340de4a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:04:43 +0800 Subject: [PATCH 590/972] mosdns: Update to 5.3.3 (#1519) --- mosdns/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mosdns/Makefile b/mosdns/Makefile index 7d1f6ff76c2..62d32d1991e 100644 --- a/mosdns/Makefile +++ b/mosdns/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mosdns -PKG_VERSION:=5.3.1 +PKG_VERSION:=5.3.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7c8c795de794df52fd2b51214826aea9ebde0dcd0da78d8dda9cc5e4ab98cd80 +PKG_HASH:=1d7eeaa735cb48ed2d436797d7f2a82541699f74647cd293ee411a72cdc65f5f PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILE:=LICENSE From 3b25bd98ccbabecde553e14ce77b2c4c2d666269 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:04:57 +0800 Subject: [PATCH 591/972] dns2tcp: Update to 1.1.2 (#1520) --- dns2tcp/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/dns2tcp/Makefile b/dns2tcp/Makefile index cc67f7e5e5b..b41d2c8e1fd 100644 --- a/dns2tcp/Makefile +++ b/dns2tcp/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=dns2tcp -PKG_VERSION:=1.1.1 -PKG_RELEASE:=2 +PKG_VERSION:=1.1.2 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/zfl9/dns2tcp/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=35251fbe1645601086f21cdbd5a2f75471d812f99ed8017bb05158840456b43c +PKG_HASH:=5e8c6302a1d32c16ae7d4b8e39cd9aad1f2d7e68fe18813e76cb1e48ec5940d2 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=AGPL-3.0-only From 9aa898ad488c853c5359119ad04daa861639b9dd Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:05:14 +0800 Subject: [PATCH 592/972] gn: Update to git HEAD (#1521) * gn: Update to git HEAD --- gn/Makefile | 6 +++--- gn/src/out/last_commit_position.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index abcca95b3e8..f3f4fc45028 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2024-05-13 -PKG_SOURCE_VERSION:=df98b86690c83b81aedc909ded18857296406159 -PKG_MIRROR_HASH:=3c3ce5cb69a8ec210bb6574db84d53745f7f58e1d82442af0423f69f7190c31f +PKG_SOURCE_DATE:=2024-08-13 +PKG_SOURCE_VERSION:=54f5b539df8c4e460b18c62a11132d77b5601136 +PKG_MIRROR_HASH:=1b5562417adfa29823301fea948197b23dfc887838fc94f96df5bbfd132dc592 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 2581a12993a..30de68f981f 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2171 -#define LAST_COMMIT_POSITION "2171 (df98b86690c8)" +#define LAST_COMMIT_POSITION_NUM 2188 +#define LAST_COMMIT_POSITION "2188 (54f5b539df8c)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 0affd5a42bf5009703dd704e97d85e78a46774ff Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:05:34 +0800 Subject: [PATCH 593/972] v2raya: update to 2.2.5.7 (#1523) --- v2raya/Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/v2raya/Makefile b/v2raya/Makefile index 2a5410f0cc5..14d34c1bf7b 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=2.2.4.6 -PKG_RELEASE:=2 +PKG_VERSION:=2.2.5.7 +PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=22285b2fdf321d68993b38ad738f4af210920757d7944691a78e151abd99cb3a +PKG_HASH:=fae10dafa54508bf19961b111d608dda9bb7a79e724c88e60a464c58369f4826 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -60,7 +60,7 @@ define Download/v2raya-web URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/ URL_FILE:=web.tar.gz FILE:=$(WEB_FILE) - HASH:=09109442abac13801b7b82433fccbb769657b1d292ac4820af179c297e845135 + HASH:=a5b6151549a318b1bd5a4cc01482ad0abc1a7bd99fa01037a2a6b84501a77c3e endef define Build/Prepare From 293ec12d37a3feed7d39eb9b141f1fcb7faac08f Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:05:45 +0800 Subject: [PATCH 594/972] hysteria: update to 2.5.1 (#1524) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index d949792626e..5110f859216 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.5.0 +PKG_VERSION:=2.5.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=78afca9c9c3f2c1a89c2356c66e70489bba74d3b4ede42f4194d179a09959d8c +PKG_HASH:=6908944c816fa24a4cd291982c5ba76fda5774d713c6c122da8ac2db4a6b13b1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From bcec51f5b3ff5eccc7c5d246d279e36383c92f22 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 1 Sep 2024 00:18:37 +0800 Subject: [PATCH 595/972] naiveproxy: update to 128.0.6613.40-1 --- naiveproxy/Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 45528b2df09..92e04f069ca 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=127.0.6533.64-2 +PKG_VERSION:=128.0.6613.40-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1eeb7c9cfc5ec36d100c559285ec0946cc5a032a9d178b61ec7b15402e5f8d16 +PKG_HASH:=a97772b0dd28a2573ccc4c1d2524720f385650937f576f16fdab22557fe43183 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -55,22 +55,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=19-init-10646-g084e2b53-57 -CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tgz +CLANG_VER:=19-init-14561-gecea8371-3000 +CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tar.xz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=256569cef49a1a955570a3026b8910689cac106a1336238f592296c544f6b8c3 + HASH:=01286e19596f8297700fb82a186753504d660582d7dc36546b369fdd9ba01f33 endef -PGO_VER:=6533-1721647559-b59d3252e50dcc0e34a9d5ca3790d80421583ca4-419f07950174cbcea67e9a8035fcc0a2ced2ff1e +PGO_VER:=6613-1723571743-978bf352c6598979c1835e8a17c4382c57186e27-bfa8880547ba8b84e6f5efee6db486daf237d00d PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=4cc810ce3d9f9979a6dbcd6df1c65c8070ab7635f399af3b0bfc7df3f17083c3 + HASH:=696e479cdaff02a446ca3446b32790c89144156a35df90c90b1806d2ace429b4 endef define Build/Prepare @@ -81,7 +81,7 @@ define Build/Prepare mkdir -p "chrome/build/pgo_profiles" ; \ $(CP) "$(DL_DIR)/$(PGO_FILE)" "chrome/build/pgo_profiles" ; \ mkdir -p "third_party/llvm-build/Release+Asserts" ; \ - $(TAR) -xzf "$(DL_DIR)/$(CLANG_FILE)" -C "third_party/llvm-build/Release+Asserts" ; \ + $(TAR) -xJf "$(DL_DIR)/$(CLANG_FILE)" -C "third_party/llvm-build/Release+Asserts" ; \ echo -e "llvmorg-$(CLANG_VER)" > "third_party/llvm-build/Release+Asserts/cr_build_revision" ; \ popd ; \ ) From 616f5da4c8889be0543786a062365b0cff30668f Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 1 Sep 2024 00:20:20 +0800 Subject: [PATCH 596/972] naiveproxy: update to 128.0.6613.40-1 --- naiveproxy/src/init_env.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index f1dc9b7b34f..08d3448fe77 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -64,6 +64,7 @@ enable_mdns=false enable_reporting=false include_transport_security_state_preload_list=false use_nss_certs=false +enable_device_bound_sessions=false enable_backup_ref_ptr_support=false enable_dangling_raw_ptr_checks=false From 0d165d2c55163c4389836609d0c1448d98434aec Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 3 Sep 2024 22:18:31 +0800 Subject: [PATCH 597/972] gn: Update to git HEAD --- gn/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index f3f4fc45028..aa3d09a8998 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2024-08-13 -PKG_SOURCE_VERSION:=54f5b539df8c4e460b18c62a11132d77b5601136 -PKG_MIRROR_HASH:=1b5562417adfa29823301fea948197b23dfc887838fc94f96df5bbfd132dc592 +PKG_SOURCE_DATE:=2024-09-02 +PKG_SOURCE_VERSION:=50ecf4c84d08dad3d16d14590221dd43fe65ea62 +PKG_MIRROR_HASH:=bd7d7ce931b1c83409bfbbc276b79a89cff19fbe511c6071cda50d37f4983aeb PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 39fa415f4a8a63198ded42ba129cf9dd8e54bf99 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 3 Sep 2024 22:19:28 +0800 Subject: [PATCH 598/972] gn: Update to git HEAD --- gn/src/out/last_commit_position.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 30de68f981f..139b01f23d0 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2188 -#define LAST_COMMIT_POSITION "2188 (54f5b539df8c)" +#define LAST_COMMIT_POSITION_NUM 2195 +#define LAST_COMMIT_POSITION "2195 (50ecf4c84d08)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 2d28b149d0a144bfdc62bf057a0fce60af2a357f Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 8 Sep 2024 21:13:09 +0800 Subject: [PATCH 599/972] Fixed a subscription configuration import issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启用 tls 时,无法导入传输协议 ws、httpugrade、HTTP/2、SplitHTTP 路径和 tls 主机名。 --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 04871789c28..c55e0ff0961 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -927,6 +927,7 @@ if is_finded("xray") then o:value(v, translate(v)) end o.rmempty = true + o:depends("xtls", true) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", reality = true}) @@ -951,6 +952,7 @@ end o = s:option(Value, "tls_host", translate("TLS Host")) o.datatype = "hostname" o:depends("tls", true) +o:depends("xtls", true) o:depends("reality", true) o.rmempty = true From 8c8a9083ce1ff24cfbaf06a205d20d9667e818ca Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 8 Sep 2024 21:16:07 +0800 Subject: [PATCH 600/972] Fixed a subscription configuration import issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启用 tls 时,无法导入传输协议 ws、httpugrade、HTTP/2、SplitHTTP 路径和 tls 主机名。 --- .../luasrc/view/shadowsocksr/ssrurl.htm | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 479d7e2f5af..7603d8c0e54 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -269,6 +269,14 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = ssm.path; } + if (ssm.net == "httpupgrade") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_path')[0].value = ssm.path; + } + if (ssm.net == "splithttp") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = ssm.path; + } if (ssm.net == "h2") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = ssm.path; @@ -309,19 +317,21 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : params.get("type") || "tcp"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; - if ([ "tls", "reality" ].includes(params.get("security"))) { + if ([ "tls", "xtls", "reality" ].includes(params.get("security"))) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].value = params.get("flow") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; - if (params.get("security") === "reality") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_publickey')[0].value = params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_shortid')[0].value = params.get("sid") || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_spiderx')[0].value = params.get("spx") ? decodeURIComponent(params.get("spx")) : ""; } + if (params.get("security") === "xtls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].value = params.get("flow") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].dispatchEvent(event); + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; } switch (params.get("type")) { case "ws": @@ -329,6 +339,16 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; break; + case "httpupgrade": + if (params.get("security") !== "tls") + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + break; + case "splithttp": + if (params.get("security") !== "tls") + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + break; case "kcp": document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = params.get("headerType") || "none"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; From d71ea5b4961a44f686de46fa807287867459b9b4 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 8 Sep 2024 21:18:13 +0800 Subject: [PATCH 601/972] Fixed a subscription configuration import issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启用 tls 时,无法导入传输协议 ws、httpugrade、HTTP/2、SplitHTTP 路径和 tls 主机名。 --- .../root/usr/share/shadowsocksr/gen_config.lua | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 545e0b88e30..8102cd3859d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -26,7 +26,7 @@ function vmess_vless() alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = ((server.tls == '1') or (server.reality == '1')) and server.tls_flow or nil + flow = ((server.xtls == '1') or (server.tls == '1') or (server.reality == '1')) and server.tls_flow or nil } } } @@ -178,8 +178,8 @@ local Xray = { -- 底层传输配置 streamSettings = (server.v2ray_protocol ~= "wireguard") and { network = server.transport or "tcp", - security = (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, - tlsSettings = (server.tls == '1') and { + security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, + tlsSettings = (server.tls == '1') and (server.tls_host or server.fingerprint) and { -- tls alpn = server.tls_alpn, fingerprint = server.fingerprint, @@ -190,6 +190,12 @@ local Xray = { certificateFile = server.certpath } or nil, } or nil, + xtlsSettings = (server.xtls == '1') and server.tls_host and { + -- xtls + allowInsecure = (server.insecure == "1") and true or nil, + serverName = server.tls_host, + minVersion = "1.3" + } or nil, realitySettings = (server.reality == '1') and { publicKey = server.reality_publickey, shortId = server.reality_shortid, From a81b5b39a94f02f3ecdb8fd48004f9de2d1bdcce Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 8 Sep 2024 21:20:57 +0800 Subject: [PATCH 602/972] Fixed a subscription configuration import issue MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启用 tls 时,无法导入传输协议 ws、httpugrade、HTTP/2、SplitHTTP 路径和 tls 主机名。 --- .../root/usr/share/shadowsocksr/subscribe.lua | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 219f06acee1..a6c2f7c601d 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -182,6 +182,14 @@ local function processData(szType, content) result.ws_host = info.host result.ws_path = info.path end + if info.net == 'httpupgrade' then + result.httpupgrade_host = info.host + result.httpupgrade_path = info.path + end + if info.net == 'splithttp' then + result.splithttp_host = info.host + result.splithttp_path = info.path + end if info.net == 'h2' then result.h2_host = info.host result.h2_path = info.path @@ -354,9 +362,10 @@ local function processData(szType, content) result.vmess_id = url.user result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" - result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" + result.tls = (params.security == "tls") and "1" or "0" result.tls_host = params.sni - result.tls_flow = (params.security == "tls" or params.security == "reality") and params.flow or nil + result.xtls = (params.security == "xtls") and "1" or nil + result.tls_flow = (result.tls == "1" or result.xtls == "1" or result.reality == "1") and params.flow or nil result.fingerprint = params.fp result.reality = (params.security == "reality") and "1" or "0" result.reality_publickey = params.pbk and UrlDecode(params.pbk) or nil @@ -365,6 +374,12 @@ local function processData(szType, content) if result.transport == "ws" then result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.ws_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "httpupgrade" then + result.httpupgrade_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.httpupgrade_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "splithttp" then + result.splithttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.splithttp_path = params.path and UrlDecode(params.path) or "/" -- make it compatible with bullshit, "h2" transport is non-existent at all elseif result.transport == "http" or result.transport == "h2" then result.transport = "h2" From 1a6f9ebee60d987316b799c470118273f2759c52 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 13 Sep 2024 00:01:43 +0800 Subject: [PATCH 603/972] naiveproxy: Update to 128.0.6613.40-3 --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 92e04f069ca..bdb3878d4eb 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=128.0.6613.40-1 +PKG_VERSION:=128.0.6613.40-3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a97772b0dd28a2573ccc4c1d2524720f385650937f576f16fdab22557fe43183 +PKG_HASH:=3c2beaedf5c1f0a909dc3986caf59bcc3829c2a659c2a8f9d1e55daeb4faa7bb PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 24a191cedb8ce45dc07343544a78ef2369c68098 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 13 Sep 2024 10:17:51 +0800 Subject: [PATCH 604/972] xray-core: update to 1.8.24 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 447643994b5..a853ac7bce7 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.23 +PKG_VERSION:=1.8.24 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c3731f11efae32296be75774cb4e86667fbc6e685cae4a891a0bc567b839ac7f +PKG_HASH:=86e3e388c77cda4d8457a607356416c201c1f18bbed53f0a9e76a228508ff298 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 61a2e13faef249c7711667808d8e965a1c4f544c Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:11:27 +0800 Subject: [PATCH 605/972] gn: Update to git HEAD --- gn/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index aa3d09a8998..db12167bd51 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2024-09-02 -PKG_SOURCE_VERSION:=50ecf4c84d08dad3d16d14590221dd43fe65ea62 -PKG_MIRROR_HASH:=bd7d7ce931b1c83409bfbbc276b79a89cff19fbe511c6071cda50d37f4983aeb +PKG_SOURCE_DATE:=2024-09-25 +PKG_SOURCE_VERSION:=95b0f8fe31a992a33c040bbe3867901335c12762 +PKG_MIRROR_HASH:=ccd429ad9055302126939603700193be12faecfc886f828d35a93b9a923dea3a PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 86298e577ea399f0e6537897a22dc068e1494b35 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:12:18 +0800 Subject: [PATCH 606/972] gn: Update to git HEAD --- gn/src/out/last_commit_position.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 139b01f23d0..1dfca62d348 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2195 -#define LAST_COMMIT_POSITION "2195 (50ecf4c84d08)" +#define LAST_COMMIT_POSITION_NUM 2203 +#define LAST_COMMIT_POSITION "2203 (95b0f8fe31a9)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 54c700a5a06009245a4687d97c3002a2880ffb3a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:15:22 +0800 Subject: [PATCH 607/972] naiveproxy: update to 129.0.6668.81-1 --- naiveproxy/Makefile | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index bdb3878d4eb..01ce539ca2a 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=128.0.6613.40-3 +PKG_VERSION:=129.0.6668.81-1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3c2beaedf5c1f0a909dc3986caf59bcc3829c2a659c2a8f9d1e55daeb4faa7bb +PKG_HASH:=ff5de0c38685d75a9821c41f283f040fd7de790213e7eeb526edcca2f849f02a PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -55,22 +55,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=19-init-14561-gecea8371-3000 +CLANG_VER:=20-init-1009-g7088a5ed-10 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tar.xz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=01286e19596f8297700fb82a186753504d660582d7dc36546b369fdd9ba01f33 + HASH:=32ac9d9864a6bd99242f1a97778b3a074ac1151ce3eca369903f2ef5337c787a endef -PGO_VER:=6613-1723571743-978bf352c6598979c1835e8a17c4382c57186e27-bfa8880547ba8b84e6f5efee6db486daf237d00d -PGO_FILE:=chrome-linux-$(PGO_VER).profdata +PGO_VER:=1723053597-b7a6f793b48020befd6a1e60819840a456c519b3-98f747673cbba839fedf299e6c76ac032fad32f0 +PGO_FILE:=chrome-linux-main-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=696e479cdaff02a446ca3446b32790c89144156a35df90c90b1806d2ace429b4 + HASH:=f4df544116e10c5495148ee9afedbb07f4ee2659e461dbf0f69755b8d338ceec endef define Build/Prepare From 67a6a368d0fe87273997976a111b444f24fb6d72 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:18:24 +0800 Subject: [PATCH 608/972] gn: Update to git HEAD --- gn/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gn/Makefile b/gn/Makefile index db12167bd51..77de4e8d7d2 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -11,7 +11,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git PKG_SOURCE_DATE:=2024-09-25 PKG_SOURCE_VERSION:=95b0f8fe31a992a33c040bbe3867901335c12762 -PKG_MIRROR_HASH:=ccd429ad9055302126939603700193be12faecfc886f828d35a93b9a923dea3a +PKG_MIRROR_HASH:=6dcae74aa55a37c3ef6786efe3e36e02d59167aac2dc79c3f7d6f3fba998eed8 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 1cd275d256838b6314f9f0e58a6228dc1528b17d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:22:56 +0800 Subject: [PATCH 609/972] naiveproxy: update to 129.0.6668.81-2 --- naiveproxy/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 01ce539ca2a..2ac9f6a499a 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=129.0.6668.81-1 +PKG_VERSION:=129.0.6668.81-2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=ff5de0c38685d75a9821c41f283f040fd7de790213e7eeb526edcca2f849f02a +PKG_HASH:=c66ac95b0a685fb84f931a267873979cd59708e8966fb9764c53fe2deb24227e PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From e01e22a269a3ef142a1c0208df8d4018f054c32b Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 9 Oct 2024 00:23:39 +0800 Subject: [PATCH 610/972] naiveproxy: update build scripts --- naiveproxy/src/init_env.sh | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 08d3448fe77..fd0ca903efb 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -41,12 +41,16 @@ is_official_build=true exclude_unwind_tables=true enable_resource_allowlist_generation=false symbol_level=0 + is_clang=true use_sysroot=false fatal_linker_warnings=false treat_warnings_as_errors=false +is_cronet_build=true +chrome_pgo_phase=2 + enable_base_tracing=false use_udev=false use_aura=false @@ -55,16 +59,17 @@ use_gio=false use_gtk=false use_platform_icu_alternatives=true use_glib=false -enable_js_protobuf=false disable_file_support=true enable_websockets=false use_kerberos=false +disable_file_support=true +disable_zstd_filter=false enable_mdns=false enable_reporting=false include_transport_security_state_preload_list=false -use_nss_certs=false enable_device_bound_sessions=false +use_nss_certs=false enable_backup_ref_ptr_support=false enable_dangling_raw_ptr_checks=false From 9f3101fa1467db5245345dd71da1b5956386d046 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Wed, 9 Oct 2024 13:45:00 +0800 Subject: [PATCH 611/972] mosdns: bump version --- mosdns/Makefile | 6 +-- ...for-bad-request-in-ServeHTTP-handler.patch | 19 +++++++ ...-Fisher-Yates-shuffle-algorithm-to-r.patch | 51 +++++++++++++++++++ mosdns/patches/205-format-logtime.patch | 46 +++++++++++++++++ 4 files changed, 118 insertions(+), 4 deletions(-) create mode 100644 mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch create mode 100644 mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch create mode 100644 mosdns/patches/205-format-logtime.patch diff --git a/mosdns/Makefile b/mosdns/Makefile index c4a68f16cef..62d32d1991e 100644 --- a/mosdns/Makefile +++ b/mosdns/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=mosdns -PKG_VERSION:=5.3.1 +PKG_VERSION:=5.3.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/IrineSistiana/mosdns/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=7c8c795de794df52fd2b51214826aea9ebde0dcd0da78d8dda9cc5e4ab98cd80 +PKG_HASH:=1d7eeaa735cb48ed2d436797d7f2a82541699f74647cd293ee411a72cdc65f5f PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILE:=LICENSE @@ -36,8 +36,6 @@ define Package/mosdns DEPENDS:=$(GO_ARCH_DEPENDS) +ca-bundle endef -GO_PKG_TARGET_VARS:=$(filter-out CGO_ENABLED=%,$(GO_PKG_TARGET_VARS)) CGO_ENABLED=0 - define Package/mosdns/install $(call GoPackage/Package/Install/Bin,$(1)) endef diff --git a/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch b/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch new file mode 100644 index 00000000000..38b7974bfc2 --- /dev/null +++ b/mosdns/patches/203-add-response-for-bad-request-in-ServeHTTP-handler.patch @@ -0,0 +1,19 @@ +From 0b86b89629f32e7c8b859239aa1a4814f256053c Mon Sep 17 00:00:00 2001 +From: sbwml +Date: Thu, 28 Sep 2023 16:42:54 +0800 +Subject: [PATCH 3/5] add response for bad request in ServeHTTP handler + +--- + pkg/server/http_handler.go | 1 + + 1 file changed, 1 insertion(+) + +--- a/pkg/server/http_handler.go ++++ b/pkg/server/http_handler.go +@@ -93,6 +93,7 @@ func (h *HttpHandler) ServeHTTP(w http.R + if err != nil { + h.warnErr(req, "invalid request", err) + w.WriteHeader(http.StatusBadRequest) ++ w.Write([]byte("Bad Request")) + return + } + diff --git a/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch b/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch new file mode 100644 index 00000000000..fa18e86c1a0 --- /dev/null +++ b/mosdns/patches/204-black_hole-apply-Fisher-Yates-shuffle-algorithm-to-r.patch @@ -0,0 +1,51 @@ +From e34dca717e78d24a84b98c2b5d371c4253b7e260 Mon Sep 17 00:00:00 2001 +From: sbwml +Date: Wed, 20 Sep 2023 14:51:19 +0800 +Subject: [PATCH 4/5] black_hole: apply Fisher-Yates shuffle algorithm to + randomize IP order + +--- + plugin/executable/black_hole/black_hole.go | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +--- a/plugin/executable/black_hole/black_hole.go ++++ b/plugin/executable/black_hole/black_hole.go +@@ -27,6 +27,8 @@ import ( + "github.com/miekg/dns" + "net/netip" + "strings" ++ "math/rand" ++ "sync" + ) + + const PluginType = "black_hole" +@@ -40,6 +42,7 @@ var _ sequence.Executable = (*BlackHole) + type BlackHole struct { + ipv4 []netip.Addr + ipv6 []netip.Addr ++ shuffleMutex sync.Mutex + } + + // QuickSetup format: [ipv4|ipv6] ... +@@ -65,9 +68,21 @@ func NewBlackHole(ips []string) (*BlackH + return b, nil + } + ++func (b *BlackHole) shuffleIPs() { ++ b.shuffleMutex.Lock() ++ defer b.shuffleMutex.Unlock() ++ rand.Shuffle(len(b.ipv4), func(i, j int) { ++ b.ipv4[i], b.ipv4[j] = b.ipv4[j], b.ipv4[i] ++ }) ++ rand.Shuffle(len(b.ipv6), func(i, j int) { ++ b.ipv6[i], b.ipv6[j] = b.ipv6[j], b.ipv6[i] ++ }) ++} ++ + // Exec implements sequence.Executable. It set a response with given ips if + // query has corresponding qtypes. + func (b *BlackHole) Exec(_ context.Context, qCtx *query_context.Context) error { ++ b.shuffleIPs() + if r := b.Response(qCtx.Q()); r != nil { + qCtx.SetResponse(r) + } diff --git a/mosdns/patches/205-format-logtime.patch b/mosdns/patches/205-format-logtime.patch new file mode 100644 index 00000000000..1628ad04194 --- /dev/null +++ b/mosdns/patches/205-format-logtime.patch @@ -0,0 +1,46 @@ +From 2dc08749e2de8f19ef869e7f89c9979edbbc71ff Mon Sep 17 00:00:00 2001 +From: sbwml +Date: Wed, 20 Sep 2023 21:05:18 +0800 +Subject: [PATCH 5/5] format logtime + +--- + mlog/logger.go | 18 ++++++++++++++---- + 1 file changed, 14 insertions(+), 4 deletions(-) + +--- a/mlog/logger.go ++++ b/mlog/logger.go +@@ -21,9 +21,11 @@ package mlog + + import ( + "fmt" ++ "os" ++ "time" ++ + "go.uber.org/zap" + "go.uber.org/zap/zapcore" +- "os" + ) + + type LogConfig struct { +@@ -64,10 +66,18 @@ func NewLogger(lc LogConfig) (*zap.Logge + out = stderr + } + +- if lc.Production { +- return zap.New(zapcore.NewCore(zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig()), out, lvl)), nil ++ encoderConfig := zap.NewDevelopmentEncoderConfig() ++ encoderConfig.EncodeTime = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) { ++ enc.AppendString(t.Format("2006-01-02 15:04:05")) + } +- return zap.New(zapcore.NewCore(zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig()), out, lvl)), nil ++ ++ core := zapcore.NewCore( ++ zapcore.NewConsoleEncoder(encoderConfig), ++ out, ++ lvl, ++ ) ++ ++ return zap.New(core), nil + } + + // L is a global logger. From 39a0d3d935fc98ca0bad3b51e3a2d099cf7e7f75 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 11 Oct 2024 10:51:15 +0800 Subject: [PATCH 612/972] luci-app-ssr-plus: add remote BGP Google and CF public DNS to force proxy --- luci-app-ssr-plus/Makefile | 4 ++-- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 7ea5e11e3fd..d07f167d83a 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=6 +PKG_RELEASE:=7 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -133,7 +133,7 @@ endchoice config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG bool "Include ChinaDNS-NG" - default y + default n config PACKAGE_$(PKG_NAME)_INCLUDE_MosDNS bool "Include MosDNS" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 9d22e62aa72..b1570aaafd1 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -1177,6 +1177,8 @@ reset() { add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.4.0/22 add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.56.0/22 add_list shadowsocksr.@access_control[0].wan_fw_ips=109.239.140.0/24 + add_list shadowsocksr.@access_control[0].wan_fw_ips=8.8.8.8 + add_list shadowsocksr.@access_control[0].wan_fw_ips=1.1.1.1 add_list shadowsocksr.@access_control[0].Interface='lan' add shadowsocksr socks5_proxy set shadowsocksr.@socks5_proxy[0].server='nil' From f59abc75251e1efe85e687acb7e0cb498803e128 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:53:51 +0800 Subject: [PATCH 613/972] luci-app-ssr-plus: Fixed problem subscription `reality`does not read `tls_flow`. --- luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index a6c2f7c601d..34b09504324 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -362,10 +362,9 @@ local function processData(szType, content) result.vmess_id = url.user result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" - result.tls = (params.security == "tls") and "1" or "0" + result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" result.tls_host = params.sni - result.xtls = (params.security == "xtls") and "1" or nil - result.tls_flow = (result.tls == "1" or result.xtls == "1" or result.reality == "1") and params.flow or nil + result.tls_flow = (params.security == "tls" or params.security == "reality") and params.flow or nil result.fingerprint = params.fp result.reality = (params.security == "reality") and "1" or "0" result.reality_publickey = params.pbk and UrlDecode(params.pbk) or nil From e27980dd78d7e4dd90772d06c808b381659388bd Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 13 Oct 2024 22:55:34 +0800 Subject: [PATCH 614/972] luci-app-ssr-plus: Fixed problem subscription `reality`does not read `tls_flow`. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c55e0ff0961..1048aa495af 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -927,7 +927,6 @@ if is_finded("xray") then o:value(v, translate(v)) end o.rmempty = true - o:depends("xtls", true) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", reality = true}) From a2a83f18cea6c612dd7c34c8c5a33d881d816dc0 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 14 Oct 2024 03:23:47 +0800 Subject: [PATCH 615/972] luci-app-ssr-plus: add Apple domain name optimization option --- luci-app-ssr-plus/Makefile | 2 +- .../model/cbi/shadowsocksr/advanced.lua | 4 + luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 6 + .../root/etc/init.d/shadowsocksr | 6 + .../root/etc/ssrplus/applechina.conf | 173 ++++++++++++++++++ 5 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 luci-app-ssr-plus/root/etc/ssrplus/applechina.conf diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index d07f167d83a..fdc6a092b75 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=7 +PKG_RELEASE:=8 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 0f8cd034bcf..9353f35e5ba 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -109,6 +109,10 @@ o:depends("shunt_dns_mode", "2") o.rmempty = false o.default = "0" +o = s:option(Flag, "apple_optimization", translate("Apple domains optimization"), translate("For Apple domains equipped with Chinese mainland CDN, always responsive to Chinese CDN IP addresses")) +o.rmempty = false +o.default = "1" + o = s:option(Flag, "adblock", translate("Enable adblock")) o.rmempty = false diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 8184bee7d78..453848ab1fd 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -459,6 +459,12 @@ msgstr "切换检查超时时间(秒)" msgid "Check Try Count" msgstr "切换检查重试次数" +msgid "Apple domains optimization" +msgstr "Apple 域名解析优化" + +msgid "For Apple domains equipped with Chinese mainland CDN, always responsive to Chinese CDN IP addresses" +msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN 地址" + msgid "Enable adblock" msgstr "启用广告屏蔽" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b1570aaafd1..d62f5ab37c5 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -246,6 +246,12 @@ start_dns() { fi fi fi + + if [ "$(uci_get_by_type global apple_optimization 1)" == "1" ]; then + echolog "Apple 域名中国大陆 CDN 的 优化规则正在加载。" + cp -f /etc/ssrplus/applechina.conf $TMP_DNSMASQ_PATH/ + echolog "Apple 域名中国大陆 CDN 的 优化规则加载完毕。" + fi } gen_service_file() { #1-server.type 2-cfgname 3-file_path diff --git a/luci-app-ssr-plus/root/etc/ssrplus/applechina.conf b/luci-app-ssr-plus/root/etc/ssrplus/applechina.conf new file mode 100644 index 00000000000..bc8a7658fba --- /dev/null +++ b/luci-app-ssr-plus/root/etc/ssrplus/applechina.conf @@ -0,0 +1,173 @@ +server=/a1.mzstatic.com/114.114.114.114 +server=/a2.mzstatic.com/114.114.114.114 +server=/a3.mzstatic.com/114.114.114.114 +server=/a4.mzstatic.com/114.114.114.114 +server=/a5.mzstatic.com/114.114.114.114 +server=/adcdownload.apple.com.akadns.net/114.114.114.114 +server=/adcdownload.apple.com/114.114.114.114 +server=/amp-api-updates.apps.apple.com/114.114.114.114 +server=/amp-api.media.apple.com/114.114.114.114 +server=/api-p-ap-c.smoot.apple.com/114.114.114.114 +server=/api-p-ap-d.smoot.apple.com/114.114.114.114 +server=/api-p-ap-e.smoot.apple.com/114.114.114.114 +server=/app-site-association.cdn-apple.com/114.114.114.114 +server=/appldnld.apple.com/114.114.114.114 +server=/appldnld.g.aaplimg.com/114.114.114.114 +server=/appleid.cdn-apple.com/114.114.114.114 +server=/apps.apple.com/114.114.114.114 +server=/apps.mzstatic.com/114.114.114.114 +server=/bag-cdn.itunes-apple.com.akadns.net/114.114.114.114 +server=/cdn-cn1.apple-mapkit.com/114.114.114.114 +server=/cdn-cn2.apple-mapkit.com/114.114.114.114 +server=/cdn-cn3.apple-mapkit.com/114.114.114.114 +server=/cdn-cn4.apple-mapkit.com/114.114.114.114 +server=/cdn.apple-mapkit.com/114.114.114.114 +server=/cdn1.apple-mapkit.com/114.114.114.114 +server=/cdn2.apple-mapkit.com/114.114.114.114 +server=/cdn3.apple-mapkit.com/114.114.114.114 +server=/cdn4.apple-mapkit.com/114.114.114.114 +server=/cds-cdn.v.aaplimg.com/114.114.114.114 +server=/cds.apple.com.akadns.net/114.114.114.114 +server=/cds.apple.com/114.114.114.114 +server=/cdsassets.apple.com/114.114.114.114 +server=/cl1-cdn.origin-apple.com.akadns.net/114.114.114.114 +server=/cl1.apple.com/114.114.114.114 +server=/cl2-cn.apple.com/114.114.114.114 +server=/cl2.apple.com/114.114.114.114 +server=/cl3-cdn.origin-apple.com.akadns.net/114.114.114.114 +server=/cl3.apple.com/114.114.114.114 +server=/cl4-cdn.origin-apple.com.akadns.net/114.114.114.114 +server=/cl4-cn.apple.com/114.114.114.114 +server=/cl4.apple.com/114.114.114.114 +server=/cl5-cdn.origin-apple.com.akadns.net/114.114.114.114 +server=/cl5.apple.com/114.114.114.114 +server=/clientflow.apple.com.akadns.net/114.114.114.114 +server=/clientflow.apple.com/114.114.114.114 +server=/cn-smp-paymentservices.apple.com/114.114.114.114 +server=/configuration.apple.com.akadns.net/114.114.114.114 +server=/configuration.apple.com/114.114.114.114 +server=/crl.apple.com/114.114.114.114 +server=/cstat.apple.com/114.114.114.114 +server=/cstat.cdn-apple.com/114.114.114.114 +server=/dd-cdn.origin-apple.com.akadns.net/114.114.114.114 +server=/dejavu.apple.com/114.114.114.114 +server=/devstreaming-cdn.apple.com/114.114.114.114 +server=/download.developer.apple.com/114.114.114.114 +server=/experiments.apple.com/114.114.114.114 +server=/gs-loc-cn.apple.com/114.114.114.114 +server=/gs-loc.apple.com/114.114.114.114 +server=/gsp10-ssl-cn.ls.apple.com/114.114.114.114 +server=/gsp12-cn.ls.apple.com/114.114.114.114 +server=/gsp13-cn.ls.apple.com/114.114.114.114 +server=/gsp4-cn.ls.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114 +server=/gsp4-cn.ls.apple.com.edgekey.net/114.114.114.114 +server=/gsp4-cn.ls.apple.com/114.114.114.114 +server=/gsp5-cn.ls.apple.com/114.114.114.114 +server=/gsp85-cn-ssl.ls.apple.com/114.114.114.114 +server=/gspe19-2-cn-ssl.ls-apple.com.akadns.net/114.114.114.114 +server=/gspe19-2-cn-ssl.ls.apple.com/114.114.114.114 +server=/gspe19-cn-ssl.ls.apple.com/114.114.114.114 +server=/gspe19-cn.ls-apple.com.akadns.net/114.114.114.114 +server=/gspe19-cn.ls.apple.com/114.114.114.114 +server=/gspe21-ssl.ls.apple.com/114.114.114.114 +server=/gspe21.ls.apple.com/114.114.114.114 +server=/gspe35-ssl.ls.apple.com/114.114.114.114 +server=/gspe79-cn-ssl.ls.apple.com/114.114.114.114 +server=/guzzoni-apple-com.v.aaplimg.com/114.114.114.114 +server=/guzzoni.apple.com/114.114.114.114 +server=/guzzoni.smoot.apple.com/114.114.114.114 +server=/iadsdk.apple.com/114.114.114.114 +server=/icloud-cdn.icloud.com.akadns.net/114.114.114.114 +server=/icloud.cdn-apple.com/114.114.114.114 +server=/images.apple.com.akadns.net/114.114.114.114 +server=/images.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114 +server=/images.apple.com/114.114.114.114 +server=/init-kt.apple.com/114.114.114.114 +server=/init-p01md-lb.push-apple.com.akadns.net/114.114.114.114 +server=/init-p01md.apple.com/114.114.114.114 +server=/init-p01st-lb.push-apple.com.akadns.net/114.114.114.114 +server=/init-p01st.push.apple.com/114.114.114.114 +server=/init-s01st-lb.push-apple.com.akadns.net/114.114.114.114 +server=/init-s01st.push.apple.com/114.114.114.114 +server=/init.ess.apple.com/114.114.114.114 +server=/iosapps.itunes.g.aaplimg.com/114.114.114.114 +server=/ipcdn.apple.com/114.114.114.114 +server=/iphone-ld.apple.com/114.114.114.114 +server=/iphone-ld.origin-apple.com.akadns.net/114.114.114.114 +server=/is-ssl.mzstatic.com-cn-lb.itunes-apple.com.akadns.net/114.114.114.114 +server=/is1-ssl.mzstatic.com/114.114.114.114 +server=/is1.mzstatic.com/114.114.114.114 +server=/is2-ssl.mzstatic.com/114.114.114.114 +server=/is2.mzstatic.com/114.114.114.114 +server=/is3-ssl.mzstatic.com/114.114.114.114 +server=/is3.mzstatic.com/114.114.114.114 +server=/is4-ssl.mzstatic.com/114.114.114.114 +server=/is4.mzstatic.com/114.114.114.114 +server=/is5-ssl.mzstatic.com/114.114.114.114 +server=/is5.mzstatic.com/114.114.114.114 +server=/itunes-apple.com.akadns.net/114.114.114.114 +server=/itunes.apple.com/114.114.114.114 +server=/itunesconnect.apple.com/114.114.114.114 +server=/mesu-cdn.apple.com.akadns.net/114.114.114.114 +server=/mesu-china.apple.com.akadns.net/114.114.114.114 +server=/mesu.apple.com/114.114.114.114 +server=/ml.cdn-apple.com/114.114.114.114 +server=/music.apple.com/114.114.114.114 +server=/ocsp-lb.apple.com.akadns.net/114.114.114.114 +server=/ocsp.apple.com/114.114.114.114 +server=/ocsp2-lb.apple.com.akadns.net/114.114.114.114 +server=/ocsp2.apple.com/114.114.114.114 +server=/oscdn.apple.com/114.114.114.114 +server=/oscdn.origin-apple.com.akadns.net/114.114.114.114 +server=/osxapps.itunes.g.aaplimg.com/114.114.114.114 +server=/pancake.apple.com/114.114.114.114 +server=/pancake.cdn-apple.com.akadns.net/114.114.114.114 +server=/pba0.apple.com/114.114.114.114 +server=/probe.siri.apple.com/114.114.114.114 +server=/prod-support.apple-support.akadns.net/114.114.114.114 +server=/publicassets.cdn-apple.com/114.114.114.114 +server=/reserve-prime.apple.com/114.114.114.114 +server=/s.mzstatic.com/114.114.114.114 +server=/seed-sequoia.siri.apple.com/114.114.114.114 +server=/seed-swallow.siri.apple.com/114.114.114.114 +server=/seed.siri.apple.com/114.114.114.114 +server=/sequoia.apple.com/114.114.114.114 +server=/sh-pod2-smp-device.apple.com/114.114.114.114 +server=/shazam-insights.cdn-apple.com/114.114.114.114 +server=/smp-device-content.apple.com/114.114.114.114 +server=/static.gc.apple.com/114.114.114.114 +server=/stocks-sparkline-lb.apple.com.akadns.net/114.114.114.114 +server=/stocks-sparkline.apple.com/114.114.114.114 +server=/store.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114 +server=/store.apple.com.edgekey.net/114.114.114.114 +server=/store.apple.com/114.114.114.114 +server=/store.storeimages.apple.com.akadns.net/114.114.114.114 +server=/store.storeimages.cdn-apple.com/114.114.114.114 +server=/support-china.apple-support.akadns.net/114.114.114.114 +server=/support.apple.com/114.114.114.114 +server=/swallow-apple-com.v.aaplimg.com/114.114.114.114 +server=/swallow.apple.com/114.114.114.114 +server=/swcatalog-cdn.apple.com.akadns.net/114.114.114.114 +server=/swcatalog.apple.com/114.114.114.114 +server=/swcdn.apple.com/114.114.114.114 +server=/swcdn.g.aaplimg.com/114.114.114.114 +server=/swdist.apple.com.akadns.net/114.114.114.114 +server=/swdist.apple.com/114.114.114.114 +server=/swscan-cdn.apple.com.akadns.net/114.114.114.114 +server=/swscan.apple.com/114.114.114.114 +server=/sylvan.apple.com/114.114.114.114 +server=/tj-pod1-smp-device.apple.com/114.114.114.114 +server=/updates-http.cdn-apple.com.akadns.net/114.114.114.114 +server=/updates-http.cdn-apple.com/114.114.114.114 +server=/updates.cdn-apple.com/114.114.114.114 +server=/valid.apple.com/114.114.114.114 +server=/valid.origin-apple.com.akadns.net/114.114.114.114 +server=/weather-data.apple.com.akadns.net/114.114.114.114 +server=/weather-data.apple.com/114.114.114.114 +server=/weather-map.apple.com/114.114.114.114 +server=/weather-map2.apple.com/114.114.114.114 +server=/weatherkit.apple.com/114.114.114.114 +server=/www.apple.com.edgekey.net.globalredir.akadns.net/114.114.114.114 +server=/www.apple.com.edgekey.net/114.114.114.114 +server=/www.apple.com/114.114.114.114 +server=/xp.apple.com/114.114.114.114 From 521e396be6c482e4638a6fadd0a34ba3e86a94b3 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:45:26 +0800 Subject: [PATCH 616/972] luci-app-ssr-plus: disable IPv6 in MOSDNS query mode by default --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 3b91739dc32..26de9baa40f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -134,7 +134,7 @@ o.description = translate("Custom DNS Server for mosdns") o = s:option(Flag, "mosdns_ipv6", translate("Disable IPv6 in MOSDNS query mode")) o:depends("pdnsd_enable", "3") o.rmempty = false -o.default = "0" +o.default = "1" if is_finded("chinadns-ng") then o = s:option(Value, "chinadns_forward", translate("Domestic DNS Server")) From b09bf97b25d669d00dcd2a579d8c441c353285be Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:55:25 +0800 Subject: [PATCH 617/972] xray-core: update to 24.10.16 (#1563) --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index a853ac7bce7..3758b997afb 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=1.8.24 +PKG_VERSION:=24.10.16 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=86e3e388c77cda4d8457a607356416c201c1f18bbed53f0a9e76a228508ff298 +PKG_HASH:=2964cf0cc7cb1b631591cc49c49160d1a478d2f83e4f0a1081e0bc6cc38d8725 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 1fd6b90d6b7d8ffe16efc51b08b1b0f5561c6cb4 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:55:36 +0800 Subject: [PATCH 618/972] xray-plugin: update to 1.8.24 (#1564) --- xray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-plugin/Makefile b/xray-plugin/Makefile index d52e6b3243c..ee2eb9d2063 100644 --- a/xray-plugin/Makefile +++ b/xray-plugin/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-plugin -PKG_VERSION:=1.8.15 +PKG_VERSION:=1.8.24 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/xray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=0079b964dedfa1e5823cc8e8c75c0589875466d91aa1e13cb3683ba5cee0fae5 +PKG_HASH:=dc7d7bff3dfa66c002bd043c7ee60e61aecec2f548275da809f1390c45611836 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 066110462e38f8ffd5162245f1fbb4d049cd0f68 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:55:47 +0800 Subject: [PATCH 619/972] v2ray-plugin: update to 5.17.0 (#1565) --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 71a869974bb..702e5a011aa 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.15.1 +PKG_VERSION:=5.17.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=833c2ee956ca054865ede20029a92b1eaf821c22cdbc5ec4ed4108e1f493ad1f +PKG_HASH:=035823fa70d0c7e6afa6cced6b9d6f8b29c05a5f28852ad5954e957b61337c9e PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From cc943d1a696ae1bfd90447d4be9ca490b3fd42a3 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:55:58 +0800 Subject: [PATCH 620/972] v2ray-core: update to 5.21.0 (#1566) --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index b2f471b953a..9f623d18ff2 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.16.1 +PKG_VERSION:=5.21.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e5d61b97168ebdf6da3d672ab40abe5b22951d46997072ca1ee497a3aa47ba05 +PKG_HASH:=880a929caff7b72ef9d3b9a3262cec0dff6566c2481989822a6b27fdaaeed975 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From d6ef70d667837cc909369fe26a0a6af730893175 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:56:08 +0800 Subject: [PATCH 621/972] hysteria: update to 2.5.2 (#1567) --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 5110f859216..f9fead273c3 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.5.1 +PKG_VERSION:=2.5.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=6908944c816fa24a4cd291982c5ba76fda5774d713c6c122da8ac2db4a6b13b1 +PKG_HASH:=56acc2c3a795b9f9074d6ed3cf725d3fc491ebd45a10203d6afef927d7fe3c78 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 36ed583f429b5314b4bf7b484130d3c676804fbc Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Oct 2024 01:57:09 +0800 Subject: [PATCH 622/972] v2raya: update to 2.2.6 (#1568) --- v2raya/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2raya/Makefile b/v2raya/Makefile index 14d34c1bf7b..15b2f68ba88 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=2.2.5.7 +PKG_VERSION:=2.2.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=fae10dafa54508bf19961b111d608dda9bb7a79e724c88e60a464c58369f4826 +PKG_HASH:=2d52b8cc6fbd7264e53704684dd8ee56955852dbff324a45360d6ed1c923d8ba PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -60,7 +60,7 @@ define Download/v2raya-web URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/ URL_FILE:=web.tar.gz FILE:=$(WEB_FILE) - HASH:=a5b6151549a318b1bd5a4cc01482ad0abc1a7bd99fa01037a2a6b84501a77c3e + HASH:=123123d3d6d393c065348355b47db45aa6c6af10c60d6320f564883cd93c556a endef define Build/Prepare From 03a65be4b64a9211e155f1d24bf681021453c979 Mon Sep 17 00:00:00 2001 From: Beginner <70857188+Beginner-Go@users.noreply.github.com> Date: Sat, 26 Oct 2024 02:01:43 +0800 Subject: [PATCH 623/972] shadowsocks-rust: update to 1.21.2 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 36dd5c09e5a..32daf1331ec 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.20.1 +PKG_VERSION:=1.21.2 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=95bef16ced3d937e085fdce0bc8de33e156c00bdc9c10100778d3e3ff4df95f0 +PKG_HASH:=a2269e896a27a183dfd6d757d130978b46e1ac19f936c4229188d017b7ecf867 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From 8de52f12eeb49f44b9a6c360e0243e15b95a4c53 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 26 Oct 2024 09:13:33 +0800 Subject: [PATCH 624/972] =?UTF-8?q?luci-app-ssr-plus:=20Fix=20link=20failu?= =?UTF-8?q?re=20for=20latest=20Xray=20version.=20Re-open=20PR:=201?= =?UTF-8?q?=E3=80=81=E5=B7=B2=E5=AE=8C=E7=BE=8E=E4=BF=AE=E5=A4=8DXray?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=88=B02024.9.30=E7=89=88=E6=9C=AC=E5=90=8E?= =?UTF-8?q?=EF=BC=8C=E6=97=A0=E6=B3=95=E8=BF=9E=E6=8E=A5=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=99=A8=E5=AF=BC=E8=87=B4=E4=B8=8D=E8=83=BD=E7=A7=91=E5=AD=A6?= =?UTF-8?q?=E4=B8=8A=E7=BD=91=E9=97=AE=E9=A2=98=EF=BC=9B=202=E3=80=81?= =?UTF-8?q?=E6=9C=AC=E6=AC=A1=E4=BF=AE=E6=94=B9=E5=B7=B2=E5=AE=8C=E7=BE=8E?= =?UTF-8?q?=E5=85=BC=E5=AE=B91.8.24=E5=8F=8A=E4=BB=A5=E4=B8=8B=E7=89=88?= =?UTF-8?q?=E6=9C=AC=EF=BC=8C=E5=8D=B3=E4=BD=BF=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E4=B8=BA=E6=97=A7=E7=89=88=E6=9C=AC=E4=B9=9F?= =?UTF-8?q?=E6=AD=A3=E5=B8=B8=E4=BD=BF=E7=94=A8=E3=80=82=203=E3=80=81?= =?UTF-8?q?=E6=9C=AC=E6=AC=A1=E4=BF=AE=E6=94=B9=E5=B7=B2=E5=AE=8C=E7=BE=8E?= =?UTF-8?q?=E4=BF=AE=E6=94=B9socks=20=E7=9A=84=E9=85=8D=E7=BD=AE=E7=94=A8?= =?UTF-8?q?=E4=BB=A5=E9=80=82=E9=85=8D=E6=96=B0=E6=97=A7Xray=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E3=80=82=204=E3=80=81WireGuard=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=9A=E6=9B=BF=E6=8D=A2kernelMode=E4=B8=BAnoKernelTun?= =?UTF-8?q?=EF=BC=8C=E8=A7=81=EF=BC=9Ahttps://github.com/XTLS/Xray-core/co?= =?UTF-8?q?mmit/9bdf72d658cc3bd168374d2997b93299603c87af?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../root/etc/init.d/shadowsocksr | 8 +- .../usr/share/shadowsocksr/gen_config.lua | 320 +++++++++--------- 2 files changed, 171 insertions(+), 157 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index d62f5ab37c5..2d0132b25d5 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -422,7 +422,7 @@ start_udp() { ;; v2ray) gen_config_file $UDP_RELAY_SERVER $type 2 $tmp_udp_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $udp_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -c $udp_config_file echolog "UDP TPROXY Relay:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; trojan) #client @@ -531,7 +531,7 @@ start_shunt() { v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $shunt_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file shunt_dns_command echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" ;; @@ -651,7 +651,7 @@ start_local() { v2ray) if [ "$_local" == "2" ]; then gen_config_file $LOCAL_SERVER $type 4 0 $local_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $local_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -c $local_config_file fi echolog "Global_Socks5:$($(first_type "xray" "v2ray") version | head -1) Started!" ;; @@ -746,7 +746,7 @@ Start_Run() { ;; v2ray) gen_config_file $GLOBAL_SERVER $type 1 $tcp_port $socks_port - ln_start_bin $(first_type xray v2ray) v2ray run -config $tcp_config_file + ln_start_bin $(first_type xray v2ray) v2ray run -c $tcp_config_file echolog "Main node:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 8102cd3859d..5822260dad9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -77,7 +77,7 @@ function wireguard() allowedIPs = (server.allowedips) or nil, } }, - kernelMode = (server.kernelmode == "1") and true or false, + noKernelTun = (server.kernelmode == "1") and true or false, reserved = {server.reserved} or nil, mtu = tonumber(server.mtu) } @@ -124,165 +124,179 @@ local Xray = { -- error = "/var/ssrplus.log", loglevel = "warning" }, + + -- 初始化 inbounds 表 + inbounds = {}, + +} -- 传入连接 - inbound = (local_port ~= "0") and { - -- listening - port = tonumber(local_port), - protocol = "dokodemo-door", - settings = {network = proto, followRedirect = true}, - sniffing = { - enabled = true, - destOverride = {"http", "tls", "quic"}, - domainsExcluded = { - "courier.push.apple.com", - "rbsxbxp-mim.vivox.com", - "rbsxbxp.www.vivox.com", - "rbsxbxp-ws.vivox.com", - "rbspsxp.www.vivox.com", - "rbspsxp-mim.vivox.com", - "rbspsxp-ws.vivox.com", - "rbswxp.www.vivox.com", - "rbswxp-mim.vivox.com", - "disp-rbspsp-5-1.vivox.com", - "disp-rbsxbp-5-1.vivox.com", - "proxy.rbsxbp.vivox.com", - "proxy.rbspsp.vivox.com", - "proxy.rbswp.vivox.com", - "rbswp.vivox.com", - "rbsxbp.vivox.com", - "rbspsp.vivox.com", - "rbspsp.www.vivox.com", - "rbswp.www.vivox.com", - "rbsxbp.www.vivox.com", - "rbsxbxp.vivox.com", - "rbspsxp.vivox.com", - "rbswxp.vivox.com", - "Mijia Cloud", - "dlg.io.mi.com" + -- 添加 dokodemo-door 配置,如果 local_port 不为 0 +if local_port ~= "0" then + table.insert(Xray.inbounds, { + -- listening + port = tonumber(local_port), + protocol = "dokodemo-door", + settings = {network = proto, followRedirect = true}, + sniffing = { + enabled = true, + destOverride = {"http", "tls", "quic"}, + metadataOnly = false, + domainsExcluded = { + "courier.push.apple.com", + "rbsxbxp-mim.vivox.com", + "rbsxbxp.www.vivox.com", + "rbsxbxp-ws.vivox.com", + "rbspsxp.www.vivox.com", + "rbspsxp-mim.vivox.com", + "rbspsxp-ws.vivox.com", + "rbswxp.www.vivox.com", + "rbswxp-mim.vivox.com", + "disp-rbspsp-5-1.vivox.com", + "disp-rbsxbp-5-1.vivox.com", + "proxy.rbsxbp.vivox.com", + "proxy.rbspsp.vivox.com", + "proxy.rbswp.vivox.com", + "rbswp.vivox.com", + "rbsxbp.vivox.com", + "rbspsp.vivox.com", + "rbspsp.www.vivox.com", + "rbswp.www.vivox.com", + "rbsxbp.www.vivox.com", + "rbsxbxp.vivox.com", + "rbspsxp.vivox.com", + "rbswxp.vivox.com", + "Mijia Cloud", + "dlg.io.mi.com" + } } - } - } or nil, + }) +end + -- 开启 socks 代理 - inboundDetour = (proto:find("tcp") and socks_port ~= "0") and { - { - -- socks - protocol = "socks", - port = tonumber(socks_port), - settings = {auth = "noauth", udp = true} - } - } or nil, + -- 检查是否启用 socks 代理 +if proto:find("tcp") and socks_port ~= "0" then + table.insert(Xray.inbounds, { + -- socks + protocol = "socks", + port = tonumber(socks_port), + settings = {auth = "noauth", udp = true} + }) +end + -- 传出连接 - outbound = { - protocol = server.v2ray_protocol, - settings = outbound_settings, - -- 底层传输配置 - streamSettings = (server.v2ray_protocol ~= "wireguard") and { - network = server.transport or "tcp", - security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, - tlsSettings = (server.tls == '1') and (server.tls_host or server.fingerprint) and { - -- tls - alpn = server.tls_alpn, - fingerprint = server.fingerprint, - allowInsecure = (server.insecure == "1"), - serverName = server.tls_host, - certificates = server.certificate and { - usage = "verify", - certificateFile = server.certpath + Xray.outbounds = { + { + protocol = server.v2ray_protocol, + settings = outbound_settings, + -- 底层传输配置 + streamSettings = (server.v2ray_protocol ~= "wireguard") and { + network = server.transport or "tcp", + security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, + tlsSettings = (server.tls == '1') and { + -- tls + alpn = server.tls_alpn, + fingerprint = server.fingerprint, + allowInsecure = (server.insecure == "1"), + serverName = server.tls_host, + certificates = server.certificate and { + usage = "verify", + certificateFile = server.certpath + } or nil, } or nil, - } or nil, - xtlsSettings = (server.xtls == '1') and server.tls_host and { - -- xtls - allowInsecure = (server.insecure == "1") and true or nil, - serverName = server.tls_host, - minVersion = "1.3" - } or nil, - realitySettings = (server.reality == '1') and { - publicKey = server.reality_publickey, - shortId = server.reality_shortid, - spiderX = server.reality_spiderx, - fingerprint = server.fingerprint, - serverName = server.tls_host - } or nil, - tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { - -- tcp - header = { - type = server.tcp_guise, - request = { - -- request - path = {server.http_path} or {"/"}, - headers = {Host = {server.http_host} or {}} + xtlsSettings = (server.xtls == '1') and server.tls_host and { + -- xtls + allowInsecure = (server.insecure == "1") and true or nil, + serverName = server.tls_host, + minVersion = "1.3" + } or nil, + realitySettings = (server.reality == '1') and { + publicKey = server.reality_publickey, + shortId = server.reality_shortid, + spiderX = server.reality_spiderx, + fingerprint = server.fingerprint, + serverName = server.tls_host + } or nil, + tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { + -- tcp + header = { + type = server.tcp_guise, + request = { + -- request + path = {server.http_path} or {"/"}, + headers = {Host = {server.http_host} or {}} + } } - } - } or nil, - kcpSettings = (server.transport == "kcp") and { - -- kcp - mtu = tonumber(server.mtu), - tti = tonumber(server.tti), - uplinkCapacity = tonumber(server.uplink_capacity), - downlinkCapacity = tonumber(server.downlink_capacity), - congestion = (server.congestion == "1") and true or false, - readBufferSize = tonumber(server.read_buffer_size), - writeBufferSize = tonumber(server.write_buffer_size), - header = {type = server.kcp_guise}, - seed = server.seed or nil - } or nil, - wsSettings = (server.transport == "ws") and (server.ws_path or server.ws_host or server.tls_host) and { - -- ws - headers = (server.ws_host or server.tls_host) and { - -- headers - Host = server.ws_host or server.tls_host } or nil, - path = server.ws_path, - maxEarlyData = tonumber(server.ws_ed) or nil, - earlyDataHeaderName = server.ws_ed_header or nil - } or nil, - httpupgradeSettings = (server.transport == "httpupgrade") and { - -- httpupgrade - host = (server.httpupgrade_host or server.tls_host) or nil, - path = server.httpupgrade_path or "" - } or nil, - splithttpSettings = (server.transport == "splithttp") and { - -- splithttp - host = (server.splithttp_host or server.tls_host) or nil, - path = server.splithttp_path or "" - } or nil, - httpSettings = (server.transport == "h2") and { - -- h2 - path = server.h2_path or "", - host = {server.h2_host} or nil, - read_idle_timeout = tonumber(server.read_idle_timeout) or nil, - health_check_timeout = tonumber(server.health_check_timeout) or nil - } or nil, - quicSettings = (server.transport == "quic") and { - -- quic - security = server.quic_security, - key = server.quic_key, - header = {type = server.quic_guise} - } or nil, - grpcSettings = (server.transport == "grpc") and { - -- grpc - serviceName = server.serviceName or "", - multiMode = (server.grpc_mode == "multi") and true or false, - idle_timeout = tonumber(server.idle_timeout) or nil, - health_check_timeout = tonumber(server.health_check_timeout) or nil, - permit_without_stream = (server.permit_without_stream == "1") and true or nil, - initial_windows_size = tonumber(server.initial_windows_size) or nil + kcpSettings = (server.transport == "kcp") and { + -- kcp + mtu = tonumber(server.mtu), + tti = tonumber(server.tti), + uplinkCapacity = tonumber(server.uplink_capacity), + downlinkCapacity = tonumber(server.downlink_capacity), + congestion = (server.congestion == "1") and true or false, + readBufferSize = tonumber(server.read_buffer_size), + writeBufferSize = tonumber(server.write_buffer_size), + header = {type = server.kcp_guise}, + seed = server.seed or nil + } or nil, + wsSettings = (server.transport == "ws") and (server.ws_path or server.ws_host or server.tls_host) and { + -- ws + headers = (server.ws_host or server.tls_host) and { + -- headers + Host = server.ws_host or server.tls_host + } or nil, + path = server.ws_path, + maxEarlyData = tonumber(server.ws_ed) or nil, + earlyDataHeaderName = server.ws_ed_header or nil + } or nil, + httpupgradeSettings = (server.transport == "httpupgrade") and { + -- httpupgrade + host = (server.httpupgrade_host or server.tls_host) or nil, + path = server.httpupgrade_path or "" + } or nil, + splithttpSettings = (server.transport == "splithttp") and { + -- splithttp + host = (server.splithttp_host or server.tls_host) or nil, + path = server.splithttp_path or "/" + } or nil, + httpSettings = (server.transport == "h2") and { + -- h2 + path = server.h2_path or "", + host = {server.h2_host} or nil, + read_idle_timeout = tonumber(server.read_idle_timeout) or nil, + health_check_timeout = tonumber(server.health_check_timeout) or nil + } or nil, + quicSettings = (server.transport == "quic") and { + -- quic + security = server.quic_security, + key = server.quic_key, + header = {type = server.quic_guise} + } or nil, + grpcSettings = (server.transport == "grpc") and { + -- grpc + serviceName = server.serviceName or "", + multiMode = (server.grpc_mode == "multi") and true or false, + idle_timeout = tonumber(server.idle_timeout) or nil, + health_check_timeout = tonumber(server.health_check_timeout) or nil, + permit_without_stream = (server.permit_without_stream == "1") and true or nil, + initial_windows_size = tonumber(server.initial_windows_size) or nil + } or nil, + sockopt = { + tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP + tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP + tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 + } } or nil, - sockopt = { - tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP - tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP - tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 - } - } or nil, - mux = (server.v2ray_protocol ~= "wireguard") and { - -- mux - enabled = (server.mux == "1") and true or false, -- Mux - concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 - xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 - xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 - } or nil + mux = (server.v2ray_protocol ~= "wireguard") and { + -- mux + enabled = (server.mux == "1") and true or false, -- Mux + concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 + xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 + xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 + } or nil + } } -} + local cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA" local cipher13 = "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384" local trojan = { @@ -351,7 +365,7 @@ local hysteria = { hopInterval = (server.port_range and (tonumber(server.hopinterval) .. "s") or nil) } or nil) } or nil, ---[[ +--[[ tcpTProxy = (proto:find("tcp") and local_port ~= "0") and { listen = "0.0.0.0:" .. tonumber(local_port) } or nil, @@ -488,7 +502,7 @@ local tuic = { }, ["local"] = { server = tonumber(socks_port) and "[::]:" .. (socks_port == "0" and local_port or tonumber(socks_port)), - dual_stack = (server.tuic_dual_stack == "1") and true or nil, + dual_stack = (server.tuic_dual_stack == "1") and true or nil, max_packet_size = tonumber(server.tuic_max_package_size) } } From 4ae54d202d6e9e41748ef8d2849b685341cd4f7c Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 27 Oct 2024 16:04:07 +0800 Subject: [PATCH 625/972] luci-app-ssr-plus: Add Xray `fragment` support. For specific usage, see: https://xtls.github.io/config/outbounds/freedom.html. *** Fixed connection failure in 'gfw mode'. --- luci-app-ssr-plus/Makefile | 2 +- .../model/cbi/shadowsocksr/advanced.lua | 74 +++++++++++++++++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 58 ++++++++++++++- .../root/etc/init.d/shadowsocksr | 3 + luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 + .../usr/share/shadowsocksr/gen_config.lua | 35 ++++++++- 6 files changed, 170 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index fdc6a092b75..644ac0a6fac 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=188 -PKG_RELEASE:=8 +PKG_RELEASE:=9 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 9353f35e5ba..2f56e90a23a 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -146,4 +146,78 @@ o.datatype = "port" o.default = 1080 o.rmempty = false +-- [[ fragmen Settings ]]-- +if is_finded("xray") then +s = m:section(TypedSection, "global_xray_fragment", translate("Xray Fragment Settings")) +s.anonymous = true + +o = s:option(Flag, "fragment", translate("Fragment"), translate("TCP fragments, which can deceive the censorship system in some cases, such as bypassing SNI blacklists.")) +o.default = 0 + +o = s:option(ListValue, "fragment_packets", translate("Fragment Packets"), translate("\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. \"tlshello\" is for TLS client hello packet fragmentation.")) +o.default = "tlshello" +o:value("tlshello", "tlshello") +o:value("1-2", "1-2") +o:value("1-3", "1-3") +o:value("1-5", "1-5") +o:depends("fragment", true) + +o = s:option(Value, "fragment_length", translate("Fragment Length"), translate("Fragmented packet length (byte)")) +o.default = "100-200" +o:depends("fragment", true) + +o = s:option(Value, "fragment_interval", translate("Fragment Interval"), translate("Fragmentation interval (ms)")) +o.default = "10-20" +o:depends("fragment", true) + +o = s:option(Flag, "noise", translate("Noise"), translate("UDP noise, Under some circumstances it can bypass some UDP based protocol restrictions.")) +o.default = 0 + +s = m:section(TypedSection, "xray_noise_packets", translate("Xray Noise Packets")) +s.description = translate( + "" .. translate("To send noise packets, select \"Noise\" in Xray Settings.") .. "" .. + "
" .. translate("For specific usage, see: ") .. "" .. + "" .. + "" .. translate("Click to the page") .. "") +s.template = "cbi/tblsection" +s.sortable = true +s.anonymous = true +s.addremove = true + +s.remove = function(self, section) + for k, v in pairs(self.children) do + v.rmempty = true + v.validate = nil + end + TypedSection.remove(self, section) +end + +o = s:option(Flag, "enabled", translate("Enable")) +o.default = 1 +o.rmempty = false + +o = s:option(ListValue, "type", translate("Type")) +o.default = "base64" +o:value("rand", "rand") +o:value("str", "str") +o:value("base64", "base64") + +o = s:option(Value, "domainStrategy", translate("Domain Strategy")) +o.default = "UseIP" +o:value("AsIs", "AsIs") +o:value("UseIP", "UseIP") +o:value("UseIPv4", "UseIPv4") +o:value("ForceIP", "ForceIP") +o:value("ForceIPv4", "ForceIPv4") +o.rmempty = false + +o = s:option(Value, "packet", translate("Packet")) +o.datatype = "minlength(1)" +o.rmempty = false + +o = s:option(Value, "delay", translate("Delay (ms)")) +o.datatype = "or(uinteger,portrange)" +o.rmempty = false +end + return m diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 453848ab1fd..da30ffca554 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -209,7 +209,6 @@ msgstr "QUIC 连接接收窗口" msgid "QUIC stream receive window" msgstr "QUIC 流接收窗口" - msgid "Lazy Start" msgstr "延迟启动" @@ -843,6 +842,63 @@ msgstr "本机服务端" msgid "Global SOCKS5 Proxy Server" msgstr "SOCKS5 代理服务端(全局)" +msgid "Xray Fragment Settings" +msgstr "Xray 分片设置" + +msgid "Fragment" +msgstr "分片" + +msgid "TCP fragments, which can deceive the censorship system in some cases, such as bypassing SNI blacklists." +msgstr "TCP 分片,在某些情况下可以欺骗审查系统,比如绕过 SNI 黑名单。" + +msgid "Fragment Packets" +msgstr "分片方式" + +msgid "\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. \"tlshello\" is for TLS client hello packet fragmentation." +msgstr "\"1-3\" 是 TCP 的流切片,应用于客户端第 1 至第 3 次写数据。\"tlshello\" 是 TLS 握手包切片。" + +msgid "Fragment Length" +msgstr "分片包长" + +msgid "Fragmented packet length (byte)" +msgstr "分片包长 (byte)" + +msgid "Fragment Interval" +msgstr "分片间隔" + +msgid "Fragmentation interval (ms)" +msgstr "分片间隔(ms)" + +msgid "Noise" +msgstr "噪声" + +msgid "UDP noise, Under some circumstances it can bypass some UDP based protocol restrictions." +msgstr "UDP 噪声,在某些情况下可以绕过一些针对 UDP 协议的限制。" + +msgid "To send noise packets, select \"Noise\" in Xray Settings." +msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。" + +msgid "For specific usage, see: " +msgstr "具体使用方法参见:" + +msgid "Click to the page" +msgstr "点击前往" + +msgid "Xray Noise Packets" +msgstr "Xray 噪声数据包" + +msgid "Type" +msgstr "类型" + +msgid "Domain Strategy" +msgstr "域名解析策略" + +msgid "Packet" +msgstr "数据包" + +msgid "Delay (ms)" +msgstr "延迟(ms)" + msgid "warning! Please do not reuse the port!" msgstr "警告!请不要重复使用端口!" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 2d0132b25d5..ad6335d6e30 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -1191,6 +1191,9 @@ reset() { set shadowsocksr.@socks5_proxy[0].local_port='1080' add shadowsocksr server_global set shadowsocksr.@server_global[0].enable_server='0' + add shadowsocksr global_xray_fragment + set shadowsocksr.@global_xray_fragment[0].fragment='0' + set shadowsocksr.@global_xray_fragment[0].noise='0' commit shadowsocksr EOF unset_lock diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 547d910ae73..e0e0e8f5e00 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,6 +103,7 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW + $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 5822260dad9..e95b96ba37b 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -12,6 +12,8 @@ local chain = arg[5] or "0" local chain_local_port = string.split(chain, "/")[2] or "0" local server = ucursor:get_all("shadowsocksr", server_section) +local xray_fragment = ucursor:get_all("shadowsocksr", "@global_xray_fragment[0]") or {} +local xray_noise = ucursor:get_all("shadowsocksr", "@xray_noise_packets[0]") or {} local outbound_settings = nil function vmess_vless() @@ -128,6 +130,8 @@ local Xray = { -- 初始化 inbounds 表 inbounds = {}, + -- 初始化 outbounds 表 + outbounds = {}, } -- 传入连接 -- 添加 dokodemo-door 配置,如果 local_port 不为 0 @@ -284,7 +288,8 @@ end sockopt = { tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP - tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 + tcpcongestion = server.custom_tcpcongestion, -- 连接服务器节点的 TCP 拥塞控制算法 + dialerProxy = (xray_fragment.fragment == "1" or xray_fragment.noise == "1") and "dialerproxy" or nil } } or nil, mux = (server.v2ray_protocol ~= "wireguard") and { @@ -297,6 +302,34 @@ end } } +-- 添加带有 fragment 设置的 dialerproxy 配置 +if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.enabled ~= "0") then + table.insert(Xray.outbounds, { + protocol = "freedom", + tag = "dialerproxy", + settings = { + domainStrategy = (xray_fragment.noise == "1" and xray_noise.enabled == "1") and xray_noise.domainStrategy, + fragment = (xray_fragment.fragment == "1") and { + packets = (xray_fragment.fragment_packets ~= "") and xray_fragment.fragment_packets or nil, + length = (xray_fragment.fragment_length ~= "") and xray_fragment.fragment_length or nil, + interval = (xray_fragment.fragment_interval ~= "") and xray_fragment.fragment_interval or nil + } or nil, + noises = (xray_fragment.noise == "1" and xray_noise.enabled == "1") and { + { + type = xray_noise.type, + packet = xray_noise.packet, + delay = xray_noise.delay:find("-") and xray_noise.delay or tonumber(xray_noise.delay) + } + } or nil + }, + streamSettings = { + sockopt = { + tcpNoDelay = true + } + } + }) +end + local cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA" local cipher13 = "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384" local trojan = { From 7869f77ecb697e4b569621d6eda3ce8650bab7b4 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 28 Oct 2024 22:00:27 +0800 Subject: [PATCH 626/972] luci-app-ssr-plus: adapt to openwrt official dnsmasq modifiy. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、官方dnsmasq路径已变更为:/tmp/dnsmasq.cfgxxxxx.d(xxxxx为dnsmasq生成的配置ID),而目前ssrp默认dnsmasq的路径为:/tmp/dnsmasq.d,如不做修改,会导致dns无法解析引起插件可正常运行但节点连接失败。 2、lede版本的dnsmasq的路径仍为:/tmp/dnsmasq.d,考虑到此情况,本次修改自动判断官方和lede的dnsmasq路径,以便正确实现dns解析,并使节点正常链接。 --- .../root/etc/init.d/shadowsocksr | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index ad6335d6e30..00e0448fbdf 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -17,7 +17,14 @@ LOCK_FILE=/var/lock/ssrplus.lock LOG_FILE=/var/log/ssrplus.log TMP_PATH=/var/etc/ssrplus TMP_BIN_PATH=$TMP_PATH/bin -TMP_DNSMASQ_PATH=/tmp/dnsmasq.d/dnsmasq-ssrplus.d +# Get the default DNSMasq config ID from the UCI configuration +DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -1) +# Locate the dnsmasq.conf file that contains the conf-dir option +DNSMASQ_CONF_PATH=$(grep -l "^conf-dir=" "/tmp/etc/dnsmasq.conf.${DEFAULT_DNSMASQ_CFGID}") +# Extract the directory path from the conf-dir line +DNSMASQ_CONF_DIR=$(grep '^conf-dir=' "$DNSMASQ_CONF_PATH" | cut -d'=' -f2 | head -n 1) +# Check if a conf-dir value was found and set variables accordingly +TMP_DNSMASQ_PATH=${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d chain_config_file= #generate shadowtls chain proxy config file tcp_config_file= @@ -1062,8 +1069,8 @@ start_rules() { start() { set_lock echolog "----------start------------" - mkdir -p /var/run /var/lock /var/log /tmp/dnsmasq.d $TMP_BIN_PATH $TMP_DNSMASQ_PATH - echo "conf-dir=${TMP_DNSMASQ_PATH}" >"/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" + mkdir -p /var/run /var/lock /var/log $DNSMASQ_CONF_DIR $TMP_BIN_PATH $TMP_DNSMASQ_PATH + echo "conf-dir=${TMP_DNSMASQ_PATH}" >"$DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf" if load_config; then Start_Run start_rules @@ -1096,7 +1103,7 @@ start() { boot() { echolog "boot!" - mkdir -p /var/run /var/lock /var/log /tmp/dnsmasq.d $TMP_BIN_PATH $TMP_DNSMASQ_PATH + mkdir -p /var/run /var/lock /var/log $DNSMASQ_CONF_DIR $TMP_BIN_PATH $TMP_DNSMASQ_PATH start } @@ -1134,8 +1141,8 @@ stop() { uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed" uci -q commit "dhcp" fi - if [ -f "/tmp/dnsmasq.d/dnsmasq-ssrplus.conf" ]; then - rm -rf /tmp/dnsmasq.d/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json + if [ -f "$DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf" ]; then + rm -rf $DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json /etc/init.d/dnsmasq restart >/dev/null 2>&1 fi del_cron From 16972f7c40c59d932be7a5211a99637164546194 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 28 Oct 2024 23:21:21 +0800 Subject: [PATCH 627/972] luci-app-ssr-plus: ssr-rules: Delete unnecessary rules from the gfw. --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index e0e0e8f5e00..547d910ae73 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,7 +103,6 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW - $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null From e098fd34e1e503cdc4644d707fbf6913ff63bc3d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 28 Oct 2024 23:37:12 +0800 Subject: [PATCH 628/972] Revert: `luci-app-ssr-plus: ssr-rules: Delete unnecessary rules from the gfw.` --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 547d910ae73..e0e0e8f5e00 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,6 +103,7 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW + $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null From 1603b69c9ee5117d07a594c212bdf83e8d48510e Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 29 Oct 2024 14:27:39 +0800 Subject: [PATCH 629/972] luci-app-ssr-plus: ssr-rules: Delete unnecessary rules from the gfw. --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index e0e0e8f5e00..547d910ae73 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,7 +103,6 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW - $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null From 8c362ba2cdb11aa26acbe93789ce76ad76705f85 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 29 Oct 2024 21:54:21 +0800 Subject: [PATCH 630/972] luci-app-ssr-plus: update.sh: adapt to openwrt official dnsmasq modifiy. --- luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index e49825efa09..7a179b87a66 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -9,7 +9,7 @@ require "luci.model.uci" local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() -local TMP_DNSMASQ_PATH = "/tmp/dnsmasq.d/dnsmasq-ssrplus.d" +local TMP_DNSMASQ_PATH = "${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" From c68309ffbb2059ee83f5bfc36e3365214b833634 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sat, 2 Nov 2024 12:48:55 +0800 Subject: [PATCH 631/972] Revert "luci-app-ssr-plus: ssr-rules: Delete unnecessary rules from the gfw." This reverts commit 1603b69c9ee5117d07a594c212bdf83e8d48510e. --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index 547d910ae73..e0e0e8f5e00 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,6 +103,7 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW + $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null From de32f32b86d455835582dda578eadbb385b663f8 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sat, 2 Nov 2024 12:53:39 +0800 Subject: [PATCH 632/972] xray-core: update to 24.10.31 --- xray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 3758b997afb..d011698c2d2 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=xray-core -PKG_VERSION:=24.10.16 +PKG_NAME:=Xray-core +PKG_VERSION:=24.10.31 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2964cf0cc7cb1b631591cc49c49160d1a478d2f83e4f0a1081e0bc6cc38d8725 +PKG_HASH:=b61102ce87c61fa97c001cb08bb3ad794ff7184e2457bc58fe71206e53dcee83 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 2603ac776ffb0517ae6f5b10f92ac8ab5b66cda6 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 3 Nov 2024 23:16:49 +0800 Subject: [PATCH 633/972] luci-app-ssr-plus: refact config reset default button --- luci-app-ssr-plus/Makefile | 4 +- .../model/cbi/shadowsocksr/advanced.lua | 7 ++- .../root/etc/init.d/shadowsocksr | 50 +----------------- .../share/shadowsocksr/shadowsocksr.config | 51 +++++++++++++++++++ 4 files changed, 59 insertions(+), 53 deletions(-) create mode 100644 luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 644ac0a6fac..735b377e6cc 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus -PKG_VERSION:=188 -PKG_RELEASE:=9 +PKG_VERSION:=189 +PKG_RELEASE:=1 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 2f56e90a23a..5fc774ff14c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -125,8 +125,11 @@ o:depends("adblock", "1") o.description = translate("Support AdGuardHome and DNSMASQ format list") o = s:option(Button, "reset", translate("Reset to defaults")) -o.rawhtml = true -o.template = "shadowsocksr/reset" +o.inputstyle = "reload" +o.write = function() + luci.sys.call("/etc/init.d/shadowsocksr reset") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) +end -- [[ SOCKS5 Proxy ]]-- s = m:section(TypedSection, "socks5_proxy", translate("Global SOCKS5 Proxy Server")) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 00e0448fbdf..231dccc40c7 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -1154,54 +1154,6 @@ reset() { set_lock rm -rf /etc/config/shadowsocksr $LOG_FILE touch /etc/config/shadowsocksr $LOG_FILE - uci -q batch <<-EOF >/dev/null - add shadowsocksr global - set shadowsocksr.@global[0].global_server='nil' - set shadowsocksr.@global[0].netflix_server='nil' - set shadowsocksr.@global[0].netflix_proxy='0' - set shadowsocksr.@global[0].threads='0' - set shadowsocksr.@global[0].run_mode='router' - set shadowsocksr.@global[0].dports='2' - set shadowsocksr.@global[0].custom_ports='80,443' - set shadowsocksr.@global[0].pdnsd_enable='1' - set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53' - set shadowsocksr.@global[0].monitor_enable='1' - set shadowsocksr.@global[0].enable_switch='1' - set shadowsocksr.@global[0].switch_time='667' - set shadowsocksr.@global[0].switch_timeout='5' - set shadowsocksr.@global[0].switch_try_count='3' -# set shadowsocksr.@global[0].default_packet_encoding='xudp' - set shadowsocksr.@global[0].shunt_dns='1' - set shadowsocksr.@global[0].gfwlist_url='https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' - set shadowsocksr.@global[0].chnroute_url='https://ispip.clang.cn/all_cn.txt' - set shadowsocksr.@global[0].nfip_url='https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' - set shadowsocksr.@global[0].adblock_url='https://anti-ad.net/anti-ad-for-dnsmasq.conf' - add shadowsocksr server_subscribe - set shadowsocksr.@server_subscribe[0].proxy='0' - set shadowsocksr.@server_subscribe[0].auto_update_time='2' - set shadowsocksr.@server_subscribe[0].auto_update='1' - set shadowsocksr.@server_subscribe[0].filter_words='过期时间/剩余流量/QQ群/官网/防失联地址/回国' - set shadowsocksr.@server_subscribe[0].save_words='' - add shadowsocksr access_control - set shadowsocksr.@access_control[0].lan_ac_mode='0' - set shadowsocksr.@access_control[0].router_proxy='1' - add_list shadowsocksr.@access_control[0].wan_fw_ips=149.154.160.0/20 - add_list shadowsocksr.@access_control[0].wan_fw_ips=67.198.55.0/24 - add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.4.0/22 - add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.56.0/22 - add_list shadowsocksr.@access_control[0].wan_fw_ips=109.239.140.0/24 - add_list shadowsocksr.@access_control[0].wan_fw_ips=8.8.8.8 - add_list shadowsocksr.@access_control[0].wan_fw_ips=1.1.1.1 - add_list shadowsocksr.@access_control[0].Interface='lan' - add shadowsocksr socks5_proxy - set shadowsocksr.@socks5_proxy[0].server='nil' - set shadowsocksr.@socks5_proxy[0].local_port='1080' - add shadowsocksr server_global - set shadowsocksr.@server_global[0].enable_server='0' - add shadowsocksr global_xray_fragment - set shadowsocksr.@global_xray_fragment[0].fragment='0' - set shadowsocksr.@global_xray_fragment[0].noise='0' - commit shadowsocksr - EOF + cp /usr/share/shadowsocksr/shadowsocksr.config /etc/config/shadowsocksr unset_lock } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config new file mode 100644 index 00000000000..6d9f2874986 --- /dev/null +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config @@ -0,0 +1,51 @@ + +config global + option global_server 'nil' + option netflix_server 'nil' + option netflix_proxy '0' + option threads '0' + option run_mode 'router' + option dports '2' + option custom_ports '80,443' + option pdnsd_enable '1' + option tunnel_forward '8.8.4.4:53' + option monitor_enable '1' + option enable_switch '1' + option switch_time '667' + option switch_timeout '5' + option switch_try_count '3' + option shunt_dns '1' + option gfwlist_url 'https://fastly.jsdelivr.net/gh/YW5vbnltb3Vz/domain-list-community@release/gfwlist.txt' + option chnroute_url 'https://ispip.clang.cn/all_cn.txt' + option nfip_url 'https://fastly.jsdelivr.net/gh/QiuSimons/Netflix_IP/NF_only.txt' + option adblock_url 'https://anti-ad.net/anti-ad-for-dnsmasq.conf' + +config server_subscribe + option proxy '0' + option auto_update_time '2' + option auto_update '1' + option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国' + +config access_control + option lan_ac_mode '0' + option router_proxy '1' + list wan_fw_ips '149.154.160.0/20' + list wan_fw_ips '67.198.55.0/24' + list wan_fw_ips '91.108.4.0/22' + list wan_fw_ips '91.108.56.0/22' + list wan_fw_ips '109.239.140.0/24' + list wan_fw_ips '8.8.8.8' + list wan_fw_ips '1.1.1.1' + list Interface 'lan' + +config socks5_proxy + option server 'nil' + option local_port '1080' + +config server_global + option enable_server '0' + +config global_xray_fragment + option fragment '0' + option noise '0' + From b10949e182daf63ad2c9abc024c1a5019d37c1ad Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 4 Nov 2024 21:36:40 +0800 Subject: [PATCH 634/972] luci-app-ssr-plus: Delete unnecessary rules from the gfw. In gfw mode, if this rule is used, foreign IP addresses that can be directly connected are proxy. --- luci-app-ssr-plus/root/usr/bin/ssr-rules | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/bin/ssr-rules b/luci-app-ssr-plus/root/usr/bin/ssr-rules index e0e0e8f5e00..547d910ae73 100755 --- a/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -103,7 +103,6 @@ ipset_r() { $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j RETURN $IPT -A SS_SPEC_WAN_AC -m set --match-set gfwlist dst -j SS_SPEC_WAN_FW $IPT -A SS_SPEC_WAN_AC -m set --match-set gmlan src -m set ! --match-set china dst -j SS_SPEC_WAN_FW - $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW ;; oversea) ipset -N oversea hash:net 2>/dev/null From 6ffe77cc0b35738dffc1b82506e95fad3da78351 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 4 Nov 2024 21:51:51 +0800 Subject: [PATCH 635/972] luci-app-ssr-plus: Fix fragment 'sockopt' tcpMptcp and tcpNoDelay options together use. See: https://xtls.github.io/config/transport.html#sockoptobject --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index e95b96ba37b..59cee0808f4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -324,7 +324,8 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e }, streamSettings = { sockopt = { - tcpNoDelay = true + tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP + tcpNoDelay = (server.mptcp == "1") and true or false -- MPTCP } } }) From 65ff69cec91f7f3a99eaff822e3f4734e345919b Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 4 Nov 2024 22:53:22 +0800 Subject: [PATCH 636/972] luci-app-ssr-plus: Add Xray new version RAW transport (formerly tcp transport) support. See: https://xtls.github.io/config/transports/raw.html MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 说明:本次新增的raw传输协议,在使用新版本的Xray情况下,可将旧版本节点的tcp传输协议修改为新版本的RAW传输协议,但旧版本的Xray只能使用tcp传输协议,因此暂不删除旧版本的tcp传输支持。 --- luci-app-ssr-plus/Makefile | 2 +- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 13 +++++++++++++ .../luasrc/view/shadowsocksr/ssrurl.htm | 12 +++++++++++- .../root/usr/share/shadowsocksr/gen_config.lua | 11 +++++++++++ .../root/usr/share/shadowsocksr/subscribe.lua | 6 ++++++ 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 735b377e6cc..04875d49d6d 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=189 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 1048aa495af..876a819cb6f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -619,6 +619,7 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) -- 传输协议 o = s:option(ListValue, "transport", translate("Transport")) o:value("tcp", "TCP") +o:value("raw", "RAW") o:value("kcp", "mKCP") o:value("ws", "WebSocket") o:value("httpupgrade", "HTTPUpgrade") @@ -642,14 +643,24 @@ o:value("none", translate("None")) o:value("http", "HTTP") o.rmempty = true +-- [[ RAW部分 ]]-- +-- RAW伪装 +o = s:option(ListValue, "raw_guise", translate("Camouflage Type")) +o:depends("transport", "raw") +o:value("none", translate("None")) +o:value("http", "HTTP") +o.rmempty = true + -- HTTP域名 o = s:option(Value, "http_host", translate("HTTP Host")) o:depends("tcp_guise", "http") +o:depends("raw_guise", "http") o.rmempty = true -- HTTP路径 o = s:option(Value, "http_path", translate("HTTP Path")) o:depends("tcp_guise", "http") +o:depends("raw_guise", "http") o.rmempty = true -- [[ WS部分 ]]-- @@ -928,7 +939,9 @@ if is_finded("xray") then end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", tls = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", reality = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true}) -- [[ uTLS ]]-- o = s:option(Value, "fingerprint", translate("Finger Print")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 7603d8c0e54..c81590ef690 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -314,7 +314,10 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = url.username; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : params.get("type") || "tcp"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = + params.get("type") == "http" ? "h2" : + (params.get("type") == "raw" ? "raw" : + (params.get("type") || "tcp")); document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; if ([ "tls", "xtls", "reality" ].includes(params.get("security"))) { @@ -375,6 +378,13 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; } + case "raw": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.raw_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.raw_guise')[0].dispatchEvent(event); + if (params.get("headerType") === "http") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + } break; } s.innerHTML = "<%:Import configuration information successfully.%>"; diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 59cee0808f4..569b4626335 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -231,6 +231,17 @@ end } } } or nil, + rawSettings = (server.transport == "raw" and server.raw_guise == "http") and { + -- raw + header = { + type = server.raw_guise, + request = { + -- request + path = {server.http_path} or {"/"}, + headers = {Host = {server.http_host} or {}} + } + } + } or nil, kcpSettings = (server.transport == "kcp") and { -- kcp mtu = tonumber(server.mtu), diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 34b09504324..ccdd8be7add 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -406,6 +406,12 @@ local function processData(szType, content) result.tcp_host = params.host and UrlDecode(params.host) or nil result.tcp_path = params.path and UrlDecode(params.path) or nil end + elseif result.transport == "raw" then + result.raw_guise = params.headerType or "none" + if result.raw_guise == "http" then + result.tcp_host = params.host and UrlDecode(params.host) or nil + result.tcp_path = params.path and UrlDecode(params.path) or nil + end end end if not result.alias then From 8f3b7ea66cdb9fa36f8468de330c65be3cd383a7 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 6 Nov 2024 23:44:09 +0800 Subject: [PATCH 637/972] luci-app-ssr-plus: Fix `cp: can't create '/dnsmasq-ssrplus.d/gfw_list.conf': No such file or directory`. Signed-off-by: Zxl hhyccc --- luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 7a179b87a66..43e54d81036 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -10,6 +10,7 @@ local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() local TMP_DNSMASQ_PATH = "${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" +luci.sys.call("mkdir -p " .. TMP_DNSMASQ_PATH) local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" From 04bb122a0a4fae809f2f4f1b81409c3204d819f7 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 7 Nov 2024 00:01:47 +0800 Subject: [PATCH 638/972] luci-app-ssr-plus: Generated original order `gfw` list. *** Making dnsmasq's traversal of matches more efficient. Signed-off-by: Zxl hhyccc --- .../root/usr/share/shadowsocksr/update.lua | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 43e54d81036..70bf2249c8a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -55,22 +55,23 @@ local function check_excluded_domain(value) end -- gfwlist转码至dnsmasq格式 local function generate_gfwlist(type) - local domains = {} - local out = io.open("/tmp/ssr-update." .. type, "w") - for line in io.lines("/tmp/ssr-update.tmp") do - if not (string.find(line, comment_pattern) or string.find(line, ip_pattern) or check_excluded_domain(line)) then - local start, finish, match = string.find(line, domain_pattern) - if (start) then - domains[match] = true - end - end - end - for k, v in pairs(domains) do - out:write(string.format("server=/%s/%s#%s\n", k, mydnsip, mydnsport)) - out:write(string.format("ipset=/%s/%s\n", k, ipsetname)) - end - out:close() - os.remove("/tmp/ssr-update.tmp") + local domains, domains_map = {}, {} + local out = io.open("/tmp/ssr-update." .. type, "w") + for line in io.lines("/tmp/ssr-update.tmp") do + if not (string.find(line, comment_pattern) or string.find(line, ip_pattern) or check_excluded_domain(line)) then + local start, finish, match = string.find(line, domain_pattern) + if start and not domains_map[match] then + domains_map[match] = true + table.insert(domains, match) + end + end + end + for _, domain in ipairs(domains) do + out:write(string.format("server=/%s/%s#%s\n", domain, mydnsip, mydnsport)) + out:write(string.format("ipset=/%s/%s\n", domain, ipsetname)) + end + out:close() + os.remove("/tmp/ssr-update.tmp") end -- adblock转码至dnsmasq格式 From 2278b99c93f3d66650ce45176c72aed736d85a05 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 7 Nov 2024 22:56:04 +0800 Subject: [PATCH 639/972] luci-app-ssr-plus: Fix wrong path is:`/dnsmasq-ssrplus.d/gfw_list.conf`. Fixed: https://github.com/fw876/helloworld/commit/8f3b7ea66cdb9fa36f8468de330c65be3cd383a7 Signed-off-by: Zxl hhyccc --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 8 ++++---- luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua | 3 +-- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 231dccc40c7..4029a074380 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -17,13 +17,13 @@ LOCK_FILE=/var/lock/ssrplus.lock LOG_FILE=/var/log/ssrplus.log TMP_PATH=/var/etc/ssrplus TMP_BIN_PATH=$TMP_PATH/bin -# Get the default DNSMasq config ID from the UCI configuration +# 获取默认的 DNSMasq 配置 ID DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -1) -# Locate the dnsmasq.conf file that contains the conf-dir option +# 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 DNSMASQ_CONF_PATH=$(grep -l "^conf-dir=" "/tmp/etc/dnsmasq.conf.${DEFAULT_DNSMASQ_CFGID}") -# Extract the directory path from the conf-dir line +# 从 conf-dir 行中提取目录路径 DNSMASQ_CONF_DIR=$(grep '^conf-dir=' "$DNSMASQ_CONF_PATH" | cut -d'=' -f2 | head -n 1) -# Check if a conf-dir value was found and set variables accordingly +# 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠 TMP_DNSMASQ_PATH=${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d chain_config_file= #generate shadowtls chain proxy config file diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 70bf2249c8a..8572f24aac4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -9,8 +9,7 @@ require "luci.model.uci" local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() -local TMP_DNSMASQ_PATH = "${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" -luci.sys.call("mkdir -p " .. TMP_DNSMASQ_PATH) +local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq.*/dnsmasq-ssrplus.d -print 2>/dev/null | head -n 1"):gsub("%s+", "") local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" From 96fff440034ecd4691c5e5437a1f76227c5f97ab Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 9 Nov 2024 13:26:46 +0800 Subject: [PATCH 640/972] luci-app-ssr-plus: update.lua: optimized code --- .../root/usr/share/shadowsocksr/update.lua | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 8572f24aac4..5eadb3e64b1 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -9,7 +9,7 @@ require "luci.model.uci" local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() -local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq.*/dnsmasq-ssrplus.d -print 2>/dev/null | head -n 1"):gsub("%s+", "") +local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq*/dnsmasq-ssrplus.d -type d -print -quit 2>/dev/null") local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" @@ -44,10 +44,10 @@ local function base64_dec(data) return string.char(c) end)) end --- check excluded domain +-- check if domain is excluded local function check_excluded_domain(value) - for k, v in ipairs(excluded_domain) do - if value:find(v) then + for _, domain in ipairs(excluded_domain) do + if value:find(domain) then return true end end @@ -75,18 +75,19 @@ end -- adblock转码至dnsmasq格式 local function generate_adblock(type) - local domains = {} + local domains, domains_map = {}, {} local out = io.open("/tmp/ssr-update." .. type, "w") for line in io.lines("/tmp/ssr-update.tmp") do if not (string.find(line, comment_pattern)) then local start, finish, match = string.find(line, domain_pattern) - if (start) then - domains[match] = true + if start and not domains_map[match] then + domains_map[match] = true + table.insert(domains, match) end end end - for k, v in pairs(domains) do - out:write(string.format("address=/%s/\n", k)) + for _, domain in ipairs(domains) do + out:write(string.format("address=/%s/\n", domain)) end out:close() os.remove("/tmp/ssr-update.tmp") @@ -155,7 +156,7 @@ local function update(url, file, type, file2) if args then log(0, tonumber(icount) / Num) else - log("更新成功! 新的总纪录数:" .. tostring(tonumber(icount) / Num)) + log("更新成功! 新的总记录数:" .. tostring(tonumber(icount) / Num)) end end else From cf1aeaca748668c85584e7cb3962d75f36a74943 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 9 Nov 2024 13:29:27 +0800 Subject: [PATCH 641/972] luci-app-ssr-plus: Update translate --- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index da30ffca554..18f19a7ebc0 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -432,7 +432,7 @@ msgid "No new data!" msgstr "你已经是最新数据,无需更新!" msgid "Total Records:" -msgstr "新的总纪录数:" +msgstr "新的总记录数:" msgid "Check Server Port" msgstr "【服务器端口】检查" From dbb63e64970ce6883ca9d0b69ba5df6c40b7b5b4 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 9 Nov 2024 17:12:27 +0800 Subject: [PATCH 642/972] luci-app-ssr-plus: Add update time choose. Signed-off-by: Zxl hhyccc --- .../luasrc/model/cbi/shadowsocksr/servers.lua | 24 ++++++++++++++- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 30 +++++++++++++++++++ .../root/etc/init.d/shadowsocksr | 8 ++--- .../share/shadowsocksr/shadowsocksr.config | 4 ++- 4 files changed, 60 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index b2cb81bddee..d1850cca712 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -19,12 +19,34 @@ o = s:option(Flag, "auto_update", translate("Auto Update")) o.rmempty = false o.description = translate("Auto Update Server subscription, GFW list and CHN route") -o = s:option(ListValue, "auto_update_time", translate("Update time (every day)")) +o = s:option(ListValue, "auto_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 = "*" +o.rmempty = false +o:depends("auto_update", "1") + +o = s:option(ListValue, "auto_update_day_time", translate("Update time (every day)")) for t = 0, 23 do o:value(t, t .. ":00") end o.default = 2 o.rmempty = false +o:depends("auto_update", "1") + +o = s:option(ListValue, "auto_update_min_time", translate("Update Interval (min)")) +for i = 0, 59 do + o:value(i, i .. ":00") +end +o.default = 30 +o.rmempty = false +o:depends("auto_update", "1") o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 18f19a7ebc0..db336897d0e 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -596,6 +596,36 @@ msgstr "格式为 IP:PORT(默认:禁用)" msgid "Update time (every day)" msgstr "更新时间(每天)" +msgid "Update Time (Every Week)" +msgstr "更新时间(每周)" + +msgid "Update Interval (min)" +msgstr "更新间隔 (分钟)" + +msgid "Every Day" +msgstr "每天" + +msgid "Every Monday" +msgstr "每周一" + +msgid "Every Tuesday" +msgstr "每周二" + +msgid "Every Wednesday" +msgstr "每周三" + +msgid "Every Thursday" +msgstr "每周四" + +msgid "Every Friday" +msgstr "每周五" + +msgid "Every Saturday" +msgstr "每周六" + +msgid "Every Sunday" +msgstr "每周日" + msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4029a074380..b212b902ef0 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -61,12 +61,12 @@ PS="/bin/busybox ps" uci_get_by_name() { local ret=$(uci get $NAME.$1.$2 2>/dev/null) - echo ${ret:=$3} + echo "${ret:=$3}" } uci_get_by_type() { local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo ${ret:=$3} + echo "${ret:=$3}" } uci_set_by_name() { @@ -81,7 +81,7 @@ uci_set_by_type() { uci_get_by_cfgid() { local ret=$(uci show $NAME.@$1[0].$2 | awk -F '.' '{print $2}' 2>/dev/null) - echo ${ret:=$3} + echo "${ret:=$3}" } get_host_ip() { @@ -120,7 +120,7 @@ echolog() { add_cron() { touch $CRON_FILE sed -i '/ssrplus.log/d' $CRON_FILE - [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "0 $(uci_get_by_type server_subscribe auto_update_time) * * * /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE + [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "$(uci_get_by_type server_subscribe auto_update_min_time) $(uci_get_by_type server_subscribe auto_update_day_time) * * $(uci_get_by_type server_subscribe auto_update_week_time) /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE crontab $CRON_FILE } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config index 6d9f2874986..9a9276098da 100644 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config @@ -22,8 +22,10 @@ config global config server_subscribe option proxy '0' - option auto_update_time '2' option auto_update '1' + option auto_update_week_time '*' + option auto_update_day_time '2' + option auto_update_min_time '0' option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国' config access_control From 5e2d859bc45394d62296a1035ec392a3a6b150ac Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 10 Nov 2024 00:34:13 +0800 Subject: [PATCH 643/972] luci-app-ssr-plus: update.lua: fix typo erro. Fixed: https://github.com/fw876/helloworld/commit/96fff440034ecd4691c5e5437a1f76227c5f97ab --- luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 5eadb3e64b1..d9fa08060b5 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -9,7 +9,7 @@ require "luci.model.uci" local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() -local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq*/dnsmasq-ssrplus.d -type d -print -quit 2>/dev/null") +local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq.*/dnsmasq-ssrplus.d -type d -print 2>/dev/null"):gsub("%s+", "") local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" From 620f31600bd17d8452b063d3c5fe3867e0057fbd Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Tue, 12 Nov 2024 23:27:51 +0800 Subject: [PATCH 644/972] luci-app-ssr-plus: fix auto-update setting --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index d1850cca712..300923ac48a 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -16,7 +16,6 @@ s = m:section(TypedSection, "server_subscribe") s.anonymous = true o = s:option(Flag, "auto_update", translate("Auto Update")) -o.rmempty = false o.description = translate("Auto Update Server subscription, GFW list and CHN route") o = s:option(ListValue, "auto_update_week_time", translate("Update Time (Every Week)")) From 4c764e8a919c1ee6243d909a7923420bdc98a0bb Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Fri, 15 Nov 2024 23:56:48 +0800 Subject: [PATCH 645/972] hysteria: update to 2.6.0 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index f9fead273c3..6b17a51ff0c 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.5.2 +PKG_VERSION:=2.6.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=56acc2c3a795b9f9074d6ed3cf725d3fc491ebd45a10203d6afef927d7fe3c78 +PKG_HASH:=c9d878ea81c78e71fcb07d47e3366cb4ae2ef5bce62f0ad81e58923db4995366 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From badc244005e68eb0b462addd42dc4db0c86063d3 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 15 Nov 2024 23:58:01 +0800 Subject: [PATCH 646/972] Revert "luci-app-ssr-plus: fix auto-update setting" This reverts commit 620f31600bd17d8452b063d3c5fe3867e0057fbd. --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 300923ac48a..d1850cca712 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -16,6 +16,7 @@ s = m:section(TypedSection, "server_subscribe") s.anonymous = true o = s:option(Flag, "auto_update", translate("Auto Update")) +o.rmempty = false o.description = translate("Auto Update Server subscription, GFW list and CHN route") o = s:option(ListValue, "auto_update_week_time", translate("Update Time (Every Week)")) From d021fc8eba26440886551d1a346712785dfc85cd Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Fri, 15 Nov 2024 23:58:23 +0800 Subject: [PATCH 647/972] Revert "luci-app-ssr-plus: Add update time choose." This reverts commit dbb63e64970ce6883ca9d0b69ba5df6c40b7b5b4. --- .../luasrc/model/cbi/shadowsocksr/servers.lua | 24 +-------------- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 30 ------------------- .../root/etc/init.d/shadowsocksr | 8 ++--- .../share/shadowsocksr/shadowsocksr.config | 4 +-- 4 files changed, 6 insertions(+), 60 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index d1850cca712..b2cb81bddee 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -19,34 +19,12 @@ o = s:option(Flag, "auto_update", translate("Auto Update")) o.rmempty = false o.description = translate("Auto Update Server subscription, GFW list and CHN route") -o = s:option(ListValue, "auto_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 = "*" -o.rmempty = false -o:depends("auto_update", "1") - -o = s:option(ListValue, "auto_update_day_time", translate("Update time (every day)")) +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 = 2 o.rmempty = false -o:depends("auto_update", "1") - -o = s:option(ListValue, "auto_update_min_time", translate("Update Interval (min)")) -for i = 0, 59 do - o:value(i, i .. ":00") -end -o.default = 30 -o.rmempty = false -o:depends("auto_update", "1") o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index db336897d0e..18f19a7ebc0 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -596,36 +596,6 @@ msgstr "格式为 IP:PORT(默认:禁用)" msgid "Update time (every day)" msgstr "更新时间(每天)" -msgid "Update Time (Every Week)" -msgstr "更新时间(每周)" - -msgid "Update Interval (min)" -msgstr "更新间隔 (分钟)" - -msgid "Every Day" -msgstr "每天" - -msgid "Every Monday" -msgstr "每周一" - -msgid "Every Tuesday" -msgstr "每周二" - -msgid "Every Wednesday" -msgstr "每周三" - -msgid "Every Thursday" -msgstr "每周四" - -msgid "Every Friday" -msgstr "每周五" - -msgid "Every Saturday" -msgstr "每周六" - -msgid "Every Sunday" -msgstr "每周日" - msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b212b902ef0..4029a074380 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -61,12 +61,12 @@ PS="/bin/busybox ps" uci_get_by_name() { local ret=$(uci get $NAME.$1.$2 2>/dev/null) - echo "${ret:=$3}" + echo ${ret:=$3} } uci_get_by_type() { local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo "${ret:=$3}" + echo ${ret:=$3} } uci_set_by_name() { @@ -81,7 +81,7 @@ uci_set_by_type() { uci_get_by_cfgid() { local ret=$(uci show $NAME.@$1[0].$2 | awk -F '.' '{print $2}' 2>/dev/null) - echo "${ret:=$3}" + echo ${ret:=$3} } get_host_ip() { @@ -120,7 +120,7 @@ echolog() { add_cron() { touch $CRON_FILE sed -i '/ssrplus.log/d' $CRON_FILE - [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "$(uci_get_by_type server_subscribe auto_update_min_time) $(uci_get_by_type server_subscribe auto_update_day_time) * * $(uci_get_by_type server_subscribe auto_update_week_time) /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE + [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "0 $(uci_get_by_type server_subscribe auto_update_time) * * * /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE crontab $CRON_FILE } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config index 9a9276098da..6d9f2874986 100644 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config @@ -22,10 +22,8 @@ config global config server_subscribe option proxy '0' + option auto_update_time '2' option auto_update '1' - option auto_update_week_time '*' - option auto_update_day_time '2' - option auto_update_min_time '0' option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国' config access_control From 7749908d9d5d3cd3c89692f60db5875225381b2e Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 16 Nov 2024 09:28:54 +0800 Subject: [PATCH 648/972] shadowsocks-libev: Add new package. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 兼容mbedtls2.28版本和mbedtls3.6.x版本。 Signed-off-by: Zxl hhyccc --- shadowsocks-libev/Makefile | 132 +++++ shadowsocks-libev/README.md | 185 ++++++ .../files/shadowsocks-libev.config | 60 ++ .../files/shadowsocks-libev.init | 320 +++++++++++ shadowsocks-libev/files/ss-rules/chain.uc | 122 ++++ shadowsocks-libev/files/ss-rules/set.uc | 114 ++++ shadowsocks-libev/files/ss-rules/ss-rules.uc | 8 + .../patches/100-Upgrade-PCRE-to-PCRE2.patch | 544 ++++++++++++++++++ .../patches/101-fix-mbedtls3.6-build.patch | 198 +++++++ 9 files changed, 1683 insertions(+) create mode 100644 shadowsocks-libev/Makefile create mode 100644 shadowsocks-libev/README.md create mode 100644 shadowsocks-libev/files/shadowsocks-libev.config create mode 100644 shadowsocks-libev/files/shadowsocks-libev.init create mode 100644 shadowsocks-libev/files/ss-rules/chain.uc create mode 100644 shadowsocks-libev/files/ss-rules/set.uc create mode 100644 shadowsocks-libev/files/ss-rules/ss-rules.uc create mode 100644 shadowsocks-libev/patches/100-Upgrade-PCRE-to-PCRE2.patch create mode 100644 shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile new file mode 100644 index 00000000000..631a9976c05 --- /dev/null +++ b/shadowsocks-libev/Makefile @@ -0,0 +1,132 @@ +# +# Copyright (C) 2017-2020 Yousong Zhou +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +# Checklist when bumping versions +# +# - update cipher list by checking src/crypto.c:crypto_init() +# - check if default mode has changed from being tcp_only +# +PKG_NAME:=shadowsocks-libev +PKG_VERSION:=3.3.5 +PKG_RELEASE:=12 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git +PKG_SOURCE_VERSION:=d83ace0f0d9c05656c13d66aa4a449bf70143254 +PKG_MIRROR_HASH:=cfc8eded35360f4b67e18dc447b0c00cddb29cc57a3cec48b135e5fb87433488 + +PKG_MAINTAINER:=Yousong Zhou + +PKG_LICENSE:=GPL-3.0-or-later +PKG_LICENSE_FILES:=LICENSE +PKG_CPE_ID:=cpe:/a:shadowsocks:shadowsocks-libev + +PKG_FIXUP:=autoreconf +PKG_INSTALL:=1 +PKG_BUILD_FLAGS:=no-mips16 lto +PKG_BUILD_PARALLEL:=1 +PKG_BUILD_DEPENDS:=c-ares pcre2 + +include $(INCLUDE_DIR)/package.mk + + +define Package/shadowsocks-libev-config + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=shadowsocks-libev config scripts + URL:=https://github.com/shadowsocks/shadowsocks-libev +endef + +define Package/shadowsocks-libev-config/conffiles +/etc/config/shadowsocks-libev +endef + +define Package/shadowsocks-libev-config/install + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/shadowsocks-libev.config $(1)/etc/config/shadowsocks-libev + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/shadowsocks-libev.init $(1)/etc/init.d/shadowsocks-libev +endef + + +define Package/shadowsocks-libev/Default + define Package/shadowsocks-libev-$(1) + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=shadowsocks-libev $(1) + URL:=https://github.com/shadowsocks/shadowsocks-libev + DEPENDS:=+libev +libmbedtls +libpthread +libsodium +shadowsocks-libev-config $(DEPENDS_$(1)) + endef + + define Package/shadowsocks-libev-$(1)/install + $$(INSTALL_DIR) $$(1)/usr/bin + $$(INSTALL_BIN) $$(PKG_INSTALL_DIR)/usr/bin/$(1) $$(1)/usr/bin + endef + +endef + +DEPENDS_ss-local = +libpcre2 +DEPENDS_ss-server = +libcares +libpcre2 + +SHADOWSOCKS_COMPONENTS:=ss-local ss-redir ss-tunnel ss-server +define shadowsocks-libev/templates + $(foreach component,$(SHADOWSOCKS_COMPONENTS), + $(call Package/shadowsocks-libev/Default,$(component)) + ) +endef +$(eval $(call shadowsocks-libev/templates)) + + +define Package/shadowsocks-libev-ss-rules + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=shadowsocks-libev ss-rules + URL:=https://github.com/shadowsocks/shadowsocks-libev + DEPENDS:=+firewall4 \ + +ip \ + +resolveip \ + +ucode \ + +ucode-mod-fs \ + +shadowsocks-libev-ss-redir \ + +shadowsocks-libev-config \ + +kmod-nft-tproxy +endef + +define Package/shadowsocks-libev-ss-rules/install + $(INSTALL_DIR) $(1)/usr/share/ss-rules + $(INSTALL_DATA) ./files/ss-rules/* $(1)/usr/share/ss-rules/ +endef + +define Build/Prepare + $(call Build/Prepare/Default) + $(FIND) $(PKG_BUILD_DIR) \ + -name '*.o' \ + -o -name '*.lo' \ + -o -name '.deps' \ + -o -name '.libs' \ + | $(XARGS) rm -rvf +endef + +CONFIGURE_ARGS += \ + --disable-documentation \ + --disable-silent-rules \ + --disable-assert \ + --disable-ssp \ + +TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed + +$(eval $(call BuildPackage,shadowsocks-libev-config)) +$(eval $(call BuildPackage,shadowsocks-libev-ss-rules)) +$(foreach component,$(SHADOWSOCKS_COMPONENTS), \ + $(eval $(call BuildPackage,shadowsocks-libev-$(component))) \ +) diff --git a/shadowsocks-libev/README.md b/shadowsocks-libev/README.md new file mode 100644 index 00000000000..c4a88254013 --- /dev/null +++ b/shadowsocks-libev/README.md @@ -0,0 +1,185 @@ +Skip to [recipes](#recipes) for quick setup instructions + +# components + +`ss-local` provides SOCKS5 proxy with UDP associate support. + + socks5 ss plain + --------> tcp:local_address:local_port ----> ss server -------> dest + +`ss-redir`. The REDIRECT and TPROXY part are to be provided by `ss-rules` script. REDIRECT is for tcp traffic (`SO_ORIGINAL_DST` only supports TCP). TPROXY is for udp messages, but it's only available in the PREROUTING chain and as such cannot proxy local out traffic. + + plain plain ss plain + ---------> REDIRECT ------> tcp:local_address:local_port ----> ss server -----> original dest + + plain plain ss plain + ---------> TPROXY -------> udp:local_address:local_port -----> ss server -----> original dest + +`ss-tunnel` provides ssh `-L` local-forwarding-like tunnel. Typically it's used to tunnel DNS traffic to the remote. + + plain ss plain + ---------> tcp|udp:local_address:local_port ------> ss server -------> tunnel_address + +`ss-server`, the "ss server" in the above diagram + +# uci + +Option names are the same as those used in json config files. Check `validate_xxx` func definition of the [service script](files/shadowsocks-libev.init) and shadowsocks-libev's own documentation for supported options and expected value types. A [sample config file](files/shadowsocks-libev.config) is also provided for reference. + +Every section have a `disabled` option to temporarily turn off the component instance or component instances referring to it. + +Section type `server` is for definition of remote shadowsocks servers. They will be referred to from other component sections and as such should be named (as compared to anonymous section). + +Section type `ss_local`, `ss_redir`, `ss_tunnel` are for specification of shadowsocks-libev components. They share mostly a common set of options like `local_port`, `verbose`, `fast_open`, `timeout`, etc. + +Plugin options should be specified in `server` section and will be inherited by other compoenents referring to it. + +We can have multiple instances of component and `server` sections. The relationship between them is many-to-one. This will have the following implications + + - It's possible to have both `ss_local` and `ss_redir` referring to the same `server` definition + - It's possible to have multiple instances of `ss_redir` listening on the same address:port with `reuse_port` enabled referring to the same or different `server` sections + +`ss_rules` section is for configuring the behaviour of `ss-rules` script. There can only exist at most one such section with the name also being `ss_rules` + + redir_tcp name of ss_redir section with mode tcp_only or tcp_and_udp + redir_udp name of ss_redir section with mode udp_only or tcp_and_udp + ifnames only apply rules on packets from these ifnames + + --- for incoming packets having source address in + + src_ips_bypass will bypass the redir chain + src_ips_forward will always go through the redir chain + src_ips_checkdst will continue to have their destination addresses checked + + --- otherwise, the default action can be specified with + + src_default bypass, forward, [checkdst] + + --- if the previous check result is checkdst, + --- then packets having destination address in + + dst_ips_bypass_file + dst_ips_bypass will bypass the redir chain + dst_ips_forward_file + dst_ips_forward will go through the redir chain + + --- otherwise, the default action can be specified with + + dst_default [bypass], forward + + --- for local out tcp packets, the default action can be specified with + + local_default [bypass], forward, checkdst + +ss-rules now uses nft set for storing addresses/networks. Those set names are also part of the API and can be populated by other programs, e.g. dnsmasq with builtin nft set support. Note that while nftables set supports storing cidr networks when `interval` flag is on, it rejects elements with overlaping intervals. + +Extra nftables expressions can be specified with `nft_tcp_extra` and `nft_udp_extra` to apply ss_rules only to selected tcp/udp traffics. E.g. `tcp dport { 80, 443 }`, `udp dport 53`, etc. + +# incompatible changes + +| Commit date | Commit ID | Subject | Comment | +| ----------- | --------- | ------- | ------- | +| 2022-03-01 | fdaf2de2a | shadowsocks-libev: ss-rules: convert to using nft | ss-rules now uses nftables. UCI option ipt_args and dst_forward_recentrst are now deprecated and removed | +| 2020-08-03 | 7d7cbae75 | shadowsocks-libev: support ss-server option local_address_{v4,v6} | ss_server bind_address now deprecated, use local_address | +| 2019-05-09 | afe7d3424 | shadowsocks-libev: move plugin options to server section | This is a revision against c19e949 committed 2019-05-06 | +| 2017-07-02 | b61af9703 | shadowsocks-libev: rewrite | Packaging of shadowsocks-libev was rewritten from scratch | + +# notes and faq + +Useful paths and commands for debugging + + # check current running status + ubus call service list '{"name": "shadowsocks-libev"}' + ubus call service list '{"name": "shadowsocks-libev", "verbose": true}' + + # dump validate definition + ubus call service validate '{"package": "shadowsocks-libev"}' + ubus call service validate '{"package": "shadowsocks-libev"}' \ + | jsonfilter -e '$["shadowsocks-libev"]["ss_tunnel"]' + + # check json config + ls -l /var/etc/shadowsocks-libev/ + + # set uci config option verbose to 1, restart the service and follow the log + logread -f + +ss-redir needs to open a new socket and setsockopt IP_TRANSPARENT when sending udp reply to client. This requires `CAP_NET_ADMIN` and as such the process cannot run as `nobody` + +ss-local, ss-redir, etc. supports specifying an array of remote ss server, but supporting this in uci seems to be overkill. The workaround can be defining multiple `server` sections and multiple `ss-redir` instances with `reuse_port` enabled + +# recipes + +## forward all + +This will setup firewall rules to forward almost all incoming tcp/udp and locally generated tcp traffic (excluding those to private addresses like 192.168.0.0/16 etc.) through remote shadowsocks server + +Install components. +Retry each command till it succeed + + opkg install shadowsocks-libev-ss-redir + opkg install shadowsocks-libev-ss-rules + opkg install shadowsocks-libev-ss-tunnel + +Edit uci config `/etc/config/shadowsocks-libev`. +Replace `config server 'sss0'` section with parameters of your own remote shadowsocks server. +As for other options, change them only when you know the effect. + + config server 'sss0' + option disabled 0 + option server '_sss_addr_' + option server_port '_sss_port_' + option password '********' + option method 'aes-256-cfb' + + config ss_tunnel + option disabled 0 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '8053' + option tunnel_address '8.8.8.8:53' + option mode 'tcp_and_udp' + + config ss_redir ssr0 + option disabled 0 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '1100' + option mode 'tcp_and_udp' + option reuse_port 1 + + config ss_rules 'ss_rules' + option disabled 0 + option redir_tcp 'ssr0' + option redir_udp 'ssr0' + option src_default 'checkdst' + option dst_default 'forward' + option local_default 'forward' + +Restart shadowsocks-libev components + + /etc/init.d/shadowsocks-libev restart + +Check if things are in place + + nft list ruleset | sed -r -n '/^\t[a-z]+ ss_rules[^ ]+ \{/,/^\t\}/p' + netstat -lntp | grep -E '8053|1100' + ps ww | grep ss- + +Edit `/etc/config/dhcp`, making sure options are present in the first dnsmasq section like the following to let it use local tunnel endpoint for upstream dns query. +Option `noresolv` instructs dnsmasq to not use other dns servers like advertised by local isp. +Option `localuse` intends to make sure the device you are configuring also uses this dnsmasq instance as the resolver, not the ones from other sources. + + config dnsmasq + ... + list server '127.0.0.1#8053' + option noresolv 1 + option localuse 1 + +Restart dnsmasq + + /etc/init.d/dnsmasq restart + +Check network on your computer + + nslookup www.google.com + curl -vv https://www.google.com diff --git a/shadowsocks-libev/files/shadowsocks-libev.config b/shadowsocks-libev/files/shadowsocks-libev.config new file mode 100644 index 00000000000..1d41127b6ad --- /dev/null +++ b/shadowsocks-libev/files/shadowsocks-libev.config @@ -0,0 +1,60 @@ +config ss_local + option disabled 1 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '1080' + option timeout '30' + +config ss_tunnel + option disabled 1 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '1090' + option tunnel_address 'example.com:80' + option mode 'tcp_and_udp' + option timeout '60' + +config ss_redir hi + option disabled 1 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '1100' + option mode 'tcp_and_udp' + option timeout '60' + option fast_open 1 + option verbose 1 + option reuse_port 1 + +config ss_redir hj + option disabled 1 + option server 'sss0' + option local_address '0.0.0.0' + option local_port '1100' + option mode 'tcp_and_udp' + option timeout '60' + option fast_open 1 + option verbose 1 + option reuse_port 1 + +config ss_rules 'ss_rules' + option disabled 1 + option redir_tcp 'hi' + option redir_udp 'hi' + option src_default 'checkdst' + option dst_default 'bypass' + option local_default 'checkdst' + list src_ips_forward '192.168.1.4' + list dst_ips_forward '8.8.8.8' + +config server 'sss0' + option disabled 1 + option server '192.168.1.3' + option server_port '9001' + option password '********' + option method 'aes-256-cfb' + +config ss_server + option disabled 1 + option server_port '9001' + option password '********' + option method 'aes-256-cfb' diff --git a/shadowsocks-libev/files/shadowsocks-libev.init b/shadowsocks-libev/files/shadowsocks-libev.init new file mode 100644 index 00000000000..5330b873531 --- /dev/null +++ b/shadowsocks-libev/files/shadowsocks-libev.init @@ -0,0 +1,320 @@ +#!/bin/sh /etc/rc.common +# +# Copyright (C) 2017-2019 Yousong Zhou +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +USE_PROCD=1 +START=99 + +ss_confdir=/var/etc/shadowsocks-libev +ss_bindir=/usr/bin + +ssrules_uc="/usr/share/ss-rules/ss-rules.uc" +ssrules_nft="/etc/nftables.d/90-ss-rules.nft" + +ss_mkjson_server_conf() { + local cfgserver + + config_get cfgserver "$cfg" server + [ -n "$cfgserver" ] || return 1 + eval "$(validate_server_section "$cfg" ss_validate_mklocal)" + validate_server_section "$cfgserver" || return 1 + [ "$disabled" = 0 ] || return 1 + ss_mkjson_server_conf_ "$cfgserver" +} + +ss_mkjson_server_conf_() { + [ -n "$server_port" ] || return 1 + [ -z "$server" ] || json_add_string server "$server" + json_add_int server_port "$server_port" + [ -z "$method" ] || json_add_string method "$method" + [ -z "$key" ] || json_add_string key "$key" + [ -z "$password" ] || json_add_string password "$password" + [ -z "$plugin" ] || json_add_string plugin "$plugin" + [ -z "$plugin_opts" ] || json_add_string plugin_opts "$plugin_opts" +} + +ss_mkjson_ss_local_conf() { + ss_mkjson_server_conf +} + +ss_mkjson_ss_redir_conf() { + ss_mkjson_server_conf +} + +ss_mkjson_ss_server_conf() { + ss_mkjson_server_conf_ +} + +ss_mkjson_ss_tunnel_conf() { + ss_mkjson_server_conf || return 1 + [ -n "$tunnel_address" ] || return 1 + json_add_string tunnel_address "$tunnel_address" +} + +ss_xxx() { + local cfg="$1" + local cfgtype="$2" + local bin="$ss_bindir/${cfgtype/_/-}" + local confjson="$ss_confdir/$cfgtype.$cfg.json" + + [ -x "$bin" ] || return + eval "$("validate_${cfgtype}_section" "$cfg" ss_validate_mklocal)" + "validate_${cfgtype}_section" "$cfg" || return + [ "$disabled" = 0 ] || return + + json_init + ss_mkjson_${cfgtype}_conf || return + json_add_boolean use_syslog 1 + json_add_boolean ipv6_first "$ipv6_first" + json_add_boolean fast_open "$fast_open" + json_add_boolean reuse_port "$reuse_port" + json_add_boolean no_delay "$no_delay" + [ -z "$local_address" ] || json_add_string local_address "$local_address" + [ -z "$local_port" ] || json_add_int local_port "$local_port" + [ -z "$local_ipv4_address" ] || json_add_string local_ipv4_address "$local_ipv4_address" + [ -z "$local_ipv6_address" ] || json_add_string local_ipv6_address "$local_ipv6_address" + [ -z "$mode" ] || json_add_string mode "$mode" + [ -z "$mtu" ] || json_add_int mtu "$mtu" + [ -z "$timeout" ] || json_add_int timeout "$timeout" + [ -z "$user" ] || json_add_string user "$user" + [ -z "$acl" ] || json_add_string acl "$acl" + json_dump -i >"$confjson" + + procd_open_instance "$cfgtype.$cfg" + procd_set_param command "$bin" -c "$confjson" + [ "$verbose" = 0 ] || procd_append_param command -v + if [ -n "$bind_address" ]; then + echo "$cfgtype $cfg: uci option bind_address deprecated, please switch to local_address" >&2 + procd_append_param command -b "$bind_address" + fi + procd_set_param file "$confjson" + procd_set_param respawn + procd_close_instance + ss_rules_cb +} + +ss_rules_cb() { + local cfgserver server + + if [ "$cfgtype" = ss_redir ]; then + config_get cfgserver "$cfg" server + config_get server "$cfgserver" server + ss_redir_servers="$ss_redir_servers $server" + if [ "$mode" = tcp_only -o "$mode" = "tcp_and_udp" ]; then + eval "ss_rules_redir_tcp_$cfg=$local_port" + fi + if [ "$mode" = udp_only -o "$mode" = "tcp_and_udp" ]; then + eval "ss_rules_redir_udp_$cfg=$local_port" + fi + fi +} + +ss_rules_nft_gen() { + local cfg="ss_rules" + local cfgtype + local local_port_tcp local_port_udp + local remote_servers + + [ -s "$ssrules_uc" ] || return 1 + + config_get cfgtype "$cfg" TYPE + [ "$cfgtype" = ss_rules ] || return 1 + + eval "$(validate_ss_rules_section "$cfg" ss_validate_mklocal)" + validate_ss_rules_section "$cfg" || return 1 + [ "$disabled" = 0 ] || return 2 + + eval local_port_tcp="\$ss_rules_redir_tcp_$redir_tcp" + eval local_port_udp="\$ss_rules_redir_udp_$redir_udp" + [ -n "$local_port_tcp" -o -n "$local_port_udp" ] || return 1 + remote_servers="$(echo $ss_redir_servers \ + | tr ' ' '\n' \ + | sort -u \ + | xargs -n 1 resolveip \ + | sort -u)" + + local tmp="/tmp/ssrules" + json_init + json_add_string o_remote_servers "$remote_servers" + json_add_int o_redir_tcp_port "$local_port_tcp" + json_add_int o_redir_udp_port "$local_port_udp" + json_add_string o_ifnames "$ifnames" + json_add_string o_local_default "$local_default" + json_add_string o_src_bypass "$src_ips_bypass" + json_add_string o_src_forward "$src_ips_forward" + json_add_string o_src_checkdst "$src_ips_checkdst" + json_add_string o_src_default "$src_default" + json_add_string o_dst_bypass "$dst_ips_bypass" + json_add_string o_dst_forward "$dst_ips_forward" + json_add_string o_dst_bypass_file "$dst_ips_bypass_file" + json_add_string o_dst_forward_file "$dst_ips_forward_file" + json_add_string o_dst_default "$dst_default" + json_add_string o_nft_tcp_extra "$nft_tcp_extra" + json_add_string o_nft_udp_extra "$nft_udp_extra" + json_dump -i >"$tmp.json" + + if utpl -S -F "$tmp.json" "$ssrules_uc" >"$tmp.nft" \ + && ! cmp -s "$tmp.nft" "$ssrules_nft"; then + echo "table inet chk {include \"$tmp.nft\";}" >"$tmp.nft.chk" + if nft -f "$tmp.nft.chk" -c; then + mv "$tmp.nft" "$ssrules_nft" + fw4 restart + fi + rm -f "$tmp.nft.chk" + fi + rm -f "$tmp.json" + rm -f "$tmp.nft" +} + +ss_rules_nft_reset() { + if [ -f "$ssrules_nft" ]; then + rm -f "$ssrules_nft" + fw4 restart + fi +} + +ss_rules() { + if ! ss_rules_nft_gen; then + ss_rules_nft_reset + fi +} + +start_service() { + local cfgtype + + mkdir -p "$ss_confdir" + config_load shadowsocks-libev + for cfgtype in ss_local ss_redir ss_server ss_tunnel; do + config_foreach ss_xxx "$cfgtype" "$cfgtype" + done + ss_rules +} + +stop_service() { + ss_rules_nft_reset + rm -rf "$ss_confdir" +} + +service_triggers() { + procd_add_reload_interface_trigger wan + procd_add_reload_trigger shadowsocks-libev + procd_open_validate + validate_server_section + validate_ss_local_section + validate_ss_redir_section + validate_ss_rules_section + validate_ss_server_section + validate_ss_tunnel_section + procd_close_validate +} + +ss_validate_mklocal() { + local tuple opts + + shift 2 + for tuple in "$@"; do + opts="${tuple%%:*} $opts" + done + [ -z "$opts" ] || echo "local $opts" +} + +ss_validate() { + uci_validate_section shadowsocks-libev "$@" +} + +validate_common_server_options_() { + local cfgtype="$1"; shift + local cfg="$1"; shift + local func="$1"; shift + local stream_methods='"table", "rc4", "rc4-md5", "aes-128-cfb", "aes-192-cfb", "aes-256-cfb", "aes-128-ctr", "aes-192-ctr", "aes-256-ctr", "bf-cfb", "camellia-128-cfb", "camellia-192-cfb", "camellia-256-cfb", "salsa20", "chacha20", "chacha20-ietf"' + local aead_methods='"aes-128-gcm", "aes-192-gcm", "aes-256-gcm", "chacha20-ietf-poly1305", "xchacha20-ietf-poly1305"' + + "${func:-ss_validate}" "$cfgtype" "$cfg" "$@" \ + 'disabled:bool:0' \ + 'server:host' \ + 'server_port:port' \ + 'password:string' \ + 'key:string' \ + "method:or($stream_methods, $aead_methods)" \ + 'plugin:string' \ + 'plugin_opts:string' +} + +validate_common_client_options_() { + validate_common_options_ "$@" \ + 'server:uci("shadowsocks-libev", "@server")' \ + 'local_address:ipaddr:0.0.0.0' \ + 'local_port:port' +} + +validate_common_options_() { + local cfgtype="$1"; shift + local cfg="$1"; shift + local func="$1"; shift + + "${func:-ss_validate}" "$cfgtype" "$cfg" "$@" \ + 'disabled:bool:0' \ + 'fast_open:bool:0' \ + 'ipv6_first:bool:0' \ + 'no_delay:bool:0' \ + 'reuse_port:bool:0' \ + 'verbose:bool:0' \ + 'mode:or("tcp_only", "udp_only", "tcp_and_udp"):tcp_only' \ + 'mtu:uinteger' \ + 'timeout:uinteger' \ + 'user:string' +} + +validate_server_section() { + validate_common_server_options_ server "$1" "$2" +} + +validate_ss_local_section() { + validate_common_client_options_ ss_local "$1" "$2" \ + 'acl:file' +} + +validate_ss_redir_section() { + validate_common_client_options_ ss_redir "$1" "$2" +} + +validate_ss_rules_section() { + "${2:-ss_validate}" ss_rules "$1" \ + 'disabled:bool:0' \ + 'redir_tcp:uci("shadowsocks-libev", "@ss_redir")' \ + 'redir_udp:uci("shadowsocks-libev", "@ss_redir")' \ + 'src_ips_bypass:or(ipaddr,cidr)' \ + 'src_ips_forward:or(ipaddr,cidr)' \ + 'src_ips_checkdst:or(ipaddr,cidr)' \ + 'dst_ips_bypass_file:file' \ + 'dst_ips_bypass:or(ipaddr,cidr)' \ + 'dst_ips_forward_file:file' \ + 'dst_ips_forward:or(ipaddr,cidr)' \ + 'src_default:or("bypass", "forward", "checkdst"):checkdst' \ + 'dst_default:or("bypass", "forward"):bypass' \ + 'local_default:or("bypass", "forward", "checkdst"):bypass' \ + 'nft_tcp_extra:string' \ + 'nft_udp_extra:string' \ + 'ifnames:maxlength(15)' +} + +validate_ss_server_section() { + validate_common_server_options_ ss_server "$1" \ + validate_common_options_ \ + "$2" \ + 'local_address:ipaddr' \ + 'local_ipv4_address:ip4addr' \ + 'local_ipv6_address:ip6addr' \ + 'bind_address:ipaddr' \ + 'acl:file' +} + +validate_ss_tunnel_section() { + validate_common_client_options_ ss_tunnel "$1" \ + "$2" \ + 'tunnel_address:regex(".+\:[0-9]+")' +} diff --git a/shadowsocks-libev/files/ss-rules/chain.uc b/shadowsocks-libev/files/ss-rules/chain.uc new file mode 100644 index 00000000000..3047f16632e --- /dev/null +++ b/shadowsocks-libev/files/ss-rules/chain.uc @@ -0,0 +1,122 @@ +{% +function get_local_verdict() { + let v = o_local_default; + if (v == "checkdst") { + return "goto ss_rules_dst_" + proto; + } else if (v == "forward") { + return "goto ss_rules_forward_" + proto; + } else { + return null; + } +} + +function get_src_default_verdict() { + let v = o_src_default; + if (v == "checkdst") { + return "goto ss_rules_dst_" + proto; + } else if (v == "forward") { + return "goto ss_rules_forward_" + proto; + } else { + return "accept"; + } +} + +function get_dst_default_verdict() { + let v = o_dst_default; + if (v == "forward") { + return "goto ss_rules_forward_" + proto; + } else { + return "accept"; + } +} + +function get_ifnames() { + let res = []; + for (let ifname in split(o_ifnames, /[ \t\n]/)) { + ifname = trim(ifname); + if (ifname) push(res, ifname); + } + return res; +} + +let type, hook, priority, redir_port; +if (proto == "tcp") { + type = "nat"; + hook = "prerouting"; + priority = -1; + redir_port = o_redir_tcp_port; +} else if (proto == "udp") { + type = "filter"; + hook = "prerouting"; + priority = "mangle"; + redir_port = o_redir_udp_port; + if (system(" + set -o errexit + iprr() { + while ip $1 rule del fwmark 1 lookup 100 2>/dev/null; do true; done + ip $1 rule add fwmark 1 lookup 100 + ip $1 route flush table 100 2>/dev/null || true + ip $1 route add local default dev lo table 100 + } + iprr -4 + iprr -6 + ") != 0) { + return ; + } +} else { + return; +} + +%} +{% if (redir_port): %} + +chain ss_rules_pre_{{ proto }} { + type {{ type }} hook {{ hook }} priority {{ priority }}; + meta l4proto {{ proto }}{%- let ifnames=get_ifnames(); if (length(ifnames)): %} iifname { {{join(", ", ifnames)}} }{% endif %} goto ss_rules_pre_src_{{ proto }}; +} + +chain ss_rules_pre_src_{{ proto }} { + ip daddr @ss_rules_dst_bypass_ accept; + ip6 daddr @ss_rules6_dst_bypass_ accept; + goto ss_rules_src_{{ proto }}; +} + +chain ss_rules_src_{{ proto }} { + ip saddr @ss_rules_src_bypass accept; + ip saddr @ss_rules_src_forward goto ss_rules_forward_{{ proto }}; + ip saddr @ss_rules_src_checkdst goto ss_rules_dst_{{ proto }}; + ip6 saddr @ss_rules6_src_bypass accept; + ip6 saddr @ss_rules6_src_forward goto ss_rules_forward_{{ proto }}; + ip6 saddr @ss_rules6_src_checkdst goto ss_rules_dst_{{ proto }}; + {{ get_src_default_verdict() }}; +} + +chain ss_rules_dst_{{ proto }} { + ip daddr @ss_rules_dst_bypass accept; + ip daddr @ss_rules_dst_forward goto ss_rules_forward_{{ proto }}; + ip6 daddr @ss_rules6_dst_bypass accept; + ip6 daddr @ss_rules6_dst_forward goto ss_rules_forward_{{ proto }}; + {{ get_dst_default_verdict() }}; +} + +{% if (proto == "tcp"): %} +chain ss_rules_forward_{{ proto }} { + meta l4proto tcp {{ o_nft_tcp_extra }} redirect to :{{ redir_port }}; +} +{% let local_verdict = get_local_verdict(); if (local_verdict): %} +chain ss_rules_local_out { + type {{ type }} hook output priority -1; + meta l4proto != tcp accept; + ip daddr @ss_rules_dst_bypass_ accept; + ip daddr @ss_rules_dst_bypass accept; + ip6 daddr @ss_rules6_dst_bypass_ accept; + ip6 daddr @ss_rules6_dst_bypass accept; + {{ local_verdict }}; +} +{% endif %} +{% elif (proto == "udp"): %} +chain ss_rules_forward_{{ proto }} { + meta l4proto udp {{ o_nft_udp_extra }} meta mark set 1 tproxy to :{{ redir_port }}; +} +{% endif %} +{% endif %} diff --git a/shadowsocks-libev/files/ss-rules/set.uc b/shadowsocks-libev/files/ss-rules/set.uc new file mode 100644 index 00000000000..0decec5f1b7 --- /dev/null +++ b/shadowsocks-libev/files/ss-rules/set.uc @@ -0,0 +1,114 @@ +{% +let fs = require("fs"); + +let o_dst_bypass4_ = " + 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.0.0.0/24 + 192.0.2.0/24 + 192.31.196.0/24 + 192.52.193.0/24 + 192.88.99.0/24 + 192.168.0.0/16 + 192.175.48.0/24 + 198.18.0.0/15 + 198.51.100.0/24 + 203.0.113.0/24 + 224.0.0.0/4 + 240.0.0.0/4 +"; +let o_dst_bypass6_ = " + ::1/128 + ::/128 + ::ffff:0:0/96 + 64:ff9b:1::/48 + 100::/64 + fe80::/10 + 2001::/23 + fc00::/7 +"; +let o_dst_bypass_ = o_dst_bypass4_ + " " + o_dst_bypass6_; + +let set_suffix = { + "src_bypass": { + str: o_src_bypass, + }, + "src_forward": { + str: o_src_forward, + }, + "src_checkdst": { + str: o_src_checkdst, + }, + "dst_bypass": { + str: o_dst_bypass + " " + o_remote_servers, + file: o_dst_bypass_file, + }, + "dst_bypass_": { + str: o_dst_bypass_, + }, + "dst_forward": { + str: o_dst_forward, + file: o_dst_forward_file, + }, + "dst_forward_rrst_": {}, +}; + +function set_name(suf, af) { + if (af == 4) { + return "ss_rules_"+suf; + } else { + return "ss_rules6_"+suf; + } +} + +function set_elements_parse(res, str, af) { + for (let addr in split(str, /[ \t\n]/)) { + addr = trim(addr); + if (!addr) continue; + if (af == 4 && index(addr, ":") != -1) continue; + if (af == 6 && index(addr, ":") == -1) continue; + push(res, addr); + } +} + +function set_elements(suf, af) { + let obj = set_suffix[suf]; + let res = []; + let addr; + + let str = obj["str"]; + if (str) { + set_elements_parse(res, str, af); + } + + let file = obj["file"]; + if (file) { + let fd = fs.open(file); + if (fd) { + str = fd.read("all"); + set_elements_parse(res, str, af); + } + } + + return res; +} +%} + +{% for (let suf in set_suffix): for (let af in [4, 6]): %} +set {{ set_name(suf, af) }} { + type ipv{{af}}_addr; + flags interval; + auto-merge; +{% let elems = set_elements(suf, af); if (length(elems)): %} + elements = { +{% for (let i = 0; i < length(elems); i++): %} + {{ elems[i] }}{% if (i < length(elems) - 1): %},{% endif %}{% print("\n") %} +{% endfor %} + } +{% endif %} +} +{% endfor; endfor %} diff --git a/shadowsocks-libev/files/ss-rules/ss-rules.uc b/shadowsocks-libev/files/ss-rules/ss-rules.uc new file mode 100644 index 00000000000..f3955b2ef69 --- /dev/null +++ b/shadowsocks-libev/files/ss-rules/ss-rules.uc @@ -0,0 +1,8 @@ +{% + +include("set.uc"); +include("chain.uc", {proto: "tcp"}); +include("chain.uc", {proto: "udp"}); + +%} + diff --git a/shadowsocks-libev/patches/100-Upgrade-PCRE-to-PCRE2.patch b/shadowsocks-libev/patches/100-Upgrade-PCRE-to-PCRE2.patch new file mode 100644 index 00000000000..91b2e5b9d2a --- /dev/null +++ b/shadowsocks-libev/patches/100-Upgrade-PCRE-to-PCRE2.patch @@ -0,0 +1,544 @@ +From d4f4d9761cbd41c3ab6de79383ff39b9f97bf452 Mon Sep 17 00:00:00 2001 +From: Syrone Wong +Date: Sat, 18 Nov 2017 20:06:50 +0800 +Subject: [PATCH] Upgrade PCRE to PCRE2 + +- Use 8bit variant by default + +This comes from a PR closed and never reopen as at times PCRE2 was too +new(???.) + +Ref: https://github.com/shadowsocks/shadowsocks-libev/pull/1792 +Signed-off-by: Syrone Wong +[ squash the first 2 patch from PR, drop the last one ] +Signed-off-by: Christian Marangi +--- + .travis.yml | 9 ++- + configure.ac | 8 +-- + m4/pcre.m4 | 152 ------------------------------------------ + m4/pcre2.m4 | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++ + src/rule.c | 53 ++++++++++++--- + src/rule.h | 23 +++++-- + 6 files changed, 253 insertions(+), 173 deletions(-) + delete mode 100644 m4/pcre.m4 + create mode 100644 m4/pcre2.m4 + +# diff --git a/.travis.yml b/.travis.yml +# index ee3424c..e7da08c 100644 +# --- a/.travis.yml +# +++ b/.travis.yml +# @@ -11,11 +11,12 @@ env: +# global: +# - LIBSODIUM_VER=1.0.12 +# - MBEDTLS_VER=2.4.0 +# + - PCRE2_VER=10.30 +# before_install: +# - | +# if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then +# # All dependencies for macOS build. Some packages has been installed by travis so use reinstall. +# - brew reinstall autoconf automake xmlto c-ares libev mbedtls libsodium asciidoc >> /dev/null 2>&1; +# + brew reinstall autoconf automake xmlto pcre2 c-ares libev mbedtls libsodium asciidoc >> /dev/null 2>&1; +# else +# wget https://github.com/jedisct1/libsodium/releases/download/$LIBSODIUM_VER/libsodium-$LIBSODIUM_VER.tar.gz; +# tar xvf libsodium-$LIBSODIUM_VER.tar.gz; +# @@ -29,6 +30,12 @@ before_install: +# make SHARED=1; +# sudo make install; +# popd; +# + wget https://ftp.pcre.org/pub/pcre/pcre2-$PCRE2_VER.tar.gz; +# + tar xvf pcre2-$PCRE2_VER.tar.gz; +# + pushd pcre2-$PCRE2_VER; +# + ./configure --prefix=/usr --enable-pcre2-16 --enable-pcre2-32 && make; +# + sudo make install; +# + popd; +# # Load cached docker images +# if [[ -d $HOME/docker ]]; then +# ls $HOME/docker/*.tar.gz | xargs -I {file} sh -c "zcat {file} | docker load"; +--- a/configure.ac ++++ b/configure.ac +@@ -20,10 +20,10 @@ AC_DISABLE_STATIC + AC_DISABLE_SHARED + LT_INIT([dlopen]) + +-dnl Check for pcre library +-TS_CHECK_PCRE +-if test "x${enable_pcre}" != "xyes"; then +- AC_MSG_ERROR([Cannot find pcre library. Configure --with-pcre=DIR]) ++dnl Check for pcre2 library ++TS_CHECK_PCRE2 ++if test "x${enable_pcre2}" != "xyes"; then ++ AC_MSG_ERROR([Cannot find pcre2 library. Configure --with-pcre2=DIR]) + fi + + dnl Checks for using shared libraries from system +--- a/m4/pcre.m4 ++++ /dev/null +@@ -1,152 +0,0 @@ +-dnl -------------------------------------------------------- -*- autoconf -*- +-dnl Licensed to the Apache Software Foundation (ASF) under one or more +-dnl contributor license agreements. See the NOTICE file distributed with +-dnl this work for additional information regarding copyright ownership. +-dnl The ASF licenses this file to You under the Apache License, Version 2.0 +-dnl (the "License"); you may not use this file except in compliance with +-dnl the License. You may obtain a copy of the License at +-dnl +-dnl http://www.apache.org/licenses/LICENSE-2.0 +-dnl +-dnl Unless required by applicable law or agreed to in writing, software +-dnl distributed under the License is distributed on an "AS IS" BASIS, +-dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-dnl See the License for the specific language governing permissions and +-dnl limitations under the License. +- +-dnl +-dnl TS_ADDTO(variable, value) +-dnl +-dnl Add value to variable +-dnl +-AC_DEFUN([TS_ADDTO], [ +- if test "x$$1" = "x"; then +- test "x$verbose" = "xyes" && echo " setting $1 to \"$2\"" +- $1="$2" +- else +- ats_addto_bugger="$2" +- for i in $ats_addto_bugger; do +- ats_addto_duplicate="0" +- for j in $$1; do +- if test "x$i" = "x$j"; then +- ats_addto_duplicate="1" +- break +- fi +- done +- if test $ats_addto_duplicate = "0"; then +- test "x$verbose" = "xyes" && echo " adding \"$i\" to $1" +- $1="$$1 $i" +- fi +- done +- fi +-])dnl +- +-dnl +-dnl TS_ADDTO_RPATH(path) +-dnl +-dnl Adds path to variable with the '-rpath' directive. +-dnl +-AC_DEFUN([TS_ADDTO_RPATH], [ +- AC_MSG_NOTICE([adding $1 to RPATH]) +- TS_ADDTO(LIBTOOL_LINK_FLAGS, [-R$1]) +-])dnl +- +-dnl +-dnl pcre.m4: Trafficserver's pcre autoconf macros +-dnl +- +-dnl +-dnl TS_CHECK_PCRE: look for pcre libraries and headers +-dnl +-AC_DEFUN([TS_CHECK_PCRE], [ +-enable_pcre=no +-AC_ARG_WITH(pcre, [AC_HELP_STRING([--with-pcre=DIR],[use a specific pcre library])], +-[ +- if test "x$withval" != "xyes" && test "x$withval" != "x"; then +- pcre_base_dir="$withval" +- if test "$withval" != "no"; then +- enable_pcre=yes +- case "$withval" in +- *":"*) +- pcre_include="`echo $withval |sed -e 's/:.*$//'`" +- pcre_ldflags="`echo $withval |sed -e 's/^.*://'`" +- AC_MSG_CHECKING(checking for pcre includes in $pcre_include libs in $pcre_ldflags ) +- ;; +- *) +- pcre_include="$withval/include" +- pcre_ldflags="$withval/lib" +- AC_MSG_CHECKING(checking for pcre includes in $withval) +- ;; +- esac +- fi +- fi +-], +-[ +- AC_CHECK_PROG(PCRE_CONFIG, pcre-config, pcre-config) +- if test "x$PCRE_CONFIG" != "x"; then +- enable_pcre=yes +- pcre_base_dir="`$PCRE_CONFIG --prefix`" +- pcre_include="`$PCRE_CONFIG --cflags | sed -es/-I//`" +- pcre_ldflags="`$PCRE_CONFIG --libs | sed -es/-lpcre// -es/-L//`" +- fi +-]) +- +-if test "x$pcre_base_dir" = "x"; then +- AC_MSG_CHECKING([for pcre location]) +- AC_CACHE_VAL(ats_cv_pcre_dir,[ +- for dir in /usr/local /usr ; do +- if test -d $dir && ( test -f $dir/include/pcre.h || test -f $dir/include/pcre/pcre.h ); then +- ats_cv_pcre_dir=$dir +- break +- fi +- done +- ]) +- pcre_base_dir=$ats_cv_pcre_dir +- if test "x$pcre_base_dir" = "x"; then +- enable_pcre=no +- AC_MSG_RESULT([not found]) +- else +- enable_pcre=yes +- pcre_include="$pcre_base_dir/include" +- pcre_ldflags="$pcre_base_dir/lib" +- AC_MSG_RESULT([$pcre_base_dir]) +- fi +-else +- AC_MSG_CHECKING(for pcre headers in $pcre_include) +- if test -d $pcre_include && test -d $pcre_ldflags && ( test -f $pcre_include/pcre.h || test -f $pcre_include/pcre/pcre.h ); then +- AC_MSG_RESULT([ok]) +- else +- AC_MSG_RESULT([not found]) +- fi +-fi +- +-pcreh=0 +-pcre_pcreh=0 +-if test "$enable_pcre" != "no"; then +- saved_ldflags=$LDFLAGS +- saved_cppflags=$CFLAGS +- pcre_have_headers=0 +- pcre_have_libs=0 +- if test "$pcre_base_dir" != "/usr"; then +- TS_ADDTO(CFLAGS, [-I${pcre_include}]) +- TS_ADDTO(CFLAGS, [-DPCRE_STATIC]) +- TS_ADDTO(LDFLAGS, [-L${pcre_ldflags}]) +- TS_ADDTO_RPATH(${pcre_ldflags}) +- fi +- AC_SEARCH_LIBS([pcre_exec], [pcre], [pcre_have_libs=1]) +- if test "$pcre_have_libs" != "0"; then +- AC_CHECK_HEADERS(pcre.h, [pcre_have_headers=1]) +- AC_CHECK_HEADERS(pcre/pcre.h, [pcre_have_headers=1]) +- fi +- if test "$pcre_have_headers" != "0"; then +- AC_DEFINE(HAVE_LIBPCRE,1,[Compiling with pcre support]) +- AC_SUBST(LIBPCRE, [-lpcre]) +- else +- enable_pcre=no +- CFLAGS=$saved_cppflags +- LDFLAGS=$saved_ldflags +- fi +-fi +-AC_SUBST(pcreh) +-AC_SUBST(pcre_pcreh) +-]) +--- /dev/null ++++ b/m4/pcre2.m4 +@@ -0,0 +1,181 @@ ++dnl -------------------------------------------------------- -*- autoconf -*- ++dnl Licensed to the Apache Software Foundation (ASF) under one or more ++dnl contributor license agreements. See the NOTICE file distributed with ++dnl this work for additional information regarding copyright ownership. ++dnl The ASF licenses this file to You under the Apache License, Version 2.0 ++dnl (the "License"); you may not use this file except in compliance with ++dnl the License. You may obtain a copy of the License at ++dnl ++dnl http://www.apache.org/licenses/LICENSE-2.0 ++dnl ++dnl Unless required by applicable law or agreed to in writing, software ++dnl distributed under the License is distributed on an "AS IS" BASIS, ++dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ++dnl See the License for the specific language governing permissions and ++dnl limitations under the License. ++ ++dnl Modified by Syrone Wong to support pcre2 8bit variant only ++ ++dnl ++dnl TS_ADDTO(variable, value) ++dnl ++dnl Add value to variable ++dnl ++AC_DEFUN([TS_ADDTO], [ ++ if test "x$$1" = "x"; then ++ test "x$verbose" = "xyes" && echo " setting $1 to \"$2\"" ++ $1="$2" ++ else ++ ats_addto_bugger="$2" ++ for i in $ats_addto_bugger; do ++ ats_addto_duplicate="0" ++ for j in $$1; do ++ if test "x$i" = "x$j"; then ++ ats_addto_duplicate="1" ++ break ++ fi ++ done ++ if test $ats_addto_duplicate = "0"; then ++ test "x$verbose" = "xyes" && echo " adding \"$i\" to $1" ++ $1="$$1 $i" ++ fi ++ done ++ fi ++])dnl ++ ++dnl ++dnl TS_ADDTO_RPATH(path) ++dnl ++dnl Adds path to variable with the '-rpath' directive. ++dnl ++AC_DEFUN([TS_ADDTO_RPATH], [ ++ AC_MSG_NOTICE([adding $1 to RPATH]) ++ TS_ADDTO(LIBTOOL_LINK_FLAGS, [-R$1]) ++])dnl ++ ++dnl ++dnl pcre2.m4: Trafficserver's pcre2 autoconf macros ++dnl ++ ++dnl ++dnl TS_CHECK_PCRE2: look for pcre2 libraries and headers ++dnl ++AC_DEFUN([TS_CHECK_PCRE2], [ ++enable_pcre2=no ++AC_ARG_WITH(pcre2, [AC_HELP_STRING([--with-pcre2=DIR],[use a specific pcre2 library])], ++[ ++ if test "x$withval" != "xyes" && test "x$withval" != "x"; then ++ pcre2_base_dir="$withval" ++ if test "$withval" != "no"; then ++ enable_pcre2=yes ++ case "$withval" in ++ *":"*) ++ pcre2_include="`echo $withval |sed -e 's/:.*$//'`" ++ pcre2_ldflags="`echo $withval |sed -e 's/^.*://'`" ++ AC_MSG_CHECKING(checking for pcre2 includes in $pcre2_include libs in $pcre2_ldflags ) ++ ;; ++ *) ++ pcre2_include="$withval/include" ++ pcre2_ldflags="$withval/lib" ++ AC_MSG_CHECKING(checking for pcre2 includes in $withval) ++ ;; ++ esac ++ fi ++ fi ++], ++[ ++ AC_CHECK_PROG(PCRE2_CONFIG, pcre2-config, pcre2-config) ++ if test "x$PCRE2_CONFIG" != "x"; then ++ enable_pcre2=yes ++ pcre2_base_dir="`$PCRE2_CONFIG --prefix`" ++ pcre2_include="`$PCRE2_CONFIG --cflags | sed -es/-I//`" ++ pcre2_ldflags="`$PCRE2_CONFIG --libs8 | sed -es/-lpcre2-8// -es/-L//`" ++ fi ++]) ++ ++if test "x$pcre2_base_dir" = "x"; then ++ AC_MSG_CHECKING([for pcre2 location]) ++ AC_CACHE_VAL(ats_cv_pcre2_dir,[ ++ for dir in /usr/local /usr ; do ++ if test -d $dir && ( test -f $dir/include/pcre2.h || test -f $dir/include/pcre2/pcre2.h ); then ++ ats_cv_pcre2_dir=$dir ++ break ++ fi ++ done ++ ]) ++ pcre2_base_dir=$ats_cv_pcre2_dir ++ if test "x$pcre2_base_dir" = "x"; then ++ enable_pcre2=no ++ AC_MSG_RESULT([not found]) ++ else ++ enable_pcre2=yes ++ pcre2_include="$pcre2_base_dir/include" ++ pcre2_ldflags="$pcre2_base_dir/lib" ++ AC_MSG_RESULT([$pcre2_base_dir]) ++ fi ++else ++ AC_MSG_CHECKING(for pcre2 headers in $pcre2_include) ++ if test -d $pcre2_include && test -d $pcre2_ldflags && ( test -f $pcre2_include/pcre2.h || test -f $pcre2_include/pcre2/pcre2.h ); then ++ AC_MSG_RESULT([ok]) ++ else ++ AC_MSG_RESULT([not found]) ++ fi ++fi ++ ++pcre2h=0 ++pcre2_pcre2h=0 ++if test "$enable_pcre2" != "no"; then ++ saved_ldflags=$LDFLAGS ++ saved_cppflags=$CFLAGS ++ pcre2_have_headers=0 ++ pcre2_have_libs=0 ++ if test "$pcre2_base_dir" != "/usr"; then ++ TS_ADDTO(CFLAGS, [-I${pcre2_include}]) ++ TS_ADDTO(CFLAGS, [-DPCRE2_STATIC]) ++ TS_ADDTO(LDFLAGS, [-L${pcre2_ldflags}]) ++ TS_ADDTO_RPATH(${pcre2_ldflags}) ++ fi ++ AC_SEARCH_LIBS([pcre2_match_8], [pcre2-8], [pcre2_have_libs=1]) ++ if test "$pcre2_have_libs" != "0"; then ++ AC_MSG_CHECKING([pcre2.h]) ++ AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include ++ ]], ++ [[ ++ ]] ++ )], ++ [pcre2_have_headers=1 ++ AC_MSG_RESULT([ok])], ++ [AC_MSG_RESULT([not found])] ++ ) ++ ++ AC_MSG_CHECKING([pcre2/pcre2.h]) ++ AC_COMPILE_IFELSE( ++ [AC_LANG_PROGRAM( ++ [[ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++#include ++ ]], ++ [[ ++ ]] ++ )], ++ [pcre2_have_headers=1 ++ AC_MSG_RESULT([ok])], ++ [AC_MSG_RESULT([not found])] ++ ) ++ fi ++ if test "$pcre2_have_headers" != "0"; then ++ AC_DEFINE(HAVE_LIBPCRE2,1,[Compiling with pcre2 support]) ++ AC_SUBST(LIBPCRE2, [-lpcre2-8]) ++ else ++ enable_pcre2=no ++ CFLAGS=$saved_cppflags ++ LDFLAGS=$saved_ldflags ++ fi ++fi ++AC_SUBST(pcre2h) ++AC_SUBST(pcre2_pcre2h) ++]) +--- a/src/rule.c ++++ b/src/rule.c +@@ -1,6 +1,7 @@ + /* + * Copyright (c) 2011 and 2012, Dustin Lundquist + * Copyright (c) 2011 Manuel Kasper ++ * Copyright (c) 2017 Syrone Wong + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -74,18 +75,37 @@ add_rule(struct cork_dllist *rules, rule + cork_dllist_add(rules, &rule->entries); + } + ++/* ++ * XXX: As pattern and subject are char arguments, they can be straightforwardly ++ * cast to PCRE2_SPTR as we are working in 8-bit code units. ++ */ ++ + int + init_rule(rule_t *rule) + { + if (rule->pattern_re == NULL) { +- const char *reerr; +- int reerroffset; ++ int errornumber; ++ PCRE2_SIZE erroroffset; ++ rule->pattern_re = pcre2_compile( ++ (PCRE2_SPTR)rule->pattern, /* the pattern */ ++ PCRE2_ZERO_TERMINATED, /* indicates pattern is zero-terminated */ ++ 0, /* default options */ ++ &errornumber, /* for error number */ ++ &erroroffset, /* for error offset */ ++ NULL); /* use default compile context */ + +- rule->pattern_re = +- pcre_compile(rule->pattern, 0, &reerr, &reerroffset, NULL); + if (rule->pattern_re == NULL) { +- LOGE("Regex compilation of \"%s\" failed: %s, offset %d", +- rule->pattern, reerr, reerroffset); ++ PCRE2_UCHAR errbuffer[512]; ++ pcre2_get_error_message(errornumber, errbuffer, sizeof(errbuffer)); ++ LOGE("PCRE2 regex compilation failed at offset %d: %s\n", (int)erroroffset, ++ errbuffer); ++ return 0; ++ } ++ ++ rule->pattern_re_match_data = pcre2_match_data_create_from_pattern(rule->pattern_re, NULL); ++ ++ if (rule->pattern_re_match_data == NULL) { ++ ERROR("PCRE2: the memory for the block could not be obtained"); + return 0; + } + } +@@ -105,8 +125,15 @@ lookup_rule(const struct cork_dllist *ru + + cork_dllist_foreach_void(rules, curr, next) { + rule_t *rule = cork_container_of(curr, rule_t, entries); +- if (pcre_exec(rule->pattern_re, NULL, +- name, name_len, 0, 0, NULL, 0) >= 0) ++ if (pcre2_match( ++ rule->pattern_re, /* the compiled pattern */ ++ (PCRE2_SPTR)name, /* the subject string */ ++ name_len, /* the length of the subject */ ++ 0, /* start at offset 0 in the subject */ ++ 0, /* default options */ ++ rule->pattern_re_match_data, /* block for storing the result */ ++ NULL /* use default match context */ ++ ) >= 0) + return rule; + } + +@@ -127,7 +154,13 @@ free_rule(rule_t *rule) + return; + + ss_free(rule->pattern); +- if (rule->pattern_re != NULL) +- pcre_free(rule->pattern_re); ++ if (rule->pattern_re != NULL) { ++ pcre2_code_free(rule->pattern_re); /* data and the compiled pattern. */ ++ rule->pattern_re = NULL; ++ } ++ if (rule->pattern_re_match_data != NULL) { ++ pcre2_match_data_free(rule->pattern_re_match_data); /* Release memory used for the match */ ++ rule->pattern_re_match_data = NULL; ++ } + ss_free(rule); + } +--- a/src/rule.h ++++ b/src/rule.h +@@ -1,6 +1,7 @@ + /* + * Copyright (c) 2011 and 2012, Dustin Lundquist + * Copyright (c) 2011 Manuel Kasper ++ * Copyright (c) 2017 Syrone Wong + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without +@@ -33,17 +34,27 @@ + + #include + +-#ifdef HAVE_PCRE_H +-#include +-#elif HAVE_PCRE_PCRE_H +-#include +-#endif ++/* ++ * The PCRE2_CODE_UNIT_WIDTH macro must be defined before including pcre2.h. ++ * For a program that uses only one code unit width, setting it to 8, 16, or 32 ++ * makes it possible to use generic function names such as pcre2_compile(). Note ++ * that just changing 8 to 16 (for example) is not sufficient to convert this ++ * program to process 16-bit characters. Even in a fully 16-bit environment, where ++ * string-handling functions such as strcmp() and printf() work with 16-bit ++ * characters, the code for handling the table of named substrings will still need ++ * to be modified. ++ */ ++/* we only need to support ASCII chartable, thus set it to 8 */ ++#define PCRE2_CODE_UNIT_WIDTH 8 ++ ++#include + + typedef struct rule { + char *pattern; + + /* Runtime fields */ +- pcre *pattern_re; ++ pcre2_code *pattern_re; ++ pcre2_match_data *pattern_re_match_data; + + struct cork_dllist_item entries; + } rule_t; diff --git a/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch b/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch new file mode 100644 index 00000000000..4e7f79f7a52 --- /dev/null +++ b/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch @@ -0,0 +1,198 @@ +From c2bdb9847e374331a4f1c8fcd3d93e0b57d4c6fc Mon Sep 17 00:00:00 2001 +From: Zxl hhyccc +Date: Sun, 7 Jul 2024 17:08:27 +0800 +Subject: [PATCH] Fix in 'mbedtls 3.6.0 ver' compilation failure issue +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +*** The added patch is available in 'mbedtls 3.6 version'. + +*** fix *clen += tlen; may cause potential bounds error. + +Co-authored-by: Lu jicong +Signed-off-by: Zxl hhyccc +--- + m4/mbedtls.m4 | 20 +++++++++++++++++++ + src/aead.c | 17 ++++++++++++++++ + src/crypto.c | 2 +- + src/stream.c | 17 ++++++++++++++++ + + 4 files changed, 55 insertions(+), 1 deletion(-) + +--- a/m4/mbedtls.m4 ++++ b/m4/mbedtls.m4 +@@ -31,7 +31,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_CIPHER_MODE_CFB +@@ -48,7 +53,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_ARC4_C +@@ -64,7 +74,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_BLOWFISH_C +@@ -80,7 +95,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_CAMELLIA_C +--- a/src/aead.c ++++ b/src/aead.c +@@ -178,9 +178,14 @@ aead_cipher_encrypt(cipher_ctx_t *cipher + case AES192GCM: + case AES128GCM: + ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + err = mbedtls_cipher_auth_encrypt(cipher_ctx->evp, n, nlen, ad, adlen, + m, mlen, c, clen, c + mlen, tlen); + *clen += tlen; ++#else ++ err = mbedtls_cipher_auth_encrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, ++ m, mlen, c, mlen + tlen, clen, tlen); ++#endif + break; + case CHACHA20POLY1305IETF: + err = crypto_aead_chacha20poly1305_ietf_encrypt(c, &long_clen, m, mlen, +@@ -226,8 +231,13 @@ aead_cipher_decrypt(cipher_ctx_t *cipher + // Otherwise, just use the mbedTLS one with crappy AES-NI. + case AES192GCM: + case AES128GCM: ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + err = mbedtls_cipher_auth_decrypt(cipher_ctx->evp, n, nlen, ad, adlen, + m, mlen - tlen, p, plen, m + mlen - tlen, tlen); ++#else ++ err = mbedtls_cipher_auth_decrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, ++ m, mlen, p, mlen - tlen, plen, tlen); ++#endif + break; + case CHACHA20POLY1305IETF: + err = crypto_aead_chacha20poly1305_ietf_decrypt(p, &long_plen, NULL, m, mlen, +@@ -724,9 +734,26 @@ aead_key_init(int method, const char *pa + if (method >= CHACHA20POLY1305IETF) { + cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); + cipher->info = cipher_info; ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + cipher->info->base = NULL; + cipher->info->key_bitlen = supported_aead_ciphers_key_size[method] * 8; + cipher->info->iv_size = supported_aead_ciphers_nonce_size[method]; ++#else ++ cipher->info->private_base_idx = 0; ++ ++#ifdef MBEDTLS_KEY_BITLEN_SHIFT ++ cipher->info->private_key_bitlen = supported_aead_ciphers_key_size[method] * 8 >> MBEDTLS_KEY_BITLEN_SHIFT; ++#else ++ cipher->info->private_key_bitlen = supported_aead_ciphers_key_size[method] * 8; ++#endif ++ ++#ifdef MBEDTLS_IV_SIZE_SHIFT ++ cipher->info->private_iv_size = supported_aead_ciphers_nonce_size[method] >> MBEDTLS_IV_SIZE_SHIFT; ++#else ++ cipher->info->private_iv_size = supported_aead_ciphers_nonce_size[method]; ++#endif ++ ++#endif + } else { + cipher->info = (cipher_kt_t *)aead_get_cipher_type(method); + } +--- a/src/crypto.c ++++ b/src/crypto.c +@@ -103,7 +103,7 @@ crypto_md5(const unsigned char *d, size_ + if (md == NULL) { + md = m; + } +-#if MBEDTLS_VERSION_NUMBER >= 0x02070000 ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 && MBEDTLS_VERSION_NUMBER >= 0x02070000 + if (mbedtls_md5_ret(d, n, md) != 0) + FATAL("Failed to calculate MD5"); + #else +--- a/src/stream.c ++++ b/src/stream.c +@@ -174,7 +174,11 @@ cipher_nonce_size(const cipher_t *cipher + if (cipher == NULL) { + return 0; + } ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + return cipher->info->iv_size; ++#else ++ return (int)mbedtls_cipher_info_get_iv_size(cipher->info); ++#endif + } + + int +@@ -192,7 +196,11 @@ cipher_key_size(const cipher_t *cipher) + return 0; + } + /* From Version 1.2.7 released 2013-04-13 Default Blowfish keysize is now 128-bits */ ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + return cipher->info->key_bitlen / 8; ++#else ++ return (int)mbedtls_cipher_info_get_key_bitlen(cipher->info) / 8; ++#endif + } + + const cipher_kt_t * +@@ -645,9 +653,26 @@ stream_key_init(int method, const char * + if (method == SALSA20 || method == CHACHA20 || method == CHACHA20IETF) { + cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); + cipher->info = cipher_info; ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + cipher->info->base = NULL; + cipher->info->key_bitlen = supported_stream_ciphers_key_size[method] * 8; + cipher->info->iv_size = supported_stream_ciphers_nonce_size[method]; ++#else ++ cipher->info->private_base_idx = 0; ++ ++#ifdef MBEDTLS_KEY_BITLEN_SHIFT ++ cipher->info->private_key_bitlen = supported_stream_ciphers_key_size[method] * 8 >> MBEDTLS_KEY_BITLEN_SHIFT; ++#else ++ cipher->info->private_key_bitlen = supported_stream_ciphers_key_size[method] * 8; ++#endif ++ ++#ifdef MBEDTLS_IV_SIZE_SHIFT ++ cipher->info->private_iv_size = supported_stream_ciphers_nonce_size[method] >> MBEDTLS_IV_SIZE_SHIFT; ++#else ++ cipher->info->private_iv_size = supported_stream_ciphers_nonce_size[method]; ++#endif ++ ++#endif + } else { + cipher->info = (cipher_kt_t *)stream_get_cipher_type(method); + } From 53df51197bf8fb2346bc98019eef5037b4121b89 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 16 Nov 2024 22:51:02 +0800 Subject: [PATCH 649/972] lua-neturl: make pkg release apk compatible. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、lua-neturl: CI 使用的分支 ImmortalWrt 已默认编译 APK,如不修改,会使 CI 编译失败并同时导致 CI 编译luci-app-ssr-plus失败。 2、luci-app-ssr-plus: 编译错误如下: ``` ./etc/init.d/shadowsocksr: uci command not found grep: /tmp/dnasmq.conf: not such file or directory ``` Co-authored-by: Tianling Shen Co-authored-by: Zxl hhyccc --- lua-neturl/Makefile | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lua-neturl/Makefile b/lua-neturl/Makefile index 0f6b16f355c..5f923840e27 100644 --- a/lua-neturl/Makefile +++ b/lua-neturl/Makefile @@ -5,12 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=neturl -PKG_VERSION:=1.1-1 -PKG_RELEASE:=3 +PKG_REAL_VERSION:=1.1-1 +PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION)) +PKG_RELEASE:=4 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/golgote/neturl/tar.gz/v$(PKG_VERSION)? +PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/golgote/neturl/tar.gz/v$(PKG_REAL_VERSION)? PKG_HASH:=25f3a94ba9f435ef1395555de2bf17d6f934d789fa515ed965405919e42be27b +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From c82145f45e34bba827e71cee7ac3ad0bc2732a95 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 16 Nov 2024 22:55:35 +0800 Subject: [PATCH 650/972] luci-app-ssr-plus: Optimize code and resolve compilation errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 编译错误如下: ``` ./etc/init.d/shadowsocksr: uci command not found grep: /tmp/dnasmq.conf: not such file or directory ``` Co-authored-by: Zxl hhyccc --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 7 +++++-- .../root/usr/share/shadowsocksr/update.lua | 18 ++++++++++++++++-- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 04875d49d6d..b469328e569 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=189 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 4029a074380..740bdce3016 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -17,14 +17,17 @@ LOCK_FILE=/var/lock/ssrplus.lock LOG_FILE=/var/log/ssrplus.log TMP_PATH=/var/etc/ssrplus TMP_BIN_PATH=$TMP_PATH/bin +# 设置 DNSMASQ_CONF_DIR 和 TMP_DNSMASQ_PATH +[ -f /etc/openwrt_release ] && { # 获取默认的 DNSMasq 配置 ID -DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -1) +DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -n 1) # 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 DNSMASQ_CONF_PATH=$(grep -l "^conf-dir=" "/tmp/etc/dnsmasq.conf.${DEFAULT_DNSMASQ_CFGID}") # 从 conf-dir 行中提取目录路径 DNSMASQ_CONF_DIR=$(grep '^conf-dir=' "$DNSMASQ_CONF_PATH" | cut -d'=' -f2 | head -n 1) # 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠 -TMP_DNSMASQ_PATH=${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d +TMP_DNSMASQ_PATH="${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" +} chain_config_file= #generate shadowtls chain proxy config file tcp_config_file= diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index d9fa08060b5..33ca9fef6c0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -9,13 +9,27 @@ require "luci.model.uci" local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() -local TMP_DNSMASQ_PATH = luci.sys.exec("find /tmp/dnsmasq.*/dnsmasq-ssrplus.d -type d -print 2>/dev/null"):gsub("%s+", "") + +-- 以下设置更新数据库至 DNSMASQ 路径 +-- 获取 DEFAULT_DNSMASQ_CFGID +local DEFAULT_DNSMASQ_CFGID = uci:get_first("dhcp", "dnsmasq", ".name") +-- 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 +local DNSMASQ_CONF_PATH = string.format("grep -l '^conf-dir=' /tmp/etc/dnsmasq.conf.%s*", DEFAULT_DNSMASQ_CFGID):gsub("%s+", "") -- 去除空白字符 +-- 获取 DNSMASQ_CONF_DIR +local DNSMASQ_CONF_DIR = string.format("grep '^conf-dir=' %s | cut -d'=' -f2 | head -n 1", DNSMASQ_CONF_PATH):gsub("%s+", "") -- 去除空白字符 +-- 设置 TMP_DNSMASQ_PATH 路径 +local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR .. "/dnsmasq-ssrplus.d" + local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" local ip_pattern = "^%d+%.%d+%.%d+%.%d+" local domain_pattern = "([%w%-%_]+%.[%w%.%-%_]+)[%/%*]*" -local excluded_domain = {"apple.com", "sina.cn", "sina.com.cn", "baidu.com", "byr.cn", "jlike.com", "weibo.com", "zhongsou.com", "youdao.com", "sogou.com", "so.com", "soso.com", "aliyun.com", "taobao.com", "jd.com", "qq.com"} +local excluded_domain = { + "apple.com", "sina.cn", "sina.com.cn", "baidu.com", "byr.cn", "jlike.com", + "weibo.com", "zhongsou.com", "youdao.com", "sogou.com", "so.com", "soso.com", + "aliyun.com", "taobao.com", "jd.com", "qq.com" +} -- gfwlist parameter local mydnsip = '127.0.0.1' local mydnsport = '5335' From 7ae3fb85cc0be1fffa3de0c28b935e77a5f70981 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 17 Nov 2024 00:45:38 +0800 Subject: [PATCH 651/972] CI: Free disk remaining space. --- .github/workflows/multi-arch-test-build.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 8b5dd56fa3f..3a87f46d24d 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -35,6 +35,17 @@ jobs: target: x86-64 steps: + - name: Free Disk Space + uses: jlumbroso/free-disk-space@main + with: + tool-cache: true + android: true + dotnet: true + haskell: true + large-packages: true + docker-images: true + swap-storage: true + - uses: actions/checkout@v3 with: fetch-depth: 0 From 4ebc296c41da3fe025f327d9d895fb077295c201 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 18 Nov 2024 22:21:58 +0800 Subject: [PATCH 652/972] luci-app-ssr-plus: update.lua: Fix path configuration failure caused by whitespace characters in special cases. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed: https://github.com/fw876/helloworld/commit/c82145f45e34bba827e71cee7ac3ad0bc2732a95 经测试,本人遇到的特殊情况是指新固件升级后(概率问题),在ssrp正常运行再手动更新gfw数据库时,系统日志中出现无法找到dnsmasq.cfg01411c*目录的报错而导致gfw数据库文件拷贝失败,再次手动更新后却又正常。本pr已修复此问题。 --- .../root/usr/share/shadowsocksr/update.lua | 39 +++++++++++++++---- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index 33ca9fef6c0..d786864b363 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -10,15 +10,40 @@ local icount = 0 local args = arg[1] local uci = luci.model.uci.cursor() --- 以下设置更新数据库至 DNSMASQ 路径 --- 获取 DEFAULT_DNSMASQ_CFGID +-- 以下设置更新数据库至 DNSMASQ 配置路径 +-- 获取 DNSMasq 配置 ID local DEFAULT_DNSMASQ_CFGID = uci:get_first("dhcp", "dnsmasq", ".name") + +if not DEFAULT_DNSMASQ_CFGID then + error("未找到默认的 DNSMasq 配置 ID") +end + -- 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 -local DNSMASQ_CONF_PATH = string.format("grep -l '^conf-dir=' /tmp/etc/dnsmasq.conf.%s*", DEFAULT_DNSMASQ_CFGID):gsub("%s+", "") -- 去除空白字符 --- 获取 DNSMASQ_CONF_DIR -local DNSMASQ_CONF_DIR = string.format("grep '^conf-dir=' %s | cut -d'=' -f2 | head -n 1", DNSMASQ_CONF_PATH):gsub("%s+", "") -- 去除空白字符 --- 设置 TMP_DNSMASQ_PATH 路径 -local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR .. "/dnsmasq-ssrplus.d" +local DNSMASQ_CONF_PATH_CMD = string.format("grep -l '^conf-dir=' /tmp/etc/dnsmasq.conf.%s*", DEFAULT_DNSMASQ_CFGID) +local DNSMASQ_CONF_PATH = io.popen(DNSMASQ_CONF_PATH_CMD):read("*l") + +if not DNSMASQ_CONF_PATH or DNSMASQ_CONF_PATH:match("^%s*$") then + error("无法找到包含 conf-dir 选项的 dnsmasq.conf 文件路径") +end + +DNSMASQ_CONF_PATH = DNSMASQ_CONF_PATH:gsub("%s+", "") -- 去除空白字符 + +-- 获取 DNSMASQ 配置路径 +local DNSMASQ_CONF_DIR_CMD = string.format("grep '^conf-dir=' %s | cut -d'=' -f2 | head -n 1", DNSMASQ_CONF_PATH) +local DNSMASQ_CONF_DIR = io.popen(DNSMASQ_CONF_DIR_CMD):read("*l") + +if not DNSMASQ_CONF_DIR or DNSMASQ_CONF_DIR:match("^%s*$") then + error("无法提取 conf-dir 配置,请检查 dnsmasq.conf 文件内容") +end + +DNSMASQ_CONF_DIR = DNSMASQ_CONF_DIR:gsub("%s+", "") -- 去除空白字符 + +-- 设置 dnsmasq-ssrplus.d 目录路径,并去除路径末尾的斜杠 +local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR:match("^(.-)/?$") .. "/dnsmasq-ssrplus.d" + +if not TMP_DNSMASQ_PATH or TMP_DNSMASQ_PATH:match("^%s*$") then + error("无法找到包含 dnsmasq 选项的 dnsmasq-ssrplus.d 目录路径") +end local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain From d2254d60d57adbed4870e14e426ee26f4cb796b1 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:06:26 +0800 Subject: [PATCH 653/972] gn: Update to git HEAD --- gn/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index 77de4e8d7d2..c1a48688b4f 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2024-09-25 -PKG_SOURCE_VERSION:=95b0f8fe31a992a33c040bbe3867901335c12762 -PKG_MIRROR_HASH:=6dcae74aa55a37c3ef6786efe3e36e02d59167aac2dc79c3f7d6f3fba998eed8 +PKG_SOURCE_DATE:=2024-11-19 +PKG_SOURCE_VERSION:=24e92acb847233a9c0753c12cb82c98fc084e3db +PKG_MIRROR_HASH:=d5b18b91286f0029e262fc548e4d9636c195a45d41c211f321b126040e246d1d PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE From 43d6f9a70a5608c358f81338804746dcaa24b7a3 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:07:14 +0800 Subject: [PATCH 654/972] gn: Update to git HEAD --- gn/src/out/last_commit_position.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 1dfca62d348..6803ed4c3cf 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2203 -#define LAST_COMMIT_POSITION "2203 (95b0f8fe31a9)" +#define LAST_COMMIT_POSITION_NUM 2205 +#define LAST_COMMIT_POSITION "2205 (24e92acb8472)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 72801770ac83fa9dbaead3fb6790cc920e634720 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:18:07 +0800 Subject: [PATCH 655/972] naiveproxy: Update to 131.0.6778.86-1 --- naiveproxy/Makefile | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 2ac9f6a499a..18df57eb6ef 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,12 +5,14 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_VERSION:=129.0.6668.81-2 +PKG_REAL_VERSION:=131.0.6778.86-1 +PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION)) PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c66ac95b0a685fb84f931a267873979cd59708e8966fb9764c53fe2deb24227e +PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_REAL_VERSION)? +PKG_HASH:=9f912ce03c7f1023e7774291c2bdd0a0c998832e49ed0d998bffa7714317e9f4 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE @@ -55,22 +57,22 @@ ifneq ($(CONFIG_CCACHE),) export naive_ccache_flags=cc_wrapper="$(CCACHE)" endif -CLANG_VER:=20-init-1009-g7088a5ed-10 +CLANG_VER:=20-init-6794-g3dbd929e-1 CLANG_FILE:=clang-llvmorg-$(CLANG_VER).tar.xz define Download/CLANG URL:=https://commondatastorage.googleapis.com/chromium-browser-clang/Linux_x64 URL_FILE:=$(CLANG_FILE) FILE:=$(CLANG_FILE) - HASH:=32ac9d9864a6bd99242f1a97778b3a074ac1151ce3eca369903f2ef5337c787a + HASH:=ce5dea9d2f304d0f3ab07200cd2608711578f7254bf6e685bea8381c248b7686 endef -PGO_VER:=1723053597-b7a6f793b48020befd6a1e60819840a456c519b3-98f747673cbba839fedf299e6c76ac032fad32f0 +PGO_VER:=6778-1731431875-75e60acd68a20cf9cc2c5d6dfbb65ee7b4e60752-a75a9b0cd4f8d4a3bb5d3446daa63b14105e852e PGO_FILE:=chrome-linux-main-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=f4df544116e10c5495148ee9afedbb07f4ee2659e461dbf0f69755b8d338ceec + HASH:=93ae3d2a51eb03b8314523cde26d2324998e29e60452b242bca33afdc604bc12 endef define Build/Prepare From d798b3ed9356fe25b0597ea07221b14145a75209 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:19:37 +0800 Subject: [PATCH 656/972] xray-core: update to 24.11.21 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index d011698c2d2..75c36c4ca96 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=Xray-core -PKG_VERSION:=24.10.31 +PKG_VERSION:=24.11.21 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=b61102ce87c61fa97c001cb08bb3ad794ff7184e2457bc58fe71206e53dcee83 +PKG_HASH:=e45ad1fa11457101776d2c0d7ed8ed7c669b714e7687a85830e44a6e4a52fe05 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 5f06b358c3212a3e9f71c40a5043053acf576911 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:22:53 +0800 Subject: [PATCH 657/972] v2ray-core: Bump to 5.22.0 --- v2ray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 9f623d18ff2..a481a0774bb 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.21.0 +PKG_VERSION:=5.22.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=880a929caff7b72ef9d3b9a3262cec0dff6566c2481989822a6b27fdaaeed975 +PKG_HASH:=df25a873c8f7fb30f44cb6d26b18db264dfa209df5aeb6116fc43df7157fb4b8 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE @@ -31,7 +31,7 @@ include $(INCLUDE_DIR)/package.mk include $(TOPDIR)/feeds/packages/lang/golang/golang-package.mk define Package/v2ray/template - TITLE:=A platform for building proxies to bypass network restrictions + TITLE:=A proxy platform to bypass network restrictions SECTION:=net CATEGORY:=Network URL:=https://www.v2fly.org From 10593e12e99fc1ca09b82832657ba68b78bc70cc Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:25:02 +0800 Subject: [PATCH 658/972] naiveproxy: Update to 131.0.6778.86-1 --- naiveproxy/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 18df57eb6ef..53e712feda7 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -67,7 +67,7 @@ define Download/CLANG endef PGO_VER:=6778-1731431875-75e60acd68a20cf9cc2c5d6dfbb65ee7b4e60752-a75a9b0cd4f8d4a3bb5d3446daa63b14105e852e -PGO_FILE:=chrome-linux-main-$(PGO_VER).profdata +PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) From b0e66e65d20943589d6e1f89c48458b620347ad8 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:37:32 +0800 Subject: [PATCH 659/972] chinadns-ng: update to 2024.11.17 Retain armv5 version of 2024.10.14. --- chinadns-ng/Makefile | 53 ++++++++++++++++++++++++++++++-------------- 1 file changed, 36 insertions(+), 17 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index ced8e349f30..a350c522f0b 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,59 +5,67 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2024.07.21 +PKG_VERSION:=2024.11.17 PKG_RELEASE:=1 +DOWN_VERSION:=$(PKG_VERSION) ifeq ($(ARCH),aarch64) ifeq ($(BOARD),rockchip) PKG_ARCH:=$(PKG_NAME)+wolfssl@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=1a65fadc48956231eba439efd9ae914f6e5eb0f5d257a34cd8c6b0d5734ade57 + PKG_HASH:=590627101162b2ae2fd55ad27b290745fcd9d77fe5073f0e006770388edd9103 else PKG_ARCH:=$(PKG_NAME)+wolfssl_noasm@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=9414c8f237b8a919d411fb38a7d2aa83c7617ae441695af54ea84feb22b0639c + PKG_HASH:=b2e53d1fdc5d65b5f2a1dc26428bf15b86d84f51748ff1970d58bf301f69d2c0 endif else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v5t+soft_float@fast+lto - PKG_HASH:=3d1a89bdc413f6922df43f2c1a18f199e83ec7e5d6d68961a10229a73188b07a + PKG_HASH:=9adfe309a41f21156cc5597333c42c36bc9e4e42eb1a71d18b92c39aed0340b2 + DOWN_VERSION:=2024.10.14 else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v6+soft_float@fast+lto - PKG_HASH:=d9095d72dba4018c21ab794c81e467011eee8b3582822a3fa45b803bfdf0d4fa + PKG_HASH:=511f9700e38b1f4ba65fefccd7c4f4a77773a8ebad0600c89e315286561e9288 else PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabihf@generic+v7a@fast+lto - PKG_HASH:=61fff30848f687d93e58bb91029252818d76e0980d4d32fd2bf6d67dfa51cd4f + PKG_HASH:=13244ea7b722ad117ad7aaf32187a7ac11361ddda1201c632e9b9650fb24a824 endif else ifeq ($(ARCH),i386) ifneq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),) PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@i686@fast+lto - PKG_HASH:=8fd1f8cc1ee5f24a10a45367d3444a7af0618f01bf5ea1d14c8bfac856062a23 + PKG_HASH:=35c21309fd334d43e3f5b5e7194d6acc49ceeb358e76b6074ecc3b9e370c2bd7 else PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@pentium4@fast+lto - PKG_HASH:=15983518255abc1849b13352763112442388519109625a9fcd92f50e05831b1c + PKG_HASH:=aedfa24bee4759cf982623def4346d5dd8da84027a87f91c33571ec7aeb4ad69 endif else ifeq ($(ARCH),mips) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=1b804d4c450d10cb6f91ac0656121bf9fd3e499f15ea569770b8d5523d5290c2 + PKG_HASH:=aca11ed4c513db6970c46f54f0449c9a49722eb4f80be11a915d4d550d2726e9 else ifeq ($(ARCH),mipsel) ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=82d07d148e2c20d4247df7baa0421f1c365954c0953e0e0fbe76e1cd78d1f1b2 + PKG_HASH:=82eed3511c11f1cb5c2e611a97d42f9264640bea1e029c04337d073788f65d19 else PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32@fast+lto - PKG_HASH:=4a0f66796fbde9c276345ca5e5d4995ce28fef9d54c9538cd931fc2e03de78dd + PKG_HASH:=98b8cbbde8473a51c3f24979664bfffb54ec5665f851437100e4859e3f674f5b endif +else ifeq ($(ARCH),mips64) + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64-linux-musl@mips64+soft_float@fast+lto + PKG_HASH:=51ca556136ec442b8af642764f9d59eaef3d3c58cf11331db7c87d5ea0825fa1 +else ifeq ($(ARCH),mips64el) + PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64el-linux-musl@mips64+soft_float@fast+lto + PKG_HASH:=d5b6db9245037115ea8ea791fc89a37c6db9224842e0ad0e28cc709a32ea1cc3 else ifeq ($(ARCH),x86_64) PKG_ARCH:=$(PKG_NAME)+wolfssl@x86_64-linux-musl@x86_64@fast+lto - PKG_HASH:=8d600757acf4fcb6250aef6ba5bf19d9a2182a188e900d1201381ab0a52a5463 + PKG_HASH:=30b02f9a6451f2a473d23210ea652b13c4ce6a1c01aadfabf34e5f47203b2628 else PKG_ARCH:=dummy PKG_HASH:=dummy endif -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(ARCH_PACKAGES) -PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(PKG_VERSION)/$(PKG_ARCH)? +PKG_SOURCE:=$(PKG_NAME)-$(DOWN_VERSION)-$(ARCH_PACKAGES) +PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(DOWN_VERSION)/$(PKG_ARCH)? UNPACK_CMD=$(CP) $(DL_DIR)/$(PKG_SOURCE) $(PKG_BUILD_DIR)/$(PKG_NAME) PKG_LICENSE:=AGPL-3.0-only @@ -72,7 +80,19 @@ define Package/chinadns-ng SUBMENU:=IP Addresses and Names TITLE:=ChinaDNS next generation, refactoring with epoll and ipset. URL:=https://github.com/zfl9/chinadns-ng - DEPENDS:=@(aarch64||arm||i386||mips||mipsel||x86_64) + DEPENDS:=@(aarch64||arm||i386||mips||mipsel||mips64||mips64el||x86_64) +endef + +define Package/chinadns-ng/description +ChinaDNS Next Generation, refactoring with epoll and ipset. +endef + +define Package/chinadns-ng/conffiles +/etc/config/chinadns-ng +/etc/chinadns-ng/chnroute.txt +/etc/chinadns-ng/chnroute6.txt +/etc/chinadns-ng/gfwlist.txt +/etc/chinadns-ng/chinalist.txt endef define Build/Compile @@ -80,7 +100,6 @@ endef define Package/chinadns-ng/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/chinadns-ng -endef + $(INSTALL_BIN) $(PKG_BUILD_DIR)/chinadns-ng $(1)/usr/bin $(eval $(call BuildPackage,chinadns-ng)) From 5e1952b8b74e0310b0bd0640cb1b4d2b39315ccc Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:39:19 +0800 Subject: [PATCH 660/972] chinadns-ng: update to 2024.11.17 Retain armv5 version of 2024.10.14. --- chinadns-ng/Makefile | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index a350c522f0b..4b840f68217 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -83,18 +83,6 @@ define Package/chinadns-ng DEPENDS:=@(aarch64||arm||i386||mips||mipsel||mips64||mips64el||x86_64) endef -define Package/chinadns-ng/description -ChinaDNS Next Generation, refactoring with epoll and ipset. -endef - -define Package/chinadns-ng/conffiles -/etc/config/chinadns-ng -/etc/chinadns-ng/chnroute.txt -/etc/chinadns-ng/chnroute6.txt -/etc/chinadns-ng/gfwlist.txt -/etc/chinadns-ng/chinalist.txt -endef - define Build/Compile endef From 2e5bdc8bf19153b807eb7b722626d300482f0371 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 22 Nov 2024 23:50:26 +0800 Subject: [PATCH 661/972] chinadns-ng: Fix typo --- chinadns-ng/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 4b840f68217..1efbf6b2c08 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -88,6 +88,7 @@ endef define Package/chinadns-ng/install $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/chinadns-ng $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/chinadns-ng +endef $(eval $(call BuildPackage,chinadns-ng)) From 35f82ef27c9fe535b4fd395c0c7f703f1fe7792b Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 23 Nov 2024 16:57:53 +0800 Subject: [PATCH 662/972] luci-app-ssr-plus: Fix tcp protocol imported to the Vmess node. Do not select TLS. --- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index c81590ef690..0e196704467 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -259,11 +259,12 @@ if (ssm.net == "tcp") { if (ssm.type && ssm.type != "http") { ssm.type = "none" + } else { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = ssm.path; } document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].value = ssm.type; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = ssm.host; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = ssm.path; } if (ssm.net == "ws") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = ssm.host; From 499a7c18995804b234e0a82ecef8f2f57c0fcd4a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:33:39 +0800 Subject: [PATCH 663/972] luci-app-ssr-plus: Fix Importing configuration cannot import fingerprint. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 876a819cb6f..2b91c2cf8b1 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -944,7 +944,7 @@ if is_finded("xray") then o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true}) -- [[ uTLS ]]-- - o = s:option(Value, "fingerprint", translate("Finger Print")) + o = s:option(ListValue, "fingerprint", translate("Finger Print")) o.default = "chrome" o:value("chrome", translate("chrome")) o:value("firefox", translate("firefox")) From c9e31f5fb81bb46202372e03efbc49bd12a64aa1 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 24 Nov 2024 00:25:33 +0800 Subject: [PATCH 664/972] luci-app-ssr-plus: Fix `Xray` old configuration does not run. Signed-off-by: Zxl hhyccc --- luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index 64751cf4d7a..d4efcd04a17 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -28,6 +28,16 @@ touch /etc/ssrplus/gfw_list.conf touch /etc/ssrplus/oversea_list.conf touch /etc/ssrplus/ad.conf touch /etc/config/shadowsocksr + +if [ -s "/etc/config/shadowsocksr" ]; then + if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then + uci -q add shadowsocksr global_xray_fragment + uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0' + uci -q set shadowsocksr.@global_xray_fragment[0].noise='0' + uci -q commit shadowsocksr + fi +fi + [ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset sed -i "s/option type 'vmess'/option type 'v2ray'\n\toption v2ray_protocol 'vmess'/g" /etc/config/shadowsocksr From 9da6d6ab0253aeb604963a320fd6933b7b610b53 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 29 Nov 2024 23:56:55 +0800 Subject: [PATCH 665/972] luci-app-ssr-plus: Add apple domains data update settings and replace apple DNS support. --- .../model/cbi/shadowsocksr/advanced.lua | 11 ++++ .../luasrc/model/cbi/shadowsocksr/status.lua | 11 ++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 12 +++++ .../root/etc/init.d/shadowsocksr | 8 +++ .../root/usr/share/shadowsocksr/update.lua | 53 ++++++++++++++++++- 5 files changed, 94 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 5fc774ff14c..98539974067 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -113,6 +113,17 @@ o = s:option(Flag, "apple_optimization", translate("Apple domains optimization") o.rmempty = false o.default = "1" +o = s:option(Value, "apple_url", translate("Apple Domains Update url")) +o:value("https://fastly.jsdelivr.net/gh/felixonmars/dnsmasq-china-list/apple.china.conf", translate("felixonmars/dnsmasq-china-list")) +o.default = "https://fastly.jsdelivr.net/gh/felixonmars/dnsmasq-china-list/apple.china.conf" +o:depends("apple_optimization", "1") + +o = s:option(Value, "apple_dns", translate("Apple Domains DNS"), translate("If empty, Not change Apple domains parsing DNS (Default is empty)")) +o.rmempty = true +o.default = "" +o.datatype = "ip4addr" +o:depends("apple_optimization", "1") + o = s:option(Flag, "adblock", translate("Enable adblock")) o.rmempty = false diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index a095d44e908..2a5c5e20567 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -48,6 +48,10 @@ if nixio.fs.access("/etc/ssrplus/china_ssr.txt") then ip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/china_ssr.txt | wc -l")) end +if nixio.fs.access("/etc/ssrplus/applechina.conf") then + apple_count = tonumber(luci.sys.exec("cat /etc/ssrplus/applechina.conf | wc -l")) +end + if nixio.fs.access("/etc/ssrplus/netflixip.list") then nfip_count = tonumber(luci.sys.exec("cat /etc/ssrplus/netflixip.list | wc -l")) end @@ -169,6 +173,13 @@ s.rawhtml = true s.template = "shadowsocksr/refresh" s.value = ip_count .. " " .. translate("Records") +if uci:get_first("shadowsocksr", 'global', 'apple_optimization', '0') ~= '0' then + s = m:field(DummyValue, "apple_data", translate("Apple Domains Data")) + s.rawhtml = true + s.template = "shadowsocksr/refresh" + s.value = apple_count .. " " .. translate("Records") +end + if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) s.rawhtml = true diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 18f19a7ebc0..6bc594437f2 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -410,6 +410,9 @@ msgstr "【中国大陆 IP 段】数据库" msgid "Netflix IP Data" msgstr "【Netflix IP 段】数据库" +msgid "Apple Domains Data" +msgstr "【Apple 域名】数据库" + msgid "Advertising Data" msgstr "【广告屏蔽】数据库" @@ -470,6 +473,15 @@ msgstr "启用广告屏蔽" msgid "adblock_url" msgstr "广告屏蔽更新 URL" +msgid "Apple Domains Update url" +msgstr "Apple 域名更新 URL" + +msgid "Apple Domains DNS" +msgstr "Apple 域名 DNS" + +msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" +msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)" + msgid "gfwlist Update url" msgstr "GFW 列表更新 URL" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 740bdce3016..8edf65b4f1d 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -258,6 +258,14 @@ start_dns() { fi if [ "$(uci_get_by_type global apple_optimization 1)" == "1" ]; then + local new_appledns="$(uci_get_by_type global apple_dns)" + if [ -n "$new_appledns" ]; then + sed -i 's/[[:space:]]//g' /etc/ssrplus/applechina.conf #去除所有空白字符 + local old_appledns=$(grep -oE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' /etc/ssrplus/applechina.conf | sort -u) + if [ -n "$old_appledns" ] && [ "$old_appledns" != "$new_appledns" ]; then + sed -i "s,$(printf '%s' "$old_appledns"),$(printf '%s' "$new_appledns"),g" /etc/ssrplus/applechina.conf + fi + fi echolog "Apple 域名中国大陆 CDN 的 优化规则正在加载。" cp -f /etc/ssrplus/applechina.conf $TMP_DNSMASQ_PATH/ echolog "Apple 域名中国大陆 CDN 的 优化规则加载完毕。" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index d786864b363..b0f54c17a62 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -59,6 +59,7 @@ local excluded_domain = { local mydnsip = '127.0.0.1' local mydnsport = '5335' local ipsetname = 'gfwlist' +local new_appledns = uci:get_first("shadowsocksr", "global", "apple_dns") local bc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/' -- base64decoding local function base64_dec(data) @@ -112,6 +113,29 @@ local function generate_gfwlist(type) os.remove("/tmp/ssr-update.tmp") end +-- 更换 Apple dns +local function generate_apple(type) + local domains, domains_map = {}, {} + local out = io.open("/tmp/ssr-update." .. type, "w") + for line in io.lines("/tmp/ssr-update.tmp") do + if not (string.find(line, comment_pattern)) then + local start, finish, match = string.find(line, domain_pattern) + if start and not domains_map[match] then + domains_map[match] = true + match = string.gsub(match, "%s", "") --从域名中去除所有空白字符 + table.insert(domains, match) + end + end + end + for _, domain in ipairs(domains) do + if new_appledns and new_appledns ~= "" then + out:write(string.format("server=/%s/%s\n", domain, new_appledns)) + end + end + out:close() + os.remove("/tmp/ssr-update.tmp") +end + -- adblock转码至dnsmasq格式 local function generate_adblock(type) local domains, domains_map = {}, {} @@ -159,6 +183,21 @@ local function update(url, file, type, file2) generate_gfwlist(type) Num = 2 end + if type == "apple_data" then + local apple = io.open("/tmp/ssr-update." .. type, "r") + local decode = apple:read("*a") + if not decode:find("apple") then + decode = base64_dec(decode) + end + apple:close() + -- 写回applechina + apple = io.open("/tmp/ssr-update.tmp", "w") + apple:write(decode) + apple:close() + if new_appledns and new_appledns ~= "" then + generate_apple(type) + end + end if type == "ad_data" then local adblock = io.open("/tmp/ssr-update." .. type, "r") local decode = adblock:read("*a") @@ -217,12 +256,16 @@ if args then update(uci:get_first("shadowsocksr", "global", "chnroute_url"), "/etc/ssrplus/china_ssr.txt", args, TMP_PATH .. "/china_ssr.txt") os.exit(0) end + if args == "apple_data" then + update(uci:get_first("shadowsocksr", "global", "apple_url"), "/etc/ssrplus/applechina.conf", args, TMP_DNSMASQ_PATH .. "/applechina.conf") + os.exit(0) + end if args == "ad_data" then update(uci:get_first("shadowsocksr", "global", "adblock_url"), "/etc/ssrplus/ad.conf", args, TMP_DNSMASQ_PATH .. "/ad.conf") os.exit(0) end if args == "nfip_data" then - update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args) + update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", args, TMP_DNSMASQ_PATH .. "/netflixip.list") os.exit(0) end else @@ -230,10 +273,18 @@ else update(uci:get_first("shadowsocksr", "global", "gfwlist_url"), "/etc/ssrplus/gfw_list.conf", "gfw_data", TMP_DNSMASQ_PATH .. "/gfw_list.conf") log("正在更新【国内IP段】数据库") update(uci:get_first("shadowsocksr", "global", "chnroute_url"), "/etc/ssrplus/china_ssr.txt", "ip_data", TMP_PATH .. "/china_ssr.txt") + if uci:get_first("shadowsocksr", "global", "apple_optimization", "0") == "1" then + log("正在更新【Apple域名】数据库") + update(uci:get_first("shadowsocksr", "global", "apple_url"), "/etc/ssrplus/applechina.conf", "apple_data", TMP_DNSMASQ_PATH .. "/applechina.conf") + end if uci:get_first("shadowsocksr", "global", "adblock", "0") == "1" then log("正在更新【广告屏蔽】数据库") update(uci:get_first("shadowsocksr", "global", "adblock_url"), "/etc/ssrplus/ad.conf", "ad_data", TMP_DNSMASQ_PATH .. "/ad.conf") end + if uci:get_first("shadowsocksr", "global", "netflix_enable", "0") == "1" then + log("正在更新【Netflix IP段】数据库") + update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", "nfip_data", TMP_DNSMASQ_PATH .. "/netflixip.list") + end -- log("正在更新【Netflix IP段】数据库") -- update(uci:get_first("shadowsocksr", "global", "nfip_url"), "/etc/ssrplus/netflixip.list", "nfip_data") end From 4e5edc89403a5969373c08782706a3a5f4db4bf0 Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Sat, 30 Nov 2024 14:56:29 +0800 Subject: [PATCH 666/972] xray-core: update to 24.11.30 --- xray-core/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 75c36c4ca96..c36099d0eea 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=Xray-core -PKG_VERSION:=24.11.21 +PKG_NAME:=xray-core +PKG_VERSION:=24.11.30 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e45ad1fa11457101776d2c0d7ed8ed7c669b714e7687a85830e44a6e4a52fe05 +PKG_HASH:=1ed728cf32cf9227c73e1b3651465eb089c6d2f42367cf40df62c4ba0edfc765 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From f3d73bfd64343abbbb0e1437d0cc906283d253cc Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 30 Nov 2024 19:43:29 +0800 Subject: [PATCH 667/972] luci-app-ssr-plus: Add update time choose. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实际使用中,除非特殊情况下,订阅和数据库没必要日日更新。 Signed-off-by: Zxl hhyccc --- .../luasrc/model/cbi/shadowsocksr/servers.lua | 24 ++++++++++++++- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 30 +++++++++++++++++++ .../root/etc/init.d/shadowsocksr | 4 +-- .../root/etc/uci-defaults/luci-ssr-plus | 13 +++++++- .../share/shadowsocksr/shadowsocksr.config | 4 ++- 5 files changed, 70 insertions(+), 5 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index b2cb81bddee..d1850cca712 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -19,12 +19,34 @@ o = s:option(Flag, "auto_update", translate("Auto Update")) o.rmempty = false o.description = translate("Auto Update Server subscription, GFW list and CHN route") -o = s:option(ListValue, "auto_update_time", translate("Update time (every day)")) +o = s:option(ListValue, "auto_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 = "*" +o.rmempty = false +o:depends("auto_update", "1") + +o = s:option(ListValue, "auto_update_day_time", translate("Update time (every day)")) for t = 0, 23 do o:value(t, t .. ":00") end o.default = 2 o.rmempty = false +o:depends("auto_update", "1") + +o = s:option(ListValue, "auto_update_min_time", translate("Update Interval (min)")) +for i = 0, 59 do + o:value(i, i .. ":00") +end +o.default = 30 +o.rmempty = false +o:depends("auto_update", "1") o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) o.rmempty = true diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 6bc594437f2..69dae195853 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -608,6 +608,36 @@ msgstr "格式为 IP:PORT(默认:禁用)" msgid "Update time (every day)" msgstr "更新时间(每天)" +msgid "Update Time (Every Week)" +msgstr "更新时间(每周)" + +msgid "Update Interval (min)" +msgstr "更新间隔 (分钟)" + +msgid "Every Day" +msgstr "每天" + +msgid "Every Monday" +msgstr "每周一" + +msgid "Every Tuesday" +msgstr "每周二" + +msgid "Every Wednesday" +msgstr "每周三" + +msgid "Every Thursday" +msgstr "每周四" + +msgid "Every Friday" +msgstr "每周五" + +msgid "Every Saturday" +msgstr "每周六" + +msgid "Every Sunday" +msgstr "每周日" + msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 8edf65b4f1d..13266dc8ea8 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -69,7 +69,7 @@ uci_get_by_name() { uci_get_by_type() { local ret=$(uci get $NAME.@$1[0].$2 2>/dev/null) - echo ${ret:=$3} + echo "${ret:=$3}" } uci_set_by_name() { @@ -123,7 +123,7 @@ echolog() { add_cron() { touch $CRON_FILE sed -i '/ssrplus.log/d' $CRON_FILE - [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "0 $(uci_get_by_type server_subscribe auto_update_time) * * * /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE + [ $(uci_get_by_type server_subscribe auto_update 0) -eq 1 ] && echo "$(uci_get_by_type server_subscribe auto_update_min_time) $(uci_get_by_type server_subscribe auto_update_day_time) * * $(uci_get_by_type server_subscribe auto_update_week_time) /usr/share/shadowsocksr/ssrplusupdate.sh >$LOG_FILE" >>$CRON_FILE crontab $CRON_FILE } diff --git a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus index d4efcd04a17..6cc6fce6ff2 100755 --- a/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus +++ b/luci-app-ssr-plus/root/etc/uci-defaults/luci-ssr-plus @@ -30,12 +30,23 @@ touch /etc/ssrplus/ad.conf touch /etc/config/shadowsocksr if [ -s "/etc/config/shadowsocksr" ]; then + if uci -q get shadowsocksr.@server_subscribe[0].auto_update_time > /dev/null; then + uci -q delete shadowsocksr.@server_subscribe[0].auto_update_time + fi + + if ! uci -q get shadowsocksr.@server_subscribe[0].auto_update_week_time > /dev/null; then + uci -q set shadowsocksr.@server_subscribe[0].auto_update_week_time='*' + uci -q set shadowsocksr.@server_subscribe[0].auto_update_day_time='2' + uci -q set shadowsocksr.@server_subscribe[0].auto_update_min_time='0' + fi + if ! uci -q get shadowsocksr.@global_xray_fragment[0] > /dev/null; then uci -q add shadowsocksr global_xray_fragment uci -q set shadowsocksr.@global_xray_fragment[0].fragment='0' uci -q set shadowsocksr.@global_xray_fragment[0].noise='0' - uci -q commit shadowsocksr fi + + uci -q commit shadowsocksr fi [ -s "/etc/config/shadowsocksr" ] || /etc/init.d/shadowsocksr reset diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config index 6d9f2874986..9a9276098da 100644 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/shadowsocksr.config @@ -22,8 +22,10 @@ config global config server_subscribe option proxy '0' - option auto_update_time '2' option auto_update '1' + option auto_update_week_time '*' + option auto_update_day_time '2' + option auto_update_min_time '0' option filter_words '过期时间/剩余流量/QQ群/官网/防失联地址/回国' config access_control From 3e5405e799484868ca25058897f340957c6934c1 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 5 Dec 2024 23:07:02 +0800 Subject: [PATCH 668/972] luci-app-ssr-plus: Optimized acquire `dnsmasq` configuration file path code. --- .../root/etc/init.d/shadowsocksr | 22 ++++++----- .../root/usr/share/shadowsocksr/update.lua | 38 ++++++------------- 2 files changed, 23 insertions(+), 37 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 8edf65b4f1d..1a6925aede3 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -18,16 +18,18 @@ LOG_FILE=/var/log/ssrplus.log TMP_PATH=/var/etc/ssrplus TMP_BIN_PATH=$TMP_PATH/bin # 设置 DNSMASQ_CONF_DIR 和 TMP_DNSMASQ_PATH -[ -f /etc/openwrt_release ] && { -# 获取默认的 DNSMasq 配置 ID -DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -n 1) -# 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 -DNSMASQ_CONF_PATH=$(grep -l "^conf-dir=" "/tmp/etc/dnsmasq.conf.${DEFAULT_DNSMASQ_CFGID}") -# 从 conf-dir 行中提取目录路径 -DNSMASQ_CONF_DIR=$(grep '^conf-dir=' "$DNSMASQ_CONF_PATH" | cut -d'=' -f2 | head -n 1) -# 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠 -TMP_DNSMASQ_PATH="${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" -} +if [ -f /etc/openwrt_release ]; then + # 获取默认的 DNSMASQ 配置 ID + DEFAULT_DNSMASQ_CFGID="$(uci -q show "dhcp.@dnsmasq[0]" | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')" + # 从 conf-dir 行中提取配置目录路径 + if [ -f "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID" ]; then + DNSMASQ_CONF_DIR="$(awk -F '=' '/^conf-dir=/ {print $2}' "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID")" + else + DNSMASQ_CONF_DIR="/tmp/dnsmasq.d" + fi + # 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠 + TMP_DNSMASQ_PATH="${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d" +fi chain_config_file= #generate shadowtls chain proxy config file tcp_config_file= diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua index b0f54c17a62..43b74aed193 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/update.lua @@ -11,40 +11,24 @@ local args = arg[1] local uci = luci.model.uci.cursor() -- 以下设置更新数据库至 DNSMASQ 配置路径 --- 获取 DNSMasq 配置 ID -local DEFAULT_DNSMASQ_CFGID = uci:get_first("dhcp", "dnsmasq", ".name") +-- 获取 DNSMASQ 配置 ID +local DNSMASQ_UCI_CONFIG = uci:get_first("dhcp", "dnsmasq", ".name") -if not DEFAULT_DNSMASQ_CFGID then - error("未找到默认的 DNSMasq 配置 ID") -end - --- 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径 -local DNSMASQ_CONF_PATH_CMD = string.format("grep -l '^conf-dir=' /tmp/etc/dnsmasq.conf.%s*", DEFAULT_DNSMASQ_CFGID) -local DNSMASQ_CONF_PATH = io.popen(DNSMASQ_CONF_PATH_CMD):read("*l") - -if not DNSMASQ_CONF_PATH or DNSMASQ_CONF_PATH:match("^%s*$") then - error("无法找到包含 conf-dir 选项的 dnsmasq.conf 文件路径") -end - -DNSMASQ_CONF_PATH = DNSMASQ_CONF_PATH:gsub("%s+", "") -- 去除空白字符 +-- 获取 DNSMASQ 默认配置文件 +local DNSMASQ_CONF_PATH = "/tmp/etc/dnsmasq.conf." .. DNSMASQ_UCI_CONFIG --- 获取 DNSMASQ 配置路径 -local DNSMASQ_CONF_DIR_CMD = string.format("grep '^conf-dir=' %s | cut -d'=' -f2 | head -n 1", DNSMASQ_CONF_PATH) -local DNSMASQ_CONF_DIR = io.popen(DNSMASQ_CONF_DIR_CMD):read("*l") - -if not DNSMASQ_CONF_DIR or DNSMASQ_CONF_DIR:match("^%s*$") then - error("无法提取 conf-dir 配置,请检查 dnsmasq.conf 文件内容") +-- 检查 DNSMASQ 配置文件是否存在,如果存在则提取 conf-dir +for line in io.lines(DNSMASQ_CONF_PATH) do + local conf_dir = line:match("^conf%-dir=(.+)") + if conf_dir then + DNSMASQ_CONF_DIR = conf_dir:gsub("%s+", "") -- 去除空白字符 + break + end end -DNSMASQ_CONF_DIR = DNSMASQ_CONF_DIR:gsub("%s+", "") -- 去除空白字符 - -- 设置 dnsmasq-ssrplus.d 目录路径,并去除路径末尾的斜杠 local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR:match("^(.-)/?$") .. "/dnsmasq-ssrplus.d" -if not TMP_DNSMASQ_PATH or TMP_DNSMASQ_PATH:match("^%s*$") then - error("无法找到包含 dnsmasq 选项的 dnsmasq-ssrplus.d 目录路径") -end - local TMP_PATH = "/var/etc/ssrplus" -- match comments/title/whitelist/ip address/excluded_domain local comment_pattern = "^[!\\[@]+" From 933ffd39d1b6f9b48502edc2cdde8dedbe9598e1 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 10 Dec 2024 12:46:28 +0800 Subject: [PATCH 669/972] luci-app-ssr-plus: servers.lua: Fix when auto update is canceled option is empty error. --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index d1850cca712..a7166abdbf7 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -29,7 +29,7 @@ o:value("5", translate("Every Friday")) o:value("6", translate("Every Saturday")) o:value("0", translate("Every Sunday")) o.default = "*" -o.rmempty = false +o.rmempty = true o:depends("auto_update", "1") o = s:option(ListValue, "auto_update_day_time", translate("Update time (every day)")) @@ -37,7 +37,7 @@ for t = 0, 23 do o:value(t, t .. ":00") end o.default = 2 -o.rmempty = false +o.rmempty = true o:depends("auto_update", "1") o = s:option(ListValue, "auto_update_min_time", translate("Update Interval (min)")) @@ -45,7 +45,7 @@ for i = 0, 59 do o:value(i, i .. ":00") end o.default = 30 -o.rmempty = false +o.rmempty = true o:depends("auto_update", "1") o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) From 3ae5859f1421ea071ec410052eb965c103bd1f99 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 11 Dec 2024 20:11:33 +0800 Subject: [PATCH 670/972] luci-app-ssr-plus: WS: Forbid "host" in "headers", read "serverName" instead See: https://github.com/XTLS/Xray-core/commit/a2b773135a860f63e990874c551b099dfc888471 --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 569b4626335..fd15bffabd4 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -256,10 +256,7 @@ end } or nil, wsSettings = (server.transport == "ws") and (server.ws_path or server.ws_host or server.tls_host) and { -- ws - headers = (server.ws_host or server.tls_host) and { - -- headers - Host = server.ws_host or server.tls_host - } or nil, + Host = server.ws_host or server.tls_host or nil, path = server.ws_path, maxEarlyData = tonumber(server.ws_ed) or nil, earlyDataHeaderName = server.ws_ed_header or nil From a65d2d8d2777c91efdc199713861f162194c98ba Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 13 Dec 2024 22:20:32 +0800 Subject: [PATCH 671/972] luci-app-ssr-plus: Fix flow control and TCP/RAW transport protocol configurations issues. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** 在导入启用TLS或reality但无流量控制参数的节点时,默认仍导入flow,从而导致节点无法正常代理。同时tcp或raw传输协议配置应调整为无http和有http情况下的对应配置。 *** 彻底修复导入 `Xray` 各种传输协议配置时相关参数无法按预期导入的bug。 --- .../model/cbi/shadowsocksr/client-config.lua | 7 +- .../luasrc/view/shadowsocksr/ssrurl.htm | 123 ++++++++++-------- .../usr/share/shadowsocksr/gen_config.lua | 18 +-- 3 files changed, 86 insertions(+), 62 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 2b91c2cf8b1..38f1ea7c25f 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -935,7 +935,12 @@ if is_finded("xray") then -- [[ XTLS ]]-- o = s:option(ListValue, "tls_flow", translate("Flow")) for _, v in ipairs(tls_flows) do - o:value(v, translate(v)) + if v == "none" then + o.default = "none" + o:value("none", translate("none")) + else + o:value(v, translate(v)) + end end o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 0e196704467..19c5dfd330d 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -306,85 +306,104 @@ alert(e) return false; } - - document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = url.hash ? decodeURIComponent(url.hash.slice(1)) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].value = "vless"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.v2ray_protocol')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port || "80"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = url.username; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = - params.get("type") == "http" ? "h2" : - (params.get("type") == "raw" ? "raw" : - (params.get("type") || "tcp")); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.vless_encryption')[0].value = params.get("encryption") || "none"; + // Check if the elements exist before trying to modify them + function setElementValue(name, value) { + const element = document.getElementsByName(name)[0]; + if (element) { + element.value = value; + } + } + function dispatchEventIfExists(name, event) { + const element = document.getElementsByName(name)[0]; + if (element) { + element.dispatchEvent(event); + } + } + setElementValue('cbid.shadowsocksr.' + sid + '.alias', url.hash ? decodeURIComponent(url.hash.slice(1)) : ""); + setElementValue('cbid.shadowsocksr.' + sid + '.type', "v2ray"); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.type', event); + setElementValue('cbid.shadowsocksr.' + sid + '.v2ray_protocol', "vless"); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.v2ray_protocol', event); + setElementValue('cbid.shadowsocksr.' + sid + '.server', url.hostname); + setElementValue('cbid.shadowsocksr.' + sid + '.server_port', url.port || "80"); + setElementValue('cbid.shadowsocksr.' + sid + '.vmess_id', url.username); + setElementValue('cbid.shadowsocksr.' + sid + '.transport', + params.get("type") === "http" ? "h2" : + (params.get("type") === "raw" ? "raw" : + (params.get("type") || "tcp")) + ); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.transport', event); + setElementValue('cbid.shadowsocksr.' + sid + '.vless_encryption', params.get("encryption") || "none"); if ([ "tls", "xtls", "reality" ].includes(params.get("security"))) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].checked = true; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0].dispatchEvent(event); + const securityElement = document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0]; + if (securityElement) { + securityElement.checked = true; + securityElement.dispatchEvent(event); + } if (params.get("security") === "reality") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_publickey')[0].value = params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_shortid')[0].value = params.get("sid") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.reality_spiderx')[0].value = params.get("spx") ? decodeURIComponent(params.get("spx")) : ""; + setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""); + setElementValue('cbid.shadowsocksr.' + sid + '.reality_shortid', params.get("sid") || ""); + setElementValue('cbid.shadowsocksr.' + sid + '.reality_spiderx', params.get("spx") ? decodeURIComponent(params.get("spx")) : ""); } - if (params.get("security") === "xtls") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].value = params.get("flow") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_flow')[0].dispatchEvent(event); - } - document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni") || ""; + setElementValue('cbid.shadowsocksr.' + sid + '.tls_flow', params.get("flow") || "none"); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tls_flow', event); + + setElementValue('cbid.shadowsocksr.' + sid + '.fingerprint', params.get("fp") || ""); + setElementValue('cbid.shadowsocksr.' + sid + '.tls_host', params.get("sni") || ""); } switch (params.get("type")) { case "ws": - if (params.get("security") !== "tls") - document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.ws_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + if (params.get("security") !== "tls") { + setElementValue('cbid.shadowsocksr.' + sid + '.ws_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + } + setElementValue('cbid.shadowsocksr.' + sid + '.ws_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); break; case "httpupgrade": - if (params.get("security") !== "tls") - document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + if (params.get("security") !== "tls") { + setElementValue('cbid.shadowsocksr.' + sid + '.httpupgrade_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + } + setElementValue('cbid.shadowsocksr.' + sid + '.httpupgrade_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); break; case "splithttp": - if (params.get("security") !== "tls") - document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + if (params.get("security") !== "tls") { + setElementValue('cbid.shadowsocksr.' + sid + '.splithttp_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + } + setElementValue('cbid.shadowsocksr.' + sid + '.splithttp_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); break; case "kcp": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = params.get("headerType") || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; + setElementValue('cbid.shadowsocksr.' + sid + '.kcp_guise', params.get("headerType") || "none"); + setElementValue('cbid.shadowsocksr.' + sid + '.seed', params.get("seed") || ""); break; case "http": /* this is non-standard, bullshit */ case "h2": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + setElementValue('cbid.shadowsocksr.' + sid + '.h2_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + setElementValue('cbid.shadowsocksr.' + sid + '.h2_path', params.get("path") ? decodeURIComponent(params.get("path")) : ""); break; case "quic": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].value = params.get("headerType") || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_security')[0].value = params.get("quicSecurity") || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_key')[0].value = params.get("key") || ""; + setElementValue('cbid.shadowsocksr.' + sid + '.quic_guise', params.get("headerType") || "none"); + setElementValue('cbid.shadowsocksr.' + sid + '.quic_security', params.get("quicSecurity") || "none"); + setElementValue('cbid.shadowsocksr.' + sid + '.quic_key', params.get("key") || ""); break; case "grpc": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.serviceName')[0].value = params.get("serviceName") || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.grpc_mode')[0].value = params.get("mode") || "gun"; + setElementValue('cbid.shadowsocksr.' + sid + '.serviceName', params.get("serviceName") || ""); + setElementValue('cbid.shadowsocksr.' + sid + '.grpc_mode', params.get("mode") || "gun"); break; case "tcp": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].value = params.get("headerType") || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].dispatchEvent(event); + setElementValue('cbid.shadowsocksr.' + sid + '.tcp_guise', params.get("headerType") || "none"); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tcp_guise', event); if (params.get("headerType") === "http") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + setElementValue('cbid.shadowsocksr.' + sid + '.http_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + setElementValue('cbid.shadowsocksr.' + sid + '.http_path', params.get("path") ? decodeURIComponent(params.get("path")) : ""); } + break; case "raw": - document.getElementsByName('cbid.shadowsocksr.' + sid + '.raw_guise')[0].value = params.get("headerType") || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.raw_guise')[0].dispatchEvent(event); + setElementValue('cbid.shadowsocksr.' + sid + '.raw_guise', params.get("headerType") || "none"); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.raw_guise', event); if (params.get("headerType") === "http") { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + setElementValue('cbid.shadowsocksr.' + sid + '.http_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + setElementValue('cbid.shadowsocksr.' + sid + '.http_path', params.get("path") ? decodeURIComponent(params.get("path")) : ""); } break; } diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 569b4626335..57fc250bd0f 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -28,7 +28,7 @@ function vmess_vless() alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = ((server.xtls == '1') or (server.tls == '1') or (server.reality == '1')) and server.tls_flow or nil + flow = (((server.xtls == '1') or (server.tls == '1') or (server.reality == '1')) and server.tls_flow ~= "none") and server.tls_flow or nil } } } @@ -220,26 +220,26 @@ end fingerprint = server.fingerprint, serverName = server.tls_host } or nil, - tcpSettings = (server.transport == "tcp" and server.tcp_guise == "http") and { + tcpSettings = (server.transport == "tcp") and { -- tcp header = { - type = server.tcp_guise, - request = { + type = server.tcp_guise or "none", + request = (server.tcp_guise == "http") and { -- request path = {server.http_path} or {"/"}, headers = {Host = {server.http_host} or {}} - } + } or nil } } or nil, - rawSettings = (server.transport == "raw" and server.raw_guise == "http") and { + rawSettings = (server.transport == "raw") and { -- raw header = { - type = server.raw_guise, - request = { + type = server.raw_guise or "none", + request = (server.raw_guise == "http") and { -- request path = {server.http_path} or {"/"}, headers = {Host = {server.http_host} or {}} - } + } or nil } } or nil, kcpSettings = (server.transport == "kcp") and { From 43d4c640a1ed55320dce9052bcdb12c6d3ed7da4 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 15 Dec 2024 18:34:21 +0800 Subject: [PATCH 672/972] luci-app-ssr-plus: Optimize `Xray` configuration import code. --- .../luasrc/view/shadowsocksr/ssrurl.htm | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 19c5dfd330d..ddc77287165 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -310,7 +310,11 @@ function setElementValue(name, value) { const element = document.getElementsByName(name)[0]; if (element) { - element.value = value; + if (element.type === "checkbox" || element.type === "radio") { + element.checked = value === true; + } else { + element.value = value; + } } } function dispatchEventIfExists(name, event) { @@ -335,11 +339,8 @@ dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.transport', event); setElementValue('cbid.shadowsocksr.' + sid + '.vless_encryption', params.get("encryption") || "none"); if ([ "tls", "xtls", "reality" ].includes(params.get("security"))) { - const securityElement = document.getElementsByName('cbid.shadowsocksr.' + sid + '.' + params.get("security"))[0]; - if (securityElement) { - securityElement.checked = true; - securityElement.dispatchEvent(event); - } + setElementValue('cbid.shadowsocksr.' + sid + '.' + params.get("security"), true); + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.' + params.get("security"), event); if (params.get("security") === "reality") { setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""); From 84dd87687e7e79c51e883e79346d429090e8d19a Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 16 Dec 2024 22:22:22 +0800 Subject: [PATCH 673/972] luci-app-ssr-plus: Merge `tcp` `raw` transport protocols, compatible legacy configurations and subscribe. --- .../model/cbi/shadowsocksr/client-config.lua | 17 ++--------------- .../luasrc/view/shadowsocksr/ssrurl.htm | 11 ++--------- .../root/usr/share/shadowsocksr/gen_config.lua | 13 +------------ .../root/usr/share/shadowsocksr/subscribe.lua | 8 +------- 4 files changed, 6 insertions(+), 43 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 38f1ea7c25f..ee288c80654 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -618,8 +618,7 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) -- 传输协议 o = s:option(ListValue, "transport", translate("Transport")) -o:value("tcp", "TCP") -o:value("raw", "RAW") +o:value("raw", "RAW (TCP)") o:value("kcp", "mKCP") o:value("ws", "WebSocket") o:value("httpupgrade", "HTTPUpgrade") @@ -635,17 +634,9 @@ o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) --- [[ TCP部分 ]]-- +-- [[ RAW部分 ]]-- -- TCP伪装 o = s:option(ListValue, "tcp_guise", translate("Camouflage Type")) -o:depends("transport", "tcp") -o:value("none", translate("None")) -o:value("http", "HTTP") -o.rmempty = true - --- [[ RAW部分 ]]-- --- RAW伪装 -o = s:option(ListValue, "raw_guise", translate("Camouflage Type")) o:depends("transport", "raw") o:value("none", translate("None")) o:value("http", "HTTP") @@ -654,13 +645,11 @@ o.rmempty = true -- HTTP域名 o = s:option(Value, "http_host", translate("HTTP Host")) o:depends("tcp_guise", "http") -o:depends("raw_guise", "http") o.rmempty = true -- HTTP路径 o = s:option(Value, "http_path", translate("HTTP Path")) o:depends("tcp_guise", "http") -o:depends("raw_guise", "http") o.rmempty = true -- [[ WS部分 ]]-- @@ -943,9 +932,7 @@ if is_finded("xray") then end end o.rmempty = true - o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", tls = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", tls = true}) - o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "tcp", reality = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true}) -- [[ uTLS ]]-- diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index ddc77287165..dbcdb154a15 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -333,7 +333,7 @@ setElementValue('cbid.shadowsocksr.' + sid + '.vmess_id', url.username); setElementValue('cbid.shadowsocksr.' + sid + '.transport', params.get("type") === "http" ? "h2" : - (params.get("type") === "raw" ? "raw" : + (["tcp", "raw"].includes(params.get("type")) ? "raw" : (params.get("type") || "tcp")) ); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.transport', event); @@ -392,6 +392,7 @@ setElementValue('cbid.shadowsocksr.' + sid + '.grpc_mode', params.get("mode") || "gun"); break; case "tcp": + case "raw": setElementValue('cbid.shadowsocksr.' + sid + '.tcp_guise', params.get("headerType") || "none"); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tcp_guise', event); if (params.get("headerType") === "http") { @@ -399,14 +400,6 @@ setElementValue('cbid.shadowsocksr.' + sid + '.http_path', params.get("path") ? decodeURIComponent(params.get("path")) : ""); } break; - case "raw": - setElementValue('cbid.shadowsocksr.' + sid + '.raw_guise', params.get("headerType") || "none"); - dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.raw_guise', event); - if (params.get("headerType") === "http") { - setElementValue('cbid.shadowsocksr.' + sid + '.http_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); - setElementValue('cbid.shadowsocksr.' + sid + '.http_path', params.get("path") ? decodeURIComponent(params.get("path")) : ""); - } - break; } s.innerHTML = "<%:Import configuration information successfully.%>"; return false; diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 57fc250bd0f..fb6de7aa0d9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -220,7 +220,7 @@ end fingerprint = server.fingerprint, serverName = server.tls_host } or nil, - tcpSettings = (server.transport == "tcp") and { + rawSettings = (server.transport == "raw" or server.transport == "tcp") and { -- tcp header = { type = server.tcp_guise or "none", @@ -231,17 +231,6 @@ end } or nil } } or nil, - rawSettings = (server.transport == "raw") and { - -- raw - header = { - type = server.raw_guise or "none", - request = (server.raw_guise == "http") and { - -- request - path = {server.http_path} or {"/"}, - headers = {Host = {server.http_host} or {}} - } or nil - } - } or nil, kcpSettings = (server.transport == "kcp") and { -- kcp mtu = tonumber(server.mtu), diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index ccdd8be7add..f67e07c1eee 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -400,18 +400,12 @@ local function processData(szType, content) elseif result.transport == "grpc" then result.serviceName = params.serviceName result.grpc_mode = params.mode or "gun" - elseif result.transport == "tcp" then + elseif result.transport == "tcp" or result.transport == "raw" then result.tcp_guise = params.headerType or "none" if result.tcp_guise == "http" then result.tcp_host = params.host and UrlDecode(params.host) or nil result.tcp_path = params.path and UrlDecode(params.path) or nil end - elseif result.transport == "raw" then - result.raw_guise = params.headerType or "none" - if result.raw_guise == "http" then - result.tcp_host = params.host and UrlDecode(params.host) or nil - result.tcp_path = params.path and UrlDecode(params.path) or nil - end end end if not result.alias then From caef0f01af1bb5b3fe911cd5d895b6226ec1f6d8 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Tue, 17 Dec 2024 21:36:41 +0800 Subject: [PATCH 674/972] luci-app-ssr-plus: Fix vmess's `RAW` transport protocol configuration and subscribe. --- luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm | 9 ++++++--- .../root/usr/share/shadowsocksr/subscribe.lua | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index dbcdb154a15..f3d9f15ae72 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -254,11 +254,12 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = ssm.port; document.getElementsByName('cbid.shadowsocksr.' + sid + '.alter_id')[0].value = ssm.aid; document.getElementsByName('cbid.shadowsocksr.' + sid + '.vmess_id')[0].value = ssm.id; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = ssm.net; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = + (ssm.net === "raw" || ssm.net === "tcp") ? "raw" : ssm.net; document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); - if (ssm.net == "tcp") { + if (ssm.net === "raw" || ssm.net === "tcp") { if (ssm.type && ssm.type != "http") { - ssm.type = "none" + ssm.type = "none"; } else { document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = ssm.path; @@ -294,8 +295,10 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host; } + if (ssm.mux !== undefined) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); + } s.innerHTML = "<%:Import configuration information successfully.%>"; return false; case "vless": diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index f67e07c1eee..0404be540b9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -172,6 +172,9 @@ local function processData(szType, content) result.v2ray_protocol = 'vmess' result.server = info.add result.server_port = info.port + if info.net == "tcp" then + info.net = "raw" + end result.transport = info.net result.alter_id = info.aid result.vmess_id = info.id @@ -194,7 +197,7 @@ local function processData(szType, content) result.h2_host = info.host result.h2_path = info.path end - if info.net == 'tcp' then + if info.net == 'raw' or info.net == 'tcp' then if info.type and info.type ~= "http" then info.type = "none" end From 5cabb3bac5c7de76330749c81b8c1c9c5c8ada0d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Wed, 18 Dec 2024 23:52:06 +0800 Subject: [PATCH 675/972] luci-app-ssr-plus: control.lua: Fix "Add or Remove" domain name list domain name click "Save and apply" pop-up "No changes to apply" box. --- .../luasrc/model/cbi/shadowsocksr/control.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua index 070fb5b9bf5..956f8959d4c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua @@ -1,5 +1,6 @@ require "luci.ip" require "nixio.fs" +require "luci.sys" local m, s, o m = Map("shadowsocksr") @@ -140,4 +141,11 @@ o.remove = function(self, section, value) nixio.fs.writefile(netflixconf, "") end +if luci.sys.call('[ -f "/www/luci-static/resources/uci.js" ]') == 0 then + m.apply_on_parse = true + function m.on_apply(self) + luci.sys.call("/etc/init.d/shadowsocksr reload > /dev/null 2>&1 &") + end +end + return m From d2a276cc2e319ea947257b2701721d1425ce4b7e Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 22 Dec 2024 21:54:39 +0800 Subject: [PATCH 676/972] luci-app-ssr-plus: ssrurl.htm: Fix Xray's and Trojan's trojan protocol configuration import and subscribe issue. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** 修改 `fingerprint` 为默认禁用,有效解决节点的 `fingerprint` 在保存后自动改为 `chrome` ,此时如再次保存节点,将改变节点实际的 `fingerprint` 值的问题,此修改在保存后仍默认节点的 `fingerprint` 值。 *** 此PR为: https://github.com/fw876/helloworld/pull/1637 重开。 --- .../model/cbi/shadowsocksr/client-config.lua | 4 +- .../luasrc/view/shadowsocksr/ssrurl.htm | 67 ++++++++++++++++- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 2 + .../usr/share/shadowsocksr/gen_config.lua | 11 ++- .../root/usr/share/shadowsocksr/subscribe.lua | 74 +++++++++++++++++-- 5 files changed, 141 insertions(+), 17 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index ee288c80654..c858b951572 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -937,7 +937,7 @@ if is_finded("xray") then -- [[ uTLS ]]-- o = s:option(ListValue, "fingerprint", translate("Finger Print")) - o.default = "chrome" + o.default = "" o:value("chrome", translate("chrome")) o:value("firefox", translate("firefox")) o:value("safari", translate("safari")) @@ -1016,7 +1016,7 @@ o:depends("mux", true) -- [[ MPTCP ]]-- -o = s:option(Flag, "mptcp", translate("MPTCP")) +o = s:option(Flag, "mptcp", translate("MPTCP"), translate("Enabling MPTCP Requires Server Support.")) o.rmempty = false o.default = false o:depends({type = "v2ray", v2ray_protocol = "vless"}) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index f3d9f15ae72..2607fb70848 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -217,8 +217,9 @@ case "trojan": try { var url = new URL("http://" + ssu[1]); + var params = url.searchParams; } catch(e) { - alert(e) + alert(e); return false; } @@ -232,7 +233,65 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = decodeURIComponent(url.username); document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = url.searchParams.get("sni"); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = params.get("fp") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = params.get("sni"); + if (params.get("allowInsecure") === "1") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = true; // 设置 insecure 为 true + document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].dispatchEvent(event); // 触发事件 + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = + params.get("type") == "http" ? "h2" : + (["tcp", "raw"].includes(params.get("type")) ? "raw" : + (params.get("type") || "raw")); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].dispatchEvent(event); + switch (params.get("type")) { + case "ws": + if (params.get("security") !== "tls") { + setElementValue('cbid.shadowsocksr.' + sid + '.ws_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + } + setElementValue('cbid.shadowsocksr.' + sid + '.ws_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); + break; + case "httpupgrade": + if (params.get("security") !== "tls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.httpupgrade_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + break; + case "splithttp": + if (params.get("security") !== "tls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + break; + case "kcp": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; + break; + case "http": + /* this is non-standard, bullshit */ + case "h2": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + break; + case "quic": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_security')[0].value = params.get("quicSecurity") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.quic_key')[0].value = params.get("key") || ""; + break; + case "grpc": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.serviceName')[0].value = params.get("serviceName") || ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.grpc_mode')[0].value = params.get("mode") || "gun"; + break; + case "raw": + case "tcp": + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].value = params.get("headerType") || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.tcp_guise')[0].dispatchEvent(event); + if (params.get("headerType") === "http") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.http_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : ""; + } + break; + } s.innerHTML = "<%:Import configuration information successfully.%>"; return false; @@ -306,7 +365,7 @@ var url = new URL("http://" + ssu[1]); var params = url.searchParams; } catch(e) { - alert(e) + alert(e); return false; } // Check if the elements exist before trying to modify them @@ -336,7 +395,7 @@ setElementValue('cbid.shadowsocksr.' + sid + '.vmess_id', url.username); setElementValue('cbid.shadowsocksr.' + sid + '.transport', params.get("type") === "http" ? "h2" : - (["tcp", "raw"].includes(params.get("type")) ? "raw" : + (["tcp", "raw"].includes(params.get("type")) ? "raw" : (params.get("type") || "tcp")) ); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.transport', event); diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 69dae195853..72d63bec510 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -91,6 +91,8 @@ msgstr "TLS 主机名" msgid "allowInsecure" msgstr "允许不安全连接" +msgid "Enabling MPTCP Requires Server Support." +msgstr "启用 MPTCP 需服务端支持。" msgid "concurrency" msgstr "TCP 最大并发连接数" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d80aac1525b..1a35c92ad6c 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -283,8 +283,9 @@ end initial_windows_size = tonumber(server.initial_windows_size) or nil } or nil, sockopt = { - tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP - tcpNoDelay = (server.mptcp == "1") and true or false, -- MPTCP + mark = 250, + tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP + tcpNoDelay = (server.mptcp == "1") and true or nil, -- MPTCP tcpcongestion = server.custom_tcpcongestion, -- 连接服务器节点的 TCP 拥塞控制算法 dialerProxy = (xray_fragment.fragment == "1" or xray_fragment.noise == "1") and "dialerproxy" or nil } @@ -321,8 +322,10 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e }, streamSettings = { sockopt = { - tcpMptcp = (server.mptcp == "1") and true or false, -- MPTCP - tcpNoDelay = (server.mptcp == "1") and true or false -- MPTCP + mark = 250, + tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP + tcpNoDelay = (server.mptcp == "1") and true or nil, -- MPTCP + tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 } } }) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 0404be540b9..777923a18b6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -319,6 +319,7 @@ local function processData(szType, content) result.server = nil end elseif szType == "trojan" then + local params = {} local idx_sp = 0 local alias = "" if content:find("#") then @@ -327,20 +328,27 @@ local function processData(szType, content) end local info = content:sub(1, idx_sp - 1) local hostInfo = split(info, "@") - local host = split(hostInfo[2], ":") local userinfo = hostInfo[1] local password = userinfo + + -- 分离服务器地址和端口 + local host = split(hostInfo[2], ":") + local server = host[1] + local port = host[2] + result.alias = UrlDecode(alias) result.type = v2_tj result.v2ray_protocol = "trojan" - result.server = host[1] + result.server = server + result.password = password + -- 按照官方的建议 默认验证ssl证书 result.insecure = "0" result.tls = "1" - if host[2]:find("?") then - local query = split(host[2], "?") + + if port:find("?") then + local query = split(port, "?") result.server_port = query[1] - local params = {} for _, v in pairs(split(query[2], '&')) do local t = split(v, '=') params[t[1]] = t[2] @@ -349,10 +357,62 @@ local function processData(szType, content) -- 未指定peer(sni)默认使用remote addr result.tls_host = params.sni end + + if params.allowInsecure then + -- 处理 insecure 参数 + result.insecure = params.allowInsecure + end else - result.server_port = host[2] + result.server_port = port + end + + if v2_tj ~= "trojan" then + if params.fp then + -- 处理 fingerprint 参数 + result.fingerprint = params.fp + end + -- 处理传输协议 + result.transport = params.type or "tcp" -- 默认传输协议为 tcp + if result.transport == "tcp" then + result.transport = "raw" + end + if result.transport == "ws" then + result.ws_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.ws_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "httpupgrade" then + result.httpupgrade_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.httpupgrade_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "splithttp" then + result.splithttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.splithttp_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "http" or result.transport == "h2" then + result.transport = "h2" + result.h2_host = params.host and UrlDecode(params.host) or nil + result.h2_path = params.path and UrlDecode(params.path) or nil + elseif result.transport == "kcp" then + result.kcp_guise = params.headerType or "none" + result.seed = params.seed + result.mtu = 1350 + result.tti = 50 + result.uplink_capacity = 5 + result.downlink_capacity = 20 + result.read_buffer_size = 2 + result.write_buffer_size = 2 + elseif result.transport == "quic" then + result.quic_guise = params.headerType or "none" + result.quic_security = params.quicSecurity or "none" + result.quic_key = params.key + elseif result.transport == "grpc" then + result.serviceName = params.serviceName + result.grpc_mode = params.mode or "gun" + elseif result.transport == "tcp" or result.transport == "raw" then + result.tcp_guise = params.headerType and params.headerType ~= "" and params.headerType or "none" + if result.tcp_guise == "http" then + result.tcp_host = params.host and UrlDecode(params.host) or nil + result.tcp_path = params.path and UrlDecode(params.path) or nil + end + end end - result.password = password elseif szType == "vless" then local url = URL.parse("http://" .. content) local params = url.query From bf3c0aa7c592c7ba18bbb538f3f3fb3bd888cc78 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 23 Dec 2024 22:42:44 +0800 Subject: [PATCH 677/972] luci-app-ssr-plus: status.lua: Add `restart Service` button. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** 用于手动更新数据库后直接重启以便应用新的数据库,解决需停止服务再启动服务的操作问题。 --- .../luasrc/model/cbi/shadowsocksr/status.lua | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index 2a5c5e20567..c7e84ec6918 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -155,6 +155,14 @@ if nixio.fs.access("/usr/bin/kcptun-client") then end end +s = m:field(Button, "Restart", translate("Restart ShadowSocksR Plus+")) +s.inputtitle = translate("Restart Service") +s.inputstyle = "reload" +s.write = function() + luci.sys.call("/etc/init.d/shadowsocksr restart >/dev/null 2>&1 &") + luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "client")) +end + s = m:field(DummyValue, "google", translate("Google Connectivity")) s.value = translate("No Check") s.template = "shadowsocksr/check" @@ -181,10 +189,10 @@ if uci:get_first("shadowsocksr", 'global', 'apple_optimization', '0') ~= '0' the end if uci:get_first("shadowsocksr", 'global', 'netflix_enable', '0') ~= '0' then -s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) -s.rawhtml = true -s.template = "shadowsocksr/refresh" -s.value = nfip_count .. " " .. translate("Records") + s = m:field(DummyValue, "nfip_data", translate("Netflix IP Data")) + s.rawhtml = true + s.template = "shadowsocksr/refresh" + s.value = nfip_count .. " " .. translate("Records") end if uci:get_first("shadowsocksr", 'global', 'adblock', '0') == '1' then From 94d9b2432cd1367da60f73fd82008bb642b6693f Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 23 Dec 2024 22:45:04 +0800 Subject: [PATCH 678/972] luci-app-ssr-plus: status.lua: Add `restart Service` button. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** 用于手动更新数据库后直接重启以便应用新的数据库,解决需停止服务再启动服务的操作问题。 --- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 69dae195853..7fa954e46fa 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -377,6 +377,12 @@ msgstr "强制走代理" msgid "UDP Relay" msgstr "UDP 中继" +msgid "Restart ShadowSocksR Plus+" +msgstr "重启 ShadowSocksR Plus+" + +msgid "Restart Service" +msgstr "重启服务" + msgid "Google Connectivity" msgstr "【谷歌】连通性检查" From cc4db899edc7578ffe5068eb0ad5d0e5078c5a1f Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 28 Dec 2024 17:20:25 +0800 Subject: [PATCH 679/972] shadowsocksr-libev: Fix openssl 3.0.x version run failure problem. --- shadowsocksr-libev/Makefile | 2 +- .../patches/104-fix-use-after-free.patch | 20 +++++++++++++++++++ .../patches/104-pointer-used-after-free.patch | 16 --------------- .../patches/105-Upgrade-PCRE-to-PCRE2.patch | 17 +--------------- shadowsocksr-libev/src/server/Makefile.in | 18 ++++++++--------- 5 files changed, 31 insertions(+), 42 deletions(-) create mode 100644 shadowsocksr-libev/patches/104-fix-use-after-free.patch delete mode 100644 shadowsocksr-libev/patches/104-pointer-used-after-free.patch diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 5b960a47606..bbc9c191ae7 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -14,7 +14,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev PKG_SOURCE_DATE:=2018-03-07 PKG_SOURCE_VERSION:=d63ff863800a5645aca4309d5dd5962bd1e95543 -PKG_MIRROR_HASH:=34308ed827a5dd4f4e35619914102d55b00604faa44fda051d1d25fb4a319325 +PKG_MIRROR_HASH:=6ab6a32880ee913fb3264f0237b1b5a6d9475585209f6df60b062d7c4901362f PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE diff --git a/shadowsocksr-libev/patches/104-fix-use-after-free.patch b/shadowsocksr-libev/patches/104-fix-use-after-free.patch new file mode 100644 index 00000000000..423721193e8 --- /dev/null +++ b/shadowsocksr-libev/patches/104-fix-use-after-free.patch @@ -0,0 +1,20 @@ +From 445a484de9c9bf801572d970f45ad0e11a18e35d Mon Sep 17 00:00:00 2001 +From: MoetaYuko +Date: Sun, 31 Mar 2024 19:06:59 +0800 +Subject: [PATCH] shadowsocksr-libev: fix use-after-free due to a typo (#193) + +--- + shadowsocksr-libev/src/server/server.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/server/server.c ++++ b/server/server.c +@@ -1943,7 +1943,7 @@ main(int argc, char **argv) + memcpy(text, protocol, strlen(protocol) - 11); + int length = strlen(protocol) - 11; + free(protocol); +- obfs = (char*)malloc(length); ++ protocol = (char*)malloc(length); + memset(protocol, 0x00, length); + memcpy(protocol, text, length); + LOGI("protocol compatible enable, %s", protocol); diff --git a/shadowsocksr-libev/patches/104-pointer-used-after-free.patch b/shadowsocksr-libev/patches/104-pointer-used-after-free.patch deleted file mode 100644 index 9081d5560c3..00000000000 --- a/shadowsocksr-libev/patches/104-pointer-used-after-free.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/server/server.c -+++ b/server/server.c -@@ -1942,12 +1942,12 @@ - text = (char*)malloc(strlen(protocol) - 11); - memcpy(text, protocol, strlen(protocol) - 11); - int length = strlen(protocol) - 11; -- free(protocol); - obfs = (char*)malloc(length); - memset(protocol, 0x00, length); - memcpy(protocol, text, length); - LOGI("protocol compatible enable, %s", protocol); - free(text); -+ free(protocol); - protocol_compatible = 1; - } - } diff --git a/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch index 1e493bd28c2..c040755c626 100644 --- a/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch +++ b/shadowsocksr-libev/patches/105-Upgrade-PCRE-to-PCRE2.patch @@ -14,8 +14,6 @@ Signed-off-by: sbwml <984419930@qq.com> delete mode 100644 m4/pcre.m4 create mode 100644 m4/pcre2.m4 -diff --git a/configure.ac b/configure.ac -index f9c51ab..0513db0 100755 --- a/configure.ac +++ b/configure.ac @@ -20,10 +20,10 @@ AC_DISABLE_STATIC @@ -33,9 +31,6 @@ index f9c51ab..0513db0 100755 fi dnl Checks for using shared libraries from system -diff --git a/m4/pcre.m4 b/m4/pcre.m4 -deleted file mode 100644 -index 4d965bc..0000000 --- a/m4/pcre.m4 +++ /dev/null @@ -1,152 +0,0 @@ @@ -191,9 +186,6 @@ index 4d965bc..0000000 -AC_SUBST(pcreh) -AC_SUBST(pcre_pcreh) -]) -diff --git a/m4/pcre2.m4 b/m4/pcre2.m4 -new file mode 100644 -index 0000000..fcec4b7 --- /dev/null +++ b/m4/pcre2.m4 @@ -0,0 +1,181 @@ @@ -378,8 +370,6 @@ index 0000000..fcec4b7 +AC_SUBST(pcre2h) +AC_SUBST(pcre2_pcre2h) +]) -diff --git a/src/rule.c b/src/rule.c -index 8aae04e..41ba5e7 100644 --- a/src/rule.c +++ b/src/rule.c @@ -82,14 +82,28 @@ int @@ -417,7 +407,7 @@ index 8aae04e..41ba5e7 100644 return 0; } } -@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *rules, const char *name, size_t name_len) +@@ -109,8 +123,15 @@ lookup_rule(const struct cork_dllist *ru cork_dllist_foreach_void(rules, curr, next) { rule_t *rule = cork_container_of(curr, rule_t, entries); @@ -451,8 +441,6 @@ index 8aae04e..41ba5e7 100644 + } ss_free(rule); } -diff --git a/src/rule.h b/src/rule.h -index 015bc42..84a89af 100644 --- a/src/rule.h +++ b/src/rule.h @@ -33,17 +33,27 @@ @@ -489,6 +477,3 @@ index 015bc42..84a89af 100644 struct cork_dllist_item entries; } rule_t; --- -2.42.0 - diff --git a/shadowsocksr-libev/src/server/Makefile.in b/shadowsocksr-libev/src/server/Makefile.in index 17dad9597bc..20afdd0506e 100644 --- a/shadowsocksr-libev/src/server/Makefile.in +++ b/shadowsocksr-libev/src/server/Makefile.in @@ -128,7 +128,7 @@ ss_check_DEPENDENCIES = $(am__DEPENDENCIES_2) AM_V_lt = $(am__v_lt_@AM_V@) am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) am__v_lt_0 = --silent -am__v_lt_1 = +am__v_lt_1 = ss_check_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ss_check_CFLAGS) \ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ @@ -153,11 +153,11 @@ am__v_P_1 = : AM_V_GEN = $(am__v_GEN_@AM_V@) am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) am__v_GEN_0 = @echo " GEN " $@; -am__v_GEN_1 = +am__v_GEN_1 = AM_V_at = $(am__v_at_@AM_V@) am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) am__v_at_0 = @ -am__v_at_1 = +am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) depcomp = $(SHELL) $(top_srcdir)/auto/depcomp am__depfiles_maybe = depfiles @@ -171,7 +171,7 @@ LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CC = $(am__v_CC_@AM_V@) am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) am__v_CC_0 = @echo " CC " $@; -am__v_CC_1 = +am__v_CC_1 = CCLD = $(CC) LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -179,7 +179,7 @@ LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ AM_V_CCLD = $(am__v_CCLD_@AM_V@) am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; -am__v_CCLD_1 = +am__v_CCLD_1 = SOURCES = $(ss_check_SOURCES) $(ss_server_SOURCES) DIST_SOURCES = $(ss_check_SOURCES) $(ss_server_SOURCES) am__can_run_installinfo = \ @@ -351,7 +351,7 @@ sni_src = http.c \ tls.c \ rule.c -ss_check_SOURCES = check.c +ss_check_SOURCES = check.c ss_server_SOURCES = utils.c \ netutils.c \ jconf.c \ @@ -366,7 +366,7 @@ ss_server_SOURCES = utils.c \ ss_check_LDADD = $(SS_COMMON_LIBS) ss_server_LDADD = $(SS_COMMON_LIBS) $(am__append_4) $(am__append_5) -ss_check_CFLAGS = $(AM_CFLAGS) +ss_check_CFLAGS = $(AM_CFLAGS) ss_server_CFLAGS = $(AM_CFLAGS) -DMODULE_REMOTE all: all-am @@ -451,11 +451,11 @@ clean-binPROGRAMS: echo " rm -f" $$list; \ rm -f $$list -ss-check$(EXEEXT): $(ss_check_OBJECTS) $(ss_check_DEPENDENCIES) $(EXTRA_ss_check_DEPENDENCIES) +ss-check$(EXEEXT): $(ss_check_OBJECTS) $(ss_check_DEPENDENCIES) $(EXTRA_ss_check_DEPENDENCIES) @rm -f ss-check$(EXEEXT) $(AM_V_CCLD)$(ss_check_LINK) $(ss_check_OBJECTS) $(ss_check_LDADD) $(LIBS) -ss-server$(EXEEXT): $(ss_server_OBJECTS) $(ss_server_DEPENDENCIES) $(EXTRA_ss_server_DEPENDENCIES) +ss-server$(EXEEXT): $(ss_server_OBJECTS) $(ss_server_DEPENDENCIES) $(EXTRA_ss_server_DEPENDENCIES) @rm -f ss-server$(EXEEXT) $(AM_V_CCLD)$(ss_server_LINK) $(ss_server_OBJECTS) $(ss_server_LDADD) $(LIBS) From 0c3c269f0b12c1dc14c22728db9ff50f8915eac8 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 28 Dec 2024 16:38:45 +0800 Subject: [PATCH 680/972] luci-app-ssr-plus: Add backup and restore and reset functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit *** 增加备份、恢复和重置功能后,在最新的数据库和较多节点情况下,不需再重新获取订阅,并对软件重新设置以及重新进行数据库的更新。 --- .../luasrc/controller/shadowsocksr.lua | 35 +++- .../luasrc/model/cbi/shadowsocksr/log.lua | 110 +++++++++++-- .../view/shadowsocksr/backup_restore.htm | 154 ++++++++++++++++++ .../luasrc/view/shadowsocksr/log.htm | 37 +++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 42 +++++ 5 files changed, 361 insertions(+), 17 deletions(-) create mode 100644 luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm create mode 100644 luci-app-ssr-plus/luasrc/view/shadowsocksr/log.htm diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 8ceaba7b07c..04201c764a3 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -21,11 +21,15 @@ function index() entry({"admin", "services", "shadowsocksr", "subscribe"}, call("subscribe")) entry({"admin", "services", "shadowsocksr", "checkport"}, call("check_port")) entry({"admin", "services", "shadowsocksr", "log"}, form("shadowsocksr/log"), _("Log"), 80).leaf = true + entry({"admin", "services", "shadowsocksr", "get_log"}, call("get_log")).leaf = true + entry({"admin", "services", "shadowsocksr", "clear_log"}, call("clear_log")).leaf = true entry({"admin", "services", "shadowsocksr", "run"}, call("act_status")) entry({"admin", "services", "shadowsocksr", "ping"}, call("act_ping")) entry({"admin", "services", "shadowsocksr", "reset"}, call("act_reset")) entry({"admin", "services", "shadowsocksr", "restart"}, call("act_restart")) entry({"admin", "services", "shadowsocksr", "delete"}, call("act_delete")) + --[[Backup]] + entry({"admin", "services", "shadowsocksr", "backup"}, call("create_backup")).leaf = true end function subscribe() @@ -107,9 +111,9 @@ function check_port() ret = socket:connect(s.server, s.server_port) if tostring(ret) == "true" then socket:close() - retstring = retstring .. "[" .. server_name .. "] OK.
" + retstring .. "[" .. server_name .. "] OK.
" else - retstring = retstring .. "[" .. server_name .. "] Error.
" + retstring = retstring .. "[" .. server_name .. "] Error.
" end if iret == 0 then luci.sys.call("ipset del ss_spec_wan_ac " .. s.server) @@ -120,7 +124,7 @@ function check_port() end function act_reset() - luci.sys.call("/etc/init.d/shadowsocksr reset &") + luci.sys.call("/etc/init.d/shadowsocksr reset >/dev/null 2>&1") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr")) end @@ -133,3 +137,28 @@ function act_delete() luci.sys.call("/etc/init.d/shadowsocksr restart &") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) end + +function get_log() + luci.http.write(luci.sys.exec("[ -f '/var/log/ssrplus.log' ] && cat /var/log/ssrplus.log")) +end + +function clear_log() + luci.sys.call("echo '' > /var/log/ssrplus.log") +end + +function create_backup() + local backup_files = { + "/etc/config/shadowsocksr", + "/etc/ssrplus/*" + } + local date = os.date("%Y%m%d") + local tar_file = "/tmp/shadowsocksr-" .. date .. "-backup.tar.gz" + nixio.fs.remove(tar_file) + local cmd = "tar -czf " .. tar_file .. " " .. table.concat(backup_files, " ") + luci.sys.call(cmd) + luci.http.header("Content-Disposition", "attachment; filename=shadowsocksr-" .. date .. "-backup.tar.gz") + luci.http.header("X-Backup-Filename", "shadowsocksr-" .. date .. "-backup.tar.gz") + luci.http.prepare_content("application/octet-stream") + luci.http.write(nixio.fs.readfile(tar_file)) + nixio.fs.remove(tar_file) +end diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua index fdf9e59f0d7..b0bd4f6f321 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua @@ -1,20 +1,102 @@ require "luci.util" require "nixio.fs" +require "luci.sys" +require "luci.http" + f = SimpleForm("logview") f.reset = false f.submit = false -t = f:field(TextValue, "conf") -t.rmempty = true -t.rows = 20 -function t.cfgvalue() - if nixio.fs.access("/var/log/ssrplus.log") then - local logs = luci.util.execi("cat /var/log/ssrplus.log") - local s = "" - for line in logs do - s = line .. "\n" .. s - end - return s - end +f:append(Template("shadowsocksr/log")) + +-- 自定义 log 函数 +function log(...) + local result = os.date("%Y-%m-%d %H:%M:%S: ") .. table.concat({...}, " ") + local f, err = io.open("/var/log/ssrplus.log", "a") + if f and err == nil then + f:write(result .. "\n") + f:close() + end end -t.readonly = "readonly" -return f + +-- 创建备份与恢复表单 +fb = SimpleForm('backup-restore') +fb.reset = false +fb.submit = false +s = fb:section(SimpleSection, translate("Backup and Restore"), translate("Backup or Restore Client and Server Configurations.") .. + "
" .. + translate("Note: Restoring configurations across different versions may cause compatibility issues.") .. + "") +o = s:option(DummyValue, '', nil) +o.template = "shadowsocksr/backup_restore" + +-- 定义备份目标文件和目录 +local backup_targets = { + files = { + "/etc/config/shadowsocksr" + }, + dirs = { + "/etc/ssrplus" + } +} + +local file_path = '/tmp/shadowsocksr_upload.tar.gz' +local temp_dir = '/tmp/shadowsocksr_bak' +local fd + +-- 处理文件上传 +luci.http.setfilehandler(function(meta, chunk, eof) + if not fd and meta and meta.name == "ulfile" and chunk then + -- 初始化上传处理 + luci.sys.call("rm -rf " .. temp_dir) + nixio.fs.remove(file_path) + fd = nixio.open(file_path, "w") + luci.sys.call("echo '' > /var/log/ssrplus.log") + end + + if fd and chunk then + fd:write(chunk) + end + + if eof and fd then + fd:close() + fd = nil + if nixio.fs.access(file_path) then + log(" * shadowsocksr 配置文件上传成功…") -- 使用自定义的 log 函数 + luci.sys.call("mkdir -p " .. temp_dir) + + if luci.sys.call("tar -xzf " .. file_path .. " -C " .. temp_dir) == 0 then + -- 处理文件还原 + for _, target in ipairs(backup_targets.files) do + local temp_file = temp_dir .. target + if nixio.fs.access(temp_file) then + luci.sys.call(string.format("cp -f '%s' '%s'", temp_file, target)) + log(" * 文件 " .. target .. " 还原成功…") -- 使用自定义的 log 函数 + end + end + + -- 处理目录还原 + for _, target in ipairs(backup_targets.dirs) do + local temp_dir_path = temp_dir .. target + if nixio.fs.access(temp_dir_path) then + luci.sys.call(string.format("cp -rf '%s'/* '%s/'", temp_dir_path, target)) + log(" * 目录 " .. target .. " 还原成功…") -- 使用自定义的 log 函数 + end + end + + log(" * shadowsocksr 配置还原成功…") -- 使用自定义的 log 函数 + log(" * 重启 shadowsocksr 服务中…\n") -- 使用自定义的 log 函数 + luci.sys.call('/etc/init.d/shadowsocksr restart > /dev/null 2>&1 &') + else + log(" * shadowsocksr 配置文件解压失败,请重试!") -- 使用自定义的 log 函数 + end + else + log(" * shadowsocksr 配置文件上传失败,请重试!") -- 使用自定义的 log 函数 + end + + -- 清理临时文件 + luci.sys.call("rm -rf " .. temp_dir) + nixio.fs.remove(file_path) + end +end) + +return f, fb diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm new file mode 100644 index 00000000000..d775addf84a --- /dev/null +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm @@ -0,0 +1,154 @@ +<%+cbi/valueheader%> +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ + + + + + +<%+cbi/valuefooter%> diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/log.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/log.htm new file mode 100644 index 00000000000..251f14b22b8 --- /dev/null +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/log.htm @@ -0,0 +1,37 @@ +<% +local dsp = require "luci.dispatcher" +-%> + +
+ + +
diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 69dae195853..2893e93f04f 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -1168,3 +1168,45 @@ msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位 msgid "Disable ChinaDNS-NG" msgstr "直通模式(禁用 ChinaDNS-NG)" + +msgid "Clear logs" +msgstr "清空日志" + +msgid "Backup and Restore" +msgstr "备份还原" + +msgid "Backup or Restore Client and Server Configurations." +msgstr "备份或还原客户端及服务端配置。" + +msgid "Note: Restoring configurations across different versions may cause compatibility issues." +msgstr "注意:不同版本间的配置恢复可能会导致兼容性问题。" + +msgid "Create Backup File" +msgstr "创建备份文件" + +msgid "Restore Backup File" +msgstr "恢复备份文件" + +msgid "DL Backup" +msgstr "下载备份" + +msgid "RST Backup" +msgstr "恢复备份" + +msgid "UL Restore" +msgstr "上传恢复" + +msgid "CLOSE WIN" +msgstr "关闭窗口" + +msgid "Restore to default configuration" +msgstr "恢复默认配置" + +msgid "Do Reset" +msgstr "执行重置" + +msgid "Do you want to restore the client to default settings?" +msgstr "是否要恢复客户端默认配置?" + +msgid "Are you sure you want to restore the client to default settings?" +msgstr "是否真的要恢复客户端默认配置?" From 945dd5a4dbff1993c2da686f5747229e92fc0010 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 28 Dec 2024 21:43:32 +0800 Subject: [PATCH 681/972] chinadns-ng: update to 2024.12.22 --- chinadns-ng/Makefile | 46 +++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 1efbf6b2c08..85aee23da46 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,67 +5,65 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2024.11.17 +PKG_VERSION:=2024.12.22 PKG_RELEASE:=1 -DOWN_VERSION:=$(PKG_VERSION) ifeq ($(ARCH),aarch64) ifeq ($(BOARD),rockchip) PKG_ARCH:=$(PKG_NAME)+wolfssl@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=590627101162b2ae2fd55ad27b290745fcd9d77fe5073f0e006770388edd9103 + PKG_HASH:=2e17092170abf989c5333a021cdb6789059069a24cf06856a5805336b99fd1a7 else PKG_ARCH:=$(PKG_NAME)+wolfssl_noasm@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=b2e53d1fdc5d65b5f2a1dc26428bf15b86d84f51748ff1970d58bf301f69d2c0 + PKG_HASH:=a4d58dc9f9a6d49133f008b4f3941486396934ae2b3f9ebf9b8bf5e3d1cf656b endif else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v5t+soft_float@fast+lto - PKG_HASH:=9adfe309a41f21156cc5597333c42c36bc9e4e42eb1a71d18b92c39aed0340b2 - DOWN_VERSION:=2024.10.14 + PKG_HASH:=b6ac722b289a62eb02cda5c2c17cc48bb977ab77cce3bf7459841542dfe4dc29 else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v6+soft_float@fast+lto - PKG_HASH:=511f9700e38b1f4ba65fefccd7c4f4a77773a8ebad0600c89e315286561e9288 + PKG_HASH:=e0af25ed7516b4e2bffd8cfb22b45cc1dbdeb47bce02f6495ca8ea1c407fd75c else PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabihf@generic+v7a@fast+lto - PKG_HASH:=13244ea7b722ad117ad7aaf32187a7ac11361ddda1201c632e9b9650fb24a824 - endif -else ifeq ($(ARCH),i386) - ifneq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),) - PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@i686@fast+lto - PKG_HASH:=35c21309fd334d43e3f5b5e7194d6acc49ceeb358e76b6074ecc3b9e370c2bd7 - else - PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@pentium4@fast+lto - PKG_HASH:=aedfa24bee4759cf982623def4346d5dd8da84027a87f91c33571ec7aeb4ad69 + PKG_HASH:=e7a42ed517c73c56bdd7ddf52b5e1263b7aea488ceb82c303278fc7760353b90 endif else ifeq ($(ARCH),mips) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=aca11ed4c513db6970c46f54f0449c9a49722eb4f80be11a915d4d550d2726e9 + PKG_HASH:=926811e55d46ed275f678b62d9fe67e35a053243475306c391b1c3c6a61d9710 else ifeq ($(ARCH),mipsel) ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=82eed3511c11f1cb5c2e611a97d42f9264640bea1e029c04337d073788f65d19 + PKG_HASH:=071ed28e06f9306b4f25c2b9a9bb83ddcfb4dde0cc08d0b232efd772f8a8792a else PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32@fast+lto - PKG_HASH:=98b8cbbde8473a51c3f24979664bfffb54ec5665f851437100e4859e3f674f5b + PKG_HASH:=3fc760ff12e3455bd6cbf3d65c2f0f0a8eb806e451bdadcfb6d3e19ee0dd8960 endif else ifeq ($(ARCH),mips64) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64-linux-musl@mips64+soft_float@fast+lto - PKG_HASH:=51ca556136ec442b8af642764f9d59eaef3d3c58cf11331db7c87d5ea0825fa1 + PKG_HASH:=b79090caee28ce266829ae82edb97ac18c65c6c570625912533d46753def0515 else ifeq ($(ARCH),mips64el) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64el-linux-musl@mips64+soft_float@fast+lto - PKG_HASH:=d5b6db9245037115ea8ea791fc89a37c6db9224842e0ad0e28cc709a32ea1cc3 + PKG_HASH:=bafed35c8e081d8781651180bd3929542704e098ef5fbcf92a6aa7a75e5498b0 +else ifeq ($(ARCH),i386) + ifneq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),) + PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@i686@fast+lto + PKG_HASH:=1149d9fdcf0ca798c63624e62e6c76314aa7b0940e782cc0d064e618772c4b22 + else + PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@pentium4@fast+lto + PKG_HASH:=51d491096c52f0e39a617817f3721f8d4be459a2f40afe0e19c6f1c3a35f5c26 + endif else ifeq ($(ARCH),x86_64) PKG_ARCH:=$(PKG_NAME)+wolfssl@x86_64-linux-musl@x86_64@fast+lto - PKG_HASH:=30b02f9a6451f2a473d23210ea652b13c4ce6a1c01aadfabf34e5f47203b2628 + PKG_HASH:=4b9548191b856690182f98b721512b9a50004986ecebf6eeed71cb709acbd1f5 else PKG_ARCH:=dummy PKG_HASH:=dummy endif -PKG_SOURCE:=$(PKG_NAME)-$(DOWN_VERSION)-$(ARCH_PACKAGES) -PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(DOWN_VERSION)/$(PKG_ARCH)? +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(ARCH_PACKAGES) +PKG_SOURCE_URL:=https://github.com/zfl9/chinadns-ng/releases/download/$(PKG_VERSION)/$(PKG_ARCH)? UNPACK_CMD=$(CP) $(DL_DIR)/$(PKG_SOURCE) $(PKG_BUILD_DIR)/$(PKG_NAME) PKG_LICENSE:=AGPL-3.0-only From aa28d092ca773f1833c1d4fa93c4c0b3d267da03 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 28 Dec 2024 21:51:14 +0800 Subject: [PATCH 682/972] xray-core: Update to 24.12.18 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index c36099d0eea..86e07cceb41 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=24.11.30 +PKG_VERSION:=24.12.18 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1ed728cf32cf9227c73e1b3651465eb089c6d2f42367cf40df62c4ba0edfc765 +PKG_HASH:=3d8b4a161a263e7af7bb1a2690961da075d13f980acd806f5cd4e5c8338d7534 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 01e053c37b877c2bef086f77b764cff43d69348d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 28 Dec 2024 21:55:32 +0800 Subject: [PATCH 683/972] v2raya: Update to 2.2.6.3 --- v2raya/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/v2raya/Makefile b/v2raya/Makefile index 15b2f68ba88..b1cc1c1abbb 100644 --- a/v2raya/Makefile +++ b/v2raya/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2rayA -PKG_VERSION:=2.2.6 +PKG_VERSION:=2.2.6.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2rayA/v2rayA/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=2d52b8cc6fbd7264e53704684dd8ee56955852dbff324a45360d6ed1c923d8ba +PKG_HASH:=62add8605c42e8e91b5fae22e3b05d146cdeea8fec44089fc1bf0ae29fc76dc0 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/service PKG_LICENSE:=AGPL-3.0-only @@ -60,7 +60,7 @@ define Download/v2raya-web URL:=https://github.com/v2rayA/v2rayA/releases/download/v$(PKG_VERSION)/ URL_FILE:=web.tar.gz FILE:=$(WEB_FILE) - HASH:=123123d3d6d393c065348355b47db45aa6c6af10c60d6320f564883cd93c556a + HASH:=e8bca04deaec72e3323310bc114fa4936474adcbb6638ec2e31dbdf88beabdae endef define Build/Prepare From a064079e10748282eec33605ae6f4481d5bb8b57 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 31 Dec 2024 00:14:50 +0800 Subject: [PATCH 684/972] xray-core: update to 24.12.28 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 86e07cceb41..21bbbe712e9 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=24.12.18 +PKG_VERSION:=24.12.28 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=3d8b4a161a263e7af7bb1a2690961da075d13f980acd806f5cd4e5c8338d7534 +PKG_HASH:=9e7e14ac1da5aac22382b485bb2af3bbef07dc5e3b583e464c479f8f0f06b2d5 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From af5de070c60ed57402383ae08de9316142dc4e44 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 31 Dec 2024 12:57:16 +0800 Subject: [PATCH 685/972] luci-app-ssr-plus: shadowsocksr.lua: Repair code. --- luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 04201c764a3..0469b87ecda 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -111,7 +111,7 @@ function check_port() ret = socket:connect(s.server, s.server_port) if tostring(ret) == "true" then socket:close() - retstring .. "[" .. server_name .. "] OK.
" + retstring = retstring .. "[" .. server_name .. "] OK.
" else retstring = retstring .. "[" .. server_name .. "] Error.
" end From d7b0c8358a27eb1df3b389689c12d37ccfdd66e2 Mon Sep 17 00:00:00 2001 From: Biercenter Date: Tue, 31 Dec 2024 21:28:59 +0800 Subject: [PATCH 686/972] xray-core: update to 24.12.31 xray-core: update to 24.12.31 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 21bbbe712e9..e6e12d04490 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=24.12.28 +PKG_VERSION:=24.12.31 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=9e7e14ac1da5aac22382b485bb2af3bbef07dc5e3b583e464c479f8f0f06b2d5 +PKG_HASH:=e3c24b561ab422785ee8b7d4a15e44db159d9aa249eb29a36ad1519c15267be0 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 9629d0690416ad6ed5a91092d0cbccbb99328eef Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 3 Jan 2025 00:10:11 +0800 Subject: [PATCH 687/972] luci-app-ssr-plus: Optimize and improve `socks` and add some features for Xray's `socks`. --- .../model/cbi/shadowsocksr/advanced.lua | 81 ++++++++++++++++++- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 24 ++++++ .../usr/share/shadowsocksr/gen_config.lua | 15 +++- 3 files changed, 114 insertions(+), 6 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 98539974067..88351ff0ac2 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -1,5 +1,7 @@ +local m, s, o local uci = luci.model.uci.cursor() local server_table = {} +local type_table = {} local function is_finded(e) return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false end @@ -10,6 +12,9 @@ uci:foreach("shadowsocksr", "servers", function(s) elseif s.server and s.server_port then server_table[s[".name"]] = "[%s]:%s:%s" % {string.upper(s.v2ray_protocol or s.type), s.server, s.server_port} end + if s.type then + type_table[s[".name"]] = s.type + end end) local key_table = {} @@ -135,7 +140,7 @@ o.default = "https://raw.githubusercontent.com/neodevpro/neodevhost/master/lite_ o:depends("adblock", "1") o.description = translate("Support AdGuardHome and DNSMASQ format list") -o = s:option(Button, "reset", translate("Reset to defaults")) +o = s:option(Button, "Reset", translate("Reset to defaults")) o.inputstyle = "reload" o.write = function() luci.sys.call("/etc/init.d/shadowsocksr reset") @@ -146,15 +151,82 @@ end s = m:section(TypedSection, "socks5_proxy", translate("Global SOCKS5 Proxy Server")) s.anonymous = true +-- Enable/Disable Option +o = s:option(Flag, "enabled", translate("Enable")) +o.default = 0 +o.rmempty = false + +-- Server Selection o = s:option(ListValue, "server", translate("Server")) -o:value("nil", translate("Disable")) o:value("same", translate("Same as Global Server")) for _, key in pairs(key_table) do - o:value(key, server_table[key]) + o:value(key, server_table[key]) +end +o.default = "same" +o.rmempty = false + +-- Dynamic value handling based on enabled/disabled state +o.cfgvalue = function(self, section) + local enabled = m:get(section, "enabled") + if enabled == "0" then + return m:get(section, "old_server") or "same" + end + return Value.cfgvalue(self, section) or "same" -- Default to `same` when enabled +end + +o.write = function(self, section, value) + local enabled = m:get(section, "enabled") + if enabled == "0" then + local old_server = Value.cfgvalue(self, section) or "same" + if old_server ~= "nil" then + m:set(section, "old_server", old_server) + end + m:set(section, "server", "nil") + else + m:del(section, "old_server") + -- Write the value normally when enabled + Value.write(self, section, value) + end +end + +-- Socks Auth +if is_finded("xray") then +o = s:option(ListValue, "socks5_auth", translate("Socks5 Auth Mode"), translate("Socks protocol auth methods, default:noauth.")) +o.default = "noauth" +o:value("noauth", "NOAUTH") +o:value("password", "PASSWORD") +o.rmempty = true +for key, server_type in pairs(type_table) do + if server_type == "v2ray" then + -- 如果服务器类型是 v2ray,则设置依赖项显示 + o:depends("server", key) + end end -o.default = "nil" + +-- Socks User +o = s:option(Value, "socks5_user", translate("Socks5 User"), translate("Only when auth is password valid, Mandatory.")) +o.rmempty = true +o:depends("socks5_auth", "password") + +-- Socks Password +o = s:option(Value, "socks5_pass", translate("Socks5 Password"), translate("Only when auth is password valid, Not mandatory.")) +o.password = true +o.rmempty = true +o:depends("socks5_auth", "password") + +-- Socks Mixed +o = s:option(Flag, "socks5_mixed", translate("Enabled Mixed"), translate("Mixed as an alias of socks, default:Enabled.")) +o.default = "1" o.rmempty = false +for key, server_type in pairs(type_table) do + if server_type == "v2ray" then + -- 如果服务器类型是 v2ray,则设置依赖项显示 + o:depends("server", key) + end +end +end +-- Local Port o = s:option(Value, "local_port", translate("Local Port")) o.datatype = "port" o.default = 1080 @@ -171,6 +243,7 @@ o.default = 0 o = s:option(ListValue, "fragment_packets", translate("Fragment Packets"), translate("\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. \"tlshello\" is for TLS client hello packet fragmentation.")) o.default = "tlshello" o:value("tlshello", "tlshello") +o:value("1-1", "1-1") o:value("1-2", "1-2") o:value("1-3", "1-3") o:value("1-5", "1-5") diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index bc8f6724209..9992e8173d0 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -892,6 +892,30 @@ msgstr "本机服务端" msgid "Global SOCKS5 Proxy Server" msgstr "SOCKS5 代理服务端(全局)" +msgid "Socks5 Auth Mode" +msgstr "Socks5 认证方式" + +msgid "Socks protocol auth methods, default:noauth." +msgstr "Socks 协议的认证方式,默认值:noauth。" + +msgid "Socks5 User" +msgstr "Socks5 用户名" + +msgid "Only when auth is password valid, Mandatory." +msgstr "仅当 auth 为 password 时有效,必填。" + +msgid "Socks5 Password" +msgstr "Socks5 密码" + +msgid "Only when auth is password valid, Not mandatory." +msgstr "仅当 auth 为 password 时有效,非必填。" + +msgid "Enabled Mixed" +msgstr "启用 Mixed" + +msgid "Mixed as an alias of socks, default:Enabled." +msgstr "Mixed 作为 SOCKS 的别名,默认:启用。" + msgid "Xray Fragment Settings" msgstr "Xray 分片设置" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 1a35c92ad6c..8210ac36096 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -12,6 +12,7 @@ local chain = arg[5] or "0" local chain_local_port = string.split(chain, "/")[2] or "0" local server = ucursor:get_all("shadowsocksr", server_section) +local socks_server = ucursor:get_all("shadowsocksr", "@socks5_proxy[0]") or {} local xray_fragment = ucursor:get_all("shadowsocksr", "@global_xray_fragment[0]") or {} local xray_noise = ucursor:get_all("shadowsocksr", "@xray_noise_packets[0]") or {} local outbound_settings = nil @@ -180,10 +181,20 @@ end -- 检查是否启用 socks 代理 if proto:find("tcp") and socks_port ~= "0" then table.insert(Xray.inbounds, { - -- socks + -- socks protocol = "socks", port = tonumber(socks_port), - settings = {auth = "noauth", udp = true} + settings = { + auth = socks_server.socks5_auth, + udp = true, + mixed = (socks_server.socks5_mixed == '1') and true or false, + accounts = (socks_server.socks5_auth ~= "noauth") and { + { + user = socks_server.socks5_user, + pass = socks_server.socks5_pass + } + } or nil + } }) end From f4aca463cd362fbc92cf88047801b4ac23eb9c80 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 7 Jan 2025 00:16:24 +0800 Subject: [PATCH 688/972] luci-app-ssr-plus: gen_config.lua: Fix `scoks` is global server not run issues. --- luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 8210ac36096..2a92de09dc9 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -184,7 +184,7 @@ if proto:find("tcp") and socks_port ~= "0" then -- socks protocol = "socks", port = tonumber(socks_port), - settings = { + settings = (socks_server.server ~= "same") and { auth = socks_server.socks5_auth, udp = true, mixed = (socks_server.socks5_mixed == '1') and true or false, @@ -194,7 +194,7 @@ if proto:find("tcp") and socks_port ~= "0" then pass = socks_server.socks5_pass } } or nil - } + } or nil }) end From 0b38cfe2f7869a23255ae99c28a46627bd76148a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 7 Jan 2025 00:55:10 +0800 Subject: [PATCH 689/972] luci-app-ssr-plus: luci-app-ssr-plus.json: Fix `www/cgi-bin/luci` erro issues. --- .../root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json b/luci-app-ssr-plus/root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json index 2c38125913a..4b96a2dd18f 100644 --- a/luci-app-ssr-plus/root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json +++ b/luci-app-ssr-plus/root/usr/share/rpcd/acl.d/luci-app-ssr-plus.json @@ -2,10 +2,16 @@ "luci-app-ssr-plus": { "description": "Grant UCI access for luci-app-ssr-plus", "read": { + "file": { + "/etc/ssrplus/*": [ "read" ] + }, "uci": ["shadowsocksr"] }, "write": { + "file": { + "/etc/ssrplus/*": [ "write" ] + }, "uci": ["shadowsocksr"] } } -} \ No newline at end of file +} From f35893c67cc763a544a08b906fb03713fc6ed8c2 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 10 Jan 2025 22:23:13 +0800 Subject: [PATCH 690/972] luci-app-ssr-plus: optimize the backup and restore page. --- .../luasrc/model/cbi/shadowsocksr/log.lua | 4 ++-- .../luasrc/view/shadowsocksr/backup_restore.htm | 12 +++++------- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua index b0bd4f6f321..c7af147985e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/log.lua @@ -26,8 +26,8 @@ s = fb:section(SimpleSection, translate("Backup and Restore"), translate("Backup "
" .. translate("Note: Restoring configurations across different versions may cause compatibility issues.") .. "") -o = s:option(DummyValue, '', nil) -o.template = "shadowsocksr/backup_restore" +s.anonymous = true +s:append(Template("shadowsocksr/backup_restore")) -- 定义备份目标文件和目录 local backup_targets = { diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm index d775addf84a..364b148222d 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm @@ -1,22 +1,21 @@ -<%+cbi/valueheader%>
- +
- +
- +
@@ -28,8 +27,8 @@

<%:Restore Backup File%>


- - + +
@@ -151,4 +150,3 @@

<%:Restore Backup File%>

} } -<%+cbi/valuefooter%> From ed7def9ef7c993d9b7a18d5106765c2ac7ca55c3 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 12 Jan 2025 21:57:36 +0800 Subject: [PATCH 691/972] xray-core: update to 25.1.1 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index e6e12d04490..09b9485983a 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=24.12.31 +PKG_VERSION:=25.1.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=e3c24b561ab422785ee8b7d4a15e44db159d9aa249eb29a36ad1519c15267be0 +PKG_HASH:=619b10d24bab367a0788b3585f8d31fa4e5e060be7f72647d6ee17bd744603a5 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 35792ab6a12d3babcca574d18a87579379b889ab Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 12 Jan 2025 21:58:52 +0800 Subject: [PATCH 692/972] v2ray-core: update to 5.24.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index a481a0774bb..b96bbf3608b 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.22.0 +PKG_VERSION:=5.24.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=df25a873c8f7fb30f44cb6d26b18db264dfa209df5aeb6116fc43df7157fb4b8 +PKG_HASH:=1b434135924f324dc3f6cf415b9109596a7b356ffcb7948b4e206b50a5e41a88 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 700a0535972fbd05e0103e032227d13ff5e3ccb3 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 12 Jan 2025 22:00:16 +0800 Subject: [PATCH 693/972] shadowsocks-rust: update to 1.22.0 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index 32daf1331ec..212a716fe6b 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.21.2 +PKG_VERSION:=1.22.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=a2269e896a27a183dfd6d757d130978b46e1ac19f936c4229188d017b7ecf867 +PKG_HASH:=2857372667b66aa7f8ef2d27a8a19209cbf3e5da2e6d1d1d493411d72d173861 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From feeb2907b3c497fe68f8cfff5f35333e805432d1 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 12 Jan 2025 23:09:08 +0800 Subject: [PATCH 694/972] luci-app-ssr-plus: Update backup time format. --- luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 0469b87ecda..31989b01a5c 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -151,7 +151,7 @@ function create_backup() "/etc/config/shadowsocksr", "/etc/ssrplus/*" } - local date = os.date("%Y%m%d") + local date = os.date("%Y-%m-%d-%H-%M-%S") local tar_file = "/tmp/shadowsocksr-" .. date .. "-backup.tar.gz" nixio.fs.remove(tar_file) local cmd = "tar -czf " .. tar_file .. " " .. table.concat(backup_files, " ") From 3c5883a6fc53cb27ff3dcc1731c40f39cdf53fd4 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 12 Jan 2025 00:07:17 +0800 Subject: [PATCH 695/972] luci-app-ssr-plus: Add Xray new version `XHTTP` transport (formerly `SplitHTTP` transport) support. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See: https://github.com/XTLS/Xray-core/discussions/4113 说明:本次新增的 `XHTTP` 传输协议,在使用新版本的Xray情况下,可将旧版本节点的 `SplitHTTP` 传输协议修改为新版本的 `XHTTP` 传输协议,但旧版本的Xray只能使用 `SplitHTTP` 传输协议,因此暂不删除旧版本的`SplitHTTP` 传输协议支持。 --- .../model/cbi/shadowsocksr/advanced.lua | 6 +- .../model/cbi/shadowsocksr/client-config.lua | 75 ++++++++++++++++++- .../luasrc/view/shadowsocksr/ssrurl.htm | 36 +++++++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 33 ++++++-- .../usr/share/shadowsocksr/gen_config.lua | 25 +++++-- .../root/usr/share/shadowsocksr/subscribe.lua | 61 +++++++++++++++ 6 files changed, 221 insertions(+), 15 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 88351ff0ac2..6bd7aaafb33 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -204,12 +204,12 @@ for key, server_type in pairs(type_table) do end -- Socks User -o = s:option(Value, "socks5_user", translate("Socks5 User"), translate("Only when auth is password valid, Mandatory.")) +o = s:option(Value, "socks5_user", translate("Socks5 User"), translate("Only when Socks5 Auth Mode is password valid, Mandatory.")) o.rmempty = true o:depends("socks5_auth", "password") -- Socks Password -o = s:option(Value, "socks5_pass", translate("Socks5 Password"), translate("Only when auth is password valid, Not mandatory.")) +o = s:option(Value, "socks5_pass", translate("Socks5 Password"), translate("Only when Socks5 Auth Mode is password valid, Not mandatory.")) o.password = true o.rmempty = true o:depends("socks5_auth", "password") @@ -263,7 +263,7 @@ o.default = 0 s = m:section(TypedSection, "xray_noise_packets", translate("Xray Noise Packets")) s.description = translate( "" .. translate("To send noise packets, select \"Noise\" in Xray Settings.") .. "" .. - "
" .. translate("For specific usage, see: ") .. "" .. + "
" .. translate("For specific usage, see:") .. "" .. "" .. "" .. translate("Click to the page") .. "") s.template = "cbi/tblsection" diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index c858b951572..5504de197e1 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -4,6 +4,7 @@ require "nixio.fs" require "luci.sys" require "luci.http" +require "luci.jsonc" require "luci.model.ipkg" local m, s, o @@ -504,7 +505,6 @@ o.rmempty = true o.default = "" o:depends("type", "tuic") - o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") o:value("native", translate("native UDP characteristics")) @@ -623,6 +623,7 @@ o:value("kcp", "mKCP") o:value("ws", "WebSocket") o:value("httpupgrade", "HTTPUpgrade") o:value("splithttp", "SplitHTTP") +o:value("xhttp", "XHTTP") o:value("h2", "HTTP/2") o:value("quic", "QUIC") o:value("grpc", "gRPC") @@ -703,6 +704,78 @@ o = s:option(Value, "splithttp_path", translate("Splithttp Path")) o:depends("transport", "splithttp") o.rmempty = true +-- [[ XHTTP部分 ]]-- +o = s:option(ListValue, "xhttp_alpn", translate("XHTTP Alpn")) +o.default = "" +o:value("", translate("Default")) +o:value("h3") +o:value("h2") +o:value("h3,h2") +o:value("http/1.1") +o:value("h2,http/1.1") +o:value("h3,h2,http/1.1") +o:depends("transport", "xhttp") + +o = s:option(ListValue, "xhttp_mode", translate("XHTTP Mode")) +o:depends("transport", "xhttp") +o.default = "auto" +o:value("auto") +o:value("packet-up") +o:value("stream-up") +o:value("stream-one") + +o = s:option(Value, "xhttp_host", translate("XHTTP Host")) +o:depends({transport = "xhttp", tls = false}) +o.rmempty = true + +o = s:option(Value, "xhttp_path", translate("XHTTP Path")) +o.placeholder = "/" +o:depends("transport", "xhttp") +o.rmempty = true + +o = s:option(Flag, "enable_xhttp_extra", translate("XHTTP Extra")) +o.description = translate("Enable this option to configure XHTTP Extra (JSON format).") +o.default = "0" +o.rmempty = false +o:depends("transport", "xhttp") + +o = s:option(TextValue, "xhttp_extra", " ") +o.description = translate( + "" .. translate("Configure XHTTP Extra Settings (JSON format), see:") .. "" .. + " " .. + "" .. translate("Click to the page") .. "") +o:depends("enable_xhttp_extra", true) +o.rmempty = true +o.rows = 10 +o.wrap = "off" +o.custom_write = function(self, section, value) + m:set(section, "xhttp_extra", value) + local success, data = pcall(luci.jsonc.parse, value) + if success and data then + local address = (data.extra and data.extra.downloadSettings and data.extra.downloadSettings.address) + or (data.downloadSettings and data.downloadSettings.address) + if address and address ~= "" then + m:set(section, "download_address", address) + else + m:del(section, "download_address") + end + else + m:del(section, "download_address") + end +end +o.validate = function(self, value) + value = value:gsub("\r\n", "\n"):gsub("^[ \t]*\n", ""):gsub("\n[ \t]*$", ""):gsub("\n[ \t]*\n", "\n") + if value:sub(-1) == "\n" then + value = value:sub(1, -2) + end + local success, data = pcall(luci.jsonc.parse, value) + if not success or not data then + return nil, translate("Invalid JSON format") + end + + return value +end + -- [[ H2部分 ]]-- -- H2域名 diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 2607fb70848..d8dfbdd7784 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -263,6 +263,18 @@ } document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; break; + case "xhttp": + if (params.get("security") !== "tls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_host')[0].value = params.get("host") ? decodeURIComponent(params.get("host")) : ""; + } + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_mode')[0].value = params.get("mode") || "auto"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_path')[0].value = params.get("path") ? decodeURIComponent(params.get("path")) : "/"; + if (params.get("extra") && params.get("extra").trim() !== "") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra')[0].checked = true; // 设置 enable_xhttp_extra 为 true + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra')[0].dispatchEvent(event); // 触发事件 + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_extra')[0].value = params.get("extra") || ""; + } + break; case "kcp": document.getElementsByName('cbid.shadowsocksr.' + sid + '.kcp_guise')[0].value = params.get("headerType") || "none"; document.getElementsByName('cbid.shadowsocksr.' + sid + '.seed')[0].value = params.get("seed") || ""; @@ -338,6 +350,16 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.splithttp_path')[0].value = ssm.path; } + if (ssm.net == "xhttp") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_mode')[0].value = ssm.mode; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_host')[0].value = ssm.host; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_path')[0].value = ssm.path; + if (params.get("extra") && params.get("extra").trim() !== "") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra')[0].checked = true; // 设置 enable_xhttp_extra 为 true + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra')[0].dispatchEvent(event); // 触发事件 + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_extra')[0].value = ssm.extra; + } + } if (ssm.net == "h2") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_host')[0].value = ssm.host; document.getElementsByName('cbid.shadowsocksr.' + sid + '.h2_path')[0].value = ssm.path; @@ -352,6 +374,7 @@ if (ssm.tls == "tls") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_alpn')[0].value = ssm.alpn; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host; } if (ssm.mux !== undefined) { @@ -412,6 +435,7 @@ setElementValue('cbid.shadowsocksr.' + sid + '.tls_flow', params.get("flow") || "none"); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tls_flow', event); + setElementValue('cbid.shadowsocksr.' + sid + '.xhttp_alpn', params.get("alpn") || ""); setElementValue('cbid.shadowsocksr.' + sid + '.fingerprint', params.get("fp") || ""); setElementValue('cbid.shadowsocksr.' + sid + '.tls_host', params.get("sni") || ""); } @@ -434,6 +458,18 @@ } setElementValue('cbid.shadowsocksr.' + sid + '.splithttp_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); break; + case "xhttp": + if (params.get("security") !== "tls") { + setElementValue('cbid.shadowsocksr.' + sid + '.xhttp_host', params.get("host") ? decodeURIComponent(params.get("host")) : ""); + } + setElementValue('cbid.shadowsocksr.' + sid + '.xhttp_mode', params.get("mode") || "auto"); + setElementValue('cbid.shadowsocksr.' + sid + '.xhttp_path', params.get("path") ? decodeURIComponent(params.get("path")) : "/"); + if (params.get("extra") && params.get("extra").trim() !== "") { + setElementValue('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra', true); // 设置 enable_xhttp_extra 为 true + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.enable_xhttp_extra', event); // 触发事件 + setElementValue('cbid.shadowsocksr.' + sid + '.xhttp_extra', params.get("extra") || ""); + } + break; case "kcp": setElementValue('cbid.shadowsocksr.' + sid + '.kcp_guise', params.get("headerType") || "none"); setElementValue('cbid.shadowsocksr.' + sid + '.seed', params.get("seed") || ""); diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 9992e8173d0..03541f45c94 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -901,14 +901,14 @@ msgstr "Socks 协议的认证方式,默认值:noauth。" msgid "Socks5 User" msgstr "Socks5 用户名" -msgid "Only when auth is password valid, Mandatory." -msgstr "仅当 auth 为 password 时有效,必填。" +msgid "Only when Socks5 Auth Mode is password valid, Mandatory." +msgstr "仅当 Socks5 认证方式为 Password 时有效,必填。" msgid "Socks5 Password" msgstr "Socks5 密码" -msgid "Only when auth is password valid, Not mandatory." -msgstr "仅当 auth 为 password 时有效,非必填。" +msgid "Only when Socks5 Auth Mode is password valid, Not mandatory." +msgstr "仅当 Socks5 认证方式为 Password 时有效,非必填。" msgid "Enabled Mixed" msgstr "启用 Mixed" @@ -952,8 +952,8 @@ msgstr "UDP 噪声,在某些情况下可以绕过一些针对 UDP 协议的限 msgid "To send noise packets, select \"Noise\" in Xray Settings." msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。" -msgid "For specific usage, see: " -msgstr "具体使用方法参见:" +msgid "For specific usage, see:" +msgstr "具体使用方法,请参见:" msgid "Click to the page" msgstr "点击前往" @@ -1018,6 +1018,27 @@ msgstr "SplitHTTP 主机名" msgid "Splithttp Path" msgstr "SplitHTTP 路径" +msgid "XHTTP Mode" +msgstr "XHTTP 模式" + +msgid "XHTTP Host" +msgstr "XHTTP 主机名" + +msgid "XHTTP Path" +msgstr "XHTTP 路径" + +msgid "XHTTP Extra" +msgstr "XHTTP 附加项" + +msgid "Enable this option to configure XHTTP Extra (JSON format)." +msgstr "启用此选项配置 XHTTP 附加项(JSON 格式)。" + +msgid "Configure XHTTP Extra Settings (JSON format), see:" +msgstr "配置 XHTTP 额外设置(JSON 格式),请参见:" + +msgid "Invalid JSON format" +msgstr "无效的 JSON 格式" + msgid "HTTP/2 Host" msgstr "HTTP/2 主机名" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 8210ac36096..9c50aa5f081 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -4,7 +4,7 @@ local ucursor = require "luci.model.uci".cursor() local json = require "luci.jsonc" local server_section = arg[1] -local proto = arg[2] +local proto = arg[2] or "tcp" local local_port = arg[3] or "0" local socks_port = arg[4] or "0" @@ -179,7 +179,7 @@ end -- 开启 socks 代理 -- 检查是否启用 socks 代理 -if proto:find("tcp") and socks_port ~= "0" then +if proto and proto:find("tcp") and socks_port ~= "0" then table.insert(Xray.inbounds, { -- socks protocol = "socks", @@ -209,7 +209,7 @@ end security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or (server.reality == '1') and "reality" or nil, tlsSettings = (server.tls == '1') and { -- tls - alpn = server.tls_alpn, + alpn = (server.transport == "xhttp" and server.xhttp_alpn ~= "") and server.xhttp_alpn or server.tls_alpn, fingerprint = server.fingerprint, allowInsecure = (server.insecure == "1"), serverName = server.tls_host, @@ -225,6 +225,7 @@ end minVersion = "1.3" } or nil, realitySettings = (server.reality == '1') and { + alpn = (server.transport == "xhttp" and server.xhttp_alpn ~= "") and server.xhttp_alpn or nil, publicKey = server.reality_publickey, shortId = server.reality_shortid, spiderX = server.reality_spiderx, @@ -271,6 +272,20 @@ end host = (server.splithttp_host or server.tls_host) or nil, path = server.splithttp_path or "/" } or nil, + xhttpSettings = (server.transport == "xhttp") and { + -- xhttp + mode = server.xhttp_mode or "auto", + host = (server.xhttp_host or server.tls_host) or nil, + path = server.xhttp_path or "/", + extra = (server.enable_xhttp_extra == "1" and server.xhttp_extra) and (function() + local success, parsed = pcall(json.parse, server.xhttp_extra) + if success then + return parsed.extra or parsed + else + return nil + end + end)() or nil + } or nil, httpSettings = (server.transport == "h2") and { -- h2 path = server.h2_path or "", @@ -387,7 +402,7 @@ local ss = { server_port = tonumber(server.server_port), local_address = "0.0.0.0", local_port = tonumber(local_port), - mode = (proto == "tcp,udp") and "tcp_and_udp" or proto .. "_only", + mode = (proto == "tcp,udp") and "tcp_and_udp" or (proto .. "_only"), password = server.password, method = server.encrypt_method_ss, timeout = tonumber(server.timeout), @@ -395,7 +410,7 @@ local ss = { reuse_port = true } local hysteria = { - server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. server.port_range) or server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. server.port_range or server.server .. ":443")), + server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. server.port_range) or (server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. server.port_range or server.server .. ":443"))), bandwidth = (server.uplink_capacity or server.downlink_capacity) and { up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil, down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 777923a18b6..c4ad4768abf 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -193,6 +193,24 @@ local function processData(szType, content) result.splithttp_host = info.host result.splithttp_path = info.path end + if info.net == 'xhttp' then + result.xhttp_mode = info.mode + result.xhttp_host = info.host + result.xhttp_path = info.path + -- 检查 extra 参数是否存在且非空 + result.enable_xhttp_extra = (info.extra and info.extra ~= "") and "1" or nil + result.xhttp_extra = (info.extra and info.extra ~= "") and info.extra or nil + -- 尝试解析 JSON 数据 + local success, Data = pcall(jsonParse, info.extra) + if success and Data then + local address = (Data.extra and Data.extra.downloadSettings and Data.extra.downloadSettings.address) + or (Data.downloadSettings and Data.downloadSettings.address) + result.download_address = address and address ~= "" and address or nil + else + -- 如果解析失败,清空下载地址 + result.download_address = nil + end + end if info.net == 'h2' then result.h2_host = info.host result.h2_path = info.path @@ -231,6 +249,9 @@ local function processData(szType, content) end if info.tls == "tls" or info.tls == "1" then result.tls = "1" + if info.alpn and info.alpn ~= "" then + result.xhttp_alpn = info.alpn + end if info.sni and info.sni ~= "" then result.tls_host = info.sni elseif info.host then @@ -353,6 +374,11 @@ local function processData(szType, content) local t = split(v, '=') params[t[1]] = t[2] end + if params.alpn then + -- 处理 alpn 参数 + result.xhttp_alpn = params.alpn + end + if params.sni then -- 未指定peer(sni)默认使用remote addr result.tls_host = params.sni @@ -385,6 +411,23 @@ local function processData(szType, content) elseif result.transport == "splithttp" then result.splithttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.splithttp_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "xhttp" then + result.xhttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.xhttp_mode = params.mode or "auto" + result.xhttp_path = params.path and UrlDecode(params.path) or "/" + -- 检查 extra 参数是否存在且非空 + result.enable_xhttp_extra = (params.extra and params.extra ~= "") and "1" or nil + result.xhttp_extra = (params.extra and params.extra ~= "") and params.extra or nil + -- 尝试解析 JSON 数据 + local success, Data = pcall(jsonParse, params.extra) + if success and Data then + local address = (Data.extra and Data.extra.downloadSettings and Data.extra.downloadSettings.address) + or (Data.downloadSettings and Data.downloadSettings.address) + result.download_address = address and address ~= "" and address or nil + else + -- 如果解析失败,清空下载地址 + result.download_address = nil + end elseif result.transport == "http" or result.transport == "h2" then result.transport = "h2" result.h2_host = params.host and UrlDecode(params.host) or nil @@ -426,6 +469,7 @@ local function processData(szType, content) result.vless_encryption = params.encryption or "none" result.transport = params.type or "tcp" result.tls = (params.security == "tls" or params.security == "xtls") and "1" or "0" + result.xhttp_alpn = params.alpn or "" result.tls_host = params.sni result.tls_flow = (params.security == "tls" or params.security == "reality") and params.flow or nil result.fingerprint = params.fp @@ -442,6 +486,23 @@ local function processData(szType, content) elseif result.transport == "splithttp" then result.splithttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil result.splithttp_path = params.path and UrlDecode(params.path) or "/" + elseif result.transport == "xhttp" then + result.xhttp_host = (result.tls ~= "1") and (params.host and UrlDecode(params.host)) or nil + result.xhttp_mode = params.mode or "auto" + result.xhttp_path = params.path and UrlDecode(params.path) or "/" + -- 检查 extra 参数是否存在且非空 + result.enable_xhttp_extra = (params.extra and params.extra ~= "") and "1" or nil + result.xhttp_extra = (params.extra and params.extra ~= "") and params.extra or nil + -- 尝试解析 JSON 数据 + local success, Data = pcall(jsonParse, params.extra) + if success and Data then + local address = (Data.extra and Data.extra.downloadSettings and Data.extra.downloadSettings.address) + or (Data.downloadSettings and Data.downloadSettings.address) + result.download_address = address and address ~= "" and address or nil + else + -- 如果解析失败,清空下载地址 + result.download_address = nil + end -- make it compatible with bullshit, "h2" transport is non-existent at all elseif result.transport == "http" or result.transport == "h2" then result.transport = "h2" From 4382dba565014548017b7e0cf47e4a960df86bbf Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 Jan 2025 23:22:55 +0800 Subject: [PATCH 696/972] v2ray-core: update to 5.25.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index b96bbf3608b..1b1d7be4b14 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.24.0 +PKG_VERSION:=5.25.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=1b434135924f324dc3f6cf415b9109596a7b356ffcb7948b4e206b50a5e41a88 +PKG_HASH:=becbb68bed2e2b9e119301c5f0d19831c0510df810392526d825dba37021571c PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From d68788db4a0bb958511cb5bac0cefefc7bd2a66d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 18 Jan 2025 23:24:08 +0800 Subject: [PATCH 697/972] v2ray-plugin: update to 5.25.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 702e5a011aa..4ce136ce852 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.17.0 +PKG_VERSION:=5.25.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=035823fa70d0c7e6afa6cced6b9d6f8b29c05a5f28852ad5954e957b61337c9e +PKG_HASH:=64d2cc376c16ade97b8e2cce69e0c98d74f530dcf8a30cf7d22255969ca5c10d PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From cee47e81cbb9bd1958d6ecf94a556ac8ad386b99 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 19 Jan 2025 00:12:45 +0800 Subject: [PATCH 698/972] v2ray-plugin: Fix `GO_PKG` module path. --- v2ray-plugin/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 4ce136ce852..2ef3e0d1f15 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -22,7 +22,7 @@ PKG_BUILD_PARALLEL:=1 PKG_USE_MIPS16:=0 PKG_BUILD_FLAGS:=no-mips16 -GO_PKG:=github.com/shadowsocks/v2ray-plugin +GO_PKG:=github.com/teddysun/v2ray-plugin GO_PKG_LDFLAGS_X:=main.VERSION=v$(PKG_VERSION) include $(INCLUDE_DIR)/package.mk From 49cf3041782bae3ab64242682340a497ac1f6f53 Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Sun, 19 Jan 2025 19:36:15 +0800 Subject: [PATCH 699/972] shadowsocks-libev: update mbedtls 3.6 build fixing patch Current mbedtls 3.6 fix uses private fields in mbedtls, which increases complexity and may break functionality in future mbedtls versions. So rework this patch to remove them. --- .../patches/101-fix-mbedtls3.6-build.patch | 198 --------------- ...-3.6.0-ver-compilation-failure-issue.patch | 232 ++++++++++++++++++ 2 files changed, 232 insertions(+), 198 deletions(-) delete mode 100644 shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch create mode 100644 shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch diff --git a/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch b/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch deleted file mode 100644 index 4e7f79f7a52..00000000000 --- a/shadowsocks-libev/patches/101-fix-mbedtls3.6-build.patch +++ /dev/null @@ -1,198 +0,0 @@ -From c2bdb9847e374331a4f1c8fcd3d93e0b57d4c6fc Mon Sep 17 00:00:00 2001 -From: Zxl hhyccc -Date: Sun, 7 Jul 2024 17:08:27 +0800 -Subject: [PATCH] Fix in 'mbedtls 3.6.0 ver' compilation failure issue -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -*** The added patch is available in 'mbedtls 3.6 version'. - -*** fix *clen += tlen; may cause potential bounds error. - -Co-authored-by: Lu jicong -Signed-off-by: Zxl hhyccc ---- - m4/mbedtls.m4 | 20 +++++++++++++++++++ - src/aead.c | 17 ++++++++++++++++ - src/crypto.c | 2 +- - src/stream.c | 17 ++++++++++++++++ - - 4 files changed, 55 insertions(+), 1 deletion(-) - ---- a/m4/mbedtls.m4 -+++ b/m4/mbedtls.m4 -@@ -31,7 +31,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_CIPHER_MODE_CFB -@@ -48,7 +53,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_ARC4_C -@@ -64,7 +74,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_BLOWFISH_C -@@ -80,7 +95,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_CAMELLIA_C ---- a/src/aead.c -+++ b/src/aead.c -@@ -178,9 +178,14 @@ aead_cipher_encrypt(cipher_ctx_t *cipher - case AES192GCM: - case AES128GCM: - -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - err = mbedtls_cipher_auth_encrypt(cipher_ctx->evp, n, nlen, ad, adlen, - m, mlen, c, clen, c + mlen, tlen); - *clen += tlen; -+#else -+ err = mbedtls_cipher_auth_encrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, -+ m, mlen, c, mlen + tlen, clen, tlen); -+#endif - break; - case CHACHA20POLY1305IETF: - err = crypto_aead_chacha20poly1305_ietf_encrypt(c, &long_clen, m, mlen, -@@ -226,8 +231,13 @@ aead_cipher_decrypt(cipher_ctx_t *cipher - // Otherwise, just use the mbedTLS one with crappy AES-NI. - case AES192GCM: - case AES128GCM: -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - err = mbedtls_cipher_auth_decrypt(cipher_ctx->evp, n, nlen, ad, adlen, - m, mlen - tlen, p, plen, m + mlen - tlen, tlen); -+#else -+ err = mbedtls_cipher_auth_decrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, -+ m, mlen, p, mlen - tlen, plen, tlen); -+#endif - break; - case CHACHA20POLY1305IETF: - err = crypto_aead_chacha20poly1305_ietf_decrypt(p, &long_plen, NULL, m, mlen, -@@ -724,9 +734,26 @@ aead_key_init(int method, const char *pa - if (method >= CHACHA20POLY1305IETF) { - cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); - cipher->info = cipher_info; -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - cipher->info->base = NULL; - cipher->info->key_bitlen = supported_aead_ciphers_key_size[method] * 8; - cipher->info->iv_size = supported_aead_ciphers_nonce_size[method]; -+#else -+ cipher->info->private_base_idx = 0; -+ -+#ifdef MBEDTLS_KEY_BITLEN_SHIFT -+ cipher->info->private_key_bitlen = supported_aead_ciphers_key_size[method] * 8 >> MBEDTLS_KEY_BITLEN_SHIFT; -+#else -+ cipher->info->private_key_bitlen = supported_aead_ciphers_key_size[method] * 8; -+#endif -+ -+#ifdef MBEDTLS_IV_SIZE_SHIFT -+ cipher->info->private_iv_size = supported_aead_ciphers_nonce_size[method] >> MBEDTLS_IV_SIZE_SHIFT; -+#else -+ cipher->info->private_iv_size = supported_aead_ciphers_nonce_size[method]; -+#endif -+ -+#endif - } else { - cipher->info = (cipher_kt_t *)aead_get_cipher_type(method); - } ---- a/src/crypto.c -+++ b/src/crypto.c -@@ -103,7 +103,7 @@ crypto_md5(const unsigned char *d, size_ - if (md == NULL) { - md = m; - } --#if MBEDTLS_VERSION_NUMBER >= 0x02070000 -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 && MBEDTLS_VERSION_NUMBER >= 0x02070000 - if (mbedtls_md5_ret(d, n, md) != 0) - FATAL("Failed to calculate MD5"); - #else ---- a/src/stream.c -+++ b/src/stream.c -@@ -174,7 +174,11 @@ cipher_nonce_size(const cipher_t *cipher - if (cipher == NULL) { - return 0; - } -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - return cipher->info->iv_size; -+#else -+ return (int)mbedtls_cipher_info_get_iv_size(cipher->info); -+#endif - } - - int -@@ -192,7 +196,11 @@ cipher_key_size(const cipher_t *cipher) - return 0; - } - /* From Version 1.2.7 released 2013-04-13 Default Blowfish keysize is now 128-bits */ -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - return cipher->info->key_bitlen / 8; -+#else -+ return (int)mbedtls_cipher_info_get_key_bitlen(cipher->info) / 8; -+#endif - } - - const cipher_kt_t * -@@ -645,9 +653,26 @@ stream_key_init(int method, const char * - if (method == SALSA20 || method == CHACHA20 || method == CHACHA20IETF) { - cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); - cipher->info = cipher_info; -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - cipher->info->base = NULL; - cipher->info->key_bitlen = supported_stream_ciphers_key_size[method] * 8; - cipher->info->iv_size = supported_stream_ciphers_nonce_size[method]; -+#else -+ cipher->info->private_base_idx = 0; -+ -+#ifdef MBEDTLS_KEY_BITLEN_SHIFT -+ cipher->info->private_key_bitlen = supported_stream_ciphers_key_size[method] * 8 >> MBEDTLS_KEY_BITLEN_SHIFT; -+#else -+ cipher->info->private_key_bitlen = supported_stream_ciphers_key_size[method] * 8; -+#endif -+ -+#ifdef MBEDTLS_IV_SIZE_SHIFT -+ cipher->info->private_iv_size = supported_stream_ciphers_nonce_size[method] >> MBEDTLS_IV_SIZE_SHIFT; -+#else -+ cipher->info->private_iv_size = supported_stream_ciphers_nonce_size[method]; -+#endif -+ -+#endif - } else { - cipher->info = (cipher_kt_t *)stream_get_cipher_type(method); - } diff --git a/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch b/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch new file mode 100644 index 00000000000..9616ee9e484 --- /dev/null +++ b/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch @@ -0,0 +1,232 @@ +From 2b33e8e6778db08624dbf8ec6fe1e8f7b1a4bee8 Mon Sep 17 00:00:00 2001 +From: Lu jicong +Date: Fri, 10 Jan 2025 22:05:31 +0800 +Subject: [PATCH] Fix in 'mbedtls 3.6.0 ver' compilation failure issue + +Fix mbedtls 3.6 compatibility + +Co-authored-by: Zxl hhyccc +Signed-off-by: Lu jicong +--- + m4/mbedtls.m4 | 20 ++++++++++++++++++++ + src/aead.c | 23 +++++++++++------------ + src/crypto.c | 2 +- + src/crypto.h | 1 - + src/stream.c | 51 ++++++--------------------------------------------- + 5 files changed, 38 insertions(+), 59 deletions(-) + +diff --git a/m4/mbedtls.m4 b/m4/mbedtls.m4 +index 2c478b9..a795790 100644 +--- a/m4/mbedtls.m4 ++++ b/m4/mbedtls.m4 +@@ -31,7 +31,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_CIPHER_MODE_CFB +@@ -48,7 +53,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_ARC4_C +@@ -64,7 +74,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_BLOWFISH_C +@@ -80,7 +95,12 @@ AC_DEFUN([ss_MBEDTLS], + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[ ++#include ++#if MBEDTLS_VERSION_NUMBER >= 0x03000000 ++#include ++#else + #include ++#endif + ]], + [[ + #ifndef MBEDTLS_CAMELLIA_C +diff --git a/src/aead.c b/src/aead.c +index 358ec93..73349da 100644 +--- a/src/aead.c ++++ b/src/aead.c +@@ -177,9 +177,13 @@ aead_cipher_encrypt(cipher_ctx_t *cipher_ctx, + // Otherwise, just use the mbedTLS one with crappy AES-NI. + case AES192GCM: + case AES128GCM: +- ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + err = mbedtls_cipher_auth_encrypt(cipher_ctx->evp, n, nlen, ad, adlen, + m, mlen, c, clen, c + mlen, tlen); ++#else ++ err = mbedtls_cipher_auth_encrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, ++ m, mlen, c, mlen + tlen, clen, tlen); ++#endif + *clen += tlen; + break; + case CHACHA20POLY1305IETF: +@@ -226,8 +230,13 @@ aead_cipher_decrypt(cipher_ctx_t *cipher_ctx, + // Otherwise, just use the mbedTLS one with crappy AES-NI. + case AES192GCM: + case AES128GCM: ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 + err = mbedtls_cipher_auth_decrypt(cipher_ctx->evp, n, nlen, ad, adlen, + m, mlen - tlen, p, plen, m + mlen - tlen, tlen); ++#else ++ err = mbedtls_cipher_auth_decrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, ++ m, mlen, p, mlen - tlen, plen, tlen); ++#endif + break; + case CHACHA20POLY1305IETF: + err = crypto_aead_chacha20poly1305_ietf_decrypt(p, &long_plen, NULL, m, mlen, +@@ -721,17 +730,7 @@ aead_key_init(int method, const char *pass, const char *key) + cipher_t *cipher = (cipher_t *)ss_malloc(sizeof(cipher_t)); + memset(cipher, 0, sizeof(cipher_t)); + +- if (method >= CHACHA20POLY1305IETF) { +- cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); +- cipher->info = cipher_info; +- cipher->info->base = NULL; +- cipher->info->key_bitlen = supported_aead_ciphers_key_size[method] * 8; +- cipher->info->iv_size = supported_aead_ciphers_nonce_size[method]; +- } else { +- cipher->info = (cipher_kt_t *)aead_get_cipher_type(method); +- } +- +- if (cipher->info == NULL && cipher->key_len == 0) { ++ if (method < CHACHA20POLY1305IETF && aead_get_cipher_type(method) == NULL) { + LOGE("Cipher %s not found in crypto library", supported_aead_ciphers[method]); + FATAL("Cannot initialize cipher"); + } +diff --git a/src/crypto.c b/src/crypto.c +index b44d867..76c426b 100644 +--- a/src/crypto.c ++++ b/src/crypto.c +@@ -103,7 +103,7 @@ crypto_md5(const unsigned char *d, size_t n, unsigned char *md) + if (md == NULL) { + md = m; + } +-#if MBEDTLS_VERSION_NUMBER >= 0x02070000 ++#if MBEDTLS_VERSION_NUMBER < 0x03000000 && MBEDTLS_VERSION_NUMBER >= 0x02070000 + if (mbedtls_md5_ret(d, n, md) != 0) + FATAL("Failed to calculate MD5"); + #else +diff --git a/src/crypto.h b/src/crypto.h +index 1791551..7070793 100644 +--- a/src/crypto.h ++++ b/src/crypto.h +@@ -97,7 +97,6 @@ typedef struct buffer { + typedef struct { + int method; + int skey; +- cipher_kt_t *info; + size_t nonce_len; + size_t key_len; + size_t tag_len; +diff --git a/src/stream.c b/src/stream.c +index 35d9050..b2e2cea 100644 +--- a/src/stream.c ++++ b/src/stream.c +@@ -168,33 +168,6 @@ crypto_stream_xor_ic(uint8_t *c, const uint8_t *m, uint64_t mlen, + return 0; + } + +-int +-cipher_nonce_size(const cipher_t *cipher) +-{ +- if (cipher == NULL) { +- return 0; +- } +- return cipher->info->iv_size; +-} +- +-int +-cipher_key_size(const cipher_t *cipher) +-{ +- /* +- * Semi-API changes (technically public, morally prnonceate) +- * Renamed a few headers to include _internal in the name. Those headers are +- * not supposed to be included by users. +- * Changed md_info_t into an opaque structure (use md_get_xxx() accessors). +- * Changed pk_info_t into an opaque structure. +- * Changed cipher_base_t into an opaque structure. +- */ +- if (cipher == NULL) { +- return 0; +- } +- /* From Version 1.2.7 released 2013-04-13 Default Blowfish keysize is now 128-bits */ +- return cipher->info->key_bitlen / 8; +-} +- + const cipher_kt_t * + stream_get_cipher_type(int method) + { +@@ -642,34 +615,22 @@ stream_key_init(int method, const char *pass, const char *key) + cipher_t *cipher = (cipher_t *)ss_malloc(sizeof(cipher_t)); + memset(cipher, 0, sizeof(cipher_t)); + +- if (method == SALSA20 || method == CHACHA20 || method == CHACHA20IETF) { +- cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); +- cipher->info = cipher_info; +- cipher->info->base = NULL; +- cipher->info->key_bitlen = supported_stream_ciphers_key_size[method] * 8; +- cipher->info->iv_size = supported_stream_ciphers_nonce_size[method]; +- } else { +- cipher->info = (cipher_kt_t *)stream_get_cipher_type(method); +- } +- +- if (cipher->info == NULL && cipher->key_len == 0) { ++ if (method < SALSA20 && stream_get_cipher_type(method) == NULL) { + LOGE("Cipher %s not found in crypto library", supported_stream_ciphers[method]); + FATAL("Cannot initialize cipher"); + } + + if (key != NULL) +- cipher->key_len = crypto_parse_key(key, cipher->key, cipher_key_size(cipher)); ++ cipher->key_len = crypto_parse_key(key, cipher->key, ++ supported_stream_ciphers_key_size[method]); + else +- cipher->key_len = crypto_derive_key(pass, cipher->key, cipher_key_size(cipher)); ++ cipher->key_len = crypto_derive_key(pass, cipher->key, ++ supported_stream_ciphers_key_size[method]); + + if (cipher->key_len == 0) { + FATAL("Cannot generate key and NONCE"); + } +- if (method == RC4_MD5) { +- cipher->nonce_len = 16; +- } else { +- cipher->nonce_len = cipher_nonce_size(cipher); +- } ++ cipher->nonce_len = supported_stream_ciphers_nonce_size[method]; + cipher->method = method; + + return cipher; +-- +2.39.5 + From 6faf687620f9b0f2baea7f1326db834fde2c83aa Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Sun, 19 Jan 2025 19:50:32 +0800 Subject: [PATCH 700/972] shadowsocks-libev: backport not merged fix There is a not merged pull request for bug fixing --- shadowsocks-libev/Makefile | 2 +- ...of-incoming-socket-buffer.-It-must-b.patch | 152 ++++++++++++++++++ 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100644 shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 631a9976c05..b6e73ac30bb 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -14,7 +14,7 @@ include $(TOPDIR)/rules.mk # PKG_NAME:=shadowsocks-libev PKG_VERSION:=3.3.5 -PKG_RELEASE:=12 +PKG_RELEASE:=13 PKG_SOURCE_PROTO:=git PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz diff --git a/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch b/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch new file mode 100644 index 00000000000..6dc1c5692c7 --- /dev/null +++ b/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch @@ -0,0 +1,152 @@ +From 8be7a7cb00b9540e9be05d409191b0bc1ba424f0 Mon Sep 17 00:00:00 2001 +From: notsure2 +Date: Mon, 11 Dec 2023 09:15:47 +0200 +Subject: [PATCH] Fix mishandling of incoming socket buffer. It must be set on + the listening socket not the accepted socket. + +--- + src/local.c | 16 ++++++++-------- + src/redir.c | 16 ++++++++-------- + src/server.c | 16 ++++++++-------- + src/tunnel.c | 16 ++++++++-------- + 4 files changed, 32 insertions(+), 32 deletions(-) + +diff --git a/src/local.c b/src/local.c +index fa1ca7b..51f62c4 100644 +--- a/src/local.c ++++ b/src/local.c +@@ -205,6 +205,14 @@ create_and_bind(const char *addr, const char *port) + } + } + ++ if (tcp_incoming_sndbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); ++ } ++ ++ if (tcp_incoming_rcvbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); ++ } ++ + s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); + if (s == 0) { + /* We managed to bind successfully! */ +@@ -1406,14 +1414,6 @@ accept_cb(EV_P_ ev_io *w, int revents) + setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); + #endif + +- if (tcp_incoming_sndbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); +- } +- +- if (tcp_incoming_rcvbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); +- } +- + server_t *server = new_server(serverfd); + server->listener = listener; + +diff --git a/src/redir.c b/src/redir.c +index d36fe3f..86b7238 100644 +--- a/src/redir.c ++++ b/src/redir.c +@@ -201,6 +201,14 @@ create_and_bind(const char *addr, const char *port) + LOGI("tcp tproxy mode enabled"); + } + ++ if (tcp_incoming_sndbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); ++ } ++ ++ if (tcp_incoming_rcvbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); ++ } ++ + s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); + if (s == 0) { + /* We managed to bind successfully! */ +@@ -759,14 +767,6 @@ accept_cb(EV_P_ ev_io *w, int revents) + setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); + #endif + +- if (tcp_incoming_sndbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); +- } +- +- if (tcp_incoming_rcvbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); +- } +- + int index = rand() % listener->remote_num; + struct sockaddr *remote_addr = listener->remote_addr[index]; + +diff --git a/src/server.c b/src/server.c +index 73b6599..ef347a5 100644 +--- a/src/server.c ++++ b/src/server.c +@@ -620,6 +620,14 @@ create_and_bind(const char *host, const char *port, int mptcp) + } + } + ++ if (tcp_incoming_sndbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); ++ } ++ ++ if (tcp_incoming_rcvbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); ++ } ++ + // Enable out-of-tree mptcp + if (mptcp == 1) { + int i = 0; +@@ -1769,14 +1777,6 @@ accept_cb(EV_P_ ev_io *w, int revents) + setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); + #endif + +- if (tcp_incoming_sndbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); +- } +- +- if (tcp_incoming_rcvbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); +- } +- + setnonblocking(serverfd); + + server_t *server = new_server(serverfd, listener); +diff --git a/src/tunnel.c b/src/tunnel.c +index 99ed412..9f0dd57 100644 +--- a/src/tunnel.c ++++ b/src/tunnel.c +@@ -166,6 +166,14 @@ create_and_bind(const char *addr, const char *port) + } + } + ++ if (tcp_incoming_sndbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); ++ } ++ ++ if (tcp_incoming_rcvbuf > 0) { ++ setsockopt(listen_sock, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); ++ } ++ + s = bind(listen_sock, rp->ai_addr, rp->ai_addrlen); + if (s == 0) { + /* We managed to bind successfully! */ +@@ -725,14 +733,6 @@ accept_cb(EV_P_ ev_io *w, int revents) + setsockopt(serverfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); + #endif + +- if (tcp_incoming_sndbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_SNDBUF, &tcp_incoming_sndbuf, sizeof(int)); +- } +- +- if (tcp_incoming_rcvbuf > 0) { +- setsockopt(serverfd, SOL_SOCKET, SO_RCVBUF, &tcp_incoming_rcvbuf, sizeof(int)); +- } +- + int index = rand() % listener->remote_num; + struct sockaddr *remote_addr = listener->remote_addr[index]; + +-- +2.39.5 + From ca0b5be182176bdd519058520cc3c5c76da9677b Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Sun, 19 Jan 2025 20:19:26 +0800 Subject: [PATCH 701/972] shadowsocks-libev: avoid downloading from openwrt mirror Change tarball name to avoid downloading from openwrt mirror, which is not the latest version. --- shadowsocks-libev/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index b6e73ac30bb..2becc823179 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -17,10 +17,10 @@ PKG_VERSION:=3.3.5 PKG_RELEASE:=13 PKG_SOURCE_PROTO:=git -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git PKG_SOURCE_VERSION:=d83ace0f0d9c05656c13d66aa4a449bf70143254 -PKG_MIRROR_HASH:=cfc8eded35360f4b67e18dc447b0c00cddb29cc57a3cec48b135e5fb87433488 +PKG_MIRROR_HASH:=6ff973af37c20cf0430f106d360b94b8b91df6dd8d7be3908ee84b5a86c3319f PKG_MAINTAINER:=Yousong Zhou From 2ec0bb81ef8e34df19d56c0e128a2f8299f9f1c2 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 20 Jan 2025 22:18:18 +0800 Subject: [PATCH 702/972] luci-app-ssr-plus: Add separate Xudp mux for XHTTP and fixed vmess import sni issues. --- .../model/cbi/shadowsocksr/client-config.lua | 71 +++++++++++++++---- .../luasrc/view/shadowsocksr/ssrurl.htm | 13 +++- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 33 ++++++++- .../usr/share/shadowsocksr/gen_config.lua | 16 +++-- 4 files changed, 109 insertions(+), 24 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 5504de197e1..3db5653732b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -434,7 +434,7 @@ o:depends("type", "shadowtls") o.default = "1" o.rmempty = false -o = s:option(Flag, "fastopen", translate("TCP Fast Open")) +o = s:option(Flag, "fastopen", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support.")) o:depends("type", "shadowtls") o.default = "0" o.rmempty = false @@ -735,8 +735,8 @@ o.rmempty = true o = s:option(Flag, "enable_xhttp_extra", translate("XHTTP Extra")) o.description = translate("Enable this option to configure XHTTP Extra (JSON format).") +o.rmempty = true o.default = "0" -o.rmempty = false o:depends("transport", "xhttp") o = s:option(TextValue, "xhttp_extra", " ") @@ -1008,6 +1008,19 @@ if is_finded("xray") then o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", tls = true}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true}) + o = s:option(ListValue, "xhttp_tls_flow", translate("Flow")) + for _, v in ipairs(tls_flows) do + if v == "none" then + o.default = "none" + o:value("none", translate("none")) + else + o:value("xtls-rprx-vision", translate("xtls-rprx-vision")) + end + end + o.rmempty = true + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp", tls = true}) + o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp", reality = true}) + -- [[ uTLS ]]-- o = s:option(ListValue, "fingerprint", translate("Finger Print")) o.default = "" @@ -1051,19 +1064,36 @@ o:depends({type = "hysteria", insecure = true }) o.rmempty = true --- [[ Mux ]]-- -o = s:option(Flag, "mux", translate("Mux")) +-- [[ Mux.Cool ]] -- +o = s:option(Flag, "mux", translate("Mux"), translate("Enable Mux.Cool")) o.rmempty = false o.default = false -o:depends({type = "v2ray", v2ray_protocol = "vless"}) -o:depends({type = "v2ray", v2ray_protocol = "vmess"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "ws"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "kcp"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "httpupgrade"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "splithttp"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "h2"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "quic"}) +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "grpc"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) o:depends({type = "v2ray", v2ray_protocol = "http"}) +-- [[ XUDP Mux ]] -- +o = s:option(Flag, "xmux", translate("Xudp Mux"), translate("Enable Xudp Mux")) +o.rmempty = false +o.default = false +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp"}) + -- [[ TCP 最大并发连接数 ]]-- -o = s:option(ListValue, "concurrency", translate("concurrency")) +o = s:option(Value, "concurrency", translate("concurrency")) +o.description = translate( + "
    " + .. "
  • " .. translate("Default: disable. When entering a negative number, such as -1, The Mux module will not be used to carry TCP traffic.") .. "
  • " + .. "
  • " .. translate("Min value is 1, Max value is 128. When omitted or set to 0, it equals 8.") .. "
  • " + .. "
") o.rmempty = true o.default = "-1" o:value("-1", translate("disable")) @@ -1071,15 +1101,27 @@ o:value("8", translate("8")) o:depends("mux", true) -- [[ UDP 最大并发连接数 ]]-- -o = s:option(ListValue, "xudpConcurrency", translate("xudpConcurrency")) +o = s:option(Value, "xudpConcurrency", translate("xudpConcurrency")) +o.description = translate( + "
    " + .. "
  • " .. translate("Default:16. When entering a negative number, such as -1, The Mux module will not be used to carry UDP traffic, Use original UDP transmission method of proxy protocol.") .. "
  • " + .. "
  • " .. translate("Min value is 1, Max value is 1024. When omitted or set to 0, Will same path as TCP traffic.") .. "
  • " + .. "
") o.rmempty = true o.default = "16" o:value("-1", translate("disable")) o:value("16", translate("16")) o:depends("mux", true) +o:depends("xmux", true) -- [[ 对被代理的 UDP/443 流量处理方式 ]]-- o = s:option(ListValue, "xudpProxyUDP443", translate("xudpProxyUDP443")) +o.description = translate( + "
    " + .. "
  • " .. translate("Default reject rejects traffic.") .. "
  • " + .. "
  • " .. translate("allow: Allows use Mux connection.") .. "
  • " + .. "
  • " .. translate("skip: Not use Mux module to carry UDP 443 traffic, Use original UDP transmission method of proxy protocol.") .. "
  • " + .. "
") o.rmempty = true o.default = "reject" o:value("reject", translate("reject")) @@ -1087,11 +1129,16 @@ o:value("allow", translate("allow")) o:value("skip", translate("skip")) o:depends("mux", true) +-- [[ XHTTP TCP Fast Open ]]-- +o = s:option(Flag, "tcpfastopen", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support.")) +o.rmempty = true +o.default = "0" +o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp"}) -- [[ MPTCP ]]-- -o = s:option(Flag, "mptcp", translate("MPTCP"), translate("Enabling MPTCP Requires Server Support.")) -o.rmempty = false -o.default = false +o = s:option(Flag, "mptcp", translate("MPTCP"), translate("Enable Multipath TCP, need to be enabled in both server and client configuration.")) +o.rmempty = true +o.default = "0" o:depends({type = "v2ray", v2ray_protocol = "vless"}) o:depends({type = "v2ray", v2ray_protocol = "vmess"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) @@ -1166,7 +1213,7 @@ o:value("/etc/ssl/private/ca.pem") o.description = translate("Please confirm the current certificate path") o.default = "/etc/ssl/private/ca.pem" -o = s:option(Flag, "fast_open", translate("TCP Fast Open")) +o = s:option(Flag, "fast_open", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support.")) o.rmempty = true o.default = "0" o:depends("type", "ssr") diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index d8dfbdd7784..1ae02e4dc83 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -374,12 +374,19 @@ if (ssm.tls == "tls") { document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event); - document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_alpn')[0].value = ssm.alpn; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = ssm.fp; + if (ssm.net == "xhttp") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_alpn')[0].value = ssm.alpn; + } document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host; } if (ssm.mux !== undefined) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); + } + if (ssm.xmux !== undefined) { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xmux')[0].checked = true; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.xmux')[0].dispatchEvent(event); } s.innerHTML = "<%:Import configuration information successfully.%>"; return false; diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 03541f45c94..11440b64778 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -91,18 +91,44 @@ msgstr "TLS 主机名" msgid "allowInsecure" msgstr "允许不安全连接" -msgid "Enabling MPTCP Requires Server Support." -msgstr "启用 MPTCP 需服务端支持。" +msgid "Enable Mux.Cool" +msgstr "启用 Mux.Cool" + +msgid "Enable Xudp Mux" +msgstr "启用 Xudp Mux" + +msgid "Enable Multipath TCP, need to be enabled in both server and client configuration." +msgstr "启用 Multipath TCP,需在服务端和客户端配置中同时启用。" msgid "concurrency" msgstr "TCP 最大并发连接数" +msgid "Default: disable. When entering a negative number, such as -1, The Mux module will not be used to carry TCP traffic." +msgstr "默认:禁用。填负数时,如 -1,不使用 Mux 模块承载 TCP 流量。" + +msgid "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." +msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。" + msgid "xudpConcurrency" msgstr "UDP 最大并发连接数" +msgid "Default:16. When entering a negative number, such as -1, The Mux module will not be used to carry UDP traffic, Use original UDP transmission method of proxy protocol." +msgstr "默认值:16。填负数时,如 -1,不使用 Mux 模块承载 UDP 流量。将使用代理协议原本的 UDP 传输方式。" + +msgid "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path as TCP traffic." +msgstr "最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统的行为。" + msgid "xudpProxyUDP443" msgstr "对被代理的 UDP/443 流量处理方式" +msgid "Default reject rejects traffic." +msgstr "默认 reject 拒绝流量。" + +msgid "allow: Allows use Mux connection." +msgstr "allow:允许走 Mux 连接。" + +msgid "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP transmission method of proxy protocol." +msgstr "skip:不使用 Mux 模块承载 UDP 443 流量,将使用代理协议原本的 UDP 传输方式。" msgid "custom_tcpcongestion" msgstr "连接服务器节点的 TCP 拥塞控制算法" @@ -307,6 +333,9 @@ msgstr "服务器" msgid "TCP Fast Open" msgstr "TCP 快速打开" +msgid "Enabling TCP Fast Open Requires Server Support." +msgstr "启用 TCP 快速打开需要服务端支持。" + msgid "Status" msgstr "状态" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 4071be9f3e2..375a4eac3c6 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -29,7 +29,7 @@ function vmess_vless() alterId = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and tonumber(server.alter_id) or nil, security = (server.v2ray_protocol == "vmess" or not server.v2ray_protocol) and server.security or nil, encryption = (server.v2ray_protocol == "vless") and server.vless_encryption or nil, - flow = (((server.xtls == '1') or (server.tls == '1') or (server.reality == '1')) and server.tls_flow ~= "none") and server.tls_flow or nil + flow = (((server.xtls == '1') or (server.tls == '1') or (server.reality == '1')) and (((server.tls_flow ~= "none") and server.tls_flow) or ((server.xhttp_tls_flow ~= "none") and server.xhttp_tls_flow))) or nil } } } @@ -310,18 +310,19 @@ end } or nil, sockopt = { mark = 250, + tcpFastOpen = (server.tcpfastOpen == "1") and true or false, -- XHTTP Tcp Fast Open tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP - tcpNoDelay = (server.mptcp == "1") and true or nil, -- MPTCP + Penetrate = (server.mptcp == "1") and true or nil, -- Penetrate MPTCP tcpcongestion = server.custom_tcpcongestion, -- 连接服务器节点的 TCP 拥塞控制算法 dialerProxy = (xray_fragment.fragment == "1" or xray_fragment.noise == "1") and "dialerproxy" or nil } } or nil, mux = (server.v2ray_protocol ~= "wireguard") and { -- mux - enabled = (server.mux == "1") and true or false, -- Mux - concurrency = tonumber(server.concurrency), -- TCP 最大并发连接数 - xudpConcurrency = tonumber(server.xudpConcurrency), -- UDP 最大并发连接数 - xudpProxyUDP443 = server.xudpProxyUDP443 -- 对被代理的 UDP/443 流量处理方式 + enabled = (server.mux == "1" or server.xmux == "1") and true or false, -- Mux + concurrency = (server.mux == "1" and ((server.concurrency ~= "0") and tonumber(server.concurrency) or 8)) or (server.xmux == "1" and -1) or nil, -- TCP 最大并发连接数 + xudpConcurrency = ((server.xudpConcurrency ~= "0") and tonumber(server.xudpConcurrency)) or nil, -- UDP 最大并发连接数 + xudpProxyUDP443 = (server.mux == "1") and server.xudpProxyUDP443 or nil -- 对被代理的 UDP/443 流量处理方式 } or nil } } @@ -349,8 +350,9 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e streamSettings = { sockopt = { mark = 250, + tcpFastOpen = (server.tcpfastOpen == "1") and true or false, -- XHTTP Tcp Fast Open tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP - tcpNoDelay = (server.mptcp == "1") and true or nil, -- MPTCP + Penetrate = (server.mptcp == "1") and true or nil, -- Penetrate MPTCP tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 } } From 2055c88132663ad29e5610e01f6b027234279b10 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 23 Jan 2025 22:25:32 +0800 Subject: [PATCH 703/972] luci-app-ssr-plus: Fix Netflix's shunt domain list cannot proxy access. --- .github/workflows/multi-arch-test-build.yml | 4 ++-- .../root/etc/init.d/shadowsocksr | 19 ++++++++++--------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 3a87f46d24d..9224a702979 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -126,7 +126,7 @@ jobs: cat PKG-INFO - name: Store packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{env.ARCHIVE_NAME}}-packages path: | @@ -136,7 +136,7 @@ jobs: PKG-INFO - name: Store logs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{env.ARCHIVE_NAME}}-logs path: | diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 537baf11469..b530b5729c3 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -508,6 +508,7 @@ start_udp() { shunt_dns_command() { local shunt_dns_mode="$(uci_get_by_type global shunt_dns_mode)" local shunt_dnsserver="$(uci_get_by_type global shunt_dnsserver)" + local tmp_port=$1 case "$shunt_dns_mode" in 1) ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_port $shunt_dnsserver 127.0.0.1:$tmp_shunt_dns_port -q @@ -545,14 +546,14 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type ${type}local ${type}-local) ${type}-local -c $shunt_dns_config_file fi - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$(get_name $type) Started!" ;; v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" ;; trojan) @@ -564,7 +565,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type trojan) $type --config $shunt_dns_config_file fi - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$($(first_type trojan) --version 2>&1 | head -1) Started!" ;; naiveproxy) @@ -576,7 +577,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type naive) naive --config $shunt_dns_config_file fi - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$($(first_type "naive") --version 2>&1 | head -1) Started!" redir_udp=0 ;; @@ -589,7 +590,7 @@ start_shunt() { gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port fi ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!" ;; tuic) @@ -601,7 +602,7 @@ start_shunt() { [ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port gen_config_file $SHUNT_SERVER $type 3 $tmp_port # make a tuic socks :304 ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_dns_config_file - shunt_dns_command + shunt_dns_command $tmp_port echolog "Netflix Separated Shunt Server:tuic-client $($(first_type tuic-client) --version) Started!" # FIXME: ipt2socks cannot handle udp reply from tuic #redir_udp=0 @@ -611,7 +612,7 @@ start_shunt() { gen_config_file $SHUNT_SERVER $type 3 "10${tmp_shunt_port}" $tmp_port chain/$tmp_shunt_port #make a redir:303 and a socks:304 #echo "debug \$tmp_port=$tmp_port, \$tmp_shunt_port=${tmp_shunt_port}, \$tmp_shunt_local_port=$tmp_shunt_local_port" ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file - shunt_dns_command + shunt_dns_command $tmp_port local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type) case ${chain_type} in vmess) @@ -637,7 +638,7 @@ start_shunt() { # local tmp_port=$tmp_shunt_local_port # ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus # fi - # shunt_dns_command + # shunt_dns_command $tmp_port # echolog "shunt:$type REDIRECT/TPROXY Started!" # ;; *) @@ -649,7 +650,7 @@ start_shunt() { local tmp_port=$tmp_shunt_local_port ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus fi - shunt_dns_command + shunt_dns_command $tmp_port echolog "shunt:$type REDIRECT/TPROXY Started!" ;; esac From c99a1ef924da775caad9b159f5769ae33d8c2309 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 25 Jan 2025 16:37:57 +0800 Subject: [PATCH 704/972] luci-app-ssr-plus: Update `xhttp` protocol configuration problem --- .../model/cbi/shadowsocksr/client-config.lua | 1 + .../luasrc/view/shadowsocksr/server_list.htm | 21 +++++++++++-------- .../usr/share/shadowsocksr/gen_config.lua | 4 ++-- 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3db5653732b..f51e11adc3b 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -1076,6 +1076,7 @@ o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "splithttp"}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "h2"}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "quic"}) o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "grpc"}) +o:depends({type = "v2ray", v2ray_protocol = "vmess"}) o:depends({type = "v2ray", v2ray_protocol = "trojan"}) o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o:depends({type = "v2ray", v2ray_protocol = "socks"}) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm index d0b77f10f8c..f9befe53fb4 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm @@ -4,7 +4,7 @@ -%> diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 375a4eac3c6..dfb318a3de1 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -310,7 +310,7 @@ end } or nil, sockopt = { mark = 250, - tcpFastOpen = (server.tcpfastOpen == "1") and true or false, -- XHTTP Tcp Fast Open + tcpFastOpen = ((server.transport == "xhttp" and server.tcpfastopen == "1") and true or false) or (server.transport ~= "xhttp") and nil, -- XHTTP Tcp Fast Open tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP Penetrate = (server.mptcp == "1") and true or nil, -- Penetrate MPTCP tcpcongestion = server.custom_tcpcongestion, -- 连接服务器节点的 TCP 拥塞控制算法 @@ -350,7 +350,7 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e streamSettings = { sockopt = { mark = 250, - tcpFastOpen = (server.tcpfastOpen == "1") and true or false, -- XHTTP Tcp Fast Open + tcpFastOpen = ((server.transport == "xhttp" and server.tcpfastopen == "1") and true or false) or (server.transport ~= "xhttp") and nil, -- XHTTP Tcp Fast Open tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP Penetrate = (server.mptcp == "1") and true or nil, -- Penetrate MPTCP tcpcongestion = server.custom_tcpcongestion -- 连接服务器节点的 TCP 拥塞控制算法 From f0ff527bca81e727f6435f8fd246b864fd03124e Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 27 Jan 2025 16:33:40 +0800 Subject: [PATCH 705/972] luci-app-ssr-plus: Fix when `SOCKS` enable password auth `Netflix` shunt failed issue. --- luci-app-ssr-plus/Makefile | 2 +- .../root/etc/init.d/shadowsocksr | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index b469328e569..ad252745248 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -32,7 +32,7 @@ PKG_CONFIG_DEPENDS:= \ LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuic/ShadowTLS/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ - +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat \ + +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat +jq \ +ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \ +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls:libustream-mbedtls \ diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index b530b5729c3..99a2921dee5 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -533,6 +533,31 @@ shunt_dns_command() { esac } +shunt_dns_config_file_port() { + if [ "$LOCAL_SERVER" == "$SHUNT_SERVER" ]; then + # NetFlix 和 全局socks 节点相同 + if [ "$(uci_get_by_type socks5_proxy socks5_auth nil)" != "noauth" ]; then + # 全局socks 有密码,NetFlix 不能使用 auth 验证,需更换为新端口并使用无密码的 socks 配置用于分流 + # 新增NetFlix dns 使用端口 + local port=$tmp_shunt_local_port + jq --arg port "$port" '.inbounds |= .[0:1] + [{"protocol":"socks","port":($port | tonumber),"settings":{"udp":true,"auth":"noauth"}}] + .[1:]' "$shunt_config_file" > "$shunt_config_file.tmp" && mv "$shunt_config_file.tmp" $shunt_config_file + echo "$port" # 返回端口号 + return 0 # 成功返回 + fi + else + # NetFlix 和 全局 socks 节点不相同 + if [ "$(uci_get_by_type socks5_proxy socks5_auth nil)" != "noauth" ]; then + # 全局socks 有密码,NetFlix不能使用auth验证,需设置为无密码的socks配置用于分流 + # 删除 NetFlix dns 端口密码验证 + sed -i -e 's/"auth"\s*:\s*"password"/\"auth\": \"noauth\"/g' \ + -e '/"accounts": \[/,/\]/d' $shunt_config_file + fi + fi + # 使用传入的端口 + echo "$1" # 返回传入的端口号 + return 0 # 成功返回 +} + start_shunt() { local type=$(uci_get_by_name $SHUNT_SERVER type) case "$type" in @@ -552,6 +577,14 @@ start_shunt() { v2ray) local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port + # 处理配置文件中的 NetFlix 端口 + if [ "$LOCAL_SERVER" == "$SHUNT_SERVER" ]; then + # NetFlix 和 全局socks 节点相同 + tmp_port=$(shunt_dns_config_file_port "$tmp_port") + else + # NetFlix 和 全局 socks 节点不相同 + shunt_dns_config_file_port "$tmp_port" + fi ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file shunt_dns_command $tmp_port echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" From caddd97a2ac395dabeb69ce9a3edf76c00c2104a Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 5 Feb 2025 23:27:35 +0800 Subject: [PATCH 706/972] shadowsocks-libev: Update to the commit as of 2025-1-20 --- shadowsocks-libev/Makefile | 7 +- ...-3.6.0-ver-compilation-failure-issue.patch | 232 ------------------ 2 files changed, 4 insertions(+), 235 deletions(-) delete mode 100644 shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 2becc823179..816917061ef 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -17,10 +17,11 @@ PKG_VERSION:=3.3.5 PKG_RELEASE:=13 PKG_SOURCE_PROTO:=git -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git -PKG_SOURCE_VERSION:=d83ace0f0d9c05656c13d66aa4a449bf70143254 -PKG_MIRROR_HASH:=6ff973af37c20cf0430f106d360b94b8b91df6dd8d7be3908ee84b5a86c3319f +PKG_SOURCE_DATE:=2025-1-20 +PKG_SOURCE_VERSION:=9afa3cacf947f910be46b69fc5a7a1fdd02fd5e6 +PKG_MIRROR_HASH:=720955484ea5f6b53d90519a7c6e828eec080a819efce18fc6fb64f1c4c086dd +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_MAINTAINER:=Yousong Zhou diff --git a/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch b/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch deleted file mode 100644 index 9616ee9e484..00000000000 --- a/shadowsocks-libev/patches/102-Fix-in-mbedtls-3.6.0-ver-compilation-failure-issue.patch +++ /dev/null @@ -1,232 +0,0 @@ -From 2b33e8e6778db08624dbf8ec6fe1e8f7b1a4bee8 Mon Sep 17 00:00:00 2001 -From: Lu jicong -Date: Fri, 10 Jan 2025 22:05:31 +0800 -Subject: [PATCH] Fix in 'mbedtls 3.6.0 ver' compilation failure issue - -Fix mbedtls 3.6 compatibility - -Co-authored-by: Zxl hhyccc -Signed-off-by: Lu jicong ---- - m4/mbedtls.m4 | 20 ++++++++++++++++++++ - src/aead.c | 23 +++++++++++------------ - src/crypto.c | 2 +- - src/crypto.h | 1 - - src/stream.c | 51 ++++++--------------------------------------------- - 5 files changed, 38 insertions(+), 59 deletions(-) - -diff --git a/m4/mbedtls.m4 b/m4/mbedtls.m4 -index 2c478b9..a795790 100644 ---- a/m4/mbedtls.m4 -+++ b/m4/mbedtls.m4 -@@ -31,7 +31,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_CIPHER_MODE_CFB -@@ -48,7 +53,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_ARC4_C -@@ -64,7 +74,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_BLOWFISH_C -@@ -80,7 +95,12 @@ AC_DEFUN([ss_MBEDTLS], - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[ -+#include -+#if MBEDTLS_VERSION_NUMBER >= 0x03000000 -+#include -+#else - #include -+#endif - ]], - [[ - #ifndef MBEDTLS_CAMELLIA_C -diff --git a/src/aead.c b/src/aead.c -index 358ec93..73349da 100644 ---- a/src/aead.c -+++ b/src/aead.c -@@ -177,9 +177,13 @@ aead_cipher_encrypt(cipher_ctx_t *cipher_ctx, - // Otherwise, just use the mbedTLS one with crappy AES-NI. - case AES192GCM: - case AES128GCM: -- -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - err = mbedtls_cipher_auth_encrypt(cipher_ctx->evp, n, nlen, ad, adlen, - m, mlen, c, clen, c + mlen, tlen); -+#else -+ err = mbedtls_cipher_auth_encrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, -+ m, mlen, c, mlen + tlen, clen, tlen); -+#endif - *clen += tlen; - break; - case CHACHA20POLY1305IETF: -@@ -226,8 +230,13 @@ aead_cipher_decrypt(cipher_ctx_t *cipher_ctx, - // Otherwise, just use the mbedTLS one with crappy AES-NI. - case AES192GCM: - case AES128GCM: -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 - err = mbedtls_cipher_auth_decrypt(cipher_ctx->evp, n, nlen, ad, adlen, - m, mlen - tlen, p, plen, m + mlen - tlen, tlen); -+#else -+ err = mbedtls_cipher_auth_decrypt_ext(cipher_ctx->evp, n, nlen, ad, adlen, -+ m, mlen, p, mlen - tlen, plen, tlen); -+#endif - break; - case CHACHA20POLY1305IETF: - err = crypto_aead_chacha20poly1305_ietf_decrypt(p, &long_plen, NULL, m, mlen, -@@ -721,17 +730,7 @@ aead_key_init(int method, const char *pass, const char *key) - cipher_t *cipher = (cipher_t *)ss_malloc(sizeof(cipher_t)); - memset(cipher, 0, sizeof(cipher_t)); - -- if (method >= CHACHA20POLY1305IETF) { -- cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); -- cipher->info = cipher_info; -- cipher->info->base = NULL; -- cipher->info->key_bitlen = supported_aead_ciphers_key_size[method] * 8; -- cipher->info->iv_size = supported_aead_ciphers_nonce_size[method]; -- } else { -- cipher->info = (cipher_kt_t *)aead_get_cipher_type(method); -- } -- -- if (cipher->info == NULL && cipher->key_len == 0) { -+ if (method < CHACHA20POLY1305IETF && aead_get_cipher_type(method) == NULL) { - LOGE("Cipher %s not found in crypto library", supported_aead_ciphers[method]); - FATAL("Cannot initialize cipher"); - } -diff --git a/src/crypto.c b/src/crypto.c -index b44d867..76c426b 100644 ---- a/src/crypto.c -+++ b/src/crypto.c -@@ -103,7 +103,7 @@ crypto_md5(const unsigned char *d, size_t n, unsigned char *md) - if (md == NULL) { - md = m; - } --#if MBEDTLS_VERSION_NUMBER >= 0x02070000 -+#if MBEDTLS_VERSION_NUMBER < 0x03000000 && MBEDTLS_VERSION_NUMBER >= 0x02070000 - if (mbedtls_md5_ret(d, n, md) != 0) - FATAL("Failed to calculate MD5"); - #else -diff --git a/src/crypto.h b/src/crypto.h -index 1791551..7070793 100644 ---- a/src/crypto.h -+++ b/src/crypto.h -@@ -97,7 +97,6 @@ typedef struct buffer { - typedef struct { - int method; - int skey; -- cipher_kt_t *info; - size_t nonce_len; - size_t key_len; - size_t tag_len; -diff --git a/src/stream.c b/src/stream.c -index 35d9050..b2e2cea 100644 ---- a/src/stream.c -+++ b/src/stream.c -@@ -168,33 +168,6 @@ crypto_stream_xor_ic(uint8_t *c, const uint8_t *m, uint64_t mlen, - return 0; - } - --int --cipher_nonce_size(const cipher_t *cipher) --{ -- if (cipher == NULL) { -- return 0; -- } -- return cipher->info->iv_size; --} -- --int --cipher_key_size(const cipher_t *cipher) --{ -- /* -- * Semi-API changes (technically public, morally prnonceate) -- * Renamed a few headers to include _internal in the name. Those headers are -- * not supposed to be included by users. -- * Changed md_info_t into an opaque structure (use md_get_xxx() accessors). -- * Changed pk_info_t into an opaque structure. -- * Changed cipher_base_t into an opaque structure. -- */ -- if (cipher == NULL) { -- return 0; -- } -- /* From Version 1.2.7 released 2013-04-13 Default Blowfish keysize is now 128-bits */ -- return cipher->info->key_bitlen / 8; --} -- - const cipher_kt_t * - stream_get_cipher_type(int method) - { -@@ -642,34 +615,22 @@ stream_key_init(int method, const char *pass, const char *key) - cipher_t *cipher = (cipher_t *)ss_malloc(sizeof(cipher_t)); - memset(cipher, 0, sizeof(cipher_t)); - -- if (method == SALSA20 || method == CHACHA20 || method == CHACHA20IETF) { -- cipher_kt_t *cipher_info = (cipher_kt_t *)ss_malloc(sizeof(cipher_kt_t)); -- cipher->info = cipher_info; -- cipher->info->base = NULL; -- cipher->info->key_bitlen = supported_stream_ciphers_key_size[method] * 8; -- cipher->info->iv_size = supported_stream_ciphers_nonce_size[method]; -- } else { -- cipher->info = (cipher_kt_t *)stream_get_cipher_type(method); -- } -- -- if (cipher->info == NULL && cipher->key_len == 0) { -+ if (method < SALSA20 && stream_get_cipher_type(method) == NULL) { - LOGE("Cipher %s not found in crypto library", supported_stream_ciphers[method]); - FATAL("Cannot initialize cipher"); - } - - if (key != NULL) -- cipher->key_len = crypto_parse_key(key, cipher->key, cipher_key_size(cipher)); -+ cipher->key_len = crypto_parse_key(key, cipher->key, -+ supported_stream_ciphers_key_size[method]); - else -- cipher->key_len = crypto_derive_key(pass, cipher->key, cipher_key_size(cipher)); -+ cipher->key_len = crypto_derive_key(pass, cipher->key, -+ supported_stream_ciphers_key_size[method]); - - if (cipher->key_len == 0) { - FATAL("Cannot generate key and NONCE"); - } -- if (method == RC4_MD5) { -- cipher->nonce_len = 16; -- } else { -- cipher->nonce_len = cipher_nonce_size(cipher); -- } -+ cipher->nonce_len = supported_stream_ciphers_nonce_size[method]; - cipher->method = method; - - return cipher; --- -2.39.5 - From 27464db34ed82091e626f12a15752b3f1d08e0c9 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 5 Feb 2025 23:29:29 +0800 Subject: [PATCH 707/972] shadowsocks-libev: deprecate load16_be() function in favor to ntohs() function --- ...precate-load16-be-replace-with-ntohs.patch | 115 ++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch diff --git a/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch b/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch new file mode 100644 index 00000000000..2e0879fb4bb --- /dev/null +++ b/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch @@ -0,0 +1,115 @@ +From f4ee43fa27e00a573d90a8cac68f12655570bbf7 Mon Sep 17 00:00:00 2001 +From: lwb1978 <86697442+lwb1978@users.noreply.github.com> +Date: Tue, 4 Feb 2025 15:51:17 +0800 +Subject: [PATCH] Deprecate load16_be() function in favor to ntohs() function + +--- + src/aead.c | 2 +- + src/local.c | 6 +++--- + src/server.c | 2 +- + src/udprelay.c | 2 +- + src/utils.c | 8 -------- + src/utils.h | 1 - + 6 files changed, 6 insertions(+), 15 deletions(-) + +diff --git a/src/aead.c b/src/aead.c +index 73349da64..e5d9b01e7 100644 +--- a/src/aead.c ++++ b/src/aead.c +@@ -605,7 +605,7 @@ aead_chunk_decrypt(cipher_ctx_t *ctx, uint8_t *p, uint8_t *c, uint8_t *n, + return CRYPTO_ERROR; + assert(*plen == CHUNK_SIZE_LEN); + +- mlen = load16_be(len_buf); ++ mlen = ntohs(*(uint16_t*)len_buf); + mlen = mlen & CHUNK_SIZE_MASK; + + if (mlen == 0) +diff --git a/src/local.c b/src/local.c +index fa1ca7b31..76d46de17 100644 +--- a/src/local.c ++++ b/src/local.c +@@ -382,7 +382,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) + abuf->len += in_addr_len + 2; + + if (acl || verbose) { +- uint16_t p = load16_be(buf->data + request_len + in_addr_len); ++ uint16_t p = ntohs(*(uint16_t*)(buf->data + request_len + in_addr_len)); + if (!inet_ntop(AF_INET, (const void *)(buf->data + request_len), + ip, INET_ADDRSTRLEN)) { + LOGI("inet_ntop(AF_INET): %s", strerror(errno)); +@@ -400,7 +400,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) + abuf->len += name_len + 2; + + if (acl || verbose) { +- uint16_t p = load16_be(buf->data + request_len + 1 + name_len); ++ uint16_t p = ntohs(*(uint16_t*)(buf->data + request_len + 1 + name_len)); + memcpy(host, buf->data + request_len + 1, name_len); + host[name_len] = '\0'; + sprintf(port, "%d", p); +@@ -414,7 +414,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) + abuf->len += in6_addr_len + 2; + + if (acl || verbose) { +- uint16_t p = load16_be(buf->data + request_len + in6_addr_len); ++ uint16_t p = ntohs(*(uint16_t*)(buf->data + request_len + in6_addr_len)); + if (!inet_ntop(AF_INET6, (const void *)(buf->data + request_len), + ip, INET6_ADDRSTRLEN)) { + LOGI("inet_ntop(AF_INET6): %s", strerror(errno)); +diff --git a/src/server.c b/src/server.c +index 73b65996d..be8c6ffcf 100644 +--- a/src/server.c ++++ b/src/server.c +@@ -1129,7 +1129,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents) + return; + } + +- port = ntohs(load16_be(server->buf->data + offset)); ++ port = *(uint16_t*)(server->buf->data + offset); + + offset += 2; + +diff --git a/src/udprelay.c b/src/udprelay.c +index 5de38830a..f6a5a7c25 100644 +--- a/src/udprelay.c ++++ b/src/udprelay.c +@@ -316,7 +316,7 @@ parse_udprelay_header(const char *buf, const size_t buf_len, + } + + if (port != NULL) { +- sprintf(port, "%d", load16_be(buf + offset)); ++ sprintf(port, "%d", ntohs(*(uint16_t*)(buf + offset))); + } + offset += 2; + +diff --git a/src/utils.c b/src/utils.c +index d3ff2aba6..c7a5f0aa6 100644 +--- a/src/utils.c ++++ b/src/utils.c +@@ -571,14 +571,6 @@ get_default_conf(void) + #endif + } + +-uint16_t +-load16_be(const void *s) +-{ +- const uint8_t *in = (const uint8_t *)s; +- return ((uint16_t)in[0] << 8) +- | ((uint16_t)in[1]); +-} +- + int + get_mptcp(int enable) + { +diff --git a/src/utils.h b/src/utils.h +index 1df24c166..c20506da9 100644 +--- a/src/utils.h ++++ b/src/utils.h +@@ -249,7 +249,6 @@ void *ss_realloc(void *ptr, size_t new_size); + + int ss_is_ipv6addr(const char *addr); + char *get_default_conf(void); +-uint16_t load16_be(const void *s); + int get_mptcp(int enable); + + #endif // _UTILS_H From 641cb2020e17f4e010c7c0c6a04cc0a1f33a78a3 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 5 Feb 2025 23:38:33 +0800 Subject: [PATCH 708/972] shadowsocksr-libev: add PKG_SOURCE fix compilation errors caused by pulling up old code. --- shadowsocksr-libev/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index bbc9c191ae7..fa82de9cf51 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -11,10 +11,11 @@ PKG_VERSION:=2.5.6 PKG_RELEASE:=11 PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev +PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev.git PKG_SOURCE_DATE:=2018-03-07 PKG_SOURCE_VERSION:=d63ff863800a5645aca4309d5dd5962bd1e95543 -PKG_MIRROR_HASH:=6ab6a32880ee913fb3264f0237b1b5a6d9475585209f6df60b062d7c4901362f +PKG_MIRROR_HASH:=34308ed827a5dd4f4e35619914102d55b00604faa44fda051d1d25fb4a319325 +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE From 6bb2d4e545fa010baab6b44912e99db8a383488c Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 5 Feb 2025 23:45:23 +0800 Subject: [PATCH 709/972] shadowsocks-libev: Fix HASH --- shadowsocks-libev/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 816917061ef..1fac15aa539 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -20,7 +20,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git PKG_SOURCE_DATE:=2025-1-20 PKG_SOURCE_VERSION:=9afa3cacf947f910be46b69fc5a7a1fdd02fd5e6 -PKG_MIRROR_HASH:=720955484ea5f6b53d90519a7c6e828eec080a819efce18fc6fb64f1c4c086dd +PKG_MIRROR_HASH:=575b21803b28db8ab59ecbdb2cf21c4282881507b3a4267cc24f55bad12819cb PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_MAINTAINER:=Yousong Zhou From d1a6118ed16995407ece45fdaebd26cb7641c575 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 5 Feb 2025 23:59:06 +0800 Subject: [PATCH 710/972] shadowsocks-libev: refresh patch --- ...of-incoming-socket-buffer.-It-must-b.patch | 19 +++----------- ...precate-load16-be-replace-with-ntohs.patch | 26 +++++-------------- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch b/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch index 6dc1c5692c7..1c164a95c15 100644 --- a/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch +++ b/shadowsocks-libev/patches/101-Fix-mishandling-of-incoming-socket-buffer.-It-must-b.patch @@ -11,11 +11,9 @@ Subject: [PATCH] Fix mishandling of incoming socket buffer. It must be set on src/tunnel.c | 16 ++++++++-------- 4 files changed, 32 insertions(+), 32 deletions(-) -diff --git a/src/local.c b/src/local.c -index fa1ca7b..51f62c4 100644 --- a/src/local.c +++ b/src/local.c -@@ -205,6 +205,14 @@ create_and_bind(const char *addr, const char *port) +@@ -205,6 +205,14 @@ create_and_bind(const char *addr, const } } @@ -45,11 +43,9 @@ index fa1ca7b..51f62c4 100644 server_t *server = new_server(serverfd); server->listener = listener; -diff --git a/src/redir.c b/src/redir.c -index d36fe3f..86b7238 100644 --- a/src/redir.c +++ b/src/redir.c -@@ -201,6 +201,14 @@ create_and_bind(const char *addr, const char *port) +@@ -201,6 +201,14 @@ create_and_bind(const char *addr, const LOGI("tcp tproxy mode enabled"); } @@ -79,11 +75,9 @@ index d36fe3f..86b7238 100644 int index = rand() % listener->remote_num; struct sockaddr *remote_addr = listener->remote_addr[index]; -diff --git a/src/server.c b/src/server.c -index 73b6599..ef347a5 100644 --- a/src/server.c +++ b/src/server.c -@@ -620,6 +620,14 @@ create_and_bind(const char *host, const char *port, int mptcp) +@@ -620,6 +620,14 @@ create_and_bind(const char *host, const } } @@ -113,11 +107,9 @@ index 73b6599..ef347a5 100644 setnonblocking(serverfd); server_t *server = new_server(serverfd, listener); -diff --git a/src/tunnel.c b/src/tunnel.c -index 99ed412..9f0dd57 100644 --- a/src/tunnel.c +++ b/src/tunnel.c -@@ -166,6 +166,14 @@ create_and_bind(const char *addr, const char *port) +@@ -166,6 +166,14 @@ create_and_bind(const char *addr, const } } @@ -147,6 +139,3 @@ index 99ed412..9f0dd57 100644 int index = rand() % listener->remote_num; struct sockaddr *remote_addr = listener->remote_addr[index]; --- -2.39.5 - diff --git a/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch b/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch index 2e0879fb4bb..b911133d201 100644 --- a/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch +++ b/shadowsocks-libev/patches/102-deprecate-load16-be-replace-with-ntohs.patch @@ -12,11 +12,9 @@ Subject: [PATCH] Deprecate load16_be() function in favor to ntohs() function src/utils.h | 1 - 6 files changed, 6 insertions(+), 15 deletions(-) -diff --git a/src/aead.c b/src/aead.c -index 73349da64..e5d9b01e7 100644 --- a/src/aead.c +++ b/src/aead.c -@@ -605,7 +605,7 @@ aead_chunk_decrypt(cipher_ctx_t *ctx, uint8_t *p, uint8_t *c, uint8_t *n, +@@ -605,7 +605,7 @@ aead_chunk_decrypt(cipher_ctx_t *ctx, ui return CRYPTO_ERROR; assert(*plen == CHUNK_SIZE_LEN); @@ -25,11 +23,9 @@ index 73349da64..e5d9b01e7 100644 mlen = mlen & CHUNK_SIZE_MASK; if (mlen == 0) -diff --git a/src/local.c b/src/local.c -index fa1ca7b31..76d46de17 100644 --- a/src/local.c +++ b/src/local.c -@@ -382,7 +382,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) +@@ -390,7 +390,7 @@ server_handshake(EV_P_ ev_io *w, buffer_ abuf->len += in_addr_len + 2; if (acl || verbose) { @@ -38,7 +34,7 @@ index fa1ca7b31..76d46de17 100644 if (!inet_ntop(AF_INET, (const void *)(buf->data + request_len), ip, INET_ADDRSTRLEN)) { LOGI("inet_ntop(AF_INET): %s", strerror(errno)); -@@ -400,7 +400,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) +@@ -408,7 +408,7 @@ server_handshake(EV_P_ ev_io *w, buffer_ abuf->len += name_len + 2; if (acl || verbose) { @@ -47,7 +43,7 @@ index fa1ca7b31..76d46de17 100644 memcpy(host, buf->data + request_len + 1, name_len); host[name_len] = '\0'; sprintf(port, "%d", p); -@@ -414,7 +414,7 @@ server_handshake(EV_P_ ev_io *w, buffer_t *buf) +@@ -422,7 +422,7 @@ server_handshake(EV_P_ ev_io *w, buffer_ abuf->len += in6_addr_len + 2; if (acl || verbose) { @@ -56,11 +52,9 @@ index fa1ca7b31..76d46de17 100644 if (!inet_ntop(AF_INET6, (const void *)(buf->data + request_len), ip, INET6_ADDRSTRLEN)) { LOGI("inet_ntop(AF_INET6): %s", strerror(errno)); -diff --git a/src/server.c b/src/server.c -index 73b65996d..be8c6ffcf 100644 --- a/src/server.c +++ b/src/server.c -@@ -1129,7 +1129,7 @@ server_recv_cb(EV_P_ ev_io *w, int revents) +@@ -1137,7 +1137,7 @@ server_recv_cb(EV_P_ ev_io *w, int reven return; } @@ -69,11 +63,9 @@ index 73b65996d..be8c6ffcf 100644 offset += 2; -diff --git a/src/udprelay.c b/src/udprelay.c -index 5de38830a..f6a5a7c25 100644 --- a/src/udprelay.c +++ b/src/udprelay.c -@@ -316,7 +316,7 @@ parse_udprelay_header(const char *buf, const size_t buf_len, +@@ -316,7 +316,7 @@ parse_udprelay_header(const char *buf, c } if (port != NULL) { @@ -82,8 +74,6 @@ index 5de38830a..f6a5a7c25 100644 } offset += 2; -diff --git a/src/utils.c b/src/utils.c -index d3ff2aba6..c7a5f0aa6 100644 --- a/src/utils.c +++ b/src/utils.c @@ -571,14 +571,6 @@ get_default_conf(void) @@ -101,11 +91,9 @@ index d3ff2aba6..c7a5f0aa6 100644 int get_mptcp(int enable) { -diff --git a/src/utils.h b/src/utils.h -index 1df24c166..c20506da9 100644 --- a/src/utils.h +++ b/src/utils.h -@@ -249,7 +249,6 @@ void *ss_realloc(void *ptr, size_t new_size); +@@ -249,7 +249,6 @@ void *ss_realloc(void *ptr, size_t new_s int ss_is_ipv6addr(const char *addr); char *get_default_conf(void); From 136e72ab663fc1a232fb31aa585615eb5590ad8e Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 6 Feb 2025 01:12:02 +0800 Subject: [PATCH 711/972] luci-app-ssr-plus: remove `Netflix` shunt not use `mixed` --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 99a2921dee5..65ea71d4616 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -549,7 +549,9 @@ shunt_dns_config_file_port() { if [ "$(uci_get_by_type socks5_proxy socks5_auth nil)" != "noauth" ]; then # 全局socks 有密码,NetFlix不能使用auth验证,需设置为无密码的socks配置用于分流 # 删除 NetFlix dns 端口密码验证 - sed -i -e 's/"auth"\s*:\s*"password"/\"auth\": \"noauth\"/g' \ + sed -i \ + -e '/"mixed"/d' \ + -e 's/"auth"\s*:\s*"password"/\"auth\": \"noauth\"/g' \ -e '/"accounts": \[/,/\]/d' $shunt_config_file fi fi From 5164f1b68300958d54a2b0d67d3a6e7c2ae3c8c7 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 8 Feb 2025 21:40:49 +0800 Subject: [PATCH 712/972] microsocks: update to 1.0.5 --- microsocks/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/microsocks/Makefile b/microsocks/Makefile index 9f3b13a9e30..5d80729150d 100644 --- a/microsocks/Makefile +++ b/microsocks/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=microsocks -PKG_VERSION:=1.0.4 +PKG_VERSION:=1.0.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/rofl0r/microsocks/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=130127a87f55870f18fbe47a64d9b9533020e2900802d36a0f6fd2b074313deb +PKG_HASH:=939d1851a18a4c03f3cc5c92ff7a50eaf045da7814764b4cb9e26921db15abc8 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING From b0bd48e7c29b1c744ccfad29e89be1dc714deae6 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 13 Feb 2025 23:51:24 +0800 Subject: [PATCH 713/972] luci-app-ssr-plus: Fix when `SOCKS5` is initial disabled `Netflix` shunt faild issue. --- luci-app-ssr-plus/root/etc/init.d/shadowsocksr | 4 ++++ .../root/usr/share/shadowsocksr/gen_config.lua | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 65ea71d4616..5d67525ed56 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -543,6 +543,8 @@ shunt_dns_config_file_port() { jq --arg port "$port" '.inbounds |= .[0:1] + [{"protocol":"socks","port":($port | tonumber),"settings":{"udp":true,"auth":"noauth"}}] + .[1:]' "$shunt_config_file" > "$shunt_config_file.tmp" && mv "$shunt_config_file.tmp" $shunt_config_file echo "$port" # 返回端口号 return 0 # 成功返回 + else + sed -i -e '/"mixed"/d' $shunt_config_file fi else # NetFlix 和 全局 socks 节点不相同 @@ -553,6 +555,8 @@ shunt_dns_config_file_port() { -e '/"mixed"/d' \ -e 's/"auth"\s*:\s*"password"/\"auth\": \"noauth\"/g' \ -e '/"accounts": \[/,/\]/d' $shunt_config_file + else + sed -i -e '/"mixed"/d' $shunt_config_file fi fi # 使用传入的端口 diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index dfb318a3de1..ccee7f563a3 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -184,11 +184,11 @@ if proto and proto:find("tcp") and socks_port ~= "0" then -- socks protocol = "socks", port = tonumber(socks_port), - settings = (socks_server.server ~= "same") and { - auth = socks_server.socks5_auth, + settings = { + auth = socks_server.socks5_auth or "noauth", udp = true, - mixed = (socks_server.socks5_mixed == '1') and true or false, - accounts = (socks_server.socks5_auth ~= "noauth") and { + mixed = ((socks_server.socks5_mixed == '1') and true or false) or (socks_server.server == 'same') and nil, + accounts = (socks_server.server ~= "same" and (socks_server.socks5_auth and socks_server.socks5_auth ~= "noauth")) and { { user = socks_server.socks5_user, pass = socks_server.socks5_pass From 9d0589a97c20ed605b4e553255e6800939323fc8 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Thu, 13 Feb 2025 23:56:09 +0800 Subject: [PATCH 714/972] luci-app-ssr-plus: Fix when `SOCKS5` is global server node cannot disabled issue. --- .../luasrc/model/cbi/shadowsocksr/advanced.lua | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 6bd7aaafb33..cbe33407535 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -169,15 +169,15 @@ o.rmempty = false o.cfgvalue = function(self, section) local enabled = m:get(section, "enabled") if enabled == "0" then - return m:get(section, "old_server") or "same" + return m:get(section, "old_server") end - return Value.cfgvalue(self, section) or "same" -- Default to `same` when enabled + return Value.cfgvalue(self, section) -- Default to `same` when enabled end o.write = function(self, section, value) local enabled = m:get(section, "enabled") if enabled == "0" then - local old_server = Value.cfgvalue(self, section) or "same" + local old_server = Value.cfgvalue(self, section) if old_server ~= "nil" then m:set(section, "old_server", old_server) end From 43f566dd04a9241c69f04d3ca445e539142317fb Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 14 Feb 2025 23:35:57 +0800 Subject: [PATCH 715/972] luci-app-ssr-plus: optimize `Netflix` shunt value code. --- .../root/etc/init.d/shadowsocksr | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index 5d67525ed56..5b11203e722 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -541,7 +541,7 @@ shunt_dns_config_file_port() { # 新增NetFlix dns 使用端口 local port=$tmp_shunt_local_port jq --arg port "$port" '.inbounds |= .[0:1] + [{"protocol":"socks","port":($port | tonumber),"settings":{"udp":true,"auth":"noauth"}}] + .[1:]' "$shunt_config_file" > "$shunt_config_file.tmp" && mv "$shunt_config_file.tmp" $shunt_config_file - echo "$port" # 返回端口号 + echo $port # 返回端口号 return 0 # 成功返回 else sed -i -e '/"mixed"/d' $shunt_config_file @@ -560,7 +560,7 @@ shunt_dns_config_file_port() { fi fi # 使用传入的端口 - echo "$1" # 返回传入的端口号 + echo $1 # 返回传入的端口号 return 0 # 成功返回 } @@ -584,13 +584,7 @@ start_shunt() { local tmp_port=${tmp_local_port:-$tmp_shunt_local_port} gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port # 处理配置文件中的 NetFlix 端口 - if [ "$LOCAL_SERVER" == "$SHUNT_SERVER" ]; then - # NetFlix 和 全局socks 节点相同 - tmp_port=$(shunt_dns_config_file_port "$tmp_port") - else - # NetFlix 和 全局 socks 节点不相同 - shunt_dns_config_file_port "$tmp_port" - fi + tmp_port=$(shunt_dns_config_file_port $tmp_port) ln_start_bin $(first_type xray v2ray) v2ray run -c $shunt_config_file shunt_dns_command $tmp_port echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!" @@ -890,7 +884,13 @@ load_config() { else GLOBAL_SERVER=$switch_server fi - LOCAL_SERVER=$(uci_get_by_type socks5_proxy server nil) + if [ "$(uci_get_by_type socks5_proxy enabled 0)" == "1" ]; then + # 只有开启 全局socks 才需要取值 + LOCAL_SERVER=$(uci_get_by_type socks5_proxy server nil) + else + # 没有开启 设置为 nil + LOCAL_SERVER=nil + fi if [ "$GLOBAL_SERVER" == "nil" ]; then mode="tcp,udp" _local="2" @@ -899,7 +899,13 @@ load_config() { return 1 fi UDP_RELAY_SERVER=$(uci_get_by_type global udp_relay_server nil) - SHUNT_SERVER=$(uci_get_by_type global netflix_server nil) + if [ "$(uci_get_by_type global netflix_enable 0)" == "1" ]; then + # 只有开启 NetFlix分流 才需要取值 + SHUNT_SERVER=$(uci_get_by_type global netflix_server nil) + else + # 没有开启 设置为 nil + SHUNT_SERVER=nil + fi tcp_config_file=$TMP_PATH/tcp-only-ssr-retcp.json case "$UDP_RELAY_SERVER" in nil) From 5e6a248f9e21e252294b24738fddf487b427ab41 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 16 Feb 2025 20:23:34 +0800 Subject: [PATCH 716/972] luci-app-ssr-plus: add subscribe option allows insecure connection as TLS client (insecure) --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 5 +++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 6 ++++++ luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua | 3 ++- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index ad252745248..81f9033dc88 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=189 -PKG_RELEASE:=3 +PKG_RELEASE:=5 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index a7166abdbf7..991884858b0 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -67,6 +67,11 @@ o.write = function() luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) end +o = s:option(Flag, "allow_insecure", translate("Allow subscribe Insecure nodes By default")) +o.rmempty = false +o.description = translate("Subscribe nodes allows insecure connection as TLS client (insecure)") +o.default = "0" + o = s:option(Flag, "switch", translate("Subscribe Default Auto-Switch")) o.rmempty = false o.description = translate("Subscribe new add server default Auto-Switch on") diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 11440b64778..fa44214c093 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -1292,3 +1292,9 @@ msgstr "是否要恢复客户端默认配置?" msgid "Are you sure you want to restore the client to default settings?" msgstr "是否真的要恢复客户端默认配置?" + +msgid "Allow subscribe Insecure nodes By default" +msgstr "订阅节点允许不验证TLS证书" + +msgid "Subscribe nodes allows insecure connection as TLS client (insecure)" +msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index c4ad4768abf..5a1640c9d88 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -24,6 +24,7 @@ local uciType = 'servers' local ucic = luci.model.uci.cursor() local proxy = ucic:get_first(name, 'server_subscribe', 'proxy', '0') local switch = ucic:get_first(name, 'server_subscribe', 'switch', '1') +local allow_insecure = ucic:get_first(name, 'server_subscribe', 'allow_insecure', '0') local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {}) local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期时间/剩余流量') local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') @@ -257,7 +258,7 @@ local function processData(szType, content) elseif info.host then result.tls_host = info.host end - result.insecure = 1 + result.insecure = allow_insecure else result.tls = "0" end From 375556da6fa759ac2aa82da00662b4b57924dc6c Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 1 Mar 2025 21:55:29 +0800 Subject: [PATCH 717/972] luci-app-ssr-plus: Fix `SS` node fails to import plug-ins. --- .../model/cbi/shadowsocksr/client-config.lua | 11 +++++-- .../luasrc/view/shadowsocksr/ssrurl.htm | 31 +++++++++++++------ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 3 ++ .../usr/share/shadowsocksr/gen_config.lua | 2 +- .../root/usr/share/shadowsocksr/subscribe.lua | 4 +++ 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index f51e11adc3b..95906fe9bbf 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -279,8 +279,13 @@ o.rmempty = true o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"}) o.default = "1" +-- [[ Enable Shadowsocks Plugin ]]-- +o = s:option(Flag, "enable_plugin", translate("Enable Plugin")) +o.rmempty = true +o.default = "0" + -- Shadowsocks Plugin -o = s:option(Value, "plugin", translate("Obfs")) +o = s:option(ListValue, "plugin", translate("Obfs")) o:value("none", translate("None")) if is_finded("obfs-local") then o:value("obfs-local", translate("obfs-local")) @@ -292,11 +297,11 @@ if is_finded("xray-plugin") then o:value("xray-plugin", translate("xray-plugin")) end o.rmempty = true -o:depends("type", "ss") +o:depends({type = "ss", enable_plugin = true}) o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true -o:depends("type", "ss") +o:depends({type = "ss", enable_plugin = true}) o = s:option(ListValue, "protocol", translate("Protocol")) for _, v in ipairs(protocol) do diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 1ae02e4dc83..dfcd713c371 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -137,13 +137,16 @@ var serverInfo = temp[0].split(":"); var server = serverInfo[0]; var port = serverInfo[1].replace("/",""); - var method, password, plugin, pluginOpts; + var method, password, enable_plugin, plugin, pluginOpts; if (temp[1]) { var pluginInfo = decodeURIComponent(temp[1]); - var pluginIndex = pluginInfo.indexOf(";"); - var pluginNameInfo = pluginInfo.substr(0, pluginIndex); - plugin = pluginNameInfo.substr(pluginNameInfo.indexOf("=") + 1); - pluginOpts = pluginInfo.substr(pluginIndex + 1); + // 使用正則匹配 plugin 參數 + var pluginNameInfo = pluginInfo.match(/plugin=([^&]+)/); + if (pluginNameInfo) { + var pluginParams = pluginNameInfo[1].split(";"); + plugin = pluginParams.shift(); // 获取 plugin + pluginOpts = pluginParams.length > 0 ? pluginParams.join(";") : ""; + } } var userInfoSplitIndex = userInfo.indexOf(":"); if (userInfoSplitIndex != -1) { @@ -156,12 +159,19 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port; document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = password || ""; document.getElementsByName('cbid.shadowsocksr.' + sid + '.encrypt_method_ss')[0].value = method || ""; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].value = plugin || "none"; - document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].dispatchEvent(event); - if (plugin != undefined) { - document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin_opts')[0].value = pluginOpts || ""; + if (plugin && plugin !== "none") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_plugin')[0].checked = true; // 设置 enable_plugin 为 true + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_plugin')[0].dispatchEvent(event); // 触发事件 + + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].value = plugin || "none"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin')[0].dispatchEvent(event); + if (plugin !== undefined) { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.plugin_opts')[0].value = pluginOpts || ""; + } + } else { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_plugin')[0].checked = false; } - if (param != undefined) { + if (param !== undefined) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURI(param); } s.innerHTML = "<%:Import configuration information successfully.%>"; @@ -518,3 +528,4 @@ <%+cbi/valuefooter%> + diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index fa44214c093..b8580d28798 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -843,6 +843,9 @@ msgstr "修改订阅 URL 和节点关键字后,请先点击更新" msgid "Update All Subscribe Servers" msgstr "更新所有订阅服务器节点" +msgid "Enable Plugin" +msgstr "启用插件" + msgid "Plugin" msgstr "插件" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index ccee7f563a3..b19ddafaf69 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -579,7 +579,7 @@ function config:handleIndex(index) local switch = { ss = function() ss.protocol = socks_port - if server.plugin and server.plugin ~= "none" then + if server.enable_plugin == "1" and server.plugin and server.plugin ~= "none" then ss.plugin = server.plugin ss.plugin_opts = server.plugin_opts or nil end diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 5a1640c9d88..233981f37c0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -302,6 +302,10 @@ local function processData(szType, content) if result.plugin == "simple-obfs" then result.plugin = "obfs-local" end + -- 如果插件不為 none,確保 enable_plugin 為 1 + if result.plugin ~= "none" and result.plugin ~= "" then + result.enable_plugin = 1 + end end else result.server_port = host[2]:gsub("/","") From 43bdcbb0770d0558c50b271025fdfc9398a60713 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 2 Mar 2025 21:45:03 +0800 Subject: [PATCH 718/972] luci-app-ssr-plus: Add `SS` plug custom Settings. --- .../luasrc/model/cbi/shadowsocksr/client-config.lua | 5 +++++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 6 ++++++ .../root/usr/share/shadowsocksr/gen_config.lua | 6 +++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 95906fe9bbf..1394160e9ab 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -296,9 +296,14 @@ end if is_finded("xray-plugin") then o:value("xray-plugin", translate("xray-plugin")) end +o:value("custom", translate("Custom")) o.rmempty = true o:depends({type = "ss", enable_plugin = true}) +o = s:option(Value, "custom_plugin", translate("Custom Plugin Path")) +o.placeholder = "/path/to/custom-plugin" +o:depends({plugin = "custom"}) + o = s:option(Value, "plugin_opts", translate("Plugin Opts")) o.rmempty = true o:depends({type = "ss", enable_plugin = true}) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index b8580d28798..8d7a2d83074 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -849,6 +849,12 @@ msgstr "启用插件" msgid "Plugin" msgstr "插件" +msgid "Custom" +msgstr "自定义" + +msgid "Custom Plugin Path" +msgstr "自定义插件路径" + msgid "Plugin Opts" msgstr "插件参数" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index b19ddafaf69..dbb2a1f2bc0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -580,7 +580,11 @@ function config:handleIndex(index) ss = function() ss.protocol = socks_port if server.enable_plugin == "1" and server.plugin and server.plugin ~= "none" then - ss.plugin = server.plugin + if server.plugin == "custom" then + ss.plugin = server.custom_plugin + else + ss.plugin = server.plugin + end ss.plugin_opts = server.plugin_opts or nil end print(json.stringify(ss, 1)) From 6929073d125b2d8a02473bef244c55a6389dd35c Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 9 Mar 2025 00:30:08 +0800 Subject: [PATCH 719/972] luci-app-ssr-plus: Resolve `ss` and `ss-rust` overlay display issues. --- .../model/cbi/shadowsocksr/client-config.lua | 19 ++++++++++++++----- .../luasrc/view/shadowsocksr/ssrurl.htm | 3 +++ luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 12 +++++++++--- .../root/usr/share/shadowsocksr/subscribe.lua | 4 +++- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 1394160e9ab..d3e668f8af9 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -146,11 +146,8 @@ end if is_finded("ssr-redir") then o:value("ssr", translate("ShadowsocksR")) end -if is_finded("ss-local") or is_finded("ss-redir") then - o:value("ss", translate("Shadowsocks-libev Version")) -end -if is_finded("sslocal") or is_finded("ssmanager") then - o:value("ss", translate("Shadowsocks-rust Version")) +if is_finded("ss-local") or is_finded("ss-redir") or is_finded("sslocal") or is_finded("ssmanager") then + o:value("ss", translate("Shadowsocks")) end if is_finded("trojan") then o:value("trojan", translate("Trojan")) @@ -187,6 +184,18 @@ end o:depends("type", "tun") o.description = translate("Redirect traffic to this network interface") +-- 新增一个选择框,用于选择 Shadowsocks 版本 +o = s:option(ListValue, "ss_variant", translate("Shadowsocks Variant")) +local isSSRust = is_finded("sslocal") or is_finded("ssmanager") +local isSSLibev = is_finded("ss-local") or is_finded("ss-redir") +if isSSRust then + o:value("isSSRust", translate("Shadowsocks-rust Version")) +end +if isSSLibev then + o:value("isSSLibev", translate("Shadowsocks-libev Version")) +end +o:depends("type", "ss") + o = s:option(ListValue, "v2ray_protocol", translate("V2Ray/XRay protocol")) o:value("vless", translate("VLESS")) o:value("vmess", translate("VMess")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index dfcd713c371..d38d2121e98 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -155,6 +155,9 @@ } document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = ssu[0]; document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ss_variant')[0].value = + (ssu[0] === "ss") ? "isSSRust" : "isSSLibev"; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ss_variant')[0].dispatchEvent(event); document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = server; document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = port; document.getElementsByName('cbid.shadowsocksr.' + sid + '.password')[0].value = password || ""; diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 8d7a2d83074..8c3b09091a9 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -208,13 +208,13 @@ msgid "Certificate fingerprint" msgstr "证书指纹" msgid "shadowTLS protocol Version" -msgstr "ShadowTLS协议版本" +msgstr "ShadowTLS 协议版本" msgid "TLS 1.3 Strict mode" msgstr "TLS 1.3 限定模式" msgid "Disable TCP No_delay" -msgstr "禁用TCP无延迟" +msgstr "禁用 TCP 无延迟" msgid "shadow-TLS SNI" msgstr "服务器名称指示" @@ -222,11 +222,17 @@ msgstr "服务器名称指示" msgid "Shadow-TLS ChainPoxy type" msgstr "代理链类型" +msgid "Shadowsocks Variant" +msgstr "shadowsocks 变体" + msgid "Shadowsocks-rust Version" msgstr "shadowsocks rust 版本" +msgid "Shadowsocks-libev Version" +msgstr "Shadowsocks-libev 版本" + msgid "Vmess Protocol" -msgstr "VMESS协议" +msgstr "VMESS 协议" msgid "Shadowsocks password" msgstr "shadowsocks密码" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 233981f37c0..cb81dd67561 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -28,7 +28,8 @@ local allow_insecure = ucic:get_first(name, 'server_subscribe', 'allow_insecure' local subscribe_url = ucic:get_first(name, 'server_subscribe', 'subscribe_url', {}) local filter_words = ucic:get_first(name, 'server_subscribe', 'filter_words', '过期时间/剩余流量') local save_words = ucic:get_first(name, 'server_subscribe', 'save_words', '') -local v2_ss = luci.sys.exec('type -t -p ss-redir sslocal') ~= "" and "ss" or "v2ray" +local v2_ss = luci.sys.exec('type -t -p sslocal ss-redir') ~= "" and "ss" or "v2ray" +local ss_variant = luci.sys.exec('type -t -p sslocal') ~= "" and "isSSRust" or luci.sys.exec('type -t -p ss-redir') ~= "" and "isSSLibev" local v2_tj = luci.sys.exec('type -t -p trojan') ~= "" and "trojan" or "v2ray" local log = function(...) print(os.date("%Y-%m-%d %H:%M:%S ") .. table.concat({...}, " ")) @@ -278,6 +279,7 @@ local function processData(szType, content) result.alias = UrlDecode(alias) result.type = v2_ss result.v2ray_protocol = (v2_ss == "v2ray") and "shadowsocks" or nil + result.ss_variant = ss_variant result.encrypt_method_ss = method result.password = password result.server = host[1] From 39cd52c55687573da61a865305fc8cae07750ce3 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 9 Mar 2025 21:04:10 +0800 Subject: [PATCH 720/972] luci-app-ssr-plus: Add `Netflix` shunt mode annotation. --- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index cbe33407535..08f7908f0f3 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -66,6 +66,7 @@ o:value("https://fastly.jsdelivr.net/gh/gaoyifan/china-operator-ip@ip-lists/chin o.default = "https://ispip.clang.cn/all_cn.txt" o = s:option(Flag, "netflix_enable", translate("Enable Netflix Mode")) +o.description = translate("Disable shunt mode before, Please must first disable shunt node.") o.rmempty = false o = s:option(Value, "nfip_url", translate("nfip_url")) From 0ef643c4af4aed61e7966eb35fb2d9cae75d1280 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 9 Mar 2025 21:06:01 +0800 Subject: [PATCH 721/972] luci-app-ssr-plus: Add `Netflix` shunt mode annotation. --- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 3 +++ 1 file changed, 3 insertions(+) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 8c3b09091a9..8c6c72a951c 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -1209,6 +1209,9 @@ msgstr "应用" msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" +msgid "Disable shunt mode before, Please must first disable shunt node." +msgstr "停用分流模式之前,请务必先停用分流节点。" + msgid "TUIC User UUID" msgstr "TUIC 用户 uuid" From fc58f1f1fb8d848ffc50ef33c1693acfdd87112b Mon Sep 17 00:00:00 2001 From: coolsnowwolf <31687149+coolsnowwolf@users.noreply.github.com> Date: Mon, 10 Mar 2025 00:36:52 +0800 Subject: [PATCH 722/972] hysteria: update to 2.6.1 --- hysteria/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hysteria/Makefile b/hysteria/Makefile index 6b17a51ff0c..7a6500e870e 100644 --- a/hysteria/Makefile +++ b/hysteria/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=hysteria -PKG_VERSION:=2.6.0 +PKG_VERSION:=2.6.1 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/apernet/hysteria/tar.gz/app/v$(PKG_VERSION)? -PKG_HASH:=c9d878ea81c78e71fcb07d47e3366cb4ae2ef5bce62f0ad81e58923db4995366 +PKG_HASH:=21955752d4a9fcbe42cde9e491421b67144e0070cba184884ad7f8d4ff1f48de PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-app-v$(PKG_VERSION) PKG_LICENSE:=MIT From 06e07cd67900fd03d3e0ae0f9b970cd23e42cfd3 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Mon, 10 Mar 2025 22:10:25 +0800 Subject: [PATCH 723/972] luci-app-ssr-plus: Fix disable shunt mode `Netflix` list domain name unavailable. --- .../model/cbi/shadowsocksr/advanced.lua | 2 +- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 4 +-- .../root/usr/share/shadowsocksr/gfw2ipset.sh | 26 ++++++++++++++----- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 08f7908f0f3..0cb47f0af83 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -66,7 +66,7 @@ o:value("https://fastly.jsdelivr.net/gh/gaoyifan/china-operator-ip@ip-lists/chin o.default = "https://ispip.clang.cn/all_cn.txt" o = s:option(Flag, "netflix_enable", translate("Enable Netflix Mode")) -o.description = translate("Disable shunt mode before, Please must first disable shunt node.") +o.description = translate("When disabled shunt mode, will same time stopped shunt service.") o.rmempty = false o = s:option(Value, "nfip_url", translate("nfip_url")) diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 8c6c72a951c..55d73aa196f 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -1209,8 +1209,8 @@ msgstr "应用" msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" -msgid "Disable shunt mode before, Please must first disable shunt node." -msgstr "停用分流模式之前,请务必先停用分流节点。" +msgid "When disabled shunt mode, will same time stopped shunt service." +msgstr "当停用分流模式时,将同时停止分流服务。" msgid "TUIC User UUID" msgstr "TUIC 用户 uuid" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh index 66d2b255a90..46e8c1107bc 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gfw2ipset.sh @@ -1,5 +1,7 @@ #!/bin/sh + . $IPKG_INSTROOT/etc/init.d/shadowsocksr + netflix() { if [ -f "$TMP_DNSMASQ_PATH/gfw_list.conf" ]; then for line in $(cat /etc/ssrplus/netflix.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done @@ -14,7 +16,14 @@ else cp -rf /etc/ssrplus/gfw_list.conf $TMP_DNSMASQ_PATH/ cp -rf /etc/ssrplus/gfw_base.conf $TMP_DNSMASQ_PATH/ fi -case "$(uci_get_by_type global netflix_server nil)" in +if [ "$(uci_get_by_type global netflix_enable 0)" == "1" ]; then + # 只有开启 NetFlix分流 才需要取值 + SHUNT_SERVER=$(uci_get_by_type global netflix_server nil) +else + # 没有开启 设置为 nil + SHUNT_SERVER=nil +fi +case "$SHUNT_SERVER" in nil) rm -f $TMP_DNSMASQ_PATH/netflix_forward.conf ;; @@ -25,12 +34,14 @@ $(uci_get_by_type global global_server nil) | $switch_server | same) netflix $tmp_shunt_dns_port ;; esac -for line in $(cat /etc/ssrplus/black.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done -for line in $(cat /etc/ssrplus/black.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done -for line in $(cat /etc/ssrplus/white.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done -for line in $(cat /etc/ssrplus/white.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done -for line in $(cat /etc/ssrplus/deny.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done -for line in $(cat /etc/ssrplus/deny.list); do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done +# 此处使用while方式读取 防止 /etc/ssrplus/ 目录下的 black.list white.list deny.list 等2个或多个文件一行中存在空格 比如:# abc.com 而丢失:server +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done < /etc/ssrplus/black.list +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done < /etc/ssrplus/black.list +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done < /etc/ssrplus/white.list +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done < /etc/ssrplus/white.list +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_list.conf; done < /etc/ssrplus/deny.list +while read line; do sed -i "/$line/d" $TMP_DNSMASQ_PATH/gfw_base.conf; done < /etc/ssrplus/deny.list +# 此处直接使用 cat 因为有 sed '/#/d' 删除了 数据 cat /etc/ssrplus/black.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/server=\/&\/127.0.0.1#$dns_port\nipset=\/&\/blacklist/" >$TMP_DNSMASQ_PATH/blacklist_forward.conf cat /etc/ssrplus/white.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/server=\/&\/127.0.0.1\nipset=\/&\/whitelist/" >$TMP_DNSMASQ_PATH/whitelist_forward.conf cat /etc/ssrplus/deny.list | sed '/^$/d' | sed '/#/d' | sed "/.*/s/.*/address=\/&\//" >$TMP_DNSMASQ_PATH/denylist.conf @@ -45,3 +56,4 @@ if [ "$(uci_get_by_type global adblock 0)" == "1" ]; then else rm -f $TMP_DNSMASQ_PATH/ad.conf fi + From 22508bd1a1cf8487efb41a0f7e6131d1ca14ee6f Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Tue, 18 Mar 2025 11:36:40 +0800 Subject: [PATCH 724/972] luci-app-ssr-plus: using wget-ssl instead of uclient-fetch --- luci-app-ssr-plus/Makefile | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 81f9033dc88..7535ee73586 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=189 -PKG_RELEASE:=5 +PKG_RELEASE:=6 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ @@ -34,10 +34,7 @@ LUCI_PKGARCH:=all LUCI_DEPENDS:= \ +coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat +jq \ +ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \ - +tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \ - +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls:libustream-mbedtls \ - +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl:libustream-openssl \ - +PACKAGE_$(PKG_NAME)_INCLUDE_libustream-wolfssl:libustream-wolfssl \ + +tcping +resolveip +shadowsocksr-libev-ssr-check +wget-ssl \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:curl \ +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:curl \ @@ -67,20 +64,6 @@ LUCI_DEPENDS:= \ define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) -choice - prompt "Uclient SSL Lib Selection" - default PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl - - config PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls - bool "libustream-mbedtls" - - config PACKAGE_$(PKG_NAME)_INCLUDE_libustream-openssl - bool "libustream-openssl" - - config PACKAGE_$(PKG_NAME)_INCLUDE_PACKAGE_libustream-wolfssl - bool "libustream-wolfssl" -endchoice - choice prompt "Shadowsocks Client Selection" default PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client if aarch64 || x86_64 From 80d870df89bf9f5d82128b38e2423d2caaf9f642 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 15 Mar 2025 17:32:48 +0800 Subject: [PATCH 725/972] luci-app-ssr-plus: Add `SS` and `SS-Rust` version selection to address default use of `SS-Rust` programs. --- .../luasrc/controller/shadowsocksr.lua | 2 +- .../model/cbi/shadowsocksr/advanced.lua | 6 +- .../model/cbi/shadowsocksr/client-config.lua | 67 +++++++++--- .../luasrc/model/cbi/shadowsocksr/client.lua | 4 +- .../luasrc/model/cbi/shadowsocksr/server.lua | 12 +-- .../luasrc/model/cbi/shadowsocksr/servers.lua | 57 +++++++++- .../luasrc/model/cbi/shadowsocksr/status.lua | 2 +- .../luasrc/view/shadowsocksr/server_list.htm | 20 +++- .../luasrc/view/shadowsocksr/ssrurl.htm | 42 +++++--- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 15 +-- .../root/etc/init.d/shadowsocksr | 100 +++++++++++++++--- .../root/usr/share/shadowsocksr/subscribe.lua | 19 +++- .../root/usr/share/shadowsocksr/update.lua | 2 +- 13 files changed, 279 insertions(+), 69 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua index 31989b01a5c..4ba5d068412 100644 --- a/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua +++ b/luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua @@ -96,7 +96,7 @@ function check_port() local retstring = "

" local s local server_name = "" - local uci = luci.model.uci.cursor() + local uci = require "luci.model.uci".cursor() local iret = 1 uci:foreach("shadowsocksr", "servers", function(s) if s.alias then diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 0cb47f0af83..593d8f2dd4e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -1,9 +1,9 @@ local m, s, o -local uci = luci.model.uci.cursor() +local uci = require "luci.model.uci".cursor() local server_table = {} local type_table = {} local function is_finded(e) - return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false + return luci.sys.exec(string.format('type -t -p "%s" 2>/dev/null', e)) ~= "" end uci:foreach("shadowsocksr", "servers", function(s) @@ -203,6 +203,7 @@ for key, server_type in pairs(type_table) do o:depends("server", key) end end +o:depends({server = "same", disable = true}) -- Socks User o = s:option(Value, "socks5_user", translate("Socks5 User"), translate("Only when Socks5 Auth Mode is password valid, Mandatory.")) @@ -225,6 +226,7 @@ for key, server_type in pairs(type_table) do o:depends("server", key) end end +o:depends({server = "same", disable = true}) end -- Local Port diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index d3e668f8af9..7f476862555 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -6,19 +6,29 @@ require "luci.sys" require "luci.http" require "luci.jsonc" require "luci.model.ipkg" +require "luci.model.uci" +local uci = require "luci.model.uci".cursor() local m, s, o + local sid = arg[1] local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid") +-- 确保正确判断程序是否存在 local function is_finded(e) - return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false + return luci.sys.exec(string.format('type -t -p "%s" 2>/dev/null', e)) ~= "" end local function is_installed(e) return luci.model.ipkg.installed(e) end +local has_ss_rust = is_finded("sslocal") or is_finded("ssserver") +local has_ss_libev = is_finded("ss-redir") or is_finded("ss-local") + +-- 读取当前存储的 ss_type +local ss_type = uci:get_first("shadowsocksr", "server_subscribe", "ss_type") + local server_table = {} local encrypt_methods = { -- ssr @@ -79,7 +89,7 @@ local encrypt_methods_ss = { "camellia-256-cfb", "salsa20", "chacha20", - "chacha20-ietf" ]] + "chacha20-ietf" ]]-- } local protocol = { @@ -146,8 +156,8 @@ end if is_finded("ssr-redir") then o:value("ssr", translate("ShadowsocksR")) end -if is_finded("ss-local") or is_finded("ss-redir") or is_finded("sslocal") or is_finded("ssmanager") then - o:value("ss", translate("Shadowsocks")) +if has_ss_rust or has_ss_libev then + o:value("ss", translate("ShadowSocks")) end if is_finded("trojan") then o:value("trojan", translate("Trojan")) @@ -185,16 +195,44 @@ o:depends("type", "tun") o.description = translate("Redirect traffic to this network interface") -- 新增一个选择框,用于选择 Shadowsocks 版本 -o = s:option(ListValue, "ss_variant", translate("Shadowsocks Variant")) -local isSSRust = is_finded("sslocal") or is_finded("ssmanager") -local isSSLibev = is_finded("ss-local") or is_finded("ss-redir") -if isSSRust then - o:value("isSSRust", translate("Shadowsocks-rust Version")) +o = s:option(ListValue, "has_ss_type", string.format("%s", translate("ShadowSocks Node Use Version"))) +o.description = translate("Selection ShadowSocks Node Use Version.") +-- 设置默认 Shadowsocks 版本 +-- 动态添加选项 +if has_ss_rust then + o:value("ss-rust", translate("ShadowSocks-rust Version")) end -if isSSLibev then - o:value("isSSLibev", translate("Shadowsocks-libev Version")) +if has_ss_libev then + o:value("ss-libev", translate("ShadowSocks-libev Version")) +end +-- 设置默认值 +if ss_type == "ss-rust" then + o.default = "ss-rust" +elseif ss_type == "ss-libev" then + o.default = "ss-libev" end o:depends("type", "ss") +o.write = function(self, section, value) + -- 更新 Shadowsocks 节点的 has_ss_type + uci:foreach("shadowsocksr", "servers", function(s) + local node_type = uci:get("shadowsocksr", s[".name"], "type") -- 获取节点类型 + if node_type == "ss" then -- 仅修改 Shadowsocks 节点 + local old_value = uci:get("shadowsocksr", s[".name"], "has_ss_type") + if old_value ~= value then + uci:set("shadowsocksr", s[".name"], "has_ss_type", value) + end + end + end) + + -- 更新 server_subscribe 的 ss_type + local old_value = uci:get("shadowsocksr", "server_subscribe", "ss_type") + if old_value ~= value then + uci:set("shadowsocksr", "@server_subscribe[0]", "ss_type", value) + end + + -- 更新当前 section 的 has_ss_type + Value.write(self, section, value) +end o = s:option(ListValue, "v2ray_protocol", translate("V2Ray/XRay protocol")) o:value("vless", translate("VLESS")) @@ -271,7 +309,12 @@ o:depends("type", "ssr") o = s:option(ListValue, "encrypt_method_ss", translate("Encrypt Method")) for _, v in ipairs(encrypt_methods_ss) do - o:value(v) + if v == "none" then + o.default = "none" + o:value("none", translate("none")) + else + o:value(v, translate(v)) + end end o.rmempty = true o:depends("type", "ss") diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 26de9baa40f..6e209e1a9be 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -3,11 +3,11 @@ -- Licensed to the public under the GNU General Public License v3. local m, s, sec, o -local uci = luci.model.uci.cursor() +local uci = require "luci.model.uci".cursor() local validation = require "luci.cbi.datatypes" local function is_finded(e) - return luci.sys.exec('type -t -p "%s"' % e) ~= "" and true or false + return luci.sys.exec(string.format('type -t -p "%s" 2>/dev/null', e)) ~= "" end m = Map("shadowsocksr", translate("ShadowSocksR Plus+ Settings"), translate("

Support SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN etc.

")) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua index 6ef44c08068..db3160ab4cd 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua @@ -120,15 +120,9 @@ function o.cfgvalue(...) end o = sec:option(DummyValue, "encrypt_method", translate("Encrypt Method")) -function o.cfgvalue(...) - local v = Value.cfgvalue(...) - return v and v:upper() or "-" -end - -o = sec:option(DummyValue, "encrypt_method_ss", translate("Encrypt Method")) -function o.cfgvalue(...) - local v = Value.cfgvalue(...) - return v and v:upper() or "-" +function o.cfgvalue(self, section) + local method = self.map:get(section, "encrypt_method") or self.map:get(section, "encrypt_method_ss") + return method and method:upper() or "-" end o = sec:option(DummyValue, "protocol", translate("Protocol")) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 991884858b0..ac1bbc6f25a 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -1,10 +1,39 @@ -- Licensed to the public under the GNU General Public License v3. require "luci.http" +require "luci.sys" require "luci.dispatcher" require "luci.model.uci" -local m, s, o -local uci = luci.model.uci.cursor() +local uci = require "luci.model.uci".cursor() + +local m, s, o, node local server_count = 0 + +-- 确保正确判断程序是否存在 +local function is_finded(e) + return luci.sys.exec(string.format('type -t -p "%s" 2>/dev/null', e)) ~= "" +end + +local has_ss_rust = is_finded("sslocal") or is_finded("ssserver") +local has_ss_libev = is_finded("ss-redir") or is_finded("ss-local") + +local ss_type_list = {} + +if has_ss_rust then + table.insert(ss_type_list, { id = "ss-rust", name = translate("ShadowSocks-rust Version") }) +end +if has_ss_libev then + table.insert(ss_type_list, { id = "ss-libev", name = translate("ShadowSocks-libev Version") }) +end + +-- 如果用户没有手动设置,则自动选择 +if ss_type == "" then + if has_ss_rust then + ss_type = "ss-rust" + elseif has_ss_libev then + ss_type = "ss-libev" + end +end + uci:foreach("shadowsocksr", "servers", function(s) server_count = server_count + 1 end) @@ -48,6 +77,30 @@ o.default = 30 o.rmempty = true o:depends("auto_update", "1") +-- 确保 ss_type_list 不为空 +if #ss_type_list > 0 then + o = s:option(ListValue, "ss_type", string.format("%s", translate("ShadowSocks Node Use Version"))) + o.description = translate("Selection ShadowSocks Node Use Version.") + for _, v in ipairs(ss_type_list) do + o:value(v.id, v.name) -- 存储 "ss-libev" / "ss-rust",但 UI 显示完整名称 + end + o.default = ss_type -- 设置默认值 + o.write = function(self, section, value) + -- 更新 Shadowsocks 节点的 has_ss_type + uci:foreach("shadowsocksr", "servers", function(s) + local node_type = uci:get("shadowsocksr", s[".name"], "type") -- 获取节点类型 + if node_type == "ss" then -- 仅修改 Shadowsocks 节点 + local old_value = uci:get("shadowsocksr", s[".name"], "has_ss_type") + if old_value ~= value then + uci:set("shadowsocksr", s[".name"], "has_ss_type", value) + end + end + end) + -- 更新当前 section 的 ss_type + Value.write(self, section, value) + end +end + o = s:option(DynamicList, "subscribe_url", translate("Subscribe URL")) o.rmempty = true diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua index c7e84ec6918..21b7c70d61c 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua @@ -15,7 +15,7 @@ local ad_count = 0 local ip_count = 0 local nfip_count = 0 local Process_list = luci.sys.exec("busybox ps -w") -local uci = luci.model.uci.cursor() +local uci = require "luci.model.uci".cursor() -- html constants font_blue = [[]] style_blue = [[]] diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm index f9befe53fb4..2ba1be910e9 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm @@ -87,8 +87,18 @@ } // set tr draggable - function enableDragForTable(table_selecter, store) { - var trs = document.querySelectorAll(table_selecter + " tr"); + function enableDragForTable(table_selector, store) { + // 添加 CSS 样式 + const style = document.createElement("style"); + style.textContent = ` + tr[draggable="true"] { + cursor: move; + user-select: none; + } + `; + document.head.appendChild(style); + + var trs = document.querySelectorAll(table_selector + " tr"); if (!trs || trs.length.length < 3) { return; } @@ -104,12 +114,12 @@ ev.dataTransfer.dropEffect = "move"; } function moveToTop(id) { - var top = document.querySelectorAll(table_selecter + " tr")[2]; + var top = document.querySelectorAll(table_selector + " tr")[2]; cbi_row_drop(id, top.id, store); } function moveToBottom(id) { - console.log('moveToBottom:', id); - var trList = document.querySelectorAll(table_selecter + " tr"); + //console.log('moveToBottom:', id); + var trList = document.querySelectorAll(table_selector + " tr"); var bottom = trList[trList.length - 1]; cbi_row_drop(id, bottom.id, store, true); } diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index d38d2121e98..72170dd5bca 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -1,6 +1,12 @@ <%+cbi/valueheader%> +<% +local map = self.map +local ss_type = map:get("@server_subscribe[0]", "ss_type") +-%> + ]]) +end + local has_ss_rust = is_finded("sslocal") or is_finded("ssserver") local has_ss_libev = is_finded("ss-redir") or is_finded("ss-local") @@ -137,6 +153,11 @@ if m.uci:get("shadowsocksr", sid) ~= "servers" then luci.http.redirect(m.redirect) return end +-- 保存&应用成功后跳转到节点列表 +m.apply_on_parse = true +m.on_after_apply = function(self) + showMsg_Redirect(self.redirect, 4500) +end -- [[ Servers Setting ]]-- s = m:section(NamedSection, sid, "servers") From ae0fe04416d5861fdac431b9de57c0d41e7d9d4c Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 13 Jul 2025 15:30:46 +0800 Subject: [PATCH 793/972] Revert "shadowsocks-libev: update hash" --- shadowsocks-libev/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 188245fc7b0..1fac15aa539 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -20,7 +20,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git PKG_SOURCE_DATE:=2025-1-20 PKG_SOURCE_VERSION:=9afa3cacf947f910be46b69fc5a7a1fdd02fd5e6 -PKG_MIRROR_HASH:=b3898ad0a557bc8b0bbb2f3888101d461944239b0b7d4d4c6f164d73694a4595 +PKG_MIRROR_HASH:=575b21803b28db8ab59ecbdb2cf21c4282881507b3a4267cc24f55bad12819cb PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz PKG_MAINTAINER:=Yousong Zhou From f34a2375e7b2610a86f3f13b6567367a3f9f35e6 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Sun, 13 Jul 2025 18:56:33 +0800 Subject: [PATCH 794/972] luci-app-ssr-plus: make compatible with openwrt snapshot lmo --- luci-app-ssr-plus/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 796e454b2d7..cdda85709df 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -1,6 +1,7 @@ include $(TOPDIR)/rules.mk -PKG_NAME:=luci-app-ssr-plus +LUCI_TITLE:=luci-app-ssr-plus +LUCI_PKGARCH:=all PKG_VERSION:=190 PKG_RELEASE:=1 From 1006f381544696dbc3a429914be744853f61f3f4 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 14 Jul 2025 04:20:18 +0800 Subject: [PATCH 795/972] luci-app-ssr-plus: depends on luci-lua-runtime on luci 24.10+ --- luci-app-ssr-plus/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index cdda85709df..2aa3cf84cf8 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -71,6 +71,7 @@ LUCI_DEPENDS:= \ define Package/$(PKG_NAME)/config select PACKAGE_luci-lib-ipkg if PACKAGE_$(PKG_NAME) +select PACKAGE_luci-lua-runtime if PACKAGE_$(PKG_NAME) choice prompt "Shadowsocks Client Selection" From d44932bad4b3c55c8e20fe5563a66ae03919f821 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 21 Jul 2025 01:45:04 +0800 Subject: [PATCH 796/972] luci-app-ssr-plus: add PKG_NAME --- luci-app-ssr-plus/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 2aa3cf84cf8..a9cf227f5d3 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -2,8 +2,9 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=luci-app-ssr-plus LUCI_PKGARCH:=all +PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=190 -PKG_RELEASE:=1 +PKG_RELEASE:=2 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ From 43dc434db4438f3fc64512def3bfe9e9eb586391 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 21 Jul 2025 02:59:56 +0800 Subject: [PATCH 797/972] luci-app-ssr-plus: avoid subscribe error when program not installed --- .../root/usr/share/shadowsocksr/subscribe.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua index 944016c05d0..db488f93ac1 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua @@ -32,7 +32,7 @@ local user_agent = ucic:get_first(name, 'server_subscribe', 'user_agent', 'v2ray -- 读取 ss_type 设置 local ss_type = ucic:get_first(name, 'server_subscribe', 'ss_type', 'ss-rust') -- 根据 ss_type 选择对应的程序 -local ss_program = "" +local ss_program = "sslocal" if ss_type == "ss-rust" then ss_program = "sslocal" -- Rust 版本使用 sslocal elseif ss_type == "ss-libev" then @@ -193,6 +193,11 @@ local function processData(szType, content) -- log(k.."="..v) -- end + -- 如果 hy2 程序未安装则跳过订阅 + if not hy2_type then + return nil + end + result.alias = url.fragment and UrlDecode(url.fragment) or nil result.type = hy2_type result.server = url.host @@ -430,6 +435,11 @@ local function processData(szType, content) log("SS 节点服务器信息格式错误:", host_port) return nil end + + -- 如果 SS 程序未安装则跳过订阅 + if not (v2_ss or has_ss_type) then + return nil + end -- 填充 result result.alias = alias @@ -609,6 +619,11 @@ local function processData(szType, content) else result.server_port = port end + + -- 如果 Tojan 程序未安装则跳过订阅 + if not v2_tj then + return nil + end if v2_tj ~= "trojan" then if params.fp then From b8813abb80c13d03e161ea9cacdf6c5141d2710f Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Mon, 21 Jul 2025 03:07:02 +0800 Subject: [PATCH 798/972] luci-app-ssr-plus: add clean subscribe cache fuction --- luci-app-ssr-plus/Makefile | 2 +- luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index a9cf227f5d3..07968a727d5 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -4,7 +4,7 @@ LUCI_TITLE:=luci-app-ssr-plus LUCI_PKGARCH:=all PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=190 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \ diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua index 50e92e76a16..672953fb020 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua @@ -118,6 +118,7 @@ o.inputstyle = "reload" o.description = translate("Update subscribe url list first") o.write = function() uci:commit("shadowsocksr") + luci.sys.exec("rm -rf /tmp/sub_md5_*") luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers")) end From 8ab6c0141bcb9abe757e6327157e9057389b642d Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 22 Jul 2025 22:16:03 +0800 Subject: [PATCH 799/972] tcping: switch to Lienol ver for ipv6 hostname support --- tcping/Makefile | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tcping/Makefile b/tcping/Makefile index a6884c6e0fb..4dc7e6583a0 100644 --- a/tcping/Makefile +++ b/tcping/Makefile @@ -5,15 +5,16 @@ include $(TOPDIR)/rules.mk PKG_NAME:=tcping -PKG_VERSION:=0.3 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://codeload.github.com/Mattraks/tcping/tar.gz/$(PKG_VERSION)? -PKG_HASH:=c703481d1751adf051dd3391c4dccdadc6dfca7484e636222b392e1213312e02 +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/Lienol/tcping.git +PKG_SOURCE_DATE:=2020-07-04 +PKG_SOURCE_VERSION:=db9101834732dac9aaa59dbb7fb9c74612dbf723 +PKG_MIRROR_HASH:=d30c1bb624afd7e4f0596d5c58d393937f6c0102f0b336c604a24a35df5173b7 PKG_LICENSE:=GPL-2.0-only -PKG_LICENSE_FILE:=license.txt +PKG_LICENSE_FILES:=license.txt PKG_BUILD_PARALLEL:=1 @@ -27,8 +28,8 @@ define Package/tcping endef define Package/tcping/install - $(INSTALL_DIR) $(1)/usr/sbin - $(INSTALL_BIN) $(PKG_BUILD_DIR)/tcping $(1)/usr/sbin + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/tcping $(1)/usr/bin/ endef $(eval $(call BuildPackage,tcping)) From c50eedfa5fdfb917fe397e2d9ddec5f3d83f326c Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 24 Jul 2025 21:12:00 +0800 Subject: [PATCH 800/972] xray-core: update to 25.7.24 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index d08fab0b0ff..4cfa39f5b41 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=25.5.16 +PKG_VERSION:=25.7.24 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=c856cd9abed7d28d3c7b856c0661cec5c85ba0669affa740c979cf40c2f73ee4 +PKG_HASH:=f185b6a393e125fc0e1c1da1daa1428d2f0f039b70c33dd55951a8733fb1caa5 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From e13872f607f756e746cdf1db64515b8a56fd40f4 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 24 Jul 2025 21:14:09 +0800 Subject: [PATCH 801/972] v2ray-core: Update to 5.37.0 --- v2ray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-core/Makefile b/v2ray-core/Makefile index 138cbb73135..294520311b6 100644 --- a/v2ray-core/Makefile +++ b/v2ray-core/Makefile @@ -5,12 +5,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-core -PKG_VERSION:=5.31.0 +PKG_VERSION:=5.37.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/v2fly/v2ray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=20895d4200d3b7906a3fba90690cc2e27239989acc9c31601f40f2f71827e2e5 +PKG_HASH:=a8aeab23fe4dbdf2236fb7ecdeb451d92f76eb7d652628b18a1e4a219baa003d PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 67818327adc3babe939fa4d1c1bc78c0a55f66df Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 24 Jul 2025 21:16:01 +0800 Subject: [PATCH 802/972] v2ray-plugin: update to 5.37.0 --- v2ray-plugin/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/v2ray-plugin/Makefile b/v2ray-plugin/Makefile index 2ef3e0d1f15..091904d11cc 100644 --- a/v2ray-plugin/Makefile +++ b/v2ray-plugin/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=v2ray-plugin -PKG_VERSION:=5.25.0 +PKG_VERSION:=5.37.0 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/teddysun/v2ray-plugin/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=64d2cc376c16ade97b8e2cce69e0c98d74f530dcf8a30cf7d22255969ca5c10d +PKG_HASH:=7796924dc2dbd1ec392953467b3ff432cdcd266bf8d1c61b5a693fdc9e9a9230 PKG_LICENSE:=MIT PKG_LICENSE_FILES:=LICENSE From 5106e3f3314bf54b524886f175a289f09abed68a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Thu, 24 Jul 2025 21:17:10 +0800 Subject: [PATCH 803/972] shadowsocks-rust: update to 1.23.5 --- shadowsocks-rust/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-rust/Makefile b/shadowsocks-rust/Makefile index c67ab13f4c8..788263541a9 100644 --- a/shadowsocks-rust/Makefile +++ b/shadowsocks-rust/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocks-rust -PKG_VERSION:=1.23.4 +PKG_VERSION:=1.23.5 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/shadowsocks/shadowsocks-rust/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=8a91836256989e3a56409d0e83da6549ecf727e2d6642cd4e707993d9c8a23d3 +PKG_HASH:=edeef2408ae54108fa176b4e59cb04b4ef4dbe62da96d2459d9821b238ad94e8 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MIT From c580cef5c2a030a78a7ce96ff9f697bf461dfbef Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Jul 2025 00:04:46 +0800 Subject: [PATCH 804/972] xray-core: update to 25.7.25 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 4cfa39f5b41..0ca0bfd854d 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=25.7.24 +PKG_VERSION:=25.7.25 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f185b6a393e125fc0e1c1da1daa1428d2f0f039b70c33dd55951a8733fb1caa5 +PKG_HASH:=f157afdae24d9abe49a5bb1745b8586f9b99f47c0633b9ca7000121829ca7e62 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From b6a39c99ee28dc939d6231eefb9febc91f350049 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 26 Jul 2025 00:11:31 +0800 Subject: [PATCH 805/972] tuic-client: Update to code compile --- tuic-client/Makefile | 80 ++++++++++++-------------------------------- 1 file changed, 22 insertions(+), 58 deletions(-) diff --git a/tuic-client/Makefile b/tuic-client/Makefile index ad6b4456438..2fbe55efb22 100644 --- a/tuic-client/Makefile +++ b/tuic-client/Makefile @@ -1,7 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only # -# Copyright (C) 2017-2020 Yousong Zhou -# Copyright (C) 2021 ImmortalWrt.org +# Copyright (C) 2023 ImmortalWrt.org include $(TOPDIR)/rules.mk @@ -9,67 +8,32 @@ PKG_NAME:=tuic-client PKG_VERSION:=1.0.0 PKG_RELEASE:=1 -PKG_LICENSE_FILES:=LICENSE +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=https://codeload.github.com/EAimTY/tuic/tar.gz/tuic-client-$(PKG_VERSION)? +PKG_HASH:=64d81f3d5c79d9d69229e927c3f842849885f547020d897f9624d185819e5661 +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)/$(PKG_NAME) + PKG_MAINTAINER:=Tianling Shen +PKG_LICENSE:=GPL-3.0-only +PKG_LICENSE_FILES:=LICENSE -include $(INCLUDE_DIR)/package.mk +PKG_BUILD_DEPENDS:=rust/host +PKG_BUILD_PARALLEL:=1 -TUIC_TYPE:=tuic-client-$(PKG_VERSION) -TUIC_FOOT:=unknown-linux-musl -ifeq ($(ARCH),aarch64) - TUIC_ARCH:=$(TUIC_TYPE)-aarch64-$(TUIC_FOOT) - PKG_HASH:=c29eaaf3bc05115acc7453ac26bacf9aff65211b1e8ca7f771b818248bec8601 -else ifeq ($(ARCH),arm) -# Referred to golang/golang-values.mk - ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) - ifeq ($(ARM_CPU_FEATURES),) - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabi - PKG_HASH:=33a83ab05dc1a598552bf1f27114502b12c94b6e5333c6ac2def3739c00a4daf - else - TUIC_ARCH:=$(TUIC_TYPE)-armv7-$(TUIC_FOOT)eabihf - PKG_HASH:=e2cc1d81ac376ff2a94976e78c861f5cd21ad809ff5b587ae967e2a63e4c35e4 - endif -else ifeq ($(ARCH),i386) - TUIC_ARCH:=$(TUIC_TYPE)-i686-$(TUIC_FOOT) - PKG_HASH:=67d930b4381a8848bf98acbccb538c73b72ca9dde0aed3705f73e62a9922f758 -else ifeq ($(ARCH),x86_64) - TUIC_ARCH:=$(TUIC_TYPE)-x86_64-$(TUIC_FOOT) - PKG_HASH:=180c562691247a7feddf553706bc8fd5b5b9de3027154f94a767ea907a45e2de -# Set the default value to make OpenWrt Package Checker happy -else - PKG_SOURCE:=dummy - PKG_HASH:=dummy -endif +include $(INCLUDE_DIR)/package.mk +include $(TOPDIR)/feeds/packages/lang/rust/rust-package.mk -define Download/tuic-client - URL:=https://github.com/EAimTY/tuic/releases/download/$(TUIC_TYPE)/ - URL_FILE:=$(TUIC_ARCH) - FILE:=$(TUIC_ARCH) - HASH:=$(PKG_HASH) -endef +TAR_OPTIONS+= --strip-components 1 +TAR_CMD=$(HOST_TAR) -C $(1)/.. $(TAR_OPTIONS) define Package/tuic-client - SECTION:=net - CATEGORY:=Network - SUBMENU:=Web Servers/Proxies - TITLE:=Delicately-TUICed 0-RTT proxy protocol - URL:=https://github.com/EAimTY/tuic/ - DEPENDS:=@USE_MUSL @(aarch64||arm||i386||x86_64) @!(TARGET_x86_geode||TARGET_x86_legacy) -endef - -define Build/Prepare - $(call Build/Prepare/Default) -ifneq ($(CONFIG_PACKAGE_tuic-client),) - $(call Download,tuic-client) -endif -endef - -define Build/Compile -endef - -define Package/tuic-client/install - $(INSTALL_DIR) $(1)/usr/bin - $(INSTALL_BIN) $(DL_DIR)/$(TUIC_ARCH) $(1)/usr/bin/tuic-client + SECTION:=net + CATEGORY:=Network + SUBMENU:=Web Servers/Proxies + TITLE:=Delicately-TUICed 0-RTT proxy protocol (client) + URL:=https://github.com/EAimTY/tuic + DEPENDS:=@(aarch64||arm||x86_64) endef -$(eval $(call BuildPackage,tuic-client)) \ No newline at end of file +$(eval $(call RustBinPackage,tuic-client)) +$(eval $(call BuildPackage,tuic-client)) From 1509046972505d7a73e64cf188059dff91d3b247 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sat, 26 Jul 2025 17:01:02 +0800 Subject: [PATCH 806/972] luci-app-ssr-plus: Add resistant quantum `ML-DSA-65` signature verify mechanism. See: https://github.com/XTLS/Xray-core/pull/4915 --- .github/workflows/multi-arch-test-build.yml | 6 +- .../model/cbi/shadowsocksr/client-config.lua | 22 + .../luasrc/view/shadowsocksr/ssrurl.htm | 5 + luci-app-ssr-plus/po/templates/ssr-plus.pot | 657 ++++++++--------- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 659 +++++++++--------- .../usr/share/shadowsocksr/gen_config.lua | 1 + .../root/usr/share/shadowsocksr/subscribe.lua | 3 + 7 files changed, 716 insertions(+), 637 deletions(-) diff --git a/.github/workflows/multi-arch-test-build.yml b/.github/workflows/multi-arch-test-build.yml index 9224a702979..c41b85f9c6e 100644 --- a/.github/workflows/multi-arch-test-build.yml +++ b/.github/workflows/multi-arch-test-build.yml @@ -87,7 +87,7 @@ jobs: V: s - name: Move created packages to project dir - run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.ipk . || true + run: cp bin/packages/${{ matrix.arch }}/packages_ci/*.apk . || true - name: Collect metadata run: | @@ -122,7 +122,7 @@ jobs: done echo >> PKG-INFO echo Full file listing: >> PKG-INFO - ls -al *.ipk >> PKG-INFO || true + ls -al *.apk >> PKG-INFO || true cat PKG-INFO - name: Store packages @@ -132,7 +132,7 @@ jobs: path: | Packages Packages.* - *.ipk + *.apk PKG-INFO - name: Store logs diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 068c28476fd..3cfd78e937e 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -1124,6 +1124,28 @@ if is_finded("xray") then o:value("", translate("disable")) o:depends({type = "v2ray", tls = true}) o:depends({type = "v2ray", reality = true}) + + o = s:option(Flag, "enable_mldsa65verify", translate("Enable ML-DSA-65(optional)")) + o.description = translate("This item might be an empty string.") + o.rmempty = true + o.default = "0" + o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) + + o = s:option(Value, "reality_mldsa65verify", translate("ML-DSA-65 Public key")) + o.description = translate( + "" .. translate("The client has not configured mldsa65Verify, but it will not perform the \"additional verification\" step and can still connect normally, see:") .. "" .. + " " .. + "" .. translate("Click to the page") .. "") + o:depends("enable_mldsa65verify", true) + o.rmempty = true + o.validate = function(self, value) + -- 清理空行和多余换行 + value = value:gsub("\r\n", "\n"):gsub("^[ \t]*\n", ""):gsub("\n[ \t]*$", ""):gsub("\n[ \t]*\n", "\n") + if value:sub(-1) == "\n" then + value = value:sub(1, -2) + end + return value + end end o = s:option(Value, "tls_host", translate("TLS Host")) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 8f573027cb6..539d97745d3 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -550,6 +550,11 @@ setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""); setElementValue('cbid.shadowsocksr.' + sid + '.reality_shortid', params.get("sid") || ""); setElementValue('cbid.shadowsocksr.' + sid + '.reality_spiderx', params.get("spx") ? decodeURIComponent(params.get("spx")) : ""); + if (params.get("pqv") && params.get("pqv").trim() !== "") { + setElementValue('cbid.shadowsocksr.' + sid + '.enable_mldsa65verify', true); // 设置 enable_mldsa65verify 为 true + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.enable_mldsa65verify', event); // 触发事件 + setElementValue('cbid.shadowsocksr.' + sid + '.reality_mldsa65verify', params.get("pqv") || ""); + } } setElementValue('cbid.shadowsocksr.' + sid + '.tls_flow', params.get("flow") || "none"); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.tls_flow', event); diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot index f1348b1cc91..7ad8e5a91ac 100644 --- a/luci-app-ssr-plus/po/templates/ssr-plus.pot +++ b/luci-app-ssr-plus/po/templates/ssr-plus.pot @@ -20,7 +20,7 @@ msgstr "" msgid "128 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1178 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1223 msgid "16" msgstr "" @@ -36,7 +36,7 @@ msgstr "" msgid "32 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 msgid "360" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "64 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1165 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210 msgid "8" msgstr "" @@ -68,7 +68,8 @@ msgstr "" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:808 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 msgid "" msgstr "" @@ -79,9 +80,9 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1158 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1171 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1185 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235 @@ -109,11 +110,11 @@ msgstr "" msgid "AliYun Public DNS (223.5.5.5)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:185 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:190 msgid "Alias" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:186 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:206 msgid "Alias(optional)" msgstr "" @@ -129,11 +130,11 @@ msgstr "" msgid "Allow listed only" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:123 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:125 msgid "Allow subscribe Insecure nodes By default" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:647 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:670 msgid "AlterId" msgstr "" @@ -167,8 +168,8 @@ msgstr "" msgid "Apple domains optimization" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:213 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:219 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:218 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:224 msgid "Apply" msgstr "" @@ -176,7 +177,7 @@ msgstr "" msgid "Are you sure you want to restore the client to default settings?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:235 msgid "Auto Switch" msgstr "" @@ -184,16 +185,16 @@ msgstr "" msgid "Auto Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:47 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:48 msgid "Auto Update" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:49 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:50 msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:581 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:604 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1264 msgid "BBR" msgstr "" @@ -213,8 +214,8 @@ msgstr "" msgid "Baidu Public DNS (180.76.76.76)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:923 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:933 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:946 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:956 msgid "BitTorrent (uTP)" msgstr "" @@ -222,7 +223,7 @@ msgstr "" msgid "Black Domain List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:329 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:349 msgid "Bloom Filter" msgstr "" @@ -238,17 +239,17 @@ msgstr "" msgid "CNNIC SDNS (1.2.4.8)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:582 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1220 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1265 msgid "CUBIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:704 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:929 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:727 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:952 msgid "Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1126 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1171 msgid "Certificate fingerprint" msgstr "" @@ -313,7 +314,8 @@ msgid "Click here to view or manage the DNS list file" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:810 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 msgid "Click to the page" msgstr "" @@ -338,15 +340,15 @@ msgstr "" msgid "Collecting data..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:808 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 msgid "Configure XHTTP Extra Settings (JSON format), see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:982 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1005 msgid "Congestion" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:579 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:602 msgid "Congestion control algorithm" msgstr "" @@ -370,15 +372,15 @@ msgstr "" msgid "Create Backup File" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1255 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Create upload file error." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1320 msgid "Current Certificate Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:352 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:375 msgid "Custom" msgstr "" @@ -405,7 +407,7 @@ msgstr "" msgid "Custom DNS Server format as IP:PORT (default: disabled)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:356 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:379 msgid "Custom Plugin Path" msgstr "" @@ -433,30 +435,30 @@ msgstr "" msgid "DNSPod Public DNS (119.29.29.29)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:925 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:935 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:948 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:958 msgid "DTLS 1.2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:774 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:797 msgid "Default" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1186 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 msgid "Default reject rejects traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:480 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:503 msgid "Default value 0 indicatesno heartbeat." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1159 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1172 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -479,7 +481,7 @@ msgstr "" msgid "Delay (ms)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:141 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:143 msgid "Delete All Subscribe Servers" msgstr "" @@ -511,15 +513,15 @@ msgstr "" msgid "Disable IPv6 query mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:443 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:466 msgid "Disable QUIC path MTU discovery" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:623 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:646 msgid "Disable SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:506 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 msgid "Disable TCP No_delay" msgstr "" @@ -548,19 +550,19 @@ msgstr "" msgid "Domestic DNS Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:959 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:982 msgid "Downlink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:634 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:657 msgid "Dual-stack Listening Socket" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:741 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:764 msgid "Early Data Header Name" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:135 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:150 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:69 msgid "Edit ShadowSocksR Server" msgstr "" @@ -572,30 +574,34 @@ msgstr "" msgid "Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:628 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:651 msgid "Enable 0-RTT QUIC handshake" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:275 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:295 msgid "Enable Authentication" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 msgid "Enable Auto Switch" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:423 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:446 msgid "Enable Lazy Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128 +msgid "Enable ML-DSA-65(optional)" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1132 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177 msgid "Enable Mux.Cool" msgstr "" @@ -603,15 +609,15 @@ msgstr "" msgid "Enable Netflix Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:441 msgid "Enable Obfuscation" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:335 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:355 msgid "Enable Plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:390 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:413 msgid "Enable Port Hopping" msgstr "" @@ -619,19 +625,19 @@ msgstr "" msgid "Enable Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:401 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:424 msgid "Enable Transport Protocol Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:492 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:515 msgid "Enable V2 protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:491 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:514 msgid "Enable V3 protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1150 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 msgid "Enable Xudp Mux" msgstr "" @@ -639,15 +645,15 @@ msgstr "" msgid "Enable adblock" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:324 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:344 msgid "Enable the SUoT protocol, requires server support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:801 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:824 msgid "Enable this option to configure XHTTP Extra (JSON format)." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:987 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1010 msgid "Enabled Kernel virtual NIC TUN(optional)" msgstr "" @@ -655,17 +661,17 @@ msgstr "" msgid "Enabled Mixed" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:501 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1198 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:303 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:310 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:533 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:667 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:323 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:330 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:556 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:567 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:690 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:118 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:125 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:122 @@ -676,35 +682,35 @@ msgstr "" msgid "Enter Custom Ports" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:52 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:53 msgid "Every Day" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:57 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:58 msgid "Every Friday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:53 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:54 msgid "Every Monday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:58 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:59 msgid "Every Saturday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:59 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:60 msgid "Every Sunday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:56 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:57 msgid "Every Thursday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:54 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:55 msgid "Every Tuesday" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:55 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:56 msgid "Every Wednesday" msgstr "" @@ -716,16 +722,16 @@ msgstr "" msgid "External Proxy Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:109 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:110 msgid "Filter Words splited by /" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1089 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1112 msgid "Finger Print" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1062 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1075 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1085 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1098 msgid "Flow" msgstr "" @@ -739,7 +745,7 @@ msgstr "" msgid "For specific usage, see:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:419 msgid "" "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas " "(,)." @@ -793,11 +799,11 @@ msgstr "" msgid "Game Mode UDP Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:599 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:622 msgid "Garbage collection interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:628 msgid "Garbage collection lifetime(second)" msgstr "" @@ -850,63 +856,63 @@ msgstr "" msgid "Grant UCI access for luci-app-ssr-plus" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:864 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:887 msgid "Gun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:883 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:906 msgid "H2 Read Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:878 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:901 msgid "H2/gRPC Health Check" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:246 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:266 msgid "HTTP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:711 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 msgid "HTTP Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:716 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:739 msgid "HTTP Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:846 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:869 msgid "HTTP/2 Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:851 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:874 msgid "HTTP/2 Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:918 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:941 msgid "Header" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:895 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:918 msgid "Health Check Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:587 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:610 msgid "Heartbeat interval(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:750 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:773 msgid "Httpupgrade Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:755 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:778 msgid "Httpupgrade Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:169 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:189 msgid "Hysteria2" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:438 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:461 msgid "Hysterir QUIC parameters" msgstr "" @@ -918,35 +924,34 @@ msgstr "" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:635 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1123 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1168 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1239 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1284 msgid "If you have a self-signed certificate,please check the box" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:580 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:635 msgid "Import" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:158 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:225 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:244 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:277 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:370 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:453 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:571 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:160 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:295 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:327 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:420 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:503 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:626 msgid "Import configuration information successfully." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:871 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:894 msgid "Initial Windows Size" msgstr "" @@ -958,11 +963,11 @@ msgstr "" msgid "Interface control" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:837 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:860 msgid "Invalid JSON format" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:574 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:629 msgid "Invalid format." msgstr "" @@ -970,19 +975,19 @@ msgstr "" msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1299 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344 msgid "KcpTun Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361 msgid "KcpTun Param" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1311 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356 msgid "KcpTun Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350 msgid "KcpTun Port" msgstr "" @@ -1072,7 +1077,7 @@ msgid "Listen only on the given interface or, if unspecified, on all" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1293 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 msgid "Local Port" msgstr "" @@ -1080,7 +1085,7 @@ msgstr "" msgid "Local Servers" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:993 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1016 msgid "Local addresses" msgstr "" @@ -1096,11 +1101,15 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +msgid "ML-DSA-65 Public key" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249 msgid "MPTCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:939 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:962 msgid "MTU" msgstr "" @@ -1108,21 +1117,21 @@ msgstr "" msgid "Main Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:734 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:757 msgid "Max Early Data" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:640 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:663 msgid "Maximum packet size the socks5 server can receive from external" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1173 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1218 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "" @@ -1136,7 +1145,7 @@ msgstr "" msgid "Muitiple DNS server can saperate with ','" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:865 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:888 msgid "Multi" msgstr "" @@ -1144,7 +1153,7 @@ msgstr "" msgid "Multi Threads Option" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1132 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177 msgid "Mux" msgstr "" @@ -1160,7 +1169,7 @@ msgstr "" msgid "NOT RUNNING" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:166 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:186 msgid "NaiveProxy" msgstr "" @@ -1188,15 +1197,15 @@ msgstr "" msgid "Netflix and AWS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:181 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:201 msgid "Network Tunnel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:188 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:208 msgid "Network interface to use" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:583 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:606 msgid "New Reno" msgstr "" @@ -1210,7 +1219,7 @@ msgstr "" msgid "No new data!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1271 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316 msgid "No specify upload file." msgstr "" @@ -1218,13 +1227,13 @@ msgstr "" msgid "Noise" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:342 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:706 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:909 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:921 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:931 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:182 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:362 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:729 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:932 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:944 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:954 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:187 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:192 msgid "None" msgstr "" @@ -1247,27 +1256,27 @@ msgid "" "compatibility issues." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:341 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:374 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:361 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:397 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:139 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:133 msgid "Obfs" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:381 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:404 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:146 msgid "Obfs param (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:978 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1001 msgid "Obfuscate password (optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:433 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:456 msgid "Obfuscation Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:428 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:451 msgid "Obfuscation Type" msgstr "" @@ -1318,7 +1327,7 @@ msgstr "" msgid "Packet" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:289 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:309 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:114 msgid "Password" msgstr "" @@ -1327,7 +1336,7 @@ msgstr "" msgid "Paste sharing link here" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1008 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1031 msgid "Peer public key" msgstr "" @@ -1336,15 +1345,15 @@ msgstr "" msgid "Perform reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:901 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:924 msgid "Permit Without Stream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:207 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:212 msgid "Ping Latency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1278 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323 msgid "Please confirm the current certificate path" msgstr "" @@ -1352,33 +1361,33 @@ msgstr "" msgid "Please fill in reset" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:360 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:383 msgid "Plugin Opts" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:412 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:435 msgid "Port Hopping Interval(Unit:Second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:395 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:418 msgid "Port hopping range" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1012 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1035 msgid "Pre-shared key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1003 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1026 msgid "Private key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:364 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:387 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:132 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:128 msgid "Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:371 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:394 msgid "Protocol param (optional)" msgstr "" @@ -1386,35 +1395,35 @@ msgstr "" msgid "Proxy Ports" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1049 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1072 msgid "Public key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:914 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:937 msgid "QUIC Key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:907 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:930 msgid "QUIC Security" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:461 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:484 msgid "QUIC initConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:449 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:472 msgid "QUIC initStreamReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:467 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:490 msgid "QUIC maxConnReceiveWindow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:473 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:496 msgid "QUIC maxIdleTimeout(Unit:second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:455 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:478 msgid "QUIC maxStreamReceiveWindow" msgstr "" @@ -1423,7 +1432,7 @@ msgstr "" msgid "Quad9 DNSCrypt SDNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1044 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1067 msgid "REALITY" msgstr "" @@ -1435,7 +1444,7 @@ msgstr "" msgid "RUNNING" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:966 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:989 msgid "Read Buffer Size" msgstr "" @@ -1443,7 +1452,7 @@ msgstr "" msgid "Really reset all changes?" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:217 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:222 msgid "Reapply" msgstr "" @@ -1455,7 +1464,7 @@ msgstr "" msgid "Records" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:195 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:215 msgid "Redirect traffic to this network interface" msgstr "" @@ -1478,11 +1487,11 @@ msgstr "" msgid "Refresh..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1221 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1266 msgid "Reno" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:998 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1021 msgid "Reserved bytes(optional)" msgstr "" @@ -1543,7 +1552,7 @@ msgstr "" msgid "Same as Global Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:113 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:114 msgid "Save Words splited by /" msgstr "" @@ -1552,12 +1561,12 @@ msgstr "" msgid "Select DNS parse Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:199 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:83 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:219 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:84 msgid "Selection ShadowSocks Node Use Version." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1276 msgid "Self-signed Certificate" msgstr "" @@ -1565,22 +1574,22 @@ msgstr "" msgid "Server" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:249 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:269 msgid "Server Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:143 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:145 msgid "Server Count" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:152 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:172 msgid "Server Node Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:262 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:282 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:96 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:112 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:190 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:195 msgid "Server Port" msgstr "" @@ -1601,11 +1610,11 @@ msgstr "" msgid "Servers Nodes" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:41 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:42 msgid "Servers subscription and manage" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1038 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1061 msgid "Session Ticket" msgstr "" @@ -1614,33 +1623,33 @@ msgstr "" msgid "Set Single DNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:175 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:195 msgid "Shadow-TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:518 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:541 msgid "Shadow-TLS ChainPoxy type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:160 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:241 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:180 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:261 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:89 msgid "ShadowSocks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:198 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:82 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:218 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:83 msgid "ShadowSocks Node Use Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:206 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:25 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:226 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:26 msgid "ShadowSocks-libev Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:203 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:521 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:22 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:223 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:544 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:23 msgid "ShadowSocks-rust Version" msgstr "" @@ -1652,28 +1661,28 @@ msgstr "" msgid "ShadowSocksR Plus+ Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:529 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:552 msgid "Shadowsocks password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:157 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:177 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:92 msgid "ShadowsocksR" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1053 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1076 msgid "Short ID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:195 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:200 msgid "Socket Connected" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:245 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:265 msgid "Socks" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:675 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:698 msgid "Socks Version" msgstr "" @@ -1681,7 +1690,7 @@ msgstr "" msgid "Socks protocol auth methods, default:noauth." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:178 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:198 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:87 msgid "Socks5" msgstr "" @@ -1702,11 +1711,11 @@ msgstr "" msgid "Specifically for edit dnsproxy DNS parse files." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:762 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:785 msgid "Splithttp Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:767 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:790 msgid "Splithttp Path" msgstr "" @@ -1714,27 +1723,27 @@ msgstr "" msgid "Status" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:128 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:130 msgid "Subscribe Default Auto-Switch" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:107 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:108 msgid "Subscribe Filter Words" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:111 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:112 msgid "Subscribe Save Words" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:104 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:105 msgid "Subscribe URL" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:130 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:132 msgid "Subscribe new add server default Auto-Switch on" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:125 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:127 msgid "Subscribe nodes allows insecure connection as TLS client (insecure)" msgstr "" @@ -1746,9 +1755,9 @@ msgstr "" msgid "Switch check cycly(second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:501 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1198 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1281 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149 msgid "TCP Fast Open" msgstr "" @@ -1764,47 +1773,47 @@ msgstr "" msgid "TCP upstream" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1025 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1048 msgid "TLS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:496 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:519 msgid "TLS 1.3 Strict mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1113 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1158 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1106 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 msgid "TLS Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:946 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:969 msgid "TTI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:172 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:192 msgid "TUIC" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:560 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:583 msgid "TUIC Server IP Address" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:567 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:590 msgid "TUIC User Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:554 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:577 msgid "TUIC User UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:617 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:640 msgid "TUIC receive window" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:611 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:634 msgid "TUIC send window" msgstr "" @@ -1813,23 +1822,33 @@ msgstr "" msgid "TWNIC-101 DNSCrypt SDNS" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +msgid "" +"The client has not configured mldsa65Verify, but it will not perform the " +"\"additional verification\" step and can still connect normally, see:" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/reset.htm:10 msgid "The content entered is incorrect!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:479 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:502 msgid "The keep-alive period.(Unit:second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:133 -msgid "Through proxy update" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 +msgid "This item might be an empty string." msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:135 +msgid "Through proxy update" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:137 msgid "Through proxy update list, Not Recommended" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:593 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:616 msgid "Timeout for establishing a connection to server(second)" msgstr "" @@ -1846,25 +1865,25 @@ msgstr "" msgid "Total Records:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:707 msgid "Transport" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:406 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:429 msgid "Transport Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:163 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:240 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:183 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:260 msgid "Trojan" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:180 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:185 msgid "Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:408 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:431 msgid "UDP" msgstr "" @@ -1874,11 +1893,11 @@ msgid "" "restrictions." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:323 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:343 msgid "UDP over TCP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:572 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:595 msgid "UDP relay mode" msgstr "" @@ -1905,36 +1924,36 @@ msgstr "" msgid "Unknown" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:137 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:139 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/subscribe.htm:16 msgid "Update All Subscribe Servers" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:72 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:73 msgid "Update Interval (min)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:115 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:116 msgid "Update Subscribe List" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:51 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:52 msgid "Update Time (Every Week)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:117 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:118 msgid "Update subscribe url list first" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:64 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:65 msgid "Update time (every day)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:952 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:975 msgid "Uplink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1241 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 msgid "Upload" msgstr "" @@ -1992,64 +2011,64 @@ msgstr "" msgid "User cancelled." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:158 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:163 msgid "User-Agent" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:282 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:302 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:110 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:117 msgid "Username" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:386 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:409 msgid "Users Authentication" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:184 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:204 msgid "Using incorrect encryption mothod may causes service fail to start" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:154 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:174 msgid "V2Ray/XRay" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:237 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:257 msgid "V2Ray/XRay protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:238 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:258 msgid "VLESS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:661 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:684 msgid "VLESS Encryption" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:239 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:259 msgid "VMess" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:922 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:932 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:945 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:955 msgid "VideoCall (SRTP)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:988 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1011 msgid "" "Virtual NIC TUN of Linux kernel can be used only when system supports and " "have root permission. If used, IPv6 routing table 1023 is occupied." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:547 msgid "Vmess Protocol" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:539 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:562 msgid "Vmess UUID" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:654 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:677 msgid "Vmess/VLESS ID (UUID)" msgstr "" @@ -2065,16 +2084,16 @@ msgstr "" msgid "WAN White List IP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:722 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:745 msgid "WebSocket Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:728 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:751 msgid "WebSocket Path" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:924 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:934 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:947 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:957 msgid "WechatVideo" msgstr "" @@ -2099,41 +2118,41 @@ msgid "" "correctly." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:243 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:926 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:936 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:263 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:949 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:959 msgid "WireGuard" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1018 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1041 msgid "Wireguard allows only traffic from specific source IP." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:999 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1022 msgid "Wireguard reserved bytes." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:972 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:995 msgid "Write Buffer Size" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:772 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:795 msgid "XHTTP Alpn" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:800 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:823 msgid "XHTTP Extra" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:791 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:814 msgid "XHTTP Host" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:783 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:806 msgid "XHTTP Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:795 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:818 msgid "XHTTP Path" msgstr "" @@ -2145,7 +2164,7 @@ msgstr "" msgid "Xray Noise Packets" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1150 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 msgid "Xudp Mux" msgstr "" @@ -2153,27 +2172,27 @@ msgstr "" msgid "adblock_url" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:910 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:933 msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1193 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1187 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 msgid "allow: Allows use Mux connection." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1119 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164 msgid "allowInsecure" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1017 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1040 msgid "allowedIPs(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1095 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1118 msgid "android" msgstr "" @@ -2181,7 +2200,7 @@ msgstr "" msgid "anti-AD" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:911 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:934 msgid "chacha20-poly1305" msgstr "" @@ -2189,7 +2208,7 @@ msgstr "" msgid "china-operator-ip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1091 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1114 msgid "chrome" msgstr "" @@ -2198,21 +2217,21 @@ msgstr "" msgid "cloudflare-dns.com DNSCrypt SDNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1218 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263 msgid "comment_tcpcongestion_disable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1156 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201 msgid "concurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1215 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 msgid "custom_tcpcongestion" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1101 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1124 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1209 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1222 msgid "disable" msgstr "" @@ -2221,7 +2240,7 @@ msgstr "" msgid "dns.sb DNSCrypt SDNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1096 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1119 msgid "edge" msgstr "" @@ -2234,19 +2253,19 @@ msgstr "" msgid "felixonmars/dnsmasq-china-list" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1092 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1115 msgid "firefox" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:889 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:912 msgid "gRPC Idle Timeout" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:862 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:885 msgid "gRPC Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:856 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:879 msgid "gRPC Service Name" msgstr "" @@ -2258,7 +2277,7 @@ msgstr "" msgid "gfwlist/gfwlist" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1094 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1117 msgid "ios" msgstr "" @@ -2267,11 +2286,11 @@ msgstr "" msgid "load_balance" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:575 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:598 msgid "lossless UDP relay using QUIC streams" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:574 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:597 msgid "native UDP characteristics" msgstr "" @@ -2279,13 +2298,13 @@ msgstr "" msgid "nfip_url" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:314 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1066 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1079 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:334 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1089 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1102 msgid "none" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:344 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:364 msgid "obfs-local" msgstr "" @@ -2294,45 +2313,49 @@ msgstr "" msgid "parallel" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1098 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1121 msgid "qq" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1099 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1122 msgid "random" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1100 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1123 msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237 msgid "reject" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1093 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1116 msgid "safari" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:511 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:534 msgid "shadow-TLS SNI" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:489 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:373 +msgid "shadow-tls" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:512 msgid "shadowTLS protocol Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1194 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1239 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1057 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1080 msgid "spiderX" msgstr "" @@ -2340,7 +2363,7 @@ msgstr "" msgid "v2fly/domain-list-community" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:347 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:367 msgid "v2ray-plugin" msgstr "" @@ -2352,18 +2375,18 @@ msgstr "" msgid "warning! Please do not reuse the port!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:350 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:370 msgid "xray-plugin" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1081 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1104 msgid "xtls-rprx-vision" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1169 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214 msgid "xudpConcurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1183 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 msgid "xudpProxyUDP443" msgstr "" diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index 6c39b2199d9..c96ef4af3ff 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -22,7 +22,7 @@ msgstr "单线程" msgid "128 Threads" msgstr "128 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1178 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1223 msgid "16" msgstr "" @@ -38,7 +38,7 @@ msgstr "2 线程" msgid "32 Threads" msgstr "32 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1120 msgid "360" msgstr "" @@ -58,7 +58,7 @@ msgstr "4 线程" msgid "64 Threads" msgstr "64 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1165 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210 msgid "8" msgstr "" @@ -70,7 +70,8 @@ msgstr "8 线程" msgid "" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:808 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 msgid "" msgstr "" @@ -81,9 +82,9 @@ msgstr "

支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议。 Date: Sat, 26 Jul 2025 21:59:31 +0800 Subject: [PATCH 807/972] xray-core: update to 25.7.26 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 0ca0bfd854d..4d9dc20c341 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=25.7.25 +PKG_VERSION:=25.7.26 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=f157afdae24d9abe49a5bb1745b8586f9b99f47c0633b9ca7000121829ca7e62 +PKG_HASH:=99f9bc67fd22a6e4fde277a4ba05fd873146154851aeebb6b4f406a59d3b0bc3 PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 2047afb68d94f7d860cea3a859a1a6b2cc25e6c5 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Mon, 4 Aug 2025 12:59:36 +0800 Subject: [PATCH 808/972] xray-core: update to 25.8.3 --- xray-core/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xray-core/Makefile b/xray-core/Makefile index 4d9dc20c341..eefd1d264a2 100644 --- a/xray-core/Makefile +++ b/xray-core/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=xray-core -PKG_VERSION:=25.7.26 +PKG_VERSION:=25.8.3 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/XTLS/Xray-core/tar.gz/v$(PKG_VERSION)? -PKG_HASH:=99f9bc67fd22a6e4fde277a4ba05fd873146154851aeebb6b4f406a59d3b0bc3 +PKG_HASH:=a7d3785fdd46f1b045b1ef49a2a06e595c327f514b5ee8cd2ae7895813970b2c PKG_MAINTAINER:=Tianling Shen PKG_LICENSE:=MPL-2.0 From 1c86ad937627c4b4c0f17d7bac2ab41157bafd70 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Fri, 8 Aug 2025 12:49:06 +0800 Subject: [PATCH 809/972] shadowsocksr-libev: update mirror hash --- shadowsocksr-libev/Makefile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index fa82de9cf51..3425c844d6e 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -11,11 +11,10 @@ PKG_VERSION:=2.5.6 PKG_RELEASE:=11 PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev.git +PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev PKG_SOURCE_DATE:=2018-03-07 PKG_SOURCE_VERSION:=d63ff863800a5645aca4309d5dd5962bd1e95543 -PKG_MIRROR_HASH:=34308ed827a5dd4f4e35619914102d55b00604faa44fda051d1d25fb4a319325 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz +PKG_MIRROR_HASH:=146fa4511a52da2aaa1e11ea0294cfb450e62643156c5da3b10e037ef43961f6 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE From 49b0a5f63515849f481a0312b4daa3a141debc3f Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Fri, 8 Aug 2025 20:33:57 +0800 Subject: [PATCH 810/972] luci-app-ssr-plus: Freedom: Add maxSplit fragment option; Add applyTo noises option See: https://github.com/XTLS/Xray-core/pull/4998 --- .../model/cbi/shadowsocksr/advanced.lua | 145 ++++++++++-------- luci-app-ssr-plus/po/templates/ssr-plus.pot | 36 +++-- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 36 +++-- .../usr/share/shadowsocksr/gen_config.lua | 6 +- 4 files changed, 130 insertions(+), 93 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua index 95aad5832aa..a5d7c4d21f7 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua @@ -344,78 +344,89 @@ o.rmempty = false -- [[ fragmen Settings ]]-- if is_finded("xray") then -s = m:section(TypedSection, "global_xray_fragment", translate("Xray Fragment Settings")) -s.anonymous = true - -o = s:option(Flag, "fragment", translate("Fragment"), translate("TCP fragments, which can deceive the censorship system in some cases, such as bypassing SNI blacklists.")) -o.default = 0 - -o = s:option(ListValue, "fragment_packets", translate("Fragment Packets"), translate("\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. \"tlshello\" is for TLS client hello packet fragmentation.")) -o.default = "tlshello" -o:value("tlshello", "tlshello") -o:value("1-1", "1-1") -o:value("1-2", "1-2") -o:value("1-3", "1-3") -o:value("1-5", "1-5") -o:depends("fragment", true) - -o = s:option(Value, "fragment_length", translate("Fragment Length"), translate("Fragmented packet length (byte)")) -o.default = "100-200" -o:depends("fragment", true) - -o = s:option(Value, "fragment_interval", translate("Fragment Interval"), translate("Fragmentation interval (ms)")) -o.default = "10-20" -o:depends("fragment", true) - -o = s:option(Flag, "noise", translate("Noise"), translate("UDP noise, Under some circumstances it can bypass some UDP based protocol restrictions.")) -o.default = 0 - -s = m:section(TypedSection, "xray_noise_packets", translate("Xray Noise Packets")) -s.description = translate( - "" .. translate("To send noise packets, select \"Noise\" in Xray Settings.") .. "" .. - "
" .. translate("For specific usage, see:") .. "" .. - "" .. - "" .. translate("Click to the page") .. "") -s.template = "cbi/tblsection" -s.sortable = true -s.anonymous = true -s.addremove = true - -s.remove = function(self, section) - for k, v in pairs(self.children) do - v.rmempty = true - v.validate = nil + s = m:section(TypedSection, "global_xray_fragment", translate("Xray Fragment Settings")) + s.anonymous = true + + o = s:option(Flag, "fragment", translate("Fragment"), translate("TCP fragments, which can deceive the censorship system in some cases, such as bypassing SNI blacklists.")) + o.default = 0 + + o = s:option(ListValue, "fragment_packets", translate("Fragment Packets"), translate("\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 data writes by the client. \"tlshello\" is for TLS client hello packet fragmentation.")) + o.default = "tlshello" + o:value("tlshello", "tlshello") + o:value("1-1", "1-1") + o:value("1-2", "1-2") + o:value("1-3", "1-3") + o:value("1-5", "1-5") + o:depends("fragment", true) + + o = s:option(Value, "fragment_length", translate("Fragment Length"), translate("Fragmented packet length (byte)")) + o.default = "100-200" + o:depends("fragment", true) + + o = s:option(Value, "fragment_interval", translate("Fragment Interval"), translate("Fragmentation interval (ms)")) + o.default = "10-20" + o:depends("fragment", true) + + o = s:option(Value, "fragment_maxsplit", translate("Fragment maxSplit"), translate("Fragmented maxSplit (byte)")) + o.default = "100-200" + o:depends("fragment", true) + + o = s:option(Flag, "noise", translate("Noise"), translate("UDP noise, Under some circumstances it can bypass some UDP based protocol restrictions.")) + o.default = 0 + + s = m:section(TypedSection, "xray_noise_packets", translate("Xray Noise Packets")) + s.description = translate( + "" .. translate("To send noise packets, select \"Noise\" in Xray Settings.") .. "" .. + "
" .. translate("For specific usage, see:") .. "" .. + "" .. + "" .. translate("Click to the page") .. "") + s.template = "cbi/tblsection" + s.sortable = true + s.anonymous = true + s.addremove = true + + s.remove = function(self, section) + for k, v in pairs(self.children) do + v.rmempty = true + v.validate = nil + end + TypedSection.remove(self, section) end - TypedSection.remove(self, section) -end -o = s:option(Flag, "enabled", translate("Enable")) -o.default = 1 -o.rmempty = false + o = s:option(Flag, "enabled", translate("Enable")) + o.default = 1 + o.rmempty = false -o = s:option(ListValue, "type", translate("Type")) -o.default = "base64" -o:value("rand", "rand") -o:value("str", "str") -o:value("hex", "hex") -o:value("base64", "base64") - -o = s:option(Value, "domainStrategy", translate("Domain Strategy")) -o.default = "UseIP" -o:value("AsIs", "AsIs") -o:value("UseIP", "UseIP") -o:value("UseIPv4", "UseIPv4") -o:value("ForceIP", "ForceIP") -o:value("ForceIPv4", "ForceIPv4") -o.rmempty = false + o = s:option(ListValue, "type", translate("Type")) + o.default = "base64" + o:value("rand", "rand") + o:value("str", "str") + o:value("hex", "hex") + o:value("base64", "base64") + + o = s:option(Value, "domainStrategy", translate("Domain Strategy")) + o.default = "UseIP" + o:value("AsIs", "AsIs") + o:value("UseIP", "UseIP") + o:value("UseIPv4", "UseIPv4") + o:value("ForceIP", "ForceIP") + o:value("ForceIPv4", "ForceIPv4") + o.rmempty = false -o = s:option(Value, "packet", translate("Packet")) -o.datatype = "minlength(1)" -o.rmempty = false + o = s:option(Value, "packet", translate("Packet")) + o.datatype = "minlength(1)" + o.rmempty = false -o = s:option(Value, "delay", translate("Delay (ms)")) -o.datatype = "or(uinteger,portrange)" -o.rmempty = false + o = s:option(Value, "delay", translate("Delay (ms)")) + o.datatype = "or(uinteger,portrange)" + o.rmempty = false + + o = s:option(Value, "applyto", translate("ApplyTo (IP type)")) + o.default = "IP" + o:value("IP", "IP") + o:value("IPV4", "IPv4") + o:value("IPV6", "IPv6") + o.rmempty = false end return m diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot index 7ad8e5a91ac..55f7c2a1680 100644 --- a/luci-app-ssr-plus/po/templates/ssr-plus.pot +++ b/luci-app-ssr-plus/po/templates/ssr-plus.pot @@ -64,7 +64,7 @@ msgstr "" msgid "8 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379 msgid "" msgstr "" @@ -173,6 +173,10 @@ msgstr "" msgid "Apply" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424 +msgid "ApplyTo (IP type)" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:133 msgid "Are you sure you want to restore the client to default settings?" msgstr "" @@ -313,7 +317,7 @@ msgstr "" msgid "Click here to view or manage the DNS list file" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 msgid "Click to the page" @@ -477,7 +481,7 @@ msgid "" "fastest_addr (default: load_balance)." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:420 msgid "Delay (ms)" msgstr "" @@ -542,7 +546,7 @@ msgstr "" msgid "DoT upstream (Need use wolfssl version)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:407 msgid "Domain Strategy" msgstr "" @@ -568,7 +572,7 @@ msgid "Edit ShadowSocksR Server" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:263 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:392 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 msgid "Enable" @@ -741,7 +745,7 @@ msgid "" "Chinese CDN IP addresses" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:380 msgid "For specific usage, see:" msgstr "" @@ -771,10 +775,18 @@ msgstr "" msgid "Fragment Packets" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +msgid "Fragment maxSplit" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366 msgid "Fragmentation interval (ms)" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +msgid "Fragmented maxSplit (byte)" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362 msgid "Fragmented packet length (byte)" msgstr "" @@ -1223,7 +1235,7 @@ msgstr "" msgid "No specify upload file." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374 msgid "Noise" msgstr "" @@ -1323,7 +1335,7 @@ msgstr "" msgid "Oversea Mode DNS-2 (114.114.115.115)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:412 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416 msgid "Packet" msgstr "" @@ -1857,7 +1869,7 @@ msgstr "" msgid "Tips: Dnsproxy DNS Parse List Path:" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379 msgid "To send noise packets, select \"Noise\" in Xray Settings." msgstr "" @@ -1878,7 +1890,7 @@ msgstr "" msgid "Trojan" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:400 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:185 msgid "Type" msgstr "" @@ -1887,7 +1899,7 @@ msgstr "" msgid "UDP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374 msgid "" "UDP noise, Under some circumstances it can bypass some UDP based protocol " "restrictions." @@ -2160,7 +2172,7 @@ msgstr "" msgid "Xray Fragment Settings" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:373 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:377 msgid "Xray Noise Packets" msgstr "" diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index c96ef4af3ff..ee2ff59964c 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -66,7 +66,7 @@ msgstr "" msgid "8 Threads" msgstr "8 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379 msgid "" msgstr "" @@ -175,6 +175,10 @@ msgstr "Apple 域名解析优化" msgid "Apply" msgstr "应用" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424 +msgid "ApplyTo (IP type)" +msgstr "ApplyTo(IP 类型)" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/backup_restore.htm:133 msgid "Are you sure you want to restore the client to default settings?" msgstr "是否真的要恢复客户端默认配置?" @@ -315,7 +319,7 @@ msgstr "清空日志" msgid "Click here to view or manage the DNS list file" msgstr "点击此处查看或管理 DNS 列表文件" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 msgid "Click to the page" @@ -487,7 +491,7 @@ msgstr "" "定义上游逻辑模式,可选择值:负载均衡、并行查询、最快响应(默认值:负载均" "衡)。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:420 msgid "Delay (ms)" msgstr "延迟(ms)" @@ -552,7 +556,7 @@ msgstr "是否要恢复客户端默认配置?" msgid "DoT upstream (Need use wolfssl version)" msgstr "DoT 上游(需使用 wolfssl 版本)" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:403 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:407 msgid "Domain Strategy" msgstr "域名解析策略" @@ -578,7 +582,7 @@ msgid "Edit ShadowSocksR Server" msgstr "编辑服务器配置" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:263 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:392 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101 msgid "Enable" @@ -751,7 +755,7 @@ msgid "" "Chinese CDN IP addresses" msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN 地址" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:376 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:380 msgid "For specific usage, see:" msgstr "具体使用方法,请参见:" @@ -781,10 +785,18 @@ msgstr "分片包长" msgid "Fragment Packets" msgstr "分片方式" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +msgid "Fragment maxSplit" +msgstr "分片数据包拆分" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366 msgid "Fragmentation interval (ms)" msgstr "分片间隔(ms)" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +msgid "Fragmented maxSplit (byte)" +msgstr "分片数据包的拆分数量 (byte)" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362 msgid "Fragmented packet length (byte)" msgstr "分片包长 (byte)" @@ -1236,7 +1248,7 @@ msgstr "你已经是最新数据,无需更新!" msgid "No specify upload file." msgstr "没有上传证书。" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374 msgid "Noise" msgstr "噪声" @@ -1336,7 +1348,7 @@ msgstr "" msgid "Oversea Mode DNS-2 (114.114.115.115)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:412 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416 msgid "Packet" msgstr "数据包" @@ -1873,7 +1885,7 @@ msgstr "连接超时时间(单位:秒)" msgid "Tips: Dnsproxy DNS Parse List Path:" msgstr "提示:Dnsproxy 的 DNS 解析列表路径:" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:375 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379 msgid "To send noise packets, select \"Noise\" in Xray Settings." msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。" @@ -1894,7 +1906,7 @@ msgstr "传输协议" msgid "Trojan" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:400 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:185 msgid "Type" msgstr "类型" @@ -1903,7 +1915,7 @@ msgstr "类型" msgid "UDP" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374 msgid "" "UDP noise, Under some circumstances it can bypass some UDP based protocol " "restrictions." @@ -2178,7 +2190,7 @@ msgstr "XHTTP 路径" msgid "Xray Fragment Settings" msgstr "Xray 分片设置" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:373 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:377 msgid "Xray Noise Packets" msgstr "Xray 噪声数据包" diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index d5bc9804be5..f919f727731 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -338,13 +338,15 @@ if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.e fragment = (xray_fragment.fragment == "1") and { packets = (xray_fragment.fragment_packets ~= "") and xray_fragment.fragment_packets or nil, length = (xray_fragment.fragment_length ~= "") and xray_fragment.fragment_length or nil, - interval = (xray_fragment.fragment_interval ~= "") and xray_fragment.fragment_interval or nil + interval = (xray_fragment.fragment_interval ~= "") and xray_fragment.fragment_interval or nil, + maxSplit = (xray_fragment.fragment_maxsplit ~= "") and xray_fragment.fragment_maxsplit or nil } or nil, noises = (xray_fragment.noise == "1" and xray_noise.enabled == "1") and { { type = xray_noise.type, packet = xray_noise.packet, - delay = xray_noise.delay:find("-") and xray_noise.delay or tonumber(xray_noise.delay) + delay = xray_noise.delay:find("-") and xray_noise.delay or tonumber(xray_noise.delay), + applyTo = xray_noise.applyto } } or nil }, From b940005b80e90f99a8de8e87e2d125944b4fa27f Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sat, 9 Aug 2025 16:25:52 +0800 Subject: [PATCH 811/972] luci-app-ssr-plus: fix `simple-obfs` depends --- luci-app-ssr-plus/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 07968a727d5..80993d4ccff 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -62,7 +62,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Libev_Server:shadowsocks-libev-ss-server \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Client:shadowsocks-rust-sslocal \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Rust_Server:shadowsocks-rust-ssserver \ - +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Simple_Obfs:simple-obfs \ + +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_Simple_Obfs:simple-obfs-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks_V2ray_Plugin:v2ray-plugin \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-local \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Client:shadowsocksr-libev-ssr-redir \ From 612c959f8207debc0e96e3f93de724f52e1f3e17 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Sun, 10 Aug 2025 19:04:38 +0800 Subject: [PATCH 812/972] luci-app-ssr-plus: Fix `ss` configuration import --- .../luasrc/view/shadowsocksr/ssrurl.htm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 539d97745d3..0fb899d3a25 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -184,14 +184,20 @@ if (url0.indexOf("@") !== -1) { // === SIP002 格式 === var sipIndex = url0.indexOf("@"); - var userInfoB64 = url0.substring(0, sipIndex); + // 先 URL 解码 base64 再解码 + var userInfoB64 = decodeURIComponent(url0.substring(0, sipIndex)); var userInfo = b64decsafe(userInfoB64); var userInfoSplitIndex = userInfo.indexOf(":"); + if(userInfoSplitIndex < 0) { + // 格式错误 + s.innerHTML = "Userinfo format error"; + break; + } var method = userInfo.substring(0, userInfoSplitIndex); var password = userInfo.substring(userInfoSplitIndex + 1); - - var serverPart = url0.substring(url0.indexOf("@") + 1); + var serverPart = url0.substring(sipIndex + 1); var serverInfo = serverPart.split(":"); + var server = serverInfo[0]; var port = serverInfo[1]; @@ -203,7 +209,9 @@ } } else { // === Base64 SS2022 / 普通格式 的整体编码格式 === - var sstr = b64decsafe(url0); + // 先 URL 解码整个字符串 + var decodedUrl0 = decodeURIComponent(url0); + var sstr = b64decsafe(decodedUrl0); if (!sstr) { s.innerHTML = "Base64 sstr failed"; break; From f5a12e017dac5275ce241326b353cea9bd7e0d02 Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Sun, 10 Aug 2025 20:06:36 +0800 Subject: [PATCH 813/972] luci-app-ssr-plus: support xray ech See: https://xtls.github.io/config/transport.html#tlsobject --- .../model/cbi/shadowsocksr/client-config.lua | 43 +++-- .../luasrc/view/shadowsocksr/ssrurl.htm | 18 ++ luci-app-ssr-plus/po/templates/ssr-plus.pot | 159 +++++++++-------- luci-app-ssr-plus/po/zh_Hans/ssr-plus.po | 165 ++++++++++-------- .../usr/share/shadowsocksr/gen_config.lua | 2 + .../root/usr/share/shadowsocksr/subscribe.lua | 31 +++- 6 files changed, 262 insertions(+), 156 deletions(-) diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3cfd78e937e..b61c8af9e20 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -1125,26 +1125,50 @@ if is_finded("xray") then o:depends({type = "v2ray", tls = true}) o:depends({type = "v2ray", reality = true}) + o = s:option(Flag, "enable_ech", translate("Enable ECH(optional)")) + o.rmempty = true + o.default = "0" + o:depends({type = "v2ray", tls = true}) + + o = s:option(TextValue, "ech_config", translate("ECH Config")) + o.description = translate( + "" .. translate("If it is not empty, it indicates that the Client has enabled Encrypted Client, see:") .. "" .. + " " .. + "" .. translate("Click to the page") .. "") + o:depends("enable_ech", true) + o.default = "" + o.rows = 5 + o.wrap = "soft" + o.validate = function(self, value) + -- 清理空行和多余换行 + return (value:gsub("[\r\n]", "")):gsub("^%s*(.-)%s*$", "%1") + end + + o = s:option(ListValue, "ech_ForceQuery", translate("ECH Query Policy")) + o.description = translate("Controls the policy used when performing DNS queries for ECH configuration.") + o.default = "none" + o:value("none") + o:value("half") + o:value("full") + o:depends("enable_ech", true) + o = s:option(Flag, "enable_mldsa65verify", translate("Enable ML-DSA-65(optional)")) - o.description = translate("This item might be an empty string.") o.rmempty = true o.default = "0" - o:depends({type = "v2ray", v2ray_protocol = "vless", reality = true}) + o:depends({type = "v2ray", reality = true}) - o = s:option(Value, "reality_mldsa65verify", translate("ML-DSA-65 Public key")) + o = s:option(TextValue, "reality_mldsa65verify", translate("ML-DSA-65 Public key")) o.description = translate( "" .. translate("The client has not configured mldsa65Verify, but it will not perform the \"additional verification\" step and can still connect normally, see:") .. "" .. " " .. "" .. translate("Click to the page") .. "") o:depends("enable_mldsa65verify", true) - o.rmempty = true + o.default = "" + o.rows = 5 + o.wrap = "soft" o.validate = function(self, value) -- 清理空行和多余换行 - value = value:gsub("\r\n", "\n"):gsub("^[ \t]*\n", ""):gsub("\n[ \t]*$", ""):gsub("\n[ \t]*\n", "\n") - if value:sub(-1) == "\n" then - value = value:sub(1, -2) - end - return value + return (value:gsub("[\r\n]", "")):gsub("^%s*(.-)%s*$", "%1") end end @@ -1366,4 +1390,3 @@ end return m - diff --git a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm index 0fb899d3a25..b9dd51f7d08 100644 --- a/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm +++ b/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm @@ -359,6 +359,12 @@ document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = true; // 设置 insecure 为 true document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].dispatchEvent(event); // 触发事件 } + if (params.get("ech") && params.get("ech").trim() !== "") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].checked = true; // 设置 enable_ech 为 true + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].dispatchEvent(event); // 触发事件 + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ech_config')[0].value = params.get("ech"); + + } document.getElementsByName('cbid.shadowsocksr.' + sid + '.transport')[0].value = params.get("type") == "http" ? "h2" : (["tcp", "raw"].includes(params.get("type")) ? "raw" : @@ -500,6 +506,11 @@ } document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host; } + if (ssm.tls == "tls") { + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].checked = true; + document.getElementsByName('cbid.shadowsocksr.' + sid + '.enable_ech')[0].dispatchEvent(event); + document.getElementsByName('cbid.shadowsocksr.' + sid + '.ech_config')[0].value = ssm.ech; + } if (ssm.mux !== undefined) { document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true; document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event); @@ -554,6 +565,13 @@ setElementValue('cbid.shadowsocksr.' + sid + '.' + params.get("security"), true); dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.' + params.get("security"), event); + if (params.get("security") === "tls") { + if (params.get("ech") && params.get("ech").trim() !== "") { + setElementValue('cbid.shadowsocksr.' + sid + '.enable_ech', true); // 设置 enable_ech 为 true + dispatchEventIfExists('cbid.shadowsocksr.' + sid + '.enable_ech', event); // 触发事件 + setElementValue('cbid.shadowsocksr.' + sid + '.ech_config', params.get("ech") || ""); + } + } if (params.get("security") === "reality") { setElementValue('cbid.shadowsocksr.' + sid + '.reality_publickey', params.get("pbk") ? decodeURIComponent(params.get("pbk")) : ""); setElementValue('cbid.shadowsocksr.' + sid + '.reality_shortid', params.get("sid") || ""); diff --git a/luci-app-ssr-plus/po/templates/ssr-plus.pot b/luci-app-ssr-plus/po/templates/ssr-plus.pot index 55f7c2a1680..de34a7e55b9 100644 --- a/luci-app-ssr-plus/po/templates/ssr-plus.pot +++ b/luci-app-ssr-plus/po/templates/ssr-plus.pot @@ -20,7 +20,7 @@ msgstr "" msgid "128 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1223 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1247 msgid "16" msgstr "" @@ -56,7 +56,7 @@ msgstr "" msgid "64 Threads" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234 msgid "8" msgstr "" @@ -69,7 +69,8 @@ msgid "" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162 msgid "" msgstr "" @@ -80,9 +81,9 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1203 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1216 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1230 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1227 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1240 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1254 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235 @@ -198,7 +199,7 @@ msgid "Auto Update Server subscription, GFW list and CHN route" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:604 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1264 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1288 msgid "BBR" msgstr "" @@ -244,7 +245,7 @@ msgid "CNNIC SDNS (1.2.4.8)" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:605 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1265 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1289 msgid "CUBIC" msgstr "" @@ -253,7 +254,7 @@ msgstr "" msgid "Camouflage Type" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1171 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 msgid "Certificate fingerprint" msgstr "" @@ -319,7 +320,8 @@ msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:833 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1138 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1137 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164 msgid "Click to the page" msgstr "" @@ -368,6 +370,11 @@ msgstr "" msgid "Connection Timeout" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1148 +msgid "" +"Controls the policy used when performing DNS queries for ECH configuration." +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:78 msgid "Copy SSR to clipboard successfully." msgstr "" @@ -376,11 +383,11 @@ msgstr "" msgid "Create Backup File" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1324 msgid "Create upload file error." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1320 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344 msgid "Current Certificate Path" msgstr "" @@ -448,7 +455,7 @@ msgstr "" msgid "Default" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1231 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1255 msgid "Default reject rejects traffic." msgstr "" @@ -456,13 +463,13 @@ msgstr "" msgid "Default value 0 indicatesno heartbeat." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1204 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 msgid "" "Default: disable. When entering a negative number, such as -1, The Mux " "module will not be used to carry TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1217 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1241 msgid "" "Default:16. When entering a negative number, such as -1, The Mux module will " "not be used to carry UDP traffic, Use original UDP transmission method of " @@ -562,6 +569,14 @@ msgstr "" msgid "Dual-stack Listening Socket" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1133 +msgid "ECH Config" +msgstr "" + +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1147 +msgid "ECH Query Policy" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:764 msgid "Early Data Header Name" msgstr "" @@ -587,25 +602,29 @@ msgid "Enable Authentication" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1334 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1358 msgid "Enable Auto Switch" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128 +msgid "Enable ECH(optional)" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:446 msgid "Enable Lazy Mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1128 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1155 msgid "Enable ML-DSA-65(optional)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273 msgid "" "Enable Multipath TCP, need to be enabled in both server and client " "configuration." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201 msgid "Enable Mux.Cool" msgstr "" @@ -641,7 +660,7 @@ msgstr "" msgid "Enable V3 protocol." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219 msgid "Enable Xudp Mux" msgstr "" @@ -666,8 +685,8 @@ msgid "Enabled Mixed" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350 msgid "Enabling TCP Fast Open Requires Server Support." msgstr "" @@ -936,30 +955,36 @@ msgstr "" msgid "If empty, Not change Apple domains parsing DNS (Default is empty)" msgstr "" +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 +msgid "" +"If it is not empty, it indicates that the Client has enabled Encrypted " +"Client, see:" +msgstr "" + #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:658 msgid "If this option is not set, the socket behavior is platform dependent." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1168 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1192 msgid "" "If true, allowss insecure connection at TLS client, e.g., TLS server uses " "unverifiable certificates." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1284 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308 msgid "If you have a self-signed certificate,please check the box" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:635 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:661 msgid "Import" msgstr "" #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:160 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:295 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:327 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:420 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:503 -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:626 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:303 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:335 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:434 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:522 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:652 msgid "Import configuration information successfully." msgstr "" @@ -979,7 +1004,7 @@ msgstr "" msgid "Invalid JSON format" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:629 +#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:655 msgid "Invalid format." msgstr "" @@ -987,19 +1012,19 @@ msgstr "" msgid "KcpTun" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368 msgid "KcpTun Enable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385 msgid "KcpTun Param" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1356 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380 msgid "KcpTun Password" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374 msgid "KcpTun Port" msgstr "" @@ -1089,7 +1114,7 @@ msgid "Listen only on the given interface or, if unspecified, on all" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362 msgid "Local Port" msgstr "" @@ -1113,11 +1138,11 @@ msgstr "" msgid "Loyalsoldier/v2ray-rules-dat" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1134 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1160 msgid "ML-DSA-65 Public key" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1249 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273 msgid "MPTCP" msgstr "" @@ -1137,13 +1162,13 @@ msgstr "" msgid "Maximum packet size the socks5 server can receive from external" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1218 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1242 msgid "" "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path " "as TCP traffic." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1205 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1229 msgid "" "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8." msgstr "" @@ -1165,7 +1190,7 @@ msgstr "" msgid "Multi Threads Option" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1177 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201 msgid "Mux" msgstr "" @@ -1231,7 +1256,7 @@ msgstr "" msgid "No new data!" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1340 msgid "No specify upload file." msgstr "" @@ -1365,7 +1390,7 @@ msgstr "" msgid "Ping Latency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1323 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1347 msgid "Please confirm the current certificate path" msgstr "" @@ -1499,7 +1524,7 @@ msgstr "" msgid "Refresh..." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1266 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1290 msgid "Reno" msgstr "" @@ -1578,7 +1603,7 @@ msgstr "" msgid "Selection ShadowSocks Node Use Version." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1276 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300 msgid "Self-signed Certificate" msgstr "" @@ -1768,8 +1793,8 @@ msgid "Switch check cycly(second)" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:524 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1243 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350 #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149 msgid "TCP Fast Open" msgstr "" @@ -1793,11 +1818,11 @@ msgstr "" msgid "TLS 1.3 Strict mode" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1158 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1182 msgid "TLS ALPN" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1151 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1175 msgid "TLS Host" msgstr "" @@ -1834,7 +1859,7 @@ msgstr "" msgid "TWNIC-101 DNSCrypt SDNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162 msgid "" "The client has not configured mldsa65Verify, but it will not perform the " "\"additional verification\" step and can still connect normally, see:" @@ -1848,10 +1873,6 @@ msgstr "" msgid "The keep-alive period.(Unit:second)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1129 -msgid "This item might be an empty string." -msgstr "" - #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:135 msgid "Through proxy update" msgstr "" @@ -1965,7 +1986,7 @@ msgstr "" msgid "Uplink Capacity(Default:Mbps)" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1310 #: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3 msgid "Upload" msgstr "" @@ -2176,7 +2197,7 @@ msgstr "" msgid "Xray Noise Packets" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1195 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1219 msgid "Xudp Mux" msgstr "" @@ -2188,15 +2209,15 @@ msgstr "" msgid "aes-128-gcm" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1262 msgid "allow" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1232 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1256 msgid "allow: Allows use Mux connection." msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1164 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1188 msgid "allowInsecure" msgstr "" @@ -2229,21 +2250,21 @@ msgstr "" msgid "cloudflare-dns.com DNSCrypt SDNS" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1287 msgid "comment_tcpcongestion_disable" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1201 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1225 msgid "concurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1260 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1284 msgid "custom_tcpcongestion" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1124 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1209 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1222 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1246 msgid "disable" msgstr "" @@ -2337,7 +2358,7 @@ msgstr "" msgid "randomized" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1237 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1261 msgid "reject" msgstr "" @@ -2357,11 +2378,11 @@ msgstr "" msgid "shadowTLS protocol Version" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1239 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1263 msgid "skip" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1233 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1257 msgid "" "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP " "transmission method of proxy protocol." @@ -2395,10 +2416,10 @@ msgstr "" msgid "xtls-rprx-vision" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1214 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1238 msgid "xudpConcurrency" msgstr "" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1228 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1252 msgid "xudpProxyUDP443" msgstr "" diff --git a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po index ee2ff59964c..c43abeb53f3 100644 --- a/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po @@ -22,7 +22,7 @@ msgstr "单线程" msgid "128 Threads" msgstr "128 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1223 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1247 msgid "16" msgstr "" @@ -58,7 +58,7 @@ msgstr "4 线程" msgid "64 Threads" msgstr "64 线程" -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1210 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1234 msgid "8" msgstr "" @@ -71,7 +71,8 @@ msgid "" msgstr "" #: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:831 -#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1136 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1135 +#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1162 msgid "" msgstr "" @@ -82,9 +83,9 @@ msgstr "

支持 SS/SSR/V2RAY/XRAY/TROJAN/NAIVEPROXY/SOCKS5/TUN 等协议。 0 then end end) end + From cb16d0da610840538016d1028329782b4a25db03 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 12 Aug 2025 01:00:47 +0800 Subject: [PATCH 814/972] shadowsocks-libev: update mirror hash --- shadowsocks-libev/Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/shadowsocks-libev/Makefile b/shadowsocks-libev/Makefile index 1fac15aa539..5981253e619 100644 --- a/shadowsocks-libev/Makefile +++ b/shadowsocks-libev/Makefile @@ -20,8 +20,7 @@ PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://github.com/shadowsocks/shadowsocks-libev.git PKG_SOURCE_DATE:=2025-1-20 PKG_SOURCE_VERSION:=9afa3cacf947f910be46b69fc5a7a1fdd02fd5e6 -PKG_MIRROR_HASH:=575b21803b28db8ab59ecbdb2cf21c4282881507b3a4267cc24f55bad12819cb -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz +PKG_MIRROR_HASH:=b56d015394a3217750ec232570e012461a30af17de20d5598c3b026c8fcaa5b5 PKG_MAINTAINER:=Yousong Zhou From 83e45468ca513499d1629911469d342b9f91fc89 Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 12 Aug 2025 21:03:40 +0800 Subject: [PATCH 815/972] chinadns-ng: update to 2025.08.09 --- chinadns-ng/Makefile | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/chinadns-ng/Makefile b/chinadns-ng/Makefile index 10e4d3b8a3e..e05b0ba69b3 100644 --- a/chinadns-ng/Makefile +++ b/chinadns-ng/Makefile @@ -5,61 +5,61 @@ include $(TOPDIR)/rules.mk PKG_NAME:=chinadns-ng -PKG_VERSION:=2025.06.20 +PKG_VERSION:=2025.08.09 PKG_RELEASE:=1 ifeq ($(ARCH),aarch64) ifneq (,$(filter $(BOARD),rockchip qualcommax)) PKG_ARCH:=$(PKG_NAME)+wolfssl@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=224494b4505ac8dd347a70b298b853b677c0e247887d6edcf46b08bb153de017 + PKG_HASH:=3fe0217615dd7060b7287d2b6b31d2a0b364137398bfb335a03bead322eac716 else PKG_ARCH:=$(PKG_NAME)+wolfssl_noasm@aarch64-linux-musl@generic+v8a@fast+lto - PKG_HASH:=7639fae8e77ea36e377352179acb19e2fdf9010c2c373a9e02f03f637e99140c + PKG_HASH:=42ddd494200ec6d88b35902927688d316bc23e06e6c08d9e01eb2412196ab845 endif else ifeq ($(ARCH),arm) # Referred to golang/golang-values.mk ARM_CPU_FEATURES:=$(word 2,$(subst +,$(space),$(call qstrip,$(CONFIG_CPU_TYPE)))) ifeq ($(ARM_CPU_FEATURES),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v5t+soft_float@fast+lto - PKG_HASH:=41af270fb2509aa011a75edaee57be5d9ebb543ec77615c6e7030ddeab8bbb9b + PKG_HASH:=46ce65b0e2342d4f8dac63f281a38a239d8de29d6c75f863c797b164ab8e72cc else ifneq ($(filter $(ARM_CPU_FEATURES),vfp vfpv2),) PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabi@generic+v6+soft_float@fast+lto - PKG_HASH:=00fe09cf6309377a4bc90f3a5b909c5266c63181cc268912b4e32f92f58ec6cd + PKG_HASH:=0a401d1dc11129481b2baf86f847d55d66bd7e725cba4bf57875fdad27ef0052 else PKG_ARCH:=$(PKG_NAME)+wolfssl@arm-linux-musleabihf@generic+v7a@fast+lto - PKG_HASH:=1acd9129d7efd99bf9952ac6dd932e10108fb27a2a059f03e80bf520300b3741 + PKG_HASH:=dfa1f6ba80fb0925613822f4c4e00df8da68e7b8b772048d26a0d1a9d07d346b endif else ifeq ($(ARCH),mips) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=fa468c04e58b47d7f6bb893ed6bdc41f9929d5a2e500c768e82e0f4a459b047c + PKG_HASH:=b610821a8f61b0ed3c8c7e82e10d401348a9de17f900988589024a37c4099c8e else ifeq ($(ARCH),mipsel) ifeq ($(CONFIG_HAS_FPU),) PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32+soft_float@fast+lto - PKG_HASH:=294917a5009a315cf5ad04cdda8f66714c60c928e2186a6846323e04aa4a798f + PKG_HASH:=760544a88724e3b1b9eac79c9400231e81aa8786f8f00a979229e175811ffe6d else PKG_ARCH:=$(PKG_NAME)+wolfssl@mipsel-linux-musl@mips32@fast+lto - PKG_HASH:=23c40248c3aa301a26c37cdb66e2141d2d73d4f0c5c03c066324263510d959ac + PKG_HASH:=ec547c31a884e0967437ceb90a5c270864efe81b0e40939e0ec2810c7bfd6653 endif else ifeq ($(ARCH),mips64) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64-linux-musl@mips64+soft_float@fast+lto - PKG_HASH:=f65bf9e495384afaf8aadd35395a2b9cdb2eedecb2602a0c522039dc4707350d + PKG_HASH:=2d0fce18a7ef1d74fdc12738767e66998a52c2b30d8790da760933853fe8726e else ifeq ($(ARCH),mips64el) PKG_ARCH:=$(PKG_NAME)+wolfssl@mips64el-linux-musl@mips64+soft_float@fast+lto - PKG_HASH:=44bd1a96d5a0ce02b8c5c5d941339958af2bf2d1c5e5d90ed87214ac0d900543 + PKG_HASH:=a301d8d200d06582c60bbe0e487a28f5b41e6f0997a548cf882a7b078dab089c else ifeq ($(ARCH),i386) ifneq ($(CONFIG_TARGET_x86_geode)$(CONFIG_TARGET_x86_legacy),) PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@i686@fast+lto - PKG_HASH:=25a215e1b5c18f8b4f0e7f0a0925fd1c959bbfdfeb3383830d2b645a94077fc6 + PKG_HASH:=85e057dd0a0e8913b30471737436ab8b71834c494ed9f9e53544261b1ffdc8d6 else PKG_ARCH:=$(PKG_NAME)+wolfssl@i386-linux-musl@pentium4@fast+lto - PKG_HASH:=e78feedf8fafc60749dfca576acd05b3df8e4b99912aa77a320971011ca77b1d + PKG_HASH:=2d0f1a05c82f2e21e71a6618c7f1d2e7f46aa6a21535d774d517e87ec00c989b endif else ifeq ($(ARCH),x86_64) PKG_ARCH:=$(PKG_NAME)+wolfssl@x86_64-linux-musl@x86_64@fast+lto - PKG_HASH:=9ad100ef18f7acaecad1aaa07b07029e9e50679fc8f119977878211b1ceb96f0 + PKG_HASH:=842ea4e9816efd91d39bc76ead5c4a42e79011757e37c521b4270b675cfcb30c else ifeq ($(ARCH),riscv64) PKG_ARCH:=chinadns-ng+wolfssl@riscv64-linux-musl@baseline_rv64@fast+lto - PKG_HASH:=ed4d2cf72c2d48f19dd7678f419ce726bc2a793afc62afd6345e735dd262ca96 + PKG_HASH:=7056f47f4d6b20109e007792694dc83e5eac44c9265d7be20f6dc10375b35a9b else PKG_ARCH:=dummy PKG_HASH:=dummy From 026b0cfacfe5970e1c8ed48ca47259f6c017555a Mon Sep 17 00:00:00 2001 From: zxl hhyccc <45259624+zxlhhyccc@users.noreply.github.com> Date: Tue, 12 Aug 2025 23:25:13 +0800 Subject: [PATCH 816/972] luci-app-ssr-plus: Optimize the tag value of the shard --- .../root/usr/share/shadowsocksr/gen_config.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index 62cabddd21b..20a9395a8b0 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -17,6 +17,9 @@ local xray_fragment = ucursor:get_all("shadowsocksr", "@global_xray_fragment[0]" local xray_noise = ucursor:get_all("shadowsocksr", "@xray_noise_packets[0]") or {} local outbound_settings = nil +local node_id = server_section +local remarks = server.alias or "" + function vmess_vless() outbound_settings = { vnext = { @@ -238,7 +241,7 @@ end rawSettings = (server.transport == "raw" or server.transport == "tcp") and { -- tcp header = { - type = server.tcp_guise or "none", + type = server.tcp_guise, request = (server.tcp_guise == "http") and { -- request path = {server.http_path} or {"/"}, @@ -317,7 +320,8 @@ end tcpMptcp = (server.mptcp == "1") and true or nil, -- MPTCP Penetrate = (server.mptcp == "1") and true or nil, -- Penetrate MPTCP tcpcongestion = server.custom_tcpcongestion, -- 连接服务器节点的 TCP 拥塞控制算法 - dialerProxy = (xray_fragment.fragment == "1" or xray_fragment.noise == "1") and "dialerproxy" or nil + dialerProxy = (xray_fragment.fragment == "1" or xray_fragment.noise == "1") and + ((remarks ~= nil and remarks ~= "") and (node_id .. "." .. remarks) or node_id) or nil } } or nil, mux = (server.v2ray_protocol ~= "wireguard") and { @@ -334,7 +338,7 @@ end if xray_fragment.fragment ~= "0" or (xray_fragment.noise ~= "0" and xray_noise.enabled ~= "0") then table.insert(Xray.outbounds, { protocol = "freedom", - tag = "dialerproxy", + tag = (remarks ~= nil and remarks ~= "") and (node_id .. "." .. remarks) or node_id, settings = { domainStrategy = (xray_fragment.noise == "1" and xray_noise.enabled == "1") and xray_noise.domainStrategy, fragment = (xray_fragment.fragment == "1") and { From 2b50567536ce1ff68e84e6ae72c85854ac977e4a Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 13 Aug 2025 00:28:27 +0800 Subject: [PATCH 817/972] naiveproxy: update to 139.0.7258.62-1 --- naiveproxy/Makefile | 8 ++++---- naiveproxy/src/init_env.sh | 6 +++++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/naiveproxy/Makefile b/naiveproxy/Makefile index 6187dfcbcb8..1258b95643e 100644 --- a/naiveproxy/Makefile +++ b/naiveproxy/Makefile @@ -5,13 +5,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=naiveproxy -PKG_REAL_VERSION:=138.0.7204.35-1 +PKG_REAL_VERSION:=139.0.7258.62-1 PKG_VERSION:=$(subst -,.,$(PKG_REAL_VERSION)) PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_REAL_VERSION).tar.gz PKG_SOURCE_URL:=https://codeload.github.com/klzgrad/naiveproxy/tar.gz/v$(PKG_REAL_VERSION)? -PKG_HASH:=b2d409ea4118ec4a3cc7abe003bfed35eab2a366655ac16c67e6cf477f4f1ac5 +PKG_HASH:=25f8e5f04cd9a3caaaa5477e5b591162a811b25f0b2301c914fc99814b6c796b PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_REAL_VERSION) PKG_LICENSE:=BSD 3-Clause @@ -66,13 +66,13 @@ define Download/CLANG HASH:=5f69279b3697166facfc354634157e0a8a32fa6e36864200ad8a8f85add3f3f6 endef -PGO_VER:=7204-1750182162-e119762f9b8c4eff265cc04443b39939e0b77575-569fd9dc10e73e84c7d4b1c66b5ed02250b14769 +PGO_VER:=7258-1752969416-a528e01185d141ca77542255592e211024c33d34-b4ba555e3de319acd633d70ccd6c1d01f0460a1c PGO_FILE:=chrome-linux-$(PGO_VER).profdata define Download/PGO_PROF URL:=https://storage.googleapis.com/chromium-optimization-profiles/pgo_profiles URL_FILE:=$(PGO_FILE) FILE:=$(PGO_FILE) - HASH:=0bb14d8f9c9bd2d7a6c4ed62e60efde77ce20e939bb01e5074b5754aed814273 + HASH:=875f6573b0ca163e031d96b88f800a811e94e7ec3cc61af671b35a27d269e3c0 endef define Build/Prepare diff --git a/naiveproxy/src/init_env.sh b/naiveproxy/src/init_env.sh index 9e75eab3e44..9252c8dc737 100755 --- a/naiveproxy/src/init_env.sh +++ b/naiveproxy/src/init_env.sh @@ -19,6 +19,9 @@ case "${target_arch}" in "i386") naive_arch="x86" ;; +"loongarch64") + naive_arch="loong64" + ;; "x86_64") naive_arch="x64" ;; @@ -51,13 +54,13 @@ treat_warnings_as_errors=false is_cronet_build=true -enable_base_tracing=false use_udev=false use_aura=false use_ozone=false use_gio=false use_platform_icu_alternatives=true use_glib=false +is_perfetto_embedder=true disable_file_support=true enable_websockets=false @@ -70,6 +73,7 @@ include_transport_security_state_preload_list=false enable_device_bound_sessions=false enable_bracketed_proxy_uris=true enable_quic_proxy_support=true +enable_disk_cache_sql_backend=false use_nss_certs=false From f31ce3540611cbccf199c36d81e0c27e8996551c Mon Sep 17 00:00:00 2001 From: zxlhhyccc Date: Wed, 13 Aug 2025 21:42:38 +0800 Subject: [PATCH 818/972] gn: update to git HEAD --- gn/Makefile | 6 +++--- gn/src/out/last_commit_position.h | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/gn/Makefile b/gn/Makefile index 762679d2ff8..195d70093bf 100644 --- a/gn/Makefile +++ b/gn/Makefile @@ -9,9 +9,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=https://gn.googlesource.com/gn.git -PKG_SOURCE_DATE:=2025-06-19 -PKG_SOURCE_VERSION:=3f7fb0dd45372b97fa050df7b277e706595621f3 -PKG_MIRROR_HASH:=2d0abc1e1a572644bd1b74c4415e91dde322eee4e20c99f0e7d5975a5badad29 +PKG_SOURCE_DATE:=2025-08-11 +PKG_SOURCE_VERSION:=c15bfa41e5266dcce4161968ab4eb0387cae7a7a +PKG_MIRROR_HASH:=74a86fc09670bde4e0140329662de9a577ec3ec48eba557552964c0e101432c1 PKG_LICENSE:=BSD 3-Clause PKG_LICENSE_FILES:=LICENSE diff --git a/gn/src/out/last_commit_position.h b/gn/src/out/last_commit_position.h index 6c7bee36102..25beeefddbc 100644 --- a/gn/src/out/last_commit_position.h +++ b/gn/src/out/last_commit_position.h @@ -3,7 +3,7 @@ #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ -#define LAST_COMMIT_POSITION_NUM 2254 -#define LAST_COMMIT_POSITION "2254 (3f7fb0dd4537)" +#define LAST_COMMIT_POSITION_NUM 2276 +#define LAST_COMMIT_POSITION "2276 (c15bfa41e526)" #endif // OUT_LAST_COMMIT_POSITION_H_ From 502f1c4c2f85c3da17133c9493e1927858dc2710 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 21 Aug 2025 02:23:26 +0800 Subject: [PATCH 819/972] shadowsocksr-libev: use local SRC --- shadowsocksr-libev/Makefile | 8 +- .../0001-Add-ss-server-and-ss-check.patch | 10 - shadowsocksr-libev/src/AUTHORS | 9 + shadowsocksr-libev/src/CMakeLists.txt | 37 + shadowsocksr-libev/src/COPYING | 12 + shadowsocksr-libev/src/Changes | 399 + shadowsocksr-libev/src/INSTALL | 365 + shadowsocksr-libev/src/LICENSE | 675 + shadowsocksr-libev/src/Makefile.am | 14 + shadowsocksr-libev/src/Makefile.in | 898 + shadowsocksr-libev/src/README.md | 486 + shadowsocksr-libev/src/acl/chn.acl | 3805 ++++ shadowsocksr-libev/src/acl/gfwlist.acl | 3770 ++++ shadowsocksr-libev/src/acl/local.acl | 9 + .../src/acl/server_block_chn.acl | 3811 ++++ shadowsocksr-libev/src/aclocal.m4 | 1299 ++ shadowsocksr-libev/src/auto/ar-lib | 270 + shadowsocksr-libev/src/auto/compile | 347 + shadowsocksr-libev/src/auto/config.guess | 1558 ++ shadowsocksr-libev/src/auto/config.rpath | 0 shadowsocksr-libev/src/auto/config.sub | 1791 ++ shadowsocksr-libev/src/auto/depcomp | 791 + shadowsocksr-libev/src/auto/install-sh | 527 + shadowsocksr-libev/src/auto/ltmain.sh | 9661 ++++++++ shadowsocksr-libev/src/auto/missing | 215 + shadowsocksr-libev/src/autogen.sh | 3 + .../src/cmake/CheckDIRSymbolExists.cmake | 75 + .../src/cmake/CheckPrototypeExists.cmake | 41 + shadowsocksr-libev/src/cmake/CheckSTDC.cmake | 37 + shadowsocksr-libev/src/cmake/FindPCRE.cmake | 158 + shadowsocksr-libev/src/cmake/configure.cmake | 197 + shadowsocksr-libev/src/cmake/dist.cmake | 20 + .../src/completions/bash/ss-local | 33 + .../src/completions/bash/ss-manager | 41 + .../src/completions/bash/ss-redir | 30 + .../src/completions/bash/ss-server | 37 + .../src/completions/bash/ss-tunnel | 38 + shadowsocksr-libev/src/config.h.cmake | 434 + shadowsocksr-libev/src/config.h.in | 427 + shadowsocksr-libev/src/configure | 18764 ++++++++++++++++ shadowsocksr-libev/src/configure.ac | 330 + shadowsocksr-libev/src/debian/.gitignore | 5 + shadowsocksr-libev/src/debian/README.Debian | 17 + shadowsocksr-libev/src/debian/changelog | 399 + shadowsocksr-libev/src/debian/compat | 1 + shadowsocksr-libev/src/debian/config.json | 8 + shadowsocksr-libev/src/debian/control | 78 + shadowsocksr-libev/src/debian/copyright | 204 + .../src/debian/copyright.original | 23 + .../debian/libshadowsocks-libev-dev.install | 3 + .../src/debian/libshadowsocks-libev2.install | 1 + shadowsocksr-libev/src/debian/rules | 25 + .../debian/shadowsocks-libev-local@.service | 24 + .../debian/shadowsocks-libev-redir@.service | 24 + .../debian/shadowsocks-libev-server@.service | 24 + .../debian/shadowsocks-libev-tunnel@.service | 24 + .../src/debian/shadowsocks-libev.default | 25 + .../src/debian/shadowsocks-libev.docs | 3 + .../src/debian/shadowsocks-libev.init | 136 + .../src/debian/shadowsocks-libev.install | 5 + .../src/debian/shadowsocks-libev.postinst | 25 + .../src/debian/shadowsocks-libev.postrm | 22 + .../src/debian/shadowsocks-libev.service | 25 + .../src/debian/source.lintian-overrides | 4 + shadowsocksr-libev/src/debian/source/format | 1 + shadowsocksr-libev/src/debian/watch | 6 + shadowsocksr-libev/src/doc/Makefile.am | 62 + shadowsocksr-libev/src/doc/Makefile.in | 646 + shadowsocksr-libev/src/doc/asciidoc.conf | 36 + shadowsocksr-libev/src/doc/manpage-base.xsl | 35 + .../src/doc/manpage-bold-literal.xsl | 17 + shadowsocksr-libev/src/doc/manpage-normal.xsl | 13 + .../src/doc/shadowsocks-libev.asciidoc | 248 + shadowsocksr-libev/src/doc/ss-local.asciidoc | 142 + .../src/doc/ss-manager.asciidoc | 162 + shadowsocksr-libev/src/doc/ss-nat.asciidoc | 95 + shadowsocksr-libev/src/doc/ss-redir.asciidoc | 158 + shadowsocksr-libev/src/doc/ss-server.asciidoc | 172 + shadowsocksr-libev/src/doc/ss-tunnel.asciidoc | 129 + .../src/docker/alpine/Dockerfile | 59 + .../src/docker/alpine/README.md | 88 + .../src/docker/alpine/docker-compose.yml | 9 + .../src/docker/ubuntu/Dockerfile | 32 + .../src/docker/ubuntu/README.md | 90 + .../src/docker/ubuntu/entrypoint | 99 + .../src/libcork/.idea/libcork-develop.iml | 2 + shadowsocksr-libev/src/libcork/.idea/misc.xml | 9 + .../src/libcork/.idea/modules.xml | 8 + .../src/libcork/.idea/workspace.xml | 693 + shadowsocksr-libev/src/libcork/CMakeLists.txt | 142 + shadowsocksr-libev/src/libcork/COPYING | 30 + shadowsocksr-libev/src/libcork/Makefile.am | 18 + shadowsocksr-libev/src/libcork/Makefile.in | 947 + .../src/libcork/README.markdown | 65 + shadowsocksr-libev/src/libcork/cli/commands.c | 225 + .../src/libcork/cmake/FindCTargets.cmake | 72 + .../src/libcork/core/allocator.c | 421 + shadowsocksr-libev/src/libcork/core/error.c | 246 + shadowsocksr-libev/src/libcork/core/gc.c | 406 + shadowsocksr-libev/src/libcork/core/hash.c | 20 + .../src/libcork/core/ip-address.c | 536 + shadowsocksr-libev/src/libcork/core/mempool.c | 198 + .../src/libcork/core/timestamp.c | 190 + shadowsocksr-libev/src/libcork/core/u128.c | 85 + shadowsocksr-libev/src/libcork/core/version.c | 28 + shadowsocksr-libev/src/libcork/ds/array.c | 378 + shadowsocksr-libev/src/libcork/ds/bitset.c | 62 + shadowsocksr-libev/src/libcork/ds/buffer.c | 471 + shadowsocksr-libev/src/libcork/ds/dllist.c | 63 + .../src/libcork/ds/file-stream.c | 214 + .../src/libcork/ds/hash-table.c | 689 + .../src/libcork/ds/managed-buffer.c | 240 + .../src/libcork/ds/ring-buffer.c | 87 + shadowsocksr-libev/src/libcork/ds/slice.c | 297 + .../src/libcork/include/libcork/cli.h | 18 + .../libcork/include/libcork/cli/commands.h | 61 + .../src/libcork/include/libcork/config.h | 18 + .../src/libcork/include/libcork/config/arch.h | 45 + .../src/libcork/include/libcork/config/bsd.h | 34 + .../libcork/include/libcork/config/config.h | 82 + .../src/libcork/include/libcork/config/gcc.h | 91 + .../libcork/include/libcork/config/linux.h | 34 + .../libcork/include/libcork/config/macosx.h | 34 + .../libcork/include/libcork/config/mingw32.h | 54 + .../libcork/include/libcork/config/solaris.h | 34 + .../libcork/include/libcork/config/version.h | 25 + .../src/libcork/include/libcork/core.h | 29 + .../libcork/include/libcork/core/allocator.h | 409 + .../src/libcork/include/libcork/core/api.h | 56 + .../libcork/include/libcork/core/attributes.h | 172 + .../libcork/include/libcork/core/byte-order.h | 186 + .../libcork/include/libcork/core/callbacks.h | 46 + .../src/libcork/include/libcork/core/error.h | 139 + .../src/libcork/include/libcork/core/gc.h | 67 + .../src/libcork/include/libcork/core/hash.h | 356 + .../src/libcork/include/libcork/core/id.h | 35 + .../libcork/include/libcork/core/mempool.h | 71 + .../include/libcork/core/net-addresses.h | 147 + .../libcork/include/libcork/core/timestamp.h | 87 + .../src/libcork/include/libcork/core/types.h | 82 + .../src/libcork/include/libcork/core/u128.h | 223 + .../src/libcork/include/libcork/ds.h | 26 + .../src/libcork/include/libcork/ds/array.h | 161 + .../src/libcork/include/libcork/ds/bitset.h | 70 + .../src/libcork/include/libcork/ds/buffer.h | 163 + .../src/libcork/include/libcork/ds/dllist.h | 151 + .../libcork/include/libcork/ds/hash-table.h | 159 + .../include/libcork/ds/managed-buffer.h | 76 + .../libcork/include/libcork/ds/ring-buffer.h | 60 + .../src/libcork/include/libcork/ds/slice.h | 151 + .../src/libcork/include/libcork/ds/stream.h | 64 + .../libcork/include/libcork/helpers/errors.h | 142 + .../src/libcork/include/libcork/helpers/gc.h | 51 + .../libcork/include/libcork/helpers/posix.h | 87 + .../src/libcork/include/libcork/os.h | 20 + .../src/libcork/include/libcork/os/files.h | 271 + .../src/libcork/include/libcork/os/process.h | 28 + .../libcork/include/libcork/os/subprocess.h | 197 + .../src/libcork/include/libcork/threads.h | 19 + .../libcork/include/libcork/threads/atomics.h | 50 + .../libcork/include/libcork/threads/basics.h | 221 + .../src/libcork/posix/directory-walker.c | 122 + shadowsocksr-libev/src/libcork/posix/env.c | 271 + shadowsocksr-libev/src/libcork/posix/exec.c | 189 + shadowsocksr-libev/src/libcork/posix/files.c | 891 + .../src/libcork/posix/process.c | 116 + .../src/libcork/posix/subprocess.c | 664 + .../src/libcork/pthreads/thread.c | 223 + shadowsocksr-libev/src/libev/CMakeLists.txt | 30 + shadowsocksr-libev/src/libev/Changes | 517 + shadowsocksr-libev/src/libev/LICENSE | 37 + shadowsocksr-libev/src/libev/Makefile.am | 20 + shadowsocksr-libev/src/libev/Makefile.in | 626 + shadowsocksr-libev/src/libev/README | 58 + shadowsocksr-libev/src/libev/Symbols.ev | 73 + shadowsocksr-libev/src/libev/Symbols.event | 24 + shadowsocksr-libev/src/libev/aclocal.m4 | 9787 ++++++++ shadowsocksr-libev/src/libev/autogen.sh | 3 + .../src/libev/cmake/configure.cmake | 45 + shadowsocksr-libev/src/libev/cmake/dist.cmake | 20 + shadowsocksr-libev/src/libev/config.h.cmake | 125 + shadowsocksr-libev/src/libev/configure.ac | 27 + shadowsocksr-libev/src/libev/ev++.h | 816 + shadowsocksr-libev/src/libev/ev.3 | 5643 +++++ shadowsocksr-libev/src/libev/ev.c | 5097 +++++ shadowsocksr-libev/src/libev/ev.h | 854 + shadowsocksr-libev/src/libev/ev.pod | 5564 +++++ shadowsocksr-libev/src/libev/ev_epoll.c | 282 + shadowsocksr-libev/src/libev/ev_kqueue.c | 214 + shadowsocksr-libev/src/libev/ev_poll.c | 148 + shadowsocksr-libev/src/libev/ev_port.c | 185 + shadowsocksr-libev/src/libev/ev_select.c | 314 + shadowsocksr-libev/src/libev/ev_vars.h | 204 + shadowsocksr-libev/src/libev/ev_win32.c | 162 + shadowsocksr-libev/src/libev/ev_wrap.h | 200 + shadowsocksr-libev/src/libev/event.c | 425 + shadowsocksr-libev/src/libev/event.h | 177 + shadowsocksr-libev/src/libev/libev.m4 | 42 + .../src/libipset/CMakeLists.txt | 112 + shadowsocksr-libev/src/libipset/LICENSE.txt | 30 + shadowsocksr-libev/src/libipset/Makefile.am | 13 + shadowsocksr-libev/src/libipset/Makefile.in | 852 + .../src/libipset/README.markdown | 10 + .../src/libipset/bdd/Makefile.am | 30 + .../src/libipset/bdd/Makefile.in | 0 .../src/libipset/bdd/assignments.c | 134 + shadowsocksr-libev/src/libipset/bdd/basics.c | 467 + .../src/libipset/bdd/bdd-iterator.c | 129 + .../src/libipset/bdd/expanded.c | 138 + .../src/libipset/bdd/reachable.c | 83 + shadowsocksr-libev/src/libipset/bdd/read.c | 350 + shadowsocksr-libev/src/libipset/bdd/write.c | 557 + .../src/libipset/cmake/FindCTargets.cmake | 73 + shadowsocksr-libev/src/libipset/general.c | 21 + .../src/libipset/include/ipset/bdd/nodes.h | 536 + .../src/libipset/include/ipset/bits.h | 58 + .../src/libipset/include/ipset/errors.h | 31 + .../src/libipset/include/ipset/ipset.h | 265 + .../src/libipset/include/ipset/logging.h | 31 + .../src/libipset/map/Makefile.am | 30 + .../src/libipset/map/Makefile.in | 0 .../src/libipset/map/allocation.c | 50 + .../src/libipset/map/inspection-template.c.in | 88 + .../src/libipset/map/inspection.c | 69 + .../src/libipset/map/ipv4_map.c | 37 + .../src/libipset/map/ipv6_map.c | 37 + shadowsocksr-libev/src/libipset/map/storage.c | 101 + .../src/libipset/set/Makefile.am | 30 + .../src/libipset/set/Makefile.in | 0 .../src/libipset/set/allocation.c | 49 + .../src/libipset/set/inspection-template.c.in | 130 + .../src/libipset/set/inspection.c | 91 + .../src/libipset/set/ipv4_set.c | 37 + .../src/libipset/set/ipv6_set.c | 38 + .../src/libipset/set/iterator.c | 342 + shadowsocksr-libev/src/libipset/set/storage.c | 107 + shadowsocksr-libev/src/libsodium/.gitignore | 113 + shadowsocksr-libev/src/libsodium/.travis.yml | 34 + shadowsocksr-libev/src/libsodium/AUTHORS | 94 + .../src/libsodium/CMakeLists.txt | 846 + shadowsocksr-libev/src/libsodium/ChangeLog | 296 + shadowsocksr-libev/src/libsodium/LICENSE | 16 + shadowsocksr-libev/src/libsodium/Makefile.am | 13 + shadowsocksr-libev/src/libsodium/Makefile.in | 827 + shadowsocksr-libev/src/libsodium/README | 1 + .../src/libsodium/README.markdown | 36 + shadowsocksr-libev/src/libsodium/THANKS | 47 + shadowsocksr-libev/src/libsodium/autogen.sh | 36 + .../src/libsodium/build-aux/config.guess | 1558 ++ .../src/libsodium/build-aux/config.sub | 1791 ++ .../src/libsodium/build-aux/depcomp | 791 + .../src/libsodium/build-aux/install-sh | 527 + .../src/libsodium/build-aux/ltmain.sh | 9661 ++++++++ .../src/libsodium/build-aux/missing | 215 + shadowsocksr-libev/src/libsodium/configure | 18129 +++++++++++++++ shadowsocksr-libev/src/libsodium/configure.ac | 579 + .../src/libsodium/libsodium.pc.in | 11 + .../src/libsodium/libsodium.sln | 40 + .../src/libsodium/libsodium.vcxproj | 538 + .../src/libsodium/libsodium.vcxproj.filters | 659 + shadowsocksr-libev/src/libsodium/logo.png | Bin 0 -> 16256 bytes .../src/libsodium/m4/ax_check_compile_flag.m4 | 73 + .../src/libsodium/m4/ax_check_define.m4 | 92 + .../src/libsodium/m4/ax_check_gnu_make.m4 | 78 + .../src/libsodium/m4/ax_check_link_flag.m4 | 73 + .../src/libsodium/m4/ld-output-def.m4 | 29 + shadowsocksr-libev/src/libsodium/m4/pkg.m4 | 214 + .../src/libsodium/packaging/nuget/.gitignore | 4 + .../src/libsodium/packaging/nuget/package.bat | 13 + .../libsodium/packaging/nuget/package.config | 4 + .../src/libsodium/packaging/nuget/package.gsl | 260 + .../src/libsodium/src/Makefile.am | 3 + .../src/libsodium/src/Makefile.in | 632 + .../src/libsodium/src/libsodium/Makefile.am | 285 + .../src/libsodium/src/libsodium/Makefile.in | 3966 ++++ .../aes256gcm/aesni/aead_aes256gcm_aesni.c | 866 + .../sodium/aead_chacha20poly1305.c | 269 + .../src/libsodium/crypto_auth/crypto_auth.c | 34 + .../hmacsha256/auth_hmacsha256_api.c | 16 + .../hmacsha256/cp/hmac_hmacsha256.c | 110 + .../hmacsha256/cp/verify_hmacsha256.c | 11 + .../hmacsha512/auth_hmacsha512_api.c | 16 + .../hmacsha512/cp/hmac_hmacsha512.c | 110 + .../hmacsha512/cp/verify_hmacsha512.c | 12 + .../hmacsha512256/auth_hmacsha512256_api.c | 16 + .../hmacsha512256/cp/hmac_hmacsha512256.c | 54 + .../hmacsha512256/cp/verify_hmacsha512256.c | 14 + .../src/libsodium/crypto_box/crypto_box.c | 108 + .../libsodium/crypto_box/crypto_box_easy.c | 113 + .../libsodium/crypto_box/crypto_box_seal.c | 67 + .../box_curve25519xsalsa20poly1305_api.c | 41 + .../ref/after_curve25519xsalsa20poly1305.c | 22 + .../ref/before_curve25519xsalsa20poly1305.c | 21 + .../ref/box_curve25519xsalsa20poly1305.c | 42 + .../ref/keypair_curve25519xsalsa20poly1305.c | 29 + .../crypto_core/hsalsa20/core_hsalsa20_api.c | 21 + .../crypto_core/hsalsa20/ref2/core_hsalsa20.c | 108 + .../crypto_core/salsa20/core_salsa20_api.c | 21 + .../crypto_core/salsa20/ref/core_salsa20.c | 134 + .../salsa2012/core_salsa2012_api.c | 21 + .../salsa2012/ref/core_salsa2012.c | 134 + .../crypto_core/salsa208/core_salsa208_api.c | 21 + .../crypto_core/salsa208/ref/core_salsa208.c | 134 + .../blake2/generichash_blake2_api.c | 41 + .../blake2/ref/blake2-impl.h | 137 + .../crypto_generichash/blake2/ref/blake2.h | 188 + .../blake2/ref/blake2b-compress-ref.c | 93 + .../blake2/ref/blake2b-compress-sse41.c | 80 + .../blake2/ref/blake2b-compress-ssse3.c | 89 + .../blake2/ref/blake2b-load-sse2.h | 68 + .../blake2/ref/blake2b-load-sse41.h | 402 + .../blake2/ref/blake2b-ref.c | 435 + .../blake2/ref/blake2b-round.h | 123 + .../blake2/ref/generichash_blake2b.c | 114 + .../crypto_generichash/crypto_generichash.c | 84 + .../src/libsodium/crypto_hash/crypto_hash.c | 20 + .../crypto_hash/sha256/cp/hash_sha256.c | 301 + .../crypto_hash/sha256/hash_sha256_api.c | 11 + .../crypto_hash/sha512/cp/hash_sha512.c | 321 + .../crypto_hash/sha512/hash_sha512_api.c | 11 + .../crypto_onetimeauth/crypto_onetimeauth.c | 65 + .../poly1305/donna/poly1305_donna.c | 117 + .../poly1305/donna/poly1305_donna.h | 31 + .../poly1305/donna/poly1305_donna32.h | 207 + .../poly1305/donna/poly1305_donna64.h | 208 + .../poly1305/onetimeauth_poly1305.c | 71 + .../poly1305/onetimeauth_poly1305.h | 23 + .../poly1305/sse2/poly1305_sse2.c | 708 + .../poly1305/sse2/poly1305_sse2.h | 31 + .../crypto_scrypt-common.c | 252 + .../scryptsalsa208sha256/crypto_scrypt.h | 99 + .../nosse/pwhash_scryptsalsa208sha256_nosse.c | 341 + .../scryptsalsa208sha256/pbkdf2-sha256.c | 88 + .../scryptsalsa208sha256/pbkdf2-sha256.h | 45 + .../pwhash_scryptsalsa208sha256.c | 207 + .../scryptsalsa208sha256/scrypt_platform.c | 100 + .../sse/pwhash_scryptsalsa208sha256_sse.c | 392 + .../scryptsalsa208sha256/sysendian.h | 146 + .../crypto_scalarmult/crypto_scalarmult.c | 33 + .../donna_c64/curve25519_donna_c64.c | 481 + .../donna_c64/curve25519_donna_c64.h | 9 + .../curve25519/ref10/curve25519_ref10.c | 73 + .../curve25519/ref10/curve25519_ref10.h | 9 + .../crypto_scalarmult/curve25519/ref10/fe.h | 44 + .../curve25519/ref10/fe_0_curve25519_ref10.c | 23 + .../curve25519/ref10/fe_1_curve25519_ref10.c | 23 + .../ref10/fe_add_curve25519_ref10.c | 61 + .../ref10/fe_copy_curve25519_ref10.c | 33 + .../ref10/fe_cswap_curve25519_ref10.c | 77 + .../ref10/fe_frombytes_curve25519_ref10.c | 74 + .../ref10/fe_invert_curve25519_ref10.c | 18 + .../ref10/fe_mul121666_curve25519_ref10.c | 74 + .../ref10/fe_mul_curve25519_ref10.c | 257 + .../curve25519/ref10/fe_sq_curve25519_ref10.c | 153 + .../ref10/fe_sub_curve25519_ref10.c | 61 + .../ref10/fe_tobytes_curve25519_ref10.c | 123 + .../curve25519/ref10/montgomery.h | 140 + .../curve25519/ref10/pow225521.h | 160 + .../curve25519/sandy2x/consts.S | 25 + .../curve25519/sandy2x/consts_namespace.h | 20 + .../curve25519/sandy2x/curve25519_sandy2x.c | 114 + .../curve25519/sandy2x/curve25519_sandy2x.h | 9 + .../crypto_scalarmult/curve25519/sandy2x/fe.h | 25 + .../curve25519/sandy2x/fe51.h | 33 + .../curve25519/sandy2x/fe51_invert.c | 57 + .../curve25519/sandy2x/fe51_mul.S | 189 + .../curve25519/sandy2x/fe51_namespace.h | 16 + .../curve25519/sandy2x/fe51_nsquare.S | 165 + .../curve25519/sandy2x/fe51_pack.S | 219 + .../curve25519/sandy2x/fe_frombytes_sandy2x.c | 76 + .../curve25519/sandy2x/ladder.S | 1432 ++ .../curve25519/sandy2x/ladder.h | 18 + .../curve25519/sandy2x/ladder_base.S | 1287 ++ .../curve25519/sandy2x/ladder_base.h | 18 + .../sandy2x/ladder_base_namespace.h | 8 + .../curve25519/sandy2x/ladder_namespace.h | 8 + .../curve25519/sandy2x/sandy2x.S | 17 + .../curve25519/scalarmult_curve25519.c | 67 + .../curve25519/scalarmult_curve25519.h | 11 + .../crypto_secretbox/crypto_secretbox.c | 54 + .../crypto_secretbox/crypto_secretbox_easy.c | 143 + .../ref/box_xsalsa20poly1305.c | 35 + .../secretbox_xsalsa20poly1305_api.c | 26 + .../crypto_shorthash/crypto_shorthash.c | 27 + .../siphash24/ref/shorthash_siphash24.c | 92 + .../siphash24/shorthash_siphash24_api.c | 11 + .../src/libsodium/crypto_sign/crypto_sign.c | 76 + .../libsodium/crypto_sign/ed25519/description | 1 + .../crypto_sign/ed25519/ref10/base.h | 1344 ++ .../crypto_sign/ed25519/ref10/base2.h | 40 + .../libsodium/crypto_sign/ed25519/ref10/d.h | 1 + .../libsodium/crypto_sign/ed25519/ref10/d2.h | 1 + .../libsodium/crypto_sign/ed25519/ref10/fe.h | 56 + .../crypto_sign/ed25519/ref10/fe_0.c | 19 + .../crypto_sign/ed25519/ref10/fe_1.c | 19 + .../crypto_sign/ed25519/ref10/fe_add.c | 57 + .../crypto_sign/ed25519/ref10/fe_cmov.c | 63 + .../crypto_sign/ed25519/ref10/fe_copy.c | 29 + .../crypto_sign/ed25519/ref10/fe_frombytes.c | 73 + .../crypto_sign/ed25519/ref10/fe_invert.c | 14 + .../crypto_sign/ed25519/ref10/fe_isnegative.c | 16 + .../crypto_sign/ed25519/ref10/fe_isnonzero.c | 19 + .../crypto_sign/ed25519/ref10/fe_mul.c | 253 + .../crypto_sign/ed25519/ref10/fe_neg.c | 45 + .../crypto_sign/ed25519/ref10/fe_pow22523.c | 13 + .../crypto_sign/ed25519/ref10/fe_sq.c | 149 + .../crypto_sign/ed25519/ref10/fe_sq2.c | 160 + .../crypto_sign/ed25519/ref10/fe_sub.c | 57 + .../crypto_sign/ed25519/ref10/fe_tobytes.c | 119 + .../libsodium/crypto_sign/ed25519/ref10/ge.h | 97 + .../crypto_sign/ed25519/ref10/ge_add.c | 11 + .../crypto_sign/ed25519/ref10/ge_add.h | 97 + .../ed25519/ref10/ge_double_scalarmult.c | 138 + .../crypto_sign/ed25519/ref10/ge_frombytes.c | 50 + .../crypto_sign/ed25519/ref10/ge_madd.c | 11 + .../crypto_sign/ed25519/ref10/ge_madd.h | 88 + .../crypto_sign/ed25519/ref10/ge_msub.c | 11 + .../crypto_sign/ed25519/ref10/ge_msub.h | 88 + .../crypto_sign/ed25519/ref10/ge_p1p1_to_p2.c | 12 + .../crypto_sign/ed25519/ref10/ge_p1p1_to_p3.c | 13 + .../crypto_sign/ed25519/ref10/ge_p2_0.c | 8 + .../crypto_sign/ed25519/ref10/ge_p2_dbl.c | 11 + .../crypto_sign/ed25519/ref10/ge_p2_dbl.h | 73 + .../crypto_sign/ed25519/ref10/ge_p3_0.c | 9 + .../crypto_sign/ed25519/ref10/ge_p3_dbl.c | 12 + .../ed25519/ref10/ge_p3_to_cached.c | 17 + .../crypto_sign/ed25519/ref10/ge_p3_to_p2.c | 12 + .../crypto_sign/ed25519/ref10/ge_p3_tobytes.c | 14 + .../crypto_sign/ed25519/ref10/ge_precomp_0.c | 8 + .../ed25519/ref10/ge_scalarmult_base.c | 111 + .../crypto_sign/ed25519/ref10/ge_sub.c | 11 + .../crypto_sign/ed25519/ref10/ge_sub.h | 97 + .../crypto_sign/ed25519/ref10/ge_tobytes.c | 14 + .../crypto_sign/ed25519/ref10/keypair.c | 78 + .../crypto_sign/ed25519/ref10/obsolete.c | 113 + .../crypto_sign/ed25519/ref10/open.c | 80 + .../crypto_sign/ed25519/ref10/pow22523.h | 160 + .../crypto_sign/ed25519/ref10/pow225521.h | 160 + .../libsodium/crypto_sign/ed25519/ref10/sc.h | 15 + .../crypto_sign/ed25519/ref10/sc_muladd.c | 368 + .../crypto_sign/ed25519/ref10/sc_reduce.c | 275 + .../crypto_sign/ed25519/ref10/sign.c | 78 + .../crypto_sign/ed25519/ref10/sqrtm1.h | 1 + .../crypto_sign/ed25519/sign_ed25519_api.c | 39 + .../aes128ctr/portable/afternm_aes128ctr.c | 159 + .../aes128ctr/portable/beforenm_aes128ctr.c | 59 + .../crypto_stream/aes128ctr/portable/common.h | 788 + .../aes128ctr/portable/common_aes128ctr.c | 64 + .../crypto_stream/aes128ctr/portable/consts.h | 28 + .../aes128ctr/portable/consts_aes128ctr.c | 14 + .../crypto_stream/aes128ctr/portable/int128.h | 56 + .../aes128ctr/portable/int128_aes128ctr.c | 131 + .../aes128ctr/portable/stream_aes128ctr.c | 29 + .../crypto_stream/aes128ctr/portable/types.h | 10 + .../portable/xor_afternm_aes128ctr.c | 180 + .../aes128ctr/stream_aes128ctr_api.c | 16 + .../chacha20/ref/stream_chacha20_ref.c | 336 + .../chacha20/ref/stream_chacha20_ref.h | 27 + .../crypto_stream/chacha20/stream_chacha20.c | 85 + .../crypto_stream/chacha20/stream_chacha20.h | 22 + .../chacha20/vec/stream_chacha20_vec.c | 329 + .../chacha20/vec/stream_chacha20_vec.h | 27 + .../libsodium/crypto_stream/crypto_stream.c | 36 + .../amd64_xmm6/stream_salsa20_amd64_xmm6.S | 944 + .../salsa20/ref/stream_salsa20_ref.c | 61 + .../salsa20/ref/xor_salsa20_ref.c | 69 + .../salsa20/stream_salsa20_api.c | 19 + .../salsa2012/ref/stream_salsa2012.c | 57 + .../salsa2012/ref/xor_salsa2012.c | 60 + .../salsa2012/stream_salsa2012_api.c | 11 + .../salsa208/ref/stream_salsa208.c | 57 + .../crypto_stream/salsa208/ref/xor_salsa208.c | 60 + .../salsa208/stream_salsa208_api.c | 11 + .../xsalsa20/ref/stream_xsalsa20.c | 28 + .../crypto_stream/xsalsa20/ref/xor_xsalsa20.c | 39 + .../xsalsa20/stream_xsalsa20_api.c | 11 + .../crypto_verify/16/ref/verify_16.c | 17 + .../crypto_verify/16/verify_16_api.c | 6 + .../crypto_verify/32/ref/verify_32.c | 17 + .../crypto_verify/32/verify_32_api.c | 6 + .../crypto_verify/64/ref/verify_64.c | 17 + .../crypto_verify/64/verify_64_api.c | 6 + .../src/libsodium/include/Makefile.am | 66 + .../src/libsodium/include/Makefile.in | 595 + .../libsodium/src/libsodium/include/sodium.h | 54 + .../src/libsodium/include/sodium/core.h | 19 + .../include/sodium/crypto_aead_aes256gcm.h | 91 + .../sodium/crypto_aead_chacha20poly1305.h | 84 + .../libsodium/include/sodium/crypto_auth.h | 41 + .../include/sodium/crypto_auth_hmacsha256.h | 63 + .../include/sodium/crypto_auth_hmacsha512.h | 63 + .../sodium/crypto_auth_hmacsha512256.h | 58 + .../src/libsodium/include/sodium/crypto_box.h | 169 + .../crypto_box_curve25519xsalsa20poly1305.h | 100 + .../include/sodium/crypto_core_hsalsa20.h | 35 + .../include/sodium/crypto_core_salsa20.h | 35 + .../include/sodium/crypto_core_salsa2012.h | 35 + .../include/sodium/crypto_core_salsa208.h | 35 + .../include/sodium/crypto_generichash.h | 71 + .../sodium/crypto_generichash_blake2b.h | 115 + .../libsodium/include/sodium/crypto_hash.h | 40 + .../include/sodium/crypto_hash_sha256.h | 56 + .../include/sodium/crypto_hash_sha512.h | 56 + .../libsodium/include/sodium/crypto_int32.h | 8 + .../libsodium/include/sodium/crypto_int64.h | 8 + .../include/sodium/crypto_onetimeauth.h | 58 + .../sodium/crypto_onetimeauth_poly1305.h | 65 + .../crypto_pwhash_scryptsalsa208sha256.h | 79 + .../include/sodium/crypto_scalarmult.h | 37 + .../sodium/crypto_scalarmult_curve25519.h | 36 + .../include/sodium/crypto_secretbox.h | 84 + .../crypto_secretbox_xsalsa20poly1305.h | 54 + .../include/sodium/crypto_shorthash.h | 36 + .../sodium/crypto_shorthash_siphash24.h | 30 + .../libsodium/include/sodium/crypto_sign.h | 77 + .../include/sodium/crypto_sign_ed25519.h | 82 + .../crypto_sign_edwards25519sha512batch.h | 65 + .../libsodium/include/sodium/crypto_stream.h | 49 + .../include/sodium/crypto_stream_aes128ctr.h | 60 + .../include/sodium/crypto_stream_chacha20.h | 77 + .../include/sodium/crypto_stream_salsa20.h | 49 + .../include/sodium/crypto_stream_salsa2012.h | 43 + .../include/sodium/crypto_stream_salsa208.h | 43 + .../include/sodium/crypto_stream_xsalsa20.h | 49 + .../libsodium/include/sodium/crypto_uint16.h | 8 + .../libsodium/include/sodium/crypto_uint32.h | 8 + .../libsodium/include/sodium/crypto_uint64.h | 8 + .../libsodium/include/sodium/crypto_uint8.h | 8 + .../include/sodium/crypto_verify_16.h | 23 + .../include/sodium/crypto_verify_32.h | 23 + .../include/sodium/crypto_verify_64.h | 23 + .../src/libsodium/include/sodium/export.h | 44 + .../libsodium/include/sodium/randombytes.h | 58 + .../include/sodium/randombytes_nativeclient.h | 23 + .../sodium/randombytes_salsa20_random.h | 19 + .../include/sodium/randombytes_sysrandom.h | 19 + .../src/libsodium/include/sodium/runtime.h | 43 + .../src/libsodium/include/sodium/utils.h | 130 + .../src/libsodium/include/sodium/version.h.in | 29 + .../nativeclient/randombytes_nativeclient.c | 49 + .../src/libsodium/randombytes/randombytes.c | 161 + .../salsa20/randombytes_salsa20_random.c | 438 + .../sysrandom/randombytes_sysrandom.c | 321 + .../src/libsodium/src/libsodium/sodium/core.c | 29 + .../libsodium/src/libsodium/sodium/runtime.c | 202 + .../libsodium/src/libsodium/sodium/utils.c | 673 + .../libsodium/src/libsodium/sodium/version.c | 20 + .../src/libsodium/test/HAVE_AMD64_ASM.c | 11 + .../src/libsodium/test/HAVE_CPUID.c | 8 + .../src/libsodium/test/HAVE_TI_MODE.c | 22 + .../src/libsodium/test/HAVE_WEAK_SYMBOLS.c | 2 + .../test/IS_STDC_LIMIT_MACROS_NEEDED.c | 7 + .../src/libsodium/test/Makefile.am | 5 + .../src/libsodium/test/default/CMakeLists.txt | 248 + .../src/libsodium/test/default/Makefile.am | 376 + .../test/default/aead_chacha20poly1305.c | 128 + .../src/libsodium/test/default/auth.c | 68 + .../src/libsodium/test/default/auth2.c | 31 + .../src/libsodium/test/default/auth3.c | 28 + .../src/libsodium/test/default/auth5.c | 35 + .../src/libsodium/test/default/auth6.c | 22 + .../src/libsodium/test/default/auth7.c | 35 + .../src/libsodium/test/default/box.c | 88 + .../src/libsodium/test/default/box2.c | 63 + .../src/libsodium/test/default/box7.c | 39 + .../src/libsodium/test/default/box8.c | 44 + .../src/libsodium/test/default/box_easy.c | 49 + .../src/libsodium/test/default/box_easy2.c | 104 + .../src/libsodium/test/default/box_seal.c | 43 + .../src/libsodium/test/default/box_seed.c | 28 + .../src/libsodium/test/default/chacha20.c | 65 + .../src/libsodium/test/default/cmptest.h | 66 + .../src/libsodium/test/default/core1.c | 39 + .../src/libsodium/test/default/core2.c | 36 + .../src/libsodium/test/default/core3.c | 46 + .../src/libsodium/test/default/core4.c | 34 + .../src/libsodium/test/default/core5.c | 30 + .../src/libsodium/test/default/core6.c | 48 + .../libsodium/test/default/ed25519_convert.c | 44 + .../src/libsodium/test/default/generichash.c | 79 + .../src/libsodium/test/default/generichash2.c | 49 + .../src/libsodium/test/default/generichash3.c | 174 + .../src/libsodium/test/default/hash.c | 43 + .../src/libsodium/test/default/hash3.c | 19 + .../src/libsodium/test/default/onetimeauth.c | 57 + .../src/libsodium/test/default/onetimeauth2.c | 30 + .../src/libsodium/test/default/onetimeauth7.c | 35 + .../src/libsodium/test/default/pre.js.inc | 12 + .../src/libsodium/test/default/pwhash.c | 349 + .../libsodium/test/default/pwhash_scrypt_ll.c | 61 + .../src/libsodium/test/default/randombytes.c | 135 + .../src/libsodium/test/default/scalarmult.c | 38 + .../src/libsodium/test/default/scalarmult2.c | 30 + .../src/libsodium/test/default/scalarmult5.c | 35 + .../src/libsodium/test/default/scalarmult6.c | 49 + .../src/libsodium/test/default/scalarmult7.c | 31 + .../src/libsodium/test/default/secretbox.c | 63 + .../src/libsodium/test/default/secretbox2.c | 46 + .../src/libsodium/test/default/secretbox7.c | 35 + .../src/libsodium/test/default/secretbox8.c | 40 + .../libsodium/test/default/secretbox_easy.c | 57 + .../libsodium/test/default/secretbox_easy2.c | 53 + .../src/libsodium/test/default/shorthash.c | 35 + .../src/libsodium/test/default/sign.c | 1207 + .../src/libsodium/test/default/sodium_core.c | 14 + .../src/libsodium/test/default/sodium_utils.c | 64 + .../libsodium/test/default/sodium_utils2.c | 83 + .../libsodium/test/default/sodium_utils3.c | 56 + .../libsodium/test/default/sodium_version.c | 12 + .../src/libsodium/test/default/stream.c | 48 + .../src/libsodium/test/default/stream2.c | 42 + .../src/libsodium/test/default/stream3.c | 28 + .../src/libsodium/test/default/stream4.c | 46 + .../src/libsodium/test/default/verify1.c | 36 + .../src/libsodium/test/default/wintest.bat | 56 + .../src/libsodium/test/quirks/quirks.h | 26 + shadowsocksr-libev/src/libudns/CMakeLists.txt | 30 + shadowsocksr-libev/src/libudns/COPYING.LGPL | 502 + shadowsocksr-libev/src/libudns/Makefile.am | 8 + shadowsocksr-libev/src/libudns/Makefile.in | 635 + shadowsocksr-libev/src/libudns/NEWS | 136 + shadowsocksr-libev/src/libudns/NOTES | 226 + shadowsocksr-libev/src/libudns/TODO | 59 + shadowsocksr-libev/src/libudns/dnsget.1 | 195 + shadowsocksr-libev/src/libudns/dnsget.c | 759 + shadowsocksr-libev/src/libudns/ex-rdns.c | 114 + shadowsocksr-libev/src/libudns/getopt.c | 165 + shadowsocksr-libev/src/libudns/inet_XtoX.c | 321 + shadowsocksr-libev/src/libudns/rblcheck.1 | 151 + shadowsocksr-libev/src/libudns/rblcheck.c | 378 + shadowsocksr-libev/src/libudns/udns.3 | 1352 ++ shadowsocksr-libev/src/libudns/udns.h | 778 + shadowsocksr-libev/src/libudns/udns_XtoX.c | 57 + shadowsocksr-libev/src/libudns/udns_bl.c | 160 + shadowsocksr-libev/src/libudns/udns_codes.c | 199 + shadowsocksr-libev/src/libudns/udns_dn.c | 379 + shadowsocksr-libev/src/libudns/udns_dntosp.c | 30 + shadowsocksr-libev/src/libudns/udns_init.c | 233 + shadowsocksr-libev/src/libudns/udns_jran.c | 52 + shadowsocksr-libev/src/libudns/udns_misc.c | 67 + shadowsocksr-libev/src/libudns/udns_parse.c | 169 + .../src/libudns/udns_resolver.c | 1325 ++ shadowsocksr-libev/src/libudns/udns_rr_a.c | 123 + shadowsocksr-libev/src/libudns/udns_rr_mx.c | 91 + .../src/libudns/udns_rr_naptr.c | 128 + shadowsocksr-libev/src/libudns/udns_rr_ptr.c | 109 + shadowsocksr-libev/src/libudns/udns_rr_srv.c | 155 + shadowsocksr-libev/src/libudns/udns_rr_txt.c | 98 + shadowsocksr-libev/src/m4/ax_pthread.m4 | 328 + shadowsocksr-libev/src/m4/ax_tls.m4 | 74 + shadowsocksr-libev/src/m4/inet_ntop.m4 | 41 + shadowsocksr-libev/src/m4/libtool.m4 | 7997 +++++++ shadowsocksr-libev/src/m4/ltoptions.m4 | 384 + shadowsocksr-libev/src/m4/ltsugar.m4 | 123 + shadowsocksr-libev/src/m4/ltversion.m4 | 23 + shadowsocksr-libev/src/m4/lt~obsolete.m4 | 98 + shadowsocksr-libev/src/m4/mbedtls.m4 | 94 + shadowsocksr-libev/src/m4/openssl.m4 | 56 + shadowsocksr-libev/src/m4/pcre.m4 | 152 + shadowsocksr-libev/src/m4/polarssl.m4 | 45 + shadowsocksr-libev/src/m4/stack-protector.m4 | 58 + shadowsocksr-libev/src/m4/zlib.m4 | 38 + .../rpm/SOURCES/etc/init.d/shadowsocks-libev | 124 + .../src/rpm/SPECS/shadowsocks-libev.spec.in | 155 + shadowsocksr-libev/src/rpm/genrpm.sh | 55 + .../src/shadowsocks-libev.pc.in | 12 + shadowsocksr-libev/src/src/CMakeLists.txt | 198 + shadowsocksr-libev/src/src/Makefile.am | 121 + shadowsocksr-libev/src/src/Makefile.in | 1408 ++ shadowsocksr-libev/src/src/acl.c | 603 + shadowsocksr-libev/src/src/acl.h | 53 + shadowsocksr-libev/src/src/android.c | 150 + shadowsocksr-libev/src/src/cache.c | 308 + shadowsocksr-libev/src/src/cache.h | 62 + shadowsocksr-libev/src/src/common.h | 96 + shadowsocksr-libev/src/src/encrypt.c | 1536 ++ shadowsocksr-libev/src/src/encrypt.h | 230 + shadowsocksr-libev/src/src/http.c | 152 + shadowsocksr-libev/src/src/http.h | 34 + shadowsocksr-libev/src/src/includeobfs.h | 14 + shadowsocksr-libev/src/src/jconf.c | 386 + shadowsocksr-libev/src/src/jconf.h | 115 + shadowsocksr-libev/src/src/json.c | 1002 + shadowsocksr-libev/src/src/json.h | 249 + shadowsocksr-libev/src/src/local.c | 2214 ++ shadowsocksr-libev/src/src/local.h | 102 + shadowsocksr-libev/src/src/manager.c | 965 + shadowsocksr-libev/src/src/manager.h | 63 + shadowsocksr-libev/src/src/netutils.c | 297 + shadowsocksr-libev/src/src/netutils.h | 98 + shadowsocksr-libev/src/src/obfs/auth.c | 1008 + shadowsocksr-libev/src/src/obfs/auth.h | 37 + shadowsocksr-libev/src/src/obfs/auth_chain.c | 1086 + shadowsocksr-libev/src/src/obfs/auth_chain.h | 87 + shadowsocksr-libev/src/src/obfs/base64.c | 119 + shadowsocksr-libev/src/src/obfs/base64.h | 16 + shadowsocksr-libev/src/src/obfs/crc32.c | 101 + shadowsocksr-libev/src/src/obfs/crc32.h | 16 + shadowsocksr-libev/src/src/obfs/http_simple.c | 329 + shadowsocksr-libev/src/src/obfs/http_simple.h | 20 + shadowsocksr-libev/src/src/obfs/obfs.c | 277 + shadowsocksr-libev/src/src/obfs/obfs.h | 82 + shadowsocksr-libev/src/src/obfs/obfsutil.c | 65 + shadowsocksr-libev/src/src/obfs/obfsutil.h | 16 + .../src/src/obfs/tls1.2_ticket.c | 367 + .../src/src/obfs/tls1.2_ticket.h | 20 + shadowsocksr-libev/src/src/obfs/verify.c | 117 + shadowsocksr-libev/src/src/obfs/verify.h | 18 + shadowsocksr-libev/src/src/protocol.h | 34 + shadowsocksr-libev/src/src/redir.c | 1475 ++ shadowsocksr-libev/src/src/redir.h | 109 + shadowsocksr-libev/src/src/resolv.c | 444 + shadowsocksr-libev/src/src/resolv.h | 50 + shadowsocksr-libev/src/src/rule.c | 137 + shadowsocksr-libev/src/src/rule.h | 58 + shadowsocksr-libev/src/src/server.c | 1877 ++ shadowsocksr-libev/src/src/server.h | 93 + shadowsocksr-libev/src/src/shadowsocks.h | 89 + shadowsocksr-libev/src/src/socks5.h | 63 + shadowsocksr-libev/src/src/ss-nat | 231 + shadowsocksr-libev/src/src/ssrlink.py | 85 + shadowsocksr-libev/src/src/tls.c | 263 + shadowsocksr-libev/src/src/tls.h | 33 + shadowsocksr-libev/src/src/tunnel.c | 1218 + shadowsocksr-libev/src/src/tunnel.h | 97 + shadowsocksr-libev/src/src/udprelay.c | 1464 ++ shadowsocksr-libev/src/src/udprelay.h | 93 + shadowsocksr-libev/src/src/uthash.h | 1074 + shadowsocksr-libev/src/src/utils.c | 455 + shadowsocksr-libev/src/src/utils.h | 233 + shadowsocksr-libev/src/src/win32.c | 106 + shadowsocksr-libev/src/src/win32.h | 76 + 732 files changed, 225265 insertions(+), 17 deletions(-) create mode 100644 shadowsocksr-libev/src/AUTHORS create mode 100644 shadowsocksr-libev/src/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/COPYING create mode 100644 shadowsocksr-libev/src/Changes create mode 100644 shadowsocksr-libev/src/INSTALL create mode 100644 shadowsocksr-libev/src/LICENSE create mode 100644 shadowsocksr-libev/src/Makefile.am create mode 100644 shadowsocksr-libev/src/Makefile.in create mode 100644 shadowsocksr-libev/src/README.md create mode 100644 shadowsocksr-libev/src/acl/chn.acl create mode 100644 shadowsocksr-libev/src/acl/gfwlist.acl create mode 100644 shadowsocksr-libev/src/acl/local.acl create mode 100644 shadowsocksr-libev/src/acl/server_block_chn.acl create mode 100644 shadowsocksr-libev/src/aclocal.m4 create mode 100755 shadowsocksr-libev/src/auto/ar-lib create mode 100755 shadowsocksr-libev/src/auto/compile create mode 100755 shadowsocksr-libev/src/auto/config.guess create mode 100644 shadowsocksr-libev/src/auto/config.rpath create mode 100755 shadowsocksr-libev/src/auto/config.sub create mode 100755 shadowsocksr-libev/src/auto/depcomp create mode 100755 shadowsocksr-libev/src/auto/install-sh create mode 100644 shadowsocksr-libev/src/auto/ltmain.sh create mode 100755 shadowsocksr-libev/src/auto/missing create mode 100755 shadowsocksr-libev/src/autogen.sh create mode 100644 shadowsocksr-libev/src/cmake/CheckDIRSymbolExists.cmake create mode 100644 shadowsocksr-libev/src/cmake/CheckPrototypeExists.cmake create mode 100644 shadowsocksr-libev/src/cmake/CheckSTDC.cmake create mode 100644 shadowsocksr-libev/src/cmake/FindPCRE.cmake create mode 100644 shadowsocksr-libev/src/cmake/configure.cmake create mode 100644 shadowsocksr-libev/src/cmake/dist.cmake create mode 100644 shadowsocksr-libev/src/completions/bash/ss-local create mode 100644 shadowsocksr-libev/src/completions/bash/ss-manager create mode 100644 shadowsocksr-libev/src/completions/bash/ss-redir create mode 100644 shadowsocksr-libev/src/completions/bash/ss-server create mode 100644 shadowsocksr-libev/src/completions/bash/ss-tunnel create mode 100644 shadowsocksr-libev/src/config.h.cmake create mode 100644 shadowsocksr-libev/src/config.h.in create mode 100755 shadowsocksr-libev/src/configure create mode 100755 shadowsocksr-libev/src/configure.ac create mode 100644 shadowsocksr-libev/src/debian/.gitignore create mode 100644 shadowsocksr-libev/src/debian/README.Debian create mode 100644 shadowsocksr-libev/src/debian/changelog create mode 100644 shadowsocksr-libev/src/debian/compat create mode 100644 shadowsocksr-libev/src/debian/config.json create mode 100644 shadowsocksr-libev/src/debian/control create mode 100644 shadowsocksr-libev/src/debian/copyright create mode 100644 shadowsocksr-libev/src/debian/copyright.original create mode 100644 shadowsocksr-libev/src/debian/libshadowsocks-libev-dev.install create mode 100644 shadowsocksr-libev/src/debian/libshadowsocks-libev2.install create mode 100755 shadowsocksr-libev/src/debian/rules create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev-local@.service create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev-redir@.service create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev-server@.service create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev-tunnel@.service create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.default create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.docs create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.init create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.install create mode 100755 shadowsocksr-libev/src/debian/shadowsocks-libev.postinst create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.postrm create mode 100644 shadowsocksr-libev/src/debian/shadowsocks-libev.service create mode 100644 shadowsocksr-libev/src/debian/source.lintian-overrides create mode 100644 shadowsocksr-libev/src/debian/source/format create mode 100644 shadowsocksr-libev/src/debian/watch create mode 100644 shadowsocksr-libev/src/doc/Makefile.am create mode 100644 shadowsocksr-libev/src/doc/Makefile.in create mode 100644 shadowsocksr-libev/src/doc/asciidoc.conf create mode 100644 shadowsocksr-libev/src/doc/manpage-base.xsl create mode 100644 shadowsocksr-libev/src/doc/manpage-bold-literal.xsl create mode 100644 shadowsocksr-libev/src/doc/manpage-normal.xsl create mode 100644 shadowsocksr-libev/src/doc/shadowsocks-libev.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-local.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-manager.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-nat.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-redir.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-server.asciidoc create mode 100644 shadowsocksr-libev/src/doc/ss-tunnel.asciidoc create mode 100644 shadowsocksr-libev/src/docker/alpine/Dockerfile create mode 100644 shadowsocksr-libev/src/docker/alpine/README.md create mode 100644 shadowsocksr-libev/src/docker/alpine/docker-compose.yml create mode 100644 shadowsocksr-libev/src/docker/ubuntu/Dockerfile create mode 100644 shadowsocksr-libev/src/docker/ubuntu/README.md create mode 100755 shadowsocksr-libev/src/docker/ubuntu/entrypoint create mode 100644 shadowsocksr-libev/src/libcork/.idea/libcork-develop.iml create mode 100644 shadowsocksr-libev/src/libcork/.idea/misc.xml create mode 100644 shadowsocksr-libev/src/libcork/.idea/modules.xml create mode 100644 shadowsocksr-libev/src/libcork/.idea/workspace.xml create mode 100644 shadowsocksr-libev/src/libcork/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libcork/COPYING create mode 100644 shadowsocksr-libev/src/libcork/Makefile.am create mode 100644 shadowsocksr-libev/src/libcork/Makefile.in create mode 100644 shadowsocksr-libev/src/libcork/README.markdown create mode 100644 shadowsocksr-libev/src/libcork/cli/commands.c create mode 100644 shadowsocksr-libev/src/libcork/cmake/FindCTargets.cmake create mode 100644 shadowsocksr-libev/src/libcork/core/allocator.c create mode 100644 shadowsocksr-libev/src/libcork/core/error.c create mode 100644 shadowsocksr-libev/src/libcork/core/gc.c create mode 100644 shadowsocksr-libev/src/libcork/core/hash.c create mode 100644 shadowsocksr-libev/src/libcork/core/ip-address.c create mode 100644 shadowsocksr-libev/src/libcork/core/mempool.c create mode 100644 shadowsocksr-libev/src/libcork/core/timestamp.c create mode 100644 shadowsocksr-libev/src/libcork/core/u128.c create mode 100644 shadowsocksr-libev/src/libcork/core/version.c create mode 100644 shadowsocksr-libev/src/libcork/ds/array.c create mode 100644 shadowsocksr-libev/src/libcork/ds/bitset.c create mode 100644 shadowsocksr-libev/src/libcork/ds/buffer.c create mode 100644 shadowsocksr-libev/src/libcork/ds/dllist.c create mode 100644 shadowsocksr-libev/src/libcork/ds/file-stream.c create mode 100644 shadowsocksr-libev/src/libcork/ds/hash-table.c create mode 100644 shadowsocksr-libev/src/libcork/ds/managed-buffer.c create mode 100644 shadowsocksr-libev/src/libcork/ds/ring-buffer.c create mode 100644 shadowsocksr-libev/src/libcork/ds/slice.c create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/cli.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/cli/commands.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/arch.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/bsd.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/config.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/gcc.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/linux.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/macosx.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/mingw32.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/solaris.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/config/version.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/allocator.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/api.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/attributes.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/byte-order.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/callbacks.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/error.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/gc.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/hash.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/id.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/mempool.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/net-addresses.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/timestamp.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/types.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/core/u128.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/array.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/bitset.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/buffer.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/dllist.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/hash-table.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/managed-buffer.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/ring-buffer.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/slice.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/ds/stream.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/helpers/errors.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/helpers/gc.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/helpers/posix.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/os.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/os/files.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/os/process.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/os/subprocess.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/threads.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/threads/atomics.h create mode 100644 shadowsocksr-libev/src/libcork/include/libcork/threads/basics.h create mode 100644 shadowsocksr-libev/src/libcork/posix/directory-walker.c create mode 100644 shadowsocksr-libev/src/libcork/posix/env.c create mode 100644 shadowsocksr-libev/src/libcork/posix/exec.c create mode 100644 shadowsocksr-libev/src/libcork/posix/files.c create mode 100644 shadowsocksr-libev/src/libcork/posix/process.c create mode 100644 shadowsocksr-libev/src/libcork/posix/subprocess.c create mode 100644 shadowsocksr-libev/src/libcork/pthreads/thread.c create mode 100644 shadowsocksr-libev/src/libev/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libev/Changes create mode 100644 shadowsocksr-libev/src/libev/LICENSE create mode 100644 shadowsocksr-libev/src/libev/Makefile.am create mode 100644 shadowsocksr-libev/src/libev/Makefile.in create mode 100644 shadowsocksr-libev/src/libev/README create mode 100644 shadowsocksr-libev/src/libev/Symbols.ev create mode 100644 shadowsocksr-libev/src/libev/Symbols.event create mode 100644 shadowsocksr-libev/src/libev/aclocal.m4 create mode 100644 shadowsocksr-libev/src/libev/autogen.sh create mode 100644 shadowsocksr-libev/src/libev/cmake/configure.cmake create mode 100644 shadowsocksr-libev/src/libev/cmake/dist.cmake create mode 100644 shadowsocksr-libev/src/libev/config.h.cmake create mode 100644 shadowsocksr-libev/src/libev/configure.ac create mode 100644 shadowsocksr-libev/src/libev/ev++.h create mode 100644 shadowsocksr-libev/src/libev/ev.3 create mode 100644 shadowsocksr-libev/src/libev/ev.c create mode 100644 shadowsocksr-libev/src/libev/ev.h create mode 100644 shadowsocksr-libev/src/libev/ev.pod create mode 100644 shadowsocksr-libev/src/libev/ev_epoll.c create mode 100644 shadowsocksr-libev/src/libev/ev_kqueue.c create mode 100644 shadowsocksr-libev/src/libev/ev_poll.c create mode 100644 shadowsocksr-libev/src/libev/ev_port.c create mode 100644 shadowsocksr-libev/src/libev/ev_select.c create mode 100644 shadowsocksr-libev/src/libev/ev_vars.h create mode 100644 shadowsocksr-libev/src/libev/ev_win32.c create mode 100644 shadowsocksr-libev/src/libev/ev_wrap.h create mode 100644 shadowsocksr-libev/src/libev/event.c create mode 100644 shadowsocksr-libev/src/libev/event.h create mode 100644 shadowsocksr-libev/src/libev/libev.m4 create mode 100644 shadowsocksr-libev/src/libipset/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libipset/LICENSE.txt create mode 100644 shadowsocksr-libev/src/libipset/Makefile.am create mode 100644 shadowsocksr-libev/src/libipset/Makefile.in create mode 100644 shadowsocksr-libev/src/libipset/README.markdown create mode 100644 shadowsocksr-libev/src/libipset/bdd/Makefile.am create mode 100644 shadowsocksr-libev/src/libipset/bdd/Makefile.in create mode 100644 shadowsocksr-libev/src/libipset/bdd/assignments.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/basics.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/bdd-iterator.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/expanded.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/reachable.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/read.c create mode 100644 shadowsocksr-libev/src/libipset/bdd/write.c create mode 100644 shadowsocksr-libev/src/libipset/cmake/FindCTargets.cmake create mode 100644 shadowsocksr-libev/src/libipset/general.c create mode 100644 shadowsocksr-libev/src/libipset/include/ipset/bdd/nodes.h create mode 100644 shadowsocksr-libev/src/libipset/include/ipset/bits.h create mode 100644 shadowsocksr-libev/src/libipset/include/ipset/errors.h create mode 100644 shadowsocksr-libev/src/libipset/include/ipset/ipset.h create mode 100644 shadowsocksr-libev/src/libipset/include/ipset/logging.h create mode 100644 shadowsocksr-libev/src/libipset/map/Makefile.am create mode 100644 shadowsocksr-libev/src/libipset/map/Makefile.in create mode 100644 shadowsocksr-libev/src/libipset/map/allocation.c create mode 100644 shadowsocksr-libev/src/libipset/map/inspection-template.c.in create mode 100644 shadowsocksr-libev/src/libipset/map/inspection.c create mode 100644 shadowsocksr-libev/src/libipset/map/ipv4_map.c create mode 100644 shadowsocksr-libev/src/libipset/map/ipv6_map.c create mode 100644 shadowsocksr-libev/src/libipset/map/storage.c create mode 100644 shadowsocksr-libev/src/libipset/set/Makefile.am create mode 100644 shadowsocksr-libev/src/libipset/set/Makefile.in create mode 100644 shadowsocksr-libev/src/libipset/set/allocation.c create mode 100644 shadowsocksr-libev/src/libipset/set/inspection-template.c.in create mode 100644 shadowsocksr-libev/src/libipset/set/inspection.c create mode 100644 shadowsocksr-libev/src/libipset/set/ipv4_set.c create mode 100644 shadowsocksr-libev/src/libipset/set/ipv6_set.c create mode 100644 shadowsocksr-libev/src/libipset/set/iterator.c create mode 100644 shadowsocksr-libev/src/libipset/set/storage.c create mode 100644 shadowsocksr-libev/src/libsodium/.gitignore create mode 100644 shadowsocksr-libev/src/libsodium/.travis.yml create mode 100644 shadowsocksr-libev/src/libsodium/AUTHORS create mode 100644 shadowsocksr-libev/src/libsodium/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libsodium/ChangeLog create mode 100644 shadowsocksr-libev/src/libsodium/LICENSE create mode 100644 shadowsocksr-libev/src/libsodium/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/Makefile.in create mode 100644 shadowsocksr-libev/src/libsodium/README create mode 100644 shadowsocksr-libev/src/libsodium/README.markdown create mode 100644 shadowsocksr-libev/src/libsodium/THANKS create mode 100755 shadowsocksr-libev/src/libsodium/autogen.sh create mode 100755 shadowsocksr-libev/src/libsodium/build-aux/config.guess create mode 100755 shadowsocksr-libev/src/libsodium/build-aux/config.sub create mode 100755 shadowsocksr-libev/src/libsodium/build-aux/depcomp create mode 100755 shadowsocksr-libev/src/libsodium/build-aux/install-sh create mode 100644 shadowsocksr-libev/src/libsodium/build-aux/ltmain.sh create mode 100755 shadowsocksr-libev/src/libsodium/build-aux/missing create mode 100755 shadowsocksr-libev/src/libsodium/configure create mode 100644 shadowsocksr-libev/src/libsodium/configure.ac create mode 100644 shadowsocksr-libev/src/libsodium/libsodium.pc.in create mode 100644 shadowsocksr-libev/src/libsodium/libsodium.sln create mode 100644 shadowsocksr-libev/src/libsodium/libsodium.vcxproj create mode 100644 shadowsocksr-libev/src/libsodium/libsodium.vcxproj.filters create mode 100644 shadowsocksr-libev/src/libsodium/logo.png create mode 100644 shadowsocksr-libev/src/libsodium/m4/ax_check_compile_flag.m4 create mode 100644 shadowsocksr-libev/src/libsodium/m4/ax_check_define.m4 create mode 100644 shadowsocksr-libev/src/libsodium/m4/ax_check_gnu_make.m4 create mode 100644 shadowsocksr-libev/src/libsodium/m4/ax_check_link_flag.m4 create mode 100644 shadowsocksr-libev/src/libsodium/m4/ld-output-def.m4 create mode 100644 shadowsocksr-libev/src/libsodium/m4/pkg.m4 create mode 100644 shadowsocksr-libev/src/libsodium/packaging/nuget/.gitignore create mode 100644 shadowsocksr-libev/src/libsodium/packaging/nuget/package.bat create mode 100644 shadowsocksr-libev/src/libsodium/packaging/nuget/package.config create mode 100644 shadowsocksr-libev/src/libsodium/packaging/nuget/package.gsl create mode 100644 shadowsocksr-libev/src/libsodium/src/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/src/Makefile.in create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/Makefile.in create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_aead/chacha20poly1305/sodium/aead_chacha20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/crypto_auth.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha256/auth_hmacsha256_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/hmac_hmacsha256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha256/cp/verify_hmacsha256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512/auth_hmacsha512_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/hmac_hmacsha512.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512/cp/verify_hmacsha512.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512256/auth_hmacsha512256_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/hmac_hmacsha512256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_auth/hmacsha512256/cp/verify_hmacsha512256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/crypto_box.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/crypto_box_easy.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/crypto_box_seal.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/box_curve25519xsalsa20poly1305_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/after_curve25519xsalsa20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/before_curve25519xsalsa20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/keypair_curve25519xsalsa20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/hsalsa20/core_hsalsa20_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/hsalsa20/ref2/core_hsalsa20.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa20/core_salsa20_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa20/ref/core_salsa20.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa2012/core_salsa2012_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa2012/ref/core_salsa2012.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa208/core_salsa208_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_core/salsa208/ref/core_salsa208.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/generichash_blake2_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2-impl.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ref.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-sse41.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-compress-ssse3.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse2.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-load-sse41.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-ref.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/blake2b-round.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/blake2/ref/generichash_blake2b.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_generichash/crypto_generichash.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_hash/crypto_hash.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_hash/sha256/cp/hash_sha256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_hash/sha256/hash_sha256_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_hash/sha512/cp/hash_sha512.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_hash/sha512/hash_sha512_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/crypto_onetimeauth.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna32.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/donna/poly1305_donna64.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/onetimeauth_poly1305.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_onetimeauth/poly1305/sse2/poly1305_sse2.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/nosse/pwhash_scryptsalsa208sha256_nosse.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pbkdf2-sha256.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/pwhash_scryptsalsa208sha256.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/scrypt_platform.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sse/pwhash_scryptsalsa208sha256_sse.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_pwhash/scryptsalsa208sha256/sysendian.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/crypto_scalarmult.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/donna_c64/curve25519_donna_c64.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/curve25519_ref10.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_0_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_1_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_add_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_copy_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_cswap_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_frombytes_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_invert_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_mul121666_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_mul_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_sq_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_sub_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/fe_tobytes_curve25519_ref10.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/montgomery.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/ref10/pow225521.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/consts_namespace.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/curve25519_sandy2x.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_invert.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_mul.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_namespace.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_nsquare.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe51_pack.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/fe_frombytes_sandy2x.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_base_namespace.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/ladder_namespace.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/sandy2x/sandy2x.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_scalarmult/curve25519/scalarmult_curve25519.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_secretbox/crypto_secretbox_easy.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/ref/box_xsalsa20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_secretbox/xsalsa20poly1305/secretbox_xsalsa20poly1305_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_shorthash/crypto_shorthash.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_shorthash/siphash24/ref/shorthash_siphash24.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_shorthash/siphash24/shorthash_siphash24_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/crypto_sign.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/description create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/base.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/base2.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/d.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/d2.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_0.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_1.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_add.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_cmov.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_copy.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_frombytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_invert.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_isnegative.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_isnonzero.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_mul.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_neg.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_pow22523.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_sq.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_sq2.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_sub.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/fe_tobytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_add.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_add.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_double_scalarmult.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_frombytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_madd.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_madd.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_msub.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_msub.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p1p1_to_p2.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p1p1_to_p3.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p2_0.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p2_dbl.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p2_dbl.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p3_0.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p3_dbl.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p3_to_cached.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p3_to_p2.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_p3_tobytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_precomp_0.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_scalarmult_base.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_sub.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_sub.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/ge_tobytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/keypair.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/obsolete.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/open.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/pow22523.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/pow225521.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sc.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sc_muladd.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sc_reduce.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sign.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/ref10/sqrtm1.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_sign/ed25519/sign_ed25519_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/afternm_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/beforenm_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/common_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/consts_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/int128_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/stream_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/types.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/portable/xor_afternm_aes128ctr.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/aes128ctr/stream_aes128ctr_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/ref/stream_chacha20_ref.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/stream_chacha20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/chacha20/vec/stream_chacha20_vec.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/crypto_stream.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa20/amd64_xmm6/stream_salsa20_amd64_xmm6.S create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa20/ref/stream_salsa20_ref.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa20/ref/xor_salsa20_ref.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa20/stream_salsa20_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa2012/ref/stream_salsa2012.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa2012/ref/xor_salsa2012.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa2012/stream_salsa2012_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa208/ref/stream_salsa208.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa208/ref/xor_salsa208.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/salsa208/stream_salsa208_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/stream_xsalsa20.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/xsalsa20/ref/xor_xsalsa20.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_stream/xsalsa20/stream_xsalsa20_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/16/ref/verify_16.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/16/verify_16_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/32/ref/verify_32.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/32/verify_32_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/64/ref/verify_64.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/crypto_verify/64/verify_64_api.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/Makefile.in create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/core.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_aead_aes256gcm.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_aead_chacha20poly1305.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_auth.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha256.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_auth_hmacsha512256.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_box.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_box_curve25519xsalsa20poly1305.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_core_hsalsa20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_core_salsa20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_core_salsa2012.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_core_salsa208.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_generichash.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_generichash_blake2b.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_hash.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_hash_sha256.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_hash_sha512.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_int32.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_int64.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_onetimeauth.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_onetimeauth_poly1305.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_pwhash_scryptsalsa208sha256.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_scalarmult.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_scalarmult_curve25519.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_secretbox.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_secretbox_xsalsa20poly1305.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_shorthash.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_shorthash_siphash24.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_sign.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_sign_ed25519.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_sign_edwards25519sha512batch.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_aes128ctr.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_chacha20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_salsa20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_salsa2012.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_salsa208.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_stream_xsalsa20.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_uint16.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_uint32.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_uint64.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_uint8.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_verify_16.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_verify_32.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/crypto_verify_64.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/export.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/randombytes.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/randombytes_nativeclient.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/randombytes_salsa20_random.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/randombytes_sysrandom.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/runtime.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/utils.h create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/include/sodium/version.h.in create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/randombytes/nativeclient/randombytes_nativeclient.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/randombytes/randombytes.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/randombytes/salsa20/randombytes_salsa20_random.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/sodium/core.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/sodium/runtime.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/sodium/utils.c create mode 100644 shadowsocksr-libev/src/libsodium/src/libsodium/sodium/version.c create mode 100644 shadowsocksr-libev/src/libsodium/test/HAVE_AMD64_ASM.c create mode 100644 shadowsocksr-libev/src/libsodium/test/HAVE_CPUID.c create mode 100644 shadowsocksr-libev/src/libsodium/test/HAVE_TI_MODE.c create mode 100644 shadowsocksr-libev/src/libsodium/test/HAVE_WEAK_SYMBOLS.c create mode 100644 shadowsocksr-libev/src/libsodium/test/IS_STDC_LIMIT_MACROS_NEEDED.c create mode 100644 shadowsocksr-libev/src/libsodium/test/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/test/default/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libsodium/test/default/Makefile.am create mode 100644 shadowsocksr-libev/src/libsodium/test/default/aead_chacha20poly1305.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth5.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth6.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/auth7.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box7.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box8.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box_easy.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box_easy2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box_seal.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/box_seed.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/chacha20.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/cmptest.h create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core1.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core4.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core5.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/core6.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/ed25519_convert.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/generichash.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/generichash2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/generichash3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/hash.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/hash3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/onetimeauth.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/onetimeauth2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/onetimeauth7.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/pre.js.inc create mode 100644 shadowsocksr-libev/src/libsodium/test/default/pwhash.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/pwhash_scrypt_ll.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/randombytes.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/scalarmult.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/scalarmult2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/scalarmult5.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/scalarmult6.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/scalarmult7.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox7.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox8.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox_easy.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/secretbox_easy2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/shorthash.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sign.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sodium_core.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sodium_utils.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sodium_utils2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sodium_utils3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/sodium_version.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/stream.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/stream2.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/stream3.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/stream4.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/verify1.c create mode 100644 shadowsocksr-libev/src/libsodium/test/default/wintest.bat create mode 100644 shadowsocksr-libev/src/libsodium/test/quirks/quirks.h create mode 100644 shadowsocksr-libev/src/libudns/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/libudns/COPYING.LGPL create mode 100644 shadowsocksr-libev/src/libudns/Makefile.am create mode 100644 shadowsocksr-libev/src/libudns/Makefile.in create mode 100644 shadowsocksr-libev/src/libudns/NEWS create mode 100644 shadowsocksr-libev/src/libudns/NOTES create mode 100644 shadowsocksr-libev/src/libudns/TODO create mode 100644 shadowsocksr-libev/src/libudns/dnsget.1 create mode 100644 shadowsocksr-libev/src/libudns/dnsget.c create mode 100644 shadowsocksr-libev/src/libudns/ex-rdns.c create mode 100644 shadowsocksr-libev/src/libudns/getopt.c create mode 100644 shadowsocksr-libev/src/libudns/inet_XtoX.c create mode 100644 shadowsocksr-libev/src/libudns/rblcheck.1 create mode 100644 shadowsocksr-libev/src/libudns/rblcheck.c create mode 100644 shadowsocksr-libev/src/libudns/udns.3 create mode 100644 shadowsocksr-libev/src/libudns/udns.h create mode 100644 shadowsocksr-libev/src/libudns/udns_XtoX.c create mode 100644 shadowsocksr-libev/src/libudns/udns_bl.c create mode 100644 shadowsocksr-libev/src/libudns/udns_codes.c create mode 100644 shadowsocksr-libev/src/libudns/udns_dn.c create mode 100644 shadowsocksr-libev/src/libudns/udns_dntosp.c create mode 100644 shadowsocksr-libev/src/libudns/udns_init.c create mode 100644 shadowsocksr-libev/src/libudns/udns_jran.c create mode 100644 shadowsocksr-libev/src/libudns/udns_misc.c create mode 100644 shadowsocksr-libev/src/libudns/udns_parse.c create mode 100644 shadowsocksr-libev/src/libudns/udns_resolver.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_a.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_mx.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_naptr.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_ptr.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_srv.c create mode 100644 shadowsocksr-libev/src/libudns/udns_rr_txt.c create mode 100644 shadowsocksr-libev/src/m4/ax_pthread.m4 create mode 100644 shadowsocksr-libev/src/m4/ax_tls.m4 create mode 100644 shadowsocksr-libev/src/m4/inet_ntop.m4 create mode 100644 shadowsocksr-libev/src/m4/libtool.m4 create mode 100644 shadowsocksr-libev/src/m4/ltoptions.m4 create mode 100644 shadowsocksr-libev/src/m4/ltsugar.m4 create mode 100644 shadowsocksr-libev/src/m4/ltversion.m4 create mode 100644 shadowsocksr-libev/src/m4/lt~obsolete.m4 create mode 100644 shadowsocksr-libev/src/m4/mbedtls.m4 create mode 100644 shadowsocksr-libev/src/m4/openssl.m4 create mode 100644 shadowsocksr-libev/src/m4/pcre.m4 create mode 100644 shadowsocksr-libev/src/m4/polarssl.m4 create mode 100644 shadowsocksr-libev/src/m4/stack-protector.m4 create mode 100644 shadowsocksr-libev/src/m4/zlib.m4 create mode 100644 shadowsocksr-libev/src/rpm/SOURCES/etc/init.d/shadowsocks-libev create mode 100644 shadowsocksr-libev/src/rpm/SPECS/shadowsocks-libev.spec.in create mode 100755 shadowsocksr-libev/src/rpm/genrpm.sh create mode 100644 shadowsocksr-libev/src/shadowsocks-libev.pc.in create mode 100644 shadowsocksr-libev/src/src/CMakeLists.txt create mode 100644 shadowsocksr-libev/src/src/Makefile.am create mode 100644 shadowsocksr-libev/src/src/Makefile.in create mode 100644 shadowsocksr-libev/src/src/acl.c create mode 100644 shadowsocksr-libev/src/src/acl.h create mode 100644 shadowsocksr-libev/src/src/android.c create mode 100644 shadowsocksr-libev/src/src/cache.c create mode 100644 shadowsocksr-libev/src/src/cache.h create mode 100644 shadowsocksr-libev/src/src/common.h create mode 100644 shadowsocksr-libev/src/src/encrypt.c create mode 100644 shadowsocksr-libev/src/src/encrypt.h create mode 100644 shadowsocksr-libev/src/src/http.c create mode 100644 shadowsocksr-libev/src/src/http.h create mode 100644 shadowsocksr-libev/src/src/includeobfs.h create mode 100644 shadowsocksr-libev/src/src/jconf.c create mode 100644 shadowsocksr-libev/src/src/jconf.h create mode 100644 shadowsocksr-libev/src/src/json.c create mode 100644 shadowsocksr-libev/src/src/json.h create mode 100644 shadowsocksr-libev/src/src/local.c create mode 100644 shadowsocksr-libev/src/src/local.h create mode 100644 shadowsocksr-libev/src/src/manager.c create mode 100644 shadowsocksr-libev/src/src/manager.h create mode 100644 shadowsocksr-libev/src/src/netutils.c create mode 100644 shadowsocksr-libev/src/src/netutils.h create mode 100644 shadowsocksr-libev/src/src/obfs/auth.c create mode 100644 shadowsocksr-libev/src/src/obfs/auth.h create mode 100644 shadowsocksr-libev/src/src/obfs/auth_chain.c create mode 100644 shadowsocksr-libev/src/src/obfs/auth_chain.h create mode 100644 shadowsocksr-libev/src/src/obfs/base64.c create mode 100644 shadowsocksr-libev/src/src/obfs/base64.h create mode 100644 shadowsocksr-libev/src/src/obfs/crc32.c create mode 100644 shadowsocksr-libev/src/src/obfs/crc32.h create mode 100644 shadowsocksr-libev/src/src/obfs/http_simple.c create mode 100644 shadowsocksr-libev/src/src/obfs/http_simple.h create mode 100644 shadowsocksr-libev/src/src/obfs/obfs.c create mode 100644 shadowsocksr-libev/src/src/obfs/obfs.h create mode 100644 shadowsocksr-libev/src/src/obfs/obfsutil.c create mode 100644 shadowsocksr-libev/src/src/obfs/obfsutil.h create mode 100644 shadowsocksr-libev/src/src/obfs/tls1.2_ticket.c create mode 100644 shadowsocksr-libev/src/src/obfs/tls1.2_ticket.h create mode 100644 shadowsocksr-libev/src/src/obfs/verify.c create mode 100644 shadowsocksr-libev/src/src/obfs/verify.h create mode 100644 shadowsocksr-libev/src/src/protocol.h create mode 100644 shadowsocksr-libev/src/src/redir.c create mode 100644 shadowsocksr-libev/src/src/redir.h create mode 100644 shadowsocksr-libev/src/src/resolv.c create mode 100644 shadowsocksr-libev/src/src/resolv.h create mode 100644 shadowsocksr-libev/src/src/rule.c create mode 100644 shadowsocksr-libev/src/src/rule.h create mode 100644 shadowsocksr-libev/src/src/server.c create mode 100644 shadowsocksr-libev/src/src/server.h create mode 100644 shadowsocksr-libev/src/src/shadowsocks.h create mode 100644 shadowsocksr-libev/src/src/socks5.h create mode 100755 shadowsocksr-libev/src/src/ss-nat create mode 100644 shadowsocksr-libev/src/src/ssrlink.py create mode 100644 shadowsocksr-libev/src/src/tls.c create mode 100644 shadowsocksr-libev/src/src/tls.h create mode 100644 shadowsocksr-libev/src/src/tunnel.c create mode 100644 shadowsocksr-libev/src/src/tunnel.h create mode 100644 shadowsocksr-libev/src/src/udprelay.c create mode 100644 shadowsocksr-libev/src/src/udprelay.h create mode 100644 shadowsocksr-libev/src/src/uthash.h create mode 100644 shadowsocksr-libev/src/src/utils.c create mode 100644 shadowsocksr-libev/src/src/utils.h create mode 100644 shadowsocksr-libev/src/src/win32.c create mode 100644 shadowsocksr-libev/src/src/win32.h diff --git a/shadowsocksr-libev/Makefile b/shadowsocksr-libev/Makefile index 3425c844d6e..27be1a3c44e 100644 --- a/shadowsocksr-libev/Makefile +++ b/shadowsocksr-libev/Makefile @@ -8,13 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=shadowsocksr-libev PKG_VERSION:=2.5.6 -PKG_RELEASE:=11 - -PKG_SOURCE_PROTO:=git -PKG_SOURCE_URL:=https://github.com/shadowsocksrr/shadowsocksr-libev -PKG_SOURCE_DATE:=2018-03-07 -PKG_SOURCE_VERSION:=d63ff863800a5645aca4309d5dd5962bd1e95543 -PKG_MIRROR_HASH:=146fa4511a52da2aaa1e11ea0294cfb450e62643156c5da3b10e037ef43961f6 +PKG_RELEASE:=12 PKG_LICENSE:=GPL-3.0 PKG_LICENSE_FILES:=LICENSE diff --git a/shadowsocksr-libev/patches/0001-Add-ss-server-and-ss-check.patch b/shadowsocksr-libev/patches/0001-Add-ss-server-and-ss-check.patch index 290ede54031..d2a2c769175 100644 --- a/shadowsocksr-libev/patches/0001-Add-ss-server-and-ss-check.patch +++ b/shadowsocksr-libev/patches/0001-Add-ss-server-and-ss-check.patch @@ -1,13 +1,3 @@ ---- a/.gitignore -+++ b/.gitignore -@@ -2,6 +2,7 @@ build/ - .deps/ - /Makefile - src/Makefile -+server/Makefile - libev/Makefile - libudns/Makefile - libcork/Makefile --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ diff --git a/shadowsocksr-libev/src/AUTHORS b/shadowsocksr-libev/src/AUTHORS new file mode 100644 index 00000000000..b63b5f139d6 --- /dev/null +++ b/shadowsocksr-libev/src/AUTHORS @@ -0,0 +1,9 @@ +Shadowsocks-libev was originally created in late 2013, by +Clowwindy , then rewritten and maintained by +Max Lv . + +Here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS -- +people who have submitted patches, fixed bugs, added translations, and +generally made shadowsocks-libev that much better: + +https://github.com/shadowsocks/shadowsocks-libev/graphs/contributors diff --git a/shadowsocksr-libev/src/CMakeLists.txt b/shadowsocksr-libev/src/CMakeLists.txt new file mode 100644 index 00000000000..fef83872dbf --- /dev/null +++ b/shadowsocksr-libev/src/CMakeLists.txt @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# ---------------------------------------------------------------------- +# Copyright © 2011-2015, RedJack, LLC. +# All rights reserved. +# +# Please see the COPYING file in this distribution for license details. +# ---------------------------------------------------------------------- + +set(CMAKE_LEGACY_CYGWIN_WIN32 0) + +cmake_minimum_required(VERSION 2.6) +set(PROJECT_NAME shadowsocks-libev) +set(RELEASE_DATE 2015-09-03) +project(${PROJECT_NAME}) + +set(VERSION 2.5.6) + + +set(with_crypto_library "openssl" CACHE STRING "build with the given crypto library, TYPE=openssl|polarssl|mbedtls default=openssl") + + + +include ( cmake/dist.cmake ) +include ( configure ) + +configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h ) + +add_subdirectory(libsodium) +add_subdirectory(libcork) +add_subdirectory(libipset) +add_subdirectory(libev) + + +include_directories( ${CMAKE_CURRENT_BINARY_DIR} ) + +add_subdirectory(libudns) +add_subdirectory(src) diff --git a/shadowsocksr-libev/src/COPYING b/shadowsocksr-libev/src/COPYING new file mode 100644 index 00000000000..7660015dad6 --- /dev/null +++ b/shadowsocksr-libev/src/COPYING @@ -0,0 +1,12 @@ +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/shadowsocksr-libev/src/Changes b/shadowsocksr-libev/src/Changes new file mode 100644 index 00000000000..7a4e4489188 --- /dev/null +++ b/shadowsocksr-libev/src/Changes @@ -0,0 +1,399 @@ +shadowsocks-libev (2.5.6-1) unstable; urgency=medium + + * Add outbound ACL for server. + * Refine log format. + + -- Max Lv Tue, 01 Nov 2016 09:51:52 +0800 + +shadowsocks-libev (2.5.5-1) unstable; urgency=medium + + * Refine attack detection. + + -- Max Lv Tue, 11 Oct 2016 15:45:09 +0800 + +shadowsocks-libev (2.5.4-1) unstable; urgency=medium + + * Fix a bug of auto blocking mechanism. + + -- Max Lv Sun, 09 Oct 2016 19:36:37 +0800 + +shadowsocks-libev (2.5.3-1) unstable; urgency=medium + + * Fix TCP Fast Open on macOS. + + -- Max Lv Wed, 21 Sep 2016 19:31:57 +0800 + +shadowsocks-libev (2.5.2-1) unstable; urgency=medium + + * Fix a bug of UDP relay mode of ss-local. + + -- Max Lv Mon, 12 Sep 2016 12:54:33 +0800 + +shadowsocks-libev (2.5.1-1) unstable; urgency=medium + + * Refine ACL feature with hostname support. + * Add HTTP/SNI parser for ss-local/ss-redir. + + -- Max Lv Sat, 10 Sep 2016 17:06:49 +0800 + +shadowsocks-libev (2.5.0-1) unstable; urgency=medium + + * Fix several bugs of the command line interface. + * Add aes-128/192/256-ctr ciphers. + * Add option MTU for UDP relay. + * Add MultiPath TCP support. + + -- Max Lv Mon, 29 Aug 2016 13:07:51 +0800 + +shadowsocks-libev (2.4.8-1) unstable; urgency=low + + * Update manual pages with asciidoc. + * Fix issues of bind_address option. + + -- Max Lv Wed, 20 Jul 2016 09:25:50 +0800 + +shadowsocks-libev (2.4.7-1) unstable; urgency=low + + * Add ss-nat, a helper script to set up NAT rules for ss-redir. + * Fix several issues for debian package. + + -- Max Lv Wed, 1 Jun 2016 18:21:45 +0800 + +shadowsocks-libev (2.4.6-1) unstable; urgency=low + + * Update manual pages. + + -- Max Lv Thu, 21 Apr 2016 17:33:34 +0800 + +shadowsocks-libev (2.4.5-1) unstable; urgency=low + + * Fix build issues on OpenWRT. + * Reduce the latency of redir mode. + + -- Max Lv Mon, 01 Feb 2016 13:22:50 +0800 + +shadowsocks-libev (2.4.4-1) unstable; urgency=low + + * Fix a potential memory leak. + * Fix some compiler related issues. + + -- Max Lv Wed, 13 Jan 2016 11:50:12 +0800 + +shadowsocks-libev (2.4.3-1) unstable; urgency=high + + * Refine the buffer allocation. + + -- Max Lv Sat, 19 Dec 2015 12:30:21 +0900 + +shadowsocks-libev (2.4.1-1) unstable; urgency=high + + * Fix a security bug. + + -- Max Lv Thu, 29 Oct 2015 15:42:47 +0900 + +shadowsocks-libev (2.4.0-1) unstable; urgency=low + + * Update the one-time authentication + + -- Max Lv Thu, 24 Sep 2015 14:11:05 +0900 + +shadowsocks-libev (2.3.3-1) unstable; urgency=low + + * Refine the onetime authentication of header. + * Enforce CRC16 on the payload. + + -- Max Lv Fri, 18 Sep 2015 10:38:21 +0900 + +shadowsocks-libev (2.3.2-1) unstable; urgency=low + + * Fix minor issues of build scripts. + + -- Max Lv Sun, 13 Sep 2015 15:22:28 +0900 + +shadowsocks-libev (2.3.1-1) unstable; urgency=low + + * Fix an issue of connection cache of UDP relay. + * Add support of onetime authentication for header verification. + + -- Max Lv Fri, 04 Sep 2015 07:54:02 +0900 + +shadowsocks-libev (2.3.0-1) unstable; urgency=low + + * Add manager mode to support multi-user and traffic stat. + * Fix a build issue on OS X El Capitan. + + -- Max Lv Thu, 30 Jul 2015 17:30:43 +0900 + +shadowsocks-libev (2.2.3-1) unstable; urgency=high + + * Fix the multiple UDP source port issue. + * Allow working in UDP only mode. + + -- Max Lv Sat, 11 Jul 2015 08:31:02 +0900 + +shadowsocks-libev (2.2.2-1) unstable; urgency=low + + * Fix the timer of UDP relay. + * Check name_len in the header. + + -- Max Lv Mon, 15 Jun 2015 10:26:40 +0900 + +shadowsocks-libev (2.2.1-1) unstable; urgency=low + + * Fix an issue of UDP relay. + + -- Max Lv Sun, 10 May 2015 21:23:44 +0900 + +shadowsocks-libev (2.2.0-1) unstable; urgency=low + + * Add TPROXY support in redir mode. + + -- Max Lv Mon, 04 May 2015 02:44:17 -0300 + +shadowsocks-libev (2.1.4-1) unstable; urgency=low + + * Fix a bug of server mode ACL. + + -- Max Lv Sun, 08 Feb 2015 20:24:43 +0900 + +shadowsocks-libev (2.1.3-1) unstable; urgency=low + + * Add ACL support to remote server. + + -- Max Lv Sun, 08 Feb 2015 10:59:44 +0900 + +shadowsocks-libev (2.1.2-1) unstable; urgency=low + + * Refine multiple port binding. + + -- Max Lv Sat, 31 Jan 2015 18:56:25 +0900 + +shadowsocks-libev (2.1.1-1) unstable; urgency=low + + * Fix a memory leak. + + -- Max Lv Wed, 21 Jan 2015 21:40:58 +0900 + +shadowsocks-libev (2.1.0-1) unstable; urgency=low + + * Fix a bug of tunnel mode. + + -- Max Lv Mon, 19 Jan 2015 09:59:52 +0900 + +shadowsocks-libev (2.0.8-1) unstable; urgency=low + + * Fix a bug of IPv6. + + -- Max Lv Fri, 16 Jan 2015 10:58:12 +0900 + +shadowsocks-libev (2.0.7-1) unstable; urgency=low + + * Fix some performance issue. + + -- Max Lv Tue, 13 Jan 2015 13:17:58 +0900 + +shadowsocks-libev (2.0.6-1) unstable; urgency=high + + * Fix a critical issue in redir mode. + + -- Max Lv Mon, 12 Jan 2015 21:51:19 +0900 + +shadowsocks-libev (2.0.5-1) unstable; urgency=low + + * Refine local, tunnel, and redir modes. + + -- Max Lv Mon, 12 Jan 2015 12:39:05 +0800 + +shadowsocks-libev (2.0.4-1) unstable; urgency=low + + * Fix building issues with MinGW32. + + -- Max Lv Sun, 11 Jan 2015 13:33:31 +0900 + +shadowsocks-libev (2.0.3-1) unstable; urgency=high + + * Fix some issues. + + -- Max Lv Sat, 10 Jan 2015 16:27:54 +0800 + +shadowsocks-libev (2.0.2-1) unstable; urgency=low + + * Fix issues with MinGW. + + -- Max Lv Sat, 10 Jan 2015 15:17:10 +0800 + +shadowsocks-libev (2.0.1-1) unstable; urgency=low + + * Implement a real asynchronous DNS resolver. + + -- Max Lv Sat, 10 Jan 2015 10:04:28 +0800 + +shadowsocks-libev (1.6.4-1) unstable; urgency=low + + * Update documents. + + -- Max Lv Wed, 07 Jan 2015 21:48:58 +0900 + +shadowsocks-libev (1.6.3-1) unstable; urgency=low + + * Refine ss-redir. + + -- Max Lv Sun, 04 Jan 2015 19:23:52 +0900 + +shadowsocks-libev (1.6.2-1) unstable; urgency=low + + * Fix some build issues. + + -- Max Lv Tue, 30 Dec 2014 10:30:28 +0800 + +shadowsocks-libev (1.6.1-1) unstable; urgency=high + + * Add salsa20 and chacha20 support. + + -- Max Lv Sat, 13 Dec 2014 15:11:34 +0800 + +shadowsocks-libev (1.6.0-1) unstable; urgency=low + + * Solve conflicts with other shadowsocks portings. + + -- Max Lv Mon, 17 Nov 2014 14:10:21 +0800 + +shadowsocks-libev (1.5.3-2) unstable; urgency=low + + * rename as shadowsocks-libev. + + -- Symeon Huang Sat, 15 Nov 2014 14:55:28 +0000 + +shadowsocks (1.5.3-1) unstable; urgency=low + + * Fix log on Win32. + + -- Max Lv Fri, 14 Nov 2014 09:10:06 +0800 + +shadowsocks (1.5.2-1) unstable; urgency=low + + * Handle SIGTERM and SIGKILL nicely. + + -- Max Lv Tue, 12 Nov 2014 13:11:29 +0800 + +shadowsocks (1.5.1-1) unstable; urgency=low + + * Fix a bug of tcp fast open. + + -- Max Lv Sat, 08 Nov 2014 19:45:37 +0900 + +shadowsocks (1.5.0-1) unstable; urgency=low + + * Support to build static or shared library. + * Supprot IPv6 NAT in redirect mode. + * Refine the cache size of UDPRelay. + + -- Max Lv Fri, 07 Nov 2014 09:33:19 +0800 + +shadowsocks (1.4.8-1) unstable; urgency=low + + * Fix a bug of tcp fast open. + + -- Max Lv Wed, 08 Oct 2014 18:02:02 +0800 + +shadowsocks (1.4.7-1) unstable; urgency=low + + * Add a new encryptor rc4-md5. + + -- Max Lv Tue, 09 Sep 2014 07:50:10 +0800 + +shadowsocks (1.4.6-1) unstable; urgency=low + + * Add ACL support. + + -- Max Lv Sat, 03 May 2014 04:37:10 -0400 + +shadowsocks (1.4.5-1) unstable; urgency=high + + * Fix the compatibility issue of udprelay. + * Enhance asyncns to reduce the latency. + * Add TCP_FASTOPEN support. + + -- Max Lv Sun, 20 Apr 2014 08:12:45 +0800 + +shadowsocks (1.4.4-1) unstable; urgency=low + + * Add CommonCrypto support for darwin. + * Fix some config related issues. + + -- Max Lv Wed, 26 Mar 2014 13:29:03 +0800 + +shadowsocks (1.4.3-1) unstable; urgency=low + + * Add tunnel mode with local port forwarding feature. + + -- Max Lv Fri, 21 Feb 2014 11:52:13 +0900 + +shadowsocks (1.4.2-1) unstable; urgency=high + + * Fix the UDP relay issues. + * Add syslog support. + + -- Max Lv Sun, 05 Jan 2014 10:05:29 +0900 + +shadowsocks (1.4.1-1) unstable; urgency=low + + * Add multi-port support. + * Add PolarSSL support by @linusyang. + + -- Max Lv Tue, 12 Nov 2013 03:57:21 +0000 + +shadowsocks (1.4.0-1) unstable; urgency=low + + * Add standard socks5 udp support. + + -- Max Lv Sun, 08 Sep 2013 02:20:40 +0000 + +shadowsocks (1.3.3-1) unstable; urgency=high + + * Provide more info in verbose mode. + + -- Max Lv Fri, 21 Jun 2013 09:59:20 +0800 + +shadowsocks (1.3.2-1) unstable; urgency=high + + * Fix some ciphers by @linusyang. + + -- Max Lv Sun, 09 Jun 2013 09:52:31 +0000 + +shadowsocks (1.3.1-1) unstable; urgency=low + + * Support more cihpers: camellia, idea, rc2 and seed. + + -- Max Lv Tue, 04 Jun 2013 00:56:17 +0000 + +shadowsocks (1.3-1) unstable; urgency=low + + * Able to bind connections to specific interface. + * Support more ciphers: aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb. + + -- Max Lv Thu, 16 May 2013 10:51:15 +0800 + +shadowsocks (1.2-2) unstable; urgency=low + + * Close timeouted TCP connections. + + -- Max Lv Tue, 07 May 2013 14:10:33 +0800 + +shadowsocks (1.2-1) unstable; urgency=low + + * Fix a high load issue. + + -- Max Lv Thu, 18 Apr 2013 10:52:34 +0800 + +shadowsocks (1.1-1) unstable; urgency=low + + * Fix a IPV6 resolve issue. + + -- Max Lv Wed, 10 Apr 2013 12:11:36 +0800 + +shadowsocks (1.0-2) unstable; urgency=low + + * Initial release. + + -- Max Lv Sat, 06 Apr 2013 16:59:15 +0800 diff --git a/shadowsocksr-libev/src/INSTALL b/shadowsocksr-libev/src/INSTALL new file mode 100644 index 00000000000..7d1c323beae --- /dev/null +++ b/shadowsocksr-libev/src/INSTALL @@ -0,0 +1,365 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008, 2009 Free Software Foundation, Inc. + + Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. This file is offered as-is, +without warranty of any kind. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. Some packages provide this +`INSTALL' file but do not implement all of the features documented +below. The lack of an optional feature in a given package is not +necessarily a bug. More recommendations for GNU packages can be found +in *note Makefile Conventions: (standards)Makefile Conventions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + + The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package, generally using the just-built uninstalled binaries. + + 4. Type `make install' to install the programs and any data files and + documentation. When installing into a prefix owned by root, it is + recommended that the package be configured and built as a regular + user, and only the `make install' phase executed with root + privileges. + + 5. Optionally, type `make installcheck' to repeat any self-tests, but + this time using the binaries in their final installed location. + This target does not install anything. Running this target as a + regular user, particularly if the prior `make install' required + root privileges, verifies that the installation completed + correctly. + + 6. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 7. Often, you can also type `make uninstall' to remove the installed + files again. In practice, not all packages have tested that + uninstallation works correctly, even though it is required by the + GNU Coding Standards. + + 8. Some packages, particularly those that use Automake, provide `make + distcheck', which can by used by developers to test that all other + targets like `make install' and `make uninstall' work correctly. + This target is generally not run by end users. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. This +is known as a "VPATH" build. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX', where PREFIX must be an +absolute file name. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. In general, the +default for these options is expressed in terms of `${prefix}', so that +specifying just `--prefix' will affect all of the other directory +specifications that were not explicitly provided. + + The most portable way to affect installation locations is to pass the +correct locations to `configure'; however, many packages provide one or +both of the following shortcuts of passing variable assignments to the +`make install' command line to change installation locations without +having to reconfigure or recompile. + + The first method involves providing an override variable for each +affected directory. For example, `make install +prefix=/alternate/directory' will choose an alternate location for all +directory configuration variables that were expressed in terms of +`${prefix}'. Any directories that were specified during `configure', +but not in terms of `${prefix}', must each be overridden at install +time for the entire installation to be relocated. The approach of +makefile variable overrides for each directory variable is required by +the GNU Coding Standards, and ideally causes no recompilation. +However, some platforms have known limitations with the semantics of +shared libraries that end up requiring recompilation when using this +method, particularly noticeable in packages that use GNU Libtool. + + The second method involves providing the `DESTDIR' variable. For +example, `make install DESTDIR=/alternate/directory' will prepend +`/alternate/directory' before all installation names. The approach of +`DESTDIR' overrides is not required by the GNU Coding Standards, and +does not work on platforms that have drive letters. On the other hand, +it does better at avoiding recompilation issues, and works well even +when some directory options were not specified in terms of `${prefix}' +at `configure' time. + +Optional Features +================= + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + + Some packages offer the ability to configure how verbose the +execution of `make' will be. For these packages, running `./configure +--enable-silent-rules' sets the default to minimal output, which can be +overridden with `make V=1'; while running `./configure +--disable-silent-rules' sets the default to verbose, which can be +overridden with `make V=0'. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae -D_XOPEN_SOURCE=500" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + + On Solaris, don't put `/usr/ucb' early in your `PATH'. This +directory contains several dysfunctional programs; working variants of +these programs are available in `/usr/bin'. So, if you need `/usr/ucb' +in your `PATH', put it _after_ `/usr/bin'. + + On Haiku, software installed for all users goes in `/boot/common', +not `/usr/local'. It is recommended to use the following options: + + ./configure --prefix=/boot/common + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS + KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/shadowsocksr-libev/src/LICENSE b/shadowsocksr-libev/src/LICENSE new file mode 100644 index 00000000000..733c072369c --- /dev/null +++ b/shadowsocksr-libev/src/LICENSE @@ -0,0 +1,675 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. + diff --git a/shadowsocksr-libev/src/Makefile.am b/shadowsocksr-libev/src/Makefile.am new file mode 100644 index 00000000000..690af437578 --- /dev/null +++ b/shadowsocksr-libev/src/Makefile.am @@ -0,0 +1,14 @@ +if USE_SYSTEM_SHARED_LIB +SUBDIRS = libcork libipset src +else +SUBDIRS = libsodium libcork libipset libudns libev src +endif + +if ENABLE_DOCUMENTATION +SUBDIRS += doc +endif + +ACLOCAL_AMFLAGS = -I m4 + +pkgconfiglibdir = $(libdir)/pkgconfig +pkgconfiglib_DATA = shadowsocks-libev.pc diff --git a/shadowsocksr-libev/src/Makefile.in b/shadowsocksr-libev/src/Makefile.in new file mode 100644 index 00000000000..4cb3debbe74 --- /dev/null +++ b/shadowsocksr-libev/src/Makefile.in @@ -0,0 +1,898 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@ENABLE_DOCUMENTATION_TRUE@am__append_1 = doc +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/inet_ntop.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/mbedtls.m4 \ + $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre.m4 \ + $(top_srcdir)/m4/polarssl.m4 \ + $(top_srcdir)/m4/stack-protector.m4 $(top_srcdir)/m4/zlib.m4 \ + $(top_srcdir)/libev/libev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = shadowsocks-libev.pc +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgconfiglibdir)" +DATA = $(pkgconfiglib_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \ + $(LISP)config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +CSCOPE = cscope +DIST_SUBDIRS = libsodium libcork libipset libudns libev src doc +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/shadowsocks-libev.pc.in $(top_srcdir)/auto/ar-lib \ + $(top_srcdir)/auto/compile $(top_srcdir)/auto/config.guess \ + $(top_srcdir)/auto/config.sub $(top_srcdir)/auto/install-sh \ + $(top_srcdir)/auto/ltmain.sh $(top_srcdir)/auto/missing \ + AUTHORS COPYING INSTALL auto/ar-lib auto/compile \ + auto/config.guess auto/config.rpath auto/config.sub \ + auto/depcomp auto/install-sh auto/ltmain.sh auto/missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ASCIIDOC = @ASCIIDOC@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GZIP = @GZIP@ +INET_NTOP_LIB = @INET_NTOP_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPCRE = @LIBPCRE@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CONFIG = @PCRE_CONFIG@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XMLTO = @XMLTO@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcre_pcreh = @pcre_pcreh@ +pcreh = @pcreh@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@USE_SYSTEM_SHARED_LIB_FALSE@SUBDIRS = libsodium libcork libipset \ +@USE_SYSTEM_SHARED_LIB_FALSE@ libudns libev src $(am__append_1) +@USE_SYSTEM_SHARED_LIB_TRUE@SUBDIRS = libcork libipset src \ +@USE_SYSTEM_SHARED_LIB_TRUE@ $(am__append_1) +ACLOCAL_AMFLAGS = -I m4 +pkgconfiglibdir = $(libdir)/pkgconfig +pkgconfiglib_DATA = shadowsocks-libev.pc +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +shadowsocks-libev.pc: $(top_builddir)/config.status $(srcdir)/shadowsocks-libev.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-pkgconfiglibDATA: $(pkgconfiglib_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfiglib_DATA)'; test -n "$(pkgconfiglibdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfiglibdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfiglibdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfiglibdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfiglibdir)" || exit $$?; \ + done + +uninstall-pkgconfiglibDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfiglib_DATA)'; test -n "$(pkgconfiglibdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfiglibdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgconfiglibdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgconfiglibDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgconfiglibDATA + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \ + dist-xz dist-zip distcheck distclean distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distcleancheck \ + distdir distuninstallcheck dvi dvi-am html html-am info \ + info-am install install-am install-data install-data-am \ + install-dvi install-dvi-am install-exec install-exec-am \ + install-html install-html-am install-info install-info-am \ + install-man install-pdf install-pdf-am \ + install-pkgconfiglibDATA install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am \ + uninstall-pkgconfiglibDATA + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/shadowsocksr-libev/src/README.md b/shadowsocksr-libev/src/README.md new file mode 100644 index 00000000000..ea69e716613 --- /dev/null +++ b/shadowsocksr-libev/src/README.md @@ -0,0 +1,486 @@ +# shadowsocks-libev + +## Intro + +[Shadowsocks-libev](http://shadowsocks.org) is a lightweight secured SOCKS5 +proxy for embedded devices and low-end boxes. + +It is a port of [Shadowsocks](https://github.com/shadowsocks/shadowsocks) +created by [@clowwindy](https://github.com/clowwindy), which is maintained by +[@madeye](https://github.com/madeye) and [@linusyang](https://github.com/linusyang). + +Current version: 2.5.6 | [Changelog](debian/changelog) + +Travis CI: [![Travis CI](https://travis-ci.org/shadowsocks/shadowsocks-libev.svg?branch=master)](https://travis-ci.org/shadowsocks/shadowsocks-libev) + +## Features + +Shadowsocks-libev is written in pure C and only depends on +[libev](http://software.schmorp.de/pkg/libev.html) and +[OpenSSL](http://www.openssl.org/) or [mbedTLS](https://tls.mbed.org/) or [PolarSSL](https://polarssl.org/). + +In normal usage, the memory footprint is about 600KB and the CPU utilization is +no more than 5% on a low-end router (Buffalo WHR-G300N V2 with a 400MHz MIPS CPU, +32MB memory and 4MB flash). + +For a full list of feature comparison between different versions of shadowsocks, +refer to the [Wiki page](https://github.com/shadowsocks/shadowsocks/wiki/Feature-Comparison-across-Different-Versions). + +## Installation + +### Distribution-specific guide + +- [Debian & Ubuntu](#debian--ubuntu) + + [Install from repository](#install-from-repository) + + [Build deb package from source](#build-deb-package-from-source) + + [Configure and start the service](#configure-and-start-the-service) +- [Fedora & RHEL](#fedora--rhel) + + [Install from repository](#install-from-repository-1) +- [OpenSUSE](#opensuse) + + [Install from repository](#install-from-repository-2) + + [Build from source](#build-from-source) +- [Archlinux](#archlinux) +- [NixOS](#nixos) +- [Nix](#nix) +- [Directly build and install on UNIX-like system](#linux) +- [FreeBSD](#freebsd) +- [OpenWRT](#openwrt) +- [OS X](#os-x) +- [Windows](#windows) + +* * * + +### Pre-build configure guide + +For a complete list of avaliable configure-time option, +try `configure --help`. + +#### Using alternative crypto library + +There are three crypto libraries available: + +- OpenSSL (**default**) +- mbedTLS +- PolarSSL (Deprecated) + +##### mbedTLS +To build against mbedTLS, specify `--with-crypto-library=mbedtls` +and `--with-mbedtls=/path/to/mbedtls` when running `./configure`. + +Windows users will need extra work when compiling mbedTLS library, +see [this issue](https://github.com/shadowsocks/shadowsocks-libev/issues/422) for detail info. + +##### PolarSSL (Deprecated) + +To build against PolarSSL, specify `--with-crypto-library=polarssl` +and `--with-polarssl=/path/to/polarssl` when running `./configure`. + +* PolarSSL __1.2.5 or newer__ is required. Currently, PolarSSL does __NOT__ support +CAST5-CFB, DES-CFB, IDEA-CFB, RC2-CFB and SEED-CFB. +* RC4 is only support by PolarSSL __1.3.0 or above__. + +#### Using shared library from system + +Please specify `--enable-system-shared-lib`. This will replace the bundled +`libev`, `libsodium` and `libudns` with the corresponding libraries installed +in the system during compilation and linking. + +### Debian & Ubuntu + +#### Install from repository + +**Note: The repositories doesn't always contain the latest version. Please build from source if you want the latest version (see below)** + +Shadowsocks-libev is available in the official repository for Debian 9("Stretch"), unstable, Ubuntu 16.10 and later derivatives: + +```bash +sudo apt update +sudo apt install shadowsocks-libev +``` + +For Debian Jessie users, please install it from `jessie-backports`: + +```bash +sudo sh -c 'printf "deb http://ftp.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list' +sudo apt update +sudo apt -t jessie-backports install shadowsocks-libev +``` + +#### Build deb package from source + +Supported Platforms: + +* Debian 7 (see below), 8, 9, unstable +* Ubuntu 14.04 (see below), Ubuntu 14.10, 15.04, 15.10 or higher + +**Note for Ubuntu 14.04 users**: +Packages built on Ubuntu 14.04 may be used in later Ubuntu versions. However, +packages built on Debian 7/8/9 or Ubuntu 14.10+ **cannot** be installed on +Ubuntu 14.04. + +**Note for Debian 7.x users**: +To build packages on Debian 7 (Wheezy), you need to enable `debian-backports` +to install systemd-compatibility packages like `dh-systemd` or `init-system-helpers`. +Please follow the instructions on [Debian Backports](http://backports.debian.org). + +This also means that you can only install those built packages on systems that have +`init-system-helpers` installed. + +Otherwise, try to build and install directly from source. See the [Linux](#linux) +section below. + +``` bash +cd shadowsocks-libev +sudo apt-get install --no-install-recommends build-essential autoconf libtool libssl-dev \ + gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc xmlto apg libpcre3-dev +dpkg-buildpackage -b -us -uc -i +cd .. +sudo dpkg -i shadowsocks-libev*.deb +``` + +#### Configure and start the service + +``` +# Edit the configuration file +sudo vim /etc/shadowsocks-libev/config.json + +# Edit the default configuration for debian +sudo vim /etc/default/shadowsocks-libev + +# Start the service +sudo /etc/init.d/shadowsocks-libev start # for sysvinit, or +sudo systemctl start shadowsocks-libev # for systemd +``` + +### Fedora & RHEL + +Supported distributions include +- Fedora 22, 23, 24 +- RHEL 6, 7 and derivatives (including CentOS, Scientific Linux) + +#### Install from repository + +Enable repo via `dnf`: + +``` +su -c 'dnf copr enable librehat/shadowsocks' +``` + +Or download yum repo on [Fedora Copr](https://copr.fedoraproject.org/coprs/librehat/shadowsocks/) and put it inside `/etc/yum.repos.d/`. The release `Epel` is for RHEL and its derivatives. + +Then, install `shadowsocks-libev` via `dnf`: + +```bash +su -c 'dnf update' +su -c 'dnf install shadowsocks-libev' +``` + +or `yum`: + +```bash +su -c 'yum update' +su -c 'yum install shadowsocks-libev' +``` +### OpenSUSE + +#### Install from repository +Use the following command to install from repository. + +```bash +sudo zypper install shadowsocks-libev +``` + +#### Build from source +You should install `zlib-devel` and `libopenssl-devel` first. + +```bash +sudo zypper update +sudo zypper install zlib-devel libopenssl-devel +``` + +Then download the source package and compile. + +```bash +git clone https://github.com/shadowsocks/shadowsocks-libev.git +cd shadowsocks-libev +./configure && make +sudo make install +``` + +### Archlinux + +```bash +sudo pacman -S shadowsocks-libev +``` + +Please refer to downstream [PKGBUILD](https://projects.archlinux.org/svntogit/community.git/tree/trunk?h=packages/shadowsocks-libev) +script for extra modifications and distribution-specific bugs. + +### NixOS + +```bash +nix-env -iA nixos.shadowsocks-libev +``` + +### Nix + +```bash +nix-env -iA nixpkgs.shadowsocks-libev +``` + +### Linux + +For Unix-like systems, especially Debian-based systems, +e.g. Ubuntu, Debian or Linux Mint, you can build the binary like this: + +```bash +# Debian / Ubuntu +sudo apt-get install --no-install-recommends build-essential autoconf libtool libssl-dev libpcre3-dev asciidoc xmlto +# CentOS / Fedora / RHEL +sudo yum install gcc autoconf libtool automake make zlib-devel openssl-devel asciidoc xmlto +./configure && make +sudo make install +``` + +### FreeBSD + +```bash +su +cd /usr/ports/net/shadowsocks-libev +make install +``` + +Edit your config.json file. By default, it's located in /usr/local/etc/shadowsocks-libev. + +To enable shadowsocks-libev, add the following rc variable to your /etc/rc.conf file: + +``` +shadowsocks_libev_enable="YES" +``` + +Start the Shadowsocks server: + +```bash +service shadowsocks_libev start +``` + +### OpenWRT + +The OpenWRT project is maintained here: +[openwrt-shadowsocks](https://github.com/shadowsocks/openwrt-shadowsocks). + +### OS X +For OS X, use [Homebrew](http://brew.sh) to install or build. + +Install Homebrew: + +```bash +ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" +``` +Install shadowsocks-libev: + +```bash +brew install shadowsocks-libev +``` + +### Windows + +For Windows, use either MinGW (msys) or Cygwin to build. +At the moment, only `ss-local` is supported to build against MinGW (msys). + +If you are using MinGW (msys), please download OpenSSL or PolarSSL source tarball +to the home directory of msys, and build it like this (may take a few minutes): + +#### OpenSSL + +```bash +tar zxf openssl-1.0.1e.tar.gz +cd openssl-1.0.1e +./config --prefix="$HOME/prebuilt" --openssldir="$HOME/prebuilt/openssl" +make && make install +``` + +#### PolarSSL + +```bash +tar zxf polarssl-1.3.2-gpl.tgz +cd polarssl-1.3.2 +make lib WINDOWS=1 +make install DESTDIR="$HOME/prebuilt" +``` + +Then, build the binary using the commands below, and all `.exe` files +will be built at `$HOME/ss/bin`: + +#### OpenSSL + +```bash +./configure --prefix="$HOME/ss" --with-openssl="$HOME/prebuilt" +make && make install +``` + +#### PolarSSL + +```bash +./configure --prefix="$HOME/ss" --with-crypto-library=polarssl --with-polarssl=$HOME/prebuilt +make && make install +``` + +## Usage + +For a detailed and complete list of all supported arguments, you may refer to the +man pages of the applications, respectively. + +``` + ss-[local|redir|server|tunnel] + + -s host name or ip address of your remote server + + -p port number of your remote server + + -l port number of your local server + + -k password of your remote server + + [-m ] encrypt method: table, rc4, rc4-md5, + aes-128-cfb, aes-192-cfb, aes-256-cfb, + bf-cfb, camellia-128-cfb, camellia-192-cfb, + camellia-256-cfb, cast5-cfb, des-cfb, idea-cfb, + rc2-cfb, seed-cfb, salsa20 ,chacha20 and + chacha20-ietf + + [-f ] the file path to store pid + + [-t ] socket timeout in seconds + + [-c ] the path to config file + + [-i ] network interface to bind, + not available in redir mode + + [-b ] local address to bind, + not available in server mode + + [-u] enable udprelay mode, + TPROXY is required in redir mode + + [-U] enable UDP relay and disable TCP relay, + not available in local mode + + [-A] enable onetime authentication + + [-L :] specify destination server address and port + for local port forwarding, + only available in tunnel mode + + [-d ] setup name servers for internal DNS resolver, + only available in server mode + + [--fast-open] enable TCP fast open, + only available in local and server mode, + with Linux kernel > 3.7.0 + + [--acl ] config file of ACL (Access Control List) + only available in local and server mode + + [--manager-address ] UNIX domain socket address + only available in server and manager mode + + [--executable ] path to the executable of ss-server + only available in manager mode + + [-v] verbose mode + +notes: + + ss-redir provides a transparent proxy function and only works on the + Linux platform with iptables. + +``` + +## Advanced usage + +The latest shadowsocks-libev has provided a *redir* mode. You can configure your Linux-based box or router to proxy all TCP traffic transparently. + + # Create new chain + root@Wrt:~# iptables -t nat -N SHADOWSOCKS + root@Wrt:~# iptables -t mangle -N SHADOWSOCKS + + # Ignore your shadowsocks server's addresses + # It's very IMPORTANT, just be careful. + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 123.123.123.123 -j RETURN + + # Ignore LANs and any other addresses you'd like to bypass the proxy + # See Wikipedia and RFC5735 for full list of reserved networks. + # See ashi009/bestroutetb for a highly optimized CHN route list. + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN + + # Anything else should be redirected to shadowsocks's local port + root@Wrt:~# iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 12345 + + # Add any UDP rules + root@Wrt:~# ip route add local default dev lo table 100 + root@Wrt:~# ip rule add fwmark 1 lookup 100 + root@Wrt:~# iptables -t mangle -A SHADOWSOCKS -p udp --dport 53 -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 + root@Wrt:~# iptables -t mangle -A SHADOWSOCKS_MARK -p udp --dport 53 -j MARK --set-mark 1 + + # Apply the rules + root@Wrt:~# iptables -t nat -A OUTPUT -p tcp -j SHADOWSOCKS + root@Wrt:~# iptables -t mangle -A PREROUTING -j SHADOWSOCKS + root@Wrt:~# iptables -t mangle -A OUTPUT -j SHADOWSOCKS_MARK + + # Start the shadowsocks-redir + root@Wrt:~# ss-redir -u -c /etc/config/shadowsocks.json -f /var/run/shadowsocks.pid + +## Shadowsocks over KCP + +It's quite easy to use shadowsocks and [KCP](https://github.com/skywind3000/kcp) together with [kcptun](https://github.com/xtaci/kcptun). + +The goal of shadowsocks over KCP is to provide a fully configurable, UDP based protocol to improve poor connections, e.g. a high packet loss 3G network. + +### Setup your server + +```bash +server_linux_amd64 -l :21 -t 127.0.0.1:443 --crypt none --mtu 1200 --nocomp --mode normal --dscp 46 & +ss-server -s 0.0.0.0 -p 443 -k passwd -m chacha20 -u +``` + +### Setup your client + +```bash +client_linux_amd64 -l 127.0.0.1:1090 -r :21 --crypt none --mtu 1200 --nocomp --mode normal --dscp 46 & +ss-local -s 127.0.0.1 -p 1090 -k passwd -m chacha20 -l 1080 -b 0.0.0.0 & +ss-local -s -p 443 -k passwd -m chacha20 -l 1080 -U -b 0.0.0.0 +``` + +## Security Tips + +Although shadowsocks-libev can handle thousands of concurrent connections nicely, we still recommend +setting up your server's firewall rules to limit connections from each user: + + # Up to 32 connections are enough for normal usage + iptables -A INPUT -p tcp --syn --dport ${SHADOWSOCKS_PORT} -m connlimit --connlimit-above 32 -j REJECT --reject-with tcp-reset + +## License + +Copyright (C) 2016 Max Lv + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/shadowsocksr-libev/src/acl/chn.acl b/shadowsocksr-libev/src/acl/chn.acl new file mode 100644 index 00000000000..576c3c793fe --- /dev/null +++ b/shadowsocksr-libev/src/acl/chn.acl @@ -0,0 +1,3805 @@ +[proxy_all] + +[bypass_list] +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/24 +1.2.5.0/24 +1.2.6.0/23 +1.2.8.0/24 +1.2.9.0/24 +1.2.10.0/23 +1.2.12.0/22 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/24 +1.4.5.0/24 +1.4.6.0/23 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/15 +1.50.0.0/16 +1.51.0.0/16 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/13 +1.88.0.0/14 +1.92.0.0/15 +1.94.0.0/15 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.112.0.0/18 +27.112.80.0/20 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.128.0.0/10 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/15 +42.50.0.0/16 +42.51.0.0/16 +42.52.0.0/14 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/15 +42.194.0.0/21 +42.194.8.0/22 +42.194.12.0/22 +42.194.16.0/20 +42.194.32.0/19 +42.194.64.0/18 +42.194.128.0/17 +42.195.0.0/16 +42.196.0.0/14 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/17 +42.240.128.0/17 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/15 +49.210.0.0/15 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +54.222.0.0/15 +58.14.0.0/15 +58.16.0.0/16 +58.17.0.0/17 +58.17.128.0/17 +58.18.0.0/16 +58.19.0.0/16 +58.20.0.0/16 +58.21.0.0/16 +58.22.0.0/15 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/13 +58.40.0.0/15 +58.42.0.0/16 +58.43.0.0/16 +58.44.0.0/14 +58.48.0.0/13 +58.56.0.0/15 +58.58.0.0/16 +58.59.0.0/17 +58.59.128.0/17 +58.60.0.0/14 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/17 +58.83.128.0/17 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/15 +58.194.0.0/15 +58.196.0.0/15 +58.198.0.0/15 +58.200.0.0/13 +58.208.0.0/12 +58.240.0.0/15 +58.242.0.0/15 +58.244.0.0/15 +58.246.0.0/15 +58.248.0.0/13 +59.32.0.0/13 +59.40.0.0/15 +59.42.0.0/16 +59.43.0.0/16 +59.44.0.0/14 +59.48.0.0/16 +59.49.0.0/17 +59.49.128.0/17 +59.50.0.0/16 +59.51.0.0/17 +59.51.128.0/17 +59.52.0.0/14 +59.56.0.0/14 +59.60.0.0/15 +59.62.0.0/15 +59.64.0.0/14 +59.68.0.0/14 +59.72.0.0/15 +59.74.0.0/15 +59.76.0.0/16 +59.77.0.0/16 +59.78.0.0/15 +59.80.0.0/14 +59.107.0.0/17 +59.107.128.0/17 +59.108.0.0/15 +59.110.0.0/15 +59.151.0.0/17 +59.155.0.0/16 +59.172.0.0/15 +59.174.0.0/15 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/13 +60.8.0.0/15 +60.10.0.0/16 +60.11.0.0/16 +60.12.0.0/16 +60.13.0.0/18 +60.13.64.0/18 +60.13.128.0/17 +60.14.0.0/15 +60.16.0.0/13 +60.24.0.0/14 +60.28.0.0/15 +60.30.0.0/16 +60.31.0.0/16 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/15 +60.162.0.0/15 +60.164.0.0/15 +60.166.0.0/15 +60.168.0.0/13 +60.176.0.0/12 +60.194.0.0/15 +60.200.0.0/14 +60.204.0.0/16 +60.205.0.0/16 +60.206.0.0/15 +60.208.0.0/13 +60.216.0.0/15 +60.218.0.0/15 +60.220.0.0/14 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/22 +61.4.84.0/22 +61.4.88.0/21 +61.4.176.0/20 +61.8.160.0/20 +61.28.0.0/20 +61.28.16.0/20 +61.28.32.0/19 +61.28.64.0/18 +61.29.128.0/18 +61.29.192.0/19 +61.29.224.0/20 +61.29.240.0/20 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/14 +61.52.0.0/15 +61.54.0.0/16 +61.55.0.0/16 +61.87.192.0/18 +61.128.0.0/15 +61.130.0.0/15 +61.132.0.0/16 +61.133.0.0/17 +61.133.128.0/17 +61.134.0.0/18 +61.134.64.0/19 +61.134.96.0/19 +61.134.128.0/18 +61.134.192.0/18 +61.135.0.0/16 +61.136.0.0/18 +61.136.64.0/18 +61.136.128.0/17 +61.137.0.0/17 +61.137.128.0/17 +61.138.0.0/18 +61.138.64.0/18 +61.138.128.0/18 +61.138.192.0/18 +61.139.0.0/17 +61.139.128.0/18 +61.139.192.0/18 +61.140.0.0/14 +61.144.0.0/14 +61.148.0.0/15 +61.150.0.0/15 +61.152.0.0/16 +61.153.0.0/16 +61.154.0.0/15 +61.156.0.0/16 +61.157.0.0/16 +61.158.0.0/17 +61.158.128.0/17 +61.159.0.0/18 +61.159.64.0/18 +61.159.128.0/17 +61.160.0.0/16 +61.161.0.0/18 +61.161.64.0/18 +61.161.128.0/17 +61.162.0.0/16 +61.163.0.0/16 +61.164.0.0/16 +61.165.0.0/16 +61.166.0.0/16 +61.167.0.0/16 +61.168.0.0/16 +61.169.0.0/16 +61.170.0.0/15 +61.172.0.0/14 +61.176.0.0/16 +61.177.0.0/16 +61.178.0.0/16 +61.179.0.0/16 +61.180.0.0/17 +61.180.128.0/17 +61.181.0.0/16 +61.182.0.0/16 +61.183.0.0/16 +61.184.0.0/14 +61.188.0.0/16 +61.189.0.0/17 +61.189.128.0/17 +61.190.0.0/15 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/14 +101.196.0.0/14 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/14 +101.244.0.0/14 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/22 +103.2.204.0/22 +103.2.208.0/22 +103.2.212.0/22 +103.3.84.0/22 +103.3.88.0/22 +103.3.92.0/22 +103.3.96.0/22 +103.3.100.0/22 +103.3.104.0/22 +103.3.108.0/22 +103.3.112.0/22 +103.3.116.0/22 +103.3.120.0/22 +103.3.124.0/22 +103.3.128.0/22 +103.3.132.0/22 +103.3.136.0/22 +103.3.140.0/22 +103.3.148.0/22 +103.3.152.0/22 +103.3.156.0/22 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.220.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.212.0/22 +103.7.216.0/22 +103.7.220.0/22 +103.8.4.0/22 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/22 +103.8.204.0/22 +103.8.220.0/22 +103.9.152.0/22 +103.9.248.0/22 +103.9.252.0/22 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.244.0/22 +103.14.84.0/22 +103.14.112.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/22 +103.16.84.0/22 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.120.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/22 +103.18.212.0/22 +103.18.224.0/22 +103.19.12.0/22 +103.19.40.0/22 +103.19.44.0/22 +103.19.64.0/22 +103.19.68.0/22 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/22 +103.21.116.0/22 +103.21.136.0/22 +103.21.140.0/22 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/22 +103.22.4.0/22 +103.22.8.0/22 +103.22.12.0/22 +103.22.16.0/22 +103.22.20.0/22 +103.22.24.0/22 +103.22.28.0/22 +103.22.32.0/22 +103.22.36.0/22 +103.22.40.0/22 +103.22.44.0/22 +103.22.48.0/22 +103.22.52.0/22 +103.22.56.0/22 +103.22.60.0/22 +103.22.64.0/22 +103.22.68.0/22 +103.22.72.0/22 +103.22.76.0/22 +103.22.80.0/22 +103.22.84.0/22 +103.22.88.0/22 +103.22.92.0/22 +103.22.100.0/22 +103.22.104.0/22 +103.22.108.0/22 +103.22.112.0/22 +103.22.116.0/22 +103.22.120.0/22 +103.22.124.0/22 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/22 +103.23.164.0/22 +103.23.176.0/22 +103.23.228.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/22 +103.24.252.0/22 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/22 +103.25.28.0/22 +103.25.32.0/22 +103.25.36.0/22 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/22 +103.25.68.0/22 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.208.0/22 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.204.0/22 +103.29.16.0/22 +103.29.128.0/22 +103.29.132.0/22 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.216.0/22 +103.30.228.0/22 +103.30.232.0/22 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/22 +103.31.52.0/22 +103.31.56.0/22 +103.31.60.0/22 +103.31.64.0/22 +103.31.68.0/22 +103.31.72.0/22 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.224.40.0/22 +103.224.44.0/22 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/22 +103.224.228.0/22 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/22 +103.226.60.0/22 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/22 +103.227.76.0/22 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/22 +103.229.220.0/22 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/22 +103.230.44.0/22 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/22 +103.230.204.0/22 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/22 +103.231.20.0/22 +103.231.64.0/22 +103.231.68.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/22 +103.241.188.0/22 +103.241.220.0/22 +103.242.8.0/22 +103.242.64.0/22 +103.242.128.0/22 +103.242.132.0/22 +103.242.160.0/22 +103.242.168.0/22 +103.242.172.0/22 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.24.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.56.0/22 +103.244.60.0/22 +103.244.64.0/22 +103.244.68.0/22 +103.244.72.0/22 +103.244.76.0/22 +103.244.80.0/22 +103.244.84.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/22 +103.246.12.0/22 +103.246.120.0/22 +103.246.124.0/22 +103.246.132.0/22 +103.246.152.0/22 +103.246.156.0/22 +103.247.168.0/22 +103.247.172.0/22 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.224.0/22 +103.248.228.0/22 +103.249.12.0/22 +103.249.52.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/22 +103.249.172.0/22 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/22 +103.250.252.0/22 +103.251.32.0/22 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/22 +103.254.68.0/22 +103.254.72.0/22 +103.254.76.0/22 +103.254.112.0/22 +103.254.148.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.68.0/22 +103.255.88.0/22 +103.255.92.0/22 +103.255.136.0/22 +103.255.140.0/22 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/22 +103.255.212.0/22 +103.255.228.0/22 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/13 +106.120.0.0/13 +106.224.0.0/12 +110.6.0.0/15 +110.16.0.0/14 +110.40.0.0/14 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/17 +110.75.128.0/19 +110.75.160.0/19 +110.75.192.0/18 +110.76.0.0/19 +110.76.32.0/19 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/19 +110.173.96.0/19 +110.173.192.0/19 +110.176.0.0/13 +110.184.0.0/13 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.112.0.0/15 +111.114.0.0/15 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/14 +111.212.0.0/14 +111.221.128.0/17 +111.222.0.0/16 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/14 +111.228.0.0/14 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/15 +112.66.0.0/15 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/13 +112.88.0.0/13 +112.96.0.0/15 +112.98.0.0/15 +112.100.0.0/14 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/11 +113.96.0.0/12 +113.112.0.0/13 +113.120.0.0/13 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/14 +114.116.0.0/15 +114.118.0.0/15 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/14 +114.212.0.0/15 +114.214.0.0/16 +114.215.0.0/16 +114.216.0.0/13 +114.224.0.0/12 +114.240.0.0/12 +115.24.0.0/14 +115.28.0.0/15 +115.32.0.0/14 +115.44.0.0/15 +115.46.0.0/16 +115.47.0.0/16 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/15 +115.154.0.0/15 +115.156.0.0/15 +115.158.0.0/16 +115.159.0.0/16 +115.166.64.0/19 +115.168.0.0/14 +115.172.0.0/14 +115.180.0.0/14 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/15 +116.78.0.0/15 +116.85.0.0/16 +116.89.144.0/20 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/15 +116.246.0.0/15 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/20 +117.74.80.0/20 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/15 +118.30.0.0/16 +118.31.0.0/16 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/15 +118.194.0.0/17 +118.194.128.0/17 +118.195.0.0/17 +118.195.128.0/17 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/16 +118.213.0.0/16 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/20 +119.18.240.0/20 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/19 +119.27.160.0/19 +119.27.192.0/18 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/14 +119.36.0.0/16 +119.37.0.0/17 +119.37.128.0/18 +119.37.192.0/18 +119.38.0.0/17 +119.38.128.0/18 +119.38.192.0/20 +119.38.208.0/20 +119.38.224.0/19 +119.39.0.0/16 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.128.0/21 +119.42.136.0/21 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/16 +119.61.0.0/16 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/13 +119.120.0.0/13 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/20 +119.148.176.0/20 +119.151.192.0/18 +119.160.200.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/16 +120.31.0.0/16 +120.32.0.0/13 +120.40.0.0/14 +120.44.0.0/14 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/14 +120.68.0.0/14 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/16 +120.95.0.0/16 +120.128.0.0/14 +120.132.0.0/17 +120.132.128.0/17 +120.133.0.0/16 +120.134.0.0/15 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/13 +121.24.0.0/14 +121.28.0.0/15 +121.30.0.0/16 +121.31.0.0/16 +121.32.0.0/14 +121.36.0.0/16 +121.37.0.0/16 +121.38.0.0/15 +121.40.0.0/14 +121.46.0.0/18 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/16 +121.193.0.0/16 +121.194.0.0/15 +121.196.0.0/14 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/16 +122.9.0.0/16 +122.10.0.0/17 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/16 +122.13.0.0/16 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.102.0.0/20 +122.102.64.0/20 +122.102.80.0/20 +122.112.0.0/14 +122.119.0.0/16 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/15 +123.58.0.0/16 +123.59.0.0/16 +123.60.0.0/16 +123.61.0.0/16 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/14 +123.148.0.0/16 +123.149.0.0/16 +123.150.0.0/15 +123.152.0.0/13 +123.160.0.0/14 +123.164.0.0/14 +123.168.0.0/14 +123.172.0.0/15 +123.174.0.0/15 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/14 +123.188.0.0/14 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/16 +124.21.0.0/20 +124.21.16.0/20 +124.21.32.0/19 +124.21.64.0/18 +124.21.128.0/17 +124.22.0.0/15 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.42.0.0/17 +124.42.128.0/17 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/16 +124.73.0.0/16 +124.74.0.0/15 +124.76.0.0/14 +124.88.0.0/16 +124.89.0.0/17 +124.89.128.0/17 +124.90.0.0/15 +124.92.0.0/14 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/15 +124.114.0.0/15 +124.116.0.0/16 +124.117.0.0/16 +124.118.0.0/15 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.151.0.0/16 +124.152.0.0/16 +124.156.0.0/16 +124.160.0.0/16 +124.161.0.0/16 +124.162.0.0/16 +124.163.0.0/16 +124.164.0.0/14 +124.172.0.0/15 +124.174.0.0/15 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/16 +124.225.0.0/16 +124.226.0.0/15 +124.228.0.0/14 +124.232.0.0/15 +124.234.0.0/15 +124.236.0.0/14 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/16 +125.33.0.0/16 +125.34.0.0/16 +125.35.0.0/17 +125.35.128.0/17 +125.36.0.0/14 +125.40.0.0/13 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/13 +125.72.0.0/16 +125.73.0.0/16 +125.74.0.0/15 +125.76.0.0/17 +125.76.128.0/17 +125.77.0.0/16 +125.78.0.0/15 +125.80.0.0/13 +125.88.0.0/13 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/16 +125.211.0.0/16 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/15 +125.218.0.0/16 +125.219.0.0/16 +125.220.0.0/15 +125.222.0.0/15 +125.254.128.0/18 +125.254.192.0/18 +134.196.0.0/16 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.143.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.52.0.0/16 +144.123.0.0/16 +144.255.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.138.0.0/15 +150.223.0.0/16 +150.255.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.122.0.0/16 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.226.0.0/16 +161.207.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +168.160.0.0/16 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/14 +171.84.0.0/14 +171.88.0.0/13 +171.104.0.0/13 +171.112.0.0/14 +171.116.0.0/14 +171.120.0.0/13 +171.208.0.0/12 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.160.0.0/12 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/16 +180.77.0.0/16 +180.78.0.0/15 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.235.64.0/19 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.61.0.0/16 +182.80.0.0/14 +182.84.0.0/14 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/12 +182.112.0.0/12 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +183.0.0.0/10 +183.64.0.0/13 +183.78.180.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +192.124.154.0/24 +192.188.170.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/24 +202.12.19.0/24 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/23 +202.14.238.0/24 +202.14.239.0/24 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.127.0/24 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.22.248.0/22 +202.22.252.0/22 +202.27.136.0/23 +202.38.0.0/23 +202.38.2.0/23 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/19 +202.38.96.0/19 +202.38.128.0/23 +202.38.130.0/23 +202.38.132.0/23 +202.38.134.0/24 +202.38.135.0/24 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/23 +202.38.142.0/23 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/23 +202.38.154.0/23 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/23 +202.38.170.0/24 +202.38.171.0/24 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.152.0/21 +202.41.192.0/24 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.67.0/24 +202.44.74.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.57.240.0/20 +202.58.0.0/24 +202.59.0.0/24 +202.59.212.0/22 +202.59.232.0/23 +202.59.236.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.81.0/24 +202.63.82.0/23 +202.63.84.0/22 +202.63.88.0/21 +202.63.160.0/19 +202.63.248.0/22 +202.65.0.0/21 +202.65.8.0/23 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.73.128.0/22 +202.74.8.0/21 +202.74.80.0/20 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/21 +202.80.200.0/21 +202.81.0.0/22 +202.83.252.0/22 +202.84.4.0/22 +202.84.8.0/21 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.89.8.0/21 +202.90.0.0/22 +202.90.112.0/20 +202.90.196.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.92.0/22 +202.95.0.0/22 +202.95.4.0/22 +202.95.8.0/21 +202.95.16.0/20 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/18 +202.96.64.0/21 +202.96.72.0/21 +202.96.80.0/20 +202.96.96.0/21 +202.96.104.0/21 +202.96.112.0/20 +202.96.128.0/21 +202.96.136.0/21 +202.96.144.0/20 +202.96.160.0/21 +202.96.168.0/21 +202.96.176.0/20 +202.96.192.0/21 +202.96.200.0/21 +202.96.208.0/20 +202.96.224.0/21 +202.96.232.0/21 +202.96.240.0/20 +202.97.0.0/21 +202.97.8.0/21 +202.97.16.0/20 +202.97.32.0/19 +202.97.64.0/19 +202.97.96.0/20 +202.97.112.0/20 +202.97.128.0/18 +202.97.192.0/19 +202.97.224.0/21 +202.97.232.0/21 +202.97.240.0/20 +202.98.0.0/21 +202.98.8.0/21 +202.98.16.0/20 +202.98.32.0/21 +202.98.40.0/21 +202.98.48.0/20 +202.98.64.0/19 +202.98.96.0/21 +202.98.104.0/21 +202.98.112.0/20 +202.98.128.0/19 +202.98.160.0/21 +202.98.168.0/21 +202.98.176.0/20 +202.98.192.0/21 +202.98.200.0/21 +202.98.208.0/20 +202.98.224.0/21 +202.98.232.0/21 +202.98.240.0/20 +202.99.0.0/18 +202.99.64.0/19 +202.99.96.0/21 +202.99.104.0/21 +202.99.112.0/20 +202.99.128.0/19 +202.99.160.0/21 +202.99.168.0/21 +202.99.176.0/20 +202.99.192.0/21 +202.99.200.0/21 +202.99.208.0/20 +202.99.224.0/21 +202.99.232.0/21 +202.99.240.0/20 +202.100.0.0/21 +202.100.8.0/21 +202.100.16.0/20 +202.100.32.0/19 +202.100.64.0/21 +202.100.72.0/21 +202.100.80.0/20 +202.100.96.0/21 +202.100.104.0/21 +202.100.112.0/20 +202.100.128.0/21 +202.100.136.0/21 +202.100.144.0/20 +202.100.160.0/21 +202.100.168.0/21 +202.100.176.0/20 +202.100.192.0/21 +202.100.200.0/21 +202.100.208.0/20 +202.100.224.0/19 +202.101.0.0/18 +202.101.64.0/19 +202.101.96.0/19 +202.101.128.0/18 +202.101.192.0/19 +202.101.224.0/21 +202.101.232.0/21 +202.101.240.0/20 +202.102.0.0/19 +202.102.32.0/19 +202.102.64.0/18 +202.102.128.0/21 +202.102.136.0/21 +202.102.144.0/20 +202.102.160.0/19 +202.102.192.0/21 +202.102.200.0/21 +202.102.208.0/20 +202.102.224.0/21 +202.102.232.0/21 +202.102.240.0/20 +202.103.0.0/21 +202.103.8.0/21 +202.103.16.0/20 +202.103.32.0/19 +202.103.64.0/19 +202.103.96.0/21 +202.103.104.0/21 +202.103.112.0/20 +202.103.128.0/18 +202.103.192.0/19 +202.103.224.0/21 +202.103.232.0/21 +202.103.240.0/20 +202.104.0.0/15 +202.106.0.0/16 +202.107.0.0/17 +202.107.128.0/17 +202.108.0.0/16 +202.109.0.0/16 +202.110.0.0/18 +202.110.64.0/18 +202.110.128.0/18 +202.110.192.0/18 +202.111.0.0/17 +202.111.128.0/19 +202.111.160.0/19 +202.111.192.0/18 +202.112.0.0/16 +202.113.0.0/20 +202.113.16.0/20 +202.113.32.0/19 +202.113.64.0/18 +202.113.128.0/18 +202.113.192.0/19 +202.113.224.0/20 +202.113.240.0/20 +202.114.0.0/19 +202.114.32.0/19 +202.114.64.0/18 +202.114.128.0/17 +202.115.0.0/19 +202.115.32.0/19 +202.115.64.0/18 +202.115.128.0/17 +202.116.0.0/19 +202.116.32.0/20 +202.116.48.0/20 +202.116.64.0/19 +202.116.96.0/19 +202.116.128.0/17 +202.117.0.0/18 +202.117.64.0/18 +202.117.128.0/17 +202.118.0.0/19 +202.118.32.0/19 +202.118.64.0/18 +202.118.128.0/17 +202.119.0.0/19 +202.119.32.0/19 +202.119.64.0/20 +202.119.80.0/20 +202.119.96.0/19 +202.119.128.0/17 +202.120.0.0/18 +202.120.64.0/18 +202.120.128.0/17 +202.121.0.0/16 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/21 +202.122.120.0/21 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.124.16.0/21 +202.124.24.0/22 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/23 +202.127.2.0/24 +202.127.3.0/24 +202.127.4.0/24 +202.127.5.0/24 +202.127.6.0/23 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/20 +202.127.144.0/20 +202.127.160.0/21 +202.127.192.0/23 +202.127.194.0/23 +202.127.196.0/22 +202.127.200.0/21 +202.127.208.0/24 +202.127.209.0/24 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.130.0.0/19 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.137.231.0/24 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.146.160.0/20 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/19 +202.148.96.0/19 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/20 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.160.0/20 +202.168.176.0/20 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.235.0/24 +202.172.0.0/22 +202.173.0.0/22 +202.173.8.0/21 +202.173.224.0/19 +202.174.64.0/20 +202.176.224.0/19 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/13 +202.200.0.0/14 +202.204.0.0/14 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/24 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.50.0/24 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.76.160.0/22 +203.76.168.0/22 +203.77.180.0/22 +203.78.48.0/20 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.82.0.0/23 +203.82.16.0/21 +203.83.0.0/22 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/19 +203.86.32.0/19 +203.86.64.0/20 +203.86.80.0/20 +203.86.96.0/19 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.136.0/22 +203.90.0.0/22 +203.90.8.0/22 +203.90.128.0/19 +203.90.160.0/19 +203.90.192.0/19 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.160.0/19 +203.93.0.0/22 +203.93.4.0/22 +203.93.8.0/24 +203.93.9.0/24 +203.93.10.0/23 +203.93.12.0/22 +203.93.16.0/20 +203.93.32.0/19 +203.93.64.0/18 +203.93.128.0/21 +203.93.136.0/22 +203.93.140.0/24 +203.93.141.0/24 +203.93.142.0/23 +203.93.144.0/20 +203.93.160.0/19 +203.93.192.0/18 +203.94.0.0/22 +203.94.4.0/22 +203.94.8.0/21 +203.94.16.0/20 +203.95.0.0/21 +203.95.96.0/20 +203.95.112.0/20 +203.95.128.0/18 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.128.32.0/19 +203.128.96.0/19 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/20 +203.135.112.0/20 +203.135.160.0/20 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.224.0/20 +203.174.4.0/24 +203.174.7.0/24 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.16.0/20 +203.191.64.0/18 +203.191.144.0/21 +203.191.152.0/21 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/21 +203.196.8.0/21 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +210.2.0.0/20 +210.2.16.0/20 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/20 +210.5.144.0/20 +210.12.0.0/18 +210.12.64.0/18 +210.12.128.0/18 +210.12.192.0/18 +210.13.0.0/18 +210.13.64.0/18 +210.13.128.0/17 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/19 +210.14.160.0/19 +210.14.192.0/19 +210.14.224.0/19 +210.15.0.0/19 +210.15.32.0/19 +210.15.64.0/19 +210.15.96.0/19 +210.15.128.0/18 +210.16.128.0/18 +210.21.0.0/17 +210.21.128.0/17 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/14 +210.36.0.0/14 +210.40.0.0/13 +210.48.136.0/21 +210.51.0.0/16 +210.52.0.0/18 +210.52.64.0/18 +210.52.128.0/17 +210.53.0.0/17 +210.53.128.0/17 +210.56.192.0/19 +210.72.0.0/17 +210.72.128.0/19 +210.72.160.0/19 +210.72.192.0/18 +210.73.0.0/19 +210.73.32.0/19 +210.73.64.0/18 +210.73.128.0/17 +210.74.0.0/19 +210.74.32.0/19 +210.74.64.0/19 +210.74.96.0/19 +210.74.128.0/19 +210.74.160.0/19 +210.74.192.0/18 +210.75.0.0/16 +210.76.0.0/19 +210.76.32.0/19 +210.76.64.0/18 +210.76.128.0/17 +210.77.0.0/16 +210.78.0.0/19 +210.78.32.0/19 +210.78.64.0/18 +210.78.128.0/19 +210.78.160.0/19 +210.78.192.0/18 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/20 +210.87.144.0/20 +210.87.160.0/19 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/14 +211.68.0.0/15 +211.70.0.0/15 +211.80.0.0/16 +211.81.0.0/16 +211.82.0.0/16 +211.83.0.0/16 +211.84.0.0/15 +211.86.0.0/15 +211.88.0.0/16 +211.89.0.0/16 +211.90.0.0/15 +211.92.0.0/15 +211.94.0.0/15 +211.96.0.0/15 +211.98.0.0/16 +211.99.0.0/18 +211.99.64.0/19 +211.99.96.0/19 +211.99.128.0/17 +211.100.0.0/16 +211.101.0.0/18 +211.101.64.0/18 +211.101.128.0/17 +211.102.0.0/16 +211.103.0.0/17 +211.103.128.0/17 +211.136.0.0/14 +211.140.0.0/15 +211.142.0.0/17 +211.142.128.0/17 +211.143.0.0/16 +211.144.0.0/15 +211.146.0.0/16 +211.147.0.0/16 +211.148.0.0/14 +211.152.0.0/15 +211.154.0.0/16 +211.155.0.0/18 +211.155.64.0/19 +211.155.96.0/19 +211.155.128.0/17 +211.156.0.0/14 +211.160.0.0/14 +211.164.0.0/14 +218.0.0.0/16 +218.1.0.0/16 +218.2.0.0/15 +218.4.0.0/15 +218.6.0.0/16 +218.7.0.0/16 +218.8.0.0/15 +218.10.0.0/16 +218.11.0.0/16 +218.12.0.0/16 +218.13.0.0/16 +218.14.0.0/15 +218.16.0.0/14 +218.20.0.0/16 +218.21.0.0/17 +218.21.128.0/17 +218.22.0.0/15 +218.24.0.0/15 +218.26.0.0/16 +218.27.0.0/16 +218.28.0.0/15 +218.30.0.0/15 +218.56.0.0/14 +218.60.0.0/15 +218.62.0.0/17 +218.62.128.0/17 +218.63.0.0/16 +218.64.0.0/15 +218.66.0.0/16 +218.67.0.0/17 +218.67.128.0/17 +218.68.0.0/15 +218.70.0.0/15 +218.72.0.0/14 +218.76.0.0/15 +218.78.0.0/15 +218.80.0.0/14 +218.84.0.0/14 +218.88.0.0/13 +218.96.0.0/15 +218.98.0.0/17 +218.98.128.0/18 +218.98.192.0/19 +218.98.224.0/19 +218.99.0.0/16 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/17 +218.104.128.0/19 +218.104.160.0/19 +218.104.192.0/21 +218.104.200.0/21 +218.104.208.0/20 +218.104.224.0/19 +218.105.0.0/16 +218.106.0.0/15 +218.108.0.0/16 +218.109.0.0/16 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/16 +218.193.0.0/16 +218.194.0.0/16 +218.195.0.0/16 +218.196.0.0/14 +218.200.0.0/14 +218.204.0.0/15 +218.206.0.0/15 +218.240.0.0/14 +218.244.0.0/15 +218.246.0.0/15 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.128.0.0/12 +219.144.0.0/14 +219.148.0.0/16 +219.149.0.0/17 +219.149.128.0/18 +219.149.192.0/18 +219.150.0.0/19 +219.150.32.0/19 +219.150.64.0/19 +219.150.96.0/20 +219.150.112.0/20 +219.150.128.0/17 +219.151.0.0/19 +219.151.32.0/19 +219.151.64.0/18 +219.151.128.0/17 +219.152.0.0/15 +219.154.0.0/15 +219.156.0.0/15 +219.158.0.0/17 +219.158.128.0/17 +219.159.0.0/18 +219.159.64.0/18 +219.159.128.0/17 +219.216.0.0/15 +219.218.0.0/15 +219.220.0.0/16 +219.221.0.0/16 +219.222.0.0/15 +219.224.0.0/15 +219.226.0.0/16 +219.227.0.0/16 +219.228.0.0/15 +219.230.0.0/15 +219.232.0.0/14 +219.236.0.0/15 +219.238.0.0/15 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.160.0.0/11 +220.192.0.0/15 +220.194.0.0/15 +220.196.0.0/14 +220.200.0.0/13 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/15 +221.2.0.0/16 +221.3.0.0/17 +221.3.128.0/17 +221.4.0.0/16 +221.5.0.0/17 +221.5.128.0/17 +221.6.0.0/16 +221.7.0.0/19 +221.7.32.0/19 +221.7.64.0/19 +221.7.96.0/19 +221.7.128.0/17 +221.8.0.0/15 +221.10.0.0/16 +221.11.0.0/17 +221.11.128.0/18 +221.11.192.0/19 +221.11.224.0/19 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/18 +221.13.64.0/19 +221.13.96.0/19 +221.13.128.0/17 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/16 +221.137.0.0/16 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/15 +221.194.0.0/16 +221.195.0.0/16 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/19 +221.199.32.0/20 +221.199.48.0/20 +221.199.64.0/18 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/14 +221.204.0.0/15 +221.206.0.0/16 +221.207.0.0/18 +221.207.64.0/18 +221.207.128.0/17 +221.208.0.0/14 +221.212.0.0/16 +221.213.0.0/16 +221.214.0.0/15 +221.216.0.0/13 +221.224.0.0/13 +221.232.0.0/14 +221.236.0.0/15 +221.238.0.0/16 +221.239.0.0/17 +221.239.128.0/17 +222.16.0.0/15 +222.18.0.0/15 +222.20.0.0/15 +222.22.0.0/16 +222.23.0.0/16 +222.24.0.0/15 +222.26.0.0/15 +222.28.0.0/14 +222.32.0.0/11 +222.64.0.0/13 +222.72.0.0/15 +222.74.0.0/16 +222.75.0.0/16 +222.76.0.0/14 +222.80.0.0/15 +222.82.0.0/16 +222.83.0.0/17 +222.83.128.0/17 +222.84.0.0/16 +222.85.0.0/17 +222.85.128.0/17 +222.86.0.0/15 +222.88.0.0/15 +222.90.0.0/15 +222.92.0.0/14 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/14 +222.132.0.0/14 +222.136.0.0/13 +222.160.0.0/15 +222.162.0.0/16 +222.163.0.0/19 +222.163.32.0/19 +222.163.64.0/18 +222.163.128.0/17 +222.168.0.0/15 +222.170.0.0/15 +222.172.0.0/17 +222.172.128.0/17 +222.173.0.0/16 +222.174.0.0/15 +222.176.0.0/13 +222.184.0.0/13 +222.192.0.0/14 +222.196.0.0/15 +222.198.0.0/16 +222.199.0.0/16 +222.200.0.0/14 +222.204.0.0/15 +222.206.0.0/15 +222.208.0.0/13 +222.216.0.0/15 +222.218.0.0/16 +222.219.0.0/16 +222.220.0.0/15 +222.222.0.0/15 +222.240.0.0/13 +222.248.0.0/16 +222.249.0.0/17 +222.249.128.0/19 +222.249.160.0/20 +222.249.176.0/20 +222.249.192.0/18 +223.0.0.0/15 +223.2.0.0/15 +223.4.0.0/14 +223.8.0.0/13 +223.20.0.0/15 +223.27.184.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/14 +223.212.0.0/15 +223.214.0.0/15 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 diff --git a/shadowsocksr-libev/src/acl/gfwlist.acl b/shadowsocksr-libev/src/acl/gfwlist.acl new file mode 100644 index 00000000000..f513f05f32e --- /dev/null +++ b/shadowsocksr-libev/src/acl/gfwlist.acl @@ -0,0 +1,3770 @@ +# gfw list rules for shadowsocks-libev $ +# updated on 2016-09-08 12:09:55$ +[bypass_all] + +[proxy_list] +# Telegram IPs$ +91.108.4.0/22 +91.108.56.0/22 +109.239.140.0/24 +149.154.160.0/20 +^(.*\.)?4tern\.com$ +^(.*\.)?adorama\.com$ +^(.*\.)?akiba-web\.com$ +^(.*\.)?alien-ufos\.com$ +^(.*\.)?altrec\.com$ +^(.*\.)?arena\.taipei$ +^(.*\.)?asianspiss\.com$ +^(.*\.)?athenaeizou\.com$ +^(.*\.)?barracuda\.com$ +^(.*\.)?beeg\.com$ +^(.*\.)?bloombergview\.com$ +^(.*\.)?boysmaster\.com$ +^(.*\.)?carfax\.com$ +^(.*\.)?casinobellini\.com$ +^(.*\.)?centauro\.com\.br$ +^(.*\.)?crossfire\.co\.kr$ +^(.*\.)?darpa\.mil$ +^(.*\.)?dish\.com$ +^(.*\.)?dm530\.net$ +^(.*\.)?eesti\.ee$ +^(.*\.)?expekt\.com$ +^(.*\.)?extmatrix\.com$ +^(.*\.)?fakku\.net$ +^(.*\.)?filesor\.com$ +^(.*\.)?financetwitter\.com$ +^(.*\.)?findmima\.com$ +^(.*\.)?flipboard\.com$ +^(.*\.)?flitto\.com$ +^(.*\.)?fxnetworks\.com$ +^(.*\.)?gettyimages\.com$ +^(.*\.)?getuploader\.com$ +^(.*\.)?github\.com$ +^(.*\.)?glype\.com$ +^(.*\.)?go141\.com$ +^(.*\.)?hautelook\.com$ +^(.*\.)?hautelookcdn\.com$ +^(.*\.)?hmvdigital\.ca$ +^(.*\.)?hmvdigital\.com$ +^(.*\.)?homedepot\.com$ +^(.*\.)?hoovers\.com$ +^(.*\.)?hulu\.com$ +^(.*\.)?huluim\.com$ +^(.*\.)?secure\.hustler\.com$ +^(.*\.)?hustlercash\.com$ +^(.*\.)?www\.hustlercash\.com$ +^(.*\.)?hybrid-analysis\.com$ +^(.*\.)?ilovelongtoes\.com$ +^(.*\.)?imgmega\.com$ +^(.*\.)?imgur\.com$ +^(.*\.)?javhub\.net$ +^(.*\.)?javhuge\.com$ +^(.*\.)?javlibrary\.com$ +^(.*\.)?jcpenney\.com$ +^(.*\.)?juliepost\.com$ +^(.*\.)?khatrimaza\.org$ +^(.*\.)?leisurepro\.com$ +^(.*\.)?longtoes\.com$ +^(.*\.)?lovetvshow\.com$ +^(.*\.)?macgamestore\.com$ +^(.*\.)?madonna-av\.com$ +^(.*\.)?mangafox\.com$ +^(.*\.)?mangafox\.me$ +^(.*\.)?matome-plus\.com$ +^(.*\.)?matome-plus\.net$ +^(.*\.)?mattwilcox\.net$ +^(.*\.)?metarthunter\.com$ +^(.*\.)?mfxmedia\.com$ +^(.*\.)?monster\.com$ +^(.*\.)?moodyz\.com$ +^(.*\.)?nationwide\.com$ +^(.*\.)?www\.nbc\.com$ +^(.*\.)?netflix\.com$ +^(.*\.)?mo\.nightlife141\.com$ +^(.*\.)?nordstrom\.com$ +^(.*\.)?nordstromimage\.com$ +^(.*\.)?nordstromrack\.com$ +^(.*\.)?nottinghampost\.com$ +^(.*\.)?ntdtv\.cz$ +^(.*\.)?nusatrip\.com$ +^(.*\.)?nuuvem\.com$ +^(.*\.)?ontrac\.com$ +^(.*\.)?pandora\.com$ +^(.*\.)?parkansky\.com$ +^(.*\.)?pure18\.com$ +^(.*\.)?qq\.co\.za$ +^(.*\.)?r18\.com$ +^(.*\.)?rd\.com$ +^(.*\.)?rdio\.com$ +^(.*\.)?sadistic-v\.com$ +^(.*\.)?search\.xxx$ +^(.*\.)?shutterstock\.com$ +^(.*\.)?slacker\.com$ +^(.*\.)?spotify\.com$ +^(.*\.)?springboardplatform\.com$ +^(.*\.)?sprite\.org$ +^(.*\.)?superpages\.com$ +^(.*\.)?swagbucks\.com$ +^(.*\.)?tapanwap\.com$ +^(.*\.)?target\.com$ +^(.*\.)?turntable\.fm$ +^(.*\.)?twerkingbutt\.com$ +^(.*\.)?vegasred\.com$ +^(.*\.)?vevo\.com$ +^(.*\.)?ecsm\.vs\.com$ +^(.*\.)?wanz-factory\.com$ +^(.*\.)?wheretowatch\.com$ +^(.*\.)?wingamestore\.com$ +^(.*\.)?wizcrafts\.net$ +^(.*\.)?xfinity\.com$ +^(.*\.)?zattoo\.com$ +^(.*\.)?zozotown\.com$ +^(.*\.)?xn--4gq171p\.com$ +^(.*\.)?xn--p8j9a0d9c9a\.xn--q9jyb4c$ +^(.*\.)?china-mmm\.jp\.net$ +^(.*\.)?lsxszzg\.com$ +^(.*\.)?china-mmm\.net$ +^(.*\.)?china-mmm\.sa\.com$ +^(.*\.)?s3-ap-northeast-1\.amazonaws\.com$ +^(.*\.)?avmo\.pw$ +^(.*\.)?avmoo\.com$ +^(.*\.)?avmoo\.net$ +^(.*\.)?avmoo\.pw$ +^(.*\.)?javmoo\.xyz$ +^(.*\.)?javtag\.com$ +^(.*\.)?javzoo\.com$ +^(.*\.)?1dumb\.com$ +^(.*\.)?25u\.com$ +^(.*\.)?2waky\.com$ +^(.*\.)?3-a\.net$ +^(.*\.)?4dq\.com$ +^(.*\.)?4mydomain\.com$ +^(.*\.)?4pu\.com$ +^(.*\.)?acmetoy\.com$ +^(.*\.)?almostmy\.com$ +^(.*\.)?americanunfinished\.com$ +^(.*\.)?authorizeddns\.net$ +^(.*\.)?authorizeddns\.org$ +^(.*\.)?authorizeddns\.us$ +^(.*\.)?bigmoney\.biz$ +^(.*\.)?changeip\.name$ +^(.*\.)?changeip\.net$ +^(.*\.)?changeip\.org$ +^(.*\.)?cleansite\.biz$ +^(.*\.)?cleansite\.info$ +^(.*\.)?cleansite\.us$ +^(.*\.)?compress\.to$ +^(.*\.)?ddns\.info$ +^(.*\.)?ddns\.mobi$ +^(.*\.)?ddns\.ms$ +^(.*\.)?ddns\.name$ +^(.*\.)?ddns\.us$ +^(.*\.)?dhcp\.biz$ +^(.*\.)?dns-dns\.com$ +^(.*\.)?dns-stuff\.com$ +^(.*\.)?dns04\.com$ +^(.*\.)?dns05\.com$ +^(.*\.)?dns1\.us$ +^(.*\.)?dns2\.us$ +^(.*\.)?dnset\.com$ +^(.*\.)?dnsrd\.com$ +^(.*\.)?dsmtp\.com$ +^(.*\.)?dumb1\.com$ +^(.*\.)?dynamic-dns\.net$ +^(.*\.)?dynamicdns\.biz$ +^(.*\.)?dyndns\.pro$ +^(.*\.)?dynssl\.com$ +^(.*\.)?edns\.biz$ +^(.*\.)?epac\.to$ +^(.*\.)?esmtp\.biz$ +^(.*\.)?ezua\.com$ +^(.*\.)?faqserv\.com$ +^(.*\.)?fartit\.com$ +^(.*\.)?freeddns\.com$ +^(.*\.)?freetcp\.com$ +^(.*\.)?freewww\.biz$ +^(.*\.)?freewww\.info$ +^(.*\.)?ftp1\.biz$ +^(.*\.)?ftpserver\.biz$ +^(.*\.)?gettrials\.com$ +^(.*\.)?got-game\.org$ +^(.*\.)?gr8domain\.biz$ +^(.*\.)?gr8name\.biz$ +^(.*\.)?https443\.net$ +^(.*\.)?https443\.org$ +^(.*\.)?ikwb\.com$ +^(.*\.)?instanthq\.com$ +^(.*\.)?iownyour\.biz$ +^(.*\.)?iownyour\.org$ +^(.*\.)?isasecret\.com$ +^(.*\.)?itemdb\.com$ +^(.*\.)?itsaol\.com$ +^(.*\.)?jetos\.com$ +^(.*\.)?jkub\.com$ +^(.*\.)?jungleheart\.com$ +^(.*\.)?justdied\.com$ +^(.*\.)?lflink\.com$ +^(.*\.)?lflinkup\.com$ +^(.*\.)?lflinkup\.net$ +^(.*\.)?lflinkup\.org$ +^(.*\.)?longmusic\.com$ +^(.*\.)?mefound\.com$ +^(.*\.)?moneyhome\.biz$ +^(.*\.)?mrbasic\.com$ +^(.*\.)?mrbonus\.com$ +^(.*\.)?mrface\.com$ +^(.*\.)?mrslove\.com$ +^(.*\.)?my03\.com$ +^(.*\.)?mydad\.info$ +^(.*\.)?myddns\.com$ +^(.*\.)?myftp\.info$ +^(.*\.)?myftp\.name$ +^(.*\.)?mylftv\.com$ +^(.*\.)?mymom\.info$ +^(.*\.)?mynetav\.net$ +^(.*\.)?mynetav\.org$ +^(.*\.)?mynumber\.org$ +^(.*\.)?mypicture\.info$ +^(.*\.)?mypop3\.net$ +^(.*\.)?mypop3\.org$ +^(.*\.)?mysecondarydns\.com$ +^(.*\.)?mywww\.biz$ +^(.*\.)?myz\.info$ +^(.*\.)?ninth\.biz$ +^(.*\.)?ns01\.biz$ +^(.*\.)?ns01\.info$ +^(.*\.)?ns01\.us$ +^(.*\.)?ns02\.biz$ +^(.*\.)?ns02\.info$ +^(.*\.)?ns02\.us$ +^(.*\.)?ns1\.name$ +^(.*\.)?ns2\.name$ +^(.*\.)?ns3\.name$ +^(.*\.)?ocry\.com$ +^(.*\.)?onedumb\.com$ +^(.*\.)?onmypc\.biz$ +^(.*\.)?onmypc\.info$ +^(.*\.)?onmypc\.net$ +^(.*\.)?onmypc\.org$ +^(.*\.)?onmypc\.us$ +^(.*\.)?organiccrap\.com$ +^(.*\.)?otzo\.com$ +^(.*\.)?ourhobby\.com$ +^(.*\.)?pcanywhere\.net$ +^(.*\.)?port25\.biz$ +^(.*\.)?qhigh\.com$ +^(.*\.)?qpoe\.com$ +^(.*\.)?rebatesrule\.net$ +^(.*\.)?sellclassics\.com$ +^(.*\.)?sendsmtp\.com$ +^(.*\.)?serveuser\.com$ +^(.*\.)?serveusers\.com$ +^(.*\.)?sixth\.biz$ +^(.*\.)?squirly\.info$ +^(.*\.)?ssl443\.org$ +^(.*\.)?toh\.info$ +^(.*\.)?toythieves\.com$ +^(.*\.)?trickip\.net$ +^(.*\.)?trickip\.org$ +^(.*\.)?vizvaz\.com$ +^(.*\.)?wha\.la$ +^(.*\.)?wikaba\.com$ +^(.*\.)?www1\.biz$ +^(.*\.)?wwwhost\.biz$ +^(.*\.)?x24hr\.com$ +^(.*\.)?xxuz\.com$ +^(.*\.)?xxxy\.biz$ +^(.*\.)?xxxy\.info$ +^(.*\.)?ygto\.com$ +^(.*\.)?youdontcare\.com$ +^(.*\.)?yourtrap\.com$ +^(.*\.)?zyns\.com$ +^(.*\.)?zzux\.com$ +^(.*\.)?d3rhr7kgmtrq1v\.cloudfront\.net$ +^(.*\.)?3d-game\.com$ +^(.*\.)?4irc\.com$ +^(.*\.)?b0ne\.com$ +^(.*\.)?chatnook\.com$ +^(.*\.)?darktech\.org$ +^(.*\.)?deaftone\.com$ +^(.*\.)?dtdns\.net$ +^(.*\.)?effers\.com$ +^(.*\.)?etowns\.net$ +^(.*\.)?etowns\.org$ +^(.*\.)?flnet\.org$ +^(.*\.)?gotgeeks\.com$ +^(.*\.)?scieron\.com$ +^(.*\.)?slyip\.com$ +^(.*\.)?slyip\.net$ +^(.*\.)?suroot\.com$ +^(.*\.)?facebook\.br$ +^(.*\.)?facebook\.com$ +^(.*\.)?connect\.facebook\.net$ +^(.*\.)?facebook\.hu$ +^(.*\.)?facebook\.nl$ +^(.*\.)?facebook\.se$ +^(.*\.)?fb\.com$ +^(.*\.)?fb\.me$ +^(.*\.)?m\.me$ +^(.*\.)?messenger\.com$ +^(.*\.)?oculus\.com$ +^(.*\.)?1e100\.net$ +^(.*\.)?abc\.xyz$ +^(.*\.)?admob\.com$ +^(.*\.)?agoogleaday\.com$ +^(.*\.)?ampproject\.org$ +^(.*\.)?android\.com$ +^(.*\.)?androidify\.com$ +^(.*\.)?appspot\.com$ +^(.*\.)?blogspot\.com$ +^(.*\.)?certificate-transparency\.org$ +^(.*\.)?chrome\.com$ +^(.*\.)?chromecast\.com$ +^(.*\.)?chromeexperiments\.com$ +^(.*\.)?chromercise\.com$ +^(.*\.)?chromestatus\.com$ +^(.*\.)?chromium\.org$ +^(.*\.)?com\.google$ +^(.*\.)?data-vocabulary\.org$ +^(.*\.)?deepmind\.com$ +^(.*\.)?deja\.com$ +^(.*\.)?digisfera\.com$ +^(.*\.)?domains\.google$ +^(.*\.)?feedburner\.com$ +^(.*\.)?g\.co$ +^(.*\.)?gcr\.io$ +^(.*\.)?get\.how$ +^(.*\.)?getmdl\.io$ +^(.*\.)?ggpht\.com$ +^(.*\.)?gmail\.com$ +^(.*\.)?gmodules\.com$ +^(.*\.)?goo\.gl$ +^(.*\.)?google(\.[^.]{2,4}){1,2}$ +^(.*\.)?googleapis(\.[^.]{2,4}){1,2}$ +^(.*\.)?googleapps\.com$ +^(.*\.)?googleartproject\.com$ +^(.*\.)?googleblog\.com$ +^(.*\.)?googlebot\.com$ +^(.*\.)?googlecode\.com$ +^(.*\.)?googlecommerce\.com$ +^(.*\.)?googledomains\.com$ +^(.*\.)?googleearth\.com$ +^(.*\.)?googledrive\.com$ +^(.*\.)?googlegroups\.com$ +^(.*\.)?googlehosted\.com$ +^(.*\.)?googleideas\.com$ +^(.*\.)?googlelabs\.com$ +^(.*\.)?googlemail\.com$ +^(.*\.)?googleplay\.com$ +^(.*\.)?googleplus\.com$ +^(.*\.)?googlesource\.com$ +^(.*\.)?googleusercontent\.com$ +^(.*\.)?googlevideo\.com$ +^(.*\.)?googlezip\.net$ +^(.*\.)?gvt0\.com$ +^(.*\.)?gvt1\.com$ +^(.*\.)?gvt3\.com$ +^(.*\.)?html5rocks\.com$ +^(.*\.)?iam\.soy$ +^(.*\.)?igoogle\.com$ +^(.*\.)?itasoftware\.com$ +^(.*\.)?like\.com$ +^(.*\.)?nic\.google$ +^(.*\.)?on2\.com$ +^(.*\.)?panoramio\.com$ +^(.*\.)?picasaweb\.com$ +^(.*\.)?polymer-project\.org$ +^(.*\.)?questvisual\.com$ +^(.*\.)?recaptcha\.net$ +^(.*\.)?redhotlabs\.com$ +^(.*\.)?registry\.google$ +^(.*\.)?schema\.org$ +^(.*\.)?sipml5\.org$ +^(.*\.)?stories\.google$ +^(.*\.)?synergyse\.com$ +^(.*\.)?tensorflow\.org$ +^(.*\.)?thinkwithgoogle\.com$ +^(.*\.)?tiltbrush\.com$ +^(.*\.)?waveprotocol\.org$ +^(.*\.)?webmproject\.org$ +^(.*\.)?webrtc\.org$ +^(.*\.)?whatbrowser\.org$ +^(.*\.)?withgoogle\.com$ +^(.*\.)?youtu\.be$ +^(.*\.)?youtube\.com$ +^(.*\.)?youtube-nocookie\.com$ +^(.*\.)?ytimg\.com$ +^(.*\.)?zynamics\.com$ +^(.*\.)?kat\.cr$ +^(.*\.)?naughtyamerica\.com$ +^(.*\.)?v2ex\.com$ +^(.*\.)?0to255\.com$ +^(.*\.)?100ke\.org$ +^(.*\.)?1000giri\.net$ +^(.*\.)?10conditionsoflove\.com$ +^(.*\.)?10musume\.com$ +^(.*\.)?123rf\.com$ +^(.*\.)?12bet\.com$ +^(.*\.)?141hongkong\.com$ +^(.*\.)?141tube\.com$ +^(.*\.)?173ng\.com$ +^(.*\.)?177pic\.info$ +^(.*\.)?17t17p\.com$ +^(.*\.)?18onlygirls\.com$ +^(.*\.)?1949er\.org$ +^(.*\.)?zhao\.1984\.city$ +^(.*\.)?1984bbs\.com$ +^(.*\.)?1984bbs\.org$ +^(.*\.)?1998cdp\.org$ +^(.*\.)?1bao\.org$ +^(.*\.)?1eew\.com$ +^(.*\.)?1mobile\.com$ +^(.*\.)?2-hand\.info$ +^(.*\.)?2000fun\.com$ +^(.*\.)?2008xianzhang\.info$ +^(.*\.)?21andy\.com$ +^(.*\.)?21pron\.com$ +^(.*\.)?24hrs\.ca$ +^(.*\.)?24smile\.org$ +^(.*\.)?2lipstube\.com$ +^(.*\.)?2shared\.com$ +^(.*\.)?30boxes\.com$ +^(.*\.)?315lz\.com$ +^(.*\.)?32red\.com$ +^(.*\.)?36rain\.com$ +^(.*\.)?3a5a\.com$ +^(.*\.)?3arabtv\.com$ +^(.*\.)?3boys2girls\.com$ +^(.*\.)?3ren\.ca$ +^(.*\.)?3tui\.net$ +^(.*\.)?4bluestones\.biz$ +^(.*\.)?4rbtv\.com$ +^(.*\.)?4shared\.com$ +^(.*\.)?taiwannation\.50webs\.com$ +^(.*\.)?51\.ca$ +^(.*\.)?51luoben\.com$ +^(.*\.)?5aimiku\.com$ +^(.*\.)?5i01\.com$ +^(.*\.)?5isotoi5\.org$ +^(.*\.)?5maodang\.com$ +^(.*\.)?63i\.com$ +^(.*\.)?66\.ca$ +^(.*\.)?666kb\.com$ +^(.*\.)?6park\.com$ +^(.*\.)?7capture\.com$ +^(.*\.)?7cow\.com$ +^(.*\.)?8-d\.com$ +^(.*\.)?85cc\.net$ +^(.*\.)?85st\.com$ +^(.*\.)?881903\.com$ +^(.*\.)?888\.com$ +^(.*\.)?888poker\.com$ +^(.*\.)?8z1\.net$ +^(.*\.)?9001700\.com$ +^(.*\.)?908taiwan\.org$ +^(.*\.)?91porn\.com$ +^(.*\.)?92ccav\.com$ +^(.*\.)?991\.com$ +^(.*\.)?99btgc01\.com$ +^(.*\.)?99cn\.info$ +^(.*\.)?9bis\.com$ +^(.*\.)?9bis\.net$ +^(.*\.)?tibet\.a\.se$ +^(.*\.)?a-normal-day\.com$ +^(.*\.)?aamacau\.com$ +^(.*\.)?abc\.com$ +^(.*\.)?abchinese\.com$ +^(.*\.)?ablwang\.com$ +^(.*\.)?aboluowang\.com$ +^(.*\.)?aboutgfw\.com$ +^(.*\.)?abs\.edu$ +^(.*\.)?accim\.org$ +^(.*\.)?aceros-de-hispania\.com$ +^(.*\.)?acg18\.me$ +^(.*\.)?acgkj\.com$ +^(.*\.)?aculo\.us$ +^(.*\.)?adelaidebbs\.com$ +^(.*\.)?adultfriendfinder\.com$ +^(.*\.)?adultkeep\.net$ +^(.*\.)?advanscene\.com$ +^(.*\.)?advertfan\.com$ +^(.*\.)?ae\.org$ +^(.*\.)?aenhancers\.com$ +^(.*\.)?af\.mil$ +^(.*\.)?afantibbs\.com$ +^(.*\.)?ai-kan\.net$ +^(.*\.)?ai-wen\.net$ +^(.*\.)?aiph\.net$ +^(.*\.)?airconsole\.com$ +^(.*\.)?download\.aircrack-ng\.org$ +^(.*\.)?aiweiwei\.com$ +^(.*\.)?aiweiweiblog\.com$ +^(.*\.)?www\.ajsands\.com$ +^(.*\.)?akamaihd\.net$ +^(.*\.)?a248\.e\.akamai\.net$ +^(.*\.)?voa-11\.akacast\.akamaistream\.net$ +^(.*\.)?akademiye\.org$ +^(.*\.)?akiba-online\.com$ +^(.*\.)?al-qimmah\.net$ +^(.*\.)?alabout\.com$ +^(.*\.)?alanhou\.com$ +^(.*\.)?alasbarricadas\.org$ +^(.*\.)?alexlur\.org$ +^(.*\.)?alforattv\.net$ +^(.*\.)?alhayat\.com$ +^(.*\.)?aliengu\.com$ +^(.*\.)?alkasir\.com$ +^(.*\.)?allconnected\.co$ +^(.*\.)?allgirlsallowed\.org$ +^(.*\.)?allinfa\.com$ +^(.*\.)?alljackpotscasino\.com$ +^(.*\.)?allmovie\.com$ +^(.*\.)?alphaporno\.com$ +^(.*\.)?alternate-tools\.com$ +^(.*\.)?alvinalexander\.com$ +^(.*\.)?alwaysdata\.com$ +^(.*\.)?alwaysdata\.net$ +^(.*\.)?amazon\.com$ +^(.*\.)?www1\.american\.edu$ +^(.*\.)?americangreencard\.com$ +^(.*\.)?www\.americorps\.gov$ +^(.*\.)?amiblockedornot\.com$ +^(.*\.)?amigobbs\.net$ +^(.*\.)?amitabhafoundation\.us$ +^(.*\.)?amnesty\.org$ +^(.*\.)?amnestyusa\.org$ +^(.*\.)?amnyemachen\.org$ +^(.*\.)?amoiist\.com$ +^(.*\.)?annatam\.com$ +^(.*\.)?anchorfree\.com$ +^(.*\.)?ancsconf\.org$ +^(.*\.)?andfaraway\.net$ +^(.*\.)?android-x86\.org$ +^(.*\.)?angelfire\.com$ +^(.*\.)?angularjs\.org$ +^(.*\.)?animecrazy\.net$ +^(.*\.)?animeshippuuden\.com$ +^(.*\.)?aniscartujo\.com$ +^(.*\.)?anobii\.com$ +^(.*\.)?anonymitynetwork\.com$ +^(.*\.)?anonymizer\.com$ +^(.*\.)?anontext\.com$ +^(.*\.)?anpopo\.com$ +^(.*\.)?answering-islam\.org$ +^(.*\.)?www\.antd\.org$ +^(.*\.)?anthonycalzadilla\.com$ +^(.*\.)?antiwave\.net$ +^(.*\.)?aofriend\.com$ +^(.*\.)?aojiao\.org$ +^(.*\.)?aolchannels\.aol\.com$ +^(.*\.)?video\.aol\.ca$ +^(.*\.)?video\.aol\.com$ +^(.*\.)?search\.aol\.com$ +^(.*\.)?www\.aolnews\.com$ +^(.*\.)?aomiwang\.com$ +^(.*\.)?video\.ap\.org$ +^(.*\.)?apetube\.com$ +^(.*\.)?apiary\.io$ +^(.*\.)?apigee\.com$ +^(.*\.)?apk-dl\.com$ +^(.*\.)?apkdler\.com$ +^(.*\.)?appdownloader\.net$ +^(.*\.)?apkpure\.com$ +^(.*\.)?appledaily\.com$ +^(.*\.)?appsocks\.net$ +^(.*\.)?appsto\.re$ +^(.*\.)?archives\.gov$ +^(.*\.)?archive\.is$ +^(.*\.)?archive\.org$ +^(.*\.)?arctosia\.com$ +^(.*\.)?areca-backup\.org$ +^(.*\.)?arethusa\.su$ +^(.*\.)?arlingtoncemetery\.mil$ +^(.*\.)?army\.mil$ +^(.*\.)?arstechnica\.com$ +^(.*\.)?art4tibet1998\.org$ +^(.*\.)?artsy\.net$ +^(.*\.)?asacp\.org$ +^(.*\.)?asahichinese\.com$ +^(.*\.)?asg\.to$ +^(.*\.)?japanfirst\.asianfreeforum\.com$ +^(.*\.)?asiaharvest\.org$ +^(.*\.)?asianews\.it$ +^(.*\.)?asiatgp\.com$ +^(.*\.)?askstudent\.com$ +^(.*\.)?askynz\.net$ +^(.*\.)?assembla\.com$ +^(.*\.)?astonmartinnews\.com$ +^(.*\.)?astrill\.com$ +^(.*\.)?atchinese\.com$ +^(.*\.)?atgfw\.org$ +^(.*\.)?atlaspost\.com$ +^(.*\.)?atdmt\.com$ +^(.*\.)?atnext\.com$ +^(.*\.)?avaaz\.org$ +^(.*\.)?avcool\.com$ +^(.*\.)?avfantasy\.com$ +^(.*\.)?avidemux\.org$ +^(.*\.)?avoision\.com$ +^(.*\.)?avyahoo\.com$ +^(.*\.)?axureformac\.com$ +^(.*\.)?azerimix\.com$ +^(.*\.)?azurewebsites\.net$ +^(.*\.)?forum\.baby-kingdom\.com$ +^(.*\.)?backchina\.com$ +^(.*\.)?backtotiananmen\.com$ +^(.*\.)?badjojo\.com$ +^(.*\.)?badoo\.com$ +^(.*\.)?bailandaily\.com$ +^(.*\.)?baixing\.me$ +^(.*\.)?bangchen\.net$ +^(.*\.)?bangyoulater\.com$ +^(.*\.)?bannedbook\.org$ +^(.*\.)?bannednews\.org$ +^(.*\.)?barenakedislam\.com$ +^(.*\.)?bayvoice\.net$ +^(.*\.)?dajusha\.baywords\.com$ +^(.*\.)?bbc\.com$ +^(.*\.)?bbcchinese\.com$ +^(.*\.)?bbg\.gov$ +^(.*\.)?bbkz\.com$ +^(.*\.)?bbnradio\.org$ +^(.*\.)?bbs-tw\.com$ +^(.*\.)?bbsdigest\.com$ +^(.*\.)?bbsfeed\.com$ +^(.*\.)?bbsland\.com$ +^(.*\.)?bbsmo\.com$ +^(.*\.)?bbsone\.com$ +^(.*\.)?bbtoystore\.com$ +^(.*\.)?bcast\.co\.nz$ +^(.*\.)?bcchinese\.net$ +^(.*\.)?bcmorning\.com$ +^(.*\.)?bdsmvideos\.net$ +^(.*\.)?beaconevents\.com$ +^(.*\.)?bebo\.com$ +^(.*\.)?behindkink\.com$ +^(.*\.)?beijing1989\.com$ +^(.*\.)?beijingspring\.com$ +^(.*\.)?belamionline\.com$ +^(.*\.)?bemywife\.cc$ +^(.*\.)?beric\.me$ +^(.*\.)?berlintwitterwall\.com$ +^(.*\.)?berm\.co\.nz$ +^(.*\.)?bestforchina\.org$ +^(.*\.)?bet365\.com$ +^(.*\.)?betfair\.com$ +^(.*\.)?bettween\.com$ +^(.*\.)?betvictor\.com$ +^(.*\.)?bewww\.net$ +^(.*\.)?beyondfirewall\.com$ +^(.*\.)?bfnn\.org$ +^(.*\.)?biantailajiao\.com$ +^(.*\.)?biblesforamerica\.org$ +^(.*\.)?bic2011\.org$ +^(.*\.)?bigfools\.com$ +^(.*\.)?bignews\.org$ +^(.*\.)?bigsound\.org$ +^(.*\.)?billypan\.com$ +^(.*\.)?billywr\.com$ +^(.*\.)?bipic\.net$ +^(.*\.)?bit\.do$ +^(.*\.)?bit\.ly$ +^(.*\.)?bitcointalk\.org$ +^(.*\.)?bitshare\.com$ +^(.*\.)?bitsnoop\.com$ +^(.*\.)?bizhat\.com$ +^(.*\.)?bl-doujinsouko\.com$ +^(.*\.)?bjnewlife\.org$ +^(.*\.)?bjzc\.org$ +^(.*\.)?blacklogic\.com$ +^(.*\.)?tor\.blingblingsquad\.net$ +^(.*\.)?blinkx\.com$ +^(.*\.)?blinw\.com$ +^(.*\.)?blockcn\.com$ +^(.*\.)?blogblog\.com$ +^(.*\.)?blogcatalog\.com$ +^(.*\.)?blogcity\.me$ +^(.*\.)?blogger\.com$ +^(.*\.)?blog\.kangye\.org$ +^(.*\.)?bloglines\.com$ +^(.*\.)?bloglovin\.com$ +^(.*\.)?rconversation\.blogs\.com$ +^(.*\.)?blogtd\.net$ +^(.*\.)?blogtd\.org$ +^(.*\.)?bloodshed\.net$ +^(.*\.)?bloomberg\.com$ +^(.*\.)?bloomfortune\.com$ +^(.*\.)?blueangellive\.com$ +^(.*\.)?bmfinn\.com$ +^(.*\.)?bnrmetal\.com$ +^(.*\.)?boardreader\.com$ +^(.*\.)?bod\.asia$ +^(.*\.)?bodog88\.com$ +^(.*\.)?bonbonme\.com$ +^(.*\.)?bongacams\.com$ +^(.*\.)?boobstagram\.com$ +^(.*\.)?bookepub\.com$ +^(.*\.)?botanwang\.com$ +^(.*\.)?bot\.nu$ +^(.*\.)?bowenpress\.com$ +^(.*\.)?app\.box\.com$ +^(.*\.)?dl\.box\.net$ +^(.*\.)?boxpn\.com$ +^(.*\.)?boxun\.com$ +^(.*\.)?boxunblog\.com$ +^(.*\.)?boxunclub\.com$ +^(.*\.)?boyangu\.com$ +^(.*\.)?boyfriendtv\.com$ +^(.*\.)?boysfood\.com$ +^(.*\.)?br\.st$ +^(.*\.)?brainyquote\.com$ +^(.*\.)?brandonhutchinson\.com$ +^(.*\.)?braumeister\.org$ +^(.*\.)?bravotube\.net$ +^(.*\.)?brazzers\.com$ +^(.*\.)?break\.com$ +^(.*\.)?breakgfw\.com$ +^(.*\.)?breakingtweets\.com$ +^(.*\.)?breakwall\.net$ +^(.*\.)?briian\.com$ +^(.*\.)?briefdream\.com$ +^(.*\.)?brizzly\.com$ +^(.*\.)?broadbook\.com$ +^(.*\.)?broadpressinc\.com$ +^(.*\.)?bbs\.brockbbs\.com$ +^(.*\.)?brucewang\.net$ +^(.*\.)?brutaltgp\.com$ +^(.*\.)?bt95\.com$ +^(.*\.)?btdigg\.org$ +^(.*\.)?btku\.me$ +^(.*\.)?btku\.org$ +^(.*\.)?btspread\.com$ +^(.*\.)?budaedu\.org$ +^(.*\.)?buffered\.com$ +^(.*\.)?bullog\.org$ +^(.*\.)?bullogger\.com$ +^(.*\.)?bunbunhk\.com$ +^(.*\.)?busayari\.com$ +^(.*\.)?businessinsider\.com$ +^(.*\.)?businessweek\.com$ +^(.*\.)?busu\.org$ +^(.*\.)?busytrade\.com$ +^(.*\.)?buugaa\.com$ +^(.*\.)?buzzhand\.com$ +^(.*\.)?buzzhand\.net$ +^(.*\.)?bx\.tl$ +^(.*\.)?holz\.byethost8\.com$ +^(.*\.)?c-spanvideo\.org$ +^(.*\.)?c-est-simple\.com$ +^(.*\.)?c100tibet\.org$ +^(.*\.)?cablegatesearch\.net$ +^(.*\.)?cachinese\.com$ +^(.*\.)?cacnw\.com$ +^(.*\.)?cafepress\.com$ +^(.*\.)?calameo\.com$ +^(.*\.)?cn\.calameo\.com$ +^(.*\.)?calgarychinese\.ca$ +^(.*\.)?calgarychinese\.com$ +^(.*\.)?calgarychinese\.net$ +^(.*\.)?blog\.calibre-ebook\.com$ +^(.*\.)?falun\.caltech\.edu$ +^(.*\.)?its\.caltech\.edu$ +^(.*\.)?cam4\.com$ +^(.*\.)?cam4\.sg$ +^(.*\.)?camfrog\.com$ +^(.*\.)?cams\.com$ +^(.*\.)?cams\.org\.sg$ +^(.*\.)?canadameet\.com$ +^(.*\.)?bbs\.cantonese\.asia$ +^(.*\.)?canyu\.org$ +^(.*\.)?cao\.im$ +^(.*\.)?caobian\.info$ +^(.*\.)?caochangqing\.com$ +^(.*\.)?carabinasypistolas\.com$ +^(.*\.)?cardinalkungfoundation\.org$ +^(.*\.)?carmotorshow\.com$ +^(.*\.)?cartoonmovement\.com$ +^(.*\.)?casadeltibetbcn\.org$ +^(.*\.)?casatibet\.org\.mx$ +^(.*\.)?cari\.com\.my$ +^(.*\.)?caribbeancom\.com$ +^(.*\.)?casinoking\.com$ +^(.*\.)?casinoriva\.com$ +^(.*\.)?catch22\.net$ +^(.*\.)?catfightpayperview\.xxx$ +^(.*\.)?cattt\.com$ +^(.*\.)?cbc\.ca$ +^(.*\.)?cbsnews\.com$ +^(.*\.)?ccdtr\.org$ +^(.*\.)?cchere\.com$ +^(.*\.)?ccim\.org$ +^(.*\.)?cclife\.ca$ +^(.*\.)?cclife\.org$ +^(.*\.)?cclifefl\.org$ +^(.*\.)?ccthere\.com$ +^(.*\.)?cctongbao\.com$ +^(.*\.)?ccue\.ca$ +^(.*\.)?ccue\.com$ +^(.*\.)?ccvoice\.ca$ +^(.*\.)?cgdepot\.org$ +^(.*\.)?cdbook\.org$ +^(.*\.)?cdd\.me$ +^(.*\.)?cdef\.org$ +^(.*\.)?cdig\.info$ +^(.*\.)?cdjp\.org$ +^(.*\.)?cdninstagram\.com$ +^(.*\.)?cdp1989\.org$ +^(.*\.)?cdp1998\.org$ +^(.*\.)?cdp2006\.org$ +^(.*\.)?cdpeu\.org$ +^(.*\.)?cdpusa\.org$ +^(.*\.)?cdpweb\.org$ +^(.*\.)?cdpwu\.org$ +^(.*\.)?cdw\.com$ +^(.*\.)?cecc\.gov$ +^(.*\.)?cellulo\.info$ +^(.*\.)?centerforhumanreprod\.com$ +^(.*\.)?centralnation\.com$ +^(.*\.)?centurys\.net$ +^(.*\.)?cftfc\.com$ +^(.*\.)?cgst\.edu$ +^(.*\.)?change\.org$ +^(.*\.)?changp\.com$ +^(.*\.)?changsa\.net$ +^(.*\.)?chapm25\.com$ +^(.*\.)?chaturbate\.com$ +^(.*\.)?chuang-yen\.org$ +^(.*\.)?chengmingmag\.com$ +^(.*\.)?chenguangcheng\.com$ +^(.*\.)?chenpokong\.com$ +^(.*\.)?chenpokong\.net$ +^(.*\.)?cherrysave\.com$ +^(.*\.)?chhongbi\.org$ +^(.*\.)?chicagoncmtv\.com$ +^(.*\.)?china-week\.com$ +^(.*\.)?china101\.com$ +^(.*\.)?china18\.org$ +^(.*\.)?china21\.com$ +^(.*\.)?china21\.org$ +^(.*\.)?china5000\.us$ +^(.*\.)?chinaaffairs\.org$ +^(.*\.)?chinaaid\.me$ +^(.*\.)?chinaaid\.us$ +^(.*\.)?chinaaid\.org$ +^(.*\.)?chinaaid\.net$ +^(.*\.)?chinacomments\.org$ +^(.*\.)?chinachange\.org$ +^(.*\.)?chinacitynews\.be$ +^(.*\.)?chinadialogue\.net$ +^(.*\.)?chinadigitaltimes\.net$ +^(.*\.)?chinaelections\.org$ +^(.*\.)?chinaeweekly\.com$ +^(.*\.)?chinafreepress\.org$ +^(.*\.)?chinagate\.com$ +^(.*\.)?chinageeks\.org$ +^(.*\.)?chinagfw\.org$ +^(.*\.)?chinagreenparty\.org$ +^(.*\.)?chinahorizon\.org$ +^(.*\.)?chinahush\.com$ +^(.*\.)?chinalaborwatch\.org$ +^(.*\.)?chinalawtranslate\.com$ +^(.*\.)?chinaxchina\.com$ +^(.*\.)?chinainperspective\.com$ +^(.*\.)?chinainperspective\.net$ +^(.*\.)?chinainperspective\.org$ +^(.*\.)?chinainterimgov\.org$ +^(.*\.)?chinalawandpolicy\.com$ +^(.*\.)?chinamule\.com$ +^(.*\.)?chinamz\.org$ +^(.*\.)?chinapress\.com\.my$ +^(.*\.)?chinarightsia\.org$ +^(.*\.)?chinasmile\.net$ +^(.*\.)?chinasocialdemocraticparty\.com$ +^(.*\.)?chinasoul\.org$ +^(.*\.)?chinasucks\.net$ +^(.*\.)?chinatimes\.com$ +^(.*\.)?chinatweeps\.com$ +^(.*\.)?chinaway\.org$ +^(.*\.)?chinaworker\.info$ +^(.*\.)?chinayuanmin\.org$ +^(.*\.)?chinese-hermit\.net$ +^(.*\.)?chinese-leaders\.org$ +^(.*\.)?chinese-memorial\.org$ +^(.*\.)?chinesedaily\.com$ +^(.*\.)?chinesedailynews\.com$ +^(.*\.)?chinesedemocracy\.com$ +^(.*\.)?chinesegay\.org$ +^(.*\.)?chinesepen\.org$ +^(.*\.)?chinesetalks\.net$ +^(.*\.)?chingcheong\.com$ +^(.*\.)?chinman\.net$ +^(.*\.)?chithu\.org$ +^(.*\.)?chn\.chosun\.com$ +^(.*\.)?chrdnet\.com$ +^(.*\.)?christianfreedom\.org$ +^(.*\.)?christianstudy\.com$ +^(.*\.)?christusrex\.org$ +^(.*\.)?chromeadblock\.com$ +^(.*\.)?chubun\.com$ +^(.*\.)?chuizi\.net$ +^(.*\.)?churchinhongkong\.org$ +^(.*\.)?cipfg\.org$ +^(.*\.)?circlethebayfortibet\.org$ +^(.*\.)?citizenlab\.org$ +^(.*\.)?www\.citizenlab\.org$ +^(.*\.)?citizensradio\.org$ +^(.*\.)?city365\.ca$ +^(.*\.)?city9x\.com$ +^(.*\.)?civilhrfront\.org$ +^(.*\.)?civiliangunner\.com$ +^(.*\.)?psiphon\.civisec\.org$ +^(.*\.)?ck101\.com$ +^(.*\.)?clarionproject\.org$ +^(.*\.)?classicalguitarblog\.net$ +^(.*\.)?clearharmony\.net$ +^(.*\.)?clearwisdom\.net$ +^(.*\.)?cloakpoint\.com$ +^(.*\.)?www\.cmoinc\.org$ +^(.*\.)?cmule\.com$ +^(.*\.)?cmule\.org$ +^(.*\.)?cms\.gov$ +^(.*\.)?cnabc\.com$ +^(.*\.)?cnd\.org$ +^(.*\.)?download\.cnet\.com$ +^(.*\.)?cnineu\.com$ +^(.*\.)?wiki\.cnitter\.com$ +^(.*\.)?cnn\.com$ +^(.*\.)?cnpolitics\.org$ +^(.*\.)?blog\.cnyes\.com$ +^(.*\.)?news\.cnyes\.com$ +^(.*\.)?cochina\.co$ +^(.*\.)?cochina\.org$ +^(.*\.)?code1984\.com$ +^(.*\.)?goagent\.codeplex\.com$ +^(.*\.)?codeshare\.io$ +^(.*\.)?codeskulptor\.org$ +^(.*\.)?tosh\.comedycentral\.com$ +^(.*\.)?comefromchina\.com$ +^(.*\.)?comic-mega\.me$ +^(.*\.)?commandarms\.com$ +^(.*\.)?commentshk\.com$ +^(.*\.)?communistcrimes\.org$ +^(.*\.)?communitychoicecu\.com$ +^(.*\.)?compileheart\.com$ +^(.*\.)?contactmagazine\.net$ +^(.*\.)?convio\.net$ +^(.*\.)?coobay\.com$ +^(.*\.)?www\.cool18\.com$ +^(.*\.)?coolaler\.com$ +^(.*\.)?coolder\.com$ +^(.*\.)?coolncute\.com$ +^(.*\.)?corumcollege\.com$ +^(.*\.)?cos-moe\.com$ +^(.*\.)?couchdbwiki\.com$ +^(.*\.)?cotweet\.com$ +^(.*\.)?cpj\.org$ +^(.*\.)?crackle\.com$ +^(.*\.)?crchina\.org$ +^(.*\.)?crd-net\.org$ +^(.*\.)?creaders\.net$ +^(.*\.)?creadersnet\.com$ +^(.*\.)?cristyli\.com$ +^(.*\.)?crocotube\.com$ +^(.*\.)?crossthewall\.net$ +^(.*\.)?csdparty\.com$ +^(.*\.)?ctao\.org$ +^(.*\.)?ctfriend\.net$ +^(.*\.)?cuhkacs\.org$ +^(.*\.)?cuihua\.org$ +^(.*\.)?cuiweiping\.net$ +^(.*\.)?cumlouder\.com$ +^(.*\.)?curvefish\.com$ +^(.*\.)?forum\.cyberctm\.com$ +^(.*\.)?cynscribe\.com$ +^(.*\.)?cytode\.us$ +^(.*\.)?ifan\.cz\.cc$ +^(.*\.)?mike\.cz\.cc$ +^(.*\.)?nic\.cz\.cc$ +^(.*\.)?cl\.d0z\.net$ +^(.*\.)?d100\.net$ +^(.*\.)?d2bay\.com$ +^(.*\.)?dabr\.mobi$ +^(.*\.)?dabr\.me$ +^(.*\.)?dadazim\.com$ +^(.*\.)?dadi360\.com$ +^(.*\.)?dafagood\.com$ +^(.*\.)?dafahao\.com$ +^(.*\.)?dailidaili\.com$ +^(.*\.)?dailymotion\.com$ +^(.*\.)?daiphapinfo\.net$ +^(.*\.)?dajiyuan\.com$ +^(.*\.)?dalailama\.com$ +^(.*\.)?dalailama\.mn$ +^(.*\.)?dalailama80\.org$ +^(.*\.)?dalailama-archives\.org$ +^(.*\.)?dalailamacenter\.org$ +^(.*\.)?dalailamafellows\.org$ +^(.*\.)?dalailamafilm\.com$ +^(.*\.)?dalailamafoundation\.org$ +^(.*\.)?dalailamahindi\.com$ +^(.*\.)?dalailamainaustralia\.org$ +^(.*\.)?dalailamajapanese\.com$ +^(.*\.)?dalailamaprotesters\.info$ +^(.*\.)?dalailamaquotes\.org$ +^(.*\.)?dalailamatrust\.org$ +^(.*\.)?dalailamavisit\.org\.nz$ +^(.*\.)?dalailamaworld\.com$ +^(.*\.)?dalianmeng\.org$ +^(.*\.)?daliulian\.org$ +^(.*\.)?danke4china\.net$ +^(.*\.)?danwei\.org$ +^(.*\.)?daolan\.net$ +^(.*\.)?darktoy\.net$ +^(.*\.)?dastrassi\.org$ +^(.*\.)?david-kilgour\.com$ +^(.*\.)?cn\.dayabook\.com$ +^(.*\.)?daylife\.com$ +^(.*\.)?db\.tt$ +^(.*\.)?dcmilitary\.com$ +^(.*\.)?ddhw\.info$ +^(.*\.)?ddns\.net$ +^(.*\.)?de-sci\.org$ +^(.*\.)?packages\.debian\.org$ +^(.*\.)?decodet\.co$ +^(.*\.)?definebabe\.com$ +^(.*\.)?delcamp\.net$ +^(.*\.)?delicious\.com$ +^(.*\.)?democrats\.org$ +^(.*\.)?desc\.se$ +^(.*\.)?dessci\.com$ +^(.*\.)?devio\.us$ +^(.*\.)?dfas\.mil$ +^(.*\.)?dfn\.org$ +^(.*\.)?dharmakara\.net$ +^(.*\.)?dharamsalanet\.com$ +^(.*\.)?diaoyuislands\.org$ +^(.*\.)?digitalnomadsproject\.org$ +^(.*\.)?diigo\.com$ +^(.*\.)?dilber\.se$ +^(.*\.)?furl\.net$ +^(.*\.)?dipity\.com$ +^(.*\.)?directcreative\.com$ +^(.*\.)?search\.disconnect\.me$ +^(.*\.)?discuss4u\.com$ +^(.*\.)?disp\.cc$ +^(.*\.)?disqus\.com$ +^(.*\.)?dit-inc\.us$ +^(.*\.)?dizhidizhi\.com$ +^(.*\.)?dizhuzhishang\.com$ +^(.*\.)?djangosnippets\.org$ +^(.*\.)?djorz\.com$ +^(.*\.)?dlsite\.com$ +^(.*\.)?dmcdn\.net$ +^(.*\.)?dnscrypt\.org$ +^(.*\.)?dns2go\.com$ +^(.*\.)?dnssec\.net$ +^(.*\.)?doctorvoice\.org$ +^(.*\.)?dogfartnetwork\.com$ +^(.*\.)?gloryhole\.com$ +^(.*\.)?dojin\.com$ +^(.*\.)?dok-forum\.net$ +^(.*\.)?dollf\.com$ +^(.*\.)?dongtaiwang\.com$ +^(.*\.)?dongtaiwang\.net$ +^(.*\.)?dongyangjing\.com$ +^(.*\.)?dontfilter\.us$ +^(.*\.)?dontmovetochina\.com$ +^(.*\.)?dorjeshugden\.com$ +^(.*\.)?dotplane\.com$ +^(.*\.)?dotsub\.com$ +^(.*\.)?dougscripts\.com$ +^(.*\.)?doujincafe\.com$ +^(.*\.)?dowei\.org$ +^(.*\.)?dphk\.org$ +^(.*\.)?dpr\.info$ +^(.*\.)?dragonsprings\.org$ +^(.*\.)?draw\.io$ +^(.*\.)?dreammask\.org$ +^(.*\.)?drepung\.org$ +^(.*\.)?drgan\.net$ +^(.*\.)?drmingxia\.org$ +^(.*\.)?dropbox\.com$ +^(.*\.)?dropboxusercontent\.com$ +^(.*\.)?drsunacademy\.com$ +^(.*\.)?drtuber\.com$ +^(.*\.)?dscn\.info$ +^(.*\.)?dstk\.dk$ +^(.*\.)?dtiblog\.com$ +^(.*\.)?dtic\.mil$ +^(.*\.)?dtiserv2\.com$ +^(.*\.)?dtwang\.org$ +^(.*\.)?duckdns\.org$ +^(.*\.)?duckduckgo\.com$ +^(.*\.)?duckload\.com$ +^(.*\.)?duckmylife\.com$ +^(.*\.)?duihua\.org$ +^(.*\.)?duihuahrjournal\.org$ +^(.*\.)?duoweitimes\.com$ +^(.*\.)?duping\.net$ +^(.*\.)?duplicati\.com$ +^(.*\.)?dupola\.com$ +^(.*\.)?dupola\.net$ +^(.*\.)?dushi\.ca$ +^(.*\.)?dvorak\.org$ +^(.*\.)?dw\.com$ +^(.*\.)?www\.dw\.com$ +^(.*\.)?dw-world\.com$ +^(.*\.)?www\.dwheeler\.com$ +^(.*\.)?dwnews\.com$ +^(.*\.)?dwnews\.net$ +^(.*\.)?xys\.dxiong\.com$ +^(.*\.)?dynawebinc\.com$ +^(.*\.)?dyndns\.org$ +^(.*\.)?dzze\.com$ +^(.*\.)?e-gold\.com$ +^(.*\.)?g\.e-hentai\.org$ +^(.*\.)?lofi\.e-hentai\.org$ +^(.*\.)?e-traderland\.net$ +^(.*\.)?earlytibet\.com$ +^(.*\.)?earthcam\.com$ +^(.*\.)?eastern-ark\.com$ +^(.*\.)?easternlightning\.org$ +^(.*\.)?eastturkestan\.com$ +^(.*\.)?www\.eastturkistan\.net$ +^(.*\.)?eastturkistan-gov\.org$ +^(.*\.)?eastturkistancc\.org$ +^(.*\.)?eastturkistangovernmentinexile\.us$ +^(.*\.)?easyca\.ca$ +^(.*\.)?easypic\.com$ +^(.*\.)?ebony-beauty\.com$ +^(.*\.)?ebookbrowse\.com$ +^(.*\.)?ebookee\.com$ +^(.*\.)?ecministry\.net$ +^(.*\.)?economist\.com$ +^(.*\.)?bbs\.ecstart\.com$ +^(.*\.)?edgecastcdn\.net$ +^(.*\.)?edicypages\.com$ +^(.*\.)?edmontonservice\.com$ +^(.*\.)?edoors\.com$ +^(.*\.)?edubridge\.com$ +^(.*\.)?edupro\.org$ +^(.*\.)?efukt\.com$ +^(.*\.)?eic-av\.com$ +^(.*\.)?eisbb\.com$ +^(.*\.)?eksisozluk\.com$ +^(.*\.)?electionsmeter\.com$ +^(.*\.)?elgoog\.im$ +^(.*\.)?elpais\.com$ +^(.*\.)?eltondisney\.com$ +^(.*\.)?emaga\.com$ +^(.*\.)?empfil\.com$ +^(.*\.)?emule-ed2k\.com$ +^(.*\.)?emulefans\.com$ +^(.*\.)?emuparadise\.me$ +^(.*\.)?enewstree\.com$ +^(.*\.)?chinese\.engadget\.com$ +^(.*\.)?englishforeveryone\.org$ +^(.*\.)?entermap\.com$ +^(.*\.)?entnt\.com$ +^(.*\.)?episcopalchurch\.org$ +^(.*\.)?epochhk\.com$ +^(.*\.)?epochtimes-bg\.com$ +^(.*\.)?epochtimes-romania\.com$ +^(.*\.)?epochtimes\.co\.il$ +^(.*\.)?epochtimes\.co\.kr$ +^(.*\.)?epochtimes\.com$ +^(.*\.)?epochtimes\.cz$ +^(.*\.)?epochtimes\.ie$ +^(.*\.)?epochtimes\.it$ +^(.*\.)?epochtimes\.se$ +^(.*\.)?epochtimestr\.com$ +^(.*\.)?epochweek\.com$ +^(.*\.)?epochweekly\.com$ +^(.*\.)?eporner\.com$ +^(.*\.)?equinenow\.com$ +^(.*\.)?erabaru\.net$ +^(.*\.)?eraysoft\.com\.tr$ +^(.*\.)?erepublik\.com$ +^(.*\.)?erights\.net$ +^(.*\.)?erktv\.com$ +^(.*\.)?ernestmandel\.org$ +^(.*\.)?erodaizensyu\.com$ +^(.*\.)?erodoujinworld\.com$ +^(.*\.)?eromanga-kingdom\.com$ +^(.*\.)?eromangadouzin\.com$ +^(.*\.)?eromon\.net$ +^(.*\.)?eroprofile\.com$ +^(.*\.)?eroticsaloon\.net$ +^(.*\.)?eslite\.com$ +^(.*\.)?wiki\.esu\.im$ +^(.*\.)?etaiwannews\.com$ +^(.*\.)?etizer\.org$ +^(.*\.)?etokki\.com$ +^(.*\.)?ettoday\.net$ +^(.*\.)?eu\.org$ +^(.*\.)?eucasino\.com$ +^(.*\.)?eulam\.com$ +^(.*\.)?evschool\.net$ +^(.*\.)?exmormon\.org$ +^(.*\.)?expatshield\.com$ +^(.*\.)?experts-univers\.com$ +^(.*\.)?exploader\.net$ +^(.*\.)?extremetube\.com$ +^(.*\.)?eyny\.com$ +^(.*\.)?ezpc\.tk$ +^(.*\.)?ezpeer\.com$ +^(.*\.)?facebookquotes4u\.com$ +^(.*\.)?faceless\.me$ +^(.*\.)?facesoftibetanselfimmolators\.info$ +^(.*\.)?facesofnyfw\.com$ +^(.*\.)?faith100\.org$ +^(.*\.)?faithfuleye\.com$ +^(.*\.)?faiththedog\.info$ +^(.*\.)?falsefire\.com$ +^(.*\.)?falun-co\.org$ +^(.*\.)?falunart\.org$ +^(.*\.)?falunasia\.info$ +^(.*\.)?falundafa\.org$ +^(.*\.)?falundafa-dc\.org$ +^(.*\.)?falundafa-florida\.org$ +^(.*\.)?falundafa-nc\.org$ +^(.*\.)?falundafa-pa\.net$ +^(.*\.)?falun-ny\.net$ +^(.*\.)?falundafaindia\.org$ +^(.*\.)?falundafamuseum\.org$ +^(.*\.)?falunhr\.org$ +^(.*\.)?faluninfo\.net$ +^(.*\.)?falunpilipinas\.net$ +^(.*\.)?falunworld\.net$ +^(.*\.)?familyfed\.org$ +^(.*\.)?fanglizhi\.info$ +^(.*\.)?fangong\.org$ +^(.*\.)?fangongheike\.com$ +^(.*\.)?fanqiang\.tk$ +^(.*\.)?fanqianghou\.com$ +^(.*\.)?fapdu\.com$ +^(.*\.)?fawanghuihui\.org$ +^(.*\.)?fbcdn\.net$ +^(.*\.)?fanqiangyakexi\.net$ +^(.*\.)?famunion\.com$ +^(.*\.)?fan-qiang\.com$ +^(.*\.)?fangbinxing\.com$ +^(.*\.)?fangeming\.com$ +^(.*\.)?fangmincn\.org$ +^(.*\.)?fanswong\.com$ +^(.*\.)?fanyue\.info$ +^(.*\.)?farwestchina\.com$ +^(.*\.)?en\.favotter\.net$ +^(.*\.)?fast\.wistia\.com$ +^(.*\.)?fastssh\.com$ +^(.*\.)?faststone\.org$ +^(.*\.)?favstar\.fm$ +^(.*\.)?faydao\.com$ +^(.*\.)?fbsbx\.com$ +^(.*\.)?fc2\.com$ +^(.*\.)?fc2china\.com$ +^(.*\.)?fc2cn\.com$ +^(.*\.)?fc2blog\.net$ +^(.*\.)?uygur\.fc2web\.com$ +^(.*\.)?video\.fdbox\.com$ +^(.*\.)?fourface\.nodesnoop\.com$ +^(.*\.)?feelssh\.com$ +^(.*\.)?feer\.com$ +^(.*\.)?feifeiss\.com$ +^(.*\.)?feitianacademy\.org$ +^(.*\.)?feitian-california\.org$ +^(.*\.)?feministteacher\.com$ +^(.*\.)?fengzhenghu\.com$ +^(.*\.)?fengzhenghu\.net$ +^(.*\.)?fevernet\.com$ +^(.*\.)?ff\.im$ +^(.*\.)?fffff\.at$ +^(.*\.)?fflick\.com$ +^(.*\.)?fgmtv\.net$ +^(.*\.)?fgmtv\.org$ +^(.*\.)?fhreports\.net$ +^(.*\.)?fileflyer\.com$ +^(.*\.)?feeds\.fileforum\.com$ +^(.*\.)?files2me\.com$ +^(.*\.)?fileserve\.com$ +^(.*\.)?fillthesquare\.org$ +^(.*\.)?filmingfortibet\.org$ +^(.*\.)?filthdump\.com$ +^(.*\.)?findmespot\.com$ +^(.*\.)?fingerdaily\.com$ +^(.*\.)?finler\.net$ +^(.*\.)?firefoxfan\.cc$ +^(.*\.)?fireofliberty\.org$ +^(.*\.)?firetweet\.io$ +^(.*\.)?flagsonline\.it$ +^(.*\.)?fleshbot\.com$ +^(.*\.)?fleursdeslettres\.com$ +^(.*\.)?flgg\.us$ +^(.*\.)?flickr\.com$ +^(.*\.)?staticflickr\.com$ +^(.*\.)?flickrhivemind\.net$ +^(.*\.)?fling\.com$ +^(.*\.)?flipkart\.com$ +^(.*\.)?cn\.fmnnow\.com$ +^(.*\.)?fofldfradio\.org$ +^(.*\.)?blog\.foolsmountain\.com$ +^(.*\.)?forum4hk\.com$ +^(.*\.)?fangong\.forums-free\.com$ +^(.*\.)?pioneer-worker\.forums-free\.com$ +^(.*\.)?4sqi\.net$ +^(.*\.)?fotop\.net$ +^(.*\.)?video\.foxbusiness\.com$ +^(.*\.)?foxgay\.com$ +^(.*\.)?fringenetwork\.com$ +^(.*\.)?fochk\.org$ +^(.*\.)?fofg\.org$ +^(.*\.)?fofg-europe\.net$ +^(.*\.)?fooooo\.com$ +^(.*\.)?footwiball\.com$ +^(.*\.)?fourthinternational\.org$ +^(.*\.)?foxdie\.us$ +^(.*\.)?foxsub\.com$ +^(.*\.)?foxtang\.com$ +^(.*\.)?fpmt\.org$ +^(.*\.)?fpmt-osel\.org$ +^(.*\.)?fpmtmexico\.org$ +^(.*\.)?fqok\.org$ +^(.*\.)?fqrouter\.com$ +^(.*\.)?franklc\.com$ +^(.*\.)?freakshare\.com$ +^(.*\.)?free4u\.com\.ar$ +^(.*\.)?free-gate\.org$ +^(.*\.)?freealim\.com$ +^(.*\.)?whitebear\.freebearblog\.org$ +^(.*\.)?freebrowser\.org$ +^(.*\.)?freechal\.com$ +^(.*\.)?freecn\.top$ +^(.*\.)?freedomchina\.info$ +^(.*\.)?freedomhouse\.org$ +^(.*\.)?freedomsherald\.org$ +^(.*\.)?freefq\.com$ +^(.*\.)?freefuckvids\.com$ +^(.*\.)?freegao\.com$ +^(.*\.)?free-hada-now\.org$ +^(.*\.)?freeilhamtohti\.org$ +^(.*\.)?freelotto\.com$ +^(.*\.)?freeman2\.com$ +^(.*\.)?freemoren\.com$ +^(.*\.)?freemorenews\.com$ +^(.*\.)?freemuse\.org$ +^(.*\.)?freenet-china\.org$ +^(.*\.)?freenewscn\.com$ +^(.*\.)?cn\.freeones\.com$ +^(.*\.)?freeoz\.org$ +^(.*\.)?freessh\.us$ +^(.*\.)?free-ssh\.com$ +^(.*\.)?freedomcollection\.org$ +^(.*\.)?freeforums\.org$ +^(.*\.)?freenetproject\.org$ +^(.*\.)?freetibet\.net$ +^(.*\.)?freetibet\.org$ +^(.*\.)?freetibetanheroes\.org$ +^(.*\.)?freeviewmovies\.com$ +^(.*\.)?freewallpaper4\.me$ +^(.*\.)?freewebs\.com$ +^(.*\.)?freeweibo\.com$ +^(.*\.)?freexinwen\.com$ +^(.*\.)?friendfeed\.com$ +^(.*\.)?friendfeed-media\.com$ +^(.*\.)?friends-of-tibet\.org$ +^(.*\.)?friendsoftibet\.org$ +^(.*\.)?freechina\.net$ +^(.*\.)?www\.zensur\.freerk\.com$ +^(.*\.)?freeyellow\.com$ +^(.*\.)?hk\.frienddy\.com$ +^(.*\.)?adult\.friendfinder\.com$ +^(.*\.)?fring\.com$ +^(.*\.)?fromchinatousa\.net$ +^(.*\.)?frommel\.net$ +^(.*\.)?frontlinedefenders\.org$ +^(.*\.)?fscked\.org$ +^(.*\.)?fsurf\.com$ +^(.*\.)?ftchinese\.com$ +^(.*\.)?www\.ftchinese\.com$ +^(.*\.)?fucd\.com$ +^(.*\.)?fuckcnnic\.net$ +^(.*\.)?fuckgfw\.org$ +^(.*\.)?fullerconsideration\.com$ +^(.*\.)?fulue\.com$ +^(.*\.)?funp\.com$ +^(.*\.)?fuq\.com$ +^(.*\.)?furhhdl\.org$ +^(.*\.)?furinkan\.com$ +^(.*\.)?futurechinaforum\.org$ +^(.*\.)?futuremessage\.org$ +^(.*\.)?fux\.com$ +^(.*\.)?fuyin\.net$ +^(.*\.)?fuyindiantai\.org$ +^(.*\.)?fw\.cm$ +^(.*\.)?fzh999\.com$ +^(.*\.)?fzh999\.net$ +^(.*\.)?fzlm\.com$ +^(.*\.)?g6hentai\.com$ +^(.*\.)?g-queen\.com$ +^(.*\.)?gabocorp\.com$ +^(.*\.)?gaforum\.org$ +^(.*\.)?galaxymacau\.com$ +^(.*\.)?galenwu\.com$ +^(.*\.)?galstars\.net$ +^(.*\.)?game735\.com$ +^(.*\.)?gamejolt\.com$ +^(.*\.)?gamousa\.com$ +^(.*\.)?gaoming\.net$ +^(.*\.)?ganges\.com$ +^(.*\.)?gaopi\.net$ +^(.*\.)?gaozhisheng\.org$ +^(.*\.)?gaozhisheng\.net$ +^(.*\.)?gardennetworks\.com$ +^(.*\.)?gardennetworks\.org$ +^(.*\.)?gartlive\.com$ +^(.*\.)?gather\.com$ +^(.*\.)?gaybubble\.com$ +^(.*\.)?gaycn\.net$ +^(.*\.)?gaymap\.cc$ +^(.*\.)?gaytube\.com$ +^(.*\.)?gazotube\.com$ +^(.*\.)?gclooney\.com$ +^(.*\.)?gcpnews\.com$ +^(.*\.)?gdbt\.net$ +^(.*\.)?gdzf\.org$ +^(.*\.)?geek-art\.net$ +^(.*\.)?geekerhome\.com$ +^(.*\.)?geekheart\.info$ +^(.*\.)?geekmanuals\.com$ +^(.*\.)?gelbooru\.com$ +^(.*\.)?geocities\.com$ +^(.*\.)?hk\.geocities\.com$ +^(.*\.)?geohot\.com$ +^(.*\.)?geometrictools\.com$ +^(.*\.)?gerefoundation\.org$ +^(.*\.)?getchu\.com$ +^(.*\.)?getcloak\.com$ +^(.*\.)?getfreedur\.com$ +^(.*\.)?getgom\.com$ +^(.*\.)?getlantern\.org$ +^(.*\.)?getjetso\.com$ +^(.*\.)?getiton\.com$ +^(.*\.)?getsocialscope\.com$ +^(.*\.)?gfsale\.com$ +^(.*\.)?gfw\.org\.ua$ +^(.*\.)?gfw\.press$ +^(.*\.)?ggssl\.com$ +^(.*\.)?ghost\.org$ +^(.*\.)?ghostpath\.com$ +^(.*\.)?ghut\.org$ +^(.*\.)?tw\.gigacircle\.com$ +^(.*\.)?cn\.giganews\.com$ +^(.*\.)?girlbanker\.com$ +^(.*\.)?git\.io$ +^(.*\.)?softwaredownload\.gitbooks\.io$ +^(.*\.)?gist\.github\.com$ +^(.*\.)?github\.io$ +^(.*\.)?gizlen\.net$ +^(.*\.)?gjczz\.com$ +^(.*\.)?glennhilton\.com$ +^(.*\.)?globaljihad\.net$ +^(.*\.)?globalmediaoutreach\.com$ +^(.*\.)?globalmuseumoncommunism\.org$ +^(.*\.)?globalrescue\.net$ +^(.*\.)?globaltm\.org$ +^(.*\.)?globalvoicesonline\.org$ +^(.*\.)?glock\.com$ +^(.*\.)?gluckman\.com$ +^(.*\.)?gmhz\.org$ +^(.*\.)?www\.gmiddle\.com$ +^(.*\.)?www\.gmiddle\.net$ +^(.*\.)?gmll\.org$ +^(.*\.)?go-pki\.com$ +^(.*\.)?goagent\.biz$ +^(.*\.)?goagentplus\.com$ +^(.*\.)?gobet\.cc$ +^(.*\.)?godfootsteps\.org$ +^(.*\.)?godns\.work$ +^(.*\.)?godsdirectcontact\.org$ +^(.*\.)?godsimmediatecontact\.com$ +^(.*\.)?gokbayrak\.com$ +^(.*\.)?goldbet\.com$ +^(.*\.)?goldbetsports\.com$ +^(.*\.)?goldenfrog\.com$ +^(.*\.)?goldstep\.net$ +^(.*\.)?goldwave\.com$ +^(.*\.)?gongmeng\.info$ +^(.*\.)?gongminliliang\.com$ +^(.*\.)?gongwt\.com$ +^(.*\.)?goodreads\.com$ +^(.*\.)?goodreaders\.com$ +^(.*\.)?goofind\.com$ +^(.*\.)?googlesile\.com$ +^(.*\.)?gopetition\.com$ +^(.*\.)?goproxing\.net$ +^(.*\.)?gotrusted\.com$ +^(.*\.)?gotw\.ca$ +^(.*\.)?grammaly\.com$ +^(.*\.)?grandtrial\.org$ +^(.*\.)?greatfirewall\.biz$ +^(.*\.)?greatfirewallofchina\.net$ +^(.*\.)?greatfirewallofchina\.org$ +^(.*\.)?greenpeace\.org$ +^(.*\.)?greenreadings\.com$ +^(.*\.)?great-firewall\.com$ +^(.*\.)?great-roc\.org$ +^(.*\.)?greatroc\.org$ +^(.*\.)?greatzhonghua\.org$ +^(.*\.)?gs-discuss\.com$ +^(.*\.)?gtricks\.com$ +^(.*\.)?guancha\.org$ +^(.*\.)?guardster\.com$ +^(.*\.)?gun-world\.net$ +^(.*\.)?gunsandammo\.com$ +^(.*\.)?gutteruncensored\.com$ +^(.*\.)?gzone-anime\.info$ +^(.*\.)?clementine-player\.org$ +^(.*\.)?echofon\.com$ +^(.*\.)?golang\.org$ +^(.*\.)?greasespot\.net$ +^(.*\.)?www\.klip\.me$ +^(.*\.)?stephaniered\.com$ +^(.*\.)?ub0\.cc$ +^(.*\.)?gospelherald\.com$ +^(.*\.)?hk\.gradconnection\.com$ +^(.*\.)?grangorz\.org$ +^(.*\.)?graylog2\.org$ +^(.*\.)?greatfire\.org$ +^(.*\.)?gstatic\.com$ +^(.*\.)?gu-chu-sum\.org$ +^(.*\.)?guishan\.org$ +^(.*\.)?gunsamerica\.com$ +^(.*\.)?gvlib\.com$ +^(.*\.)?gyalwarinpoche\.com$ +^(.*\.)?gyatsostudio\.com$ +^(.*\.)?h-china\.org$ +^(.*\.)?h-moe\.com$ +^(.*\.)?h1n1china\.org$ +^(.*\.)?hacg\.club$ +^(.*\.)?hacg\.li$ +^(.*\.)?hacg\.red$ +^(.*\.)?hacken\.cc$ +^(.*\.)?hackthatphone\.net$ +^(.*\.)?hahlo\.com$ +^(.*\.)?bbs\.hanminzu\.org$ +^(.*\.)?hanunyi\.com$ +^(.*\.)?ae\.hao123\.com$ +^(.*\.)?ar\.hao123\.com$ +^(.*\.)?br\.hao123\.com$ +^(.*\.)?en\.hao123\.com$ +^(.*\.)?id\.hao123\.com$ +^(.*\.)?jp\.hao123\.com$ +^(.*\.)?ma\.hao123\.com$ +^(.*\.)?mx\.hao123\.com$ +^(.*\.)?sa\.hao123\.com$ +^(.*\.)?th\.hao123\.com$ +^(.*\.)?tw\.hao123\.com$ +^(.*\.)?vn\.hao123\.com$ +^(.*\.)?hk\.hao123img\.com$ +^(.*\.)?ld\.hao123img\.com$ +^(.*\.)?harunyahya\.com$ +^(.*\.)?hasaowall\.com$ +^(.*\.)?bbs\.hasi\.wang$ +^(.*\.)?have8\.com$ +^(.*\.)?hdtvb\.net$ +^(.*\.)?hdzog\.com$ +^(.*\.)?heartyit\.com$ +^(.*\.)?hec\.su$ +^(.*\.)?hecaitou\.net$ +^(.*\.)?hechaji\.com$ +^(.*\.)?hegre-art\.com$ +^(.*\.)?cdn\.helixstudios\.net$ +^(.*\.)?helplinfen\.com$ +^(.*\.)?helloandroid\.com$ +^(.*\.)?helloqueer\.com$ +^(.*\.)?hellotxt\.com$ +^(.*\.)?hentai\.to$ +^(.*\.)?hellouk\.org$ +^(.*\.)?helpeachpeople\.com$ +^(.*\.)?helpzhuling\.org$ +^(.*\.)?hentaivideoworld\.com$ +^(.*\.)?getcloudapp\.com$ +^(.*\.)?cl\.ly$ +^(.*\.)?getsmartlinks\.com$ +^(.*\.)?git-scm\.com$ +^(.*\.)?heqinglian\.net$ +^(.*\.)?heungkongdiscuss\.com$ +^(.*\.)?hexxeh\.net$ +^(.*\.)?app\.heywire\.com$ +^(.*\.)?heyzo\.com$ +^(.*\.)?hgseav\.com$ +^(.*\.)?hhdcb3office\.org$ +^(.*\.)?hidden-advent\.org$ +^(.*\.)?hidecloud\.com$ +^(.*\.)?hide\.me$ +^(.*\.)?hideman\.net$ +^(.*\.)?hideme\.nl$ +^(.*\.)?hidemyass\.com$ +^(.*\.)?hidemycomp\.com$ +^(.*\.)?hihiforum\.com$ +^(.*\.)?hihistory\.net$ +^(.*\.)?higfw\.com$ +^(.*\.)?highpeakspureearth\.com$ +^(.*\.)?highrockmedia\.com$ +^(.*\.)?hiitch\.com$ +^(.*\.)?hikinggfw\.org$ +^(.*\.)?himalayan-foundation\.org$ +^(.*\.)?himalayanglacier\.com$ +^(.*\.)?himemix\.com$ +^(.*\.)?himemix\.net$ +^(.*\.)?times\.hinet\.net$ +^(.*\.)?hizbuttahrir\.org$ +^(.*\.)?hizb-ut-tahrir\.info$ +^(.*\.)?hizb-ut-tahrir\.org$ +^(.*\.)?hjclub\.info$ +^(.*\.)?hk-pub\.com$ +^(.*\.)?hk01\.com$ +^(.*\.)?hk32168\.com$ +^(.*\.)?hkatvnews\.com$ +^(.*\.)?hkbc\.net$ +^(.*\.)?hkbf\.org$ +^(.*\.)?hkbookcity\.com$ +^(.*\.)?hkchurch\.org$ +^(.*\.)?hkcmi\.edu$ +^(.*\.)?hkcoc\.com$ +^(.*\.)?hkday\.net$ +^(.*\.)?hkdf\.org$ +^(.*\.)?hkej\.com$ +^(.*\.)?hkepc\.com$ +^(.*\.)?china\.hket\.com$ +^(.*\.)?hkfaa\.com$ +^(.*\.)?hkfreezone\.com$ +^(.*\.)?hkfront\.org$ +^(.*\.)?m\.hkgalden\.com$ +^(.*\.)?hkgolden\.com$ +^(.*\.)?hkgreenradio\.org$ +^(.*\.)?hkheadline\.com$ +^(.*\.)?hkhkhk\.com$ +^(.*\.)?hkjc\.com$ +^(.*\.)?hkjp\.org$ +^(.*\.)?hklft\.com$ +^(.*\.)?news\.hkpeanut\.com$ +^(.*\.)?hkptu\.org$ +^(.*\.)?hkreporter\.com$ +^(.*\.)?hkusu\.net$ +^(.*\.)?hkvwet\.com$ +^(.*\.)?hkzone\.org$ +^(.*\.)?hnjhj\.com$ +^(.*\.)?hnntube\.com$ +^(.*\.)?hola\.com$ +^(.*\.)?hola\.org$ +^(.*\.)?holymountaincn\.com$ +^(.*\.)?holyspiritspeaks\.org$ +^(.*\.)?derekhsu\.homeip\.net$ +^(.*\.)?homeperversion\.com$ +^(.*\.)?homeservershow\.com$ +^(.*\.)?old\.honeynet\.org$ +^(.*\.)?hongkongfp\.com$ +^(.*\.)?hongmeimei\.com$ +^(.*\.)?hongzhi\.li$ +^(.*\.)?hootsuite\.com$ +^(.*\.)?hopto\.org$ +^(.*\.)?hornygamer\.com$ +^(.*\.)?hotgoo\.com$ +^(.*\.)?hotpornshow\.com$ +^(.*\.)?hotshame\.com$ +^(.*\.)?hotspotshield\.com$ +^(.*\.)?hougaige\.com$ +^(.*\.)?howtoforge\.com$ +^(.*\.)?hqcdp\.org$ +^(.*\.)?hqmovies\.com$ +^(.*\.)?hrcir\.com$ +^(.*\.)?hrcchina\.org$ +^(.*\.)?hrea\.org$ +^(.*\.)?hrichina\.org$ +^(.*\.)?hrw\.org$ +^(.*\.)?hrweb\.org$ +^(.*\.)?hsjp\.net$ +^(.*\.)?hsselite\.com$ +^(.*\.)?hstern\.net$ +^(.*\.)?hstt\.net$ +^(.*\.)?htkou\.net$ +^(.*\.)?htmldog\.com$ +^(.*\.)?hua-yue\.net$ +^(.*\.)?huaglad\.com$ +^(.*\.)?huanghuagang\.org$ +^(.*\.)?huangyiyu\.com$ +^(.*\.)?huaren\.us$ +^(.*\.)?huaxia-news\.com$ +^(.*\.)?huaxiabao\.org$ +^(.*\.)?huaxin\.ph$ +^(.*\.)?huayuworld\.org$ +^(.*\.)?huffingtonpost\.com$ +^(.*\.)?huhaitai\.com$ +^(.*\.)?huhamhire\.com$ +^(.*\.)?hulkshare\.com$ +^(.*\.)?humanrightsbriefing\.org$ +^(.*\.)?hung-ya\.com$ +^(.*\.)?hungerstrikeforaids\.org$ +^(.*\.)?huping\.net$ +^(.*\.)?hurgokbayrak\.com$ +^(.*\.)?hurriyet\.com\.tr$ +^(.*\.)?hutianyi\.net$ +^(.*\.)?hutong9\.net$ +^(.*\.)?huyandex\.com$ +^(.*\.)?hwinfo\.com$ +^(.*\.)?fang-lizhi\.hxwk\.org$ +^(.*\.)?hxwq\.org$ +^(.*\.)?hyperrate\.com$ +^(.*\.)?i2runner\.com$ +^(.*\.)?i818hk\.com$ +^(.*\.)?i-cable\.com$ +^(.*\.)?iask\.ca$ +^(.*\.)?iask\.bz$ +^(.*\.)?iav19\.com$ +^(.*\.)?ibiblio\.org$ +^(.*\.)?iblist\.com$ +^(.*\.)?iblogserv-f\.net$ +^(.*\.)?ibros\.org$ +^(.*\.)?cn\.ibtimes\.com$ +^(.*\.)?icams\.com$ +^(.*\.)?blogs\.icerocket\.com$ +^(.*\.)?icij\.org$ +^(.*\.)?icl-fi\.org$ +^(.*\.)?icoco\.com$ +^(.*\.)?furbo\.org$ +^(.*\.)?warbler\.iconfactory\.net$ +^(.*\.)?iconpaper\.org$ +^(.*\.)?icu-project\.org$ +^(.*\.)?w\.idaiwan\.com$ +^(.*\.)?idemocracy\.asia$ +^(.*\.)?identi\.ca$ +^(.*\.)?idiomconnection\.com$ +^(.*\.)?www\.idlcoyote\.com$ +^(.*\.)?idouga\.com$ +^(.*\.)?idreamx\.com$ +^(.*\.)?forum\.idsam\.com$ +^(.*\.)?ieasynews\.net$ +^(.*\.)?ied2k\.net$ +^(.*\.)?ienergy1\.com$ +^(.*\.)?if\.ttt$ +^(.*\.)?ifanqiang\.com$ +^(.*\.)?ifanr\.com$ +^(.*\.)?ifcss\.org$ +^(.*\.)?ifjc\.org$ +^(.*\.)?ift\.tt$ +^(.*\.)?ifreewares\.com$ +^(.*\.)?igcd\.net$ +^(.*\.)?igfw\.net$ +^(.*\.)?ignitedetroit\.net$ +^(.*\.)?igvita\.com$ +^(.*\.)?ihakka\.net$ +^(.*\.)?ihao\.org$ +^(.*\.)?iicns\.com$ +^(.*\.)?illusionfactory\.com$ +^(.*\.)?ilove80\.be$ +^(.*\.)?imagefap\.com$ +^(.*\.)?imageflea\.com$ +^(.*\.)?imageshack\.us$ +^(.*\.)?imagevenue\.com$ +^(.*\.)?imagezilla\.net$ +^(.*\.)?imb\.org$ +^(.*\.)?www\.imdb\.com$ +^(.*\.)?imdb\.com$ +^(.*\.)?img\.ly$ +^(.*\.)?imkev\.com$ +^(.*\.)?imlive\.com$ +^(.*\.)?impp\.mn$ +^(.*\.)?tech2\.in\.com$ +^(.*\.)?in99\.org$ +^(.*\.)?in-disguise\.com$ +^(.*\.)?incapdns\.net$ +^(.*\.)?incloak\.com$ +^(.*\.)?timesofindia\.indiatimes\.com$ +^(.*\.)?indiemerch\.com$ +^(.*\.)?website\.informer\.com$ +^(.*\.)?initiativesforchina\.org$ +^(.*\.)?inkui\.com$ +^(.*\.)?inmediahk\.net$ +^(.*\.)?innermongolia\.org$ +^(.*\.)?blog\.inoreader\.com$ +^(.*\.)?insecam\.org$ +^(.*\.)?instagram\.com$ +^(.*\.)?institut-tibetain\.org$ +^(.*\.)?interfaceaddiction\.com$ +^(.*\.)?internationalrivers\.org$ +^(.*\.)?internet\.org$ +^(.*\.)?internetdefenseleague\.org$ +^(.*\.)?internetfreedom\.org$ +^(.*\.)?internetpopculture\.com$ +^(.*\.)?inxian\.com$ +^(.*\.)?ipalter\.com$ +^(.*\.)?iphone4hongkong\.com$ +^(.*\.)?iphonehacks\.com$ +^(.*\.)?iphonetaiwan\.org$ +^(.*\.)?ipjetable\.net$ +^(.*\.)?ipobar\.com$ +^(.*\.)?iportal\.me$ +^(.*\.)?ippotv\.com$ +^(.*\.)?ipredator\.se$ +^(.*\.)?ipvanish\.com$ +^(.*\.)?iredmail\.org$ +^(.*\.)?chinese\.irib\.ir$ +^(.*\.)?ironicsoftware\.com$ +^(.*\.)?ironbigfools\.compython\.net$ +^(.*\.)?ironpython\.net$ +^(.*\.)?is\.gd$ +^(.*\.)?islamawareness\.net$ +^(.*\.)?islamhouse\.com$ +^(.*\.)?islamicity\.com$ +^(.*\.)?islamicpluralism\.org$ +^(.*\.)?islamtoday\.net$ +^(.*\.)?isaacmao\.com$ +^(.*\.)?isgreat\.org$ +^(.*\.)?ismaelan\.com$ +^(.*\.)?ismalltits\.com$ +^(.*\.)?ismprofessional\.net$ +^(.*\.)?isohunt\.com$ +^(.*\.)?israbox\.com$ +^(.*\.)?istars\.co\.nz$ +^(.*\.)?oversea\.istarshine\.com$ +^(.*\.)?blog\.istef\.info$ +^(.*\.)?istiqlalhewer\.com$ +^(.*\.)?istockphoto\.com$ +^(.*\.)?isunaffairs\.com$ +^(.*\.)?isuntv\.com$ +^(.*\.)?itaboo\.info$ +^(.*\.)?italiatibet\.org$ +^(.*\.)?itshidden\.com$ +^(.*\.)?itsky\.it$ +^(.*\.)?itweet\.net$ +^(.*\.)?iu45\.com$ +^(.*\.)?iuhrdf\.org$ +^(.*\.)?iuksky\.com$ +^(.*\.)?ivacy\.com$ +^(.*\.)?iverycd\.com$ +^(.*\.)?ixquick\.com$ +^(.*\.)?ixxx\.com$ +^(.*\.)?iyouport\.com$ +^(.*\.)?izaobao\.us$ +^(.*\.)?gmozomg\.izihost\.org$ +^(.*\.)?izles\.net$ +^(.*\.)?izlesem\.org$ +^(.*\.)?j\.mp$ +^(.*\.)?blog\.jackjia\.com$ +^(.*\.)?jamaat\.org$ +^(.*\.)?jamyangnorbu\.com$ +^(.*\.)?janwongphoto\.com$ +^(.*\.)?japan-whores\.com$ +^(.*\.)?javhip\.com$ +^(.*\.)?javakiba\.org$ +^(.*\.)?javbus\.com$ +^(.*\.)?javfor\.me$ +^(.*\.)?javmoo\.com$ +^(.*\.)?javseen\.com$ +^(.*\.)?jbtalks\.cc$ +^(.*\.)?jbtalks\.com$ +^(.*\.)?jbtalks\.my$ +^(.*\.)?jdwsy\.com$ +^(.*\.)?jeanyim\.com$ +^(.*\.)?jgoodies\.com$ +^(.*\.)?jiangweiping\.com$ +^(.*\.)?jiaoyou8\.com$ +^(.*\.)?jiehua\.cz$ +^(.*\.)?hk\.jiepang\.com$ +^(.*\.)?tw\.jiepang\.com$ +^(.*\.)?jieshibaobao\.com$ +^(.*\.)?56cun04\.jigsy\.com$ +^(.*\.)?jigong1024\.com$ +^(.*\.)?daodu14\.jigsy\.com$ +^(.*\.)?specxinzl\.jigsy\.com$ +^(.*\.)?wlcnew\.jigsy\.com$ +^(.*\.)?jinbushe\.org$ +^(.*\.)?jingsim\.org$ +^(.*\.)?jingpin\.org$ +^(.*\.)?jinpianwang\.com$ +^(.*\.)?ac\.jiruan\.net$ +^(.*\.)?jitouch\.com$ +^(.*\.)?jizzthis\.com$ +^(.*\.)?jjgirls\.com$ +^(.*\.)?jkb\.cc$ +^(.*\.)?jkforum\.net$ +^(.*\.)?joachims\.org$ +^(.*\.)?joeedelman\.com$ +^(.*\.)?journalchretien\.net$ +^(.*\.)?journalofdemocracy\.org$ +^(.*\.)?jpopforum\.net$ +^(.*\.)?juhuaren\.com$ +^(.*\.)?juliereyc\.com$ +^(.*\.)?junauza\.com$ +^(.*\.)?june4commemoration\.org$ +^(.*\.)?junefourth-20\.net$ +^(.*\.)?justicefortenzin\.org$ +^(.*\.)?justpaste\.it$ +^(.*\.)?justtristan\.com$ +^(.*\.)?juyuange\.org$ +^(.*\.)?juziyue\.com$ +^(.*\.)?jwmusic\.org$ +^(.*\.)?jyxf\.net$ +^(.*\.)?ka-wai\.com$ +^(.*\.)?kagyuoffice\.org$ +^(.*\.)?kakao\.com$ +^(.*\.)?kankan\.today$ +^(.*\.)?kannewyork\.com$ +^(.*\.)?kanshifang\.com$ +^(.*\.)?kanzhongguo\.com$ +^(.*\.)?kaotic\.com$ +^(.*\.)?karayou\.com$ +^(.*\.)?karkhung\.com$ +^(.*\.)?karmapa\.org$ +^(.*\.)?karmapa-teachings\.org$ +^(.*\.)?kba-tx\.org$ +^(.*\.)?kcoolonline\.com$ +^(.*\.)?kcsoftwares\.com$ +^(.*\.)?kebrum\.com$ +^(.*\.)?kechara\.com$ +^(.*\.)?keepandshare\.com$ +^(.*\.)?kendincos\.net$ +^(.*\.)?kenengba\.com$ +^(.*\.)?keontech\.net$ +^(.*\.)?kepard\.com$ +^(.*\.)?keycdn\.com$ +^(.*\.)?khabdha\.org$ +^(.*\.)?kichiku-doujinko\.com$ +^(.*\.)?kindleren\.com$ +^(.*\.)?www\.kindleren\.com$ +^(.*\.)?kingdomsalvation\.org$ +^(.*\.)?kinghost\.com$ +^(.*\.)?kink\.com$ +^(.*\.)?killwall\.com$ +^(.*\.)?kiwi\.kz$ +^(.*\.)?knowledgerush\.com$ +^(.*\.)?kodingen\.com$ +^(.*\.)?kompozer\.net$ +^(.*\.)?konachan\.com$ +^(.*\.)?koolsolutions\.com$ +^(.*\.)?koornk\.com$ +^(.*\.)?koranmandarin\.com$ +^(.*\.)?ktzhk\.com$ +^(.*\.)?kui\.name$ +^(.*\.)?kun\.im$ +^(.*\.)?kurashsultan\.com$ +^(.*\.)?kurtmunger\.com$ +^(.*\.)?kusocity\.com$ +^(.*\.)?kusos\.com$ +^(.*\.)?kwcg\.ca$ +^(.*\.)?kwongwah\.com\.my$ +^(.*\.)?kyohk\.net$ +^(.*\.)?kzeng\.info$ +^(.*\.)?la-forum\.org$ +^(.*\.)?ladbrokes\.com$ +^(.*\.)?labiennale\.org$ +^(.*\.)?lagranepoca\.com$ +^(.*\.)?lalulalu\.com$ +^(.*\.)?lamayeshe\.com$ +^(.*\.)?www\.lamenhu\.com$ +^(.*\.)?lamrim\.com$ +^(.*\.)?lantosfoundation\.org$ +^(.*\.)?laogai\.org$ +^(.*\.)?laomiu\.com$ +^(.*\.)?laoyang\.info$ +^(.*\.)?laptoplockdown\.com$ +^(.*\.)?laqingdan\.net$ +^(.*\.)?larsgeorge\.com$ +^(.*\.)?lastcombat\.com$ +^(.*\.)?lastfm\.es$ +^(.*\.)?latelinenews\.com$ +^(.*\.)?latibet\.org$ +^(.*\.)?lefora\.com$ +^(.*\.)?legalporno\.com$ +^(.*\.)?leirentv\.ca$ +^(.*\.)?leisurecafe\.ca$ +^(.*\.)?lematin\.ch$ +^(.*\.)?lenwhite\.com$ +^(.*\.)?lerosua\.org$ +^(.*\.)?blog\.lester850\.info$ +^(.*\.)?lesoir\.be$ +^(.*\.)?letscorp\.net$ +^(.*\.)?lhakar\.org$ +^(.*\.)?lhasocialwork\.org$ +^(.*\.)?liangyou\.net$ +^(.*\.)?lianyue\.net$ +^(.*\.)?liaowangxizang\.net$ +^(.*\.)?blogs\.libraryinformationtechnology\.com$ +^(.*\.)?lidecheng\.com$ +^(.*\.)?limiao\.net$ +^(.*\.)?linkuswell\.com$ +^(.*\.)?abitno\.linpie\.com$ +^(.*\.)?line\.me$ +^(.*\.)?linglingfa\.com$ +^(.*\.)?lingvodics\.com$ +^(.*\.)?linkideo\.com$ +^(.*\.)?api\.linksalpha\.com$ +^(.*\.)?apidocs\.linksalpha\.com$ +^(.*\.)?www\.linksalpha\.com$ +^(.*\.)?help\.linksalpha\.com$ +^(.*\.)?linuxtoy\.org$ +^(.*\.)?lionsroar\.com$ +^(.*\.)?lipuman\.com$ +^(.*\.)?greatfire\.us7\.list-manage\.com$ +^(.*\.)?listentoyoutube\.com$ +^(.*\.)?listorious\.com$ +^(.*\.)?liudejun\.com$ +^(.*\.)?liuhanyu\.com$ +^(.*\.)?liujianshu\.com$ +^(.*\.)?liuxiaotong\.com$ +^(.*\.)?liveleak\.com$ +^(.*\.)?livestation\.com$ +^(.*\.)?livestream\.com$ +^(.*\.)?livingonline\.us$ +^(.*\.)?livingstream\.com$ +^(.*\.)?livevideo\.com$ +^(.*\.)?liwangyang\.com$ +^(.*\.)?lizhizhuangbi\.com$ +^(.*\.)?lkcn\.net$ +^(.*\.)?load\.to$ +^(.*\.)?lobsangwangyal\.com$ +^(.*\.)?localdomain\.ws$ +^(.*\.)?localpresshk\.com$ +^(.*\.)?lockdown\.com$ +^(.*\.)?lockestek\.com$ +^(.*\.)?logbot\.net$ +^(.*\.)?logiqx\.com$ +^(.*\.)?secure\.logmein\.com$ +^(.*\.)?logmike\.com$ +^(.*\.)?londonchinese\.ca$ +^(.*\.)?longtermly\.net$ +^(.*\.)?lookingglasstheatre\.org$ +^(.*\.)?lookpic\.com$ +^(.*\.)?looktoronto\.com$ +^(.*\.)?lotsawahouse\.org$ +^(.*\.)?lpsg\.com$ +^(.*\.)?lrfz\.com$ +^(.*\.)?lrip\.org$ +^(.*\.)?lsforum\.net$ +^(.*\.)?lsm\.org$ +^(.*\.)?lsmchinese\.org$ +^(.*\.)?lsmkorean\.org$ +^(.*\.)?lsmradio\.com$ +^(.*\.)?lsmwebcast\.com$ +^(.*\.)?luke54\.com$ +^(.*\.)?luke54\.org$ +^(.*\.)?lupm\.org$ +^(.*\.)?lushstories\.com$ +^(.*\.)?luxebc\.com$ +^(.*\.)?lvhai\.org$ +^(.*\.)?lvv2\.com$ +^(.*\.)?lyfhk\.net$ +^(.*\.)?m-team\.cc$ +^(.*\.)?mad-ar\.ch$ +^(.*\.)?madthumbs\.com$ +^(.*\.)?magic-net\.info$ +^(.*\.)?mahabodhi\.org$ +^(.*\.)?maiplus\.com$ +^(.*\.)?maplew\.com$ +^(.*\.)?marc\.info$ +^(.*\.)?marguerite\.su$ +^(.*\.)?martincartoons\.com$ +^(.*\.)?maskedip\.com$ +^(.*\.)?maiio\.net$ +^(.*\.)?mail-archive\.com$ +^(.*\.)?malaysiakini\.com$ +^(.*\.)?makemymood\.com$ +^(.*\.)?maniash\.com$ +^(.*\.)?mansion\.com$ +^(.*\.)?mansionpoker\.com$ +^(.*\.)?martau\.com$ +^(.*\.)?blog\.martinoei\.com$ +^(.*\.)?martsangkagyuofficial\.org$ +^(.*\.)?maruta\.be$ +^(.*\.)?marxist\.com$ +^(.*\.)?marxist\.net$ +^(.*\.)?marxists\.org$ +^(.*\.)?matainja\.com$ +^(.*\.)?mathable\.io$ +^(.*\.)?mathiew-badimon\.com$ +^(.*\.)?matsushimakaede\.com$ +^(.*\.)?maturejp\.com$ +^(.*\.)?mayimayi\.com$ +^(.*\.)?mcaf\.ee$ +^(.*\.)?mcadforums\.com$ +^(.*\.)?mcfog\.com$ +^(.*\.)?mcreasite\.com$ +^(.*\.)?md-t\.org$ +^(.*\.)?mediachinese\.com$ +^(.*\.)?mediafire\.com$ +^(.*\.)?mediafreakcity\.com$ +^(.*\.)?medium\.com$ +^(.*\.)?meetup\.com$ +^(.*\.)?mefeedia\.com$ +^(.*\.)?megaporn\.com$ +^(.*\.)?megarotic\.com$ +^(.*\.)?megavideo\.com$ +^(.*\.)?megurineluka\.com$ +^(.*\.)?meirixiaochao\.com$ +^(.*\.)?melon-peach\.com$ +^(.*\.)?meltoday\.com$ +^(.*\.)?memehk\.com$ +^(.*\.)?memorybbs\.com$ +^(.*\.)?memri\.org$ +^(.*\.)?memrijttm\.org$ +^(.*\.)?mercyprophet\.org$ +^(.*\.)?meridian-trust\.org$ +^(.*\.)?meripet\.biz$ +^(.*\.)?meripet\.com$ +^(.*\.)?meshrep\.com$ +^(.*\.)?mesotw\.com$ +^(.*\.)?metacafe\.com$ +^(.*\.)?meteorshowersonline\.com$ +^(.*\.)?www\.metro\.taipei$ +^(.*\.)?metrolife\.ca$ +^(.*\.)?meyul\.com$ +^(.*\.)?mgoon\.com$ +^(.*\.)?mgstage\.com$ +^(.*\.)?mh4u\.org$ +^(.*\.)?mhradio\.org$ +^(.*\.)?michaelanti\.com$ +^(.*\.)?michaelmarketl\.com$ +^(.*\.)?middle-way\.net$ +^(.*\.)?mihr\.com$ +^(.*\.)?mihua\.org$ +^(.*\.)?mikesoltys\.com$ +^(.*\.)?milph\.net$ +^(.*\.)?milsurps\.com$ +^(.*\.)?mimiai\.net$ +^(.*\.)?mimivip\.com$ +^(.*\.)?mimivv\.com$ +^(.*\.)?mindrolling\.org$ +^(.*\.)?minghui\.or\.kr$ +^(.*\.)?minghui\.org$ +^(.*\.)?minghui-a\.org$ +^(.*\.)?minghui-b\.org$ +^(.*\.)?minghui-school\.org$ +^(.*\.)?mingjinglishi\.com$ +^(.*\.)?mingjingnews\.com$ +^(.*\.)?mingjingtimes\.com$ +^(.*\.)?mingpao\.com$ +^(.*\.)?mingpaocanada\.com$ +^(.*\.)?mingpaomonthly\.com$ +^(.*\.)?mingpaonews\.com$ +^(.*\.)?mingpaony\.com$ +^(.*\.)?mingpaosf\.com$ +^(.*\.)?mingpaotor\.com$ +^(.*\.)?mingpaovan\.com$ +^(.*\.)?mingshengbao\.com$ +^(.*\.)?minhhue\.net$ +^(.*\.)?miniforum\.org$ +^(.*\.)?ministrybooks\.org$ +^(.*\.)?minzhuhua\.net$ +^(.*\.)?minzhuzhanxian\.com$ +^(.*\.)?minzhuzhongguo\.org$ +^(.*\.)?miroguide\.com$ +^(.*\.)?mirrorbooks\.com$ +^(.*\.)?thecenter\.mit\.edu$ +^(.*\.)?mitbbs\.com$ +^(.*\.)?mixero\.com$ +^(.*\.)?mixpod\.com$ +^(.*\.)?mixx\.com$ +^(.*\.)?mizzmona\.com$ +^(.*\.)?mk5000\.com$ +^(.*\.)?mlcool\.com$ +^(.*\.)?mmaaxx\.com$ +^(.*\.)?plurktop\.mmdays\.com$ +^(.*\.)?mmmca\.com$ +^(.*\.)?mobatek\.net$ +^(.*\.)?mobile01\.com$ +^(.*\.)?mobypicture\.com$ +^(.*\.)?moby\.to$ +^(.*\.)?moeerolibrary\.com$ +^(.*\.)?wiki\.moegirl\.org$ +^(.*\.)?mofos\.com$ +^(.*\.)?mog\.com$ +^(.*\.)?molihua\.org$ +^(.*\.)?mondex\.org$ +^(.*\.)?www\.monlamit\.org$ +^(.*\.)?moonbbs\.com$ +^(.*\.)?c1522\.mooo\.com$ +^(.*\.)?monitorchina\.org$ +^(.*\.)?bbs\.morbell\.com$ +^(.*\.)?morningsun\.org$ +^(.*\.)?moroneta\.com$ +^(.*\.)?motherless\.com$ +^(.*\.)?mousebreaker\.com$ +^(.*\.)?movements\.org$ +^(.*\.)?moviefap\.com$ +^(.*\.)?www\.moztw\.org$ +^(.*\.)?mp3buscador\.com$ +^(.*\.)?mpettis\.com$ +^(.*\.)?mpfinance\.com$ +^(.*\.)?mpinews\.com$ +^(.*\.)?mrtweet\.com$ +^(.*\.)?news\.hk\.msn\.com$ +^(.*\.)?msguancha\.com$ +^(.*\.)?mswe1\.org$ +^(.*\.)?mthruf\.com$ +^(.*\.)?muchosucko\.com$ +^(.*\.)?multiply\.com$ +^(.*\.)?multiupload\.com$ +^(.*\.)?mullvad\.net$ +^(.*\.)?mummysgold\.com$ +^(.*\.)?musicade\.net$ +^(.*\.)?muslimvideo\.com$ +^(.*\.)?muzi\.com$ +^(.*\.)?muzi\.net$ +^(.*\.)?mx981\.com$ +^(.*\.)?my-formosa\.com$ +^(.*\.)?forum\.my903\.com$ +^(.*\.)?myactimes\.com$ +^(.*\.)?myaudiocast\.com$ +^(.*\.)?mybbs\.us$ +^(.*\.)?myca168\.com$ +^(.*\.)?bbs\.mychat\.to$ +^(.*\.)?mychinamyhome\.com$ +^(.*\.)?mychinanet\.com$ +^(.*\.)?mychinanews\.com$ +^(.*\.)?mycnnews\.com$ +^(.*\.)?mykomica\.org$ +^(.*\.)?mycould\.com$ +^(.*\.)?myeasytv\.com$ +^(.*\.)?myeclipseide\.com$ +^(.*\.)?myfreepaysite\.com$ +^(.*\.)?myfreshnet\.com$ +^(.*\.)?forum\.mymaji\.com$ +^(.*\.)?mymediarom\.com$ +^(.*\.)?myparagliding\.com$ +^(.*\.)?mypopescu\.com$ +^(.*\.)?mysinablog\.com$ +^(.*\.)?myspace\.com$ +^(.*\.)?mytalkbox\.com$ +^(.*\.)?mytizi\.com$ +^(.*\.)?naacoalition\.org$ +^(.*\.)?old\.nabble\.com$ +^(.*\.)?naitik\.net$ +^(.*\.)?nakuz\.com$ +^(.*\.)?nalandabodhi\.org$ +^(.*\.)?nalandawest\.org$ +^(.*\.)?namgyal\.org$ +^(.*\.)?namgyalmonastery\.org$ +^(.*\.)?namsisi\.com$ +^(.*\.)?nanyang\.com$ +^(.*\.)?nanyangpost\.com$ +^(.*\.)?nanzao\.com$ +^(.*\.)?jpl\.nasa\.gov$ +^(.*\.)?pds\.nasa\.gov$ +^(.*\.)?solarsystem\.nasa\.gov$ +^(.*\.)?nakido\.com$ +^(.*\.)?naol\.ca$ +^(.*\.)?cyberghost\.natado\.com$ +^(.*\.)?news\.nationalgeographic\.com$ +^(.*\.)?nationsonline\.org$ +^(.*\.)?navyfamily\.navy\.mil$ +^(.*\.)?navyreserve\.navy\.mil$ +^(.*\.)?nko\.navy\.mil$ +^(.*\.)?usno\.navy\.mil$ +^(.*\.)?ncn\.org$ +^(.*\.)?etools\.ncol\.com$ +^(.*\.)?ned\.org$ +^(.*\.)?nekoslovakia\.net$ +^(.*\.)?bbs\.netbig\.com$ +^(.*\.)?netbirds\.com$ +^(.*\.)?netcolony\.com$ +^(.*\.)?bolin\.netfirms\.com$ +^(.*\.)?netme\.cc$ +^(.*\.)?netsneak\.com$ +^(.*\.)?network54\.com$ +^(.*\.)?networkedblogs\.com$ +^(.*\.)?new-3lunch\.net$ +^(.*\.)?new-akiba\.com$ +^(.*\.)?new96\.ca$ +^(.*\.)?newcenturymc\.com$ +^(.*\.)?newcenturynews\.com$ +^(.*\.)?newchen\.com$ +^(.*\.)?newgrounds\.com$ +^(.*\.)?newipnow\.com$ +^(.*\.)?newnews\.ca$ +^(.*\.)?newscn\.org$ +^(.*\.)?newsminer\.com$ +^(.*\.)?newspeak\.cc$ +^(.*\.)?newsancai\.com$ +^(.*\.)?newsdh\.com$ +^(.*\.)?newstamago\.com$ +^(.*\.)?newstapa\.org$ +^(.*\.)?newstarnet\.com$ +^(.*\.)?newyorktimes\.com$ +^(.*\.)?nexon\.com$ +^(.*\.)?nextmedia\.com$ +^(.*\.)?co\.ng\.mil$ +^(.*\.)?nga\.mil$ +^(.*\.)?ngensis\.com$ +^(.*\.)?nhentai\.net$ +^(.*\.)?nighost\.org$ +^(.*\.)?av\.nightlife141\.com$ +^(.*\.)?ninecommentaries\.com$ +^(.*\.)?ninjacloak\.com$ +^(.*\.)?nintendium\.com$ +^(.*\.)?taiwanyes\.ning\.com$ +^(.*\.)?usmgtcg\.ning\.com$ +^(.*\.)?niusnews\.com$ +^(.*\.)?njactb\.org$ +^(.*\.)?njuice\.com$ +^(.*\.)?no-ip\.org$ +^(.*\.)?nobel\.se$ +^(.*\.)?nobelprize\.org$ +^(.*\.)?nobodycanstop\.us$ +^(.*\.)?nokogiri\.org$ +^(.*\.)?nokola\.com$ +^(.*\.)?norbulingka\.org$ +^(.*\.)?novelasia\.com$ +^(.*\.)?news\.now\.com$ +^(.*\.)?nownews\.com$ +^(.*\.)?nowtorrents\.com$ +^(.*\.)?noypf\.com$ +^(.*\.)?npnt\.me$ +^(.*\.)?nps\.gov$ +^(.*\.)?nrk\.no$ +^(.*\.)?ntdtv\.com$ +^(.*\.)?ntdtv\.co\.kr$ +^(.*\.)?ntdtv\.ca$ +^(.*\.)?ntdtv\.org$ +^(.*\.)?ntdtvla\.com$ +^(.*\.)?ntrfun\.com$ +^(.*\.)?nubiles\.net$ +^(.*\.)?nuexpo\.com$ +^(.*\.)?nukistream\.com$ +^(.*\.)?nurgo-software\.com$ +^(.*\.)?nuvid\.com$ +^(.*\.)?nuzcom\.com$ +^(.*\.)?nvquan\.org$ +^(.*\.)?nwtca\.org$ +^(.*\.)?nyaa\.se$ +^(.*\.)?nydus\.ca$ +^(.*\.)?nylon-angel\.com$ +^(.*\.)?nylonstockingsonline\.com$ +^(.*\.)?nytco\.com$ +^(.*\.)?nyti\.ms$ +^(.*\.)?nytimes\.com$ +^(.*\.)?nytimg\.com$ +^(.*\.)?userapi\.nytlog\.com$ +^(.*\.)?nysingtao\.com$ +^(.*\.)?nzchinese\.com$ +^(.*\.)?nzchinese\.net\.nz$ +^(.*\.)?observechina\.net$ +^(.*\.)?obutu\.com$ +^(.*\.)?ocaspro\.com$ +^(.*\.)?occupytiananmen\.com$ +^(.*\.)?ocreampies\.com$ +^(.*\.)?october-review\.org$ +^(.*\.)?offbeatchina\.com$ +^(.*\.)?officeoftibet\.com$ +^(.*\.)?ogaoga\.org$ +^(.*\.)?twtr2src\.ogaoga\.org$ +^(.*\.)?www2\.ohchr\.org$ +^(.*\.)?oiktv\.com$ +^(.*\.)?oizoblog\.com$ +^(.*\.)?okayfreedom\.com$ +^(.*\.)?filmy\.olabloga\.pl$ +^(.*\.)?old-cat\.net$ +^(.*\.)?olumpo\.com$ +^(.*\.)?olympicwatch\.org$ +^(.*\.)?omgili\.com$ +^(.*\.)?omnitalk\.com$ +^(.*\.)?omnitalk\.org$ +^(.*\.)?cling\.omy\.sg$ +^(.*\.)?forum\.omy\.sg$ +^(.*\.)?news\.omy\.sg$ +^(.*\.)?showbiz\.omy\.sg$ +^(.*\.)?on\.cc$ +^(.*\.)?onedrive\.live\.com$ +^(.*\.)?www\.onion\.city$ +^(.*\.)?onlinecha\.com$ +^(.*\.)?onlineyoutube\.com$ +^(.*\.)?onmoon\.net$ +^(.*\.)?onmoon\.com$ +^(.*\.)?onthehunt\.com$ +^(.*\.)?oopsforum\.com$ +^(.*\.)?openallweb\.com$ +^(.*\.)?opendemocracy\.net$ +^(.*\.)?openid\.net$ +^(.*\.)?openleaks\.org$ +^(.*\.)?openwebster\.com$ +^(.*\.)?help\.opera\.com$ +^(.*\.)?my\.opera\.com$ +^(.*\.)?demo\.opera-mini\.net$ +^(.*\.)?www\.orchidbbs\.com$ +^(.*\.)?organharvestinvestigation\.net$ +^(.*\.)?orgfree\.com$ +^(.*\.)?orient-doll\.com$ +^(.*\.)?orientaldaily\.com\.my$ +^(.*\.)?t\.orzdream\.com$ +^(.*\.)?tui\.orzdream\.com$ +^(.*\.)?orzistic\.org$ +^(.*\.)?osfoora\.com$ +^(.*\.)?otnd\.org$ +^(.*\.)?ourdearamy\.com$ +^(.*\.)?oursogo\.com$ +^(.*\.)?oursweb\.net$ +^(.*\.)?xinqimeng\.over-blog\.com$ +^(.*\.)?overplay\.net$ +^(.*\.)?share\.ovi\.com$ +^(.*\.)?owl\.li$ +^(.*\.)?ht\.ly$ +^(.*\.)?htl\.li$ +^(.*\.)?mash\.to$ +^(.*\.)?www\.owind\.com$ +^(.*\.)?www\.oxid\.it$ +^(.*\.)?oyax\.com$ +^(.*\.)?oyghan\.com$ +^(.*\.)?ozchinese\.com$ +^(.*\.)?ow\.ly$ +^(.*\.)?bbs\.ozchinese\.com$ +^(.*\.)?ozxw\.com$ +^(.*\.)?ozyoyo\.com$ +^(.*\.)?pachosting\.com$ +^(.*\.)?pacificpoker\.com$ +^(.*\.)?packetix\.net$ +^(.*\.)?pacopacomama\.com$ +^(.*\.)?padmanet\.com$ +^(.*\.)?page2rss\.com$ +^(.*\.)?pagodabox\.com$ +^(.*\.)?palacemoon\.com$ +^(.*\.)?forum\.palmislife\.com$ +^(.*\.)?eriversoft\.com$ +^(.*\.)?paldengyal\.com$ +^(.*\.)?paljorpublications\.com$ +^(.*\.)?paltalk\.com$ +^(.*\.)?pandapow\.net$ +^(.*\.)?panluan\.net$ +^(.*\.)?pao-pao\.net$ +^(.*\.)?paper\.li$ +^(.*\.)?paperb\.us$ +^(.*\.)?paradisepoker\.com$ +^(.*\.)?partycasino\.com$ +^(.*\.)?partypoker\.com$ +^(.*\.)?passion\.com$ +^(.*\.)?pastebin\.com$ +^(.*\.)?pastie\.org$ +^(.*\.)?blog\.pathtosharepoint\.com$ +^(.*\.)?pbs\.org$ +^(.*\.)?pbwiki\.com$ +^(.*\.)?pbworks\.com$ +^(.*\.)?developers\.box\.net$ +^(.*\.)?wiki\.oauth\.net$ +^(.*\.)?wiki\.phonegap\.com$ +^(.*\.)?wiki\.jqueryui\.com$ +^(.*\.)?pbxes\.com$ +^(.*\.)?pbxes\.org$ +^(.*\.)?pcij\.org$ +^(.*\.)?pdetails\.com$ +^(.*\.)?peace\.ca$ +^(.*\.)?peacefire\.org$ +^(.*\.)?peacehall\.com$ +^(.*\.)?pearlher\.org$ +^(.*\.)?peeasian\.com$ +^(.*\.)?pekingduck\.org$ +^(.*\.)?pemulihan\.or\.id$ +^(.*\.)?pen\.io$ +^(.*\.)?penchinese\.com$ +^(.*\.)?penchinese\.net$ +^(.*\.)?pengyulong\.com$ +^(.*\.)?penisbot\.com$ +^(.*\.)?blog\.pentalogic\.net$ +^(.*\.)?penthouse\.com$ +^(.*\.)?peoplebookcafe\.com$ +^(.*\.)?peopo\.org$ +^(.*\.)?perfectgirls\.net$ +^(.*\.)?persecutionblog\.com$ +^(.*\.)?phapluan\.org$ +^(.*\.)?phayul\.com$ +^(.*\.)?philborges\.com$ +^(.*\.)?philly\.com$ +^(.*\.)?phncdn\.com$ +^(.*\.)?photodharma\.net$ +^(.*\.)?photofocus\.com$ +^(.*\.)?phuquocservices\.com$ +^(.*\.)?picidae\.net$ +^(.*\.)?picturedip\.com$ +^(.*\.)?picturesocial\.com$ +^(.*\.)?pin6\.com$ +^(.*\.)?ping\.fm$ +^(.*\.)?pinoy-n\.com$ +^(.*\.)?piposay\.com$ +^(.*\.)?piraattilahti\.org$ +^(.*\.)?piring\.com$ +^(.*\.)?pixelqi\.com$ +^(.*\.)?pixnet\.net$ +^(.*\.)?pk\.com$ +^(.*\.)?placemix\.com$ +^(.*\.)?pictures\.playboy\.com$ +^(.*\.)?playboy\.com$ +^(.*\.)?playboyplus\.com$ +^(.*\.)?playno1\.com$ +^(.*\.)?playpcesor\.com$ +^(.*\.)?m\.plixi\.com$ +^(.*\.)?plunder\.com$ +^(.*\.)?plus28\.com$ +^(.*\.)?plusbb\.com$ +^(.*\.)?pmates\.com$ +^(.*\.)?po2b\.com$ +^(.*\.)?podictionary\.com$ +^(.*\.)?pokerstars\.net$ +^(.*\.)?zh\.pokerstrategy\.com$ +^(.*\.)?politicalchina\.org$ +^(.*\.)?politicalconsultation\.org$ +^(.*\.)?polymerhk\.com$ +^(.*\.)?popyard\.com$ +^(.*\.)?popyard\.org$ +^(.*\.)?porn\.com$ +^(.*\.)?porn2\.com$ +^(.*\.)?porn5\.com$ +^(.*\.)?pornbase\.org$ +^(.*\.)?pornerbros\.com$ +^(.*\.)?pornhd\.com$ +^(.*\.)?pornhost\.com$ +^(.*\.)?pornhub\.com$ +^(.*\.)?pornmm\.net$ +^(.*\.)?pornoxo\.com$ +^(.*\.)?pornrapidshare\.com$ +^(.*\.)?pornsharing\.com$ +^(.*\.)?pornstarclub\.com$ +^(.*\.)?porntube\.com$ +^(.*\.)?porntubenews\.com$ +^(.*\.)?porntvblog\.com$ +^(.*\.)?pornvisit\.com$ +^(.*\.)?poskotanews\.com$ +^(.*\.)?post852\.com$ +^(.*\.)?postadult\.com$ +^(.*\.)?postimg\.org$ +^(.*\.)?powercx\.com$ +^(.*\.)?powerphoto\.org$ +^(.*\.)?www\.powerpointninja\.com$ +^(.*\.)?cdn\.printfriendly\.com$ +^(.*\.)?pritunl\.com$ +^(.*\.)?proxfree\.com$ +^(.*\.)?pttvan\.org$ +^(.*\.)?puffinbrowser\.com$ +^(.*\.)?pureinsight\.org$ +^(.*\.)?putty\.org$ +^(.*\.)?calebelston\.com$ +^(.*\.)?blog\.fizzik\.com$ +^(.*\.)?sogrady\.me$ +^(.*\.)?vatn\.org$ +^(.*\.)?ventureswell\.com$ +^(.*\.)?whereiswerner\.com$ +^(.*\.)?power\.com$ +^(.*\.)?powerapple\.com$ +^(.*\.)?prayforchina\.net$ +^(.*\.)?premeforwindows7\.com$ +^(.*\.)?presentationzen\.com$ +^(.*\.)?prestige-av\.com$ +^(.*\.)?prisoneralert\.com$ +^(.*\.)?private\.com$ +^(.*\.)?privateinternetaccess\.com$ +^(.*\.)?privatepaste\.com$ +^(.*\.)?privatetunnel\.com$ +^(.*\.)?procopytips\.com$ +^(.*\.)?provideocoalition\.com$ +^(.*\.)?proxifier\.com$ +^(.*\.)?api\.proxlet\.com$ +^(.*\.)?proxomitron\.info$ +^(.*\.)?proxpn\.com$ +^(.*\.)?proyectoclubes\.com$ +^(.*\.)?prozz\.net$ +^(.*\.)?psblog\.name$ +^(.*\.)?psiphon\.ca$ +^(.*\.)?psiphon3\.com$ +^(.*\.)?ptt\.cc$ +^(.*\.)?puffstore\.com$ +^(.*\.)?puuko\.com$ +^(.*\.)?pullfolio\.com$ +^(.*\.)?punyu\.com$ +^(.*\.)?pureconcepts\.net$ +^(.*\.)?purepdf\.com$ +^(.*\.)?purplelotus\.org$ +^(.*\.)?pussyspace\.com$ +^(.*\.)?putihome\.org$ +^(.*\.)?putlocker\.com$ +^(.*\.)?pwned\.com$ +^(.*\.)?python\.com$ +^(.*\.)?qanote\.com$ +^(.*\.)?qi-gong\.me$ +^(.*\.)?qidian\.ca$ +^(.*\.)?qienkuen\.org$ +^(.*\.)?qiwen\.lu$ +^(.*\.)?bbs\.qmzdd\.com$ +^(.*\.)?qkshare\.com$ +^(.*\.)?qoos\.com$ +^(.*\.)?efksoft\.com$ +^(.*\.)?qstatus\.com$ +^(.*\.)?qtweeter\.com$ +^(.*\.)?quitccp\.net$ +^(.*\.)?quitccp\.org$ +^(.*\.)?quran\.com$ +^(.*\.)?quranexplorer\.com$ +^(.*\.)?qusi8\.net$ +^(.*\.)?qvodzy\.org$ +^(.*\.)?nemesis2\.qx\.net$ +^(.*\.)?qxbbs\.org$ +^(.*\.)?ra\.gg$ +^(.*\.)?radicalparty\.org$ +^(.*\.)?rael\.org$ +^(.*\.)?radiohilight\.net$ +^(.*\.)?opml\.radiotime\.com$ +^(.*\.)?radiovaticana\.org$ +^(.*\.)?radiovncr\.com$ +^(.*\.)?raggedbanner\.com$ +^(.*\.)?rainbowplan\.org$ +^(.*\.)?rangwang\.biz$ +^(.*\.)?rangzen\.com$ +^(.*\.)?rangzen\.net$ +^(.*\.)?rangzen\.org$ +^(.*\.)?blog\.ranxiang\.com$ +^(.*\.)?ranyunfei\.com$ +^(.*\.)?rapbull\.net$ +^(.*\.)?rapidgator\.net$ +^(.*\.)?rapidmoviez\.com$ +^(.*\.)?raremovie\.cc$ +^(.*\.)?raremovie\.net$ +^(.*\.)?razyboard\.com$ +^(.*\.)?rcinet\.ca$ +^(.*\.)?read100\.com$ +^(.*\.)?readmoo\.com$ +^(.*\.)?readydown\.com$ +^(.*\.)?realcourage\.org$ +^(.*\.)?realraptalk\.com$ +^(.*\.)?recordhistory\.org$ +^(.*\.)?online\.recoveryversion\.org$ +^(.*\.)?redchinacn\.net$ +^(.*\.)?redchinacn\.org$ +^(.*\.)?redtube\.com$ +^(.*\.)?referer\.us$ +^(.*\.)?reflectivecode\.com$ +^(.*\.)?relaxbbs\.com$ +^(.*\.)?releaseinternational\.org$ +^(.*\.)?religioustolerance\.org$ +^(.*\.)?renminbao\.com$ +^(.*\.)?renyurenquan\.org$ +^(.*\.)?certificate\.revocationcheck\.com$ +^(.*\.)?subacme\.rerouted\.org$ +^(.*\.)?reuters\.com$ +^(.*\.)?revleft\.com$ +^(.*\.)?retweetist\.com$ +^(.*\.)?retweetrank\.com$ +^(.*\.)?revver\.com$ +^(.*\.)?rfa\.org$ +^(.*\.)?rfachina\.com$ +^(.*\.)?rfamobile\.org$ +^(.*\.)?rfaweb\.org$ +^(.*\.)?rferl\.org$ +^(.*\.)?rfi\.my$ +^(.*\.)?rhcloud\.com$ +^(.*\.)?vds\.rightster\.com$ +^(.*\.)?rigpa\.org$ +^(.*\.)?rileyguide\.com$ +^(.*\.)?riku\.me$ +^(.*\.)?rlwlw\.com$ +^(.*\.)?rmjdw\.com$ +^(.*\.)?rmjdw132\.info$ +^(.*\.)?robtex\.com$ +^(.*\.)?robustnessiskey\.com$ +^(.*\.)?roc-taiwan\.org$ +^(.*\.)?rocket-inc\.net$ +^(.*\.)?www2\.rocketbbs\.com$ +^(.*\.)?rocmp\.org$ +^(.*\.)?rojo\.com$ +^(.*\.)?ronjoneswriter\.com$ +^(.*\.)?rolia\.net$ +^(.*\.)?roodo\.com$ +^(.*\.)?rosechina\.net$ +^(.*\.)?rotten\.com$ +^(.*\.)?rsf\.org$ +^(.*\.)?rsf-chinese\.org$ +^(.*\.)?rsgamen\.org$ +^(.*\.)?phosphation13\.rssing\.com$ +^(.*\.)?rssmeme\.com$ +^(.*\.)?rtalabel\.org$ +^(.*\.)?rtycminnesota\.org$ +^(.*\.)?ruanyifeng\.com$ +^(.*\.)?rukor\.org$ +^(.*\.)?rushbee\.com$ +^(.*\.)?ruyiseek\.com$ +^(.*\.)?rxhj\.net$ +^(.*\.)?s1s1s1\.com$ +^(.*\.)?s-cute\.com$ +^(.*\.)?s-dragon\.org$ +^(.*\.)?s1heng\.com$ +^(.*\.)?www\.s4miniarchive\.com$ +^(.*\.)?s8forum\.com$ +^(.*\.)?cdn1\.lp\.saboom\.com$ +^(.*\.)?sadpanda\.us$ +^(.*\.)?saiq\.me$ +^(.*\.)?sakuralive\.com$ +^(.*\.)?sakya\.org$ +^(.*\.)?sambhota\.org$ +^(.*\.)?cn\.sandscotaicentral\.com$ +^(.*\.)?sapikachu\.net$ +^(.*\.)?savemedia\.com$ +^(.*\.)?savetibet\.nl$ +^(.*\.)?savetibet\.org$ +^(.*\.)?savevid\.com$ +^(.*\.)?say2\.info$ +^(.*\.)?sbme\.me$ +^(.*\.)?scasino\.com$ +^(.*\.)?www\.sciencemag\.org$ +^(.*\.)?sciencenets\.com$ +^(.*\.)?scihub\.org$ +^(.*\.)?scmp\.com$ +^(.*\.)?scmpchinese\.com$ +^(.*\.)?scramble\.io$ +^(.*\.)?scribd\.com$ +^(.*\.)?scriptspot\.com$ +^(.*\.)?seapuff\.com$ +^(.*\.)?domainhelp\.search\.com$ +^(.*\.)?searchtruth\.com$ +^(.*\.)?secretchina\.com$ +^(.*\.)?secretgarden\.no$ +^(.*\.)?default\.secureserver\.net$ +^(.*\.)?secretsline\.biz$ +^(.*\.)?securetunnel\.com$ +^(.*\.)?securitykiss\.com$ +^(.*\.)?seesmic\.com$ +^(.*\.)?seezone\.net$ +^(.*\.)?sejie\.com$ +^(.*\.)?sendspace\.com$ +^(.*\.)?tweets\.seraph\.me$ +^(.*\.)?sesawe\.net$ +^(.*\.)?sesawe\.org$ +^(.*\.)?sethwklein\.net$ +^(.*\.)?sevenload\.com$ +^(.*\.)?sf\.net$ +^(.*\.)?sfileydy\.com$ +^(.*\.)?sfshibao\.com$ +^(.*\.)?sftindia\.org$ +^(.*\.)?sftuk\.org$ +^(.*\.)?shadow\.ma$ +^(.*\.)?shadowsky\.xyz$ +^(.*\.)?shadowsocks\.com$ +^(.*\.)?shadowsocks\.org$ +^(.*\.)?cn\.shafaqna\.com$ +^(.*\.)?shahamat-english\.com$ +^(.*\.)?shambhalasun\.com$ +^(.*\.)?shangfang\.org$ +^(.*\.)?shapeservices\.com$ +^(.*\.)?sharebee\.com$ +^(.*\.)?sharecool\.org$ +^(.*\.)?shat-tibet\.com$ +^(.*\.)?sheikyermami\.com$ +^(.*\.)?shenshou\.org$ +^(.*\.)?shenyun\.com$ +^(.*\.)?shenyunperformingarts\.org$ +^(.*\.)?shenzhoufilm\.com$ +^(.*\.)?sherabgyaltsen\.com$ +^(.*\.)?shiatv\.net$ +^(.*\.)?shicheng\.org$ +^(.*\.)?shinychan\.com$ +^(.*\.)?shipcamouflage\.com$ +^(.*\.)?shitaotv\.org$ +^(.*\.)?shixiao\.org$ +^(.*\.)?shizhao\.org$ +^(.*\.)?shkspr\.mobi$ +^(.*\.)?shodanhq\.com$ +^(.*\.)?shopping\.com$ +^(.*\.)?showhaotu\.com$ +^(.*\.)?ch\.shvoong\.com$ +^(.*\.)?shwchurch\.org$ +^(.*\.)?shwchurch3\.com$ +^(.*\.)?sidelinesnews\.com$ +^(.*\.)?sidelinessportseatery\.com$ +^(.*\.)?sijihuisuo\.club$ +^(.*\.)?sijihuisuo\.com$ +^(.*\.)?simplecd\.org$ +^(.*\.)?simpleproductivityblog\.com$ +^(.*\.)?bbs\.sina\.com$ +^(.*\.)?dailynews\.sina\.com$ +^(.*\.)?home\.sina\.com$ +^(.*\.)?news\.sinchew\.com\.my$ +^(.*\.)?sinchew\.com\.my$ +^(.*\.)?singaporepools\.com\.sg$ +^(.*\.)?singfortibet\.com$ +^(.*\.)?singtao\.com$ +^(.*\.)?news\.singtao\.ca$ +^(.*\.)?sino-monthly\.com$ +^(.*\.)?sinocast\.com$ +^(.*\.)?sinocism\.com$ +^(.*\.)?sinomontreal\.ca$ +^(.*\.)?sinonet\.ca$ +^(.*\.)?sinopitt\.info$ +^(.*\.)?sinoants\.com$ +^(.*\.)?sinoquebec\.com$ +^(.*\.)?site90\.net$ +^(.*\.)?sitekreator\.com$ +^(.*\.)?siteks\.uk\.to$ +^(.*\.)?sitemaps\.org$ +^(.*\.)?sitetag\.us$ +^(.*\.)?sis\.xxx$ +^(.*\.)?sis001\.com$ +^(.*\.)?sis001\.us$ +^(.*\.)?sjrt\.org$ +^(.*\.)?sketchappsources\.com$ +^(.*\.)?skimtube\.com$ +^(.*\.)?skybet\.com$ +^(.*\.)?users\.skynet\.be$ +^(.*\.)?skyhighpremium\.com$ +^(.*\.)?bbs\.skykiwi\.com$ +^(.*\.)?www\.skype\.com$ +^(.*\.)?skyvegas\.com$ +^(.*\.)?xskywalker\.com$ +^(.*\.)?m\.slandr\.net$ +^(.*\.)?slavasoft\.com$ +^(.*\.)?slaytizle\.com$ +^(.*\.)?slheng\.com$ +^(.*\.)?slideshare\.net$ +^(.*\.)?slinkset\.com$ +^(.*\.)?slutload\.com$ +^(.*\.)?smchbooks\.com$ +^(.*\.)?smhric\.org$ +^(.*\.)?smith\.edu$ +^(.*\.)?smyxy\.org$ +^(.*\.)?snapchat\.com$ +^(.*\.)?snaptu\.com$ +^(.*\.)?sndcdn\.com$ +^(.*\.)?sneakme\.net$ +^(.*\.)?snowlionpub\.com$ +^(.*\.)?so-ga\.net$ +^(.*\.)?so-news\.com$ +^(.*\.)?soc\.mil$ +^(.*\.)?sockslist\.net$ +^(.*\.)?socrec\.org$ +^(.*\.)?softether\.org$ +^(.*\.)?softether-download\.com$ +^(.*\.)?cdn\.softlayer\.net$ +^(.*\.)?sogclub\.com$ +^(.*\.)?sohcradio\.com$ +^(.*\.)?sorting-algorithms\.com$ +^(.*\.)?sostibet\.org$ +^(.*\.)?soumo\.info$ +^(.*\.)?soup\.io$ +^(.*\.)?sobees\.com$ +^(.*\.)?socialwhale\.com$ +^(.*\.)?softwarebychuck\.com$ +^(.*\.)?blog\.sogoo\.org$ +^(.*\.)?sohfrance\.org$ +^(.*\.)?chinese\.soifind\.com$ +^(.*\.)?sokamonline\.com$ +^(.*\.)?somee\.com$ +^(.*\.)?songjianjun\.com$ +^(.*\.)?sonicbbs\.cc$ +^(.*\.)?sonidodelaesperanza\.org$ +^(.*\.)?sopcast\.com$ +^(.*\.)?sopcast\.org$ +^(.*\.)?sorazone\.net$ +^(.*\.)?sos\.org$ +^(.*\.)?bbs\.sou-tong\.org$ +^(.*\.)?soubory\.com$ +^(.*\.)?soul-plus\.net$ +^(.*\.)?soulcaliburhentai\.net$ +^(.*\.)?soundcloud\.com$ +^(.*\.)?soundofhope\.kr$ +^(.*\.)?soundofhope\.org$ +^(.*\.)?soupofmedia\.com$ +^(.*\.)?sourceforge\.net$ +^(.*\.)?sourcewadio\.com$ +^(.*\.)?wlx\.sowiki\.net$ +^(.*\.)?space-scape\.com$ +^(.*\.)?spankbang\.com$ +^(.*\.)?spankwire\.com$ +^(.*\.)?spb\.com$ +^(.*\.)?speakerdeck\.com$ +^(.*\.)?spem\.at$ +^(.*\.)?spencertipping\.com$ +^(.*\.)?spike\.com$ +^(.*\.)?spinejs\.com$ +^(.*\.)?spotflux\.com$ +^(.*\.)?spring4u\.info$ +^(.*\.)?sproutcore\.com$ +^(.*\.)?squarespace\.com$ +^(.*\.)?ssh91\.com$ +^(.*\.)?sspro\.ml$ +^(.*\.)?sss\.camp$ +^(.*\.)?sstmlt\.net$ +^(.*\.)?stackoverflow\.com$ +^(.*\.)?standupfortibet\.org$ +^(.*\.)?stanford\.edu$ +^(.*\.)?usinfo\.state\.gov$ +^(.*\.)?statueofdemocracy\.org$ +^(.*\.)?starfishfx\.com$ +^(.*\.)?starp2p\.com$ +^(.*\.)?startpage\.com$ +^(.*\.)?state168\.com$ +^(.*\.)?static-economist\.com$ +^(.*\.)?stc\.com\.sa$ +^(.*\.)?steamcommunity\.com$ +^(.*\.)?steel-storm\.com$ +^(.*\.)?stepchina\.com$ +^(.*\.)?ny\.stgloballink\.com$ +^(.*\.)?hd\.stheadline\.com$ +^(.*\.)?sthoo\.com$ +^(.*\.)?stickam\.com$ +^(.*\.)?stickeraction\.com$ +^(.*\.)?stileproject\.com$ +^(.*\.)?sto\.cc$ +^(.*\.)?stoneip\.info$ +^(.*\.)?storagenewsletter\.com$ +^(.*\.)?storm\.mg$ +^(.*\.)?stoptibetcrisis\.net$ +^(.*\.)?storify\.com$ +^(.*\.)?stormmediagroup\.com$ +^(.*\.)?stoweboyd\.com$ +^(.*\.)?stranabg\.com$ +^(.*\.)?streamingthe\.net$ +^(.*\.)?streema\.com$ +^(.*\.)?cn\.streetvoice\.com$ +^(.*\.)?cn2\.streetvoice\.com$ +^(.*\.)?tw\.streetvoice\.com$ +^(.*\.)?strongwindpress\.com$ +^(.*\.)?studentsforafreetibet\.org$ +^(.*\.)?stumbleupon\.com$ +^(.*\.)?stupidvideos\.com$ +^(.*\.)?sugarsync\.com$ +^(.*\.)?sugobbs\.com$ +^(.*\.)?suissl\.com$ +^(.*\.)?summify\.com$ +^(.*\.)?sumrando\.com$ +^(.*\.)?sun1911\.com$ +^(.*\.)?sunporno\.com$ +^(.*\.)?sunmedia\.ca$ +^(.*\.)?sunskyforum\.com$ +^(.*\.)?suoluo\.org$ +^(.*\.)?suprememastertv\.com$ +^(.*\.)?surfeasy\.com$ +^(.*\.)?surrenderat20\.net$ +^(.*\.)?suyangg\.com$ +^(.*\.)?svwind\.com$ +^(.*\.)?sweux\.com$ +^(.*\.)?swift-tools\.net$ +^(.*\.)?sydneytoday\.com$ +^(.*\.)?sylfoundation\.org$ +^(.*\.)?syncback\.com$ +^(.*\.)?sysadmin1138\.net$ +^(.*\.)?sysresccd\.org$ +^(.*\.)?sytes\.net$ +^(.*\.)?blog\.syx86\.com$ +^(.*\.)?szbbs\.net$ +^(.*\.)?t35\.com$ +^(.*\.)?t66y\.com$ +^(.*\.)?t88\.ca$ +^(.*\.)?taa-usa\.org$ +^(.*\.)?www\.tablesgenerator\.com$ +^(.*\.)?tacem\.org$ +^(.*\.)?tafaward\.com$ +^(.*\.)?tafm\.org$ +^(.*\.)?tagwalk\.com$ +^(.*\.)?taipeisociety\.org$ +^(.*\.)?taiwanbible\.com$ +^(.*\.)?taiwancon\.com$ +^(.*\.)?taiwandaily\.net$ +^(.*\.)?taiwandc\.org$ +^(.*\.)?taiwanembassy\.org$ +^(.*\.)?taiwanjustice\.com$ +^(.*\.)?taiwankiss\.com$ +^(.*\.)?taiwannation\.com$ +^(.*\.)?www\.taiwanonline\.cc$ +^(.*\.)?taiwantp\.net$ +^(.*\.)?taiwanus\.net$ +^(.*\.)?taiwanyes\.com$ +^(.*\.)?talk853\.com$ +^(.*\.)?talkboxapp\.com$ +^(.*\.)?talkonly\.net$ +^(.*\.)?tamiaode\.tk$ +^(.*\.)?tanc\.org$ +^(.*\.)?tangben\.com$ +^(.*\.)?tangren\.us$ +^(.*\.)?taoism\.net$ +^(.*\.)?taolun\.info$ +^(.*\.)?blog\.taragana\.com$ +^(.*\.)?taup\.net$ +^(.*\.)?taweet\.com$ +^(.*\.)?tbcollege\.org$ +^(.*\.)?tbicn\.org$ +^(.*\.)?tbjyt\.org$ +^(.*\.)?tbpic\.info$ +^(.*\.)?tbs-rainbow\.org$ +^(.*\.)?tbsec\.org$ +^(.*\.)?tbskkinabalu\.page\.tl$ +^(.*\.)?tbsmalaysia\.org$ +^(.*\.)?tbsn\.org$ +^(.*\.)?tbsseattle\.org$ +^(.*\.)?tbssqh\.org$ +^(.*\.)?tbswd\.org$ +^(.*\.)?tbthouston\.org$ +^(.*\.)?tccwonline\.org$ +^(.*\.)?tcewf\.org$ +^(.*\.)?tchrd\.org$ +^(.*\.)?tcnynj\.org$ +^(.*\.)?teamamericany\.com$ +^(.*\.)?techlifeweb\.com$ +^(.*\.)?teeniefuck\.net$ +^(.*\.)?teensinasia\.com$ +^(.*\.)?telecomspace\.com$ +^(.*\.)?telegram\.org$ +^(.*\.)?telegramdownload\.com$ +^(.*\.)?tenacy\.com$ +^(.*\.)?tew\.org$ +^(.*\.)?thaicn\.com$ +^(.*\.)?theatrum-belli\.com$ +^(.*\.)?thebodyshop-usa\.com$ +^(.*\.)?theblemish\.com$ +^(.*\.)?thebcomplex\.com$ +^(.*\.)?thebobs\.com$ +^(.*\.)?thechinabeat\.org$ +^(.*\.)?www\.thechinastory\.org$ +^(.*\.)?thedalailamamovie\.com$ +^(.*\.)?thedw\.us$ +^(.*\.)?thegioitinhoc\.vn$ +^(.*\.)?thegly\.com$ +^(.*\.)?thehots\.info$ +^(.*\.)?thehousenews\.com$ +^(.*\.)?thehun\.net$ +^(.*\.)?theinitium\.com$ +^(.*\.)?thelifeyoucansave\.com$ +^(.*\.)?thenewslens\.com$ +^(.*\.)?thepiratebay\.org$ +^(.*\.)?thereallove\.kr$ +^(.*\.)?therock\.net\.nz$ +^(.*\.)?thespeeder\.com$ +^(.*\.)?thestandnews\.com$ +^(.*\.)?thetibetcenter\.org$ +^(.*\.)?thetibetconnection\.org$ +^(.*\.)?thetibetmuseum\.org$ +^(.*\.)?thetibetpost\.com$ +^(.*\.)?thetrotskymovie\.com$ +^(.*\.)?thevivekspot\.com$ +^(.*\.)?thewgo\.org$ +^(.*\.)?thinkingtaiwan\.com$ +^(.*\.)?thisav\.com$ +^(.*\.)?thlib\.org$ +^(.*\.)?thomasbernhard\.org$ +^(.*\.)?threatchaos\.com$ +^(.*\.)?throughnightsfire\.com$ +^(.*\.)?thumbzilla\.com$ +^(.*\.)?thywords\.com$ +^(.*\.)?tiananmenmother\.org$ +^(.*\.)?tiananmenduizhi\.com$ +^(.*\.)?tiananmenuniv\.com$ +^(.*\.)?tiananmenuniv\.net$ +^(.*\.)?tiandixing\.org$ +^(.*\.)?tianhuayuan\.com$ +^(.*\.)?tianlawoffice\.com$ +^(.*\.)?tianti\.io$ +^(.*\.)?tiantibooks\.org$ +^(.*\.)?tianzhu\.org$ +^(.*\.)?tibet\.at$ +^(.*\.)?tibet\.ca$ +^(.*\.)?tibet\.com$ +^(.*\.)?tibet\.net$ +^(.*\.)?tibet\.nu$ +^(.*\.)?tibet\.org$ +^(.*\.)?tibet\.to$ +^(.*\.)?tibet-foundation\.org$ +^(.*\.)?tibet-info\.net$ +^(.*\.)?tibet3rdpole\.org$ +^(.*\.)?tibetaction\.net$ +^(.*\.)?tibetaid\.org$ +^(.*\.)?tibetalk\.com$ +^(.*\.)?tibetan-alliance\.org$ +^(.*\.)?tibetanarts\.org$ +^(.*\.)?tibetanbuddhistinstitute\.org$ +^(.*\.)?tibetanlanguage\.org$ +^(.*\.)?tibetanliberation\.org$ +^(.*\.)?tibetcollection\.com$ +^(.*\.)?tibetanaidproject\.org$ +^(.*\.)?tibetancommunityuk\.net$ +^(.*\.)?tibetanculture\.org$ +^(.*\.)?tibetanfeministcollective\.org$ +^(.*\.)?tibetanpaintings\.com$ +^(.*\.)?tibetanphotoproject\.com$ +^(.*\.)?tibetanpoliticalreview\.org$ +^(.*\.)?tibetanreview\.net$ +^(.*\.)?tibetanwomen\.org$ +^(.*\.)?tibetanyouth\.org$ +^(.*\.)?tibetanyouthcongress\.org$ +^(.*\.)?tibetcharity\.dk$ +^(.*\.)?tibetchild\.org$ +^(.*\.)?tibetcity\.com$ +^(.*\.)?tibetcorps\.org$ +^(.*\.)?tibetexpress\.net$ +^(.*\.)?tibetfocus\.com$ +^(.*\.)?tibetfund\.org$ +^(.*\.)?tibetgermany\.com$ +^(.*\.)?tibethaus\.com$ +^(.*\.)?tibetheritagefund\.org$ +^(.*\.)?tibethouse\.org$ +^(.*\.)?tibethouse\.us$ +^(.*\.)?tibetinfonet\.net$ +^(.*\.)?tibetjustice\.org$ +^(.*\.)?tibetkomite\.dk$ +^(.*\.)?tibetmuseum\.org$ +^(.*\.)?tibetnetwork\.org$ +^(.*\.)?tibetoffice\.ch$ +^(.*\.)?tibetoffice\.org$ +^(.*\.)?tibetonline\.com$ +^(.*\.)?tibetoralhistory\.org$ +^(.*\.)?tibetsites\.com$ +^(.*\.)?tibetsociety\.com$ +^(.*\.)?tibetsun\.com$ +^(.*\.)?tibetsupportgroup\.org$ +^(.*\.)?tibetswiss\.ch$ +^(.*\.)?tibettelegraph\.com$ +^(.*\.)?tibettimes\.net$ +^(.*\.)?tibetwrites\.org$ +^(.*\.)?timdir\.com$ +^(.*\.)?time\.com$ +^(.*\.)?timsah\.com$ +^(.*\.)?blog\.tiney\.com$ +^(.*\.)?tintuc101\.com$ +^(.*\.)?tiny\.cc$ +^(.*\.)?tinychat\.com$ +^(.*\.)?tinypaste\.com$ +^(.*\.)?tistory\.com$ +^(.*\.)?tkcs-collins\.com$ +^(.*\.)?tmagazine\.com$ +^(.*\.)?tmdfish\.com$ +^(.*\.)?tmi\.me$ +^(.*\.)?tmpp\.org$ +^(.*\.)?tnaflix\.com$ +^(.*\.)?tngrnow\.com$ +^(.*\.)?tngrnow\.net$ +^(.*\.)?tnp\.org$ +^(.*\.)?to-porno\.com$ +^(.*\.)?togetter\.com$ +^(.*\.)?tokyo-247\.com$ +^(.*\.)?tokyo-hot\.com$ +^(.*\.)?tokyo-porn-tube\.com$ +^(.*\.)?tokyocn\.com$ +^(.*\.)?tw\.tomonews\.net$ +^(.*\.)?tongil\.or\.kr$ +^(.*\.)?tonyyan\.net$ +^(.*\.)?toodoc\.com$ +^(.*\.)?toonel\.net$ +^(.*\.)?top81\.ws$ +^(.*\.)?topshare\.us$ +^(.*\.)?torguard\.net$ +^(.*\.)?topshareware\.com$ +^(.*\.)?topsy\.com$ +^(.*\.)?toptip\.ca$ +^(.*\.)?tora\.to$ +^(.*\.)?torcn\.com$ +^(.*\.)?torproject\.org$ +^(.*\.)?torrentcrazy\.com$ +^(.*\.)?torrentprivacy\.com$ +^(.*\.)?torrentproject\.se$ +^(.*\.)?torrenty\.org$ +^(.*\.)?toutfr\.com$ +^(.*\.)?towngain\.com$ +^(.*\.)?toytractorshow\.com$ +^(.*\.)?tparents\.org$ +^(.*\.)?traffichaus\.com$ +^(.*\.)?transgressionism\.org$ +^(.*\.)?transparency\.org$ +^(.*\.)?travelinlocal\.com$ +^(.*\.)?trendsmap\.com$ +^(.*\.)?trialofccp\.org$ +^(.*\.)?tripod\.com$ +^(.*\.)?trouw\.nl$ +^(.*\.)?trt\.net\.tr$ +^(.*\.)?truebuddha-md\.org$ +^(.*\.)?trulyergonomic\.com$ +^(.*\.)?trustedbi\.com$ +^(.*\.)?truthcn\.com$ +^(.*\.)?truthontour\.org$ +^(.*\.)?truveo\.com$ +^(.*\.)?tsctv\.net$ +^(.*\.)?tsemtulku\.com$ +^(.*\.)?tsunagarumon\.com$ +^(.*\.)?tt-rss\.org$ +^(.*\.)?tttan\.com$ +^(.*\.)?tuanzt\.com$ +^(.*\.)?tubaholic\.com$ +^(.*\.)?tube\.com$ +^(.*\.)?tube8\.com$ +^(.*\.)?tube911\.com$ +^(.*\.)?tubecao\.com$ +^(.*\.)?tubecup\.com$ +^(.*\.)?tubegals\.com$ +^(.*\.)?tubeislam\.com$ +^(.*\.)?tubewolf\.com$ +^(.*\.)?tuidang\.net$ +^(.*\.)?tuidang\.org$ +^(.*\.)?tuidang\.se$ +^(.*\.)?bbs\.tuitui\.info$ +^(.*\.)?tumutanzi\.com$ +^(.*\.)?tunein\.com$ +^(.*\.)?tunnelbear\.com$ +^(.*\.)?tuo8\.cc$ +^(.*\.)?tuo8\.club$ +^(.*\.)?tuo8\.ninja$ +^(.*\.)?tuo8\.org$ +^(.*\.)?tuo8\.pw$ +^(.*\.)?tuitwit\.com$ +^(.*\.)?turansam\.org$ +^(.*\.)?turbobit\.net$ +^(.*\.)?turbohide\.com$ +^(.*\.)?turningtorso\.com$ +^(.*\.)?tushycash\.com$ +^(.*\.)?tuxtraining\.com$ +^(.*\.)?tuzaijidi\.com$ +^(.*\.)?tw01\.org$ +^(.*\.)?tumblr\.com$ +^(.*\.)?tv\.com$ +^(.*\.)?tv-intros\.com$ +^(.*\.)?tvants\.com$ +^(.*\.)?forum\.tvb\.com$ +^(.*\.)?news\.tvb\.com$ +^(.*\.)?tvboxnow\.com$ +^(.*\.)?tvider\.com$ +^(.*\.)?tvplayvideos\.com$ +^(.*\.)?tvunetworks\.com$ +^(.*\.)?tw-npo\.org$ +^(.*\.)?twaitter\.com$ +^(.*\.)?twapperkeeper\.com$ +^(.*\.)?twaud\.io$ +^(.*\.)?twbbs\.org$ +^(.*\.)?twblogger\.com$ +^(.*\.)?tweepmag\.com$ +^(.*\.)?tweepml\.org$ +^(.*\.)?tweetbackup\.com$ +^(.*\.)?tweetboard\.com$ +^(.*\.)?tweetboner\.biz$ +^(.*\.)?tweetdeck\.com$ +^(.*\.)?deck\.ly$ +^(.*\.)?mtw\.tl$ +^(.*\.)?tweetedtimes\.com$ +^(.*\.)?tweetmylast\.fm$ +^(.*\.)?tweetphoto\.com$ +^(.*\.)?tweetrans\.com$ +^(.*\.)?tweetree\.com$ +^(.*\.)?tweettunnel\.com$ +^(.*\.)?tweetwally\.com$ +^(.*\.)?tweetymail\.com$ +^(.*\.)?twftp\.org$ +^(.*\.)?twibase\.com$ +^(.*\.)?twibbon\.com$ +^(.*\.)?twibs\.com$ +^(.*\.)?twicsy\.com$ +^(.*\.)?twiends\.com$ +^(.*\.)?twifan\.com$ +^(.*\.)?twiffo\.com$ +^(.*\.)?twilog\.org$ +^(.*\.)?twimbow\.com$ +^(.*\.)?twindexx\.com$ +^(.*\.)?twip\.me$ +^(.*\.)?twishort\.com$ +^(.*\.)?twistar\.cc$ +^(.*\.)?twister\.net\.co$ +^(.*\.)?twisterio\.com$ +^(.*\.)?twisternow\.com$ +^(.*\.)?twistory\.net$ +^(.*\.)?twitbrowser\.net$ +^(.*\.)?twitcause\.com$ +^(.*\.)?twitgether\.com$ +^(.*\.)?twiggit\.org$ +^(.*\.)?twitgoo\.com$ +^(.*\.)?twitiq\.com$ +^(.*\.)?twitlonger\.com$ +^(.*\.)?tl\.gd$ +^(.*\.)?twitmania\.com$ +^(.*\.)?twitoaster\.com$ +^(.*\.)?twitonmsn\.com$ +^(.*\.)?twitpic\.com$ +^(.*\.)?twit2d\.com$ +^(.*\.)?twitstat\.com$ +^(.*\.)?firstfivefollowers\.com$ +^(.*\.)?retweeteffect\.com$ +^(.*\.)?tweeplike\.me$ +^(.*\.)?tweepguide\.com$ +^(.*\.)?turbotwitter\.com$ +^(.*\.)?twitvid\.com$ +^(.*\.)?t\.co$ +^(.*\.)?twt\.tl$ +^(.*\.)?twittbot\.net$ +^(.*\.)?twitter\.com$ +^(.*\.)?twttr\.com$ +^(.*\.)?twitter4j\.org$ +^(.*\.)?twittercounter\.com$ +^(.*\.)?twitterfeed\.com$ +^(.*\.)?twittergadget\.com$ +^(.*\.)?twitterkr\.com$ +^(.*\.)?twittermail\.com$ +^(.*\.)?twitterrific\.com$ +^(.*\.)?twittertim\.es$ +^(.*\.)?twitthat\.com$ +^(.*\.)?twitturk\.com$ +^(.*\.)?twitturly\.com$ +^(.*\.)?twitzap\.com$ +^(.*\.)?twiyia\.com$ +^(.*\.)?twstar\.net$ +^(.*\.)?twtkr\.com$ +^(.*\.)?twimg\.com$ +^(.*\.)?twtrland\.com$ +^(.*\.)?twurl\.nl$ +^(.*\.)?twyac\.org$ +^(.*\.)?txxx\.com$ +^(.*\.)?tycool\.com$ +^(.*\.)?tzangms\.com$ +^(.*\.)?typepad\.com$ +^(.*\.)?blog\.expofutures\.com$ +^(.*\.)?legaltech\.law\.com$ +^(.*\.)?blogs\.tampabay\.com$ +^(.*\.)?contests\.twilio\.com$ +^(.*\.)?ubddns\.org$ +^(.*\.)?uc-japan\.org$ +^(.*\.)?srcf\.ucam\.org$ +^(.*\.)?china\.ucanews\.com$ +^(.*\.)?ucdc1998\.org$ +^(.*\.)?uchicago\.edu$ +^(.*\.)?uderzo\.it$ +^(.*\.)?udn\.com$ +^(.*\.)?udnbkk\.com$ +^(.*\.)?ugo\.com$ +^(.*\.)?uhdwallpapers\.org$ +^(.*\.)?uhrp\.org$ +^(.*\.)?uighur\.nl$ +^(.*\.)?uighurbiz\.net$ +^(.*\.)?ulike\.net$ +^(.*\.)?ultraxs\.com$ +^(.*\.)?umich\.edu$ +^(.*\.)?unblock\.cn\.com$ +^(.*\.)?unblock-us\.com$ +^(.*\.)?unblockdmm\.com$ +^(.*\.)?unblocksit\.es$ +^(.*\.)?uncyclomedia\.org$ +^(.*\.)?underwoodammo\.com$ +^(.*\.)?unholyknight\.com$ +^(.*\.)?uni\.cc$ +^(.*\.)?cldr\.unicode\.org$ +^(.*\.)?unification\.net$ +^(.*\.)?unitedsocialpress\.com$ +^(.*\.)?unix100\.com$ +^(.*\.)?unknownspace\.org$ +^(.*\.)?unodedos\.com$ +^(.*\.)?unpo\.org$ +^(.*\.)?untraceable\.us$ +^(.*\.)?uocn\.org$ +^(.*\.)?tor\.updatestar\.com$ +^(.*\.)?upholdjustice\.org$ +^(.*\.)?upload4u\.info$ +^(.*\.)?uploaded\.net$ +^(.*\.)?uploaded\.to$ +^(.*\.)?uploadstation\.com$ +^(.*\.)?upornia\.com$ +^(.*\.)?tor\.cn\.uptodown\.com$ +^(.*\.)?upwill\.org$ +^(.*\.)?ur7s\.com$ +^(.*\.)?urbansurvival\.com$ +^(.*\.)?urlborg\.com$ +^(.*\.)?urlparser\.com$ +^(.*\.)?us\.to$ +^(.*\.)?usacn\.com$ +^(.*\.)?dalailama\.usc\.edu$ +^(.*\.)?beta\.usejump\.com$ +^(.*\.)?usfk\.mil$ +^(.*\.)?usma\.edu$ +^(.*\.)?usmc\.mil$ +^(.*\.)?tarr\.uspto\.gov$ +^(.*\.)?tsdr\.uspto\.gov$ +^(.*\.)?usus\.cc$ +^(.*\.)?utopianpal\.com$ +^(.*\.)?uu-gg\.com$ +^(.*\.)?uvwxyz\.xyz$ +^(.*\.)?uwants\.com$ +^(.*\.)?uwants\.net$ +^(.*\.)?uyghur-j\.org$ +^(.*\.)?uyghuramerican\.org$ +^(.*\.)?uyghurcanadiansociety\.org$ +^(.*\.)?uyghurcongress\.org$ +^(.*\.)?uyghurpen\.org$ +^(.*\.)?uyghurpress\.com$ +^(.*\.)?uyghurstudies\.org$ +^(.*\.)?uygur\.org$ +^(.*\.)?uymaarip\.com$ +^(.*\.)?v2ray\.com$ +^(.*\.)?van001\.com$ +^(.*\.)?vanilla-jp\.com$ +^(.*\.)?vanpeople\.com$ +^(.*\.)?vansky\.com$ +^(.*\.)?vcf-online\.org$ +^(.*\.)?vcfbuilder\.org$ +^(.*\.)?velkaepocha\.sk$ +^(.*\.)?venbbs\.com$ +^(.*\.)?venchina\.com$ +^(.*\.)?veoh\.com$ +^(.*\.)?mysite\.verizon\.net$ +^(.*\.)?vermonttibet\.org$ +^(.*\.)?verybs\.com$ +^(.*\.)?viber\.com$ +^(.*\.)?vica\.info$ +^(.*\.)?victimsofcommunism\.org$ +^(.*\.)?vid\.me$ +^(.*\.)?vidble\.com$ +^(.*\.)?videobam\.com$ +^(.*\.)?videodetective\.com$ +^(.*\.)?videomo\.com$ +^(.*\.)?videopediaworld\.com$ +^(.*\.)?vidinfo\.org$ +^(.*\.)?vietdaikynguyen\.com$ +^(.*\.)?vijayatemple\.org$ +^(.*\.)?viki\.com$ +^(.*\.)?vimeo\.com$ +^(.*\.)?vimperator\.org$ +^(.*\.)?vincnd\.com$ +^(.*\.)?vinniev\.com$ +^(.*\.)?www\.lib\.virginia\.edu$ +^(.*\.)?visibletweets\.com$ +^(.*\.)?ny\.visiontimes\.com$ +^(.*\.)?vital247\.org$ +^(.*\.)?viu\.com$ +^(.*\.)?vivahentai4u\.net$ +^(.*\.)?vivatube\.com$ +^(.*\.)?vivthomas\.com$ +^(.*\.)?vllcs\.org$ +^(.*\.)?vmixcore\.com$ +^(.*\.)?cn\.voa\.mobi$ +^(.*\.)?tw\.voa\.mobi$ +^(.*\.)?voachineseblog\.com$ +^(.*\.)?voagd\.com$ +^(.*\.)?voacantonese\.com$ +^(.*\.)?voachinese\.com$ +^(.*\.)?voanews\.com$ +^(.*\.)?voatibetan\.com$ +^(.*\.)?voatibetanenglish\.com$ +^(.*\.)?vocativ\.com$ +^(.*\.)?vot\.org$ +^(.*\.)?vovo2000\.com$ +^(.*\.)?voxer\.com$ +^(.*\.)?voy\.com$ +^(.*\.)?vporn\.com$ +^(.*\.)?vraiesagesse\.net$ +^(.*\.)?vtunnel\.com$ +^(.*\.)?vuku\.cc$ +^(.*\.)?w\.org$ +^(.*\.)?lists\.w3\.org$ +^(.*\.)?waffle1999\.com$ +^(.*\.)?wahas\.com$ +^(.*\.)?waigaobu\.com$ +^(.*\.)?waikeung\.org$ +^(.*\.)?waiwaier\.com$ +^(.*\.)?wallornot\.org$ +^(.*\.)?wallpapercasa\.com$ +^(.*\.)?waltermartin\.com$ +^(.*\.)?waltermartin\.org$ +^(.*\.)?www\.wan-press\.org$ +^(.*\.)?wanderinghorse\.net$ +^(.*\.)?wangafu\.net$ +^(.*\.)?wangjinbo\.org$ +^(.*\.)?wanglixiong\.com$ +^(.*\.)?wango\.org$ +^(.*\.)?wangruoshui\.net$ +^(.*\.)?www\.wangruowang\.org$ +^(.*\.)?want-daily\.com$ +^(.*\.)?wapedia\.mobi$ +^(.*\.)?waselpro\.com$ +^(.*\.)?watchinese\.com$ +^(.*\.)?wattpad\.com$ +^(.*\.)?makzhou\.warehouse333\.com$ +^(.*\.)?washeng\.net$ +^(.*\.)?watchmygf\.net$ +^(.*\.)?wdf5\.com$ +^(.*\.)?wearehairy\.com$ +^(.*\.)?wearn\.com$ +^(.*\.)?hudatoriq\.web\.id$ +^(.*\.)?web2project\.net$ +^(.*\.)?webbang\.net$ +^(.*\.)?webevader\.org$ +^(.*\.)?webfreer\.com$ +^(.*\.)?weblagu\.com$ +^(.*\.)?webjb\.org$ +^(.*\.)?webrush\.net$ +^(.*\.)?webs-tv\.net$ +^(.*\.)?websitepulse\.com$ +^(.*\.)?www\.websnapr\.com$ +^(.*\.)?webwarper\.net$ +^(.*\.)?webworkerdaily\.com$ +^(.*\.)?weekmag\.info$ +^(.*\.)?wefightcensorship\.org$ +^(.*\.)?wefong\.com$ +^(.*\.)?weiboleak\.com$ +^(.*\.)?weijingsheng\.org$ +^(.*\.)?weiming\.info$ +^(.*\.)?weiquanwang\.org$ +^(.*\.)?weisuo\.ws$ +^(.*\.)?welovecock\.com$ +^(.*\.)?wemigrate\.org$ +^(.*\.)?wengewang\.com$ +^(.*\.)?wengewang\.org$ +^(.*\.)?wenhui\.ch$ +^(.*\.)?trans\.wenweipo\.com$ +^(.*\.)?wenxuecity\.com$ +^(.*\.)?wenyunchao\.com$ +^(.*\.)?westca\.com$ +^(.*\.)?westernwolves\.com$ +^(.*\.)?westkit\.net$ +^(.*\.)?westpoint\.edu$ +^(.*\.)?westernshugdensociety\.org$ +^(.*\.)?wetpussygames\.com$ +^(.*\.)?wetplace\.com$ +^(.*\.)?wexiaobo\.org$ +^(.*\.)?wezhiyong\.org$ +^(.*\.)?wezone\.net$ +^(.*\.)?wforum\.com$ +^(.*\.)?whatblocked\.com$ +^(.*\.)?wheelockslatin\.com$ +^(.*\.)?whippedass\.com$ +^(.*\.)?whotalking\.com$ +^(.*\.)?whylover\.com$ +^(.*\.)?whyx\.org$ +^(.*\.)?evchk\.wikia\.com$ +^(.*\.)?cn\.uncyclopedia\.wikia\.com$ +^(.*\.)?zh\.uncyclopedia\.wikia\.com$ +^(.*\.)?wikileaks\.ch$ +^(.*\.)?wikileaks\.lu$ +^(.*\.)?wikileaks\.org$ +^(.*\.)?wikileaks\.pl$ +^(.*\.)?wikileaks-forum\.com$ +^(.*\.)?wildammo\.com$ +^(.*\.)?collateralmurder\.com$ +^(.*\.)?collateralmurder\.org$ +^(.*\.)?wikilivres\.info$ +^(.*\.)?wikimapia\.org$ +^(.*\.)?zh\.wikisource\.org$ +^(.*\.)?zh\.wikinews\.org$ +^(.*\.)?zh\.wikivoyage\.org$ +^(.*\.)?zh\.wiktionary\.org$ +^(.*\.)?zh\.wikipedia\.org$ +^(.*\.)?zh\.m\.wikipedia\.org$ +^(.*\.)?casino\.williamhill\.com$ +^(.*\.)?sports\.williamhill\.com$ +^(.*\.)?vegas\.williamhill\.com$ +^(.*\.)?willw\.net$ +^(.*\.)?windowsphoneme\.com$ +^(.*\.)?winning11\.com$ +^(.*\.)?winwhispers\.info$ +^(.*\.)?wiredbytes\.com$ +^(.*\.)?wiredpen\.com$ +^(.*\.)?wireshark\.org$ +^(.*\.)?wisdompubs\.org$ +^(.*\.)?wisevid\.com$ +^(.*\.)?witnessleeteaching\.com$ +^(.*\.)?witopia\.net$ +^(.*\.)?wjbk\.org$ +^(.*\.)?wn\.com$ +^(.*\.)?wnacg\.com$ +^(.*\.)?wo\.tc$ +^(.*\.)?woeser\.com$ +^(.*\.)?woesermiddle-way\.net$ +^(.*\.)?wokar\.org$ +^(.*\.)?wolfax\.com$ +^(.*\.)?workatruna\.com$ +^(.*\.)?workersthebig\.net$ +^(.*\.)?worldcat\.org$ +^(.*\.)?worldjournal\.com$ +^(.*\.)?wordpress\.com$ +^(.*\.)?chenshan20042005\.wordpress\.com$ +^(.*\.)?wp\.com$ +^(.*\.)?wow\.com$ +^(.*\.)?wow-life\.net$ +^(.*\.)?wowlegacy\.ml$ +^(.*\.)?woxinghuiguo\.com$ +^(.*\.)?woyaolian\.org$ +^(.*\.)?wpoforum\.com$ +^(.*\.)?wqyd\.org$ +^(.*\.)?wrchina\.org$ +^(.*\.)?wretch\.cc$ +^(.*\.)?wsj\.com$ +^(.*\.)?wsj\.net$ +^(.*\.)?wsjhk\.com$ +^(.*\.)?wtbn\.org$ +^(.*\.)?wtfpeople\.com$ +^(.*\.)?wuerkaixi\.com$ +^(.*\.)?wufafangwen\.com$ +^(.*\.)?wuguoguang\.com$ +^(.*\.)?wujie\.net$ +^(.*\.)?wujieliulan\.com$ +^(.*\.)?wukangrui\.net$ +^(.*\.)?wwitv\.com$ +^(.*\.)?wzyboy\.im$ +^(.*\.)?x-berry\.com$ +^(.*\.)?x-art\.com$ +^(.*\.)?x-wall\.org$ +^(.*\.)?x1949x\.com$ +^(.*\.)?x365x\.com$ +^(.*\.)?xanga\.com$ +^(.*\.)?xbabe\.com$ +^(.*\.)?xbookcn\.com$ +^(.*\.)?xcritic\.com$ +^(.*\.)?xda-developers\.com$ +^(.*\.)?destiny\.xfiles\.to$ +^(.*\.)?xgmyd\.com$ +^(.*\.)?xhamster\.com$ +^(.*\.)?xianchawang\.net$ +^(.*\.)?xianqiao\.net$ +^(.*\.)?xiaochuncnjp\.com$ +^(.*\.)?xiaohexie\.com$ +^(.*\.)?xiaolan\.me$ +^(.*\.)?xiaoma\.org$ +^(.*\.)?xiezhua\.com$ +^(.*\.)?xihua\.es$ +^(.*\.)?xing\.com$ +^(.*\.)?xinsheng\.net$ +^(.*\.)?xinshijue\.com$ +^(.*\.)?xinhuanet\.org$ +^(.*\.)?xinyubbs\.net$ +^(.*\.)?xiongpian\.com$ +^(.*\.)?xiuren\.org$ +^(.*\.)?xizang-zhiye\.org$ +^(.*\.)?xjp\.cc$ +^(.*\.)?xjtravelguide\.com$ +^(.*\.)?xlfmtalk\.com$ +^(.*\.)?xlfmwz\.info$ +^(.*\.)?xml-training-guide\.com$ +^(.*\.)?xmovies\.com$ +^(.*\.)?xnxx\.com$ +^(.*\.)?xpdo\.net$ +^(.*\.)?xpud\.org$ +^(.*\.)?xrentdvd\.com$ +^(.*\.)?xtube\.com$ +^(.*\.)?blog\.xuite\.net$ +^(.*\.)?vlog\.xuite\.net$ +^(.*\.)?xuzhiyong\.net$ +^(.*\.)?xuchao\.org$ +^(.*\.)?xuchao\.net$ +^(.*\.)?xvideos\.com$ +^(.*\.)?xvideos\.es$ +^(.*\.)?xxbbx\.com$ +^(.*\.)?xxlmovies\.com$ +^(.*\.)?xxx\.com$ +^(.*\.)?xxxymovies\.com$ +^(.*\.)?xys\.org$ +^(.*\.)?xysblogs\.org$ +^(.*\.)?page\.bid\.yahoo\.com$ +^(.*\.)?hk\.yahoo\.com$ +^(.*\.)?hk\.knowledge\.yahoo\.com$ +^(.*\.)?hk\.myblog\.yahoo\.com$ +^(.*\.)?hk\.news\.yahoo\.com$ +^(.*\.)?hk\.rd\.yahoo\.com$ +^(.*\.)?hk\.search\.yahoo\.com$ +^(.*\.)?hk\.video\.news\.yahoo\.com$ +^(.*\.)?meme\.yahoo\.com$ +^(.*\.)?tw\.knowledge\.yahoo\.com$ +^(.*\.)?tw\.mall\.yahoo\.com$ +^(.*\.)?tw\.yahoo\.com$ +^(.*\.)?tw\.mobi\.yahoo\.com$ +^(.*\.)?tw\.myblog\.yahoo\.com$ +^(.*\.)?tw\.news\.yahoo\.com$ +^(.*\.)?pulse\.yahoo\.com$ +^(.*\.)?upcoming\.yahoo\.com$ +^(.*\.)?video\.yahoo\.com$ +^(.*\.)?yakbutterblues\.com$ +^(.*\.)?yam\.com$ +^(.*\.)?yanghengjun\.com$ +^(.*\.)?yangjianli\.com$ +^(.*\.)?ydy\.com$ +^(.*\.)?yeahteentube\.com$ +^(.*\.)?yeelou\.com$ +^(.*\.)?yeeyi\.com$ +^(.*\.)?yegle\.net$ +^(.*\.)?yesasia\.com$ +^(.*\.)?yes-news\.com$ +^(.*\.)?yecl\.net$ +^(.*\.)?yhcw\.net$ +^(.*\.)?yibada\.com$ +^(.*\.)?yibaochina\.com$ +^(.*\.)?yidio\.com$ +^(.*\.)?yilubbs\.com$ +^(.*\.)?xa\.yimg\.com$ +^(.*\.)?yingsuoss\.com$ +^(.*\.)?yipub\.com$ +^(.*\.)?yinlei\.org$ +^(.*\.)?yobt\.com$ +^(.*\.)?yogichen\.org$ +^(.*\.)?yong\.hu$ +^(.*\.)?yorkbbs\.ca$ +^(.*\.)?youxu\.info$ +^(.*\.)?youjizz\.com$ +^(.*\.)?youmaker\.com$ +^(.*\.)?youpai\.org$ +^(.*\.)?your-freedom\.net$ +^(.*\.)?yourepeat\.com$ +^(.*\.)?yousendit\.com$ +^(.*\.)?youthnetradio\.org$ +^(.*\.)?youporn\.com$ +^(.*\.)?youporngay\.com$ +^(.*\.)?yourlisten\.com$ +^(.*\.)?yourlust\.com$ +^(.*\.)?youshun12\.com$ +^(.*\.)?youtubecn\.com$ +^(.*\.)?youversion\.com$ +^(.*\.)?blog\.youxu\.info$ +^(.*\.)?ytht\.net$ +^(.*\.)?yuanming\.net$ +^(.*\.)?yuanzhengtang\.org$ +^(.*\.)?yulghun\.com$ +^(.*\.)?yunchao\.net$ +^(.*\.)?yuvutu\.com$ +^(.*\.)?yvesgeleyn\.com$ +^(.*\.)?ywpw\.com$ +^(.*\.)?yx51\.net$ +^(.*\.)?yyii\.org$ +^(.*\.)?yzzk\.com$ +^(.*\.)?zacebook\.com$ +^(.*\.)?zalmos\.com$ +^(.*\.)?zannel\.com$ +^(.*\.)?zaobao\.com$ +^(.*\.)?zaobao\.com\.sg$ +^(.*\.)?zaozon\.com$ +^(.*\.)?zello\.com$ +^(.*\.)?zengjinyan\.org$ +^(.*\.)?zeutch\.com$ +^(.*\.)?zfreet\.com$ +^(.*\.)?zgsddh\.com$ +^(.*\.)?zgzcjj\.net$ +^(.*\.)?zhanbin\.net$ +^(.*\.)?zhangboli\.net$ +^(.*\.)?zhangtianliang\.com$ +^(.*\.)?zhenghui\.org$ +^(.*\.)?zhengwunet\.org$ +^(.*\.)?zhenlibu\.info$ +^(.*\.)?zhenlibu1984\.com$ +^(.*\.)?zhenxiang\.biz$ +^(.*\.)?zhinengluyou\.com$ +^(.*\.)?zhongguo\.ca$ +^(.*\.)?zhongguorenquan\.org$ +^(.*\.)?zhongguotese\.net$ +^(.*\.)?zhongmeng\.org$ +^(.*\.)?zhreader\.com$ +^(.*\.)?zhuangbi\.me$ +^(.*\.)?zhuatieba\.com$ +^(.*\.)?zhuichaguoji\.org$ +^(.*\.)?book\.zi5\.me$ +^(.*\.)?ziddu\.com$ +^(.*\.)?zillionk\.com$ +^(.*\.)?zinio\.com$ +^(.*\.)?ziplib\.com$ +^(.*\.)?ziporn\.com$ +^(.*\.)?zkaip\.com$ +^(.*\.)?realforum\.zkiz\.com$ +^(.*\.)?zomobo\.net$ +^(.*\.)?zonaeuropa\.com$ +^(.*\.)?zonghexinwen\.com$ +^(.*\.)?zonghexinwen\.net$ +^(.*\.)?zootool\.com$ +^(.*\.)?zoozle\.net$ +^(.*\.)?writer\.zoho\.com$ +^(.*\.)?zshare\.net$ +^(.*\.)?zsrhao\.com$ +^(.*\.)?zuo\.la$ +^(.*\.)?zuobiao\.me$ +^(.*\.)?zuola\.com$ +^(.*\.)?zvereff\.com$ +^(.*\.)?zynaima\.com$ +^(.*\.)?zyzc9\.com$ +^(.*\.)?zzcartoon\.com$ +^(.*\.)?phobos\.apple\.com$ diff --git a/shadowsocksr-libev/src/acl/local.acl b/shadowsocksr-libev/src/acl/local.acl new file mode 100644 index 00000000000..6484f768bf2 --- /dev/null +++ b/shadowsocksr-libev/src/acl/local.acl @@ -0,0 +1,9 @@ +[reject_all] + +[white_list] +127.0.0.1 +::1 +10.0.0.0/8 +172.16.0.0/12 +192.168.0.0/16 +fc00::/7 diff --git a/shadowsocksr-libev/src/acl/server_block_chn.acl b/shadowsocksr-libev/src/acl/server_block_chn.acl new file mode 100644 index 00000000000..aa1102af7bb --- /dev/null +++ b/shadowsocksr-libev/src/acl/server_block_chn.acl @@ -0,0 +1,3811 @@ +# All IPs listed here will be blocked while the ss-server try to outbound. +# Only IP is allowed, *NOT* domain name. +# +# The IPs bellow are all IPs in CHN. It'll block ss-server to access all +# CHN hosts by command +# `ss-server -s:: -p 8388 -k 123456 --acl acl/server_block_chn.acl` + +[outbound_block_list] +103.235.44.0/22 +1.0.1.0/24 +1.0.2.0/23 +1.0.8.0/21 +1.0.32.0/19 +1.1.0.0/24 +1.1.2.0/23 +1.1.4.0/22 +1.1.8.0/21 +1.1.16.0/20 +1.1.32.0/19 +1.2.0.0/23 +1.2.2.0/24 +1.2.4.0/24 +1.2.5.0/24 +1.2.6.0/23 +1.2.8.0/24 +1.2.9.0/24 +1.2.10.0/23 +1.2.12.0/22 +1.2.16.0/20 +1.2.32.0/19 +1.2.64.0/18 +1.3.0.0/16 +1.4.1.0/24 +1.4.2.0/23 +1.4.4.0/24 +1.4.5.0/24 +1.4.6.0/23 +1.4.8.0/21 +1.4.16.0/20 +1.4.32.0/19 +1.4.64.0/18 +1.8.0.0/16 +1.10.0.0/21 +1.10.8.0/23 +1.10.11.0/24 +1.10.12.0/22 +1.10.16.0/20 +1.10.32.0/19 +1.10.64.0/18 +1.12.0.0/14 +1.24.0.0/13 +1.45.0.0/16 +1.48.0.0/15 +1.50.0.0/16 +1.51.0.0/16 +1.56.0.0/13 +1.68.0.0/14 +1.80.0.0/13 +1.88.0.0/14 +1.92.0.0/15 +1.94.0.0/15 +1.116.0.0/14 +1.180.0.0/14 +1.184.0.0/15 +1.188.0.0/14 +1.192.0.0/13 +1.202.0.0/15 +1.204.0.0/14 +14.0.0.0/21 +14.0.12.0/22 +14.1.0.0/22 +14.16.0.0/12 +14.102.128.0/22 +14.102.156.0/22 +14.103.0.0/16 +14.104.0.0/13 +14.112.0.0/12 +14.130.0.0/15 +14.134.0.0/15 +14.144.0.0/12 +14.192.60.0/22 +14.192.76.0/22 +14.196.0.0/15 +14.204.0.0/15 +14.208.0.0/12 +27.8.0.0/13 +27.16.0.0/12 +27.34.232.0/21 +27.36.0.0/14 +27.40.0.0/13 +27.50.40.0/21 +27.50.128.0/17 +27.54.72.0/21 +27.54.152.0/21 +27.54.192.0/18 +27.98.208.0/20 +27.98.224.0/19 +27.99.128.0/17 +27.103.0.0/16 +27.106.128.0/18 +27.106.204.0/22 +27.109.32.0/19 +27.112.0.0/18 +27.112.80.0/20 +27.113.128.0/18 +27.115.0.0/17 +27.116.44.0/22 +27.121.72.0/21 +27.121.120.0/21 +27.128.0.0/15 +27.131.220.0/22 +27.144.0.0/16 +27.148.0.0/14 +27.152.0.0/13 +27.184.0.0/13 +27.192.0.0/11 +27.224.0.0/14 +36.0.0.0/22 +36.0.8.0/21 +36.0.16.0/20 +36.0.32.0/19 +36.0.64.0/18 +36.0.128.0/17 +36.1.0.0/16 +36.4.0.0/14 +36.16.0.0/12 +36.32.0.0/14 +36.36.0.0/16 +36.37.0.0/19 +36.37.36.0/23 +36.37.39.0/24 +36.37.40.0/21 +36.37.48.0/20 +36.40.0.0/13 +36.48.0.0/15 +36.51.0.0/16 +36.56.0.0/13 +36.96.0.0/11 +36.128.0.0/10 +36.192.0.0/11 +36.248.0.0/14 +36.254.0.0/16 +39.0.0.0/24 +39.0.2.0/23 +39.0.4.0/22 +39.0.8.0/21 +39.0.16.0/20 +39.0.32.0/19 +39.0.64.0/18 +39.0.128.0/17 +39.64.0.0/11 +39.128.0.0/10 +42.0.0.0/22 +42.0.8.0/21 +42.0.16.0/21 +42.0.24.0/22 +42.0.32.0/19 +42.0.128.0/17 +42.1.0.0/19 +42.1.32.0/20 +42.1.48.0/21 +42.1.56.0/22 +42.1.128.0/17 +42.4.0.0/14 +42.48.0.0/15 +42.50.0.0/16 +42.51.0.0/16 +42.52.0.0/14 +42.56.0.0/14 +42.62.0.0/17 +42.62.128.0/19 +42.62.160.0/20 +42.62.180.0/22 +42.62.184.0/21 +42.63.0.0/16 +42.80.0.0/15 +42.83.64.0/20 +42.83.80.0/22 +42.83.88.0/21 +42.83.96.0/19 +42.83.128.0/17 +42.84.0.0/14 +42.88.0.0/13 +42.96.64.0/19 +42.96.96.0/21 +42.96.108.0/22 +42.96.112.0/20 +42.96.128.0/17 +42.97.0.0/16 +42.99.0.0/18 +42.99.64.0/19 +42.99.96.0/20 +42.99.112.0/22 +42.99.120.0/21 +42.100.0.0/14 +42.120.0.0/15 +42.122.0.0/16 +42.123.0.0/19 +42.123.36.0/22 +42.123.40.0/21 +42.123.48.0/20 +42.123.64.0/18 +42.123.128.0/17 +42.128.0.0/12 +42.156.0.0/19 +42.156.36.0/22 +42.156.40.0/21 +42.156.48.0/20 +42.156.64.0/18 +42.156.128.0/17 +42.157.0.0/16 +42.158.0.0/15 +42.160.0.0/12 +42.176.0.0/13 +42.184.0.0/15 +42.186.0.0/16 +42.187.0.0/18 +42.187.64.0/19 +42.187.96.0/20 +42.187.112.0/21 +42.187.120.0/22 +42.187.128.0/17 +42.192.0.0/15 +42.194.0.0/21 +42.194.8.0/22 +42.194.12.0/22 +42.194.16.0/20 +42.194.32.0/19 +42.194.64.0/18 +42.194.128.0/17 +42.195.0.0/16 +42.196.0.0/14 +42.201.0.0/17 +42.202.0.0/15 +42.204.0.0/14 +42.208.0.0/12 +42.224.0.0/12 +42.240.0.0/17 +42.240.128.0/17 +42.242.0.0/15 +42.244.0.0/14 +42.248.0.0/13 +49.4.0.0/14 +49.51.0.0/16 +49.52.0.0/14 +49.64.0.0/11 +49.112.0.0/13 +49.120.0.0/14 +49.128.0.0/24 +49.128.2.0/23 +49.140.0.0/15 +49.152.0.0/14 +49.208.0.0/15 +49.210.0.0/15 +49.220.0.0/14 +49.232.0.0/14 +49.239.0.0/18 +49.239.192.0/18 +49.246.224.0/19 +54.222.0.0/15 +58.14.0.0/15 +58.16.0.0/16 +58.17.0.0/17 +58.17.128.0/17 +58.18.0.0/16 +58.19.0.0/16 +58.20.0.0/16 +58.21.0.0/16 +58.22.0.0/15 +58.24.0.0/15 +58.30.0.0/15 +58.32.0.0/13 +58.40.0.0/15 +58.42.0.0/16 +58.43.0.0/16 +58.44.0.0/14 +58.48.0.0/13 +58.56.0.0/15 +58.58.0.0/16 +58.59.0.0/17 +58.59.128.0/17 +58.60.0.0/14 +58.65.232.0/21 +58.66.0.0/15 +58.68.128.0/17 +58.82.0.0/17 +58.83.0.0/17 +58.83.128.0/17 +58.87.64.0/18 +58.99.128.0/17 +58.100.0.0/15 +58.116.0.0/14 +58.128.0.0/13 +58.144.0.0/16 +58.154.0.0/15 +58.192.0.0/15 +58.194.0.0/15 +58.196.0.0/15 +58.198.0.0/15 +58.200.0.0/13 +58.208.0.0/12 +58.240.0.0/15 +58.242.0.0/15 +58.244.0.0/15 +58.246.0.0/15 +58.248.0.0/13 +59.32.0.0/13 +59.40.0.0/15 +59.42.0.0/16 +59.43.0.0/16 +59.44.0.0/14 +59.48.0.0/16 +59.49.0.0/17 +59.49.128.0/17 +59.50.0.0/16 +59.51.0.0/17 +59.51.128.0/17 +59.52.0.0/14 +59.56.0.0/14 +59.60.0.0/15 +59.62.0.0/15 +59.64.0.0/14 +59.68.0.0/14 +59.72.0.0/15 +59.74.0.0/15 +59.76.0.0/16 +59.77.0.0/16 +59.78.0.0/15 +59.80.0.0/14 +59.107.0.0/17 +59.107.128.0/17 +59.108.0.0/15 +59.110.0.0/15 +59.151.0.0/17 +59.155.0.0/16 +59.172.0.0/15 +59.174.0.0/15 +59.191.0.0/17 +59.191.240.0/20 +59.192.0.0/10 +60.0.0.0/13 +60.8.0.0/15 +60.10.0.0/16 +60.11.0.0/16 +60.12.0.0/16 +60.13.0.0/18 +60.13.64.0/18 +60.13.128.0/17 +60.14.0.0/15 +60.16.0.0/13 +60.24.0.0/14 +60.28.0.0/15 +60.30.0.0/16 +60.31.0.0/16 +60.55.0.0/16 +60.63.0.0/16 +60.160.0.0/15 +60.162.0.0/15 +60.164.0.0/15 +60.166.0.0/15 +60.168.0.0/13 +60.176.0.0/12 +60.194.0.0/15 +60.200.0.0/14 +60.204.0.0/16 +60.205.0.0/16 +60.206.0.0/15 +60.208.0.0/13 +60.216.0.0/15 +60.218.0.0/15 +60.220.0.0/14 +60.232.0.0/15 +60.235.0.0/16 +60.245.128.0/17 +60.247.0.0/16 +60.252.0.0/16 +60.253.128.0/17 +60.255.0.0/16 +61.4.80.0/22 +61.4.84.0/22 +61.4.88.0/21 +61.4.176.0/20 +61.8.160.0/20 +61.28.0.0/20 +61.28.16.0/20 +61.28.32.0/19 +61.28.64.0/18 +61.29.128.0/18 +61.29.192.0/19 +61.29.224.0/20 +61.29.240.0/20 +61.45.128.0/18 +61.45.224.0/20 +61.47.128.0/18 +61.48.0.0/14 +61.52.0.0/15 +61.54.0.0/16 +61.55.0.0/16 +61.87.192.0/18 +61.128.0.0/15 +61.130.0.0/15 +61.132.0.0/16 +61.133.0.0/17 +61.133.128.0/17 +61.134.0.0/18 +61.134.64.0/19 +61.134.96.0/19 +61.134.128.0/18 +61.134.192.0/18 +61.135.0.0/16 +61.136.0.0/18 +61.136.64.0/18 +61.136.128.0/17 +61.137.0.0/17 +61.137.128.0/17 +61.138.0.0/18 +61.138.64.0/18 +61.138.128.0/18 +61.138.192.0/18 +61.139.0.0/17 +61.139.128.0/18 +61.139.192.0/18 +61.140.0.0/14 +61.144.0.0/14 +61.148.0.0/15 +61.150.0.0/15 +61.152.0.0/16 +61.153.0.0/16 +61.154.0.0/15 +61.156.0.0/16 +61.157.0.0/16 +61.158.0.0/17 +61.158.128.0/17 +61.159.0.0/18 +61.159.64.0/18 +61.159.128.0/17 +61.160.0.0/16 +61.161.0.0/18 +61.161.64.0/18 +61.161.128.0/17 +61.162.0.0/16 +61.163.0.0/16 +61.164.0.0/16 +61.165.0.0/16 +61.166.0.0/16 +61.167.0.0/16 +61.168.0.0/16 +61.169.0.0/16 +61.170.0.0/15 +61.172.0.0/14 +61.176.0.0/16 +61.177.0.0/16 +61.178.0.0/16 +61.179.0.0/16 +61.180.0.0/17 +61.180.128.0/17 +61.181.0.0/16 +61.182.0.0/16 +61.183.0.0/16 +61.184.0.0/14 +61.188.0.0/16 +61.189.0.0/17 +61.189.128.0/17 +61.190.0.0/15 +61.232.0.0/14 +61.236.0.0/15 +61.240.0.0/14 +101.0.0.0/22 +101.1.0.0/22 +101.2.172.0/22 +101.4.0.0/14 +101.16.0.0/12 +101.32.0.0/12 +101.48.0.0/15 +101.50.56.0/22 +101.52.0.0/16 +101.53.100.0/22 +101.54.0.0/16 +101.55.224.0/21 +101.64.0.0/13 +101.72.0.0/14 +101.76.0.0/15 +101.78.0.0/22 +101.78.32.0/19 +101.80.0.0/12 +101.96.0.0/21 +101.96.8.0/22 +101.96.16.0/20 +101.96.128.0/17 +101.99.96.0/19 +101.101.64.0/19 +101.101.100.0/24 +101.101.102.0/23 +101.101.104.0/21 +101.101.112.0/20 +101.102.64.0/19 +101.102.100.0/23 +101.102.102.0/24 +101.102.104.0/21 +101.102.112.0/20 +101.104.0.0/14 +101.110.64.0/19 +101.110.96.0/20 +101.110.116.0/22 +101.110.120.0/21 +101.120.0.0/14 +101.124.0.0/15 +101.126.0.0/16 +101.128.0.0/22 +101.128.8.0/21 +101.128.16.0/20 +101.128.32.0/19 +101.129.0.0/16 +101.130.0.0/15 +101.132.0.0/14 +101.144.0.0/12 +101.192.0.0/14 +101.196.0.0/14 +101.200.0.0/15 +101.203.128.0/19 +101.203.160.0/21 +101.203.172.0/22 +101.203.176.0/20 +101.204.0.0/14 +101.224.0.0/13 +101.232.0.0/15 +101.234.64.0/21 +101.234.76.0/22 +101.234.80.0/20 +101.234.96.0/19 +101.236.0.0/14 +101.240.0.0/14 +101.244.0.0/14 +101.248.0.0/15 +101.251.0.0/22 +101.251.8.0/21 +101.251.16.0/20 +101.251.32.0/19 +101.251.64.0/18 +101.251.128.0/17 +101.252.0.0/15 +101.254.0.0/16 +103.1.8.0/22 +103.1.20.0/22 +103.1.24.0/22 +103.1.72.0/22 +103.1.88.0/22 +103.1.168.0/22 +103.2.108.0/22 +103.2.156.0/22 +103.2.164.0/22 +103.2.200.0/22 +103.2.204.0/22 +103.2.208.0/22 +103.2.212.0/22 +103.3.84.0/22 +103.3.88.0/22 +103.3.92.0/22 +103.3.96.0/22 +103.3.100.0/22 +103.3.104.0/22 +103.3.108.0/22 +103.3.112.0/22 +103.3.116.0/22 +103.3.120.0/22 +103.3.124.0/22 +103.3.128.0/22 +103.3.132.0/22 +103.3.136.0/22 +103.3.140.0/22 +103.3.148.0/22 +103.3.152.0/22 +103.3.156.0/22 +103.4.56.0/22 +103.4.168.0/22 +103.4.184.0/22 +103.5.36.0/22 +103.5.52.0/22 +103.5.56.0/22 +103.5.252.0/22 +103.6.76.0/22 +103.6.220.0/22 +103.7.4.0/22 +103.7.28.0/22 +103.7.212.0/22 +103.7.216.0/22 +103.7.220.0/22 +103.8.4.0/22 +103.8.8.0/22 +103.8.32.0/22 +103.8.52.0/22 +103.8.108.0/22 +103.8.156.0/22 +103.8.200.0/22 +103.8.204.0/22 +103.8.220.0/22 +103.9.152.0/22 +103.9.248.0/22 +103.9.252.0/22 +103.10.0.0/22 +103.10.16.0/22 +103.10.84.0/22 +103.10.111.0/24 +103.10.140.0/22 +103.11.180.0/22 +103.12.32.0/22 +103.12.68.0/22 +103.12.136.0/22 +103.12.184.0/22 +103.12.232.0/22 +103.13.124.0/22 +103.13.144.0/22 +103.13.196.0/22 +103.13.244.0/22 +103.14.84.0/22 +103.14.112.0/22 +103.14.132.0/22 +103.14.136.0/22 +103.14.156.0/22 +103.14.240.0/22 +103.15.4.0/22 +103.15.8.0/22 +103.15.16.0/22 +103.15.96.0/22 +103.15.200.0/22 +103.16.52.0/22 +103.16.80.0/22 +103.16.84.0/22 +103.16.88.0/22 +103.16.108.0/22 +103.16.124.0/22 +103.17.40.0/22 +103.17.120.0/22 +103.17.160.0/22 +103.17.204.0/22 +103.17.228.0/22 +103.18.192.0/22 +103.18.208.0/22 +103.18.212.0/22 +103.18.224.0/22 +103.19.12.0/22 +103.19.40.0/22 +103.19.44.0/22 +103.19.64.0/22 +103.19.68.0/22 +103.19.72.0/22 +103.19.232.0/22 +103.20.12.0/22 +103.20.32.0/22 +103.20.112.0/22 +103.20.128.0/22 +103.20.160.0/22 +103.20.248.0/22 +103.21.112.0/22 +103.21.116.0/22 +103.21.136.0/22 +103.21.140.0/22 +103.21.176.0/22 +103.21.208.0/22 +103.21.240.0/22 +103.22.0.0/22 +103.22.4.0/22 +103.22.8.0/22 +103.22.12.0/22 +103.22.16.0/22 +103.22.20.0/22 +103.22.24.0/22 +103.22.28.0/22 +103.22.32.0/22 +103.22.36.0/22 +103.22.40.0/22 +103.22.44.0/22 +103.22.48.0/22 +103.22.52.0/22 +103.22.56.0/22 +103.22.60.0/22 +103.22.64.0/22 +103.22.68.0/22 +103.22.72.0/22 +103.22.76.0/22 +103.22.80.0/22 +103.22.84.0/22 +103.22.88.0/22 +103.22.92.0/22 +103.22.100.0/22 +103.22.104.0/22 +103.22.108.0/22 +103.22.112.0/22 +103.22.116.0/22 +103.22.120.0/22 +103.22.124.0/22 +103.22.188.0/22 +103.22.228.0/22 +103.22.252.0/22 +103.23.8.0/22 +103.23.56.0/22 +103.23.160.0/22 +103.23.164.0/22 +103.23.176.0/22 +103.23.228.0/22 +103.24.116.0/22 +103.24.128.0/22 +103.24.144.0/22 +103.24.176.0/22 +103.24.184.0/22 +103.24.220.0/22 +103.24.228.0/22 +103.24.248.0/22 +103.24.252.0/22 +103.25.8.0/23 +103.25.20.0/22 +103.25.24.0/22 +103.25.28.0/22 +103.25.32.0/22 +103.25.36.0/22 +103.25.40.0/22 +103.25.48.0/22 +103.25.64.0/22 +103.25.68.0/22 +103.25.148.0/22 +103.25.156.0/22 +103.25.216.0/22 +103.26.0.0/22 +103.26.64.0/22 +103.26.156.0/22 +103.26.160.0/22 +103.26.228.0/22 +103.26.240.0/22 +103.27.4.0/22 +103.27.12.0/22 +103.27.24.0/22 +103.27.56.0/22 +103.27.96.0/22 +103.27.208.0/22 +103.27.240.0/22 +103.28.4.0/22 +103.28.8.0/22 +103.28.204.0/22 +103.29.16.0/22 +103.29.128.0/22 +103.29.132.0/22 +103.29.136.0/22 +103.30.20.0/22 +103.30.96.0/22 +103.30.148.0/22 +103.30.200.0/22 +103.30.216.0/22 +103.30.228.0/22 +103.30.232.0/22 +103.30.236.0/22 +103.31.0.0/22 +103.31.48.0/22 +103.31.52.0/22 +103.31.56.0/22 +103.31.60.0/22 +103.31.64.0/22 +103.31.68.0/22 +103.31.72.0/22 +103.31.148.0/22 +103.31.160.0/22 +103.31.168.0/22 +103.31.200.0/22 +103.224.40.0/22 +103.224.44.0/22 +103.224.60.0/22 +103.224.80.0/22 +103.224.220.0/22 +103.224.224.0/22 +103.224.228.0/22 +103.224.232.0/22 +103.225.84.0/22 +103.226.16.0/22 +103.226.40.0/22 +103.226.56.0/22 +103.226.60.0/22 +103.226.80.0/22 +103.226.116.0/22 +103.226.132.0/22 +103.226.156.0/22 +103.226.180.0/22 +103.226.196.0/22 +103.227.48.0/22 +103.227.72.0/22 +103.227.76.0/22 +103.227.80.0/22 +103.227.100.0/22 +103.227.120.0/22 +103.227.132.0/22 +103.227.136.0/22 +103.227.196.0/22 +103.227.204.0/22 +103.227.212.0/22 +103.227.228.0/22 +103.228.12.0/22 +103.228.28.0/22 +103.228.68.0/22 +103.228.88.0/22 +103.228.128.0/22 +103.228.160.0/22 +103.228.176.0/22 +103.228.204.0/22 +103.228.208.0/22 +103.228.228.0/22 +103.228.232.0/22 +103.229.20.0/22 +103.229.136.0/22 +103.229.148.0/22 +103.229.172.0/22 +103.229.212.0/22 +103.229.216.0/22 +103.229.220.0/22 +103.229.228.0/22 +103.229.236.0/22 +103.229.240.0/22 +103.230.0.0/22 +103.230.28.0/22 +103.230.40.0/22 +103.230.44.0/22 +103.230.96.0/22 +103.230.196.0/22 +103.230.200.0/22 +103.230.204.0/22 +103.230.212.0/22 +103.230.236.0/22 +103.231.16.0/22 +103.231.20.0/22 +103.231.64.0/22 +103.231.68.0/22 +103.240.16.0/22 +103.240.36.0/22 +103.240.72.0/22 +103.240.84.0/22 +103.240.124.0/22 +103.240.156.0/22 +103.240.172.0/22 +103.240.244.0/22 +103.241.12.0/22 +103.241.72.0/22 +103.241.92.0/22 +103.241.96.0/22 +103.241.160.0/22 +103.241.184.0/22 +103.241.188.0/22 +103.241.220.0/22 +103.242.8.0/22 +103.242.64.0/22 +103.242.128.0/22 +103.242.132.0/22 +103.242.160.0/22 +103.242.168.0/22 +103.242.172.0/22 +103.242.176.0/22 +103.242.200.0/22 +103.242.212.0/22 +103.242.220.0/22 +103.242.240.0/22 +103.243.24.0/22 +103.243.136.0/22 +103.243.252.0/22 +103.244.16.0/22 +103.244.56.0/22 +103.244.60.0/22 +103.244.64.0/22 +103.244.68.0/22 +103.244.72.0/22 +103.244.76.0/22 +103.244.80.0/22 +103.244.84.0/22 +103.244.164.0/22 +103.244.232.0/22 +103.244.252.0/22 +103.245.23.0/24 +103.245.52.0/22 +103.245.60.0/22 +103.245.80.0/22 +103.245.124.0/22 +103.245.128.0/22 +103.246.8.0/22 +103.246.12.0/22 +103.246.120.0/22 +103.246.124.0/22 +103.246.132.0/22 +103.246.152.0/22 +103.246.156.0/22 +103.247.168.0/22 +103.247.172.0/22 +103.247.176.0/22 +103.247.200.0/22 +103.247.212.0/22 +103.248.0.0/23 +103.248.64.0/22 +103.248.100.0/22 +103.248.124.0/22 +103.248.152.0/22 +103.248.168.0/22 +103.248.192.0/22 +103.248.212.0/22 +103.248.224.0/22 +103.248.228.0/22 +103.249.12.0/22 +103.249.52.0/22 +103.249.128.0/22 +103.249.136.0/22 +103.249.144.0/22 +103.249.164.0/22 +103.249.168.0/22 +103.249.172.0/22 +103.249.176.0/22 +103.249.188.0/22 +103.249.192.0/22 +103.249.244.0/22 +103.249.252.0/22 +103.250.32.0/22 +103.250.104.0/22 +103.250.124.0/22 +103.250.180.0/22 +103.250.192.0/22 +103.250.216.0/22 +103.250.224.0/22 +103.250.236.0/22 +103.250.248.0/22 +103.250.252.0/22 +103.251.32.0/22 +103.251.84.0/22 +103.251.96.0/22 +103.251.124.0/22 +103.251.128.0/22 +103.251.160.0/22 +103.251.204.0/22 +103.251.236.0/22 +103.251.240.0/22 +103.252.28.0/22 +103.252.36.0/22 +103.252.64.0/22 +103.252.104.0/22 +103.252.172.0/22 +103.252.204.0/22 +103.252.208.0/22 +103.252.232.0/22 +103.252.248.0/22 +103.253.4.0/22 +103.253.60.0/22 +103.253.204.0/22 +103.253.220.0/22 +103.253.224.0/22 +103.253.232.0/22 +103.254.8.0/22 +103.254.20.0/22 +103.254.64.0/22 +103.254.68.0/22 +103.254.72.0/22 +103.254.76.0/22 +103.254.112.0/22 +103.254.148.0/22 +103.254.176.0/22 +103.254.188.0/22 +103.254.196.0/24 +103.254.220.0/22 +103.255.68.0/22 +103.255.88.0/22 +103.255.92.0/22 +103.255.136.0/22 +103.255.140.0/22 +103.255.184.0/22 +103.255.200.0/22 +103.255.208.0/22 +103.255.212.0/22 +103.255.228.0/22 +106.0.0.0/24 +106.0.2.0/23 +106.0.4.0/22 +106.0.8.0/21 +106.0.16.0/20 +106.0.64.0/18 +106.2.0.0/15 +106.4.0.0/14 +106.8.0.0/15 +106.11.0.0/16 +106.12.0.0/14 +106.16.0.0/12 +106.32.0.0/12 +106.48.0.0/15 +106.50.0.0/16 +106.52.0.0/14 +106.56.0.0/13 +106.74.0.0/15 +106.80.0.0/12 +106.108.0.0/14 +106.112.0.0/13 +106.120.0.0/13 +106.224.0.0/12 +110.6.0.0/15 +110.16.0.0/14 +110.40.0.0/14 +110.44.144.0/20 +110.48.0.0/16 +110.51.0.0/16 +110.52.0.0/15 +110.56.0.0/13 +110.64.0.0/15 +110.72.0.0/15 +110.75.0.0/17 +110.75.128.0/19 +110.75.160.0/19 +110.75.192.0/18 +110.76.0.0/19 +110.76.32.0/19 +110.76.156.0/22 +110.76.184.0/22 +110.76.192.0/18 +110.77.0.0/17 +110.80.0.0/13 +110.88.0.0/14 +110.93.32.0/19 +110.94.0.0/15 +110.96.0.0/11 +110.152.0.0/14 +110.156.0.0/15 +110.165.32.0/19 +110.166.0.0/15 +110.172.192.0/18 +110.173.0.0/19 +110.173.32.0/20 +110.173.64.0/19 +110.173.96.0/19 +110.173.192.0/19 +110.176.0.0/13 +110.184.0.0/13 +110.192.0.0/11 +110.228.0.0/14 +110.232.32.0/19 +110.236.0.0/15 +110.240.0.0/12 +111.0.0.0/10 +111.66.0.0/16 +111.67.192.0/20 +111.68.64.0/19 +111.72.0.0/13 +111.85.0.0/16 +111.91.192.0/19 +111.112.0.0/15 +111.114.0.0/15 +111.116.0.0/15 +111.118.200.0/21 +111.119.64.0/18 +111.119.128.0/19 +111.120.0.0/14 +111.124.0.0/16 +111.126.0.0/15 +111.128.0.0/11 +111.160.0.0/13 +111.170.0.0/16 +111.172.0.0/14 +111.176.0.0/13 +111.186.0.0/15 +111.192.0.0/12 +111.208.0.0/14 +111.212.0.0/14 +111.221.128.0/17 +111.222.0.0/16 +111.223.240.0/22 +111.223.248.0/22 +111.224.0.0/14 +111.228.0.0/14 +111.235.96.0/19 +111.235.156.0/22 +111.235.160.0/19 +112.0.0.0/10 +112.64.0.0/15 +112.66.0.0/15 +112.73.0.0/16 +112.74.0.0/15 +112.80.0.0/13 +112.88.0.0/13 +112.96.0.0/15 +112.98.0.0/15 +112.100.0.0/14 +112.109.128.0/17 +112.111.0.0/16 +112.112.0.0/14 +112.116.0.0/15 +112.122.0.0/15 +112.124.0.0/14 +112.128.0.0/14 +112.132.0.0/16 +112.137.48.0/21 +112.192.0.0/14 +112.224.0.0/11 +113.0.0.0/13 +113.8.0.0/15 +113.11.192.0/19 +113.12.0.0/14 +113.16.0.0/15 +113.18.0.0/16 +113.24.0.0/14 +113.31.0.0/16 +113.44.0.0/14 +113.48.0.0/14 +113.52.160.0/19 +113.54.0.0/15 +113.56.0.0/15 +113.58.0.0/16 +113.59.0.0/17 +113.59.224.0/22 +113.62.0.0/15 +113.64.0.0/11 +113.96.0.0/12 +113.112.0.0/13 +113.120.0.0/13 +113.128.0.0/15 +113.130.96.0/20 +113.130.112.0/21 +113.132.0.0/14 +113.136.0.0/13 +113.194.0.0/15 +113.197.100.0/22 +113.200.0.0/15 +113.202.0.0/16 +113.204.0.0/14 +113.208.96.0/19 +113.208.128.0/17 +113.209.0.0/16 +113.212.0.0/18 +113.212.100.0/22 +113.212.184.0/21 +113.213.0.0/17 +113.214.0.0/15 +113.218.0.0/15 +113.220.0.0/14 +113.224.0.0/12 +113.240.0.0/13 +113.248.0.0/14 +114.28.0.0/16 +114.54.0.0/15 +114.60.0.0/14 +114.64.0.0/14 +114.68.0.0/16 +114.79.64.0/18 +114.80.0.0/12 +114.96.0.0/13 +114.104.0.0/14 +114.110.0.0/20 +114.110.64.0/18 +114.111.0.0/19 +114.111.160.0/19 +114.112.0.0/14 +114.116.0.0/15 +114.118.0.0/15 +114.132.0.0/16 +114.135.0.0/16 +114.138.0.0/15 +114.141.64.0/21 +114.141.128.0/18 +114.196.0.0/15 +114.198.248.0/21 +114.208.0.0/14 +114.212.0.0/15 +114.214.0.0/16 +114.215.0.0/16 +114.216.0.0/13 +114.224.0.0/12 +114.240.0.0/12 +115.24.0.0/14 +115.28.0.0/15 +115.32.0.0/14 +115.44.0.0/15 +115.46.0.0/16 +115.47.0.0/16 +115.48.0.0/12 +115.69.64.0/20 +115.84.0.0/18 +115.84.192.0/19 +115.85.192.0/18 +115.100.0.0/14 +115.104.0.0/14 +115.120.0.0/14 +115.124.16.0/20 +115.148.0.0/14 +115.152.0.0/15 +115.154.0.0/15 +115.156.0.0/15 +115.158.0.0/16 +115.159.0.0/16 +115.166.64.0/19 +115.168.0.0/14 +115.172.0.0/14 +115.180.0.0/14 +115.190.0.0/15 +115.192.0.0/11 +115.224.0.0/12 +116.0.8.0/21 +116.0.24.0/21 +116.1.0.0/16 +116.2.0.0/15 +116.4.0.0/14 +116.8.0.0/14 +116.13.0.0/16 +116.16.0.0/12 +116.50.0.0/20 +116.52.0.0/14 +116.56.0.0/15 +116.58.128.0/20 +116.58.208.0/20 +116.60.0.0/14 +116.66.0.0/17 +116.69.0.0/16 +116.70.0.0/17 +116.76.0.0/15 +116.78.0.0/15 +116.85.0.0/16 +116.89.144.0/20 +116.90.80.0/20 +116.90.184.0/21 +116.95.0.0/16 +116.112.0.0/14 +116.116.0.0/15 +116.128.0.0/10 +116.192.0.0/16 +116.193.16.0/20 +116.193.32.0/19 +116.193.176.0/21 +116.194.0.0/15 +116.196.0.0/16 +116.198.0.0/16 +116.199.0.0/17 +116.199.128.0/19 +116.204.0.0/15 +116.207.0.0/16 +116.208.0.0/14 +116.212.160.0/20 +116.213.64.0/18 +116.213.128.0/17 +116.214.32.0/19 +116.214.64.0/20 +116.214.128.0/17 +116.215.0.0/16 +116.216.0.0/14 +116.224.0.0/12 +116.242.0.0/15 +116.244.0.0/15 +116.246.0.0/15 +116.248.0.0/15 +116.251.64.0/18 +116.252.0.0/15 +116.254.128.0/17 +116.255.128.0/17 +117.8.0.0/13 +117.21.0.0/16 +117.22.0.0/15 +117.24.0.0/13 +117.32.0.0/13 +117.40.0.0/14 +117.44.0.0/15 +117.48.0.0/14 +117.53.48.0/20 +117.53.176.0/20 +117.57.0.0/16 +117.58.0.0/17 +117.59.0.0/16 +117.60.0.0/14 +117.64.0.0/13 +117.72.0.0/15 +117.74.64.0/20 +117.74.80.0/20 +117.74.128.0/17 +117.75.0.0/16 +117.76.0.0/14 +117.80.0.0/12 +117.100.0.0/15 +117.103.16.0/20 +117.103.40.0/21 +117.103.72.0/21 +117.103.128.0/20 +117.104.168.0/21 +117.106.0.0/15 +117.112.0.0/13 +117.120.64.0/18 +117.120.128.0/17 +117.121.0.0/17 +117.121.128.0/18 +117.121.192.0/21 +117.122.128.0/17 +117.124.0.0/14 +117.128.0.0/10 +118.24.0.0/15 +118.26.0.0/16 +118.28.0.0/15 +118.30.0.0/16 +118.31.0.0/16 +118.64.0.0/15 +118.66.0.0/16 +118.67.112.0/20 +118.72.0.0/13 +118.80.0.0/15 +118.84.0.0/15 +118.88.32.0/19 +118.88.64.0/18 +118.88.128.0/17 +118.89.0.0/16 +118.91.240.0/20 +118.102.16.0/20 +118.102.32.0/21 +118.112.0.0/13 +118.120.0.0/14 +118.124.0.0/15 +118.126.0.0/16 +118.127.128.0/19 +118.132.0.0/14 +118.144.0.0/14 +118.178.0.0/16 +118.180.0.0/14 +118.184.0.0/16 +118.186.0.0/15 +118.188.0.0/16 +118.190.0.0/15 +118.192.0.0/15 +118.194.0.0/17 +118.194.128.0/17 +118.195.0.0/17 +118.195.128.0/17 +118.196.0.0/14 +118.202.0.0/15 +118.204.0.0/14 +118.212.0.0/16 +118.213.0.0/16 +118.224.0.0/14 +118.228.0.0/15 +118.230.0.0/16 +118.239.0.0/16 +118.242.0.0/16 +118.244.0.0/14 +118.248.0.0/13 +119.0.0.0/15 +119.2.0.0/19 +119.2.128.0/17 +119.3.0.0/16 +119.4.0.0/14 +119.8.0.0/16 +119.10.0.0/17 +119.15.136.0/21 +119.16.0.0/16 +119.18.192.0/20 +119.18.208.0/21 +119.18.224.0/20 +119.18.240.0/20 +119.19.0.0/16 +119.20.0.0/14 +119.27.64.0/18 +119.27.128.0/19 +119.27.160.0/19 +119.27.192.0/18 +119.28.0.0/15 +119.30.48.0/20 +119.31.192.0/19 +119.32.0.0/14 +119.36.0.0/16 +119.37.0.0/17 +119.37.128.0/18 +119.37.192.0/18 +119.38.0.0/17 +119.38.128.0/18 +119.38.192.0/20 +119.38.208.0/20 +119.38.224.0/19 +119.39.0.0/16 +119.40.0.0/18 +119.40.64.0/20 +119.40.128.0/17 +119.41.0.0/16 +119.42.0.0/19 +119.42.128.0/21 +119.42.136.0/21 +119.42.224.0/19 +119.44.0.0/15 +119.48.0.0/13 +119.57.0.0/16 +119.58.0.0/16 +119.59.128.0/17 +119.60.0.0/16 +119.61.0.0/16 +119.62.0.0/16 +119.63.32.0/19 +119.75.208.0/20 +119.78.0.0/15 +119.80.0.0/16 +119.82.208.0/20 +119.84.0.0/14 +119.88.0.0/14 +119.96.0.0/13 +119.108.0.0/15 +119.112.0.0/13 +119.120.0.0/13 +119.128.0.0/12 +119.144.0.0/14 +119.148.160.0/20 +119.148.176.0/20 +119.151.192.0/18 +119.160.200.0/21 +119.161.128.0/17 +119.162.0.0/15 +119.164.0.0/14 +119.176.0.0/12 +119.232.0.0/15 +119.235.128.0/18 +119.248.0.0/14 +119.252.96.0/21 +119.252.240.0/20 +119.253.0.0/16 +119.254.0.0/15 +120.0.0.0/12 +120.24.0.0/14 +120.30.0.0/16 +120.31.0.0/16 +120.32.0.0/13 +120.40.0.0/14 +120.44.0.0/14 +120.48.0.0/15 +120.52.0.0/14 +120.64.0.0/14 +120.68.0.0/14 +120.72.32.0/19 +120.72.128.0/17 +120.76.0.0/14 +120.80.0.0/13 +120.88.8.0/21 +120.90.0.0/15 +120.92.0.0/16 +120.94.0.0/16 +120.95.0.0/16 +120.128.0.0/14 +120.132.0.0/17 +120.132.128.0/17 +120.133.0.0/16 +120.134.0.0/15 +120.136.128.0/18 +120.137.0.0/17 +120.143.128.0/19 +120.192.0.0/10 +121.0.8.0/21 +121.0.16.0/20 +121.4.0.0/15 +121.8.0.0/13 +121.16.0.0/13 +121.24.0.0/14 +121.28.0.0/15 +121.30.0.0/16 +121.31.0.0/16 +121.32.0.0/14 +121.36.0.0/16 +121.37.0.0/16 +121.38.0.0/15 +121.40.0.0/14 +121.46.0.0/18 +121.46.128.0/17 +121.47.0.0/16 +121.48.0.0/15 +121.50.8.0/21 +121.51.0.0/16 +121.52.160.0/19 +121.52.208.0/20 +121.52.224.0/19 +121.54.176.0/21 +121.55.0.0/18 +121.56.0.0/15 +121.58.0.0/17 +121.58.136.0/21 +121.58.144.0/20 +121.58.160.0/21 +121.59.0.0/16 +121.60.0.0/14 +121.68.0.0/14 +121.76.0.0/15 +121.79.128.0/18 +121.89.0.0/16 +121.100.128.0/17 +121.101.0.0/18 +121.101.208.0/20 +121.192.0.0/16 +121.193.0.0/16 +121.194.0.0/15 +121.196.0.0/14 +121.200.192.0/21 +121.201.0.0/16 +121.204.0.0/14 +121.224.0.0/12 +121.248.0.0/14 +121.255.0.0/16 +122.0.64.0/18 +122.0.128.0/17 +122.4.0.0/14 +122.8.0.0/16 +122.9.0.0/16 +122.10.0.0/17 +122.10.128.0/17 +122.11.0.0/17 +122.12.0.0/16 +122.13.0.0/16 +122.14.0.0/16 +122.48.0.0/16 +122.49.0.0/18 +122.51.0.0/16 +122.64.0.0/11 +122.96.0.0/15 +122.102.0.0/20 +122.102.64.0/20 +122.102.80.0/20 +122.112.0.0/14 +122.119.0.0/16 +122.128.120.0/21 +122.136.0.0/13 +122.144.128.0/17 +122.152.192.0/18 +122.156.0.0/14 +122.188.0.0/14 +122.192.0.0/14 +122.198.0.0/16 +122.200.64.0/18 +122.201.48.0/20 +122.204.0.0/14 +122.224.0.0/12 +122.240.0.0/13 +122.248.24.0/21 +122.248.48.0/20 +122.255.64.0/21 +123.0.128.0/18 +123.4.0.0/14 +123.8.0.0/13 +123.49.128.0/17 +123.50.160.0/19 +123.52.0.0/14 +123.56.0.0/15 +123.58.0.0/16 +123.59.0.0/16 +123.60.0.0/16 +123.61.0.0/16 +123.62.0.0/16 +123.64.0.0/11 +123.96.0.0/15 +123.98.0.0/17 +123.99.128.0/17 +123.100.0.0/19 +123.101.0.0/16 +123.103.0.0/17 +123.108.128.0/20 +123.108.208.0/20 +123.112.0.0/12 +123.128.0.0/13 +123.136.80.0/20 +123.137.0.0/16 +123.138.0.0/15 +123.144.0.0/14 +123.148.0.0/16 +123.149.0.0/16 +123.150.0.0/15 +123.152.0.0/13 +123.160.0.0/14 +123.164.0.0/14 +123.168.0.0/14 +123.172.0.0/15 +123.174.0.0/15 +123.176.60.0/22 +123.176.80.0/20 +123.177.0.0/16 +123.178.0.0/15 +123.180.0.0/14 +123.184.0.0/14 +123.188.0.0/14 +123.196.0.0/15 +123.199.128.0/17 +123.206.0.0/15 +123.232.0.0/14 +123.242.0.0/17 +123.244.0.0/14 +123.249.0.0/16 +123.253.0.0/16 +124.6.64.0/18 +124.14.0.0/15 +124.16.0.0/15 +124.20.0.0/16 +124.21.0.0/20 +124.21.16.0/20 +124.21.32.0/19 +124.21.64.0/18 +124.21.128.0/17 +124.22.0.0/15 +124.28.192.0/18 +124.29.0.0/17 +124.31.0.0/16 +124.40.112.0/20 +124.40.128.0/18 +124.40.192.0/19 +124.42.0.0/17 +124.42.128.0/17 +124.47.0.0/18 +124.64.0.0/15 +124.66.0.0/17 +124.67.0.0/16 +124.68.0.0/14 +124.72.0.0/16 +124.73.0.0/16 +124.74.0.0/15 +124.76.0.0/14 +124.88.0.0/16 +124.89.0.0/17 +124.89.128.0/17 +124.90.0.0/15 +124.92.0.0/14 +124.108.8.0/21 +124.108.40.0/21 +124.109.96.0/21 +124.112.0.0/15 +124.114.0.0/15 +124.116.0.0/16 +124.117.0.0/16 +124.118.0.0/15 +124.126.0.0/15 +124.128.0.0/13 +124.147.128.0/17 +124.151.0.0/16 +124.152.0.0/16 +124.156.0.0/16 +124.160.0.0/16 +124.161.0.0/16 +124.162.0.0/16 +124.163.0.0/16 +124.164.0.0/14 +124.172.0.0/15 +124.174.0.0/15 +124.192.0.0/15 +124.196.0.0/16 +124.200.0.0/13 +124.220.0.0/14 +124.224.0.0/16 +124.225.0.0/16 +124.226.0.0/15 +124.228.0.0/14 +124.232.0.0/15 +124.234.0.0/15 +124.236.0.0/14 +124.240.0.0/17 +124.240.128.0/18 +124.242.0.0/16 +124.243.192.0/18 +124.248.0.0/17 +124.249.0.0/16 +124.250.0.0/15 +124.254.0.0/18 +125.31.192.0/18 +125.32.0.0/16 +125.33.0.0/16 +125.34.0.0/16 +125.35.0.0/17 +125.35.128.0/17 +125.36.0.0/14 +125.40.0.0/13 +125.58.128.0/17 +125.61.128.0/17 +125.62.0.0/18 +125.64.0.0/13 +125.72.0.0/16 +125.73.0.0/16 +125.74.0.0/15 +125.76.0.0/17 +125.76.128.0/17 +125.77.0.0/16 +125.78.0.0/15 +125.80.0.0/13 +125.88.0.0/13 +125.96.0.0/15 +125.98.0.0/16 +125.104.0.0/13 +125.112.0.0/12 +125.169.0.0/16 +125.171.0.0/16 +125.208.0.0/18 +125.210.0.0/16 +125.211.0.0/16 +125.213.0.0/17 +125.214.96.0/19 +125.215.0.0/18 +125.216.0.0/15 +125.218.0.0/16 +125.219.0.0/16 +125.220.0.0/15 +125.222.0.0/15 +125.254.128.0/18 +125.254.192.0/18 +134.196.0.0/16 +139.9.0.0/16 +139.129.0.0/16 +139.148.0.0/16 +139.155.0.0/16 +139.159.0.0/16 +139.170.0.0/16 +139.176.0.0/16 +139.183.0.0/16 +139.186.0.0/16 +139.189.0.0/16 +139.196.0.0/14 +139.200.0.0/13 +139.208.0.0/13 +139.220.0.0/15 +139.224.0.0/16 +139.226.0.0/15 +140.75.0.0/16 +140.143.0.0/16 +140.205.0.0/16 +140.206.0.0/15 +140.210.0.0/16 +140.224.0.0/16 +140.237.0.0/16 +140.240.0.0/16 +140.243.0.0/16 +140.246.0.0/16 +140.249.0.0/16 +140.250.0.0/16 +140.255.0.0/16 +144.0.0.0/16 +144.7.0.0/16 +144.12.0.0/16 +144.52.0.0/16 +144.123.0.0/16 +144.255.0.0/16 +150.0.0.0/16 +150.115.0.0/16 +150.121.0.0/16 +150.122.0.0/16 +150.138.0.0/15 +150.223.0.0/16 +150.255.0.0/16 +153.0.0.0/16 +153.3.0.0/16 +153.34.0.0/15 +153.36.0.0/15 +153.99.0.0/16 +153.101.0.0/16 +153.118.0.0/15 +157.0.0.0/16 +157.18.0.0/16 +157.61.0.0/16 +157.122.0.0/16 +157.148.0.0/16 +157.156.0.0/16 +157.255.0.0/16 +159.226.0.0/16 +161.207.0.0/16 +162.105.0.0/16 +163.0.0.0/16 +163.125.0.0/16 +163.142.0.0/16 +163.177.0.0/16 +163.179.0.0/16 +163.204.0.0/16 +166.111.0.0/16 +167.139.0.0/16 +167.189.0.0/16 +168.160.0.0/16 +171.8.0.0/13 +171.34.0.0/15 +171.36.0.0/14 +171.40.0.0/13 +171.80.0.0/14 +171.84.0.0/14 +171.88.0.0/13 +171.104.0.0/13 +171.112.0.0/14 +171.116.0.0/14 +171.120.0.0/13 +171.208.0.0/12 +175.0.0.0/12 +175.16.0.0/13 +175.24.0.0/14 +175.30.0.0/15 +175.42.0.0/15 +175.44.0.0/16 +175.46.0.0/15 +175.48.0.0/12 +175.64.0.0/11 +175.102.0.0/16 +175.106.128.0/17 +175.146.0.0/15 +175.148.0.0/14 +175.152.0.0/14 +175.160.0.0/12 +175.178.0.0/16 +175.184.128.0/18 +175.185.0.0/16 +175.186.0.0/15 +175.188.0.0/14 +180.76.0.0/16 +180.77.0.0/16 +180.78.0.0/15 +180.84.0.0/15 +180.86.0.0/16 +180.88.0.0/14 +180.94.56.0/21 +180.94.96.0/20 +180.95.128.0/17 +180.96.0.0/11 +180.129.128.0/17 +180.130.0.0/16 +180.136.0.0/13 +180.148.16.0/21 +180.148.152.0/21 +180.148.216.0/21 +180.148.224.0/19 +180.149.128.0/19 +180.150.160.0/19 +180.152.0.0/13 +180.160.0.0/12 +180.178.192.0/18 +180.184.0.0/14 +180.188.0.0/17 +180.189.148.0/22 +180.200.252.0/22 +180.201.0.0/16 +180.202.0.0/15 +180.208.0.0/15 +180.210.224.0/19 +180.212.0.0/15 +180.222.224.0/19 +180.223.0.0/16 +180.233.0.0/18 +180.233.64.0/19 +180.235.64.0/19 +182.16.192.0/19 +182.18.0.0/17 +182.23.184.0/21 +182.23.200.0/21 +182.32.0.0/12 +182.48.96.0/19 +182.49.0.0/16 +182.50.0.0/20 +182.50.112.0/20 +182.51.0.0/16 +182.54.0.0/17 +182.61.0.0/16 +182.80.0.0/14 +182.84.0.0/14 +182.88.0.0/14 +182.92.0.0/16 +182.96.0.0/12 +182.112.0.0/12 +182.128.0.0/12 +182.144.0.0/13 +182.157.0.0/16 +182.160.64.0/19 +182.174.0.0/15 +182.200.0.0/13 +182.236.128.0/17 +182.238.0.0/16 +182.239.0.0/19 +182.240.0.0/13 +182.254.0.0/16 +183.0.0.0/10 +183.64.0.0/13 +183.78.180.0/22 +183.81.180.0/22 +183.84.0.0/15 +183.91.128.0/22 +183.91.136.0/21 +183.91.144.0/20 +183.92.0.0/14 +183.128.0.0/11 +183.160.0.0/13 +183.168.0.0/15 +183.170.0.0/16 +183.172.0.0/14 +183.182.0.0/19 +183.184.0.0/13 +183.192.0.0/10 +192.124.154.0/24 +192.188.170.0/24 +202.0.100.0/23 +202.0.122.0/23 +202.0.176.0/22 +202.3.128.0/23 +202.4.128.0/19 +202.4.252.0/22 +202.6.6.0/23 +202.6.66.0/23 +202.6.72.0/23 +202.6.87.0/24 +202.6.88.0/23 +202.6.92.0/23 +202.6.103.0/24 +202.6.108.0/24 +202.6.110.0/23 +202.6.114.0/24 +202.6.176.0/20 +202.8.0.0/24 +202.8.2.0/23 +202.8.4.0/23 +202.8.12.0/24 +202.8.24.0/24 +202.8.77.0/24 +202.8.128.0/19 +202.8.192.0/20 +202.9.32.0/24 +202.9.34.0/23 +202.9.48.0/23 +202.9.51.0/24 +202.9.52.0/23 +202.9.54.0/24 +202.9.57.0/24 +202.9.58.0/23 +202.10.64.0/20 +202.12.1.0/24 +202.12.2.0/24 +202.12.17.0/24 +202.12.18.0/24 +202.12.19.0/24 +202.12.72.0/24 +202.12.84.0/23 +202.12.96.0/24 +202.12.98.0/23 +202.12.106.0/24 +202.12.111.0/24 +202.12.116.0/24 +202.14.64.0/23 +202.14.69.0/24 +202.14.73.0/24 +202.14.74.0/23 +202.14.76.0/24 +202.14.78.0/23 +202.14.88.0/24 +202.14.97.0/24 +202.14.104.0/23 +202.14.108.0/23 +202.14.111.0/24 +202.14.114.0/23 +202.14.118.0/23 +202.14.124.0/23 +202.14.127.0/24 +202.14.129.0/24 +202.14.135.0/24 +202.14.136.0/24 +202.14.149.0/24 +202.14.151.0/24 +202.14.157.0/24 +202.14.158.0/23 +202.14.169.0/24 +202.14.170.0/23 +202.14.176.0/24 +202.14.184.0/23 +202.14.208.0/23 +202.14.213.0/24 +202.14.219.0/24 +202.14.220.0/24 +202.14.222.0/23 +202.14.225.0/24 +202.14.226.0/23 +202.14.231.0/24 +202.14.235.0/24 +202.14.236.0/23 +202.14.238.0/24 +202.14.239.0/24 +202.14.246.0/24 +202.14.251.0/24 +202.20.66.0/24 +202.20.79.0/24 +202.20.87.0/24 +202.20.88.0/23 +202.20.90.0/24 +202.20.94.0/23 +202.20.114.0/24 +202.20.117.0/24 +202.20.120.0/24 +202.20.125.0/24 +202.20.127.0/24 +202.21.131.0/24 +202.21.132.0/24 +202.21.141.0/24 +202.21.142.0/24 +202.21.147.0/24 +202.21.148.0/24 +202.21.150.0/23 +202.21.152.0/23 +202.21.154.0/24 +202.21.156.0/24 +202.22.248.0/22 +202.22.252.0/22 +202.27.136.0/23 +202.38.0.0/23 +202.38.2.0/23 +202.38.8.0/21 +202.38.48.0/20 +202.38.64.0/19 +202.38.96.0/19 +202.38.128.0/23 +202.38.130.0/23 +202.38.132.0/23 +202.38.134.0/24 +202.38.135.0/24 +202.38.136.0/23 +202.38.138.0/24 +202.38.140.0/23 +202.38.142.0/23 +202.38.146.0/23 +202.38.149.0/24 +202.38.150.0/23 +202.38.152.0/23 +202.38.154.0/23 +202.38.156.0/24 +202.38.158.0/23 +202.38.160.0/23 +202.38.164.0/22 +202.38.168.0/23 +202.38.170.0/24 +202.38.171.0/24 +202.38.176.0/23 +202.38.184.0/21 +202.38.192.0/18 +202.40.4.0/23 +202.40.7.0/24 +202.40.15.0/24 +202.40.135.0/24 +202.40.136.0/24 +202.40.140.0/24 +202.40.143.0/24 +202.40.144.0/23 +202.40.150.0/24 +202.40.155.0/24 +202.40.156.0/24 +202.40.158.0/23 +202.40.162.0/24 +202.41.8.0/23 +202.41.11.0/24 +202.41.12.0/23 +202.41.128.0/24 +202.41.130.0/23 +202.41.152.0/21 +202.41.192.0/24 +202.41.240.0/20 +202.43.76.0/22 +202.43.144.0/20 +202.44.16.0/20 +202.44.67.0/24 +202.44.74.0/24 +202.44.129.0/24 +202.44.132.0/23 +202.44.146.0/23 +202.45.0.0/23 +202.45.2.0/24 +202.45.15.0/24 +202.45.16.0/20 +202.46.16.0/23 +202.46.18.0/24 +202.46.20.0/23 +202.46.32.0/19 +202.46.128.0/24 +202.46.224.0/20 +202.47.82.0/23 +202.47.126.0/24 +202.47.128.0/24 +202.47.130.0/23 +202.57.240.0/20 +202.58.0.0/24 +202.59.0.0/24 +202.59.212.0/22 +202.59.232.0/23 +202.59.236.0/24 +202.60.48.0/21 +202.60.96.0/21 +202.60.112.0/20 +202.60.132.0/22 +202.60.136.0/21 +202.60.144.0/20 +202.62.112.0/22 +202.62.248.0/22 +202.62.252.0/24 +202.62.255.0/24 +202.63.81.0/24 +202.63.82.0/23 +202.63.84.0/22 +202.63.88.0/21 +202.63.160.0/19 +202.63.248.0/22 +202.65.0.0/21 +202.65.8.0/23 +202.67.0.0/22 +202.69.4.0/22 +202.69.16.0/20 +202.70.0.0/19 +202.70.96.0/20 +202.70.192.0/20 +202.72.40.0/21 +202.72.80.0/20 +202.73.128.0/22 +202.74.8.0/21 +202.74.80.0/20 +202.74.254.0/23 +202.75.208.0/20 +202.75.252.0/22 +202.76.252.0/22 +202.77.80.0/21 +202.77.92.0/22 +202.78.8.0/21 +202.79.224.0/21 +202.79.248.0/22 +202.80.192.0/21 +202.80.200.0/21 +202.81.0.0/22 +202.83.252.0/22 +202.84.4.0/22 +202.84.8.0/21 +202.84.24.0/21 +202.85.208.0/20 +202.86.249.0/24 +202.86.252.0/22 +202.87.80.0/20 +202.89.8.0/21 +202.90.0.0/22 +202.90.112.0/20 +202.90.196.0/24 +202.90.224.0/20 +202.91.0.0/22 +202.91.96.0/20 +202.91.128.0/22 +202.91.176.0/20 +202.91.224.0/19 +202.92.0.0/22 +202.92.8.0/21 +202.92.48.0/20 +202.92.252.0/22 +202.93.0.0/22 +202.93.252.0/22 +202.94.92.0/22 +202.95.0.0/22 +202.95.4.0/22 +202.95.8.0/21 +202.95.16.0/20 +202.95.240.0/21 +202.95.252.0/22 +202.96.0.0/18 +202.96.64.0/21 +202.96.72.0/21 +202.96.80.0/20 +202.96.96.0/21 +202.96.104.0/21 +202.96.112.0/20 +202.96.128.0/21 +202.96.136.0/21 +202.96.144.0/20 +202.96.160.0/21 +202.96.168.0/21 +202.96.176.0/20 +202.96.192.0/21 +202.96.200.0/21 +202.96.208.0/20 +202.96.224.0/21 +202.96.232.0/21 +202.96.240.0/20 +202.97.0.0/21 +202.97.8.0/21 +202.97.16.0/20 +202.97.32.0/19 +202.97.64.0/19 +202.97.96.0/20 +202.97.112.0/20 +202.97.128.0/18 +202.97.192.0/19 +202.97.224.0/21 +202.97.232.0/21 +202.97.240.0/20 +202.98.0.0/21 +202.98.8.0/21 +202.98.16.0/20 +202.98.32.0/21 +202.98.40.0/21 +202.98.48.0/20 +202.98.64.0/19 +202.98.96.0/21 +202.98.104.0/21 +202.98.112.0/20 +202.98.128.0/19 +202.98.160.0/21 +202.98.168.0/21 +202.98.176.0/20 +202.98.192.0/21 +202.98.200.0/21 +202.98.208.0/20 +202.98.224.0/21 +202.98.232.0/21 +202.98.240.0/20 +202.99.0.0/18 +202.99.64.0/19 +202.99.96.0/21 +202.99.104.0/21 +202.99.112.0/20 +202.99.128.0/19 +202.99.160.0/21 +202.99.168.0/21 +202.99.176.0/20 +202.99.192.0/21 +202.99.200.0/21 +202.99.208.0/20 +202.99.224.0/21 +202.99.232.0/21 +202.99.240.0/20 +202.100.0.0/21 +202.100.8.0/21 +202.100.16.0/20 +202.100.32.0/19 +202.100.64.0/21 +202.100.72.0/21 +202.100.80.0/20 +202.100.96.0/21 +202.100.104.0/21 +202.100.112.0/20 +202.100.128.0/21 +202.100.136.0/21 +202.100.144.0/20 +202.100.160.0/21 +202.100.168.0/21 +202.100.176.0/20 +202.100.192.0/21 +202.100.200.0/21 +202.100.208.0/20 +202.100.224.0/19 +202.101.0.0/18 +202.101.64.0/19 +202.101.96.0/19 +202.101.128.0/18 +202.101.192.0/19 +202.101.224.0/21 +202.101.232.0/21 +202.101.240.0/20 +202.102.0.0/19 +202.102.32.0/19 +202.102.64.0/18 +202.102.128.0/21 +202.102.136.0/21 +202.102.144.0/20 +202.102.160.0/19 +202.102.192.0/21 +202.102.200.0/21 +202.102.208.0/20 +202.102.224.0/21 +202.102.232.0/21 +202.102.240.0/20 +202.103.0.0/21 +202.103.8.0/21 +202.103.16.0/20 +202.103.32.0/19 +202.103.64.0/19 +202.103.96.0/21 +202.103.104.0/21 +202.103.112.0/20 +202.103.128.0/18 +202.103.192.0/19 +202.103.224.0/21 +202.103.232.0/21 +202.103.240.0/20 +202.104.0.0/15 +202.106.0.0/16 +202.107.0.0/17 +202.107.128.0/17 +202.108.0.0/16 +202.109.0.0/16 +202.110.0.0/18 +202.110.64.0/18 +202.110.128.0/18 +202.110.192.0/18 +202.111.0.0/17 +202.111.128.0/19 +202.111.160.0/19 +202.111.192.0/18 +202.112.0.0/16 +202.113.0.0/20 +202.113.16.0/20 +202.113.32.0/19 +202.113.64.0/18 +202.113.128.0/18 +202.113.192.0/19 +202.113.224.0/20 +202.113.240.0/20 +202.114.0.0/19 +202.114.32.0/19 +202.114.64.0/18 +202.114.128.0/17 +202.115.0.0/19 +202.115.32.0/19 +202.115.64.0/18 +202.115.128.0/17 +202.116.0.0/19 +202.116.32.0/20 +202.116.48.0/20 +202.116.64.0/19 +202.116.96.0/19 +202.116.128.0/17 +202.117.0.0/18 +202.117.64.0/18 +202.117.128.0/17 +202.118.0.0/19 +202.118.32.0/19 +202.118.64.0/18 +202.118.128.0/17 +202.119.0.0/19 +202.119.32.0/19 +202.119.64.0/20 +202.119.80.0/20 +202.119.96.0/19 +202.119.128.0/17 +202.120.0.0/18 +202.120.64.0/18 +202.120.128.0/17 +202.121.0.0/16 +202.122.0.0/21 +202.122.32.0/21 +202.122.64.0/19 +202.122.112.0/21 +202.122.120.0/21 +202.122.128.0/24 +202.122.132.0/24 +202.123.96.0/20 +202.124.16.0/21 +202.124.24.0/22 +202.125.112.0/20 +202.125.176.0/20 +202.127.0.0/23 +202.127.2.0/24 +202.127.3.0/24 +202.127.4.0/24 +202.127.5.0/24 +202.127.6.0/23 +202.127.12.0/22 +202.127.16.0/20 +202.127.40.0/21 +202.127.48.0/20 +202.127.112.0/20 +202.127.128.0/20 +202.127.144.0/20 +202.127.160.0/21 +202.127.192.0/23 +202.127.194.0/23 +202.127.196.0/22 +202.127.200.0/21 +202.127.208.0/24 +202.127.209.0/24 +202.127.212.0/22 +202.127.216.0/21 +202.127.224.0/19 +202.130.0.0/19 +202.130.224.0/19 +202.131.16.0/21 +202.131.48.0/20 +202.131.208.0/20 +202.133.32.0/20 +202.134.58.0/24 +202.134.128.0/20 +202.136.48.0/20 +202.136.208.0/20 +202.136.224.0/20 +202.137.231.0/24 +202.141.160.0/19 +202.142.16.0/20 +202.143.4.0/22 +202.143.16.0/20 +202.143.32.0/20 +202.143.56.0/21 +202.146.160.0/20 +202.146.188.0/22 +202.146.196.0/22 +202.146.200.0/21 +202.147.144.0/20 +202.148.32.0/20 +202.148.64.0/19 +202.148.96.0/19 +202.149.32.0/19 +202.149.160.0/19 +202.149.224.0/19 +202.150.16.0/20 +202.150.32.0/20 +202.150.56.0/22 +202.150.192.0/20 +202.150.224.0/19 +202.151.0.0/22 +202.151.128.0/19 +202.152.176.0/20 +202.153.0.0/22 +202.153.48.0/20 +202.157.192.0/19 +202.158.160.0/19 +202.160.176.0/20 +202.162.67.0/24 +202.162.75.0/24 +202.164.0.0/20 +202.164.96.0/19 +202.165.96.0/20 +202.165.176.0/20 +202.165.208.0/20 +202.165.239.0/24 +202.165.240.0/23 +202.165.243.0/24 +202.165.245.0/24 +202.165.251.0/24 +202.165.252.0/22 +202.166.224.0/19 +202.168.160.0/20 +202.168.176.0/20 +202.170.128.0/19 +202.170.216.0/21 +202.170.224.0/19 +202.171.216.0/21 +202.171.235.0/24 +202.172.0.0/22 +202.173.0.0/22 +202.173.8.0/21 +202.173.224.0/19 +202.174.64.0/20 +202.176.224.0/19 +202.179.240.0/20 +202.180.128.0/19 +202.180.208.0/21 +202.181.112.0/20 +202.182.32.0/20 +202.182.192.0/19 +202.189.0.0/18 +202.189.80.0/20 +202.189.184.0/21 +202.191.0.0/24 +202.191.68.0/22 +202.191.72.0/21 +202.191.80.0/20 +202.192.0.0/13 +202.200.0.0/14 +202.204.0.0/14 +203.0.4.0/22 +203.0.10.0/23 +203.0.18.0/24 +203.0.24.0/24 +203.0.42.0/23 +203.0.45.0/24 +203.0.46.0/23 +203.0.81.0/24 +203.0.82.0/23 +203.0.90.0/23 +203.0.96.0/23 +203.0.104.0/21 +203.0.114.0/23 +203.0.122.0/24 +203.0.128.0/24 +203.0.130.0/23 +203.0.132.0/22 +203.0.137.0/24 +203.0.142.0/24 +203.0.144.0/24 +203.0.146.0/24 +203.0.148.0/24 +203.0.150.0/23 +203.0.152.0/24 +203.0.177.0/24 +203.0.224.0/24 +203.1.4.0/22 +203.1.18.0/24 +203.1.26.0/23 +203.1.65.0/24 +203.1.66.0/23 +203.1.70.0/23 +203.1.76.0/23 +203.1.90.0/24 +203.1.97.0/24 +203.1.98.0/23 +203.1.100.0/22 +203.1.108.0/24 +203.1.253.0/24 +203.1.254.0/24 +203.2.64.0/21 +203.2.73.0/24 +203.2.112.0/21 +203.2.126.0/23 +203.2.140.0/24 +203.2.150.0/24 +203.2.152.0/22 +203.2.156.0/23 +203.2.160.0/21 +203.2.180.0/23 +203.2.196.0/23 +203.2.209.0/24 +203.2.214.0/23 +203.2.226.0/23 +203.2.229.0/24 +203.2.236.0/23 +203.3.68.0/24 +203.3.72.0/23 +203.3.75.0/24 +203.3.80.0/21 +203.3.96.0/22 +203.3.105.0/24 +203.3.112.0/21 +203.3.120.0/24 +203.3.123.0/24 +203.3.135.0/24 +203.3.139.0/24 +203.3.143.0/24 +203.4.132.0/23 +203.4.134.0/24 +203.4.151.0/24 +203.4.152.0/22 +203.4.174.0/23 +203.4.180.0/24 +203.4.186.0/24 +203.4.205.0/24 +203.4.208.0/22 +203.4.227.0/24 +203.4.230.0/23 +203.5.4.0/23 +203.5.7.0/24 +203.5.8.0/23 +203.5.11.0/24 +203.5.21.0/24 +203.5.22.0/24 +203.5.44.0/24 +203.5.46.0/23 +203.5.52.0/22 +203.5.56.0/23 +203.5.60.0/23 +203.5.114.0/23 +203.5.118.0/24 +203.5.120.0/24 +203.5.172.0/24 +203.5.180.0/23 +203.5.182.0/24 +203.5.185.0/24 +203.5.186.0/24 +203.5.188.0/23 +203.5.190.0/24 +203.5.195.0/24 +203.5.214.0/23 +203.5.218.0/23 +203.6.131.0/24 +203.6.136.0/24 +203.6.138.0/23 +203.6.142.0/24 +203.6.150.0/23 +203.6.157.0/24 +203.6.159.0/24 +203.6.224.0/20 +203.6.248.0/23 +203.7.129.0/24 +203.7.138.0/23 +203.7.147.0/24 +203.7.150.0/23 +203.7.158.0/24 +203.7.192.0/23 +203.7.200.0/24 +203.8.0.0/24 +203.8.8.0/24 +203.8.23.0/24 +203.8.24.0/21 +203.8.70.0/24 +203.8.82.0/24 +203.8.86.0/23 +203.8.91.0/24 +203.8.110.0/23 +203.8.115.0/24 +203.8.166.0/23 +203.8.169.0/24 +203.8.173.0/24 +203.8.184.0/24 +203.8.186.0/23 +203.8.190.0/23 +203.8.192.0/24 +203.8.197.0/24 +203.8.198.0/23 +203.8.203.0/24 +203.8.209.0/24 +203.8.210.0/23 +203.8.212.0/22 +203.8.217.0/24 +203.8.220.0/24 +203.9.32.0/24 +203.9.36.0/23 +203.9.57.0/24 +203.9.63.0/24 +203.9.65.0/24 +203.9.70.0/23 +203.9.72.0/24 +203.9.75.0/24 +203.9.76.0/23 +203.9.96.0/22 +203.9.100.0/23 +203.9.108.0/24 +203.9.158.0/24 +203.10.34.0/24 +203.10.56.0/24 +203.10.74.0/23 +203.10.84.0/22 +203.10.88.0/24 +203.10.95.0/24 +203.10.125.0/24 +203.11.70.0/24 +203.11.76.0/22 +203.11.82.0/24 +203.11.84.0/22 +203.11.100.0/22 +203.11.109.0/24 +203.11.117.0/24 +203.11.122.0/24 +203.11.126.0/24 +203.11.136.0/22 +203.11.141.0/24 +203.11.142.0/23 +203.11.180.0/22 +203.11.208.0/22 +203.12.16.0/24 +203.12.19.0/24 +203.12.24.0/24 +203.12.57.0/24 +203.12.65.0/24 +203.12.66.0/24 +203.12.70.0/23 +203.12.87.0/24 +203.12.88.0/21 +203.12.100.0/23 +203.12.103.0/24 +203.12.114.0/24 +203.12.118.0/24 +203.12.130.0/24 +203.12.137.0/24 +203.12.196.0/22 +203.12.200.0/21 +203.12.211.0/24 +203.12.219.0/24 +203.12.226.0/24 +203.12.240.0/22 +203.13.18.0/24 +203.13.24.0/24 +203.13.44.0/23 +203.13.80.0/21 +203.13.88.0/23 +203.13.92.0/22 +203.13.173.0/24 +203.13.224.0/23 +203.13.227.0/24 +203.13.233.0/24 +203.14.24.0/22 +203.14.33.0/24 +203.14.56.0/24 +203.14.61.0/24 +203.14.62.0/24 +203.14.104.0/24 +203.14.114.0/23 +203.14.118.0/24 +203.14.162.0/24 +203.14.184.0/21 +203.14.192.0/24 +203.14.194.0/23 +203.14.214.0/24 +203.14.231.0/24 +203.14.246.0/24 +203.15.0.0/20 +203.15.20.0/23 +203.15.22.0/24 +203.15.87.0/24 +203.15.88.0/23 +203.15.105.0/24 +203.15.112.0/21 +203.15.130.0/23 +203.15.149.0/24 +203.15.151.0/24 +203.15.156.0/22 +203.15.174.0/24 +203.15.227.0/24 +203.15.232.0/21 +203.15.240.0/23 +203.15.246.0/24 +203.16.10.0/24 +203.16.12.0/23 +203.16.16.0/21 +203.16.27.0/24 +203.16.38.0/24 +203.16.49.0/24 +203.16.50.0/23 +203.16.58.0/24 +203.16.133.0/24 +203.16.161.0/24 +203.16.162.0/24 +203.16.186.0/23 +203.16.228.0/24 +203.16.238.0/24 +203.16.240.0/24 +203.16.245.0/24 +203.17.2.0/24 +203.17.18.0/24 +203.17.28.0/24 +203.17.39.0/24 +203.17.56.0/24 +203.17.74.0/23 +203.17.88.0/23 +203.17.136.0/24 +203.17.164.0/24 +203.17.187.0/24 +203.17.190.0/23 +203.17.231.0/24 +203.17.233.0/24 +203.17.248.0/24 +203.17.255.0/24 +203.18.2.0/23 +203.18.4.0/24 +203.18.7.0/24 +203.18.31.0/24 +203.18.37.0/24 +203.18.48.0/23 +203.18.50.0/24 +203.18.52.0/24 +203.18.72.0/22 +203.18.80.0/23 +203.18.87.0/24 +203.18.100.0/23 +203.18.105.0/24 +203.18.107.0/24 +203.18.110.0/24 +203.18.129.0/24 +203.18.131.0/24 +203.18.132.0/23 +203.18.144.0/24 +203.18.153.0/24 +203.18.199.0/24 +203.18.208.0/24 +203.18.211.0/24 +203.18.215.0/24 +203.19.18.0/24 +203.19.24.0/24 +203.19.30.0/24 +203.19.32.0/21 +203.19.41.0/24 +203.19.44.0/23 +203.19.46.0/24 +203.19.58.0/24 +203.19.60.0/23 +203.19.64.0/24 +203.19.68.0/24 +203.19.72.0/24 +203.19.101.0/24 +203.19.111.0/24 +203.19.131.0/24 +203.19.133.0/24 +203.19.144.0/24 +203.19.149.0/24 +203.19.156.0/24 +203.19.176.0/24 +203.19.178.0/23 +203.19.208.0/24 +203.19.228.0/22 +203.19.233.0/24 +203.19.242.0/24 +203.19.248.0/23 +203.19.255.0/24 +203.20.17.0/24 +203.20.40.0/23 +203.20.48.0/24 +203.20.61.0/24 +203.20.65.0/24 +203.20.84.0/23 +203.20.89.0/24 +203.20.106.0/23 +203.20.115.0/24 +203.20.117.0/24 +203.20.118.0/23 +203.20.122.0/24 +203.20.126.0/23 +203.20.135.0/24 +203.20.136.0/21 +203.20.150.0/24 +203.20.230.0/24 +203.20.232.0/24 +203.20.236.0/24 +203.21.0.0/23 +203.21.2.0/24 +203.21.8.0/24 +203.21.10.0/24 +203.21.18.0/24 +203.21.33.0/24 +203.21.34.0/24 +203.21.41.0/24 +203.21.44.0/24 +203.21.68.0/24 +203.21.82.0/24 +203.21.96.0/22 +203.21.124.0/24 +203.21.136.0/23 +203.21.145.0/24 +203.21.206.0/24 +203.22.24.0/24 +203.22.28.0/23 +203.22.31.0/24 +203.22.68.0/24 +203.22.76.0/24 +203.22.78.0/24 +203.22.84.0/24 +203.22.87.0/24 +203.22.92.0/22 +203.22.99.0/24 +203.22.106.0/24 +203.22.122.0/23 +203.22.131.0/24 +203.22.163.0/24 +203.22.166.0/24 +203.22.170.0/24 +203.22.176.0/21 +203.22.194.0/24 +203.22.242.0/23 +203.22.245.0/24 +203.22.246.0/24 +203.22.252.0/23 +203.23.0.0/24 +203.23.47.0/24 +203.23.61.0/24 +203.23.62.0/23 +203.23.73.0/24 +203.23.85.0/24 +203.23.92.0/22 +203.23.98.0/24 +203.23.107.0/24 +203.23.112.0/24 +203.23.130.0/24 +203.23.140.0/23 +203.23.172.0/24 +203.23.182.0/24 +203.23.186.0/23 +203.23.192.0/24 +203.23.197.0/24 +203.23.198.0/24 +203.23.204.0/22 +203.23.224.0/24 +203.23.226.0/23 +203.23.228.0/22 +203.23.249.0/24 +203.23.251.0/24 +203.24.13.0/24 +203.24.18.0/24 +203.24.27.0/24 +203.24.43.0/24 +203.24.56.0/24 +203.24.58.0/24 +203.24.67.0/24 +203.24.74.0/24 +203.24.79.0/24 +203.24.80.0/23 +203.24.84.0/23 +203.24.86.0/24 +203.24.90.0/24 +203.24.111.0/24 +203.24.112.0/24 +203.24.116.0/24 +203.24.122.0/23 +203.24.145.0/24 +203.24.152.0/23 +203.24.157.0/24 +203.24.161.0/24 +203.24.167.0/24 +203.24.186.0/23 +203.24.199.0/24 +203.24.202.0/24 +203.24.212.0/23 +203.24.217.0/24 +203.24.219.0/24 +203.24.244.0/24 +203.25.19.0/24 +203.25.20.0/23 +203.25.46.0/24 +203.25.48.0/21 +203.25.64.0/23 +203.25.91.0/24 +203.25.99.0/24 +203.25.100.0/24 +203.25.106.0/24 +203.25.131.0/24 +203.25.135.0/24 +203.25.138.0/24 +203.25.147.0/24 +203.25.153.0/24 +203.25.154.0/23 +203.25.164.0/24 +203.25.166.0/24 +203.25.174.0/23 +203.25.180.0/24 +203.25.182.0/24 +203.25.191.0/24 +203.25.199.0/24 +203.25.200.0/24 +203.25.202.0/23 +203.25.208.0/20 +203.25.229.0/24 +203.25.235.0/24 +203.25.236.0/24 +203.25.242.0/24 +203.26.12.0/24 +203.26.34.0/24 +203.26.49.0/24 +203.26.50.0/24 +203.26.55.0/24 +203.26.56.0/23 +203.26.60.0/24 +203.26.65.0/24 +203.26.68.0/24 +203.26.76.0/24 +203.26.80.0/24 +203.26.84.0/24 +203.26.97.0/24 +203.26.102.0/23 +203.26.115.0/24 +203.26.116.0/24 +203.26.129.0/24 +203.26.143.0/24 +203.26.144.0/24 +203.26.148.0/23 +203.26.154.0/24 +203.26.158.0/23 +203.26.170.0/24 +203.26.173.0/24 +203.26.176.0/24 +203.26.185.0/24 +203.26.202.0/23 +203.26.210.0/24 +203.26.214.0/24 +203.26.222.0/24 +203.26.224.0/24 +203.26.228.0/24 +203.26.232.0/24 +203.27.0.0/24 +203.27.10.0/24 +203.27.15.0/24 +203.27.16.0/24 +203.27.20.0/24 +203.27.22.0/23 +203.27.40.0/24 +203.27.45.0/24 +203.27.53.0/24 +203.27.65.0/24 +203.27.66.0/24 +203.27.81.0/24 +203.27.88.0/24 +203.27.102.0/24 +203.27.109.0/24 +203.27.117.0/24 +203.27.121.0/24 +203.27.122.0/23 +203.27.125.0/24 +203.27.200.0/24 +203.27.202.0/24 +203.27.233.0/24 +203.27.241.0/24 +203.27.250.0/24 +203.28.10.0/24 +203.28.12.0/24 +203.28.33.0/24 +203.28.34.0/23 +203.28.43.0/24 +203.28.44.0/24 +203.28.54.0/24 +203.28.56.0/24 +203.28.73.0/24 +203.28.74.0/24 +203.28.76.0/24 +203.28.86.0/24 +203.28.88.0/24 +203.28.112.0/24 +203.28.131.0/24 +203.28.136.0/24 +203.28.140.0/24 +203.28.145.0/24 +203.28.165.0/24 +203.28.169.0/24 +203.28.170.0/24 +203.28.178.0/23 +203.28.185.0/24 +203.28.187.0/24 +203.28.196.0/24 +203.28.226.0/23 +203.28.239.0/24 +203.29.2.0/24 +203.29.8.0/23 +203.29.13.0/24 +203.29.14.0/24 +203.29.28.0/24 +203.29.46.0/24 +203.29.57.0/24 +203.29.61.0/24 +203.29.63.0/24 +203.29.69.0/24 +203.29.73.0/24 +203.29.81.0/24 +203.29.90.0/24 +203.29.95.0/24 +203.29.100.0/24 +203.29.103.0/24 +203.29.112.0/24 +203.29.120.0/22 +203.29.182.0/23 +203.29.187.0/24 +203.29.189.0/24 +203.29.190.0/24 +203.29.205.0/24 +203.29.210.0/24 +203.29.217.0/24 +203.29.227.0/24 +203.29.231.0/24 +203.29.233.0/24 +203.29.234.0/24 +203.29.248.0/24 +203.29.254.0/23 +203.30.16.0/23 +203.30.25.0/24 +203.30.27.0/24 +203.30.29.0/24 +203.30.66.0/24 +203.30.81.0/24 +203.30.87.0/24 +203.30.111.0/24 +203.30.121.0/24 +203.30.123.0/24 +203.30.152.0/24 +203.30.156.0/24 +203.30.162.0/24 +203.30.173.0/24 +203.30.175.0/24 +203.30.187.0/24 +203.30.194.0/24 +203.30.217.0/24 +203.30.220.0/24 +203.30.222.0/24 +203.30.232.0/23 +203.30.235.0/24 +203.30.240.0/23 +203.30.246.0/24 +203.30.250.0/23 +203.31.45.0/24 +203.31.46.0/24 +203.31.49.0/24 +203.31.51.0/24 +203.31.54.0/23 +203.31.69.0/24 +203.31.72.0/24 +203.31.80.0/24 +203.31.85.0/24 +203.31.97.0/24 +203.31.105.0/24 +203.31.106.0/24 +203.31.108.0/23 +203.31.124.0/24 +203.31.162.0/24 +203.31.174.0/24 +203.31.177.0/24 +203.31.181.0/24 +203.31.187.0/24 +203.31.189.0/24 +203.31.204.0/24 +203.31.220.0/24 +203.31.222.0/23 +203.31.225.0/24 +203.31.229.0/24 +203.31.248.0/23 +203.31.253.0/24 +203.32.20.0/24 +203.32.48.0/23 +203.32.56.0/24 +203.32.60.0/24 +203.32.62.0/24 +203.32.68.0/23 +203.32.76.0/24 +203.32.81.0/24 +203.32.84.0/23 +203.32.95.0/24 +203.32.102.0/24 +203.32.105.0/24 +203.32.130.0/24 +203.32.133.0/24 +203.32.140.0/24 +203.32.152.0/24 +203.32.186.0/23 +203.32.192.0/24 +203.32.196.0/24 +203.32.203.0/24 +203.32.204.0/23 +203.32.212.0/24 +203.33.4.0/24 +203.33.7.0/24 +203.33.8.0/21 +203.33.21.0/24 +203.33.26.0/24 +203.33.32.0/24 +203.33.63.0/24 +203.33.64.0/24 +203.33.67.0/24 +203.33.68.0/24 +203.33.73.0/24 +203.33.79.0/24 +203.33.100.0/24 +203.33.122.0/24 +203.33.129.0/24 +203.33.131.0/24 +203.33.145.0/24 +203.33.156.0/24 +203.33.158.0/23 +203.33.174.0/24 +203.33.185.0/24 +203.33.200.0/24 +203.33.202.0/23 +203.33.204.0/24 +203.33.206.0/23 +203.33.214.0/23 +203.33.224.0/23 +203.33.226.0/24 +203.33.233.0/24 +203.33.243.0/24 +203.33.250.0/24 +203.34.4.0/24 +203.34.21.0/24 +203.34.27.0/24 +203.34.39.0/24 +203.34.48.0/23 +203.34.54.0/24 +203.34.56.0/23 +203.34.67.0/24 +203.34.69.0/24 +203.34.76.0/24 +203.34.92.0/24 +203.34.106.0/24 +203.34.113.0/24 +203.34.147.0/24 +203.34.150.0/24 +203.34.152.0/23 +203.34.161.0/24 +203.34.162.0/24 +203.34.187.0/24 +203.34.192.0/21 +203.34.204.0/22 +203.34.232.0/24 +203.34.240.0/24 +203.34.242.0/24 +203.34.245.0/24 +203.34.251.0/24 +203.55.2.0/23 +203.55.4.0/24 +203.55.10.0/24 +203.55.13.0/24 +203.55.22.0/24 +203.55.30.0/24 +203.55.93.0/24 +203.55.101.0/24 +203.55.109.0/24 +203.55.110.0/24 +203.55.116.0/23 +203.55.119.0/24 +203.55.128.0/23 +203.55.146.0/23 +203.55.192.0/24 +203.55.196.0/24 +203.55.218.0/23 +203.55.221.0/24 +203.55.224.0/24 +203.56.1.0/24 +203.56.4.0/24 +203.56.12.0/24 +203.56.24.0/24 +203.56.38.0/24 +203.56.40.0/24 +203.56.46.0/24 +203.56.48.0/21 +203.56.68.0/23 +203.56.82.0/23 +203.56.84.0/23 +203.56.95.0/24 +203.56.110.0/24 +203.56.121.0/24 +203.56.161.0/24 +203.56.169.0/24 +203.56.172.0/23 +203.56.175.0/24 +203.56.183.0/24 +203.56.185.0/24 +203.56.187.0/24 +203.56.192.0/24 +203.56.198.0/24 +203.56.201.0/24 +203.56.208.0/23 +203.56.210.0/24 +203.56.214.0/24 +203.56.216.0/24 +203.56.227.0/24 +203.56.228.0/24 +203.56.232.0/24 +203.56.240.0/24 +203.56.252.0/24 +203.56.254.0/24 +203.57.5.0/24 +203.57.6.0/24 +203.57.12.0/23 +203.57.28.0/24 +203.57.39.0/24 +203.57.46.0/24 +203.57.58.0/24 +203.57.61.0/24 +203.57.66.0/24 +203.57.69.0/24 +203.57.70.0/23 +203.57.73.0/24 +203.57.90.0/24 +203.57.101.0/24 +203.57.109.0/24 +203.57.123.0/24 +203.57.157.0/24 +203.57.200.0/24 +203.57.202.0/24 +203.57.206.0/24 +203.57.222.0/24 +203.57.224.0/20 +203.57.246.0/23 +203.57.249.0/24 +203.57.253.0/24 +203.57.254.0/23 +203.62.2.0/24 +203.62.131.0/24 +203.62.139.0/24 +203.62.161.0/24 +203.62.197.0/24 +203.62.228.0/22 +203.62.234.0/24 +203.62.246.0/24 +203.76.160.0/22 +203.76.168.0/22 +203.77.180.0/22 +203.78.48.0/20 +203.79.0.0/20 +203.79.32.0/20 +203.80.4.0/23 +203.80.32.0/20 +203.80.57.0/24 +203.80.132.0/22 +203.80.136.0/21 +203.80.144.0/20 +203.81.0.0/21 +203.81.16.0/20 +203.82.0.0/23 +203.82.16.0/21 +203.83.0.0/22 +203.83.56.0/21 +203.83.224.0/20 +203.86.0.0/19 +203.86.32.0/19 +203.86.64.0/20 +203.86.80.0/20 +203.86.96.0/19 +203.86.254.0/23 +203.88.32.0/19 +203.88.192.0/19 +203.89.0.0/22 +203.89.8.0/21 +203.89.136.0/22 +203.90.0.0/22 +203.90.8.0/22 +203.90.128.0/19 +203.90.160.0/19 +203.90.192.0/19 +203.91.32.0/19 +203.91.96.0/20 +203.91.120.0/21 +203.92.0.0/22 +203.92.160.0/19 +203.93.0.0/22 +203.93.4.0/22 +203.93.8.0/24 +203.93.9.0/24 +203.93.10.0/23 +203.93.12.0/22 +203.93.16.0/20 +203.93.32.0/19 +203.93.64.0/18 +203.93.128.0/21 +203.93.136.0/22 +203.93.140.0/24 +203.93.141.0/24 +203.93.142.0/23 +203.93.144.0/20 +203.93.160.0/19 +203.93.192.0/18 +203.94.0.0/22 +203.94.4.0/22 +203.94.8.0/21 +203.94.16.0/20 +203.95.0.0/21 +203.95.96.0/20 +203.95.112.0/20 +203.95.128.0/18 +203.95.224.0/19 +203.99.8.0/21 +203.99.16.0/20 +203.99.80.0/20 +203.100.32.0/20 +203.100.48.0/21 +203.100.63.0/24 +203.100.80.0/20 +203.100.96.0/19 +203.100.192.0/20 +203.104.32.0/20 +203.105.96.0/19 +203.105.128.0/19 +203.107.0.0/17 +203.110.160.0/19 +203.110.208.0/20 +203.110.232.0/23 +203.110.234.0/24 +203.114.244.0/22 +203.118.192.0/19 +203.118.241.0/24 +203.118.248.0/22 +203.119.24.0/21 +203.119.32.0/22 +203.119.80.0/22 +203.119.85.0/24 +203.119.113.0/24 +203.119.114.0/23 +203.119.116.0/22 +203.119.120.0/21 +203.119.128.0/17 +203.128.32.0/19 +203.128.96.0/19 +203.128.224.0/21 +203.129.8.0/21 +203.130.32.0/19 +203.132.32.0/19 +203.134.240.0/21 +203.135.96.0/20 +203.135.112.0/20 +203.135.160.0/20 +203.142.224.0/19 +203.144.96.0/19 +203.145.0.0/19 +203.148.0.0/18 +203.148.64.0/20 +203.148.80.0/22 +203.148.86.0/23 +203.149.92.0/22 +203.152.64.0/19 +203.152.128.0/19 +203.153.0.0/22 +203.156.192.0/18 +203.158.16.0/21 +203.160.104.0/21 +203.160.129.0/24 +203.160.192.0/19 +203.161.0.0/22 +203.161.180.0/24 +203.161.192.0/19 +203.166.160.0/19 +203.168.0.0/19 +203.170.58.0/23 +203.171.0.0/22 +203.171.224.0/20 +203.174.4.0/24 +203.174.7.0/24 +203.174.96.0/19 +203.175.128.0/19 +203.175.192.0/18 +203.176.0.0/18 +203.176.64.0/19 +203.176.168.0/21 +203.184.80.0/20 +203.187.160.0/19 +203.189.0.0/23 +203.189.6.0/23 +203.189.112.0/22 +203.189.192.0/19 +203.190.96.0/20 +203.190.249.0/24 +203.191.0.0/23 +203.191.16.0/20 +203.191.64.0/18 +203.191.144.0/21 +203.191.152.0/21 +203.192.0.0/19 +203.193.224.0/19 +203.194.120.0/21 +203.195.64.0/19 +203.195.112.0/21 +203.195.128.0/17 +203.196.0.0/21 +203.196.8.0/21 +203.202.236.0/22 +203.205.64.0/19 +203.205.128.0/17 +203.207.64.0/18 +203.207.128.0/17 +203.208.0.0/20 +203.208.16.0/22 +203.208.32.0/19 +203.209.224.0/19 +203.212.0.0/20 +203.212.80.0/20 +203.215.232.0/21 +203.222.192.0/20 +203.223.0.0/20 +203.223.16.0/21 +210.2.0.0/20 +210.2.16.0/20 +210.5.0.0/19 +210.5.56.0/21 +210.5.128.0/20 +210.5.144.0/20 +210.12.0.0/18 +210.12.64.0/18 +210.12.128.0/18 +210.12.192.0/18 +210.13.0.0/18 +210.13.64.0/18 +210.13.128.0/17 +210.14.64.0/19 +210.14.112.0/20 +210.14.128.0/19 +210.14.160.0/19 +210.14.192.0/19 +210.14.224.0/19 +210.15.0.0/19 +210.15.32.0/19 +210.15.64.0/19 +210.15.96.0/19 +210.15.128.0/18 +210.16.128.0/18 +210.21.0.0/17 +210.21.128.0/17 +210.22.0.0/16 +210.23.32.0/19 +210.25.0.0/16 +210.26.0.0/15 +210.28.0.0/14 +210.32.0.0/14 +210.36.0.0/14 +210.40.0.0/13 +210.48.136.0/21 +210.51.0.0/16 +210.52.0.0/18 +210.52.64.0/18 +210.52.128.0/17 +210.53.0.0/17 +210.53.128.0/17 +210.56.192.0/19 +210.72.0.0/17 +210.72.128.0/19 +210.72.160.0/19 +210.72.192.0/18 +210.73.0.0/19 +210.73.32.0/19 +210.73.64.0/18 +210.73.128.0/17 +210.74.0.0/19 +210.74.32.0/19 +210.74.64.0/19 +210.74.96.0/19 +210.74.128.0/19 +210.74.160.0/19 +210.74.192.0/18 +210.75.0.0/16 +210.76.0.0/19 +210.76.32.0/19 +210.76.64.0/18 +210.76.128.0/17 +210.77.0.0/16 +210.78.0.0/19 +210.78.32.0/19 +210.78.64.0/18 +210.78.128.0/19 +210.78.160.0/19 +210.78.192.0/18 +210.79.64.0/18 +210.79.224.0/19 +210.82.0.0/15 +210.87.128.0/20 +210.87.144.0/20 +210.87.160.0/19 +210.185.192.0/18 +210.192.96.0/19 +211.64.0.0/14 +211.68.0.0/15 +211.70.0.0/15 +211.80.0.0/16 +211.81.0.0/16 +211.82.0.0/16 +211.83.0.0/16 +211.84.0.0/15 +211.86.0.0/15 +211.88.0.0/16 +211.89.0.0/16 +211.90.0.0/15 +211.92.0.0/15 +211.94.0.0/15 +211.96.0.0/15 +211.98.0.0/16 +211.99.0.0/18 +211.99.64.0/19 +211.99.96.0/19 +211.99.128.0/17 +211.100.0.0/16 +211.101.0.0/18 +211.101.64.0/18 +211.101.128.0/17 +211.102.0.0/16 +211.103.0.0/17 +211.103.128.0/17 +211.136.0.0/14 +211.140.0.0/15 +211.142.0.0/17 +211.142.128.0/17 +211.143.0.0/16 +211.144.0.0/15 +211.146.0.0/16 +211.147.0.0/16 +211.148.0.0/14 +211.152.0.0/15 +211.154.0.0/16 +211.155.0.0/18 +211.155.64.0/19 +211.155.96.0/19 +211.155.128.0/17 +211.156.0.0/14 +211.160.0.0/14 +211.164.0.0/14 +218.0.0.0/16 +218.1.0.0/16 +218.2.0.0/15 +218.4.0.0/15 +218.6.0.0/16 +218.7.0.0/16 +218.8.0.0/15 +218.10.0.0/16 +218.11.0.0/16 +218.12.0.0/16 +218.13.0.0/16 +218.14.0.0/15 +218.16.0.0/14 +218.20.0.0/16 +218.21.0.0/17 +218.21.128.0/17 +218.22.0.0/15 +218.24.0.0/15 +218.26.0.0/16 +218.27.0.0/16 +218.28.0.0/15 +218.30.0.0/15 +218.56.0.0/14 +218.60.0.0/15 +218.62.0.0/17 +218.62.128.0/17 +218.63.0.0/16 +218.64.0.0/15 +218.66.0.0/16 +218.67.0.0/17 +218.67.128.0/17 +218.68.0.0/15 +218.70.0.0/15 +218.72.0.0/14 +218.76.0.0/15 +218.78.0.0/15 +218.80.0.0/14 +218.84.0.0/14 +218.88.0.0/13 +218.96.0.0/15 +218.98.0.0/17 +218.98.128.0/18 +218.98.192.0/19 +218.98.224.0/19 +218.99.0.0/16 +218.100.88.0/21 +218.100.96.0/19 +218.100.128.0/17 +218.104.0.0/17 +218.104.128.0/19 +218.104.160.0/19 +218.104.192.0/21 +218.104.200.0/21 +218.104.208.0/20 +218.104.224.0/19 +218.105.0.0/16 +218.106.0.0/15 +218.108.0.0/16 +218.109.0.0/16 +218.185.192.0/19 +218.185.240.0/21 +218.192.0.0/16 +218.193.0.0/16 +218.194.0.0/16 +218.195.0.0/16 +218.196.0.0/14 +218.200.0.0/14 +218.204.0.0/15 +218.206.0.0/15 +218.240.0.0/14 +218.244.0.0/15 +218.246.0.0/15 +218.249.0.0/16 +219.72.0.0/16 +219.82.0.0/16 +219.83.128.0/17 +219.128.0.0/12 +219.144.0.0/14 +219.148.0.0/16 +219.149.0.0/17 +219.149.128.0/18 +219.149.192.0/18 +219.150.0.0/19 +219.150.32.0/19 +219.150.64.0/19 +219.150.96.0/20 +219.150.112.0/20 +219.150.128.0/17 +219.151.0.0/19 +219.151.32.0/19 +219.151.64.0/18 +219.151.128.0/17 +219.152.0.0/15 +219.154.0.0/15 +219.156.0.0/15 +219.158.0.0/17 +219.158.128.0/17 +219.159.0.0/18 +219.159.64.0/18 +219.159.128.0/17 +219.216.0.0/15 +219.218.0.0/15 +219.220.0.0/16 +219.221.0.0/16 +219.222.0.0/15 +219.224.0.0/15 +219.226.0.0/16 +219.227.0.0/16 +219.228.0.0/15 +219.230.0.0/15 +219.232.0.0/14 +219.236.0.0/15 +219.238.0.0/15 +219.242.0.0/15 +219.244.0.0/14 +220.101.192.0/18 +220.112.0.0/14 +220.152.128.0/17 +220.154.0.0/15 +220.160.0.0/11 +220.192.0.0/15 +220.194.0.0/15 +220.196.0.0/14 +220.200.0.0/13 +220.231.0.0/18 +220.231.128.0/17 +220.232.64.0/18 +220.234.0.0/16 +220.242.0.0/15 +220.247.136.0/21 +220.248.0.0/14 +220.252.0.0/16 +221.0.0.0/15 +221.2.0.0/16 +221.3.0.0/17 +221.3.128.0/17 +221.4.0.0/16 +221.5.0.0/17 +221.5.128.0/17 +221.6.0.0/16 +221.7.0.0/19 +221.7.32.0/19 +221.7.64.0/19 +221.7.96.0/19 +221.7.128.0/17 +221.8.0.0/15 +221.10.0.0/16 +221.11.0.0/17 +221.11.128.0/18 +221.11.192.0/19 +221.11.224.0/19 +221.12.0.0/17 +221.12.128.0/18 +221.13.0.0/18 +221.13.64.0/19 +221.13.96.0/19 +221.13.128.0/17 +221.14.0.0/15 +221.122.0.0/15 +221.128.128.0/17 +221.129.0.0/16 +221.130.0.0/15 +221.133.224.0/19 +221.136.0.0/16 +221.137.0.0/16 +221.172.0.0/14 +221.176.0.0/13 +221.192.0.0/15 +221.194.0.0/16 +221.195.0.0/16 +221.196.0.0/15 +221.198.0.0/16 +221.199.0.0/19 +221.199.32.0/20 +221.199.48.0/20 +221.199.64.0/18 +221.199.128.0/18 +221.199.192.0/20 +221.199.224.0/19 +221.200.0.0/14 +221.204.0.0/15 +221.206.0.0/16 +221.207.0.0/18 +221.207.64.0/18 +221.207.128.0/17 +221.208.0.0/14 +221.212.0.0/16 +221.213.0.0/16 +221.214.0.0/15 +221.216.0.0/13 +221.224.0.0/13 +221.232.0.0/14 +221.236.0.0/15 +221.238.0.0/16 +221.239.0.0/17 +221.239.128.0/17 +222.16.0.0/15 +222.18.0.0/15 +222.20.0.0/15 +222.22.0.0/16 +222.23.0.0/16 +222.24.0.0/15 +222.26.0.0/15 +222.28.0.0/14 +222.32.0.0/11 +222.64.0.0/13 +222.72.0.0/15 +222.74.0.0/16 +222.75.0.0/16 +222.76.0.0/14 +222.80.0.0/15 +222.82.0.0/16 +222.83.0.0/17 +222.83.128.0/17 +222.84.0.0/16 +222.85.0.0/17 +222.85.128.0/17 +222.86.0.0/15 +222.88.0.0/15 +222.90.0.0/15 +222.92.0.0/14 +222.125.0.0/16 +222.126.128.0/17 +222.128.0.0/14 +222.132.0.0/14 +222.136.0.0/13 +222.160.0.0/15 +222.162.0.0/16 +222.163.0.0/19 +222.163.32.0/19 +222.163.64.0/18 +222.163.128.0/17 +222.168.0.0/15 +222.170.0.0/15 +222.172.0.0/17 +222.172.128.0/17 +222.173.0.0/16 +222.174.0.0/15 +222.176.0.0/13 +222.184.0.0/13 +222.192.0.0/14 +222.196.0.0/15 +222.198.0.0/16 +222.199.0.0/16 +222.200.0.0/14 +222.204.0.0/15 +222.206.0.0/15 +222.208.0.0/13 +222.216.0.0/15 +222.218.0.0/16 +222.219.0.0/16 +222.220.0.0/15 +222.222.0.0/15 +222.240.0.0/13 +222.248.0.0/16 +222.249.0.0/17 +222.249.128.0/19 +222.249.160.0/20 +222.249.176.0/20 +222.249.192.0/18 +223.0.0.0/15 +223.2.0.0/15 +223.4.0.0/14 +223.8.0.0/13 +223.20.0.0/15 +223.27.184.0/22 +223.64.0.0/11 +223.96.0.0/12 +223.112.0.0/14 +223.116.0.0/15 +223.120.0.0/13 +223.128.0.0/15 +223.144.0.0/12 +223.160.0.0/14 +223.166.0.0/15 +223.192.0.0/15 +223.198.0.0/15 +223.201.0.0/16 +223.202.0.0/15 +223.208.0.0/14 +223.212.0.0/15 +223.214.0.0/15 +223.220.0.0/15 +223.223.176.0/20 +223.223.192.0/20 +223.240.0.0/13 +223.248.0.0/14 +223.252.128.0/17 +223.254.0.0/16 +223.255.0.0/17 +223.255.236.0/22 +223.255.252.0/23 diff --git a/shadowsocksr-libev/src/aclocal.m4 b/shadowsocksr-libev/src/aclocal.m4 new file mode 100644 index 00000000000..5b8b9a28f13 --- /dev/null +++ b/shadowsocksr-libev/src/aclocal.m4 @@ -0,0 +1,1299 @@ +# generated automatically by aclocal 1.15 -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.15' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.15], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.15])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_AR([ACT-IF-FAIL]) +# ------------------------- +# Try to determine the archiver interface, and trigger the ar-lib wrapper +# if it is needed. If the detection of archiver interface fails, run +# ACT-IF-FAIL (default is to abort configure with a proper error message). +AC_DEFUN([AM_PROG_AR], +[AC_BEFORE([$0], [LT_INIT])dnl +AC_BEFORE([$0], [AC_PROG_LIBTOOL])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([ar-lib])dnl +AC_CHECK_TOOLS([AR], [ar lib "link -lib"], [false]) +: ${AR=ar} + +AC_CACHE_CHECK([the archiver ($AR) interface], [am_cv_ar_interface], + [AC_LANG_PUSH([C]) + am_cv_ar_interface=ar + AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int some_variable = 0;]])], + [am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([am_ar_try]) + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + ]) + AC_LANG_POP([C])]) + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + m4_default([$1], + [AC_MSG_ERROR([could not determine $AR interface])]) + ;; +esac +AC_SUBST([AR])dnl +]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_COND_IF -*- Autoconf -*- + +# Copyright (C) 2008-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_COND_IF +# _AM_COND_ELSE +# _AM_COND_ENDIF +# -------------- +# These macros are only used for tracing. +m4_define([_AM_COND_IF]) +m4_define([_AM_COND_ELSE]) +m4_define([_AM_COND_ENDIF]) + +# AM_COND_IF(COND, [IF-TRUE], [IF-FALSE]) +# --------------------------------------- +# If the shell condition COND is true, execute IF-TRUE, otherwise execute +# IF-FALSE. Allow automake to learn about conditional instantiating macros +# (the AC_CONFIG_FOOS). +AC_DEFUN([AM_COND_IF], +[m4_ifndef([_AM_COND_VALUE_$1], + [m4_fatal([$0: no such condition "$1"])])dnl +_AM_COND_IF([$1])dnl +if test -z "$$1_TRUE"; then : + m4_n([$2])[]dnl +m4_ifval([$3], +[_AM_COND_ELSE([$1])dnl +else + $3 +])dnl +_AM_COND_ENDIF([$1])dnl +fi[]dnl +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2014 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_pthread.m4]) +m4_include([m4/ax_tls.m4]) +m4_include([m4/inet_ntop.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/mbedtls.m4]) +m4_include([m4/openssl.m4]) +m4_include([m4/pcre.m4]) +m4_include([m4/polarssl.m4]) +m4_include([m4/stack-protector.m4]) +m4_include([m4/zlib.m4]) diff --git a/shadowsocksr-libev/src/auto/ar-lib b/shadowsocksr-libev/src/auto/ar-lib new file mode 100755 index 00000000000..fe2301e71a8 --- /dev/null +++ b/shadowsocksr-libev/src/auto/ar-lib @@ -0,0 +1,270 @@ +#! /bin/sh +# Wrapper for Microsoft lib.exe + +me=ar-lib +scriptversion=2012-03-01.08; # UTC + +# Copyright (C) 2010-2013 Free Software Foundation, Inc. +# Written by Peter Rosin . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + + +# func_error message +func_error () +{ + echo "$me: $1" 1>&2 + exit 1 +} + +file_conv= + +# func_file_conv build_file +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv in + mingw) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_at_file at_file operation archive +# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE +# for each of them. +# When interpreting the content of the @FILE, do NOT use func_file_conv, +# since the user would need to supply preconverted file names to +# binutils ar, at least for MinGW. +func_at_file () +{ + operation=$2 + archive=$3 + at_file_contents=`cat "$1"` + eval set x "$at_file_contents" + shift + + for member + do + $AR -NOLOGO $operation:"$member" "$archive" || exit $? + done +} + +case $1 in + '') + func_error "no command. Try '$0 --help' for more information." + ;; + -h | --h*) + cat <. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/shadowsocksr-libev/src/auto/config.guess b/shadowsocksr-libev/src/auto/config.guess new file mode 100755 index 00000000000..b79252d6b10 --- /dev/null +++ b/shadowsocksr-libev/src/auto/config.guess @@ -0,0 +1,1558 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-06-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches with a ChangeLog entry to config-patches@gnu.org. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + i*:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + or1k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +eval $set_cc_for_build +cat >$dummy.c < +# include +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (__arm) && defined (__acorn) && defined (__unix) + printf ("arm-acorn-riscix\n"); exit (0); +#endif + +#if defined (hp300) && !defined (hpux) + printf ("m68k-hp-bsd\n"); exit (0); +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); + +#endif + +#if defined (vax) +# if !defined (ultrix) +# include +# if defined (BSD) +# if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +# else +# if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# endif +# else + printf ("vax-dec-bsd\n"); exit (0); +# endif +# else + printf ("vax-dec-ultrix\n"); exit (0); +# endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. + +test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } + +# Convex versions that predate uname can use getsysinfo(1) + +if [ -x /usr/convex/getsysinfo ] +then + case `getsysinfo -f cpu_type` in + c1*) + echo c1-convex-bsd + exit ;; + c2*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + c34*) + echo c34-convex-bsd + exit ;; + c38*) + echo c38-convex-bsd + exit ;; + c4*) + echo c4-convex-bsd + exit ;; + esac +fi + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/shadowsocksr-libev/src/auto/config.rpath b/shadowsocksr-libev/src/auto/config.rpath new file mode 100644 index 00000000000..e69de29bb2d diff --git a/shadowsocksr-libev/src/auto/config.sub b/shadowsocksr-libev/src/auto/config.sub new file mode 100755 index 00000000000..9633db70467 --- /dev/null +++ b/shadowsocksr-libev/src/auto/config.sub @@ -0,0 +1,1791 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2013 Free Software Foundation, Inc. + +timestamp='2013-08-10' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches with a ChangeLog entry to config-patches@gnu.org. +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2013 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | epiphany \ + | fido | fr30 | frv \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 \ + | or1k | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or1k-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/shadowsocksr-libev/src/auto/depcomp b/shadowsocksr-libev/src/auto/depcomp new file mode 100755 index 00000000000..4ebd5b3a2f2 --- /dev/null +++ b/shadowsocksr-libev/src/auto/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2013-05-30.07; # UTC + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/shadowsocksr-libev/src/auto/install-sh b/shadowsocksr-libev/src/auto/install-sh new file mode 100755 index 00000000000..377bb8687ff --- /dev/null +++ b/shadowsocksr-libev/src/auto/install-sh @@ -0,0 +1,527 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2011-11-20.07; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +nl=' +' +IFS=" "" $nl" + +# set DOITPROG to echo to test this script + +# Don't use :- since 4.3BSD and earlier shells don't like it. +doit=${DOITPROG-} +if test -z "$doit"; then + doit_exec=exec +else + doit_exec=$doit +fi + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_glob='?' +initialize_posix_glob=' + test "$posix_glob" != "?" || { + if (set -f) 2>/dev/null; then + posix_glob= + else + posix_glob=: + fi + } +' + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +no_target_directory= + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve the last data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -s $stripprog installed files. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *' '* | *' +'* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -s) stripcmd=$stripprog;; + + -t) dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) no_target_directory=true;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename; won't work + # if double slashes aren't ignored. + if test -d "$dst"; then + if test -n "$no_target_directory"; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dst=$dstdir/`basename "$src"` + dstdir_status=0 + else + # Prefer dirname, but fall back on a substitute if dirname fails. + dstdir=` + (dirname "$dst") 2>/dev/null || + expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$dst" : 'X\(//\)[^/]' \| \ + X"$dst" : 'X\(//\)$' \| \ + X"$dst" : 'X\(/\)' \| . 2>/dev/null || + echo X"$dst" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q' + ` + + test -d "$dstdir" + dstdir_status=$? + fi + fi + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # Create intermediate dirs using mode 755 as modified by the umask. + # This is like FreeBSD 'install' as of 1997-10-28. + umask=`umask` + case $stripcmd.$umask in + # Optimize common cases. + *[2367][2367]) mkdir_umask=$umask;; + .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; + + *[0-7]) + mkdir_umask=`expr $umask + 22 \ + - $umask % 100 % 40 + $umask % 20 \ + - $umask % 10 % 4 + $umask % 2 + `;; + *) mkdir_umask=$umask,go-w;; + esac + + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + case $umask in + *[123567][0-7][0-7]) + # POSIX mkdir -p sets u+wx bits regardless of umask, which + # is incompatible with FreeBSD 'install' when (umask & 300) != 0. + ;; + *) + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + + if (umask $mkdir_umask && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + ls_ld_tmpdir=`ls -ld "$tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/d" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + fi + trap '' 0;; + esac;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # The umask is ridiculous, or mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + eval "$initialize_posix_glob" + + oIFS=$IFS + IFS=/ + $posix_glob set -f + set fnord $dstdir + shift + $posix_glob set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask=$mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=$dstdir/_inst.$$_ + rmtmp=$dstdir/_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + + eval "$initialize_posix_glob" && + $posix_glob set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + $posix_glob set +f && + + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd -f "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/shadowsocksr-libev/src/auto/ltmain.sh b/shadowsocksr-libev/src/auto/ltmain.sh new file mode 100644 index 00000000000..a356acafa45 --- /dev/null +++ b/shadowsocksr-libev/src/auto/ltmain.sh @@ -0,0 +1,9661 @@ + +# libtool (GNU libtool) 2.4.2 +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, +# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, +# or obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +# Usage: $progname [OPTION]... [MODE-ARG]... +# +# Provide generalized library-building support services. +# +# --config show all configuration variables +# --debug enable verbose shell tracing +# -n, --dry-run display commands without modifying any files +# --features display basic configuration information and exit +# --mode=MODE use operation mode MODE +# --preserve-dup-deps don't remove duplicate dependency libraries +# --quiet, --silent don't print informational messages +# --no-quiet, --no-silent +# print informational messages (default) +# --no-warn don't display warning messages +# --tag=TAG use configuration variables from tag TAG +# -v, --verbose print more informational messages than default +# --no-verbose don't print the extra informational messages +# --version print version information +# -h, --help, --help-all print short, long, or detailed help message +# +# MODE must be one of the following: +# +# clean remove files from the build directory +# compile compile a source file into a libtool object +# execute automatically set library path, then run a program +# finish complete the installation of libtool libraries +# install install libraries or executables +# link create a library or an executable +# uninstall remove libraries from an installed directory +# +# MODE-ARGS vary depending on the MODE. When passed as first option, +# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that. +# Try `$progname --help --mode=MODE' for a more detailed description of MODE. +# +# When reporting a bug, please describe a test case to reproduce it and +# include the following information: +# +# host-triplet: $host +# shell: $SHELL +# compiler: $LTCC +# compiler flags: $LTCFLAGS +# linker: $LD (gnu? $with_gnu_ld) +# $progname: (GNU libtool) 2.4.2 Debian-2.4.2-1.7ubuntu1 +# automake: $automake_version +# autoconf: $autoconf_version +# +# Report bugs to . +# GNU libtool home page: . +# General help using GNU software: . + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.2 Debian-2.4.2-1.7ubuntu1" +TIMESTAMP="" +package_revision=1.3337 + +# Be Bourne compatible +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# NLS nuisances: We save the old values to restore during execute mode. +lt_user_locale= +lt_safe_locale= +for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test \"\${$lt_var+set}\" = set; then + save_$lt_var=\$$lt_var + $lt_var=C + export $lt_var + lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\" + lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\" + fi" +done +LC_ALL=C +LANGUAGE=C +export LANGUAGE LC_ALL + +$lt_unset CDPATH + + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath="$0" + + + +: ${CP="cp -f"} +test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} +: ${Xsed="$SED -e 1s/^X//"} + +# Global variables: +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +exit_status=$EXIT_SUCCESS + +# Make sure IFS has a sensible default +lt_nl=' +' +IFS=" $lt_nl" + +dirname="s,/[^/]*$,," +basename="s,^.*/,," + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + func_dirname_result=`$ECHO "${1}" | $SED "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} # func_dirname may be replaced by extended shell implementation + + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "${1}" | $SED "$basename"` +} # func_basename may be replaced by extended shell implementation + + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi + func_basename_result=`$ECHO "${1}" | $SED -e "$basename"` +} # func_dirname_and_basename may be replaced by extended shell implementation + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname may be replaced by extended shell implementation + + +# These SED scripts presuppose an absolute path with a trailing slash. +pathcar='s,^/\([^/]*\).*$,\1,' +pathcdr='s,^/[^/]*,,' +removedotparts=':dotsl + s@/\./@/@g + t dotsl + s,/\.$,/,' +collapseslashes='s@/\{1,\}@/@g' +finalslash='s,/*$,/,' + +# func_normal_abspath PATH +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +# value returned in "$func_normal_abspath_result" +func_normal_abspath () +{ + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"` + while :; do + # Processed it all yet? + if test "$func_normal_abspath_tpath" = / ; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result" ; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + +# func_relative_path SRCDIR DSTDIR +# generates a relative path from SRCDIR to DSTDIR, with a trailing +# slash if non-empty, suitable for immediately appending a filename +# without needing to append a separator. +# value returned in "$func_relative_path_result" +func_relative_path () +{ + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=${func_dirname_result} + if test "x$func_relative_path_tlibdir" = x ; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test "x$func_stripname_result" != x ; then + func_relative_path_result=${func_relative_path_result}/${func_stripname_result} + fi + + # Normalisation. If bindir is libdir, return empty string, + # else relative path ending with a slash; either way, target + # file name can be directly appended. + if test ! -z "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result/" + func_relative_path_result=$func_stripname_result + fi +} + +# The name of this program: +func_dirname_and_basename "$progpath" +progname=$func_basename_result + +# Make sure we have an absolute path for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=$func_dirname_result + progdir=`cd "$progdir" && pwd` + progpath="$progdir/$progname" + ;; + *) + save_IFS="$IFS" + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS="$save_IFS" + test -x "$progdir/$progname" && break + done + IFS="$save_IFS" + test -n "$progdir" || progdir=`pwd` + progpath="$progdir/$progname" + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +Xsed="${SED}"' -e 1s/^X//' +sed_quote_subst='s/\([`"$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s,[].[^$\\*\/],\\&,g' + +# Sed substitution that converts a w32 file name or path +# which contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-`\' parameter expansions in output of double_quote_subst that were +# `\'-ed in input to the same. If an odd number of `\' preceded a '$' +# in input to double_quote_subst, that '$' was protected from expansion. +# Since each input `\' is now two `\'s, look for any number of runs of +# four `\'s followed by two `\'s and then a '$'. `\' that '$'. +bs='\\' +bs2='\\\\' +bs4='\\\\\\\\' +dollar='\$' +sed_double_backslash="\ + s/$bs4/&\\ +/g + s/^$bs2$dollar/$bs&/ + s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g + s/\n//g" + +# Standard options: +opt_dry_run=false +opt_help=false +opt_quiet=false +opt_verbose=false +opt_warning=: + +# func_echo arg... +# Echo program name prefixed message, along with the current mode +# name if it has been set yet. +func_echo () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }$*" +} + +# func_verbose arg... +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $opt_verbose && func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +# func_error arg... +# Echo program name prefixed message to standard error. +func_error () +{ + $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2 +} + +# func_warning arg... +# Echo program name prefixed warning message to standard error. +func_warning () +{ + $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2 + + # bash bug again: + : +} + +# func_fatal_error arg... +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + +# func_fatal_help arg... +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + func_error ${1+"$@"} + func_fatal_error "$help" +} +help="Try \`$progname --help' for more information." ## default + + +# func_grep expression filename +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_mkdir_p directory-path +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + my_directory_path="$1" + my_dir_list= + + if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then + + # Protect directory names starting with `-' + case $my_directory_path in + -*) my_directory_path="./$my_directory_path" ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$my_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + my_dir_list="$my_directory_path:$my_dir_list" + + # If the last portion added has no slash in it, the list is done + case $my_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"` + done + my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'` + + save_mkdir_p_IFS="$IFS"; IFS=':' + for my_dir in $my_dir_list; do + IFS="$save_mkdir_p_IFS" + # mkdir can fail with a `File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$my_dir" 2>/dev/null || : + done + IFS="$save_mkdir_p_IFS" + + # Bail out if we (or some other process) failed to create a directory. + test -d "$my_directory_path" || \ + func_fatal_error "Failed to create \`$1'" + fi +} + + +# func_mktempdir [string] +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, STRING is the basename for that directory. +func_mktempdir () +{ + my_template="${TMPDIR-/tmp}/${1-$progname}" + + if test "$opt_dry_run" = ":"; then + # Return a directory name, but don't create it in dry-run mode + my_tmpdir="${my_template}-$$" + else + + # If mktemp works, use that first and foremost + my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null` + + if test ! -d "$my_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + my_tmpdir="${my_template}-${RANDOM-0}$$" + + save_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$my_tmpdir" + umask $save_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$my_tmpdir" || \ + func_fatal_error "cannot create temporary directory \`$my_tmpdir'" + fi + + $ECHO "$my_tmpdir" +} + + +# func_quote_for_eval arg +# Aesthetically quote ARG to be evaled later. +# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT +# is double-quoted, suitable for a subsequent eval, whereas +# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters +# which are still active within double quotes backslashified. +func_quote_for_eval () +{ + case $1 in + *[\\\`\"\$]*) + func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;; + *) + func_quote_for_eval_unquoted_result="$1" ;; + esac + + case $func_quote_for_eval_unquoted_result in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and and variable + # expansion for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\"" + ;; + *) + func_quote_for_eval_result="$func_quote_for_eval_unquoted_result" + esac +} + + +# func_quote_for_expand arg +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + case $1 in + *[\\\`\"]*) + my_arg=`$ECHO "$1" | $SED \ + -e "$double_quote_subst" -e "$sed_double_backslash"` ;; + *) + my_arg="$1" ;; + esac + + case $my_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + my_arg="\"$my_arg\"" + ;; + esac + + func_quote_for_expand_result="$my_arg" +} + + +# func_show_eval cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$my_cmd" + my_status=$? + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + + +# func_show_eval_locale cmd [fail_exp] +# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + my_cmd="$1" + my_fail_exp="${2-:}" + + ${opt_silent-false} || { + func_quote_for_expand "$my_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + if ${opt_dry_run-false}; then :; else + eval "$lt_user_locale + $my_cmd" + my_status=$? + eval "$lt_safe_locale" + if test "$my_status" -eq 0; then :; else + eval "(exit $my_status); $my_fail_exp" + fi + fi +} + +# func_tr_sh +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_version +# Echo version message to standard output and exit. +func_version () +{ + $opt_debug + + $SED -n '/(C)/!b go + :more + /\./!{ + N + s/\n# / / + b more + } + :go + /^# '$PROGRAM' (GNU /,/# warranty; / { + s/^# // + s/^# *$// + s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/ + p + }' < "$progpath" + exit $? +} + +# func_usage +# Echo short help message to standard output and exit. +func_usage () +{ + $opt_debug + + $SED -n '/^# Usage:/,/^# *.*--help/ { + s/^# // + s/^# *$// + s/\$progname/'$progname'/ + p + }' < "$progpath" + echo + $ECHO "run \`$progname --help | more' for full usage" + exit $? +} + +# func_help [NOEXIT] +# Echo long help message to standard output and exit, +# unless 'noexit' is passed as argument. +func_help () +{ + $opt_debug + + $SED -n '/^# Usage:/,/# Report bugs to/ { + :print + s/^# // + s/^# *$// + s*\$progname*'$progname'* + s*\$host*'"$host"'* + s*\$SHELL*'"$SHELL"'* + s*\$LTCC*'"$LTCC"'* + s*\$LTCFLAGS*'"$LTCFLAGS"'* + s*\$LD*'"$LD"'* + s/\$with_gnu_ld/'"$with_gnu_ld"'/ + s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/ + s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/ + p + d + } + /^# .* home page:/b print + /^# General help using/b print + ' < "$progpath" + ret=$? + if test -z "$1"; then + exit $ret + fi +} + +# func_missing_arg argname +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $opt_debug + + func_error "missing argument for $1." + exit_cmd=exit +} + + +# func_split_short_opt shortopt +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +func_split_short_opt () +{ + my_sed_short_opt='1s/^\(..\).*$/\1/;q' + my_sed_short_rest='1s/^..\(.*\)$/\1/;q' + + func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"` + func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"` +} # func_split_short_opt may be replaced by extended shell implementation + + +# func_split_long_opt longopt +# Set func_split_long_opt_name and func_split_long_opt_arg shell +# variables after splitting LONGOPT at the `=' sign. +func_split_long_opt () +{ + my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q' + my_sed_long_arg='1s/^--[^=]*=//' + + func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"` + func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"` +} # func_split_long_opt may be replaced by extended shell implementation + +exit_cmd=: + + + + + +magic="%%%MAGIC variable%%%" +magic_exe="%%%MAGIC EXE variable%%%" + +# Global variables. +nonopt= +preserve_args= +lo2o="s/\\.lo\$/.${objext}/" +o2lo="s/\\.${objext}\$/.lo/" +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "${1}=\$${1}\${2}" +} # func_append may be replaced by extended shell implementation + +# func_append_quoted var value +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +func_append_quoted () +{ + func_quote_for_eval "${2}" + eval "${1}=\$${1}\\ \$func_quote_for_eval_result" +} # func_append_quoted may be replaced by extended shell implementation + + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "${@}"` +} # func_arith may be replaced by extended shell implementation + + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len` +} # func_len may be replaced by extended shell implementation + + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"` +} # func_lo2o may be replaced by extended shell implementation + + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'` +} # func_xform may be replaced by extended shell implementation + + +# func_fatal_configuration arg... +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func_error ${1+"$@"} + func_error "See the $PACKAGE documentation for more information." + func_fatal_error "Fatal configuration error." +} + + +# func_config +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + +# func_features +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test "$build_libtool_libs" = yes; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test "$build_old_libs" = yes; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + +# func_enable_tag tagname +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname="$1" + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf="/$re_begincf/,/$re_endcf/p" + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + +# func_check_version_match +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# Shorthand for --mode=foo, only valid as the first argument +case $1 in +clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; +compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; +execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; +finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; +install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; +link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; +uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; +esac + + + +# Option defaults: +opt_debug=: +opt_dry_run=false +opt_config=false +opt_preserve_dup_deps=false +opt_features=false +opt_finish=false +opt_help=false +opt_help_all=false +opt_silent=: +opt_warning=: +opt_verbose=: +opt_silent=false +opt_verbose=false + + +# Parse options once, thoroughly. This comes as soon as possible in the +# script to make things like `--version' happen as quickly as we can. +{ + # this just eases exit handling + while test $# -gt 0; do + opt="$1" + shift + case $opt in + --debug|-x) opt_debug='set -x' + func_echo "enabling shell trace mode" + $opt_debug + ;; + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + --config) + opt_config=: +func_config + ;; + --dlopen|-dlopen) + optarg="$1" + opt_dlopen="${opt_dlopen+$opt_dlopen +}$optarg" + shift + ;; + --preserve-dup-deps) + opt_preserve_dup_deps=: + ;; + --features) + opt_features=: +func_features + ;; + --finish) + opt_finish=: +set dummy --mode finish ${1+"$@"}; shift + ;; + --help) + opt_help=: + ;; + --help-all) + opt_help_all=: +opt_help=': help-all' + ;; + --mode) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_mode="$optarg" +case $optarg in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $opt" + exit_cmd=exit + break + ;; +esac + shift + ;; + --no-silent|--no-quiet) + opt_silent=false +func_append preserve_args " $opt" + ;; + --no-warning|--no-warn) + opt_warning=false +func_append preserve_args " $opt" + ;; + --no-verbose) + opt_verbose=false +func_append preserve_args " $opt" + ;; + --silent|--quiet) + opt_silent=: +func_append preserve_args " $opt" + opt_verbose=false + ;; + --verbose|-v) + opt_verbose=: +func_append preserve_args " $opt" +opt_silent=false + ;; + --tag) + test $# = 0 && func_missing_arg $opt && break + optarg="$1" + opt_tag="$optarg" +func_append preserve_args " $opt $optarg" +func_enable_tag "$optarg" + shift + ;; + + -\?|-h) func_usage ;; + --help) func_help ;; + --version) func_version ;; + + # Separate optargs to long options: + --*=*) + func_split_long_opt "$opt" + set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-n*|-v*) + func_split_short_opt "$opt" + set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) break ;; + -*) func_fatal_help "unrecognized option \`$opt'" ;; + *) set dummy "$opt" ${1+"$@"}; shift; break ;; + esac + done + + # Validate options: + + # save first non-option argument + if test "$#" -gt 0; then + nonopt="$opt" + shift + fi + + # preserve --debug + test "$opt_debug" = : || func_append preserve_args " --debug" + + case $host in + *cygwin* | *mingw* | *pw32* | *cegcc*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then + func_fatal_configuration "not configured to build any kind of library" + fi + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test "$opt_mode" != execute; then + func_error "unrecognized option \`-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help="$help" + help="Try \`$progname --help --mode=$opt_mode' for more information." + } + + + # Bail if the options were screwed + $exit_cmd $EXIT_FAILURE +} + + + + +## ----------- ## +## Main. ## +## ----------- ## + +# func_lalib_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null \ + | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool `.la' library or `.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if `file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case "$lalib_p_line" in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test "$lalib_p" = yes +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + func_lalib_p "$1" +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper" +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $opt_debug + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$save_ifs + eval cmd=\"$cmd\" + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case "$lt_sysroot:$1" in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result="=$func_stripname_result" + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $opt_debug + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with \`--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=${1} + if test "$build_libtool_libs" = yes; then + write_lobj=\'${2}\' + else + write_lobj=none + fi + + if test "$build_old_libs" = yes; then + write_oldobj=\'${3}\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$lt_sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $opt_debug + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result="" + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result" ; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result" + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $opt_debug + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $opt_debug + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $opt_debug + if test -z "$2" && test -n "$1" ; then + func_error "Could not determine host file name corresponding to" + func_error " \`$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result="$1" + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $opt_debug + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " \`$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result="$3" + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $opt_debug + case $4 in + $1 ) func_to_host_path_result="$3$func_to_host_path_result" + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via `$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $opt_debug + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $opt_debug + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result="$1" +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result="$func_convert_core_msys_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result="$func_convert_core_file_wine_to_w32_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $opt_debug + func_to_host_file_result="$1" + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result="$func_cygpath_result" + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via `$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $opt_debug + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd="func_convert_path_${func_stripname_result}" + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $opt_debug + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result="$1" +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_msys_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result="$func_convert_core_path_wine_to_w32_result" + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $opt_debug + func_to_host_path_result="$1" + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result="$func_cygpath_result" + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_mode_compile arg... +func_mode_compile () +{ + $opt_debug + # Get the compilation command and the source file. + base_compile= + srcfile="$nonopt" # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg="$arg" + arg_mode=normal + ;; + + target ) + libobj="$arg" + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify \`-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs="$IFS"; IFS=',' + for arg in $args; do + IFS="$save_ifs" + func_append_quoted lastarg "$arg" + done + IFS="$save_ifs" + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg="$srcfile" + srcfile="$arg" + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with \`-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj="$func_basename_result" + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from \`$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name \`$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname="$func_basename_result" + xdir="$func_dirname_result" + lobj=${xdir}$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test "$build_old_libs" = yes; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test "$compiler_c_o" = no; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext} + lockfile="$output_obj.lock" + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test "$need_locks" = yes; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test "$need_locks" = warn; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test "$build_libtool_libs" = yes; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test "$pic_mode" != no; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test "$suppress_opt" = yes; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test "$build_old_libs" = yes; then + if test "$pic_mode" != yes; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test "$compiler_c_o" = yes; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test "$need_locks" = warn && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support \`-c' and \`-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test "$need_locks" != no; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test "$opt_mode" = compile && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a \`.o' file suitable for static linking + -static only build a \`.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a \`standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix \`.c' with the +library object suffix, \`.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to \`-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the \`--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the \`install' or \`cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE Use a list of object files found in FILE to specify objects + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with \`-') are ignored. + +Every other argument is treated as a filename. Files ending in \`.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in \`.la', then a libtool library is created, +only library objects (\`.lo' files) may be specified, and \`-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created +using \`ar' and \`ranlib', or on Windows using \`lib'. + +If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically \`/bin/rm'). RM-OPTIONS are options (such as \`-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode \`$opt_mode'" + ;; + esac + + echo + $ECHO "Try \`$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test "$opt_help" = :; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | sed -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + sed '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $opt_debug + # The first argument is the command name. + cmd="$nonopt" + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "\`$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "\`$file' was not linked with \`-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir="$func_dirname_result" + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir="$func_dirname_result" + ;; + + *) + func_warning "\`-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir="$absdir" + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic="$magic" + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file="$progdir/$program" + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file="$progdir/$program" + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if test "X$opt_dry_run" = Xfalse; then + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd="\$cmd$args" + else + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = execute && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $opt_debug + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "\`$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument \`$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and \`=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_silent && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the \`-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the \`$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the \`$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the \`$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to \`/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test "$opt_mode" = finish && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $opt_debug + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac; then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=no + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=yes ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test "x$prev" = x-m && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the \`$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=yes + if test "$isdir" = yes; then + destdir="$dest" + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir="$func_dirname_result" + destname="$func_basename_result" + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "\`$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "\`$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "\`$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir="$func_dirname_result" + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking \`$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname="$1" + shift + + srcname="$realname" + test -n "$relink_command" && srcname="$realname"T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme="$stripme" + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme="" + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib="$destdir/$realname" + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name="$func_basename_result" + instname="$dir/$name"i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest="$destfile" + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to \`$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test "$build_old_libs" = yes; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile="$destdir/$destname" + else + func_basename "$file" + destfile="$func_basename_result" + destfile="$destdir/$destfile" + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext="" + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=".exe" + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script \`$wrapper'" + + finalize=yes + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "\`$lib' has not been installed in \`$libdir'" + finalize=no + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test "$fast_install" = no && test -n "$relink_command"; then + $opt_dry_run || { + if test "$finalize" = yes; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file="$func_basename_result" + outputname="$tmpdir/$file" + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_silent || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink \`$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file="$outputname" + else + func_warning "cannot relink \`$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name="$func_basename_result" + + # Set up the ranlib parameters. + oldlib="$destdir/$name" + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run \`$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test "$opt_mode" = install && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $opt_debug + my_outputname="$1" + my_originator="$2" + my_pic_p="${3-no}" + my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms="${my_outputname}S.c" + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist="$output_objdir/${my_outputname}.nm" + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +/* External symbol declarations for the compiler. */\ +" + + if test "$dlself" = yes; then + func_verbose "generating symbol list for \`$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from \`$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols="$output_objdir/$outputname.exp" + $opt_dry_run || { + $RM $export_symbols + eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from \`$dlprefile'" + func_basename "$dlprefile" + name="$func_basename_result" + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename="" + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname" ; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename="$func_basename_result" + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename" ; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[]; +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{\ + { \"$my_originator\", (void *) 0 }," + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + if test "X$my_pic_p" != Xno; then + pic_flag_for_symtable=" $pic_flag" + fi + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"' + + # Transform the symbol file into the correct name. + symfileobj="$output_objdir/${my_outputname}S.$objext" + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for \`$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $opt_debug + win32_libid_type="unknown" + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s,.*,import, + p + q + } + }'` + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $opt_debug + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $opt_debug + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive which possess that section. Heuristic: eliminate + # all those which have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $opt_debug + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $opt_debug + if func_cygming_gnu_implib_p "$1" ; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1" ; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result="" + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $opt_debug + f_ex_an_ar_dir="$1"; shift + f_ex_an_ar_oldlib="$1" + if test "$lock_old_archive_extraction" = yes; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test "$lock_old_archive_extraction" = yes; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $opt_debug + my_gentop="$1"; shift + my_oldlibs=${1+"$@"} + my_oldobjs="" + my_xlib="" + my_xabs="" + my_xdir="" + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib="$func_basename_result" + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir="$my_gentop/$my_xlib_u" + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + darwin_base_archive=`basename "$darwin_archive"` + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches ; do + func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}" + $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}" + cd "unfat-$$/${darwin_base_archive}-${darwin_arch}" + func_extract_an_archive "`pwd`" "${darwin_base_archive}" + cd "$darwin_curdir" + $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result="$my_oldobjs" +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory in which it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ which is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options which match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test "$fast_install" = yes; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + $ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +/* declarations of non-ANSI functions */ +#if defined(__MINGW32__) +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined(__CYGWIN__) +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined (other platforms) ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined(_MSC_VER) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +# ifndef _INTPTR_T_DEFINED +# define _INTPTR_T_DEFINED +# define intptr_t int +# endif +#elif defined(__MINGW32__) +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined(__CYGWIN__) +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined (other platforms) ... */ +#endif + +#if defined(PATH_MAX) +# define LT_PATHMAX PATH_MAX +#elif defined(MAXPATHLEN) +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \ + defined (__OS2__) +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free ((void *) stale); stale = 0; } \ +} while (0) + +#if defined(LT_DEBUGWRAPPER) +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + int tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined (HAVE_DOS_BASED_FILE_SYSTEM) + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = q - p; + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (strcmp (str, pat) == 0) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + int len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + int orig_value_len = strlen (orig_value); + int add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + int len = strlen (new_value); + while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[len-1] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $opt_debug + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $opt_debug + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # which system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll which has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=no + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module="${wl}-single_module" + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test "$build_libtool_libs" != yes && \ + func_fatal_configuration "can not build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg="$1" + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir="$arg" + prev= + continue + ;; + dlfiles|dlprefiles) + if test "$preload" = no; then + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=yes + fi + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test "$dlself" = no; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test "$prev" = dlprefiles; then + dlself=yes + elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test "$prev" = dlfiles; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols="$arg" + test -f "$arg" \ + || func_fatal_error "symbol file \`$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex="$arg" + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir="$arg" + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file \`$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + precious_regex) + precious_files_regex="$arg" + prev= + continue + ;; + release) + release="-$arg" + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test "$prev" = rpath; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds="$arg" + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg="$arg" + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "\`-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test "X$arg" = "X-export-symbols"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of \`$dir'" + dir="$absdir" + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test "X$arg" = "X-lc" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + test "X$arg" = "X-lc" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test "X$arg" = "X-lc" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test "X$arg" = "X-lc" && continue + ;; + esac + elif test "X$arg" = "X-lc_r"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module="${wl}-multi_module" + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "\`-no-install' is ignored for $host" + func_warning "assuming \`-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs="$IFS"; IFS=',' + for flag in $args; do + IFS="$save_ifs" + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS="$save_ifs" + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-flto*|-fwhopr*|-fuse-linker-plugin) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test "$pic_object" = none && + test "$non_pic_object" = none; then + func_fatal_error "cannot find name of object for \`$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + if test "$pic_object" != none; then + # Prepend the subdirectory the object is found in. + pic_object="$xdir$pic_object" + + if test "$prev" = dlfiles; then + if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test "$prev" = dlprefiles; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg="$pic_object" + fi + + # Non-PIC object. + if test "$non_pic_object" != none; then + # Prepend the subdirectory the object is found in. + non_pic_object="$xdir$non_pic_object" + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test "$pic_object" = none ; then + arg="$non_pic_object" + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object="$pic_object" + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir="$func_dirname_result" + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "\`$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test "$prev" = dlfiles; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test "$prev" = dlprefiles; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg="$func_quote_for_eval_result" + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the \`$prevarg' option requires an argument" + + if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname="$func_basename_result" + libobjs_save="$libobjs" + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + func_dirname "$output" "/" "" + output_objdir="$func_dirname_result$objdir" + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps ; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test "$linkmode" = lib; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=no + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test "$linkmode,$pass" = "lib,link"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs="$tmp_deplibs" + fi + + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan"; then + libs="$deplibs" + deplibs= + fi + if test "$linkmode" = prog; then + case $pass in + dlopen) libs="$dlfiles" ;; + dlpreopen) libs="$dlprefiles" ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test "$linkmode,$pass" = "lib,dlpreopen"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs="$dlprefiles" + fi + if test "$pass" = dlopen; then + # Collect dlpreopened libraries + save_deplibs="$deplibs" + deplibs= + fi + + for deplib in $libs; do + lib= + found=no + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test "$linkmode" != lib && test "$linkmode" != prog; then + func_warning "\`-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test "$linkmode" = lib; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib="$searchdir/lib${name}${search_ext}" + if test -f "$lib"; then + if test "$search_ext" = ".la"; then + found=yes + else + found=no + fi + break 2 + fi + done + done + if test "$found" != yes; then + # deplib doesn't seem to be a libtool library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + else # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll="$l" + done + if test "X$ll" = "X$old_library" ; then # only static version available + found=no + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + lib=$ladir/$old_library + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + fi + ;; # -l + *.ltframework) + if test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test "$linkmode" = lib ; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test "$pass" = conv && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + if test "$pass" = scan; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "\`-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test "$pass" = link; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=no + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=yes + fi + ;; + pass_all) + valid_a_lib=yes + ;; + esac + if test "$valid_a_lib" != yes; then + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + else + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + fi + ;; + esac + continue + ;; + prog) + if test "$pass" != link; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test "$pass" = conv; then + deplibs="$deplib $deplibs" + elif test "$linkmode" = prog; then + if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=yes + continue + ;; + esac # case $deplib + + if test "$found" = yes || test -f "$lib"; then : + else + func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'" + fi + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "\`$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir="$func_dirname_result" + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test "$linkmode,$pass" = "lib,link" || + test "$linkmode,$pass" = "prog,scan" || + { test "$linkmode" != prog && test "$linkmode" != lib; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test "$pass" = conv; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test "$linkmode" != prog && test "$linkmode" != lib; then + func_fatal_error "\`$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test "$prefer_static_libs" = yes || + test "$prefer_static_libs,$installed" = "built,no"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib="$l" + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for \`$lib'" + fi + + # This library was specified with -dlopen. + if test "$pass" = dlopen; then + if test -z "$libdir"; then + func_fatal_error "cannot -dlopen a convenience library: \`$lib'" + fi + if test -z "$dlname" || + test "$dlopen_support" != yes || + test "$build_libtool_libs" = no; then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of \`$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir="$ladir" + fi + ;; + esac + func_basename "$lib" + laname="$func_basename_result" + + # Find the relevant object directory and library name. + if test "X$installed" = Xyes; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library \`$lib' was moved." + dir="$ladir" + absdir="$abs_ladir" + libdir="$abs_ladir" + else + dir="$lt_sysroot$libdir" + absdir="$lt_sysroot$libdir" + fi + test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir="$ladir" + absdir="$abs_ladir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir="$ladir/$objdir" + absdir="$abs_ladir/$objdir" + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test "$pass" = dlpreopen; then + if test -z "$libdir" && test "$linkmode" = prog; then + func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'" + fi + case "$host" in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test "$linkmode" = lib; then + deplibs="$dir/$old_library $deplibs" + elif test "$linkmode,$pass" = "prog,link"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test "$linkmode" = prog && test "$pass" != link; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=no + if test "$link_all_deplibs" != no || test -z "$library_names" || + test "$build_libtool_libs" = no; then + linkalldeplibs=yes + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if test "$linkalldeplibs" = yes; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test "$linkmode,$pass" = "prog,link"; then + if test -n "$library_names" && + { { test "$prefer_static_libs" = no || + test "$prefer_static_libs,$installed" = "built,yes"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then + # Make sure the rpath contains only unique directories. + case "$temp_rpath:" in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if test "$alldeplibs" = yes && + { test "$deplibs_check_method" = pass_all || + { test "$build_libtool_libs" = yes && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test "$use_static_libs" = built && test "$installed" = yes; then + use_static_libs=no + fi + if test -n "$library_names" && + { test "$use_static_libs" = no || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test "$installed" = no; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule="" + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule="$dlpremoduletest" + break + fi + done + if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then + echo + if test "$linkmode" = prog; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test "$linkmode" = lib && + test "$hardcode_into_libs" = yes; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname="$1" + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname="$dlname" + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc*) + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + esac + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot="$soname" + func_basename "$soroot" + soname="$func_basename_result" + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from \`$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for \`$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test "$linkmode" = prog || test "$opt_mode" != relink; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test "$hardcode_direct" = no; then + add="$dir/$linklib" + case $host in + *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;; + *-*-sysv4*uw2*) add_dir="-L$dir" ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir="-L$dir" ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we can not + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null ; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library" ; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add="$dir/$old_library" + fi + elif test -n "$old_library"; then + add="$dir/$old_library" + fi + fi + esac + elif test "$hardcode_minus_L" = no; then + case $host in + *-*-sunos*) add_shlibpath="$dir" ;; + esac + add_dir="-L$dir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = no; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + relink) + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$dir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$absdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + add_shlibpath="$dir" + add="-l$name" + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test "$lib_linked" != yes; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test "$linkmode" = prog; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test "$hardcode_direct" != yes && + test "$hardcode_minus_L" != yes && + test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test "$linkmode" = prog || test "$opt_mode" = relink; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test "$hardcode_direct" = yes && + test "$hardcode_direct_absolute" = no; then + add="$libdir/$linklib" + elif test "$hardcode_minus_L" = yes; then + add_dir="-L$libdir" + add="-l$name" + elif test "$hardcode_shlibpath_var" = yes; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add="-l$name" + elif test "$hardcode_automatic" = yes; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib" ; then + add="$inst_prefix_dir$libdir/$linklib" + else + add="$libdir/$linklib" + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir="-L$libdir" + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add="-l$name" + fi + + if test "$linkmode" = prog; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test "$linkmode" = prog; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test "$hardcode_direct" != unsupported; then + test -n "$old_library" && linklib="$old_library" + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test "$build_libtool_libs" = yes; then + # Not a shared library + if test "$deplibs_check_method" != pass_all; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system can not link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test "$module" = yes; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test "$linkmode" = lib; then + if test -n "$dependency_libs" && + { test "$hardcode_into_libs" != yes || + test "$build_old_libs" = yes || + test "$link_static" = yes; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs="$temp_deplibs" + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps ; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test "$link_all_deplibs" != no; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path="$deplib" ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of \`$dir'" + absdir="$dir" + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names" ; then + for tmp in $deplibrary_names ; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl" ; then + depdepl="$absdir/$objdir/$depdepl" + darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}" + func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}" + path= + fi + fi + ;; + *) + path="-L$absdir/$objdir" + ;; + esac + else + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "\`$deplib' seems to be moved" + + path="-L$absdir" + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test "$pass" = link; then + if test "$linkmode" = "prog"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs="$newdependency_libs" + if test "$pass" = dlpreopen; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test "$pass" != dlopen; then + if test "$pass" != conv; then + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + fi + + if test "$linkmode,$pass" != "prog,link"; then + vars="deplibs" + else + vars="compile_deplibs finalize_deplibs" + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs ; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i="" + ;; + esac + if test -n "$i" ; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test "$linkmode" = prog; then + dlfiles="$newdlfiles" + fi + if test "$linkmode" = prog || test "$linkmode" = lib; then + dlprefiles="$newdlprefiles" + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "\`-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "\`-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs="$output" + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form `libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test "$module" = no && \ + func_fatal_help "libtool library \`$output' must begin with \`lib'" + + if test "$need_lib_prefix" != no; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test "$deplibs_check_method" != pass_all; then + func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test "$dlself" != no && \ + func_warning "\`-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test "$#" -gt 1 && \ + func_warning "ignoring multiple \`-rpath's for a libtool library" + + install_libdir="$1" + + oldlibs= + if test -z "$rpath"; then + if test "$build_libtool_libs" = yes; then + # Building a libtool convenience library. + # Some compilers have problems with a `.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "\`-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "\`-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs="$IFS"; IFS=':' + set dummy $vinfo 0 0 0 + shift + IFS="$save_ifs" + + test -n "$7" && \ + func_fatal_help "too many parameters to \`-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major="$1" + number_minor="$2" + number_revision="$3" + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # which has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_revision" + ;; + freebsd-aout|freebsd-elf|qnx|sunos) + current="$number_major" + revision="$number_minor" + age="0" + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age="$number_minor" + revision="$number_minor" + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type \`$version_type'" + ;; + esac + ;; + no) + current="$1" + revision="$2" + age="$3" + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT \`$current' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION \`$revision' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE \`$age' must be a nonnegative integer" + func_fatal_error "\`$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE \`$age' is greater than the current interface number \`$current'" + func_fatal_error "\`$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + + freebsd-aout) + major=".$current" + versuffix=".$current.$revision"; + ;; + + freebsd-elf) + major=".$current" + versuffix=".$current" + ;; + + irix | nonstopux) + if test "X$lt_irix_increment" = "Xno"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring="$verstring_prefix$major.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test "$loop" -ne 0; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring_prefix$major.$iface:$verstring" + done + + # Before this point, $major must not contain `.'. + major=.$major + versuffix="$major.$revision" + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix="$major.$age.$revision" + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=".$current.$age.$revision" + verstring="$current.$age.$revision" + + # Add in all the interfaces that we are compatible with. + loop=$age + while test "$loop" -ne 0; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring="$verstring:${iface}.0" + done + + # Make executables depend on our current version. + func_append verstring ":${current}.0" + ;; + + qnx) + major=".$current" + versuffix=".$current" + ;; + + sunos) + major=".$current" + versuffix=".$current.$revision" + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 filesystems. + func_arith $current - $age + major=$func_arith_result + versuffix="-$major" + ;; + + *) + func_fatal_configuration "unknown library version type \`$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring="0.0" + ;; + esac + if test "$need_version" = no; then + versuffix= + else + versuffix=".0.0" + fi + fi + + # Remove version info from name if versioning should be avoided + if test "$avoid_version" = yes && test "$need_version" = no; then + major= + versuffix= + verstring="" + fi + + # Check to see if the archive will have undefined symbols. + if test "$allow_undefined" = yes; then + if test "$allow_undefined_flag" = unsupported; then + func_warning "undefined symbols not allowed in $host shared libraries" + build_libtool_libs=no + build_old_libs=yes + fi + else + # Don't allow undefined symbols. + allow_undefined_flag="$no_undefined_flag" + fi + + fi + + func_generate_dlsyms "$libname" "$libname" "yes" + func_append libobjs " $symfileobj" + test "X$libobjs" = "X " && libobjs= + + if test "$opt_mode" != relink; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*) + if test "X$precious_files_regex" != "X"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles="$dlfiles" + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles="$dlprefiles" + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test "$build_libtool_libs" = yes; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test "$build_libtool_need_lc" = "yes"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release="" + versuffix="" + major="" + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib="$potent_lib" + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";; + *) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib="" + ;; + esac + fi + if test -n "$a_deplib" ; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib="$potent_lib" # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib="" + break 2 + fi + done + done + fi + if test -n "$a_deplib" ; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib" ; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs="" + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then + for i in $predeps $postdeps ; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test "X$deplibs_check_method" = "Xnone"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test "$droppeddeps" = yes; then + if test "$module" = yes; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using \`nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** \`nm' from GNU binutils and a full rebuild may help." + fi + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test "$allow_undefined" = no; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test "$build_old_libs" = no; then + oldlibs="$output_objdir/$libname.$libext" + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs="$new_libs" + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test "$build_libtool_libs" = yes; then + # Remove ${wl} instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test "$hardcode_into_libs" = yes; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath="$finalize_rpath" + test "$opt_mode" != relink && rpath="$compile_rpath$rpath" + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath="$finalize_shlibpath" + test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath" + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname="$1" + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname="$realname" + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib="$output_objdir/$realname" + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols="$output_objdir/$libname.uexp" + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + if test "x`$SED 1q $export_symbols`" != xEXPORTS; then + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols="$export_symbols" + export_symbols= + always_export_symbols=yes + fi + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs="$IFS"; IFS='~' + for cmd1 in $cmds; do + IFS="$save_ifs" + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test "$try_normal_branch" = yes \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=${output_objdir}/${output_la}.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS="$save_ifs" + if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs="$tmp_deplibs" + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test "$compiler_needs_object" = yes && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test "X$skipped_export" != "X:" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then + output=${output_objdir}/${output_la}.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then + output=${output_objdir}/${output_la}.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test "$compiler_needs_object" = yes; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-${k}.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test "X$objlist" = X || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test "$k" -eq 1 ; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-${k}.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-${k}.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\${concat_cmds}$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + if ${skipped_export-false}; then + func_verbose "generating symbol list for \`$libname.la'" + export_symbols="$output_objdir/$libname.exp" + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + fi + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs="$IFS"; IFS='~' + for cmd in $concat_cmds; do + IFS="$save_ifs" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + if ${skipped_export-false}; then + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols="$export_symbols" + test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols" + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for \`$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + fi + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test "$module" = yes && test -n "$module_cmds" ; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs="$IFS"; IFS='~' + for cmd in $cmds; do + IFS="$save_ifs" + eval cmd=\"$cmd\" + $opt_silent || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS="$save_ifs" + + # Restore the uninstalled library and exit + if test "$opt_mode" = relink; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test "$module" = yes || test "$export_dynamic" = yes; then + # On all known operating systems, these are identical. + dlname="$soname" + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then + func_warning "\`-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "\`-l' and \`-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "\`-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "\`-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "\`-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object \`$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj="$output" + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # reload_cmds runs $LD directly, so let us get rid of + # -Wl from whole_archive_flag_spec and hope we can get by with + # turning comma into space.. + wl= + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + else + gentop="$output_objdir/${obj}x" + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test "$build_libtool_libs" != yes && libobjs="$non_pic_objects" + + # Create the old-style object. + reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test + + output="$obj" + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + if test "$build_libtool_libs" != yes; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + fi + + if test -n "$pic_flag" || test "$pic_mode" != default; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output="$libobj" + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "\`-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "\`-release' is ignored for programs" + + test "$preload" = yes \ + && test "$dlopen_support" = unknown \ + && test "$dlopen_self" = unknown \ + && test "$dlopen_self_static" = unknown && \ + func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test "$tagname" = CXX ; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " ${wl}-bind_at_load" + func_append finalize_command " ${wl}-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs="$new_libs" + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath="$rpath" + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs="$libdir" + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir="$hardcode_libdirs" + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath="$rpath" + + if test -n "$libobjs" && test "$build_old_libs" = yes; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" "no" + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=yes + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=no + ;; + *cygwin* | *mingw* ) + if test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + *) + if test "$need_relink" = no || test "$build_libtool_libs" != yes; then + wrappers_required=no + fi + ;; + esac + if test "$wrappers_required" = no; then + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command="$compile_command$compile_rpath" + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.${objext}"; then + func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"' + fi + + exit $exit_status + fi + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test "$no_install" = yes; then + # We don't need to create a wrapper script. + link_command="$compile_var$compile_command$compile_rpath" + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + if test "$hardcode_action" = relink; then + # Fast installation is not supported + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "\`$output' will be relinked during installation" + else + if test "$fast_install" != no; then + link_command="$finalize_var$compile_command$finalize_rpath" + if test "$fast_install" = yes; then + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + else + # fast_install is set to needless + relink_command= + fi + else + link_command="$compile_var$compile_command$compile_rpath" + relink_command="$finalize_var$finalize_command$finalize_rpath" + fi + fi + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource="$output_path/$objdir/lt-$output_name.c" + cwrapper="$output_path/$output_name.exe" + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host" ; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + if test "$build_libtool_libs" = convenience; then + oldobjs="$libobjs_save $symfileobj" + addlibs="$convenience" + build_libtool_libs=no + else + if test "$build_libtool_libs" = module; then + oldobjs="$libobjs_save" + build_libtool_libs=no + else + oldobjs="$old_deplibs $non_pic_objects" + if test "$preload" = yes && test -f "$symfileobj"; then + func_append oldobjs " $symfileobj" + fi + fi + addlibs="$old_convenience" + fi + + if test -n "$addlibs"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop="$output_objdir/${outputname}x" + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase="$func_basename_result" + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj" ; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test "X$oldobjs" = "X" ; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test "$build_old_libs" = yes && old_library="$libname.$libext" + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test "$hardcode_automatic" = yes ; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test "$installed" = yes; then + if test -z "$install_libdir"; then + break + fi + output="$output_objdir/$outputname"i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name="$func_basename_result" + func_resolve_sysroot "$deplib" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "\`$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs="$newdependency_libs" + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name="$func_basename_result" + eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "\`$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles="$newdlprefiles" + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles="$newdlfiles" + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles="$newdlprefiles" + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test "x$bindir" != x ; + then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that can not go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test "$installed" = no && test "$need_relink" = yes; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +{ test "$opt_mode" = link || test "$opt_mode" = relink; } && + func_mode_link ${1+"$@"} + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $opt_debug + RM="$nonopt" + files= + rmforce= + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic="$magic" + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=yes ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir="$func_dirname_result" + if test "X$dir" = X.; then + odir="$objdir" + else + odir="$dir/$objdir" + fi + func_basename "$file" + name="$func_basename_result" + test "$opt_mode" = uninstall && odir="$dir" + + # Remember odir for removal later, being careful to avoid duplicates + if test "$opt_mode" = clean; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif test "$rmforce" = yes; then + continue + fi + + rmfiles="$file" + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case "$opt_mode" in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && + test "$pic_object" != none; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && + test "$non_pic_object" != none; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test "$opt_mode" = clean ; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.${objext}" + if test "$fast_install" = yes && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name" ; then + func_append rmfiles " $odir/lt-${noexename}.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the ${objdir}s in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } && + func_mode_uninstall ${1+"$@"} + +test -z "$opt_mode" && { + help="$generic_help" + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode \`$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# in which we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: +# vi:sw=2 + diff --git a/shadowsocksr-libev/src/auto/missing b/shadowsocksr-libev/src/auto/missing new file mode 100755 index 00000000000..db98974ff5d --- /dev/null +++ b/shadowsocksr-libev/src/auto/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2013-10-28.13; # UTC + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=http://www.perl.org/ +flex_URL=http://flex.sourceforge.net/ +gnu_software_URL=http://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/shadowsocksr-libev/src/autogen.sh b/shadowsocksr-libev/src/autogen.sh new file mode 100755 index 00000000000..01db361f228 --- /dev/null +++ b/shadowsocksr-libev/src/autogen.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf --install --force diff --git a/shadowsocksr-libev/src/cmake/CheckDIRSymbolExists.cmake b/shadowsocksr-libev/src/cmake/CheckDIRSymbolExists.cmake new file mode 100644 index 00000000000..1fae8143763 --- /dev/null +++ b/shadowsocksr-libev/src/cmake/CheckDIRSymbolExists.cmake @@ -0,0 +1,75 @@ +# - Check if the DIR symbol exists like in AC_HEADER_DIRENT. +# CHECK_DIRSYMBOL_EXISTS(FILES VARIABLE) +# +# FILES - include files to check +# VARIABLE - variable to return result +# +# This module is a small but important variation on CheckSymbolExists.cmake. +# The symbol always searched for is DIR, and the test programme follows +# the AC_HEADER_DIRENT test programme rather than the CheckSymbolExists.cmake +# test programme which always fails since DIR tends to be typedef'd +# rather than #define'd. +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories +# CMAKE_REQUIRED_LIBRARIES = list of libraries to link + +MACRO(CHECK_DIRSYMBOL_EXISTS FILES VARIABLE) + IF(NOT DEFINED ${VARIABLE}) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT "/* */\n") + SET(MACRO_CHECK_DIRSYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS}) + IF(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_DIRSYMBOL_EXISTS_LIBS + "-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}") + ELSE(CMAKE_REQUIRED_LIBRARIES) + SET(CHECK_DIRSYMBOL_EXISTS_LIBS) + ENDIF(CMAKE_REQUIRED_LIBRARIES) + IF(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_DIRSYMBOL_EXISTS_INCLUDES + "-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}") + ELSE(CMAKE_REQUIRED_INCLUDES) + SET(CMAKE_DIRSYMBOL_EXISTS_INCLUDES) + ENDIF(CMAKE_REQUIRED_INCLUDES) + FOREACH(FILE ${FILES}) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}#include <${FILE}>\n") + ENDFOREACH(FILE) + SET(CMAKE_CONFIGURABLE_FILE_CONTENT + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\nint main()\n{if ((DIR *) 0) return 0;}\n") + + CONFIGURE_FILE("${CMAKE_ROOT}/Modules/CMakeConfigurableFile.in" + "${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckDIRSymbolExists.c" @ONLY) + + MESSAGE(STATUS "Looking for DIR in ${FILES}") + TRY_COMPILE(${VARIABLE} + ${CMAKE_BINARY_DIR} + ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckDIRSymbolExists.c + COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS} + CMAKE_FLAGS + -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_DIRSYMBOL_EXISTS_FLAGS} + "${CHECK_DIRSYMBOL_EXISTS_LIBS}" + "${CMAKE_DIRSYMBOL_EXISTS_INCLUDES}" + OUTPUT_VARIABLE OUTPUT) + IF(${VARIABLE}) + MESSAGE(STATUS "Looking for DIR in ${FILES} - found") + SET(${VARIABLE} 1 CACHE INTERNAL "Have symbol DIR") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeOutput.log + "Determining if the DIR symbol is defined as in AC_HEADER_DIRENT " + "passed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckDIRSymbolExists.c:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ELSE(${VARIABLE}) + MESSAGE(STATUS "Looking for DIR in ${FILES} - not found.") + SET(${VARIABLE} "" CACHE INTERNAL "Have symbol DIR") + FILE(APPEND ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeError.log + "Determining if the DIR symbol is defined as in AC_HEADER_DIRENT " + "failed with the following output:\n" + "${OUTPUT}\nFile ${CMAKE_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckDIRSymbolExists.c:\n" + "${CMAKE_CONFIGURABLE_FILE_CONTENT}\n") + ENDIF(${VARIABLE}) + ENDIF(NOT DEFINED ${VARIABLE}) +ENDMACRO(CHECK_DIRSYMBOL_EXISTS) diff --git a/shadowsocksr-libev/src/cmake/CheckPrototypeExists.cmake b/shadowsocksr-libev/src/cmake/CheckPrototypeExists.cmake new file mode 100644 index 00000000000..2baad882815 --- /dev/null +++ b/shadowsocksr-libev/src/cmake/CheckPrototypeExists.cmake @@ -0,0 +1,41 @@ +# - Check if the prototype for a function exists. +# CHECK_PROTOTYPE_EXISTS (FUNCTION HEADER VARIABLE) +# +# FUNCTION - the name of the function you are looking for +# HEADER - the header(s) where the prototype should be declared +# VARIABLE - variable to store the result +# +# The following variables may be set before calling this macro to +# modify the way the check is run: +# +# CMAKE_REQUIRED_FLAGS = string of compile command line flags +# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar) +# CMAKE_REQUIRED_INCLUDES = list of include directories + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +INCLUDE(CheckCSourceCompiles) + +MACRO (CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT) + SET(_INCLUDE_FILES) + FOREACH (it ${_HEADER}) + SET(_INCLUDE_FILES "${_INCLUDE_FILES}#include <${it}>\n") + ENDFOREACH (it) + + SET(_CHECK_PROTO_EXISTS_SOURCE_CODE " +${_INCLUDE_FILES} +int main() +{ +#ifndef ${_SYMBOL} + int i = sizeof(&${_SYMBOL}); +#endif + return 0; +} +") + + CHECK_C_SOURCE_COMPILES("${_CHECK_PROTO_EXISTS_SOURCE_CODE}" ${_RESULT}) +ENDMACRO (CHECK_PROTOTYPE_EXISTS _SYMBOL _HEADER _RESULT) diff --git a/shadowsocksr-libev/src/cmake/CheckSTDC.cmake b/shadowsocksr-libev/src/cmake/CheckSTDC.cmake new file mode 100644 index 00000000000..5605893af8e --- /dev/null +++ b/shadowsocksr-libev/src/cmake/CheckSTDC.cmake @@ -0,0 +1,37 @@ +message(STATUS "Checking whether system has ANSI C header files") +include(CheckPrototypeExists) +include(CheckIncludeFiles) + +check_include_files("dlfcn.h;stdint.h;stddef.h;inttypes.h;stdlib.h;strings.h;string.h;float.h" StandardHeadersExist) +if(StandardHeadersExist) + check_prototype_exists(memchr string.h memchrExists) + if(memchrExists) + check_prototype_exists(free stdlib.h freeExists) + if(freeExists) + message(STATUS "ANSI C header files - found") + set(STDC_HEADERS 1 CACHE INTERNAL "System has ANSI C header files") + set(HAVE_STRINGS_H 1) + set(HAVE_STRING_H 1) + set(HAVE_FLOAT_H 1) + set(HAVE_STDLIB_H 1) + set(HAVE_STDDEF_H 1) + set(HAVE_STDINT_H 1) + set(HAVE_INTTYPES_H 1) + set(HAVE_DLFCN_H 1) + endif(freeExists) + endif(memchrExists) +endif(StandardHeadersExist) + +if(NOT STDC_HEADERS) + message(STATUS "ANSI C header files - not found") + set(STDC_HEADERS 0 CACHE INTERNAL "System has ANSI C header files") +endif(NOT STDC_HEADERS) + +check_include_files(unistd.h HAVE_UNISTD_H) + +include(CheckDIRSymbolExists) +check_dirsymbol_exists("sys/stat.h;sys/types.h;dirent.h" HAVE_DIRENT_H) +if (HAVE_DIRENT_H) + set(HAVE_SYS_STAT_H 1) + set(HAVE_SYS_TYPES_H 1) +endif (HAVE_DIRENT_H) diff --git a/shadowsocksr-libev/src/cmake/FindPCRE.cmake b/shadowsocksr-libev/src/cmake/FindPCRE.cmake new file mode 100644 index 00000000000..0f5bbfef546 --- /dev/null +++ b/shadowsocksr-libev/src/cmake/FindPCRE.cmake @@ -0,0 +1,158 @@ +#.rst: +# FindPCRE +# -------- +# +# Find the native PCRE includes and library. +# +# IMPORTED Targets +# ^^^^^^^^^^^^^^^^ +# +# This module defines :prop_tgt:`IMPORTED` target ``PCRE::PCRE``, if +# PCRE has been found. +# +# Result Variables +# ^^^^^^^^^^^^^^^^ +# +# This module defines the following variables: +# +# :: +# +# PCRE_INCLUDE_DIRS - where to find pcre.h, etc. +# PCRE_LIBRARIES - List of libraries when using pcre. +# PCRE_FOUND - True if pcre found. +# +# :: +# +# PCRE_VERSION_STRING - The version of pcre found (x.y.z) +# PCRE_VERSION_MAJOR - The major version of zlib +# PCRE_VERSION_MINOR - The minor version of zlib +# PCRE_VERSION_PATCH - The patch version of zlib +# PCRE_VERSION_TWEAK - The tweak version of zlib +# +# Backward Compatibility +# ^^^^^^^^^^^^^^^^^^^^^^ +# +# The following variable are provided for backward compatibility +# +# :: +# +# PCRE_MAJOR_VERSION - The major version of zlib +# PCRE_MINOR_VERSION - The minor version of zlib +# PCRE_PATCH_VERSION - The patch version of zlib +# +# Hints +# ^^^^^ +# +# A user may set ``PCRE_ROOT`` to a zlib installation root to tell this +# module where to look. + +#============================================================================= +# Copyright 2001-2011 Kitware, Inc. +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + +set(_PCRE_SEARCHES) + +# Search PCRE_ROOT first if it is set. +if(PCRE_ROOT) + set(_PCRE_SEARCH_ROOT PATHS ${PCRE_ROOT} NO_DEFAULT_PATH) + list(APPEND _PCRE_SEARCHES _PCRE_SEARCH_ROOT) +endif() + +# Normal search. +set(_PCRE_SEARCH_NORMAL + PATHS "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Pcre;InstallPath]" + "$ENV{PROGRAMFILES}/pcre" + ) +list(APPEND _PCRE_SEARCHES _PCRE_SEARCH_NORMAL) + +set(PCRE_NAMES pcre pcredll) +set(PCRE_NAMES_DEBUG pcred) + +# Try each search configuration. +foreach(search ${_PCRE_SEARCHES}) + find_path(PCRE_INCLUDE_DIR NAMES pcre.h ${${search}} PATH_SUFFIXES include) +endforeach() + +# Allow PCRE_LIBRARY to be set manually, as the location of the pcre library +if(NOT PCRE_LIBRARY) + foreach(search ${_PCRE_SEARCHES}) + find_library(PCRE_LIBRARY_RELEASE NAMES ${PCRE_NAMES} ${${search}} PATH_SUFFIXES lib) + find_library(PCRE_LIBRARY_DEBUG NAMES ${PCRE_NAMES_DEBUG} ${${search}} PATH_SUFFIXES lib) + endforeach() + + include(SelectLibraryConfigurations) + select_library_configurations(PCRE) +endif() + +unset(PCRE_NAMES) +unset(PCRE_NAMES_DEBUG) + +mark_as_advanced(PCRE_LIBRARY PCRE_INCLUDE_DIR) + +if(PCRE_INCLUDE_DIR AND EXISTS "${PCRE_INCLUDE_DIR}/pcre.h") + file(STRINGS "${PCRE_INCLUDE_DIR}/pcre.h" PCRE_H REGEX "^#define PCRE_VERSION \"[^\"]*\"$") + + string(REGEX REPLACE "^.*PCRE_VERSION \"([0-9]+).*$" "\\1" PCRE_VERSION_MAJOR "${PCRE_H}") + string(REGEX REPLACE "^.*PCRE_VERSION \"[0-9]+\\.([0-9]+).*$" "\\1" PCRE_VERSION_MINOR "${PCRE_H}") + string(REGEX REPLACE "^.*PCRE_VERSION \"[0-9]+\\.[0-9]+\\.([0-9]+).*$" "\\1" PCRE_VERSION_PATCH "${PCRE_H}") + set(PCRE_VERSION_STRING "${PCRE_VERSION_MAJOR}.${PCRE_VERSION_MINOR}.${PCRE_VERSION_PATCH}") + + # only append a TWEAK version if it exists: + set(PCRE_VERSION_TWEAK "") + if( "${PCRE_H}" MATCHES "PCRE_VERSION \"[0-9]+\\.[0-9]+\\.[0-9]+\\.([0-9]+)") + set(PCRE_VERSION_TWEAK "${CMAKE_MATCH_1}") + set(PCRE_VERSION_STRING "${PCRE_VERSION_STRING}.${PCRE_VERSION_TWEAK}") + endif() + + set(PCRE_MAJOR_VERSION "${PCRE_VERSION_MAJOR}") + set(PCRE_MINOR_VERSION "${PCRE_VERSION_MINOR}") + set(PCRE_PATCH_VERSION "${PCRE_VERSION_PATCH}") +endif() + +# handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if +# all listed variables are TRUE +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(PCRE REQUIRED_VARS PCRE_LIBRARY PCRE_INCLUDE_DIR + VERSION_VAR PCRE_VERSION_STRING) + +if(PCRE_FOUND) + set(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR}) + + if(NOT PCRE_LIBRARIES) + set(PCRE_LIBRARIES ${PCRE_LIBRARY}) + endif() + + if(NOT TARGET PCRE::PCRE) + add_library(PCRE::PCRE UNKNOWN IMPORTED) + set_target_properties(PCRE::PCRE PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${PCRE_INCLUDE_DIRS}") + + if(PCRE_LIBRARY_RELEASE) + set_property(TARGET PCRE::PCRE APPEND PROPERTY + IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(PCRE::PCRE PROPERTIES + IMPORTED_LOCATION_RELEASE "${PCRE_LIBRARY_RELEASE}") + endif() + + if(PCRE_LIBRARY_DEBUG) + set_property(TARGET PCRE::PCRE APPEND PROPERTY + IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(PCRE::PCRE PROPERTIES + IMPORTED_LOCATION_DEBUG "${PCRE_LIBRARY_DEBUG}") + endif() + + if(NOT PCRE_LIBRARY_RELEASE AND NOT PCRE_LIBRARY_DEBUG) + set_property(TARGET PCRE::PCRE APPEND PROPERTY + IMPORTED_LOCATION "${PCRE_LIBRARY}") + endif() + endif() +endif() diff --git a/shadowsocksr-libev/src/cmake/configure.cmake b/shadowsocksr-libev/src/cmake/configure.cmake new file mode 100644 index 00000000000..eaf5349320d --- /dev/null +++ b/shadowsocksr-libev/src/cmake/configure.cmake @@ -0,0 +1,197 @@ +# Build args + +if (${with_crypto_library} STREQUAL "openssl") + find_package(ZLIB REQUIRED) + find_package(OpenSSL REQUIRED) + set(USE_CRYPTO_OPENSSL 1) + set(LIBCRYPTO + ${ZLIB_LIBRARIES} + ${OPENSSL_CRYPTO_LIBRARY}) + + include_directories(${ZLIB_INCLUDE_DIR}) + include_directories(${OPENSSL_INCLUDE_DIR}) + + list ( APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIR} ${OPENSSL_INCLUDE_DIR}) + +elseif(${with_crypto_library} STREQUAL "polarssl") + find_package(polarssl REQUIRED) + set(USE_CRYPTO_POLARSSL 1) +elseif(${with_crypto_library} STREQUAL "mbedtls") + find_package(mbedtls REQUIRED) + set(USE_CRYPTO_MBEDTLS 1) +endif() + +find_package(PCRE REQUIRED) +include_directories(${PCRE_INCLUDE_DIR}) +list ( APPEND CMAKE_REQUIRED_INCLUDES ${PCRE_INCLUDE_DIR}) + + +# Platform checks +include ( CheckFunctionExists ) +include ( CheckIncludeFiles ) +include ( CheckSymbolExists ) +include ( CheckCSourceCompiles ) +include ( CheckTypeSize ) +include ( CheckSTDC ) + +check_include_files ( "arpa/inet.h" HAVE_ARPA_INET_H ) +check_include_files ( "CommonCrypto/CommonCrypto.h" HAVE_COMMONCRYPTO_COMMONCRYPTO_H ) +check_include_files ( dlfcn.h HAVE_DLFCN_H ) +check_include_files ( fcntl.h HAVE_FCNTL_H ) +check_include_files ( inttypes.h HAVE_INTTYPES_H ) +check_include_files ( langinfo.h HAVE_LANGINFO_H ) +check_include_files ( limits.h HAVE_LIMITS_H ) +check_include_files ( "linux/if.h" HAVE_LINUX_IF_H ) +check_include_files ( "linux/netfilter_ipv4.h" HAVE_LINUX_NETFILTER_IPV4_H ) +check_include_files ( "linux/netfilter_ipv6/ip6_tables.h" HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H ) +check_include_files ( locale.h HAVE_LOCALE_H ) +check_include_files ( memory.h HAVE_MEMORY_H ) +check_include_files ( netdb.h HAVE_NETDB_H ) +check_include_files ( "net/if.h" HAVE_NET_IF_H ) +check_include_files ( "openssl/engine.h" HAVE_OPENSSL_ENGINE_H ) +check_include_files ( "openssl/err.h" HAVE_OPENSSL_ERR_H ) +check_include_files ( "openssl/evp.h" HAVE_OPENSSL_EVP_H ) +check_include_files ( "openssl/pem.h" HAVE_OPENSSL_PEM_H ) +check_include_files ( "openssl/rand.h" HAVE_OPENSSL_RAND_H ) +check_include_files ( "openssl/rsa.h" HAVE_OPENSSL_RSA_H ) +check_include_files ( "openssl/sha.h" HAVE_OPENSSL_SHA_H ) +check_include_files ( pcre.h HAVE_PCRE_H ) +check_include_files ( "pcre/pcre.h" HAVE_PCRE_PCRE_H ) +check_include_files ( poll.h HAVE_POLL_H ) +check_include_files ( port.h HAVE_PORT_H ) +check_include_files ( stdint.h HAVE_STDINT_H ) +check_include_files ( stdlib.h HAVE_STDLIB_H ) +check_include_files ( strings.h HAVE_STRINGS_H ) +check_include_files ( string.h HAVE_STRING_H ) +check_include_files ( "sys/epoll.h" HAVE_SYS_EPOLL_H ) +check_include_files ( "sys/eventfd.h" HAVE_SYS_EVENTFD_H ) +check_include_files ( "sys/event.h" HAVE_SYS_EVENT_H ) +check_include_files ( "sys/inotify.h" HAVE_SYS_INOTIFY_H ) +check_include_files ( "sys/ioctl.h" HAVE_SYS_IOCTL_H ) +check_include_files ( "sys/select.h" HAVE_SYS_SELECT_H ) +check_include_files ( "sys/signalfd.h" HAVE_SYS_SIGNALFD_H ) +check_include_files ( "sys/socket.h" HAVE_SYS_SOCKET_H ) +check_include_files ( "sys/stat.h" HAVE_SYS_STAT_H ) +check_include_files ( "sys/types.h" HAVE_SYS_TYPES_H ) +check_include_files ( "sys/wait.h" HAVE_SYS_WAIT_H ) +check_include_files ( unistd.h HAVE_UNISTD_H ) +check_include_files ( vfork.h HAVE_VFORK_H ) +check_include_files ( windows.h HAVE_WINDOWS_H ) +check_include_files ( winsock2.h HAVE_WINSOCK2_H ) +check_include_files ( ws2tcpip.h HAVE_WS2TCPIP_H ) +check_include_files ( zlib.h HAVE_ZLIB_H ) +check_include_files ( "sys/syscall.h" HAVE_SYS_CALL_H ) +check_include_files ( "minix/config.h" _MINIX) + +check_function_exists ( CCCryptorCreateWithMode HAVE_CCCRYPTORCREATEWITHMODE ) +check_function_exists ( clock_gettime HAVE_CLOCK_GETTIME ) +check_function_exists ( epoll_ctl HAVE_EPOLL_CTL ) +check_function_exists ( eventfd HAVE_EVENTFD ) +check_function_exists ( EVP_EncryptInit_ex HAVE_EVP_ENCRYPTINIT_EX ) +check_function_exists ( floor HAVE_FLOOR ) +check_function_exists ( fork HAVE_FORK ) +check_function_exists ( getpwnam_r HAVE_GETPWNAM_R ) +check_function_exists ( inet_ntop HAVE_INET_NTOP ) +check_function_exists ( inotify_init HAVE_INOTIFY_INIT ) +check_function_exists ( kqueue HAVE_KQUEUE ) +check_function_exists ( malloc HAVE_MALLOC ) +check_function_exists ( memset HAVE_MEMSET ) +check_function_exists ( nanosleep HAVE_NANOSLEEP ) +check_function_exists ( poll HAVE_POLL ) +check_function_exists ( port_create HAVE_PORT_CREATE ) +check_function_exists ( RAND_pseudo_bytes HAVE_RAND_PSEUDO_BYTES ) +check_function_exists ( select HAVE_SELECT ) +check_function_exists ( setresuid HAVE_SETRESUID ) +check_function_exists ( setreuid HAVE_SETREUID ) +check_function_exists ( setrlimit HAVE_SETRLIMIT ) +check_function_exists ( signalfd HAVE_SIGNALFD ) +check_function_exists ( socket HAVE_SOCKET ) +check_function_exists ( strerror HAVE_STRERROR ) +check_function_exists ( vfork HAVE_VFORK ) +check_function_exists ( inet_ntop HAVE_DECL_INET_NTOP ) + +check_symbol_exists ( PTHREAD_PRIO_INHERIT "pthread.h" HAVE_PTHREAD_PRIO_INHERIT ) +check_symbol_exists ( PTHREAD_CREATE_JOINABLE "pthread.h" HAVE_PTHREAD_CREATE_JOINABLE ) +check_symbol_exists ( EINPROGRESS "sys/errno.h" HAVE_EINPROGRESS ) +check_symbol_exists ( WSAEWOULDBLOCK "winerror.h" HAVE_WSAEWOULDBLOCK ) + +# winsock2.h and ws2_32 should provide these +if(HAVE_WINSOCK2_H) + set(HAVE_GETHOSTNAME ON) + set(HAVE_SELECT ON) + set(HAVE_SOCKET ON) + set(HAVE_INET_NTOA ON) + set(HAVE_RECV ON) + set(HAVE_SEND ON) + set(HAVE_RECVFROM ON) + set(HAVE_SENDTO ON) + set(HAVE_GETHOSTBYNAME ON) + set(HAVE_GETSERVBYNAME ON) +else(HAVE_WINSOCK2_H) + check_function_exists(gethostname HAVE_GETHOSTNAME) + check_function_exists(select HAVE_SELECT) + check_function_exists(socket HAVE_SOCKET) + check_function_exists(inet_ntoa HAVE_INET_NTOA) + check_function_exists(recv HAVE_RECV) + check_function_exists(send HAVE_SEND) + check_function_exists(recvfrom HAVE_RECVFROM) + check_function_exists(sendto HAVE_SENDTO) + check_function_exists(gethostbyname HAVE_GETHOSTBYNAME) + check_function_exists(getservbyname HAVE_GETSERVBYNAME) +endif(HAVE_WINSOCK2_H) + +find_library ( HAVE_LIBPCRE pcre ) +find_library ( HAVE_LIBRT rt ) +find_library ( HAVE_LIBSOCKET socket ) + +check_c_source_compiles( + " +#include +#include +int main(int argc, char** argv) {return 0;} +" + TIME_WITH_SYS_TIME +) + +check_c_source_compiles(" +__thread int tls; + +int main(void) { + return 0; +}" TLS) + +check_type_size(pid_t PID_T) + +# Tweaks +if (${HAVE_SYS_CALL_H}) + set(HAVE_CLOCK_SYSCALL ${HAVE_CLOCK_GETTIME}) +endif () +if (ZLIB_FOUND) + set (HAVE_ZLIB 1) +endif() + +if (NOT HAVE_DECL_INET_NTOP) + set(HAVE_DECL_INET_NTOP 0) +endif() +if (NOT HAVE_PTHREAD_CREATE_JOINABLE) + set (PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED) +endif() +if (${_MINIX}) + set (_POSIX_1_SOURCE 2) + set (_POSIX_SOURCE 1) +endif() + +if (${HAVE_EINPROGRESS}) + set (CONNECT_IN_PROGRESS EINPROGRESS) +elseif(${HAVE_WSAEWOULDBLOCK}) + set (CONNECT_IN_PROGRESS WSAEWOULDBLOCK) +endif() + +#SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") + + + +set (HAVE_IPv6 1) + +ADD_DEFINITIONS(-DHAVE_CONFIG_H) +ADD_DEFINITIONS(-D__USE_MINGW_ANSI_STDIO=1) diff --git a/shadowsocksr-libev/src/cmake/dist.cmake b/shadowsocksr-libev/src/cmake/dist.cmake new file mode 100644 index 00000000000..eddf6fad510 --- /dev/null +++ b/shadowsocksr-libev/src/cmake/dist.cmake @@ -0,0 +1,20 @@ +# LuaDist CMake utility library. +# Provides sane project defaults and macros common to LuaDist CMake builds. +# +# Copyright (C) 2007-2012 LuaDist. +# by David Manura, Peter Drahoš +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + + +# Tweaks and other defaults +# Setting CMAKE to use loose block and search for find modules in source directory +set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) +set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} ) + +# In MSVC, prevent warnings that can occur when using standard libraries. +if ( MSVC ) + add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) +endif () + diff --git a/shadowsocksr-libev/src/completions/bash/ss-local b/shadowsocksr-libev/src/completions/bash/ss-local new file mode 100644 index 00000000000..96fec2e2b11 --- /dev/null +++ b/shadowsocksr-libev/src/completions/bash/ss-local @@ -0,0 +1,33 @@ +_ss_local() +{ + local cur prev opts ciphers + opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --fast-open --mtu --help --mptcp -i --acl -l' + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in + -c|-f|--acl) + _filedir || COMPREPLY=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -s|-b) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + ;; + -m) + COMPREPLY=( $(compgen -W "$ciphers" -- ${cur}) ) + ;; + -a) + _allowed_users || COMPREPLY=( $(compgen -u -- ${cur}) ) + ;; + -p|-k|-t|-n|--mtu|-l) + ;; + -i) + _available_interfaces -a || true + ;; + *) + COMPREPLY+=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + esac + return 0 +} + +complete -F _ss_local ss-local diff --git a/shadowsocksr-libev/src/completions/bash/ss-manager b/shadowsocksr-libev/src/completions/bash/ss-manager new file mode 100644 index 00000000000..cfe941ed334 --- /dev/null +++ b/shadowsocksr-libev/src/completions/bash/ss-manager @@ -0,0 +1,41 @@ +_ss_manager() +{ + local cur prev opts ciphers + opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --mtu --help --mptcp -i -l --manager-address --executable' + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in + -c|-f|--executable) + _filedir || COMPREPLY=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -s|-b) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + ;; + -L) + compopt -o nospace + _known_hosts_real -c -- "${cur}" || OMPREPLY=( $(compgen -A hostname -S : -- ${cur}) ) + ;; + -m) + COMPREPLY=( $(compgen -W "$ciphers" -- ${cur}) ) + ;; + -a) + _allowed_users || COMPREPLY=( $(compgen -u -- ${cur}) ) + ;; + -p|-k|-t|-n|--mtu|-l) + ;; + -i) + _available_interfaces -a || true + ;; + --manager-address) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + _filedir || COMPREPLY+=( $(compgen -o plusdirs -f ${cur}) ) + ;; + *) + COMPREPLY+=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + esac + return 0 +} + +complete -F _ss_manager ss-manager diff --git a/shadowsocksr-libev/src/completions/bash/ss-redir b/shadowsocksr-libev/src/completions/bash/ss-redir new file mode 100644 index 00000000000..86f55001673 --- /dev/null +++ b/shadowsocksr-libev/src/completions/bash/ss-redir @@ -0,0 +1,30 @@ +_ss_redir() +{ + local cur prev opts ciphers + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' + opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --mtu --help --mptcp -l' + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in + -c|-f) + _filedir || COMPREPLY=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -s|-b) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + ;; + -m) + COMPREPLY=( $(compgen -W "$ciphers" -- ${cur}) ) + ;; + -a) + _allowed_users || COMPREPLY=( $(compgen -u -- ${cur}) ) + ;; + -p|-k|-t|-n|--mtu|-l) + ;; + *) + COMPREPLY+=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + esac + return 0 +} + +complete -F _ss_redir ss-redir diff --git a/shadowsocksr-libev/src/completions/bash/ss-server b/shadowsocksr-libev/src/completions/bash/ss-server new file mode 100644 index 00000000000..8d089c5a720 --- /dev/null +++ b/shadowsocksr-libev/src/completions/bash/ss-server @@ -0,0 +1,37 @@ +_ss_server() +{ + local cur prev opts ciphers + opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --fast-open --mtu --help --mptcp -i -6 -d --manager-address --firewall --acl' + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + case "$prev" in + -c|-f|--acl) + _filedir || COMPREPLY=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -s|-b) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + ;; + -m) + COMPREPLY=( $(compgen -W "$ciphers" -- ${cur}) ) + ;; + -a) + _allowed_users || COMPREPLY=( $(compgen -u -- ${cur}) ) + ;; + -p|-k|-t|-n|--mtu|-d) + ;; + --manager-address) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + _filedir || COMPREPLY+=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -i) + _available_interfaces -a || true + ;; + *) + COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + esac +} + +complete -F _ss_server ss-server diff --git a/shadowsocksr-libev/src/completions/bash/ss-tunnel b/shadowsocksr-libev/src/completions/bash/ss-tunnel new file mode 100644 index 00000000000..b3c16eb70e6 --- /dev/null +++ b/shadowsocksr-libev/src/completions/bash/ss-tunnel @@ -0,0 +1,38 @@ +_ss_tunnel() +{ + local cur prev opts ciphers + ciphers='rc4-md5 table rc4 aes-128-cfb aes-192-cfb aes-256-cfb aes-128-ctr aes-192-ctr aes-256-ctr bf-cfb camellia-128-cfb camellia-192-cfb camellia-256-cfb cast5-cfb des-cfb idea-cfb rc2-cfb seed-cfb salsa20 chacha20 and chacha20-ietf' + opts='-s -b -p -k -f -t -m -c -a -n -u -U -v -h -A --mtu --help --mptcp -i -l -L' + cur=${COMP_WORDS[COMP_CWORD]} + prev="${COMP_WORDS[COMP_CWORD-1]}" + compopt +o nospace + case "$prev" in + -c|-f) + _filedir || COMPREPLY=( $(compgen -o plusdirs -f ${cur}) ) + ;; + -s|-b) + _known_hosts_real -- "${cur}" || OMPREPLY=( $(compgen -A hostname -- ${cur}) ) + ;; + -L) + compopt -o nospace + _known_hosts_real -c -- "${cur}" || OMPREPLY=( $(compgen -A hostname -S : -- ${cur}) ) + ;; + -m) + COMPREPLY=( $(compgen -W "$ciphers" -- ${cur}) ) + ;; + -a) + _allowed_users || COMPREPLY=( $(compgen -u -- ${cur}) ) + ;; + -p|-k|-t|-n|--mtu|-l) + ;; + -i) + _available_interfaces -a || true + ;; + *) + COMPREPLY+=( $(compgen -W "${opts}" -- ${cur}) ) + ;; + esac + return 0 +} + +complete -F _ss_tunnel ss-tunnel diff --git a/shadowsocksr-libev/src/config.h.cmake b/shadowsocksr-libev/src/config.h.cmake new file mode 100644 index 00000000000..d63d86d1861 --- /dev/null +++ b/shadowsocksr-libev/src/config.h.cmake @@ -0,0 +1,434 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* errno for incomplete non-blocking connect(2) */ +#define CONNECT_IN_PROGRESS @CONNECT_IN_PROGRESS@ + +#ifdef _WIN32 + +/* Override libev default fd conversion macro. */ +#define EV_FD_TO_WIN32_HANDLE(fd) (fd) + +/* Override libev default fd close macro. */ +#define EV_WIN32_CLOSE_FD(fd) closesocket(fd) + +/* Override libev default handle conversion macro. */ +#define EV_WIN32_HANDLE_TO_FD(handle) (handle) + +/* Reset max file descriptor size. */ +#define FD_SETSIZE 2048 + +#endif + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_INET_H 1 + +/* Define to 1 if you have the `CCCryptorCreateWithMode' function. */ +#cmakedefine HAVE_CCCRYPTORCREATEWITHMODE 1 + +/* Define to 1 if you have the `clock_gettime' function. */ +#cmakedefine HAVE_CLOCK_GETTIME 1 + +/* Define to 1 to use the syscall interface for clock_gettime */ +#cmakedefine HAVE_CLOCK_SYSCALL 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_COMMONCRYPTO_COMMONCRYPTO_H 1 + +/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you + don't. */ +#define HAVE_DECL_INET_NTOP @HAVE_DECL_INET_NTOP@ + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `epoll_ctl' function. */ +#cmakedefine HAVE_EPOLL_CTL 1 + +/* Define to 1 if you have the `eventfd' function. */ +#cmakedefine HAVE_EVENTFD 1 + +/* Define to 1 if you have the `EVP_EncryptInit_ex' function. */ +#cmakedefine HAVE_EVP_ENCRYPTINIT_EX 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H 1 + +/* Define to 1 if the floor function is available */ +#cmakedefine HAVE_FLOOR 1 + +/* Define to 1 if you have the `fork' function. */ +#cmakedefine HAVE_FORK 1 + +/* Define to 1 if you have the `getpwnam_r' function. */ +#cmakedefine HAVE_GETPWNAM_R 1 + +/* Define to 1 if you have the `inet_ntop' function. */ +#cmakedefine HAVE_INET_NTOP 1 + +/* Define to 1 if you have the `inotify_init' function. */ +#cmakedefine HAVE_INOTIFY_INIT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Enable IPv6 support in libudns */ +#cmakedefine HAVE_IPv6 1 + +/* Define to 1 if you have the `kqueue' function. */ +#cmakedefine HAVE_KQUEUE 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LANGINFO_H 1 + +/* Compiling with pcre support */ +#cmakedefine HAVE_LIBPCRE 1 + +/* Define to 1 if you have the `rt' library (-lrt). */ +#cmakedefine HAVE_LIBRT 1 + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#cmakedefine HAVE_LIBSOCKET 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIMITS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LINUX_IF_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LINUX_NETFILTER_IPV4_H 1 + +/* Define to 1 if you have the header + file. */ +#cmakedefine HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LOCALE_H 1 + +/* Define to 1 if you have the `malloc' function. */ +#cmakedefine HAVE_MALLOC 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `memset' function. */ +#cmakedefine HAVE_MEMSET 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#cmakedefine HAVE_NANOSLEEP 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETDB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETINET_IN_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NET_IF_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_ENGINE_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_ERR_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_EVP_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_PEM_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_RAND_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_RSA_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_OPENSSL_SHA_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_PCRE_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_PCRE_PCRE_H 1 + +/* Define to 1 if you have the `poll' function. */ +#cmakedefine HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_POLL_H 1 + +/* Define to 1 if you have the `port_create' function. */ +#cmakedefine HAVE_PORT_CREATE 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_PORT_H 1 + +/* Have PTHREAD_PRIO_INHERIT. */ +#cmakedefine HAVE_PTHREAD_PRIO_INHERIT 1 + +/* Define to 1 if you have the `RAND_pseudo_bytes' function. */ +#cmakedefine HAVE_RAND_PSEUDO_BYTES 1 + +/* Define to 1 if you have the 'select' function. */ +#cmakedefine HAVE_SELECT 1 + +/* Define to 1 if you have the `setresuid' function. */ +#cmakedefine HAVE_SETRESUID 1 + +/* Define to 1 if you have the `setreuid' function. */ +#cmakedefine HAVE_SETREUID 1 + +/* Define to 1 if you have the `setrlimit' function. */ +#cmakedefine HAVE_SETRLIMIT 1 + +/* Define to 1 if you have the `signalfd' function. */ +#cmakedefine HAVE_SIGNALFD 1 + +/* Define to 1 if you have the `socket' function. */ +#cmakedefine HAVE_SOCKET 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the `strerror' function. */ +#cmakedefine HAVE_STRERROR 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_INOTIFY_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_IOCTL_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SIGNALFD_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SOCKET_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#cmakedefine HAVE_SYS_WAIT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Define to 1 if you have the `vfork' function. */ +#cmakedefine HAVE_VFORK 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_VFORK_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_WINDOWS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_WINSOCK2_H 1 + +/* Define to 1 if `fork' works. */ +#undef HAVE_WORKING_FORK + +/* Define to 1 if `vfork' works. */ +#undef HAVE_WORKING_VFORK + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_WS2TCPIP_H 1 + +/* have zlib compression support */ +#cmakedefine HAVE_ZLIB 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ZLIB_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if assertions should be disabled. */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#define PACKAGE_VERSION @VERSION@ + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#cmakedefine PTHREAD_CREATE_JOINABLE @PTHREAD_CREATE_JOINABLE@ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define to the type of arg 1 for `select'. */ +#undef SELECT_TYPE_ARG1 + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#undef SELECT_TYPE_ARG234 + +/* Define to the type of arg 5 for `select'. */ +#undef SELECT_TYPE_ARG5 + +/* Define to 1 if you have the ANSI C header files. */ +#cmakedefine STDC_HEADERS 1 + +/* Define to 1 if you can safely include both and . */ +#cmakedefine TIME_WITH_SYS_TIME 1 + +/* If the compiler supports a TLS storage class define it to that here */ +#cmakedefine TLS 1 + +/* Use Apple CommonCrypto library */ +#cmakedefine USE_CRYPTO_APPLECC 1 + +/* Use mbed TLS library */ +#cmakedefine USE_CRYPTO_MBEDTLS 1 + +/* Use OpenSSL library */ +#cmakedefine USE_CRYPTO_OPENSSL 1 + +/* Use PolarSSL library */ +#cmakedefine USE_CRYPTO_POLARSSL 1 + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#define VERSION "@VERSION@" + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if on MINIX. */ +#cmakedefine _MINIX 1 + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#cmakedefine _POSIX_1_SOURCE 2 + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#cmakedefine _POSIX_SOURCE 1 + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `int' if does not define. */ +#cmakedefine HAVE_PID_T 1 +#ifndef HAVE_PID_T +#define pid_t int +#endif + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#undef restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to `int' if does not define. */ +#undef ssize_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t + +/* Define as `fork' if `vfork' does not work. */ +#undef vfork diff --git a/shadowsocksr-libev/src/config.h.in b/shadowsocksr-libev/src/config.h.in new file mode 100644 index 00000000000..03ee29c60a7 --- /dev/null +++ b/shadowsocksr-libev/src/config.h.in @@ -0,0 +1,427 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* errno for incomplete non-blocking connect(2) */ +#undef CONNECT_IN_PROGRESS + +/* Override libev default fd conversion macro. */ +#undef EV_FD_TO_WIN32_HANDLE + +/* Override libev default fd close macro. */ +#undef EV_WIN32_CLOSE_FD + +/* Override libev default handle conversion macro. */ +#undef EV_WIN32_HANDLE_TO_FD + +/* Reset max file descriptor size. */ +#undef FD_SETSIZE + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the `CCCryptorCreateWithMode' function. */ +#undef HAVE_CCCRYPTORCREATEWITHMODE + +/* Define to 1 if you have the `clock_gettime' function. */ +#undef HAVE_CLOCK_GETTIME + +/* Define to 1 to use the syscall interface for clock_gettime */ +#undef HAVE_CLOCK_SYSCALL + +/* Define to 1 if you have the header file. */ +#undef HAVE_COMMONCRYPTO_COMMONCRYPTO_H + +/* Define to 1 if you have the declaration of `inet_ntop', and to 0 if you + don't. */ +#undef HAVE_DECL_INET_NTOP + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the `epoll_ctl' function. */ +#undef HAVE_EPOLL_CTL + +/* Define to 1 if you have the `eventfd' function. */ +#undef HAVE_EVENTFD + +/* Define to 1 if you have the `EVP_EncryptInit_ex' function. */ +#undef HAVE_EVP_ENCRYPTINIT_EX + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if the floor function is available */ +#undef HAVE_FLOOR + +/* Define to 1 if you have the `fork' function. */ +#undef HAVE_FORK + +/* Define to 1 if you have the `getpwnam_r' function. */ +#undef HAVE_GETPWNAM_R + +/* Define to 1 if you have the `inet_ntop' function. */ +#undef HAVE_INET_NTOP + +/* Define to 1 if you have the `inotify_init' function. */ +#undef HAVE_INOTIFY_INIT + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Enable IPv6 support in libudns */ +#undef HAVE_IPv6 + +/* Define to 1 if you have the `kqueue' function. */ +#undef HAVE_KQUEUE + +/* Define to 1 if you have the header file. */ +#undef HAVE_LANGINFO_H + +/* Compiling with pcre support */ +#undef HAVE_LIBPCRE + +/* Define to 1 if you have the `rt' library (-lrt). */ +#undef HAVE_LIBRT + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_IF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LINUX_NETFILTER_IPV4_H + +/* Define to 1 if you have the header + file. */ +#undef HAVE_LINUX_NETFILTER_IPV6_IP6_TABLES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_LOCALE_H + +/* Define to 1 if you have the `malloc' function. */ +#undef HAVE_MALLOC + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the `memset' function. */ +#undef HAVE_MEMSET + +/* Define to 1 if you have the `nanosleep' function. */ +#undef HAVE_NANOSLEEP + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NET_IF_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_ENGINE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_ERR_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_EVP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_PEM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_RAND_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_RSA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_OPENSSL_SHA_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_PCRE_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_PCRE_PCRE_H + +/* Define to 1 if you have the `poll' function. */ +#undef HAVE_POLL + +/* Define to 1 if you have the header file. */ +#undef HAVE_POLL_H + +/* Define to 1 if you have the `port_create' function. */ +#undef HAVE_PORT_CREATE + +/* Define to 1 if you have the header file. */ +#undef HAVE_PORT_H + +/* Have PTHREAD_PRIO_INHERIT. */ +#undef HAVE_PTHREAD_PRIO_INHERIT + +/* Define to 1 if you have the `RAND_pseudo_bytes' function. */ +#undef HAVE_RAND_PSEUDO_BYTES + +/* Define to 1 if you have the 'select' function. */ +#undef HAVE_SELECT + +/* Define to 1 if you have the `setresuid' function. */ +#undef HAVE_SETRESUID + +/* Define to 1 if you have the `setreuid' function. */ +#undef HAVE_SETREUID + +/* Define to 1 if you have the `setrlimit' function. */ +#undef HAVE_SETRLIMIT + +/* Define to 1 if you have the `signalfd' function. */ +#undef HAVE_SIGNALFD + +/* Define to 1 if you have the `socket' function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the `strerror' function. */ +#undef HAVE_STRERROR + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EPOLL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EVENTFD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_EVENT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_INOTIFY_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SIGNALFD_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have that is POSIX.1 compatible. */ +#undef HAVE_SYS_WAIT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the `vfork' function. */ +#undef HAVE_VFORK + +/* Define to 1 if you have the header file. */ +#undef HAVE_VFORK_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINDOWS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINSOCK2_H + +/* Define to 1 if `fork' works. */ +#undef HAVE_WORKING_FORK + +/* Define to 1 if `vfork' works. */ +#undef HAVE_WORKING_VFORK + +/* Define to 1 if you have the header file. */ +#undef HAVE_WS2TCPIP_H + +/* have zlib compression support */ +#undef HAVE_ZLIB + +/* Define to 1 if you have the header file. */ +#undef HAVE_ZLIB_H + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define to 1 if assertions should be disabled. */ +#undef NDEBUG + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to necessary symbol if this constant uses a non-standard name on + your system. */ +#undef PTHREAD_CREATE_JOINABLE + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define to the type of arg 1 for `select'. */ +#undef SELECT_TYPE_ARG1 + +/* Define to the type of args 2, 3 and 4 for `select'. */ +#undef SELECT_TYPE_ARG234 + +/* Define to the type of arg 5 for `select'. */ +#undef SELECT_TYPE_ARG5 + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . */ +#undef TIME_WITH_SYS_TIME + +/* If the compiler supports a TLS storage class define it to that here */ +#undef TLS + +/* Use Apple CommonCrypto library */ +#undef USE_CRYPTO_APPLECC + +/* Use mbed TLS library */ +#undef USE_CRYPTO_MBEDTLS + +/* Use OpenSSL library */ +#undef USE_CRYPTO_OPENSSL + +/* Use PolarSSL library */ +#undef USE_CRYPTO_POLARSSL + +/* Enable extensions on AIX 3, Interix. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif +/* Enable GNU extensions on systems that have them. */ +#ifndef _GNU_SOURCE +# undef _GNU_SOURCE +#endif +/* Enable threading extensions on Solaris. */ +#ifndef _POSIX_PTHREAD_SEMANTICS +# undef _POSIX_PTHREAD_SEMANTICS +#endif +/* Enable extensions on HP NonStop. */ +#ifndef _TANDEM_SOURCE +# undef _TANDEM_SOURCE +#endif +/* Enable general extensions on Solaris. */ +#ifndef __EXTENSIONS__ +# undef __EXTENSIONS__ +#endif + + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if on MINIX. */ +#undef _MINIX + +/* Define to 2 if the system does not provide POSIX.1 features except with + this defined. */ +#undef _POSIX_1_SOURCE + +/* Define to 1 if you need to in order for `stat' and other things to work. */ +#undef _POSIX_SOURCE + +/* Define for Solaris 2.5.1 so the uint8_t typedef from , + , or is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ +#undef _UINT8_T + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Define to `__inline__' or `__inline' if that's what the C compiler + calls it, or to nothing if 'inline' is not supported under any name. */ +#ifndef __cplusplus +#undef inline +#endif + +/* Define to `int' if does not define. */ +#undef pid_t + +/* Define to the equivalent of the C99 'restrict' keyword, or to + nothing if this is not supported. Do not define if restrict is + supported directly. */ +#undef restrict +/* Work around a bug in Sun C++: it does not support _Restrict or + __restrict__, even though the corresponding Sun C compiler ends up with + "#define restrict _Restrict" or "#define restrict __restrict__" in the + previous line. Perhaps some future version of Sun C++ will work with + restrict; if so, hopefully it defines __RESTRICT like Sun C does. */ +#if defined __SUNPRO_CC && !defined __RESTRICT +# define _Restrict +# define __restrict__ +#endif + +/* Define to `unsigned int' if does not define. */ +#undef size_t + +/* Define to `int' if does not define. */ +#undef ssize_t + +/* Define to the type of an unsigned integer type of width exactly 16 bits if + such a type exists and the standard includes do not define it. */ +#undef uint16_t + +/* Define to the type of an unsigned integer type of width exactly 8 bits if + such a type exists and the standard includes do not define it. */ +#undef uint8_t + +/* Define as `fork' if `vfork' does not work. */ +#undef vfork diff --git a/shadowsocksr-libev/src/configure b/shadowsocksr-libev/src/configure new file mode 100755 index 00000000000..7d854c42dd4 --- /dev/null +++ b/shadowsocksr-libev/src/configure @@ -0,0 +1,18764 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for shadowsocks-libev 2.5.6. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and max.c.lv@gmail.com +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='shadowsocks-libev' +PACKAGE_TARNAME='shadowsocks-libev' +PACKAGE_VERSION='2.5.6' +PACKAGE_STRING='shadowsocks-libev 2.5.6' +PACKAGE_BUGREPORT='max.c.lv@gmail.com' +PACKAGE_URL='' + +ac_unique_file="src/encrypt.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_list= +enable_option_checking=no +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +subdirs +BUILD_WINCOMPAT_FALSE +BUILD_WINCOMPAT_TRUE +BUILD_REDIRECTOR_FALSE +BUILD_REDIRECTOR_TRUE +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +ax_pthread_config +INET_NTOP_LIB +MV +RM +GZIP +XMLTO +ASCIIDOC +ENABLE_DOCUMENTATION_FALSE +ENABLE_DOCUMENTATION_TRUE +USE_SYSTEM_SHARED_LIB_FALSE +USE_SYSTEM_SHARED_LIB_TRUE +pcre_pcreh +pcreh +LIBPCRE +PCRE_CONFIG +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +DLLTOOL +OBJDUMP +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +SED +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +LIBTOOL +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +ac_ct_AR +AR +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +EGREP +GREP +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_dependency_tracking +enable_silent_rules +enable_maintainer_mode +enable_static +enable_shared +with_pic +enable_fast_install +with_gnu_ld +with_sysroot +enable_libtool_lock +with_pcre +enable_system_shared_lib +with_crypto_library +enable_documentation +enable_zlib +with_zlib +with_zlib_include +with_zlib_lib +with_openssl +with_openssl_include +with_openssl_lib +with_polarssl +with_polarssl_include +with_polarssl_lib +with_mbedtls +with_mbedtls_include +with_mbedtls_lib +enable_applecc +enable_ssp +enable_assert +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' +ac_subdirs_all='libsodium' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures shadowsocks-libev 2.5.6 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root + [DATAROOTDIR/doc/shadowsocks-libev] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of shadowsocks-libev 2.5.6:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-static[=PKGS] build static libraries [default=no] + --enable-shared[=PKGS] build shared libraries [default=no] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-system-shared-lib + build against shared libraries when possible + --disable-documentation do not build documentation + --disable-zlib disable zlib compression support + --enable-applecc enable Apple CommonCrypto API support + --disable-ssp Do not compile with -fstack-protector + --disable-assert turn off assertions + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot=DIR Search for dependent libraries within DIR + (or the compiler's sysroot if not specified). + --with-pcre=DIR use a specific pcre library + --with-crypto-library=library + build with the given crypto library, + TYPE=openssl|polarssl|mbedtls [default=openssl] + --with-zlib=DIR zlib base directory, or: + --with-zlib-include=DIR zlib headers directory + --with-zlib-lib=DIR zlib library directory + --with-openssl=DIR OpenSSL base directory, or: + --with-openssl-include=DIR + OpenSSL headers directory (without trailing + /openssl) + --with-openssl-lib=DIR OpenSSL library directory + --with-polarssl=DIR PolarSSL base directory, or: + --with-polarssl-include=DIR + PolarSSL headers directory (without trailing + /polarssl) + --with-polarssl-lib=DIR PolarSSL library directory + --with-mbedtls=DIR mbed TLS base directory, or: + --with-mbedtls-include=DIR + mbed TLS headers directory (without trailing + /mbedtls) + --with-mbedtls-lib=DIR mbed TLS library directory + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +shadowsocks-libev configure 2.5.6 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## --------------------------------- ## +## Report this to max.c.lv@gmail.com ## +## --------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_decl + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_find_uintX_t LINENO BITS VAR +# ------------------------------------ +# Finds an unsigned integer type with width BITS, setting cache variable VAR +# accordingly. +ac_fn_c_find_uintX_t () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 +$as_echo_n "checking for uint$2_t... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + # Order is important - never check a type that is potentially smaller + # than half of the expected target width. + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !((($ac_type) -1 >> ($2 / 2 - 1)) >> ($2 / 2 - 1) == 3)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; +esac +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if eval test \"x\$"$3"\" = x"no"; then : + +else + break +fi + done +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_find_uintX_t +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by shadowsocks-libev $as_me 2.5.6, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +as_fn_append ac_header_list " netdb.h" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers config.h" + +ac_aux_dir= +for ac_dir in auto "$srcdir"/auto; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in auto \"$srcdir\"/auto" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default" +if test "x$ac_cv_header_minix_config_h" = xyes; then : + MINIX=yes +else + MINIX= +fi + + + if test "$MINIX" = yes; then + +$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h + + +$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h + + +$as_echo "#define _MINIX 1" >>confdefs.h + + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5 +$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; } +if ${ac_cv_safe_to_define___extensions__+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# define __EXTENSIONS__ 1 + $ac_includes_default +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_safe_to_define___extensions__=yes +else + ac_cv_safe_to_define___extensions__=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5 +$as_echo "$ac_cv_safe_to_define___extensions__" >&6; } + test $ac_cv_safe_to_define___extensions__ = yes && + $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h + + $as_echo "#define _ALL_SOURCE 1" >>confdefs.h + + $as_echo "#define _GNU_SOURCE 1" >>confdefs.h + + $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h + + $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h + + + +am__api_version='1.14' + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if ${ac_cv_path_install+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if ${ac_cv_path_mkdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AWK+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=1;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='shadowsocks-libev' + VERSION='2.5.6' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if ${am_cv_CC_dependencies_compiler_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi +if test -n "$ac_tool_prefix"; then + for ac_prog in ar lib "link -lib" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar lib "link -lib" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the archiver ($AR) interface" >&5 +$as_echo_n "checking the archiver ($AR) interface... " >&6; } +if ${am_cv_ar_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + am_cv_ar_interface=ar + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int some_variable = 0; +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + am_ar_try='$AR cru libconftest.a conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=ar + else + am_ar_try='$AR -NOLOGO -OUT:conftest.lib conftest.$ac_objext >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$am_ar_try\""; } >&5 + (eval $am_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + am_cv_ar_interface=lib + else + am_cv_ar_interface=unknown + fi + fi + rm -f conftest.lib libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_ar_interface" >&5 +$as_echo "$am_cv_ar_interface" >&6; } + +case $am_cv_ar_interface in +ar) + ;; +lib) + # Microsoft lib, so override with the ar-lib wrapper script. + # FIXME: It is wrong to rewrite AR. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__AR in this case, + # and then we could set am__AR="$am_aux_dir/ar-lib \$(AR)" or something + # similar. + AR="$am_aux_dir/ar-lib $AR" + ;; +unknown) + as_fn_error $? "could not determine $AR interface" "$LINENO" 5 + ;; +esac + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +$as_echo_n "checking whether $am_make supports nested variables... " >&6; } +if ${am_cv_make_support_nested_variables+:} false; then : + $as_echo_n "(cached) " >&6 +else + if $as_echo 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +$as_echo "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + + +# Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=no +fi + + + + + + + + + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=no +fi + + + + + + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.2' +macro_revision='1.3337' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +$as_echo_n "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case "$ECHO" in + printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +$as_echo "printf" >&6; } ;; + print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +$as_echo "print -r" >&6; } ;; + *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +$as_echo "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if ${ac_cv_path_FGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if ${lt_cv_path_LD+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if ${lt_cv_prog_gnu_ld+:} false; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if ${lt_cv_path_NM+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if ${lt_cv_nm_interface+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if ${lt_cv_sys_max_cmd_len+:} false; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +$as_echo_n "checking how to convert $build file names to $host format... " >&6; } +if ${lt_cv_to_host_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +$as_echo "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; } +if ${lt_cv_to_tool_file_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +$as_echo "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if ${lt_cv_ld_reload_flag+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test "$GCC" != yes; then + reload_cmds=false + fi + ;; + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if ${lt_cv_deplibs_check_method+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin. + if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +$as_echo_n "checking how to associate runtime and link libraries... " >&6; } +if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_AR+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cru} + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +$as_echo_n "checking for archiver @FILE support... " >&6; } +if ${lt_cv_ar_at_file+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +$as_echo "$lt_cv_ar_at_file" >&6; } + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if ${lt_cv_sys_global_symbol_pipe+:} false; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +$as_echo_n "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test "${with_sysroot+set}" = set; then : + withval=$with_sysroot; +else + with_sysroot=no +fi + + +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5 +$as_echo "${with_sysroot}" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +$as_echo "${lt_sysroot:-no}" >&6; } + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if ${lt_cv_cc_needs_belf+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +$as_echo "$MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +$as_echo "$ac_ct_MANIFEST_TOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if ${lt_cv_path_mainfest_tool+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +$as_echo "$lt_cv_path_mainfest_tool" >&6; } +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_LIPO+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if ${lt_cv_apple_cc_single_mod+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if ${lt_cv_ld_exported_symbols_list+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +$as_echo_n "checking for -force_load linker flag... " >&6; } +if ${lt_cv_ld_force_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cru libconftest.a conftest.o" >&5 + $AR cru libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +$as_echo "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + + + +# Set options +enable_dlopen=yes + + + + + enable_win32_dll=no + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if ${lt_cv_objdir+:} false; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if ${lt_cv_path_MAGIC_CMD+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } +if ${lt_cv_prog_compiler_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +$as_echo "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if ${lt_cv_prog_compiler_pic_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if ${lt_cv_prog_compiler_static_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if ${lt_cv_prog_compiler_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='${wl}--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + if ${lt_cv_aix_libpath_+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_="/usr/lib:/lib" + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +$as_echo_n "checking if $CC understands -b... " >&6; } +if ${lt_cv_prog_compiler__b+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler__b=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +$as_echo "$lt_cv_prog_compiler__b" >&6; } + +if test x"$lt_cv_prog_compiler__b" = xyes; then + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if ${lt_cv_irix_exported_symbol+:} false; then : + $as_echo_n "(cached) " >&6 +else + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_irix_exported_symbol=yes +else + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +$as_echo "$lt_cv_irix_exported_symbol" >&6; } + if test "$lt_cv_irix_exported_symbol" = yes; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } +if ${lt_cv_archive_cmds_need_lc+:} false; then : + $as_echo_n "(cached) " >&6 +else + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +$as_echo "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([A-Za-z]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if ${lt_cv_shlibpath_overrides_runpath+:} false; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if ${ac_cv_lib_dld_shl_load+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if ${ac_cv_lib_svld_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if ${ac_cv_lib_dld_dld_link+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if ${lt_cv_dlopen_self_static+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + + +enable_pcre=no + +# Check whether --with-pcre was given. +if test "${with_pcre+set}" = set; then : + withval=$with_pcre; + if test "x$withval" != "xyes" && test "x$withval" != "x"; then + pcre_base_dir="$withval" + if test "$withval" != "no"; then + enable_pcre=yes + case "$withval" in + *":"*) + pcre_include="`echo $withval |sed -e 's/:.*$//'`" + pcre_ldflags="`echo $withval |sed -e 's/^.*://'`" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking for pcre includes in $pcre_include libs in $pcre_ldflags " >&5 +$as_echo_n "checking checking for pcre includes in $pcre_include libs in $pcre_ldflags ... " >&6; } + ;; + *) + pcre_include="$withval/include" + pcre_ldflags="$withval/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking checking for pcre includes in $withval" >&5 +$as_echo_n "checking checking for pcre includes in $withval... " >&6; } + ;; + esac + fi + fi + +else + + # Extract the first word of "pcre-config", so it can be a program name with args. +set dummy pcre-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PCRE_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PCRE_CONFIG"; then + ac_cv_prog_PCRE_CONFIG="$PCRE_CONFIG" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PCRE_CONFIG="pcre-config" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PCRE_CONFIG=$ac_cv_prog_PCRE_CONFIG +if test -n "$PCRE_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PCRE_CONFIG" >&5 +$as_echo "$PCRE_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "x$PCRE_CONFIG" != "x"; then + enable_pcre=yes + pcre_base_dir="`$PCRE_CONFIG --prefix`" + pcre_include="`$PCRE_CONFIG --cflags | sed -es/-I//`" + pcre_ldflags="`$PCRE_CONFIG --libs | sed -es/-lpcre// -es/-L//`" + fi + +fi + + +if test "x$pcre_base_dir" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcre location" >&5 +$as_echo_n "checking for pcre location... " >&6; } + if ${ats_cv_pcre_dir+:} false; then : + $as_echo_n "(cached) " >&6 +else + + for dir in /usr/local /usr ; do + if test -d $dir && ( test -f $dir/include/pcre.h || test -f $dir/include/pcre/pcre.h ); then + ats_cv_pcre_dir=$dir + break + fi + done + +fi + + pcre_base_dir=$ats_cv_pcre_dir + if test "x$pcre_base_dir" = "x"; then + enable_pcre=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + else + enable_pcre=yes + pcre_include="$pcre_base_dir/include" + pcre_ldflags="$pcre_base_dir/lib" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $pcre_base_dir" >&5 +$as_echo "$pcre_base_dir" >&6; } + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pcre headers in $pcre_include" >&5 +$as_echo_n "checking for pcre headers in $pcre_include... " >&6; } + if test -d $pcre_include && test -d $pcre_ldflags && ( test -f $pcre_include/pcre.h || test -f $pcre_include/pcre/pcre.h ); then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + fi +fi + +pcreh=0 +pcre_pcreh=0 +if test "$enable_pcre" != "no"; then + saved_ldflags=$LDFLAGS + saved_cppflags=$CFLAGS + pcre_have_headers=0 + pcre_have_libs=0 + if test "$pcre_base_dir" != "/usr"; then + + if test "x$CFLAGS" = "x"; then + test "x$verbose" = "xyes" && echo " setting CFLAGS to \"-I${pcre_include}\"" + CFLAGS="-I${pcre_include}" + else + ats_addto_bugger="-I${pcre_include}" + for i in $ats_addto_bugger; do + ats_addto_duplicate="0" + for j in $CFLAGS; do + if test "x$i" = "x$j"; then + ats_addto_duplicate="1" + break + fi + done + if test $ats_addto_duplicate = "0"; then + test "x$verbose" = "xyes" && echo " adding \"$i\" to CFLAGS" + CFLAGS="$CFLAGS $i" + fi + done + fi + + + if test "x$CFLAGS" = "x"; then + test "x$verbose" = "xyes" && echo " setting CFLAGS to \"-DPCRE_STATIC\"" + CFLAGS="-DPCRE_STATIC" + else + ats_addto_bugger="-DPCRE_STATIC" + for i in $ats_addto_bugger; do + ats_addto_duplicate="0" + for j in $CFLAGS; do + if test "x$i" = "x$j"; then + ats_addto_duplicate="1" + break + fi + done + if test $ats_addto_duplicate = "0"; then + test "x$verbose" = "xyes" && echo " adding \"$i\" to CFLAGS" + CFLAGS="$CFLAGS $i" + fi + done + fi + + + if test "x$LDFLAGS" = "x"; then + test "x$verbose" = "xyes" && echo " setting LDFLAGS to \"-L${pcre_ldflags}\"" + LDFLAGS="-L${pcre_ldflags}" + else + ats_addto_bugger="-L${pcre_ldflags}" + for i in $ats_addto_bugger; do + ats_addto_duplicate="0" + for j in $LDFLAGS; do + if test "x$i" = "x$j"; then + ats_addto_duplicate="1" + break + fi + done + if test $ats_addto_duplicate = "0"; then + test "x$verbose" = "xyes" && echo " adding \"$i\" to LDFLAGS" + LDFLAGS="$LDFLAGS $i" + fi + done + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: adding ${pcre_ldflags} to RPATH" >&5 +$as_echo "$as_me: adding ${pcre_ldflags} to RPATH" >&6;} + + if test "x$LIBTOOL_LINK_FLAGS" = "x"; then + test "x$verbose" = "xyes" && echo " setting LIBTOOL_LINK_FLAGS to \"-R${pcre_ldflags}\"" + LIBTOOL_LINK_FLAGS="-R${pcre_ldflags}" + else + ats_addto_bugger="-R${pcre_ldflags}" + for i in $ats_addto_bugger; do + ats_addto_duplicate="0" + for j in $LIBTOOL_LINK_FLAGS; do + if test "x$i" = "x$j"; then + ats_addto_duplicate="1" + break + fi + done + if test $ats_addto_duplicate = "0"; then + test "x$verbose" = "xyes" && echo " adding \"$i\" to LIBTOOL_LINK_FLAGS" + LIBTOOL_LINK_FLAGS="$LIBTOOL_LINK_FLAGS $i" + fi + done + fi + + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing pcre_exec" >&5 +$as_echo_n "checking for library containing pcre_exec... " >&6; } +if ${ac_cv_search_pcre_exec+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pcre_exec (); +int +main () +{ +return pcre_exec (); + ; + return 0; +} +_ACEOF +for ac_lib in '' pcre; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_pcre_exec=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_pcre_exec+:} false; then : + break +fi +done +if ${ac_cv_search_pcre_exec+:} false; then : + +else + ac_cv_search_pcre_exec=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pcre_exec" >&5 +$as_echo "$ac_cv_search_pcre_exec" >&6; } +ac_res=$ac_cv_search_pcre_exec +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + pcre_have_libs=1 +fi + + if test "$pcre_have_libs" != "0"; then + for ac_header in pcre.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pcre.h" "ac_cv_header_pcre_h" "$ac_includes_default" +if test "x$ac_cv_header_pcre_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PCRE_H 1 +_ACEOF + pcre_have_headers=1 +fi + +done + + for ac_header in pcre/pcre.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pcre/pcre.h" "ac_cv_header_pcre_pcre_h" "$ac_includes_default" +if test "x$ac_cv_header_pcre_pcre_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PCRE_PCRE_H 1 +_ACEOF + pcre_have_headers=1 +fi + +done + + fi + if test "$pcre_have_headers" != "0"; then + +$as_echo "#define HAVE_LIBPCRE 1" >>confdefs.h + + LIBPCRE=-lpcre + + else + enable_pcre=no + CFLAGS=$saved_cppflags + LDFLAGS=$saved_ldflags + fi +fi + + + +if test "x${enable_pcre}" != "xyes"; then + as_fn_error $? "Cannot find pcre library. Configure --with-pcre=DIR" "$LINENO" 5 +fi + +# Check whether --enable-system-shared-lib was given. +if test "${enable_system_shared_lib+set}" = set; then : + enableval=$enable_system_shared_lib; + case "${enableval}" in + yes) enable_system_shared_lib=true ;; + no) enable_system_shared_lib=false ;; + *) as_fn_error $? "bad value ${enableval} for --enable-system-shared-lib" "$LINENO" 5 ;; + esac +else + enable_system_shared_lib=false +fi + + if test x$enable_system_shared_lib = xtrue; then + USE_SYSTEM_SHARED_LIB_TRUE= + USE_SYSTEM_SHARED_LIB_FALSE='#' +else + USE_SYSTEM_SHARED_LIB_TRUE='#' + USE_SYSTEM_SHARED_LIB_FALSE= +fi + + + +# Check whether --with-crypto-library was given. +if test "${with_crypto_library+set}" = set; then : + withval=$with_crypto_library; + case "${withval}" in + openssl|polarssl|mbedtls) ;; + *) as_fn_error $? "bad value ${withval} for --with-crypto-library" "$LINENO" 5 ;; + esac + +else + with_crypto_library="openssl" + +fi + + +# Check whether --enable-documentation was given. +if test "${enable_documentation+set}" = set; then : + enableval=$enable_documentation; disable_documentation=true +else + disable_documentation=false +fi + + if test x$disable_documentation = xfalse; then + ENABLE_DOCUMENTATION_TRUE= + ENABLE_DOCUMENTATION_FALSE='#' +else + ENABLE_DOCUMENTATION_TRUE='#' + ENABLE_DOCUMENTATION_FALSE= +fi + + +if test -z "$ENABLE_DOCUMENTATION_TRUE"; then : + + # Extract the first word of "asciidoc", so it can be a program name with args. +set dummy asciidoc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ASCIIDOC+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ASCIIDOC in + [\\/]* | ?:[\\/]*) + ac_cv_path_ASCIIDOC="$ASCIIDOC" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ASCIIDOC="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ASCIIDOC=$ac_cv_path_ASCIIDOC +if test -n "$ASCIIDOC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ASCIIDOC" >&5 +$as_echo "$ASCIIDOC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test x"${ASCIIDOC}" != x || as_fn_error $? "Cannot find \`asciidoc\` in PATH." "$LINENO" 5 + # Extract the first word of "xmlto", so it can be a program name with args. +set dummy xmlto; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_XMLTO+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $XMLTO in + [\\/]* | ?:[\\/]*) + ac_cv_path_XMLTO="$XMLTO" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +XMLTO=$ac_cv_path_XMLTO +if test -n "$XMLTO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLTO" >&5 +$as_echo "$XMLTO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test x"$XMLTO" != x || as_fn_error $? "Cannot find \`xmlto\` in PATH." "$LINENO" 5 + # Extract the first word of "gzip", so it can be a program name with args. +set dummy gzip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GZIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_GZIP="$GZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GZIP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GZIP" && ac_cv_path_GZIP="gzip" + ;; +esac +fi +GZIP=$ac_cv_path_GZIP +if test -n "$GZIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GZIP" >&5 +$as_echo "$GZIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_RM+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $RM in + [\\/]* | ?:[\\/]*) + ac_cv_path_RM="$RM" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_RM" && ac_cv_path_RM="rm" + ;; +esac +fi +RM=$ac_cv_path_RM +if test -n "$RM"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 +$as_echo "$RM" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Extract the first word of "mv", so it can be a program name with args. +set dummy mv; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_MV+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $MV in + [\\/]* | ?:[\\/]*) + ac_cv_path_MV="$MV" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_MV" && ac_cv_path_MV="mv" + ;; +esac +fi +MV=$ac_cv_path_MV +if test -n "$MV"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5 +$as_echo "$MV" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if ${ac_cv_path_SED+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +$as_echo_n "checking whether $CC understands -c and -o together... " >&6; } +if ${am_cv_prog_cc_c_o+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +$as_echo "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + + + +if test -z "$USE_SYSTEM_SHARED_LIB_TRUE"; then : + else + +for ac_header in sys/inotify.h sys/epoll.h sys/event.h port.h poll.h sys/select.h sys/eventfd.h sys/signalfd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in inotify_init epoll_ctl kqueue port_create poll select eventfd signalfd +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +for ac_func in clock_gettime +do : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF + +else + + if test $(uname) = Linux; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime syscall" >&5 +$as_echo_n "checking for clock_gettime syscall... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + #include +int +main () +{ +struct timespec ts; int status = syscall (SYS_clock_gettime, CLOCK_REALTIME, &ts) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_have_clock_syscall=1 + +$as_echo "#define HAVE_CLOCK_SYSCALL 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + if test -z "$LIBEV_M4_AVOID_LIBRT" && test -z "$ac_have_clock_syscall"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in -lrt" >&5 +$as_echo_n "checking for clock_gettime in -lrt... " >&6; } +if ${ac_cv_lib_rt_clock_gettime+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char clock_gettime (); +int +main () +{ +return clock_gettime (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_clock_gettime=yes +else + ac_cv_lib_rt_clock_gettime=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_clock_gettime" >&5 +$as_echo "$ac_cv_lib_rt_clock_gettime" >&6; } +if test "x$ac_cv_lib_rt_clock_gettime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRT 1 +_ACEOF + + LIBS="-lrt $LIBS" + +fi + + unset ac_cv_func_clock_gettime + for ac_func in clock_gettime +do : + ac_fn_c_check_func "$LINENO" "clock_gettime" "ac_cv_func_clock_gettime" +if test "x$ac_cv_func_clock_gettime" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CLOCK_GETTIME 1 +_ACEOF + +fi +done + + fi + +fi +done + + +for ac_func in nanosleep +do : + ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" +if test "x$ac_cv_func_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NANOSLEEP 1 +_ACEOF + +else + + if test -z "$LIBEV_M4_AVOID_LIBRT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nanosleep in -lrt" >&5 +$as_echo_n "checking for nanosleep in -lrt... " >&6; } +if ${ac_cv_lib_rt_nanosleep+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char nanosleep (); +int +main () +{ +return nanosleep (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_nanosleep=yes +else + ac_cv_lib_rt_nanosleep=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_nanosleep" >&5 +$as_echo "$ac_cv_lib_rt_nanosleep" >&6; } +if test "x$ac_cv_lib_rt_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBRT 1 +_ACEOF + + LIBS="-lrt $LIBS" + +fi + + unset ac_cv_func_nanosleep + for ac_func in nanosleep +do : + ac_fn_c_check_func "$LINENO" "nanosleep" "ac_cv_func_nanosleep" +if test "x$ac_cv_func_nanosleep" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NANOSLEEP 1 +_ACEOF + +fi +done + + fi + +fi +done + + +if test -z "$LIBEV_M4_AVOID_LIBM"; then + LIBM=m +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing floor" >&5 +$as_echo_n "checking for library containing floor... " >&6; } +if ${ac_cv_search_floor+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char floor (); +int +main () +{ +return floor (); + ; + return 0; +} +_ACEOF +for ac_lib in '' $LIBM; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_floor=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_floor+:} false; then : + break +fi +done +if ${ac_cv_search_floor+:} false; then : + +else + ac_cv_search_floor=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_floor" >&5 +$as_echo "$ac_cv_search_floor" >&6; } +ac_res=$ac_cv_search_floor +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +$as_echo "#define HAVE_FLOOR 1" >>confdefs.h + +fi + + + +fi + +case $host in + *-mingw*) + LIBS="$LIBS -ladvapi32 -lgdi32 -lws2_32 -lcrypt32" + ;; + *) + ;; +esac + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for thread local storage (TLS) class" >&5 +$as_echo_n "checking for thread local storage (TLS) class... " >&6; } + if ${ac_cv_tls+:} false; then : + $as_echo_n "(cached) " >&6 +else + for ax_tls_keyword in __thread '__declspec(thread)' none; do + case $ax_tls_keyword in #( + none) : + ac_cv_tls=none ; break ;; #( + *) : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static void + foo(void) { + static $ax_tls_keyword int bar; + exit(1); + } +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_tls=$ax_tls_keyword ; break +else + ac_cv_tls=none + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ;; +esac + done + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_tls" >&5 +$as_echo "$ac_cv_tls" >&6; } + + if test "$ac_cv_tls" != "none"; then : + +cat >>confdefs.h <<_ACEOF +#define TLS $ac_cv_tls +_ACEOF + + : +else + : +fi + + +case "${with_crypto_library}" in + openssl) + + # Check whether --enable-zlib was given. +if test "${enable_zlib+set}" = set; then : + enableval=$enable_zlib; +fi + + if test "x$enable_zlib" != "xno"; then : + + +$as_echo "#define HAVE_ZLIB 1" >>confdefs.h + + +# Check whether --with-zlib was given. +if test "${with_zlib+set}" = set; then : + withval=$with_zlib; zlib="$withval" + CPPFLAGS="$CPPFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + +fi + + + +# Check whether --with-zlib-include was given. +if test "${with_zlib_include+set}" = set; then : + withval=$with_zlib_include; zlib_include="$withval" + CPPFLAGS="$CPPFLAGS -I$withval" + +fi + + + +# Check whether --with-zlib-lib was given. +if test "${with_zlib_lib+set}" = set; then : + withval=$with_zlib_lib; zlib_lib="$withval" + LDFLAGS="$LDFLAGS -L$withval" + +fi + + + for ac_header in zlib.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default" +if test "x$ac_cv_header_zlib_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_ZLIB_H 1 +_ACEOF + +else + as_fn_error $? "\"zlib header files not found.\"" "$LINENO" 5; break + +fi + +done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compress2 in -lz" >&5 +$as_echo_n "checking for compress2 in -lz... " >&6; } +if ${ac_cv_lib_z_compress2+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lz $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char compress2 (); +int +main () +{ +return compress2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_z_compress2=yes +else + ac_cv_lib_z_compress2=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_z_compress2" >&5 +$as_echo "$ac_cv_lib_z_compress2" >&6; } +if test "x$ac_cv_lib_z_compress2" = xyes; then : + LIBS="$LIBS -lz" +else + as_fn_error $? "\"zlib libraries not found.\"" "$LINENO" 5 + +fi + + +fi + + + case $host_os in + *mingw*) + ;; + *) + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + LIBS="$LIBS -ldl" +else + as_fn_error $? "OpenSSL depends on libdl." "$LINENO" 5; break + +fi + + +fi + + ;; + esac + + +# Check whether --with-openssl was given. +if test "${with_openssl+set}" = set; then : + withval=$with_openssl; openssl="$withval" + CFLAGS="$CFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + +fi + + + +# Check whether --with-openssl-include was given. +if test "${with_openssl_include+set}" = set; then : + withval=$with_openssl_include; openssl_include="$withval" + CFLAGS="$CFLAGS -I$withval" + +fi + + + +# Check whether --with-openssl-lib was given. +if test "${with_openssl_lib+set}" = set; then : + withval=$with_openssl_lib; openssl_lib="$withval" + LDFLAGS="$LDFLAGS -L$withval" + +fi + + + for ac_header in openssl/evp.h openssl/rsa.h openssl/rand.h openssl/err.h openssl/sha.h openssl/pem.h openssl/engine.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + as_fn_error $? "OpenSSL header files not found." "$LINENO" 5; break + +fi + +done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EVP_EncryptInit_ex in -lcrypto" >&5 +$as_echo_n "checking for EVP_EncryptInit_ex in -lcrypto... " >&6; } +if ${ac_cv_lib_crypto_EVP_EncryptInit_ex+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char EVP_EncryptInit_ex (); +int +main () +{ +return EVP_EncryptInit_ex (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_crypto_EVP_EncryptInit_ex=yes +else + ac_cv_lib_crypto_EVP_EncryptInit_ex=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypto_EVP_EncryptInit_ex" >&5 +$as_echo "$ac_cv_lib_crypto_EVP_EncryptInit_ex" >&6; } +if test "x$ac_cv_lib_crypto_EVP_EncryptInit_ex" = xyes; then : + LIBS="-lcrypto $LIBS" +else + as_fn_error $? "OpenSSL libraries not found." "$LINENO" 5 + +fi + + + for ac_func in RAND_pseudo_bytes EVP_EncryptInit_ex +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +else + as_fn_error $? "Missing OpenSSL functionality, make sure you have installed the latest version." "$LINENO" 5; break +fi +done + + + ac_fn_c_check_decl "$LINENO" "OpenSSL_add_all_algorithms" "ac_cv_have_decl_OpenSSL_add_all_algorithms" "#include + +" +if test "x$ac_cv_have_decl_OpenSSL_add_all_algorithms" = xyes; then : + +else + as_fn_error $? "Missing OpenSSL functionality, make sure you have installed the latest version." "$LINENO" 5; break +fi + + + +$as_echo "#define USE_CRYPTO_OPENSSL 1" >>confdefs.h + + ;; + polarssl) + + + +# Check whether --with-polarssl was given. +if test "${with_polarssl+set}" = set; then : + withval=$with_polarssl; polarssl="$withval" + CFLAGS="$CFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + +fi + + + +# Check whether --with-polarssl-include was given. +if test "${with_polarssl_include+set}" = set; then : + withval=$with_polarssl_include; polarssl_include="$withval" + CFLAGS="$CFLAGS -I$withval" + +fi + + + +# Check whether --with-polarssl-lib was given. +if test "${with_polarssl_lib+set}" = set; then : + withval=$with_polarssl_lib; polarssl_lib="$withval" + LDFLAGS="$LDFLAGS -L$withval" + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cipher_init_ctx in -lpolarssl" >&5 +$as_echo_n "checking for cipher_init_ctx in -lpolarssl... " >&6; } +if ${ac_cv_lib_polarssl_cipher_init_ctx+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lpolarssl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cipher_init_ctx (); +int +main () +{ +return cipher_init_ctx (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_polarssl_cipher_init_ctx=yes +else + ac_cv_lib_polarssl_cipher_init_ctx=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_polarssl_cipher_init_ctx" >&5 +$as_echo "$ac_cv_lib_polarssl_cipher_init_ctx" >&6; } +if test "x$ac_cv_lib_polarssl_cipher_init_ctx" = xyes; then : + LIBS="-lpolarssl $LIBS" +else + as_fn_error $? "PolarSSL libraries not found." "$LINENO" 5 + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking polarssl version" >&5 +$as_echo_n "checking polarssl version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +#if POLARSSL_VERSION_NUMBER < 0x01020500 +#error invalid version +#endif + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +else + as_fn_error $? "PolarSSL 1.2.5 or newer required" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +$as_echo "#define USE_CRYPTO_POLARSSL 1" >>confdefs.h + + ;; + mbedtls) + + + +# Check whether --with-mbedtls was given. +if test "${with_mbedtls+set}" = set; then : + withval=$with_mbedtls; mbedtls="$withval" + CFLAGS="$CFLAGS -I$withval/include" + LDFLAGS="$LDFLAGS -L$withval/lib" + +fi + + + +# Check whether --with-mbedtls-include was given. +if test "${with_mbedtls_include+set}" = set; then : + withval=$with_mbedtls_include; mbedtls_include="$withval" + CFLAGS="$CFLAGS -I$withval" + +fi + + + +# Check whether --with-mbedtls-lib was given. +if test "${with_mbedtls_lib+set}" = set; then : + withval=$with_mbedtls_lib; mbedtls_lib="$withval" + LDFLAGS="$LDFLAGS -L$withval" + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbedtls_cipher_setup in -lmbedcrypto" >&5 +$as_echo_n "checking for mbedtls_cipher_setup in -lmbedcrypto... " >&6; } +if ${ac_cv_lib_mbedcrypto_mbedtls_cipher_setup+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmbedcrypto $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char mbedtls_cipher_setup (); +int +main () +{ +return mbedtls_cipher_setup (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mbedcrypto_mbedtls_cipher_setup=yes +else + ac_cv_lib_mbedcrypto_mbedtls_cipher_setup=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mbedcrypto_mbedtls_cipher_setup" >&5 +$as_echo "$ac_cv_lib_mbedcrypto_mbedtls_cipher_setup" >&6; } +if test "x$ac_cv_lib_mbedcrypto_mbedtls_cipher_setup" = xyes; then : + LIBS="-lmbedcrypto $LIBS" +else + as_fn_error $? "mbed TLS libraries not found." "$LINENO" 5 + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbedtls supports Cipher Feedback mode or not" >&5 +$as_echo_n "checking whether mbedtls supports Cipher Feedback mode or not... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +#ifndef MBEDTLS_CIPHER_MODE_CFB +#error Cipher Feedback mode a.k.a CFB not supported by your mbed TLS. +#endif + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +else + as_fn_error $? "MBEDTLS_CIPHER_MODE_CFB required" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbedtls supports the ARC4 stream cipher or not" >&5 +$as_echo_n "checking whether mbedtls supports the ARC4 stream cipher or not... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +#ifndef MBEDTLS_ARC4_C +#error the ARC4 stream cipher not supported by your mbed TLS. +#endif + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +else + as_fn_error $? "MBEDTLS_ARC4_C required" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbedtls supports the Blowfish block cipher or not" >&5 +$as_echo_n "checking whether mbedtls supports the Blowfish block cipher or not... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +#ifndef MBEDTLS_BLOWFISH_C +#error the Blowfish block cipher not supported by your mbed TLS. +#endif + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +else + as_fn_error $? "MBEDTLS_BLOWFISH_C required" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbedtls supports the Camellia block cipher or not" >&5 +$as_echo_n "checking whether mbedtls supports the Camellia block cipher or not... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include + +int +main () +{ + +#ifndef MBEDTLS_CAMELLIA_C +#error the Camellia block cipher not supported by your mbed TLS. +#endif + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +else + as_fn_error $? "MBEDTLS_CAMELLIA_C required" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + + +$as_echo "#define USE_CRYPTO_MBEDTLS 1" >>confdefs.h + + ;; +esac + +# Check whether --enable-applecc was given. +if test "${enable_applecc+set}" = set; then : + enableval=$enable_applecc; + for ac_header in CommonCrypto/CommonCrypto.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "CommonCrypto/CommonCrypto.h" "ac_cv_header_CommonCrypto_CommonCrypto_h" "$ac_includes_default" +if test "x$ac_cv_header_CommonCrypto_CommonCrypto_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_COMMONCRYPTO_COMMONCRYPTO_H 1 +_ACEOF + +else + as_fn_error $? "CommonCrypto header files not found." "$LINENO" 5; break + +fi + +done + + for ac_func in CCCryptorCreateWithMode +do : + ac_fn_c_check_func "$LINENO" "CCCryptorCreateWithMode" "ac_cv_func_CCCryptorCreateWithMode" +if test "x$ac_cv_func_CCCryptorCreateWithMode" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_CCCRYPTORCREATEWITHMODE 1 +_ACEOF + +else + as_fn_error $? "CommonCrypto API needs OS X (>= 10.7) and iOS (>= 5.0)." "$LINENO" 5; break + +fi +done + + +$as_echo "#define USE_CRYPTO_APPLECC 1" >>confdefs.h + + + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5 +$as_echo_n "checking for C/C++ restrict keyword... " >&6; } +if ${ac_cv_c_restrict+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_restrict=no + # The order here caters to the fact that C++ does not require restrict. + for ac_kw in __restrict __restrict__ _Restrict restrict; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int * int_ptr; + int foo (int_ptr $ac_kw ip) { + return ip[0]; + } +int +main () +{ +int s[1]; + int * $ac_kw t = s; + t[0] = 0; + return foo(t) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_restrict=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_restrict" != no && break + done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5 +$as_echo "$ac_cv_c_restrict" >&6; } + + case $ac_cv_c_restrict in + restrict) ;; + no) $as_echo "#define restrict /**/" >>confdefs.h + ;; + *) cat >>confdefs.h <<_ACEOF +#define restrict $ac_cv_c_restrict +_ACEOF + ;; + esac + + + + + for ac_header in $ac_header_list +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + HAVE_INET_NTOP=1 + INET_NTOP_LIB= + ss_save_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing inet_ntop" >&5 +$as_echo_n "checking for library containing inet_ntop... " >&6; } +if ${ac_cv_search_inet_ntop+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntop (); +int +main () +{ +return inet_ntop (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl resolv; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_inet_ntop=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if ${ac_cv_search_inet_ntop+:} false; then : + break +fi +done +if ${ac_cv_search_inet_ntop+:} false; then : + +else + ac_cv_search_inet_ntop=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_inet_ntop" >&5 +$as_echo "$ac_cv_search_inet_ntop" >&6; } +ac_res=$ac_cv_search_inet_ntop +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + for ac_func in inet_ntop +do : + ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop" +if test "x$ac_cv_func_inet_ntop" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_INET_NTOP 1 +_ACEOF + +fi +done + + if test $ac_cv_func_inet_ntop = no; then + HAVE_INET_NTOP=0 + fi + +fi + + LIBS=$ss_save_LIBS + + if test "$ac_cv_search_inet_ntop" != "no" \ + && test "$ac_cv_search_inet_ntop" != "none required"; then + INET_NTOP_LIB="$ac_cv_search_inet_ntop" + fi + + + ac_fn_c_check_decl "$LINENO" "inet_ntop" "ac_cv_have_decl_inet_ntop" "#include + #if HAVE_NETDB_H + # include + #endif + +" +if test "x$ac_cv_have_decl_inet_ntop" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_INET_NTOP $ac_have_decl +_ACEOF + + if test $ac_cv_have_decl_inet_ntop = no; then + HAVE_DECL_INET_NTOP=0 + fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for what kind of host" >&5 +$as_echo_n "checking for what kind of host... " >&6; } +case $host in + *-linux*) + os_support=linux + { $as_echo "$as_me:${as_lineno-$LINENO}: result: Linux" >&5 +$as_echo "Linux" >&6; } + ;; + *-mingw*) + +$as_echo "#define FD_SETSIZE 2048" >>confdefs.h + + +$as_echo "#define EV_FD_TO_WIN32_HANDLE(fd) (fd)" >>confdefs.h + + +$as_echo "#define EV_WIN32_HANDLE_TO_FD(handle) (handle)" >>confdefs.h + + +$as_echo "#define EV_WIN32_CLOSE_FD(fd) closesocket(fd)" >>confdefs.h + + + os_support=mingw + { $as_echo "$as_me:${as_lineno-$LINENO}: result: MinGW" >&5 +$as_echo "MinGW" >&6; } + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: transparent proxy does not support for $host" >&5 +$as_echo "transparent proxy does not support for $host" >&6; } + ;; +esac + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 +$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void); +int +main () +{ +foo() + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + ax_pthread_extra_flags= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 +$as_echo "$flag" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int i = PTHREAD_PRIO_INHERIT; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : + +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + +fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi ;; #( + *) : + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + ;; +esac ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CC="$PTHREAD_CC" + : +else + ax_pthread_ok=no + as_fn_error $? "Can not find pthreads. This is required." "$LINENO" 5 +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + +ggl_check_stack_protector_save_CXXFLAGS="$CXXFLAGS" +ggl_check_stack_protector_save_CFLAGS="$CFLAGS" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if -fstack-protector and -fstack-protector-all are supported." >&5 +$as_echo_n "checking if -fstack-protector and -fstack-protector-all are supported.... " >&6; } + +CXXFLAGS="$CXXFLAGS -fstack-protector" +CFLAGS="$CFLAGS -fstack-protector" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main() { + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ggl_check_stack_protector_ok=yes +else + ggl_check_stack_protector_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +CXXFLAGS="$ggl_check_stack_protector_save_CXXFLAGS -fstack-protector-all" +CFLAGS="$ggl_check_stack_protector_save_CFLAGS -fstack-protector-all" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int main() { + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ggl_check_stack_protector_all_ok=yes +else + ggl_check_stack_protector_all_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test "x$ggl_check_stack_protector_ok" = "xyes" -a \ + "x$ggl_check_stack_protector_all_ok" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + has_stack_protector=yes +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + has_stack_protector=no +fi + +CXXFLAGS="$ggl_check_stack_protector_save_CXXFLAGS" +CFLAGS="$ggl_check_stack_protector_save_CFLAGS" + + +# XXX - disable -fstack-protector due to missing libssp_nonshared +case "$host_os" in + *aix*) + { $as_echo "$as_me:${as_lineno-$LINENO}: -fstack-protector disabled on AIX" >&5 +$as_echo "$as_me: -fstack-protector disabled on AIX" >&6;} + has_stack_protector=no + ;; + *sunos*) + { $as_echo "$as_me:${as_lineno-$LINENO}: -fstack-protector disabled on SunOS" >&5 +$as_echo "$as_me: -fstack-protector disabled on SunOS" >&6;} + has_stack_protector=no + ;; + *solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: -fstack-protector disabled on Solaris" >&5 +$as_echo "$as_me: -fstack-protector disabled on Solaris" >&6;} + has_stack_protector=no + ;; +esac + +# Check whether --enable-ssp was given. +if test "${enable_ssp+set}" = set; then : + enableval=$enable_ssp; + enable_ssp="no" + +else + + enable_ssp="yes" + +fi + + +if test x$has_stack_protector = xyes && test x$enable_ssp = xyes; then + CFLAGS="$CFLAGS -fstack-protector" + { $as_echo "$as_me:${as_lineno-$LINENO}: -fstack-protector enabled in CFLAGS" >&5 +$as_echo "$as_me: -fstack-protector enabled in CFLAGS" >&6;} +fi + + if test "$os_support" = "linux"; then + BUILD_REDIRECTOR_TRUE= + BUILD_REDIRECTOR_FALSE='#' +else + BUILD_REDIRECTOR_TRUE='#' + BUILD_REDIRECTOR_FALSE= +fi + + if test "$os_support" = "mingw"; then + BUILD_WINCOMPAT_TRUE= + BUILD_WINCOMPAT_FALSE='#' +else + BUILD_WINCOMPAT_TRUE='#' + BUILD_WINCOMPAT_FALSE= +fi + + +for ac_header in limits.h stdint.h inttypes.h arpa/inet.h fcntl.h langinfo.h locale.h netdb.h netinet/in.h stdlib.h string.h strings.h unistd.h sys/ioctl.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in sys/socket.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SOCKET_H 1 +_ACEOF + +fi + +done + +for ac_header in net/if.h +do : + ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" " +#include +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif + +" +if test "x$ac_cv_header_net_if_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_NET_IF_H 1 +_ACEOF + +fi + +done + + +case $host in + *-mingw*) + +$as_echo "#define CONNECT_IN_PROGRESS WSAEWOULDBLOCK" >>confdefs.h + + for ac_header in windows.h winsock2.h ws2tcpip.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + as_fn_error $? "Missing MinGW headers" "$LINENO" 5 +fi + +done + + ;; + *-linux*) + +$as_echo "#define CONNECT_IN_PROGRESS EINPROGRESS" >>confdefs.h + + for ac_header in linux/if.h linux/netfilter_ipv4.h linux/netfilter_ipv6/ip6_tables.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" " + #if HAVE_LIMITS_H + #include + #endif + /* Netfilter ip(6)tables v1.4.0 has broken headers */ + #if HAVE_NETINET_IN_H + #include + #endif + #if HAVE_LINUX_IF_H + #include + #endif + #if HAVE_SYS_SOCKET_H + #include + #endif + +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + as_fn_error $? "Missing netfilter headers" "$LINENO" 5 +fi + +done + + ;; + *) + # These are POSIX-like systems using BSD-like sockets API. + +$as_echo "#define CONNECT_IN_PROGRESS EINPROGRESS" >>confdefs.h + + ;; +esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 +$as_echo_n "checking for inline... " >&6; } +if ${ac_cv_c_inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_inline=no +for ac_kw in inline __inline__ __inline; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __cplusplus +typedef int foo_t; +static $ac_kw foo_t static_foo () {return 0; } +$ac_kw foo_t foo () {return 0; } +#endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_inline=$ac_kw +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test "$ac_cv_c_inline" != no && break +done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 +$as_echo "$ac_cv_c_inline" >&6; } + +case $ac_cv_c_inline in + inline | yes) ;; + *) + case $ac_cv_c_inline in + no) ac_val=;; + *) ac_val=$ac_cv_c_inline;; + esac + cat >>confdefs.h <<_ACEOF +#ifndef __cplusplus +#define inline $ac_val +#endif +_ACEOF + ;; +esac + +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 +$as_echo_n "checking whether to enable assertions... " >&6; } + # Check whether --enable-assert was given. +if test "${enable_assert+set}" = set; then : + enableval=$enable_assert; ac_enable_assert=$enableval + if test "x$enableval" = xno; then : + +$as_echo "#define NDEBUG 1" >>confdefs.h + +elif test "x$enableval" != xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 +$as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} + ac_enable_assert=yes +fi +else + ac_enable_assert=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 +$as_echo "$ac_enable_assert" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sys/wait.h that is POSIX.1 compatible" >&5 +$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; } +if ${ac_cv_header_sys_wait_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#ifndef WEXITSTATUS +# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8) +#endif +#ifndef WIFEXITED +# define WIFEXITED(stat_val) (((stat_val) & 255) == 0) +#endif + +int +main () +{ + int s; + wait (&s); + s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_sys_wait_h=yes +else + ac_cv_header_sys_wait_h=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_sys_wait_h" >&5 +$as_echo "$ac_cv_header_sys_wait_h" >&6; } +if test $ac_cv_header_sys_wait_h = yes; then + +$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +$as_echo_n "checking for an ANSI C-conforming const... " >&6; } +if ${ac_cv_c_const+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* AIX XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_const=yes +else + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +$as_echo "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +$as_echo "#define const /**/" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default" +if test "x$ac_cv_type_pid_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define pid_t int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define size_t unsigned int +_ACEOF + +fi + +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = xyes; then : + +else + +cat >>confdefs.h <<_ACEOF +#define ssize_t int +_ACEOF + +fi + +ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t" +case $ac_cv_c_uint16_t in #( + no|yes) ;; #( + *) + + +cat >>confdefs.h <<_ACEOF +#define uint16_t $ac_cv_c_uint16_t +_ACEOF +;; + esac + +ac_fn_c_find_uintX_t "$LINENO" "8" "ac_cv_c_uint8_t" +case $ac_cv_c_uint8_t in #( + no|yes) ;; #( + *) + +$as_echo "#define _UINT8_T 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define uint8_t $ac_cv_c_uint8_t +_ACEOF +;; + esac + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5 +$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; } +if ${ac_cv_header_time+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include + +int +main () +{ +if ((struct tm *) 0) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_time=yes +else + ac_cv_header_time=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5 +$as_echo "$ac_cv_header_time" >&6; } +if test $ac_cv_header_time = yes; then + +$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + +fi + + +for ac_header in vfork.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "vfork.h" "ac_cv_header_vfork_h" "$ac_includes_default" +if test "x$ac_cv_header_vfork_h" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_VFORK_H 1 +_ACEOF + +fi + +done + +for ac_func in fork vfork +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + +if test "x$ac_cv_func_fork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5 +$as_echo_n "checking for working fork... " >&6; } +if ${ac_cv_func_fork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_fork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* By Ruediger Kuhlmann. */ + return fork () < 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_fork_works=yes +else + ac_cv_func_fork_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5 +$as_echo "$ac_cv_func_fork_works" >&6; } + +else + ac_cv_func_fork_works=$ac_cv_func_fork +fi +if test "x$ac_cv_func_fork_works" = xcross; then + case $host in + *-*-amigaos* | *-*-msdosdjgpp*) + # Override, as these systems have only a dummy fork() stub + ac_cv_func_fork_works=no + ;; + *) + ac_cv_func_fork_works=yes + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5 +$as_echo "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;} +fi +ac_cv_func_vfork_works=$ac_cv_func_vfork +if test "x$ac_cv_func_vfork" = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5 +$as_echo_n "checking for working vfork... " >&6; } +if ${ac_cv_func_vfork_works+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_vfork_works=cross +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Thanks to Paul Eggert for this test. */ +$ac_includes_default +#include +#ifdef HAVE_VFORK_H +# include +#endif +/* On some sparc systems, changes by the child to local and incoming + argument registers are propagated back to the parent. The compiler + is told about this with #include , but some compilers + (e.g. gcc -O) don't grok . Test for this by using a + static variable whose address is put into a register that is + clobbered by the vfork. */ +static void +#ifdef __cplusplus +sparc_address_test (int arg) +# else +sparc_address_test (arg) int arg; +#endif +{ + static pid_t child; + if (!child) { + child = vfork (); + if (child < 0) { + perror ("vfork"); + _exit(2); + } + if (!child) { + arg = getpid(); + write(-1, "", 0); + _exit (arg); + } + } +} + +int +main () +{ + pid_t parent = getpid (); + pid_t child; + + sparc_address_test (0); + + child = vfork (); + + if (child == 0) { + /* Here is another test for sparc vfork register problems. This + test uses lots of local variables, at least as many local + variables as main has allocated so far including compiler + temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris + 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should + reuse the register of parent for one of the local variables, + since it will think that parent can't possibly be used any more + in this routine. Assigning to the local variable will thus + munge parent in the parent process. */ + pid_t + p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(), + p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid(); + /* Convince the compiler that p..p7 are live; otherwise, it might + use the same hardware register for all 8 local variables. */ + if (p != p1 || p != p2 || p != p3 || p != p4 + || p != p5 || p != p6 || p != p7) + _exit(1); + + /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent + from child file descriptors. If the child closes a descriptor + before it execs or exits, this munges the parent's descriptor + as well. Test for this by closing stdout in the child. */ + _exit(close(fileno(stdout)) != 0); + } else { + int status; + struct stat st; + + while (wait(&status) != child) + ; + return ( + /* Was there some problem with vforking? */ + child < 0 + + /* Did the child fail? (This shouldn't happen.) */ + || status + + /* Did the vfork/compiler bug occur? */ + || parent != getpid() + + /* Did the file descriptor bug occur? */ + || fstat(fileno(stdout), &st) != 0 + ); + } +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_vfork_works=yes +else + ac_cv_func_vfork_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5 +$as_echo "$ac_cv_func_vfork_works" >&6; } + +fi; +if test "x$ac_cv_func_fork_works" = xcross; then + ac_cv_func_vfork_works=$ac_cv_func_vfork + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5 +$as_echo "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;} +fi + +if test "x$ac_cv_func_vfork_works" = xyes; then + +$as_echo "#define HAVE_WORKING_VFORK 1" >>confdefs.h + +else + +$as_echo "#define vfork fork" >>confdefs.h + +fi +if test "x$ac_cv_func_fork_works" = xyes; then + +$as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h + +fi + +for ac_header in sys/select.h sys/socket.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking types of arguments for select" >&5 +$as_echo_n "checking types of arguments for select... " >&6; } +if ${ac_cv_func_select_args+:} false; then : + $as_echo_n "(cached) " >&6 +else + for ac_arg234 in 'fd_set *' 'int *' 'void *'; do + for ac_arg1 in 'int' 'size_t' 'unsigned long int' 'unsigned int'; do + for ac_arg5 in 'struct timeval *' 'const struct timeval *'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +#ifdef HAVE_SYS_SELECT_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif + +int +main () +{ +extern int select ($ac_arg1, + $ac_arg234, $ac_arg234, $ac_arg234, + $ac_arg5); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_func_select_args="$ac_arg1,$ac_arg234,$ac_arg5"; break 3 +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done + done +done +# Provide a safe default value. +: "${ac_cv_func_select_args=int,int *,struct timeval *}" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_select_args" >&5 +$as_echo "$ac_cv_func_select_args" >&6; } +ac_save_IFS=$IFS; IFS=',' +set dummy `echo "$ac_cv_func_select_args" | sed 's/\*/\*/g'` +IFS=$ac_save_IFS +shift + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG1 $1 +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG234 ($2) +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define SELECT_TYPE_ARG5 ($3) +_ACEOF + +rm -f conftest* + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +$as_echo_n "checking return type of signal handlers... " >&6; } +if ${ac_cv_type_signal+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main () +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_type_signal=int +else + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +$as_echo "$ac_cv_type_signal" >&6; } + +cat >>confdefs.h <<_ACEOF +#define RETSIGTYPE $ac_cv_type_signal +_ACEOF + + +for ac_func in memset select setresuid setreuid strerror getpwnam_r setrlimit +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + +if test "$ac_cv_func_select" != "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for select in ws2_32" >&5 +$as_echo_n "checking for select in ws2_32... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef HAVE_WINSOCK2_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#endif + +int +main () +{ + + select(0,(fd_set *)NULL,(fd_set *)NULL,(fd_set *)NULL,(struct timeval *)NULL); + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SELECT="1" + +cat >>confdefs.h <<_ACEOF +#define HAVE_SELECT 1 +_ACEOF + + HAVE_SYS_SELECT_H="1" + +cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SELECT_H 1 +_ACEOF + + +else + + as_fn_error $? "no" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if ${ac_cv_lib_socket_connect+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 +_ACEOF + + LIBS="-lsocket $LIBS" + +fi + + +for ac_func in malloc memset socket +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +fi +done + + + +$as_echo "#define HAVE_IPv6 1" >>confdefs.h + + + + +if test -z "$USE_SYSTEM_SHARED_LIB_TRUE"; then : + else + subdirs="$subdirs libsodium" + +fi + +ac_config_files="$ac_config_files shadowsocks-libev.pc Makefile libcork/Makefile libipset/Makefile src/Makefile" + +if test -z "$USE_SYSTEM_SHARED_LIB_TRUE"; then : + else + ac_config_files="$ac_config_files libudns/Makefile libev/Makefile" + +fi + +if test -z "$ENABLE_DOCUMENTATION_TRUE"; then : + ac_config_files="$ac_config_files doc/Makefile" + + +fi + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +$as_echo_n "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 +$as_echo "done" >&6; } +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SYSTEM_SHARED_LIB_TRUE}" && test -z "${USE_SYSTEM_SHARED_LIB_FALSE}"; then + as_fn_error $? "conditional \"USE_SYSTEM_SHARED_LIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_DOCUMENTATION_TRUE}" && test -z "${ENABLE_DOCUMENTATION_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_DOCUMENTATION\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_REDIRECTOR_TRUE}" && test -z "${BUILD_REDIRECTOR_FALSE}"; then + as_fn_error $? "conditional \"BUILD_REDIRECTOR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_WINCOMPAT_TRUE}" && test -z "${BUILD_WINCOMPAT_FALSE}"; then + as_fn_error $? "conditional \"BUILD_WINCOMPAT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by shadowsocks-libev $as_me 2.5.6, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +shadowsocks-libev config.status 2.5.6 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +OBJDUMP \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +DLLTOOL \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +nm_file_list_spec \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "shadowsocks-libev.pc") CONFIG_FILES="$CONFIG_FILES shadowsocks-libev.pc" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "libcork/Makefile") CONFIG_FILES="$CONFIG_FILES libcork/Makefile" ;; + "libipset/Makefile") CONFIG_FILES="$CONFIG_FILES libipset/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "libudns/Makefile") CONFIG_FILES="$CONFIG_FILES libudns/Makefile" ;; + "libev/Makefile") CONFIG_FILES="$CONFIG_FILES libev/Makefile" ;; + "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM -f \"$cfgfile\"; exit 1" 1 2 15 + $RM -f "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="" + +# ### BEGIN LIBTOOL CONFIG + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# An object symbol dumper. +OBJDUMP=$lt_OBJDUMP + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and in which our libraries should be installed. +lt_sysroot=$lt_sysroot + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + if test x"$xsi_shell" = xyes; then + sed -e '/^func_dirname ()$/,/^} # func_dirname /c\ +func_dirname ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_basename ()$/,/^} # func_basename /c\ +func_basename ()\ +{\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\ +func_dirname_and_basename ()\ +{\ +\ case ${1} in\ +\ */*) func_dirname_result="${1%/*}${2}" ;;\ +\ * ) func_dirname_result="${3}" ;;\ +\ esac\ +\ func_basename_result="${1##*/}"\ +} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_stripname ()$/,/^} # func_stripname /c\ +func_stripname ()\ +{\ +\ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\ +\ # positional parameters, so assign one to ordinary parameter first.\ +\ func_stripname_result=${3}\ +\ func_stripname_result=${func_stripname_result#"${1}"}\ +\ func_stripname_result=${func_stripname_result%"${2}"}\ +} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\ +func_split_long_opt ()\ +{\ +\ func_split_long_opt_name=${1%%=*}\ +\ func_split_long_opt_arg=${1#*=}\ +} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\ +func_split_short_opt ()\ +{\ +\ func_split_short_opt_arg=${1#??}\ +\ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\ +} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\ +func_lo2o ()\ +{\ +\ case ${1} in\ +\ *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\ +\ *) func_lo2o_result=${1} ;;\ +\ esac\ +} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_xform ()$/,/^} # func_xform /c\ +func_xform ()\ +{\ + func_xform_result=${1%.*}.lo\ +} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_arith ()$/,/^} # func_arith /c\ +func_arith ()\ +{\ + func_arith_result=$(( $* ))\ +} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_len ()$/,/^} # func_len /c\ +func_len ()\ +{\ + func_len_result=${#1}\ +} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + +fi + +if test x"$lt_shell_append" = xyes; then + sed -e '/^func_append ()$/,/^} # func_append /c\ +func_append ()\ +{\ + eval "${1}+=\\${2}"\ +} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\ +func_append_quoted ()\ +{\ +\ func_quote_for_eval "${2}"\ +\ eval "${1}+=\\\\ \\$func_quote_for_eval_result"\ +} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: + + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5 +$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;} +fi + + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi + +# +# CONFIG_SUBDIRS section. +# +if test "$no_recursion" != yes; then + + # Remove --cache-file, --srcdir, and --disable-option-checking arguments + # so they do not pile up. + ac_sub_configure_args= + ac_prev= + eval "set x $ac_configure_args" + shift + for ac_arg + do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case $ac_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + --disable-option-checking) + ;; + *) + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_sub_configure_args " '$ac_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ac_arg="--prefix=$prefix" + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ac_sub_configure_args="--silent $ac_sub_configure_args" + fi + + # Always prepend --disable-option-checking to silence warnings, since + # different subdirs can have different --enable and --with options. + ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" + + ac_popdir=`pwd` + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + test -d "$srcdir/$ac_dir" || continue + + ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" + $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 + $as_echo "$ac_msg" >&6 + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + cd "$ac_dir" + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f "$ac_srcdir/configure.gnu"; then + ac_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ac_sub_configure=$ac_srcdir/configure + elif test -f "$ac_srcdir/configure.in"; then + # This should be Cygnus configure. + ac_sub_configure=$ac_aux_dir/configure + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 +$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; + *) # Relative name. + ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 +$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + fi + + cd "$ac_popdir" + done +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + diff --git a/shadowsocksr-libev/src/configure.ac b/shadowsocksr-libev/src/configure.ac new file mode 100755 index 00000000000..6586f2b3eae --- /dev/null +++ b/shadowsocksr-libev/src/configure.ac @@ -0,0 +1,330 @@ +dnl -*- Autoconf -*- +dnl Process this file with autoconf to produce a configure script. + +AC_PREREQ([2.67]) +AC_INIT([shadowsocks-libev], [2.5.6], [max.c.lv@gmail.com]) +AC_CONFIG_SRCDIR([src/encrypt.c]) +AC_CONFIG_HEADERS([config.h]) +AC_CONFIG_AUX_DIR(auto) +AC_CONFIG_MACRO_DIR([m4]) +AC_USE_SYSTEM_EXTENSIONS + +AM_INIT_AUTOMAKE([subdir-objects foreign -Wno-gnu -Werror]) +m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) +AM_MAINTAINER_MODE +AM_DEP_TRACK + +dnl Checks for lib +AC_DISABLE_STATIC +AC_DISABLE_SHARED +LT_INIT([dlopen]) + +dnl Check for pcre library +TS_CHECK_PCRE +if test "x${enable_pcre}" != "xyes"; then + AC_MSG_ERROR([Cannot find pcre library. Configure --with-pcre=DIR]) +fi + +dnl Checks for using shared libraries from system +AC_ARG_ENABLE( + [system-shared-lib], + AS_HELP_STRING([--enable-system-shared-lib], [build against shared libraries when possible]), + [ + case "${enableval}" in + yes) enable_system_shared_lib=true ;; + no) enable_system_shared_lib=false ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-system-shared-lib]) ;; + esac], [enable_system_shared_lib=false]) +AM_CONDITIONAL([USE_SYSTEM_SHARED_LIB], [test x$enable_system_shared_lib = xtrue]) + +dnl Checks for crypto library +AC_ARG_WITH( + [crypto-library], + [AS_HELP_STRING([--with-crypto-library=library], [build with the given crypto library, TYPE=openssl|polarssl|mbedtls @<:@default=openssl@:>@])], + [ + case "${withval}" in + openssl|polarssl|mbedtls) ;; + *) AC_MSG_ERROR([bad value ${withval} for --with-crypto-library]) ;; + esac + ], + [with_crypto_library="openssl"] +) + +AC_ARG_ENABLE([documentation], + AS_HELP_STRING([--disable-documentation], [do not build documentation]), + [disable_documentation=true], + [disable_documentation=false]) +AM_CONDITIONAL([ENABLE_DOCUMENTATION], [test x$disable_documentation = xfalse]) + +AM_COND_IF([ENABLE_DOCUMENTATION], [ + AC_PATH_PROG([ASCIIDOC], [asciidoc]) + test x"${ASCIIDOC}" != x || AC_MSG_ERROR([Cannot find `asciidoc` in PATH.]) + AC_PATH_PROG([XMLTO], [xmlto]) + test x"$XMLTO" != x || AC_MSG_ERROR([Cannot find `xmlto` in PATH.]) + AC_PATH_PROG([GZIP], [gzip], [gzip]) + AC_PATH_PROG([MV], [mv], [mv]) + AC_PROG_SED +]) + +dnl Checks for programs. +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_LIBTOOL +AC_PROG_MAKE_SET +AC_LANG_SOURCE + +dnl Checks for libev +AM_COND_IF([USE_SYSTEM_SHARED_LIB], + [], + [m4_include([libev/libev.m4])]) + +dnl Add library for mingw +case $host in + *-mingw*) + LIBS="$LIBS -ladvapi32 -lgdi32 -lws2_32 -lcrypt32" + ;; + *) + ;; +esac + +dnl Checks for TLS +AX_TLS([:], [:]) + +dnl Checks for crypto library +case "${with_crypto_library}" in + openssl) + ss_ZLIB + ss_OPENSSL + AC_DEFINE([USE_CRYPTO_OPENSSL], [1], [Use OpenSSL library]) + ;; + polarssl) + ss_POLARSSL + AC_DEFINE([USE_CRYPTO_POLARSSL], [1], [Use PolarSSL library]) + ;; + mbedtls) + ss_MBEDTLS + AC_DEFINE([USE_CRYPTO_MBEDTLS], [1], [Use mbed TLS library]) + ;; +esac + +dnl Checks for Apple CommonCrypto API +AC_ARG_ENABLE(applecc, + AS_HELP_STRING([--enable-applecc], [enable Apple CommonCrypto API support]), + [ + AC_CHECK_HEADERS(CommonCrypto/CommonCrypto.h, + [], + [AC_MSG_ERROR([CommonCrypto header files not found.]); break] + ) + AC_CHECK_FUNCS([CCCryptorCreateWithMode], , + [AC_MSG_ERROR([CommonCrypto API needs OS X (>= 10.7) and iOS (>= 5.0).]); break] + ) + AC_DEFINE([USE_CRYPTO_APPLECC], [1], [Use Apple CommonCrypto library]) + ] +) + +dnl Checks for inet_ntop +ss_FUNC_INET_NTOP + +dnl Checks for host. +AC_MSG_CHECKING(for what kind of host) +case $host in + *-linux*) + os_support=linux + AC_MSG_RESULT(Linux) + ;; + *-mingw*) + dnl Add custom macros for libev + AC_DEFINE([FD_SETSIZE], [2048], [Reset max file descriptor size.]) + AC_DEFINE([EV_FD_TO_WIN32_HANDLE(fd)], [(fd)], [Override libev default fd conversion macro.]) + AC_DEFINE([EV_WIN32_HANDLE_TO_FD(handle)], [(handle)], [Override libev default handle conversion macro.]) + AC_DEFINE([EV_WIN32_CLOSE_FD(fd)], [closesocket(fd)], [Override libev default fd close macro.]) + + os_support=mingw + AC_MSG_RESULT(MinGW) + ;; + *) + AC_MSG_RESULT(transparent proxy does not support for $host) + ;; +esac + +dnl Checks for pthread +AX_PTHREAD([LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + CC="$PTHREAD_CC"], AC_MSG_ERROR(Can not find pthreads. This is required.)) + +dnl Checks for stack protector +GGL_CHECK_STACK_PROTECTOR([has_stack_protector=yes], [has_stack_protector=no]) +# XXX - disable -fstack-protector due to missing libssp_nonshared +case "$host_os" in + *aix*) + AC_MSG_NOTICE([-fstack-protector disabled on AIX]) + has_stack_protector=no + ;; + *sunos*) + AC_MSG_NOTICE([-fstack-protector disabled on SunOS]) + has_stack_protector=no + ;; + *solaris*) + AC_MSG_NOTICE([-fstack-protector disabled on Solaris]) + has_stack_protector=no + ;; +esac + +AC_ARG_ENABLE(ssp, +[AS_HELP_STRING(--disable-ssp,Do not compile with -fstack-protector)], +[ + enable_ssp="no" +], +[ + enable_ssp="yes" +]) + +if test x$has_stack_protector = xyes && test x$enable_ssp = xyes; then + CFLAGS="$CFLAGS -fstack-protector" + AC_MSG_NOTICE([-fstack-protector enabled in CFLAGS]) +fi + +AM_CONDITIONAL(BUILD_REDIRECTOR, test "$os_support" = "linux") +AM_CONDITIONAL(BUILD_WINCOMPAT, test "$os_support" = "mingw") + +dnl Checks for header files. +AC_CHECK_HEADERS([limits.h stdint.h inttypes.h arpa/inet.h fcntl.h langinfo.h locale.h netdb.h netinet/in.h stdlib.h string.h strings.h unistd.h sys/ioctl.h]) + +dnl A special check required for on Darwin. See +dnl http://www.gnu.org/software/autoconf/manual/html_node/Header-Portability.html. +AC_CHECK_HEADERS([sys/socket.h]) +AC_CHECK_HEADERS([net/if.h], [], [], +[ +#include +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +]) + +case $host in + *-mingw*) + AC_DEFINE([CONNECT_IN_PROGRESS], [WSAEWOULDBLOCK], [errno for incomplete non-blocking connect(2)]) + AC_CHECK_HEADERS([windows.h winsock2.h ws2tcpip.h], [], [AC_MSG_ERROR([Missing MinGW headers])], []) + ;; + *-linux*) + AC_DEFINE([CONNECT_IN_PROGRESS], [EINPROGRESS], [errno for incomplete non-blocking connect(2)]) + dnl Checks for netfilter headers + AC_CHECK_HEADERS([linux/if.h linux/netfilter_ipv4.h linux/netfilter_ipv6/ip6_tables.h], + [], [AC_MSG_ERROR([Missing netfilter headers])], + [[ + #if HAVE_LIMITS_H + #include + #endif + /* Netfilter ip(6)tables v1.4.0 has broken headers */ + #if HAVE_NETINET_IN_H + #include + #endif + #if HAVE_LINUX_IF_H + #include + #endif + #if HAVE_SYS_SOCKET_H + #include + #endif + ]]) + ;; + *) + # These are POSIX-like systems using BSD-like sockets API. + AC_DEFINE([CONNECT_IN_PROGRESS], [EINPROGRESS], [errno for incomplete non-blocking connect(2)]) + ;; +esac + +AC_C_BIGENDIAN + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_INLINE +AC_TYPE_SSIZE_T + +dnl Checks for header files. +AC_HEADER_ASSERT +AC_HEADER_STDC +AC_HEADER_SYS_WAIT + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_TYPE_SSIZE_T +AC_TYPE_UINT16_T +AC_TYPE_UINT8_T +AC_HEADER_TIME + +dnl Checks for library functions. +AC_FUNC_FORK +AC_FUNC_SELECT_ARGTYPES +AC_TYPE_SIGNAL +AC_CHECK_FUNCS([memset select setresuid setreuid strerror getpwnam_r setrlimit]) + +dnl Check for select() into ws2_32 for Msys/Mingw +if test "$ac_cv_func_select" != "yes"; then + AC_MSG_CHECKING([for select in ws2_32]) + AC_TRY_LINK([ +#ifdef HAVE_WINSOCK2_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#endif + ],[ + select(0,(fd_set *)NULL,(fd_set *)NULL,(fd_set *)NULL,(struct timeval *)NULL); + ],[ + AC_MSG_RESULT([yes]) + HAVE_SELECT="1" + AC_DEFINE_UNQUOTED(HAVE_SELECT, 1, + [Define to 1 if you have the 'select' function.]) + HAVE_SYS_SELECT_H="1" + AC_DEFINE_UNQUOTED(HAVE_SYS_SELECT_H, 1, + [Define to 1 if you have the header file.]) + ],[ + AC_MSG_ERROR([no]) + ]) +fi + +AC_CHECK_LIB(socket, connect) + +dnl Checks for library functions. +AC_CHECK_FUNCS([malloc memset socket]) + +dnl Add define for libudns to enable IPv6 support +dnl This is an option defined in the origin configure script +AC_DEFINE([HAVE_IPv6], [1], [Enable IPv6 support in libudns]) + +AM_COND_IF([USE_SYSTEM_SHARED_LIB],[ + AC_CHECK_LIB([sodium], [sodium_init], ,[ + AC_MSG_ERROR([Couldn't find libsodium. Try installing libsodium-dev@<:@el@:>@.]) + ]) + ], + [AC_CONFIG_SUBDIRS([libsodium])]) + +AC_CONFIG_FILES([ shadowsocks-libev.pc + Makefile + libcork/Makefile + libipset/Makefile + src/Makefile]) +AM_COND_IF([USE_SYSTEM_SHARED_LIB],[ + AC_CHECK_LIB([udns], [dns_dnlen], ,[AC_MSG_ERROR([Couldn't find libudns. Try installing libudns-dev or udns-devel.])]) + AC_CHECK_LIB([ev], [ev_loop_destroy], ,[AC_MSG_ERROR([Couldn't find libev. Try installing libev-dev@<:@el@:>@.])]) + ], + [AC_CONFIG_FILES([libudns/Makefile + libev/Makefile])]) + +AM_COND_IF([ENABLE_DOCUMENTATION], + [AC_CONFIG_FILES([doc/Makefile]) +]) + +AC_OUTPUT diff --git a/shadowsocksr-libev/src/debian/.gitignore b/shadowsocksr-libev/src/debian/.gitignore new file mode 100644 index 00000000000..4bd3419f852 --- /dev/null +++ b/shadowsocksr-libev/src/debian/.gitignore @@ -0,0 +1,5 @@ +*.substvars +debhelper-build-stamp +libshadowsocks-libev*/ +libshadowsocks-libev-dev/ +tmp/ diff --git a/shadowsocksr-libev/src/debian/README.Debian b/shadowsocksr-libev/src/debian/README.Debian new file mode 100644 index 00000000000..75f51844acb --- /dev/null +++ b/shadowsocksr-libev/src/debian/README.Debian @@ -0,0 +1,17 @@ +shadowsocks-libev for Debian +---------------------- + +The Debian package has added systemd support. A default server service which +reads the default configuration in /etc/default/shadowsocks-libev is installed +and enabled by default, plus some other service templates placed in +/lib/systemd/system, which can be used by users later. + +Another problem is that shadowsocks-libev is licensed under GPLv3+. This will +conflict with OpenSSL License when linked against OpenSSL library. As a +result, this package faces licensing problem. Use it at your own risk. + + -- Boyuan Yang <073plan@gmail.com> Wed, 14 Oct 2015 09:18:50 +0800 + +(No special notes.) + + -- Max Lv Sat, 06 Apr 2013 16:59:15 +0800 diff --git a/shadowsocksr-libev/src/debian/changelog b/shadowsocksr-libev/src/debian/changelog new file mode 100644 index 00000000000..7a4e4489188 --- /dev/null +++ b/shadowsocksr-libev/src/debian/changelog @@ -0,0 +1,399 @@ +shadowsocks-libev (2.5.6-1) unstable; urgency=medium + + * Add outbound ACL for server. + * Refine log format. + + -- Max Lv Tue, 01 Nov 2016 09:51:52 +0800 + +shadowsocks-libev (2.5.5-1) unstable; urgency=medium + + * Refine attack detection. + + -- Max Lv Tue, 11 Oct 2016 15:45:09 +0800 + +shadowsocks-libev (2.5.4-1) unstable; urgency=medium + + * Fix a bug of auto blocking mechanism. + + -- Max Lv Sun, 09 Oct 2016 19:36:37 +0800 + +shadowsocks-libev (2.5.3-1) unstable; urgency=medium + + * Fix TCP Fast Open on macOS. + + -- Max Lv Wed, 21 Sep 2016 19:31:57 +0800 + +shadowsocks-libev (2.5.2-1) unstable; urgency=medium + + * Fix a bug of UDP relay mode of ss-local. + + -- Max Lv Mon, 12 Sep 2016 12:54:33 +0800 + +shadowsocks-libev (2.5.1-1) unstable; urgency=medium + + * Refine ACL feature with hostname support. + * Add HTTP/SNI parser for ss-local/ss-redir. + + -- Max Lv Sat, 10 Sep 2016 17:06:49 +0800 + +shadowsocks-libev (2.5.0-1) unstable; urgency=medium + + * Fix several bugs of the command line interface. + * Add aes-128/192/256-ctr ciphers. + * Add option MTU for UDP relay. + * Add MultiPath TCP support. + + -- Max Lv Mon, 29 Aug 2016 13:07:51 +0800 + +shadowsocks-libev (2.4.8-1) unstable; urgency=low + + * Update manual pages with asciidoc. + * Fix issues of bind_address option. + + -- Max Lv Wed, 20 Jul 2016 09:25:50 +0800 + +shadowsocks-libev (2.4.7-1) unstable; urgency=low + + * Add ss-nat, a helper script to set up NAT rules for ss-redir. + * Fix several issues for debian package. + + -- Max Lv Wed, 1 Jun 2016 18:21:45 +0800 + +shadowsocks-libev (2.4.6-1) unstable; urgency=low + + * Update manual pages. + + -- Max Lv Thu, 21 Apr 2016 17:33:34 +0800 + +shadowsocks-libev (2.4.5-1) unstable; urgency=low + + * Fix build issues on OpenWRT. + * Reduce the latency of redir mode. + + -- Max Lv Mon, 01 Feb 2016 13:22:50 +0800 + +shadowsocks-libev (2.4.4-1) unstable; urgency=low + + * Fix a potential memory leak. + * Fix some compiler related issues. + + -- Max Lv Wed, 13 Jan 2016 11:50:12 +0800 + +shadowsocks-libev (2.4.3-1) unstable; urgency=high + + * Refine the buffer allocation. + + -- Max Lv Sat, 19 Dec 2015 12:30:21 +0900 + +shadowsocks-libev (2.4.1-1) unstable; urgency=high + + * Fix a security bug. + + -- Max Lv Thu, 29 Oct 2015 15:42:47 +0900 + +shadowsocks-libev (2.4.0-1) unstable; urgency=low + + * Update the one-time authentication + + -- Max Lv Thu, 24 Sep 2015 14:11:05 +0900 + +shadowsocks-libev (2.3.3-1) unstable; urgency=low + + * Refine the onetime authentication of header. + * Enforce CRC16 on the payload. + + -- Max Lv Fri, 18 Sep 2015 10:38:21 +0900 + +shadowsocks-libev (2.3.2-1) unstable; urgency=low + + * Fix minor issues of build scripts. + + -- Max Lv Sun, 13 Sep 2015 15:22:28 +0900 + +shadowsocks-libev (2.3.1-1) unstable; urgency=low + + * Fix an issue of connection cache of UDP relay. + * Add support of onetime authentication for header verification. + + -- Max Lv Fri, 04 Sep 2015 07:54:02 +0900 + +shadowsocks-libev (2.3.0-1) unstable; urgency=low + + * Add manager mode to support multi-user and traffic stat. + * Fix a build issue on OS X El Capitan. + + -- Max Lv Thu, 30 Jul 2015 17:30:43 +0900 + +shadowsocks-libev (2.2.3-1) unstable; urgency=high + + * Fix the multiple UDP source port issue. + * Allow working in UDP only mode. + + -- Max Lv Sat, 11 Jul 2015 08:31:02 +0900 + +shadowsocks-libev (2.2.2-1) unstable; urgency=low + + * Fix the timer of UDP relay. + * Check name_len in the header. + + -- Max Lv Mon, 15 Jun 2015 10:26:40 +0900 + +shadowsocks-libev (2.2.1-1) unstable; urgency=low + + * Fix an issue of UDP relay. + + -- Max Lv Sun, 10 May 2015 21:23:44 +0900 + +shadowsocks-libev (2.2.0-1) unstable; urgency=low + + * Add TPROXY support in redir mode. + + -- Max Lv Mon, 04 May 2015 02:44:17 -0300 + +shadowsocks-libev (2.1.4-1) unstable; urgency=low + + * Fix a bug of server mode ACL. + + -- Max Lv Sun, 08 Feb 2015 20:24:43 +0900 + +shadowsocks-libev (2.1.3-1) unstable; urgency=low + + * Add ACL support to remote server. + + -- Max Lv Sun, 08 Feb 2015 10:59:44 +0900 + +shadowsocks-libev (2.1.2-1) unstable; urgency=low + + * Refine multiple port binding. + + -- Max Lv Sat, 31 Jan 2015 18:56:25 +0900 + +shadowsocks-libev (2.1.1-1) unstable; urgency=low + + * Fix a memory leak. + + -- Max Lv Wed, 21 Jan 2015 21:40:58 +0900 + +shadowsocks-libev (2.1.0-1) unstable; urgency=low + + * Fix a bug of tunnel mode. + + -- Max Lv Mon, 19 Jan 2015 09:59:52 +0900 + +shadowsocks-libev (2.0.8-1) unstable; urgency=low + + * Fix a bug of IPv6. + + -- Max Lv Fri, 16 Jan 2015 10:58:12 +0900 + +shadowsocks-libev (2.0.7-1) unstable; urgency=low + + * Fix some performance issue. + + -- Max Lv Tue, 13 Jan 2015 13:17:58 +0900 + +shadowsocks-libev (2.0.6-1) unstable; urgency=high + + * Fix a critical issue in redir mode. + + -- Max Lv Mon, 12 Jan 2015 21:51:19 +0900 + +shadowsocks-libev (2.0.5-1) unstable; urgency=low + + * Refine local, tunnel, and redir modes. + + -- Max Lv Mon, 12 Jan 2015 12:39:05 +0800 + +shadowsocks-libev (2.0.4-1) unstable; urgency=low + + * Fix building issues with MinGW32. + + -- Max Lv Sun, 11 Jan 2015 13:33:31 +0900 + +shadowsocks-libev (2.0.3-1) unstable; urgency=high + + * Fix some issues. + + -- Max Lv Sat, 10 Jan 2015 16:27:54 +0800 + +shadowsocks-libev (2.0.2-1) unstable; urgency=low + + * Fix issues with MinGW. + + -- Max Lv Sat, 10 Jan 2015 15:17:10 +0800 + +shadowsocks-libev (2.0.1-1) unstable; urgency=low + + * Implement a real asynchronous DNS resolver. + + -- Max Lv Sat, 10 Jan 2015 10:04:28 +0800 + +shadowsocks-libev (1.6.4-1) unstable; urgency=low + + * Update documents. + + -- Max Lv Wed, 07 Jan 2015 21:48:58 +0900 + +shadowsocks-libev (1.6.3-1) unstable; urgency=low + + * Refine ss-redir. + + -- Max Lv Sun, 04 Jan 2015 19:23:52 +0900 + +shadowsocks-libev (1.6.2-1) unstable; urgency=low + + * Fix some build issues. + + -- Max Lv Tue, 30 Dec 2014 10:30:28 +0800 + +shadowsocks-libev (1.6.1-1) unstable; urgency=high + + * Add salsa20 and chacha20 support. + + -- Max Lv Sat, 13 Dec 2014 15:11:34 +0800 + +shadowsocks-libev (1.6.0-1) unstable; urgency=low + + * Solve conflicts with other shadowsocks portings. + + -- Max Lv Mon, 17 Nov 2014 14:10:21 +0800 + +shadowsocks-libev (1.5.3-2) unstable; urgency=low + + * rename as shadowsocks-libev. + + -- Symeon Huang Sat, 15 Nov 2014 14:55:28 +0000 + +shadowsocks (1.5.3-1) unstable; urgency=low + + * Fix log on Win32. + + -- Max Lv Fri, 14 Nov 2014 09:10:06 +0800 + +shadowsocks (1.5.2-1) unstable; urgency=low + + * Handle SIGTERM and SIGKILL nicely. + + -- Max Lv Tue, 12 Nov 2014 13:11:29 +0800 + +shadowsocks (1.5.1-1) unstable; urgency=low + + * Fix a bug of tcp fast open. + + -- Max Lv Sat, 08 Nov 2014 19:45:37 +0900 + +shadowsocks (1.5.0-1) unstable; urgency=low + + * Support to build static or shared library. + * Supprot IPv6 NAT in redirect mode. + * Refine the cache size of UDPRelay. + + -- Max Lv Fri, 07 Nov 2014 09:33:19 +0800 + +shadowsocks (1.4.8-1) unstable; urgency=low + + * Fix a bug of tcp fast open. + + -- Max Lv Wed, 08 Oct 2014 18:02:02 +0800 + +shadowsocks (1.4.7-1) unstable; urgency=low + + * Add a new encryptor rc4-md5. + + -- Max Lv Tue, 09 Sep 2014 07:50:10 +0800 + +shadowsocks (1.4.6-1) unstable; urgency=low + + * Add ACL support. + + -- Max Lv Sat, 03 May 2014 04:37:10 -0400 + +shadowsocks (1.4.5-1) unstable; urgency=high + + * Fix the compatibility issue of udprelay. + * Enhance asyncns to reduce the latency. + * Add TCP_FASTOPEN support. + + -- Max Lv Sun, 20 Apr 2014 08:12:45 +0800 + +shadowsocks (1.4.4-1) unstable; urgency=low + + * Add CommonCrypto support for darwin. + * Fix some config related issues. + + -- Max Lv Wed, 26 Mar 2014 13:29:03 +0800 + +shadowsocks (1.4.3-1) unstable; urgency=low + + * Add tunnel mode with local port forwarding feature. + + -- Max Lv Fri, 21 Feb 2014 11:52:13 +0900 + +shadowsocks (1.4.2-1) unstable; urgency=high + + * Fix the UDP relay issues. + * Add syslog support. + + -- Max Lv Sun, 05 Jan 2014 10:05:29 +0900 + +shadowsocks (1.4.1-1) unstable; urgency=low + + * Add multi-port support. + * Add PolarSSL support by @linusyang. + + -- Max Lv Tue, 12 Nov 2013 03:57:21 +0000 + +shadowsocks (1.4.0-1) unstable; urgency=low + + * Add standard socks5 udp support. + + -- Max Lv Sun, 08 Sep 2013 02:20:40 +0000 + +shadowsocks (1.3.3-1) unstable; urgency=high + + * Provide more info in verbose mode. + + -- Max Lv Fri, 21 Jun 2013 09:59:20 +0800 + +shadowsocks (1.3.2-1) unstable; urgency=high + + * Fix some ciphers by @linusyang. + + -- Max Lv Sun, 09 Jun 2013 09:52:31 +0000 + +shadowsocks (1.3.1-1) unstable; urgency=low + + * Support more cihpers: camellia, idea, rc2 and seed. + + -- Max Lv Tue, 04 Jun 2013 00:56:17 +0000 + +shadowsocks (1.3-1) unstable; urgency=low + + * Able to bind connections to specific interface. + * Support more ciphers: aes-128-cfb, aes-192-cfb, aes-256-cfb, bf-cfb, cast5-cfb, des-cfb. + + -- Max Lv Thu, 16 May 2013 10:51:15 +0800 + +shadowsocks (1.2-2) unstable; urgency=low + + * Close timeouted TCP connections. + + -- Max Lv Tue, 07 May 2013 14:10:33 +0800 + +shadowsocks (1.2-1) unstable; urgency=low + + * Fix a high load issue. + + -- Max Lv Thu, 18 Apr 2013 10:52:34 +0800 + +shadowsocks (1.1-1) unstable; urgency=low + + * Fix a IPV6 resolve issue. + + -- Max Lv Wed, 10 Apr 2013 12:11:36 +0800 + +shadowsocks (1.0-2) unstable; urgency=low + + * Initial release. + + -- Max Lv Sat, 06 Apr 2013 16:59:15 +0800 diff --git a/shadowsocksr-libev/src/debian/compat b/shadowsocksr-libev/src/debian/compat new file mode 100644 index 00000000000..ec635144f60 --- /dev/null +++ b/shadowsocksr-libev/src/debian/compat @@ -0,0 +1 @@ +9 diff --git a/shadowsocksr-libev/src/debian/config.json b/shadowsocksr-libev/src/debian/config.json new file mode 100644 index 00000000000..aba1bf285f4 --- /dev/null +++ b/shadowsocksr-libev/src/debian/config.json @@ -0,0 +1,8 @@ +{ + "server":"127.0.0.1", + "server_port":8388, + "local_port":1080, + "password":"barfoo!", + "timeout":60, + "method":null +} diff --git a/shadowsocksr-libev/src/debian/control b/shadowsocksr-libev/src/debian/control new file mode 100644 index 00000000000..a47e6d283b7 --- /dev/null +++ b/shadowsocksr-libev/src/debian/control @@ -0,0 +1,78 @@ +Source: shadowsocks-libev +Section: net +Priority: extra +Maintainer: Max Lv +Build-Depends: + asciidoc, + autotools-dev, + debhelper (>= 9), + dh-systemd (>= 1.5), + gawk, + libpcre3-dev, + libssl-dev (>= 0.9.8), + mime-support, + pkg-config, + xmlto, +Standards-Version: 3.9.8 +Homepage: https://www.shadowsocks.org +Vcs-Git: https://github.com/shadowsocks/shadowsocks-libev.git +Vcs-Browser: https://github.com/shadowsocks/shadowsocks-libev + +Package: libshadowsocks-libev-dev +Architecture: any +Section: libdevel +Breaks: + shadowsocks-libev (<< 2.4.0), +Depends: + libshadowsocks-libev2 (= ${binary:Version}), + ${misc:Depends}, +Description: lightweight and secure socks5 proxy (development files) + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + Shadowsocks-libev was inspired by Shadowsock (in Python). It's rewritten + in pure C and only depends on libev, mbedTLS and a few other tiny + libraries. + . + This package provides C header files for the libraries. + +Package: libshadowsocks-libev2 +Architecture: any +Multi-Arch: same +Section: libs +Replaces: libshadowsocks-libev1 +Breaks: + libshadowsocks-libev1, + shadowsocks-libev (<< 2.4.0), +Pre-Depends: + ${misc:Pre-Depends}, +Depends: + ${misc:Depends}, + ${shlibs:Depends}, +Description: lightweight and secure socks5 proxy (shared library) + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + Shadowsocks-libev was inspired by Shadowsock (in Python). It's rewritten + in pure C and only depends on libev, mbedTLS and a few other tiny + libraries. + . + This package provides shared libraries. + +Package: shadowsocks-libev +Replaces: + shadowsocks (<< 1.5.3-2), +Breaks: + shadowsocks (<< 1.5.3-2), +Architecture: any +Depends: + apg, + ${misc:Depends}, + ${shlibs:Depends}, +Description: lightweight and secure socks5 proxy + Shadowsocks-libev is a lightweight and secure socks5 proxy for + embedded devices and low end boxes. + . + Shadowsocks-libev was inspired by Shadowsock (in Python). It's rewritten + in pure C and only depends on libev, mbedTLS and a few other tiny + libraries. diff --git a/shadowsocksr-libev/src/debian/copyright b/shadowsocksr-libev/src/debian/copyright new file mode 100644 index 00000000000..d4fe3cfa6f2 --- /dev/null +++ b/shadowsocksr-libev/src/debian/copyright @@ -0,0 +1,204 @@ +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: shadowsocks-libev +Upstream-Contact: Max Lv +Source: https://github.com/shadowsocks/shadowsocks-libev + +Files: * +Copyright: 2013-2015, Clow Windy + 2013-2016, Max Lv + 2014, Linus Yang +License: GPL-3+ + +Files: debian/* +Copyright: 2013-2015, Max Lv + 2015, Boyuan Yang <073plan@gmail.com> + 2016, Roger Shimizu +License: GPL-3+ + +Files: libcork/* libipset/* +Copyright: 2011-2013, RedJack, LLC. +License: BSD-3-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are + met: + . + Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + Neither the name of RedJack Software, LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: doc/* +Copyright: 2012-2016, Max Lv +License: GFDL-1.1+ + +Files: m4/ax_pthread.m4 +Copyright: 2008 Steven G. Johnson + 2011 Daniel Richard G. +License: GPL-3+ with Autoconf exception + +Files: m4/ax_tls.m4 +Copyright: 2008 Alan Woodland + 2010 Diego Elio Petteno` +License: GPL-3+ with Autoconf exception + +Files: m4/pcre.m4 +Copyright: 2015 Syrone Wong +License: Apache-2.0 + +Files: m4/stack-protector.m4 +Copyright: 2007 Google Inc. +License: Apache-2.0 + +Files: src/json.c src/json.h +Copyright: 2012-2014, James McLaughlin et al. +License: BSD-2-clause + +Files: src/http.c src/http.h src/protocol.h src/resolv.c src/resolv.h src/tls.c src/tls.h +Copyright: 2011-2014, Dustin Lundquist +License: BSD-2-clause + +Files: src/rule.c src/rule.h +Copyright: 2011-2012, Dustin Lundquist + 2011, Manuel Kasper +License: BSD-2-clause + +Files: src/ss-nat +Copyright: 2015, OpenWrt-dist + 2015, Jian Chang +License: GPL-3+ + +Files: src/uthash.h +Copyright: 2003-2013, Troy D. Hanson +License: BSD-1-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS + IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER + OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: Apache-2.0 + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You 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. + . + On Debian systems, the complete text of the Apache version 2.0 license + can be found in "/usr/share/common-licenses/Apache-2.0". + +License: BSD-2-clause + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + . + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + . + THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. + +License: GFDL-1.1+ + Permission is granted to copy, distribute and/or modify this document + under the terms of the GNU Free Documentation License, Version 1.1 or + any later version published by the Free Software Foundation; + with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. + . + A copy of the license is included in the section entitled + "GNU Free Documentation License". + +License: GPL-3+ + This package is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + . + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program. If not, see + . + On Debian systems, the complete text of the GNU General + Public License version 3 can be found in "/usr/share/common-licenses/GPL-3". + +License: GPL-3+ with Autoconf exception + This program is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation, either version 3 of the License, or (at your + option) any later version. + . + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General + Public License for more details. + . + You should have received a copy of the GNU General Public License along + with this program. If not, see . + . + As a special exception, the respective Autoconf Macro's copyright owner + gives unlimited permission to copy, distribute and modify the configure + scripts that are the output of Autoconf when processing the Macro. You + need not follow the terms of the GNU General Public License when using + or distributing such scripts, even though portions of the text of the + Macro appear in them. The GNU General Public License (GPL) does govern + all other use of the material that constitutes the Autoconf Macro. + . + This special exception to the GPL applies to versions of the Autoconf + Macro released by the Autoconf Archive. When you make and distribute a + modified version of the Autoconf Macro, you may extend this special + exception to the GPL to apply to your modified version as well. diff --git a/shadowsocksr-libev/src/debian/copyright.original b/shadowsocksr-libev/src/debian/copyright.original new file mode 100644 index 00000000000..b7ed35e2d58 --- /dev/null +++ b/shadowsocksr-libev/src/debian/copyright.original @@ -0,0 +1,23 @@ +This work was packaged for Debian by: + + Max Lv on Sat, 06 Apr 2013 16:59:15 +0800 + +It was downloaded from: + + https://github.com/madeye/shadowsocks-libev + +Upstream Author(s): + + clowwindy + +Copyright: + + Copyright (C) 2013 Max Lv + +License: + + GPLv3 + +The Debian packaging is: + + Copyright (C) 2013 Max Lv diff --git a/shadowsocksr-libev/src/debian/libshadowsocks-libev-dev.install b/shadowsocksr-libev/src/debian/libshadowsocks-libev-dev.install new file mode 100644 index 00000000000..304e0ed9695 --- /dev/null +++ b/shadowsocksr-libev/src/debian/libshadowsocks-libev-dev.install @@ -0,0 +1,3 @@ +usr/include/ +usr/lib/*/libshadowsocks-libev.so +usr/lib/*/pkgconfig/ diff --git a/shadowsocksr-libev/src/debian/libshadowsocks-libev2.install b/shadowsocksr-libev/src/debian/libshadowsocks-libev2.install new file mode 100644 index 00000000000..590078a3dc5 --- /dev/null +++ b/shadowsocksr-libev/src/debian/libshadowsocks-libev2.install @@ -0,0 +1 @@ +usr/lib/*/libshadowsocks-libev.so.* diff --git a/shadowsocksr-libev/src/debian/rules b/shadowsocksr-libev/src/debian/rules new file mode 100755 index 00000000000..36c54345bab --- /dev/null +++ b/shadowsocksr-libev/src/debian/rules @@ -0,0 +1,25 @@ +#!/usr/bin/make -f +# See debhelper(7) (uncomment to enable) +# output every command that modifies files on the build system. +#export DH_VERBOSE = 1 + +# Security Hardening +export DEB_BUILD_MAINT_OPTIONS = hardening=+all + +DPKG_EXPORT_BUILDFLAGS = 1 +include /usr/share/dpkg/buildflags.mk + +override_dh_auto_install: + find src/ -name '*.la' -delete + dh_auto_install + +override_dh_auto_configure: + dh_auto_configure -- \ + --enable-shared \ + --disable-ssp + +override_dh_installchangelogs: + dh_installchangelogs -XChanges + +%: + dh $@ --with systemd diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev-local@.service b/shadowsocksr-libev/src/debian/shadowsocks-libev-local@.service new file mode 100644 index 00000000000..3595f6c8b7e --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev-local@.service @@ -0,0 +1,24 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This is a template unit file. Users may copy and rename the file into +# config directories to make new service instances. See systemd.unit(5) +# for details. + +[Unit] +Description=Shadowsocks-Libev Custom Client Service for %I +Documentation=man:ss-local(1) +After=network.target + +[Service] +Type=simple +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +ExecStart=/usr/bin/ss-local -c /etc/shadowsocks-libev/%i.json + +[Install] +WantedBy=multi-user.target + diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev-redir@.service b/shadowsocksr-libev/src/debian/shadowsocks-libev-redir@.service new file mode 100644 index 00000000000..420f1946c65 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev-redir@.service @@ -0,0 +1,24 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This is a template unit file. Users may copy and rename the file into +# config directories to make new service instances. See systemd.unit(5) +# for details. + +[Unit] +Description=Shadowsocks-Libev Custom Client Service Redir Mode for %I +Documentation=man:ss-redir(1) +After=network.target + +[Service] +Type=simple +CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE +ExecStart=/usr/bin/ss-redir -c /etc/shadowsocks-libev/%i.json + +[Install] +WantedBy=multi-user.target + diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev-server@.service b/shadowsocksr-libev/src/debian/shadowsocks-libev-server@.service new file mode 100644 index 00000000000..b6469951113 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev-server@.service @@ -0,0 +1,24 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This is a template unit file. Users may copy and rename the file into +# config directories to make new service instances. See systemd.unit(5) +# for details. + +[Unit] +Description=Shadowsocks-Libev Custom Server Service for %I +Documentation=man:ss-server(1) +After=network.target + +[Service] +Type=simple +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +ExecStart=/usr/bin/ss-server -c /etc/shadowsocks-libev/%i.json + +[Install] +WantedBy=multi-user.target + diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev-tunnel@.service b/shadowsocksr-libev/src/debian/shadowsocks-libev-tunnel@.service new file mode 100644 index 00000000000..3f9f8aefa69 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev-tunnel@.service @@ -0,0 +1,24 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This is a template unit file. Users may copy and rename the file into +# config directories to make new service instances. See systemd.unit(5) +# for details. + +[Unit] +Description=Shadowsocks-Libev Custom Client Service Tunnel Mode for %I +Documentation=man:ss-tunnel(1) +After=network.target + +[Service] +Type=simple +CapabilityBoundingSet=CAP_NET_BIND_SERVICE +ExecStart=/usr/bin/ss-tunnel -c /etc/shadowsocks-libev/%i.json + +[Install] +WantedBy=multi-user.target + diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.default b/shadowsocksr-libev/src/debian/shadowsocks-libev.default new file mode 100644 index 00000000000..7542b314625 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.default @@ -0,0 +1,25 @@ +# Defaults for shadowsocks initscript +# sourced by /etc/init.d/shadowsocks-libev +# installed at /etc/default/shadowsocks-libev by the maintainer scripts + +# +# This is a POSIX shell fragment +# +# Note: `START', `GROUP' and `MAXFD' options are not recognized by systemd. +# Please change those settings in the corresponding systemd unit file. + +# Enable during startup? +START=yes + +# Configuration file +CONFFILE="/etc/shadowsocks-libev/config.json" + +# Extra command line arguments +DAEMON_ARGS="-u" + +# User and group to run the server as +USER=root +GROUP=root + +# Number of maximum file descriptors +MAXFD=32768 diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.docs b/shadowsocksr-libev/src/debian/shadowsocks-libev.docs new file mode 100644 index 00000000000..0d4e47d0c73 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.docs @@ -0,0 +1,3 @@ +AUTHORS +README.md +debian/copyright.original diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.init b/shadowsocksr-libev/src/debian/shadowsocks-libev.init new file mode 100644 index 00000000000..5e2f5441ae5 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.init @@ -0,0 +1,136 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: shadowsocks-libev +# Required-Start: $network $local_fs $remote_fs +# Required-Stop: $remote_fs +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: lightweight secured socks5 proxy +# Description: Shadowsocks-libev is a lightweight secured +# socks5 proxy for embedded devices and low end boxes. +### END INIT INFO + +# Author: Max Lv + +# PATH should only include /usr/ if it runs after the mountnfs.sh script +PATH=/sbin:/usr/sbin:/bin:/usr/bin +DESC=shadowsocks-libev # Introduce a short description here +NAME=shadowsocks-libev # Introduce the short server's name here +DAEMON=/usr/bin/ss-server # Introduce the server's location here +DAEMON_ARGS="" # Arguments to run the daemon with +PIDFILE=/var/run/$NAME/$NAME.pid +SCRIPTNAME=/etc/init.d/$NAME + +# Exit if the package is not installed +[ -x $DAEMON ] || exit 0 + +# Read configuration variable file if it is present +[ -r /etc/default/$NAME ] && . /etc/default/$NAME + +[ "$START" = "yes" ] || exit 0 + +: ${USER:="root"} +: ${GROUP:="root"} + +# Load the VERBOSE setting and other rcS variables +. /lib/init/vars.sh + +# Define LSB log_* functions. +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() +{ + # Modify the file descriptor limit + ulimit -n ${MAXFD} + + # Take care of pidfile permissions + mkdir /var/run/$NAME 2>/dev/null || true + chown "$USER:$GROUP" /var/run/$NAME + + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid root:$GROUP --exec $DAEMON --test > /dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --chuid root:$GROUP --exec $DAEMON -- \ + -c "$CONFFILE" -a "$USER" -u -f $PIDFILE $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=KILL/5 --pidfile $PIDFILE --exec $DAEMON + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Wait for children to finish too if this is a daemon that forks + # and if the daemon is only ever run from this initscript. + # If the above conditions are not satisfied then add some other code + # that waits for the process to drop all resources that could be + # needed by services started subsequently. A last resort is to + # sleep for some time. + start-stop-daemon --stop --quiet --oknodo --retry=KILL/5 --exec $DAEMON + [ "$?" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + rm -f $PIDFILE + return "$RETVAL" +} + + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; +stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; +esac +;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart|force-reload) + log_daemon_msg "Restarting $DESC" "$NAME" + do_stop + case "$?" in + 0|1) + do_start + case "$?" in + 0) log_end_msg 0 ;; + 1) log_end_msg 1 ;; # Old process is still running + *) log_end_msg 1 ;; # Failed to start + esac + ;; + *) + # Failed to stop + log_end_msg 1 + ;; + esac + ;; +*) + echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2 + exit 3 + ;; +esac + +: diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.install b/shadowsocksr-libev/src/debian/shadowsocks-libev.install new file mode 100644 index 00000000000..bee58a6e42a --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.install @@ -0,0 +1,5 @@ +debian/config.json usr/share/shadowsocks-libev +debian/shadowsocks-libev-*.service lib/systemd/system +usr/bin/ +usr/share/man/ +completions/bash/* usr/share/bash-completion/completions/ diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.postinst b/shadowsocksr-libev/src/debian/shadowsocks-libev.postinst new file mode 100755 index 00000000000..58451ed83a3 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.postinst @@ -0,0 +1,25 @@ +#!/bin/sh + +set -e + +case "$1" in + configure|reconfigure) + if [ ! -f /etc/shadowsocks-libev/config.json ]; then + passwd=$(apg -n 1 -M ncl) + mkdir -p /etc/shadowsocks-libev + sed "s/barfoo!/$passwd/" /usr/share/shadowsocks-libev/config.json \ + > /etc/shadowsocks-libev/config.json + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + exit 0 + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.postrm b/shadowsocksr-libev/src/debian/shadowsocks-libev.postrm new file mode 100644 index 00000000000..bccb360a4f3 --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.postrm @@ -0,0 +1,22 @@ +#!/bin/sh + +set -e + +case "$1" in + purge) + rm -f /etc/shadowsocks-libev/config.json + test -f /etc/shadowsocks-libev/* \ + || rm -r /etc/shadowsocks-libev/ + ;; + remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear) + exit 0 + ;; + *) + echo "postrm called with unknown argument \`$1'" >&2 + exit 0 + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/shadowsocksr-libev/src/debian/shadowsocks-libev.service b/shadowsocksr-libev/src/debian/shadowsocks-libev.service new file mode 100644 index 00000000000..4887b593f2c --- /dev/null +++ b/shadowsocksr-libev/src/debian/shadowsocks-libev.service @@ -0,0 +1,25 @@ +# This file is part of shadowsocks-libev. +# +# Shadowsocks-libev is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This file is default for Debian packaging. See also +# /etc/default/shadowsocks-libev for environment variables. + +[Unit] +Description=Shadowsocks-libev Default Server Service +Documentation=man:shadowsocks-libev(8) +After=network.target + +[Service] +Type=simple +EnvironmentFile=/etc/default/shadowsocks-libev +User=root +LimitNOFILE=32768 +ExecStart=/usr/bin/ss-server -a $USER -c $CONFFILE $DAEMON_ARGS + +[Install] +WantedBy=multi-user.target + diff --git a/shadowsocksr-libev/src/debian/source.lintian-overrides b/shadowsocksr-libev/src/debian/source.lintian-overrides new file mode 100644 index 00000000000..f290882bc7d --- /dev/null +++ b/shadowsocksr-libev/src/debian/source.lintian-overrides @@ -0,0 +1,4 @@ +# false positive: #505857 +shadowsocks-libev source: debian-watch-file-should-mangle-version +# false positive: #765166 +shadowsocks-libev source: license-problem-gfdl-invariants diff --git a/shadowsocksr-libev/src/debian/source/format b/shadowsocksr-libev/src/debian/source/format new file mode 100644 index 00000000000..163aaf8d82b --- /dev/null +++ b/shadowsocksr-libev/src/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/shadowsocksr-libev/src/debian/watch b/shadowsocksr-libev/src/debian/watch new file mode 100644 index 00000000000..173c756dc84 --- /dev/null +++ b/shadowsocksr-libev/src/debian/watch @@ -0,0 +1,6 @@ +version=4 + +opts=" \ + filenamemangle=s%(?:.*?)?v?(\d[\d.]*)\.tar\.gz%shadowsocks-libev-$1.tar.gz%" \ + https://github.com/shadowsocks/shadowsocks-libev/tags \ + (?:.*?/)?v?(\d[\d.]*)\.tar\.gz debian uupdate diff --git a/shadowsocksr-libev/src/doc/Makefile.am b/shadowsocksr-libev/src/doc/Makefile.am new file mode 100644 index 00000000000..8c29d04594b --- /dev/null +++ b/shadowsocksr-libev/src/doc/Makefile.am @@ -0,0 +1,62 @@ +ASCIIDOC = @ASCIIDOC@ +ASCIIDOC_EXTRA = +MANPAGE_XSL = manpage-normal.xsl +XMLTO = @XMLTO@ +XMLTO_EXTRA = -m manpage-bold-literal.xsl +GZIPCMD = @GZIP@ +INSTALL = @INSTALL@ +RM = @RM@ +MV = @MV@ +SED = @SED@ +VERSION = `$(SED) -n 's/.*PACKAGE_VERSION "\(.*\)"/\1/p'\ + ../config.h` + +# Guard against environment variables +if ENABLE_DOCUMENTATION + MAN1_DOC = + MAN1_DOC += ss-local.1 + MAN1_DOC += ss-manager.1 + MAN1_DOC += ss-nat.1 + MAN1_DOC += ss-redir.1 + MAN1_DOC += ss-server.1 + MAN1_DOC += ss-tunnel.1 + + MAN8_DOC = + MAN8_DOC += shadowsocks-libev.8 +else + MAN1_DOC = + MAN8_DOC = +endif + +MAN8_XML = $(MAN8_DOC:%.8=%.xml) +MAN1_XML = $(MAN1_DOC:%.1=%.xml) +MAN_XML = $(MAN8_XML) $(MAN1_XML) + +MAN8_HTML = $(MAN8_DOC:%.8=%.html) +MAN1_HTML = $(MAN1_DOC:%.1=%.html) +MAN_HTML = $(MAN8_HTML) $(MAN1_HTML) + +MAN8_TXT = $(MAN8_DOC:%.8=%.asciidoc) +MAN1_TXT = $(MAN1_DOC:%.1=%.asciidoc) +MAN_TXT = $(MAN8_TXT) $(MAN1_TXT) + +man_MANS = $(MAN8_DOC) $(MAN1_DOC) + +html-local: $(MAN_HTML) + +%.1: %.xml + $(AM_V_GEN)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< + +%.8: %.xml + $(AM_V_GEN)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< + +%.xml: %.asciidoc + $(AM_V_GEN)$(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \ + -aversion=$(VERSION) $(ASCIIDOC_EXTRA) -o $@ $< + +%.html: %.asciidoc + $(AM_V_GEN)$(ASCIIDOC) -b html4 -d article -f asciidoc.conf \ + -aversion=$(VERSION) $(ASCIIDOC_EXTRA) -o $@ $< + +doc_DATA = $(MAN_HTML) +CLEANFILES = $(MAN_XML) $(man_MANS) $(MAN_HTML) diff --git a/shadowsocksr-libev/src/doc/Makefile.in b/shadowsocksr-libev/src/doc/Makefile.in new file mode 100644 index 00000000000..b205c89ee13 --- /dev/null +++ b/shadowsocksr-libev/src/doc/Makefile.in @@ -0,0 +1,646 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = doc +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/inet_ntop.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/mbedtls.m4 \ + $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre.m4 \ + $(top_srcdir)/m4/polarssl.m4 \ + $(top_srcdir)/m4/stack-protector.m4 $(top_srcdir)/m4/zlib.m4 \ + $(top_srcdir)/libev/libev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man1dir = $(mandir)/man1 +am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)" \ + "$(DESTDIR)$(docdir)" +man8dir = $(mandir)/man8 +NROFF = nroff +MANS = $(man_MANS) +DATA = $(doc_DATA) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ASCIIDOC = @ASCIIDOC@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GZIP = @GZIP@ +INET_NTOP_LIB = @INET_NTOP_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPCRE = @LIBPCRE@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CONFIG = @PCRE_CONFIG@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = `$(SED) -n 's/.*PACKAGE_VERSION "\(.*\)"/\1/p'\ + ../config.h` + +XMLTO = @XMLTO@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcre_pcreh = @pcre_pcreh@ +pcreh = @pcreh@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +ASCIIDOC_EXTRA = +MANPAGE_XSL = manpage-normal.xsl +XMLTO_EXTRA = -m manpage-bold-literal.xsl +GZIPCMD = @GZIP@ +RM = @RM@ +@ENABLE_DOCUMENTATION_FALSE@MAN1_DOC = + +# Guard against environment variables +@ENABLE_DOCUMENTATION_TRUE@MAN1_DOC = ss-local.1 ss-manager.1 ss-nat.1 \ +@ENABLE_DOCUMENTATION_TRUE@ ss-redir.1 ss-server.1 ss-tunnel.1 +@ENABLE_DOCUMENTATION_FALSE@MAN8_DOC = +@ENABLE_DOCUMENTATION_TRUE@MAN8_DOC = shadowsocks-libev.8 +MAN8_XML = $(MAN8_DOC:%.8=%.xml) +MAN1_XML = $(MAN1_DOC:%.1=%.xml) +MAN_XML = $(MAN8_XML) $(MAN1_XML) +MAN8_HTML = $(MAN8_DOC:%.8=%.html) +MAN1_HTML = $(MAN1_DOC:%.1=%.html) +MAN_HTML = $(MAN8_HTML) $(MAN1_HTML) +MAN8_TXT = $(MAN8_DOC:%.8=%.asciidoc) +MAN1_TXT = $(MAN1_DOC:%.1=%.asciidoc) +MAN_TXT = $(MAN8_TXT) $(MAN1_TXT) +man_MANS = $(MAN8_DOC) $(MAN1_DOC) +doc_DATA = $(MAN_HTML) +CLEANFILES = $(MAN_XML) $(man_MANS) $(MAN_HTML) +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign doc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign doc/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man1: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man1dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.1[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ + done; } + +uninstall-man1: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man1dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.1[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) +install-man8: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man8dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.8[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \ + done; } + +uninstall-man8: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man8dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.8[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir) +install-docDATA: $(doc_DATA) + @$(NORMAL_INSTALL) + @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(docdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(docdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(docdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(docdir)" || exit $$?; \ + done + +uninstall-docDATA: + @$(NORMAL_UNINSTALL) + @list='$(doc_DATA)'; test -n "$(docdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(docdir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(MANS) $(DATA) +installdirs: + for dir in "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(docdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: html-local + +info: info-am + +info-am: + +install-data-am: install-docDATA install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man1 install-man8 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-docDATA uninstall-man + +uninstall-man: uninstall-man1 uninstall-man8 + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am html-local \ + info info-am install install-am install-data install-data-am \ + install-docDATA install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-man1 install-man8 \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags-am uninstall uninstall-am uninstall-docDATA uninstall-man \ + uninstall-man1 uninstall-man8 + +.PRECIOUS: Makefile + + +html-local: $(MAN_HTML) + +%.1: %.xml + $(AM_V_GEN)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< + +%.8: %.xml + $(AM_V_GEN)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $< + +%.xml: %.asciidoc + $(AM_V_GEN)$(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \ + -aversion=$(VERSION) $(ASCIIDOC_EXTRA) -o $@ $< + +%.html: %.asciidoc + $(AM_V_GEN)$(ASCIIDOC) -b html4 -d article -f asciidoc.conf \ + -aversion=$(VERSION) $(ASCIIDOC_EXTRA) -o $@ $< + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/shadowsocksr-libev/src/doc/asciidoc.conf b/shadowsocksr-libev/src/doc/asciidoc.conf new file mode 100644 index 00000000000..906f6a55eb7 --- /dev/null +++ b/shadowsocksr-libev/src/doc/asciidoc.conf @@ -0,0 +1,36 @@ +[tags] +bracket-emphasis={1?[{1}]}<|> + +[quotes] +<|>=#bracket-emphasis + +[attributes] +asterisk=* +plus=+ +caret=^ +startsb=[ +endsb=] +backslash=\ +tilde=~ +apostrophe=' +backtick=` +litdd=-- + +ifdef::doctype-manpage[] +ifdef::backend-docbook[] +[header] +template::[header-declarations] + + +{mantitle} +{manvolnum} +Shadowsocks-libev +{version} +Shadowsocks-libev Manual + + + {manname} + {manpurpose} + +endif::backend-docbook[] +endif::doctype-manpage[] diff --git a/shadowsocksr-libev/src/doc/manpage-base.xsl b/shadowsocksr-libev/src/doc/manpage-base.xsl new file mode 100644 index 00000000000..a264fa61609 --- /dev/null +++ b/shadowsocksr-libev/src/doc/manpage-base.xsl @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + sp + + + + + + + + br + + + diff --git a/shadowsocksr-libev/src/doc/manpage-bold-literal.xsl b/shadowsocksr-libev/src/doc/manpage-bold-literal.xsl new file mode 100644 index 00000000000..608eb5df628 --- /dev/null +++ b/shadowsocksr-libev/src/doc/manpage-bold-literal.xsl @@ -0,0 +1,17 @@ + + + + + + + fB + + + fR + + + diff --git a/shadowsocksr-libev/src/doc/manpage-normal.xsl b/shadowsocksr-libev/src/doc/manpage-normal.xsl new file mode 100644 index 00000000000..a48f5b11f3d --- /dev/null +++ b/shadowsocksr-libev/src/doc/manpage-normal.xsl @@ -0,0 +1,13 @@ + + + + + + +\ +. + + diff --git a/shadowsocksr-libev/src/doc/shadowsocks-libev.asciidoc b/shadowsocksr-libev/src/doc/shadowsocks-libev.asciidoc new file mode 100644 index 00000000000..1933cf08ade --- /dev/null +++ b/shadowsocksr-libev/src/doc/shadowsocks-libev.asciidoc @@ -0,0 +1,248 @@ +shadowsocks-libev(8) +==================== + +NAME +---- +shadowsocks-libev - a lightweight and secure socks5 proxy + +SYNOPSIS +-------- +*ss-local*|*ss-redir*|*ss-server*|*ss-tunnel*|*ss-manager* + [-s ] [-p ] [-l ] [-k ] + [-m ] [-f ] [-t ] [-c ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of *libev* +to achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. One is `ss-server`(1) +that runs on a remote server to provide secured tunnel service. +`ss-local`(1) and `ss-redir`(1) are clients on your local machines to proxy +traffic(TCP/UDP or both). +`ss-tunnel`(1) is a tool for local port forwarding. + +While `ss-local`(1) works as a standard socks5 proxy, `ss-redir`(1) works +as a transparent proxy and requires netfilter's NAT module. For more +information, check out the 'EXAMPLE' section. + +`ss-manager`(1) is a controller for multi-user management and traffic +statistics, using UNIX domain socket to talk with `ss-server`(1). +Also, it provides a UNIX domain socket or IP based API for other software. +About the details of this API, please refer to the 'PROTOCOL' section. + +OPTIONS +------- + +-s :: +Set the server's hostname or IP. + +-l :: +Set the local port number. ++ +Not available in server nor manager mode. + +-k :: +Set the password. The server and the client should use the same password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. + +-n :: +Specify max number of open files. ++ +Not available in manager mode. ++ +Only available on Linux. + +-i :: +Send traffic through specific network interface. ++ +For example, there are three interfaces in your device, which is +lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). +Meanwhile, you configure *shadowsocks-libev* to listen on 0.0.0.0:8388 +and bind to eth1. That results the traffic go out through eth1, +but not lo nor eth0. This option is useful to control traffic in +multi-interface environment. ++ +Not available in redir mode. + +-b :: +Specify local address to bind. ++ +Not available in server nor manager mode. + +-u:: +Enable UDP relay. ++ +TPROXY is required in redir mode. You may need root permission. + +-U:: +Enable UDP relay and disable TCP relay. ++ +Not available in local mode. + +-A:: +Enable onetime authentication. + +-L :: +Specify destination server address and port for local port forwarding. ++ +Only available in tunnel mode. + +-d :: +Setup name servers for internal DNS resolver (libudns). +The default server is fetched from /etc/resolv.conf. ++ +Only available in server and manager mode. + +--fast-open:: +Enable TCP fast open. ++ +Not available in redir nor tunnel mode, with Linux kernel > 3.7.0. + +--acl :: +Enable ACL (Access Control List) and specify config file. ++ +Not available in redir nor tunnel mode. + +--manager-address :: +Specify UNIX domain socket address. ++ +Only available in server and manager mode. + +--executable :: +Specify the executable path of `ss-server`. ++ +Only available in manager mode. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +CONFIG FILE +----------- +The config file is written in JSON and easy to edit. + +The config file equivalent of command line options is listed as example below. +[frame="topbot",options="header"] +|========================================================================== +| Command line | JSON +| -s some.server.net | "server": "some.server.net" +| -s some.server.net -p 1234 (client) | "server": "some.server.net:1234" +| -p 1234 -k "PasSworD" (server) | "port_password": {"1234":"PasSworD"} +| -p 1234 | "server_port": "1234" +| -b 0.0.0.0 | "local_address": "0.0.0.0" +| -l 4321 | "local_port": "4321" +| -k "PasSworD" | "password": "PasSworD" +| -m "aes-256-cfb" | "method": "aes-256-cfb" +| -t 60 | "timeout": 60 +| -a nobody | "user": "nobody" +| --fast-open | "fast_open": true +| -6 | "ipv6_first": true +| -A | "auth": true +| -n "/etc/nofile" | "nofile": "/etc/nofile" +| -d "8.8.8.8" | "nameserver": "8.8.8.8" +| -L "somedns.net:53" | "tunnel_address": "somedns.net:53" +| -u | "mode": "tcp_and_udp" +| -U | "mode": "udp_only" +| no "-u" nor "-U" options (default) | "mode": "tcp_only" +|============================================================================ + +EXAMPLE +------- +`ss-redir` requires netfilter's NAT function. Here is an example: + +.... +# Create new chain +root@Wrt:~# iptables -t nat -N SHADOWSOCKS +root@Wrt:~# iptables -t mangle -N SHADOWSOCKS + +# Ignore your shadowsocks server's addresses +# It's very IMPORTANT, just be careful. +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 123.123.123.123 -j RETURN + +# Ignore LANs and any other addresses you'd like to bypass the proxy +# See Wikipedia and RFC5735 for full list of reserved networks. +# See ashi009/bestroutetb for a highly optimized CHN route list. +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN + +# Anything else should be redirected to shadowsocks's local port +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 12345 + +# Add any UDP rules +root@Wrt:~# ip rule add fwmark 0x01/0x01 table 100 +root@Wrt:~# ip route add local 0.0.0.0/0 dev lo table 100 +root@Wrt:~# iptables -t mangle -A SHADOWSOCKS -p udp --dport 53 -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 + +# Apply the rules +root@Wrt:~# iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS +root@Wrt:~# iptables -t mangle -A PREROUTING -j SHADOWSOCKS + +# Start the shadowsocks-redir +root@Wrt:~# ss-redir -u -c /etc/config/shadowsocks.json -f /var/run/shadowsocks.pid +.... + +PROTOCOL +-------- +`ss-manager`(1) provides several APIs through UDP protocol:: + +Send UDP commands in the following format to the manager-address provided to ss-manager(1): :::: + command: [JSON data] + +To add a port: :::: + add: {"server_port": 8001, "password":"7cd308cc059"} + +To remove a port: :::: + remove: {"server_port": 8001} + +To receive a pong: :::: + ping + +Then `ss-manager`(1) will send back the traffic statistics: :::: + stat: {"8001":11370} + +SEE ALSO +-------- +`ss-local`(1), +`ss-server`(1), +`ss-tunnel`(1), +`ss-redir`(1), +`ss-manager`(1), +`iptables`(8), +/etc/shadowsocks-libev/config.json diff --git a/shadowsocksr-libev/src/doc/ss-local.asciidoc b/shadowsocksr-libev/src/doc/ss-local.asciidoc new file mode 100644 index 00000000000..9c481cf8393 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-local.asciidoc @@ -0,0 +1,142 @@ +ss-local(1) +=========== + +NAME +---- +ss-local - shadowsocks client as socks5 proxy, libev port + +SYNOPSIS +-------- +*ss-local* + [-Auv6] [-h|--help] + [-s ] [-p ] [-l ] + [-k ] [-m ] [-f ] + [-t ] [-c ] [-i ] + [-a ] [-b ] + [--fast-open] [--acl ] [--mtu ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. `ss-local`(1) works as a standard +socks5 proxy on local machines to proxy TCP traffic. +For more information, check out `shadowsocks-libev`(8). + +OPTIONS +------- + +-s :: +Set the server's hostname or IP. + +-p :: +Set the server's port number. + +-l :: +Set the local port number. + +-k :: +Set the password. The server and the client should use the same password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. ++ +Refer to `shadowsocks-libev`(8) 'CONFIG FILE' section for more details. + +-n :: +Specify max number of open files. ++ +Only available on Linux. + +-i :: +Send traffic through specific network interface. ++ +For example, there are three interfaces in your device, +which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). +Meanwhile, you configure `ss-local` to listen on 0.0.0.0:8388 and bind to eth1. +That results the traffic go out through eth1, but not lo nor eth0. +This option is useful to control traffic in multi-interface environment. + +-b :: +Specify local address to bind. + +-u:: +Enable UDP relay. + +-U:: +Enable UDP relay and disable TCP relay. + +-A:: +Enable onetime authentication. + +-6:: +Resovle hostname to IPv6 address first. + +--fast-open:: +Enable TCP fast open. ++ +Only available with Linux kernel > 3.7.0. + +--acl :: +Enable ACL (Access Control List) and specify config file. + +--mtu :: +Specify the MTU of your network interface. + +--mptcp:: +Enable Multipath TCP. ++ +Only available with MPTCP enabled Linux kernel. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +EXAMPLE +------- +`ss-local`(1) can be started from command line and run in foreground. +Here is an example: +.... +# Start ss-local with given parameters +ss-local -s example.com -p 12345 -l 1080 -k foobar -m aes-256-cfb +.... + +SEE ALSO +-------- +`ss-server`(1), +`ss-tunnel`(1), +`ss-redir`(1), +`ss-manager`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json + diff --git a/shadowsocksr-libev/src/doc/ss-manager.asciidoc b/shadowsocksr-libev/src/doc/ss-manager.asciidoc new file mode 100644 index 00000000000..6183b923016 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-manager.asciidoc @@ -0,0 +1,162 @@ +ss-manager(1) +============= + +NAME +---- +ss-manager - ss-server controller for multi-user management and traffic statistics + +SYNOPSIS +-------- +*ss-manager* + [-AuUv] [-h|--help] + [-s ] [-p ] [-l ] + [-k ] [-m ] [-f ] + [-t ] [-c ] [-i ] + [-b ] [-a ] + [--manager-address ] + [--executable ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. +`ss-manager`(1) is a controller for multi-user management and +traffic statistics, using UNIX domain socket to talk with `ss-server`(1). +Also, it provides a UNIX domain socket or IP based API for other software. +About the details of this API, please refer to the following 'PROTOCOL' +section. + +OPTIONS +------- +-s :: +Set the server's hostname or IP. + +-k :: +Set the password. The server and the client should use the same password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. + +-i :: +Send traffic through specific network interface. ++ +For example, there are three interfaces in your device, +which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). +Meanwhile, you configure `ss-local` to listen on 0.0.0.0:8388 and bind to eth1. +That results the traffic go out through eth1, but not lo nor eth0. +This option is useful to control traffic in multi-interface environment. + +-u:: + Enable UDP relay. + +-U:: +Enable UDP relay and disable TCP relay. + +-A:: +Enable onetime authentication. + +-d :: +Setup name servers for internal DNS resolver (libudns). +The default server is fetched from `/etc/resolv.conf`. + +--fast-open:: +Enable TCP fast open. ++ +Only available with Linux kernel > 3.7.0. + +--acl :: +Enable ACL (Access Control List) and specify config file. + +--manager-address :: +Specify UNIX domain socket address for the communication between ss-manager(1) and ss-server(1). ++ +Only available in server and manager mode. + +--executable :: +Specify the executable path of ss-server. ++ +Only available in manager mode. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +PROTOCOL +-------- +`ss-manager`(1) provides several APIs through UDP protocol: + +Send UDP commands in the following format to the manager-address provided to ss-manager(1): :::: + command: [JSON data] + +To add a port: :::: + add: {"server_port": 8001, "password":"7cd308cc059"} + +To remove a port: :::: + remove: {"server_port": 8001} + +To receive a pong: :::: + ping + +Then `ss-manager`(1) will send back the traffic statistics: :::: + stat: {"8001":11370} + +EXAMPLE +------- +To use `ss-manager`(1), First start it and specify necessary information. + +Then communicate with `ss-manager`(1) through UNIX Domain Socket using UDP +protocol: + +.... +# Start the manager. Arguments for ss-server will be passed to generated +# ss-server process(es) respectively. +ss-manager --manager-address /tmp/manager.sock --executable $(which ss-server) -s example.com -m aes-256-cfb -c /path/to/config.json + +# Connect to the socket. Using netcat-openbsd as an example. +# You should use scripts or other programs for further management. +nc -Uu /tmp/manager.sock +.... + +After that, you may communicate with `ss-manager`(1) as described above in the +'PROTOCOL' section. + +SEE ALSO +-------- +`ss-local`(1), +`ss-server`(1), +`ss-tunnel`(1), +`ss-redir`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json + diff --git a/shadowsocksr-libev/src/doc/ss-nat.asciidoc b/shadowsocksr-libev/src/doc/ss-nat.asciidoc new file mode 100644 index 00000000000..355083a5eb0 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-nat.asciidoc @@ -0,0 +1,95 @@ +ss-nat(1) +========= + +NAME +---- +ss-nat - helper script to setup NAT rules for transparent proxy + +SYNOPSIS +-------- +*ss-nat* + [-ouUfh] + [-s ] [-S ] [-l ] + [-L ] [-i ] [-a ] + [-b ] [-w ] [-e ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +`ss-nat`(1) sets up NAT rules for `ss-redir`(1) to provide traffic redirection. +It requires netfilter's NAT module and `iptables`(8). +For more information, check out `shadowsocks-libev`(8) and the following +'EXAMPLE' section. + +OPTIONS +------- +-s :: +IP address of shadowsocks remote server + +-l :: +Port number of shadowsocks local server + +-S :: +IP address of shadowsocks remote UDP server + +-L :: +Port number of shadowsocks local UDP server + +-i :: +a file whose content is bypassed ip list + +-a :: +LAN IP of access control, need a prefix to define access control mode + +-b :: +WAN IP of will be bypassed + +-w :: +WAN IP of will be forwarded + +-e :: +Extra options for iptables + +-o:: +Apply the rules to the OUTPUT chain + +-u:: +Enable udprelay mode, TPROXY is required + +-U:: +Enable udprelay mode, using different IP and ports for TCP and UDP + +-f:: +Flush the rules + +-h:: +Show this help message and exit + +EXAMPLE +------- +`ss-nat` requires `iptables`(8). Here is an example: + +.... +# Enable NAT rules for shadowsocks, +# with both TCP and UDP redirection enabled, +# and applied for both PREROUTING and OUTPUT chains +root@Wrt:~# ss-nat -s 192.168.1.100 -l 1080 -u -o + +# Disable and flush all NAT rules for shadowsocks +root@Wrt:~# ss-nat -f +.... + +SEE ALSO +-------- +`ss-local`(1), +`ss-server`(1), +`ss-tunnel`(1), +`ss-manager`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json + diff --git a/shadowsocksr-libev/src/doc/ss-redir.asciidoc b/shadowsocksr-libev/src/doc/ss-redir.asciidoc new file mode 100644 index 00000000000..5993ceafcf3 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-redir.asciidoc @@ -0,0 +1,158 @@ +ss-redir(1) +=========== + +NAME +---- +ss-redir - shadowsocks client as transparent proxy, libev port + +SYNOPSIS +-------- +*ss-redir* + [-AuUv6] [-h|--help] + [-s ] [-p ] [-l ] + [-k ] [-m ] [-f ] + [-t ] [-c ] [-b ] + [-a ] [-n ] [--mtu ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. +`ss-redir`(1) works as a transparent proxy on local machines to proxy TCP +traffic and requires netfilter's NAT module. +For more information, check out `shadowsocks-libev`(8) and the following +'EXAMPLE' section. + +OPTIONS +------- +-s :: +Set the server's hostname or IP. + +-p :: +Set the server's port number. + +-l :: +Set the local port number. + +-k :: +Set the password. The server and the client should use the same +password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. ++ +Refer to `shadowsocks-libev`(8) 'CONFIG FILE' section for more details. + +-n :: +Specify max number of open files. ++ +Only available on Linux. + +-b :: +Specify local address to bind. + +-u:: +Enable UDP relay. ++ +TPROXY is required in redir mode. You may need root permission. + +-U:: +Enable UDP relay and disable TCP relay. + +-A:: +Enable onetime authentication. + +-6:: +Resovle hostname to IPv6 address first. + +--mtu :: +Specify the MTU of your network interface. + +--mptcp:: +Enable Multipath TCP. ++ +Only available with MPTCP enabled Linux kernel. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +EXAMPLE +------- +ss-redir requires netfilter's NAT function. Here is an example: + +.... +# Create new chain +root@Wrt:~# iptables -t nat -N SHADOWSOCKS + +# Ignore your shadowsocks server's addresses +# It's very IMPORTANT, just be careful. +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 123.123.123.123 -j RETURN + +# Ignore LANs and any other addresses you'd like to bypass the proxy +# See Wikipedia and RFC5735 for full list of reserved networks. +# See ashi009/bestroutetb for a highly optimized CHN route list. +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 10.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 127.0.0.0/8 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 169.254.0.0/16 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 172.16.0.0/12 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 192.168.0.0/16 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 224.0.0.0/4 -j RETURN +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -d 240.0.0.0/4 -j RETURN + +# Anything else should be redirected to shadowsocks's local port +root@Wrt:~# iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports 12345 + +# Add any UDP rules +root@Wrt:~# ip rule add fwmark 0x01/0x01 table 100 +root@Wrt:~# ip route add local 0.0.0.0/0 dev lo table 100 +root@Wrt:~# iptables -t mangle -A SHADOWSOCKS -p udp --dport 53 -j TPROXY --on-port 12345 --tproxy-mark 0x01/0x01 + +# Apply the rules +root@Wrt:~# iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS +root@Wrt:~# iptables -t mangle -A PREROUTING -j SHADOWSOCKS + +# Start the shadowsocks-redir +root@Wrt:~# ss-redir -u -c /etc/config/shadowsocks.json -f /var/run/shadowsocks.pid +.... + +SEE ALSO +-------- +`ss-local`(1), +`ss-server`(1), +`ss-tunnel`(1), +`ss-manager`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json diff --git a/shadowsocksr-libev/src/doc/ss-server.asciidoc b/shadowsocksr-libev/src/doc/ss-server.asciidoc new file mode 100644 index 00000000000..7a38f11e071 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-server.asciidoc @@ -0,0 +1,172 @@ +ss-server(1) +============ + +NAME +---- +ss-server - shadowsocks server, libev port + +SYNOPSIS +-------- +*ss-server* + [-AuUv] [-h|--help] + [-s ] [-p ] [-l ] + [-k ] [-m ] [-f ] + [-t ] [-c ] [-i ] + [-a ] [-d ] [-n ] + [-b ] [--mtu ] + [--manager-address ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. +`ss-server`(1) runs on a remote server to provide secured tunnel service. +For more information, check out `shadowsocks-libev`(8). + +OPTIONS +------- +-s :: +Set the server's hostname or IP. + +-p :: +Set the server's port number. + +-k :: +Set the password. The server and the client should use the same password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. ++ +Refer to `shadowsocks-libev`(8) 'CONFIG FILE' section for more details. + +-n :: +Specify max number of open files. ++ +Only available on Linux. + +-i :: +Send traffic through specific network interface. ++ +For example, there are three interfaces in your device, +which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). +Meanwhile, you configure `ss-server` to listen on 0.0.0.0:8388 and bind to eth1. +That results the traffic go out through eth1, but not lo nor eth0. +This option is useful to control traffic in multi-interface environment. + +-b :: +Specify local address to bind. + +-u:: +Enable UDP relay. + +-U:: +Enable UDP relay and disable TCP relay. + +-A:: +Enable onetime authentication. + +-6:: +Resovle hostname to IPv6 address first. + +-d :: +Setup name servers for internal DNS resolver (libudns). +The default server is fetched from '/etc/resolv.conf'. + +--fast-open:: +Enable TCP fast open. ++ +Only available with Linux kernel > 3.7.0. + +--mptcp:: +Enable Multipath TCP. ++ +Only available with MPTCP enabled Linux kernel. + +--firewall:: +Setup firewall rules for auto blocking. + +--acl :: +Enable ACL (Access Control List) and specify config file. + +--manager-address :: +Specify UNIX domain socket address for the communication between ss-manager(1) and ss-server(1). ++ +Only available in server and manager mode. + +--mtu :: +Specify the MTU of your network interface. + +--mptcp:: +Enable Multipath TCP. ++ +Only available with MPTCP enabled Linux kernel. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +EXAMPLE +------- +It is recommended to use a config file when starting `ss-server`(1). + +The config file is written in JSON and is easy to edit. +Check out the 'SEE ALSO' section for the default path of config file. + +.... +# Start the ss-server +ss-server -c /etc/shadowsocks-libev/config.json +.... + +INCOMPATIBILITY +--------------- +The config file of `shadowsocks-libev`(8) is slightly different from original +shadowsocks. +In order to listen to both IPv4/IPv6 address, use the following grammar in +your config json file: +.... +{ +"server":["::0","0.0.0.0"], +... +} +.... + +SEE ALSO +-------- +`ss-local`(1), +`ss-tunnel`(1), +`ss-redir`(1), +`ss-manager`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json diff --git a/shadowsocksr-libev/src/doc/ss-tunnel.asciidoc b/shadowsocksr-libev/src/doc/ss-tunnel.asciidoc new file mode 100644 index 00000000000..d8505d46578 --- /dev/null +++ b/shadowsocksr-libev/src/doc/ss-tunnel.asciidoc @@ -0,0 +1,129 @@ +ss-tunnel(1) +============ + +NAME +---- +ss-tunnel - shadowsocks tools for local port forwarding, libev port + +SYNOPSIS +-------- +*ss-tunnel* + [-AuUv6] [-h|--help] + [-s ] [-p ] [-l ] + [-k ] [-m ] [-f ] + [-t ] [-c ] [-i ] + [-b ] [-a ] [-n ] + [-L addr:port] [--mtu ] + +DESCRIPTION +----------- +*Shadowsocks-libev* is a lightweight and secure socks5 proxy. +It is a port of the original shadowsocks created by clowwindy. +*Shadowsocks-libev* is written in pure C and takes advantage of libev to +achieve both high performance and low resource consumption. + +*Shadowsocks-libev* consists of five components. +`ss-tunnel`(1) is a tool for local port forwarding. +See 'OPTIONS' section for special option needed by `ss-tunnel`(1). +For more information, check out `shadowsocks-libev`(8). + +OPTIONS +------- +-s :: +Set the server's hostname or IP. + +-p :: +Set the server's port number. + +-l :: +Set the local port number. + +-k :: +Set the password. The server and the client should use the same password. + +-m :: +Set the cipher. ++ +*Shadowsocks-libev* accepts 21 different ciphers: ++ +table, rc4, rc4-md5, aes-128-cfb, aes-192-cfb, aes-256-cfb, +aes-128-ctr, aes-192-ctr, aes-256-ctr, bf-cfb, +camellia-128-cfb, camellia-192-cfb, camellia-256-cfb, cast5-cfb, des-cfb, +idea-cfb, rc2-cfb, seed-cfb, salsa20, chacha20 and chacha20-ietf. ++ +The default cipher is 'rc4-md5'. ++ +If built with PolarSSL or custom OpenSSL libraries, some of +these ciphers may not work. + +-a :: +Run as a specific user. + +-f :: +Start shadowsocks as a daemon with specific pid file. + +-t :: +Set the socket timeout in seconds. The default value is 60. + +-c :: +Use a configuration file. ++ +Refer to `shadowsocks-libev`(8) 'CONFIG FILE' section for more details. + +-n :: +Specify max number of open files. ++ +Only available on Linux. + +-i :: +Send traffic through specific network interface. ++ +For example, there are three interfaces in your device, +which is lo (127.0.0.1), eth0 (192.168.0.1) and eth1 (192.168.0.2). +Meanwhile, you configure `ss-tunnel` to listen on 0.0.0.0:8388 and bind to eth1. +That results the traffic go out through eth1, but not lo nor eth0. +This option is useful to control traffic in multi-interface environment. + +-b :: +Specify local address to bind. + +-u:: +Enable UDP relay. + +-U:: +Enable UDP relay and disable TCP relay. + +-A:: +Enable onetime authentication. + +-6:: +Resovle hostname to IPv6 address first. + +-L :: +Specify destination server address and port for local port forwarding. ++ +Only used and available in tunnel mode. + +--mtu :: +Specify the MTU of your network interface. + +--mptcp:: +Enable Multipath TCP. ++ +Only available with MPTCP enabled Linux kernel. + +-v:: +Enable verbose mode. + +-h|--help:: +Print help message. + +SEE ALSO +-------- +`ss-local`(1), +`ss-server`(1), +`ss-redir`(1), +`ss-manager`(1), +`shadowsocks-libev`(8), +`iptables`(8), +/etc/shadowsocks-libev/config.json diff --git a/shadowsocksr-libev/src/docker/alpine/Dockerfile b/shadowsocksr-libev/src/docker/alpine/Dockerfile new file mode 100644 index 00000000000..474307fba3e --- /dev/null +++ b/shadowsocksr-libev/src/docker/alpine/Dockerfile @@ -0,0 +1,59 @@ +# +# Dockerfile for shadowsocks-libev +# + +FROM alpine +MAINTAINER kev + +ARG SS_VER=2.5.6 +ARG SS_URL=https://github.com/shadowsocks/shadowsocks-libev/archive/v$SS_VER.tar.gz + +ENV SERVER_ADDR 0.0.0.0 +ENV SERVER_PORT 8388 +ENV PASSWORD= +ENV METHOD aes-256-cfb +ENV TIMEOUT 300 +ENV DNS_ADDR 8.8.8.8 +ENV DNS_ADDR_2 8.8.4.4 + +RUN set -ex && \ + apk add --no-cache --virtual .build-deps \ + asciidoc \ + autoconf \ + build-base \ + curl \ + libtool \ + linux-headers \ + openssl-dev \ + pcre-dev \ + tar \ + xmlto && \ + cd /tmp && \ + curl -sSL $SS_URL | tar xz --strip 1 && \ + ./configure --prefix=/usr --disable-documentation && \ + make install && \ + cd .. && \ + + runDeps="$( \ + scanelf --needed --nobanner /usr/bin/ss-* \ + | awk '{ gsub(/,/, "\nso:", $2); print "so:" $2 }' \ + | xargs -r apk info --installed \ + | sort -u \ + )" && \ + apk add --no-cache --virtual .run-deps $runDeps && \ + apk del .build-deps && \ + rm -rf /tmp/* + +USER nobody + +EXPOSE $SERVER_PORT/tcp $SERVER_PORT/udp + +CMD ss-server -s $SERVER_ADDR \ + -p $SERVER_PORT \ + -k ${PASSWORD:-$(hostname)} \ + -m $METHOD \ + -t $TIMEOUT \ + --fast-open \ + -d $DNS_ADDR \ + -d $DNS_ADDR_2 \ + -u diff --git a/shadowsocksr-libev/src/docker/alpine/README.md b/shadowsocksr-libev/src/docker/alpine/README.md new file mode 100644 index 00000000000..4e174174fc0 --- /dev/null +++ b/shadowsocksr-libev/src/docker/alpine/README.md @@ -0,0 +1,88 @@ +shadowsocks-libev +================= + +[shadowsocks-libev][1] is a lightweight secured socks5 proxy for embedded +devices and low end boxes. It is a port of [shadowsocks][2] created by +@clowwindy maintained by @madeye and @linusyang. + +Suppose we have a VPS running Debian or Ubuntu. +To deploy the service quickly, we can use [docker][3]. + +## Install docker + +``` +$ curl -sSL https://get.docker.com/ | sh +$ docker --version +``` + +## Build docker image + +```bash +$ curl -sSL https://github.com/shadowsocks/shadowsocks-libev/raw/master/docker/alpine/Dockerfile | docker build -t shadowsocks-libev . +$ docker images +``` + +> You can also use a pre-built docker image: [vimagick/shadowsocks-libev][4] ![][5]. + +## Run docker container + +```bash +$ docker run -d -e METHOD=aes-256-cfb -e PASSWORD=9MLSpPmNt -p 8388:8388 --restart always shadowsocks-libev +$ docker ps +``` + +> :warning: Click [here][6] to generate a strong password to protect your server. + +## Use docker-compose to manage (optional) + +It is very handy to use [docker-compose][7] to manage docker containers. +You can download the binary at . + +This is a sample `docker-compose.yml` file. + +```yaml +shadowsocks: + image: shadowsocks-libev + ports: + - "8388:8388" + environment: + - METHOD=aes-256-cfb + - PASSWORD=9MLSpPmNt + restart: always +``` + +It is highly recommended that you setup a directory tree to make things easy to manage. + +```bash +$ mkdir -p ~/fig/shadowsocks/ +$ cd ~/fig/shadowsocks/ +$ curl -sSLO https://github.com/shadowsocks/shadowsocks-libev/raw/master/docker/alpine/docker-compose.yml +$ docker-compose up -d +$ docker-compose ps +``` + +## Finish + +At last, download shadowsocks client [here][8]. +Don't forget to share internet with your friends. + +```yaml +{ + "server": "your-vps-ip", + "server_port": 8388, + "local_address": "0.0.0.0", + "local_port": 1080, + "password": "9MLSpPmNt", + "timeout": 600, + "method": "aes-256-cfb" +} +``` + +[1]: https://github.com/shadowsocks/shadowsocks-libev +[2]: https://shadowsocks.org/en/index.html +[3]: https://github.com/docker/docker +[4]: https://hub.docker.com/r/vimagick/shadowsocks-libev/ +[5]: https://badge.imagelayers.io/vimagick/shadowsocks-libev:latest.svg +[6]: https://duckduckgo.com/?q=password+12&t=ffsb&ia=answer +[7]: https://github.com/docker/compose +[8]: https://shadowsocks.org/en/download/clients.html diff --git a/shadowsocksr-libev/src/docker/alpine/docker-compose.yml b/shadowsocksr-libev/src/docker/alpine/docker-compose.yml new file mode 100644 index 00000000000..e545201b488 --- /dev/null +++ b/shadowsocksr-libev/src/docker/alpine/docker-compose.yml @@ -0,0 +1,9 @@ +shadowsocks: + image: shadowsocks-libev + ports: + - "8388:8388/tcp" + - "8388:8388/udp" + environment: + - METHOD=aes-256-cfb + - PASSWORD=9MLSpPmNt + restart: always diff --git a/shadowsocksr-libev/src/docker/ubuntu/Dockerfile b/shadowsocksr-libev/src/docker/ubuntu/Dockerfile new file mode 100644 index 00000000000..12aa2840436 --- /dev/null +++ b/shadowsocksr-libev/src/docker/ubuntu/Dockerfile @@ -0,0 +1,32 @@ +FROM ubuntu:latest + +MAINTAINER Sah Lee + +ENV DEPENDENCIES git-core build-essential autoconf libtool libssl-dev asciidoc xmlto +ENV BASEDIR /tmp/shadowsocks-libev +ENV SERVER_PORT 8338 + +# Set up building environment +RUN apt-get update \ + && apt-get install -y $DEPENDENCIES + +# Get the latest code, build and install +RUN git clone https://github.com/shadowsocks/shadowsocks-libev.git $BASEDIR +WORKDIR $BASEDIR +RUN ./configure \ + && make \ + && make install + +# Tear down building environment and delete git repository +WORKDIR / +RUN rm -rf $BASEDIR/shadowsocks-libev\ + && apt-get --purge autoremove -y $DEPENDENCIES + +# Port in the config file won't take affect. Instead we'll use 8388. +EXPOSE $SERVER_PORT +EXPOSE $SERVER_PORT/udp + +# Override the host and port in the config file. +ADD entrypoint / +ENTRYPOINT ["/entrypoint"] +CMD ["-h"] diff --git a/shadowsocksr-libev/src/docker/ubuntu/README.md b/shadowsocksr-libev/src/docker/ubuntu/README.md new file mode 100644 index 00000000000..1ff5728af97 --- /dev/null +++ b/shadowsocksr-libev/src/docker/ubuntu/README.md @@ -0,0 +1,90 @@ +# Shadowsocks Dockerized + +## About this image + +This image is built to ease the deployment of the Shadowsocks server daemon with Docker. + +For Shadowsocks clients, you want to visit http://shadowsocks.org/en/download/clients.html + +### What is Shadowsocks + +A secure socks5 proxy designed to protect your Internet traffic. + +See http://shadowsocks.org/ + +### What is Docker + +An open platform for distributed applications for developers and sysadmins. + +See https://www.docker.com/ + +## How to use this image + +### Start the daemon for the first time + +```bash +$ docker run --name shadowsocks-app --detach --publish 58338:8338 shadowsocks/shadowsocks-libev -k "5ecret!" +``` + +To publish UDP port for DNS tunnelling, run + +```bash +$ docker run --name shadowsocks-app --detach --publish 58338:8338 --publish 58338:8338/udp shadowsocks/shadowsocks-libev -k "5ecret!" +``` + +To see all supported arguments, run + +```bash +$ docker run --rm shadowsocks/shadowsocks-libev --help +``` + +To try the bleeding edge version of Shadowsocks, run with an `unstable` tag + +```bash +$ docker run --name shadowsocks-app --detach --publish 58338:8338 shadowsocks/shadowsocks-libev:unstable -k "5ecret!" +``` + +### Stop the daemon + +```bash +$ docker stop shadowsocks-app +``` + +### Start a stopped daemon + +```bash +$ docker start shadowsocks-app +``` + +### Upgrade + +Simply run a `docker pull` to upgrade the image. + +```bash +$ docker pull shadowsocks/shadowsocks-libev +``` + +### Use in CoreOS + +COMING SOON + +### Use with `fig` + +COMING SOON + +## Limitations + +### JSON Configuration File + +This image doesn't support the JSON configuration at the moment. But I do plan to add the support in the future. So please stay tuned. + +### Specifying Hostname & Port + +Docker containers don't have the power to specify on what hostname or port of the host should the service listen to. These have to be specified using the `--publish` argument of `docker run`. + +See [Docker run reference](https://docs.docker.com/reference/run/#expose-incoming-ports) for more details. + +## References + +* [Shadowsocks - Servers](http://shadowsocks.org/en/download/servers.html) +* [shadowsocks-libev](https://github.com/shadowsocks/shadowsocks-libev/blob/master/README.md) diff --git a/shadowsocksr-libev/src/docker/ubuntu/entrypoint b/shadowsocksr-libev/src/docker/ubuntu/entrypoint new file mode 100755 index 00000000000..275426f3dbe --- /dev/null +++ b/shadowsocksr-libev/src/docker/ubuntu/entrypoint @@ -0,0 +1,99 @@ +#! /bin/bash + +IMAGE_NAME="leesah/shadowsocks-libev" +PORTNUMBER="8338" + +SHADOWSOCKS="/usr/local/bin/ss-server" +HOST="-s 0.0.0.0" +PORT="-p $PORTNUMBER" +JSON="" + +function print_usage { + echo + echo "Usage:" + echo " docker run $IMAGE_NAME [OPTIONS]" + echo + echo "OPTIONS" + echo " -k password of your remote server" + echo + echo " [-m ] encrypt method: table, rc4, rc4-md5" + echo " aes-128-cfb, aes-192-cfb, aes-256-cfb," + echo " bf-cfb, camellia-128-cfb, camellia-192-cfb," + echo " camellia-256-cfb, cast5-cfb, des-cfb, idea-cfb," + echo " rc2-cfb, seed-cfb, salsa20 and chacha20" + echo " [-t ] socket timeout in seconds" + echo " [-c ] config file in json" + echo " [-u] enable udprelay mode" + echo " [-v] verbose mode" + echo + echo " [--fast-open] enable TCP fast open" + echo " [--acl ] config file of ACL \(Access Control List\)" + echo + echo " [-h] print this" + echo +} + +function print_usage_configfile { + echo "Config file is currently not supported by this image." + echo + echo "See https://github.com/leesah/shadowsocks-libev/issues/1 for current progress." + echo +} + +function print_usage_host { + echo "To specify the host on which ss-server should listen, please use" + echo " docker run -p $1::$PORTNUMBER ..." + echo "or" + echo " docker run -p $1::$PORTNUMBER ..." + echo + echo "See manpage of docker-run for more details:" + echo " man docker-run" + echo +} + +function print_usage_port { + echo "To specify the port on which ss-server should listen, please use" + echo " docker run -p $1:$PORTNUMBER ..." + echo +} + +OPTIONS=`getopt -o s:p:k:m:t:c:uvh --long server:,key:,password:,encrypt-method:,timeout:,acl:,server-port:,config-file:,fast-open,help -n "$IMAGE_NAME" -- "$@"` +if [ $? -ne 0 ]; then + print_usage + exit 1 +fi + +eval set -- "$OPTIONS" +while true; do + case "$1" in + -k|--key|--password) PASSWORD="-k $2"; shift 2;; + -m|--encrypt-method) ENCRYPTION="-m $2"; shift 2;; + -t|--timeout) TIMEOUT="-t $2"; shift 2;; + --acl) ACL="--acl $2"; shift 2;; + --fast-open) FAST_OPEN="--fast-open"; shift;; + -u) UDP_RELAY="-u"; shift;; + -v) VERBOSE="-v"; shift;; + --) shift; break;; + + -c|--config-file) print_usage_configfile; exit 128;; + -s|--server) print_usage_host "$2"; exit 128;; + -p|--server-port) print_usage_port "$2"; exit 128;; + -h|--help) print_usage; exit 0;; + + *) + echo "$IMAGE_NAME: unexpected argument: $1" + print_usage + exit 1;; + esac +done + +if [ -z "$HOST" -o -z "$PORT" -o -z "$PASSWORD" ]; then + echo "$IMAGE_NAME: insufficient arguments." + print_usage + exit 1 +fi + +echo "Launching Shadowsocks server..." +echo "To watch the output, run" +echo " docker ps -ql | xargs docker logs -f" +$SHADOWSOCKS $HOST $PORT $PASSWORD $ENCRYPTION $TIMEOUT $UDP_RELAY $VERBOSE $FAST_OPEN $ACL $JSON diff --git a/shadowsocksr-libev/src/libcork/.idea/libcork-develop.iml b/shadowsocksr-libev/src/libcork/.idea/libcork-develop.iml new file mode 100644 index 00000000000..f08604bb65b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/.idea/libcork-develop.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/shadowsocksr-libev/src/libcork/.idea/misc.xml b/shadowsocksr-libev/src/libcork/.idea/misc.xml new file mode 100644 index 00000000000..f2978fc0e98 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/shadowsocksr-libev/src/libcork/.idea/modules.xml b/shadowsocksr-libev/src/libcork/.idea/modules.xml new file mode 100644 index 00000000000..1794f0d25d1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/shadowsocksr-libev/src/libcork/.idea/workspace.xml b/shadowsocksr-libev/src/libcork/.idea/workspace.xml new file mode 100644 index 00000000000..bba67c3f6ca --- /dev/null +++ b/shadowsocksr-libev/src/libcork/.idea/workspace.xml @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + ENABLE_SHARED + check + 错误:可见性属性在此配置下不受支持 + CORK_API + API + CORK_CONFIG_GCC_VERSION + cygwin + pthread_yield_np + sched_yield + environ + + + + + + + + + true + DEFINITION_ORDER + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + project + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1483455364838 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/shadowsocksr-libev/src/libcork/CMakeLists.txt b/shadowsocksr-libev/src/libcork/CMakeLists.txt new file mode 100644 index 00000000000..9d69a8e902c --- /dev/null +++ b/shadowsocksr-libev/src/libcork/CMakeLists.txt @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- +# ---------------------------------------------------------------------- +# Copyright © 2011-2015, RedJack, LLC. +# All rights reserved. +# +# Please see the COPYING file in this distribution for license details. +# ---------------------------------------------------------------------- + +cmake_minimum_required(VERSION 2.6) +set(PROJECT_NAME libcork) +set(RELEASE_DATE 2015-09-03) +project(${PROJECT_NAME}) + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +find_package(CTargets) + +#----------------------------------------------------------------------- +# Retrieve the current version number + +set(VERSION_MAJOR "0") +set(VERSION_MINOR "15") +set(VERSION_PATCH "0") +set(VERSION "0.15.0") +set(GIT_SHA1 "d6ecc2cfbcdf5013038a72b4544f7d9e6eb8f92d") + +#----------------------------------------------------------------------- +# Check for building on Tilera +# If the Tilera environment is installed, then $TILERA_ROOT is defined +# as the path to the active MDE. + +if(DEFINED ENV{TILERA_ROOT}) + set(TILERA TRUE) + set(TILERA_ROOT $ENV{TILERA_ROOT}) + message("-- Configuring for Tilera MDE ${TILERA_ROOT}") + set(ENV{PKG_CONFIG_PATH} + "${TILERA_ROOT}/tile/usr/lib/pkgconfig:${TILERA_ROOT}/tile/usr/local/lib/pkgconfig:$ENV{PKG_CONFIG_PATH}" + ) + set(CMAKE_SYSTEM_NAME "Tilera") + set(CMAKE_SYSTEM_PROCESSOR "tilegx") + set(CMAKE_C_COMPILER "${TILERA_ROOT}/bin/tile-gcc") + set(CMAKE_LINKER "${TILERA_ROOT}/bin/tile-ld") + set(TILERA_MONITOR "${TILERA_ROOT}/bin/tile-monitor") + #add_definitions(-std=gnu99) + set(CMAKE_FIND_ROOT_PATH "${TILERA_ROOT}/tile") + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +#----------------------------------------------------------------------- +# Set some options + +if(APPLE) + if (NOT CMAKE_INSTALL_NAME_DIR) + set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") + endif (NOT CMAKE_INSTALL_NAME_DIR) +endif(APPLE) + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." + FORCE) +endif(NOT CMAKE_BUILD_TYPE) + +if(CMAKE_C_COMPILER_ID STREQUAL "GNU") + add_definitions(-Wall -Werror) +elseif(CMAKE_C_COMPILER_ID STREQUAL "Clang") + add_definitions(-Wall -Werror) +elseif(CMAKE_C_COMPILER_ID STREQUAL "Intel") + add_definitions(-Wall -Werror) +endif(CMAKE_C_COMPILER_ID STREQUAL "GNU") + +include(GNUInstallDirs) + +#----------------------------------------------------------------------- +# Check for prerequisite libraries + +find_package(Threads) +set(THREADS_LDFLAGS "${CMAKE_THREAD_LIBS_INIT}") +if(WIN32) + if(CMAKE_THREAD_LIBS_INIT) + set(THREADS_STATIC_LDFLAGS "-static ${CMAKE_THREAD_LIBS_INIT}") + else() + set(THREADS_STATIC_LDFLAGS "-static") + endif() +else() + set(THREADS_STATIC_LDFLAGS "${CMAKE_THREAD_LIBS_INIT}") +endif() + + + +#----------------------------------------------------------------------- +# Include our subdirectories + +#add_subdirectory(include) +#add_subdirectory(src) + +add_c_library( + libcork + OUTPUT_NAME cork + PKGCONFIG_NAME libcork + VERSION 16.0.1 + SOURCES + cli/commands.c + core/allocator.c + core/error.c + core/gc.c + core/hash.c + core/ip-address.c + core/mempool.c + core/timestamp.c + core/u128.c + core/version.c + ds/array.c + ds/bitset.c + ds/buffer.c + ds/dllist.c + ds/file-stream.c + ds/hash-table.c + ds/managed-buffer.c + ds/ring-buffer.c + ds/slice.c +# posix/directory-walker.c +# posix/env.c +# posix/exec.c +# posix/files.c + posix/process.c +# posix/subprocess.c + pthreads/thread.c + LIBRARIES + threads +) + +set_target_properties(libcork PROPERTIES + COMPILE_DEFINITIONS CORK_API=CORK_LOCAL + ) + +set(libcork_include_dirs + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_BINARY_DIR}/include + CACHE INTERNAL "libcork library" FORCE + ) \ No newline at end of file diff --git a/shadowsocksr-libev/src/libcork/COPYING b/shadowsocksr-libev/src/libcork/COPYING new file mode 100644 index 00000000000..fb012030335 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/COPYING @@ -0,0 +1,30 @@ +Copyright © 2011-2012, RedJack, LLC. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + • Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + • Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + • Neither the name of RedJack Software, LLC nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/shadowsocksr-libev/src/libcork/Makefile.am b/shadowsocksr-libev/src/libcork/Makefile.am new file mode 100644 index 00000000000..f93930d8bb4 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/Makefile.am @@ -0,0 +1,18 @@ +noinst_LTLIBRARIES = libcork.la + +cli_src = cli/commands.c +core_src = core/allocator.c core/error.c core/gc.c \ + core/hash.c core/ip-address.c core/mempool.c \ + core/timestamp.c core/u128.c +ds_src = ds/array.c ds/bitset.c ds/buffer.c ds/dllist.c \ + ds/file-stream.c ds/hash-table.c ds/managed-buffer.c \ + ds/ring-buffer.c ds/slice.c +posix_src = posix/directory-walker.c posix/env.c posix/exec.c \ + posix/files.c posix/process.c posix/subprocess.c +pthreads_src = pthreads/thread.c + +libcork_la_SOURCES = $(cli_src) $(core_src) $(ds_src) \ + $(posix_src) $(pthreads_src) +libcork_la_CFLAGS = -I$(top_srcdir)/libcork/include -DCORK_API=CORK_LOCAL + +libcork_la_LDFLAGS = -static diff --git a/shadowsocksr-libev/src/libcork/Makefile.in b/shadowsocksr-libev/src/libcork/Makefile.in new file mode 100644 index 00000000000..81cd4d46bbc --- /dev/null +++ b/shadowsocksr-libev/src/libcork/Makefile.in @@ -0,0 +1,947 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = libcork +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/inet_ntop.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/mbedtls.m4 \ + $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre.m4 \ + $(top_srcdir)/m4/polarssl.m4 \ + $(top_srcdir)/m4/stack-protector.m4 $(top_srcdir)/m4/zlib.m4 \ + $(top_srcdir)/libev/libev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libcork_la_LIBADD = +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = cli/libcork_la-commands.lo +am__objects_2 = core/libcork_la-allocator.lo core/libcork_la-error.lo \ + core/libcork_la-gc.lo core/libcork_la-hash.lo \ + core/libcork_la-ip-address.lo core/libcork_la-mempool.lo \ + core/libcork_la-timestamp.lo core/libcork_la-u128.lo +am__objects_3 = ds/libcork_la-array.lo ds/libcork_la-bitset.lo \ + ds/libcork_la-buffer.lo ds/libcork_la-dllist.lo \ + ds/libcork_la-file-stream.lo ds/libcork_la-hash-table.lo \ + ds/libcork_la-managed-buffer.lo ds/libcork_la-ring-buffer.lo \ + ds/libcork_la-slice.lo +am__objects_4 = posix/libcork_la-directory-walker.lo \ + posix/libcork_la-env.lo posix/libcork_la-exec.lo \ + posix/libcork_la-files.lo posix/libcork_la-process.lo \ + posix/libcork_la-subprocess.lo +am__objects_5 = pthreads/libcork_la-thread.lo +am_libcork_la_OBJECTS = $(am__objects_1) $(am__objects_2) \ + $(am__objects_3) $(am__objects_4) $(am__objects_5) +libcork_la_OBJECTS = $(am_libcork_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libcork_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcork_la_CFLAGS) \ + $(CFLAGS) $(libcork_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/auto/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libcork_la_SOURCES) +DIST_SOURCES = $(libcork_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/auto/depcomp \ + COPYING +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ASCIIDOC = @ASCIIDOC@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GZIP = @GZIP@ +INET_NTOP_LIB = @INET_NTOP_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPCRE = @LIBPCRE@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CONFIG = @PCRE_CONFIG@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XMLTO = @XMLTO@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcre_pcreh = @pcre_pcreh@ +pcreh = @pcreh@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +noinst_LTLIBRARIES = libcork.la +cli_src = cli/commands.c +core_src = core/allocator.c core/error.c core/gc.c \ + core/hash.c core/ip-address.c core/mempool.c \ + core/timestamp.c core/u128.c + +ds_src = ds/array.c ds/bitset.c ds/buffer.c ds/dllist.c \ + ds/file-stream.c ds/hash-table.c ds/managed-buffer.c \ + ds/ring-buffer.c ds/slice.c + +posix_src = posix/directory-walker.c posix/env.c posix/exec.c \ + posix/files.c posix/process.c posix/subprocess.c + +pthreads_src = pthreads/thread.c +libcork_la_SOURCES = $(cli_src) $(core_src) $(ds_src) \ + $(posix_src) $(pthreads_src) + +libcork_la_CFLAGS = -I$(top_srcdir)/libcork/include -DCORK_API=CORK_LOCAL +libcork_la_LDFLAGS = -static +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libcork/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign libcork/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } +cli/$(am__dirstamp): + @$(MKDIR_P) cli + @: > cli/$(am__dirstamp) +cli/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) cli/$(DEPDIR) + @: > cli/$(DEPDIR)/$(am__dirstamp) +cli/libcork_la-commands.lo: cli/$(am__dirstamp) \ + cli/$(DEPDIR)/$(am__dirstamp) +core/$(am__dirstamp): + @$(MKDIR_P) core + @: > core/$(am__dirstamp) +core/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) core/$(DEPDIR) + @: > core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-allocator.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-error.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-gc.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-hash.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-ip-address.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-mempool.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-timestamp.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +core/libcork_la-u128.lo: core/$(am__dirstamp) \ + core/$(DEPDIR)/$(am__dirstamp) +ds/$(am__dirstamp): + @$(MKDIR_P) ds + @: > ds/$(am__dirstamp) +ds/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ds/$(DEPDIR) + @: > ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-array.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-bitset.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-buffer.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-dllist.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-file-stream.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-hash-table.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-managed-buffer.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-ring-buffer.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +ds/libcork_la-slice.lo: ds/$(am__dirstamp) \ + ds/$(DEPDIR)/$(am__dirstamp) +posix/$(am__dirstamp): + @$(MKDIR_P) posix + @: > posix/$(am__dirstamp) +posix/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) posix/$(DEPDIR) + @: > posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-directory-walker.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-env.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-exec.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-files.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-process.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +posix/libcork_la-subprocess.lo: posix/$(am__dirstamp) \ + posix/$(DEPDIR)/$(am__dirstamp) +pthreads/$(am__dirstamp): + @$(MKDIR_P) pthreads + @: > pthreads/$(am__dirstamp) +pthreads/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) pthreads/$(DEPDIR) + @: > pthreads/$(DEPDIR)/$(am__dirstamp) +pthreads/libcork_la-thread.lo: pthreads/$(am__dirstamp) \ + pthreads/$(DEPDIR)/$(am__dirstamp) + +libcork.la: $(libcork_la_OBJECTS) $(libcork_la_DEPENDENCIES) $(EXTRA_libcork_la_DEPENDENCIES) + $(AM_V_CCLD)$(libcork_la_LINK) $(libcork_la_OBJECTS) $(libcork_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f cli/*.$(OBJEXT) + -rm -f cli/*.lo + -rm -f core/*.$(OBJEXT) + -rm -f core/*.lo + -rm -f ds/*.$(OBJEXT) + -rm -f ds/*.lo + -rm -f posix/*.$(OBJEXT) + -rm -f posix/*.lo + -rm -f pthreads/*.$(OBJEXT) + -rm -f pthreads/*.lo + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@cli/$(DEPDIR)/libcork_la-commands.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-allocator.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-error.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-gc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-hash.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-ip-address.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-mempool.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-timestamp.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@core/$(DEPDIR)/libcork_la-u128.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-array.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-bitset.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-buffer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-dllist.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-file-stream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-hash-table.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-managed-buffer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-ring-buffer.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@ds/$(DEPDIR)/libcork_la-slice.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-directory-walker.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-env.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-exec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-files.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-process.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@posix/$(DEPDIR)/libcork_la-subprocess.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@pthreads/$(DEPDIR)/libcork_la-thread.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +cli/libcork_la-commands.lo: cli/commands.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT cli/libcork_la-commands.lo -MD -MP -MF cli/$(DEPDIR)/libcork_la-commands.Tpo -c -o cli/libcork_la-commands.lo `test -f 'cli/commands.c' || echo '$(srcdir)/'`cli/commands.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) cli/$(DEPDIR)/libcork_la-commands.Tpo cli/$(DEPDIR)/libcork_la-commands.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='cli/commands.c' object='cli/libcork_la-commands.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o cli/libcork_la-commands.lo `test -f 'cli/commands.c' || echo '$(srcdir)/'`cli/commands.c + +core/libcork_la-allocator.lo: core/allocator.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-allocator.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-allocator.Tpo -c -o core/libcork_la-allocator.lo `test -f 'core/allocator.c' || echo '$(srcdir)/'`core/allocator.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-allocator.Tpo core/$(DEPDIR)/libcork_la-allocator.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/allocator.c' object='core/libcork_la-allocator.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-allocator.lo `test -f 'core/allocator.c' || echo '$(srcdir)/'`core/allocator.c + +core/libcork_la-error.lo: core/error.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-error.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-error.Tpo -c -o core/libcork_la-error.lo `test -f 'core/error.c' || echo '$(srcdir)/'`core/error.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-error.Tpo core/$(DEPDIR)/libcork_la-error.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/error.c' object='core/libcork_la-error.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-error.lo `test -f 'core/error.c' || echo '$(srcdir)/'`core/error.c + +core/libcork_la-gc.lo: core/gc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-gc.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-gc.Tpo -c -o core/libcork_la-gc.lo `test -f 'core/gc.c' || echo '$(srcdir)/'`core/gc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-gc.Tpo core/$(DEPDIR)/libcork_la-gc.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/gc.c' object='core/libcork_la-gc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-gc.lo `test -f 'core/gc.c' || echo '$(srcdir)/'`core/gc.c + +core/libcork_la-hash.lo: core/hash.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-hash.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-hash.Tpo -c -o core/libcork_la-hash.lo `test -f 'core/hash.c' || echo '$(srcdir)/'`core/hash.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-hash.Tpo core/$(DEPDIR)/libcork_la-hash.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/hash.c' object='core/libcork_la-hash.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-hash.lo `test -f 'core/hash.c' || echo '$(srcdir)/'`core/hash.c + +core/libcork_la-ip-address.lo: core/ip-address.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-ip-address.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-ip-address.Tpo -c -o core/libcork_la-ip-address.lo `test -f 'core/ip-address.c' || echo '$(srcdir)/'`core/ip-address.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-ip-address.Tpo core/$(DEPDIR)/libcork_la-ip-address.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/ip-address.c' object='core/libcork_la-ip-address.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-ip-address.lo `test -f 'core/ip-address.c' || echo '$(srcdir)/'`core/ip-address.c + +core/libcork_la-mempool.lo: core/mempool.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-mempool.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-mempool.Tpo -c -o core/libcork_la-mempool.lo `test -f 'core/mempool.c' || echo '$(srcdir)/'`core/mempool.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-mempool.Tpo core/$(DEPDIR)/libcork_la-mempool.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/mempool.c' object='core/libcork_la-mempool.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-mempool.lo `test -f 'core/mempool.c' || echo '$(srcdir)/'`core/mempool.c + +core/libcork_la-timestamp.lo: core/timestamp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-timestamp.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-timestamp.Tpo -c -o core/libcork_la-timestamp.lo `test -f 'core/timestamp.c' || echo '$(srcdir)/'`core/timestamp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-timestamp.Tpo core/$(DEPDIR)/libcork_la-timestamp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/timestamp.c' object='core/libcork_la-timestamp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-timestamp.lo `test -f 'core/timestamp.c' || echo '$(srcdir)/'`core/timestamp.c + +core/libcork_la-u128.lo: core/u128.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT core/libcork_la-u128.lo -MD -MP -MF core/$(DEPDIR)/libcork_la-u128.Tpo -c -o core/libcork_la-u128.lo `test -f 'core/u128.c' || echo '$(srcdir)/'`core/u128.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) core/$(DEPDIR)/libcork_la-u128.Tpo core/$(DEPDIR)/libcork_la-u128.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='core/u128.c' object='core/libcork_la-u128.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o core/libcork_la-u128.lo `test -f 'core/u128.c' || echo '$(srcdir)/'`core/u128.c + +ds/libcork_la-array.lo: ds/array.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-array.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-array.Tpo -c -o ds/libcork_la-array.lo `test -f 'ds/array.c' || echo '$(srcdir)/'`ds/array.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-array.Tpo ds/$(DEPDIR)/libcork_la-array.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/array.c' object='ds/libcork_la-array.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-array.lo `test -f 'ds/array.c' || echo '$(srcdir)/'`ds/array.c + +ds/libcork_la-bitset.lo: ds/bitset.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-bitset.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-bitset.Tpo -c -o ds/libcork_la-bitset.lo `test -f 'ds/bitset.c' || echo '$(srcdir)/'`ds/bitset.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-bitset.Tpo ds/$(DEPDIR)/libcork_la-bitset.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/bitset.c' object='ds/libcork_la-bitset.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-bitset.lo `test -f 'ds/bitset.c' || echo '$(srcdir)/'`ds/bitset.c + +ds/libcork_la-buffer.lo: ds/buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-buffer.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-buffer.Tpo -c -o ds/libcork_la-buffer.lo `test -f 'ds/buffer.c' || echo '$(srcdir)/'`ds/buffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-buffer.Tpo ds/$(DEPDIR)/libcork_la-buffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/buffer.c' object='ds/libcork_la-buffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-buffer.lo `test -f 'ds/buffer.c' || echo '$(srcdir)/'`ds/buffer.c + +ds/libcork_la-dllist.lo: ds/dllist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-dllist.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-dllist.Tpo -c -o ds/libcork_la-dllist.lo `test -f 'ds/dllist.c' || echo '$(srcdir)/'`ds/dllist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-dllist.Tpo ds/$(DEPDIR)/libcork_la-dllist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/dllist.c' object='ds/libcork_la-dllist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-dllist.lo `test -f 'ds/dllist.c' || echo '$(srcdir)/'`ds/dllist.c + +ds/libcork_la-file-stream.lo: ds/file-stream.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-file-stream.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-file-stream.Tpo -c -o ds/libcork_la-file-stream.lo `test -f 'ds/file-stream.c' || echo '$(srcdir)/'`ds/file-stream.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-file-stream.Tpo ds/$(DEPDIR)/libcork_la-file-stream.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/file-stream.c' object='ds/libcork_la-file-stream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-file-stream.lo `test -f 'ds/file-stream.c' || echo '$(srcdir)/'`ds/file-stream.c + +ds/libcork_la-hash-table.lo: ds/hash-table.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-hash-table.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-hash-table.Tpo -c -o ds/libcork_la-hash-table.lo `test -f 'ds/hash-table.c' || echo '$(srcdir)/'`ds/hash-table.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-hash-table.Tpo ds/$(DEPDIR)/libcork_la-hash-table.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/hash-table.c' object='ds/libcork_la-hash-table.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-hash-table.lo `test -f 'ds/hash-table.c' || echo '$(srcdir)/'`ds/hash-table.c + +ds/libcork_la-managed-buffer.lo: ds/managed-buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-managed-buffer.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-managed-buffer.Tpo -c -o ds/libcork_la-managed-buffer.lo `test -f 'ds/managed-buffer.c' || echo '$(srcdir)/'`ds/managed-buffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-managed-buffer.Tpo ds/$(DEPDIR)/libcork_la-managed-buffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/managed-buffer.c' object='ds/libcork_la-managed-buffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-managed-buffer.lo `test -f 'ds/managed-buffer.c' || echo '$(srcdir)/'`ds/managed-buffer.c + +ds/libcork_la-ring-buffer.lo: ds/ring-buffer.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-ring-buffer.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-ring-buffer.Tpo -c -o ds/libcork_la-ring-buffer.lo `test -f 'ds/ring-buffer.c' || echo '$(srcdir)/'`ds/ring-buffer.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-ring-buffer.Tpo ds/$(DEPDIR)/libcork_la-ring-buffer.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/ring-buffer.c' object='ds/libcork_la-ring-buffer.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-ring-buffer.lo `test -f 'ds/ring-buffer.c' || echo '$(srcdir)/'`ds/ring-buffer.c + +ds/libcork_la-slice.lo: ds/slice.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT ds/libcork_la-slice.lo -MD -MP -MF ds/$(DEPDIR)/libcork_la-slice.Tpo -c -o ds/libcork_la-slice.lo `test -f 'ds/slice.c' || echo '$(srcdir)/'`ds/slice.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ds/$(DEPDIR)/libcork_la-slice.Tpo ds/$(DEPDIR)/libcork_la-slice.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ds/slice.c' object='ds/libcork_la-slice.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o ds/libcork_la-slice.lo `test -f 'ds/slice.c' || echo '$(srcdir)/'`ds/slice.c + +posix/libcork_la-directory-walker.lo: posix/directory-walker.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-directory-walker.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-directory-walker.Tpo -c -o posix/libcork_la-directory-walker.lo `test -f 'posix/directory-walker.c' || echo '$(srcdir)/'`posix/directory-walker.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-directory-walker.Tpo posix/$(DEPDIR)/libcork_la-directory-walker.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/directory-walker.c' object='posix/libcork_la-directory-walker.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-directory-walker.lo `test -f 'posix/directory-walker.c' || echo '$(srcdir)/'`posix/directory-walker.c + +posix/libcork_la-env.lo: posix/env.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-env.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-env.Tpo -c -o posix/libcork_la-env.lo `test -f 'posix/env.c' || echo '$(srcdir)/'`posix/env.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-env.Tpo posix/$(DEPDIR)/libcork_la-env.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/env.c' object='posix/libcork_la-env.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-env.lo `test -f 'posix/env.c' || echo '$(srcdir)/'`posix/env.c + +posix/libcork_la-exec.lo: posix/exec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-exec.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-exec.Tpo -c -o posix/libcork_la-exec.lo `test -f 'posix/exec.c' || echo '$(srcdir)/'`posix/exec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-exec.Tpo posix/$(DEPDIR)/libcork_la-exec.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/exec.c' object='posix/libcork_la-exec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-exec.lo `test -f 'posix/exec.c' || echo '$(srcdir)/'`posix/exec.c + +posix/libcork_la-files.lo: posix/files.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-files.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-files.Tpo -c -o posix/libcork_la-files.lo `test -f 'posix/files.c' || echo '$(srcdir)/'`posix/files.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-files.Tpo posix/$(DEPDIR)/libcork_la-files.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/files.c' object='posix/libcork_la-files.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-files.lo `test -f 'posix/files.c' || echo '$(srcdir)/'`posix/files.c + +posix/libcork_la-process.lo: posix/process.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-process.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-process.Tpo -c -o posix/libcork_la-process.lo `test -f 'posix/process.c' || echo '$(srcdir)/'`posix/process.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-process.Tpo posix/$(DEPDIR)/libcork_la-process.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/process.c' object='posix/libcork_la-process.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-process.lo `test -f 'posix/process.c' || echo '$(srcdir)/'`posix/process.c + +posix/libcork_la-subprocess.lo: posix/subprocess.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT posix/libcork_la-subprocess.lo -MD -MP -MF posix/$(DEPDIR)/libcork_la-subprocess.Tpo -c -o posix/libcork_la-subprocess.lo `test -f 'posix/subprocess.c' || echo '$(srcdir)/'`posix/subprocess.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) posix/$(DEPDIR)/libcork_la-subprocess.Tpo posix/$(DEPDIR)/libcork_la-subprocess.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='posix/subprocess.c' object='posix/libcork_la-subprocess.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o posix/libcork_la-subprocess.lo `test -f 'posix/subprocess.c' || echo '$(srcdir)/'`posix/subprocess.c + +pthreads/libcork_la-thread.lo: pthreads/thread.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -MT pthreads/libcork_la-thread.lo -MD -MP -MF pthreads/$(DEPDIR)/libcork_la-thread.Tpo -c -o pthreads/libcork_la-thread.lo `test -f 'pthreads/thread.c' || echo '$(srcdir)/'`pthreads/thread.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) pthreads/$(DEPDIR)/libcork_la-thread.Tpo pthreads/$(DEPDIR)/libcork_la-thread.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='pthreads/thread.c' object='pthreads/libcork_la-thread.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcork_la_CFLAGS) $(CFLAGS) -c -o pthreads/libcork_la-thread.lo `test -f 'pthreads/thread.c' || echo '$(srcdir)/'`pthreads/thread.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + -rm -rf cli/.libs cli/_libs + -rm -rf core/.libs core/_libs + -rm -rf ds/.libs ds/_libs + -rm -rf posix/.libs posix/_libs + -rm -rf pthreads/.libs pthreads/_libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f cli/$(DEPDIR)/$(am__dirstamp) + -rm -f cli/$(am__dirstamp) + -rm -f core/$(DEPDIR)/$(am__dirstamp) + -rm -f core/$(am__dirstamp) + -rm -f ds/$(DEPDIR)/$(am__dirstamp) + -rm -f ds/$(am__dirstamp) + -rm -f posix/$(DEPDIR)/$(am__dirstamp) + -rm -f posix/$(am__dirstamp) + -rm -f pthreads/$(DEPDIR)/$(am__dirstamp) + -rm -f pthreads/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf cli/$(DEPDIR) core/$(DEPDIR) ds/$(DEPDIR) posix/$(DEPDIR) pthreads/$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf cli/$(DEPDIR) core/$(DEPDIR) ds/$(DEPDIR) posix/$(DEPDIR) pthreads/$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/shadowsocksr-libev/src/libcork/README.markdown b/shadowsocksr-libev/src/libcork/README.markdown new file mode 100644 index 00000000000..7942ae366ac --- /dev/null +++ b/shadowsocksr-libev/src/libcork/README.markdown @@ -0,0 +1,65 @@ +# libcork + +So what is libcork, exactly? It's a “simple, easily embeddable, +cross-platform C library”. It falls roughly into the same category as +[glib](http://library.gnome.org/devel/glib/) or +[APR](http://apr.apache.org/) in the C world; the STL, +[POCO](http://pocoproject.org/), or [QtCore](http://qt.nokia.com/) +in the C++ world; or the standard libraries of any decent dynamic +language. + +So if libcork has all of these comparables, why a new library? Well, +none of the C++ options are really applicable here. And none of the C +options work, because one of the main goals is to have the library be +highly modular, and useful in resource-constrained systems. Once we +describe some of the design decisions that we've made in libcork, you'll +hopefully see how this fits into an interesting niche of its own. + +## Using libcork + +There are two primary ways to use libcork in your own software project: +as a _shared library_, or _embedded_. + +When you use libcork as a shared library, you install it just like you +would any other C library. We happen to use CMake as our build system, +so you follow the usual CMake recipe to install the library. (See the +[INSTALL](INSTALL) file for details.) All of the libcork code is +contained within a single shared library (called libcork.so, +libcork.dylib, or cork.dll, depending on the system). We also install a +pkg-config file that makes it easy to add the appropriate compiler flags +in your own build scripts. So, you use pkg-config to find libcork's +include and library files, link with libcork, and you're good to go. + +The alternative is to embed libcork into your own software project's +directory structure. In this case, your build scripts compile the +libcork source along with the rest of your code. This has some +advantages for resource-constrained systems, since (assuming your +compiler and linker are any good), you only include the libcork routines +that you actually use. And if your toolchain supports link-time +optimization, the libcork routines can be optimized into the rest of +your code. + +Which should you use? That's really up to you. Linking against the +shared library adds a runtime dependency, but gives you the usual +benefits of shared libraries: the library in memory is shared across +each program that uses it; you can install a single bug-fix update and +all libcork programs automatically take advantage of the new release; +etc. The embedding option is great if you really need to make your +library as small as possible, or if you don't want to add that runtime +dependency. + +## Design decisions + +Note that having libcork be **easily** embeddable has some ramifications +on the library's design. In particular, we don't want to make any +assumptions about which build system you're embedding libcork into. We +happen to use CMake, but you might be using autotools, waf, scons, or +any number of others. Most cross-platform libraries follow the +autotools model of performing some checks at compile time (maybe during +a separate “configure” phase, maybe not) to choose the right API +implementation for the current platform. Since we can't assume a build +system, we have to take a different approach, and do as many checks as +we can using the C preprocessor. Any check that we can't make in the +preprocessor has to be driven by a C preprocessor macro definition, +which you (the libcork user) are responsible for checking for and +defining. So we need to have as few of those as possible. diff --git a/shadowsocksr-libev/src/libcork/cli/commands.c b/shadowsocksr-libev/src/libcork/cli/commands.c new file mode 100644 index 00000000000..f5620765178 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/cli/commands.c @@ -0,0 +1,225 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include + +#include "libcork/cli.h" +#include "libcork/core.h" +#include "libcork/ds.h" + + +#define streq(a,b) (strcmp((a), (b)) == 0) + +static struct cork_buffer breadcrumbs_buf = CORK_BUFFER_INIT(); + +static void +cork_command_add_breadcrumb(struct cork_command *command) +{ + cork_buffer_append_printf(&breadcrumbs_buf, " %s", command->name); +} + +#define cork_command_breadcrumbs() ((char *) breadcrumbs_buf.buf) + +static void +cork_command_run(struct cork_command *command, int argc, char **argv); + +static struct cork_command * +cork_command_set_get_subcommand(struct cork_command *command, + const char *command_name) +{ + struct cork_command **curr; + for (curr = command->set; *curr != NULL; curr++) { + if (streq(command_name, (*curr)->name)) { + return *curr; + } + } + return NULL; +} + +static void +cork_command_set_show_help(struct cork_command *command) +{ + size_t max_length = 0; + struct cork_command **curr; + + /* Calculate the length of the longest command name. */ + for (curr = command->set; *curr != NULL; curr++) { + size_t len = strlen((*curr)->name); + if (len > max_length) { + max_length = len; + } + } + + /* Then print out the available commands. */ + printf("Usage:%s []\n" + "\nAvailable commands:\n", + cork_command_breadcrumbs()); + + for (curr = command->set; *curr != NULL; curr++) { + printf(" %*s", (int) -max_length, (*curr)->name); + if ((*curr)->short_desc != NULL) { + printf(" %s\n", (*curr)->short_desc); + } else { + printf("\n"); + } + } +} + +static void +cork_command_leaf_show_help(struct cork_command *command) +{ + printf("Usage:%s", cork_command_breadcrumbs()); + if (command->usage_suffix != NULL) { + printf(" %s", command->usage_suffix); + } + if (command->full_help != NULL) { + printf("\n\n%s", command->full_help); + } else { + printf("\n"); + } +} + +void +cork_command_show_help(struct cork_command *command, const char *message) +{ + if (message != NULL) { + printf("%s\n", message); + } + + if (command->type == CORK_COMMAND_SET) { + cork_command_set_show_help(command); + } else if (command->type == CORK_LEAF_COMMAND) { + cork_command_leaf_show_help(command); + } +} + +static void +cork_command_set_run_help(struct cork_command *command, int argc, char **argv) +{ + /* When we see the help command when processing a command set, we use any + * remaining arguments to identifity which subcommand the user wants help + * with. */ + + /* Skip over the name of the command set */ + argc--; + argv++; + + while (argc > 0 && command->type == CORK_COMMAND_SET) { + struct cork_command *subcommand = + cork_command_set_get_subcommand(command, argv[0]); + if (subcommand == NULL) { + printf("Unknown command \"%s\".\n" + "Usage:%s []\n", + argv[0], cork_command_breadcrumbs()); + exit(EXIT_FAILURE); + } + + cork_command_add_breadcrumb(subcommand); + command = subcommand; + argc--; + argv++; + } + + cork_command_show_help(command, NULL); +} + +static void +cork_command_set_run(struct cork_command *command, int argc, char **argv) +{ + const char *command_name; + struct cork_command *subcommand; + + if (argc == 0) { + printf("No command given.\n"); + cork_command_set_show_help(command); + exit(EXIT_FAILURE); + } + + command_name = argv[0]; + + /* The "help" command is special. */ + if (streq(command_name, "help")) { + cork_command_set_run_help(command, argc, argv); + return; + } + + /* Otherwise look for a real subcommand with this name. */ + subcommand = cork_command_set_get_subcommand(command, command_name); + if (subcommand == NULL) { + printf("Unknown command \"%s\".\n" + "Usage:%s []\n", + command_name, cork_command_breadcrumbs()); + exit(EXIT_FAILURE); + } else { + cork_command_run(subcommand, argc, argv); + } +} + +static void +cork_command_leaf_run(struct cork_command *command, int argc, char **argv) +{ + command->run(argc, argv); +} + +static void +cork_command_cleanup(void) +{ + cork_buffer_done(&breadcrumbs_buf); +} + +static void +cork_command_run(struct cork_command *command, int argc, char **argv) +{ + cork_command_add_breadcrumb(command); + + /* If the gives the --help option at this point, describe the current + * command. */ + if (argc >= 2 && (streq(argv[1], "--help") || streq(argv[1], "-h"))) { + cork_command_show_help(command, NULL); + return; + } + + /* Otherwise let the command parse any options that occur here. */ + if (command->parse_options != NULL) { + int option_count = command->parse_options(argc, argv); + argc -= option_count; + argv += option_count; + } else { + argc--; + argv++; + } + + switch (command->type) { + case CORK_COMMAND_SET: + cork_command_set_run(command, argc, argv); + return; + + case CORK_LEAF_COMMAND: + cork_command_leaf_run(command, argc, argv); + return; + + default: + cork_unreachable(); + } +} + + +int +cork_command_main(struct cork_command *root, int argc, char **argv) +{ + /* Clean up after ourselves when the command finishes. */ + atexit(cork_command_cleanup); + + /* Run the root command. */ + cork_command_run(root, argc, argv); + return EXIT_SUCCESS; +} diff --git a/shadowsocksr-libev/src/libcork/cmake/FindCTargets.cmake b/shadowsocksr-libev/src/libcork/cmake/FindCTargets.cmake new file mode 100644 index 00000000000..a260ffe73ba --- /dev/null +++ b/shadowsocksr-libev/src/libcork/cmake/FindCTargets.cmake @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# ---------------------------------------------------------------------- +# Copyright © 2015, RedJack, LLC. +# All rights reserved. +# +# Please see the COPYING file in this distribution for license details. +# ---------------------------------------------------------------------- + + +#----------------------------------------------------------------------- +# Library, with options to build both shared and static versions + +function(target_add_static_libraries TARGET_NAME LIBRARIES LOCAL_LIBRARIES) + foreach(lib ${LIBRARIES}) + string(REPLACE "-" "_" lib ${lib}) + string(TOUPPER ${lib} upperlib) + target_link_libraries( + ${TARGET_NAME} + ${${upperlib}_STATIC_LDFLAGS} + ) + endforeach(lib) + foreach(lib ${LOCAL_LIBRARIES}) + target_link_libraries(${TARGET_NAME} ${lib}) + endforeach(lib) +endfunction(target_add_static_libraries) + +set_property(GLOBAL PROPERTY ALL_LOCAL_LIBRARIES "") + +function(add_c_library __TARGET_NAME) + set(options) + set(one_args OUTPUT_NAME PKGCONFIG_NAME VERSION) + set(multi_args LIBRARIES LOCAL_LIBRARIES SOURCES) + cmake_parse_arguments(_ "${options}" "${one_args}" "${multi_args}" ${ARGN}) + + if (__VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-dev)?$") + set(__VERSION_CURRENT "${CMAKE_MATCH_1}") + set(__VERSION_REVISION "${CMAKE_MATCH_2}") + set(__VERSION_AGE "${CMAKE_MATCH_3}") + else (__VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-dev)?$") + message(FATAL_ERROR "Invalid library version number: ${__VERSION}") + endif (__VERSION MATCHES "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-dev)?$") + + math(EXPR __SOVERSION "${__VERSION_CURRENT} - ${__VERSION_AGE}") + + get_property(ALL_LOCAL_LIBRARIES GLOBAL PROPERTY ALL_LOCAL_LIBRARIES) + list(APPEND ALL_LOCAL_LIBRARIES ${__TARGET_NAME}) + set_property(GLOBAL PROPERTY ALL_LOCAL_LIBRARIES "${ALL_LOCAL_LIBRARIES}") + + include_directories( + ${PROJECT_SOURCE_DIR}/include + ${PROJECT_BINARY_DIR}/include + ) + add_library(${__TARGET_NAME} STATIC ${__SOURCES}) + + set_target_properties( + ${__TARGET_NAME} PROPERTIES + OUTPUT_NAME ${__OUTPUT_NAME} + CLEAN_DIRECT_OUTPUT 1 + ) + + target_include_directories( + ${__TARGET_NAME} PUBLIC + ${CMAKE_SOURCE_DIR}/include + ${CMAKE_BINARY_DIR}/include + ) + + target_add_static_libraries( + ${__TARGET_NAME} + "${__LIBRARIES}" + "${__LOCAL_LIBRARIES}" + ) +endfunction(add_c_library) diff --git a/shadowsocksr-libev/src/libcork/core/allocator.c b/shadowsocksr-libev/src/libcork/core/allocator.c new file mode 100644 index 00000000000..9a2ad058162 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/allocator.c @@ -0,0 +1,421 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include +#include + +#include "libcork/core/allocator.h" +#include "libcork/core/attributes.h" +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/os/process.h" + + +/*----------------------------------------------------------------------- + * Allocator interface + */ + +struct cork_alloc_priv { + struct cork_alloc public; + struct cork_alloc_priv *next; +}; + +static void * +cork_alloc__default_calloc(const struct cork_alloc *alloc, + size_t count, size_t size) +{ + void *result = cork_alloc_xcalloc(alloc, count, size); + if (CORK_UNLIKELY(result == NULL)) { + abort(); + } + return result; +} + +static void * +cork_alloc__default_malloc(const struct cork_alloc *alloc, size_t size) +{ + void *result = cork_alloc_xmalloc(alloc, size); + if (CORK_UNLIKELY(result == NULL)) { + abort(); + } + return result; +} + +static void * +cork_alloc__default_realloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + void *result = cork_alloc_xrealloc(alloc, ptr, old_size, new_size); + if (CORK_UNLIKELY(result == NULL)) { + abort(); + } + return result; +} + +static void * +cork_alloc__default_xcalloc(const struct cork_alloc *alloc, + size_t count, size_t size) +{ + void *result; + assert(count < (SIZE_MAX / size)); + result = cork_alloc_xmalloc(alloc, count * size); + if (result != NULL) { + memset(result, 0, count * size); + } + return result; +} + +static void * +cork_alloc__default_xmalloc(const struct cork_alloc *alloc, size_t size) +{ + cork_abort("%s isn't defined", "cork_alloc:xmalloc"); +} + +static void * +cork_alloc__default_xrealloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + void *result = cork_alloc_xmalloc(alloc, new_size); + if (CORK_LIKELY(result != NULL) && ptr != NULL) { + size_t min_size = (new_size < old_size)? new_size: old_size; + memcpy(result, ptr, min_size); + cork_alloc_free(alloc, ptr, old_size); + } + return result; +} + +static void +cork_alloc__default_free(const struct cork_alloc *alloc, void *ptr, size_t size) +{ + cork_abort("%s isn't defined", "cork_alloc:free"); +} + +static bool cleanup_registered = false; +static struct cork_alloc_priv *all_allocs = NULL; + +static void +cork_alloc_free_alloc(struct cork_alloc_priv *alloc) +{ + cork_free_user_data(&alloc->public); + cork_alloc_delete(alloc->public.parent, struct cork_alloc_priv, alloc); +} + +static void +cork_alloc_free_all(void) +{ + struct cork_alloc_priv *curr; + struct cork_alloc_priv *next; + for (curr = all_allocs; curr != NULL; curr = next) { + next = curr->next; + cork_alloc_free_alloc(curr); + } +} + +static void +cork_alloc_register_cleanup(void) +{ + if (CORK_UNLIKELY(!cleanup_registered)) { + /* We don't use cork_cleanup because that requires the allocators to + * have already been set up! (atexit calls its functions in reverse + * order, and this one will be registered before cork_cleanup's, which + * makes it safe for cork_cleanup functions to still use the allocator, + * since the allocator atexit function will be called last.) */ + atexit(cork_alloc_free_all); + cleanup_registered = true; + } +} + +struct cork_alloc * +cork_alloc_new_alloc(const struct cork_alloc *parent) +{ + struct cork_alloc_priv *alloc = + cork_alloc_new(parent, struct cork_alloc_priv); + alloc->public.parent = parent; + alloc->public.user_data = NULL; + alloc->public.free_user_data = NULL; + alloc->public.calloc = cork_alloc__default_calloc; + alloc->public.malloc = cork_alloc__default_malloc; + alloc->public.realloc = cork_alloc__default_realloc; + alloc->public.xcalloc = cork_alloc__default_xcalloc; + alloc->public.xmalloc = cork_alloc__default_xmalloc; + alloc->public.xrealloc = cork_alloc__default_xrealloc; + alloc->public.free = cork_alloc__default_free; + + cork_alloc_register_cleanup(); + alloc->next = all_allocs; + all_allocs = alloc; + + return &alloc->public; +} + + +void +cork_alloc_set_user_data(struct cork_alloc *alloc, + void *user_data, cork_free_f free_user_data) +{ + cork_free_user_data(alloc); + alloc->user_data = user_data; + alloc->free_user_data = free_user_data; +} + +void +cork_alloc_set_calloc(struct cork_alloc *alloc, cork_alloc_calloc_f calloc) +{ + alloc->calloc = calloc; +} + +void +cork_alloc_set_malloc(struct cork_alloc *alloc, cork_alloc_malloc_f malloc) +{ + alloc->malloc = malloc; +} + +void +cork_alloc_set_realloc(struct cork_alloc *alloc, cork_alloc_realloc_f realloc) +{ + alloc->realloc = realloc; +} + +void +cork_alloc_set_xcalloc(struct cork_alloc *alloc, cork_alloc_calloc_f xcalloc) +{ + alloc->xcalloc = xcalloc; +} + +void +cork_alloc_set_xmalloc(struct cork_alloc *alloc, cork_alloc_malloc_f xmalloc) +{ + alloc->xmalloc = xmalloc; +} + +void +cork_alloc_set_xrealloc(struct cork_alloc *alloc, + cork_alloc_realloc_f xrealloc) +{ + alloc->xrealloc = xrealloc; +} + +void +cork_alloc_set_free(struct cork_alloc *alloc, cork_alloc_free_f free) +{ + alloc->free = free; +} + + +/*----------------------------------------------------------------------- + * Allocating strings + */ + +static inline const char * +strndup_internal(const struct cork_alloc *alloc, + const char *str, size_t len) +{ + char *dest; + size_t allocated_size = len + sizeof(size_t) + 1; + size_t *new_str = cork_alloc_malloc(alloc, allocated_size); + *new_str = allocated_size; + dest = (char *) (void *) (new_str + 1); + memcpy(dest, str, len); + dest[len] = '\0'; + return dest; +} + +const char * +cork_alloc_strdup(const struct cork_alloc *alloc, const char *str) +{ + return strndup_internal(alloc, str, strlen(str)); +} + +const char * +cork_alloc_strndup(const struct cork_alloc *alloc, + const char *str, size_t size) +{ + return strndup_internal(alloc, str, size); +} + +static inline const char * +xstrndup_internal(const struct cork_alloc *alloc, + const char *str, size_t len) +{ + size_t allocated_size = len + sizeof(size_t) + 1; + size_t *new_str = cork_alloc_xmalloc(alloc, allocated_size); + if (CORK_UNLIKELY(new_str == NULL)) { + return NULL; + } else { + char *dest; + *new_str = allocated_size; + dest = (char *) (void *) (new_str + 1); + memcpy(dest, str, len); + dest[len] = '\0'; + return dest; + } +} + +const char * +cork_alloc_xstrdup(const struct cork_alloc *alloc, const char *str) +{ + return xstrndup_internal(alloc, str, strlen(str)); +} + +const char * +cork_alloc_xstrndup(const struct cork_alloc *alloc, + const char *str, size_t size) +{ + return xstrndup_internal(alloc, str, size); +} + +void +cork_alloc_strfree(const struct cork_alloc *alloc, const char *str) +{ + size_t *base = ((size_t *) str) - 1; + cork_alloc_free(alloc, base, *base); +} + + +/*----------------------------------------------------------------------- + * stdlib allocator + */ + +static void * +cork_stdlib_alloc__calloc(const struct cork_alloc *alloc, + size_t count, size_t size) +{ + void *result = calloc(count, size); + if (CORK_UNLIKELY(result == NULL)) { + abort(); + } + return result; +} + +static void * +cork_stdlib_alloc__malloc(const struct cork_alloc *alloc, size_t size) +{ + void *result = malloc(size); + if (CORK_UNLIKELY(result == NULL)) { + abort(); + } + return result; +} + +static void * +cork_stdlib_alloc__realloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + /* Technically we don't really need to free `ptr` if the reallocation fails, + * since we'll abort the process immediately after. But my sense of + * cleanliness makes me do it anyway. */ + +#if CORK_HAVE_REALLOCF + void *result = reallocf(ptr, new_size); + if (result == NULL) { + abort(); + } + return result; +#else + void *result = realloc(ptr, new_size); + if (result == NULL) { + free(ptr); + abort(); + } + return result; +#endif +} + +static void * +cork_stdlib_alloc__xcalloc(const struct cork_alloc *alloc, + size_t count, size_t size) +{ + return calloc(count, size); +} + +static void * +cork_stdlib_alloc__xmalloc(const struct cork_alloc *alloc, size_t size) +{ + return malloc(size); +} + +static void * +cork_stdlib_alloc__xrealloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + return realloc(ptr, new_size); +} + +static void +cork_stdlib_alloc__free(const struct cork_alloc *alloc, void *ptr, size_t size) +{ + free(ptr); +} + + +static const struct cork_alloc default_allocator = { + NULL, + NULL, + NULL, + cork_stdlib_alloc__calloc, + cork_stdlib_alloc__malloc, + cork_stdlib_alloc__realloc, + cork_stdlib_alloc__xcalloc, + cork_stdlib_alloc__xmalloc, + cork_stdlib_alloc__xrealloc, + cork_stdlib_alloc__free +}; + + +/*----------------------------------------------------------------------- + * Customizing libcork's allocator + */ + +const struct cork_alloc *cork_allocator = &default_allocator; + +void +cork_set_allocator(const struct cork_alloc *alloc) +{ + cork_allocator = alloc; +} + + +/*----------------------------------------------------------------------- + * Debugging allocator + */ + +static void * +cork_debug_alloc__xmalloc(const struct cork_alloc *alloc, size_t size) +{ + size_t real_size = size + sizeof(size_t); + size_t *base = cork_alloc_xmalloc(alloc->parent, real_size); + *base = size; + return base + 1; +} + +static void +cork_debug_alloc__free(const struct cork_alloc *alloc, void *ptr, + size_t expected_size) +{ + size_t *base = ((size_t *) ptr) - 1; + size_t actual_size = *base; + size_t real_size = actual_size + sizeof(size_t); + if (CORK_UNLIKELY(actual_size != expected_size)) { + cork_abort + ("Incorrect size when freeing pointer (got %zu, expected %zu)", + expected_size, actual_size); + } + cork_alloc_free(alloc->parent, base, real_size); +} + +struct cork_alloc * +cork_debug_alloc_new(const struct cork_alloc *parent) +{ + struct cork_alloc *debug = cork_alloc_new_alloc(parent); + cork_alloc_set_xmalloc(debug, cork_debug_alloc__xmalloc); + cork_alloc_set_free(debug, cork_debug_alloc__free); + return debug; +} diff --git a/shadowsocksr-libev/src/libcork/core/error.c b/shadowsocksr-libev/src/libcork/core/error.c new file mode 100644 index 00000000000..114a0905885 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/error.c @@ -0,0 +1,246 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include +#include + +#include "libcork/config.h" +#include "libcork/core/allocator.h" +#include "libcork/core/error.h" +#include "libcork/ds/buffer.h" +#include "libcork/os/process.h" +#include "libcork/threads/basics.h" + + +/*----------------------------------------------------------------------- + * Life cycle + */ + +struct cork_error { + cork_error code; + struct cork_buffer *message; + struct cork_buffer *other; + struct cork_buffer buf1; + struct cork_buffer buf2; + struct cork_error *next; +}; + +static struct cork_error * +cork_error_new(void) +{ + struct cork_error *error = cork_new(struct cork_error); + error->code = CORK_ERROR_NONE; + cork_buffer_init(&error->buf1); + cork_buffer_init(&error->buf2); + error->message = &error->buf1; + error->other = &error->buf2; + return error; +} + +static void +cork_error_free(struct cork_error *error) +{ + cork_buffer_done(&error->buf1); + cork_buffer_done(&error->buf2); + cork_delete(struct cork_error, error); +} + + +static struct cork_error * volatile errors; + +cork_once_barrier(cork_error_list); + +static void +cork_error_list_done(void) +{ + struct cork_error *curr; + struct cork_error *next; + for (curr = errors; curr != NULL; curr = next) { + next = curr->next; + cork_error_free(curr); + } +} + +static void +cork_error_list_init(void) +{ + cork_cleanup_at_exit(0, cork_error_list_done); +} + + +cork_tls(struct cork_error *, cork_error_); + +static struct cork_error * +cork_error_get(void) +{ + struct cork_error **error_ptr = cork_error__get(); + if (CORK_UNLIKELY(*error_ptr == NULL)) { + struct cork_error *old_head; + struct cork_error *error = cork_error_new(); + cork_once(cork_error_list, cork_error_list_init()); + do { + old_head = errors; + error->next = old_head; + } while (cork_ptr_cas(&errors, old_head, error) != old_head); + *error_ptr = error; + return error; + } else { + return *error_ptr; + } +} + + +/*----------------------------------------------------------------------- + * Public error API + */ + +bool +cork_error_occurred(void) +{ + struct cork_error *error = cork_error_get(); + return error->code != CORK_ERROR_NONE; +} + +cork_error +cork_error_code(void) +{ + struct cork_error *error = cork_error_get(); + return error->code; +} + +const char * +cork_error_message(void) +{ + struct cork_error *error = cork_error_get(); + return error->message->buf; +} + +void +cork_error_clear(void) +{ + struct cork_error *error = cork_error_get(); + error->code = CORK_ERROR_NONE; + cork_buffer_clear(error->message); +} + +void +cork_error_set_printf(cork_error code, const char *format, ...) +{ + va_list args; + struct cork_error *error = cork_error_get(); + error->code = code; + va_start(args, format); + cork_buffer_vprintf(error->message, format, args); + va_end(args); +} + +void +cork_error_set_string(cork_error code, const char *str) +{ + struct cork_error *error = cork_error_get(); + error->code = code; + cork_buffer_set_string(error->message, str); +} + +void +cork_error_set_vprintf(cork_error code, const char *format, va_list args) +{ + struct cork_error *error = cork_error_get(); + error->code = code; + cork_buffer_vprintf(error->message, format, args); +} + +void +cork_error_prefix_printf(const char *format, ...) +{ + va_list args; + struct cork_error *error = cork_error_get(); + struct cork_buffer *temp; + va_start(args, format); + cork_buffer_vprintf(error->other, format, args); + va_end(args); + cork_buffer_append_copy(error->other, error->message); + temp = error->other; + error->other = error->message; + error->message = temp; +} + +void +cork_error_prefix_string(const char *str) +{ + struct cork_error *error = cork_error_get(); + struct cork_buffer *temp; + cork_buffer_set_string(error->other, str); + cork_buffer_append_copy(error->other, error->message); + temp = error->other; + error->other = error->message; + error->message = temp; +} + +void +cork_error_prefix_vprintf(const char *format, va_list args) +{ + struct cork_error *error = cork_error_get(); + struct cork_buffer *temp; + cork_buffer_vprintf(error->other, format, args); + cork_buffer_append_copy(error->other, error->message); + temp = error->other; + error->other = error->message; + error->message = temp; +} + + +/*----------------------------------------------------------------------- + * Deprecated + */ + +void +cork_error_set(uint32_t error_class, unsigned int error_code, + const char *format, ...) +{ + /* Create a fallback error code that's most likely not very useful. */ + va_list args; + va_start(args, format); + cork_error_set_vprintf(error_class + error_code, format, args); + va_end(args); +} + +void +cork_error_prefix(const char *format, ...) +{ + va_list args; + va_start(args, format); + cork_error_prefix_vprintf(format, args); + va_end(args); +} + + +/*----------------------------------------------------------------------- + * Built-in errors + */ + +void +cork_system_error_set_explicit(int err) +{ + cork_error_set_string(err, strerror(err)); +} + +void +cork_system_error_set(void) +{ + cork_error_set_string(errno, strerror(errno)); +} + +void +cork_unknown_error_set_(const char *location) +{ + cork_error_set_printf(CORK_UNKNOWN_ERROR, "Unknown error in %s", location); +} diff --git a/shadowsocksr-libev/src/libcork/core/gc.c b/shadowsocksr-libev/src/libcork/core/gc.c new file mode 100644 index 00000000000..d16562d7a51 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/gc.c @@ -0,0 +1,406 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include + +#include "libcork/config/config.h" +#include "libcork/core/allocator.h" +#include "libcork/core/gc.h" +#include "libcork/core/types.h" +#include "libcork/ds/dllist.h" +#include "libcork/threads/basics.h" + + +#if !defined(CORK_DEBUG_GC) +#define CORK_DEBUG_GC 0 +#endif + +#if CORK_DEBUG_GC +#include +#define DEBUG(...) fprintf(stderr, __VA_ARGS__) +#else +#define DEBUG(...) /* no debug messages */ +#endif + + +/*----------------------------------------------------------------------- + * GC context life cycle + */ + +#define ROOTS_SIZE 1024 + +/* An internal structure allocated with every garbage-collected object. */ +struct cork_gc_header; + +/* A garbage collector context. */ +struct cork_gc { + /* The number of used entries in roots. */ + size_t root_count; + /* The possible roots of garbage cycles */ + struct cork_gc_header *roots[ROOTS_SIZE]; +}; + +cork_tls(struct cork_gc, cork_gc); + +static void +cork_gc_collect_cycles(struct cork_gc *gc); + + +/*----------------------------------------------------------------------- + * Garbage collection functions + */ + +struct cork_gc_header { + /* The current reference count for this object, along with its color + * during the mark/sweep process. */ + volatile int ref_count_color; + + /* The allocated size of this garbage-collected object (including + * the header). */ + size_t allocated_size; + + /* The garbage collection interface for this object. */ + struct cork_gc_obj_iface *iface; +}; + +/* + * Structure of ref_count_color: + * + * +-----+---+---+---+---+---+ + * | ... | 4 | 3 | 2 | 1 | 0 | + * +-----+---+---+---+---+---+ + * ref_count | color + * | + * buffered --/ + */ + +#define cork_gc_ref_count_color(count, buffered, color) \ + (((count) << 3) | ((buffered) << 2) | (color)) + +#define cork_gc_get_ref_count(hdr) \ + ((hdr)->ref_count_color >> 3) + +#define cork_gc_inc_ref_count(hdr) \ + do { \ + (hdr)->ref_count_color += (1 << 3); \ + } while (0) + +#define cork_gc_dec_ref_count(hdr) \ + do { \ + (hdr)->ref_count_color -= (1 << 3); \ + } while (0) + +#define cork_gc_get_color(hdr) \ + ((hdr)->ref_count_color & 0x3) + +#define cork_gc_set_color(hdr, color) \ + do { \ + (hdr)->ref_count_color = \ + ((hdr)->ref_count_color & ~0x3) | (color & 0x3); \ + } while (0) + +#define cork_gc_get_buffered(hdr) \ + (((hdr)->ref_count_color & 0x4) != 0) + +#define cork_gc_set_buffered(hdr, buffered) \ + do { \ + (hdr)->ref_count_color = \ + ((hdr)->ref_count_color & ~0x4) | (((buffered) & 1) << 2); \ + } while (0) + +#define cork_gc_free(hdr) \ + do { \ + if ((hdr)->iface->free != NULL) { \ + (hdr)->iface->free(cork_gc_get_object((hdr))); \ + } \ + cork_free((hdr), (hdr)->allocated_size); \ + } while (0) + +#define cork_gc_recurse(gc, hdr, recurser) \ + do { \ + if ((hdr)->iface->recurse != NULL) { \ + (hdr)->iface->recurse \ + ((gc), cork_gc_get_object((hdr)), (recurser), NULL); \ + } \ + } while (0) + +enum cork_gc_color { + /* In use or free */ + GC_BLACK = 0, + /* Possible member of garbage cycle */ + GC_GRAY = 1, + /* Member of garbage cycle */ + GC_WHITE = 2, + /* Possible root of garbage cycle */ + GC_PURPLE = 3 +}; + +#define cork_gc_get_header(obj) \ + (((struct cork_gc_header *) (obj)) - 1) + +#define cork_gc_get_object(hdr) \ + ((void *) (((struct cork_gc_header *) (hdr)) + 1)) + + +void +cork_gc_init(void) +{ + cork_gc_get(); +} + +void +cork_gc_done(void) +{ + cork_gc_collect_cycles(cork_gc_get()); +} + +void * +cork_gc_alloc(size_t instance_size, struct cork_gc_obj_iface *iface) +{ + size_t full_size = instance_size + sizeof(struct cork_gc_header); + DEBUG("Allocating %zu (%zu) bytes\n", instance_size, full_size); + struct cork_gc_header *header = cork_malloc(full_size); + DEBUG(" Result is %p[%p]\n", cork_gc_get_object(header), header); + header->ref_count_color = cork_gc_ref_count_color(1, false, GC_BLACK); + header->allocated_size = full_size; + header->iface = iface; + return cork_gc_get_object(header); +} + +void * +cork_gc_incref(void *obj) +{ + if (obj != NULL) { + struct cork_gc_header *header = cork_gc_get_header(obj); + cork_gc_inc_ref_count(header); + DEBUG("Incrementing %p -> %d\n", + obj, cork_gc_get_ref_count(header)); + cork_gc_set_color(header, GC_BLACK); + } + return obj; +} + +static void +cork_gc_decref_step(struct cork_gc *gc, void *obj, void *ud); + +static void +cork_gc_release(struct cork_gc *gc, struct cork_gc_header *header) +{ + cork_gc_recurse(gc, header, cork_gc_decref_step); + cork_gc_set_color(header, GC_BLACK); + if (!cork_gc_get_buffered(header)) { + cork_gc_free(header); + } +} + +static void +cork_gc_possible_root(struct cork_gc *gc, struct cork_gc_header *header) +{ + if (cork_gc_get_color(header) != GC_PURPLE) { + DEBUG(" Possible garbage cycle root\n"); + cork_gc_set_color(header, GC_PURPLE); + if (!cork_gc_get_buffered(header)) { + cork_gc_set_buffered(header, true); + if (gc->root_count >= ROOTS_SIZE) { + cork_gc_collect_cycles(gc); + } + gc->roots[gc->root_count++] = header; + } + } else { + DEBUG(" Already marked as possible garbage cycle root\n"); + } +} + +static void +cork_gc_decref_step(struct cork_gc *gc, void *obj, void *ud) +{ + if (obj != NULL) { + struct cork_gc_header *header = cork_gc_get_header(obj); + cork_gc_dec_ref_count(header); + DEBUG("Decrementing %p -> %d\n", + obj, cork_gc_get_ref_count(header)); + if (cork_gc_get_ref_count(header) == 0) { + DEBUG(" Releasing %p\n", header); + cork_gc_release(gc, header); + } else { + cork_gc_possible_root(gc, header); + } + } +} + +void +cork_gc_decref(void *obj) +{ + if (obj != NULL) { + struct cork_gc *gc = cork_gc_get(); + struct cork_gc_header *header = cork_gc_get_header(obj); + cork_gc_dec_ref_count(header); + DEBUG("Decrementing %p -> %d\n", + obj, cork_gc_get_ref_count(header)); + if (cork_gc_get_ref_count(header) == 0) { + DEBUG(" Releasing %p\n", header); + cork_gc_release(gc, header); + } else { + cork_gc_possible_root(gc, header); + } + } +} + + +static void +cork_gc_mark_gray_step(struct cork_gc *gc, void *obj, void *ud); + +static void +cork_gc_mark_gray(struct cork_gc *gc, struct cork_gc_header *header) +{ + if (cork_gc_get_color(header) != GC_GRAY) { + DEBUG(" Setting color to gray\n"); + cork_gc_set_color(header, GC_GRAY); + cork_gc_recurse(gc, header, cork_gc_mark_gray_step); + } +} + +static void +cork_gc_mark_gray_step(struct cork_gc *gc, void *obj, void *ud) +{ + if (obj != NULL) { + DEBUG(" cork_gc_mark_gray(%p)\n", obj); + struct cork_gc_header *header = cork_gc_get_header(obj); + cork_gc_dec_ref_count(header); + DEBUG(" Reference count now %d\n", cork_gc_get_ref_count(header)); + cork_gc_mark_gray(gc, header); + } +} + +static void +cork_gc_mark_roots(struct cork_gc *gc) +{ + size_t i; + for (i = 0; i < gc->root_count; i++) { + struct cork_gc_header *header = gc->roots[i]; + if (cork_gc_get_color(header) == GC_PURPLE) { + DEBUG(" Checking possible garbage cycle root %p\n", + cork_gc_get_object(header)); + DEBUG(" cork_gc_mark_gray(%p)\n", + cork_gc_get_object(header)); + cork_gc_mark_gray(gc, header); + } else { + DEBUG(" Possible garbage cycle root %p already checked\n", + cork_gc_get_object(header)); + cork_gc_set_buffered(header, false); + gc->roots[i] = NULL; + if (cork_gc_get_color(header) == GC_BLACK && + cork_gc_get_ref_count(header) == 0) { + DEBUG(" Freeing %p\n", header); + cork_gc_free(header); + } + } + } +} + +static void +cork_gc_scan_black_step(struct cork_gc *gc, void *obj, void *ud); + +static void +cork_gc_scan_black(struct cork_gc *gc, struct cork_gc_header *header) +{ + DEBUG(" Setting color of %p to BLACK\n", + cork_gc_get_object(header)); + cork_gc_set_color(header, GC_BLACK); + cork_gc_recurse(gc, header, cork_gc_scan_black_step); +} + +static void +cork_gc_scan_black_step(struct cork_gc *gc, void *obj, void *ud) +{ + if (obj != NULL) { + struct cork_gc_header *header = cork_gc_get_header(obj); + cork_gc_inc_ref_count(header); + DEBUG(" Increasing reference count %p -> %d\n", + obj, cork_gc_get_ref_count(header)); + if (cork_gc_get_color(header) != GC_BLACK) { + cork_gc_scan_black(gc, header); + } + } +} + +static void +cork_gc_scan(struct cork_gc *gc, void *obj, void *ud) +{ + if (obj != NULL) { + DEBUG(" Scanning possible garbage cycle entry %p\n", obj); + struct cork_gc_header *header = cork_gc_get_header(obj); + if (cork_gc_get_color(header) == GC_GRAY) { + if (cork_gc_get_ref_count(header) > 0) { + DEBUG(" Remaining references; can't be a cycle\n"); + cork_gc_scan_black(gc, header); + } else { + DEBUG(" Definitely a garbage cycle\n"); + cork_gc_set_color(header, GC_WHITE); + cork_gc_recurse(gc, header, cork_gc_scan); + } + } else { + DEBUG(" Already checked\n"); + } + } +} + +static void +cork_gc_scan_roots(struct cork_gc *gc) +{ + size_t i; + for (i = 0; i < gc->root_count; i++) { + if (gc->roots[i] != NULL) { + void *obj = cork_gc_get_object(gc->roots[i]); + cork_gc_scan(gc, obj, NULL); + } + } +} + +static void +cork_gc_collect_white(struct cork_gc *gc, void *obj, void *ud) +{ + if (obj != NULL) { + struct cork_gc_header *header = cork_gc_get_header(obj); + if (cork_gc_get_color(header) == GC_WHITE && + !cork_gc_get_buffered(header)) { + DEBUG(" Releasing %p\n", obj); + cork_gc_set_color(header, GC_BLACK); + cork_gc_recurse(gc, header, cork_gc_collect_white); + DEBUG(" Freeing %p\n", header); + cork_gc_free(header); + } + } +} + +static void +cork_gc_collect_roots(struct cork_gc *gc) +{ + size_t i; + for (i = 0; i < gc->root_count; i++) { + if (gc->roots[i] != NULL) { + struct cork_gc_header *header = gc->roots[i]; + void *obj = cork_gc_get_object(header); + cork_gc_set_buffered(header, false); + DEBUG("Collecting cycles from garbage root %p\n", obj); + cork_gc_collect_white(gc, obj, NULL); + gc->roots[i] = NULL; + } + } + gc->root_count = 0; +} + +static void +cork_gc_collect_cycles(struct cork_gc *gc) +{ + DEBUG("Collecting garbage cycles\n"); + cork_gc_mark_roots(gc); + cork_gc_scan_roots(gc); + cork_gc_collect_roots(gc); +} diff --git a/shadowsocksr-libev/src/libcork/core/hash.c b/shadowsocksr-libev/src/libcork/core/hash.c new file mode 100644 index 00000000000..79b582489a1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/hash.c @@ -0,0 +1,20 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#define CORK_HASH_ATTRIBUTES CORK_API + +#include "libcork/core/hash.h" +#include "libcork/core/types.h" + +/* All of the following functions will be defined for us by libcork/core/hash.h: + * cork_hash_buffer + * cork_big_hash_buffer + * cork_stable_hash_buffer + */ diff --git a/shadowsocksr-libev/src/libcork/core/ip-address.c b/shadowsocksr-libev/src/libcork/core/ip-address.c new file mode 100644 index 00000000000..6ad95fb281d --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/ip-address.c @@ -0,0 +1,536 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core/byte-order.h" +#include "libcork/core/error.h" +#include "libcork/core/net-addresses.h" +#include "libcork/core/types.h" + +#ifndef CORK_IP_ADDRESS_DEBUG +#define CORK_IP_ADDRESS_DEBUG 0 +#endif + +#if CORK_IP_ADDRESS_DEBUG +#include +#define DEBUG(...) \ + do { \ + fprintf(stderr, __VA_ARGS__); \ + } while (0) +#else +#define DEBUG(...) /* nothing */ +#endif + + +/*----------------------------------------------------------------------- + * IP addresses + */ + +/*** IPv4 ***/ + +static inline const char * +cork_ipv4_parse(struct cork_ipv4 *addr, const char *str) +{ + const char *ch; + bool seen_digit_in_octet = false; + unsigned int octets = 0; + unsigned int digit = 0; + uint8_t result[4]; + + for (ch = str; *ch != '\0'; ch++) { + DEBUG("%2u: %c\t", (unsigned int) (ch-str), *ch); + switch (*ch) { + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + seen_digit_in_octet = true; + digit *= 10; + digit += (*ch - '0'); + DEBUG("digit = %u\n", digit); + if (CORK_UNLIKELY(digit > 255)) { + DEBUG("\t"); + goto parse_error; + } + break; + + case '.': + /* If this would be the fourth octet, it can't have a trailing + * period. */ + if (CORK_UNLIKELY(octets == 3)) { + goto parse_error; + } + DEBUG("octet %u = %u\n", octets, digit); + result[octets] = digit; + digit = 0; + octets++; + seen_digit_in_octet = false; + break; + + default: + /* Any other character is a parse error. */ + goto parse_error; + } + } + + /* If we have a valid octet at the end, and that would be the fourth octet, + * then we've got a valid final parse. */ + DEBUG("%2u:\t", (unsigned int) (ch-str)); + if (CORK_LIKELY(seen_digit_in_octet && octets == 3)) { +#if CORK_IP_ADDRESS_DEBUG + char parsed_ipv4[CORK_IPV4_STRING_LENGTH]; +#endif + DEBUG("octet %u = %u\n", octets, digit); + result[octets] = digit; + cork_ipv4_copy(addr, result); +#if CORK_IP_ADDRESS_DEBUG + cork_ipv4_to_raw_string(addr, parsed_ipv4); + DEBUG("\tParsed address: %s\n", parsed_ipv4); +#endif + return ch; + } + +parse_error: + DEBUG("parse error\n"); + cork_parse_error("Invalid IPv4 address: \"%s\"", str); + return NULL; +} + +int +cork_ipv4_init(struct cork_ipv4 *addr, const char *str) +{ + return cork_ipv4_parse(addr, str) == NULL? -1: 0; +} + +bool +cork_ipv4_equal_(const struct cork_ipv4 *addr1, const struct cork_ipv4 *addr2) +{ + return cork_ipv4_equal(addr1, addr2); +} + +void +cork_ipv4_to_raw_string(const struct cork_ipv4 *addr, char *dest) +{ + snprintf(dest, CORK_IPV4_STRING_LENGTH, "%u.%u.%u.%u", + addr->_.u8[0], addr->_.u8[1], addr->_.u8[2], addr->_.u8[3]); +} + +bool +cork_ipv4_is_valid_network(const struct cork_ipv4 *addr, + unsigned int cidr_prefix) +{ + uint32_t cidr_mask; + + if (cidr_prefix > 32) { + return false; + } else if (cidr_prefix == 32) { + /* This handles undefined behavior for overflow bit shifts. */ + cidr_mask = 0; + } else { + cidr_mask = 0xffffffff >> cidr_prefix; + } + + return (CORK_UINT32_BIG_TO_HOST(addr->_.u32) & cidr_mask) == 0; +} + +/*** IPv6 ***/ + +int +cork_ipv6_init(struct cork_ipv6 *addr, const char *str) +{ + const char *ch; + + uint16_t digit = 0; + unsigned int before_count = 0; + uint16_t before_double_colon[8]; + uint16_t after_double_colon[8]; + uint16_t *dest = before_double_colon; + + unsigned int digits_seen = 0; + unsigned int hextets_seen = 0; + bool another_required = true; + bool digit_allowed = true; + bool colon_allowed = true; + bool double_colon_allowed = true; + bool just_saw_colon = false; + + for (ch = str; *ch != '\0'; ch++) { + DEBUG("%2u: %c\t", (unsigned int) (ch-str), *ch); + switch (*ch) { +#define process_digit(base) \ + /* Make sure a digit is allowed here. */ \ + if (CORK_UNLIKELY(!digit_allowed)) { \ + goto parse_error; \ + } \ + /* If we've already seen 4 digits, it's a parse error. */ \ + if (CORK_UNLIKELY(digits_seen == 4)) { \ + goto parse_error; \ + } \ + \ + digits_seen++; \ + colon_allowed = true; \ + just_saw_colon = false; \ + digit <<= 4; \ + digit |= (*ch - (base)); \ + DEBUG("digit = %04x\n", digit); + + case '0': case '1': case '2': case '3': case '4': + case '5': case '6': case '7': case '8': case '9': + process_digit('0'); + break; + + case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': + process_digit('a'-10); + break; + + case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': + process_digit('A'-10); + break; + +#undef process_digit + + case ':': + /* We can only see a colon immediately after a hextet or as part + * of a double-colon. */ + if (CORK_UNLIKELY(!colon_allowed)) { + goto parse_error; + } + + /* If this is a double-colon, start parsing hextets into our + * second array. */ + if (just_saw_colon) { + DEBUG("double-colon\n"); + colon_allowed = false; + digit_allowed = true; + another_required = false; + double_colon_allowed = false; + before_count = hextets_seen; + dest = after_double_colon; + continue; + } + + /* If this would end the eighth hextet (regardless of the + * placement of a double-colon), then there can't be a trailing + * colon. */ + if (CORK_UNLIKELY(hextets_seen == 8)) { + goto parse_error; + } + + /* If this is the very beginning of the string, then we can only + * have a double-colon, not a single colon. */ + if (digits_seen == 0 && hextets_seen == 0) { + DEBUG("initial colon\n"); + colon_allowed = true; + digit_allowed = false; + just_saw_colon = true; + another_required = true; + continue; + } + + /* Otherwise this ends the current hextet. */ + DEBUG("hextet %u = %04x\n", hextets_seen, digit); + *(dest++) = CORK_UINT16_HOST_TO_BIG(digit); + digit = 0; + hextets_seen++; + digits_seen = 0; + colon_allowed = double_colon_allowed; + just_saw_colon = true; + another_required = true; + break; + + case '.': + { + /* If we see a period, then we must be in the middle of an IPv4 + * address at the end of the IPv6 address. */ + struct cork_ipv4 *ipv4 = (struct cork_ipv4 *) dest; + DEBUG("Detected IPv4 address %s\n", ch-digits_seen); + + /* Ensure that we have space for the two hextets that the IPv4 + * address will take up. */ + if (CORK_UNLIKELY(hextets_seen >= 7)) { + goto parse_error; + } + + /* Parse the IPv4 address directly into our current hextet + * buffer. */ + ch = cork_ipv4_parse(ipv4, ch - digits_seen); + if (CORK_LIKELY(ch != NULL)) { + hextets_seen += 2; + digits_seen = 0; + another_required = false; + + /* ch now points at the NUL terminator, but we're about to + * increment ch. */ + ch--; + break; + } + + /* The IPv4 parse failed, so we have an IPv6 parse error. */ + goto parse_error; + } + + default: + /* Any other character is a parse error. */ + goto parse_error; + } + } + + /* If we have a valid hextet at the end, and we've either seen a + * double-colon, or we have eight hextets in total, then we've got a valid + * final parse. */ + DEBUG("%2u:\t", (unsigned int) (ch-str)); + if (CORK_LIKELY(digits_seen > 0)) { + /* If there are trailing digits that would form a ninth hextet + * (regardless of the placement of a double-colon), then we have a parse + * error. */ + if (CORK_UNLIKELY(hextets_seen == 8)) { + goto parse_error; + } + + DEBUG("hextet %u = %04x\n\t", hextets_seen, digit); + *(dest++) = CORK_UINT16_HOST_TO_BIG(digit); + hextets_seen++; + } else if (CORK_UNLIKELY(another_required)) { + goto parse_error; + } + + if (!double_colon_allowed) { + /* We've seen a double-colon, so use 0000 for any hextets that weren't + * present. */ +#if CORK_IP_ADDRESS_DEBUG + char parsed_result[CORK_IPV6_STRING_LENGTH]; +#endif + unsigned int after_count = hextets_seen - before_count; + DEBUG("Saw double-colon; %u hextets before, %u after\n", + before_count, after_count); + memset(addr, 0, sizeof(struct cork_ipv6)); + memcpy(addr, before_double_colon, + sizeof(uint16_t) * before_count); + memcpy(&addr->_.u16[8-after_count], after_double_colon, + sizeof(uint16_t) * after_count); +#if CORK_IP_ADDRESS_DEBUG + cork_ipv6_to_raw_string(addr, parsed_result); + DEBUG("\tParsed address: %s\n", parsed_result); +#endif + return 0; + } else if (hextets_seen == 8) { + /* No double-colon, so we must have exactly eight hextets. */ +#if CORK_IP_ADDRESS_DEBUG + char parsed_result[CORK_IPV6_STRING_LENGTH]; +#endif + DEBUG("No double-colon\n"); + cork_ipv6_copy(addr, before_double_colon); +#if CORK_IP_ADDRESS_DEBUG + cork_ipv6_to_raw_string(addr, parsed_result); + DEBUG("\tParsed address: %s\n", parsed_result); +#endif + return 0; + } + +parse_error: + DEBUG("parse error\n"); + cork_parse_error("Invalid IPv6 address: \"%s\"", str); + return -1; +} + +bool +cork_ipv6_equal_(const struct cork_ipv6 *addr1, const struct cork_ipv6 *addr2) +{ + return cork_ipv6_equal(addr1, addr2); +} + +#define NS_IN6ADDRSZ 16 +#define NS_INT16SZ 2 + +void +cork_ipv6_to_raw_string(const struct cork_ipv6 *addr, char *dest) +{ + const uint8_t *src = addr->_.u8; + + /* + * Note that int32_t and int16_t need only be "at least" large enough + * to contain a value of the specified size. On some systems, like + * Crays, there is no such thing as an integer variable with 16 bits. + * Keep this in mind if you think this function should have been coded + * to use pointer overlays. All the world's not a VAX. + */ + char *tp; + struct { int base, len; } best, cur; + unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ]; + int i; + + /* + * Preprocess: + * Copy the input (bytewise) array into a wordwise array. + * Find the longest run of 0x00's in src[] for :: shorthanding. + */ + memset(words, '\0', sizeof words); + for (i = 0; i < NS_IN6ADDRSZ; i++) + words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3)); + best.base = -1; + best.len = 0; + cur.base = -1; + cur.len = 0; + for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { + if (words[i] == 0) { + if (cur.base == -1) + cur.base = i, cur.len = 1; + else + cur.len++; + } else { + if (cur.base != -1) { + if (best.base == -1 || cur.len > best.len) + best = cur; + cur.base = -1; + } + } + } + if (cur.base != -1) { + if (best.base == -1 || cur.len > best.len) + best = cur; + } + if (best.base != -1 && best.len < 2) + best.base = -1; + + /* + * Format the result. + */ + tp = dest; + for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) { + /* Are we inside the best run of 0x00's? */ + if (best.base != -1 && i >= best.base && + i < (best.base + best.len)) { + if (i == best.base) + *tp++ = ':'; + continue; + } + /* Are we following an initial run of 0x00s or any real hex? */ + if (i != 0) + *tp++ = ':'; + /* Is this address an encapsulated IPv4? */ + if (i == 6 && best.base == 0 && + (best.len == 6 || (best.len == 5 && words[5] == 0xffff))) { + tp += sprintf(tp, "%u.%u.%u.%u", + src[12], src[13], src[14], src[15]); + break; + } + tp += sprintf(tp, "%x", words[i]); + } + /* Was it a trailing run of 0x00's? */ + if (best.base != -1 && (best.base + best.len) == + (NS_IN6ADDRSZ / NS_INT16SZ)) + *tp++ = ':'; + *tp++ = '\0'; +} + +bool +cork_ipv6_is_valid_network(const struct cork_ipv6 *addr, + unsigned int cidr_prefix) +{ + uint64_t cidr_mask[2]; + + if (cidr_prefix > 128) { + return false; + } else if (cidr_prefix == 128) { + /* This handles undefined behavior for overflow bit shifts. */ + cidr_mask[0] = cidr_mask[1] = 0; + } else if (cidr_prefix == 64) { + /* This handles undefined behavior for overflow bit shifts. */ + cidr_mask[0] = 0; + cidr_mask[1] = UINT64_C(0xffffffffffffffff); + } else if (cidr_prefix > 64) { + cidr_mask[0] = 0; + cidr_mask[1] = UINT64_C(0xffffffffffffffff) >> (cidr_prefix-64); + } else { + cidr_mask[0] = UINT64_C(0xffffffffffffffff) >> cidr_prefix; + cidr_mask[1] = UINT64_C(0xffffffffffffffff); + } + + return (CORK_UINT64_BIG_TO_HOST(addr->_.u64[0] & cidr_mask[0]) == 0) && + (CORK_UINT64_BIG_TO_HOST(addr->_.u64[1] & cidr_mask[1]) == 0); +} + + +/*** IP ***/ + +void +cork_ip_from_ipv4_(struct cork_ip *addr, const void *src) +{ + cork_ip_from_ipv4(addr, src); +} + +void +cork_ip_from_ipv6_(struct cork_ip *addr, const void *src) +{ + cork_ip_from_ipv6(addr, src); +} + +int +cork_ip_init(struct cork_ip *addr, const char *str) +{ + int rc; + + /* Try IPv4 first */ + rc = cork_ipv4_init(&addr->ip.v4, str); + if (rc == 0) { + /* successful parse */ + addr->version = 4; + return 0; + } + + /* Then try IPv6 */ + cork_error_clear(); + rc = cork_ipv6_init(&addr->ip.v6, str); + if (rc == 0) { + /* successful parse */ + addr->version = 6; + return 0; + } + + /* Parse error for both address types */ + cork_parse_error("Invalid IP address: \"%s\"", str); + return -1; +} + +bool +cork_ip_equal_(const struct cork_ip *addr1, const struct cork_ip *addr2) +{ + return cork_ip_equal(addr1, addr2); +} + +void +cork_ip_to_raw_string(const struct cork_ip *addr, char *dest) +{ + switch (addr->version) { + case 4: + cork_ipv4_to_raw_string(&addr->ip.v4, dest); + return; + + case 6: + cork_ipv6_to_raw_string(&addr->ip.v6, dest); + return; + + default: + strncpy(dest, "", CORK_IP_STRING_LENGTH); + return; + } +} + +bool +cork_ip_is_valid_network(const struct cork_ip *addr, unsigned int cidr_prefix) +{ + switch (addr->version) { + case 4: + return cork_ipv4_is_valid_network(&addr->ip.v4, cidr_prefix); + case 6: + return cork_ipv6_is_valid_network(&addr->ip.v6, cidr_prefix); + default: + return false; + } +} diff --git a/shadowsocksr-libev/src/libcork/core/mempool.c b/shadowsocksr-libev/src/libcork/core/mempool.c new file mode 100644 index 00000000000..1937d35a8ed --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/mempool.c @@ -0,0 +1,198 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core/callbacks.h" +#include "libcork/core/mempool.h" +#include "libcork/core/types.h" +#include "libcork/helpers/errors.h" + + +#if !defined(CORK_DEBUG_MEMPOOL) +#define CORK_DEBUG_MEMPOOL 0 +#endif + +#if CORK_DEBUG_MEMPOOL +#include +#define DEBUG(...) fprintf(stderr, __VA_ARGS__) +#else +#define DEBUG(...) /* no debug messages */ +#endif + + + +struct cork_mempool { + size_t element_size; + size_t block_size; + struct cork_mempool_object *free_list; + /* The number of objects that have been given out by + * cork_mempool_new but not returned via cork_mempool_free. */ + size_t allocated_count; + struct cork_mempool_block *blocks; + + void *user_data; + cork_free_f free_user_data; + cork_init_f init_object; + cork_done_f done_object; +}; + +struct cork_mempool_object { + /* When this object is unclaimed, it will be in the cork_mempool + * object's free_list using this pointer. */ + struct cork_mempool_object *next_free; +}; + +struct cork_mempool_block { + struct cork_mempool_block *next_block; +}; + +#define cork_mempool_object_size(mp) \ + (sizeof(struct cork_mempool_object) + (mp)->element_size) + +#define cork_mempool_get_header(obj) \ + (((struct cork_mempool_object *) (obj)) - 1) + +#define cork_mempool_get_object(hdr) \ + ((void *) (((struct cork_mempool_object *) (hdr)) + 1)) + + +struct cork_mempool * +cork_mempool_new_size_ex(size_t element_size, size_t block_size) +{ + struct cork_mempool *mp = cork_new(struct cork_mempool); + mp->element_size = element_size; + mp->block_size = block_size; + mp->free_list = NULL; + mp->allocated_count = 0; + mp->blocks = NULL; + mp->user_data = NULL; + mp->free_user_data = NULL; + mp->init_object = NULL; + mp->done_object = NULL; + return mp; +} + +void +cork_mempool_free(struct cork_mempool *mp) +{ + struct cork_mempool_block *curr; + assert(mp->allocated_count == 0); + + if (mp->done_object != NULL) { + struct cork_mempool_object *obj; + for (obj = mp->free_list; obj != NULL; obj = obj->next_free) { + mp->done_object + (mp->user_data, cork_mempool_get_object(obj)); + } + } + + for (curr = mp->blocks; curr != NULL; ) { + struct cork_mempool_block *next = curr->next_block; + cork_free(curr, mp->block_size); + /* Do this here instead of in the for statement to avoid + * accessing the just-freed block. */ + curr = next; + } + + cork_free_user_data(mp); + cork_delete(struct cork_mempool, mp); +} + + +void +cork_mempool_set_user_data(struct cork_mempool *mp, + void *user_data, cork_free_f free_user_data) +{ + cork_free_user_data(mp); + mp->user_data = user_data; + mp->free_user_data = free_user_data; +} + +void +cork_mempool_set_init_object(struct cork_mempool *mp, cork_init_f init_object) +{ + mp->init_object = init_object; +} + +void +cork_mempool_set_done_object(struct cork_mempool *mp, cork_done_f done_object) +{ + mp->done_object = done_object; +} + +void +cork_mempool_set_callbacks(struct cork_mempool *mp, + void *user_data, cork_free_f free_user_data, + cork_init_f init_object, + cork_done_f done_object) +{ + cork_mempool_set_user_data(mp, user_data, free_user_data); + cork_mempool_set_init_object(mp, init_object); + cork_mempool_set_done_object(mp, done_object); +} + + +/* If this function succeeds, then we guarantee that there will be at + * least one object in mp->free_list. */ +static void +cork_mempool_new_block(struct cork_mempool *mp) +{ + /* Allocate the new block and add it to mp's block list. */ + struct cork_mempool_block *block; + void *vblock; + DEBUG("Allocating new %zu-byte block\n", mp->block_size); + block = cork_malloc(mp->block_size); + block->next_block = mp->blocks; + mp->blocks = block; + vblock = block; + + /* Divide the block's memory region into a bunch of objects. */ + size_t index = sizeof(struct cork_mempool_block); + for (index = sizeof(struct cork_mempool_block); + (index + cork_mempool_object_size(mp)) <= mp->block_size; + index += cork_mempool_object_size(mp)) { + struct cork_mempool_object *obj = vblock + index; + DEBUG(" New object at %p[%p]\n", cork_mempool_get_object(obj), obj); + if (mp->init_object != NULL) { + mp->init_object + (mp->user_data, cork_mempool_get_object(obj)); + } + obj->next_free = mp->free_list; + mp->free_list = obj; + } +} + +void * +cork_mempool_new_object(struct cork_mempool *mp) +{ + struct cork_mempool_object *obj; + void *ptr; + + if (CORK_UNLIKELY(mp->free_list == NULL)) { + cork_mempool_new_block(mp); + } + + obj = mp->free_list; + mp->free_list = obj->next_free; + mp->allocated_count++; + ptr = cork_mempool_get_object(obj); + return ptr; +} + +void +cork_mempool_free_object(struct cork_mempool *mp, void *ptr) +{ + struct cork_mempool_object *obj = cork_mempool_get_header(ptr); + DEBUG("Returning %p[%p] to memory pool\n", ptr, obj); + obj->next_free = mp->free_list; + mp->free_list = obj; + mp->allocated_count--; +} diff --git a/shadowsocksr-libev/src/libcork/core/timestamp.c b/shadowsocksr-libev/src/libcork/core/timestamp.c new file mode 100644 index 00000000000..5da1337eb83 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/timestamp.c @@ -0,0 +1,190 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include + +#include "libcork/core/timestamp.h" +#include "libcork/core/types.h" +#include "libcork/helpers/errors.h" + +void +cork_timestamp_init_now(cork_timestamp *ts) +{ + struct timeval tp; + gettimeofday(&tp, NULL); + cork_timestamp_init_usec(ts, tp.tv_sec, tp.tv_usec); +} + + +#define is_digit(ch) ((ch) >= '0' && (ch) <= '9') + +static uint64_t +power_of_10(unsigned int width) +{ + uint64_t accumulator = 10; + uint64_t result = 1; + while (width != 0) { + if ((width % 2) == 1) { + result *= accumulator; + width--; + } + accumulator *= accumulator; + width /= 2; + } + return result; +} + +static int +append_fractional(const cork_timestamp ts, unsigned int width, + struct cork_buffer *dest) +{ + if (CORK_UNLIKELY(width == 0 || width > 9)) { + cork_error_set_printf + (EINVAL, + "Invalid width %u for fractional cork_timestamp", width); + return -1; + } else { + uint64_t denom = power_of_10(width); + uint64_t frac = cork_timestamp_gsec_to_units(ts, denom); + cork_buffer_append_printf(dest, "%0*" PRIu64, width, frac); + return 0; + } +} + +static int +cork_timestamp_format_parts(const cork_timestamp ts, struct tm *tm, + const char *format, struct cork_buffer *dest) +{ + const char *next_percent; + + while ((next_percent = strchr(format, '%')) != NULL) { + const char *spec = next_percent + 1; + unsigned int width = 0; + + /* First append any text in between the previous format specifier and + * this one. */ + cork_buffer_append(dest, format, next_percent - format); + + /* Then parse the format specifier */ + while (is_digit(*spec)) { + width *= 10; + width += (*spec++ - '0'); + } + + switch (*spec) { + case '\0': + cork_error_set_string + (EINVAL, + "Trailing %% at end of cork_timestamp format string"); + return -1; + + case '%': + cork_buffer_append(dest, "%", 1); + break; + + case 'Y': + cork_buffer_append_printf(dest, "%04d", tm->tm_year + 1900); + break; + + case 'm': + cork_buffer_append_printf(dest, "%02d", tm->tm_mon + 1); + break; + + case 'd': + cork_buffer_append_printf(dest, "%02d", tm->tm_mday); + break; + + case 'H': + cork_buffer_append_printf(dest, "%02d", tm->tm_hour); + break; + + case 'M': + cork_buffer_append_printf(dest, "%02d", tm->tm_min); + break; + + case 'S': + cork_buffer_append_printf(dest, "%02d", tm->tm_sec); + break; + + case 's': + cork_buffer_append_printf + (dest, "%" PRIu32, cork_timestamp_sec(ts)); + break; + + case 'f': + rii_check(append_fractional(ts, width, dest)); + break; + + default: + cork_error_set_printf + (EINVAL, + "Unknown cork_timestamp format specifier %%%c", *spec); + return -1; + } + + format = spec + 1; + } + + /* When we fall through, there is some additional content after the final + * format specifier. */ + cork_buffer_append_string(dest, format); + return 0; +} + +#ifdef __MINGW32__ +static struct tm *__cdecl gmtime_r(const time_t *_Time, struct tm *_Tm) +{ + struct tm *p = gmtime(_Time); + if (!p) + return NULL; + if (_Tm) { + memcpy(_Tm, p, sizeof(struct tm)); + return _Tm; + } else + return p; +} + +static struct tm *__cdecl localtime_r(const time_t *_Time, struct tm *_Tm) +{ + struct tm *p = localtime(_Time); + if (!p) + return NULL; + if (_Tm) { + memcpy(_Tm, p, sizeof(struct tm)); + return _Tm; + } else + return p; +} + +#endif + + +int +cork_timestamp_format_utc(const cork_timestamp ts, const char *format, + struct cork_buffer *dest) +{ + time_t clock; + struct tm tm; + clock = cork_timestamp_sec(ts); + gmtime_r(&clock, &tm); + return cork_timestamp_format_parts(ts, &tm, format, dest); +} + +int +cork_timestamp_format_local(const cork_timestamp ts, const char *format, + struct cork_buffer *dest) +{ + time_t clock; + struct tm tm; + clock = cork_timestamp_sec(ts); + localtime_r(&clock, &tm); + return cork_timestamp_format_parts(ts, &tm, format, dest); +} diff --git a/shadowsocksr-libev/src/libcork/core/u128.c b/shadowsocksr-libev/src/libcork/core/u128.c new file mode 100644 index 00000000000..90fd07745bc --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/u128.c @@ -0,0 +1,85 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core/types.h" +#include "libcork/core/u128.h" + + +/* From http://stackoverflow.com/questions/8023414/how-to-convert-a-128-bit-integer-to-a-decimal-ascii-string-in-c */ + +const char * +cork_u128_to_decimal(char *dest, cork_u128 val) +{ + uint32_t n[4]; + char *s = dest; + char *p = dest; + unsigned int i; + + /* This algorithm assumes that n[3] is the MSW. */ + n[3] = cork_u128_be32(val, 0); + n[2] = cork_u128_be32(val, 1); + n[1] = cork_u128_be32(val, 2); + n[0] = cork_u128_be32(val, 3); + + memset(s, '0', CORK_U128_DECIMAL_LENGTH - 1); + s[CORK_U128_DECIMAL_LENGTH - 1] = '\0'; + + for (i = 0; i < 128; i++) { + unsigned int j; + unsigned int carry; + + carry = (n[3] >= 0x80000000); + /* Shift n[] left, doubling it */ + n[3] = ((n[3] << 1) & 0xFFFFFFFF) + (n[2] >= 0x80000000); + n[2] = ((n[2] << 1) & 0xFFFFFFFF) + (n[1] >= 0x80000000); + n[1] = ((n[1] << 1) & 0xFFFFFFFF) + (n[0] >= 0x80000000); + n[0] = ((n[0] << 1) & 0xFFFFFFFF); + + /* Add s[] to itself in decimal, doubling it */ + for (j = CORK_U128_DECIMAL_LENGTH - 1; j-- > 0; ) { + s[j] += s[j] - '0' + carry; + carry = (s[j] > '9'); + if (carry) { + s[j] -= 10; + } + } + } + + while ((p[0] == '0') && (p < &s[CORK_U128_DECIMAL_LENGTH - 2])) { + p++; + } + + return p; +} + + +const char * +cork_u128_to_hex(char *buf, cork_u128 val) +{ + uint64_t hi = val._.be64.hi; + uint64_t lo = val._.be64.lo; + if (hi == 0) { + snprintf(buf, CORK_U128_HEX_LENGTH, "%" PRIx64, lo); + } else { + snprintf(buf, CORK_U128_HEX_LENGTH, "%" PRIx64 "%016" PRIx64, hi, lo); + } + return buf; +} + +const char * +cork_u128_to_padded_hex(char *buf, cork_u128 val) +{ + uint64_t hi = val._.be64.hi; + uint64_t lo = val._.be64.lo; + snprintf(buf, CORK_U128_HEX_LENGTH, "%016" PRIx64 "%016" PRIx64, hi, lo); + return buf; +} diff --git a/shadowsocksr-libev/src/libcork/core/version.c b/shadowsocksr-libev/src/libcork/core/version.c new file mode 100644 index 00000000000..474fc6e6412 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/core/version.c @@ -0,0 +1,28 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include "libcork/config.h" +#include "libcork/core/api.h" + + +/*----------------------------------------------------------------------- + * Library version + */ + +const char * +cork_version_string(void) +{ + return CORK_CONFIG_VERSION_STRING; +} + +const char * +cork_revision_string(void) +{ + return CORK_CONFIG_REVISION; +} diff --git a/shadowsocksr-libev/src/libcork/ds/array.c b/shadowsocksr-libev/src/libcork/ds/array.c new file mode 100644 index 00000000000..378b1a0df3b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/array.c @@ -0,0 +1,378 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include + +#include "libcork/core/types.h" +#include "libcork/ds/array.h" +#include "libcork/helpers/errors.h" + +#ifndef CORK_ARRAY_DEBUG +#define CORK_ARRAY_DEBUG 0 +#endif + +#if CORK_ARRAY_DEBUG +#include +#define DEBUG(...) \ + do { \ + fprintf(stderr, __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + } while (0) +#else +#define DEBUG(...) /* nothing */ +#endif + + +/*----------------------------------------------------------------------- + * Resizable arrays + */ + +struct cork_array_priv { + size_t allocated_count; + size_t allocated_size; + size_t element_size; + size_t initialized_count; + void *user_data; + cork_free_f free_user_data; + cork_init_f init; + cork_done_f done; + cork_init_f reuse; + cork_done_f remove; +}; + +void +cork_raw_array_init(struct cork_raw_array *array, size_t element_size) +{ + array->items = NULL; + array->size = 0; + array->priv = cork_new(struct cork_array_priv); + array->priv->allocated_count = 0; + array->priv->allocated_size = 0; + array->priv->element_size = element_size; + array->priv->initialized_count = 0; + array->priv->user_data = NULL; + array->priv->free_user_data = NULL; + array->priv->init = NULL; + array->priv->done = NULL; + array->priv->reuse = NULL; + array->priv->remove = NULL; +} + +void +cork_raw_array_done(struct cork_raw_array *array) +{ + if (array->priv->done != NULL) { + size_t i; + char *element = array->items; + for (i = 0; i < array->priv->initialized_count; i++) { + array->priv->done(array->priv->user_data, element); + element += array->priv->element_size; + } + } + if (array->items != NULL) { + cork_free(array->items, array->priv->allocated_size); + } + cork_free_user_data(array->priv); + cork_delete(struct cork_array_priv, array->priv); +} + +void +cork_raw_array_set_callback_data(struct cork_raw_array *array, + void *user_data, cork_free_f free_user_data) +{ + array->priv->user_data = user_data; + array->priv->free_user_data = free_user_data; +} + +void +cork_raw_array_set_init(struct cork_raw_array *array, cork_init_f init) +{ + array->priv->init = init; +} + +void +cork_raw_array_set_done(struct cork_raw_array *array, cork_done_f done) +{ + array->priv->done = done; +} + +void +cork_raw_array_set_reuse(struct cork_raw_array *array, cork_init_f reuse) +{ + array->priv->reuse = reuse; +} + +void +cork_raw_array_set_remove(struct cork_raw_array *array, cork_done_f remove) +{ + array->priv->remove = remove; +} + +size_t +cork_raw_array_element_size(const struct cork_raw_array *array) +{ + return array->priv->element_size; +} + +void +cork_raw_array_clear(struct cork_raw_array *array) +{ + if (array->priv->remove != NULL) { + size_t i; + char *element = array->items; + for (i = 0; i < array->priv->initialized_count; i++) { + array->priv->remove(array->priv->user_data, element); + element += array->priv->element_size; + } + } + array->size = 0; +} + +void * +cork_raw_array_elements(const struct cork_raw_array *array) +{ + return array->items; +} + +void * +cork_raw_array_at(const struct cork_raw_array *array, size_t index) +{ + return ((char *) array->items) + (array->priv->element_size * index); +} + +size_t +cork_raw_array_size(const struct cork_raw_array *array) +{ + return array->size; +} + +bool +cork_raw_array_is_empty(const struct cork_raw_array *array) +{ + return (array->size == 0); +} + +void +cork_raw_array_ensure_size(struct cork_raw_array *array, size_t desired_count) +{ + size_t desired_size; + + DEBUG("--- Array %p: Ensure %zu %zu-byte elements", + array, desired_count, array->priv->element_size); + desired_size = desired_count * array->priv->element_size; + + if (desired_size > array->priv->allocated_size) { + size_t new_count = array->priv->allocated_count * 2; + size_t new_size = array->priv->allocated_size * 2; + if (desired_size > new_size) { + new_count = desired_count; + new_size = desired_size; + } + + DEBUG("--- Array %p: Reallocating %zu->%zu bytes", + array, array->priv->allocated_size, new_size); + array->items = + cork_realloc(array->items, array->priv->allocated_size, new_size); + + array->priv->allocated_count = new_count; + array->priv->allocated_size = new_size; + } +} + +void * +cork_raw_array_append(struct cork_raw_array *array) +{ + size_t index; + void *element; + index = array->size++; + cork_raw_array_ensure_size(array, array->size); + element = cork_raw_array_at(array, index); + + /* Call the init or reset callback, depending on whether this entry has been + * initialized before. */ + + /* Since we can currently only add elements by appending them one at a time, + * then this entry is either already initialized, or is the first + * uninitialized entry. */ + assert(index <= array->priv->initialized_count); + + if (index == array->priv->initialized_count) { + /* This element has not been initialized yet. */ + array->priv->initialized_count++; + if (array->priv->init != NULL) { + array->priv->init(array->priv->user_data, element); + } + } else { + /* This element has already been initialized. */ + if (array->priv->reuse != NULL) { + array->priv->reuse(array->priv->user_data, element); + } + } + + return element; +} + +int +cork_raw_array_copy(struct cork_raw_array *dest, + const struct cork_raw_array *src, + cork_copy_f copy, void *user_data) +{ + size_t i; + size_t reuse_count; + char *dest_element; + + DEBUG("--- Copying %zu elements (%zu bytes) from %p to %p", + src->size, src->size * dest->priv->element_size, src, dest); + assert(dest->priv->element_size == src->priv->element_size); + cork_array_clear(dest); + cork_array_ensure_size(dest, src->size); + + /* Initialize enough elements to hold the contents of src */ + reuse_count = dest->priv->initialized_count; + if (src->size < reuse_count) { + reuse_count = src->size; + } + + dest_element = dest->items; + if (dest->priv->reuse != NULL) { + DEBUG(" Calling reuse on elements 0-%zu", reuse_count); + for (i = 0; i < reuse_count; i++) { + dest->priv->reuse(dest->priv->user_data, dest_element); + dest_element += dest->priv->element_size; + } + } else { + dest_element += reuse_count * dest->priv->element_size; + } + + if (dest->priv->init != NULL) { + DEBUG(" Calling init on elements %zu-%zu", reuse_count, src->size); + for (i = reuse_count; i < src->size; i++) { + dest->priv->init(dest->priv->user_data, dest_element); + dest_element += dest->priv->element_size; + } + } + + if (src->size > dest->priv->initialized_count) { + dest->priv->initialized_count = src->size; + } + + /* If the caller provided a copy function, let it copy each element in turn. + * Otherwise, bulk copy everything using memcpy. */ + if (copy == NULL) { + memcpy(dest->items, src->items, src->size * dest->priv->element_size); + } else { + const char *src_element = src->items; + dest_element = dest->items; + for (i = 0; i < src->size; i++) { + rii_check(copy(user_data, dest_element, src_element)); + dest_element += dest->priv->element_size; + src_element += dest->priv->element_size; + } + } + + dest->size = src->size; + return 0; +} + + +/*----------------------------------------------------------------------- + * Pointer arrays + */ + +struct cork_pointer_array { + cork_free_f free; +}; + +static void +pointer__init(void *user_data, void *vvalue) +{ + void **value = vvalue; + *value = NULL; +} + +static void +pointer__done(void *user_data, void *vvalue) +{ + struct cork_pointer_array *ptr_array = user_data; + void **value = vvalue; + if (*value != NULL) { + ptr_array->free(*value); + } +} + +static void +pointer__remove(void *user_data, void *vvalue) +{ + struct cork_pointer_array *ptr_array = user_data; + void **value = vvalue; + if (*value != NULL) { + ptr_array->free(*value); + } + *value = NULL; +} + +static void +pointer__free(void *user_data) +{ + struct cork_pointer_array *ptr_array = user_data; + cork_delete(struct cork_pointer_array, ptr_array); +} + +void +cork_raw_pointer_array_init(struct cork_raw_array *array, cork_free_f free_ptr) +{ + struct cork_pointer_array *ptr_array = cork_new(struct cork_pointer_array); + ptr_array->free = free_ptr; + cork_raw_array_init(array, sizeof(void *)); + cork_array_set_callback_data(array, ptr_array, pointer__free); + cork_array_set_init(array, pointer__init); + cork_array_set_done(array, pointer__done); + cork_array_set_remove(array, pointer__remove); +} + + +/*----------------------------------------------------------------------- + * String arrays + */ + +void +cork_string_array_init(struct cork_string_array *array) +{ + cork_raw_pointer_array_init + ((struct cork_raw_array *) array, (cork_free_f) cork_strfree); +} + +void +cork_string_array_append(struct cork_string_array *array, const char *str) +{ + const char *copy = cork_strdup(str); + cork_array_append(array, copy); +} + +static int +string__copy(void *user_data, void *vdest, const void *vsrc) +{ + const char **dest = vdest; + const char **src = (const char **) vsrc; + *dest = cork_strdup(*src); + return 0; +} + +void +cork_string_array_copy(struct cork_string_array *dest, + const struct cork_string_array *src) +{ + CORK_ATTR_UNUSED int rc; + rc = cork_array_copy(dest, src, string__copy, NULL); + /* cork_array_copy can only fail if the copy callback fails, and ours + * doesn't! */ + assert(rc == 0); +} diff --git a/shadowsocksr-libev/src/libcork/ds/bitset.c b/shadowsocksr-libev/src/libcork/ds/bitset.c new file mode 100644 index 00000000000..41bf8f2bb7c --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/bitset.c @@ -0,0 +1,62 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include + +#include "libcork/core/allocator.h" +#include "libcork/core/api.h" +#include "libcork/core/types.h" +#include "libcork/ds/bitset.h" + + +static size_t +bytes_needed(size_t bit_count) +{ + /* We need one byte for every bit... */ + size_t bytes_needed = bit_count / 8; + /* Plus one extra for the leftovers that don't fit into a whole byte. */ + bytes_needed += ((bit_count % 8) > 0); + return bytes_needed; +} + +void +cork_bitset_init(struct cork_bitset *set, size_t bit_count) +{ + set->bit_count = bit_count; + set->byte_count = bytes_needed(bit_count); + set->bits = cork_malloc(set->byte_count); + memset(set->bits, 0, set->byte_count); +} + +struct cork_bitset * +cork_bitset_new(size_t bit_count) +{ + struct cork_bitset *set = cork_new(struct cork_bitset); + cork_bitset_init(set, bit_count); + return set; +} + +void +cork_bitset_done(struct cork_bitset *set) +{ + cork_free(set->bits, set->byte_count); +} + +void +cork_bitset_free(struct cork_bitset *set) +{ + cork_bitset_done(set); + cork_delete(struct cork_bitset, set); +} + +void +cork_bitset_clear(struct cork_bitset *set) +{ + memset(set->bits, 0, set->byte_count); +} diff --git a/shadowsocksr-libev/src/libcork/ds/buffer.c b/shadowsocksr-libev/src/libcork/ds/buffer.c new file mode 100644 index 00000000000..2cd8e1c9c8d --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/buffer.c @@ -0,0 +1,471 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include + +#include "libcork/core/allocator.h" +#include "libcork/core/types.h" +#include "libcork/ds/buffer.h" +#include "libcork/ds/managed-buffer.h" +#include "libcork/ds/stream.h" +#include "libcork/helpers/errors.h" + + +void +cork_buffer_init(struct cork_buffer *buffer) +{ + buffer->buf = NULL; + buffer->size = 0; + buffer->allocated_size = 0; +} + + +struct cork_buffer * +cork_buffer_new(void) +{ + struct cork_buffer *buffer = cork_new(struct cork_buffer); + cork_buffer_init(buffer); + return buffer; +} + + +void +cork_buffer_done(struct cork_buffer *buffer) +{ + if (buffer->buf != NULL) { + cork_free(buffer->buf, buffer->allocated_size); + buffer->buf = NULL; + } + buffer->size = 0; + buffer->allocated_size = 0; +} + + +void +cork_buffer_free(struct cork_buffer *buffer) +{ + cork_buffer_done(buffer); + cork_delete(struct cork_buffer, buffer); +} + + +bool +cork_buffer_equal(const struct cork_buffer *buffer1, + const struct cork_buffer *buffer2) +{ + if (buffer1 == buffer2) { + return true; + } + + if (buffer1->size != buffer2->size) { + return false; + } + + return (memcmp(buffer1->buf, buffer2->buf, buffer1->size) == 0); +} + + +static void +cork_buffer_ensure_size_int(struct cork_buffer *buffer, size_t desired_size) +{ + size_t new_size; + + if (CORK_LIKELY(buffer->allocated_size >= desired_size)) { + return; + } + + /* Make sure we at least double the old size when reallocating. */ + new_size = buffer->allocated_size * 2; + if (desired_size > new_size) { + new_size = desired_size; + } + + buffer->buf = cork_realloc(buffer->buf, buffer->allocated_size, new_size); + buffer->allocated_size = new_size; +} + +void +cork_buffer_ensure_size(struct cork_buffer *buffer, size_t desired_size) +{ + cork_buffer_ensure_size_int(buffer, desired_size); +} + + +void +cork_buffer_clear(struct cork_buffer *buffer) +{ + buffer->size = 0; + if (buffer->buf != NULL) { + ((char *) buffer->buf)[0] = '\0'; + } +} + +void +cork_buffer_truncate(struct cork_buffer *buffer, size_t length) +{ + if (buffer->size > length) { + buffer->size = length; + if (length == 0) { + if (buffer->buf != NULL) { + ((char *) buffer->buf)[0] = '\0'; + } + } else { + ((char *) buffer->buf)[length] = '\0'; + } + } +} + + +void +cork_buffer_set(struct cork_buffer *buffer, const void *src, size_t length) +{ + cork_buffer_ensure_size_int(buffer, length+1); + memcpy(buffer->buf, src, length); + ((char *) buffer->buf)[length] = '\0'; + buffer->size = length; +} + + +void +cork_buffer_append(struct cork_buffer *buffer, const void *src, size_t length) +{ + cork_buffer_ensure_size_int(buffer, buffer->size + length + 1); + memcpy(buffer->buf + buffer->size, src, length); + buffer->size += length; + ((char *) buffer->buf)[buffer->size] = '\0'; +} + + +void +cork_buffer_set_string(struct cork_buffer *buffer, const char *str) +{ + cork_buffer_set(buffer, str, strlen(str)); +} + + +void +cork_buffer_append_string(struct cork_buffer *buffer, const char *str) +{ + cork_buffer_append(buffer, str, strlen(str)); +} + + +void +cork_buffer_append_vprintf(struct cork_buffer *buffer, const char *format, + va_list args) +{ + size_t format_size; + va_list args1; + + va_copy(args1, args); + format_size = vsnprintf(buffer->buf + buffer->size, + buffer->allocated_size - buffer->size, + format, args1); + va_end(args1); + + /* If the first call works, then set buffer->size and return. */ + if (format_size < (buffer->allocated_size - buffer->size)) { + buffer->size += format_size; + return; + } + + /* If the first call fails, resize buffer and try again. */ + cork_buffer_ensure_size_int + (buffer, buffer->allocated_size + format_size + 1); + format_size = vsnprintf(buffer->buf + buffer->size, + buffer->allocated_size - buffer->size, + format, args); + buffer->size += format_size; +} + + +void +cork_buffer_vprintf(struct cork_buffer *buffer, const char *format, + va_list args) +{ + cork_buffer_clear(buffer); + cork_buffer_append_vprintf(buffer, format, args); +} + + +void +cork_buffer_append_printf(struct cork_buffer *buffer, const char *format, ...) +{ + va_list args; + va_start(args, format); + cork_buffer_append_vprintf(buffer, format, args); + va_end(args); +} + + +void +cork_buffer_printf(struct cork_buffer *buffer, const char *format, ...) +{ + va_list args; + va_start(args, format); + cork_buffer_vprintf(buffer, format, args); + va_end(args); +} + + +void +cork_buffer_append_indent(struct cork_buffer *buffer, size_t indent) +{ + cork_buffer_ensure_size_int(buffer, buffer->size + indent + 1); + memset(buffer->buf + buffer->size, ' ', indent); + buffer->size += indent; + ((char *) buffer->buf)[buffer->size] = '\0'; +} + +/* including space */ +#define is_sprint(ch) ((ch) >= 0x20 && (ch) <= 0x7e) + +/* not including space */ +#define is_print(ch) ((ch) > 0x20 && (ch) <= 0x7e) + +#define is_space(ch) \ + ((ch) == ' ' || \ + (ch) == '\f' || \ + (ch) == '\n' || \ + (ch) == '\r' || \ + (ch) == '\t' || \ + (ch) == '\v') + +#define to_hex(nybble) \ + ((nybble) < 10? '0' + (nybble): 'a' - 10 + (nybble)) + +void +cork_buffer_append_c_string(struct cork_buffer *dest, + const char *chars, size_t length) +{ + size_t i; + cork_buffer_append(dest, "\"", 1); + for (i = 0; i < length; i++) { + char ch = chars[i]; + switch (ch) { + case '\"': + cork_buffer_append_literal(dest, "\\\""); + break; + case '\\': + cork_buffer_append_literal(dest, "\\\\"); + break; + case '\f': + cork_buffer_append_literal(dest, "\\f"); + break; + case '\n': + cork_buffer_append_literal(dest, "\\n"); + break; + case '\r': + cork_buffer_append_literal(dest, "\\r"); + break; + case '\t': + cork_buffer_append_literal(dest, "\\t"); + break; + case '\v': + cork_buffer_append_literal(dest, "\\v"); + break; + default: + if (is_sprint(ch)) { + cork_buffer_append(dest, &chars[i], 1); + } else { + uint8_t byte = ch; + cork_buffer_append_printf(dest, "\\x%02" PRIx8, byte); + } + break; + } + } + cork_buffer_append(dest, "\"", 1); +} + +void +cork_buffer_append_hex_dump(struct cork_buffer *dest, size_t indent, + const char *chars, size_t length) +{ + char hex[3 * 16]; + char print[16]; + char *curr_hex = hex; + char *curr_print = print; + size_t i; + size_t column = 0; + for (i = 0; i < length; i++) { + char ch = chars[i]; + uint8_t u8 = ch; + *curr_hex++ = to_hex(u8 >> 4); + *curr_hex++ = to_hex(u8 & 0x0f); + *curr_hex++ = ' '; + *curr_print++ = is_sprint(ch)? ch: '.'; + if (column == 0 && i != 0) { + cork_buffer_append_literal(dest, "\n"); + cork_buffer_append_indent(dest, indent); + column++; + } else if (column == 15) { + cork_buffer_append_printf + (dest, "%-48.*s", (int) (curr_hex - hex), hex); + cork_buffer_append_literal(dest, " |"); + cork_buffer_append(dest, print, curr_print - print); + cork_buffer_append_literal(dest, "|"); + curr_hex = hex; + curr_print = print; + column = 0; + } else { + column++; + } + } + + if (column > 0) { + cork_buffer_append_printf(dest, "%-48.*s", (int) (curr_hex - hex), hex); + cork_buffer_append_literal(dest, " |"); + cork_buffer_append(dest, print, curr_print - print); + cork_buffer_append_literal(dest, "|"); + } +} + +void +cork_buffer_append_multiline(struct cork_buffer *dest, size_t indent, + const char *chars, size_t length) +{ + size_t i; + for (i = 0; i < length; i++) { + char ch = chars[i]; + if (ch == '\n') { + cork_buffer_append_literal(dest, "\n"); + cork_buffer_append_indent(dest, indent); + } else { + cork_buffer_append(dest, &chars[i], 1); + } + } +} + +void +cork_buffer_append_binary(struct cork_buffer *dest, size_t indent, + const char *chars, size_t length) +{ + size_t i; + bool newline = false; + + /* If there are any non-printable characters, print out a hex dump */ + for (i = 0; i < length; i++) { + if (!is_print(chars[i]) && !is_space(chars[i])) { + cork_buffer_append_literal(dest, "(hex)\n"); + cork_buffer_append_indent(dest, indent); + cork_buffer_append_hex_dump(dest, indent, chars, length); + return; + } else if (chars[i] == '\n') { + newline = true; + /* Don't immediately use the multiline format, since there might be + * a non-printable character later on that kicks us over to the hex + * dump format. */ + } + } + + if (newline) { + cork_buffer_append_literal(dest, "(multiline)\n"); + cork_buffer_append_indent(dest, indent); + cork_buffer_append_multiline(dest, indent, chars, length); + } else { + cork_buffer_append(dest, chars, length); + } +} + + +struct cork_buffer__managed_buffer { + struct cork_managed_buffer parent; + struct cork_buffer *buffer; +}; + +static void +cork_buffer__managed_free(struct cork_managed_buffer *vself) +{ + struct cork_buffer__managed_buffer *self = + cork_container_of(vself, struct cork_buffer__managed_buffer, parent); + cork_buffer_free(self->buffer); + cork_delete(struct cork_buffer__managed_buffer, self); +} + +static struct cork_managed_buffer_iface CORK_BUFFER__MANAGED_BUFFER = { + cork_buffer__managed_free +}; + +struct cork_managed_buffer * +cork_buffer_to_managed_buffer(struct cork_buffer *buffer) +{ + struct cork_buffer__managed_buffer *self = + cork_new(struct cork_buffer__managed_buffer); + self->parent.buf = buffer->buf; + self->parent.size = buffer->size; + self->parent.ref_count = 1; + self->parent.iface = &CORK_BUFFER__MANAGED_BUFFER; + self->buffer = buffer; + return &self->parent; +} + + +int +cork_buffer_to_slice(struct cork_buffer *buffer, struct cork_slice *slice) +{ + struct cork_managed_buffer *managed = + cork_buffer_to_managed_buffer(buffer); + + /* We don't have to check for NULL; cork_managed_buffer_slice_offset + * will do that for us. */ + int rc = cork_managed_buffer_slice_offset(slice, managed, 0); + + /* Before returning, drop our reference to the managed buffer. If + * the slicing succeeded, then there will be one remaining reference + * in the slice. If it didn't succeed, this will free the managed + * buffer for us. */ + cork_managed_buffer_unref(managed); + return rc; +} + + +struct cork_buffer__stream_consumer { + struct cork_stream_consumer consumer; + struct cork_buffer *buffer; +}; + +static int +cork_buffer_stream_consumer_data(struct cork_stream_consumer *consumer, + const void *buf, size_t size, + bool is_first_chunk) +{ + struct cork_buffer__stream_consumer *bconsumer = cork_container_of + (consumer, struct cork_buffer__stream_consumer, consumer); + cork_buffer_append(bconsumer->buffer, buf, size); + return 0; +} + +static int +cork_buffer_stream_consumer_eof(struct cork_stream_consumer *consumer) +{ + return 0; +} + +static void +cork_buffer_stream_consumer_free(struct cork_stream_consumer *consumer) +{ + struct cork_buffer__stream_consumer *bconsumer = + cork_container_of + (consumer, struct cork_buffer__stream_consumer, consumer); + cork_delete(struct cork_buffer__stream_consumer, bconsumer); +} + +struct cork_stream_consumer * +cork_buffer_to_stream_consumer(struct cork_buffer *buffer) +{ + struct cork_buffer__stream_consumer *bconsumer = + cork_new(struct cork_buffer__stream_consumer); + bconsumer->consumer.data = cork_buffer_stream_consumer_data; + bconsumer->consumer.eof = cork_buffer_stream_consumer_eof; + bconsumer->consumer.free = cork_buffer_stream_consumer_free; + bconsumer->buffer = buffer; + return &bconsumer->consumer; +} diff --git a/shadowsocksr-libev/src/libcork/ds/dllist.c b/shadowsocksr-libev/src/libcork/ds/dllist.c new file mode 100644 index 00000000000..dbaafbc4214 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/dllist.c @@ -0,0 +1,63 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include "libcork/core/api.h" +#include "libcork/core/types.h" +#include "libcork/ds/dllist.h" + + +/* Include a linkable (but deprecated) version of this to maintain ABI + * compatibility. */ +#undef cork_dllist_init +CORK_API void +cork_dllist_init(struct cork_dllist *list) +{ + list->head.next = &list->head; + list->head.prev = &list->head; +} + + +void +cork_dllist_map(struct cork_dllist *list, + cork_dllist_map_func func, void *user_data) +{ + struct cork_dllist_item *curr; + struct cork_dllist_item *next; + cork_dllist_foreach_void(list, curr, next) { + func(curr, user_data); + } +} + +int +cork_dllist_visit(struct cork_dllist *list, void *ud, + cork_dllist_visit_f *visit) +{ + struct cork_dllist_item *curr; + struct cork_dllist_item *next; + cork_dllist_foreach_void(list, curr, next) { + int rc = visit(ud, curr); + if (rc != 0) { + return rc; + } + } + return 0; +} + + +size_t +cork_dllist_size(const struct cork_dllist *list) +{ + size_t size = 0; + struct cork_dllist_item *curr; + struct cork_dllist_item *next; + cork_dllist_foreach_void(list, curr, next) { + size++; + } + return size; +} diff --git a/shadowsocksr-libev/src/libcork/ds/file-stream.c b/shadowsocksr-libev/src/libcork/ds/file-stream.c new file mode 100644 index 00000000000..c9a7c73267b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/file-stream.c @@ -0,0 +1,214 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include +#include +#include + +#include "libcork/ds/stream.h" +#include "libcork/helpers/errors.h" +#include "libcork/helpers/posix.h" + +#define BUFFER_SIZE 4096 + + +/*----------------------------------------------------------------------- + * Producers + */ + +int +cork_consume_fd(struct cork_stream_consumer *consumer, int fd) +{ + char buf[BUFFER_SIZE]; + ssize_t bytes_read; + bool first = true; + + while (true) { + while ((bytes_read = read(fd, buf, BUFFER_SIZE)) > 0) { + rii_check(cork_stream_consumer_data + (consumer, buf, bytes_read, first)); + first = false; + } + + if (bytes_read == 0) { + return cork_stream_consumer_eof(consumer); + } else if (errno != EINTR) { + cork_system_error_set(); + return -1; + } + } +} + +int +cork_consume_file(struct cork_stream_consumer *consumer, FILE *fp) +{ + char buf[BUFFER_SIZE]; + size_t bytes_read; + bool first = true; + + while (true) { + while ((bytes_read = fread(buf, 1, BUFFER_SIZE, fp)) > 0) { + rii_check(cork_stream_consumer_data + (consumer, buf, bytes_read, first)); + first = false; + } + + if (feof(fp)) { + return cork_stream_consumer_eof(consumer); + } else if (errno != EINTR) { + cork_system_error_set(); + return -1; + } + } +} + +int +cork_consume_file_from_path(struct cork_stream_consumer *consumer, + const char *path, int flags) +{ + int fd; + rii_check_posix(fd = open(path, flags)); + ei_check(cork_consume_fd(consumer, fd)); + rii_check_posix(close(fd)); + return 0; + +error: + rii_check_posix(close(fd)); + return -1; +} + + +/*----------------------------------------------------------------------- + * Consumers + */ + +struct cork_file_consumer { + struct cork_stream_consumer parent; + FILE *fp; +}; + +static int +cork_file_consumer__data(struct cork_stream_consumer *vself, + const void *buf, size_t size, bool is_first) +{ + struct cork_file_consumer *self = + cork_container_of(vself, struct cork_file_consumer, parent); + size_t bytes_written = fwrite(buf, 1, size, self->fp); + /* If there was an error writing to the file, then signal this to + * the producer */ + if (bytes_written == size) { + return 0; + } else { + cork_system_error_set(); + return -1; + } +} + +static int +cork_file_consumer__eof(struct cork_stream_consumer *vself) +{ + /* We never close the file with this version of the consumer, so there's + * nothing special to do at end-of-stream. */ + return 0; +} + +static void +cork_file_consumer__free(struct cork_stream_consumer *vself) +{ + struct cork_file_consumer *self = + cork_container_of(vself, struct cork_file_consumer, parent); + cork_delete(struct cork_file_consumer, self); +} + +struct cork_stream_consumer * +cork_file_consumer_new(FILE *fp) +{ + struct cork_file_consumer *self = cork_new(struct cork_file_consumer); + self->parent.data = cork_file_consumer__data; + self->parent.eof = cork_file_consumer__eof; + self->parent.free = cork_file_consumer__free; + self->fp = fp; + return &self->parent; +} + + +struct cork_fd_consumer { + struct cork_stream_consumer parent; + int fd; +}; + +static int +cork_fd_consumer__data(struct cork_stream_consumer *vself, + const void *buf, size_t size, bool is_first) +{ + struct cork_fd_consumer *self = + cork_container_of(vself, struct cork_fd_consumer, parent); + size_t bytes_left = size; + + while (bytes_left > 0) { + ssize_t rc = write(self->fd, buf, bytes_left); + if (rc == -1 && errno != EINTR) { + cork_system_error_set(); + return -1; + } else { + bytes_left -= rc; + buf += rc; + } + } + + return 0; +} + +static int +cork_fd_consumer__eof_close(struct cork_stream_consumer *vself) +{ + int rc; + struct cork_fd_consumer *self = + cork_container_of(vself, struct cork_fd_consumer, parent); + rii_check_posix(rc = close(self->fd)); + return 0; +} + +static void +cork_fd_consumer__free(struct cork_stream_consumer *vself) +{ + struct cork_fd_consumer *self = + cork_container_of(vself, struct cork_fd_consumer, parent); + cork_delete(struct cork_fd_consumer, self); +} + +struct cork_stream_consumer * +cork_fd_consumer_new(int fd) +{ + struct cork_fd_consumer *self = cork_new(struct cork_fd_consumer); + self->parent.data = cork_fd_consumer__data; + /* We don't want to close fd, so we reuse file_consumer's eof method */ + self->parent.eof = cork_file_consumer__eof; + self->parent.free = cork_fd_consumer__free; + self->fd = fd; + return &self->parent; +} + +struct cork_stream_consumer * +cork_file_from_path_consumer_new(const char *path, int flags) +{ + + int fd; + struct cork_fd_consumer *self; + + rpi_check_posix(fd = open(path, flags)); + self = cork_new(struct cork_fd_consumer); + self->parent.data = cork_fd_consumer__data; + self->parent.eof = cork_fd_consumer__eof_close; + self->parent.free = cork_fd_consumer__free; + self->fd = fd; + return &self->parent; +} diff --git a/shadowsocksr-libev/src/libcork/ds/hash-table.c b/shadowsocksr-libev/src/libcork/ds/hash-table.c new file mode 100644 index 00000000000..280a7bd66a6 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/hash-table.c @@ -0,0 +1,689 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core/callbacks.h" +#include "libcork/core/hash.h" +#include "libcork/core/types.h" +#include "libcork/ds/dllist.h" +#include "libcork/ds/hash-table.h" +#include "libcork/helpers/errors.h" + +#ifndef CORK_HASH_TABLE_DEBUG +#define CORK_HASH_TABLE_DEBUG 0 +#endif + +#if CORK_HASH_TABLE_DEBUG +#include +#define DEBUG(...) \ + do { \ + fprintf(stderr, __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + } while (0) +#else +#define DEBUG(...) /* nothing */ +#endif + + +/*----------------------------------------------------------------------- + * Hash tables + */ + +struct cork_hash_table_entry_priv { + struct cork_hash_table_entry public; + struct cork_dllist_item in_bucket; + struct cork_dllist_item insertion_order; +}; + +struct cork_hash_table { + struct cork_dllist *bins; + struct cork_dllist insertion_order; + size_t bin_count; + size_t bin_mask; + size_t entry_count; + void *user_data; + cork_free_f free_user_data; + cork_hash_f hash; + cork_equals_f equals; + cork_free_f free_key; + cork_free_f free_value; +}; + +static cork_hash +cork_hash_table__default_hash(void *user_data, const void *key) +{ + return (cork_hash) (uintptr_t) key; +} + +static bool +cork_hash_table__default_equals(void *user_data, + const void *key1, const void *key2) +{ + return key1 == key2; +} + + +/* The default initial number of bins to allocate in a new table. */ +#define CORK_HASH_TABLE_DEFAULT_INITIAL_SIZE 8 + +/* The default number of entries per bin to allow before increasing the + * number of bins. */ +#define CORK_HASH_TABLE_MAX_DENSITY 5 + +/* Return a power-of-2 bin count that's at least as big as the given requested + * size. */ +static inline size_t +cork_hash_table_new_size(size_t desired_count) +{ + size_t v = desired_count; + size_t r = 1; + while (v >>= 1) { + r <<= 1; + } + if (r != desired_count) { + r <<= 1; + } + return r; +} + +#define bin_index(table, hash) ((hash) & (table)->bin_mask) + +/* Allocates a new bins array in a hash table. We overwrite the old + * array, so make sure to stash it away somewhere safe first. */ +static void +cork_hash_table_allocate_bins(struct cork_hash_table *table, + size_t desired_count) +{ + size_t i; + + table->bin_count = cork_hash_table_new_size(desired_count); + table->bin_mask = table->bin_count - 1; + DEBUG("Allocate %zu bins", table->bin_count); + table->bins = cork_calloc(table->bin_count, sizeof(struct cork_dllist)); + for (i = 0; i < table->bin_count; i++) { + cork_dllist_init(&table->bins[i]); + } +} + + +static struct cork_hash_table_entry_priv * +cork_hash_table_new_entry(struct cork_hash_table *table, + cork_hash hash, void *key, void *value) +{ + struct cork_hash_table_entry_priv *entry = + cork_new(struct cork_hash_table_entry_priv); + cork_dllist_add(&table->insertion_order, &entry->insertion_order); + entry->public.hash = hash; + entry->public.key = key; + entry->public.value = value; + return entry; +} + +static void +cork_hash_table_free_entry(struct cork_hash_table *table, + struct cork_hash_table_entry_priv *entry) +{ + if (table->free_key != NULL) { + table->free_key(entry->public.key); + } + if (table->free_value != NULL) { + table->free_value(entry->public.value); + } + cork_dllist_remove(&entry->insertion_order); + cork_delete(struct cork_hash_table_entry_priv, entry); +} + + +struct cork_hash_table * +cork_hash_table_new(size_t initial_size, unsigned int flags) +{ + struct cork_hash_table *table = cork_new(struct cork_hash_table); + table->entry_count = 0; + table->user_data = NULL; + table->free_user_data = NULL; + table->hash = cork_hash_table__default_hash; + table->equals = cork_hash_table__default_equals; + table->free_key = NULL; + table->free_value = NULL; + cork_dllist_init(&table->insertion_order); + if (initial_size < CORK_HASH_TABLE_DEFAULT_INITIAL_SIZE) { + initial_size = CORK_HASH_TABLE_DEFAULT_INITIAL_SIZE; + } + cork_hash_table_allocate_bins(table, initial_size); + return table; +} + +void +cork_hash_table_clear(struct cork_hash_table *table) +{ + size_t i; + struct cork_dllist_item *curr; + struct cork_dllist_item *next; + + DEBUG("(clear) Remove all entries"); + for (curr = cork_dllist_start(&table->insertion_order); + !cork_dllist_is_end(&table->insertion_order, curr); + curr = next) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, insertion_order); + next = curr->next; + cork_hash_table_free_entry(table, entry); + } + cork_dllist_init(&table->insertion_order); + + DEBUG("(clear) Clear bins"); + for (i = 0; i < table->bin_count; i++) { + DEBUG(" Bin %zu", i); + cork_dllist_init(&table->bins[i]); + } + + table->entry_count = 0; +} + +void +cork_hash_table_free(struct cork_hash_table *table) +{ + cork_hash_table_clear(table); + cork_cfree(table->bins, table->bin_count, sizeof(struct cork_dllist)); + cork_delete(struct cork_hash_table, table); +} + +size_t +cork_hash_table_size(const struct cork_hash_table *table) +{ + return table->entry_count; +} + +void +cork_hash_table_set_user_data(struct cork_hash_table *table, + void *user_data, cork_free_f free_user_data) +{ + table->user_data = user_data; + table->free_user_data = free_user_data; +} + +void +cork_hash_table_set_hash(struct cork_hash_table *table, cork_hash_f hash) +{ + table->hash = hash; +} + +void +cork_hash_table_set_equals(struct cork_hash_table *table, cork_equals_f equals) +{ + table->equals = equals; +} + +void +cork_hash_table_set_free_key(struct cork_hash_table *table, cork_free_f free) +{ + table->free_key = free; +} + +void +cork_hash_table_set_free_value(struct cork_hash_table *table, cork_free_f free) +{ + table->free_value = free; +} + + +void +cork_hash_table_ensure_size(struct cork_hash_table *table, size_t desired_count) +{ + if (desired_count > table->bin_count) { + struct cork_dllist *old_bins = table->bins; + size_t old_bin_count = table->bin_count; + + cork_hash_table_allocate_bins(table, desired_count); + + if (old_bins != NULL) { + size_t i; + for (i = 0; i < old_bin_count; i++) { + struct cork_dllist *bin = &old_bins[i]; + struct cork_dllist_item *curr = cork_dllist_start(bin); + while (!cork_dllist_is_end(bin, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, in_bucket); + struct cork_dllist_item *next = curr->next; + + size_t bin_index = bin_index(table, entry->public.hash); + DEBUG(" Rehash %p from bin %zu to bin %zu", + entry, i, bin_index); + cork_dllist_add(&table->bins[bin_index], curr); + + curr = next; + } + } + + cork_cfree(old_bins, old_bin_count, sizeof(struct cork_dllist)); + } + } +} + + +static void +cork_hash_table_rehash(struct cork_hash_table *table) +{ + DEBUG(" Reached maximum density; rehash"); + cork_hash_table_ensure_size(table, table->bin_count + 1); +} + + +struct cork_hash_table_entry * +cork_hash_table_get_entry_hash(const struct cork_hash_table *table, + cork_hash hash, const void *key) +{ + size_t bin_index; + struct cork_dllist *bin; + struct cork_dllist_item *curr; + + if (table->bin_count == 0) { + DEBUG("(get) Empty table when searching for key %p " + "(hash 0x%08" PRIx32 ")", + key, hash); + return NULL; + } + + bin_index = bin_index(table, hash); + DEBUG("(get) Search for key %p (hash 0x%08" PRIx32 ", bin %zu)", + key, hash, bin_index); + + bin = &table->bins[bin_index]; + curr = cork_dllist_start(bin); + while (!cork_dllist_is_end(bin, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, in_bucket); + + DEBUG(" Check entry %p", entry); + if (table->equals(table->user_data, key, entry->public.key)) { + DEBUG(" Match"); + return &entry->public; + } + + curr = curr->next; + } + + DEBUG(" Entry not found"); + return NULL; +} + +struct cork_hash_table_entry * +cork_hash_table_get_entry(const struct cork_hash_table *table, const void *key) +{ + cork_hash hash = table->hash(table->user_data, key); + return cork_hash_table_get_entry_hash(table, hash, key); +} + +void * +cork_hash_table_get_hash(const struct cork_hash_table *table, + cork_hash hash, const void *key) +{ + struct cork_hash_table_entry *entry = + cork_hash_table_get_entry_hash(table, hash, key); + if (entry == NULL) { + return NULL; + } else { + DEBUG(" Extract value pointer %p", entry->value); + return entry->value; + } +} + +void * +cork_hash_table_get(const struct cork_hash_table *table, const void *key) +{ + struct cork_hash_table_entry *entry = + cork_hash_table_get_entry(table, key); + if (entry == NULL) { + return NULL; + } else { + DEBUG(" Extract value pointer %p", entry->value); + return entry->value; + } +} + + +struct cork_hash_table_entry * +cork_hash_table_get_or_create_hash(struct cork_hash_table *table, + cork_hash hash, void *key, bool *is_new) +{ + struct cork_hash_table_entry_priv *entry; + size_t bin_index; + + if (table->bin_count > 0) { + struct cork_dllist *bin; + struct cork_dllist_item *curr; + + bin_index = bin_index(table, hash); + DEBUG("(get_or_create) Search for key %p " + "(hash 0x%08" PRIx32 ", bin %zu)", + key, hash, bin_index); + + bin = &table->bins[bin_index]; + curr = cork_dllist_start(bin); + while (!cork_dllist_is_end(bin, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, in_bucket); + + DEBUG(" Check entry %p", entry); + if (table->equals(table->user_data, key, entry->public.key)) { + DEBUG(" Match"); + DEBUG(" Return value pointer %p", entry->public.value); + *is_new = false; + return &entry->public; + } + + curr = curr->next; + } + + /* create a new entry */ + DEBUG(" Entry not found"); + + if ((table->entry_count / table->bin_count) > + CORK_HASH_TABLE_MAX_DENSITY) { + cork_hash_table_rehash(table); + bin_index = bin_index(table, hash); + } + } else { + DEBUG("(get_or_create) Search for key %p (hash 0x%08" PRIx32 ")", + key, hash); + DEBUG(" Empty table"); + cork_hash_table_rehash(table); + bin_index = bin_index(table, hash); + } + + DEBUG(" Allocate new entry"); + entry = cork_hash_table_new_entry(table, hash, key, NULL); + DEBUG(" Created new entry %p", entry); + + DEBUG(" Add entry into bin %zu", bin_index); + cork_dllist_add(&table->bins[bin_index], &entry->in_bucket); + + table->entry_count++; + *is_new = true; + return &entry->public; +} + +struct cork_hash_table_entry * +cork_hash_table_get_or_create(struct cork_hash_table *table, + void *key, bool *is_new) +{ + cork_hash hash = table->hash(table->user_data, key); + return cork_hash_table_get_or_create_hash(table, hash, key, is_new); +} + + +void +cork_hash_table_put_hash(struct cork_hash_table *table, + cork_hash hash, void *key, void *value, + bool *is_new, void **old_key, void **old_value) +{ + struct cork_hash_table_entry_priv *entry; + size_t bin_index; + + if (table->bin_count > 0) { + struct cork_dllist *bin; + struct cork_dllist_item *curr; + + bin_index = bin_index(table, hash); + DEBUG("(put) Search for key %p (hash 0x%08" PRIx32 ", bin %zu)", + key, hash, bin_index); + + bin = &table->bins[bin_index]; + curr = cork_dllist_start(bin); + while (!cork_dllist_is_end(bin, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, in_bucket); + + DEBUG(" Check entry %p", entry); + if (table->equals(table->user_data, key, entry->public.key)) { + DEBUG(" Found existing entry; overwriting"); + DEBUG(" Return old key %p", entry->public.key); + if (old_key != NULL) { + *old_key = entry->public.key; + } + DEBUG(" Return old value %p", entry->public.value); + if (old_value != NULL) { + *old_value = entry->public.value; + } + DEBUG(" Copy key %p into entry", key); + entry->public.key = key; + DEBUG(" Copy value %p into entry", value); + entry->public.value = value; + if (is_new != NULL) { + *is_new = false; + } + return; + } + + curr = curr->next; + } + + /* create a new entry */ + DEBUG(" Entry not found"); + if ((table->entry_count / table->bin_count) > + CORK_HASH_TABLE_MAX_DENSITY) { + cork_hash_table_rehash(table); + bin_index = bin_index(table, hash); + } + } else { + DEBUG("(put) Search for key %p (hash 0x%08" PRIx32 ")", + key, hash); + DEBUG(" Empty table"); + cork_hash_table_rehash(table); + bin_index = bin_index(table, hash); + } + + DEBUG(" Allocate new entry"); + entry = cork_hash_table_new_entry(table, hash, key, value); + DEBUG(" Created new entry %p", entry); + + DEBUG(" Add entry into bin %zu", bin_index); + cork_dllist_add(&table->bins[bin_index], &entry->in_bucket); + + table->entry_count++; + if (old_key != NULL) { + *old_key = NULL; + } + if (old_value != NULL) { + *old_value = NULL; + } + if (is_new != NULL) { + *is_new = true; + } +} + +void +cork_hash_table_put(struct cork_hash_table *table, + void *key, void *value, + bool *is_new, void **old_key, void **old_value) +{ + cork_hash hash = table->hash(table->user_data, key); + cork_hash_table_put_hash + (table, hash, key, value, is_new, old_key, old_value); +} + + +void +cork_hash_table_delete_entry(struct cork_hash_table *table, + struct cork_hash_table_entry *ventry) +{ + struct cork_hash_table_entry_priv *entry = + cork_container_of(ventry, struct cork_hash_table_entry_priv, public); + cork_dllist_remove(&entry->in_bucket); + table->entry_count--; + cork_hash_table_free_entry(table, entry); +} + + +bool +cork_hash_table_delete_hash(struct cork_hash_table *table, + cork_hash hash, const void *key, + void **deleted_key, void **deleted_value) +{ + size_t bin_index; + struct cork_dllist *bin; + struct cork_dllist_item *curr; + + if (table->bin_count == 0) { + DEBUG("(delete) Empty table when searching for key %p " + "(hash 0x%08" PRIx32 ")", + key, hash); + return false; + } + + bin_index = bin_index(table, hash); + DEBUG("(delete) Search for key %p (hash 0x%08" PRIx32 ", bin %zu)", + key, hash, bin_index); + + bin = &table->bins[bin_index]; + curr = cork_dllist_start(bin); + while (!cork_dllist_is_end(bin, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, in_bucket); + + DEBUG(" Check entry %p", entry); + if (table->equals(table->user_data, key, entry->public.key)) { + DEBUG(" Match"); + if (deleted_key != NULL) { + *deleted_key = entry->public.key; + } + if (deleted_value != NULL) { + *deleted_value = entry->public.value; + } + + DEBUG(" Remove entry from hash bin %zu", bin_index); + cork_dllist_remove(curr); + table->entry_count--; + + DEBUG(" Free entry %p", entry); + cork_hash_table_free_entry(table, entry); + return true; + } + + curr = curr->next; + } + + DEBUG(" Entry not found"); + return false; +} + +bool +cork_hash_table_delete(struct cork_hash_table *table, const void *key, + void **deleted_key, void **deleted_value) +{ + cork_hash hash = table->hash(table->user_data, key); + return cork_hash_table_delete_hash + (table, hash, key, deleted_key, deleted_value); +} + + +void +cork_hash_table_map(struct cork_hash_table *table, void *user_data, + cork_hash_table_map_f map) +{ + struct cork_dllist_item *curr; + DEBUG("Map across hash table"); + + curr = cork_dllist_start(&table->insertion_order); + while (!cork_dllist_is_end(&table->insertion_order, curr)) { + struct cork_hash_table_entry_priv *entry = + cork_container_of + (curr, struct cork_hash_table_entry_priv, insertion_order); + struct cork_dllist_item *next = curr->next; + enum cork_hash_table_map_result result; + + DEBUG(" Apply function to entry %p", entry); + result = map(user_data, &entry->public); + + if (result == CORK_HASH_TABLE_MAP_ABORT) { + return; + } else if (result == CORK_HASH_TABLE_MAP_DELETE) { + DEBUG(" Delete requested"); + cork_dllist_remove(curr); + cork_dllist_remove(&entry->in_bucket); + table->entry_count--; + cork_hash_table_free_entry(table, entry); + } + + curr = next; + } +} + + +void +cork_hash_table_iterator_init(struct cork_hash_table *table, + struct cork_hash_table_iterator *iterator) +{ + DEBUG("Iterate through hash table"); + iterator->table = table; + iterator->priv = cork_dllist_start(&table->insertion_order); +} + + +struct cork_hash_table_entry * +cork_hash_table_iterator_next(struct cork_hash_table_iterator *iterator) +{ + struct cork_hash_table *table = iterator->table; + struct cork_dllist_item *curr = iterator->priv; + struct cork_hash_table_entry_priv *entry; + + if (cork_dllist_is_end(&table->insertion_order, curr)) { + return NULL; + } + + entry = cork_container_of + (curr, struct cork_hash_table_entry_priv, insertion_order); + DEBUG(" Return entry %p", entry); + iterator->priv = curr->next; + return &entry->public; +} + + +/*----------------------------------------------------------------------- + * Built-in key types + */ + +static cork_hash +string_hash(void *user_data, const void *vk) +{ + const char *k = vk; + size_t len = strlen(k); + return cork_hash_buffer(0, k, len); +} + +static bool +string_equals(void *user_data, const void *vk1, const void *vk2) +{ + const char *k1 = vk1; + const char *k2 = vk2; + return strcmp(k1, k2) == 0; +} + +struct cork_hash_table * +cork_string_hash_table_new(size_t initial_size, unsigned int flags) +{ + struct cork_hash_table *table = cork_hash_table_new(initial_size, flags); + cork_hash_table_set_hash(table, string_hash); + cork_hash_table_set_equals(table, string_equals); + return table; +} + +struct cork_hash_table * +cork_pointer_hash_table_new(size_t initial_size, unsigned int flags) +{ + return cork_hash_table_new(initial_size, flags); +} diff --git a/shadowsocksr-libev/src/libcork/ds/managed-buffer.c b/shadowsocksr-libev/src/libcork/ds/managed-buffer.c new file mode 100644 index 00000000000..830b88f175d --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/managed-buffer.c @@ -0,0 +1,240 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/ds/managed-buffer.h" +#include "libcork/ds/slice.h" +#include "libcork/helpers/errors.h" + + +/*----------------------------------------------------------------------- + * Error handling + */ + +static void +cork_slice_invalid_slice_set(size_t buf_size, size_t requested_offset, + size_t requested_length) +{ + cork_error_set + (CORK_SLICE_ERROR, CORK_SLICE_INVALID_SLICE, + "Cannot slice %zu-byte buffer at %zu:%zu", + buf_size, requested_offset, requested_length); +} + + +/*----------------------------------------------------------------------- + * Managed buffers + */ + +struct cork_managed_buffer_wrapped { + struct cork_managed_buffer parent; + void *buf; + size_t size; + cork_managed_buffer_freer free; +}; + +static void +cork_managed_buffer_wrapped__free(struct cork_managed_buffer *vself) +{ + struct cork_managed_buffer_wrapped *self = + cork_container_of(vself, struct cork_managed_buffer_wrapped, parent); + self->free(self->buf, self->size); + cork_delete(struct cork_managed_buffer_wrapped, self); +} + +static struct cork_managed_buffer_iface CORK_MANAGED_BUFFER_WRAPPED = { + cork_managed_buffer_wrapped__free +}; + +struct cork_managed_buffer * +cork_managed_buffer_new(const void *buf, size_t size, + cork_managed_buffer_freer free) +{ + /* + DEBUG("Creating new struct cork_managed_buffer [%p:%zu], refcount now 1", + buf, size); + */ + + struct cork_managed_buffer_wrapped *self = + cork_new(struct cork_managed_buffer_wrapped); + self->parent.buf = buf; + self->parent.size = size; + self->parent.ref_count = 1; + self->parent.iface = &CORK_MANAGED_BUFFER_WRAPPED; + self->buf = (void *) buf; + self->size = size; + self->free = free; + return &self->parent; +} + + +struct cork_managed_buffer_copied { + struct cork_managed_buffer parent; +}; + +#define cork_managed_buffer_copied_data(self) \ + (((void *) (self)) + sizeof(struct cork_managed_buffer_copied)) + +#define cork_managed_buffer_copied_sizeof(sz) \ + ((sz) + sizeof(struct cork_managed_buffer_copied)) + +static void +cork_managed_buffer_copied__free(struct cork_managed_buffer *vself) +{ + struct cork_managed_buffer_copied *self = + cork_container_of(vself, struct cork_managed_buffer_copied, parent); + size_t allocated_size = + cork_managed_buffer_copied_sizeof(self->parent.size); + cork_free(self, allocated_size); +} + +static struct cork_managed_buffer_iface CORK_MANAGED_BUFFER_COPIED = { + cork_managed_buffer_copied__free +}; + +struct cork_managed_buffer * +cork_managed_buffer_new_copy(const void *buf, size_t size) +{ + size_t allocated_size = cork_managed_buffer_copied_sizeof(size); + struct cork_managed_buffer_copied *self = cork_malloc(allocated_size); + if (self == NULL) { + return NULL; + } + + self->parent.buf = cork_managed_buffer_copied_data(self); + self->parent.size = size; + self->parent.ref_count = 1; + self->parent.iface = &CORK_MANAGED_BUFFER_COPIED; + memcpy((void *) self->parent.buf, buf, size); + return &self->parent; +} + + +static void +cork_managed_buffer_free(struct cork_managed_buffer *self) +{ + /* + DEBUG("Freeing struct cork_managed_buffer [%p:%zu]", self->buf, self->size); + */ + + self->iface->free(self); +} + + +struct cork_managed_buffer * +cork_managed_buffer_ref(struct cork_managed_buffer *self) +{ + /* + int old_count = self->ref_count++; + DEBUG("Referencing struct cork_managed_buffer [%p:%zu], refcount now %d", + self->buf, self->size, old_count + 1); + */ + + self->ref_count++; + return self; +} + + +void +cork_managed_buffer_unref(struct cork_managed_buffer *self) +{ + /* + int old_count = self->ref_count--; + DEBUG("Dereferencing struct cork_managed_buffer [%p:%zu], refcount now %d", + self->buf, self->size, old_count - 1); + */ + + if (--self->ref_count == 0) { + cork_managed_buffer_free(self); + } +} + + +static struct cork_slice_iface CORK_MANAGED_BUFFER__SLICE; + +static void +cork_managed_buffer__slice_free(struct cork_slice *self) +{ + struct cork_managed_buffer *mbuf = self->user_data; + cork_managed_buffer_unref(mbuf); +} + +static int +cork_managed_buffer__slice_copy(struct cork_slice *dest, + const struct cork_slice *src, + size_t offset, size_t length) +{ + struct cork_managed_buffer *mbuf = src->user_data; + dest->buf = src->buf + offset; + dest->size = length; + dest->iface = &CORK_MANAGED_BUFFER__SLICE; + dest->user_data = cork_managed_buffer_ref(mbuf); + return 0; +} + +static struct cork_slice_iface CORK_MANAGED_BUFFER__SLICE = { + cork_managed_buffer__slice_free, + cork_managed_buffer__slice_copy, + cork_managed_buffer__slice_copy, + NULL +}; + + +int +cork_managed_buffer_slice(struct cork_slice *dest, + struct cork_managed_buffer *buffer, + size_t offset, size_t length) +{ + if ((buffer != NULL) && + (offset <= buffer->size) && + ((offset + length) <= buffer->size)) { + /* + DEBUG("Slicing [%p:%zu] at %zu:%zu, gives <%p:%zu>", + buffer->buf, buffer->size, + offset, length, + buffer->buf + offset, length); + */ + dest->buf = buffer->buf + offset; + dest->size = length; + dest->iface = &CORK_MANAGED_BUFFER__SLICE; + dest->user_data = cork_managed_buffer_ref(buffer); + return 0; + } + + else { + /* + DEBUG("Cannot slice [%p:%zu] at %zu:%zu", + buffer->buf, buffer->size, + offset, length); + */ + cork_slice_clear(dest); + cork_slice_invalid_slice_set(0, offset, 0); + return -1; + } +} + + +int +cork_managed_buffer_slice_offset(struct cork_slice *dest, + struct cork_managed_buffer *buffer, + size_t offset) +{ + if (buffer == NULL) { + cork_slice_clear(dest); + cork_slice_invalid_slice_set(0, offset, 0); + return -1; + } else { + return cork_managed_buffer_slice + (dest, buffer, offset, buffer->size - offset); + } +} diff --git a/shadowsocksr-libev/src/libcork/ds/ring-buffer.c b/shadowsocksr-libev/src/libcork/ds/ring-buffer.c new file mode 100644 index 00000000000..92eb8b9c0f1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/ring-buffer.c @@ -0,0 +1,87 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include + +#include "libcork/core/allocator.h" +#include "libcork/core/types.h" +#include "libcork/ds/ring-buffer.h" + + +int +cork_ring_buffer_init(struct cork_ring_buffer *self, size_t size) +{ + self->elements = cork_calloc(size, sizeof(void *)); + self->allocated_size = size; + self->size = 0; + self->read_index = 0; + self->write_index = 0; + return 0; +} + +struct cork_ring_buffer * +cork_ring_buffer_new(size_t size) +{ + struct cork_ring_buffer *buf = cork_new(struct cork_ring_buffer); + cork_ring_buffer_init(buf, size); + return buf; +} + +void +cork_ring_buffer_done(struct cork_ring_buffer *self) +{ + cork_cfree(self->elements, self->allocated_size, sizeof(void *)); +} + +void +cork_ring_buffer_free(struct cork_ring_buffer *buf) +{ + cork_ring_buffer_done(buf); + cork_delete(struct cork_ring_buffer, buf); +} + +int +cork_ring_buffer_add(struct cork_ring_buffer *self, void *element) +{ + if (cork_ring_buffer_is_full(self)) { + return -1; + } + + self->elements[self->write_index++] = element; + self->size++; + if (self->write_index == self->allocated_size) { + self->write_index = 0; + } + return 0; +} + +void * +cork_ring_buffer_pop(struct cork_ring_buffer *self) +{ + if (cork_ring_buffer_is_empty(self)) { + return NULL; + } else { + void *result = self->elements[self->read_index++]; + self->size--; + if (self->read_index == self->allocated_size) { + self->read_index = 0; + } + return result; + } +} + +void * +cork_ring_buffer_peek(struct cork_ring_buffer *self) +{ + if (cork_ring_buffer_is_empty(self)) { + return NULL; + } else { + return self->elements[self->read_index]; + } +} diff --git a/shadowsocksr-libev/src/libcork/ds/slice.c b/shadowsocksr-libev/src/libcork/ds/slice.c new file mode 100644 index 00000000000..96d723262ba --- /dev/null +++ b/shadowsocksr-libev/src/libcork/ds/slice.c @@ -0,0 +1,297 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#include + +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/ds/managed-buffer.h" +#include "libcork/ds/slice.h" +#include "libcork/helpers/errors.h" + + +/*----------------------------------------------------------------------- + * Error handling + */ + +static void +cork_slice_invalid_slice_set(size_t buf_size, size_t requested_offset, + size_t requested_length) +{ + cork_error_set + (CORK_SLICE_ERROR, CORK_SLICE_INVALID_SLICE, + "Cannot slice %zu-byte buffer at %zu:%zu", + buf_size, requested_offset, requested_length); +} + + +/*----------------------------------------------------------------------- + * Slices + */ + +void +cork_slice_clear(struct cork_slice *slice) +{ + slice->buf = NULL; + slice->size = 0; + slice->iface = NULL; + slice->user_data = NULL; +} + + +int +cork_slice_copy(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset, size_t length) +{ + if ((slice != NULL) && + (offset <= slice->size) && + ((offset + length) <= slice->size)) { + /* + DEBUG("Slicing <%p:%zu> at %zu:%zu, gives <%p:%zu>", + slice->buf, slice->size, + offset, length, + slice->buf + offset, length); + */ + return slice->iface->copy(dest, slice, offset, length); + } + + else { + /* + DEBUG("Cannot slice <%p:%zu> at %zu:%zu", + slice->buf, slice->size, + offset, length); + */ + cork_slice_clear(dest); + cork_slice_invalid_slice_set + ((slice == NULL)? 0: slice->size, offset, length); + return -1; + } +} + + +int +cork_slice_copy_offset(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset) +{ + if (slice == NULL) { + cork_slice_clear(dest); + cork_slice_invalid_slice_set(0, offset, 0); + return -1; + } else { + return cork_slice_copy + (dest, slice, offset, slice->size - offset); + } +} + + +int +cork_slice_light_copy(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset, size_t length) +{ + if ((slice != NULL) && + (offset <= slice->size) && + ((offset + length) <= slice->size)) { + /* + DEBUG("Slicing <%p:%zu> at %zu:%zu, gives <%p:%zu>", + slice->buf, slice->size, + offset, length, + slice->buf + offset, length); + */ + return slice->iface->light_copy(dest, slice, offset, length); + } + + else { + /* + DEBUG("Cannot slice <%p:%zu> at %zu:%zu", + slice->buf, slice->size, + offset, length); + */ + cork_slice_clear(dest); + cork_slice_invalid_slice_set + ((slice == NULL)? 0: slice->size, offset, length); + return -1; + } +} + + +int +cork_slice_light_copy_offset(struct cork_slice *dest, + const struct cork_slice *slice, size_t offset) +{ + if (slice == NULL) { + cork_slice_clear(dest); + cork_slice_invalid_slice_set(0, offset, 0); + return -1; + } else { + return cork_slice_light_copy + (dest, slice, offset, slice->size - offset); + } +} + + +int +cork_slice_slice(struct cork_slice *slice, size_t offset, size_t length) +{ + if ((slice != NULL) && + (offset <= slice->size) && + ((offset + length) <= slice->size)) { + /* + DEBUG("Slicing <%p:%zu> at %zu:%zu, gives <%p:%zu>", + slice->buf, slice->size, + offset, length, + slice->buf + offset, length); + */ + if (slice->iface->slice == NULL) { + slice->buf += offset; + slice->size = length; + return 0; + } else { + return slice->iface->slice(slice, offset, length); + } + } + + else { + /* + DEBUG("Cannot slice <%p:%zu> at %zu:%zu", + slice->buf, slice->size, + offset, length); + */ + if (slice != NULL) + cork_slice_invalid_slice_set(slice->size, offset, length); + return -1; + } +} + + +int +cork_slice_slice_offset(struct cork_slice *slice, size_t offset) +{ + if (slice == NULL) { + cork_slice_invalid_slice_set(0, offset, 0); + return -1; + } else { + return cork_slice_slice + (slice, offset, slice->size - offset); + } +} + + +void +cork_slice_finish(struct cork_slice *slice) +{ + /* + DEBUG("Finalizing <%p:%zu>", dest->buf, dest->size); + */ + + if (slice->iface != NULL && slice->iface->free != NULL) { + slice->iface->free(slice); + } + + cork_slice_clear(slice); +} + + +bool +cork_slice_equal(const struct cork_slice *slice1, + const struct cork_slice *slice2) +{ + if (slice1 == slice2) { + return true; + } + + if (slice1->size != slice2->size) { + return false; + } + + return (memcmp(slice1->buf, slice2->buf, slice1->size) == 0); +} + + +/*----------------------------------------------------------------------- + * Slices of static content + */ + +static struct cork_slice_iface cork_static_slice; + +static int +cork_static_slice_copy(struct cork_slice *dest, const struct cork_slice *src, + size_t offset, size_t length) +{ + dest->buf = src->buf + offset; + dest->size = length; + dest->iface = &cork_static_slice; + dest->user_data = NULL; + return 0; +} + +static struct cork_slice_iface cork_static_slice = { + NULL, + cork_static_slice_copy, + cork_static_slice_copy, + NULL +}; + +void +cork_slice_init_static(struct cork_slice *dest, const void *buf, size_t size) +{ + dest->buf = buf; + dest->size = size; + dest->iface = &cork_static_slice; + dest->user_data = NULL; +} + + +/*----------------------------------------------------------------------- + * Copy-once slices + */ + +static struct cork_slice_iface cork_copy_once_slice; + +static int +cork_copy_once_slice__copy(struct cork_slice *dest, + const struct cork_slice *src, + size_t offset, size_t length) +{ + struct cork_managed_buffer *mbuf = + cork_managed_buffer_new_copy(src->buf, src->size); + rii_check(cork_managed_buffer_slice(dest, mbuf, offset, length)); + rii_check(cork_managed_buffer_slice + ((struct cork_slice *) src, mbuf, 0, src->size)); + cork_managed_buffer_unref(mbuf); + return 0; +} + +static int +cork_copy_once_slice__light_copy(struct cork_slice *dest, + const struct cork_slice *src, + size_t offset, size_t length) +{ + dest->buf = src->buf + offset; + dest->size = length; + dest->iface = &cork_copy_once_slice; + dest->user_data = NULL; + return 0; +} + +static struct cork_slice_iface cork_copy_once_slice = { + NULL, + cork_copy_once_slice__copy, + cork_copy_once_slice__light_copy, + NULL +}; + +void +cork_slice_init_copy_once(struct cork_slice *dest, const void *buf, size_t size) +{ + dest->buf = buf; + dest->size = size; + dest->iface = &cork_copy_once_slice; + dest->user_data = NULL; +} diff --git a/shadowsocksr-libev/src/libcork/include/libcork/cli.h b/shadowsocksr-libev/src/libcork/include/libcork/cli.h new file mode 100644 index 00000000000..b5d20c1fa39 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/cli.h @@ -0,0 +1,18 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CLI_H +#define LIBCORK_CLI_H + +/*** include all of the parts ***/ + +#include + +#endif /* LIBCORK_CLI_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/cli/commands.h b/shadowsocksr-libev/src/libcork/include/libcork/cli/commands.h new file mode 100644 index 00000000000..1569a7419f9 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/cli/commands.h @@ -0,0 +1,61 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_COMMANDS_H +#define LIBCORK_COMMANDS_H + +#include + + +typedef void +(*cork_leaf_command_run)(int argc, char **argv); + +typedef int +(*cork_option_parser)(int argc, char **argv); + +enum cork_command_type { + CORK_COMMAND_SET, + CORK_LEAF_COMMAND +}; + +struct cork_command { + enum cork_command_type type; + const char *name; + const char *short_desc; + const char *usage_suffix; + const char *full_help; + + int + (*parse_options)(int argc, char **argv); + + struct cork_command **set; + cork_leaf_command_run run; +}; + +#define cork_command_set(name, sd, parse_options, set) \ +{ \ + CORK_COMMAND_SET, name, sd, NULL, NULL, \ + parse_options, set, NULL \ +} + +#define cork_leaf_command(name, sd, us, fh, parse_options, run) \ +{ \ + CORK_LEAF_COMMAND, name, sd, us, fh, \ + parse_options, NULL, run \ +} + +CORK_API void +cork_command_show_help(struct cork_command *command, const char *message); + +CORK_API int +cork_command_main(struct cork_command *root, int argc, char **argv); + + +#endif /* LIBCORK_COMMANDS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config.h b/shadowsocksr-libev/src/libcork/include/libcork/config.h new file mode 100644 index 00000000000..72eb4fb8bfe --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config.h @@ -0,0 +1,18 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_H +#define LIBCORK_CONFIG_H + +/*** include all of the parts ***/ + +#include + +#endif /* LIBCORK_CONFIG_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/arch.h b/shadowsocksr-libev/src/libcork/include/libcork/config/arch.h new file mode 100644 index 00000000000..eaed9916b84 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/arch.h @@ -0,0 +1,45 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_ARCH_H +#define LIBCORK_CONFIG_ARCH_H + + +/*----------------------------------------------------------------------- + * Platform + */ + +#if defined(__i386__) || defined(_M_IX86) +#define CORK_CONFIG_ARCH_X86 1 +#else +#define CORK_CONFIG_ARCH_X86 0 +#endif + +#if defined(__x86_64__) || defined(_M_X64) +#define CORK_CONFIG_ARCH_X64 1 +#else +#define CORK_CONFIG_ARCH_X64 0 +#endif + +#if defined(__powerpc__) || defined(__ppc__) +/* GCC-ish compiler */ +#define CORK_CONFIG_ARCH_PPC 1 +#elif defined(_M_PPC) +/* VS-ish compiler */ +#define CORK_CONFIG_ARCH_PPC 1 +#elif defined(_ARCH_PPC) +/* Something called XL C/C++? */ +#define CORK_CONFIG_ARCH_PPC 1 +#else +#define CORK_CONFIG_ARCH_PPC 0 +#endif + + +#endif /* LIBCORK_CONFIG_ARCH_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/bsd.h b/shadowsocksr-libev/src/libcork/include/libcork/config/bsd.h new file mode 100644 index 00000000000..4c89c074567 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/bsd.h @@ -0,0 +1,34 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_BSD_H +#define LIBCORK_CONFIG_BSD_H + +/*----------------------------------------------------------------------- + * Endianness + */ + +#include + +#if BYTE_ORDER == BIG_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 1 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 0 +#elif BYTE_ORDER == LITTLE_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 0 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 1 +#else +#error "Cannot determine system endianness" +#endif + +#define CORK_HAVE_REALLOCF 1 +#define CORK_HAVE_PTHREADS 1 + + +#endif /* LIBCORK_CONFIG_BSD_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/config.h b/shadowsocksr-libev/src/libcork/include/libcork/config/config.h new file mode 100644 index 00000000000..50ee6ff7004 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/config.h @@ -0,0 +1,82 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_CONFIG_H +#define LIBCORK_CONFIG_CONFIG_H + + +/* If you want to skip autodetection, define this to 1, and provide a + * libcork/config/custom.h header file. */ + +#if !defined(CORK_CONFIG_SKIP_AUTODETECT) +#define CORK_CONFIG_SKIP_AUTODETECT 0 +#endif + + +#if CORK_CONFIG_SKIP_AUTODETECT +/* The user has promised that they'll define everything themselves. */ +#include + +#else +/* Otherwise autodetect! */ + + +/**** VERSION ****/ + +#include + + +/**** ARCHITECTURES ****/ + +#include + + +/**** PLATFORMS ****/ +#if (defined(__unix__) || defined(unix)) && !defined(USG) +/* We need this to test for BSD, but it's a good idea to have for + * any brand of Unix.*/ +#include +#endif + +#if defined(__linux) || defined(__CYGWIN__) || defined(__FreeBSD_kernel__) || defined(__GNU__) +/* Do some Linux, kFreeBSD or GNU/Hurd specific autodetection. */ +#include + +#elif defined(__APPLE__) && defined(__MACH__) +/* Do some Mac OS X-specific autodetection. */ +#include + +#elif defined(BSD) && (BSD >= 199103) +/* Do some BSD (4.3 code base or newer)specific autodetection. */ +#include + +#elif defined(__MINGW32__) +/* Do some mingw32 autodetection. */ +#include + +#elif defined(__sun) +/* Do some Solaris autodetection. */ +#include + +#endif /* platforms */ + + +/**** COMPILERS ****/ + +#if defined(__GNUC__) +/* Do some GCC-specific autodetection. */ +#include + +#endif /* compilers */ + + +#endif /* autodetect or not */ + + +#endif /* LIBCORK_CONFIG_CONFIG_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/gcc.h b/shadowsocksr-libev/src/libcork/include/libcork/config/gcc.h new file mode 100644 index 00000000000..debcbbda8de --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/gcc.h @@ -0,0 +1,91 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_GCC_H +#define LIBCORK_CONFIG_GCC_H + +/* Figure out the GCC version */ + +#if defined(__GNUC_PATCHLEVEL__) +#define CORK_CONFIG_GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100 \ + + __GNUC_PATCHLEVEL__) +#else +#define CORK_CONFIG_GCC_VERSION (__GNUC__ * 10000 \ + + __GNUC_MINOR__ * 100) +#endif + + +/*----------------------------------------------------------------------- + * Compiler attributes + */ + +/* The GCC assembly syntax has been available basically forever. */ + +#if defined(CORK_CONFIG_GCC_VERSION) +#define CORK_CONFIG_HAVE_GCC_ASM 1 +#else +#define CORK_CONFIG_HAVE_GCC_ASM 0 +#endif + +/* The GCC atomic instrinsics are available as of GCC 4.1.0. */ + +#if CORK_CONFIG_GCC_VERSION >= 40100 +#define CORK_CONFIG_HAVE_GCC_ATOMICS 1 +#else +#define CORK_CONFIG_HAVE_GCC_ATOMICS 0 +#endif + +/* The attributes we want to use are available as of GCC 2.96. */ + +#if CORK_CONFIG_GCC_VERSION >= 29600 +#define CORK_CONFIG_HAVE_GCC_ATTRIBUTES 1 +#else +#define CORK_CONFIG_HAVE_GCC_ATTRIBUTES 0 +#endif + +/* __int128 seems to be available on 64-bit platforms as of GCC 4.6. The + * attribute((mode(TI))) syntax seems to be available as of 4.1. */ + +#if CORK_CONFIG_ARCH_X64 && CORK_CONFIG_GCC_VERSION >= 40600 +#define CORK_CONFIG_HAVE_GCC_INT128 1 +#else +#define CORK_CONFIG_HAVE_GCC_INT128 0 +#endif + +#if CORK_CONFIG_ARCH_X64 && CORK_CONFIG_GCC_VERSION >= 40100 +#define CORK_CONFIG_HAVE_GCC_MODE_ATTRIBUTE 1 +#else +#define CORK_CONFIG_HAVE_GCC_MODE_ATTRIBUTE 0 +#endif + +/* Statement expressions have been available since GCC 3.1. */ + +#if CORK_CONFIG_GCC_VERSION >= 30100 +#define CORK_CONFIG_HAVE_GCC_STATEMENT_EXPRS 1 +#else +#define CORK_CONFIG_HAVE_GCC_STATEMENT_EXPRS 0 +#endif + +/* Thread-local storage has been available since GCC 3.3, but not on Mac + * OS X. Also disable TLS for uClibc*/ + +#if !(defined(__APPLE__) && defined(__MACH__)) +#if CORK_CONFIG_GCC_VERSION >= 30300 && defined(TLS) +#define CORK_CONFIG_HAVE_THREAD_STORAGE_CLASS 1 +#else +#define CORK_CONFIG_HAVE_THREAD_STORAGE_CLASS 0 +#endif +#else +#define CORK_CONFIG_HAVE_THREAD_STORAGE_CLASS 0 +#endif + + +#endif /* LIBCORK_CONFIG_GCC_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/linux.h b/shadowsocksr-libev/src/libcork/include/libcork/config/linux.h new file mode 100644 index 00000000000..535924d1f6f --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/linux.h @@ -0,0 +1,34 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_LINUX_H +#define LIBCORK_CONFIG_LINUX_H + +/*----------------------------------------------------------------------- + * Endianness + */ + +#include + +#if __BYTE_ORDER == __BIG_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 1 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 0 +#elif __BYTE_ORDER == __LITTLE_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 0 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 1 +#else +#error "Cannot determine system endianness" +#endif + +#define CORK_HAVE_REALLOCF 0 +#define CORK_HAVE_PTHREADS 1 + + +#endif /* LIBCORK_CONFIG_LINUX_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/macosx.h b/shadowsocksr-libev/src/libcork/include/libcork/config/macosx.h new file mode 100644 index 00000000000..aa507556aa1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/macosx.h @@ -0,0 +1,34 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_MACOSX_H +#define LIBCORK_CONFIG_MACOSX_H + +/*----------------------------------------------------------------------- + * Endianness + */ + +#include + +#if BYTE_ORDER == BIG_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 1 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 0 +#elif BYTE_ORDER == LITTLE_ENDIAN +#define CORK_CONFIG_IS_BIG_ENDIAN 0 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 1 +#else +#error "Cannot determine system endianness" +#endif + +#define CORK_HAVE_REALLOCF 1 +#define CORK_HAVE_PTHREADS 1 + + +#endif /* LIBCORK_CONFIG_MACOSX_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/mingw32.h b/shadowsocksr-libev/src/libcork/include/libcork/config/mingw32.h new file mode 100644 index 00000000000..889822d6506 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/mingw32.h @@ -0,0 +1,54 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_MINGW32_H +#define LIBCORK_CONFIG_MINGW32_H + +#include + +/*----------------------------------------------------------------------- + * Endianness + */ + +/* Assume MinGW32 only works on x86 platform */ + +#define CORK_CONFIG_IS_BIG_ENDIAN 0 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 1 + +#define CORK_HAVE_REALLOCF 0 +#define CORK_HAVE_PTHREADS 1 + +/* + * File io stuff. Odd that this is not defined by MinGW. + * Maybe there is an M$ish way to do it. + */ +#define F_SETFL 4 +#define O_NONBLOCK 0x4000 /* non blocking I/O (POSIX style) */ + +#define F_GETFD 1 +#define F_SETFD 2 +#define FD_CLOEXEC 0x1 + +#define WNOHANG 1 + +/* + * simple adaptors + */ + +static inline int mingw_mkdir(const char *path, int mode) +{ + return mkdir(path); +} +#define mkdir mingw_mkdir + +#define S_ISLNK(x) 0 + + +#endif /* LIBCORK_CONFIG_MINGW32_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/solaris.h b/shadowsocksr-libev/src/libcork/include/libcork/config/solaris.h new file mode 100644 index 00000000000..6001b9a00b6 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/solaris.h @@ -0,0 +1,34 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_SOLARIS_H +#define LIBCORK_CONFIG_SOLARIS_H + +/*----------------------------------------------------------------------- + * Endianness + */ + +#include + +#if defined(_BIG_ENDIAN) +#define CORK_CONFIG_IS_BIG_ENDIAN 1 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 0 +#elif defined(_LITTLE_ENDIAN) +#define CORK_CONFIG_IS_BIG_ENDIAN 0 +#define CORK_CONFIG_IS_LITTLE_ENDIAN 1 +#else +#error "Cannot determine system endianness" +#endif + +#define CORK_HAVE_REALLOCF 0 +#define CORK_HAVE_PTHREADS 1 + + +#endif /* LIBCORK_CONFIG_SOLARIS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/config/version.h b/shadowsocksr-libev/src/libcork/include/libcork/config/version.h new file mode 100644 index 00000000000..3072377fa7e --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/config/version.h @@ -0,0 +1,25 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CONFIG_VERSION_H +#define LIBCORK_CONFIG_VERSION_H + + +/*----------------------------------------------------------------------- + * Library version + */ + +#define CORK_CONFIG_VERSION_MAJOR 0 +#define CORK_CONFIG_VERSION_MINOR 15 +#define CORK_CONFIG_VERSION_PATCH 0 +#define CORK_CONFIG_VERSION_STRING "0.15.0" +#define CORK_CONFIG_REVISION "d6ecc2cfbcdf5013038a72b4544f7d9e6eb8f92d" + + +#endif /* LIBCORK_CONFIG_VERSION_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core.h b/shadowsocksr-libev/src/libcork/include/libcork/core.h new file mode 100644 index 00000000000..083e18fcdb6 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core.h @@ -0,0 +1,29 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_H +#define LIBCORK_CORE_H + +/*** include all of the parts ***/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* LIBCORK_CORE_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/allocator.h b/shadowsocksr-libev/src/libcork/include/libcork/core/allocator.h new file mode 100644 index 00000000000..11fc0f028fb --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/allocator.h @@ -0,0 +1,409 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_ALLOCATOR_H +#define LIBCORK_CORE_ALLOCATOR_H + +#include +#include + +#include +#include +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Allocator interface + */ + +struct cork_alloc; + +typedef void * +(*cork_alloc_calloc_f)(const struct cork_alloc *alloc, + size_t count, size_t size); + +typedef void * +(*cork_alloc_malloc_f)(const struct cork_alloc *alloc, size_t size); + +/* Must not free `ptr` if allocation fails. */ +typedef void * +(*cork_alloc_realloc_f)(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size); + +typedef void +(*cork_alloc_free_f)(const struct cork_alloc *alloc, void *ptr, size_t size); + +struct cork_alloc { + const struct cork_alloc *parent; + void *user_data; + cork_free_f free_user_data; + cork_alloc_calloc_f calloc; + cork_alloc_malloc_f malloc; + cork_alloc_realloc_f realloc; + cork_alloc_calloc_f xcalloc; + cork_alloc_malloc_f xmalloc; + cork_alloc_realloc_f xrealloc; + cork_alloc_free_f free; +}; + +/* NOT thread-safe; must be called before most other libcork functions. + * Allocator will automatically be freed at process exit. */ +CORK_API struct cork_alloc * +cork_alloc_new_alloc(const struct cork_alloc *parent); + + +CORK_API void +cork_alloc_set_user_data(struct cork_alloc *alloc, + void *user_data, cork_free_f free_user_data); + +/* These variants must always return a valid pointer. If allocation fails, they + * should abort the process or transfer control in some other way to an error + * handler or cleanup routine. + * + * If you only provide implementations of the `x` variants, we'll provide + * default implementations of these that abort the process if a memory + * allocation fails. */ + +CORK_API void +cork_alloc_set_calloc(struct cork_alloc *alloc, cork_alloc_calloc_f calloc); + +CORK_API void +cork_alloc_set_malloc(struct cork_alloc *alloc, cork_alloc_malloc_f malloc); + +CORK_API void +cork_alloc_set_realloc(struct cork_alloc *alloc, cork_alloc_realloc_f realloc); + +/* These variants can return a NULL pointer if allocation fails. */ + +CORK_API void +cork_alloc_set_xcalloc(struct cork_alloc *alloc, cork_alloc_calloc_f xcalloc); + +CORK_API void +cork_alloc_set_xmalloc(struct cork_alloc *alloc, cork_alloc_malloc_f xmalloc); + +CORK_API void +cork_alloc_set_xrealloc(struct cork_alloc *alloc, + cork_alloc_realloc_f xrealloc); + + +CORK_API void +cork_alloc_set_free(struct cork_alloc *alloc, cork_alloc_free_f free); + + +/* Low-level use of an allocator. */ + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_calloc(const struct cork_alloc *alloc, size_t count, size_t size) +{ + return alloc->calloc(alloc, count, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_malloc(const struct cork_alloc *alloc, size_t size) +{ + return alloc->malloc(alloc, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_realloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + return alloc->realloc(alloc, ptr, old_size, new_size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_xcalloc(const struct cork_alloc *alloc, size_t count, size_t size) +{ + return alloc->xcalloc(alloc, count, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_xmalloc(const struct cork_alloc *alloc, size_t size) +{ + return alloc->xmalloc(alloc, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_xrealloc(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + return alloc->xrealloc(alloc, ptr, old_size, new_size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_alloc_xreallocf(const struct cork_alloc *alloc, void *ptr, + size_t old_size, size_t new_size) +{ + void *result = alloc->xrealloc(alloc, ptr, old_size, new_size); + if (result == NULL) { + alloc->free(alloc, ptr, old_size); + return NULL; + } else { + return result; + } +} + +CORK_ATTR_UNUSED +static void +cork_alloc_free(const struct cork_alloc *alloc, void *ptr, size_t size) +{ + return alloc->free(alloc, ptr, size); +} + +CORK_ATTR_UNUSED +static void +cork_alloc_cfree(const struct cork_alloc *alloc, void *ptr, + size_t count, size_t size) +{ + assert(count < (SIZE_MAX / size)); + return alloc->free(alloc, ptr, count * size); +} + +#define cork_alloc_new(alloc, type) \ + cork_alloc_malloc((alloc), sizeof(type)) +#define cork_alloc_xnew(alloc, type) \ + cork_alloc_xmalloc((alloc), sizeof(type)) +#define cork_alloc_delete(alloc, type, ptr) \ + cork_alloc_free((alloc), (ptr), sizeof(type)) + +/* string-related helper functions */ + +CORK_ATTR_MALLOC +CORK_API const char * +cork_alloc_strdup(const struct cork_alloc *alloc, const char *str); + +CORK_ATTR_MALLOC +CORK_API const char * +cork_alloc_strndup(const struct cork_alloc *alloc, + const char *str, size_t size); + +CORK_ATTR_MALLOC +CORK_API const char * +cork_alloc_xstrdup(const struct cork_alloc *alloc, const char *str); + +CORK_ATTR_MALLOC +CORK_API const char * +cork_alloc_xstrndup(const struct cork_alloc *alloc, + const char *str, size_t size); + +CORK_API void +cork_alloc_strfree(const struct cork_alloc *alloc, const char *str); + + +/*----------------------------------------------------------------------- + * Using the allocator interface + */ + +/* All of the functions that you use to actually allocate memory assume that + * cork_current_allocator() returns the allocator instance that should be used. + * Your easiest approach is to do nothing special; in that case, all of the + * libcork memory allocation functions will transparently use the standard + * malloc/free family of functions. + * + * If you're writing a library, and want to allow your library clients to + * provide a separate custom memory allocator then the one they can already + * override for libcork itself, you should declare a pair of functions for + * getting and setting your library's current allocator (like libcork itself + * does), and (only when compiling the source of your library) define + * `cork_current_allocator` as a macro that aliases the getter function. That + * will cause the libcork memory allocation functions to use whichever allocator + * your library user has provided. + * + * If you're writing an application, and want to provide a single allocator that + * all libcork-using libraries will pick up, just call cork_set_allocator before + * calling any other library functions. Other libraries will use this as a + * default and everything that uses libcork's memory allocation functions will + * use your custom allocator. */ + + +/* libcork's current allocator */ + +extern const struct cork_alloc *cork_allocator; + +/* We take control and will free when the process exits. This is *NOT* + * thread-safe; it's only safe to call before you've called *ANY* other libcork + * function (or any function from any other library that uses libcork). You can + * only call this at most once. */ +CORK_API void +cork_set_allocator(const struct cork_alloc *alloc); + + +/* The current allocator of whichever library is being compiled. */ + +#if !defined(cork_current_allocator) +#define cork_current_allocator() (cork_allocator) +#endif + + +/* using an allocator */ + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_calloc(size_t count, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_calloc(alloc, count, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_malloc(size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_malloc(alloc, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_realloc(void *ptr, size_t old_size, size_t new_size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_realloc(alloc, ptr, old_size, new_size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_xcalloc(size_t count, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xcalloc(alloc, count, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_xmalloc(size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xmalloc(alloc, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_xrealloc(void *ptr, size_t old_size, size_t new_size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xrealloc(alloc, ptr, old_size, new_size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static void * +cork_xreallocf(void *ptr, size_t old_size, size_t new_size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xreallocf(alloc, ptr, old_size, new_size); +} + +CORK_ATTR_UNUSED +static void +cork_free(void *ptr, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + cork_alloc_free(alloc, ptr, size); +} + +CORK_ATTR_UNUSED +static void +cork_cfree(void *ptr, size_t count, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + cork_alloc_cfree(alloc, ptr, count, size); +} + +#define cork_new(type) cork_malloc(sizeof(type)) +#define cork_xnew(type) cork_xmalloc(sizeof(type)) +#define cork_delete(type, ptr) cork_free((ptr), sizeof(type)) + + +/* string-related helper functions */ + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static const char * +cork_strdup(const char *str) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_strdup(alloc, str); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static const char * +cork_strndup(const char *str, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_strndup(alloc, str, size); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static const char * +cork_xstrdup(const char *str) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xstrdup(alloc, str); +} + +CORK_ATTR_MALLOC +CORK_ATTR_UNUSED +static const char * +cork_xstrndup(const char *str, size_t size) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_xstrndup(alloc, str, size); +} + +CORK_ATTR_UNUSED +static void +cork_strfree(const char *str) +{ + const struct cork_alloc *alloc = cork_current_allocator(); + return cork_alloc_strfree(alloc, str); +} + + +/*----------------------------------------------------------------------- + * Debugging allocator + */ + +/* An allocator that adds some additional debugging checks: + * + * - We verify that every "free" call (cork_free, cork_cfree, cork_delete, + * cork_realloc) is passed the "correct" size — i.e., the same size that was + * passed in to the correspond "new" call (cork_malloc, cork_calloc, + * cork_realloc, cork_new). + */ + +struct cork_alloc * +cork_debug_alloc_new(const struct cork_alloc *parent); + + +#endif /* LIBCORK_CORE_ALLOCATOR_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/api.h b/shadowsocksr-libev/src/libcork/include/libcork/core/api.h new file mode 100644 index 00000000000..0d3c36520f5 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/api.h @@ -0,0 +1,56 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_API_H +#define LIBCORK_CORE_API_H + +#include +#include + + +/*----------------------------------------------------------------------- + * Calling conventions + */ + +/* If you're using libcork as a shared library, you don't need to do anything + * special; the following will automatically set things up so that libcork's + * public symbols are imported from the library. When we build the shared + * library, we define this ourselves to export the symbols. */ + +#if !defined(CORK_API) +#define CORK_API CORK_IMPORT +#endif + + +/*----------------------------------------------------------------------- + * Library version + */ + +#define CORK_VERSION_MAJOR CORK_CONFIG_VERSION_MAJOR +#define CORK_VERSION_MINOR CORK_CONFIG_VERSION_MINOR +#define CORK_VERSION_PATCH CORK_CONFIG_VERSION_PATCH + +#define CORK_MAKE_VERSION(major, minor, patch) \ + ((major * 1000000) + (minor * 1000) + patch) + +#define CORK_VERSION \ + CORK_MAKE_VERSION(CORK_VERSION_MAJOR, \ + CORK_VERSION_MINOR, \ + CORK_VERSION_PATCH) + +CORK_API const char * +cork_version_string(void) + CORK_ATTR_CONST; + +CORK_API const char * +cork_revision_string(void) + CORK_ATTR_CONST; + + +#endif /* LIBCORK_CORE_API_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/attributes.h b/shadowsocksr-libev/src/libcork/include/libcork/core/attributes.h new file mode 100644 index 00000000000..609df563f1b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/attributes.h @@ -0,0 +1,172 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_ATTRIBUTES_H +#define LIBCORK_CORE_ATTRIBUTES_H + +#include + + +/* + * Declare a “const” function. + * + * A const function is one whose return value depends only on its + * parameters. This is slightly more strict than a “pure” function; a + * const function is not allowed to read from global variables, whereas + * a pure function is. + * + * int square(int x) CORK_ATTR_CONST; + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_CONST __attribute__((const)) +#else +#define CORK_ATTR_CONST +#endif + + +/* + * Declare a “pure” function. + * + * A pure function is one whose return value depends only on its + * parameters, and global variables. + * + * int square(int x) CORK_ATTR_PURE; + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_PURE __attribute__((pure)) +#else +#define CORK_ATTR_PURE +#endif + + +/* + * Declare that a function returns a newly allocated pointer. + * + * The compiler can use this information to generate more accurate + * aliasing information, since it can infer that the result of the + * function cannot alias any other existing pointer. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_MALLOC __attribute__((malloc)) +#else +#define CORK_ATTR_MALLOC +#endif + + +/* + * Declare that a function shouldn't be inlined. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_NOINLINE __attribute__((noinline)) +#else +#define CORK_ATTR_NOINLINE +#endif + + +/* + * Declare an entity that isn't used. + * + * This lets you keep -Wall activated in several cases where you're + * obligated to define something that you don't intend to use. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_UNUSED __attribute__((unused)) +#else +#define CORK_ATTR_UNUSED +#endif + + +/* + * Declare a function that takes in printf-like parameters. + * + * When the compiler supports this attribute, it will check the format + * string, and the following arguments, to make sure that they match. + * format_index and args_index are 1-based. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES && !(defined(__CYGWIN__)||defined(__MINGW32__)) +#define CORK_ATTR_PRINTF(format_index, args_index) \ + __attribute__((format(printf, format_index, args_index))) +#else +#define CORK_ATTR_PRINTF(format_index, args_index) +#endif + + +/* + * Declare a var-arg function whose last parameter must be a NULL + * sentinel value. + * + * When the compiler supports this attribute, it will check the actual + * parameters whenever this function is called, and ensure that the last + * parameter is a @c NULL. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_ATTR_SENTINEL __attribute__((sentinel)) +#else +#define CORK_ATTR_SENTINEL +#endif + + +/* + * Declare that a boolean expression is likely to be true or false. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_LIKELY(expr) __builtin_expect((expr), 1) +#define CORK_UNLIKELY(expr) __builtin_expect((expr), 0) +#else +#define CORK_LIKELY(expr) (expr) +#define CORK_UNLIKELY(expr) (expr) +#endif + +/* + * Declare that a function is part of the current library's public API, or that + * it's internal to the current library. + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES && !(defined(__CYGWIN__)||defined(__MINGW32__)) +#define CORK_EXPORT __attribute__((visibility("default"))) +#define CORK_IMPORT __attribute__((visibility("default"))) +#define CORK_LOCAL __attribute__((visibility("hidden"))) +#else +#define CORK_EXPORT +#define CORK_IMPORT +#define CORK_LOCAL +#endif + + +/* + * Declare a static function that should automatically be called at program + * startup. + */ + +/* TODO: When we implement a full Windows port, [1] describes how best to + * implement an initialization function under Visual Studio. + * + * [1] http://stackoverflow.com/questions/1113409/attribute-constructor-equivalent-in-vc + */ + +#if CORK_CONFIG_HAVE_GCC_ATTRIBUTES +#define CORK_INITIALIZER(name) \ +__attribute__((constructor)) \ +static void \ +name(void) +#else +#error "Don't know how to implement initialization functions of this platform" +#endif + + +#endif /* LIBCORK_CORE_ATTRIBUTES_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/byte-order.h b/shadowsocksr-libev/src/libcork/include/libcork/core/byte-order.h new file mode 100644 index 00000000000..6761faaf562 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/byte-order.h @@ -0,0 +1,186 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_BYTE_ORDER_H +#define LIBCORK_CORE_BYTE_ORDER_H + + +#include +#include + + +/* Constants to represent big endianness and little endianness */ +#define CORK_BIG_ENDIAN 4321 +#define CORK_LITTLE_ENDIAN 1234 + +/* Whether the current host is big- or little-endian. HOST gives us the + * current system's endianness; OTHER gives the opposite endianness. + * The _NAME macros can be used in debugging messages and other + * human-readable output. + * + * Note that we actually detect the endianness in the various header + * files in the libcork/config directory, since we want to keep + * everything detection-related separated out from what we define based + * on that detection. */ + +#if CORK_CONFIG_IS_BIG_ENDIAN +#define CORK_HOST_ENDIANNESS CORK_BIG_ENDIAN +#define CORK_OTHER_ENDIANNESS CORK_LITTLE_ENDIAN +#define CORK_HOST_ENDIANNESS_NAME "big" +#define CORK_OTHER_ENDIANNESS_NAME "little" + +#elif CORK_CONFIG_IS_LITTLE_ENDIAN +#define CORK_HOST_ENDIANNESS CORK_LITTLE_ENDIAN +#define CORK_OTHER_ENDIANNESS CORK_BIG_ENDIAN +#define CORK_HOST_ENDIANNESS_NAME "little" +#define CORK_OTHER_ENDIANNESS_NAME "big" + +#else +#error "Unknown endianness" +#endif + + +/* Returns the byte-swapped version an integer, regardless of the + * underlying endianness. + * + * These macros only require an rvalue as their parameter (which can + * therefore be any arbitrary expression), and they don't modify the + * original contents if it happens to be a variable. */ + +#define CORK_SWAP_UINT16(__u16) \ + (((((uint16_t) __u16) & 0xff00u) >> 8) | \ + ((((uint16_t) __u16) & 0x00ffu) << 8)) + +#define CORK_SWAP_UINT32(__u32) \ + (((((uint32_t) __u32) & 0xff000000u) >> 24) | \ + ((((uint32_t) __u32) & 0x00ff0000u) >> 8) | \ + ((((uint32_t) __u32) & 0x0000ff00u) << 8) | \ + ((((uint32_t) __u32) & 0x000000ffu) << 24)) + +#define CORK_SWAP_UINT64(__u64) \ + (((((uint64_t) __u64) & UINT64_C(0xff00000000000000)) >> 56) | \ + ((((uint64_t) __u64) & UINT64_C(0x00ff000000000000)) >> 40) | \ + ((((uint64_t) __u64) & UINT64_C(0x0000ff0000000000)) >> 24) | \ + ((((uint64_t) __u64) & UINT64_C(0x000000ff00000000)) >> 8) | \ + ((((uint64_t) __u64) & UINT64_C(0x00000000ff000000)) << 8) | \ + ((((uint64_t) __u64) & UINT64_C(0x0000000000ff0000)) << 24) | \ + ((((uint64_t) __u64) & UINT64_C(0x000000000000ff00)) << 40) | \ + ((((uint64_t) __u64) & UINT64_C(0x00000000000000ff)) << 56)) + +/* Bytes-swaps an integer variable in place. + * + * These macros require an lvalue as their parameter; the contents of + * this variable will be modified by the macro. */ + +#define CORK_SWAP_IN_PLACE_UINT16(__u16) \ + do { \ + (__u16) = CORK_SWAP_UINT16(__u16); \ + } while (0) + +#define CORK_SWAP_IN_PLACE_UINT32(__u32) \ + do { \ + (__u32) = CORK_SWAP_UINT32(__u32); \ + } while (0) + +#define CORK_SWAP_IN_PLACE_UINT64(__u64) \ + do { \ + (__u64) = CORK_SWAP_UINT64(__u64); \ + } while (0) + + +/* + * A slew of swapping macros whose operation depends on the endianness + * of the current system: + * + * uint16_t CORK_UINT16_BIG_TO_HOST(u16) + * uint32_t CORK_UINT32_BIG_TO_HOST(u32) + * uint64_t CORK_UINT64_BIG_TO_HOST(u64) + * uint16_t CORK_UINT16_LITTLE_TO_HOST(u16) + * uint32_t CORK_UINT32_LITTLE_TO_HOST(u32) + * uint64_t CORK_UINT64_LITTLE_TO_HOST(u64) + * void CORK_UINT16_BIG_TO_HOST_IN_PLACE(&u16) + * void CORK_UINT32_BIG_TO_HOST_IN_PLACE(&u32) + * void CORK_UINT64_BIG_TO_HOST_IN_PLACE(&u64) + * void CORK_UINT16_LITTLE_TO_HOST_IN_PLACE(&u16) + * void CORK_UINT32_LITTLE_TO_HOST_IN_PLACE(&u32) + * void CORK_UINT64_LITTLE_TO_HOST_IN_PLACE(&u64) + * + * uint16_t CORK_UINT16_HOST_TO_BIG(u16) + * uint32_t CORK_UINT32_HOST_TO_BIG(u32) + * uint64_t CORK_UINT64_HOST_TO_BIG(u64) + * uint16_t CORK_UINT16_HOST_TO_LITTLE(u16) + * uint32_t CORK_UINT32_HOST_TO_LITTLE(u32) + * uint64_t CORK_UINT64_HOST_TO_LITTLE(u64) + * void CORK_UINT16_HOST_TO_BIG_IN_PLACE(&u16) + * void CORK_UINT32_HOST_TO_BIG_IN_PLACE(&u32) + * void CORK_UINT64_HOST_TO_BIG_IN_PLACE(&u64) + * void CORK_UINT16_HOST_TO_LITTLE_IN_PLACE(&u16) + * void CORK_UINT32_HOST_TO_LITTLE_IN_PLACE(&u32) + * void CORK_UINT64_HOST_TO_LITTLE_IN_PLACE(&u64) + */ + +#if CORK_HOST_ENDIANNESS == CORK_BIG_ENDIAN + +#define CORK_UINT16_BIG_TO_HOST(__u16) (__u16) /* nothing to do */ +#define CORK_UINT16_LITTLE_TO_HOST(__u16) CORK_SWAP_UINT16(__u16) + +#define CORK_UINT32_BIG_TO_HOST(__u32) (__u32) /* nothing to do */ +#define CORK_UINT32_LITTLE_TO_HOST(__u32) CORK_SWAP_UINT32(__u32) + +#define CORK_UINT64_BIG_TO_HOST(__u64) (__u64) /* nothing to do */ +#define CORK_UINT64_LITTLE_TO_HOST(__u64) CORK_SWAP_UINT64(__u64) + +#define CORK_UINT16_BIG_TO_HOST_IN_PLACE(__u16) /* nothing to do */ +#define CORK_UINT16_LITTLE_TO_HOST_IN_PLACE(__u16) CORK_SWAP_IN_PLACE_UINT16(__u16) + +#define CORK_UINT32_BIG_TO_HOST_IN_PLACE(__u32) /* nothing to do */ +#define CORK_UINT32_LITTLE_TO_HOST_IN_PLACE(__u32) CORK_SWAP_IN_PLACE_UINT32(__u32) + +#define CORK_UINT64_BIG_TO_HOST_IN_PLACE(__u64) /* nothing to do */ +#define CORK_UINT64_LITTLE_TO_HOST_IN_PLACE(__u64) CORK_SWAP_IN_PLACE_UINT64(__u64) + +#elif CORK_HOST_ENDIANNESS == CORK_LITTLE_ENDIAN + +#define CORK_UINT16_BIG_TO_HOST(__u16) CORK_SWAP_UINT16(__u16) +#define CORK_UINT16_LITTLE_TO_HOST(__u16) (__u16) /* nothing to do */ + +#define CORK_UINT32_BIG_TO_HOST(__u32) CORK_SWAP_UINT32(__u32) +#define CORK_UINT32_LITTLE_TO_HOST(__u32) (__u32) /* nothing to do */ + +#define CORK_UINT64_BIG_TO_HOST(__u64) CORK_SWAP_UINT64(__u64) +#define CORK_UINT64_LITTLE_TO_HOST(__u64) (__u64) /* nothing to do */ + +#define CORK_UINT16_BIG_TO_HOST_IN_PLACE(__u16) CORK_SWAP_IN_PLACE_UINT16(__u16) +#define CORK_UINT16_LITTLE_TO_HOST_IN_PLACE(__u16) /* nothing to do */ + +#define CORK_UINT32_BIG_TO_HOST_IN_PLACE(__u32) CORK_SWAP_IN_PLACE_UINT32(__u32) +#define CORK_UINT32_LITTLE_TO_HOST_IN_PLACE(__u32) /* nothing to do */ + +#define CORK_UINT64_BIG_TO_HOST_IN_PLACE(__u64) CORK_SWAP_IN_PLACE_UINT64(__u64) +#define CORK_UINT64_LITTLE_TO_HOST_IN_PLACE(__u64) /* nothing to do */ + +#endif + + +#define CORK_UINT16_HOST_TO_BIG(__u16) CORK_UINT16_BIG_TO_HOST(__u16) +#define CORK_UINT32_HOST_TO_BIG(__u32) CORK_UINT32_BIG_TO_HOST(__u32) +#define CORK_UINT64_HOST_TO_BIG(__u64) CORK_UINT64_BIG_TO_HOST(__u64) +#define CORK_UINT16_HOST_TO_LITTLE(__u16) CORK_UINT16_LITTLE_TO_HOST(__u16) +#define CORK_UINT32_HOST_TO_LITTLE(__u32) CORK_UINT32_LITTLE_TO_HOST(__u32) +#define CORK_UINT64_HOST_TO_LITTLE(__u64) CORK_UINT64_LITTLE_TO_HOST(__u64) +#define CORK_UINT16_HOST_TO_BIG_IN_PLACE(__u16) CORK_UINT16_BIG_TO_HOST_IN_PLACE(__u16) +#define CORK_UINT32_HOST_TO_BIG_IN_PLACE(__u32) CORK_UINT32_BIG_TO_HOST_IN_PLACE(__u32) +#define CORK_UINT64_HOST_TO_BIG_IN_PLACE(__u64) CORK_UINT64_BIG_TO_HOST_IN_PLACE(__u64) +#define CORK_UINT16_HOST_TO_LITTLE_IN_PLACE(__u16) CORK_UINT16_LITTLE_TO_HOST_IN_PLACE(__u16) +#define CORK_UINT32_HOST_TO_LITTLE_IN_PLACE(__u32) CORK_UINT32_LITTLE_TO_HOST_IN_PLACE(__u32) +#define CORK_UINT64_HOST_TO_LITTLE_IN_PLACE(__u64) CORK_UINT64_LITTLE_TO_HOST_IN_PLACE(__u64) + + +#endif /* LIBCORK_CORE_BYTE_ORDER_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/callbacks.h b/shadowsocksr-libev/src/libcork/include/libcork/core/callbacks.h new file mode 100644 index 00000000000..a63365ffbc4 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/callbacks.h @@ -0,0 +1,46 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_CALLBACKS_H +#define LIBCORK_CORE_CALLBACKS_H + + +#include + + +typedef int +(*cork_copy_f)(void *user_data, void *dest, const void *src); + +typedef void +(*cork_done_f)(void *user_data, void *value); + +typedef void +(*cork_free_f)(void *value); + +typedef cork_hash +(*cork_hash_f)(void *user_data, const void *value); + +typedef bool +(*cork_equals_f)(void *user_data, const void *value1, const void *value2); + +typedef void +(*cork_init_f)(void *user_data, void *value); + +#define cork_free_user_data(parent) \ + ((parent)->free_user_data == NULL? (void) 0: \ + (parent)->free_user_data((parent)->user_data)) + +typedef void * +(*cork_new_f)(void *user_data); + +typedef int +(*cork_run_f)(void *user_data); + + +#endif /* LIBCORK_CORE_CALLBACKS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/error.h b/shadowsocksr-libev/src/libcork/include/libcork/core/error.h new file mode 100644 index 00000000000..67b731e970b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/error.h @@ -0,0 +1,139 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_ERROR_H +#define LIBCORK_CORE_ERROR_H + +#include +#include +#include +#include + +#include +#include +#include + + +/* Should be a hash of a string representing the error code. */ +typedef uint32_t cork_error; + +/* An error code that represents “no error”. */ +#define CORK_ERROR_NONE ((cork_error) 0) + +CORK_API bool +cork_error_occurred(void); + +CORK_API cork_error +cork_error_code(void); + +CORK_API const char * +cork_error_message(void); + + +CORK_API void +cork_error_clear(void); + +CORK_API void +cork_error_set_printf(cork_error code, const char *format, ...) + CORK_ATTR_PRINTF(2,3); + +CORK_API void +cork_error_set_string(cork_error code, const char *str); + +CORK_API void +cork_error_set_vprintf(cork_error code, const char *format, va_list args) + CORK_ATTR_PRINTF(2,0); + +CORK_API void +cork_error_prefix_printf(const char *format, ...) + CORK_ATTR_PRINTF(1,2); + +CORK_API void +cork_error_prefix_string(const char *str); + +CORK_API void +cork_error_prefix_vprintf(const char *format, va_list arg) + CORK_ATTR_PRINTF(1,0); + + +/* deprecated */ +CORK_API void +cork_error_set(uint32_t error_class, unsigned int error_code, + const char *format, ...) + CORK_ATTR_PRINTF(3,4); + +/* deprecated */ +CORK_API void +cork_error_prefix(const char *format, ...) + CORK_ATTR_PRINTF(1,2); + + +/*----------------------------------------------------------------------- + * Built-in errors + */ + +#define CORK_PARSE_ERROR 0x95dfd3c8 +#define CORK_REDEFINED 0x171629cb +#define CORK_UNDEFINED 0xedc3d7d9 +#define CORK_UNKNOWN_ERROR 0x8cb0880d + +#define cork_parse_error(...) \ + cork_error_set_printf(CORK_PARSE_ERROR, __VA_ARGS__) +#define cork_redefined(...) \ + cork_error_set_printf(CORK_REDEFINED, __VA_ARGS__) +#define cork_undefined(...) \ + cork_error_set_printf(CORK_UNDEFINED, __VA_ARGS__) + +CORK_API void +cork_system_error_set(void); + +CORK_API void +cork_system_error_set_explicit(int err); + +CORK_API void +cork_unknown_error_set_(const char *location); + +#define cork_unknown_error() \ + cork_unknown_error_set_(__func__) + + +/*----------------------------------------------------------------------- + * Abort on failure + */ + +#define cork_abort_(func, file, line, fmt, ...) \ + do { \ + fprintf(stderr, fmt "\n in %s (%s:%u)\n", \ + __VA_ARGS__, (func), (file), (unsigned int) (line)); \ + abort(); \ + } while (0) + +#define cork_abort(fmt, ...) \ + cork_abort_(__func__, __FILE__, __LINE__, fmt, __VA_ARGS__) + +CORK_ATTR_UNUSED +static void * +cork_abort_if_null_(void *ptr, const char *msg, const char *func, + const char *file, unsigned int line) +{ + if (CORK_UNLIKELY(ptr == NULL)) { + cork_abort_(func, file, line, "%s", msg); + } else { + return ptr; + } +} + +#define cork_abort_if_null(ptr, msg) \ + (cork_abort_if_null_(ptr, msg, __func__, __FILE__, __LINE__)) + +#define cork_unreachable() \ + cork_abort("%s", "Code should not be reachable") + + +#endif /* LIBCORK_CORE_ERROR_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/gc.h b/shadowsocksr-libev/src/libcork/include/libcork/core/gc.h new file mode 100644 index 00000000000..bc251ead18b --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/gc.h @@ -0,0 +1,67 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_GC_REFCOUNT_H +#define LIBCORK_GC_REFCOUNT_H + + +#include +#include + + +struct cork_gc; + +/* A callback for recursing through the children of a garbage-collected + * object. */ +typedef void +(*cork_gc_recurser)(struct cork_gc *gc, void *obj, void *ud); + +typedef void +(*cork_gc_free_func)(void *obj); + +typedef void +(*cork_gc_recurse_func)(struct cork_gc *gc, void *self, + cork_gc_recurser recurser, void *ud); + +/* An interface that each garbage-collected object must implement. */ +struct cork_gc_obj_iface { + /* Perform additional cleanup; does *NOT* need to deallocate the + * object itself, or release any child references */ + cork_gc_free_func free; + cork_gc_recurse_func recurse; +}; + + +CORK_API void +cork_gc_init(void); + +CORK_API void +cork_gc_done(void); + + +CORK_API void * +cork_gc_alloc(size_t instance_size, struct cork_gc_obj_iface *iface); + +#define cork_gc_new_iface(obj_type, iface) \ + ((obj_type *) \ + (cork_gc_alloc(sizeof(obj_type), (iface)))) + +#define cork_gc_new(struct_name) \ + (cork_gc_new_iface(struct struct_name, &struct_name##__gc)) + + +CORK_API void * +cork_gc_incref(void *obj); + +CORK_API void +cork_gc_decref(void *obj); + + +#endif /* LIBCORK_GC_REFCOUNT_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/hash.h b/shadowsocksr-libev/src/libcork/include/libcork/core/hash.h new file mode 100644 index 00000000000..824eb8285a1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/hash.h @@ -0,0 +1,356 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_HASH_H +#define LIBCORK_CORE_HASH_H + + +#include +#include +#include +#include +#include + + +#ifndef CORK_HASH_ATTRIBUTES +#define CORK_HASH_ATTRIBUTES CORK_ATTR_UNUSED static inline +#endif + + +typedef uint32_t cork_hash; + +typedef struct { + cork_u128 u128; +} cork_big_hash; + +#define cork_big_hash_equal(h1, h2) (cork_u128_eq((h1).u128, (h2).u128)) + +#define CORK_BIG_HASH_INIT() {{{{0}}}} + +/* We currently use MurmurHash3 [1], which is public domain, as our hash + * implementation. + * + * [1] http://code.google.com/p/smhasher/ + */ + +#define CORK_ROTL32(a,b) (((a) << ((b) & 0x1f)) | ((a) >> (32 - ((b) & 0x1f)))) +#define CORK_ROTL64(a,b) (((a) << ((b) & 0x3f)) | ((a) >> (64 - ((b) & 0x3f)))) + +CORK_ATTR_UNUSED +static inline +uint32_t cork_fmix32(uint32_t h) +{ + h ^= h >> 16; + h *= 0x85ebca6b; + h ^= h >> 13; + h *= 0xc2b2ae35; + h ^= h >> 16; + return h; +} + +CORK_ATTR_UNUSED +static inline +uint64_t cork_fmix64(uint64_t k) +{ + k ^= k >> 33; + k *= UINT64_C(0xff51afd7ed558ccd); + k ^= k >> 33; + k *= UINT64_C(0xc4ceb9fe1a85ec53); + k ^= k >> 33; + return k; +} + +CORK_HASH_ATTRIBUTES +cork_hash +cork_stable_hash_buffer(cork_hash seed, const void *src, size_t len) +{ + typedef uint32_t __attribute__((__may_alias__)) cork_aliased_uint32_t; + + /* This is exactly the same as cork_murmur_hash_x86_32, but with a byte swap + * to make sure that we always process the uint32s little-endian. */ + const unsigned int nblocks = len / 4; + const cork_aliased_uint32_t *blocks = (const cork_aliased_uint32_t *) src; + const cork_aliased_uint32_t *end = blocks + nblocks; + const cork_aliased_uint32_t *curr; + const uint8_t *tail = (const uint8_t *) end; + + uint32_t h1 = seed; + uint32_t c1 = 0xcc9e2d51; + uint32_t c2 = 0x1b873593; + uint32_t k1 = 0; + + /* body */ + for (curr = blocks; curr != end; curr++) { + uint32_t k1 = CORK_UINT32_HOST_TO_LITTLE(*curr); + + k1 *= c1; + k1 = CORK_ROTL32(k1,15); + k1 *= c2; + + h1 ^= k1; + h1 = CORK_ROTL32(h1,13); + h1 = h1*5+0xe6546b64; + } + + /* tail */ + switch (len & 3) { + case 3: k1 ^= tail[2] << 16; + case 2: k1 ^= tail[1] << 8; + case 1: k1 ^= tail[0]; + k1 *= c1; k1 = CORK_ROTL32(k1,15); k1 *= c2; h1 ^= k1; + }; + + /* finalization */ + h1 ^= len; + h1 = cork_fmix32(h1); + return h1; +} + +#define cork_murmur_hash_x86_32(seed, src, len, dest) \ +do { \ + typedef uint32_t __attribute__((__may_alias__)) cork_aliased_uint32_t; \ + \ + const unsigned int nblocks = len / 4; \ + const cork_aliased_uint32_t *blocks = (const cork_aliased_uint32_t *) src; \ + const cork_aliased_uint32_t *end = blocks + nblocks; \ + const cork_aliased_uint32_t *curr; \ + const uint8_t *tail = (const uint8_t *) end; \ + \ + uint32_t h1 = seed; \ + uint32_t c1 = 0xcc9e2d51; \ + uint32_t c2 = 0x1b873593; \ + uint32_t k1 = 0; \ + \ + /* body */ \ + for (curr = blocks; curr != end; curr++) { \ + uint32_t k1 = *curr; \ + \ + k1 *= c1; \ + k1 = CORK_ROTL32(k1,15); \ + k1 *= c2; \ + \ + h1 ^= k1; \ + h1 = CORK_ROTL32(h1,13); \ + h1 = h1*5+0xe6546b64; \ + } \ + \ + /* tail */ \ + switch (len & 3) { \ + case 3: k1 ^= tail[2] << 16; \ + case 2: k1 ^= tail[1] << 8; \ + case 1: k1 ^= tail[0]; \ + k1 *= c1; k1 = CORK_ROTL32(k1,15); k1 *= c2; h1 ^= k1; \ + }; \ + \ + /* finalization */ \ + h1 ^= len; \ + h1 = cork_fmix32(h1); \ + *(dest) = h1; \ +} while (0) + +#define cork_murmur_hash_x86_128(seed, src, len, dest) \ +do { \ + typedef uint32_t __attribute__((__may_alias__)) cork_aliased_uint32_t; \ + \ + const unsigned int nblocks = len / 16; \ + const cork_aliased_uint32_t *blocks = (const cork_aliased_uint32_t *) src; \ + const cork_aliased_uint32_t *end = blocks + (nblocks * 4); \ + const cork_aliased_uint32_t *curr; \ + const uint8_t *tail = (const uint8_t *) end; \ + \ + uint32_t h1 = cork_u128_be32(seed.u128, 0); \ + uint32_t h2 = cork_u128_be32(seed.u128, 1); \ + uint32_t h3 = cork_u128_be32(seed.u128, 2); \ + uint32_t h4 = cork_u128_be32(seed.u128, 3); \ + \ + uint32_t c1 = 0x239b961b; \ + uint32_t c2 = 0xab0e9789; \ + uint32_t c3 = 0x38b34ae5; \ + uint32_t c4 = 0xa1e38b93; \ + \ + uint32_t k1 = 0; \ + uint32_t k2 = 0; \ + uint32_t k3 = 0; \ + uint32_t k4 = 0; \ + \ + /* body */ \ + for (curr = blocks; curr != end; curr += 4) { \ + uint32_t k1 = curr[0]; \ + uint32_t k2 = curr[1]; \ + uint32_t k3 = curr[2]; \ + uint32_t k4 = curr[3]; \ + \ + k1 *= c1; k1 = CORK_ROTL32(k1,15); k1 *= c2; h1 ^= k1; \ + h1 = CORK_ROTL32(h1,19); h1 += h2; h1 = h1*5+0x561ccd1b; \ + \ + k2 *= c2; k2 = CORK_ROTL32(k2,16); k2 *= c3; h2 ^= k2; \ + h2 = CORK_ROTL32(h2,17); h2 += h3; h2 = h2*5+0x0bcaa747; \ + \ + k3 *= c3; k3 = CORK_ROTL32(k3,17); k3 *= c4; h3 ^= k3; \ + h3 = CORK_ROTL32(h3,15); h3 += h4; h3 = h3*5+0x96cd1c35; \ + \ + k4 *= c4; k4 = CORK_ROTL32(k4,18); k4 *= c1; h4 ^= k4; \ + h4 = CORK_ROTL32(h4,13); h4 += h1; h4 = h4*5+0x32ac3b17; \ + } \ + \ + /* tail */ \ + switch (len & 15) { \ + case 15: k4 ^= tail[14] << 16; \ + case 14: k4 ^= tail[13] << 8; \ + case 13: k4 ^= tail[12] << 0; \ + k4 *= c4; k4 = CORK_ROTL32(k4,18); k4 *= c1; h4 ^= k4; \ + \ + case 12: k3 ^= tail[11] << 24; \ + case 11: k3 ^= tail[10] << 16; \ + case 10: k3 ^= tail[ 9] << 8; \ + case 9: k3 ^= tail[ 8] << 0; \ + k3 *= c3; k3 = CORK_ROTL32(k3,17); k3 *= c4; h3 ^= k3; \ + \ + case 8: k2 ^= tail[ 7] << 24; \ + case 7: k2 ^= tail[ 6] << 16; \ + case 6: k2 ^= tail[ 5] << 8; \ + case 5: k2 ^= tail[ 4] << 0; \ + k2 *= c2; k2 = CORK_ROTL32(k2,16); k2 *= c3; h2 ^= k2; \ + \ + case 4: k1 ^= tail[ 3] << 24; \ + case 3: k1 ^= tail[ 2] << 16; \ + case 2: k1 ^= tail[ 1] << 8; \ + case 1: k1 ^= tail[ 0] << 0; \ + k1 *= c1; k1 = CORK_ROTL32(k1,15); k1 *= c2; h1 ^= k1; \ + }; \ + \ + /* finalization */ \ + \ + h1 ^= len; h2 ^= len; h3 ^= len; h4 ^= len; \ + \ + h1 += h2; h1 += h3; h1 += h4; \ + h2 += h1; h3 += h1; h4 += h1; \ + \ + h1 = cork_fmix32(h1); \ + h2 = cork_fmix32(h2); \ + h3 = cork_fmix32(h3); \ + h4 = cork_fmix32(h4); \ + \ + h1 += h2; h1 += h3; h1 += h4; \ + h2 += h1; h3 += h1; h4 += h1; \ + \ + (dest)->u128 = cork_u128_from_32(h1, h2, h3, h4); \ +} while (0) + +#define cork_murmur_hash_x64_128(seed, src, len, dest) \ +do { \ + typedef uint64_t __attribute__((__may_alias__)) cork_aliased_uint64_t; \ + \ + const unsigned int nblocks = len / 16; \ + const cork_aliased_uint64_t *blocks = (const cork_aliased_uint64_t *) src; \ + const cork_aliased_uint64_t *end = blocks + (nblocks * 2); \ + const cork_aliased_uint64_t *curr; \ + const uint8_t *tail = (const uint8_t *) end; \ + \ + uint64_t h1 = cork_u128_be64(seed.u128, 0); \ + uint64_t h2 = cork_u128_be64(seed.u128, 1); \ + \ + uint64_t c1 = UINT64_C(0x87c37b91114253d5); \ + uint64_t c2 = UINT64_C(0x4cf5ad432745937f); \ + \ + uint64_t k1 = 0; \ + uint64_t k2 = 0; \ + \ + /* body */ \ + for (curr = blocks; curr != end; curr += 2) { \ + uint64_t k1 = curr[0]; \ + uint64_t k2 = curr[1]; \ + \ + k1 *= c1; k1 = CORK_ROTL64(k1,31); k1 *= c2; h1 ^= k1; \ + h1 = CORK_ROTL64(h1,27); h1 += h2; h1 = h1*5+0x52dce729; \ + \ + k2 *= c2; k2 = CORK_ROTL64(k2,33); k2 *= c1; h2 ^= k2; \ + h2 = CORK_ROTL64(h2,31); h2 += h1; h2 = h2*5+0x38495ab5; \ + } \ + \ + /* tail */ \ + switch (len & 15) { \ + case 15: k2 ^= (uint64_t) (tail[14]) << 48; \ + case 14: k2 ^= (uint64_t) (tail[13]) << 40; \ + case 13: k2 ^= (uint64_t) (tail[12]) << 32; \ + case 12: k2 ^= (uint64_t) (tail[11]) << 24; \ + case 11: k2 ^= (uint64_t) (tail[10]) << 16; \ + case 10: k2 ^= (uint64_t) (tail[ 9]) << 8; \ + case 9: k2 ^= (uint64_t) (tail[ 8]) << 0; \ + k2 *= c2; k2 = CORK_ROTL64(k2,33); k2 *= c1; h2 ^= k2; \ + \ + case 8: k1 ^= (uint64_t) (tail[ 7]) << 56; \ + case 7: k1 ^= (uint64_t) (tail[ 6]) << 48; \ + case 6: k1 ^= (uint64_t) (tail[ 5]) << 40; \ + case 5: k1 ^= (uint64_t) (tail[ 4]) << 32; \ + case 4: k1 ^= (uint64_t) (tail[ 3]) << 24; \ + case 3: k1 ^= (uint64_t) (tail[ 2]) << 16; \ + case 2: k1 ^= (uint64_t) (tail[ 1]) << 8; \ + case 1: k1 ^= (uint64_t) (tail[ 0]) << 0; \ + k1 *= c1; k1 = CORK_ROTL64(k1,31); k1 *= c2; h1 ^= k1; \ + }; \ + \ + /* finalization */ \ + \ + h1 ^= len; h2 ^= len; \ + \ + h1 += h2; \ + h2 += h1; \ + \ + h1 = cork_fmix64(h1); \ + h2 = cork_fmix64(h2); \ + \ + h1 += h2; \ + h2 += h1; \ + \ + (dest)->u128 = cork_u128_from_64(h1, h2); \ +} while (0) + + +#include +CORK_HASH_ATTRIBUTES +cork_hash +cork_hash_buffer(cork_hash seed, const void *src, size_t len) +{ +#if CORK_SIZEOF_POINTER == 8 + cork_big_hash big_seed = {cork_u128_from_32(seed, seed, seed, seed)}; + cork_big_hash hash; + cork_murmur_hash_x64_128(big_seed, src, len, &hash); + return cork_u128_be32(hash.u128, 0); +#else + cork_hash hash = 0; + cork_murmur_hash_x86_32(seed, src, len, &hash); + return hash; +#endif +} + + +CORK_HASH_ATTRIBUTES +cork_big_hash +cork_big_hash_buffer(cork_big_hash seed, const void *src, size_t len) +{ + cork_big_hash result; +#if CORK_SIZEOF_POINTER == 8 + cork_murmur_hash_x64_128(seed, src, len, &result); +#else + cork_murmur_hash_x86_128(seed, src, len, &result); +#endif + return result; +} + + +#define cork_hash_variable(seed, val) \ + (cork_hash_buffer((seed), &(val), sizeof((val)))) +#define cork_stable_hash_variable(seed, val) \ + (cork_stable_hash_buffer((seed), &(val), sizeof((val)))) +#define cork_big_hash_variable(seed, val) \ + (cork_big_hash_buffer((seed), &(val), sizeof((val)))) + + +#endif /* LIBCORK_CORE_HASH_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/id.h b/shadowsocksr-libev/src/libcork/include/libcork/core/id.h new file mode 100644 index 00000000000..3e94179aee9 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/id.h @@ -0,0 +1,35 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_ID_H +#define LIBCORK_CORE_ID_H + +#include + + +struct cork_uid { + const char *name; +}; + +typedef const struct cork_uid *cork_uid; + +#define CORK_UID_NONE ((cork_uid) NULL) + +#define cork_uid_define_named(c_name, name) \ + static const struct cork_uid c_name##__id = { name }; \ + static cork_uid c_name = &c_name##__id; +#define cork_uid_define(c_name) \ + cork_uid_define_named(c_name, #c_name) + +#define cork_uid_equal(id1, id2) ((id1) == (id2)) +#define cork_uid_hash(id) ((cork_hash) (uintptr_t) (id)) +#define cork_uid_name(id) ((id)->name) + + +#endif /* LIBCORK_CORE_ID_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/mempool.h b/shadowsocksr-libev/src/libcork/include/libcork/core/mempool.h new file mode 100644 index 00000000000..43a73c6c147 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/mempool.h @@ -0,0 +1,71 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORK_MEMPOOL_H +#define LIBCORK_CORK_MEMPOOL_H + + +#include +#include +#include +#include +#include + + +#define CORK_MEMPOOL_DEFAULT_BLOCK_SIZE 4096 + + +struct cork_mempool; + + +CORK_API struct cork_mempool * +cork_mempool_new_size_ex(size_t element_size, size_t block_size); + +#define cork_mempool_new_size(element_size) \ + (cork_mempool_new_size_ex \ + ((element_size), CORK_MEMPOOL_DEFAULT_BLOCK_SIZE)) + +#define cork_mempool_new_ex(type, block_size) \ + (cork_mempool_new_size_ex(sizeof(type), (block_size))) + +#define cork_mempool_new(type) \ + (cork_mempool_new_size(sizeof(type))) + +CORK_API void +cork_mempool_free(struct cork_mempool *mp); + + +CORK_API void +cork_mempool_set_user_data(struct cork_mempool *mp, + void *user_data, cork_free_f free_user_data); + +CORK_API void +cork_mempool_set_init_object(struct cork_mempool *mp, cork_init_f init_object); + +CORK_API void +cork_mempool_set_done_object(struct cork_mempool *mp, cork_done_f done_object); + +/* Deprecated; you should now use separate calls to cork_mempool_set_user_data, + * cork_mempool_set_init_object, and cork_mempool_set_done_object. */ +CORK_API void +cork_mempool_set_callbacks(struct cork_mempool *mp, + void *user_data, cork_free_f free_user_data, + cork_init_f init_object, + cork_done_f done_object); + + +CORK_API void * +cork_mempool_new_object(struct cork_mempool *mp); + + +CORK_API void +cork_mempool_free_object(struct cork_mempool *mp, void *ptr); + + +#endif /* LIBCORK_CORK_MEMPOOL_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/net-addresses.h b/shadowsocksr-libev/src/libcork/include/libcork/core/net-addresses.h new file mode 100644 index 00000000000..5de73b240e2 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/net-addresses.h @@ -0,0 +1,147 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_NET_ADDRESSES_H +#define LIBCORK_CORE_NET_ADDRESSES_H + + +#include + +#include +#include +#include + + +/*----------------------------------------------------------------------- + * IP addresses + */ + +struct cork_ipv4 { + union { + uint8_t u8[4]; + uint16_t u16[2]; + uint32_t u32; + } _; +}; + +struct cork_ipv6 { + union { + uint8_t u8[16]; + uint16_t u16[8]; + uint32_t u32[4]; + uint64_t u64[2]; + } _; +}; + +struct cork_ip { + /* Which version of IP address this is. */ + unsigned int version; + union { + struct cork_ipv4 v4; + struct cork_ipv6 v6; + } ip; +}; + + +#define CORK_IPV4_STRING_LENGTH (sizeof "xxx.xxx.xxx.xxx") +#define CORK_IPV6_STRING_LENGTH \ + (sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") +#define CORK_IP_STRING_LENGTH CORK_IPV6_STRING_LENGTH + + +/*** IPv4 ***/ + +/* src must be well-formed: 4 bytes, big-endian */ +#define cork_ipv4_copy(addr, src) \ + (memcpy((addr), (src), sizeof(struct cork_ipv4))) + +#define cork_ipv4_equal(a1, a2) \ + ((a1)->_.u32 == (a2)->_.u32) + +CORK_API int +cork_ipv4_init(struct cork_ipv4 *addr, const char *str); + +CORK_API bool +cork_ipv4_equal_(const struct cork_ipv4 *addr1, const struct cork_ipv4 *addr2); + +CORK_API void +cork_ipv4_to_raw_string(const struct cork_ipv4 *addr, char *dest); + +CORK_API bool +cork_ipv4_is_valid_network(const struct cork_ipv4 *addr, + unsigned int cidr_prefix); + + +/*** IPv6 ***/ + +/* src must be well-formed: 16 bytes, big-endian */ +#define cork_ipv6_copy(addr, src) \ + (memcpy((addr), (src), sizeof(struct cork_ipv6))) + +#define cork_ipv6_equal(a1, a2) \ + ((a1)->_.u64[0] == (a2)->_.u64[0] && \ + (a1)->_.u64[1] == (a2)->_.u64[1]) + +CORK_API int +cork_ipv6_init(struct cork_ipv6 *addr, const char *str); + +CORK_API bool +cork_ipv6_equal_(const struct cork_ipv6 *addr1, const struct cork_ipv6 *addr2); + +CORK_API void +cork_ipv6_to_raw_string(const struct cork_ipv6 *addr, char *dest); + +CORK_API bool +cork_ipv6_is_valid_network(const struct cork_ipv6 *addr, + unsigned int cidr_prefix); + + +/*** Generic IP ***/ + +#define cork_ip_equal(a1, a2) \ + ((a1)->version == 4? \ + ((a2)->version == 4 && cork_ipv4_equal(&(a1)->ip.v4, &(a2)->ip.v4)): \ + ((a2)->version == 6 && cork_ipv6_equal(&(a1)->ip.v6, &(a2)->ip.v6))) + +/* src must be well-formed: 4 bytes, big-endian */ +#define cork_ip_from_ipv4(addr, src) \ + do { \ + (addr)->version = 4; \ + cork_ipv4_copy(&(addr)->ip.v4, (src)); \ + } while (0) + +/* src must be well-formed: 16 bytes, big-endian */ +#define cork_ip_from_ipv6(addr, src) \ + do { \ + (addr)->version = 6; \ + cork_ipv6_copy(&(addr)->ip.v6, (src)); \ + } while (0) + +/* src must be well-formed: 4 bytes, big-endian */ +CORK_API void +cork_ip_from_ipv4_(struct cork_ip *addr, const void *src); + +/* src must be well-formed: 16 bytes, big-endian */ +CORK_API void +cork_ip_from_ipv6_(struct cork_ip *addr, const void *src); + +CORK_API int +cork_ip_init(struct cork_ip *addr, const char *str); + +CORK_API bool +cork_ip_equal_(const struct cork_ip *addr1, const struct cork_ip *addr2); + +CORK_API void +cork_ip_to_raw_string(const struct cork_ip *addr, char *dest); + +CORK_API bool +cork_ip_is_valid_network(const struct cork_ip *addr, unsigned int cidr_prefix); + + +#endif /* LIBCORK_CORE_NET_ADDRESSES_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/timestamp.h b/shadowsocksr-libev/src/libcork/include/libcork/core/timestamp.h new file mode 100644 index 00000000000..4eba7b14755 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/timestamp.h @@ -0,0 +1,87 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_TIMESTAMP_H +#define LIBCORK_CORE_TIMESTAMP_H + + +#include +#include +#include +#include + + +typedef uint64_t cork_timestamp; + + +#define cork_timestamp_init_sec(ts, sec) \ + do { \ + *(ts) = (((uint64_t) (sec)) << 32); \ + } while (0) + +#define cork_timestamp_init_gsec(ts, sec, gsec) \ + do { \ + *(ts) = (((uint64_t) (sec)) << 32) | \ + (((uint64_t) (gsec)) & 0xffffffff); \ + } while (0) + +#define cork_timestamp_init_msec(ts, sec, msec) \ + do { \ + *(ts) = (((uint64_t) (sec)) << 32) | \ + ((((uint64_t) (msec)) << 32) / 1000); \ + } while (0) + +#define cork_timestamp_init_usec(ts, sec, usec) \ + do { \ + *(ts) = (((uint64_t) (sec)) << 32) | \ + ((((uint64_t) (usec)) << 32) / 1000000); \ + } while (0) + +#define cork_timestamp_init_nsec(ts, sec, nsec) \ + do { \ + *(ts) = (((uint64_t) (sec)) << 32) | \ + ((((uint64_t) (nsec)) << 32) / 1000000000); \ + } while (0) + + +CORK_API void +cork_timestamp_init_now(cork_timestamp *ts); + + +#define cork_timestamp_sec(ts) ((uint32_t) ((ts) >> 32)) +#define cork_timestamp_gsec(ts) ((uint32_t) ((ts) & 0xffffffff)) + +CORK_ATTR_UNUSED +static inline uint64_t +cork_timestamp_gsec_to_units(const cork_timestamp ts, uint64_t denom) +{ + uint64_t half = ((uint64_t) 1 << 31) / denom; + uint64_t gsec = cork_timestamp_gsec(ts); + gsec += half; + gsec *= denom; + gsec >>= 32; + return gsec; +} + +#define cork_timestamp_msec(ts) cork_timestamp_gsec_to_units(ts, 1000) +#define cork_timestamp_usec(ts) cork_timestamp_gsec_to_units(ts, 1000000) +#define cork_timestamp_nsec(ts) cork_timestamp_gsec_to_units(ts, 1000000000) + + +CORK_API int +cork_timestamp_format_utc(const cork_timestamp ts, const char *format, + struct cork_buffer *dest); + +CORK_API int +cork_timestamp_format_local(const cork_timestamp ts, const char *format, + struct cork_buffer *dest); + + +#endif /* LIBCORK_CORE_TIMESTAMP_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/types.h b/shadowsocksr-libev/src/libcork/include/libcork/core/types.h new file mode 100644 index 00000000000..f469bedac83 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/types.h @@ -0,0 +1,82 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_TYPES_H +#define LIBCORK_CORE_TYPES_H + +/* For now, we assume that the C99 integer types are available using the + * standard headers. */ + +#include +#include +#include +#include +#include + + +/* Define preprocessor macros that contain the size of several built-in + * types. Again, we assume that we have the C99 definitions available. */ + +#if SHRT_MAX == INT8_MAX +#define CORK_SIZEOF_SHORT 1 +#elif SHRT_MAX == INT16_MAX +#define CORK_SIZEOF_SHORT 2 +#elif SHRT_MAX == INT32_MAX +#define CORK_SIZEOF_SHORT 4 +#elif SHRT_MAX == INT64_MAX +#define CORK_SIZEOF_SHORT 8 +#else +#error "Cannot determine size of short" +#endif + +#if INT_MAX == INT8_MAX +#define CORK_SIZEOF_INT 1 +#elif INT_MAX == INT16_MAX +#define CORK_SIZEOF_INT 2 +#elif INT_MAX == INT32_MAX +#define CORK_SIZEOF_INT 4 +#elif INT_MAX == INT64_MAX +#define CORK_SIZEOF_INT 8 +#else +#error "Cannot determine size of int" +#endif + +#if LONG_MAX == INT8_MAX +#define CORK_SIZEOF_LONG 1 +#elif LONG_MAX == INT16_MAX +#define CORK_SIZEOF_LONG 2 +#elif LONG_MAX == INT32_MAX +#define CORK_SIZEOF_LONG 4 +#elif LONG_MAX == INT64_MAX +#define CORK_SIZEOF_LONG 8 +#else +#error "Cannot determine size of long" +#endif + +#if INTPTR_MAX == INT8_MAX +#define CORK_SIZEOF_POINTER 1 +#elif INTPTR_MAX == INT16_MAX +#define CORK_SIZEOF_POINTER 2 +#elif INTPTR_MAX == INT32_MAX +#define CORK_SIZEOF_POINTER 4 +#elif INTPTR_MAX == INT64_MAX +#define CORK_SIZEOF_POINTER 8 +#else +#error "Cannot determine size of void *" +#endif + + +/* Return a pointer to a @c struct, given a pointer to one of its + * fields. */ +#define cork_container_of(field, struct_type, field_name) \ + ((struct_type *) (- offsetof(struct_type, field_name) + \ + (void *) (field))) + +#endif /* LIBCORK_CORE_TYPES_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/core/u128.h b/shadowsocksr-libev/src/libcork/include/libcork/core/u128.h new file mode 100644 index 00000000000..692f096d0ad --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/core/u128.h @@ -0,0 +1,223 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_U128_H +#define LIBCORK_CORE_U128_H + + +#include +#include +#include +#include + +typedef struct { + union { + uint8_t u8[16]; + uint16_t u16[8]; + uint32_t u32[4]; + uint64_t u64[2]; +#if CORK_HOST_ENDIANNESS == CORK_BIG_ENDIAN + struct { uint64_t hi; uint64_t lo; } be64; +#else + struct { uint64_t lo; uint64_t hi; } be64; +#endif +#if CORK_CONFIG_HAVE_GCC_INT128 +#define CORK_U128_HAVE_U128 1 + unsigned __int128 u128; +#elif CORK_CONFIG_HAVE_GCC_MODE_ATTRIBUTE +#define CORK_U128_HAVE_U128 1 + unsigned int u128 __attribute__((mode(TI))); +#else +#define CORK_U128_HAVE_U128 0 +#endif + } _; +} cork_u128; + + +/* i0-3 are given in big-endian order, regardless of host endianness */ +CORK_ATTR_UNUSED +static cork_u128 +cork_u128_from_32(uint32_t i0, uint32_t i1, uint32_t i2, uint32_t i3) +{ + cork_u128 value; +#if CORK_HOST_ENDIANNESS == CORK_BIG_ENDIAN + value._.u32[0] = i0; + value._.u32[1] = i1; + value._.u32[2] = i2; + value._.u32[3] = i3; +#else + value._.u32[3] = i0; + value._.u32[2] = i1; + value._.u32[1] = i2; + value._.u32[0] = i3; +#endif + return value; +} + +/* i0-1 are given in big-endian order, regardless of host endianness */ +CORK_ATTR_UNUSED +static cork_u128 +cork_u128_from_64(uint64_t i0, uint64_t i1) +{ + cork_u128 value; +#if CORK_HOST_ENDIANNESS == CORK_BIG_ENDIAN + value._.u64[0] = i0; + value._.u64[1] = i1; +#else + value._.u64[1] = i0; + value._.u64[0] = i1; +#endif + return value; +} + + +#if CORK_HOST_ENDIANNESS == CORK_BIG_ENDIAN +#define cork_u128_be8(val, idx) ((val)._.u8[(idx)]) +#define cork_u128_be16(val, idx) ((val)._.u16[(idx)]) +#define cork_u128_be32(val, idx) ((val)._.u32[(idx)]) +#define cork_u128_be64(val, idx) ((val)._.u64[(idx)]) +#else +#define cork_u128_be8(val, idx) ((val)._.u8[15 - (idx)]) +#define cork_u128_be16(val, idx) ((val)._.u16[7 - (idx)]) +#define cork_u128_be32(val, idx) ((val)._.u32[3 - (idx)]) +#define cork_u128_be64(val, idx) ((val)._.u64[1 - (idx)]) +#endif + + +CORK_ATTR_UNUSED +static cork_u128 +cork_u128_add(cork_u128 a, cork_u128 b) +{ + cork_u128 result; +#if CORK_U128_HAVE_U128 + result._.u128 = a._.u128 + b._.u128; +#else + result._.be64.lo = a._.be64.lo + b._.be64.lo; + result._.be64.hi = + a._.be64.hi + b._.be64.hi + (result._.be64.lo < a._.be64.lo); +#endif + return result; +} + +CORK_ATTR_UNUSED +static cork_u128 +cork_u128_sub(cork_u128 a, cork_u128 b) +{ + cork_u128 result; +#if CORK_U128_HAVE_U128 + result._.u128 = a._.u128 - b._.u128; +#else + result._.be64.lo = a._.be64.lo - b._.be64.lo; + result._.be64.hi = + a._.be64.hi - b._.be64.hi - (result._.be64.lo > a._.be64.lo); +#endif + return result; +} + + +CORK_ATTR_UNUSED +static bool +cork_u128_eq(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 == b._.u128); +#else + return (a._.be64.hi == b._.be64.hi) && (a._.be64.lo == b._.be64.lo); +#endif +} + +CORK_ATTR_UNUSED +static bool +cork_u128_ne(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 != b._.u128); +#else + return (a._.be64.hi != b._.be64.hi) || (a._.be64.lo != b._.be64.lo); +#endif +} + +CORK_ATTR_UNUSED +static bool +cork_u128_lt(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 < b._.u128); +#else + if (a._.be64.hi == b._.be64.hi) { + return a._.be64.lo < b._.be64.lo; + } else { + return a._.be64.hi < b._.be64.hi; + } +#endif +} + +CORK_ATTR_UNUSED +static bool +cork_u128_le(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 <= b._.u128); +#else + if (a._.be64.hi == b._.be64.hi) { + return a._.be64.lo <= b._.be64.lo; + } else { + return a._.be64.hi <= b._.be64.hi; + } +#endif +} + +CORK_ATTR_UNUSED +static bool +cork_u128_gt(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 > b._.u128); +#else + if (a._.be64.hi == b._.be64.hi) { + return a._.be64.lo > b._.be64.lo; + } else { + return a._.be64.hi > b._.be64.hi; + } +#endif +} + +CORK_ATTR_UNUSED +static bool +cork_u128_ge(cork_u128 a, cork_u128 b) +{ +#if CORK_U128_HAVE_U128 + return (a._.u128 >= b._.u128); +#else + if (a._.be64.hi == b._.be64.hi) { + return a._.be64.lo >= b._.be64.lo; + } else { + return a._.be64.hi >= b._.be64.hi; + } +#endif +} + + +/* log10(x) = log2(x) / log2(10) ~= log2(x) / 3.322 */ +#define CORK_U128_DECIMAL_LENGTH 44 /* ~= 128 / 3 + 1 + 1 */ + +CORK_API const char * +cork_u128_to_decimal(char *buf, cork_u128 val); + + +#define CORK_U128_HEX_LENGTH 33 + +CORK_API const char * +cork_u128_to_hex(char *buf, cork_u128 val); + +CORK_API const char * +cork_u128_to_padded_hex(char *buf, cork_u128 val); + + +#endif /* LIBCORK_CORE_U128_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds.h b/shadowsocksr-libev/src/libcork/include/libcork/ds.h new file mode 100644 index 00000000000..8cedd21c5e7 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds.h @@ -0,0 +1,26 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_H +#define LIBCORK_DS_H + +/*** include all of the parts ***/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#endif /* LIBCORK_DS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/array.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/array.h new file mode 100644 index 00000000000..d86a8b6f529 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/array.h @@ -0,0 +1,161 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_ARRAY_H +#define LIBCORK_DS_ARRAY_H + + +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Resizable arrays + */ + +struct cork_array_priv; + +struct cork_raw_array { + void *items; + size_t size; + struct cork_array_priv *priv; +}; + +CORK_API void +cork_raw_array_init(struct cork_raw_array *array, size_t element_size); + +CORK_API void +cork_raw_array_done(struct cork_raw_array *array); + +CORK_API void +cork_raw_array_set_callback_data(struct cork_raw_array *array, + void *user_data, cork_free_f free_user_data); + +CORK_API void +cork_raw_array_set_init(struct cork_raw_array *array, cork_init_f init); + +CORK_API void +cork_raw_array_set_done(struct cork_raw_array *array, cork_done_f done); + +CORK_API void +cork_raw_array_set_reuse(struct cork_raw_array *array, cork_init_f reuse); + +CORK_API void +cork_raw_array_set_remove(struct cork_raw_array *array, cork_done_f remove); + +CORK_API size_t +cork_raw_array_element_size(const struct cork_raw_array *array); + +CORK_API void +cork_raw_array_clear(struct cork_raw_array *array); + +CORK_API void * +cork_raw_array_elements(const struct cork_raw_array *array); + +CORK_API void * +cork_raw_array_at(const struct cork_raw_array *array, size_t index); + +CORK_API size_t +cork_raw_array_size(const struct cork_raw_array *array); + +CORK_API bool +cork_raw_array_is_empty(const struct cork_raw_array *array); + +CORK_API void +cork_raw_array_ensure_size(struct cork_raw_array *array, size_t count); + +CORK_API void * +cork_raw_array_append(struct cork_raw_array *array); + +CORK_API int +cork_raw_array_copy(struct cork_raw_array *dest, + const struct cork_raw_array *src, + cork_copy_f copy, void *user_data); + + +/*----------------------------------------------------------------------- + * Type-checked resizable arrays + */ + +#define cork_array(T) \ + struct { \ + T *items; \ + size_t size; \ + struct cork_array_priv *priv; \ + } + +#define cork_array_element_size(arr) (sizeof((arr)->items[0])) +#define cork_array_elements(arr) ((arr)->items) +#define cork_array_at(arr, i) ((arr)->items[(i)]) +#define cork_array_size(arr) ((arr)->size) +#define cork_array_is_empty(arr) ((arr)->size == 0) +#define cork_array_to_raw(arr) ((struct cork_raw_array *) (void *) (arr)) + +#define cork_array_init(arr) \ + (cork_raw_array_init(cork_array_to_raw(arr), cork_array_element_size(arr))) +#define cork_array_done(arr) \ + (cork_raw_array_done(cork_array_to_raw(arr))) + +#define cork_array_set_callback_data(arr, ud, fud) \ + (cork_raw_array_set_callback_data(cork_array_to_raw(arr), (ud), (fud))) +#define cork_array_set_init(arr, i) \ + (cork_raw_array_set_init(cork_array_to_raw(arr), (i))) +#define cork_array_set_done(arr, d) \ + (cork_raw_array_set_done(cork_array_to_raw(arr), (d))) +#define cork_array_set_reuse(arr, r) \ + (cork_raw_array_set_reuse(cork_array_to_raw(arr), (r))) +#define cork_array_set_remove(arr, r) \ + (cork_raw_array_set_remove(cork_array_to_raw(arr), (r))) + +#define cork_array_clear(arr) \ + (cork_raw_array_clear(cork_array_to_raw(arr))) +#define cork_array_copy(d, s, c, ud) \ + (cork_raw_array_copy(cork_array_to_raw(d), cork_array_to_raw(s), (c), (ud))) + +#define cork_array_ensure_size(arr, count) \ + (cork_raw_array_ensure_size(cork_array_to_raw(arr), (count))) + +#define cork_array_append(arr, element) \ + (cork_raw_array_append(cork_array_to_raw(arr)), \ + ((arr)->items[(arr)->size - 1] = (element), (void) 0)) + +#define cork_array_append_get(arr) \ + (cork_raw_array_append(cork_array_to_raw(arr)), \ + &(arr)->items[(arr)->size - 1]) + + +/*----------------------------------------------------------------------- + * Builtin array types + */ + +CORK_API void +cork_raw_pointer_array_init(struct cork_raw_array *array, cork_free_f free); + +#define cork_pointer_array_init(arr, f) \ + (cork_raw_pointer_array_init(cork_array_to_raw(arr), (f))) + +struct cork_string_array { + const char **items; + size_t size; + struct cork_array_priv *priv; +}; + +CORK_API void +cork_string_array_init(struct cork_string_array *array); + +CORK_API void +cork_string_array_append(struct cork_string_array *array, const char *str); + +CORK_API void +cork_string_array_copy(struct cork_string_array *dest, + const struct cork_string_array *src); + + +#endif /* LIBCORK_DS_ARRAY_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/bitset.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/bitset.h new file mode 100644 index 00000000000..8744cfc6217 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/bitset.h @@ -0,0 +1,70 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_BITS_H +#define LIBCORK_DS_BITS_H + + +#include +#include + + +/*----------------------------------------------------------------------- + * Bit sets + */ + +struct cork_bitset { + uint8_t *bits; + size_t bit_count; + size_t byte_count; +}; + +CORK_API struct cork_bitset * +cork_bitset_new(size_t bit_count); + +CORK_API void +cork_bitset_init(struct cork_bitset *set, size_t bit_count); + +CORK_API void +cork_bitset_free(struct cork_bitset *set); + +CORK_API void +cork_bitset_done(struct cork_bitset *set); + +CORK_API void +cork_bitset_clear(struct cork_bitset *set); + +/* Extract the byte that contains a particular bit in an array. */ +#define cork_bitset_byte_for_bit(set, i) \ + ((set)->bits[(i) / 8]) + +/* Create a bit mask that extracts a particular bit from the byte that it lives + * in. */ +#define cork_bitset_pos_mask_for_bit(i) \ + (0x80 >> ((i) % 8)) + +/* Create a bit mask that extracts everything except for a particular bit from + * the byte that it lives in. */ +#define cork_bitset_neg_mask_for_bit(i) \ + (~cork_bitset_pos_mask_for_bit(i)) + +/* Return whether a particular bit is set in a byte array. Bits are numbered + * from 0, in a big-endian order. */ +#define cork_bitset_get(set, i) \ + ((cork_bitset_byte_for_bit(set, i) & cork_bitset_pos_mask_for_bit(i)) != 0) + +/* Set (or unset) a particular bit is set in a byte array. Bits are numbered + * from 0, in a big-endian order. */ +#define cork_bitset_set(set, i, val) \ + (cork_bitset_byte_for_bit(set, i) = \ + (cork_bitset_byte_for_bit(set, i) & cork_bitset_neg_mask_for_bit(i)) \ + | ((val)? cork_bitset_pos_mask_for_bit(i): 0)) + + +#endif /* LIBCORK_DS_BITS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/buffer.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/buffer.h new file mode 100644 index 00000000000..39fbbfa1f2e --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/buffer.h @@ -0,0 +1,163 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_BUFFER_H +#define LIBCORK_DS_BUFFER_H + + +#include + +#include +#include +#include + + +struct cork_buffer { + /* The current contents of the buffer. */ + void *buf; + /* The current size of the buffer. */ + size_t size; + /* The amount of space allocated for buf. */ + size_t allocated_size; +}; + + +CORK_API void +cork_buffer_init(struct cork_buffer *buffer); + +#define CORK_BUFFER_INIT() { NULL, 0, 0 } + +CORK_API struct cork_buffer * +cork_buffer_new(void); + +CORK_API void +cork_buffer_done(struct cork_buffer *buffer); + +CORK_API void +cork_buffer_free(struct cork_buffer *buffer); + + +CORK_API bool +cork_buffer_equal(const struct cork_buffer *buffer1, + const struct cork_buffer *buffer2); + + +CORK_API void +cork_buffer_ensure_size(struct cork_buffer *buffer, size_t desired_size); + + +CORK_API void +cork_buffer_clear(struct cork_buffer *buffer); + +CORK_API void +cork_buffer_truncate(struct cork_buffer *buffer, size_t length); + +#define cork_buffer_byte(buffer, i) (((const uint8_t *) (buffer)->buf)[(i)]) +#define cork_buffer_char(buffer, i) (((const char *) (buffer)->buf)[(i)]) + + +/*----------------------------------------------------------------------- + * A whole bunch of methods for adding data + */ + +#define cork_buffer_copy(dest, src) \ + (cork_buffer_set((dest), (src)->buf, (src)->size)) + +CORK_API void +cork_buffer_set(struct cork_buffer *buffer, const void *src, size_t length); + +#define cork_buffer_append_copy(dest, src) \ + (cork_buffer_append((dest), (src)->buf, (src)->size)) + +CORK_API void +cork_buffer_append(struct cork_buffer *buffer, const void *src, size_t length); + + +CORK_API void +cork_buffer_set_string(struct cork_buffer *buffer, const char *str); + +CORK_API void +cork_buffer_append_string(struct cork_buffer *buffer, const char *str); + +#define cork_buffer_set_literal(buffer, str) \ + (cork_buffer_set((buffer), (str), sizeof((str)) - 1)) + +#define cork_buffer_append_literal(buffer, str) \ + (cork_buffer_append((buffer), (str), sizeof((str)) - 1)) + + +CORK_API void +cork_buffer_printf(struct cork_buffer *buffer, const char *format, ...) + CORK_ATTR_PRINTF(2,3); + +CORK_API void +cork_buffer_append_printf(struct cork_buffer *buffer, const char *format, ...) + CORK_ATTR_PRINTF(2,3); + +CORK_API void +cork_buffer_vprintf(struct cork_buffer *buffer, const char *format, + va_list args) + CORK_ATTR_PRINTF(2,0); + +CORK_API void +cork_buffer_append_vprintf(struct cork_buffer *buffer, const char *format, + va_list args) + CORK_ATTR_PRINTF(2,0); + + +/*----------------------------------------------------------------------- + * Some helpers for pretty-printing data + */ + +CORK_API void +cork_buffer_append_indent(struct cork_buffer *buffer, size_t indent); + +CORK_API void +cork_buffer_append_c_string(struct cork_buffer *buffer, + const char *src, size_t length); + +CORK_API void +cork_buffer_append_hex_dump(struct cork_buffer *buffer, size_t indent, + const char *src, size_t length); + +CORK_API void +cork_buffer_append_multiline(struct cork_buffer *buffer, size_t indent, + const char *src, size_t length); + +CORK_API void +cork_buffer_append_binary(struct cork_buffer *buffer, size_t indent, + const char *src, size_t length); + + +/*----------------------------------------------------------------------- + * Buffer's managed buffer/slice implementation + */ + +#include +#include + +CORK_API struct cork_managed_buffer * +cork_buffer_to_managed_buffer(struct cork_buffer *buffer); + +CORK_API int +cork_buffer_to_slice(struct cork_buffer *buffer, struct cork_slice *slice); + + +/*----------------------------------------------------------------------- + * Buffer's stream consumer implementation + */ + +#include + +CORK_API struct cork_stream_consumer * +cork_buffer_to_stream_consumer(struct cork_buffer *buffer); + + +#endif /* LIBCORK_DS_BUFFER_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/dllist.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/dllist.h new file mode 100644 index 00000000000..7fc22bfe651 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/dllist.h @@ -0,0 +1,151 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_DLLIST_H +#define LIBCORK_DS_DLLIST_H + +#include +#include + + +struct cork_dllist_item { + /* A pointer to the next element in the list. */ + struct cork_dllist_item *next; + /* A pointer to the previous element in the list. */ + struct cork_dllist_item *prev; +}; + + +struct cork_dllist { + /* The sentinel element for this list. */ + struct cork_dllist_item head; +}; + +#define CORK_DLLIST_INIT(list) { { &(list).head, &(list).head } } + +#define cork_dllist_init(list) \ + do { \ + (list)->head.next = &(list)->head; \ + (list)->head.prev = &(list)->head; \ + } while (0) + + + +/* DEPRECATED! Use cork_dllist_foreach or cork_dllist_visit instead. */ +typedef void +(*cork_dllist_map_func)(struct cork_dllist_item *element, void *user_data); + +CORK_API void +cork_dllist_map(struct cork_dllist *list, + cork_dllist_map_func func, void *user_data); + + +typedef int +cork_dllist_visit_f(void *ud, struct cork_dllist_item *element); + +CORK_API int +cork_dllist_visit(struct cork_dllist *list, void *ud, + cork_dllist_visit_f *visit); + + +#define cork_dllist_foreach_void(list, curr, _next) \ + for ((curr) = cork_dllist_start((list)), (_next) = (curr)->next; \ + !cork_dllist_is_end((list), (curr)); \ + (curr) = (_next), (_next) = (curr)->next) + +#define cork_dllist_foreach(list, curr, _next, etype, element, item_field) \ + for ((curr) = cork_dllist_start((list)), (_next) = (curr)->next, \ + (element) = cork_container_of((curr), etype, item_field); \ + !cork_dllist_is_end((list), (curr)); \ + (curr) = (_next), (_next) = (curr)->next, \ + (element) = cork_container_of((curr), etype, item_field)) + + +CORK_API size_t +cork_dllist_size(const struct cork_dllist *list); + + +#define cork_dllist_add_after(pred, element) \ + do { \ + (element)->prev = (pred); \ + (element)->next = (pred)->next; \ + (pred)->next->prev = (element); \ + (pred)->next = (element); \ + } while (0) + +#define cork_dllist_add_before(succ, element) \ + do { \ + (element)->next = (succ); \ + (element)->prev = (succ)->prev; \ + (succ)->prev->next = (element); \ + (succ)->prev = (element); \ + } while (0) + +#define cork_dllist_add_to_head(list, element) \ + cork_dllist_add_after(&(list)->head, (element)) + +#define cork_dllist_add_to_tail(list, element) \ + cork_dllist_add_before(&(list)->head, (element)) + +#define cork_dllist_add cork_dllist_add_to_tail + + +#define cork_dllist_add_list_to_head(dest, src) \ + do { \ + struct cork_dllist_item *dest_start = cork_dllist_start(dest); \ + struct cork_dllist_item *src_start = cork_dllist_start(src); \ + dest_start->prev = &(src)->head; \ + src_start->prev = &(dest)->head; \ + (src)->head.next = dest_start; \ + (dest)->head.next = src_start; \ + cork_dllist_remove(&(src)->head); \ + cork_dllist_init(src); \ + } while (0) + +#define cork_dllist_add_list_to_tail(dest, src) \ + do { \ + struct cork_dllist_item *dest_end = cork_dllist_end(dest); \ + struct cork_dllist_item *src_end = cork_dllist_end(src); \ + dest_end->next = &(src)->head; \ + src_end->next = &(dest)->head; \ + (src)->head.prev = dest_end; \ + (dest)->head.prev = src_end; \ + cork_dllist_remove(&(src)->head); \ + cork_dllist_init(src); \ + } while (0) + + +#define cork_dllist_remove(element) \ + do { \ + (element)->prev->next = (element)->next; \ + (element)->next->prev = (element)->prev; \ + } while (0) + + +#define cork_dllist_is_empty(list) \ + (cork_dllist_is_end((list), cork_dllist_start((list)))) + + +#define cork_dllist_head(list) \ + (((list)->head.next == &(list)->head)? NULL: (list)->head.next) +#define cork_dllist_tail(list) \ + (((list)->head.prev == &(list)->head)? NULL: (list)->head.prev) + +#define cork_dllist_start(list) \ + ((list)->head.next) +#define cork_dllist_end(list) \ + ((list)->head.prev) + +#define cork_dllist_is_start(list, element) \ + ((element) == &(list)->head) +#define cork_dllist_is_end(list, element) \ + ((element) == &(list)->head) + + +#endif /* LIBCORK_DS_DLLIST_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/hash-table.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/hash-table.h new file mode 100644 index 00000000000..6a0eee40778 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/hash-table.h @@ -0,0 +1,159 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_HASH_TABLE_H +#define LIBCORK_DS_HASH_TABLE_H + +#include +#include +#include +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Hash tables + */ + +struct cork_hash_table_entry { + cork_hash hash; + void *key; + void *value; +}; + + +struct cork_hash_table; + +CORK_API struct cork_hash_table * +cork_hash_table_new(size_t initial_size, unsigned int flags); + +CORK_API void +cork_hash_table_free(struct cork_hash_table *table); + + +CORK_API void +cork_hash_table_set_user_data(struct cork_hash_table *table, + void *user_data, cork_free_f free_user_data); + +CORK_API void +cork_hash_table_set_equals(struct cork_hash_table *table, cork_equals_f equals); + +CORK_API void +cork_hash_table_set_free_key(struct cork_hash_table *table, cork_free_f free); + +CORK_API void +cork_hash_table_set_free_value(struct cork_hash_table *table, cork_free_f free); + +CORK_API void +cork_hash_table_set_hash(struct cork_hash_table *table, cork_hash_f hash); + + +CORK_API void +cork_hash_table_clear(struct cork_hash_table *table); + + +CORK_API void +cork_hash_table_ensure_size(struct cork_hash_table *table, + size_t desired_count); + +CORK_API size_t +cork_hash_table_size(const struct cork_hash_table *table); + + +CORK_API void * +cork_hash_table_get(const struct cork_hash_table *table, const void *key); + +CORK_API void * +cork_hash_table_get_hash(const struct cork_hash_table *table, + cork_hash hash, const void *key); + +CORK_API struct cork_hash_table_entry * +cork_hash_table_get_entry(const struct cork_hash_table *table, + const void *key); + +CORK_API struct cork_hash_table_entry * +cork_hash_table_get_entry_hash(const struct cork_hash_table *table, + cork_hash hash, const void *key); + +CORK_API struct cork_hash_table_entry * +cork_hash_table_get_or_create(struct cork_hash_table *table, + void *key, bool *is_new); + +CORK_API struct cork_hash_table_entry * +cork_hash_table_get_or_create_hash(struct cork_hash_table *table, + cork_hash hash, void *key, bool *is_new); + +CORK_API void +cork_hash_table_put(struct cork_hash_table *table, + void *key, void *value, + bool *is_new, void **old_key, void **old_value); + +CORK_API void +cork_hash_table_put_hash(struct cork_hash_table *table, + cork_hash hash, void *key, void *value, + bool *is_new, void **old_key, void **old_value); + +CORK_API void +cork_hash_table_delete_entry(struct cork_hash_table *table, + struct cork_hash_table_entry *entry); + +CORK_API bool +cork_hash_table_delete(struct cork_hash_table *table, const void *key, + void **deleted_key, void **deleted_value); + +CORK_API bool +cork_hash_table_delete_hash(struct cork_hash_table *table, + cork_hash hash, const void *key, + void **deleted_key, void **deleted_value); + + +enum cork_hash_table_map_result { + /* Abort the current @ref cork_hash_table_map operation. */ + CORK_HASH_TABLE_MAP_ABORT = 0, + /* Continue on to the next entry in the hash table. */ + CORK_HASH_TABLE_MAP_CONTINUE = 1, + /* Delete the entry that was just processed, and then continue on to + * the next entry in the hash table. */ + CORK_HASH_TABLE_MAP_DELETE = 2 +}; + +typedef enum cork_hash_table_map_result +(*cork_hash_table_map_f)(void *user_data, struct cork_hash_table_entry *entry); + +CORK_API void +cork_hash_table_map(struct cork_hash_table *table, void *user_data, + cork_hash_table_map_f mapper); + + +struct cork_hash_table_iterator { + struct cork_hash_table *table; + void *priv; +}; + +CORK_API void +cork_hash_table_iterator_init(struct cork_hash_table *table, + struct cork_hash_table_iterator *iterator); + +CORK_API struct cork_hash_table_entry * +cork_hash_table_iterator_next(struct cork_hash_table_iterator *iterator); + + +/*----------------------------------------------------------------------- + * Built-in key types + */ + +CORK_API struct cork_hash_table * +cork_string_hash_table_new(size_t initial_size, unsigned int flags); + +CORK_API struct cork_hash_table * +cork_pointer_hash_table_new(size_t initial_size, unsigned int flags); + + +#endif /* LIBCORK_DS_HASH_TABLE_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/managed-buffer.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/managed-buffer.h new file mode 100644 index 00000000000..e74ef3b6b83 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/managed-buffer.h @@ -0,0 +1,76 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_MANAGED_BUFFER_H +#define LIBCORK_DS_MANAGED_BUFFER_H + +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Managed buffers + */ + +struct cork_managed_buffer; + +struct cork_managed_buffer_iface { + /* Free the contents of a managed buffer, and the managed buffer + * object itself. */ + void + (*free)(struct cork_managed_buffer *buf); +}; + + +struct cork_managed_buffer { + /* The buffer that this instance manages */ + const void *buf; + /* The size of buf */ + size_t size; + /* A reference count for the buffer. If this drops to 0, the buffer + * will be finalized. */ + volatile int ref_count; + /* The managed buffer implementation for this instance. */ + struct cork_managed_buffer_iface *iface; +}; + + +CORK_API struct cork_managed_buffer * +cork_managed_buffer_new_copy(const void *buf, size_t size); + + +typedef void +(*cork_managed_buffer_freer)(void *buf, size_t size); + +CORK_API struct cork_managed_buffer * +cork_managed_buffer_new(const void *buf, size_t size, + cork_managed_buffer_freer free); + + +CORK_API struct cork_managed_buffer * +cork_managed_buffer_ref(struct cork_managed_buffer *buf); + +CORK_API void +cork_managed_buffer_unref(struct cork_managed_buffer *buf); + + +CORK_API int +cork_managed_buffer_slice(struct cork_slice *dest, + struct cork_managed_buffer *buffer, + size_t offset, size_t length); + +CORK_API int +cork_managed_buffer_slice_offset(struct cork_slice *dest, + struct cork_managed_buffer *buffer, + size_t offset); + + +#endif /* LIBCORK_DS_MANAGED_BUFFER_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/ring-buffer.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/ring-buffer.h new file mode 100644 index 00000000000..d76affdc571 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/ring-buffer.h @@ -0,0 +1,60 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_RING_BUFFER_H +#define LIBCORK_DS_RING_BUFFER_H + +#include +#include + + +struct cork_ring_buffer { + /* The elements of the ring buffer */ + void **elements; + /* The number of elements that can be stored in this ring + * buffer. */ + size_t allocated_size; + /* The actual number of elements currently in the ring buffer. */ + size_t size; + /* The index of the next element to read from the buffer */ + size_t read_index; + /* The index of the next element to write into the buffer */ + size_t write_index; +}; + + +CORK_API int +cork_ring_buffer_init(struct cork_ring_buffer *buf, size_t size); + +CORK_API struct cork_ring_buffer * +cork_ring_buffer_new(size_t size); + +CORK_API void +cork_ring_buffer_done(struct cork_ring_buffer *buf); + +CORK_API void +cork_ring_buffer_free(struct cork_ring_buffer *buf); + + +#define cork_ring_buffer_is_empty(buf) ((buf)->size == 0) +#define cork_ring_buffer_is_full(buf) ((buf)->size == (buf)->allocated_size) + + +CORK_API int +cork_ring_buffer_add(struct cork_ring_buffer *buf, void *element); + +CORK_API void * +cork_ring_buffer_pop(struct cork_ring_buffer *buf); + +CORK_API void * +cork_ring_buffer_peek(struct cork_ring_buffer *buf); + + +#endif /* LIBCORK_DS_RING_BUFFER_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/slice.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/slice.h new file mode 100644 index 00000000000..9daefee3c36 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/slice.h @@ -0,0 +1,151 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_SLICE_H +#define LIBCORK_DS_SLICE_H + +#include +#include + + +/*----------------------------------------------------------------------- + * Error handling + */ + +/* hash of "libcork/ds/slice.h" */ +#define CORK_SLICE_ERROR 0x960ca750 + +enum cork_slice_error { + /* Trying to slice a nonexistent subset of a buffer */ + CORK_SLICE_INVALID_SLICE +}; + + +/*----------------------------------------------------------------------- + * Slices + */ + +struct cork_slice; + +struct cork_slice_iface { + /* Free the slice. Can be NULL if you don't need to free any + * underlying buffer. */ + void + (*free)(struct cork_slice *self); + + /* Create a copy of a slice. You can assume that offset and length + * refer to a valid subset of the buffer. */ + int + (*copy)(struct cork_slice *dest, const struct cork_slice *self, + size_t offset, size_t length); + + /* Create a “light” copy of a slice. A light copy is not allowed to exist + * longer than the slice that it was copied from, which can sometimes let + * you perform less work to produce the copy. You can assume that offset + * and length refer to a valid subset of the buffer. */ + int + (*light_copy)(struct cork_slice *dest, const struct cork_slice *self, + size_t offset, size_t length); + + /* Update the current slice to point at a different subset. You can + * assume that offset and length refer to a valid subset of the + * buffer. Can be NULL if you don't need to do anything special to + * the underlying buffer; in this case, we'll update the slice's buf + * and size fields for you. */ + int + (*slice)(struct cork_slice *self, size_t offset, size_t length); +}; + + +struct cork_slice { + /* The beginning of the sliced portion of the buffer. */ + const void *buf; + /* The length of the sliced portion of the buffer. */ + size_t size; + /* The slice implementation of the underlying buffer. */ + struct cork_slice_iface *iface; + /* An opaque pointer used by the slice implementation to refer to + * the underlying buffer. */ + void *user_data; +}; + + +CORK_API void +cork_slice_clear(struct cork_slice *slice); + +#define cork_slice_is_empty(slice) ((slice)->buf == NULL) + + +CORK_API int +cork_slice_copy(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset, size_t length); + +#define cork_slice_copy_fast(dest, slice, offset, length) \ + ((slice)->iface->copy((dest), (slice), (offset), (length))) + +CORK_API int +cork_slice_copy_offset(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset); + +#define cork_slice_copy_offset_fast(dest, slice, offset) \ + ((slice)->iface->copy \ + ((dest), (slice), (offset), (slice)->size - (offset))) + + +CORK_API int +cork_slice_light_copy(struct cork_slice *dest, const struct cork_slice *slice, + size_t offset, size_t length); + +#define cork_slice_light_copy_fast(dest, slice, offset, length) \ + ((slice)->iface->light_copy((dest), (slice), (offset), (length))) + +CORK_API int +cork_slice_light_copy_offset(struct cork_slice *dest, + const struct cork_slice *slice, size_t offset); + +#define cork_slice_light_copy_offset_fast(dest, slice, offset) \ + ((slice)->iface->light_copy \ + ((dest), (slice), (offset), (slice)->size - (offset))) + + +CORK_API int +cork_slice_slice(struct cork_slice *slice, size_t offset, size_t length); + +#define cork_slice_slice_fast(_slice, offset, length) \ + ((_slice)->iface->slice == NULL? \ + ((_slice)->buf += (offset), (_slice)->size = (length), 0): \ + ((_slice)->iface->slice((_slice), (offset), (length)))) + +CORK_API int +cork_slice_slice_offset(struct cork_slice *slice, size_t offset); + +#define cork_slice_slice_offset_fast(_slice, offset) \ + ((_slice)->iface->slice == NULL? \ + ((_slice)->buf += (offset), (_slice)->size -= (offset), 0): \ + ((_slice)->iface->slice \ + ((_slice), (offset), (_slice)->size - (offset)))) + + +CORK_API void +cork_slice_finish(struct cork_slice *slice); + +CORK_API bool +cork_slice_equal(const struct cork_slice *slice1, + const struct cork_slice *slice2); + +CORK_API void +cork_slice_init_static(struct cork_slice *dest, const void *buf, size_t size); + +CORK_API void +cork_slice_init_copy_once(struct cork_slice *dest, const void *buf, + size_t size); + + +#endif /* LIBCORK_DS_SLICE_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/ds/stream.h b/shadowsocksr-libev/src/libcork/include/libcork/ds/stream.h new file mode 100644 index 00000000000..b36972576bb --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/ds/stream.h @@ -0,0 +1,64 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_DS_STREAM_H +#define LIBCORK_DS_STREAM_H + +#include + +#include +#include + + +struct cork_stream_consumer { + int + (*data)(struct cork_stream_consumer *consumer, + const void *buf, size_t size, bool is_first_chunk); + + int + (*eof)(struct cork_stream_consumer *consumer); + + void + (*free)(struct cork_stream_consumer *consumer); +}; + + +#define cork_stream_consumer_data(consumer, buf, size, is_first) \ + ((consumer)->data((consumer), (buf), (size), (is_first))) + +#define cork_stream_consumer_eof(consumer) \ + ((consumer)->eof((consumer))) + +#define cork_stream_consumer_free(consumer) \ + ((consumer)->free((consumer))) + + +CORK_API int +cork_consume_fd(struct cork_stream_consumer *consumer, int fd); + +CORK_API int +cork_consume_file(struct cork_stream_consumer *consumer, FILE *fp); + +CORK_API int +cork_consume_file_from_path(struct cork_stream_consumer *consumer, + const char *path, int flags); + + +CORK_API struct cork_stream_consumer * +cork_fd_consumer_new(int fd); + +CORK_API struct cork_stream_consumer * +cork_file_consumer_new(FILE *fp); + +CORK_API struct cork_stream_consumer * +cork_file_from_path_consumer_new(const char *path, int flags); + + +#endif /* LIBCORK_DS_STREAM_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/helpers/errors.h b/shadowsocksr-libev/src/libcork/include/libcork/helpers/errors.h new file mode 100644 index 00000000000..37766757312 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/helpers/errors.h @@ -0,0 +1,142 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_HELPERS_ERRORS_H +#define LIBCORK_HELPERS_ERRORS_H + + +/* This header is *not* automatically included when you include + * libcork/core.h, since we define some macros that don't include a + * cork_ or CORK_ prefix. Don't want to pollute your namespace unless + * you ask for it! */ + + +#include +#include +#include + + +#if !defined(CORK_PRINT_ERRORS) +#define CORK_PRINT_ERRORS 0 +#endif + +#if !defined(CORK_PRINT_ERROR) +#if CORK_PRINT_ERRORS +#include +#define CORK_PRINT_ERROR_(func, file, line) \ + fprintf(stderr, "---\nError in %s (%s:%u)\n %s\n", \ + (func), (file), (unsigned int) (line), \ + cork_error_message()); +#define CORK_PRINT_ERROR() CORK_PRINT_ERROR_(__func__, __FILE__, __LINE__) +#else +#define CORK_PRINT_ERROR() /* do nothing */ +#endif +#endif + + +/* A bunch of macros for calling a function that returns an error. If + * an error occurs, it will automatically be propagated out as the + * result of your own function. With these macros, you won't have a + * check to check or modify the error condition; it's returned as-is. + * + * XZ_check + * + * where: + * + * X = what happens if an error occurs + * "e" = jump to the "error" label + * "rY" = return a default error result (Y defined below) + * "x" = return an error result that you specify + * + * Y = your return type + * "i" = int + * "p" = some pointer type + * + * Z = the return type of the function you're calling + * "e" = use cork_error_occurred() to check + * "i" = int + * "p" = some pointer type + * + * In all cases, we assume that your function has a cork_error parameter + * called "err". + */ + + +/* jump to "error" label */ + +#define ee_check(call) \ + do { \ + (call); \ + if (CORK_UNLIKELY(cork_error_occurred())) { \ + CORK_PRINT_ERROR(); \ + goto error; \ + } \ + } while (0) + +#define ei_check(call) \ + do { \ + int __rc = (call); \ + if (CORK_UNLIKELY(__rc != 0)) { \ + CORK_PRINT_ERROR(); \ + goto error; \ + } \ + } while (0) + +#define ep_check(call) \ + do { \ + const void *__result = (call); \ + if (CORK_UNLIKELY(__result == NULL)) { \ + CORK_PRINT_ERROR(); \ + goto error; \ + } \ + } while (0) + + +/* return specific error code */ + +#define xe_check(result, call) \ + do { \ + (call); \ + if (CORK_UNLIKELY(cork_error_occurred())) { \ + CORK_PRINT_ERROR(); \ + return result; \ + } \ + } while (0) + +#define xi_check(result, call) \ + do { \ + int __rc = (call); \ + if (CORK_UNLIKELY(__rc != 0)) { \ + CORK_PRINT_ERROR(); \ + return result; \ + } \ + } while (0) + +#define xp_check(result, call) \ + do { \ + const void *__result = (call); \ + if (CORK_UNLIKELY(__result == NULL)) { \ + CORK_PRINT_ERROR(); \ + return result; \ + } \ + } while (0) + + +/* return default error code */ + +#define rie_check(call) xe_check(-1, call) +#define rii_check(call) xi_check(__rc, call) +#define rip_check(call) xp_check(-1, call) +#define rpe_check(call) xe_check(NULL, call) +#define rpi_check(call) xi_check(NULL, call) +#define rpp_check(call) xp_check(NULL, call) + + +#endif /* LIBCORK_HELPERS_ERRORS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/helpers/gc.h b/shadowsocksr-libev/src/libcork/include/libcork/helpers/gc.h new file mode 100644 index 00000000000..43742445bea --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/helpers/gc.h @@ -0,0 +1,51 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2011-2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_HELPERS_REFCOUNT_H +#define LIBCORK_HELPERS_REFCOUNT_H + + +#include +#include + + +#define _free_(name) \ +static void \ +name##__free(void *obj) + + +#define _recurse_(name) \ +static void \ +name##__recurse(struct cork_gc *gc, void *obj, \ + cork_gc_recurser recurse, void *ud) + + +#define _gc_(name) \ +static struct cork_gc_obj_iface name##__gc = { \ + name##__free, name##__recurse \ +}; + +#define _gc_no_free_(name) \ +static struct cork_gc_obj_iface name##__gc = { \ + NULL, name##__recurse \ +}; + +#define _gc_no_recurse_(name) \ +static struct cork_gc_obj_iface name##__gc = { \ + name##__free, NULL \ +}; + +#define _gc_leaf_(name) \ +static struct cork_gc_obj_iface name##__gc = { \ + NULL, NULL \ +}; + + +#endif /* LIBCORK_HELPERS_REFCOUNT_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/helpers/posix.h b/shadowsocksr-libev/src/libcork/include/libcork/helpers/posix.h new file mode 100644 index 00000000000..7a933d5bb11 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/helpers/posix.h @@ -0,0 +1,87 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_HELPERS_POSIX_H +#define LIBCORK_HELPERS_POSIX_H + +/* This header is *not* automatically included when you include + * libcork/core.h, since we define some macros that don't include a + * cork_ or CORK_ prefix. Don't want to pollute your namespace unless + * you ask for it! */ + +#include + +#include +#include +#include + + +#if !defined(CORK_PRINT_ERRORS) +#define CORK_PRINT_ERRORS 0 +#endif + +#if !defined(CORK_PRINT_ERROR) +#if CORK_PRINT_ERRORS +#include +#define CORK_PRINT_ERROR_(func, file, line) \ + fprintf(stderr, "---\nError in %s (%s:%u)\n %s\n", \ + (func), (file), (unsigned int) (line), \ + cork_error_message()); +#define CORK_PRINT_ERROR() CORK_PRINT_ERROR_(__func__, __FILE__, __LINE__) +#else +#define CORK_PRINT_ERROR() /* do nothing */ +#endif +#endif + + +#define xi_check_posix(call, on_error) \ + do { \ + while (true) { \ + if ((call) == -1) { \ + if (errno == EINTR) { \ + continue; \ + } else { \ + cork_system_error_set(); \ + CORK_PRINT_ERROR(); \ + on_error; \ + } \ + } else { \ + break; \ + } \ + } \ + } while (0) + +#define xp_check_posix(call, on_error) \ + do { \ + while (true) { \ + if ((call) == NULL) { \ + if (errno == EINTR) { \ + continue; \ + } else { \ + cork_system_error_set(); \ + CORK_PRINT_ERROR(); \ + on_error; \ + } \ + } else { \ + break; \ + } \ + } \ + } while (0) + + +#define ei_check_posix(call) xi_check_posix(call, goto error) +#define rii_check_posix(call) xi_check_posix(call, return -1) +#define rpi_check_posix(call) xi_check_posix(call, return NULL) + +#define ep_check_posix(call) xp_check_posix(call, goto error) +#define rip_check_posix(call) xp_check_posix(call, return -1) +#define rpp_check_posix(call) xp_check_posix(call, return NULL) + + +#endif /* LIBCORK_HELPERS_POSIX_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/os.h b/shadowsocksr-libev/src/libcork/include/libcork/os.h new file mode 100644 index 00000000000..1163962889a --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/os.h @@ -0,0 +1,20 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_OS_H +#define LIBCORK_OS_H + +/*** include all of the parts ***/ + +#include +#include +#include + +#endif /* LIBCORK_OS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/os/files.h b/shadowsocksr-libev/src/libcork/include/libcork/os/files.h new file mode 100644 index 00000000000..82f1f30d614 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/os/files.h @@ -0,0 +1,271 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_FILES_H +#define LIBCORK_CORE_FILES_H + +#include +#include + + +/*----------------------------------------------------------------------- + * Paths + */ + +struct cork_path; + +/* path can be relative or absolute */ +CORK_API struct cork_path * +cork_path_new(const char *path); + +CORK_API struct cork_path * +cork_path_clone(const struct cork_path *other); + +CORK_API void +cork_path_free(struct cork_path *path); + + +CORK_API void +cork_path_set(struct cork_path *path, const char *content); + +CORK_API const char * +cork_path_get(const struct cork_path *path); + + +CORK_API int +cork_path_set_cwd(struct cork_path *path); + +CORK_API struct cork_path * +cork_path_cwd(void); + + +CORK_API int +cork_path_set_absolute(struct cork_path *path); + +CORK_API struct cork_path * +cork_path_absolute(const struct cork_path *other); + + +CORK_API void +cork_path_append(struct cork_path *path, const char *more); + +CORK_API void +cork_path_append_path(struct cork_path *path, const struct cork_path *more); + +CORK_API struct cork_path * +cork_path_join(const struct cork_path *other, const char *more); + +CORK_API struct cork_path * +cork_path_join_path(const struct cork_path *other, + const struct cork_path *more); + + +CORK_API void +cork_path_set_basename(struct cork_path *path); + +CORK_API struct cork_path * +cork_path_basename(const struct cork_path *other); + + +CORK_API void +cork_path_set_dirname(struct cork_path *path); + +CORK_API struct cork_path * +cork_path_dirname(const struct cork_path *other); + + +/*----------------------------------------------------------------------- + * Lists of paths + */ + +struct cork_path_list; + +CORK_API struct cork_path_list * +cork_path_list_new_empty(void); + +/* list must be a colon-separated list of paths */ +CORK_API struct cork_path_list * +cork_path_list_new(const char *list); + +CORK_API void +cork_path_list_free(struct cork_path_list *list); + +CORK_API const char * +cork_path_list_to_string(const struct cork_path_list *list); + +/* Takes control of path. path must not already be in the list. */ +CORK_API void +cork_path_list_add(struct cork_path_list *list, struct cork_path *path); + +CORK_API size_t +cork_path_list_size(const struct cork_path_list *list); + +/* The list still owns path; you must not free it or modify it. */ +CORK_API const struct cork_path * +cork_path_list_get(const struct cork_path_list *list, size_t index); + + +/*----------------------------------------------------------------------- + * Files + */ + +#define CORK_FILE_RECURSIVE 0x0001 +#define CORK_FILE_PERMISSIVE 0x0002 + +typedef unsigned int cork_file_mode; + +enum cork_file_type { + CORK_FILE_MISSING = 0, + CORK_FILE_REGULAR = 1, + CORK_FILE_DIRECTORY = 2, + CORK_FILE_SYMLINK = 3, + CORK_FILE_UNKNOWN = 4 +}; + +struct cork_file; + +CORK_API struct cork_file * +cork_file_new(const char *path); + +/* Takes control of path */ +CORK_API struct cork_file * +cork_file_new_from_path(struct cork_path *path); + +CORK_API void +cork_file_free(struct cork_file *file); + +/* File owns the result; you should not free it */ +CORK_API const struct cork_path * +cork_file_path(struct cork_file *file); + +CORK_API int +cork_file_exists(struct cork_file *file, bool *exists); + +CORK_API int +cork_file_type(struct cork_file *file, enum cork_file_type *type); + + +typedef int +(*cork_file_directory_iterator)(struct cork_file *child, const char *rel_name, + void *user_data); + +CORK_API int +cork_file_iterate_directory(struct cork_file *file, + cork_file_directory_iterator iterator, + void *user_data); + +/* If flags includes CORK_FILE_RECURSIVE, this creates parent directories, + * if needed. If flags doesn't include CORK_FILE_PERMISSIVE, then it's an error + * if the directory already exists. */ +CORK_API int +cork_file_mkdir(struct cork_file *file, cork_file_mode mode, + unsigned int flags); + +/* Removes a file or directory. If file is a directory, and flags contains + * CORK_FILE_RECURSIVE, then all of the directory's contents are removed, too. + * Otherwise, the directory must already be empty. */ +CORK_API int +cork_file_remove(struct cork_file *file, unsigned int flags); + + +CORK_API struct cork_file * +cork_path_list_find_file(const struct cork_path_list *list, + const char *rel_path); + + +/*----------------------------------------------------------------------- + * Lists of files + */ + +struct cork_file_list; + +CORK_API struct cork_file_list * +cork_file_list_new_empty(void); + +CORK_API struct cork_file_list * +cork_file_list_new(struct cork_path_list *path_list); + +CORK_API void +cork_file_list_free(struct cork_file_list *list); + +/* Takes control of file. file must not already be in the list. */ +CORK_API void +cork_file_list_add(struct cork_file_list *list, struct cork_file *file); + +CORK_API size_t +cork_file_list_size(struct cork_file_list *list); + +/* The list still owns file; you must not free it. Editing the file updates the + * entry in the list. */ +CORK_API struct cork_file * +cork_file_list_get(struct cork_file_list *list, size_t index); + + +CORK_API struct cork_file_list * +cork_path_list_find_files(const struct cork_path_list *list, + const char *rel_path); + + +/*----------------------------------------------------------------------- + * Walking a directory tree + */ + +#define CORK_SKIP_DIRECTORY 1 + +struct cork_dir_walker { + int + (*enter_directory)(struct cork_dir_walker *walker, const char *full_path, + const char *rel_path, const char *base_name); + + int + (*file)(struct cork_dir_walker *walker, const char *full_path, + const char *rel_path, const char *base_name); + + int + (*leave_directory)(struct cork_dir_walker *walker, const char *full_path, + const char *rel_path, const char *base_name); +}; + +#define cork_dir_walker_enter_directory(w, fp, rp, bn) \ + ((w)->enter_directory((w), (fp), (rp), (bn))) + +#define cork_dir_walker_file(w, fp, rp, bn) \ + ((w)->file((w), (fp), (rp), (bn))) + +#define cork_dir_walker_leave_directory(w, fp, rp, bn) \ + ((w)->leave_directory((w), (fp), (rp), (bn))) + + +CORK_API int +cork_walk_directory(const char *path, struct cork_dir_walker *walker); + + +/*----------------------------------------------------------------------- + * Standard paths and path lists + */ + +CORK_API struct cork_path * +cork_path_home(void); + + +CORK_API struct cork_path_list * +cork_path_config_paths(void); + +CORK_API struct cork_path_list * +cork_path_data_paths(void); + +CORK_API struct cork_path * +cork_path_user_cache_path(void); + +CORK_API struct cork_path * +cork_path_user_runtime_path(void); + + +#endif /* LIBCORK_CORE_FILES_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/os/process.h b/shadowsocksr-libev/src/libcork/include/libcork/os/process.h new file mode 100644 index 00000000000..5d7813dc726 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/os/process.h @@ -0,0 +1,28 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_CORE_PROCESS_H +#define LIBCORK_CORE_PROCESS_H + +#include + + +typedef void +(*cork_cleanup_function)(void); + +CORK_API void +cork_cleanup_at_exit_named(const char *name, int priority, + cork_cleanup_function function); + +#define cork_cleanup_at_exit(priority, function) \ + cork_cleanup_at_exit_named(#function, priority, function) + + +#endif /* LIBCORK_CORE_PROCESS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/os/subprocess.h b/shadowsocksr-libev/src/libcork/include/libcork/os/subprocess.h new file mode 100644 index 00000000000..31c1eb51cb1 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/os/subprocess.h @@ -0,0 +1,197 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_OS_SUBPROCESS_H +#define LIBCORK_OS_SUBPROCESS_H + +#include + +#include +#include +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Environments + */ + +struct cork_env; + +CORK_API struct cork_env * +cork_env_new(void); + +CORK_API struct cork_env * +cork_env_clone_current(void); + +CORK_API void +cork_env_free(struct cork_env *env); + + +CORK_API void +cork_env_replace_current(struct cork_env *env); + + +/* For all of the following, if env is NULL, these functions access or update + * the actual environment of the current process. Otherwise, they act on the + * given environment instance. */ + +CORK_API const char * +cork_env_get(struct cork_env *env, const char *name); + +CORK_API void +cork_env_add(struct cork_env *env, const char *name, const char *value); + +CORK_API void +cork_env_add_printf(struct cork_env *env, const char *name, + const char *format, ...) + CORK_ATTR_PRINTF(3,4); + +CORK_API void +cork_env_add_vprintf(struct cork_env *env, const char *name, + const char *format, va_list args) + CORK_ATTR_PRINTF(3,0); + +CORK_API void +cork_env_remove(struct cork_env *env, const char *name); + + +/*----------------------------------------------------------------------- + * Executing another process + */ + +struct cork_exec; + +CORK_API struct cork_exec * +cork_exec_new(const char *program); + +CORK_ATTR_SENTINEL +CORK_API struct cork_exec * +cork_exec_new_with_params(const char *program, ...); + +CORK_API struct cork_exec * +cork_exec_new_with_param_array(const char *program, char * const *params); + +CORK_API void +cork_exec_free(struct cork_exec *exec); + +CORK_API const char * +cork_exec_description(struct cork_exec *exec); + +CORK_API const char * +cork_exec_program(struct cork_exec *exec); + +CORK_API size_t +cork_exec_param_count(struct cork_exec *exec); + +CORK_API const char * +cork_exec_param(struct cork_exec *exec, size_t index); + +CORK_API void +cork_exec_add_param(struct cork_exec *exec, const char *param); + +/* Can return NULL */ +CORK_API struct cork_env * +cork_exec_env(struct cork_exec *exec); + +/* Takes control of env */ +CORK_API void +cork_exec_set_env(struct cork_exec *exec, struct cork_env *env); + +/* Can return NULL */ +CORK_API const char * +cork_exec_cwd(struct cork_exec *exec); + +CORK_API void +cork_exec_set_cwd(struct cork_exec *exec, const char *directory); + +CORK_API int +cork_exec_run(struct cork_exec *exec); + + +/*----------------------------------------------------------------------- + * Subprocesses + */ + +struct cork_subprocess; + +/* If env is NULL, we use the environment variables of the calling process. */ + +/* Takes control of body */ +CORK_API struct cork_subprocess * +cork_subprocess_new(void *user_data, cork_free_f free_user_data, + cork_run_f run, + struct cork_stream_consumer *stdout_consumer, + struct cork_stream_consumer *stderr_consumer, + int *exit_code); + +/* Takes control of exec */ +CORK_API struct cork_subprocess * +cork_subprocess_new_exec(struct cork_exec *exec, + struct cork_stream_consumer *stdout_consumer, + struct cork_stream_consumer *stderr_consumer, + int *exit_code); + +CORK_API void +cork_subprocess_free(struct cork_subprocess *sub); + +CORK_API struct cork_stream_consumer * +cork_subprocess_stdin(struct cork_subprocess *sub); + +CORK_API int +cork_subprocess_start(struct cork_subprocess *sub); + +CORK_API bool +cork_subprocess_is_finished(struct cork_subprocess *sub); + +CORK_API int +cork_subprocess_abort(struct cork_subprocess *sub); + +CORK_API bool +cork_subprocess_drain(struct cork_subprocess *sub); + +CORK_API int +cork_subprocess_wait(struct cork_subprocess *sub); + + +/*----------------------------------------------------------------------- + * Groups of subprocesses + */ + +struct cork_subprocess_group; + +CORK_API struct cork_subprocess_group * +cork_subprocess_group_new(void); + +CORK_API void +cork_subprocess_group_free(struct cork_subprocess_group *group); + +/* Takes control of sub */ +CORK_API void +cork_subprocess_group_add(struct cork_subprocess_group *group, + struct cork_subprocess *sub); + +CORK_API int +cork_subprocess_group_start(struct cork_subprocess_group *group); + +CORK_API bool +cork_subprocess_group_is_finished(struct cork_subprocess_group *group); + +CORK_API int +cork_subprocess_group_abort(struct cork_subprocess_group *group); + +CORK_API bool +cork_subprocess_group_drain(struct cork_subprocess_group *group); + +CORK_API int +cork_subprocess_group_wait(struct cork_subprocess_group *group); + + +#endif /* LIBCORK_OS_SUBPROCESS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/threads.h b/shadowsocksr-libev/src/libcork/include/libcork/threads.h new file mode 100644 index 00000000000..c008419178a --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/threads.h @@ -0,0 +1,19 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_THREADS_H +#define LIBCORK_THREADS_H + +/*** include all of the parts ***/ + +#include +#include + +#endif /* LIBCORK_THREADS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/threads/atomics.h b/shadowsocksr-libev/src/libcork/include/libcork/threads/atomics.h new file mode 100644 index 00000000000..d1f139b4ca6 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/threads/atomics.h @@ -0,0 +1,50 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_THREADS_ATOMICS_H +#define LIBCORK_THREADS_ATOMICS_H + +#include +#include + +/*----------------------------------------------------------------------- + * GCC intrinsics + */ + +/* Ideally we can use GCC's intrinsics to define everything */ +#if defined(CORK_CONFIG_HAVE_GCC_ATOMICS) + +#define cork_int_atomic_add __sync_add_and_fetch +#define cork_uint_atomic_add __sync_add_and_fetch +#define cork_size_atomic_add __sync_add_and_fetch +#define cork_int_atomic_pre_add __sync_fetch_and_add +#define cork_uint_atomic_pre_add __sync_fetch_and_add +#define cork_size_atomic_pre_add __sync_fetch_and_add +#define cork_int_atomic_sub __sync_sub_and_fetch +#define cork_uint_atomic_sub __sync_sub_and_fetch +#define cork_size_atomic_sub __sync_sub_and_fetch +#define cork_int_atomic_pre_sub __sync_fetch_and_sub +#define cork_uint_atomic_pre_sub __sync_fetch_and_sub +#define cork_size_atomic_pre_sub __sync_fetch_and_sub +#define cork_int_cas __sync_val_compare_and_swap +#define cork_uint_cas __sync_val_compare_and_swap +#define cork_size_cas __sync_val_compare_and_swap +#define cork_ptr_cas __sync_val_compare_and_swap + + +/*----------------------------------------------------------------------- + * End of atomic implementations + */ +#else +#error "No atomics implementation!" +#endif + + +#endif /* LIBCORK_THREADS_ATOMICS_H */ diff --git a/shadowsocksr-libev/src/libcork/include/libcork/threads/basics.h b/shadowsocksr-libev/src/libcork/include/libcork/threads/basics.h new file mode 100644 index 00000000000..6208569a3db --- /dev/null +++ b/shadowsocksr-libev/src/libcork/include/libcork/threads/basics.h @@ -0,0 +1,221 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifndef LIBCORK_THREADS_BASICS_H +#define LIBCORK_THREADS_BASICS_H + +#include + +#include +#include +#include +#include + + +/*----------------------------------------------------------------------- + * Thread IDs + */ + +typedef unsigned int cork_thread_id; + +#define CORK_THREAD_NONE ((cork_thread_id) 0) + +/* Returns a valid ID for any thread — even the main thread and threads that + * aren't created by libcork. */ +CORK_API cork_thread_id +cork_current_thread_get_id(void); + + +/*----------------------------------------------------------------------- + * Threads + */ + +struct cork_thread; + +/* Returns NULL for the main thread, and for any thread not created via + * cork_thread_new/cork_thread_start. */ +CORK_API struct cork_thread * +cork_current_thread_get(void); + +CORK_API struct cork_thread * +cork_thread_new(const char *name, + void *user_data, cork_free_f free_user_data, + cork_run_f run); + +/* Thread must not have been started yet. */ +CORK_API void +cork_thread_free(struct cork_thread *thread); + +CORK_API const char * +cork_thread_get_name(struct cork_thread *thread); + +CORK_API cork_thread_id +cork_thread_get_id(struct cork_thread *thread); + +/* Can only be called once per thread. Thread will automatically be freed when + * its done. */ +CORK_API int +cork_thread_start(struct cork_thread *thread); + +/* Can only be called once per thread; must be called after cork_thread_start. */ +CORK_API int +cork_thread_join(struct cork_thread *thread); + + +/*----------------------------------------------------------------------- + * Executing something once + */ + +#if CORK_CONFIG_HAVE_GCC_ASM && (CORK_CONFIG_ARCH_X86 || CORK_CONFIG_ARCH_X64) +#define cork_pause() \ + do { \ + __asm__ __volatile__ ("pause"); \ + } while (0) +#else +#define cork_pause() do { /* do nothing */ } while (0) +#endif + + +#define cork_once_barrier(name) \ + static struct { \ + volatile int barrier; \ + cork_thread_id initializing_thread; \ + } name##__once; + +#define cork_once(name, call) \ + do { \ + if (CORK_LIKELY(name##__once.barrier == 2)) { \ + /* already initialized */ \ + } else { \ + /* Try to claim the ability to perform the initialization */ \ + int prior_state = cork_int_cas(&name##__once.barrier, 0, 1); \ + if (CORK_LIKELY(prior_state == 0)) { \ + CORK_ATTR_UNUSED int result; \ + /* we get to initialize */ \ + call; \ + result = cork_int_cas(&name##__once.barrier, 1, 2); \ + assert(result == 1); \ + } else { \ + /* someone else is initializing, spin/wait until done */ \ + while (name##__once.barrier != 2) { cork_pause(); } \ + } \ + } \ + } while (0) + +#define cork_once_recursive(name, call) \ + do { \ + if (CORK_LIKELY(name##__once.barrier == 2)) { \ + /* already initialized */ \ + } else { \ + /* Try to claim the ability to perform the initialization */ \ + int prior_state = cork_int_cas(&name##__once.barrier, 0, 1); \ + if (CORK_LIKELY(prior_state == 0)) { \ + CORK_ATTR_UNUSED int result; \ + /* we get to initialize */ \ + name##__once.initializing_thread = \ + cork_current_thread_get_id(); \ + call; \ + result = cork_int_cas(&name##__once.barrier, 1, 2); \ + assert(result == 1); \ + } else { \ + /* someone else is initializing, is it us? */ \ + if (name##__once.initializing_thread == \ + cork_current_thread_get_id()) { \ + /* yep, fall through to let our recursion continue */ \ + } else { \ + /* nope; wait for the initialization to finish */ \ + while (name##__once.barrier != 2) { cork_pause(); } \ + } \ + } \ + } \ + } while (0) + + +/*----------------------------------------------------------------------- + * Thread-local storage + */ + +/* Prefer, in order: + * + * 1) __thread storage class + * 2) pthread_key_t + */ + +#if CORK_CONFIG_HAVE_THREAD_STORAGE_CLASS +#define cork_tls(TYPE, NAME) \ +static __thread TYPE NAME##__tls; \ +\ +static TYPE * \ +NAME##_get(void) \ +{ \ + return &NAME##__tls; \ +} + +#define cork_tls_with_alloc(TYPE, NAME, allocate, deallocate) \ + cork_tls(TYPE, NAME) + +#elif CORK_HAVE_PTHREADS +#include +#include + +#include + +#define cork_tls_with_alloc(TYPE, NAME, allocate, deallocate) \ +static pthread_key_t NAME##__tls_key; \ +cork_once_barrier(NAME##__tls_barrier); \ +\ +static void \ +NAME##__tls_destroy(void *self) \ +{ \ + deallocate(self); \ +} \ +\ +static void \ +NAME##__create_key(void) \ +{ \ + CORK_ATTR_UNUSED int rc; \ + rc = pthread_key_create(&NAME##__tls_key, &NAME##__tls_destroy); \ + assert(rc == 0); \ +} \ +\ +static TYPE * \ +NAME##_get(void) \ +{ \ + TYPE *self; \ + cork_once(NAME##__tls_barrier, NAME##__create_key()); \ + self = pthread_getspecific(NAME##__tls_key); \ + if (CORK_UNLIKELY(self == NULL)) { \ + self = allocate(); \ + pthread_setspecific(NAME##__tls_key, self); \ + } \ + return self; \ +} + +#define cork_tls(TYPE, NAME) \ +\ +static TYPE * \ +NAME##__tls_allocate(void) \ +{ \ + return cork_calloc(1, sizeof(TYPE)); \ +} \ +\ +static void \ +NAME##__tls_deallocate(void *vself) \ +{ \ + cork_cfree(vself, 1, sizeof(TYPE)); \ +} \ +\ +cork_tls_with_alloc(TYPE, NAME, NAME##__tls_allocate, NAME##__tls_deallocate); + +#else +#error "No thread-local storage implementation!" +#endif + + +#endif /* LIBCORK_THREADS_BASICS_H */ diff --git a/shadowsocksr-libev/src/libcork/posix/directory-walker.c b/shadowsocksr-libev/src/libcork/posix/directory-walker.c new file mode 100644 index 00000000000..c5a25c5d4f9 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/directory-walker.c @@ -0,0 +1,122 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license + * details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include +#include +#include +#include +#include + +#include "libcork/core/attributes.h" +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/ds/buffer.h" +#include "libcork/helpers/errors.h" +#include "libcork/helpers/posix.h" +#include "libcork/os/files.h" + + +static int +cork_walk_one_directory(struct cork_dir_walker *w, struct cork_buffer *path, + size_t root_path_size) +{ + DIR *dir = NULL; + struct dirent *entry; + size_t dir_path_size; + + rip_check_posix(dir = opendir(path->buf)); + + cork_buffer_append(path, "/", 1); + dir_path_size = path->size; + errno = 0; + while ((entry = readdir(dir)) != NULL) { + struct stat info; + + /* Skip the "." and ".." entries */ + if (strcmp(entry->d_name, ".") == 0 || + strcmp(entry->d_name, "..") == 0) { + continue; + } + + /* Stat the directory entry */ + cork_buffer_append_string(path, entry->d_name); + ei_check_posix(stat(path->buf, &info)); + + /* If the entry is a subdirectory, recurse into it. */ + if (S_ISDIR(info.st_mode)) { + int rc = cork_dir_walker_enter_directory + (w, path->buf, path->buf + root_path_size, + path->buf + dir_path_size); + if (rc != CORK_SKIP_DIRECTORY) { + ei_check(cork_walk_one_directory(w, path, root_path_size)); + ei_check(cork_dir_walker_leave_directory + (w, path->buf, path->buf + root_path_size, + path->buf + dir_path_size)); + } + } else if (S_ISREG(info.st_mode)) { + ei_check(cork_dir_walker_file + (w, path->buf, path->buf + root_path_size, + path->buf + dir_path_size)); + } + + /* Remove this entry name from the path buffer. */ + cork_buffer_truncate(path, dir_path_size); + + /* We have to reset errno to 0 because of the ambiguous way + * readdir uses a return value of NULL. Other functions may + * return normally yet set errno to a non-zero value. dlopen + * on Mac OS X is an ogreish example. Since an error readdir + * is indicated by returning NULL and setting errno to indicate + * the error, then we need to reset it to zero before each call. + * We shall assume, perhaps to our great misery, that functions + * within this loop do proper error checking and act accordingly. + */ + errno = 0; + } + + /* Check errno immediately after the while loop terminates */ + if (CORK_UNLIKELY(errno != 0)) { + cork_system_error_set(); + goto error; + } + + /* Remove the trailing '/' from the path buffer. */ + cork_buffer_truncate(path, dir_path_size - 1); + rii_check_posix(closedir(dir)); + return 0; + +error: + if (dir != NULL) { + rii_check_posix(closedir(dir)); + } + return -1; +} + +int +cork_walk_directory(const char *path, struct cork_dir_walker *w) +{ + int rc; + char *p; + struct cork_buffer buf = CORK_BUFFER_INIT(); + + /* Seed the buffer with the directory's path, ensuring that there's no + * trailing '/' */ + cork_buffer_append_string(&buf, path); + p = buf.buf; + while (p[buf.size-1] == '/') { + buf.size--; + p[buf.size] = '\0'; + } + rc = cork_walk_one_directory(w, &buf, buf.size + 1); + cork_buffer_done(&buf); + return rc; +} diff --git a/shadowsocksr-libev/src/libcork/posix/env.c b/shadowsocksr-libev/src/libcork/posix/env.c new file mode 100644 index 00000000000..e5f5fd79a4e --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/env.c @@ -0,0 +1,271 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include + +#include "libcork/core.h" +#include "libcork/ds.h" +#include "libcork/os/subprocess.h" +#include "libcork/helpers/errors.h" + +#if defined(__APPLE__) +/* Apple doesn't provide access to the "environ" variable from a shared library. + * There's a workaround function to grab the environ pointer described at [1]. + * + * [1] http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man7/environ.7.html + */ +#include +#define environ (*_NSGetEnviron()) + +#elif !defined(__MINGW32__) +/* On all other POSIX platforms, we assume that environ is available in shared + * libraries. */ +extern char **environ; + +#endif + + +#ifdef __MINGW32__ + +int setenv(const char *name, const char *value, int replace) +{ + int out; + size_t namelen, valuelen; + char *envstr; + + if (!name || !value) return -1; + if (!replace) { + char *oldval = NULL; + oldval = getenv(name); + if (oldval) return 0; + } + + namelen = strlen(name); + valuelen = strlen(value); + envstr = malloc((namelen + valuelen + 2)); + if (!envstr) return -1; + + memcpy(envstr, name, namelen); + envstr[namelen] = '='; + memcpy(envstr + namelen + 1, value, valuelen); + envstr[namelen + valuelen + 1] = 0; + + out = putenv(envstr); + /* putenv(3) makes the argument string part of the environment, + * and changing that string modifies the environment --- which + * means we do not own that storage anymore. Do not free + * envstr. + */ + + return out; +} + +int unsetenv(const char *env) +{ + char *name; + int ret; + + name = malloc(strlen(env)+2); + strcat(strcpy(name, env), "="); + ret = putenv(name); + free(name); + + return ret; +} + +int clearenv(void) +{ + char **env = environ; + if (!env) + return 0; + while (*env) { + free(*env); + env++; + } + free(env); + environ = NULL; + return 0; +} + +#endif + + +struct cork_env_var { + const char *name; + const char *value; +}; + +static struct cork_env_var * +cork_env_var_new(const char *name, const char *value) +{ + struct cork_env_var *var = cork_new(struct cork_env_var); + var->name = cork_strdup(name); + var->value = cork_strdup(value); + return var; +} + +static void +cork_env_var_free(void *vvar) +{ + struct cork_env_var *var = vvar; + cork_strfree(var->name); + cork_strfree(var->value); + cork_delete(struct cork_env_var, var); +} + + +struct cork_env { + struct cork_hash_table *variables; + struct cork_buffer buffer; +}; + +struct cork_env * +cork_env_new(void) +{ + struct cork_env *env = cork_new(struct cork_env); + env->variables = cork_string_hash_table_new(0, 0); + cork_hash_table_set_free_value(env->variables, cork_env_var_free); + cork_buffer_init(&env->buffer); + return env; +} + +static void +cork_env_add_internal(struct cork_env *env, const char *name, const char *value) +{ + if (env == NULL) { + setenv(name, value, true); + } else { + struct cork_env_var *var = cork_env_var_new(name, value); + void *old_var; + + cork_hash_table_put + (env->variables, (void *) var->name, var, NULL, NULL, &old_var); + + if (old_var != NULL) { + cork_env_var_free(old_var); + } + } +} + +struct cork_env * +cork_env_clone_current(void) +{ + char **curr; + struct cork_env *env = cork_env_new(); + + for (curr = environ; *curr != NULL; curr++) { + const char *entry = *curr; + const char *equal; + + equal = strchr(entry, '='); + if (CORK_UNLIKELY(equal == NULL)) { + /* This environment entry is malformed; skip it. */ + continue; + } + + /* Make a copy of the name so that it's NUL-terminated rather than + * equal-terminated. */ + cork_buffer_set(&env->buffer, entry, equal - entry); + cork_env_add_internal(env, env->buffer.buf, equal + 1); + } + + return env; +} + + +void +cork_env_free(struct cork_env *env) +{ + cork_hash_table_free(env->variables); + cork_buffer_done(&env->buffer); + cork_delete(struct cork_env, env); +} + +const char * +cork_env_get(struct cork_env *env, const char *name) +{ + if (env == NULL) { + return getenv(name); + } else { + struct cork_env_var *var = + cork_hash_table_get(env->variables, (void *) name); + return (var == NULL)? NULL: var->value; + } +} + +void +cork_env_add(struct cork_env *env, const char *name, const char *value) +{ + cork_env_add_internal(env, name, value); +} + +void +cork_env_add_vprintf(struct cork_env *env, const char *name, + const char *format, va_list args) +{ + cork_buffer_vprintf(&env->buffer, format, args); + cork_env_add_internal(env, name, env->buffer.buf); +} + +void +cork_env_add_printf(struct cork_env *env, const char *name, + const char *format, ...) +{ + va_list args; + va_start(args, format); + cork_env_add_vprintf(env, name, format, args); + va_end(args); +} + +void +cork_env_remove(struct cork_env *env, const char *name) +{ + if (env == NULL) { + unsetenv(name); + } else { + void *old_var; + cork_hash_table_delete(env->variables, (void *) name, NULL, &old_var); + if (old_var != NULL) { + cork_env_var_free(old_var); + } + } +} + +static enum cork_hash_table_map_result +cork_env_set_vars(void *user_data, struct cork_hash_table_entry *entry) +{ + struct cork_env_var *var = entry->value; + setenv(var->name, var->value, false); + return CORK_HASH_TABLE_MAP_CONTINUE; +} + +#if ((defined(__APPLE__) || (defined(BSD) && (BSD >= 199103))) && !defined(__GNU__)) || defined (__CYGWIN__) +/* A handful of platforms [1] don't provide clearenv(), so we must implement our + * own version that clears the environ array directly. + * + * [1] http://www.gnu.org/software/gnulib/manual/html_node/clearenv.html + */ +static void +clearenv(void) +{ + *environ = NULL; +} + +#else +/* Otherwise assume that we have clearenv available. */ +#endif + +void +cork_env_replace_current(struct cork_env *env) +{ + clearenv(); + cork_hash_table_map(env->variables, NULL, cork_env_set_vars); +} diff --git a/shadowsocksr-libev/src/libcork/posix/exec.c b/shadowsocksr-libev/src/libcork/posix/exec.c new file mode 100644 index 00000000000..06210283999 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/exec.c @@ -0,0 +1,189 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include + +#include "libcork/core.h" +#include "libcork/ds.h" +#include "libcork/os/subprocess.h" +#include "libcork/helpers/errors.h" + +#define ri_check_posix(call) \ + do { \ + while (true) { \ + if ((call) == -1) { \ + if (errno == EINTR) { \ + continue; \ + } else { \ + cork_system_error_set(); \ + CORK_PRINT_ERROR(); \ + return -1; \ + } \ + } else { \ + break; \ + } \ + } \ + } while (0) + + +struct cork_exec { + const char *program; + struct cork_string_array params; + struct cork_env *env; + const char *cwd; + struct cork_buffer description; +}; + +struct cork_exec * +cork_exec_new(const char *program) +{ + struct cork_exec *exec = cork_new(struct cork_exec); + exec->program = cork_strdup(program); + cork_string_array_init(&exec->params); + exec->env = NULL; + exec->cwd = NULL; + cork_buffer_init(&exec->description); + cork_buffer_set_string(&exec->description, program); + return exec; +} + +struct cork_exec * +cork_exec_new_with_params(const char *program, ...) +{ + struct cork_exec *exec; + va_list args; + const char *param; + + exec = cork_exec_new(program); + cork_exec_add_param(exec, program); + va_start(args, program); + while ((param = va_arg(args, const char *)) != NULL) { + cork_exec_add_param(exec, param); + } + return exec; +} + +struct cork_exec * +cork_exec_new_with_param_array(const char *program, char * const *params) +{ + char * const *curr; + struct cork_exec *exec = cork_exec_new(program); + for (curr = params; *curr != NULL; curr++) { + cork_exec_add_param(exec, *curr); + } + return exec; +} + +void +cork_exec_free(struct cork_exec *exec) +{ + cork_strfree(exec->program); + cork_array_done(&exec->params); + if (exec->env != NULL) { + cork_env_free(exec->env); + } + if (exec->cwd != NULL) { + cork_strfree(exec->cwd); + } + cork_buffer_done(&exec->description); + cork_delete(struct cork_exec, exec); +} + +const char * +cork_exec_description(struct cork_exec *exec) +{ + return exec->description.buf; +} + +const char * +cork_exec_program(struct cork_exec *exec) +{ + return exec->program; +} + +size_t +cork_exec_param_count(struct cork_exec *exec) +{ + return cork_array_size(&exec->params); +} + +const char * +cork_exec_param(struct cork_exec *exec, size_t index) +{ + return cork_array_at(&exec->params, index); +} + +void +cork_exec_add_param(struct cork_exec *exec, const char *param) +{ + /* Don't add the first parameter to the description; that's a copy of the + * program name, which we've already added. */ + if (!cork_array_is_empty(&exec->params)) { + cork_buffer_append(&exec->description, " ", 1); + cork_buffer_append_string(&exec->description, param); + } + cork_array_append(&exec->params, cork_strdup(param)); +} + +struct cork_env * +cork_exec_env(struct cork_exec *exec) +{ + return exec->env; +} + +void +cork_exec_set_env(struct cork_exec *exec, struct cork_env *env) +{ + if (exec->env != NULL) { + cork_env_free(exec->env); + } + exec->env = env; +} + +const char * +cork_exec_cwd(struct cork_exec *exec) +{ + return exec->cwd; +} + +void +cork_exec_set_cwd(struct cork_exec *exec, const char *directory) +{ + if (exec->cwd != NULL) { + cork_strfree(exec->cwd); + } + exec->cwd = cork_strdup(directory); +} + +int +cork_exec_run(struct cork_exec *exec) +{ + const char **params; + + /* Make sure the parameter array is NULL-terminated. */ + cork_array_append(&exec->params, NULL); + params = cork_array_elements(&exec->params); + + /* Fill in the requested environment */ + if (exec->env != NULL) { + cork_env_replace_current(exec->env); + } + + /* Change the working directory, if requested */ + if (exec->cwd != NULL) { + ri_check_posix(chdir(exec->cwd)); + } + + /* Execute the new program */ + ri_check_posix(execvp(exec->program, (char * const *) params)); + + /* This is unreachable */ + return 0; +} diff --git a/shadowsocksr-libev/src/libcork/posix/files.c b/shadowsocksr-libev/src/libcork/posix/files.c new file mode 100644 index 00000000000..b33a186d213 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/files.c @@ -0,0 +1,891 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#ifdef __GNU__ +#define _GNU_SOURCE +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#include "libcork/core/attributes.h" +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/ds/array.h" +#include "libcork/ds/buffer.h" +#include "libcork/helpers/errors.h" +#include "libcork/helpers/posix.h" +#include "libcork/os/files.h" +#include "libcork/os/subprocess.h" + + +#if !defined(CORK_DEBUG_FILES) +#define CORK_DEBUG_FILES 0 +#endif + +#if CORK_DEBUG_FILES +#include +#define DEBUG(...) fprintf(stderr, __VA_ARGS__) +#else +#define DEBUG(...) /* no debug messages */ +#endif + + +/*----------------------------------------------------------------------- + * Paths + */ + +struct cork_path { + struct cork_buffer given; +}; + +static struct cork_path * +cork_path_new_internal(const char *str, size_t length) +{ + struct cork_path *path = cork_new(struct cork_path); + cork_buffer_init(&path->given); + if (length == 0) { + cork_buffer_ensure_size(&path->given, 16); + cork_buffer_set(&path->given, "", 0); + } else { + cork_buffer_set(&path->given, str, length); + } + return path; +} + +struct cork_path * +cork_path_new(const char *source) +{ + return cork_path_new_internal(source, source == NULL? 0: strlen(source)); +} + +struct cork_path * +cork_path_clone(const struct cork_path *other) +{ + return cork_path_new_internal(other->given.buf, other->given.size); +} + +void +cork_path_free(struct cork_path *path) +{ + cork_buffer_done(&path->given); + cork_delete(struct cork_path, path); +} + + +void +cork_path_set(struct cork_path *path, const char *content) +{ + if (content == NULL) { + cork_buffer_clear(&path->given); + } else { + cork_buffer_set_string(&path->given, content); + } +} + +const char * +cork_path_get(const struct cork_path *path) +{ + return path->given.buf; +} + +#define cork_path_get(path) ((const char *) (path)->given.buf) +#define cork_path_size(path) ((path)->given.size) +#define cork_path_truncate(path, size) \ + (cork_buffer_truncate(&(path)->given, (size))) + + +int +cork_path_set_cwd(struct cork_path *path) +{ +#ifdef __GNU__ + char *dirname = get_current_dir_name(); + rip_check_posix(dirname); + cork_buffer_set(&path->given, dirname, strlen(dirname)); + free(dirname); +#else + cork_buffer_ensure_size(&path->given, PATH_MAX); + rip_check_posix(getcwd(path->given.buf, PATH_MAX)); + path->given.size = strlen(path->given.buf); +#endif + return 0; +} + +struct cork_path * +cork_path_cwd(void) +{ + struct cork_path *path = cork_path_new(NULL); + ei_check(cork_path_set_cwd(path)); + return path; + +error: + cork_path_free(path); + return NULL; +} + + +int +cork_path_set_absolute(struct cork_path *path) +{ + struct cork_buffer buf; + + if (path->given.size > 0 && + cork_buffer_char(&path->given, 0) == '/') { + /* The path is already absolute. */ + return 0; + } + +#ifdef __GNU__ + char *dirname; + dirname = get_current_dir_name(); + ep_check_posix(dirname); + cork_buffer_init(&buf); + cork_buffer_set(&buf, dirname, strlen(dirname)); + free(dirname); +#else + cork_buffer_init(&buf); + cork_buffer_ensure_size(&buf, PATH_MAX); + ep_check_posix(getcwd(buf.buf, PATH_MAX)); + buf.size = strlen(buf.buf); +#endif + cork_buffer_append(&buf, "/", 1); + cork_buffer_append_copy(&buf, &path->given); + cork_buffer_done(&path->given); + path->given = buf; + return 0; + +error: + cork_buffer_done(&buf); + return -1; +} + +struct cork_path * +cork_path_absolute(const struct cork_path *other) +{ + struct cork_path *path = cork_path_clone(other); + ei_check(cork_path_set_absolute(path)); + return path; + +error: + cork_path_free(path); + return NULL; +} + + +void +cork_path_append(struct cork_path *path, const char *more) +{ + if (more == NULL || more[0] == '\0') { + return; + } + + if (more[0] == '/') { + /* If more starts with a "/", then it's absolute, and should replace + * the contents of the current path. */ + cork_buffer_set_string(&path->given, more); + } else { + /* Otherwise, more is relative, and should be appended to the current + * path. If the current given path doesn't end in a "/", then we need + * to add one to keep the path well-formed. */ + + if (path->given.size > 0 && + cork_buffer_char(&path->given, path->given.size - 1) != '/') { + cork_buffer_append(&path->given, "/", 1); + } + + cork_buffer_append_string(&path->given, more); + } +} + +struct cork_path * +cork_path_join(const struct cork_path *other, const char *more) +{ + struct cork_path *path = cork_path_clone(other); + cork_path_append(path, more); + return path; +} + +void +cork_path_append_path(struct cork_path *path, const struct cork_path *more) +{ + cork_path_append(path, more->given.buf); +} + +struct cork_path * +cork_path_join_path(const struct cork_path *other, const struct cork_path *more) +{ + struct cork_path *path = cork_path_clone(other); + cork_path_append_path(path, more); + return path; +} + + +void +cork_path_set_basename(struct cork_path *path) +{ + char *given = path->given.buf; + const char *last_slash = strrchr(given, '/'); + if (last_slash != NULL) { + size_t offset = last_slash - given; + size_t basename_length = path->given.size - offset - 1; + memmove(given, last_slash + 1, basename_length); + given[basename_length] = '\0'; + path->given.size = basename_length; + } +} + +struct cork_path * +cork_path_basename(const struct cork_path *other) +{ + struct cork_path *path = cork_path_clone(other); + cork_path_set_basename(path); + return path; +} + + +void +cork_path_set_dirname(struct cork_path *path) +{ + const char *given = path->given.buf; + const char *last_slash = strrchr(given, '/'); + if (last_slash == NULL) { + cork_buffer_clear(&path->given); + } else { + size_t offset = last_slash - given; + if (offset == 0) { + /* A special case for the immediate subdirectories of "/" */ + cork_buffer_truncate(&path->given, 1); + } else { + cork_buffer_truncate(&path->given, offset); + } + } +} + +struct cork_path * +cork_path_dirname(const struct cork_path *other) +{ + struct cork_path *path = cork_path_clone(other); + cork_path_set_dirname(path); + return path; +} + + +/*----------------------------------------------------------------------- + * Lists of paths + */ + +struct cork_path_list { + cork_array(struct cork_path *) array; + struct cork_buffer string; +}; + +struct cork_path_list * +cork_path_list_new_empty(void) +{ + struct cork_path_list *list = cork_new(struct cork_path_list); + cork_array_init(&list->array); + cork_buffer_init(&list->string); + return list; +} + +void +cork_path_list_free(struct cork_path_list *list) +{ + size_t i; + for (i = 0; i < cork_array_size(&list->array); i++) { + struct cork_path *path = cork_array_at(&list->array, i); + cork_path_free(path); + } + cork_array_done(&list->array); + cork_buffer_done(&list->string); + cork_delete(struct cork_path_list, list); +} + +const char * +cork_path_list_to_string(const struct cork_path_list *list) +{ + return list->string.buf; +} + +void +cork_path_list_add(struct cork_path_list *list, struct cork_path *path) +{ + cork_array_append(&list->array, path); + if (cork_array_size(&list->array) > 1) { + cork_buffer_append(&list->string, ":", 1); + } + cork_buffer_append_string(&list->string, cork_path_get(path)); +} + +size_t +cork_path_list_size(const struct cork_path_list *list) +{ + return cork_array_size(&list->array); +} + +const struct cork_path * +cork_path_list_get(const struct cork_path_list *list, size_t index) +{ + return cork_array_at(&list->array, index); +} + +static void +cork_path_list_append_string(struct cork_path_list *list, const char *str) +{ + struct cork_path *path; + const char *curr = str; + const char *next; + + while ((next = strchr(curr, ':')) != NULL) { + size_t size = next - curr; + path = cork_path_new_internal(curr, size); + cork_path_list_add(list, path); + curr = next + 1; + } + + path = cork_path_new(curr); + cork_path_list_add(list, path); +} + +struct cork_path_list * +cork_path_list_new(const char *str) +{ + struct cork_path_list *list = cork_path_list_new_empty(); + cork_path_list_append_string(list, str); + return list; +} + + +/*----------------------------------------------------------------------- + * Files + */ + +struct cork_file { + struct cork_path *path; + struct stat stat; + enum cork_file_type type; + bool has_stat; +}; + +static void +cork_file_init(struct cork_file *file, struct cork_path *path) +{ + file->path = path; + file->has_stat = false; +} + +struct cork_file * +cork_file_new(const char *path) +{ + return cork_file_new_from_path(cork_path_new(path)); +} + +struct cork_file * +cork_file_new_from_path(struct cork_path *path) +{ + struct cork_file *file = cork_new(struct cork_file); + cork_file_init(file, path); + return file; +} + +static void +cork_file_reset(struct cork_file *file) +{ + file->has_stat = false; +} + +static void +cork_file_done(struct cork_file *file) +{ + cork_path_free(file->path); +} + +void +cork_file_free(struct cork_file *file) +{ + cork_file_done(file); + cork_delete(struct cork_file, file); +} + +const struct cork_path * +cork_file_path(struct cork_file *file) +{ + return file->path; +} + +static int +cork_file_stat(struct cork_file *file) +{ + if (file->has_stat) { + return 0; + } else { + int rc; + rc = stat(cork_path_get(file->path), &file->stat); + + if (rc == -1) { + if (errno == ENOENT || errno == ENOTDIR) { + file->type = CORK_FILE_MISSING; + file->has_stat = true; + return 0; + } else { + cork_system_error_set(); + return -1; + } + } + + if (S_ISREG(file->stat.st_mode)) { + file->type = CORK_FILE_REGULAR; + } else if (S_ISDIR(file->stat.st_mode)) { + file->type = CORK_FILE_DIRECTORY; + } else if (S_ISLNK(file->stat.st_mode)) { + file->type = CORK_FILE_SYMLINK; + } else { + file->type = CORK_FILE_UNKNOWN; + } + + file->has_stat = true; + return 0; + } +} + +int +cork_file_exists(struct cork_file *file, bool *exists) +{ + rii_check(cork_file_stat(file)); + *exists = (file->type != CORK_FILE_MISSING); + return 0; +} + +int +cork_file_type(struct cork_file *file, enum cork_file_type *type) +{ + rii_check(cork_file_stat(file)); + *type = file->type; + return 0; +} + + +struct cork_file * +cork_path_list_find_file(const struct cork_path_list *list, + const char *rel_path) +{ + size_t i; + size_t count = cork_path_list_size(list); + struct cork_file *file; + + for (i = 0; i < count; i++) { + const struct cork_path *path = cork_path_list_get(list, i); + struct cork_path *joined = cork_path_join(path, rel_path); + bool exists; + file = cork_file_new_from_path(joined); + ei_check(cork_file_exists(file, &exists)); + if (exists) { + return file; + } else { + cork_file_free(file); + } + } + + cork_error_set_printf + (ENOENT, "%s not found in %s", + rel_path, cork_path_list_to_string(list)); + return NULL; + +error: + cork_file_free(file); + return NULL; +} + + +/*----------------------------------------------------------------------- + * Directories + */ + +int +cork_file_iterate_directory(struct cork_file *file, + cork_file_directory_iterator iterator, + void *user_data) +{ + DIR *dir = NULL; + struct dirent *entry; + size_t dir_path_size; + struct cork_path *child_path; + struct cork_file child_file; + + rip_check_posix(dir = opendir(cork_path_get(file->path))); + child_path = cork_path_clone(file->path); + cork_file_init(&child_file, child_path); + dir_path_size = cork_path_size(child_path); + + errno = 0; + while ((entry = readdir(dir)) != NULL) { + /* Skip the "." and ".." entries */ + if (strcmp(entry->d_name, ".") == 0 || + strcmp(entry->d_name, "..") == 0) { + continue; + } + + cork_path_append(child_path, entry->d_name); + ei_check(cork_file_stat(&child_file)); + + /* If the entry is a subdirectory, recurse into it. */ + ei_check(iterator(&child_file, entry->d_name, user_data)); + + /* Remove this entry name from the path buffer. */ + cork_path_truncate(child_path, dir_path_size); + cork_file_reset(&child_file); + + /* We have to reset errno to 0 because of the ambiguous way readdir uses + * a return value of NULL. Other functions may return normally yet set + * errno to a non-zero value. dlopen on Mac OS X is an ogreish example. + * Since an error readdir is indicated by returning NULL and setting + * errno to indicate the error, then we need to reset it to zero before + * each call. We shall assume, perhaps to our great misery, that + * functions within this loop do proper error checking and act + * accordingly. */ + errno = 0; + } + + /* Check errno immediately after the while loop terminates */ + if (CORK_UNLIKELY(errno != 0)) { + cork_system_error_set(); + goto error; + } + + cork_file_done(&child_file); + rii_check_posix(closedir(dir)); + return 0; + +error: + cork_file_done(&child_file); + rii_check_posix(closedir(dir)); + return -1; +} + +static int +cork_file_mkdir_one(struct cork_file *file, cork_file_mode mode, + unsigned int flags) +{ + DEBUG("mkdir %s\n", cork_path_get(file->path)); + + /* First check if the directory already exists. */ + rii_check(cork_file_stat(file)); + if (file->type == CORK_FILE_DIRECTORY) { + DEBUG(" Already exists!\n"); + if (!(flags & CORK_FILE_PERMISSIVE)) { + cork_system_error_set_explicit(EEXIST); + return -1; + } else { + return 0; + } + } else if (file->type != CORK_FILE_MISSING) { + DEBUG(" Exists and not a directory!\n"); + cork_system_error_set_explicit(EEXIST); + return -1; + } + + /* If the caller asked for a recursive mkdir, then make sure the parent + * directory exists. */ + if (flags & CORK_FILE_RECURSIVE) { + struct cork_path *parent = cork_path_dirname(file->path); + DEBUG(" Checking parent %s\n", cork_path_get(parent)); + if (parent->given.size == 0) { + /* There is no parent; we're either at the filesystem root (for an + * absolute path) or the current directory (for a relative one). + * Either way, we can assume it already exists. */ + cork_path_free(parent); + } else { + int rc; + struct cork_file parent_file; + cork_file_init(&parent_file, parent); + rc = cork_file_mkdir_one + (&parent_file, mode, flags | CORK_FILE_PERMISSIVE); + cork_file_done(&parent_file); + rii_check(rc); + } + } + + /* Create the directory already! */ + DEBUG(" Creating %s\n", cork_path_get(file->path)); + rii_check_posix(mkdir(cork_path_get(file->path), mode)); + return 0; +} + +int +cork_file_mkdir(struct cork_file *file, cork_file_mode mode, + unsigned int flags) +{ + return cork_file_mkdir_one(file, mode, flags); +} + +static int +cork_file_remove_iterator(struct cork_file *file, const char *rel_name, + void *user_data) +{ + unsigned int *flags = user_data; + return cork_file_remove(file, *flags); +} + +int +cork_file_remove(struct cork_file *file, unsigned int flags) +{ + DEBUG("rm %s\n", cork_path_get(file->path)); + rii_check(cork_file_stat(file)); + + if (file->type == CORK_FILE_MISSING) { + if (flags & CORK_FILE_PERMISSIVE) { + return 0; + } else { + cork_system_error_set_explicit(ENOENT); + return -1; + } + } else if (file->type == CORK_FILE_DIRECTORY) { + if (flags & CORK_FILE_RECURSIVE) { + /* The user asked that we delete the contents of the directory + * first. */ + rii_check(cork_file_iterate_directory + (file, cork_file_remove_iterator, &flags)); + } + + rii_check_posix(rmdir(cork_path_get(file->path))); + return 0; + } else { + rii_check(unlink(cork_path_get(file->path))); + return 0; + } +} + + +/*----------------------------------------------------------------------- + * Lists of files + */ + +struct cork_file_list { + cork_array(struct cork_file *) array; +}; + +struct cork_file_list * +cork_file_list_new_empty(void) +{ + struct cork_file_list *list = cork_new(struct cork_file_list); + cork_array_init(&list->array); + return list; +} + +void +cork_file_list_free(struct cork_file_list *list) +{ + size_t i; + for (i = 0; i < cork_array_size(&list->array); i++) { + struct cork_file *file = cork_array_at(&list->array, i); + cork_file_free(file); + } + cork_array_done(&list->array); + cork_delete(struct cork_file_list, list); +} + +void +cork_file_list_add(struct cork_file_list *list, struct cork_file *file) +{ + cork_array_append(&list->array, file); +} + +size_t +cork_file_list_size(struct cork_file_list *list) +{ + return cork_array_size(&list->array); +} + +struct cork_file * +cork_file_list_get(struct cork_file_list *list, size_t index) +{ + return cork_array_at(&list->array, index); +} + +struct cork_file_list * +cork_file_list_new(struct cork_path_list *path_list) +{ + struct cork_file_list *list = cork_file_list_new_empty(); + size_t count = cork_path_list_size(path_list); + size_t i; + + for (i = 0; i < count; i++) { + const struct cork_path *path = cork_path_list_get(path_list, i); + struct cork_file *file = cork_file_new(cork_path_get(path)); + cork_array_append(&list->array, file); + } + + return list; +} + + +struct cork_file_list * +cork_path_list_find_files(const struct cork_path_list *path_list, + const char *rel_path) +{ + size_t i; + size_t count = cork_path_list_size(path_list); + struct cork_file_list *list = cork_file_list_new_empty(); + struct cork_file *file; + + for (i = 0; i < count; i++) { + const struct cork_path *path = cork_path_list_get(path_list, i); + struct cork_path *joined = cork_path_join(path, rel_path); + bool exists; + file = cork_file_new_from_path(joined); + ei_check(cork_file_exists(file, &exists)); + if (exists) { + cork_file_list_add(list, file); + } else { + cork_file_free(file); + } + } + + return list; + +error: + cork_file_list_free(list); + cork_file_free(file); + return NULL; +} + + +/*----------------------------------------------------------------------- + * Standard paths and path lists + */ + +#define empty_string(str) ((str) == NULL || (str)[0] == '\0') + +struct cork_path * +cork_path_home(void) +{ + const char *path = cork_env_get(NULL, "HOME"); + if (empty_string(path)) { + cork_undefined("Cannot determine home directory"); + return NULL; + } else { + return cork_path_new(path); + } +} + + +struct cork_path_list * +cork_path_config_paths(void) +{ + struct cork_path_list *list = cork_path_list_new_empty(); + const char *var; + struct cork_path *path; + + /* The first entry should be the user's configuration directory. This is + * specified by $XDG_CONFIG_HOME, with $HOME/.config as the default. */ + var = cork_env_get(NULL, "XDG_CONFIG_HOME"); + if (empty_string(var)) { + ep_check(path = cork_path_home()); + cork_path_append(path, ".config"); + cork_path_list_add(list, path); + } else { + path = cork_path_new(var); + cork_path_list_add(list, path); + } + + /* The remaining entries should be the system-wide configuration + * directories. These are specified by $XDG_CONFIG_DIRS, with /etc/xdg as + * the default. */ + var = cork_env_get(NULL, "XDG_CONFIG_DIRS"); + if (empty_string(var)) { + path = cork_path_new("/etc/xdg"); + cork_path_list_add(list, path); + } else { + cork_path_list_append_string(list, var); + } + + return list; + +error: + cork_path_list_free(list); + return NULL; +} + +struct cork_path_list * +cork_path_data_paths(void) +{ + struct cork_path_list *list = cork_path_list_new_empty(); + const char *var; + struct cork_path *path; + + /* The first entry should be the user's data directory. This is specified + * by $XDG_DATA_HOME, with $HOME/.local/share as the default. */ + var = cork_env_get(NULL, "XDG_DATA_HOME"); + if (empty_string(var)) { + ep_check(path = cork_path_home()); + cork_path_append(path, ".local/share"); + cork_path_list_add(list, path); + } else { + path = cork_path_new(var); + cork_path_list_add(list, path); + } + + /* The remaining entries should be the system-wide configuration + * directories. These are specified by $XDG_DATA_DIRS, with + * /usr/local/share:/usr/share as the the default. */ + var = cork_env_get(NULL, "XDG_DATA_DIRS"); + if (empty_string(var)) { + path = cork_path_new("/usr/local/share"); + cork_path_list_add(list, path); + path = cork_path_new("/usr/share"); + cork_path_list_add(list, path); + } else { + cork_path_list_append_string(list, var); + } + + return list; + +error: + cork_path_list_free(list); + return NULL; +} + +struct cork_path * +cork_path_user_cache_path(void) +{ + const char *var; + struct cork_path *path; + + /* The user's cache directory is specified by $XDG_CACHE_HOME, with + * $HOME/.cache as the default. */ + var = cork_env_get(NULL, "XDG_CACHE_HOME"); + if (empty_string(var)) { + rpp_check(path = cork_path_home()); + cork_path_append(path, ".cache"); + return path; + } else { + return cork_path_new(var); + } +} + +struct cork_path * +cork_path_user_runtime_path(void) +{ + const char *var; + + /* The user's cache directory is specified by $XDG_RUNTIME_DIR, with + * no default given by the spec. */ + var = cork_env_get(NULL, "XDG_RUNTIME_DIR"); + if (empty_string(var)) { + cork_undefined("Cannot determine user-specific runtime directory"); + return NULL; + } else { + return cork_path_new(var); + } +} diff --git a/shadowsocksr-libev/src/libcork/posix/process.c b/shadowsocksr-libev/src/libcork/posix/process.c new file mode 100644 index 00000000000..72afdd36dc4 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/process.c @@ -0,0 +1,116 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include + +#include "libcork/core.h" +#include "libcork/ds.h" +#include "libcork/os/process.h" +#include "libcork/helpers/errors.h" + + +#if !defined(CORK_DEBUG_PROCESS) +#define CORK_DEBUG_PROCESS 0 +#endif + +#if CORK_DEBUG_PROCESS +#include +#define DEBUG(...) fprintf(stderr, __VA_ARGS__) +#else +#define DEBUG(...) /* no debug messages */ +#endif + + +struct cork_cleanup_entry { + struct cork_dllist_item item; + int priority; + const char *name; + cork_cleanup_function function; +}; + +static struct cork_cleanup_entry * +cork_cleanup_entry_new(const char *name, int priority, + cork_cleanup_function function) +{ + struct cork_cleanup_entry *self = cork_new(struct cork_cleanup_entry); + self->priority = priority; + self->name = cork_strdup(name); + self->function = function; + return self; +} + +static void +cork_cleanup_entry_free(struct cork_cleanup_entry *self) +{ + cork_strfree(self->name); + cork_delete(struct cork_cleanup_entry, self); +} + +static struct cork_dllist cleanup_entries = CORK_DLLIST_INIT(cleanup_entries); +static bool cleanup_registered = false; + +static void +cork_cleanup_call_one(struct cork_dllist_item *item, void *user_data) +{ + struct cork_cleanup_entry *entry = + cork_container_of(item, struct cork_cleanup_entry, item); + cork_cleanup_function function = entry->function; + DEBUG("Call cleanup function [%d] %s\n", entry->priority, entry->name); + /* We need to free the entry before calling the entry's function, since one + * of the functions that libcork registers frees the allocator instance that + * we'd use to free the entry. If we called the function first, the + * allocator would be freed before we could use it to free the entry. */ + cork_cleanup_entry_free(entry); + function(); +} + +static void +cork_cleanup_call_all(void) +{ + cork_dllist_map(&cleanup_entries, cork_cleanup_call_one, NULL); +} + +static void +cork_cleanup_entry_add(struct cork_cleanup_entry *entry) +{ + struct cork_dllist_item *curr; + + if (CORK_UNLIKELY(!cleanup_registered)) { + atexit(cork_cleanup_call_all); + cleanup_registered = true; + } + + /* Linear search through the list of existing cleanup functions. When we + * find the first existing function with a higher priority, we've found + * where to insert the new function. */ + for (curr = cork_dllist_start(&cleanup_entries); + !cork_dllist_is_end(&cleanup_entries, curr); curr = curr->next) { + struct cork_cleanup_entry *existing = + cork_container_of(curr, struct cork_cleanup_entry, item); + if (existing->priority > entry->priority) { + cork_dllist_add_before(&existing->item, &entry->item); + return; + } + } + + /* If we fall through the loop, then the new function should be appended to + * the end of the list. */ + cork_dllist_add(&cleanup_entries, &entry->item); +} + + +CORK_API void +cork_cleanup_at_exit_named(const char *name, int priority, + cork_cleanup_function function) +{ + struct cork_cleanup_entry *entry = + cork_cleanup_entry_new(name, priority, function); + DEBUG("Register cleanup function [%d] %s\n", priority, name); + cork_cleanup_entry_add(entry); +} diff --git a/shadowsocksr-libev/src/libcork/posix/subprocess.c b/shadowsocksr-libev/src/libcork/posix/subprocess.c new file mode 100644 index 00000000000..063017fadf7 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/posix/subprocess.c @@ -0,0 +1,664 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2012-2014, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#include +#include +#include +#include +#ifndef __MINGW32__ +//#include +#include +#endif +#include + +#include "libcork/core.h" +#include "libcork/ds.h" +#include "libcork/os/subprocess.h" +#include "libcork/threads/basics.h" +#include "libcork/helpers/errors.h" +#include "libcork/helpers/posix.h" + + +#if !defined(CORK_DEBUG_SUBPROCESS) +#define CORK_DEBUG_SUBPROCESS 0 +#endif + +#if CORK_DEBUG_SUBPROCESS +#include +#define DEBUG(...) fprintf(stderr, __VA_ARGS__) +#else +#define DEBUG(...) /* no debug messages */ +#endif + + +/*----------------------------------------------------------------------- + * Subprocess groups + */ + +#define BUF_SIZE 4096 + +struct cork_subprocess_group { + cork_array(struct cork_subprocess *) subprocesses; +}; + +struct cork_subprocess_group * +cork_subprocess_group_new(void) +{ + struct cork_subprocess_group *group = + cork_new(struct cork_subprocess_group); + cork_pointer_array_init + (&group->subprocesses, (cork_free_f) cork_subprocess_free); + return group; +} + +void +cork_subprocess_group_free(struct cork_subprocess_group *group) +{ + cork_array_done(&group->subprocesses); + cork_delete(struct cork_subprocess_group, group); +} + +void +cork_subprocess_group_add(struct cork_subprocess_group *group, + struct cork_subprocess *sub) +{ + cork_array_append(&group->subprocesses, sub); +} + + +/*----------------------------------------------------------------------- + * Pipes (parent reads) + */ + +struct cork_read_pipe { + struct cork_stream_consumer *consumer; + int fds[2]; + bool first; +}; + +static void +cork_read_pipe_init(struct cork_read_pipe *p, struct cork_stream_consumer *consumer) +{ + p->consumer = consumer; + p->fds[0] = -1; + p->fds[1] = -1; +} + +static int +cork_read_pipe_close_read(struct cork_read_pipe *p) +{ + if (p->fds[0] != -1) { + DEBUG("Closing read pipe %d\n", p->fds[0]); + rii_check_posix(close(p->fds[0])); + p->fds[0] = -1; + } + return 0; +} + +static int +cork_read_pipe_close_write(struct cork_read_pipe *p) +{ + if (p->fds[1] != -1) { + DEBUG("Closing write pipe %d\n", p->fds[1]); + rii_check_posix(close(p->fds[1])); + p->fds[1] = -1; + } + return 0; +} + +static void +cork_read_pipe_close(struct cork_read_pipe *p) +{ + cork_read_pipe_close_read(p); + cork_read_pipe_close_write(p); +} + +static void +cork_read_pipe_done(struct cork_read_pipe *p) +{ + cork_read_pipe_close(p); +} + +static int +cork_read_pipe_open(struct cork_read_pipe *p) +{ + if (p->consumer != NULL) { + int flags; + + /* We want the read end of the pipe to be non-blocking. */ + DEBUG("[read] Opening pipe\n"); + rii_check_posix(pipe(p->fds)); + DEBUG("[read] Got read=%d write=%d\n", p->fds[0], p->fds[1]); + DEBUG("[read] Setting non-blocking flag on read pipe\n"); + ei_check_posix(flags = fcntl(p->fds[0], F_GETFD)); + flags |= O_NONBLOCK; + ei_check_posix(fcntl(p->fds[0], F_SETFD, flags)); + } + + p->first = true; + return 0; + +error: + cork_read_pipe_close(p); + return -1; +} + +static int +cork_read_pipe_dup(struct cork_read_pipe *p, int fd) +{ + if (p->fds[1] != -1) { + rii_check_posix(dup2(p->fds[1], fd)); + } + return 0; +} + +static int +cork_read_pipe_read(struct cork_read_pipe *p, char *buf, bool *progress) +{ + if (p->fds[0] == -1) { + return 0; + } + + do { + DEBUG("[read] Reading from pipe %d\n", p->fds[0]); + ssize_t bytes_read = read(p->fds[0], buf, BUF_SIZE); + if (bytes_read == -1) { + if (errno == EAGAIN) { + /* We've exhausted all of the data currently available. */ + DEBUG("[read] No more bytes without blocking\n"); + return 0; + } else if (errno == EINTR) { + /* Interrupted by a signal; return so that our wait loop can + * catch that. */ + DEBUG("[read] Interrupted by signal\n"); + return 0; + } else { + /* An actual error */ + cork_system_error_set(); + DEBUG("[read] Error: %s\n", cork_error_message()); + return -1; + } + } else if (bytes_read == 0) { + DEBUG("[read] End of stream\n"); + *progress = true; + rii_check(cork_stream_consumer_eof(p->consumer)); + rii_check_posix(close(p->fds[0])); + p->fds[0] = -1; + return 0; + } else { + DEBUG("[read] Got %zd bytes\n", bytes_read); + *progress = true; + rii_check(cork_stream_consumer_data + (p->consumer, buf, bytes_read, p->first)); + p->first = false; + } + } while (true); +} + +static bool +cork_read_pipe_is_finished(struct cork_read_pipe *p) +{ + return p->fds[0] == -1; +} + + +/*----------------------------------------------------------------------- + * Pipes (parent writes) + */ + +struct cork_write_pipe { + struct cork_stream_consumer consumer; + int fds[2]; +}; + +static int +cork_write_pipe_close_read(struct cork_write_pipe *p) +{ + if (p->fds[0] != -1) { + DEBUG("[write] Closing read pipe %d\n", p->fds[0]); + rii_check_posix(close(p->fds[0])); + p->fds[0] = -1; + } + return 0; +} + +static int +cork_write_pipe_close_write(struct cork_write_pipe *p) +{ + if (p->fds[1] != -1) { + DEBUG("[write] Closing write pipe %d\n", p->fds[1]); + rii_check_posix(close(p->fds[1])); + p->fds[1] = -1; + } + return 0; +} + +static int +cork_write_pipe__data(struct cork_stream_consumer *consumer, + const void *buf, size_t size, bool is_first_chunk) +{ + struct cork_write_pipe *p = + cork_container_of(consumer, struct cork_write_pipe, consumer); + rii_check_posix(write(p->fds[1], buf, size)); + return 0; +} + +static int +cork_write_pipe__eof(struct cork_stream_consumer *consumer) +{ + struct cork_write_pipe *p = + cork_container_of(consumer, struct cork_write_pipe, consumer); + return cork_write_pipe_close_write(p); +} + +static void +cork_write_pipe__free(struct cork_stream_consumer *consumer) +{ +} + +static void +cork_write_pipe_init(struct cork_write_pipe *p) +{ + p->consumer.data = cork_write_pipe__data; + p->consumer.eof = cork_write_pipe__eof; + p->consumer.free = cork_write_pipe__free; + p->fds[0] = -1; + p->fds[1] = -1; +} + +static void +cork_write_pipe_close(struct cork_write_pipe *p) +{ + cork_write_pipe_close_read(p); + cork_write_pipe_close_write(p); +} + +static void +cork_write_pipe_done(struct cork_write_pipe *p) +{ + cork_write_pipe_close(p); +} + +static int +cork_write_pipe_open(struct cork_write_pipe *p) +{ + DEBUG("[write] Opening writer pipe\n"); + rii_check_posix(pipe(p->fds)); + DEBUG("[write] Got read=%d write=%d\n", p->fds[0], p->fds[1]); + return 0; +} + +static int +cork_write_pipe_dup(struct cork_write_pipe *p, int fd) +{ + if (p->fds[0] != -1) { + rii_check_posix(dup2(p->fds[0], fd)); + } + return 0; +} + + +/*----------------------------------------------------------------------- + * Subprocesses + */ + +struct cork_subprocess { + pid_t pid; + struct cork_write_pipe stdin_pipe; + struct cork_read_pipe stdout_pipe; + struct cork_read_pipe stderr_pipe; + void *user_data; + cork_free_f free_user_data; + cork_run_f run; + int *exit_code; + char buf[BUF_SIZE]; +}; + +struct cork_subprocess * +cork_subprocess_new(void *user_data, cork_free_f free_user_data, + cork_run_f run, + struct cork_stream_consumer *stdout_consumer, + struct cork_stream_consumer *stderr_consumer, + int *exit_code) +{ + struct cork_subprocess *self = cork_new(struct cork_subprocess); + cork_write_pipe_init(&self->stdin_pipe); + cork_read_pipe_init(&self->stdout_pipe, stdout_consumer); + cork_read_pipe_init(&self->stderr_pipe, stderr_consumer); + self->pid = 0; + self->user_data = user_data; + self->free_user_data = free_user_data; + self->run = run; + self->exit_code = exit_code; + return self; +} + +void +cork_subprocess_free(struct cork_subprocess *self) +{ + cork_free_user_data(self); + cork_write_pipe_done(&self->stdin_pipe); + cork_read_pipe_done(&self->stdout_pipe); + cork_read_pipe_done(&self->stderr_pipe); + cork_delete(struct cork_subprocess, self); +} + +struct cork_stream_consumer * +cork_subprocess_stdin(struct cork_subprocess *self) +{ + return &self->stdin_pipe.consumer; +} + + +/*----------------------------------------------------------------------- + * Executing another program + */ + +static int +cork_exec__run(void *vself) +{ + struct cork_exec *exec = vself; + return cork_exec_run(exec); +} + +static void +cork_exec__free(void *vself) +{ + struct cork_exec *exec = vself; + cork_exec_free(exec); +} + +struct cork_subprocess * +cork_subprocess_new_exec(struct cork_exec *exec, + struct cork_stream_consumer *out, + struct cork_stream_consumer *err, + int *exit_code) +{ + return cork_subprocess_new + (exec, cork_exec__free, + cork_exec__run, + out, err, exit_code); +} + + +/*----------------------------------------------------------------------- + * Running subprocesses + */ + +int +cork_subprocess_start(struct cork_subprocess *self) +{ + pid_t pid; + + /* Create the stdout and stderr pipes. */ + if (cork_write_pipe_open(&self->stdin_pipe) == -1) { + return -1; + } + if (cork_read_pipe_open(&self->stdout_pipe) == -1) { + cork_write_pipe_close(&self->stdin_pipe); + return -1; + } + if (cork_read_pipe_open(&self->stderr_pipe) == -1) { + cork_write_pipe_close(&self->stdin_pipe); + cork_read_pipe_close(&self->stdout_pipe); + return -1; + } + + /* Fork the child process. */ + DEBUG("Forking child process\n"); + pid = fork(); + if (pid == 0) { + /* Child process */ + int rc; + + /* Close the parent's end of the pipes */ + DEBUG("[child] "); + cork_write_pipe_close_write(&self->stdin_pipe); + DEBUG("[child] "); + cork_read_pipe_close_read(&self->stdout_pipe); + DEBUG("[child] "); + cork_read_pipe_close_read(&self->stderr_pipe); + + /* Bind the stdout and stderr pipes */ + if (cork_write_pipe_dup(&self->stdin_pipe, STDIN_FILENO) == -1) { + _exit(EXIT_FAILURE); + } + if (cork_read_pipe_dup(&self->stdout_pipe, STDOUT_FILENO) == -1) { + _exit(EXIT_FAILURE); + } + if (cork_read_pipe_dup(&self->stderr_pipe, STDERR_FILENO) == -1) { + _exit(EXIT_FAILURE); + } + + /* Run the subprocess */ + rc = self->run(self->user_data); + if (CORK_LIKELY(rc == 0)) { + _exit(EXIT_SUCCESS); + } else { + fprintf(stderr, "%s\n", cork_error_message()); + _exit(EXIT_FAILURE); + } + } else if (pid < 0) { + /* Error forking */ + cork_system_error_set(); + return -1; + } else { + /* Parent process */ + DEBUG(" Child PID=%d\n", (int) pid); + self->pid = pid; + cork_write_pipe_close_read(&self->stdin_pipe); + cork_read_pipe_close_write(&self->stdout_pipe); + cork_read_pipe_close_write(&self->stderr_pipe); + return 0; + } +} + +static int +cork_subprocess_reap(struct cork_subprocess *self, int flags, bool *progress) +{ + int pid; + int status; + rii_check_posix(pid = waitpid(self->pid, &status, flags)); + if (pid == self->pid) { + *progress = true; + self->pid = 0; + if (self->exit_code != NULL) { + *self->exit_code = WEXITSTATUS(status); + } + } + return 0; +} + +int +cork_subprocess_abort(struct cork_subprocess *self) +{ + if (self->pid > 0) { + CORK_ATTR_UNUSED bool progress; + DEBUG("Terminating child process %d\n", (int) self->pid); + kill(self->pid, SIGTERM); + return cork_subprocess_reap(self, 0, &progress); + } else { + return 0; + } +} + +bool +cork_subprocess_is_finished(struct cork_subprocess *self) +{ + return (self->pid == 0) + && cork_read_pipe_is_finished(&self->stdout_pipe) + && cork_read_pipe_is_finished(&self->stderr_pipe); +} + +#if defined(__APPLE__) || defined(__MINGW32__) +#include +#define THREAD_YIELD pthread_yield_np +#elif defined(__linux__) || defined(BSD) || defined(__sun) || defined(__FreeBSD_kernel__) || defined(__GNU__) || defined(__CYGWIN__) +#include +#define THREAD_YIELD sched_yield +#else +#error "Unknown thread yield implementation" +#endif + +static void +cork_subprocess_yield(unsigned int *spin_count) +{ + /* Adapted from + * http://www.1024cores.net/home/lock-free-algorithms/tricks/spinning */ + + if (*spin_count < 10) { + /* Spin-wait */ + cork_pause(); + } else if (*spin_count < 20) { + /* A more intense spin-wait */ + int i; + for (i = 0; i < 50; i++) { + cork_pause(); + } + } else if (*spin_count < 22) { + THREAD_YIELD(); + } else if (*spin_count < 24) { + usleep(0); + } else if (*spin_count < 50) { + usleep(1); + } else if (*spin_count < 75) { + usleep((*spin_count - 49) * 1000); + } else { + usleep(25000); + } + + (*spin_count)++; +} + +static int +cork_subprocess_drain_(struct cork_subprocess *self, bool *progress) +{ + rii_check(cork_read_pipe_read(&self->stdout_pipe, self->buf, progress)); + rii_check(cork_read_pipe_read(&self->stderr_pipe, self->buf, progress)); + if (self->pid > 0) { + return cork_subprocess_reap(self, WNOHANG, progress); + } else { + return 0; + } +} + +bool +cork_subprocess_drain(struct cork_subprocess *self) +{ + bool progress; + cork_subprocess_drain_(self, &progress); + return progress; +} + +int +cork_subprocess_wait(struct cork_subprocess *self) +{ + unsigned int spin_count = 0; + bool progress; + while (!cork_subprocess_is_finished(self)) { + progress = false; + rii_check(cork_subprocess_drain_(self, &progress)); + if (!progress) { + cork_subprocess_yield(&spin_count); + } + } + return 0; +} + + +/*----------------------------------------------------------------------- + * Running subprocess groups + */ + +static int +cork_subprocess_group_terminate(struct cork_subprocess_group *group) +{ + size_t i; + for (i = 0; i < cork_array_size(&group->subprocesses); i++) { + struct cork_subprocess *sub = cork_array_at(&group->subprocesses, i); + rii_check(cork_subprocess_abort(sub)); + } + return 0; +} + +int +cork_subprocess_group_start(struct cork_subprocess_group *group) +{ + size_t i; + DEBUG("Starting subprocess group\n"); + /* Start each subprocess. */ + for (i = 0; i < cork_array_size(&group->subprocesses); i++) { + struct cork_subprocess *sub = cork_array_at(&group->subprocesses, i); + ei_check(cork_subprocess_start(sub)); + } + return 0; + +error: + cork_subprocess_group_terminate(group); + return -1; +} + + +int +cork_subprocess_group_abort(struct cork_subprocess_group *group) +{ + DEBUG("Aborting subprocess group\n"); + return cork_subprocess_group_terminate(group); +} + + +bool +cork_subprocess_group_is_finished(struct cork_subprocess_group *group) +{ + size_t i; + for (i = 0; i < cork_array_size(&group->subprocesses); i++) { + struct cork_subprocess *sub = cork_array_at(&group->subprocesses, i); + bool sub_finished = cork_subprocess_is_finished(sub); + if (!sub_finished) { + return false; + } + } + return true; +} + +static int +cork_subprocess_group_drain_(struct cork_subprocess_group *group, + bool *progress) +{ + size_t i; + for (i = 0; i < cork_array_size(&group->subprocesses); i++) { + struct cork_subprocess *sub = cork_array_at(&group->subprocesses, i); + rii_check(cork_subprocess_drain_(sub, progress)); + } + return 0; +} + +bool +cork_subprocess_group_drain(struct cork_subprocess_group *group) +{ + bool progress = false; + cork_subprocess_group_drain_(group, &progress); + return progress; +} + +int +cork_subprocess_group_wait(struct cork_subprocess_group *group) +{ + unsigned int spin_count = 0; + bool progress; + DEBUG("Waiting for subprocess group to finish\n"); + while (!cork_subprocess_group_is_finished(group)) { + progress = false; + rii_check(cork_subprocess_group_drain_(group, &progress)); + if (!progress) { + cork_subprocess_yield(&spin_count); + } + } + return 0; +} diff --git a/shadowsocksr-libev/src/libcork/pthreads/thread.c b/shadowsocksr-libev/src/libcork/pthreads/thread.c new file mode 100644 index 00000000000..d8347790f45 --- /dev/null +++ b/shadowsocksr-libev/src/libcork/pthreads/thread.c @@ -0,0 +1,223 @@ +/* -*- coding: utf-8 -*- + * ---------------------------------------------------------------------- + * Copyright © 2013-2015, RedJack, LLC. + * All rights reserved. + * + * Please see the COPYING file in this distribution for license details. + * ---------------------------------------------------------------------- + */ + +#if defined(__linux) +/* This is needed on Linux to get the pthread_setname_np function. */ +#if !defined(_GNU_SOURCE) +#define _GNU_SOURCE 1 +#endif +#endif + +#include +#include + +#include + +#include "libcork/core/allocator.h" +#include "libcork/core/error.h" +#include "libcork/core/types.h" +#include "libcork/ds/buffer.h" +#include "libcork/threads/basics.h" + + +/*----------------------------------------------------------------------- + * Current thread + */ + +static volatile cork_thread_id last_thread_descriptor = 0; + +struct cork_thread { + const char *name; + cork_thread_id id; + pthread_t thread_id; + void *user_data; + cork_free_f free_user_data; + cork_run_f run; + cork_error error_code; + struct cork_buffer error_message; + bool started; + bool joined; +}; + +struct cork_thread_descriptor { + struct cork_thread *current_thread; + cork_thread_id id; +}; + +cork_tls(struct cork_thread_descriptor, cork_thread_descriptor); + +struct cork_thread * +cork_current_thread_get(void) +{ + struct cork_thread_descriptor *desc = cork_thread_descriptor_get(); + return desc->current_thread; +} + +cork_thread_id +cork_current_thread_get_id(void) +{ + struct cork_thread_descriptor *desc = cork_thread_descriptor_get(); + if (CORK_UNLIKELY(desc->id == 0)) { + if (desc->current_thread == NULL) { + desc->id = cork_uint_atomic_add(&last_thread_descriptor, 1); + } else { + desc->id = desc->current_thread->id; + } + } + return desc->id; +} + + +/*----------------------------------------------------------------------- + * Threads + */ + +struct cork_thread * +cork_thread_new(const char *name, + void *user_data, cork_free_f free_user_data, + cork_run_f run) +{ + struct cork_thread *self = cork_new(struct cork_thread); + self->name = cork_strdup(name); + self->id = cork_uint_atomic_add(&last_thread_descriptor, 1); + self->user_data = user_data; + self->free_user_data = free_user_data; + self->run = run; + self->error_code = CORK_ERROR_NONE; + cork_buffer_init(&self->error_message); + self->started = false; + self->joined = false; + return self; +} + +static void +cork_thread_free_private(struct cork_thread *self) +{ + cork_strfree(self->name); + cork_free_user_data(self); + cork_buffer_done(&self->error_message); + cork_delete(struct cork_thread, self); +} + +void +cork_thread_free(struct cork_thread *self) +{ + assert(!self->started); + cork_thread_free_private(self); +} + +const char * +cork_thread_get_name(struct cork_thread *self) +{ + return self->name; +} + +cork_thread_id +cork_thread_get_id(struct cork_thread *self) +{ + return self->id; +} + +#define PTHREADS_MAX_THREAD_NAME_LENGTH 16 + +static void * +cork_thread_pthread_run(void *vself) +{ + int rc; + struct cork_thread *self = vself; + struct cork_thread_descriptor *desc = cork_thread_descriptor_get(); +#if defined(__APPLE__) && defined(__MACH__) + char thread_name[PTHREADS_MAX_THREAD_NAME_LENGTH]; +#endif + + desc->current_thread = self; + desc->id = self->id; + rc = self->run(self->user_data); + +#if defined(__APPLE__) && defined(__MACH__) + /* On Mac OS X, we set the name of the current thread, not of an arbitrary + * thread of our choosing. */ + strncpy(thread_name, self->name, PTHREADS_MAX_THREAD_NAME_LENGTH); + thread_name[PTHREADS_MAX_THREAD_NAME_LENGTH - 1] = '\0'; + pthread_setname_np(thread_name); +#endif + + /* If an error occurred in the body of the thread, save the error into the + * cork_thread object so that we can propagate that error when some calls + * cork_thread_join. */ + if (CORK_UNLIKELY(rc != 0)) { + if (CORK_LIKELY(cork_error_occurred())) { + self->error_code = cork_error_code(); + cork_buffer_set_string(&self->error_message, cork_error_message()); + } else { + self->error_code = CORK_UNKNOWN_ERROR; + cork_buffer_set_string(&self->error_message, "Unknown error"); + } + } + + return NULL; +} + +int +cork_thread_start(struct cork_thread *self) +{ + int rc; + pthread_t thread_id; +#if defined(__linux) && ((__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 12)) + char thread_name[PTHREADS_MAX_THREAD_NAME_LENGTH]; +#endif + + assert(!self->started); + + rc = pthread_create(&thread_id, NULL, cork_thread_pthread_run, self); + if (CORK_UNLIKELY(rc != 0)) { + cork_system_error_set_explicit(rc); + return -1; + } + +#if defined(__linux) && ((__GLIBC__ >= 2) && (__GLIBC_MINOR__ >= 12)) + /* On Linux we choose which thread to name via an explicit thread ID. + * However, pthread_setname_np() isn't supported on versions of glibc + * earlier than 2.12. So we need to check for a MINOR version of 12 or + * higher. */ + strncpy(thread_name, self->name, PTHREADS_MAX_THREAD_NAME_LENGTH); + thread_name[PTHREADS_MAX_THREAD_NAME_LENGTH - 1] = '\0'; + pthread_setname_np(thread_id, thread_name); +#endif + + self->thread_id = thread_id; + self->started = true; + return 0; +} + +int +cork_thread_join(struct cork_thread *self) +{ + int rc; + + assert(self->started && !self->joined); + + rc = pthread_join(self->thread_id, NULL); + if (CORK_UNLIKELY(rc != 0)) { + cork_system_error_set_explicit(rc); + cork_thread_free_private(self); + return -1; + } + + if (CORK_UNLIKELY(self->error_code != CORK_ERROR_NONE)) { + cork_error_set_printf + (self->error_code, "Error from thread %s: %s", + self->name, (char *) self->error_message.buf); + cork_thread_free_private(self); + return -1; + } + + cork_thread_free_private(self); + return 0; +} diff --git a/shadowsocksr-libev/src/libev/CMakeLists.txt b/shadowsocksr-libev/src/libev/CMakeLists.txt new file mode 100644 index 00000000000..58c622b3758 --- /dev/null +++ b/shadowsocksr-libev/src/libev/CMakeLists.txt @@ -0,0 +1,30 @@ +# Copyright (C) 2007-2013 LuaDist. +# Created by Peter Drahoš, Peter Kapec +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + +project ( libev C ) +cmake_minimum_required ( VERSION 2.8 ) +include ( cmake/dist.cmake ) +#include ( configure ) + +#configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h ) +include_directories( ${CMAKE_BINARY_DIR} ) + +set ( EV_SRC + ev.c + event.c +) + +if (CYGWIN) + list ( APPEND EV_LIBS Ws2_32 ) +endif () + +add_library ( ev STATIC ${EV_SRC} ) +target_link_libraries ( ev ${EV_LIBS} ) + +set(libev_include_dirs + ${PROJECT_SOURCE_DIR} + CACHE INTERNAL "libev library" FORCE + ) diff --git a/shadowsocksr-libev/src/libev/Changes b/shadowsocksr-libev/src/libev/Changes new file mode 100644 index 00000000000..b9d9b16ed68 --- /dev/null +++ b/shadowsocksr-libev/src/libev/Changes @@ -0,0 +1,517 @@ +Revision history for libev, a high-performance and full-featured event loop. + +TODO: ev_loop_wakeup +TODO: EV_STANDALONE == NO_HASSEL (do not use clock_gettime in ev_standalone) +TODO: faq, process a thing in each iteration +TODO: dbeugging tips, ev_verify, ev_init twice +TODO: ev_break for immediate exit (EVBREAK_NOW?) +TODO: ev_feed_child_event +TODO: document the special problem of signals around fork. +TODO: store pid for each signal +TODO: document file descriptor usage per loop +TODO: store loop pid_t and compare isndie signal handler,store 1 for same, 2 for differign pid, clean up in loop_fork +TODO: embed watchers need updating when fd changes +TODO: document portability requirements for atomic pointer access +TODO: document requirements for function pointers and calling conventions. + +4.22 Sun Dec 20 22:11:50 CET 2015 + - when epoll detects unremovable fds in the fd set, rebuild + only the epoll descriptor, not the signal pipe, to avoid + SIGPIPE in ev_async_send. This doesn't solve it on fork, + so document what needs to be done in ev_loop_fork + (analyzed by Benjamin Mahler). + - remove superfluous sys/timeb.h include on win32 + (analyzed by Jason Madden). + - updated libecb. + +4.20 Sat Jun 20 13:01:43 CEST 2015 + - prefer noexcept over throw () with C++ 11. + - update ecb.h due to incompatibilities with c11. + - fix a potential aliasing issue when reading and writing + watcher callbacks. + +4.19 Thu Sep 25 08:18:25 CEST 2014 + - ev.h wasn't valid C++ anymore, which tripped compilers other than + clang, msvc or gcc (analyzed by Raphael 'kena' Poss). Unfortunately, + C++ doesn't support typedefs for function pointers fully, so the affected + declarations have to spell out the types each time. + - when not using autoconf, tighten the check for clock_gettime and related + functionality. + +4.18 Fri Sep 5 17:55:26 CEST 2014 + - events on files were not always generated properly with the + epoll backend (testcase by Assaf Inbal). + - mark event pipe fd as cloexec after a fork (analyzed by Sami Farin). + - (ecb) support m68k, m88k and sh (patch by Miod Vallat). + - use a reasonable fallback for EV_NSIG instead of erroring out + when we can't detect the signal set size. + - in the absence of autoconf, do not use the clock syscall + on glibc >= 2.17 (avoids the syscall AND -lrt on systems + doing clock_gettime in userspace). + - ensure extern "C" function pointers are used for externally-visible + loop callbacks (not watcher callbacks yet). + - (ecb) work around memory barriers and volatile apparently both being + broken in visual studio 2008 and later (analysed and patch by Nicolas Noble). + +4.15 Fri Mar 1 12:04:50 CET 2013 + - destroying a non-default loop would stop the global waitpid + watcher (Denis Bilenko). + - queueing pending watchers of higher priority from a watcher now invokes + them in a timely fashion (reported by Denis Bilenko). + - add throw() to all libev functions that cannot throw exceptions, for + further code size decrease when compiling for C++. + - add throw () to callbacks that must not throw exceptions (allocator, + syserr, loop acquire/release, periodic reschedule cbs). + - fix event_base_loop return code, add event_get_callback, event_base_new, + event_base_get_method calls to improve libevent 1.x emulation and add + some libevent 2.x functionality (based on a patch by Jeff Davey). + - add more memory fences to fix a bug reported by Jeff Davey. Better + be overfenced than underprotected. + - ev_run now returns a boolean status (true meaning watchers are + still active). + - ev_once: undef EV_ERROR in ev_kqueue.c, to avoid clashing with + libev's EV_ERROR (reported by 191919). + - (ecb) add memory fence support for xlC (Darin McBride). + - (ecb) add memory fence support for gcc-mips (Anton Kirilov). + - (ecb) add memory fence support for gcc-alpha (Christian Weisgerber). + - work around some kernels losing file descriptors by leaking + the kqueue descriptor in the child. + - work around linux inotify not reporting IN_ATTRIB changes for directories + in many cases. + - include sys/syscall.h instead of plain syscall.h. + - check for io watcher loops in ev_verify, check for the most + common reported usage bug in ev_io_start. + - choose socket vs. WSASocket at compiletime using EV_USE_WSASOCKET. + - always use WSASend/WSARecv directly on windows, hoping that this + works in all cases (unlike read/write/send/recv...). + - try to detect signals around a fork faster (test program by + Denis Bilenko). + - work around recent glibc versions that leak memory in realloc. + - rename ev::embed::set to ev::embed::set_embed to avoid clashing + the watcher base set (loop) method. + - rewrite the async/signal pipe logic to always keep a valid fd, which + simplifies (and hopefully correctifies :) the race checking + on fork, at the cost of one extra fd. + - add fat, msdos, jffs2, ramfs, ntfs and btrfs to the list of + inotify-supporting filesystems. + - move orig_CFLAGS assignment to after AC_INIT, as newer autoconf + versions ignore it before + (https://bugzilla.redhat.com/show_bug.cgi?id=908096). + - add some untested android support. + - enum expressions must be of type int (reported by Juan Pablo L). + +4.11 Sat Feb 4 19:52:39 CET 2012 + - INCOMPATIBLE CHANGE: ev_timer_again now clears the pending status, as + was documented already, but not implemented in the repeating case. + - new compiletime symbols: EV_NO_SMP and EV_NO_THREADS. + - fix a race where the workaround against the epoll fork bugs + caused signals to not be handled anymore. + - correct backend_fudge for most backends, and implement a windows + specific workaround to avoid looping because we call both + select and Sleep, both with different time resolutions. + - document range and guarantees of ev_sleep. + - document reasonable ranges for periodics interval and offset. + - rename backend_fudge to backend_mintime to avoid future confusion :) + - change the default periodic reschedule function to hopefully be more + exact and correct even in corner cases or in the far future. + - do not rely on -lm anymore: use it when available but use our + own floor () if it is missing. This should make it easier to embed, + as no external libraries are required. + - strategically import macros from libecb and mark rarely-used functions + as cache-cold (saving almost 2k code size on typical amd64 setups). + - add Symbols.ev and Symbols.event files, that were missing. + - fix backend_mintime value for epoll (was 1/1024, is 1/1000 now). + - fix #3 "be smart about timeouts" to not "deadlock" when + timeout == now, also improve the section overall. + - avoid "AVOIDING FINISHING BEFORE RETURNING" idiom. + - support new EV_API_STATIC mode to make all libev symbols + static. + - supply default CFLAGS of -g -O3 with gcc when original CFLAGS + were empty. + +4.04 Wed Feb 16 09:01:51 CET 2011 + - fix two problems in the native win32 backend, where reuse of fd's + with different underlying handles caused handles not to be removed + or added to the select set (analyzed and tested by Bert Belder). + - do no rely on ceil() in ev_e?poll.c. + - backport libev to HP-UX versions before 11 v3. + - configure did not detect nanosleep and clock_gettime properly when + they are available in the libc (as opposed to -lrt). + +4.03 Tue Jan 11 14:37:25 CET 2011 + - officially support polling files with all backends. + - support files, /dev/zero etc. the same way as select in the epoll + backend, by generating events on our own. + - ports backend: work around solaris bug 6874410 and many related ones + (EINTR, maybe more), with no performance loss (note that the solaris + bug report is actually wrong, reality is far more bizarre and broken + than that). + - define EV_READ/EV_WRITE as macros in event.h, as some programs use + #ifdef to test for them. + - new (experimental) function: ev_feed_signal. + - new (to become default) EVFLAG_NOSIGMASK flag. + - new EVBACKEND_MASK symbol. + - updated COMMON IDIOMS SECTION. + +4.01 Fri Nov 5 21:51:29 CET 2010 + - automake fucked it up, apparently, --add-missing -f is not quite enough + to make it update its files, so 4.00 didn't install ev++.h and + event.h on make install. grrr. + - ev_loop(count|depth) didn't return anything (Robin Haberkorn). + - change EV_UNDEF to 0xffffffff to silence some overzealous compilers. + - use "(libev) " prefix for all libev error messages now. + +4.00 Mon Oct 25 12:32:12 CEST 2010 + - "PORTING FROM LIBEV 3.X TO 4.X" (in ev.pod) is recommended reading. + - ev_embed_stop did not correctly stop the watcher (very good + testcase by Vladimir Timofeev). + - ev_run will now always update the current loop time - it erroneously + didn't when idle watchers were active, causing timers not to fire. + - fix a bug where a timeout of zero caused the timer not to fire + in the libevent emulation (testcase by Péter Szabó). + - applied win32 fixes by Michael Lenaghan (also James Mansion). + - replace EV_MINIMAL by EV_FEATURES. + - prefer EPOLL_CTL_ADD over EPOLL_CTL_MOD in some more cases, as it + seems the former is *much* faster than the latter. + - linux kernel version detection (for inotify bug workarounds) + did not work properly. + - reduce the number of spurious wake-ups with the ports backend. + - remove dependency on sys/queue.h on freebsd (patch by Vanilla Hsu). + - do async init within ev_async_start, not ev_async_set, which avoids + an API quirk where the set function must be called in the C++ API + even when there is nothing to set. + - add (undocumented) EV_ENABLE when adding events with kqueue, + this might help with OS X, which seems to need it despite documenting + not to need it (helpfully pointed out by Tilghman Lesher). + - do not use poll by default on freebsd, it's broken (what isn't + on freebsd...). + - allow to embed epoll on kernels >= 2.6.32. + - configure now prepends -O3, not appends it, so one can still + override it. + - ev.pod: greatly expanded the portability section, added a porting + section, a description of watcher states and made lots of minor fixes. + - disable poll backend on AIX, the poll header spams the namespace + and it's not worth working around dead platforms (reported + and analyzed by Aivars Kalvans). + - improve header file compatibility of the standalone eventfd code + in an obscure case. + - implement EV_AVOID_STDIO option. + - do not use sscanf to parse linux version number (smaller, faster, + no sscanf dependency). + - new EV_CHILD_ENABLE and EV_SIGNAL_ENABLE configurable settings. + - update libev.m4 HAVE_CLOCK_SYSCALL test for newer glibcs. + - add section on accept() problems to the manpage. + - rename EV_TIMEOUT to EV_TIMER. + - rename ev_loop_count/depth/verify/loop/unloop. + - remove ev_default_destroy and ev_default_fork. + - switch to two-digit minor version. + - work around an apparent gentoo compiler bug. + - define _DARWIN_UNLIMITED_SELECT. just so. + - use enum instead of #define for most constants. + - improve compatibility to older C++ compilers. + - (experimental) ev_run/ev_default_loop/ev_break/ev_loop_new have now + default arguments when compiled as C++. + - enable automake dependency tracking. + - ev_loop_new no longer leaks memory when loop creation failed. + - new ev_cleanup watcher type. + +3.9 Thu Dec 31 07:59:59 CET 2009 + - signalfd is no longer used by default and has to be requested + explicitly - this means that easy to catch bugs become hard to + catch race conditions, but the users have spoken. + - point out the unspecified signal mask in the documentation, and + that this is a race condition regardless of EV_SIGNALFD. + - backport inotify code to C89. + - inotify file descriptors could leak into child processes. + - ev_stat watchers could keep an erroneous extra ref on the loop, + preventing exit when unregistering all watchers (testcases + provided by ry@tinyclouds.org). + - implement EV_WIN32_HANDLE_TO_FD and EV_WIN32_CLOSE_FD configuration + symbols to make it easier for apps to do their own fd management. + - support EV_IDLE_ENABLE being disabled in ev++.h + (patch by Didier Spezia). + - take advantage of inotify_init1, if available, to set cloexec/nonblock + on fd creation, to avoid races. + - the signal handling pipe wasn't always initialised under windows + (analysed by lekma). + - changed minimum glibc requirement from glibc 2.9 to 2.7, for + signalfd. + - add missing string.h include (Denis F. Latypoff). + - only replace ev_stat.prev when we detect an actual difference, + so prev is (almost) always different to attr. this might + have caused the problems with 04_stat.t. + - add ev::timer->remaining () method to C++ API. + +3.8 Sun Aug 9 14:30:45 CEST 2009 + - incompatible change: do not necessarily reset signal handler + to SIG_DFL when a sighandler is stopped. + - ev_default_destroy did not properly free or zero some members, + potentially causing crashes and memory corruption on repeated + ev_default_destroy/ev_default_loop calls. + - take advantage of signalfd on GNU/Linux systems. + - document that the signal mask might be in an unspecified + state when using libev's signal handling. + - take advantage of some GNU/Linux calls to set cloexec/nonblock + on fd creation, to avoid race conditions. + +3.7 Fri Jul 17 16:36:32 CEST 2009 + - ev_unloop and ev_loop wrongly used a global variable to exit loops, + instead of using a per-loop variable (bug caught by accident...). + - the ev_set_io_collect_interval interpretation has changed. + - add new functionality: ev_set_userdata, ev_userdata, + ev_set_invoke_pending_cb, ev_set_loop_release_cb, + ev_invoke_pending, ev_pending_count, together with a long example + about thread locking. + - add ev_timer_remaining (as requested by Denis F. Latypoff). + - add ev_loop_depth. + - calling ev_unloop in fork/prepare watchers will no longer poll + for new events. + - Denis F. Latypoff corrected many typos in example code snippets. + - honor autoconf detection of EV_USE_CLOCK_SYSCALL, also double- + check that the syscall number is available before trying to + use it (reported by ry@tinyclouds). + - use GetSystemTimeAsFileTime instead of _timeb on windows, for + slightly higher accuracy. + - properly declare ev_loop_verify and ev_now_update even when + !EV_MULTIPLICITY. + - do not compile in any priority code when EV_MAXPRI == EV_MINPRI. + - support EV_MINIMAL==2 for a reduced API. + - actually 0-initialise struct sigaction when installing signals. + - add section on hibernate and stopped processes to ev_timer docs. + +3.6 Tue Apr 28 02:49:30 CEST 2009 + - multiple timers becoming ready within an event loop iteration + will be invoked in the "correct" order now. + - do not leave the event loop early just because we have no active + watchers, fixing a problem when embedding a kqueue loop + that has active kernel events but no registered watchers + (reported by blacksand blacksand). + - correctly zero the idx values for arrays, so destroying and + reinitialising the default loop actually works (patch by + Malek Hadj-Ali). + - implement ev_suspend and ev_resume. + - new EV_CUSTOM revents flag for use by applications. + - add documentation section about priorities. + - add a glossary to the documentation. + - extend the ev_fork description slightly. + - optimize a jump out of call_pending. + +3.53 Sun Feb 15 02:38:20 CET 2009 + - fix a bug in event pipe creation on win32 that would cause a + failed assertion on event loop creation (patch by Malek Hadj-Ali). + - probe for CLOCK_REALTIME support at runtime as well and fall + back to gettimeofday if there is an error, to support older + operating systems with newer header files/libraries. + - prefer gettimeofday over clock_gettime with USE_CLOCK_SYSCALL + (default most everywhere), otherwise not. + +3.52 Wed Jan 7 21:43:02 CET 2009 + - fix compilation of select backend in fd_set mode when NFDBITS is + missing (to get it to compile on QNX, reported by Rodrigo Campos). + - better select-nfds handling when select backend is in fd_set mode. + - diagnose fd_set overruns when select backend is in fd_set mode. + - due to a thinko, instead of disabling everything but + select on the borked OS X platform, everything but select was + allowed (reported by Emanuele Giaquinta). + - actually verify that local and remote port are matching in + libev's socketpair emulation, which makes denial-of-service + attacks harder (but not impossible - it's windows). Make sure + it even works under vista, which thinks that getpeer/sockname + should return fantasy port numbers. + - include "libev" in all assertion messages for potentially + clearer diagnostics. + - event_get_version (libevent compatibility) returned + a useless string instead of the expected version string + (patch by W.C.A. Wijngaards). + +3.51 Wed Dec 24 23:00:11 CET 2008 + - fix a bug where an inotify watcher was added twice, causing + freezes on hash collisions (reported and analysed by Graham Leggett). + - new config symbol, EV_USE_CLOCK_SYSCALL, to make libev use + a direct syscall - slower, but no dependency on librt et al. + - assume negative return values != -1 signals success of port_getn + (http://cvs.epicsol.org/cgi/viewcvs.cgi/epic5/source/newio.c?rev=1.52) + (no known failure reports, but it doesn't hurt). + - fork detection in ev_embed now stops and restarts the watcher + automatically. + - EXPERIMENTAL: default the method to operator () in ev++.h, + to make it nicer to use functors (requested by Benedek László). + - fixed const object callbacks in ev++.h. + - replaced loop_ref argument of watcher.set (loop) by a direct + ev_loop * in ev++.h, to avoid clashes with functor patch. + - do not try to watch the empty string via inotify. + - inotify watchers could be leaked under certain circumstances. + - OS X 10.5 is actually even more broken than earlier versions, + so fall back to select on that piece of garbage. + - fixed some weirdness in the ev_embed documentation. + +3.49 Wed Nov 19 11:26:53 CET 2008 + - ev_stat watchers will now use inotify as a mere hint on + kernels <2.6.25, or if the filesystem is not in the + "known to be good" list. + - better mingw32 compatibility (it's not as borked as native win32) + (analysed by Roger Pack). + - include stdio.h in the example program, as too many people are + confused by the weird C language otherwise. I guess the next thing + I get told is that the "..." ellipses in the examples don't compile + with their C compiler. + +3.48 Thu Oct 30 09:02:37 CET 2008 + - further optimise away the EPOLL_CTL_ADD/MOD combo in the epoll + backend by assuming the kernel event mask hasn't changed if + ADD fails with EEXIST. + - work around spurious event notification bugs in epoll by using + a 32-bit generation counter. recreate kernel state if we receive + spurious notifications or unwanted events. this is very costly, + but I didn't come up with this horrible design. + - use memset to initialise most arrays now and do away with the + init functions. + - expand time-out strategies into a "Be smart about timeouts" section. + - drop the "struct" from all ev_watcher declarations in the + documentation and did other clarifications (yeah, it was a mistake + to have a struct AND a function called ev_loop). + - fix a bug where ev_default would not initialise the default + loop again after it was destroyed with ev_default_destroy. + - rename syserr to ev_syserr to avoid name clashes when embedding, + do similar changes for event.c. + +3.45 Tue Oct 21 21:59:26 CEST 2008 + - disable inotify usage on linux <2.6.25, as it is broken + (reported by Yoann Vandoorselaere). + - ev_stat erroneously would try to add inotify watchers + even when inotify wasn't available (this should only + have a performance impact). + - ev_once now passes both timeout and io to the callback if both + occur concurrently, instead of giving timeouts precedence. + - disable EV_USE_INOTIFY when sys/inotify.h is too old. + +3.44 Mon Sep 29 05:18:39 CEST 2008 + - embed watchers now automatically invoke ev_loop_fork on the + embedded loop when the parent loop forks. + - new function: ev_now_update (loop). + - verify_watcher was not marked static. + - improve the "associating..." manpage section. + - documentation tweaks here and there. + +3.43 Sun Jul 6 05:34:41 CEST 2008 + - include more include files on windows to get struct _stati64 + (reported by Chris Hulbert, but doesn't quite fix his issue). + - add missing #include in ev.c on windows (reported by + Matt Tolton). + +3.42 Tue Jun 17 12:12:07 CEST 2008 + - work around yet another windows bug: FD_SET actually adds fd's + multiple times to the fd_*SET*, despite official MSN docs claiming + otherwise. Reported and well-analysed by Matt Tolton. + - define NFDBITS to 0 when EV_SELECT_IS_WINSOCKET to make it compile + (reported any analysed by Chris Hulbert). + - fix a bug in ev_ebadf (this function is only used to catch + programming errors in the libev user). reported by Matt Tolton. + - fix a bug in fd_intern on win32 (could lead to compile errors + under some circumstances, but would work correctly if it compiles). + reported by Matt Tolton. + - (try to) work around missing lstat on windows. + - pass in the write fd set as except fd set under windows. windows + is so uncontrollably lame that it requires this. this means that + switching off oobinline is not supported (but tcp/ip doesn't + have oob, so that would be stupid anyways. + - use posix module symbol to auto-detect monotonic clock presence + and some other default values. + +3.41 Fri May 23 18:42:54 CEST 2008 + - work around an obscure bug in winsocket select: if you + provide only empty fd sets then select returns WSAEINVAL. how sucky. + - improve timer scheduling stability and reduce use of time_epsilon. + - use 1-based 2-heap for EV_MINIMAL, simplifies code, reduces + codesize and makes for better cache-efficiency. + - use 3-based 4-heap for !EV_MINIMAL. this makes better use + of cpu cache lines and gives better growth behaviour than + 2-based heaps. + - cache timestamp within heap for !EV_MINIMAL, to avoid random + memory accesses. + - document/add EV_USE_4HEAP and EV_HEAP_CACHE_AT. + - fix a potential aliasing issue in ev_timer_again. + - add/document ev_periodic_at, retract direct access to ->at. + - improve ev_stat docs. + - add portability requirements section. + - fix manpage headers etc. + - normalise WSA error codes to lower range on windows. + - add consistency check code that can be called automatically + or on demand to check for internal structures (ev_loop_verify). + +3.31 Wed Apr 16 20:45:04 CEST 2008 + - added last minute fix for ev_poll.c by Brandon Black. + +3.3 Wed Apr 16 19:04:10 CEST 2008 + - event_base_loopexit should return 0 on success + (W.C.A. Wijngaards). + - added linux eventfd support. + - try to autodetect epoll and inotify support + by libc header version if not using autoconf. + - new symbols: EV_DEFAULT_UC and EV_DEFAULT_UC_. + - declare functions defined in ev.h as inline if + C99 or gcc are available. + - enable inlining with gcc versions 2 and 3. + - work around broken poll implementations potentially + not clearing revents field in ev_poll (Brandon Black) + (no such systems are known at this time). + - work around a bug in realloc on openbsd and darwin, + also makes the erroneous valgrind complaints + go away (noted by various people). + - fix ev_async_pending, add c++ wrapper for ev_async + (based on patch sent by Johannes Deisenhofer). + - add sensible set method to ev::embed. + - made integer constants type int in ev.h. + +3.2 Wed Apr 2 17:11:19 CEST 2008 + - fix a 64 bit overflow issue in the select backend, + by using fd_mask instead of int for the mask. + - rename internal sighandler to avoid clash with very old perls. + - entering ev_loop will not clear the ONESHOT or NONBLOCKING + flags of any outer loops anymore. + - add ev_async_pending. + +3.1 Thu Mar 13 13:45:22 CET 2008 + - implement ev_async watchers. + - only initialise signal pipe on demand. + - make use of sig_atomic_t configurable. + - improved documentation. + +3.0 Mon Jan 28 13:14:47 CET 2008 + - API/ABI bump to version 3.0. + - ev++.h includes "ev.h" by default now, not . + - slightly improved documentation. + - speed up signal detection after a fork. + - only optionally return trace status changed in ev_child + watchers. + - experimental (and undocumented) loop wrappers for ev++.h. + +2.01 Tue Dec 25 08:04:41 CET 2007 + - separate Changes file. + - fix ev_path_set => ev_stat_set typo. + - remove event_compat.h from the libev tarball. + - change how include files are found. + - doc updates. + - update licenses, explicitly allow for GPL relicensing. + +2.0 Sat Dec 22 17:47:03 CET 2007 + - new ev_sleep, ev_set_(io|timeout)_collect_interval. + - removed epoll from embeddable fd set. + - fix embed watchers. + - renamed ev_embed.loop to other. + - added exported Symbol tables. + - undefine member wrapper macros at the end of ev.c. + - respect EV_H in ev++.h. + +1.86 Tue Dec 18 02:36:57 CET 2007 + - fix memleak on loop destroy (not relevant for perl). + +1.85 Fri Dec 14 20:32:40 CET 2007 + - fix some aliasing issues w.r.t. timers and periodics + (not relevant for perl). + +(for historic versions refer to EV/Changes, found in the Perl interface) + +0.1 Wed Oct 31 21:31:48 CET 2007 + - original version; hacked together in <24h. + diff --git a/shadowsocksr-libev/src/libev/LICENSE b/shadowsocksr-libev/src/libev/LICENSE new file mode 100644 index 00000000000..2fdabd48afa --- /dev/null +++ b/shadowsocksr-libev/src/libev/LICENSE @@ -0,0 +1,37 @@ +All files in libev are +Copyright (c)2007,2008,2009,2010,2011,2012,2013 Marc Alexander Lehmann. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Alternatively, the contents of this package may be used under the terms +of the GNU General Public License ("GPL") version 2 or any later version, +in which case the provisions of the GPL are applicable instead of the +above. If you wish to allow the use of your version of this package only +under the terms of the GPL and not to allow others to use your version of +this file under the BSD license, indicate your decision by deleting the +provisions above and replace them with the notice and other provisions +required by the GPL in this and the other files of this package. If you do +not delete the provisions above, a recipient may use your version of this +file under either the BSD or the GPL. diff --git a/shadowsocksr-libev/src/libev/Makefile.am b/shadowsocksr-libev/src/libev/Makefile.am new file mode 100644 index 00000000000..32d1339c9bc --- /dev/null +++ b/shadowsocksr-libev/src/libev/Makefile.am @@ -0,0 +1,20 @@ +AUTOMAKE_OPTIONS = foreign + +VERSION_INFO = 4:0:0 + +EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \ + ev_vars.h ev_wrap.h \ + ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \ + ev.3 ev.pod Symbols.ev Symbols.event + +noinst_MANS = ev.3 + +noinst_HEADERS = ev.h ev++.h event.h + +noinst_LTLIBRARIES = libev.la + +libev_la_SOURCES = ev.c event.c +libev_la_LDFLAGS = -version-info $(VERSION_INFO) + +ev.3: ev.pod + pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@ diff --git a/shadowsocksr-libev/src/libev/Makefile.in b/shadowsocksr-libev/src/libev/Makefile.in new file mode 100644 index 00000000000..c85b800d0da --- /dev/null +++ b/shadowsocksr-libev/src/libev/Makefile.in @@ -0,0 +1,626 @@ +# Makefile.in generated by automake 1.15 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2014 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = libev +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \ + $(top_srcdir)/m4/ax_tls.m4 $(top_srcdir)/m4/inet_ntop.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/mbedtls.m4 \ + $(top_srcdir)/m4/openssl.m4 $(top_srcdir)/m4/pcre.m4 \ + $(top_srcdir)/m4/polarssl.m4 \ + $(top_srcdir)/m4/stack-protector.m4 $(top_srcdir)/m4/zlib.m4 \ + $(top_srcdir)/libev/libev.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +LTLIBRARIES = $(noinst_LTLIBRARIES) +libev_la_LIBADD = +am_libev_la_OBJECTS = ev.lo event.lo +libev_la_OBJECTS = $(am_libev_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libev_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(libev_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/auto/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libev_la_SOURCES) +DIST_SOURCES = $(libev_la_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +HEADERS = $(noinst_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +ETAGS = etags +CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/auto/depcomp \ + README +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +ASCIIDOC = @ASCIIDOC@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GREP = @GREP@ +GZIP = @GZIP@ +INET_NTOP_LIB = @INET_NTOP_LIB@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBPCRE = @LIBPCRE@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +MV = @MV@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PCRE_CONFIG = @PCRE_CONFIG@ +PTHREAD_CC = @PTHREAD_CC@ +PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ +PTHREAD_LIBS = @PTHREAD_LIBS@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +XMLTO = @XMLTO@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +ax_pthread_config = @ax_pthread_config@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pcre_pcreh = @pcre_pcreh@ +pcreh = @pcreh@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign +VERSION_INFO = 4:0:0 +EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \ + ev_vars.h ev_wrap.h \ + ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \ + ev.3 ev.pod Symbols.ev Symbols.event + +noinst_MANS = ev.3 +noinst_HEADERS = ev.h ev++.h event.h +noinst_LTLIBRARIES = libev.la +libev_la_SOURCES = ev.c event.c +libev_la_LDFLAGS = -version-info $(VERSION_INFO) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign libev/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign libev/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstLTLIBRARIES: + -test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES) + @list='$(noinst_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libev.la: $(libev_la_OBJECTS) $(libev_la_DEPENDENCIES) $(EXTRA_libev_la_DEPENDENCIES) + $(AM_V_CCLD)$(libev_la_LINK) $(libev_la_OBJECTS) $(libev_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ev.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstLTLIBRARIES cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +ev.3: ev.pod + pod2man -n LIBEV -r "libev-$(VERSION)" -c "libev - high performance full featured event loop" -s3 <$< >$@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/shadowsocksr-libev/src/libev/README b/shadowsocksr-libev/src/libev/README new file mode 100644 index 00000000000..31f619387de --- /dev/null +++ b/shadowsocksr-libev/src/libev/README @@ -0,0 +1,58 @@ +libev is a high-performance event loop/event model with lots of features. +(see benchmark at http://libev.schmorp.de/bench.html) + + +ABOUT + + Homepage: http://software.schmorp.de/pkg/libev + Mailinglist: libev@lists.schmorp.de + http://lists.schmorp.de/cgi-bin/mailman/listinfo/libev + Library Documentation: http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod + + Libev is modelled (very losely) after libevent and the Event perl + module, but is faster, scales better and is more correct, and also more + featureful. And also smaller. Yay. + + Some of the specialties of libev not commonly found elsewhere are: + + - extensive and detailed, readable documentation (not doxygen garbage). + - fully supports fork, can detect fork in various ways and automatically + re-arms kernel mechanisms that do not support fork. + - highly optimised select, poll, epoll, kqueue and event ports backends. + - filesystem object (path) watching (with optional linux inotify support). + - wallclock-based times (using absolute time, cron-like). + - relative timers/timeouts (handle time jumps). + - fast intra-thread communication between multiple + event loops (with optional fast linux eventfd backend). + - extremely easy to embed (fully documented, no dependencies, + autoconf supported but optional). + - very small codebase, no bloated library, simple code. + - fully extensible by being able to plug into the event loop, + integrate other event loops, integrate other event loop users. + - very little memory use (small watchers, small event loop data). + - optional C++ interface allowing method and function callbacks + at no extra memory or runtime overhead. + - optional Perl interface with similar characteristics (capable + of running Glib/Gtk2 on libev). + - support for other languages (multiple C++ interfaces, D, Ruby, + Python) available from third-parties. + + Examples of programs that embed libev: the EV perl module, node.js, + auditd, rxvt-unicode, gvpe (GNU Virtual Private Ethernet), the + Deliantra MMORPG server (http://www.deliantra.net/), Rubinius (a + next-generation Ruby VM), the Ebb web server, the Rev event toolkit. + + +CONTRIBUTORS + + libev was written and designed by Marc Lehmann and Emanuele Giaquinta. + + The following people sent in patches or made other noteworthy + contributions to the design (for minor patches, see the Changes + file. If I forgot to include you, please shout at me, it was an + accident): + + W.C.A. Wijngaards + Christopher Layne + Chris Brody + diff --git a/shadowsocksr-libev/src/libev/Symbols.ev b/shadowsocksr-libev/src/libev/Symbols.ev new file mode 100644 index 00000000000..7a29a75cba2 --- /dev/null +++ b/shadowsocksr-libev/src/libev/Symbols.ev @@ -0,0 +1,73 @@ +ev_async_send +ev_async_start +ev_async_stop +ev_backend +ev_break +ev_check_start +ev_check_stop +ev_child_start +ev_child_stop +ev_cleanup_start +ev_cleanup_stop +ev_clear_pending +ev_default_loop +ev_default_loop_ptr +ev_depth +ev_embed_start +ev_embed_stop +ev_embed_sweep +ev_embeddable_backends +ev_feed_event +ev_feed_fd_event +ev_feed_signal +ev_feed_signal_event +ev_fork_start +ev_fork_stop +ev_idle_start +ev_idle_stop +ev_invoke +ev_invoke_pending +ev_io_start +ev_io_stop +ev_iteration +ev_loop_destroy +ev_loop_fork +ev_loop_new +ev_now +ev_now_update +ev_once +ev_pending_count +ev_periodic_again +ev_periodic_start +ev_periodic_stop +ev_prepare_start +ev_prepare_stop +ev_recommended_backends +ev_ref +ev_resume +ev_run +ev_set_allocator +ev_set_invoke_pending_cb +ev_set_io_collect_interval +ev_set_loop_release_cb +ev_set_syserr_cb +ev_set_timeout_collect_interval +ev_set_userdata +ev_signal_start +ev_signal_stop +ev_sleep +ev_stat_start +ev_stat_stat +ev_stat_stop +ev_supported_backends +ev_suspend +ev_time +ev_timer_again +ev_timer_remaining +ev_timer_start +ev_timer_stop +ev_unref +ev_userdata +ev_verify +ev_version_major +ev_version_minor diff --git a/shadowsocksr-libev/src/libev/Symbols.event b/shadowsocksr-libev/src/libev/Symbols.event new file mode 100644 index 00000000000..799d4246e4e --- /dev/null +++ b/shadowsocksr-libev/src/libev/Symbols.event @@ -0,0 +1,24 @@ +event_active +event_add +event_base_dispatch +event_base_free +event_base_get_method +event_base_loop +event_base_loopexit +event_base_new +event_base_once +event_base_priority_init +event_base_set +event_del +event_dispatch +event_get_callback +event_get_method +event_get_version +event_init +event_loop +event_loopexit +event_once +event_pending +event_priority_init +event_priority_set +event_set diff --git a/shadowsocksr-libev/src/libev/aclocal.m4 b/shadowsocksr-libev/src/libev/aclocal.m4 new file mode 100644 index 00000000000..186cbf17cf1 --- /dev/null +++ b/shadowsocksr-libev/src/libev/aclocal.m4 @@ -0,0 +1,9787 @@ +# generated automatically by aclocal 1.14.1 -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, +[m4_warning([this file was generated for autoconf 2.69. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008, 2009, 2010, 2011 Free Software +# Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +]) + +# serial 57 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_CC_BASENAME(CC) +# ------------------- +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +m4_defun([_LT_CC_BASENAME], +[for cc_temp in $1""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from `configure', and `config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# `config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain="$ac_aux_dir/ltmain.sh" +])# _LT_PROG_LTMAIN + + + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the `libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to `config.status' so that its +# declaration there will have the same value as in `configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags="_LT_TAGS"dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the `libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into `config.status', and then the shell code to quote escape them in +# for loops in `config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# `#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test $lt_write_fail = 0 && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +\`$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test $[#] != 0 +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try \`$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try \`$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test "$silent" = yes && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +_LT_COPYING +_LT_LIBTOOL_TAGS + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + _LT_PROG_REPLACE_SHELLFNS + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test $_lt_result -eq 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS="$save_LDFLAGS" + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[[012]]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test "$lt_cv_ld_force_load" = "yes"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + m4_if([$1], [CXX], +[ if test "$lt_cv_apple_cc_single_mod" != "yes"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test "${lt_cv_aix_libpath+set}" = set; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib" + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script which will find a shell with a builtin +# printf (which we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case "$ECHO" in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[ --with-sysroot[=DIR] Search for dependent libraries within DIR + (or the compiler's sysroot if not specified).], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case ${with_sysroot} in #( + yes) + if test "$GCC" = yes; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([${with_sysroot}]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and in which our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD="${LD-ld}_sol2" + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cru} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -eq 0; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test "$ac_status" -ne 0; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test "x$lt_cv_ar_at_file" = xno; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test x"[$]$2" = xyes; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" +]) + +if test x"[$]$2" = xyes; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n $lt_cv_sys_max_cmd_len ; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "$cross_compiling" = yes; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisbility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[ + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen="shl_load"], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen="dlopen"], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links="nottested" +if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test "$hard_links" = no; then + AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/", + [Define to the sub-directory in which libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$_LT_TAGVAR(hardcode_direct, $1)" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no && + test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test "$_LT_TAGVAR(hardcode_action, $1)" = relink || + test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;; + *) lt_sed_strip_eq="s,=/,/,g" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's,/\([[A-Za-z]]:\),\1,g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}' + library_names_spec='${libname}.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec="$LIB" + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=yes + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[[89]] | openbsd2.[[89]].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([], [sys_lib_dlsearch_path_spec], [2], + [Run-time system search path for libraries]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program which can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$1; then + lt_cv_path_MAGIC_CMD="$ac_dir/$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac]) +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program which can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test "$withval" = no || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 /dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi]) +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh + # decide which to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd="$ECHO" + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test "x$lt_cv_path_mainfest_tool" != xyes; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw") + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM="-lm") + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test "$GCC" = yes; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE) +/* DATA imports from DLLs on WIN32 con't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined(__osf__) +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test "$GCC" = yes; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global defined + # symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test "$with_gnu_ld" = yes; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test "$lt_use_gnu_ld_interface" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + # Also, AIX nm treats weak defined symbols like other global + # defined symbols, whereas GNU nm marks them as "W". + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes && test "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS="$save_LDFLAGS"]) + if test "$lt_cv_irix_exported_symbol" = yes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + fi + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + else + case $host_os in + openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + ;; + esac + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting ${shlibpath_var} if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC="$CC" +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report which library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC="$lt_save_CC" +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to `libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok' + if test "$with_gnu_ld" = yes; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp; + else + $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile="$lt_outputfile.exe" + lt_tool_outputfile="$lt_tool_outputfile.exe" + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no + + _LT_TAGVAR(GCC, $1)="$GXX" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case ${prev}${p} in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test "$pre_test_object_deps_done" = no; then + case ${prev} in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}" + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)="${prev}${p}" + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)="$p" + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)="$p" + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC* | sunCC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test "X$F77" = "Xno"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_F77" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$G77" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC="$lt_save_CC" + CFLAGS="$lt_save_CFLAGS" +fi # test "$_lt_disable_F77" != yes + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test "X$FC" = "Xno"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_disable_FC" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC="$CC" + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu" + _LT_TAGVAR(LD, $1)="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test "$_lt_disable_FC" != yes + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)="$LD" +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to `libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code="$lt_simple_compile_test_code" + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC="$CC" +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f $lt_ac_sed && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test $lt_ac_count -gt 10 && break + lt_ac_count=`expr $lt_ac_count + 1` + if test $lt_ac_count -gt $lt_ac_max; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[AC_MSG_CHECKING([whether the shell understands some XSI constructs]) +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,b/c, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +AC_MSG_RESULT([$xsi_shell]) +_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell']) + +AC_MSG_CHECKING([whether the shell understands "+="]) +lt_shell_append=no +( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +AC_MSG_RESULT([$lt_shell_append]) +_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append']) + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY) +# ------------------------------------------------------ +# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and +# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY. +m4_defun([_LT_PROG_FUNCTION_REPLACE], +[dnl { +sed -e '/^$1 ()$/,/^} # $1 /c\ +$1 ()\ +{\ +m4_bpatsubsts([$2], [$], [\\], [^\([ ]\)], [\\\1]) +} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") +test 0 -eq $? || _lt_function_replace_fail=: +]) + + +# _LT_PROG_REPLACE_SHELLFNS +# ------------------------- +# Replace existing portable implementations of several shell functions with +# equivalent extended shell implementations where those features are available.. +m4_defun([_LT_PROG_REPLACE_SHELLFNS], +[if test x"$xsi_shell" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}"]) + + _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl + func_split_long_opt_name=${1%%=*} + func_split_long_opt_arg=${1#*=}]) + + _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"}]) + + _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac]) + + _LT_PROG_FUNCTION_REPLACE([func_xform], [ func_xform_result=${1%.*}.lo]) + + _LT_PROG_FUNCTION_REPLACE([func_arith], [ func_arith_result=$(( $[*] ))]) + + _LT_PROG_FUNCTION_REPLACE([func_len], [ func_len_result=${#1}]) +fi + +if test x"$lt_shell_append" = xyes; then + _LT_PROG_FUNCTION_REPLACE([func_append], [ eval "${1}+=\\${2}"]) + + _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl + func_quote_for_eval "${2}" +dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \ + eval "${1}+=\\\\ \\$func_quote_for_eval_result"]) + + # Save a `func_append' function call where possible by direct use of '+=' + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +else + # Save a `func_append' function call even when '+=' is not available + sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \ + && mv -f "$cfgfile.tmp" "$cfgfile" \ + || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp") + test 0 -eq $? || _lt_function_replace_fail=: +fi + +if test x"$_lt_function_replace_fail" = x":"; then + AC_MSG_WARN([Unable to substitute extended shell functions in $ofile]) +fi +]) + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine which file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS + +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 7 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option `$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl `shared' nor `disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + ]) +])# _LT_SET_OPTIONS + + + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the `shared' and +# `disable-shared' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the `static' and +# `disable-static' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the `fast-install' +# and `disable-fast-install' LT_INIT options. +# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the `disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the `pic-only' and `no-pic' +# LT_INIT options. +# MODE is either `yes' or `no'. If omitted, it defaults to `both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for lt_pkg in $withval; do + IFS="$lt_save_ifs" + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac], + [pic_mode=default]) + +test -z "$pic_mode" && pic_mode=m4_default([$1], [default]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the `pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) + +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59 which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) + +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 3337 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.2]) +m4_define([LT_PACKAGE_REVISION], [1.3337]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.2' +macro_revision='1.3337' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) + +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN) +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) + +# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.14' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.14.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.14.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named 'Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running 'make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "$am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each '.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from 'make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + diff --git a/shadowsocksr-libev/src/libev/autogen.sh b/shadowsocksr-libev/src/libev/autogen.sh new file mode 100644 index 00000000000..8056ee7f9be --- /dev/null +++ b/shadowsocksr-libev/src/libev/autogen.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +autoreconf --install --symlink --force diff --git a/shadowsocksr-libev/src/libev/cmake/configure.cmake b/shadowsocksr-libev/src/libev/cmake/configure.cmake new file mode 100644 index 00000000000..25c482af292 --- /dev/null +++ b/shadowsocksr-libev/src/libev/cmake/configure.cmake @@ -0,0 +1,45 @@ +# Platform checks +include ( CheckFunctionExists ) +include ( CheckIncludeFiles ) + +check_include_files ( dlfcn.h HAVE_DLFCN_H ) +check_include_files ( inttypes.h HAVE_INTTYPES_H ) +check_include_files ( memory.h HAVE_MEMORY_H ) +check_include_files ( poll.h HAVE_POLL_H ) +check_include_files ( port.h HAVE_PORT_H ) +check_include_files ( stdint.h HAVE_STDINT_H ) +check_include_files ( stdlib.h HAVE_STDLIB_H ) +check_include_files ( strings.h HAVE_STRINGS_H ) +check_include_files ( string.h HAVE_STRING_H ) +check_include_files ( "sys/epoll.h" HAVE_SYS_EPOLL_H ) +check_include_files ( "sys/eventfd.h" HAVE_SYS_EVENTFD_H ) +check_include_files ( "sys/event.h" HAVE_SYS_EVENT_H ) +check_include_files ( "sys/inotify.h" HAVE_SYS_INOTIFY_H ) +check_include_files ( "sys/select.h" HAVE_SYS_SELECT_H ) +check_include_files ( "sys/signalfd.h" HAVE_SYS_SIGNALFD_H ) +check_include_files ( "sys/stat.h" HAVE_SYS_STAT_H ) +check_include_files ( "sys/types.h" HAVE_SYS_TYPES_H ) +check_include_files ( "sys/syscall.h" HAVE_SYS_CALL_H ) +check_include_files ( unistd.h HAVE_UNISTD_H ) + +check_function_exists ( clock_gettime HAVE_CLOCK_GETTIME ) +check_function_exists ( epoll_ctl HAVE_EPOLL_CTL ) +check_function_exists ( eventfd HAVE_EVENTFD ) +check_function_exists ( floor HAVE_FLOOR ) +check_function_exists ( inotify_init HAVE_INOTIFY_INIT ) +check_function_exists ( kqueue HAVE_KQUEUE ) +check_function_exists ( nanosleep HAVE_NANOSLEEP ) +check_function_exists ( poll HAVE_POLL ) +check_function_exists ( port_create HAVE_PORT_CREATE ) +check_function_exists ( select HAVE_SELECT ) +check_function_exists ( signalfd HAVE_SIGNALFD ) + +find_library ( HAVE_LIBRT rt ) + +# Tweaks +if (${HAVE_SYS_CALL_H}) + set(HAVE_CLOCK_SYSCALL ${HAVE_CLOCK_GETTIME}) +endif () + + + diff --git a/shadowsocksr-libev/src/libev/cmake/dist.cmake b/shadowsocksr-libev/src/libev/cmake/dist.cmake new file mode 100644 index 00000000000..eddf6fad510 --- /dev/null +++ b/shadowsocksr-libev/src/libev/cmake/dist.cmake @@ -0,0 +1,20 @@ +# LuaDist CMake utility library. +# Provides sane project defaults and macros common to LuaDist CMake builds. +# +# Copyright (C) 2007-2012 LuaDist. +# by David Manura, Peter Drahoš +# Redistribution and use of this file is allowed according to the terms of the MIT license. +# For details see the COPYRIGHT file distributed with LuaDist. +# Please note that the package source code is licensed under its own license. + + +# Tweaks and other defaults +# Setting CMAKE to use loose block and search for find modules in source directory +set ( CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true ) +set ( CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH} ) + +# In MSVC, prevent warnings that can occur when using standard libraries. +if ( MSVC ) + add_definitions ( -D_CRT_SECURE_NO_WARNINGS ) +endif () + diff --git a/shadowsocksr-libev/src/libev/config.h.cmake b/shadowsocksr-libev/src/libev/config.h.cmake new file mode 100644 index 00000000000..73e5913d547 --- /dev/null +++ b/shadowsocksr-libev/src/libev/config.h.cmake @@ -0,0 +1,125 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the `clock_gettime' function. */ +#cmakedefine HAVE_CLOCK_GETTIME 1 + +/* Define to 1 to use the syscall interface for clock_gettime */ +#cmakedefine HAVE_CLOCK_SYSCALL 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H 1 + +/* Define to 1 if you have the `epoll_ctl' function. */ +#cmakedefine HAVE_EPOLL_CTL 1 + +/* Define to 1 if you have the `eventfd' function. */ +#cmakedefine HAVE_EVENTFD 1 + +/* Define to 1 if the floor function is available */ +#cmakedefine HAVE_FLOOR 1 + +/* Define to 1 if you have the `inotify_init' function. */ +#cmakedefine HAVE_INOTIFY_INIT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `kqueue' function. */ +#cmakedefine HAVE_KQUEUE 1 + +/* Define to 1 if you have the `rt' library (-lrt). */ +#cmakedefine HAVE_LIBRT 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `nanosleep' function. */ +#cmakedefine HAVE_NANOSLEEP 1 + +/* Define to 1 if you have the `poll' function. */ +#cmakedefine HAVE_POLL 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_POLL_H 1 + +/* Define to 1 if you have the `port_create' function. */ +#cmakedefine HAVE_PORT_CREATE 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_PORT_H 1 + +/* Define to 1 if you have the `select' function. */ +#cmakedefine HAVE_SELECT 1 + +/* Define to 1 if you have the `signalfd' function. */ +#cmakedefine HAVE_SIGNALFD 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EPOLL_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EVENTFD_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_EVENT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_INOTIFY_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SELECT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SIGNALFD_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H 1 + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#define LT_OBJDIR ".libs/" + +/* Name of package */ +#define PACKAGE "libev" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#cmakedefine VERSION "@DIST_VERSION@" diff --git a/shadowsocksr-libev/src/libev/configure.ac b/shadowsocksr-libev/src/libev/configure.ac new file mode 100644 index 00000000000..dbdcda88d2a --- /dev/null +++ b/shadowsocksr-libev/src/libev/configure.ac @@ -0,0 +1,27 @@ +AC_INIT + +orig_CFLAGS="$CFLAGS" + +AC_CONFIG_SRCDIR([ev_epoll.c]) + +dnl also update ev.h! +AM_INIT_AUTOMAKE(libev,4.22) +AC_CONFIG_HEADERS([config.h]) +AM_MAINTAINER_MODE + +AC_PROG_CC + +dnl Supply default CFLAGS, if not specified +if test -z "$orig_CFLAGS"; then + if test x$GCC = xyes; then + CFLAGS="-g -O3" + fi +fi + +AC_PROG_INSTALL +AC_PROG_LIBTOOL + +m4_include([libev.m4]) + +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT diff --git a/shadowsocksr-libev/src/libev/ev++.h b/shadowsocksr-libev/src/libev/ev++.h new file mode 100644 index 00000000000..4f0a36ab029 --- /dev/null +++ b/shadowsocksr-libev/src/libev/ev++.h @@ -0,0 +1,816 @@ +/* + * libev simple C++ wrapper classes + * + * Copyright (c) 2007,2008,2010 Marc Alexander Lehmann + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- + * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- + * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- + * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, the contents of this file may be used under the terms of + * the GNU General Public License ("GPL") version 2 or any later version, + * in which case the provisions of the GPL are applicable instead of + * the above. If you wish to allow the use of your version of this file + * only under the terms of the GPL and not to allow others to use your + * version of this file under the BSD license, indicate your decision + * by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL. If you do not delete the + * provisions above, a recipient may use your version of this file under + * either the BSD or the GPL. + */ + +#ifndef EVPP_H__ +#define EVPP_H__ + +#ifdef EV_H +# include EV_H +#else +# include "ev.h" +#endif + +#ifndef EV_USE_STDEXCEPT +# define EV_USE_STDEXCEPT 1 +#endif + +#if EV_USE_STDEXCEPT +# include +#endif + +namespace ev { + + typedef ev_tstamp tstamp; + + enum { + UNDEF = EV_UNDEF, + NONE = EV_NONE, + READ = EV_READ, + WRITE = EV_WRITE, +#if EV_COMPAT3 + TIMEOUT = EV_TIMEOUT, +#endif + TIMER = EV_TIMER, + PERIODIC = EV_PERIODIC, + SIGNAL = EV_SIGNAL, + CHILD = EV_CHILD, + STAT = EV_STAT, + IDLE = EV_IDLE, + CHECK = EV_CHECK, + PREPARE = EV_PREPARE, + FORK = EV_FORK, + ASYNC = EV_ASYNC, + EMBED = EV_EMBED, +# undef ERROR // some systems stupidly #define ERROR + ERROR = EV_ERROR + }; + + enum + { + AUTO = EVFLAG_AUTO, + NOENV = EVFLAG_NOENV, + FORKCHECK = EVFLAG_FORKCHECK, + + SELECT = EVBACKEND_SELECT, + POLL = EVBACKEND_POLL, + EPOLL = EVBACKEND_EPOLL, + KQUEUE = EVBACKEND_KQUEUE, + DEVPOLL = EVBACKEND_DEVPOLL, + PORT = EVBACKEND_PORT + }; + + enum + { +#if EV_COMPAT3 + NONBLOCK = EVLOOP_NONBLOCK, + ONESHOT = EVLOOP_ONESHOT, +#endif + NOWAIT = EVRUN_NOWAIT, + ONCE = EVRUN_ONCE + }; + + enum how_t + { + ONE = EVBREAK_ONE, + ALL = EVBREAK_ALL + }; + + struct bad_loop +#if EV_USE_STDEXCEPT + : std::runtime_error +#endif + { +#if EV_USE_STDEXCEPT + bad_loop () + : std::runtime_error ("libev event loop cannot be initialized, bad value of LIBEV_FLAGS?") + { + } +#endif + }; + +#ifdef EV_AX +# undef EV_AX +#endif + +#ifdef EV_AX_ +# undef EV_AX_ +#endif + +#if EV_MULTIPLICITY +# define EV_AX raw_loop +# define EV_AX_ raw_loop, +#else +# define EV_AX +# define EV_AX_ +#endif + + struct loop_ref + { + loop_ref (EV_P) throw () +#if EV_MULTIPLICITY + : EV_AX (EV_A) +#endif + { + } + + bool operator == (const loop_ref &other) const throw () + { +#if EV_MULTIPLICITY + return EV_AX == other.EV_AX; +#else + return true; +#endif + } + + bool operator != (const loop_ref &other) const throw () + { +#if EV_MULTIPLICITY + return ! (*this == other); +#else + return false; +#endif + } + +#if EV_MULTIPLICITY + bool operator == (const EV_P) const throw () + { + return this->EV_AX == EV_A; + } + + bool operator != (const EV_P) const throw () + { + return (*this == EV_A); + } + + operator struct ev_loop * () const throw () + { + return EV_AX; + } + + operator const struct ev_loop * () const throw () + { + return EV_AX; + } + + bool is_default () const throw () + { + return EV_AX == ev_default_loop (0); + } +#endif + +#if EV_COMPAT3 + void loop (int flags = 0) + { + ev_run (EV_AX_ flags); + } + + void unloop (how_t how = ONE) throw () + { + ev_break (EV_AX_ how); + } +#endif + + void run (int flags = 0) + { + ev_run (EV_AX_ flags); + } + + void break_loop (how_t how = ONE) throw () + { + ev_break (EV_AX_ how); + } + + void post_fork () throw () + { + ev_loop_fork (EV_AX); + } + + unsigned int backend () const throw () + { + return ev_backend (EV_AX); + } + + tstamp now () const throw () + { + return ev_now (EV_AX); + } + + void ref () throw () + { + ev_ref (EV_AX); + } + + void unref () throw () + { + ev_unref (EV_AX); + } + +#if EV_FEATURE_API + unsigned int iteration () const throw () + { + return ev_iteration (EV_AX); + } + + unsigned int depth () const throw () + { + return ev_depth (EV_AX); + } + + void set_io_collect_interval (tstamp interval) throw () + { + ev_set_io_collect_interval (EV_AX_ interval); + } + + void set_timeout_collect_interval (tstamp interval) throw () + { + ev_set_timeout_collect_interval (EV_AX_ interval); + } +#endif + + // function callback + void once (int fd, int events, tstamp timeout, void (*cb)(int, void *), void *arg = 0) throw () + { + ev_once (EV_AX_ fd, events, timeout, cb, arg); + } + + // method callback + template + void once (int fd, int events, tstamp timeout, K *object) throw () + { + once (fd, events, timeout, method_thunk, object); + } + + // default method == operator () + template + void once (int fd, int events, tstamp timeout, K *object) throw () + { + once (fd, events, timeout, method_thunk, object); + } + + template + static void method_thunk (int revents, void *arg) + { + (static_cast(arg)->*method) + (revents); + } + + // no-argument method callback + template + void once (int fd, int events, tstamp timeout, K *object) throw () + { + once (fd, events, timeout, method_noargs_thunk, object); + } + + template + static void method_noargs_thunk (int revents, void *arg) + { + (static_cast(arg)->*method) + (); + } + + // simpler function callback + template + void once (int fd, int events, tstamp timeout) throw () + { + once (fd, events, timeout, simpler_func_thunk); + } + + template + static void simpler_func_thunk (int revents, void *arg) + { + (*cb) + (revents); + } + + // simplest function callback + template + void once (int fd, int events, tstamp timeout) throw () + { + once (fd, events, timeout, simplest_func_thunk); + } + + template + static void simplest_func_thunk (int revents, void *arg) + { + (*cb) + (); + } + + void feed_fd_event (int fd, int revents) throw () + { + ev_feed_fd_event (EV_AX_ fd, revents); + } + + void feed_signal_event (int signum) throw () + { + ev_feed_signal_event (EV_AX_ signum); + } + +#if EV_MULTIPLICITY + struct ev_loop* EV_AX; +#endif + + }; + +#if EV_MULTIPLICITY + struct dynamic_loop : loop_ref + { + + dynamic_loop (unsigned int flags = AUTO) throw (bad_loop) + : loop_ref (ev_loop_new (flags)) + { + if (!EV_AX) + throw bad_loop (); + } + + ~dynamic_loop () throw () + { + ev_loop_destroy (EV_AX); + EV_AX = 0; + } + + private: + + dynamic_loop (const dynamic_loop &); + + dynamic_loop & operator= (const dynamic_loop &); + + }; +#endif + + struct default_loop : loop_ref + { + default_loop (unsigned int flags = AUTO) throw (bad_loop) +#if EV_MULTIPLICITY + : loop_ref (ev_default_loop (flags)) +#endif + { + if ( +#if EV_MULTIPLICITY + !EV_AX +#else + !ev_default_loop (flags) +#endif + ) + throw bad_loop (); + } + + private: + default_loop (const default_loop &); + default_loop &operator = (const default_loop &); + }; + + inline loop_ref get_default_loop () throw () + { +#if EV_MULTIPLICITY + return ev_default_loop (0); +#else + return loop_ref (); +#endif + } + +#undef EV_AX +#undef EV_AX_ + +#undef EV_PX +#undef EV_PX_ +#if EV_MULTIPLICITY +# define EV_PX loop_ref EV_A +# define EV_PX_ loop_ref EV_A_ +#else +# define EV_PX +# define EV_PX_ +#endif + + template + struct base : ev_watcher + { + #if EV_MULTIPLICITY + EV_PX; + + // loop set + void set (EV_P) throw () + { + this->EV_A = EV_A; + } + #endif + + base (EV_PX) throw () + #if EV_MULTIPLICITY + : EV_A (EV_A) + #endif + { + ev_init (this, 0); + } + + void set_ (const void *data, void (*cb)(EV_P_ ev_watcher *w, int revents)) throw () + { + this->data = (void *)data; + ev_set_cb (static_cast(this), cb); + } + + // function callback + template + void set (void *data = 0) throw () + { + set_ (data, function_thunk); + } + + template + static void function_thunk (EV_P_ ev_watcher *w, int revents) + { + function + (*static_cast(w), revents); + } + + // method callback + template + void set (K *object) throw () + { + set_ (object, method_thunk); + } + + // default method == operator () + template + void set (K *object) throw () + { + set_ (object, method_thunk); + } + + template + static void method_thunk (EV_P_ ev_watcher *w, int revents) + { + (static_cast(w->data)->*method) + (*static_cast(w), revents); + } + + // no-argument callback + template + void set (K *object) throw () + { + set_ (object, method_noargs_thunk); + } + + template + static void method_noargs_thunk (EV_P_ ev_watcher *w, int revents) + { + (static_cast(w->data)->*method) + (); + } + + void operator ()(int events = EV_UNDEF) + { + return + ev_cb (static_cast(this)) + (static_cast(this), events); + } + + bool is_active () const throw () + { + return ev_is_active (static_cast(this)); + } + + bool is_pending () const throw () + { + return ev_is_pending (static_cast(this)); + } + + void feed_event (int revents) throw () + { + ev_feed_event (EV_A_ static_cast(this), revents); + } + }; + + inline tstamp now (EV_P) throw () + { + return ev_now (EV_A); + } + + inline void delay (tstamp interval) throw () + { + ev_sleep (interval); + } + + inline int version_major () throw () + { + return ev_version_major (); + } + + inline int version_minor () throw () + { + return ev_version_minor (); + } + + inline unsigned int supported_backends () throw () + { + return ev_supported_backends (); + } + + inline unsigned int recommended_backends () throw () + { + return ev_recommended_backends (); + } + + inline unsigned int embeddable_backends () throw () + { + return ev_embeddable_backends (); + } + + inline void set_allocator (void *(*cb)(void *ptr, long size) throw ()) throw () + { + ev_set_allocator (cb); + } + + inline void set_syserr_cb (void (*cb)(const char *msg) throw ()) throw () + { + ev_set_syserr_cb (cb); + } + + #if EV_MULTIPLICITY + #define EV_CONSTRUCT(cppstem,cstem) \ + (EV_PX = get_default_loop ()) throw () \ + : base (EV_A) \ + { \ + } + #else + #define EV_CONSTRUCT(cppstem,cstem) \ + () throw () \ + { \ + } + #endif + + /* using a template here would require quite a few more lines, + * so a macro solution was chosen */ + #define EV_BEGIN_WATCHER(cppstem,cstem) \ + \ + struct cppstem : base \ + { \ + void start () throw () \ + { \ + ev_ ## cstem ## _start (EV_A_ static_cast(this)); \ + } \ + \ + void stop () throw () \ + { \ + ev_ ## cstem ## _stop (EV_A_ static_cast(this)); \ + } \ + \ + cppstem EV_CONSTRUCT(cppstem,cstem) \ + \ + ~cppstem () throw () \ + { \ + stop (); \ + } \ + \ + using base::set; \ + \ + private: \ + \ + cppstem (const cppstem &o); \ + \ + cppstem &operator =(const cppstem &o); \ + \ + public: + + #define EV_END_WATCHER(cppstem,cstem) \ + }; + + EV_BEGIN_WATCHER (io, io) + void set (int fd, int events) throw () + { + int active = is_active (); + if (active) stop (); + ev_io_set (static_cast(this), fd, events); + if (active) start (); + } + + void set (int events) throw () + { + int active = is_active (); + if (active) stop (); + ev_io_set (static_cast(this), fd, events); + if (active) start (); + } + + void start (int fd, int events) throw () + { + set (fd, events); + start (); + } + EV_END_WATCHER (io, io) + + EV_BEGIN_WATCHER (timer, timer) + void set (ev_tstamp after, ev_tstamp repeat = 0.) throw () + { + int active = is_active (); + if (active) stop (); + ev_timer_set (static_cast(this), after, repeat); + if (active) start (); + } + + void start (ev_tstamp after, ev_tstamp repeat = 0.) throw () + { + set (after, repeat); + start (); + } + + void again () throw () + { + ev_timer_again (EV_A_ static_cast(this)); + } + + ev_tstamp remaining () + { + return ev_timer_remaining (EV_A_ static_cast(this)); + } + EV_END_WATCHER (timer, timer) + + #if EV_PERIODIC_ENABLE + EV_BEGIN_WATCHER (periodic, periodic) + void set (ev_tstamp at, ev_tstamp interval = 0.) throw () + { + int active = is_active (); + if (active) stop (); + ev_periodic_set (static_cast(this), at, interval, 0); + if (active) start (); + } + + void start (ev_tstamp at, ev_tstamp interval = 0.) throw () + { + set (at, interval); + start (); + } + + void again () throw () + { + ev_periodic_again (EV_A_ static_cast(this)); + } + EV_END_WATCHER (periodic, periodic) + #endif + + #if EV_SIGNAL_ENABLE + EV_BEGIN_WATCHER (sig, signal) + void set (int signum) throw () + { + int active = is_active (); + if (active) stop (); + ev_signal_set (static_cast(this), signum); + if (active) start (); + } + + void start (int signum) throw () + { + set (signum); + start (); + } + EV_END_WATCHER (sig, signal) + #endif + + #if EV_CHILD_ENABLE + EV_BEGIN_WATCHER (child, child) + void set (int pid, int trace = 0) throw () + { + int active = is_active (); + if (active) stop (); + ev_child_set (static_cast(this), pid, trace); + if (active) start (); + } + + void start (int pid, int trace = 0) throw () + { + set (pid, trace); + start (); + } + EV_END_WATCHER (child, child) + #endif + + #if EV_STAT_ENABLE + EV_BEGIN_WATCHER (stat, stat) + void set (const char *path, ev_tstamp interval = 0.) throw () + { + int active = is_active (); + if (active) stop (); + ev_stat_set (static_cast(this), path, interval); + if (active) start (); + } + + void start (const char *path, ev_tstamp interval = 0.) throw () + { + stop (); + set (path, interval); + start (); + } + + void update () throw () + { + ev_stat_stat (EV_A_ static_cast(this)); + } + EV_END_WATCHER (stat, stat) + #endif + + #if EV_IDLE_ENABLE + EV_BEGIN_WATCHER (idle, idle) + void set () throw () { } + EV_END_WATCHER (idle, idle) + #endif + + #if EV_PREPARE_ENABLE + EV_BEGIN_WATCHER (prepare, prepare) + void set () throw () { } + EV_END_WATCHER (prepare, prepare) + #endif + + #if EV_CHECK_ENABLE + EV_BEGIN_WATCHER (check, check) + void set () throw () { } + EV_END_WATCHER (check, check) + #endif + + #if EV_EMBED_ENABLE + EV_BEGIN_WATCHER (embed, embed) + void set_embed (struct ev_loop *embedded_loop) throw () + { + int active = is_active (); + if (active) stop (); + ev_embed_set (static_cast(this), embedded_loop); + if (active) start (); + } + + void start (struct ev_loop *embedded_loop) throw () + { + set (embedded_loop); + start (); + } + + void sweep () + { + ev_embed_sweep (EV_A_ static_cast(this)); + } + EV_END_WATCHER (embed, embed) + #endif + + #if EV_FORK_ENABLE + EV_BEGIN_WATCHER (fork, fork) + void set () throw () { } + EV_END_WATCHER (fork, fork) + #endif + + #if EV_ASYNC_ENABLE + EV_BEGIN_WATCHER (async, async) + void send () throw () + { + ev_async_send (EV_A_ static_cast(this)); + } + + bool async_pending () throw () + { + return ev_async_pending (static_cast(this)); + } + EV_END_WATCHER (async, async) + #endif + + #undef EV_PX + #undef EV_PX_ + #undef EV_CONSTRUCT + #undef EV_BEGIN_WATCHER + #undef EV_END_WATCHER +} + +#endif + diff --git a/shadowsocksr-libev/src/libev/ev.3 b/shadowsocksr-libev/src/libev/ev.3 new file mode 100644 index 00000000000..7cc2d5724b9 --- /dev/null +++ b/shadowsocksr-libev/src/libev/ev.3 @@ -0,0 +1,5643 @@ +.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.30) +.\" +.\" Standard preamble: +.\" ======================================================================== +.de Sp \" Vertical space (when we can't use .PP) +.if t .sp .5v +.if n .sp +.. +.de Vb \" Begin verbatim text +.ft CW +.nf +.ne \\$1 +.. +.de Ve \" End verbatim text +.ft R +.fi +.. +.\" Set up some character translations and predefined strings. \*(-- will +.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left +.\" double quote, and \*(R" will give a right double quote. \*(C+ will +.\" give a nicer C++. Capital omega is used to do unbreakable dashes and +.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, +.\" nothing in troff, for use with C<>. +.tr \(*W- +.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' +.ie n \{\ +. ds -- \(*W- +. ds PI pi +. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch +. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch +. ds L" "" +. ds R" "" +. ds C` "" +. ds C' "" +'br\} +.el\{\ +. ds -- \|\(em\| +. ds PI \(*p +. ds L" `` +. ds R" '' +. ds C` +. ds C' +'br\} +.\" +.\" Escape single quotes in literal strings from groff's Unicode transform. +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" +.\" If the F register is turned on, we'll generate index entries on stderr for +.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index +.\" entries marked with X<> in POD. Of course, you'll have to process the +.\" output yourself in some meaningful fashion. +.\" +.\" Avoid warning from groff about undefined register 'F'. +.de IX +.. +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{ +. if \nF \{ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" +.. +. if !\nF==2 \{ +. nr % 0 +. nr F 2 +. \} +. \} +.\} +.rr rF +.\" +.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). +.\" Fear. Run. Save yourself. No user-serviceable parts. +. \" fudge factors for nroff and troff +.if n \{\ +. ds #H 0 +. ds #V .8m +. ds #F .3m +. ds #[ \f1 +. ds #] \fP +.\} +.if t \{\ +. ds #H ((1u-(\\\\n(.fu%2u))*.13m) +. ds #V .6m +. ds #F 0 +. ds #[ \& +. ds #] \& +.\} +. \" simple accents for nroff and troff +.if n \{\ +. ds ' \& +. ds ` \& +. ds ^ \& +. ds , \& +. ds ~ ~ +. ds / +.\} +.if t \{\ +. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" +. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' +. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' +. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' +. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' +. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' +.\} +. \" troff and (daisy-wheel) nroff accents +.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' +.ds 8 \h'\*(#H'\(*b\h'-\*(#H' +.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] +.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' +.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' +.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] +.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] +.ds ae a\h'-(\w'a'u*4/10)'e +.ds Ae A\h'-(\w'A'u*4/10)'E +. \" corrections for vroff +.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' +.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' +. \" for low resolution devices (crt and lpr) +.if \n(.H>23 .if \n(.V>19 \ +\{\ +. ds : e +. ds 8 ss +. ds o a +. ds d- d\h'-1'\(ga +. ds D- D\h'-1'\(hy +. ds th \o'bp' +. ds Th \o'LP' +. ds ae ae +. ds Ae AE +.\} +.rm #[ #] #H #V #F C +.\" ======================================================================== +.\" +.IX Title "LIBEV 3" +.TH LIBEV 3 "2015-12-20" "libev-4.20" "libev - high performance full featured event loop" +.\" For nroff, turn off justification. Always turn off hyphenation; it makes +.\" way too many mistakes in technical documents. +.if n .ad l +.nh +.SH "NAME" +libev \- a high performance full\-featured event loop written in C +.SH "SYNOPSIS" +.IX Header "SYNOPSIS" +.Vb 1 +\& #include +.Ve +.SS "\s-1EXAMPLE PROGRAM\s0" +.IX Subsection "EXAMPLE PROGRAM" +.Vb 2 +\& // a single header file is required +\& #include +\& +\& #include // for puts +\& +\& // every watcher type has its own typedef\*(Aqd struct +\& // with the name ev_TYPE +\& ev_io stdin_watcher; +\& ev_timer timeout_watcher; +\& +\& // all watcher callbacks have a similar signature +\& // this callback is called when data is readable on stdin +\& static void +\& stdin_cb (EV_P_ ev_io *w, int revents) +\& { +\& puts ("stdin ready"); +\& // for one\-shot events, one must manually stop the watcher +\& // with its corresponding stop function. +\& ev_io_stop (EV_A_ w); +\& +\& // this causes all nested ev_run\*(Aqs to stop iterating +\& ev_break (EV_A_ EVBREAK_ALL); +\& } +\& +\& // another callback, this time for a time\-out +\& static void +\& timeout_cb (EV_P_ ev_timer *w, int revents) +\& { +\& puts ("timeout"); +\& // this causes the innermost ev_run to stop iterating +\& ev_break (EV_A_ EVBREAK_ONE); +\& } +\& +\& int +\& main (void) +\& { +\& // use the default event loop unless you have special needs +\& struct ev_loop *loop = EV_DEFAULT; +\& +\& // initialise an io watcher, then start it +\& // this one will watch for stdin to become readable +\& ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ); +\& ev_io_start (loop, &stdin_watcher); +\& +\& // initialise a timer watcher, then start it +\& // simple non\-repeating 5.5 second timeout +\& ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.); +\& ev_timer_start (loop, &timeout_watcher); +\& +\& // now wait for events to arrive +\& ev_run (loop, 0); +\& +\& // break was called, so exit +\& return 0; +\& } +.Ve +.SH "ABOUT THIS DOCUMENT" +.IX Header "ABOUT THIS DOCUMENT" +This document documents the libev software package. +.PP +The newest version of this document is also available as an html-formatted +web page you might find easier to navigate when reading it for the first +time: . +.PP +While this document tries to be as complete as possible in documenting +libev, its usage and the rationale behind its design, it is not a tutorial +on event-based programming, nor will it introduce event-based programming +with libev. +.PP +Familiarity with event based programming techniques in general is assumed +throughout this document. +.SH "WHAT TO READ WHEN IN A HURRY" +.IX Header "WHAT TO READ WHEN IN A HURRY" +This manual tries to be very detailed, but unfortunately, this also makes +it very long. If you just want to know the basics of libev, I suggest +reading \*(L"\s-1ANATOMY OF A WATCHER\*(R"\s0, then the \*(L"\s-1EXAMPLE PROGRAM\*(R"\s0 above and +look up the missing functions in \*(L"\s-1GLOBAL FUNCTIONS\*(R"\s0 and the \f(CW\*(C`ev_io\*(C'\fR and +\&\f(CW\*(C`ev_timer\*(C'\fR sections in \*(L"\s-1WATCHER TYPES\*(R"\s0. +.SH "ABOUT LIBEV" +.IX Header "ABOUT LIBEV" +Libev is an event loop: you register interest in certain events (such as a +file descriptor being readable or a timeout occurring), and it will manage +these event sources and provide your program with events. +.PP +To do this, it must take more or less complete control over your process +(or thread) by executing the \fIevent loop\fR handler, and will then +communicate events via a callback mechanism. +.PP +You register interest in certain events by registering so-called \fIevent +watchers\fR, which are relatively small C structures you initialise with the +details of the event, and then hand it over to libev by \fIstarting\fR the +watcher. +.SS "\s-1FEATURES\s0" +.IX Subsection "FEATURES" +Libev supports \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`poll\*(C'\fR, the Linux-specific \f(CW\*(C`epoll\*(C'\fR, the +BSD-specific \f(CW\*(C`kqueue\*(C'\fR and the Solaris-specific event port mechanisms +for file descriptor events (\f(CW\*(C`ev_io\*(C'\fR), the Linux \f(CW\*(C`inotify\*(C'\fR interface +(for \f(CW\*(C`ev_stat\*(C'\fR), Linux eventfd/signalfd (for faster and cleaner +inter-thread wakeup (\f(CW\*(C`ev_async\*(C'\fR)/signal handling (\f(CW\*(C`ev_signal\*(C'\fR)) relative +timers (\f(CW\*(C`ev_timer\*(C'\fR), absolute timers with customised rescheduling +(\f(CW\*(C`ev_periodic\*(C'\fR), synchronous signals (\f(CW\*(C`ev_signal\*(C'\fR), process status +change events (\f(CW\*(C`ev_child\*(C'\fR), and event watchers dealing with the event +loop mechanism itself (\f(CW\*(C`ev_idle\*(C'\fR, \f(CW\*(C`ev_embed\*(C'\fR, \f(CW\*(C`ev_prepare\*(C'\fR and +\&\f(CW\*(C`ev_check\*(C'\fR watchers) as well as file watchers (\f(CW\*(C`ev_stat\*(C'\fR) and even +limited support for fork events (\f(CW\*(C`ev_fork\*(C'\fR). +.PP +It also is quite fast (see this +benchmark comparing it to libevent +for example). +.SS "\s-1CONVENTIONS\s0" +.IX Subsection "CONVENTIONS" +Libev is very configurable. In this manual the default (and most common) +configuration will be described, which supports multiple event loops. For +more info about various configuration options please have a look at +\&\fB\s-1EMBED\s0\fR section in this manual. If libev was configured without support +for multiple event loops, then all functions taking an initial argument of +name \f(CW\*(C`loop\*(C'\fR (which is always of type \f(CW\*(C`struct ev_loop *\*(C'\fR) will not have +this argument. +.SS "\s-1TIME REPRESENTATION\s0" +.IX Subsection "TIME REPRESENTATION" +Libev represents time as a single floating point number, representing +the (fractional) number of seconds since the (\s-1POSIX\s0) epoch (in practice +somewhere near the beginning of 1970, details are complicated, don't +ask). This type is called \f(CW\*(C`ev_tstamp\*(C'\fR, which is what you should use +too. It usually aliases to the \f(CW\*(C`double\*(C'\fR type in C. When you need to do +any calculations on it, you should treat it as some floating point value. +.PP +Unlike the name component \f(CW\*(C`stamp\*(C'\fR might indicate, it is also used for +time differences (e.g. delays) throughout libev. +.SH "ERROR HANDLING" +.IX Header "ERROR HANDLING" +Libev knows three classes of errors: operating system errors, usage errors +and internal errors (bugs). +.PP +When libev catches an operating system error it cannot handle (for example +a system call indicating a condition libev cannot fix), it calls the callback +set via \f(CW\*(C`ev_set_syserr_cb\*(C'\fR, which is supposed to fix the problem or +abort. The default is to print a diagnostic message and to call \f(CW\*(C`abort +()\*(C'\fR. +.PP +When libev detects a usage error such as a negative timer interval, then +it will print a diagnostic message and abort (via the \f(CW\*(C`assert\*(C'\fR mechanism, +so \f(CW\*(C`NDEBUG\*(C'\fR will disable this checking): these are programming errors in +the libev caller and need to be fixed there. +.PP +Libev also has a few internal error-checking \f(CW\*(C`assert\*(C'\fRions, and also has +extensive consistency checking code. These do not trigger under normal +circumstances, as they indicate either a bug in libev or worse. +.SH "GLOBAL FUNCTIONS" +.IX Header "GLOBAL FUNCTIONS" +These functions can be called anytime, even before initialising the +library in any way. +.IP "ev_tstamp ev_time ()" 4 +.IX Item "ev_tstamp ev_time ()" +Returns the current time as libev would use it. Please note that the +\&\f(CW\*(C`ev_now\*(C'\fR function is usually faster and also often returns the timestamp +you actually want to know. Also interesting is the combination of +\&\f(CW\*(C`ev_now_update\*(C'\fR and \f(CW\*(C`ev_now\*(C'\fR. +.IP "ev_sleep (ev_tstamp interval)" 4 +.IX Item "ev_sleep (ev_tstamp interval)" +Sleep for the given interval: The current thread will be blocked +until either it is interrupted or the given time interval has +passed (approximately \- it might return a bit earlier even if not +interrupted). Returns immediately if \f(CW\*(C`interval <= 0\*(C'\fR. +.Sp +Basically this is a sub-second-resolution \f(CW\*(C`sleep ()\*(C'\fR. +.Sp +The range of the \f(CW\*(C`interval\*(C'\fR is limited \- libev only guarantees to work +with sleep times of up to one day (\f(CW\*(C`interval <= 86400\*(C'\fR). +.IP "int ev_version_major ()" 4 +.IX Item "int ev_version_major ()" +.PD 0 +.IP "int ev_version_minor ()" 4 +.IX Item "int ev_version_minor ()" +.PD +You can find out the major and minor \s-1ABI\s0 version numbers of the library +you linked against by calling the functions \f(CW\*(C`ev_version_major\*(C'\fR and +\&\f(CW\*(C`ev_version_minor\*(C'\fR. If you want, you can compare against the global +symbols \f(CW\*(C`EV_VERSION_MAJOR\*(C'\fR and \f(CW\*(C`EV_VERSION_MINOR\*(C'\fR, which specify the +version of the library your program was compiled against. +.Sp +These version numbers refer to the \s-1ABI\s0 version of the library, not the +release version. +.Sp +Usually, it's a good idea to terminate if the major versions mismatch, +as this indicates an incompatible change. Minor versions are usually +compatible to older versions, so a larger minor version alone is usually +not a problem. +.Sp +Example: Make sure we haven't accidentally been linked against the wrong +version (note, however, that this will not detect other \s-1ABI\s0 mismatches, +such as \s-1LFS\s0 or reentrancy). +.Sp +.Vb 3 +\& assert (("libev version mismatch", +\& ev_version_major () == EV_VERSION_MAJOR +\& && ev_version_minor () >= EV_VERSION_MINOR)); +.Ve +.IP "unsigned int ev_supported_backends ()" 4 +.IX Item "unsigned int ev_supported_backends ()" +Return the set of all backends (i.e. their corresponding \f(CW\*(C`EV_BACKEND_*\*(C'\fR +value) compiled into this binary of libev (independent of their +availability on the system you are running on). See \f(CW\*(C`ev_default_loop\*(C'\fR for +a description of the set values. +.Sp +Example: make sure we have the epoll method, because yeah this is cool and +a must have and can we have a torrent of it please!!!11 +.Sp +.Vb 2 +\& assert (("sorry, no epoll, no sex", +\& ev_supported_backends () & EVBACKEND_EPOLL)); +.Ve +.IP "unsigned int ev_recommended_backends ()" 4 +.IX Item "unsigned int ev_recommended_backends ()" +Return the set of all backends compiled into this binary of libev and +also recommended for this platform, meaning it will work for most file +descriptor types. This set is often smaller than the one returned by +\&\f(CW\*(C`ev_supported_backends\*(C'\fR, as for example kqueue is broken on most BSDs +and will not be auto-detected unless you explicitly request it (assuming +you know what you are doing). This is the set of backends that libev will +probe for if you specify no backends explicitly. +.IP "unsigned int ev_embeddable_backends ()" 4 +.IX Item "unsigned int ev_embeddable_backends ()" +Returns the set of backends that are embeddable in other event loops. This +value is platform-specific but can include backends not available on the +current system. To find which embeddable backends might be supported on +the current system, you would need to look at \f(CW\*(C`ev_embeddable_backends () +& ev_supported_backends ()\*(C'\fR, likewise for recommended ones. +.Sp +See the description of \f(CW\*(C`ev_embed\*(C'\fR watchers for more info. +.IP "ev_set_allocator (void *(*cb)(void *ptr, long size) throw ())" 4 +.IX Item "ev_set_allocator (void *(*cb)(void *ptr, long size) throw ())" +Sets the allocation function to use (the prototype is similar \- the +semantics are identical to the \f(CW\*(C`realloc\*(C'\fR C89/SuS/POSIX function). It is +used to allocate and free memory (no surprises here). If it returns zero +when memory needs to be allocated (\f(CW\*(C`size != 0\*(C'\fR), the library might abort +or take some potentially destructive action. +.Sp +Since some systems (at least OpenBSD and Darwin) fail to implement +correct \f(CW\*(C`realloc\*(C'\fR semantics, libev will use a wrapper around the system +\&\f(CW\*(C`realloc\*(C'\fR and \f(CW\*(C`free\*(C'\fR functions by default. +.Sp +You could override this function in high-availability programs to, say, +free some memory if it cannot allocate memory, to use a special allocator, +or even to sleep a while and retry until some memory is available. +.Sp +Example: Replace the libev allocator with one that waits a bit and then +retries (example requires a standards-compliant \f(CW\*(C`realloc\*(C'\fR). +.Sp +.Vb 6 +\& static void * +\& persistent_realloc (void *ptr, size_t size) +\& { +\& for (;;) +\& { +\& void *newptr = realloc (ptr, size); +\& +\& if (newptr) +\& return newptr; +\& +\& sleep (60); +\& } +\& } +\& +\& ... +\& ev_set_allocator (persistent_realloc); +.Ve +.IP "ev_set_syserr_cb (void (*cb)(const char *msg) throw ())" 4 +.IX Item "ev_set_syserr_cb (void (*cb)(const char *msg) throw ())" +Set the callback function to call on a retryable system call error (such +as failed select, poll, epoll_wait). The message is a printable string +indicating the system call or subsystem causing the problem. If this +callback is set, then libev will expect it to remedy the situation, no +matter what, when it returns. That is, libev will generally retry the +requested operation, or, if the condition doesn't go away, do bad stuff +(such as abort). +.Sp +Example: This is basically the same thing that libev does internally, too. +.Sp +.Vb 6 +\& static void +\& fatal_error (const char *msg) +\& { +\& perror (msg); +\& abort (); +\& } +\& +\& ... +\& ev_set_syserr_cb (fatal_error); +.Ve +.IP "ev_feed_signal (int signum)" 4 +.IX Item "ev_feed_signal (int signum)" +This function can be used to \*(L"simulate\*(R" a signal receive. It is completely +safe to call this function at any time, from any context, including signal +handlers or random threads. +.Sp +Its main use is to customise signal handling in your process, especially +in the presence of threads. For example, you could block signals +by default in all threads (and specifying \f(CW\*(C`EVFLAG_NOSIGMASK\*(C'\fR when +creating any loops), and in one thread, use \f(CW\*(C`sigwait\*(C'\fR or any other +mechanism to wait for signals, then \*(L"deliver\*(R" them to libev by calling +\&\f(CW\*(C`ev_feed_signal\*(C'\fR. +.SH "FUNCTIONS CONTROLLING EVENT LOOPS" +.IX Header "FUNCTIONS CONTROLLING EVENT LOOPS" +An event loop is described by a \f(CW\*(C`struct ev_loop *\*(C'\fR (the \f(CW\*(C`struct\*(C'\fR is +\&\fInot\fR optional in this case unless libev 3 compatibility is disabled, as +libev 3 had an \f(CW\*(C`ev_loop\*(C'\fR function colliding with the struct name). +.PP +The library knows two types of such loops, the \fIdefault\fR loop, which +supports child process events, and dynamically created event loops which +do not. +.IP "struct ev_loop *ev_default_loop (unsigned int flags)" 4 +.IX Item "struct ev_loop *ev_default_loop (unsigned int flags)" +This returns the \*(L"default\*(R" event loop object, which is what you should +normally use when you just need \*(L"the event loop\*(R". Event loop objects and +the \f(CW\*(C`flags\*(C'\fR parameter are described in more detail in the entry for +\&\f(CW\*(C`ev_loop_new\*(C'\fR. +.Sp +If the default loop is already initialised then this function simply +returns it (and ignores the flags. If that is troubling you, check +\&\f(CW\*(C`ev_backend ()\*(C'\fR afterwards). Otherwise it will create it with the given +flags, which should almost always be \f(CW0\fR, unless the caller is also the +one calling \f(CW\*(C`ev_run\*(C'\fR or otherwise qualifies as \*(L"the main program\*(R". +.Sp +If you don't know what event loop to use, use the one returned from this +function (or via the \f(CW\*(C`EV_DEFAULT\*(C'\fR macro). +.Sp +Note that this function is \fInot\fR thread-safe, so if you want to use it +from multiple threads, you have to employ some kind of mutex (note also +that this case is unlikely, as loops cannot be shared easily between +threads anyway). +.Sp +The default loop is the only loop that can handle \f(CW\*(C`ev_child\*(C'\fR watchers, +and to do this, it always registers a handler for \f(CW\*(C`SIGCHLD\*(C'\fR. If this is +a problem for your application you can either create a dynamic loop with +\&\f(CW\*(C`ev_loop_new\*(C'\fR which doesn't do that, or you can simply overwrite the +\&\f(CW\*(C`SIGCHLD\*(C'\fR signal handler \fIafter\fR calling \f(CW\*(C`ev_default_init\*(C'\fR. +.Sp +Example: This is the most typical usage. +.Sp +.Vb 2 +\& if (!ev_default_loop (0)) +\& fatal ("could not initialise libev, bad $LIBEV_FLAGS in environment?"); +.Ve +.Sp +Example: Restrict libev to the select and poll backends, and do not allow +environment settings to be taken into account: +.Sp +.Vb 1 +\& ev_default_loop (EVBACKEND_POLL | EVBACKEND_SELECT | EVFLAG_NOENV); +.Ve +.IP "struct ev_loop *ev_loop_new (unsigned int flags)" 4 +.IX Item "struct ev_loop *ev_loop_new (unsigned int flags)" +This will create and initialise a new event loop object. If the loop +could not be initialised, returns false. +.Sp +This function is thread-safe, and one common way to use libev with +threads is indeed to create one loop per thread, and using the default +loop in the \*(L"main\*(R" or \*(L"initial\*(R" thread. +.Sp +The flags argument can be used to specify special behaviour or specific +backends to use, and is usually specified as \f(CW0\fR (or \f(CW\*(C`EVFLAG_AUTO\*(C'\fR). +.Sp +The following flags are supported: +.RS 4 +.ie n .IP """EVFLAG_AUTO""" 4 +.el .IP "\f(CWEVFLAG_AUTO\fR" 4 +.IX Item "EVFLAG_AUTO" +The default flags value. Use this if you have no clue (it's the right +thing, believe me). +.ie n .IP """EVFLAG_NOENV""" 4 +.el .IP "\f(CWEVFLAG_NOENV\fR" 4 +.IX Item "EVFLAG_NOENV" +If this flag bit is or'ed into the flag value (or the program runs setuid +or setgid) then libev will \fInot\fR look at the environment variable +\&\f(CW\*(C`LIBEV_FLAGS\*(C'\fR. Otherwise (the default), this environment variable will +override the flags completely if it is found in the environment. This is +useful to try out specific backends to test their performance, to work +around bugs, or to make libev threadsafe (accessing environment variables +cannot be done in a threadsafe way, but usually it works if no other +thread modifies them). +.ie n .IP """EVFLAG_FORKCHECK""" 4 +.el .IP "\f(CWEVFLAG_FORKCHECK\fR" 4 +.IX Item "EVFLAG_FORKCHECK" +Instead of calling \f(CW\*(C`ev_loop_fork\*(C'\fR manually after a fork, you can also +make libev check for a fork in each iteration by enabling this flag. +.Sp +This works by calling \f(CW\*(C`getpid ()\*(C'\fR on every iteration of the loop, +and thus this might slow down your event loop if you do a lot of loop +iterations and little real work, but is usually not noticeable (on my +GNU/Linux system for example, \f(CW\*(C`getpid\*(C'\fR is actually a simple 5\-insn sequence +without a system call and thus \fIvery\fR fast, but my GNU/Linux system also has +\&\f(CW\*(C`pthread_atfork\*(C'\fR which is even faster). +.Sp +The big advantage of this flag is that you can forget about fork (and +forget about forgetting to tell libev about forking, although you still +have to ignore \f(CW\*(C`SIGPIPE\*(C'\fR) when you use this flag. +.Sp +This flag setting cannot be overridden or specified in the \f(CW\*(C`LIBEV_FLAGS\*(C'\fR +environment variable. +.ie n .IP """EVFLAG_NOINOTIFY""" 4 +.el .IP "\f(CWEVFLAG_NOINOTIFY\fR" 4 +.IX Item "EVFLAG_NOINOTIFY" +When this flag is specified, then libev will not attempt to use the +\&\fIinotify\fR \s-1API\s0 for its \f(CW\*(C`ev_stat\*(C'\fR watchers. Apart from debugging and +testing, this flag can be useful to conserve inotify file descriptors, as +otherwise each loop using \f(CW\*(C`ev_stat\*(C'\fR watchers consumes one inotify handle. +.ie n .IP """EVFLAG_SIGNALFD""" 4 +.el .IP "\f(CWEVFLAG_SIGNALFD\fR" 4 +.IX Item "EVFLAG_SIGNALFD" +When this flag is specified, then libev will attempt to use the +\&\fIsignalfd\fR \s-1API\s0 for its \f(CW\*(C`ev_signal\*(C'\fR (and \f(CW\*(C`ev_child\*(C'\fR) watchers. This \s-1API\s0 +delivers signals synchronously, which makes it both faster and might make +it possible to get the queued signal data. It can also simplify signal +handling with threads, as long as you properly block signals in your +threads that are not interested in handling them. +.Sp +Signalfd will not be used by default as this changes your signal mask, and +there are a lot of shoddy libraries and programs (glib's threadpool for +example) that can't properly initialise their signal masks. +.ie n .IP """EVFLAG_NOSIGMASK""" 4 +.el .IP "\f(CWEVFLAG_NOSIGMASK\fR" 4 +.IX Item "EVFLAG_NOSIGMASK" +When this flag is specified, then libev will avoid to modify the signal +mask. Specifically, this means you have to make sure signals are unblocked +when you want to receive them. +.Sp +This behaviour is useful when you want to do your own signal handling, or +want to handle signals only in specific threads and want to avoid libev +unblocking the signals. +.Sp +It's also required by \s-1POSIX\s0 in a threaded program, as libev calls +\&\f(CW\*(C`sigprocmask\*(C'\fR, whose behaviour is officially unspecified. +.Sp +This flag's behaviour will become the default in future versions of libev. +.ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4 +.el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4 +.IX Item "EVBACKEND_SELECT (value 1, portable select backend)" +This is your standard \fIselect\fR\|(2) backend. Not \fIcompletely\fR standard, as +libev tries to roll its own fd_set with no limits on the number of fds, +but if that fails, expect a fairly low limit on the number of fds when +using this backend. It doesn't scale too well (O(highest_fd)), but its +usually the fastest backend for a low number of (low-numbered :) fds. +.Sp +To get good performance out of this backend you need a high amount of +parallelism (most of the file descriptors should be busy). If you are +writing a server, you should \f(CW\*(C`accept ()\*(C'\fR in a loop to accept as many +connections as possible during one iteration. You might also want to have +a look at \f(CW\*(C`ev_set_io_collect_interval ()\*(C'\fR to increase the amount of +readiness notifications you get per iteration. +.Sp +This backend maps \f(CW\*(C`EV_READ\*(C'\fR to the \f(CW\*(C`readfds\*(C'\fR set and \f(CW\*(C`EV_WRITE\*(C'\fR to the +\&\f(CW\*(C`writefds\*(C'\fR set (and to work around Microsoft Windows bugs, also onto the +\&\f(CW\*(C`exceptfds\*(C'\fR set on that platform). +.ie n .IP """EVBACKEND_POLL"" (value 2, poll backend, available everywhere except on windows)" 4 +.el .IP "\f(CWEVBACKEND_POLL\fR (value 2, poll backend, available everywhere except on windows)" 4 +.IX Item "EVBACKEND_POLL (value 2, poll backend, available everywhere except on windows)" +And this is your standard \fIpoll\fR\|(2) backend. It's more complicated +than select, but handles sparse fds better and has no artificial +limit on the number of fds you can use (except it will slow down +considerably with a lot of inactive fds). It scales similarly to select, +i.e. O(total_fds). See the entry for \f(CW\*(C`EVBACKEND_SELECT\*(C'\fR, above, for +performance tips. +.Sp +This backend maps \f(CW\*(C`EV_READ\*(C'\fR to \f(CW\*(C`POLLIN | POLLERR | POLLHUP\*(C'\fR, and +\&\f(CW\*(C`EV_WRITE\*(C'\fR to \f(CW\*(C`POLLOUT | POLLERR | POLLHUP\*(C'\fR. +.ie n .IP """EVBACKEND_EPOLL"" (value 4, Linux)" 4 +.el .IP "\f(CWEVBACKEND_EPOLL\fR (value 4, Linux)" 4 +.IX Item "EVBACKEND_EPOLL (value 4, Linux)" +Use the linux-specific \fIepoll\fR\|(7) interface (for both pre\- and post\-2.6.9 +kernels). +.Sp +For few fds, this backend is a bit little slower than poll and select, but +it scales phenomenally better. While poll and select usually scale like +O(total_fds) where total_fds is the total number of fds (or the highest +fd), epoll scales either O(1) or O(active_fds). +.Sp +The epoll mechanism deserves honorable mention as the most misdesigned +of the more advanced event mechanisms: mere annoyances include silently +dropping file descriptors, requiring a system call per change per file +descriptor (and unnecessary guessing of parameters), problems with dup, +returning before the timeout value, resulting in additional iterations +(and only giving 5ms accuracy while select on the same platform gives +0.1ms) and so on. The biggest issue is fork races, however \- if a program +forks then \fIboth\fR parent and child process have to recreate the epoll +set, which can take considerable time (one syscall per file descriptor) +and is of course hard to detect. +.Sp +Epoll is also notoriously buggy \- embedding epoll fds \fIshould\fR work, +but of course \fIdoesn't\fR, and epoll just loves to report events for +totally \fIdifferent\fR file descriptors (even already closed ones, so +one cannot even remove them from the set) than registered in the set +(especially on \s-1SMP\s0 systems). Libev tries to counter these spurious +notifications by employing an additional generation counter and comparing +that against the events to filter out spurious ones, recreating the set +when required. Epoll also erroneously rounds down timeouts, but gives you +no way to know when and by how much, so sometimes you have to busy-wait +because epoll returns immediately despite a nonzero timeout. And last +not least, it also refuses to work with some file descriptors which work +perfectly fine with \f(CW\*(C`select\*(C'\fR (files, many character devices...). +.Sp +Epoll is truly the train wreck among event poll mechanisms, a frankenpoll, +cobbled together in a hurry, no thought to design or interaction with +others. Oh, the pain, will it ever stop... +.Sp +While stopping, setting and starting an I/O watcher in the same iteration +will result in some caching, there is still a system call per such +incident (because the same \fIfile descriptor\fR could point to a different +\&\fIfile description\fR now), so its best to avoid that. Also, \f(CW\*(C`dup ()\*(C'\fR'ed +file descriptors might not work very well if you register events for both +file descriptors. +.Sp +Best performance from this backend is achieved by not unregistering all +watchers for a file descriptor until it has been closed, if possible, +i.e. keep at least one watcher active per fd at all times. Stopping and +starting a watcher (without re-setting it) also usually doesn't cause +extra overhead. A fork can both result in spurious notifications as well +as in libev having to destroy and recreate the epoll object, which can +take considerable time and thus should be avoided. +.Sp +All this means that, in practice, \f(CW\*(C`EVBACKEND_SELECT\*(C'\fR can be as fast or +faster than epoll for maybe up to a hundred file descriptors, depending on +the usage. So sad. +.Sp +While nominally embeddable in other event loops, this feature is broken in +all kernel versions tested so far. +.Sp +This backend maps \f(CW\*(C`EV_READ\*(C'\fR and \f(CW\*(C`EV_WRITE\*(C'\fR in the same way as +\&\f(CW\*(C`EVBACKEND_POLL\*(C'\fR. +.ie n .IP """EVBACKEND_KQUEUE"" (value 8, most \s-1BSD\s0 clones)" 4 +.el .IP "\f(CWEVBACKEND_KQUEUE\fR (value 8, most \s-1BSD\s0 clones)" 4 +.IX Item "EVBACKEND_KQUEUE (value 8, most BSD clones)" +Kqueue deserves special mention, as at the time of this writing, it +was broken on all BSDs except NetBSD (usually it doesn't work reliably +with anything but sockets and pipes, except on Darwin, where of course +it's completely useless). Unlike epoll, however, whose brokenness +is by design, these kqueue bugs can (and eventually will) be fixed +without \s-1API\s0 changes to existing programs. For this reason it's not being +\&\*(L"auto-detected\*(R" unless you explicitly specify it in the flags (i.e. using +\&\f(CW\*(C`EVBACKEND_KQUEUE\*(C'\fR) or libev was compiled on a known-to-be-good (\-enough) +system like NetBSD. +.Sp +You still can embed kqueue into a normal poll or select backend and use it +only for sockets (after having made sure that sockets work with kqueue on +the target platform). See \f(CW\*(C`ev_embed\*(C'\fR watchers for more info. +.Sp +It scales in the same way as the epoll backend, but the interface to the +kernel is more efficient (which says nothing about its actual speed, of +course). While stopping, setting and starting an I/O watcher does never +cause an extra system call as with \f(CW\*(C`EVBACKEND_EPOLL\*(C'\fR, it still adds up to +two event changes per incident. Support for \f(CW\*(C`fork ()\*(C'\fR is very bad (you +might have to leak fd's on fork, but it's more sane than epoll) and it +drops fds silently in similarly hard-to-detect cases. +.Sp +This backend usually performs well under most conditions. +.Sp +While nominally embeddable in other event loops, this doesn't work +everywhere, so you might need to test for this. And since it is broken +almost everywhere, you should only use it when you have a lot of sockets +(for which it usually works), by embedding it into another event loop +(e.g. \f(CW\*(C`EVBACKEND_SELECT\*(C'\fR or \f(CW\*(C`EVBACKEND_POLL\*(C'\fR (but \f(CW\*(C`poll\*(C'\fR is of course +also broken on \s-1OS X\s0)) and, did I mention it, using it only for sockets. +.Sp +This backend maps \f(CW\*(C`EV_READ\*(C'\fR into an \f(CW\*(C`EVFILT_READ\*(C'\fR kevent with +\&\f(CW\*(C`NOTE_EOF\*(C'\fR, and \f(CW\*(C`EV_WRITE\*(C'\fR into an \f(CW\*(C`EVFILT_WRITE\*(C'\fR kevent with +\&\f(CW\*(C`NOTE_EOF\*(C'\fR. +.ie n .IP """EVBACKEND_DEVPOLL"" (value 16, Solaris 8)" 4 +.el .IP "\f(CWEVBACKEND_DEVPOLL\fR (value 16, Solaris 8)" 4 +.IX Item "EVBACKEND_DEVPOLL (value 16, Solaris 8)" +This is not implemented yet (and might never be, unless you send me an +implementation). According to reports, \f(CW\*(C`/dev/poll\*(C'\fR only supports sockets +and is not embeddable, which would limit the usefulness of this backend +immensely. +.ie n .IP """EVBACKEND_PORT"" (value 32, Solaris 10)" 4 +.el .IP "\f(CWEVBACKEND_PORT\fR (value 32, Solaris 10)" 4 +.IX Item "EVBACKEND_PORT (value 32, Solaris 10)" +This uses the Solaris 10 event port mechanism. As with everything on Solaris, +it's really slow, but it still scales very well (O(active_fds)). +.Sp +While this backend scales well, it requires one system call per active +file descriptor per loop iteration. For small and medium numbers of file +descriptors a \*(L"slow\*(R" \f(CW\*(C`EVBACKEND_SELECT\*(C'\fR or \f(CW\*(C`EVBACKEND_POLL\*(C'\fR backend +might perform better. +.Sp +On the positive side, this backend actually performed fully to +specification in all tests and is fully embeddable, which is a rare feat +among the OS-specific backends (I vastly prefer correctness over speed +hacks). +.Sp +On the negative side, the interface is \fIbizarre\fR \- so bizarre that +even sun itself gets it wrong in their code examples: The event polling +function sometimes returns events to the caller even though an error +occurred, but with no indication whether it has done so or not (yes, it's +even documented that way) \- deadly for edge-triggered interfaces where you +absolutely have to know whether an event occurred or not because you have +to re-arm the watcher. +.Sp +Fortunately libev seems to be able to work around these idiocies. +.Sp +This backend maps \f(CW\*(C`EV_READ\*(C'\fR and \f(CW\*(C`EV_WRITE\*(C'\fR in the same way as +\&\f(CW\*(C`EVBACKEND_POLL\*(C'\fR. +.ie n .IP """EVBACKEND_ALL""" 4 +.el .IP "\f(CWEVBACKEND_ALL\fR" 4 +.IX Item "EVBACKEND_ALL" +Try all backends (even potentially broken ones that wouldn't be tried +with \f(CW\*(C`EVFLAG_AUTO\*(C'\fR). Since this is a mask, you can do stuff such as +\&\f(CW\*(C`EVBACKEND_ALL & ~EVBACKEND_KQUEUE\*(C'\fR. +.Sp +It is definitely not recommended to use this flag, use whatever +\&\f(CW\*(C`ev_recommended_backends ()\*(C'\fR returns, or simply do not specify a backend +at all. +.ie n .IP """EVBACKEND_MASK""" 4 +.el .IP "\f(CWEVBACKEND_MASK\fR" 4 +.IX Item "EVBACKEND_MASK" +Not a backend at all, but a mask to select all backend bits from a +\&\f(CW\*(C`flags\*(C'\fR value, in case you want to mask out any backends from a flags +value (e.g. when modifying the \f(CW\*(C`LIBEV_FLAGS\*(C'\fR environment variable). +.RE +.RS 4 +.Sp +If one or more of the backend flags are or'ed into the flags value, +then only these backends will be tried (in the reverse order as listed +here). If none are specified, all backends in \f(CW\*(C`ev_recommended_backends +()\*(C'\fR will be tried. +.Sp +Example: Try to create a event loop that uses epoll and nothing else. +.Sp +.Vb 3 +\& struct ev_loop *epoller = ev_loop_new (EVBACKEND_EPOLL | EVFLAG_NOENV); +\& if (!epoller) +\& fatal ("no epoll found here, maybe it hides under your chair"); +.Ve +.Sp +Example: Use whatever libev has to offer, but make sure that kqueue is +used if available. +.Sp +.Vb 1 +\& struct ev_loop *loop = ev_loop_new (ev_recommended_backends () | EVBACKEND_KQUEUE); +.Ve +.RE +.IP "ev_loop_destroy (loop)" 4 +.IX Item "ev_loop_destroy (loop)" +Destroys an event loop object (frees all memory and kernel state +etc.). None of the active event watchers will be stopped in the normal +sense, so e.g. \f(CW\*(C`ev_is_active\*(C'\fR might still return true. It is your +responsibility to either stop all watchers cleanly yourself \fIbefore\fR +calling this function, or cope with the fact afterwards (which is usually +the easiest thing, you can just ignore the watchers and/or \f(CW\*(C`free ()\*(C'\fR them +for example). +.Sp +Note that certain global state, such as signal state (and installed signal +handlers), will not be freed by this function, and related watchers (such +as signal and child watchers) would need to be stopped manually. +.Sp +This function is normally used on loop objects allocated by +\&\f(CW\*(C`ev_loop_new\*(C'\fR, but it can also be used on the default loop returned by +\&\f(CW\*(C`ev_default_loop\*(C'\fR, in which case it is not thread-safe. +.Sp +Note that it is not advisable to call this function on the default loop +except in the rare occasion where you really need to free its resources. +If you need dynamically allocated loops it is better to use \f(CW\*(C`ev_loop_new\*(C'\fR +and \f(CW\*(C`ev_loop_destroy\*(C'\fR. +.IP "ev_loop_fork (loop)" 4 +.IX Item "ev_loop_fork (loop)" +This function sets a flag that causes subsequent \f(CW\*(C`ev_run\*(C'\fR iterations +to reinitialise the kernel state for backends that have one. Despite +the name, you can call it anytime you are allowed to start or stop +watchers (except inside an \f(CW\*(C`ev_prepare\*(C'\fR callback), but it makes most +sense after forking, in the child process. You \fImust\fR call it (or use +\&\f(CW\*(C`EVFLAG_FORKCHECK\*(C'\fR) in the child before resuming or calling \f(CW\*(C`ev_run\*(C'\fR. +.Sp +In addition, if you want to reuse a loop (via this function or +\&\f(CW\*(C`EVFLAG_FORKCHECK\*(C'\fR), you \fIalso\fR have to ignore \f(CW\*(C`SIGPIPE\*(C'\fR. +.Sp +Again, you \fIhave\fR to call it on \fIany\fR loop that you want to re-use after +a fork, \fIeven if you do not plan to use the loop in the parent\fR. This is +because some kernel interfaces *cough* \fIkqueue\fR *cough* do funny things +during fork. +.Sp +On the other hand, you only need to call this function in the child +process if and only if you want to use the event loop in the child. If +you just fork+exec or create a new loop in the child, you don't have to +call it at all (in fact, \f(CW\*(C`epoll\*(C'\fR is so badly broken that it makes a +difference, but libev will usually detect this case on its own and do a +costly reset of the backend). +.Sp +The function itself is quite fast and it's usually not a problem to call +it just in case after a fork. +.Sp +Example: Automate calling \f(CW\*(C`ev_loop_fork\*(C'\fR on the default loop when +using pthreads. +.Sp +.Vb 5 +\& static void +\& post_fork_child (void) +\& { +\& ev_loop_fork (EV_DEFAULT); +\& } +\& +\& ... +\& pthread_atfork (0, 0, post_fork_child); +.Ve +.IP "int ev_is_default_loop (loop)" 4 +.IX Item "int ev_is_default_loop (loop)" +Returns true when the given loop is, in fact, the default loop, and false +otherwise. +.IP "unsigned int ev_iteration (loop)" 4 +.IX Item "unsigned int ev_iteration (loop)" +Returns the current iteration count for the event loop, which is identical +to the number of times libev did poll for new events. It starts at \f(CW0\fR +and happily wraps around with enough iterations. +.Sp +This value can sometimes be useful as a generation counter of sorts (it +\&\*(L"ticks\*(R" the number of loop iterations), as it roughly corresponds with +\&\f(CW\*(C`ev_prepare\*(C'\fR and \f(CW\*(C`ev_check\*(C'\fR calls \- and is incremented between the +prepare and check phases. +.IP "unsigned int ev_depth (loop)" 4 +.IX Item "unsigned int ev_depth (loop)" +Returns the number of times \f(CW\*(C`ev_run\*(C'\fR was entered minus the number of +times \f(CW\*(C`ev_run\*(C'\fR was exited normally, in other words, the recursion depth. +.Sp +Outside \f(CW\*(C`ev_run\*(C'\fR, this number is zero. In a callback, this number is +\&\f(CW1\fR, unless \f(CW\*(C`ev_run\*(C'\fR was invoked recursively (or from another thread), +in which case it is higher. +.Sp +Leaving \f(CW\*(C`ev_run\*(C'\fR abnormally (setjmp/longjmp, cancelling the thread, +throwing an exception etc.), doesn't count as \*(L"exit\*(R" \- consider this +as a hint to avoid such ungentleman-like behaviour unless it's really +convenient, in which case it is fully supported. +.IP "unsigned int ev_backend (loop)" 4 +.IX Item "unsigned int ev_backend (loop)" +Returns one of the \f(CW\*(C`EVBACKEND_*\*(C'\fR flags indicating the event backend in +use. +.IP "ev_tstamp ev_now (loop)" 4 +.IX Item "ev_tstamp ev_now (loop)" +Returns the current \*(L"event loop time\*(R", which is the time the event loop +received events and started processing them. This timestamp does not +change as long as callbacks are being processed, and this is also the base +time used for relative timers. You can treat it as the timestamp of the +event occurring (or more correctly, libev finding out about it). +.IP "ev_now_update (loop)" 4 +.IX Item "ev_now_update (loop)" +Establishes the current time by querying the kernel, updating the time +returned by \f(CW\*(C`ev_now ()\*(C'\fR in the progress. This is a costly operation and +is usually done automatically within \f(CW\*(C`ev_run ()\*(C'\fR. +.Sp +This function is rarely useful, but when some event callback runs for a +very long time without entering the event loop, updating libev's idea of +the current time is a good idea. +.Sp +See also \*(L"The special problem of time updates\*(R" in the \f(CW\*(C`ev_timer\*(C'\fR section. +.IP "ev_suspend (loop)" 4 +.IX Item "ev_suspend (loop)" +.PD 0 +.IP "ev_resume (loop)" 4 +.IX Item "ev_resume (loop)" +.PD +These two functions suspend and resume an event loop, for use when the +loop is not used for a while and timeouts should not be processed. +.Sp +A typical use case would be an interactive program such as a game: When +the user presses \f(CW\*(C`^Z\*(C'\fR to suspend the game and resumes it an hour later it +would be best to handle timeouts as if no time had actually passed while +the program was suspended. This can be achieved by calling \f(CW\*(C`ev_suspend\*(C'\fR +in your \f(CW\*(C`SIGTSTP\*(C'\fR handler, sending yourself a \f(CW\*(C`SIGSTOP\*(C'\fR and calling +\&\f(CW\*(C`ev_resume\*(C'\fR directly afterwards to resume timer processing. +.Sp +Effectively, all \f(CW\*(C`ev_timer\*(C'\fR watchers will be delayed by the time spend +between \f(CW\*(C`ev_suspend\*(C'\fR and \f(CW\*(C`ev_resume\*(C'\fR, and all \f(CW\*(C`ev_periodic\*(C'\fR watchers +will be rescheduled (that is, they will lose any events that would have +occurred while suspended). +.Sp +After calling \f(CW\*(C`ev_suspend\*(C'\fR you \fBmust not\fR call \fIany\fR function on the +given loop other than \f(CW\*(C`ev_resume\*(C'\fR, and you \fBmust not\fR call \f(CW\*(C`ev_resume\*(C'\fR +without a previous call to \f(CW\*(C`ev_suspend\*(C'\fR. +.Sp +Calling \f(CW\*(C`ev_suspend\*(C'\fR/\f(CW\*(C`ev_resume\*(C'\fR has the side effect of updating the +event loop time (see \f(CW\*(C`ev_now_update\*(C'\fR). +.IP "bool ev_run (loop, int flags)" 4 +.IX Item "bool ev_run (loop, int flags)" +Finally, this is it, the event handler. This function usually is called +after you have initialised all your watchers and you want to start +handling events. It will ask the operating system for any new events, call +the watcher callbacks, and then repeat the whole process indefinitely: This +is why event loops are called \fIloops\fR. +.Sp +If the flags argument is specified as \f(CW0\fR, it will keep handling events +until either no event watchers are active anymore or \f(CW\*(C`ev_break\*(C'\fR was +called. +.Sp +The return value is false if there are no more active watchers (which +usually means \*(L"all jobs done\*(R" or \*(L"deadlock\*(R"), and true in all other cases +(which usually means " you should call \f(CW\*(C`ev_run\*(C'\fR again"). +.Sp +Please note that an explicit \f(CW\*(C`ev_break\*(C'\fR is usually better than +relying on all watchers to be stopped when deciding when a program has +finished (especially in interactive programs), but having a program +that automatically loops as long as it has to and no longer by virtue +of relying on its watchers stopping correctly, that is truly a thing of +beauty. +.Sp +This function is \fImostly\fR exception-safe \- you can break out of a +\&\f(CW\*(C`ev_run\*(C'\fR call by calling \f(CW\*(C`longjmp\*(C'\fR in a callback, throwing a \*(C+ +exception and so on. This does not decrement the \f(CW\*(C`ev_depth\*(C'\fR value, nor +will it clear any outstanding \f(CW\*(C`EVBREAK_ONE\*(C'\fR breaks. +.Sp +A flags value of \f(CW\*(C`EVRUN_NOWAIT\*(C'\fR will look for new events, will handle +those events and any already outstanding ones, but will not wait and +block your process in case there are no events and will return after one +iteration of the loop. This is sometimes useful to poll and handle new +events while doing lengthy calculations, to keep the program responsive. +.Sp +A flags value of \f(CW\*(C`EVRUN_ONCE\*(C'\fR will look for new events (waiting if +necessary) and will handle those and any already outstanding ones. It +will block your process until at least one new event arrives (which could +be an event internal to libev itself, so there is no guarantee that a +user-registered callback will be called), and will return after one +iteration of the loop. +.Sp +This is useful if you are waiting for some external event in conjunction +with something not expressible using other libev watchers (i.e. "roll your +own \f(CW\*(C`ev_run\*(C'\fR"). However, a pair of \f(CW\*(C`ev_prepare\*(C'\fR/\f(CW\*(C`ev_check\*(C'\fR watchers is +usually a better approach for this kind of thing. +.Sp +Here are the gory details of what \f(CW\*(C`ev_run\*(C'\fR does (this is for your +understanding, not a guarantee that things will work exactly like this in +future versions): +.Sp +.Vb 10 +\& \- Increment loop depth. +\& \- Reset the ev_break status. +\& \- Before the first iteration, call any pending watchers. +\& LOOP: +\& \- If EVFLAG_FORKCHECK was used, check for a fork. +\& \- If a fork was detected (by any means), queue and call all fork watchers. +\& \- Queue and call all prepare watchers. +\& \- If ev_break was called, goto FINISH. +\& \- If we have been forked, detach and recreate the kernel state +\& as to not disturb the other process. +\& \- Update the kernel state with all outstanding changes. +\& \- Update the "event loop time" (ev_now ()). +\& \- Calculate for how long to sleep or block, if at all +\& (active idle watchers, EVRUN_NOWAIT or not having +\& any active watchers at all will result in not sleeping). +\& \- Sleep if the I/O and timer collect interval say so. +\& \- Increment loop iteration counter. +\& \- Block the process, waiting for any events. +\& \- Queue all outstanding I/O (fd) events. +\& \- Update the "event loop time" (ev_now ()), and do time jump adjustments. +\& \- Queue all expired timers. +\& \- Queue all expired periodics. +\& \- Queue all idle watchers with priority higher than that of pending events. +\& \- Queue all check watchers. +\& \- Call all queued watchers in reverse order (i.e. check watchers first). +\& Signals and child watchers are implemented as I/O watchers, and will +\& be handled here by queueing them when their watcher gets executed. +\& \- If ev_break has been called, or EVRUN_ONCE or EVRUN_NOWAIT +\& were used, or there are no active watchers, goto FINISH, otherwise +\& continue with step LOOP. +\& FINISH: +\& \- Reset the ev_break status iff it was EVBREAK_ONE. +\& \- Decrement the loop depth. +\& \- Return. +.Ve +.Sp +Example: Queue some jobs and then loop until no events are outstanding +anymore. +.Sp +.Vb 4 +\& ... queue jobs here, make sure they register event watchers as long +\& ... as they still have work to do (even an idle watcher will do..) +\& ev_run (my_loop, 0); +\& ... jobs done or somebody called break. yeah! +.Ve +.IP "ev_break (loop, how)" 4 +.IX Item "ev_break (loop, how)" +Can be used to make a call to \f(CW\*(C`ev_run\*(C'\fR return early (but only after it +has processed all outstanding events). The \f(CW\*(C`how\*(C'\fR argument must be either +\&\f(CW\*(C`EVBREAK_ONE\*(C'\fR, which will make the innermost \f(CW\*(C`ev_run\*(C'\fR call return, or +\&\f(CW\*(C`EVBREAK_ALL\*(C'\fR, which will make all nested \f(CW\*(C`ev_run\*(C'\fR calls return. +.Sp +This \*(L"break state\*(R" will be cleared on the next call to \f(CW\*(C`ev_run\*(C'\fR. +.Sp +It is safe to call \f(CW\*(C`ev_break\*(C'\fR from outside any \f(CW\*(C`ev_run\*(C'\fR calls, too, in +which case it will have no effect. +.IP "ev_ref (loop)" 4 +.IX Item "ev_ref (loop)" +.PD 0 +.IP "ev_unref (loop)" 4 +.IX Item "ev_unref (loop)" +.PD +Ref/unref can be used to add or remove a reference count on the event +loop: Every watcher keeps one reference, and as long as the reference +count is nonzero, \f(CW\*(C`ev_run\*(C'\fR will not return on its own. +.Sp +This is useful when you have a watcher that you never intend to +unregister, but that nevertheless should not keep \f(CW\*(C`ev_run\*(C'\fR from +returning. In such a case, call \f(CW\*(C`ev_unref\*(C'\fR after starting, and \f(CW\*(C`ev_ref\*(C'\fR +before stopping it. +.Sp +As an example, libev itself uses this for its internal signal pipe: It +is not visible to the libev user and should not keep \f(CW\*(C`ev_run\*(C'\fR from +exiting if no event watchers registered by it are active. It is also an +excellent way to do this for generic recurring timers or from within +third-party libraries. Just remember to \fIunref after start\fR and \fIref +before stop\fR (but only if the watcher wasn't active before, or was active +before, respectively. Note also that libev might stop watchers itself +(e.g. non-repeating timers) in which case you have to \f(CW\*(C`ev_ref\*(C'\fR +in the callback). +.Sp +Example: Create a signal watcher, but keep it from keeping \f(CW\*(C`ev_run\*(C'\fR +running when nothing else is active. +.Sp +.Vb 4 +\& ev_signal exitsig; +\& ev_signal_init (&exitsig, sig_cb, SIGINT); +\& ev_signal_start (loop, &exitsig); +\& ev_unref (loop); +.Ve +.Sp +Example: For some weird reason, unregister the above signal handler again. +.Sp +.Vb 2 +\& ev_ref (loop); +\& ev_signal_stop (loop, &exitsig); +.Ve +.IP "ev_set_io_collect_interval (loop, ev_tstamp interval)" 4 +.IX Item "ev_set_io_collect_interval (loop, ev_tstamp interval)" +.PD 0 +.IP "ev_set_timeout_collect_interval (loop, ev_tstamp interval)" 4 +.IX Item "ev_set_timeout_collect_interval (loop, ev_tstamp interval)" +.PD +These advanced functions influence the time that libev will spend waiting +for events. Both time intervals are by default \f(CW0\fR, meaning that libev +will try to invoke timer/periodic callbacks and I/O callbacks with minimum +latency. +.Sp +Setting these to a higher value (the \f(CW\*(C`interval\*(C'\fR \fImust\fR be >= \f(CW0\fR) +allows libev to delay invocation of I/O and timer/periodic callbacks +to increase efficiency of loop iterations (or to increase power-saving +opportunities). +.Sp +The idea is that sometimes your program runs just fast enough to handle +one (or very few) event(s) per loop iteration. While this makes the +program responsive, it also wastes a lot of \s-1CPU\s0 time to poll for new +events, especially with backends like \f(CW\*(C`select ()\*(C'\fR which have a high +overhead for the actual polling but can deliver many events at once. +.Sp +By setting a higher \fIio collect interval\fR you allow libev to spend more +time collecting I/O events, so you can handle more events per iteration, +at the cost of increasing latency. Timeouts (both \f(CW\*(C`ev_periodic\*(C'\fR and +\&\f(CW\*(C`ev_timer\*(C'\fR) will not be affected. Setting this to a non-null value will +introduce an additional \f(CW\*(C`ev_sleep ()\*(C'\fR call into most loop iterations. The +sleep time ensures that libev will not poll for I/O events more often then +once per this interval, on average (as long as the host time resolution is +good enough). +.Sp +Likewise, by setting a higher \fItimeout collect interval\fR you allow libev +to spend more time collecting timeouts, at the expense of increased +latency/jitter/inexactness (the watcher callback will be called +later). \f(CW\*(C`ev_io\*(C'\fR watchers will not be affected. Setting this to a non-null +value will not introduce any overhead in libev. +.Sp +Many (busy) programs can usually benefit by setting the I/O collect +interval to a value near \f(CW0.1\fR or so, which is often enough for +interactive servers (of course not for games), likewise for timeouts. It +usually doesn't make much sense to set it to a lower value than \f(CW0.01\fR, +as this approaches the timing granularity of most systems. Note that if +you do transactions with the outside world and you can't increase the +parallelity, then this setting will limit your transaction rate (if you +need to poll once per transaction and the I/O collect interval is 0.01, +then you can't do more than 100 transactions per second). +.Sp +Setting the \fItimeout collect interval\fR can improve the opportunity for +saving power, as the program will \*(L"bundle\*(R" timer callback invocations that +are \*(L"near\*(R" in time together, by delaying some, thus reducing the number of +times the process sleeps and wakes up again. Another useful technique to +reduce iterations/wake\-ups is to use \f(CW\*(C`ev_periodic\*(C'\fR watchers and make sure +they fire on, say, one-second boundaries only. +.Sp +Example: we only need 0.1s timeout granularity, and we wish not to poll +more often than 100 times per second: +.Sp +.Vb 2 +\& ev_set_timeout_collect_interval (EV_DEFAULT_UC_ 0.1); +\& ev_set_io_collect_interval (EV_DEFAULT_UC_ 0.01); +.Ve +.IP "ev_invoke_pending (loop)" 4 +.IX Item "ev_invoke_pending (loop)" +This call will simply invoke all pending watchers while resetting their +pending state. Normally, \f(CW\*(C`ev_run\*(C'\fR does this automatically when required, +but when overriding the invoke callback this call comes handy. This +function can be invoked from a watcher \- this can be useful for example +when you want to do some lengthy calculation and want to pass further +event handling to another thread (you still have to make sure only one +thread executes within \f(CW\*(C`ev_invoke_pending\*(C'\fR or \f(CW\*(C`ev_run\*(C'\fR of course). +.IP "int ev_pending_count (loop)" 4 +.IX Item "int ev_pending_count (loop)" +Returns the number of pending watchers \- zero indicates that no watchers +are pending. +.IP "ev_set_invoke_pending_cb (loop, void (*invoke_pending_cb)(\s-1EV_P\s0))" 4 +.IX Item "ev_set_invoke_pending_cb (loop, void (*invoke_pending_cb)(EV_P))" +This overrides the invoke pending functionality of the loop: Instead of +invoking all pending watchers when there are any, \f(CW\*(C`ev_run\*(C'\fR will call +this callback instead. This is useful, for example, when you want to +invoke the actual watchers inside another context (another thread etc.). +.Sp +If you want to reset the callback, use \f(CW\*(C`ev_invoke_pending\*(C'\fR as new +callback. +.IP "ev_set_loop_release_cb (loop, void (*release)(\s-1EV_P\s0) throw (), void (*acquire)(\s-1EV_P\s0) throw ())" 4 +.IX Item "ev_set_loop_release_cb (loop, void (*release)(EV_P) throw (), void (*acquire)(EV_P) throw ())" +Sometimes you want to share the same loop between multiple threads. This +can be done relatively simply by putting mutex_lock/unlock calls around +each call to a libev function. +.Sp +However, \f(CW\*(C`ev_run\*(C'\fR can run an indefinite time, so it is not feasible +to wait for it to return. One way around this is to wake up the event +loop via \f(CW\*(C`ev_break\*(C'\fR and \f(CW\*(C`ev_async_send\*(C'\fR, another way is to set these +\&\fIrelease\fR and \fIacquire\fR callbacks on the loop. +.Sp +When set, then \f(CW\*(C`release\*(C'\fR will be called just before the thread is +suspended waiting for new events, and \f(CW\*(C`acquire\*(C'\fR is called just +afterwards. +.Sp +Ideally, \f(CW\*(C`release\*(C'\fR will just call your mutex_unlock function, and +\&\f(CW\*(C`acquire\*(C'\fR will just call the mutex_lock function again. +.Sp +While event loop modifications are allowed between invocations of +\&\f(CW\*(C`release\*(C'\fR and \f(CW\*(C`acquire\*(C'\fR (that's their only purpose after all), no +modifications done will affect the event loop, i.e. adding watchers will +have no effect on the set of file descriptors being watched, or the time +waited. Use an \f(CW\*(C`ev_async\*(C'\fR watcher to wake up \f(CW\*(C`ev_run\*(C'\fR when you want it +to take note of any changes you made. +.Sp +In theory, threads executing \f(CW\*(C`ev_run\*(C'\fR will be async-cancel safe between +invocations of \f(CW\*(C`release\*(C'\fR and \f(CW\*(C`acquire\*(C'\fR. +.Sp +See also the locking example in the \f(CW\*(C`THREADS\*(C'\fR section later in this +document. +.IP "ev_set_userdata (loop, void *data)" 4 +.IX Item "ev_set_userdata (loop, void *data)" +.PD 0 +.IP "void *ev_userdata (loop)" 4 +.IX Item "void *ev_userdata (loop)" +.PD +Set and retrieve a single \f(CW\*(C`void *\*(C'\fR associated with a loop. When +\&\f(CW\*(C`ev_set_userdata\*(C'\fR has never been called, then \f(CW\*(C`ev_userdata\*(C'\fR returns +\&\f(CW0\fR. +.Sp +These two functions can be used to associate arbitrary data with a loop, +and are intended solely for the \f(CW\*(C`invoke_pending_cb\*(C'\fR, \f(CW\*(C`release\*(C'\fR and +\&\f(CW\*(C`acquire\*(C'\fR callbacks described above, but of course can be (ab\-)used for +any other purpose as well. +.IP "ev_verify (loop)" 4 +.IX Item "ev_verify (loop)" +This function only does something when \f(CW\*(C`EV_VERIFY\*(C'\fR support has been +compiled in, which is the default for non-minimal builds. It tries to go +through all internal structures and checks them for validity. If anything +is found to be inconsistent, it will print an error message to standard +error and call \f(CW\*(C`abort ()\*(C'\fR. +.Sp +This can be used to catch bugs inside libev itself: under normal +circumstances, this function will never abort as of course libev keeps its +data structures consistent. +.SH "ANATOMY OF A WATCHER" +.IX Header "ANATOMY OF A WATCHER" +In the following description, uppercase \f(CW\*(C`TYPE\*(C'\fR in names stands for the +watcher type, e.g. \f(CW\*(C`ev_TYPE_start\*(C'\fR can mean \f(CW\*(C`ev_timer_start\*(C'\fR for timer +watchers and \f(CW\*(C`ev_io_start\*(C'\fR for I/O watchers. +.PP +A watcher is an opaque structure that you allocate and register to record +your interest in some event. To make a concrete example, imagine you want +to wait for \s-1STDIN\s0 to become readable, you would create an \f(CW\*(C`ev_io\*(C'\fR watcher +for that: +.PP +.Vb 5 +\& static void my_cb (struct ev_loop *loop, ev_io *w, int revents) +\& { +\& ev_io_stop (w); +\& ev_break (loop, EVBREAK_ALL); +\& } +\& +\& struct ev_loop *loop = ev_default_loop (0); +\& +\& ev_io stdin_watcher; +\& +\& ev_init (&stdin_watcher, my_cb); +\& ev_io_set (&stdin_watcher, STDIN_FILENO, EV_READ); +\& ev_io_start (loop, &stdin_watcher); +\& +\& ev_run (loop, 0); +.Ve +.PP +As you can see, you are responsible for allocating the memory for your +watcher structures (and it is \fIusually\fR a bad idea to do this on the +stack). +.PP +Each watcher has an associated watcher structure (called \f(CW\*(C`struct ev_TYPE\*(C'\fR +or simply \f(CW\*(C`ev_TYPE\*(C'\fR, as typedefs are provided for all watcher structs). +.PP +Each watcher structure must be initialised by a call to \f(CW\*(C`ev_init (watcher +*, callback)\*(C'\fR, which expects a callback to be provided. This callback is +invoked each time the event occurs (or, in the case of I/O watchers, each +time the event loop detects that the file descriptor given is readable +and/or writable). +.PP +Each watcher type further has its own \f(CW\*(C`ev_TYPE_set (watcher *, ...)\*(C'\fR +macro to configure it, with arguments specific to the watcher type. There +is also a macro to combine initialisation and setting in one call: \f(CW\*(C`ev_TYPE_init (watcher *, callback, ...)\*(C'\fR. +.PP +To make the watcher actually watch out for events, you have to start it +with a watcher-specific start function (\f(CW\*(C`ev_TYPE_start (loop, watcher +*)\*(C'\fR), and you can stop watching for events at any time by calling the +corresponding stop function (\f(CW\*(C`ev_TYPE_stop (loop, watcher *)\*(C'\fR. +.PP +As long as your watcher is active (has been started but not stopped) you +must not touch the values stored in it. Most specifically you must never +reinitialise it or call its \f(CW\*(C`ev_TYPE_set\*(C'\fR macro. +.PP +Each and every callback receives the event loop pointer as first, the +registered watcher structure as second, and a bitset of received events as +third argument. +.PP +The received events usually include a single bit per event type received +(you can receive multiple events at the same time). The possible bit masks +are: +.ie n .IP """EV_READ""" 4 +.el .IP "\f(CWEV_READ\fR" 4 +.IX Item "EV_READ" +.PD 0 +.ie n .IP """EV_WRITE""" 4 +.el .IP "\f(CWEV_WRITE\fR" 4 +.IX Item "EV_WRITE" +.PD +The file descriptor in the \f(CW\*(C`ev_io\*(C'\fR watcher has become readable and/or +writable. +.ie n .IP """EV_TIMER""" 4 +.el .IP "\f(CWEV_TIMER\fR" 4 +.IX Item "EV_TIMER" +The \f(CW\*(C`ev_timer\*(C'\fR watcher has timed out. +.ie n .IP """EV_PERIODIC""" 4 +.el .IP "\f(CWEV_PERIODIC\fR" 4 +.IX Item "EV_PERIODIC" +The \f(CW\*(C`ev_periodic\*(C'\fR watcher has timed out. +.ie n .IP """EV_SIGNAL""" 4 +.el .IP "\f(CWEV_SIGNAL\fR" 4 +.IX Item "EV_SIGNAL" +The signal specified in the \f(CW\*(C`ev_signal\*(C'\fR watcher has been received by a thread. +.ie n .IP """EV_CHILD""" 4 +.el .IP "\f(CWEV_CHILD\fR" 4 +.IX Item "EV_CHILD" +The pid specified in the \f(CW\*(C`ev_child\*(C'\fR watcher has received a status change. +.ie n .IP """EV_STAT""" 4 +.el .IP "\f(CWEV_STAT\fR" 4 +.IX Item "EV_STAT" +The path specified in the \f(CW\*(C`ev_stat\*(C'\fR watcher changed its attributes somehow. +.ie n .IP """EV_IDLE""" 4 +.el .IP "\f(CWEV_IDLE\fR" 4 +.IX Item "EV_IDLE" +The \f(CW\*(C`ev_idle\*(C'\fR watcher has determined that you have nothing better to do. +.ie n .IP """EV_PREPARE""" 4 +.el .IP "\f(CWEV_PREPARE\fR" 4 +.IX Item "EV_PREPARE" +.PD 0 +.ie n .IP """EV_CHECK""" 4 +.el .IP "\f(CWEV_CHECK\fR" 4 +.IX Item "EV_CHECK" +.PD +All \f(CW\*(C`ev_prepare\*(C'\fR watchers are invoked just \fIbefore\fR \f(CW\*(C`ev_run\*(C'\fR starts to +gather new events, and all \f(CW\*(C`ev_check\*(C'\fR watchers are queued (not invoked) +just after \f(CW\*(C`ev_run\*(C'\fR has gathered them, but before it queues any callbacks +for any received events. That means \f(CW\*(C`ev_prepare\*(C'\fR watchers are the last +watchers invoked before the event loop sleeps or polls for new events, and +\&\f(CW\*(C`ev_check\*(C'\fR watchers will be invoked before any other watchers of the same +or lower priority within an event loop iteration. +.Sp +Callbacks of both watcher types can start and stop as many watchers as +they want, and all of them will be taken into account (for example, a +\&\f(CW\*(C`ev_prepare\*(C'\fR watcher might start an idle watcher to keep \f(CW\*(C`ev_run\*(C'\fR from +blocking). +.ie n .IP """EV_EMBED""" 4 +.el .IP "\f(CWEV_EMBED\fR" 4 +.IX Item "EV_EMBED" +The embedded event loop specified in the \f(CW\*(C`ev_embed\*(C'\fR watcher needs attention. +.ie n .IP """EV_FORK""" 4 +.el .IP "\f(CWEV_FORK\fR" 4 +.IX Item "EV_FORK" +The event loop has been resumed in the child process after fork (see +\&\f(CW\*(C`ev_fork\*(C'\fR). +.ie n .IP """EV_CLEANUP""" 4 +.el .IP "\f(CWEV_CLEANUP\fR" 4 +.IX Item "EV_CLEANUP" +The event loop is about to be destroyed (see \f(CW\*(C`ev_cleanup\*(C'\fR). +.ie n .IP """EV_ASYNC""" 4 +.el .IP "\f(CWEV_ASYNC\fR" 4 +.IX Item "EV_ASYNC" +The given async watcher has been asynchronously notified (see \f(CW\*(C`ev_async\*(C'\fR). +.ie n .IP """EV_CUSTOM""" 4 +.el .IP "\f(CWEV_CUSTOM\fR" 4 +.IX Item "EV_CUSTOM" +Not ever sent (or otherwise used) by libev itself, but can be freely used +by libev users to signal watchers (e.g. via \f(CW\*(C`ev_feed_event\*(C'\fR). +.ie n .IP """EV_ERROR""" 4 +.el .IP "\f(CWEV_ERROR\fR" 4 +.IX Item "EV_ERROR" +An unspecified error has occurred, the watcher has been stopped. This might +happen because the watcher could not be properly started because libev +ran out of memory, a file descriptor was found to be closed or any other +problem. Libev considers these application bugs. +.Sp +You best act on it by reporting the problem and somehow coping with the +watcher being stopped. Note that well-written programs should not receive +an error ever, so when your watcher receives it, this usually indicates a +bug in your program. +.Sp +Libev will usually signal a few \*(L"dummy\*(R" events together with an error, for +example it might indicate that a fd is readable or writable, and if your +callbacks is well-written it can just attempt the operation and cope with +the error from \fIread()\fR or \fIwrite()\fR. This will not work in multi-threaded +programs, though, as the fd could already be closed and reused for another +thing, so beware. +.SS "\s-1GENERIC WATCHER FUNCTIONS\s0" +.IX Subsection "GENERIC WATCHER FUNCTIONS" +.ie n .IP """ev_init"" (ev_TYPE *watcher, callback)" 4 +.el .IP "\f(CWev_init\fR (ev_TYPE *watcher, callback)" 4 +.IX Item "ev_init (ev_TYPE *watcher, callback)" +This macro initialises the generic portion of a watcher. The contents +of the watcher object can be arbitrary (so \f(CW\*(C`malloc\*(C'\fR will do). Only +the generic parts of the watcher are initialised, you \fIneed\fR to call +the type-specific \f(CW\*(C`ev_TYPE_set\*(C'\fR macro afterwards to initialise the +type-specific parts. For each type there is also a \f(CW\*(C`ev_TYPE_init\*(C'\fR macro +which rolls both calls into one. +.Sp +You can reinitialise a watcher at any time as long as it has been stopped +(or never started) and there are no pending events outstanding. +.Sp +The callback is always of type \f(CW\*(C`void (*)(struct ev_loop *loop, ev_TYPE *watcher, +int revents)\*(C'\fR. +.Sp +Example: Initialise an \f(CW\*(C`ev_io\*(C'\fR watcher in two steps. +.Sp +.Vb 3 +\& ev_io w; +\& ev_init (&w, my_cb); +\& ev_io_set (&w, STDIN_FILENO, EV_READ); +.Ve +.ie n .IP """ev_TYPE_set"" (ev_TYPE *watcher, [args])" 4 +.el .IP "\f(CWev_TYPE_set\fR (ev_TYPE *watcher, [args])" 4 +.IX Item "ev_TYPE_set (ev_TYPE *watcher, [args])" +This macro initialises the type-specific parts of a watcher. You need to +call \f(CW\*(C`ev_init\*(C'\fR at least once before you call this macro, but you can +call \f(CW\*(C`ev_TYPE_set\*(C'\fR any number of times. You must not, however, call this +macro on a watcher that is active (it can be pending, however, which is a +difference to the \f(CW\*(C`ev_init\*(C'\fR macro). +.Sp +Although some watcher types do not have type-specific arguments +(e.g. \f(CW\*(C`ev_prepare\*(C'\fR) you still need to call its \f(CW\*(C`set\*(C'\fR macro. +.Sp +See \f(CW\*(C`ev_init\*(C'\fR, above, for an example. +.ie n .IP """ev_TYPE_init"" (ev_TYPE *watcher, callback, [args])" 4 +.el .IP "\f(CWev_TYPE_init\fR (ev_TYPE *watcher, callback, [args])" 4 +.IX Item "ev_TYPE_init (ev_TYPE *watcher, callback, [args])" +This convenience macro rolls both \f(CW\*(C`ev_init\*(C'\fR and \f(CW\*(C`ev_TYPE_set\*(C'\fR macro +calls into a single call. This is the most convenient method to initialise +a watcher. The same limitations apply, of course. +.Sp +Example: Initialise and set an \f(CW\*(C`ev_io\*(C'\fR watcher in one step. +.Sp +.Vb 1 +\& ev_io_init (&w, my_cb, STDIN_FILENO, EV_READ); +.Ve +.ie n .IP """ev_TYPE_start"" (loop, ev_TYPE *watcher)" 4 +.el .IP "\f(CWev_TYPE_start\fR (loop, ev_TYPE *watcher)" 4 +.IX Item "ev_TYPE_start (loop, ev_TYPE *watcher)" +Starts (activates) the given watcher. Only active watchers will receive +events. If the watcher is already active nothing will happen. +.Sp +Example: Start the \f(CW\*(C`ev_io\*(C'\fR watcher that is being abused as example in this +whole section. +.Sp +.Vb 1 +\& ev_io_start (EV_DEFAULT_UC, &w); +.Ve +.ie n .IP """ev_TYPE_stop"" (loop, ev_TYPE *watcher)" 4 +.el .IP "\f(CWev_TYPE_stop\fR (loop, ev_TYPE *watcher)" 4 +.IX Item "ev_TYPE_stop (loop, ev_TYPE *watcher)" +Stops the given watcher if active, and clears the pending status (whether +the watcher was active or not). +.Sp +It is possible that stopped watchers are pending \- for example, +non-repeating timers are being stopped when they become pending \- but +calling \f(CW\*(C`ev_TYPE_stop\*(C'\fR ensures that the watcher is neither active nor +pending. If you want to free or reuse the memory used by the watcher it is +therefore a good idea to always call its \f(CW\*(C`ev_TYPE_stop\*(C'\fR function. +.IP "bool ev_is_active (ev_TYPE *watcher)" 4 +.IX Item "bool ev_is_active (ev_TYPE *watcher)" +Returns a true value iff the watcher is active (i.e. it has been started +and not yet been stopped). As long as a watcher is active you must not modify +it. +.IP "bool ev_is_pending (ev_TYPE *watcher)" 4 +.IX Item "bool ev_is_pending (ev_TYPE *watcher)" +Returns a true value iff the watcher is pending, (i.e. it has outstanding +events but its callback has not yet been invoked). As long as a watcher +is pending (but not active) you must not call an init function on it (but +\&\f(CW\*(C`ev_TYPE_set\*(C'\fR is safe), you must not change its priority, and you must +make sure the watcher is available to libev (e.g. you cannot \f(CW\*(C`free ()\*(C'\fR +it). +.IP "callback ev_cb (ev_TYPE *watcher)" 4 +.IX Item "callback ev_cb (ev_TYPE *watcher)" +Returns the callback currently set on the watcher. +.IP "ev_set_cb (ev_TYPE *watcher, callback)" 4 +.IX Item "ev_set_cb (ev_TYPE *watcher, callback)" +Change the callback. You can change the callback at virtually any time +(modulo threads). +.IP "ev_set_priority (ev_TYPE *watcher, int priority)" 4 +.IX Item "ev_set_priority (ev_TYPE *watcher, int priority)" +.PD 0 +.IP "int ev_priority (ev_TYPE *watcher)" 4 +.IX Item "int ev_priority (ev_TYPE *watcher)" +.PD +Set and query the priority of the watcher. The priority is a small +integer between \f(CW\*(C`EV_MAXPRI\*(C'\fR (default: \f(CW2\fR) and \f(CW\*(C`EV_MINPRI\*(C'\fR +(default: \f(CW\*(C`\-2\*(C'\fR). Pending watchers with higher priority will be invoked +before watchers with lower priority, but priority will not keep watchers +from being executed (except for \f(CW\*(C`ev_idle\*(C'\fR watchers). +.Sp +If you need to suppress invocation when higher priority events are pending +you need to look at \f(CW\*(C`ev_idle\*(C'\fR watchers, which provide this functionality. +.Sp +You \fImust not\fR change the priority of a watcher as long as it is active or +pending. +.Sp +Setting a priority outside the range of \f(CW\*(C`EV_MINPRI\*(C'\fR to \f(CW\*(C`EV_MAXPRI\*(C'\fR is +fine, as long as you do not mind that the priority value you query might +or might not have been clamped to the valid range. +.Sp +The default priority used by watchers when no priority has been set is +always \f(CW0\fR, which is supposed to not be too high and not be too low :). +.Sp +See \*(L"\s-1WATCHER PRIORITY MODELS\*(R"\s0, below, for a more thorough treatment of +priorities. +.IP "ev_invoke (loop, ev_TYPE *watcher, int revents)" 4 +.IX Item "ev_invoke (loop, ev_TYPE *watcher, int revents)" +Invoke the \f(CW\*(C`watcher\*(C'\fR with the given \f(CW\*(C`loop\*(C'\fR and \f(CW\*(C`revents\*(C'\fR. Neither +\&\f(CW\*(C`loop\*(C'\fR nor \f(CW\*(C`revents\*(C'\fR need to be valid as long as the watcher callback +can deal with that fact, as both are simply passed through to the +callback. +.IP "int ev_clear_pending (loop, ev_TYPE *watcher)" 4 +.IX Item "int ev_clear_pending (loop, ev_TYPE *watcher)" +If the watcher is pending, this function clears its pending status and +returns its \f(CW\*(C`revents\*(C'\fR bitset (as if its callback was invoked). If the +watcher isn't pending it does nothing and returns \f(CW0\fR. +.Sp +Sometimes it can be useful to \*(L"poll\*(R" a watcher instead of waiting for its +callback to be invoked, which can be accomplished with this function. +.IP "ev_feed_event (loop, ev_TYPE *watcher, int revents)" 4 +.IX Item "ev_feed_event (loop, ev_TYPE *watcher, int revents)" +Feeds the given event set into the event loop, as if the specified event +had happened for the specified watcher (which must be a pointer to an +initialised but not necessarily started event watcher). Obviously you must +not free the watcher as long as it has pending events. +.Sp +Stopping the watcher, letting libev invoke it, or calling +\&\f(CW\*(C`ev_clear_pending\*(C'\fR will clear the pending event, even if the watcher was +not started in the first place. +.Sp +See also \f(CW\*(C`ev_feed_fd_event\*(C'\fR and \f(CW\*(C`ev_feed_signal_event\*(C'\fR for related +functions that do not need a watcher. +.PP +See also the \*(L"\s-1ASSOCIATING CUSTOM DATA WITH A WATCHER\*(R"\s0 and \*(L"\s-1BUILDING YOUR +OWN COMPOSITE WATCHERS\*(R"\s0 idioms. +.SS "\s-1WATCHER STATES\s0" +.IX Subsection "WATCHER STATES" +There are various watcher states mentioned throughout this manual \- +active, pending and so on. In this section these states and the rules to +transition between them will be described in more detail \- and while these +rules might look complicated, they usually do \*(L"the right thing\*(R". +.IP "initialised" 4 +.IX Item "initialised" +Before a watcher can be registered with the event loop it has to be +initialised. This can be done with a call to \f(CW\*(C`ev_TYPE_init\*(C'\fR, or calls to +\&\f(CW\*(C`ev_init\*(C'\fR followed by the watcher-specific \f(CW\*(C`ev_TYPE_set\*(C'\fR function. +.Sp +In this state it is simply some block of memory that is suitable for +use in an event loop. It can be moved around, freed, reused etc. at +will \- as long as you either keep the memory contents intact, or call +\&\f(CW\*(C`ev_TYPE_init\*(C'\fR again. +.IP "started/running/active" 4 +.IX Item "started/running/active" +Once a watcher has been started with a call to \f(CW\*(C`ev_TYPE_start\*(C'\fR it becomes +property of the event loop, and is actively waiting for events. While in +this state it cannot be accessed (except in a few documented ways), moved, +freed or anything else \- the only legal thing is to keep a pointer to it, +and call libev functions on it that are documented to work on active watchers. +.IP "pending" 4 +.IX Item "pending" +If a watcher is active and libev determines that an event it is interested +in has occurred (such as a timer expiring), it will become pending. It will +stay in this pending state until either it is stopped or its callback is +about to be invoked, so it is not normally pending inside the watcher +callback. +.Sp +The watcher might or might not be active while it is pending (for example, +an expired non-repeating timer can be pending but no longer active). If it +is stopped, it can be freely accessed (e.g. by calling \f(CW\*(C`ev_TYPE_set\*(C'\fR), +but it is still property of the event loop at this time, so cannot be +moved, freed or reused. And if it is active the rules described in the +previous item still apply. +.Sp +It is also possible to feed an event on a watcher that is not active (e.g. +via \f(CW\*(C`ev_feed_event\*(C'\fR), in which case it becomes pending without being +active. +.IP "stopped" 4 +.IX Item "stopped" +A watcher can be stopped implicitly by libev (in which case it might still +be pending), or explicitly by calling its \f(CW\*(C`ev_TYPE_stop\*(C'\fR function. The +latter will clear any pending state the watcher might be in, regardless +of whether it was active or not, so stopping a watcher explicitly before +freeing it is often a good idea. +.Sp +While stopped (and not pending) the watcher is essentially in the +initialised state, that is, it can be reused, moved, modified in any way +you wish (but when you trash the memory block, you need to \f(CW\*(C`ev_TYPE_init\*(C'\fR +it again). +.SS "\s-1WATCHER PRIORITY MODELS\s0" +.IX Subsection "WATCHER PRIORITY MODELS" +Many event loops support \fIwatcher priorities\fR, which are usually small +integers that influence the ordering of event callback invocation +between watchers in some way, all else being equal. +.PP +In libev, Watcher priorities can be set using \f(CW\*(C`ev_set_priority\*(C'\fR. See its +description for the more technical details such as the actual priority +range. +.PP +There are two common ways how these these priorities are being interpreted +by event loops: +.PP +In the more common lock-out model, higher priorities \*(L"lock out\*(R" invocation +of lower priority watchers, which means as long as higher priority +watchers receive events, lower priority watchers are not being invoked. +.PP +The less common only-for-ordering model uses priorities solely to order +callback invocation within a single event loop iteration: Higher priority +watchers are invoked before lower priority ones, but they all get invoked +before polling for new events. +.PP +Libev uses the second (only-for-ordering) model for all its watchers +except for idle watchers (which use the lock-out model). +.PP +The rationale behind this is that implementing the lock-out model for +watchers is not well supported by most kernel interfaces, and most event +libraries will just poll for the same events again and again as long as +their callbacks have not been executed, which is very inefficient in the +common case of one high-priority watcher locking out a mass of lower +priority ones. +.PP +Static (ordering) priorities are most useful when you have two or more +watchers handling the same resource: a typical usage example is having an +\&\f(CW\*(C`ev_io\*(C'\fR watcher to receive data, and an associated \f(CW\*(C`ev_timer\*(C'\fR to handle +timeouts. Under load, data might be received while the program handles +other jobs, but since timers normally get invoked first, the timeout +handler will be executed before checking for data. In that case, giving +the timer a lower priority than the I/O watcher ensures that I/O will be +handled first even under adverse conditions (which is usually, but not +always, what you want). +.PP +Since idle watchers use the \*(L"lock-out\*(R" model, meaning that idle watchers +will only be executed when no same or higher priority watchers have +received events, they can be used to implement the \*(L"lock-out\*(R" model when +required. +.PP +For example, to emulate how many other event libraries handle priorities, +you can associate an \f(CW\*(C`ev_idle\*(C'\fR watcher to each such watcher, and in +the normal watcher callback, you just start the idle watcher. The real +processing is done in the idle watcher callback. This causes libev to +continuously poll and process kernel event data for the watcher, but when +the lock-out case is known to be rare (which in turn is rare :), this is +workable. +.PP +Usually, however, the lock-out model implemented that way will perform +miserably under the type of load it was designed to handle. In that case, +it might be preferable to stop the real watcher before starting the +idle watcher, so the kernel will not have to process the event in case +the actual processing will be delayed for considerable time. +.PP +Here is an example of an I/O watcher that should run at a strictly lower +priority than the default, and which should only process data when no +other events are pending: +.PP +.Vb 2 +\& ev_idle idle; // actual processing watcher +\& ev_io io; // actual event watcher +\& +\& static void +\& io_cb (EV_P_ ev_io *w, int revents) +\& { +\& // stop the I/O watcher, we received the event, but +\& // are not yet ready to handle it. +\& ev_io_stop (EV_A_ w); +\& +\& // start the idle watcher to handle the actual event. +\& // it will not be executed as long as other watchers +\& // with the default priority are receiving events. +\& ev_idle_start (EV_A_ &idle); +\& } +\& +\& static void +\& idle_cb (EV_P_ ev_idle *w, int revents) +\& { +\& // actual processing +\& read (STDIN_FILENO, ...); +\& +\& // have to start the I/O watcher again, as +\& // we have handled the event +\& ev_io_start (EV_P_ &io); +\& } +\& +\& // initialisation +\& ev_idle_init (&idle, idle_cb); +\& ev_io_init (&io, io_cb, STDIN_FILENO, EV_READ); +\& ev_io_start (EV_DEFAULT_ &io); +.Ve +.PP +In the \*(L"real\*(R" world, it might also be beneficial to start a timer, so that +low-priority connections can not be locked out forever under load. This +enables your program to keep a lower latency for important connections +during short periods of high load, while not completely locking out less +important ones. +.SH "WATCHER TYPES" +.IX Header "WATCHER TYPES" +This section describes each watcher in detail, but will not repeat +information given in the last section. Any initialisation/set macros, +functions and members specific to the watcher type are explained. +.PP +Members are additionally marked with either \fI[read\-only]\fR, meaning that, +while the watcher is active, you can look at the member and expect some +sensible content, but you must not modify it (you can modify it while the +watcher is stopped to your hearts content), or \fI[read\-write]\fR, which +means you can expect it to have some sensible content while the watcher +is active, but you can also modify it. Modifying it may not do something +sensible or take immediate effect (or do anything at all), but libev will +not crash or malfunction in any way. +.ie n .SS """ev_io"" \- is this file descriptor readable or writable?" +.el .SS "\f(CWev_io\fP \- is this file descriptor readable or writable?" +.IX Subsection "ev_io - is this file descriptor readable or writable?" +I/O watchers check whether a file descriptor is readable or writable +in each iteration of the event loop, or, more precisely, when reading +would not block the process and writing would at least be able to write +some data. This behaviour is called level-triggering because you keep +receiving events as long as the condition persists. Remember you can stop +the watcher if you don't want to act on the event and neither want to +receive future events. +.PP +In general you can register as many read and/or write event watchers per +fd as you want (as long as you don't confuse yourself). Setting all file +descriptors to non-blocking mode is also usually a good idea (but not +required if you know what you are doing). +.PP +Another thing you have to watch out for is that it is quite easy to +receive \*(L"spurious\*(R" readiness notifications, that is, your callback might +be called with \f(CW\*(C`EV_READ\*(C'\fR but a subsequent \f(CW\*(C`read\*(C'\fR(2) will actually block +because there is no data. It is very easy to get into this situation even +with a relatively standard program structure. Thus it is best to always +use non-blocking I/O: An extra \f(CW\*(C`read\*(C'\fR(2) returning \f(CW\*(C`EAGAIN\*(C'\fR is far +preferable to a program hanging until some data arrives. +.PP +If you cannot run the fd in non-blocking mode (for example you should +not play around with an Xlib connection), then you have to separately +re-test whether a file descriptor is really ready with a known-to-be good +interface such as poll (fortunately in the case of Xlib, it already does +this on its own, so its quite safe to use). Some people additionally +use \f(CW\*(C`SIGALRM\*(C'\fR and an interval timer, just to be sure you won't block +indefinitely. +.PP +But really, best use non-blocking mode. +.PP +\fIThe special problem of disappearing file descriptors\fR +.IX Subsection "The special problem of disappearing file descriptors" +.PP +Some backends (e.g. kqueue, epoll) need to be told about closing a file +descriptor (either due to calling \f(CW\*(C`close\*(C'\fR explicitly or any other means, +such as \f(CW\*(C`dup2\*(C'\fR). The reason is that you register interest in some file +descriptor, but when it goes away, the operating system will silently drop +this interest. If another file descriptor with the same number then is +registered with libev, there is no efficient way to see that this is, in +fact, a different file descriptor. +.PP +To avoid having to explicitly tell libev about such cases, libev follows +the following policy: Each time \f(CW\*(C`ev_io_set\*(C'\fR is being called, libev +will assume that this is potentially a new file descriptor, otherwise +it is assumed that the file descriptor stays the same. That means that +you \fIhave\fR to call \f(CW\*(C`ev_io_set\*(C'\fR (or \f(CW\*(C`ev_io_init\*(C'\fR) when you change the +descriptor even if the file descriptor number itself did not change. +.PP +This is how one would do it normally anyway, the important point is that +the libev application should not optimise around libev but should leave +optimisations to libev. +.PP +\fIThe special problem of dup'ed file descriptors\fR +.IX Subsection "The special problem of dup'ed file descriptors" +.PP +Some backends (e.g. epoll), cannot register events for file descriptors, +but only events for the underlying file descriptions. That means when you +have \f(CW\*(C`dup ()\*(C'\fR'ed file descriptors or weirder constellations, and register +events for them, only one file descriptor might actually receive events. +.PP +There is no workaround possible except not registering events +for potentially \f(CW\*(C`dup ()\*(C'\fR'ed file descriptors, or to resort to +\&\f(CW\*(C`EVBACKEND_SELECT\*(C'\fR or \f(CW\*(C`EVBACKEND_POLL\*(C'\fR. +.PP +\fIThe special problem of files\fR +.IX Subsection "The special problem of files" +.PP +Many people try to use \f(CW\*(C`select\*(C'\fR (or libev) on file descriptors +representing files, and expect it to become ready when their program +doesn't block on disk accesses (which can take a long time on their own). +.PP +However, this cannot ever work in the \*(L"expected\*(R" way \- you get a readiness +notification as soon as the kernel knows whether and how much data is +there, and in the case of open files, that's always the case, so you +always get a readiness notification instantly, and your read (or possibly +write) will still block on the disk I/O. +.PP +Another way to view it is that in the case of sockets, pipes, character +devices and so on, there is another party (the sender) that delivers data +on its own, but in the case of files, there is no such thing: the disk +will not send data on its own, simply because it doesn't know what you +wish to read \- you would first have to request some data. +.PP +Since files are typically not-so-well supported by advanced notification +mechanism, libev tries hard to emulate \s-1POSIX\s0 behaviour with respect +to files, even though you should not use it. The reason for this is +convenience: sometimes you want to watch \s-1STDIN\s0 or \s-1STDOUT,\s0 which is +usually a tty, often a pipe, but also sometimes files or special devices +(for example, \f(CW\*(C`epoll\*(C'\fR on Linux works with \fI/dev/random\fR but not with +\&\fI/dev/urandom\fR), and even though the file might better be served with +asynchronous I/O instead of with non-blocking I/O, it is still useful when +it \*(L"just works\*(R" instead of freezing. +.PP +So avoid file descriptors pointing to files when you know it (e.g. use +libeio), but use them when it is convenient, e.g. for \s-1STDIN/STDOUT,\s0 or +when you rarely read from a file instead of from a socket, and want to +reuse the same code path. +.PP +\fIThe special problem of fork\fR +.IX Subsection "The special problem of fork" +.PP +Some backends (epoll, kqueue) do not support \f(CW\*(C`fork ()\*(C'\fR at all or exhibit +useless behaviour. Libev fully supports fork, but needs to be told about +it in the child if you want to continue to use it in the child. +.PP +To support fork in your child processes, you have to call \f(CW\*(C`ev_loop_fork +()\*(C'\fR after a fork in the child, enable \f(CW\*(C`EVFLAG_FORKCHECK\*(C'\fR, or resort to +\&\f(CW\*(C`EVBACKEND_SELECT\*(C'\fR or \f(CW\*(C`EVBACKEND_POLL\*(C'\fR. +.PP +\fIThe special problem of \s-1SIGPIPE\s0\fR +.IX Subsection "The special problem of SIGPIPE" +.PP +While not really specific to libev, it is easy to forget about \f(CW\*(C`SIGPIPE\*(C'\fR: +when writing to a pipe whose other end has been closed, your program gets +sent a \s-1SIGPIPE,\s0 which, by default, aborts your program. For most programs +this is sensible behaviour, for daemons, this is usually undesirable. +.PP +So when you encounter spurious, unexplained daemon exits, make sure you +ignore \s-1SIGPIPE \s0(and maybe make sure you log the exit status of your daemon +somewhere, as that would have given you a big clue). +.PP +\fIThe special problem of \fIaccept()\fIing when you can't\fR +.IX Subsection "The special problem of accept()ing when you can't" +.PP +Many implementations of the \s-1POSIX \s0\f(CW\*(C`accept\*(C'\fR function (for example, +found in post\-2004 Linux) have the peculiar behaviour of not removing a +connection from the pending queue in all error cases. +.PP +For example, larger servers often run out of file descriptors (because +of resource limits), causing \f(CW\*(C`accept\*(C'\fR to fail with \f(CW\*(C`ENFILE\*(C'\fR but not +rejecting the connection, leading to libev signalling readiness on +the next iteration again (the connection still exists after all), and +typically causing the program to loop at 100% \s-1CPU\s0 usage. +.PP +Unfortunately, the set of errors that cause this issue differs between +operating systems, there is usually little the app can do to remedy the +situation, and no known thread-safe method of removing the connection to +cope with overload is known (to me). +.PP +One of the easiest ways to handle this situation is to just ignore it +\&\- when the program encounters an overload, it will just loop until the +situation is over. While this is a form of busy waiting, no \s-1OS\s0 offers an +event-based way to handle this situation, so it's the best one can do. +.PP +A better way to handle the situation is to log any errors other than +\&\f(CW\*(C`EAGAIN\*(C'\fR and \f(CW\*(C`EWOULDBLOCK\*(C'\fR, making sure not to flood the log with such +messages, and continue as usual, which at least gives the user an idea of +what could be wrong (\*(L"raise the ulimit!\*(R"). For extra points one could stop +the \f(CW\*(C`ev_io\*(C'\fR watcher on the listening fd \*(L"for a while\*(R", which reduces \s-1CPU\s0 +usage. +.PP +If your program is single-threaded, then you could also keep a dummy file +descriptor for overload situations (e.g. by opening \fI/dev/null\fR), and +when you run into \f(CW\*(C`ENFILE\*(C'\fR or \f(CW\*(C`EMFILE\*(C'\fR, close it, run \f(CW\*(C`accept\*(C'\fR, +close that fd, and create a new dummy fd. This will gracefully refuse +clients under typical overload conditions. +.PP +The last way to handle it is to simply log the error and \f(CW\*(C`exit\*(C'\fR, as +is often done with \f(CW\*(C`malloc\*(C'\fR failures, but this results in an easy +opportunity for a DoS attack. +.PP +\fIWatcher-Specific Functions\fR +.IX Subsection "Watcher-Specific Functions" +.IP "ev_io_init (ev_io *, callback, int fd, int events)" 4 +.IX Item "ev_io_init (ev_io *, callback, int fd, int events)" +.PD 0 +.IP "ev_io_set (ev_io *, int fd, int events)" 4 +.IX Item "ev_io_set (ev_io *, int fd, int events)" +.PD +Configures an \f(CW\*(C`ev_io\*(C'\fR watcher. The \f(CW\*(C`fd\*(C'\fR is the file descriptor to +receive events for and \f(CW\*(C`events\*(C'\fR is either \f(CW\*(C`EV_READ\*(C'\fR, \f(CW\*(C`EV_WRITE\*(C'\fR or +\&\f(CW\*(C`EV_READ | EV_WRITE\*(C'\fR, to express the desire to receive the given events. +.IP "int fd [read\-only]" 4 +.IX Item "int fd [read-only]" +The file descriptor being watched. +.IP "int events [read\-only]" 4 +.IX Item "int events [read-only]" +The events being watched. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Call \f(CW\*(C`stdin_readable_cb\*(C'\fR when \s-1STDIN_FILENO\s0 has become, well +readable, but only once. Since it is likely line-buffered, you could +attempt to read a whole line in the callback. +.PP +.Vb 6 +\& static void +\& stdin_readable_cb (struct ev_loop *loop, ev_io *w, int revents) +\& { +\& ev_io_stop (loop, w); +\& .. read from stdin here (or from w\->fd) and handle any I/O errors +\& } +\& +\& ... +\& struct ev_loop *loop = ev_default_init (0); +\& ev_io stdin_readable; +\& ev_io_init (&stdin_readable, stdin_readable_cb, STDIN_FILENO, EV_READ); +\& ev_io_start (loop, &stdin_readable); +\& ev_run (loop, 0); +.Ve +.ie n .SS """ev_timer"" \- relative and optionally repeating timeouts" +.el .SS "\f(CWev_timer\fP \- relative and optionally repeating timeouts" +.IX Subsection "ev_timer - relative and optionally repeating timeouts" +Timer watchers are simple relative timers that generate an event after a +given time, and optionally repeating in regular intervals after that. +.PP +The timers are based on real time, that is, if you register an event that +times out after an hour and you reset your system clock to January last +year, it will still time out after (roughly) one hour. \*(L"Roughly\*(R" because +detecting time jumps is hard, and some inaccuracies are unavoidable (the +monotonic clock option helps a lot here). +.PP +The callback is guaranteed to be invoked only \fIafter\fR its timeout has +passed (not \fIat\fR, so on systems with very low-resolution clocks this +might introduce a small delay, see \*(L"the special problem of being too +early\*(R", below). If multiple timers become ready during the same loop +iteration then the ones with earlier time-out values are invoked before +ones of the same priority with later time-out values (but this is no +longer true when a callback calls \f(CW\*(C`ev_run\*(C'\fR recursively). +.PP +\fIBe smart about timeouts\fR +.IX Subsection "Be smart about timeouts" +.PP +Many real-world problems involve some kind of timeout, usually for error +recovery. A typical example is an \s-1HTTP\s0 request \- if the other side hangs, +you want to raise some error after a while. +.PP +What follows are some ways to handle this problem, from obvious and +inefficient to smart and efficient. +.PP +In the following, a 60 second activity timeout is assumed \- a timeout that +gets reset to 60 seconds each time there is activity (e.g. each time some +data or other life sign was received). +.IP "1. Use a timer and stop, reinitialise and start it on activity." 4 +.IX Item "1. Use a timer and stop, reinitialise and start it on activity." +This is the most obvious, but not the most simple way: In the beginning, +start the watcher: +.Sp +.Vb 2 +\& ev_timer_init (timer, callback, 60., 0.); +\& ev_timer_start (loop, timer); +.Ve +.Sp +Then, each time there is some activity, \f(CW\*(C`ev_timer_stop\*(C'\fR it, initialise it +and start it again: +.Sp +.Vb 3 +\& ev_timer_stop (loop, timer); +\& ev_timer_set (timer, 60., 0.); +\& ev_timer_start (loop, timer); +.Ve +.Sp +This is relatively simple to implement, but means that each time there is +some activity, libev will first have to remove the timer from its internal +data structure and then add it again. Libev tries to be fast, but it's +still not a constant-time operation. +.ie n .IP "2. Use a timer and re-start it with ""ev_timer_again"" inactivity." 4 +.el .IP "2. Use a timer and re-start it with \f(CWev_timer_again\fR inactivity." 4 +.IX Item "2. Use a timer and re-start it with ev_timer_again inactivity." +This is the easiest way, and involves using \f(CW\*(C`ev_timer_again\*(C'\fR instead of +\&\f(CW\*(C`ev_timer_start\*(C'\fR. +.Sp +To implement this, configure an \f(CW\*(C`ev_timer\*(C'\fR with a \f(CW\*(C`repeat\*(C'\fR value +of \f(CW60\fR and then call \f(CW\*(C`ev_timer_again\*(C'\fR at start and each time you +successfully read or write some data. If you go into an idle state where +you do not expect data to travel on the socket, you can \f(CW\*(C`ev_timer_stop\*(C'\fR +the timer, and \f(CW\*(C`ev_timer_again\*(C'\fR will automatically restart it if need be. +.Sp +That means you can ignore both the \f(CW\*(C`ev_timer_start\*(C'\fR function and the +\&\f(CW\*(C`after\*(C'\fR argument to \f(CW\*(C`ev_timer_set\*(C'\fR, and only ever use the \f(CW\*(C`repeat\*(C'\fR +member and \f(CW\*(C`ev_timer_again\*(C'\fR. +.Sp +At start: +.Sp +.Vb 3 +\& ev_init (timer, callback); +\& timer\->repeat = 60.; +\& ev_timer_again (loop, timer); +.Ve +.Sp +Each time there is some activity: +.Sp +.Vb 1 +\& ev_timer_again (loop, timer); +.Ve +.Sp +It is even possible to change the time-out on the fly, regardless of +whether the watcher is active or not: +.Sp +.Vb 2 +\& timer\->repeat = 30.; +\& ev_timer_again (loop, timer); +.Ve +.Sp +This is slightly more efficient then stopping/starting the timer each time +you want to modify its timeout value, as libev does not have to completely +remove and re-insert the timer from/into its internal data structure. +.Sp +It is, however, even simpler than the \*(L"obvious\*(R" way to do it. +.IP "3. Let the timer time out, but then re-arm it as required." 4 +.IX Item "3. Let the timer time out, but then re-arm it as required." +This method is more tricky, but usually most efficient: Most timeouts are +relatively long compared to the intervals between other activity \- in +our example, within 60 seconds, there are usually many I/O events with +associated activity resets. +.Sp +In this case, it would be more efficient to leave the \f(CW\*(C`ev_timer\*(C'\fR alone, +but remember the time of last activity, and check for a real timeout only +within the callback: +.Sp +.Vb 3 +\& ev_tstamp timeout = 60.; +\& ev_tstamp last_activity; // time of last activity +\& ev_timer timer; +\& +\& static void +\& callback (EV_P_ ev_timer *w, int revents) +\& { +\& // calculate when the timeout would happen +\& ev_tstamp after = last_activity \- ev_now (EV_A) + timeout; +\& +\& // if negative, it means we the timeout already occurred +\& if (after < 0.) +\& { +\& // timeout occurred, take action +\& } +\& else +\& { +\& // callback was invoked, but there was some recent +\& // activity. simply restart the timer to time out +\& // after "after" seconds, which is the earliest time +\& // the timeout can occur. +\& ev_timer_set (w, after, 0.); +\& ev_timer_start (EV_A_ w); +\& } +\& } +.Ve +.Sp +To summarise the callback: first calculate in how many seconds the +timeout will occur (by calculating the absolute time when it would occur, +\&\f(CW\*(C`last_activity + timeout\*(C'\fR, and subtracting the current time, \f(CW\*(C`ev_now +(EV_A)\*(C'\fR from that). +.Sp +If this value is negative, then we are already past the timeout, i.e. we +timed out, and need to do whatever is needed in this case. +.Sp +Otherwise, we now the earliest time at which the timeout would trigger, +and simply start the timer with this timeout value. +.Sp +In other words, each time the callback is invoked it will check whether +the timeout occurred. If not, it will simply reschedule itself to check +again at the earliest time it could time out. Rinse. Repeat. +.Sp +This scheme causes more callback invocations (about one every 60 seconds +minus half the average time between activity), but virtually no calls to +libev to change the timeout. +.Sp +To start the machinery, simply initialise the watcher and set +\&\f(CW\*(C`last_activity\*(C'\fR to the current time (meaning there was some activity just +now), then call the callback, which will \*(L"do the right thing\*(R" and start +the timer: +.Sp +.Vb 3 +\& last_activity = ev_now (EV_A); +\& ev_init (&timer, callback); +\& callback (EV_A_ &timer, 0); +.Ve +.Sp +When there is some activity, simply store the current time in +\&\f(CW\*(C`last_activity\*(C'\fR, no libev calls at all: +.Sp +.Vb 2 +\& if (activity detected) +\& last_activity = ev_now (EV_A); +.Ve +.Sp +When your timeout value changes, then the timeout can be changed by simply +providing a new value, stopping the timer and calling the callback, which +will again do the right thing (for example, time out immediately :). +.Sp +.Vb 3 +\& timeout = new_value; +\& ev_timer_stop (EV_A_ &timer); +\& callback (EV_A_ &timer, 0); +.Ve +.Sp +This technique is slightly more complex, but in most cases where the +time-out is unlikely to be triggered, much more efficient. +.IP "4. Wee, just use a double-linked list for your timeouts." 4 +.IX Item "4. Wee, just use a double-linked list for your timeouts." +If there is not one request, but many thousands (millions...), all +employing some kind of timeout with the same timeout value, then one can +do even better: +.Sp +When starting the timeout, calculate the timeout value and put the timeout +at the \fIend\fR of the list. +.Sp +Then use an \f(CW\*(C`ev_timer\*(C'\fR to fire when the timeout at the \fIbeginning\fR of +the list is expected to fire (for example, using the technique #3). +.Sp +When there is some activity, remove the timer from the list, recalculate +the timeout, append it to the end of the list again, and make sure to +update the \f(CW\*(C`ev_timer\*(C'\fR if it was taken from the beginning of the list. +.Sp +This way, one can manage an unlimited number of timeouts in O(1) time for +starting, stopping and updating the timers, at the expense of a major +complication, and having to use a constant timeout. The constant timeout +ensures that the list stays sorted. +.PP +So which method the best? +.PP +Method #2 is a simple no-brain-required solution that is adequate in most +situations. Method #3 requires a bit more thinking, but handles many cases +better, and isn't very complicated either. In most case, choosing either +one is fine, with #3 being better in typical situations. +.PP +Method #1 is almost always a bad idea, and buys you nothing. Method #4 is +rather complicated, but extremely efficient, something that really pays +off after the first million or so of active timers, i.e. it's usually +overkill :) +.PP +\fIThe special problem of being too early\fR +.IX Subsection "The special problem of being too early" +.PP +If you ask a timer to call your callback after three seconds, then +you expect it to be invoked after three seconds \- but of course, this +cannot be guaranteed to infinite precision. Less obviously, it cannot be +guaranteed to any precision by libev \- imagine somebody suspending the +process with a \s-1STOP\s0 signal for a few hours for example. +.PP +So, libev tries to invoke your callback as soon as possible \fIafter\fR the +delay has occurred, but cannot guarantee this. +.PP +A less obvious failure mode is calling your callback too early: many event +loops compare timestamps with a \*(L"elapsed delay >= requested delay\*(R", but +this can cause your callback to be invoked much earlier than you would +expect. +.PP +To see why, imagine a system with a clock that only offers full second +resolution (think windows if you can't come up with a broken enough \s-1OS\s0 +yourself). If you schedule a one-second timer at the time 500.9, then the +event loop will schedule your timeout to elapse at a system time of 500 +(500.9 truncated to the resolution) + 1, or 501. +.PP +If an event library looks at the timeout 0.1s later, it will see \*(L"501 >= +501\*(R" and invoke the callback 0.1s after it was started, even though a +one-second delay was requested \- this is being \*(L"too early\*(R", despite best +intentions. +.PP +This is the reason why libev will never invoke the callback if the elapsed +delay equals the requested delay, but only when the elapsed delay is +larger than the requested delay. In the example above, libev would only invoke +the callback at system time 502, or 1.1s after the timer was started. +.PP +So, while libev cannot guarantee that your callback will be invoked +exactly when requested, it \fIcan\fR and \fIdoes\fR guarantee that the requested +delay has actually elapsed, or in other words, it always errs on the \*(L"too +late\*(R" side of things. +.PP +\fIThe special problem of time updates\fR +.IX Subsection "The special problem of time updates" +.PP +Establishing the current time is a costly operation (it usually takes +at least one system call): \s-1EV\s0 therefore updates its idea of the current +time only before and after \f(CW\*(C`ev_run\*(C'\fR collects new events, which causes a +growing difference between \f(CW\*(C`ev_now ()\*(C'\fR and \f(CW\*(C`ev_time ()\*(C'\fR when handling +lots of events in one iteration. +.PP +The relative timeouts are calculated relative to the \f(CW\*(C`ev_now ()\*(C'\fR +time. This is usually the right thing as this timestamp refers to the time +of the event triggering whatever timeout you are modifying/starting. If +you suspect event processing to be delayed and you \fIneed\fR to base the +timeout on the current time, use something like the following to adjust +for it: +.PP +.Vb 1 +\& ev_timer_set (&timer, after + (ev_time () \- ev_now ()), 0.); +.Ve +.PP +If the event loop is suspended for a long time, you can also force an +update of the time returned by \f(CW\*(C`ev_now ()\*(C'\fR by calling \f(CW\*(C`ev_now_update +()\*(C'\fR, although that will push the event time of all outstanding events +further into the future. +.PP +\fIThe special problem of unsynchronised clocks\fR +.IX Subsection "The special problem of unsynchronised clocks" +.PP +Modern systems have a variety of clocks \- libev itself uses the normal +\&\*(L"wall clock\*(R" clock and, if available, the monotonic clock (to avoid time +jumps). +.PP +Neither of these clocks is synchronised with each other or any other clock +on the system, so \f(CW\*(C`ev_time ()\*(C'\fR might return a considerably different time +than \f(CW\*(C`gettimeofday ()\*(C'\fR or \f(CW\*(C`time ()\*(C'\fR. On a GNU/Linux system, for example, +a call to \f(CW\*(C`gettimeofday\*(C'\fR might return a second count that is one higher +than a directly following call to \f(CW\*(C`time\*(C'\fR. +.PP +The moral of this is to only compare libev-related timestamps with +\&\f(CW\*(C`ev_time ()\*(C'\fR and \f(CW\*(C`ev_now ()\*(C'\fR, at least if you want better precision than +a second or so. +.PP +One more problem arises due to this lack of synchronisation: if libev uses +the system monotonic clock and you compare timestamps from \f(CW\*(C`ev_time\*(C'\fR +or \f(CW\*(C`ev_now\*(C'\fR from when you started your timer and when your callback is +invoked, you will find that sometimes the callback is a bit \*(L"early\*(R". +.PP +This is because \f(CW\*(C`ev_timer\*(C'\fRs work in real time, not wall clock time, so +libev makes sure your callback is not invoked before the delay happened, +\&\fImeasured according to the real time\fR, not the system clock. +.PP +If your timeouts are based on a physical timescale (e.g. \*(L"time out this +connection after 100 seconds\*(R") then this shouldn't bother you as it is +exactly the right behaviour. +.PP +If you want to compare wall clock/system timestamps to your timers, then +you need to use \f(CW\*(C`ev_periodic\*(C'\fRs, as these are based on the wall clock +time, where your comparisons will always generate correct results. +.PP +\fIThe special problems of suspended animation\fR +.IX Subsection "The special problems of suspended animation" +.PP +When you leave the server world it is quite customary to hit machines that +can suspend/hibernate \- what happens to the clocks during such a suspend? +.PP +Some quick tests made with a Linux 2.6.28 indicate that a suspend freezes +all processes, while the clocks (\f(CW\*(C`times\*(C'\fR, \f(CW\*(C`CLOCK_MONOTONIC\*(C'\fR) continue +to run until the system is suspended, but they will not advance while the +system is suspended. That means, on resume, it will be as if the program +was frozen for a few seconds, but the suspend time will not be counted +towards \f(CW\*(C`ev_timer\*(C'\fR when a monotonic clock source is used. The real time +clock advanced as expected, but if it is used as sole clocksource, then a +long suspend would be detected as a time jump by libev, and timers would +be adjusted accordingly. +.PP +I would not be surprised to see different behaviour in different between +operating systems, \s-1OS\s0 versions or even different hardware. +.PP +The other form of suspend (job control, or sending a \s-1SIGSTOP\s0) will see a +time jump in the monotonic clocks and the realtime clock. If the program +is suspended for a very long time, and monotonic clock sources are in use, +then you can expect \f(CW\*(C`ev_timer\*(C'\fRs to expire as the full suspension time +will be counted towards the timers. When no monotonic clock source is in +use, then libev will again assume a timejump and adjust accordingly. +.PP +It might be beneficial for this latter case to call \f(CW\*(C`ev_suspend\*(C'\fR +and \f(CW\*(C`ev_resume\*(C'\fR in code that handles \f(CW\*(C`SIGTSTP\*(C'\fR, to at least get +deterministic behaviour in this case (you can do nothing against +\&\f(CW\*(C`SIGSTOP\*(C'\fR). +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)" 4 +.IX Item "ev_timer_init (ev_timer *, callback, ev_tstamp after, ev_tstamp repeat)" +.PD 0 +.IP "ev_timer_set (ev_timer *, ev_tstamp after, ev_tstamp repeat)" 4 +.IX Item "ev_timer_set (ev_timer *, ev_tstamp after, ev_tstamp repeat)" +.PD +Configure the timer to trigger after \f(CW\*(C`after\*(C'\fR seconds. If \f(CW\*(C`repeat\*(C'\fR +is \f(CW0.\fR, then it will automatically be stopped once the timeout is +reached. If it is positive, then the timer will automatically be +configured to trigger again \f(CW\*(C`repeat\*(C'\fR seconds later, again, and again, +until stopped manually. +.Sp +The timer itself will do a best-effort at avoiding drift, that is, if +you configure a timer to trigger every 10 seconds, then it will normally +trigger at exactly 10 second intervals. If, however, your program cannot +keep up with the timer (because it takes longer than those 10 seconds to +do stuff) the timer will not fire more than once per event loop iteration. +.IP "ev_timer_again (loop, ev_timer *)" 4 +.IX Item "ev_timer_again (loop, ev_timer *)" +This will act as if the timer timed out, and restarts it again if it is +repeating. It basically works like calling \f(CW\*(C`ev_timer_stop\*(C'\fR, updating the +timeout to the \f(CW\*(C`repeat\*(C'\fR value and calling \f(CW\*(C`ev_timer_start\*(C'\fR. +.Sp +The exact semantics are as in the following rules, all of which will be +applied to the watcher: +.RS 4 +.IP "If the timer is pending, the pending status is always cleared." 4 +.IX Item "If the timer is pending, the pending status is always cleared." +.PD 0 +.IP "If the timer is started but non-repeating, stop it (as if it timed out, without invoking it)." 4 +.IX Item "If the timer is started but non-repeating, stop it (as if it timed out, without invoking it)." +.ie n .IP "If the timer is repeating, make the ""repeat"" value the new timeout and start the timer, if necessary." 4 +.el .IP "If the timer is repeating, make the \f(CWrepeat\fR value the new timeout and start the timer, if necessary." 4 +.IX Item "If the timer is repeating, make the repeat value the new timeout and start the timer, if necessary." +.RE +.RS 4 +.PD +.Sp +This sounds a bit complicated, see \*(L"Be smart about timeouts\*(R", above, for a +usage example. +.RE +.IP "ev_tstamp ev_timer_remaining (loop, ev_timer *)" 4 +.IX Item "ev_tstamp ev_timer_remaining (loop, ev_timer *)" +Returns the remaining time until a timer fires. If the timer is active, +then this time is relative to the current event loop time, otherwise it's +the timeout value currently configured. +.Sp +That is, after an \f(CW\*(C`ev_timer_set (w, 5, 7)\*(C'\fR, \f(CW\*(C`ev_timer_remaining\*(C'\fR returns +\&\f(CW5\fR. When the timer is started and one second passes, \f(CW\*(C`ev_timer_remaining\*(C'\fR +will return \f(CW4\fR. When the timer expires and is restarted, it will return +roughly \f(CW7\fR (likely slightly less as callback invocation takes some time, +too), and so on. +.IP "ev_tstamp repeat [read\-write]" 4 +.IX Item "ev_tstamp repeat [read-write]" +The current \f(CW\*(C`repeat\*(C'\fR value. Will be used each time the watcher times out +or \f(CW\*(C`ev_timer_again\*(C'\fR is called, and determines the next timeout (if any), +which is also when any modifications are taken into account. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Create a timer that fires after 60 seconds. +.PP +.Vb 5 +\& static void +\& one_minute_cb (struct ev_loop *loop, ev_timer *w, int revents) +\& { +\& .. one minute over, w is actually stopped right here +\& } +\& +\& ev_timer mytimer; +\& ev_timer_init (&mytimer, one_minute_cb, 60., 0.); +\& ev_timer_start (loop, &mytimer); +.Ve +.PP +Example: Create a timeout timer that times out after 10 seconds of +inactivity. +.PP +.Vb 5 +\& static void +\& timeout_cb (struct ev_loop *loop, ev_timer *w, int revents) +\& { +\& .. ten seconds without any activity +\& } +\& +\& ev_timer mytimer; +\& ev_timer_init (&mytimer, timeout_cb, 0., 10.); /* note, only repeat used */ +\& ev_timer_again (&mytimer); /* start timer */ +\& ev_run (loop, 0); +\& +\& // and in some piece of code that gets executed on any "activity": +\& // reset the timeout to start ticking again at 10 seconds +\& ev_timer_again (&mytimer); +.Ve +.ie n .SS """ev_periodic"" \- to cron or not to cron?" +.el .SS "\f(CWev_periodic\fP \- to cron or not to cron?" +.IX Subsection "ev_periodic - to cron or not to cron?" +Periodic watchers are also timers of a kind, but they are very versatile +(and unfortunately a bit complex). +.PP +Unlike \f(CW\*(C`ev_timer\*(C'\fR, periodic watchers are not based on real time (or +relative time, the physical time that passes) but on wall clock time +(absolute time, the thing you can read on your calender or clock). The +difference is that wall clock time can run faster or slower than real +time, and time jumps are not uncommon (e.g. when you adjust your +wrist-watch). +.PP +You can tell a periodic watcher to trigger after some specific point +in time: for example, if you tell a periodic watcher to trigger \*(L"in 10 +seconds\*(R" (by specifying e.g. \f(CW\*(C`ev_now () + 10.\*(C'\fR, that is, an absolute time +not a delay) and then reset your system clock to January of the previous +year, then it will take a year or more to trigger the event (unlike an +\&\f(CW\*(C`ev_timer\*(C'\fR, which would still trigger roughly 10 seconds after starting +it, as it uses a relative timeout). +.PP +\&\f(CW\*(C`ev_periodic\*(C'\fR watchers can also be used to implement vastly more complex +timers, such as triggering an event on each \*(L"midnight, local time\*(R", or +other complicated rules. This cannot be done with \f(CW\*(C`ev_timer\*(C'\fR watchers, as +those cannot react to time jumps. +.PP +As with timers, the callback is guaranteed to be invoked only when the +point in time where it is supposed to trigger has passed. If multiple +timers become ready during the same loop iteration then the ones with +earlier time-out values are invoked before ones with later time-out values +(but this is no longer true when a callback calls \f(CW\*(C`ev_run\*(C'\fR recursively). +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_periodic_init (ev_periodic *, callback, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" 4 +.IX Item "ev_periodic_init (ev_periodic *, callback, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" +.PD 0 +.IP "ev_periodic_set (ev_periodic *, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" 4 +.IX Item "ev_periodic_set (ev_periodic *, ev_tstamp offset, ev_tstamp interval, reschedule_cb)" +.PD +Lots of arguments, let's sort it out... There are basically three modes of +operation, and we will explain them from simplest to most complex: +.RS 4 +.IP "\(bu" 4 +absolute timer (offset = absolute time, interval = 0, reschedule_cb = 0) +.Sp +In this configuration the watcher triggers an event after the wall clock +time \f(CW\*(C`offset\*(C'\fR has passed. It will not repeat and will not adjust when a +time jump occurs, that is, if it is to be run at January 1st 2011 then it +will be stopped and invoked when the system clock reaches or surpasses +this point in time. +.IP "\(bu" 4 +repeating interval timer (offset = offset within interval, interval > 0, reschedule_cb = 0) +.Sp +In this mode the watcher will always be scheduled to time out at the next +\&\f(CW\*(C`offset + N * interval\*(C'\fR time (for some integer N, which can also be +negative) and then repeat, regardless of any time jumps. The \f(CW\*(C`offset\*(C'\fR +argument is merely an offset into the \f(CW\*(C`interval\*(C'\fR periods. +.Sp +This can be used to create timers that do not drift with respect to the +system clock, for example, here is an \f(CW\*(C`ev_periodic\*(C'\fR that triggers each +hour, on the hour (with respect to \s-1UTC\s0): +.Sp +.Vb 1 +\& ev_periodic_set (&periodic, 0., 3600., 0); +.Ve +.Sp +This doesn't mean there will always be 3600 seconds in between triggers, +but only that the callback will be called when the system time shows a +full hour (\s-1UTC\s0), or more correctly, when the system time is evenly divisible +by 3600. +.Sp +Another way to think about it (for the mathematically inclined) is that +\&\f(CW\*(C`ev_periodic\*(C'\fR will try to run the callback in this mode at the next possible +time where \f(CW\*(C`time = offset (mod interval)\*(C'\fR, regardless of any time jumps. +.Sp +The \f(CW\*(C`interval\*(C'\fR \fI\s-1MUST\s0\fR be positive, and for numerical stability, the +interval value should be higher than \f(CW\*(C`1/8192\*(C'\fR (which is around 100 +microseconds) and \f(CW\*(C`offset\*(C'\fR should be higher than \f(CW0\fR and should have +at most a similar magnitude as the current time (say, within a factor of +ten). Typical values for offset are, in fact, \f(CW0\fR or something between +\&\f(CW0\fR and \f(CW\*(C`interval\*(C'\fR, which is also the recommended range. +.Sp +Note also that there is an upper limit to how often a timer can fire (\s-1CPU\s0 +speed for example), so if \f(CW\*(C`interval\*(C'\fR is very small then timing stability +will of course deteriorate. Libev itself tries to be exact to be about one +millisecond (if the \s-1OS\s0 supports it and the machine is fast enough). +.IP "\(bu" 4 +manual reschedule mode (offset ignored, interval ignored, reschedule_cb = callback) +.Sp +In this mode the values for \f(CW\*(C`interval\*(C'\fR and \f(CW\*(C`offset\*(C'\fR are both being +ignored. Instead, each time the periodic watcher gets scheduled, the +reschedule callback will be called with the watcher as first, and the +current time as second argument. +.Sp +\&\s-1NOTE: \s0\fIThis callback \s-1MUST NOT\s0 stop or destroy any periodic watcher, ever, +or make \s-1ANY\s0 other event loop modifications whatsoever, unless explicitly +allowed by documentation here\fR. +.Sp +If you need to stop it, return \f(CW\*(C`now + 1e30\*(C'\fR (or so, fudge fudge) and stop +it afterwards (e.g. by starting an \f(CW\*(C`ev_prepare\*(C'\fR watcher, which is the +only event loop modification you are allowed to do). +.Sp +The callback prototype is \f(CW\*(C`ev_tstamp (*reschedule_cb)(ev_periodic +*w, ev_tstamp now)\*(C'\fR, e.g.: +.Sp +.Vb 5 +\& static ev_tstamp +\& my_rescheduler (ev_periodic *w, ev_tstamp now) +\& { +\& return now + 60.; +\& } +.Ve +.Sp +It must return the next time to trigger, based on the passed time value +(that is, the lowest time value larger than to the second argument). It +will usually be called just before the callback will be triggered, but +might be called at other times, too. +.Sp +\&\s-1NOTE: \s0\fIThis callback must always return a time that is higher than or +equal to the passed \f(CI\*(C`now\*(C'\fI value\fR. +.Sp +This can be used to create very complex timers, such as a timer that +triggers on \*(L"next midnight, local time\*(R". To do this, you would calculate the +next midnight after \f(CW\*(C`now\*(C'\fR and return the timestamp value for this. How +you do this is, again, up to you (but it is not trivial, which is the main +reason I omitted it as an example). +.RE +.RS 4 +.RE +.IP "ev_periodic_again (loop, ev_periodic *)" 4 +.IX Item "ev_periodic_again (loop, ev_periodic *)" +Simply stops and restarts the periodic watcher again. This is only useful +when you changed some parameters or the reschedule callback would return +a different time than the last time it was called (e.g. in a crond like +program when the crontabs have changed). +.IP "ev_tstamp ev_periodic_at (ev_periodic *)" 4 +.IX Item "ev_tstamp ev_periodic_at (ev_periodic *)" +When active, returns the absolute time that the watcher is supposed +to trigger next. This is not the same as the \f(CW\*(C`offset\*(C'\fR argument to +\&\f(CW\*(C`ev_periodic_set\*(C'\fR, but indeed works even in interval and manual +rescheduling modes. +.IP "ev_tstamp offset [read\-write]" 4 +.IX Item "ev_tstamp offset [read-write]" +When repeating, this contains the offset value, otherwise this is the +absolute point in time (the \f(CW\*(C`offset\*(C'\fR value passed to \f(CW\*(C`ev_periodic_set\*(C'\fR, +although libev might modify this value for better numerical stability). +.Sp +Can be modified any time, but changes only take effect when the periodic +timer fires or \f(CW\*(C`ev_periodic_again\*(C'\fR is being called. +.IP "ev_tstamp interval [read\-write]" 4 +.IX Item "ev_tstamp interval [read-write]" +The current interval value. Can be modified any time, but changes only +take effect when the periodic timer fires or \f(CW\*(C`ev_periodic_again\*(C'\fR is being +called. +.IP "ev_tstamp (*reschedule_cb)(ev_periodic *w, ev_tstamp now) [read\-write]" 4 +.IX Item "ev_tstamp (*reschedule_cb)(ev_periodic *w, ev_tstamp now) [read-write]" +The current reschedule callback, or \f(CW0\fR, if this functionality is +switched off. Can be changed any time, but changes only take effect when +the periodic timer fires or \f(CW\*(C`ev_periodic_again\*(C'\fR is being called. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Call a callback every hour, or, more precisely, whenever the +system time is divisible by 3600. The callback invocation times have +potentially a lot of jitter, but good long-term stability. +.PP +.Vb 5 +\& static void +\& clock_cb (struct ev_loop *loop, ev_periodic *w, int revents) +\& { +\& ... its now a full hour (UTC, or TAI or whatever your clock follows) +\& } +\& +\& ev_periodic hourly_tick; +\& ev_periodic_init (&hourly_tick, clock_cb, 0., 3600., 0); +\& ev_periodic_start (loop, &hourly_tick); +.Ve +.PP +Example: The same as above, but use a reschedule callback to do it: +.PP +.Vb 1 +\& #include +\& +\& static ev_tstamp +\& my_scheduler_cb (ev_periodic *w, ev_tstamp now) +\& { +\& return now + (3600. \- fmod (now, 3600.)); +\& } +\& +\& ev_periodic_init (&hourly_tick, clock_cb, 0., 0., my_scheduler_cb); +.Ve +.PP +Example: Call a callback every hour, starting now: +.PP +.Vb 4 +\& ev_periodic hourly_tick; +\& ev_periodic_init (&hourly_tick, clock_cb, +\& fmod (ev_now (loop), 3600.), 3600., 0); +\& ev_periodic_start (loop, &hourly_tick); +.Ve +.ie n .SS """ev_signal"" \- signal me when a signal gets signalled!" +.el .SS "\f(CWev_signal\fP \- signal me when a signal gets signalled!" +.IX Subsection "ev_signal - signal me when a signal gets signalled!" +Signal watchers will trigger an event when the process receives a specific +signal one or more times. Even though signals are very asynchronous, libev +will try its best to deliver signals synchronously, i.e. as part of the +normal event processing, like any other event. +.PP +If you want signals to be delivered truly asynchronously, just use +\&\f(CW\*(C`sigaction\*(C'\fR as you would do without libev and forget about sharing +the signal. You can even use \f(CW\*(C`ev_async\*(C'\fR from a signal handler to +synchronously wake up an event loop. +.PP +You can configure as many watchers as you like for the same signal, but +only within the same loop, i.e. you can watch for \f(CW\*(C`SIGINT\*(C'\fR in your +default loop and for \f(CW\*(C`SIGIO\*(C'\fR in another loop, but you cannot watch for +\&\f(CW\*(C`SIGINT\*(C'\fR in both the default loop and another loop at the same time. At +the moment, \f(CW\*(C`SIGCHLD\*(C'\fR is permanently tied to the default loop. +.PP +Only after the first watcher for a signal is started will libev actually +register something with the kernel. It thus coexists with your own signal +handlers as long as you don't register any with libev for the same signal. +.PP +If possible and supported, libev will install its handlers with +\&\f(CW\*(C`SA_RESTART\*(C'\fR (or equivalent) behaviour enabled, so system calls should +not be unduly interrupted. If you have a problem with system calls getting +interrupted by signals you can block all signals in an \f(CW\*(C`ev_check\*(C'\fR watcher +and unblock them in an \f(CW\*(C`ev_prepare\*(C'\fR watcher. +.PP +\fIThe special problem of inheritance over fork/execve/pthread_create\fR +.IX Subsection "The special problem of inheritance over fork/execve/pthread_create" +.PP +Both the signal mask (\f(CW\*(C`sigprocmask\*(C'\fR) and the signal disposition +(\f(CW\*(C`sigaction\*(C'\fR) are unspecified after starting a signal watcher (and after +stopping it again), that is, libev might or might not block the signal, +and might or might not set or restore the installed signal handler (but +see \f(CW\*(C`EVFLAG_NOSIGMASK\*(C'\fR). +.PP +While this does not matter for the signal disposition (libev never +sets signals to \f(CW\*(C`SIG_IGN\*(C'\fR, so handlers will be reset to \f(CW\*(C`SIG_DFL\*(C'\fR on +\&\f(CW\*(C`execve\*(C'\fR), this matters for the signal mask: many programs do not expect +certain signals to be blocked. +.PP +This means that before calling \f(CW\*(C`exec\*(C'\fR (from the child) you should reset +the signal mask to whatever \*(L"default\*(R" you expect (all clear is a good +choice usually). +.PP +The simplest way to ensure that the signal mask is reset in the child is +to install a fork handler with \f(CW\*(C`pthread_atfork\*(C'\fR that resets it. That will +catch fork calls done by libraries (such as the libc) as well. +.PP +In current versions of libev, the signal will not be blocked indefinitely +unless you use the \f(CW\*(C`signalfd\*(C'\fR \s-1API \s0(\f(CW\*(C`EV_SIGNALFD\*(C'\fR). While this reduces +the window of opportunity for problems, it will not go away, as libev +\&\fIhas\fR to modify the signal mask, at least temporarily. +.PP +So I can't stress this enough: \fIIf you do not reset your signal mask when +you expect it to be empty, you have a race condition in your code\fR. This +is not a libev-specific thing, this is true for most event libraries. +.PP +\fIThe special problem of threads signal handling\fR +.IX Subsection "The special problem of threads signal handling" +.PP +\&\s-1POSIX\s0 threads has problematic signal handling semantics, specifically, +a lot of functionality (sigfd, sigwait etc.) only really works if all +threads in a process block signals, which is hard to achieve. +.PP +When you want to use sigwait (or mix libev signal handling with your own +for the same signals), you can tackle this problem by globally blocking +all signals before creating any threads (or creating them with a fully set +sigprocmask) and also specifying the \f(CW\*(C`EVFLAG_NOSIGMASK\*(C'\fR when creating +loops. Then designate one thread as \*(L"signal receiver thread\*(R" which handles +these signals. You can pass on any signals that libev might be interested +in by calling \f(CW\*(C`ev_feed_signal\*(C'\fR. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_signal_init (ev_signal *, callback, int signum)" 4 +.IX Item "ev_signal_init (ev_signal *, callback, int signum)" +.PD 0 +.IP "ev_signal_set (ev_signal *, int signum)" 4 +.IX Item "ev_signal_set (ev_signal *, int signum)" +.PD +Configures the watcher to trigger on the given signal number (usually one +of the \f(CW\*(C`SIGxxx\*(C'\fR constants). +.IP "int signum [read\-only]" 4 +.IX Item "int signum [read-only]" +The signal the watcher watches out for. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Try to exit cleanly on \s-1SIGINT.\s0 +.PP +.Vb 5 +\& static void +\& sigint_cb (struct ev_loop *loop, ev_signal *w, int revents) +\& { +\& ev_break (loop, EVBREAK_ALL); +\& } +\& +\& ev_signal signal_watcher; +\& ev_signal_init (&signal_watcher, sigint_cb, SIGINT); +\& ev_signal_start (loop, &signal_watcher); +.Ve +.ie n .SS """ev_child"" \- watch out for process status changes" +.el .SS "\f(CWev_child\fP \- watch out for process status changes" +.IX Subsection "ev_child - watch out for process status changes" +Child watchers trigger when your process receives a \s-1SIGCHLD\s0 in response to +some child status changes (most typically when a child of yours dies or +exits). It is permissible to install a child watcher \fIafter\fR the child +has been forked (which implies it might have already exited), as long +as the event loop isn't entered (or is continued from a watcher), i.e., +forking and then immediately registering a watcher for the child is fine, +but forking and registering a watcher a few event loop iterations later or +in the next callback invocation is not. +.PP +Only the default event loop is capable of handling signals, and therefore +you can only register child watchers in the default event loop. +.PP +Due to some design glitches inside libev, child watchers will always be +handled at maximum priority (their priority is set to \f(CW\*(C`EV_MAXPRI\*(C'\fR by +libev) +.PP +\fIProcess Interaction\fR +.IX Subsection "Process Interaction" +.PP +Libev grabs \f(CW\*(C`SIGCHLD\*(C'\fR as soon as the default event loop is +initialised. This is necessary to guarantee proper behaviour even if the +first child watcher is started after the child exits. The occurrence +of \f(CW\*(C`SIGCHLD\*(C'\fR is recorded asynchronously, but child reaping is done +synchronously as part of the event loop processing. Libev always reaps all +children, even ones not watched. +.PP +\fIOverriding the Built-In Processing\fR +.IX Subsection "Overriding the Built-In Processing" +.PP +Libev offers no special support for overriding the built-in child +processing, but if your application collides with libev's default child +handler, you can override it easily by installing your own handler for +\&\f(CW\*(C`SIGCHLD\*(C'\fR after initialising the default loop, and making sure the +default loop never gets destroyed. You are encouraged, however, to use an +event-based approach to child reaping and thus use libev's support for +that, so other libev users can use \f(CW\*(C`ev_child\*(C'\fR watchers freely. +.PP +\fIStopping the Child Watcher\fR +.IX Subsection "Stopping the Child Watcher" +.PP +Currently, the child watcher never gets stopped, even when the +child terminates, so normally one needs to stop the watcher in the +callback. Future versions of libev might stop the watcher automatically +when a child exit is detected (calling \f(CW\*(C`ev_child_stop\*(C'\fR twice is not a +problem). +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_child_init (ev_child *, callback, int pid, int trace)" 4 +.IX Item "ev_child_init (ev_child *, callback, int pid, int trace)" +.PD 0 +.IP "ev_child_set (ev_child *, int pid, int trace)" 4 +.IX Item "ev_child_set (ev_child *, int pid, int trace)" +.PD +Configures the watcher to wait for status changes of process \f(CW\*(C`pid\*(C'\fR (or +\&\fIany\fR process if \f(CW\*(C`pid\*(C'\fR is specified as \f(CW0\fR). The callback can look +at the \f(CW\*(C`rstatus\*(C'\fR member of the \f(CW\*(C`ev_child\*(C'\fR watcher structure to see +the status word (use the macros from \f(CW\*(C`sys/wait.h\*(C'\fR and see your systems +\&\f(CW\*(C`waitpid\*(C'\fR documentation). The \f(CW\*(C`rpid\*(C'\fR member contains the pid of the +process causing the status change. \f(CW\*(C`trace\*(C'\fR must be either \f(CW0\fR (only +activate the watcher when the process terminates) or \f(CW1\fR (additionally +activate the watcher when the process is stopped or continued). +.IP "int pid [read\-only]" 4 +.IX Item "int pid [read-only]" +The process id this watcher watches out for, or \f(CW0\fR, meaning any process id. +.IP "int rpid [read\-write]" 4 +.IX Item "int rpid [read-write]" +The process id that detected a status change. +.IP "int rstatus [read\-write]" 4 +.IX Item "int rstatus [read-write]" +The process exit/trace status caused by \f(CW\*(C`rpid\*(C'\fR (see your systems +\&\f(CW\*(C`waitpid\*(C'\fR and \f(CW\*(C`sys/wait.h\*(C'\fR documentation for details). +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: \f(CW\*(C`fork()\*(C'\fR a new process and install a child handler to wait for +its completion. +.PP +.Vb 1 +\& ev_child cw; +\& +\& static void +\& child_cb (EV_P_ ev_child *w, int revents) +\& { +\& ev_child_stop (EV_A_ w); +\& printf ("process %d exited with status %x\en", w\->rpid, w\->rstatus); +\& } +\& +\& pid_t pid = fork (); +\& +\& if (pid < 0) +\& // error +\& else if (pid == 0) +\& { +\& // the forked child executes here +\& exit (1); +\& } +\& else +\& { +\& ev_child_init (&cw, child_cb, pid, 0); +\& ev_child_start (EV_DEFAULT_ &cw); +\& } +.Ve +.ie n .SS """ev_stat"" \- did the file attributes just change?" +.el .SS "\f(CWev_stat\fP \- did the file attributes just change?" +.IX Subsection "ev_stat - did the file attributes just change?" +This watches a file system path for attribute changes. That is, it calls +\&\f(CW\*(C`stat\*(C'\fR on that path in regular intervals (or when the \s-1OS\s0 says it changed) +and sees if it changed compared to the last time, invoking the callback +if it did. Starting the watcher \f(CW\*(C`stat\*(C'\fR's the file, so only changes that +happen after the watcher has been started will be reported. +.PP +The path does not need to exist: changing from \*(L"path exists\*(R" to \*(L"path does +not exist\*(R" is a status change like any other. The condition \*(L"path does not +exist\*(R" (or more correctly \*(L"path cannot be stat'ed\*(R") is signified by the +\&\f(CW\*(C`st_nlink\*(C'\fR field being zero (which is otherwise always forced to be at +least one) and all the other fields of the stat buffer having unspecified +contents. +.PP +The path \fImust not\fR end in a slash or contain special components such as +\&\f(CW\*(C`.\*(C'\fR or \f(CW\*(C`..\*(C'\fR. The path \fIshould\fR be absolute: If it is relative and +your working directory changes, then the behaviour is undefined. +.PP +Since there is no portable change notification interface available, the +portable implementation simply calls \f(CWstat(2)\fR regularly on the path +to see if it changed somehow. You can specify a recommended polling +interval for this case. If you specify a polling interval of \f(CW0\fR (highly +recommended!) then a \fIsuitable, unspecified default\fR value will be used +(which you can expect to be around five seconds, although this might +change dynamically). Libev will also impose a minimum interval which is +currently around \f(CW0.1\fR, but that's usually overkill. +.PP +This watcher type is not meant for massive numbers of stat watchers, +as even with OS-supported change notifications, this can be +resource-intensive. +.PP +At the time of this writing, the only OS-specific interface implemented +is the Linux inotify interface (implementing kqueue support is left as an +exercise for the reader. Note, however, that the author sees no way of +implementing \f(CW\*(C`ev_stat\*(C'\fR semantics with kqueue, except as a hint). +.PP +\fI\s-1ABI\s0 Issues (Largefile Support)\fR +.IX Subsection "ABI Issues (Largefile Support)" +.PP +Libev by default (unless the user overrides this) uses the default +compilation environment, which means that on systems with large file +support disabled by default, you get the 32 bit version of the stat +structure. When using the library from programs that change the \s-1ABI\s0 to +use 64 bit file offsets the programs will fail. In that case you have to +compile libev with the same flags to get binary compatibility. This is +obviously the case with any flags that change the \s-1ABI,\s0 but the problem is +most noticeably displayed with ev_stat and large file support. +.PP +The solution for this is to lobby your distribution maker to make large +file interfaces available by default (as e.g. FreeBSD does) and not +optional. Libev cannot simply switch on large file support because it has +to exchange stat structures with application programs compiled using the +default compilation environment. +.PP +\fIInotify and Kqueue\fR +.IX Subsection "Inotify and Kqueue" +.PP +When \f(CW\*(C`inotify (7)\*(C'\fR support has been compiled into libev and present at +runtime, it will be used to speed up change detection where possible. The +inotify descriptor will be created lazily when the first \f(CW\*(C`ev_stat\*(C'\fR +watcher is being started. +.PP +Inotify presence does not change the semantics of \f(CW\*(C`ev_stat\*(C'\fR watchers +except that changes might be detected earlier, and in some cases, to avoid +making regular \f(CW\*(C`stat\*(C'\fR calls. Even in the presence of inotify support +there are many cases where libev has to resort to regular \f(CW\*(C`stat\*(C'\fR polling, +but as long as kernel 2.6.25 or newer is used (2.6.24 and older have too +many bugs), the path exists (i.e. stat succeeds), and the path resides on +a local filesystem (libev currently assumes only ext2/3, jfs, reiserfs and +xfs are fully working) libev usually gets away without polling. +.PP +There is no support for kqueue, as apparently it cannot be used to +implement this functionality, due to the requirement of having a file +descriptor open on the object at all times, and detecting renames, unlinks +etc. is difficult. +.PP +\fI\f(CI\*(C`stat ()\*(C'\fI is a synchronous operation\fR +.IX Subsection "stat () is a synchronous operation" +.PP +Libev doesn't normally do any kind of I/O itself, and so is not blocking +the process. The exception are \f(CW\*(C`ev_stat\*(C'\fR watchers \- those call \f(CW\*(C`stat +()\*(C'\fR, which is a synchronous operation. +.PP +For local paths, this usually doesn't matter: unless the system is very +busy or the intervals between stat's are large, a stat call will be fast, +as the path data is usually in memory already (except when starting the +watcher). +.PP +For networked file systems, calling \f(CW\*(C`stat ()\*(C'\fR can block an indefinite +time due to network issues, and even under good conditions, a stat call +often takes multiple milliseconds. +.PP +Therefore, it is best to avoid using \f(CW\*(C`ev_stat\*(C'\fR watchers on networked +paths, although this is fully supported by libev. +.PP +\fIThe special problem of stat time resolution\fR +.IX Subsection "The special problem of stat time resolution" +.PP +The \f(CW\*(C`stat ()\*(C'\fR system call only supports full-second resolution portably, +and even on systems where the resolution is higher, most file systems +still only support whole seconds. +.PP +That means that, if the time is the only thing that changes, you can +easily miss updates: on the first update, \f(CW\*(C`ev_stat\*(C'\fR detects a change and +calls your callback, which does something. When there is another update +within the same second, \f(CW\*(C`ev_stat\*(C'\fR will be unable to detect unless the +stat data does change in other ways (e.g. file size). +.PP +The solution to this is to delay acting on a change for slightly more +than a second (or till slightly after the next full second boundary), using +a roughly one-second-delay \f(CW\*(C`ev_timer\*(C'\fR (e.g. \f(CW\*(C`ev_timer_set (w, 0., 1.02); +ev_timer_again (loop, w)\*(C'\fR). +.PP +The \f(CW.02\fR offset is added to work around small timing inconsistencies +of some operating systems (where the second counter of the current time +might be be delayed. One such system is the Linux kernel, where a call to +\&\f(CW\*(C`gettimeofday\*(C'\fR might return a timestamp with a full second later than +a subsequent \f(CW\*(C`time\*(C'\fR call \- if the equivalent of \f(CW\*(C`time ()\*(C'\fR is used to +update file times then there will be a small window where the kernel uses +the previous second to update file times but libev might already execute +the timer callback). +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)" 4 +.IX Item "ev_stat_init (ev_stat *, callback, const char *path, ev_tstamp interval)" +.PD 0 +.IP "ev_stat_set (ev_stat *, const char *path, ev_tstamp interval)" 4 +.IX Item "ev_stat_set (ev_stat *, const char *path, ev_tstamp interval)" +.PD +Configures the watcher to wait for status changes of the given +\&\f(CW\*(C`path\*(C'\fR. The \f(CW\*(C`interval\*(C'\fR is a hint on how quickly a change is expected to +be detected and should normally be specified as \f(CW0\fR to let libev choose +a suitable value. The memory pointed to by \f(CW\*(C`path\*(C'\fR must point to the same +path for as long as the watcher is active. +.Sp +The callback will receive an \f(CW\*(C`EV_STAT\*(C'\fR event when a change was detected, +relative to the attributes at the time the watcher was started (or the +last change was detected). +.IP "ev_stat_stat (loop, ev_stat *)" 4 +.IX Item "ev_stat_stat (loop, ev_stat *)" +Updates the stat buffer immediately with new values. If you change the +watched path in your callback, you could call this function to avoid +detecting this change (while introducing a race condition if you are not +the only one changing the path). Can also be useful simply to find out the +new values. +.IP "ev_statdata attr [read\-only]" 4 +.IX Item "ev_statdata attr [read-only]" +The most-recently detected attributes of the file. Although the type is +\&\f(CW\*(C`ev_statdata\*(C'\fR, this is usually the (or one of the) \f(CW\*(C`struct stat\*(C'\fR types +suitable for your system, but you can only rely on the POSIX-standardised +members to be present. If the \f(CW\*(C`st_nlink\*(C'\fR member is \f(CW0\fR, then there was +some error while \f(CW\*(C`stat\*(C'\fRing the file. +.IP "ev_statdata prev [read\-only]" 4 +.IX Item "ev_statdata prev [read-only]" +The previous attributes of the file. The callback gets invoked whenever +\&\f(CW\*(C`prev\*(C'\fR != \f(CW\*(C`attr\*(C'\fR, or, more precisely, one or more of these members +differ: \f(CW\*(C`st_dev\*(C'\fR, \f(CW\*(C`st_ino\*(C'\fR, \f(CW\*(C`st_mode\*(C'\fR, \f(CW\*(C`st_nlink\*(C'\fR, \f(CW\*(C`st_uid\*(C'\fR, +\&\f(CW\*(C`st_gid\*(C'\fR, \f(CW\*(C`st_rdev\*(C'\fR, \f(CW\*(C`st_size\*(C'\fR, \f(CW\*(C`st_atime\*(C'\fR, \f(CW\*(C`st_mtime\*(C'\fR, \f(CW\*(C`st_ctime\*(C'\fR. +.IP "ev_tstamp interval [read\-only]" 4 +.IX Item "ev_tstamp interval [read-only]" +The specified interval. +.IP "const char *path [read\-only]" 4 +.IX Item "const char *path [read-only]" +The file system path that is being watched. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Watch \f(CW\*(C`/etc/passwd\*(C'\fR for attribute changes. +.PP +.Vb 10 +\& static void +\& passwd_cb (struct ev_loop *loop, ev_stat *w, int revents) +\& { +\& /* /etc/passwd changed in some way */ +\& if (w\->attr.st_nlink) +\& { +\& printf ("passwd current size %ld\en", (long)w\->attr.st_size); +\& printf ("passwd current atime %ld\en", (long)w\->attr.st_mtime); +\& printf ("passwd current mtime %ld\en", (long)w\->attr.st_mtime); +\& } +\& else +\& /* you shalt not abuse printf for puts */ +\& puts ("wow, /etc/passwd is not there, expect problems. " +\& "if this is windows, they already arrived\en"); +\& } +\& +\& ... +\& ev_stat passwd; +\& +\& ev_stat_init (&passwd, passwd_cb, "/etc/passwd", 0.); +\& ev_stat_start (loop, &passwd); +.Ve +.PP +Example: Like above, but additionally use a one-second delay so we do not +miss updates (however, frequent updates will delay processing, too, so +one might do the work both on \f(CW\*(C`ev_stat\*(C'\fR callback invocation \fIand\fR on +\&\f(CW\*(C`ev_timer\*(C'\fR callback invocation). +.PP +.Vb 2 +\& static ev_stat passwd; +\& static ev_timer timer; +\& +\& static void +\& timer_cb (EV_P_ ev_timer *w, int revents) +\& { +\& ev_timer_stop (EV_A_ w); +\& +\& /* now it\*(Aqs one second after the most recent passwd change */ +\& } +\& +\& static void +\& stat_cb (EV_P_ ev_stat *w, int revents) +\& { +\& /* reset the one\-second timer */ +\& ev_timer_again (EV_A_ &timer); +\& } +\& +\& ... +\& ev_stat_init (&passwd, stat_cb, "/etc/passwd", 0.); +\& ev_stat_start (loop, &passwd); +\& ev_timer_init (&timer, timer_cb, 0., 1.02); +.Ve +.ie n .SS """ev_idle"" \- when you've got nothing better to do..." +.el .SS "\f(CWev_idle\fP \- when you've got nothing better to do..." +.IX Subsection "ev_idle - when you've got nothing better to do..." +Idle watchers trigger events when no other events of the same or higher +priority are pending (prepare, check and other idle watchers do not count +as receiving \*(L"events\*(R"). +.PP +That is, as long as your process is busy handling sockets or timeouts +(or even signals, imagine) of the same or higher priority it will not be +triggered. But when your process is idle (or only lower-priority watchers +are pending), the idle watchers are being called once per event loop +iteration \- until stopped, that is, or your process receives more events +and becomes busy again with higher priority stuff. +.PP +The most noteworthy effect is that as long as any idle watchers are +active, the process will not block when waiting for new events. +.PP +Apart from keeping your process non-blocking (which is a useful +effect on its own sometimes), idle watchers are a good place to do +\&\*(L"pseudo-background processing\*(R", or delay processing stuff to after the +event loop has handled all outstanding events. +.PP +\fIAbusing an \f(CI\*(C`ev_idle\*(C'\fI watcher for its side-effect\fR +.IX Subsection "Abusing an ev_idle watcher for its side-effect" +.PP +As long as there is at least one active idle watcher, libev will never +sleep unnecessarily. Or in other words, it will loop as fast as possible. +For this to work, the idle watcher doesn't need to be invoked at all \- the +lowest priority will do. +.PP +This mode of operation can be useful together with an \f(CW\*(C`ev_check\*(C'\fR watcher, +to do something on each event loop iteration \- for example to balance load +between different connections. +.PP +See \*(L"Abusing an ev_check watcher for its side-effect\*(R" for a longer +example. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_idle_init (ev_idle *, callback)" 4 +.IX Item "ev_idle_init (ev_idle *, callback)" +Initialises and configures the idle watcher \- it has no parameters of any +kind. There is a \f(CW\*(C`ev_idle_set\*(C'\fR macro, but using it is utterly pointless, +believe me. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Dynamically allocate an \f(CW\*(C`ev_idle\*(C'\fR watcher, start it, and in the +callback, free it. Also, use no error checking, as usual. +.PP +.Vb 5 +\& static void +\& idle_cb (struct ev_loop *loop, ev_idle *w, int revents) +\& { +\& // stop the watcher +\& ev_idle_stop (loop, w); +\& +\& // now we can free it +\& free (w); +\& +\& // now do something you wanted to do when the program has +\& // no longer anything immediate to do. +\& } +\& +\& ev_idle *idle_watcher = malloc (sizeof (ev_idle)); +\& ev_idle_init (idle_watcher, idle_cb); +\& ev_idle_start (loop, idle_watcher); +.Ve +.ie n .SS """ev_prepare"" and ""ev_check"" \- customise your event loop!" +.el .SS "\f(CWev_prepare\fP and \f(CWev_check\fP \- customise your event loop!" +.IX Subsection "ev_prepare and ev_check - customise your event loop!" +Prepare and check watchers are often (but not always) used in pairs: +prepare watchers get invoked before the process blocks and check watchers +afterwards. +.PP +You \fImust not\fR call \f(CW\*(C`ev_run\*(C'\fR (or similar functions that enter the +current event loop) or \f(CW\*(C`ev_loop_fork\*(C'\fR from either \f(CW\*(C`ev_prepare\*(C'\fR or +\&\f(CW\*(C`ev_check\*(C'\fR watchers. Other loops than the current one are fine, +however. The rationale behind this is that you do not need to check +for recursion in those watchers, i.e. the sequence will always be +\&\f(CW\*(C`ev_prepare\*(C'\fR, blocking, \f(CW\*(C`ev_check\*(C'\fR so if you have one watcher of each +kind they will always be called in pairs bracketing the blocking call. +.PP +Their main purpose is to integrate other event mechanisms into libev and +their use is somewhat advanced. They could be used, for example, to track +variable changes, implement your own watchers, integrate net-snmp or a +coroutine library and lots more. They are also occasionally useful if +you cache some data and want to flush it before blocking (for example, +in X programs you might want to do an \f(CW\*(C`XFlush ()\*(C'\fR in an \f(CW\*(C`ev_prepare\*(C'\fR +watcher). +.PP +This is done by examining in each prepare call which file descriptors +need to be watched by the other library, registering \f(CW\*(C`ev_io\*(C'\fR watchers +for them and starting an \f(CW\*(C`ev_timer\*(C'\fR watcher for any timeouts (many +libraries provide exactly this functionality). Then, in the check watcher, +you check for any events that occurred (by checking the pending status +of all watchers and stopping them) and call back into the library. The +I/O and timer callbacks will never actually be called (but must be valid +nevertheless, because you never know, you know?). +.PP +As another example, the Perl Coro module uses these hooks to integrate +coroutines into libev programs, by yielding to other active coroutines +during each prepare and only letting the process block if no coroutines +are ready to run (it's actually more complicated: it only runs coroutines +with priority higher than or equal to the event loop and one coroutine +of lower priority, but only once, using idle watchers to keep the event +loop from blocking if lower-priority coroutines are active, thus mapping +low-priority coroutines to idle/background tasks). +.PP +When used for this purpose, it is recommended to give \f(CW\*(C`ev_check\*(C'\fR watchers +highest (\f(CW\*(C`EV_MAXPRI\*(C'\fR) priority, to ensure that they are being run before +any other watchers after the poll (this doesn't matter for \f(CW\*(C`ev_prepare\*(C'\fR +watchers). +.PP +Also, \f(CW\*(C`ev_check\*(C'\fR watchers (and \f(CW\*(C`ev_prepare\*(C'\fR watchers, too) should not +activate (\*(L"feed\*(R") events into libev. While libev fully supports this, they +might get executed before other \f(CW\*(C`ev_check\*(C'\fR watchers did their job. As +\&\f(CW\*(C`ev_check\*(C'\fR watchers are often used to embed other (non-libev) event +loops those other event loops might be in an unusable state until their +\&\f(CW\*(C`ev_check\*(C'\fR watcher ran (always remind yourself to coexist peacefully with +others). +.PP +\fIAbusing an \f(CI\*(C`ev_check\*(C'\fI watcher for its side-effect\fR +.IX Subsection "Abusing an ev_check watcher for its side-effect" +.PP +\&\f(CW\*(C`ev_check\*(C'\fR (and less often also \f(CW\*(C`ev_prepare\*(C'\fR) watchers can also be +useful because they are called once per event loop iteration. For +example, if you want to handle a large number of connections fairly, you +normally only do a bit of work for each active connection, and if there +is more work to do, you wait for the next event loop iteration, so other +connections have a chance of making progress. +.PP +Using an \f(CW\*(C`ev_check\*(C'\fR watcher is almost enough: it will be called on the +next event loop iteration. However, that isn't as soon as possible \- +without external events, your \f(CW\*(C`ev_check\*(C'\fR watcher will not be invoked. +.PP +This is where \f(CW\*(C`ev_idle\*(C'\fR watchers come in handy \- all you need is a +single global idle watcher that is active as long as you have one active +\&\f(CW\*(C`ev_check\*(C'\fR watcher. The \f(CW\*(C`ev_idle\*(C'\fR watcher makes sure the event loop +will not sleep, and the \f(CW\*(C`ev_check\*(C'\fR watcher makes sure a callback gets +invoked. Neither watcher alone can do that. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_prepare_init (ev_prepare *, callback)" 4 +.IX Item "ev_prepare_init (ev_prepare *, callback)" +.PD 0 +.IP "ev_check_init (ev_check *, callback)" 4 +.IX Item "ev_check_init (ev_check *, callback)" +.PD +Initialises and configures the prepare or check watcher \- they have no +parameters of any kind. There are \f(CW\*(C`ev_prepare_set\*(C'\fR and \f(CW\*(C`ev_check_set\*(C'\fR +macros, but using them is utterly, utterly, utterly and completely +pointless. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +There are a number of principal ways to embed other event loops or modules +into libev. Here are some ideas on how to include libadns into libev +(there is a Perl module named \f(CW\*(C`EV::ADNS\*(C'\fR that does this, which you could +use as a working example. Another Perl module named \f(CW\*(C`EV::Glib\*(C'\fR embeds a +Glib main context into libev, and finally, \f(CW\*(C`Glib::EV\*(C'\fR embeds \s-1EV\s0 into the +Glib event loop). +.PP +Method 1: Add \s-1IO\s0 watchers and a timeout watcher in a prepare handler, +and in a check watcher, destroy them and call into libadns. What follows +is pseudo-code only of course. This requires you to either use a low +priority for the check watcher or use \f(CW\*(C`ev_clear_pending\*(C'\fR explicitly, as +the callbacks for the IO/timeout watchers might not have been called yet. +.PP +.Vb 2 +\& static ev_io iow [nfd]; +\& static ev_timer tw; +\& +\& static void +\& io_cb (struct ev_loop *loop, ev_io *w, int revents) +\& { +\& } +\& +\& // create io watchers for each fd and a timer before blocking +\& static void +\& adns_prepare_cb (struct ev_loop *loop, ev_prepare *w, int revents) +\& { +\& int timeout = 3600000; +\& struct pollfd fds [nfd]; +\& // actual code will need to loop here and realloc etc. +\& adns_beforepoll (ads, fds, &nfd, &timeout, timeval_from (ev_time ())); +\& +\& /* the callback is illegal, but won\*(Aqt be called as we stop during check */ +\& ev_timer_init (&tw, 0, timeout * 1e\-3, 0.); +\& ev_timer_start (loop, &tw); +\& +\& // create one ev_io per pollfd +\& for (int i = 0; i < nfd; ++i) +\& { +\& ev_io_init (iow + i, io_cb, fds [i].fd, +\& ((fds [i].events & POLLIN ? EV_READ : 0) +\& | (fds [i].events & POLLOUT ? EV_WRITE : 0))); +\& +\& fds [i].revents = 0; +\& ev_io_start (loop, iow + i); +\& } +\& } +\& +\& // stop all watchers after blocking +\& static void +\& adns_check_cb (struct ev_loop *loop, ev_check *w, int revents) +\& { +\& ev_timer_stop (loop, &tw); +\& +\& for (int i = 0; i < nfd; ++i) +\& { +\& // set the relevant poll flags +\& // could also call adns_processreadable etc. here +\& struct pollfd *fd = fds + i; +\& int revents = ev_clear_pending (iow + i); +\& if (revents & EV_READ ) fd\->revents |= fd\->events & POLLIN; +\& if (revents & EV_WRITE) fd\->revents |= fd\->events & POLLOUT; +\& +\& // now stop the watcher +\& ev_io_stop (loop, iow + i); +\& } +\& +\& adns_afterpoll (adns, fds, nfd, timeval_from (ev_now (loop)); +\& } +.Ve +.PP +Method 2: This would be just like method 1, but you run \f(CW\*(C`adns_afterpoll\*(C'\fR +in the prepare watcher and would dispose of the check watcher. +.PP +Method 3: If the module to be embedded supports explicit event +notification (libadns does), you can also make use of the actual watcher +callbacks, and only destroy/create the watchers in the prepare watcher. +.PP +.Vb 5 +\& static void +\& timer_cb (EV_P_ ev_timer *w, int revents) +\& { +\& adns_state ads = (adns_state)w\->data; +\& update_now (EV_A); +\& +\& adns_processtimeouts (ads, &tv_now); +\& } +\& +\& static void +\& io_cb (EV_P_ ev_io *w, int revents) +\& { +\& adns_state ads = (adns_state)w\->data; +\& update_now (EV_A); +\& +\& if (revents & EV_READ ) adns_processreadable (ads, w\->fd, &tv_now); +\& if (revents & EV_WRITE) adns_processwriteable (ads, w\->fd, &tv_now); +\& } +\& +\& // do not ever call adns_afterpoll +.Ve +.PP +Method 4: Do not use a prepare or check watcher because the module you +want to embed is not flexible enough to support it. Instead, you can +override their poll function. The drawback with this solution is that the +main loop is now no longer controllable by \s-1EV.\s0 The \f(CW\*(C`Glib::EV\*(C'\fR module uses +this approach, effectively embedding \s-1EV\s0 as a client into the horrible +libglib event loop. +.PP +.Vb 4 +\& static gint +\& event_poll_func (GPollFD *fds, guint nfds, gint timeout) +\& { +\& int got_events = 0; +\& +\& for (n = 0; n < nfds; ++n) +\& // create/start io watcher that sets the relevant bits in fds[n] and increment got_events +\& +\& if (timeout >= 0) +\& // create/start timer +\& +\& // poll +\& ev_run (EV_A_ 0); +\& +\& // stop timer again +\& if (timeout >= 0) +\& ev_timer_stop (EV_A_ &to); +\& +\& // stop io watchers again \- their callbacks should have set +\& for (n = 0; n < nfds; ++n) +\& ev_io_stop (EV_A_ iow [n]); +\& +\& return got_events; +\& } +.Ve +.ie n .SS """ev_embed"" \- when one backend isn't enough..." +.el .SS "\f(CWev_embed\fP \- when one backend isn't enough..." +.IX Subsection "ev_embed - when one backend isn't enough..." +This is a rather advanced watcher type that lets you embed one event loop +into another (currently only \f(CW\*(C`ev_io\*(C'\fR events are supported in the embedded +loop, other types of watchers might be handled in a delayed or incorrect +fashion and must not be used). +.PP +There are primarily two reasons you would want that: work around bugs and +prioritise I/O. +.PP +As an example for a bug workaround, the kqueue backend might only support +sockets on some platform, so it is unusable as generic backend, but you +still want to make use of it because you have many sockets and it scales +so nicely. In this case, you would create a kqueue-based loop and embed +it into your default loop (which might use e.g. poll). Overall operation +will be a bit slower because first libev has to call \f(CW\*(C`poll\*(C'\fR and then +\&\f(CW\*(C`kevent\*(C'\fR, but at least you can use both mechanisms for what they are +best: \f(CW\*(C`kqueue\*(C'\fR for scalable sockets and \f(CW\*(C`poll\*(C'\fR if you want it to work :) +.PP +As for prioritising I/O: under rare circumstances you have the case where +some fds have to be watched and handled very quickly (with low latency), +and even priorities and idle watchers might have too much overhead. In +this case you would put all the high priority stuff in one loop and all +the rest in a second one, and embed the second one in the first. +.PP +As long as the watcher is active, the callback will be invoked every +time there might be events pending in the embedded loop. The callback +must then call \f(CW\*(C`ev_embed_sweep (mainloop, watcher)\*(C'\fR to make a single +sweep and invoke their callbacks (the callback doesn't need to invoke the +\&\f(CW\*(C`ev_embed_sweep\*(C'\fR function directly, it could also start an idle watcher +to give the embedded loop strictly lower priority for example). +.PP +You can also set the callback to \f(CW0\fR, in which case the embed watcher +will automatically execute the embedded loop sweep whenever necessary. +.PP +Fork detection will be handled transparently while the \f(CW\*(C`ev_embed\*(C'\fR watcher +is active, i.e., the embedded loop will automatically be forked when the +embedding loop forks. In other cases, the user is responsible for calling +\&\f(CW\*(C`ev_loop_fork\*(C'\fR on the embedded loop. +.PP +Unfortunately, not all backends are embeddable: only the ones returned by +\&\f(CW\*(C`ev_embeddable_backends\*(C'\fR are, which, unfortunately, does not include any +portable one. +.PP +So when you want to use this feature you will always have to be prepared +that you cannot get an embeddable loop. The recommended way to get around +this is to have a separate variables for your embeddable loop, try to +create it, and if that fails, use the normal loop for everything. +.PP +\fI\f(CI\*(C`ev_embed\*(C'\fI and fork\fR +.IX Subsection "ev_embed and fork" +.PP +While the \f(CW\*(C`ev_embed\*(C'\fR watcher is running, forks in the embedding loop will +automatically be applied to the embedded loop as well, so no special +fork handling is required in that case. When the watcher is not running, +however, it is still the task of the libev user to call \f(CW\*(C`ev_loop_fork ()\*(C'\fR +as applicable. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)" 4 +.IX Item "ev_embed_init (ev_embed *, callback, struct ev_loop *embedded_loop)" +.PD 0 +.IP "ev_embed_set (ev_embed *, struct ev_loop *embedded_loop)" 4 +.IX Item "ev_embed_set (ev_embed *, struct ev_loop *embedded_loop)" +.PD +Configures the watcher to embed the given loop, which must be +embeddable. If the callback is \f(CW0\fR, then \f(CW\*(C`ev_embed_sweep\*(C'\fR will be +invoked automatically, otherwise it is the responsibility of the callback +to invoke it (it will continue to be called until the sweep has been done, +if you do not want that, you need to temporarily stop the embed watcher). +.IP "ev_embed_sweep (loop, ev_embed *)" 4 +.IX Item "ev_embed_sweep (loop, ev_embed *)" +Make a single, non-blocking sweep over the embedded loop. This works +similarly to \f(CW\*(C`ev_run (embedded_loop, EVRUN_NOWAIT)\*(C'\fR, but in the most +appropriate way for embedded loops. +.IP "struct ev_loop *other [read\-only]" 4 +.IX Item "struct ev_loop *other [read-only]" +The embedded event loop. +.PP +\fIExamples\fR +.IX Subsection "Examples" +.PP +Example: Try to get an embeddable event loop and embed it into the default +event loop. If that is not possible, use the default loop. The default +loop is stored in \f(CW\*(C`loop_hi\*(C'\fR, while the embeddable loop is stored in +\&\f(CW\*(C`loop_lo\*(C'\fR (which is \f(CW\*(C`loop_hi\*(C'\fR in the case no embeddable loop can be +used). +.PP +.Vb 3 +\& struct ev_loop *loop_hi = ev_default_init (0); +\& struct ev_loop *loop_lo = 0; +\& ev_embed embed; +\& +\& // see if there is a chance of getting one that works +\& // (remember that a flags value of 0 means autodetection) +\& loop_lo = ev_embeddable_backends () & ev_recommended_backends () +\& ? ev_loop_new (ev_embeddable_backends () & ev_recommended_backends ()) +\& : 0; +\& +\& // if we got one, then embed it, otherwise default to loop_hi +\& if (loop_lo) +\& { +\& ev_embed_init (&embed, 0, loop_lo); +\& ev_embed_start (loop_hi, &embed); +\& } +\& else +\& loop_lo = loop_hi; +.Ve +.PP +Example: Check if kqueue is available but not recommended and create +a kqueue backend for use with sockets (which usually work with any +kqueue implementation). Store the kqueue/socket\-only event loop in +\&\f(CW\*(C`loop_socket\*(C'\fR. (One might optionally use \f(CW\*(C`EVFLAG_NOENV\*(C'\fR, too). +.PP +.Vb 3 +\& struct ev_loop *loop = ev_default_init (0); +\& struct ev_loop *loop_socket = 0; +\& ev_embed embed; +\& +\& if (ev_supported_backends () & ~ev_recommended_backends () & EVBACKEND_KQUEUE) +\& if ((loop_socket = ev_loop_new (EVBACKEND_KQUEUE)) +\& { +\& ev_embed_init (&embed, 0, loop_socket); +\& ev_embed_start (loop, &embed); +\& } +\& +\& if (!loop_socket) +\& loop_socket = loop; +\& +\& // now use loop_socket for all sockets, and loop for everything else +.Ve +.ie n .SS """ev_fork"" \- the audacity to resume the event loop after a fork" +.el .SS "\f(CWev_fork\fP \- the audacity to resume the event loop after a fork" +.IX Subsection "ev_fork - the audacity to resume the event loop after a fork" +Fork watchers are called when a \f(CW\*(C`fork ()\*(C'\fR was detected (usually because +whoever is a good citizen cared to tell libev about it by calling +\&\f(CW\*(C`ev_loop_fork\*(C'\fR). The invocation is done before the event loop blocks next +and before \f(CW\*(C`ev_check\*(C'\fR watchers are being called, and only in the child +after the fork. If whoever good citizen calling \f(CW\*(C`ev_default_fork\*(C'\fR cheats +and calls it in the wrong process, the fork handlers will be invoked, too, +of course. +.PP +\fIThe special problem of life after fork \- how is it possible?\fR +.IX Subsection "The special problem of life after fork - how is it possible?" +.PP +Most uses of \f(CW\*(C`fork ()\*(C'\fR consist of forking, then some simple calls to set +up/change the process environment, followed by a call to \f(CW\*(C`exec()\*(C'\fR. This +sequence should be handled by libev without any problems. +.PP +This changes when the application actually wants to do event handling +in the child, or both parent in child, in effect \*(L"continuing\*(R" after the +fork. +.PP +The default mode of operation (for libev, with application help to detect +forks) is to duplicate all the state in the child, as would be expected +when \fIeither\fR the parent \fIor\fR the child process continues. +.PP +When both processes want to continue using libev, then this is usually the +wrong result. In that case, usually one process (typically the parent) is +supposed to continue with all watchers in place as before, while the other +process typically wants to start fresh, i.e. without any active watchers. +.PP +The cleanest and most efficient way to achieve that with libev is to +simply create a new event loop, which of course will be \*(L"empty\*(R", and +use that for new watchers. This has the advantage of not touching more +memory than necessary, and thus avoiding the copy-on-write, and the +disadvantage of having to use multiple event loops (which do not support +signal watchers). +.PP +When this is not possible, or you want to use the default loop for +other reasons, then in the process that wants to start \*(L"fresh\*(R", call +\&\f(CW\*(C`ev_loop_destroy (EV_DEFAULT)\*(C'\fR followed by \f(CW\*(C`ev_default_loop (...)\*(C'\fR. +Destroying the default loop will \*(L"orphan\*(R" (not stop) all registered +watchers, so you have to be careful not to execute code that modifies +those watchers. Note also that in that case, you have to re-register any +signal watchers. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_fork_init (ev_fork *, callback)" 4 +.IX Item "ev_fork_init (ev_fork *, callback)" +Initialises and configures the fork watcher \- it has no parameters of any +kind. There is a \f(CW\*(C`ev_fork_set\*(C'\fR macro, but using it is utterly pointless, +really. +.ie n .SS """ev_cleanup"" \- even the best things end" +.el .SS "\f(CWev_cleanup\fP \- even the best things end" +.IX Subsection "ev_cleanup - even the best things end" +Cleanup watchers are called just before the event loop is being destroyed +by a call to \f(CW\*(C`ev_loop_destroy\*(C'\fR. +.PP +While there is no guarantee that the event loop gets destroyed, cleanup +watchers provide a convenient method to install cleanup hooks for your +program, worker threads and so on \- you just to make sure to destroy the +loop when you want them to be invoked. +.PP +Cleanup watchers are invoked in the same way as any other watcher. Unlike +all other watchers, they do not keep a reference to the event loop (which +makes a lot of sense if you think about it). Like all other watchers, you +can call libev functions in the callback, except \f(CW\*(C`ev_cleanup_start\*(C'\fR. +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_cleanup_init (ev_cleanup *, callback)" 4 +.IX Item "ev_cleanup_init (ev_cleanup *, callback)" +Initialises and configures the cleanup watcher \- it has no parameters of +any kind. There is a \f(CW\*(C`ev_cleanup_set\*(C'\fR macro, but using it is utterly +pointless, I assure you. +.PP +Example: Register an atexit handler to destroy the default loop, so any +cleanup functions are called. +.PP +.Vb 5 +\& static void +\& program_exits (void) +\& { +\& ev_loop_destroy (EV_DEFAULT_UC); +\& } +\& +\& ... +\& atexit (program_exits); +.Ve +.ie n .SS """ev_async"" \- how to wake up an event loop" +.el .SS "\f(CWev_async\fP \- how to wake up an event loop" +.IX Subsection "ev_async - how to wake up an event loop" +In general, you cannot use an \f(CW\*(C`ev_loop\*(C'\fR from multiple threads or other +asynchronous sources such as signal handlers (as opposed to multiple event +loops \- those are of course safe to use in different threads). +.PP +Sometimes, however, you need to wake up an event loop you do not control, +for example because it belongs to another thread. This is what \f(CW\*(C`ev_async\*(C'\fR +watchers do: as long as the \f(CW\*(C`ev_async\*(C'\fR watcher is active, you can signal +it by calling \f(CW\*(C`ev_async_send\*(C'\fR, which is thread\- and signal safe. +.PP +This functionality is very similar to \f(CW\*(C`ev_signal\*(C'\fR watchers, as signals, +too, are asynchronous in nature, and signals, too, will be compressed +(i.e. the number of callback invocations may be less than the number of +\&\f(CW\*(C`ev_async_send\*(C'\fR calls). In fact, you could use signal watchers as a kind +of \*(L"global async watchers\*(R" by using a watcher on an otherwise unused +signal, and \f(CW\*(C`ev_feed_signal\*(C'\fR to signal this watcher from another thread, +even without knowing which loop owns the signal. +.PP +\fIQueueing\fR +.IX Subsection "Queueing" +.PP +\&\f(CW\*(C`ev_async\*(C'\fR does not support queueing of data in any way. The reason +is that the author does not know of a simple (or any) algorithm for a +multiple-writer-single-reader queue that works in all cases and doesn't +need elaborate support such as pthreads or unportable memory access +semantics. +.PP +That means that if you want to queue data, you have to provide your own +queue. But at least I can tell you how to implement locking around your +queue: +.IP "queueing from a signal handler context" 4 +.IX Item "queueing from a signal handler context" +To implement race-free queueing, you simply add to the queue in the signal +handler but you block the signal handler in the watcher callback. Here is +an example that does that for some fictitious \s-1SIGUSR1\s0 handler: +.Sp +.Vb 1 +\& static ev_async mysig; +\& +\& static void +\& sigusr1_handler (void) +\& { +\& sometype data; +\& +\& // no locking etc. +\& queue_put (data); +\& ev_async_send (EV_DEFAULT_ &mysig); +\& } +\& +\& static void +\& mysig_cb (EV_P_ ev_async *w, int revents) +\& { +\& sometype data; +\& sigset_t block, prev; +\& +\& sigemptyset (&block); +\& sigaddset (&block, SIGUSR1); +\& sigprocmask (SIG_BLOCK, &block, &prev); +\& +\& while (queue_get (&data)) +\& process (data); +\& +\& if (sigismember (&prev, SIGUSR1) +\& sigprocmask (SIG_UNBLOCK, &block, 0); +\& } +.Ve +.Sp +(Note: pthreads in theory requires you to use \f(CW\*(C`pthread_setmask\*(C'\fR +instead of \f(CW\*(C`sigprocmask\*(C'\fR when you use threads, but libev doesn't do it +either...). +.IP "queueing from a thread context" 4 +.IX Item "queueing from a thread context" +The strategy for threads is different, as you cannot (easily) block +threads but you can easily preempt them, so to queue safely you need to +employ a traditional mutex lock, such as in this pthread example: +.Sp +.Vb 2 +\& static ev_async mysig; +\& static pthread_mutex_t mymutex = PTHREAD_MUTEX_INITIALIZER; +\& +\& static void +\& otherthread (void) +\& { +\& // only need to lock the actual queueing operation +\& pthread_mutex_lock (&mymutex); +\& queue_put (data); +\& pthread_mutex_unlock (&mymutex); +\& +\& ev_async_send (EV_DEFAULT_ &mysig); +\& } +\& +\& static void +\& mysig_cb (EV_P_ ev_async *w, int revents) +\& { +\& pthread_mutex_lock (&mymutex); +\& +\& while (queue_get (&data)) +\& process (data); +\& +\& pthread_mutex_unlock (&mymutex); +\& } +.Ve +.PP +\fIWatcher-Specific Functions and Data Members\fR +.IX Subsection "Watcher-Specific Functions and Data Members" +.IP "ev_async_init (ev_async *, callback)" 4 +.IX Item "ev_async_init (ev_async *, callback)" +Initialises and configures the async watcher \- it has no parameters of any +kind. There is a \f(CW\*(C`ev_async_set\*(C'\fR macro, but using it is utterly pointless, +trust me. +.IP "ev_async_send (loop, ev_async *)" 4 +.IX Item "ev_async_send (loop, ev_async *)" +Sends/signals/activates the given \f(CW\*(C`ev_async\*(C'\fR watcher, that is, feeds +an \f(CW\*(C`EV_ASYNC\*(C'\fR event on the watcher into the event loop, and instantly +returns. +.Sp +Unlike \f(CW\*(C`ev_feed_event\*(C'\fR, this call is safe to do from other threads, +signal or similar contexts (see the discussion of \f(CW\*(C`EV_ATOMIC_T\*(C'\fR in the +embedding section below on what exactly this means). +.Sp +Note that, as with other watchers in libev, multiple events might get +compressed into a single callback invocation (another way to look at +this is that \f(CW\*(C`ev_async\*(C'\fR watchers are level-triggered: they are set on +\&\f(CW\*(C`ev_async_send\*(C'\fR, reset when the event loop detects that). +.Sp +This call incurs the overhead of at most one extra system call per event +loop iteration, if the event loop is blocked, and no syscall at all if +the event loop (or your program) is processing events. That means that +repeated calls are basically free (there is no need to avoid calls for +performance reasons) and that the overhead becomes smaller (typically +zero) under load. +.IP "bool = ev_async_pending (ev_async *)" 4 +.IX Item "bool = ev_async_pending (ev_async *)" +Returns a non-zero value when \f(CW\*(C`ev_async_send\*(C'\fR has been called on the +watcher but the event has not yet been processed (or even noted) by the +event loop. +.Sp +\&\f(CW\*(C`ev_async_send\*(C'\fR sets a flag in the watcher and wakes up the loop. When +the loop iterates next and checks for the watcher to have become active, +it will reset the flag again. \f(CW\*(C`ev_async_pending\*(C'\fR can be used to very +quickly check whether invoking the loop might be a good idea. +.Sp +Not that this does \fInot\fR check whether the watcher itself is pending, +only whether it has been requested to make this watcher pending: there +is a time window between the event loop checking and resetting the async +notification, and the callback being invoked. +.SH "OTHER FUNCTIONS" +.IX Header "OTHER FUNCTIONS" +There are some other functions of possible interest. Described. Here. Now. +.IP "ev_once (loop, int fd, int events, ev_tstamp timeout, callback)" 4 +.IX Item "ev_once (loop, int fd, int events, ev_tstamp timeout, callback)" +This function combines a simple timer and an I/O watcher, calls your +callback on whichever event happens first and automatically stops both +watchers. This is useful if you want to wait for a single event on an fd +or timeout without having to allocate/configure/start/stop/free one or +more watchers yourself. +.Sp +If \f(CW\*(C`fd\*(C'\fR is less than 0, then no I/O watcher will be started and the +\&\f(CW\*(C`events\*(C'\fR argument is being ignored. Otherwise, an \f(CW\*(C`ev_io\*(C'\fR watcher for +the given \f(CW\*(C`fd\*(C'\fR and \f(CW\*(C`events\*(C'\fR set will be created and started. +.Sp +If \f(CW\*(C`timeout\*(C'\fR is less than 0, then no timeout watcher will be +started. Otherwise an \f(CW\*(C`ev_timer\*(C'\fR watcher with after = \f(CW\*(C`timeout\*(C'\fR (and +repeat = 0) will be started. \f(CW0\fR is a valid timeout. +.Sp +The callback has the type \f(CW\*(C`void (*cb)(int revents, void *arg)\*(C'\fR and is +passed an \f(CW\*(C`revents\*(C'\fR set like normal event callbacks (a combination of +\&\f(CW\*(C`EV_ERROR\*(C'\fR, \f(CW\*(C`EV_READ\*(C'\fR, \f(CW\*(C`EV_WRITE\*(C'\fR or \f(CW\*(C`EV_TIMER\*(C'\fR) and the \f(CW\*(C`arg\*(C'\fR +value passed to \f(CW\*(C`ev_once\*(C'\fR. Note that it is possible to receive \fIboth\fR +a timeout and an io event at the same time \- you probably should give io +events precedence. +.Sp +Example: wait up to ten seconds for data to appear on \s-1STDIN_FILENO.\s0 +.Sp +.Vb 7 +\& static void stdin_ready (int revents, void *arg) +\& { +\& if (revents & EV_READ) +\& /* stdin might have data for us, joy! */; +\& else if (revents & EV_TIMER) +\& /* doh, nothing entered */; +\& } +\& +\& ev_once (STDIN_FILENO, EV_READ, 10., stdin_ready, 0); +.Ve +.IP "ev_feed_fd_event (loop, int fd, int revents)" 4 +.IX Item "ev_feed_fd_event (loop, int fd, int revents)" +Feed an event on the given fd, as if a file descriptor backend detected +the given events. +.IP "ev_feed_signal_event (loop, int signum)" 4 +.IX Item "ev_feed_signal_event (loop, int signum)" +Feed an event as if the given signal occurred. See also \f(CW\*(C`ev_feed_signal\*(C'\fR, +which is async-safe. +.SH "COMMON OR USEFUL IDIOMS (OR BOTH)" +.IX Header "COMMON OR USEFUL IDIOMS (OR BOTH)" +This section explains some common idioms that are not immediately +obvious. Note that examples are sprinkled over the whole manual, and this +section only contains stuff that wouldn't fit anywhere else. +.SS "\s-1ASSOCIATING CUSTOM DATA WITH A WATCHER\s0" +.IX Subsection "ASSOCIATING CUSTOM DATA WITH A WATCHER" +Each watcher has, by default, a \f(CW\*(C`void *data\*(C'\fR member that you can read +or modify at any time: libev will completely ignore it. This can be used +to associate arbitrary data with your watcher. If you need more data and +don't want to allocate memory separately and store a pointer to it in that +data member, you can also \*(L"subclass\*(R" the watcher type and provide your own +data: +.PP +.Vb 7 +\& struct my_io +\& { +\& ev_io io; +\& int otherfd; +\& void *somedata; +\& struct whatever *mostinteresting; +\& }; +\& +\& ... +\& struct my_io w; +\& ev_io_init (&w.io, my_cb, fd, EV_READ); +.Ve +.PP +And since your callback will be called with a pointer to the watcher, you +can cast it back to your own type: +.PP +.Vb 5 +\& static void my_cb (struct ev_loop *loop, ev_io *w_, int revents) +\& { +\& struct my_io *w = (struct my_io *)w_; +\& ... +\& } +.Ve +.PP +More interesting and less C\-conformant ways of casting your callback +function type instead have been omitted. +.SS "\s-1BUILDING YOUR OWN COMPOSITE WATCHERS\s0" +.IX Subsection "BUILDING YOUR OWN COMPOSITE WATCHERS" +Another common scenario is to use some data structure with multiple +embedded watchers, in effect creating your own watcher that combines +multiple libev event sources into one \*(L"super-watcher\*(R": +.PP +.Vb 6 +\& struct my_biggy +\& { +\& int some_data; +\& ev_timer t1; +\& ev_timer t2; +\& } +.Ve +.PP +In this case getting the pointer to \f(CW\*(C`my_biggy\*(C'\fR is a bit more +complicated: Either you store the address of your \f(CW\*(C`my_biggy\*(C'\fR struct in +the \f(CW\*(C`data\*(C'\fR member of the watcher (for woozies or \*(C+ coders), or you need +to use some pointer arithmetic using \f(CW\*(C`offsetof\*(C'\fR inside your watchers (for +real programmers): +.PP +.Vb 1 +\& #include +\& +\& static void +\& t1_cb (EV_P_ ev_timer *w, int revents) +\& { +\& struct my_biggy big = (struct my_biggy *) +\& (((char *)w) \- offsetof (struct my_biggy, t1)); +\& } +\& +\& static void +\& t2_cb (EV_P_ ev_timer *w, int revents) +\& { +\& struct my_biggy big = (struct my_biggy *) +\& (((char *)w) \- offsetof (struct my_biggy, t2)); +\& } +.Ve +.SS "\s-1AVOIDING FINISHING BEFORE RETURNING\s0" +.IX Subsection "AVOIDING FINISHING BEFORE RETURNING" +Often you have structures like this in event-based programs: +.PP +.Vb 4 +\& callback () +\& { +\& free (request); +\& } +\& +\& request = start_new_request (..., callback); +.Ve +.PP +The intent is to start some \*(L"lengthy\*(R" operation. The \f(CW\*(C`request\*(C'\fR could be +used to cancel the operation, or do other things with it. +.PP +It's not uncommon to have code paths in \f(CW\*(C`start_new_request\*(C'\fR that +immediately invoke the callback, for example, to report errors. Or you add +some caching layer that finds that it can skip the lengthy aspects of the +operation and simply invoke the callback with the result. +.PP +The problem here is that this will happen \fIbefore\fR \f(CW\*(C`start_new_request\*(C'\fR +has returned, so \f(CW\*(C`request\*(C'\fR is not set. +.PP +Even if you pass the request by some safer means to the callback, you +might want to do something to the request after starting it, such as +canceling it, which probably isn't working so well when the callback has +already been invoked. +.PP +A common way around all these issues is to make sure that +\&\f(CW\*(C`start_new_request\*(C'\fR \fIalways\fR returns before the callback is invoked. If +\&\f(CW\*(C`start_new_request\*(C'\fR immediately knows the result, it can artificially +delay invoking the callback by using a \f(CW\*(C`prepare\*(C'\fR or \f(CW\*(C`idle\*(C'\fR watcher for +example, or more sneakily, by reusing an existing (stopped) watcher and +pushing it into the pending queue: +.PP +.Vb 2 +\& ev_set_cb (watcher, callback); +\& ev_feed_event (EV_A_ watcher, 0); +.Ve +.PP +This way, \f(CW\*(C`start_new_request\*(C'\fR can safely return before the callback is +invoked, while not delaying callback invocation too much. +.SS "\s-1MODEL/NESTED EVENT LOOP INVOCATIONS AND EXIT CONDITIONS\s0" +.IX Subsection "MODEL/NESTED EVENT LOOP INVOCATIONS AND EXIT CONDITIONS" +Often (especially in \s-1GUI\s0 toolkits) there are places where you have +\&\fImodal\fR interaction, which is most easily implemented by recursively +invoking \f(CW\*(C`ev_run\*(C'\fR. +.PP +This brings the problem of exiting \- a callback might want to finish the +main \f(CW\*(C`ev_run\*(C'\fR call, but not the nested one (e.g. user clicked \*(L"Quit\*(R", but +a modal \*(L"Are you sure?\*(R" dialog is still waiting), or just the nested one +and not the main one (e.g. user clocked \*(L"Ok\*(R" in a modal dialog), or some +other combination: In these cases, a simple \f(CW\*(C`ev_break\*(C'\fR will not work. +.PP +The solution is to maintain \*(L"break this loop\*(R" variable for each \f(CW\*(C`ev_run\*(C'\fR +invocation, and use a loop around \f(CW\*(C`ev_run\*(C'\fR until the condition is +triggered, using \f(CW\*(C`EVRUN_ONCE\*(C'\fR: +.PP +.Vb 2 +\& // main loop +\& int exit_main_loop = 0; +\& +\& while (!exit_main_loop) +\& ev_run (EV_DEFAULT_ EVRUN_ONCE); +\& +\& // in a modal watcher +\& int exit_nested_loop = 0; +\& +\& while (!exit_nested_loop) +\& ev_run (EV_A_ EVRUN_ONCE); +.Ve +.PP +To exit from any of these loops, just set the corresponding exit variable: +.PP +.Vb 2 +\& // exit modal loop +\& exit_nested_loop = 1; +\& +\& // exit main program, after modal loop is finished +\& exit_main_loop = 1; +\& +\& // exit both +\& exit_main_loop = exit_nested_loop = 1; +.Ve +.SS "\s-1THREAD LOCKING EXAMPLE\s0" +.IX Subsection "THREAD LOCKING EXAMPLE" +Here is a fictitious example of how to run an event loop in a different +thread from where callbacks are being invoked and watchers are +created/added/removed. +.PP +For a real-world example, see the \f(CW\*(C`EV::Loop::Async\*(C'\fR perl module, +which uses exactly this technique (which is suited for many high-level +languages). +.PP +The example uses a pthread mutex to protect the loop data, a condition +variable to wait for callback invocations, an async watcher to notify the +event loop thread and an unspecified mechanism to wake up the main thread. +.PP +First, you need to associate some data with the event loop: +.PP +.Vb 6 +\& typedef struct { +\& mutex_t lock; /* global loop lock */ +\& ev_async async_w; +\& thread_t tid; +\& cond_t invoke_cv; +\& } userdata; +\& +\& void prepare_loop (EV_P) +\& { +\& // for simplicity, we use a static userdata struct. +\& static userdata u; +\& +\& ev_async_init (&u\->async_w, async_cb); +\& ev_async_start (EV_A_ &u\->async_w); +\& +\& pthread_mutex_init (&u\->lock, 0); +\& pthread_cond_init (&u\->invoke_cv, 0); +\& +\& // now associate this with the loop +\& ev_set_userdata (EV_A_ u); +\& ev_set_invoke_pending_cb (EV_A_ l_invoke); +\& ev_set_loop_release_cb (EV_A_ l_release, l_acquire); +\& +\& // then create the thread running ev_run +\& pthread_create (&u\->tid, 0, l_run, EV_A); +\& } +.Ve +.PP +The callback for the \f(CW\*(C`ev_async\*(C'\fR watcher does nothing: the watcher is used +solely to wake up the event loop so it takes notice of any new watchers +that might have been added: +.PP +.Vb 5 +\& static void +\& async_cb (EV_P_ ev_async *w, int revents) +\& { +\& // just used for the side effects +\& } +.Ve +.PP +The \f(CW\*(C`l_release\*(C'\fR and \f(CW\*(C`l_acquire\*(C'\fR callbacks simply unlock/lock the mutex +protecting the loop data, respectively. +.PP +.Vb 6 +\& static void +\& l_release (EV_P) +\& { +\& userdata *u = ev_userdata (EV_A); +\& pthread_mutex_unlock (&u\->lock); +\& } +\& +\& static void +\& l_acquire (EV_P) +\& { +\& userdata *u = ev_userdata (EV_A); +\& pthread_mutex_lock (&u\->lock); +\& } +.Ve +.PP +The event loop thread first acquires the mutex, and then jumps straight +into \f(CW\*(C`ev_run\*(C'\fR: +.PP +.Vb 4 +\& void * +\& l_run (void *thr_arg) +\& { +\& struct ev_loop *loop = (struct ev_loop *)thr_arg; +\& +\& l_acquire (EV_A); +\& pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, 0); +\& ev_run (EV_A_ 0); +\& l_release (EV_A); +\& +\& return 0; +\& } +.Ve +.PP +Instead of invoking all pending watchers, the \f(CW\*(C`l_invoke\*(C'\fR callback will +signal the main thread via some unspecified mechanism (signals? pipe +writes? \f(CW\*(C`Async::Interrupt\*(C'\fR?) and then waits until all pending watchers +have been called (in a while loop because a) spurious wakeups are possible +and b) skipping inter-thread-communication when there are no pending +watchers is very beneficial): +.PP +.Vb 4 +\& static void +\& l_invoke (EV_P) +\& { +\& userdata *u = ev_userdata (EV_A); +\& +\& while (ev_pending_count (EV_A)) +\& { +\& wake_up_other_thread_in_some_magic_or_not_so_magic_way (); +\& pthread_cond_wait (&u\->invoke_cv, &u\->lock); +\& } +\& } +.Ve +.PP +Now, whenever the main thread gets told to invoke pending watchers, it +will grab the lock, call \f(CW\*(C`ev_invoke_pending\*(C'\fR and then signal the loop +thread to continue: +.PP +.Vb 4 +\& static void +\& real_invoke_pending (EV_P) +\& { +\& userdata *u = ev_userdata (EV_A); +\& +\& pthread_mutex_lock (&u\->lock); +\& ev_invoke_pending (EV_A); +\& pthread_cond_signal (&u\->invoke_cv); +\& pthread_mutex_unlock (&u\->lock); +\& } +.Ve +.PP +Whenever you want to start/stop a watcher or do other modifications to an +event loop, you will now have to lock: +.PP +.Vb 2 +\& ev_timer timeout_watcher; +\& userdata *u = ev_userdata (EV_A); +\& +\& ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.); +\& +\& pthread_mutex_lock (&u\->lock); +\& ev_timer_start (EV_A_ &timeout_watcher); +\& ev_async_send (EV_A_ &u\->async_w); +\& pthread_mutex_unlock (&u\->lock); +.Ve +.PP +Note that sending the \f(CW\*(C`ev_async\*(C'\fR watcher is required because otherwise +an event loop currently blocking in the kernel will have no knowledge +about the newly added timer. By waking up the loop it will pick up any new +watchers in the next event loop iteration. +.SS "\s-1THREADS, COROUTINES, CONTINUATIONS, QUEUES... INSTEAD OF CALLBACKS\s0" +.IX Subsection "THREADS, COROUTINES, CONTINUATIONS, QUEUES... INSTEAD OF CALLBACKS" +While the overhead of a callback that e.g. schedules a thread is small, it +is still an overhead. If you embed libev, and your main usage is with some +kind of threads or coroutines, you might want to customise libev so that +doesn't need callbacks anymore. +.PP +Imagine you have coroutines that you can switch to using a function +\&\f(CW\*(C`switch_to (coro)\*(C'\fR, that libev runs in a coroutine called \f(CW\*(C`libev_coro\*(C'\fR +and that due to some magic, the currently active coroutine is stored in a +global called \f(CW\*(C`current_coro\*(C'\fR. Then you can build your own \*(L"wait for libev +event\*(R" primitive by changing \f(CW\*(C`EV_CB_DECLARE\*(C'\fR and \f(CW\*(C`EV_CB_INVOKE\*(C'\fR (note +the differing \f(CW\*(C`;\*(C'\fR conventions): +.PP +.Vb 2 +\& #define EV_CB_DECLARE(type) struct my_coro *cb; +\& #define EV_CB_INVOKE(watcher) switch_to ((watcher)\->cb) +.Ve +.PP +That means instead of having a C callback function, you store the +coroutine to switch to in each watcher, and instead of having libev call +your callback, you instead have it switch to that coroutine. +.PP +A coroutine might now wait for an event with a function called +\&\f(CW\*(C`wait_for_event\*(C'\fR. (the watcher needs to be started, as always, but it doesn't +matter when, or whether the watcher is active or not when this function is +called): +.PP +.Vb 6 +\& void +\& wait_for_event (ev_watcher *w) +\& { +\& ev_set_cb (w, current_coro); +\& switch_to (libev_coro); +\& } +.Ve +.PP +That basically suspends the coroutine inside \f(CW\*(C`wait_for_event\*(C'\fR and +continues the libev coroutine, which, when appropriate, switches back to +this or any other coroutine. +.PP +You can do similar tricks if you have, say, threads with an event queue \- +instead of storing a coroutine, you store the queue object and instead of +switching to a coroutine, you push the watcher onto the queue and notify +any waiters. +.PP +To embed libev, see \*(L"\s-1EMBEDDING\*(R"\s0, but in short, it's easiest to create two +files, \fImy_ev.h\fR and \fImy_ev.c\fR that include the respective libev files: +.PP +.Vb 4 +\& // my_ev.h +\& #define EV_CB_DECLARE(type) struct my_coro *cb; +\& #define EV_CB_INVOKE(watcher) switch_to ((watcher)\->cb) +\& #include "../libev/ev.h" +\& +\& // my_ev.c +\& #define EV_H "my_ev.h" +\& #include "../libev/ev.c" +.Ve +.PP +And then use \fImy_ev.h\fR when you would normally use \fIev.h\fR, and compile +\&\fImy_ev.c\fR into your project. When properly specifying include paths, you +can even use \fIev.h\fR as header file name directly. +.SH "LIBEVENT EMULATION" +.IX Header "LIBEVENT EMULATION" +Libev offers a compatibility emulation layer for libevent. It cannot +emulate the internals of libevent, so here are some usage hints: +.IP "\(bu" 4 +Only the libevent\-1.4.1\-beta \s-1API\s0 is being emulated. +.Sp +This was the newest libevent version available when libev was implemented, +and is still mostly unchanged in 2010. +.IP "\(bu" 4 +Use it by including , as usual. +.IP "\(bu" 4 +The following members are fully supported: ev_base, ev_callback, +ev_arg, ev_fd, ev_res, ev_events. +.IP "\(bu" 4 +Avoid using ev_flags and the EVLIST_*\-macros, while it is +maintained by libev, it does not work exactly the same way as in libevent (consider +it a private \s-1API\s0). +.IP "\(bu" 4 +Priorities are not currently supported. Initialising priorities +will fail and all watchers will have the same priority, even though there +is an ev_pri field. +.IP "\(bu" 4 +In libevent, the last base created gets the signals, in libev, the +base that registered the signal gets the signals. +.IP "\(bu" 4 +Other members are not supported. +.IP "\(bu" 4 +The libev emulation is \fInot\fR \s-1ABI\s0 compatible to libevent, you need +to use the libev header file and library. +.SH "\*(C+ SUPPORT" +.IX Header " SUPPORT" +.SS "C \s-1API\s0" +.IX Subsection "C API" +The normal C \s-1API\s0 should work fine when used from \*(C+: both ev.h and the +libev sources can be compiled as \*(C+. Therefore, code that uses the C \s-1API\s0 +will work fine. +.PP +Proper exception specifications might have to be added to callbacks passed +to libev: exceptions may be thrown only from watcher callbacks, all +other callbacks (allocator, syserr, loop acquire/release and periodic +reschedule callbacks) must not throw exceptions, and might need a \f(CW\*(C`throw +()\*(C'\fR specification. If you have code that needs to be compiled as both C +and \*(C+ you can use the \f(CW\*(C`EV_THROW\*(C'\fR macro for this: +.PP +.Vb 6 +\& static void +\& fatal_error (const char *msg) EV_THROW +\& { +\& perror (msg); +\& abort (); +\& } +\& +\& ... +\& ev_set_syserr_cb (fatal_error); +.Ve +.PP +The only \s-1API\s0 functions that can currently throw exceptions are \f(CW\*(C`ev_run\*(C'\fR, +\&\f(CW\*(C`ev_invoke\*(C'\fR, \f(CW\*(C`ev_invoke_pending\*(C'\fR and \f(CW\*(C`ev_loop_destroy\*(C'\fR (the latter +because it runs cleanup watchers). +.PP +Throwing exceptions in watcher callbacks is only supported if libev itself +is compiled with a \*(C+ compiler or your C and \*(C+ environments allow +throwing exceptions through C libraries (most do). +.SS "\*(C+ \s-1API\s0" +.IX Subsection " API" +Libev comes with some simplistic wrapper classes for \*(C+ that mainly allow +you to use some convenience methods to start/stop watchers and also change +the callback model to a model using method callbacks on objects. +.PP +To use it, +.PP +.Vb 1 +\& #include +.Ve +.PP +This automatically includes \fIev.h\fR and puts all of its definitions (many +of them macros) into the global namespace. All \*(C+ specific things are +put into the \f(CW\*(C`ev\*(C'\fR namespace. It should support all the same embedding +options as \fIev.h\fR, most notably \f(CW\*(C`EV_MULTIPLICITY\*(C'\fR. +.PP +Care has been taken to keep the overhead low. The only data member the \*(C+ +classes add (compared to plain C\-style watchers) is the event loop pointer +that the watcher is associated with (or no additional members at all if +you disable \f(CW\*(C`EV_MULTIPLICITY\*(C'\fR when embedding libev). +.PP +Currently, functions, static and non-static member functions and classes +with \f(CW\*(C`operator ()\*(C'\fR can be used as callbacks. Other types should be easy +to add as long as they only need one additional pointer for context. If +you need support for other types of functors please contact the author +(preferably after implementing it). +.PP +For all this to work, your \*(C+ compiler either has to use the same calling +conventions as your C compiler (for static member functions), or you have +to embed libev and compile libev itself as \*(C+. +.PP +Here is a list of things available in the \f(CW\*(C`ev\*(C'\fR namespace: +.ie n .IP """ev::READ"", ""ev::WRITE"" etc." 4 +.el .IP "\f(CWev::READ\fR, \f(CWev::WRITE\fR etc." 4 +.IX Item "ev::READ, ev::WRITE etc." +These are just enum values with the same values as the \f(CW\*(C`EV_READ\*(C'\fR etc. +macros from \fIev.h\fR. +.ie n .IP """ev::tstamp"", ""ev::now""" 4 +.el .IP "\f(CWev::tstamp\fR, \f(CWev::now\fR" 4 +.IX Item "ev::tstamp, ev::now" +Aliases to the same types/functions as with the \f(CW\*(C`ev_\*(C'\fR prefix. +.ie n .IP """ev::io"", ""ev::timer"", ""ev::periodic"", ""ev::idle"", ""ev::sig"" etc." 4 +.el .IP "\f(CWev::io\fR, \f(CWev::timer\fR, \f(CWev::periodic\fR, \f(CWev::idle\fR, \f(CWev::sig\fR etc." 4 +.IX Item "ev::io, ev::timer, ev::periodic, ev::idle, ev::sig etc." +For each \f(CW\*(C`ev_TYPE\*(C'\fR watcher in \fIev.h\fR there is a corresponding class of +the same name in the \f(CW\*(C`ev\*(C'\fR namespace, with the exception of \f(CW\*(C`ev_signal\*(C'\fR +which is called \f(CW\*(C`ev::sig\*(C'\fR to avoid clashes with the \f(CW\*(C`signal\*(C'\fR macro +defined by many implementations. +.Sp +All of those classes have these methods: +.RS 4 +.IP "ev::TYPE::TYPE ()" 4 +.IX Item "ev::TYPE::TYPE ()" +.PD 0 +.IP "ev::TYPE::TYPE (loop)" 4 +.IX Item "ev::TYPE::TYPE (loop)" +.IP "ev::TYPE::~TYPE" 4 +.IX Item "ev::TYPE::~TYPE" +.PD +The constructor (optionally) takes an event loop to associate the watcher +with. If it is omitted, it will use \f(CW\*(C`EV_DEFAULT\*(C'\fR. +.Sp +The constructor calls \f(CW\*(C`ev_init\*(C'\fR for you, which means you have to call the +\&\f(CW\*(C`set\*(C'\fR method before starting it. +.Sp +It will not set a callback, however: You have to call the templated \f(CW\*(C`set\*(C'\fR +method to set a callback before you can start the watcher. +.Sp +(The reason why you have to use a method is a limitation in \*(C+ which does +not allow explicit template arguments for constructors). +.Sp +The destructor automatically stops the watcher if it is active. +.IP "w\->set (object *)" 4 +.IX Item "w->set (object *)" +This method sets the callback method to call. The method has to have a +signature of \f(CW\*(C`void (*)(ev_TYPE &, int)\*(C'\fR, it receives the watcher as +first argument and the \f(CW\*(C`revents\*(C'\fR as second. The object must be given as +parameter and is stored in the \f(CW\*(C`data\*(C'\fR member of the watcher. +.Sp +This method synthesizes efficient thunking code to call your method from +the C callback that libev requires. If your compiler can inline your +callback (i.e. it is visible to it at the place of the \f(CW\*(C`set\*(C'\fR call and +your compiler is good :), then the method will be fully inlined into the +thunking function, making it as fast as a direct C callback. +.Sp +Example: simple class declaration and watcher initialisation +.Sp +.Vb 4 +\& struct myclass +\& { +\& void io_cb (ev::io &w, int revents) { } +\& } +\& +\& myclass obj; +\& ev::io iow; +\& iow.set (&obj); +.Ve +.IP "w\->set (object *)" 4 +.IX Item "w->set (object *)" +This is a variation of a method callback \- leaving out the method to call +will default the method to \f(CW\*(C`operator ()\*(C'\fR, which makes it possible to use +functor objects without having to manually specify the \f(CW\*(C`operator ()\*(C'\fR all +the time. Incidentally, you can then also leave out the template argument +list. +.Sp +The \f(CW\*(C`operator ()\*(C'\fR method prototype must be \f(CW\*(C`void operator ()(watcher &w, +int revents)\*(C'\fR. +.Sp +See the method\-\f(CW\*(C`set\*(C'\fR above for more details. +.Sp +Example: use a functor object as callback. +.Sp +.Vb 7 +\& struct myfunctor +\& { +\& void operator() (ev::io &w, int revents) +\& { +\& ... +\& } +\& } +\& +\& myfunctor f; +\& +\& ev::io w; +\& w.set (&f); +.Ve +.IP "w\->set (void *data = 0)" 4 +.IX Item "w->set (void *data = 0)" +Also sets a callback, but uses a static method or plain function as +callback. The optional \f(CW\*(C`data\*(C'\fR argument will be stored in the watcher's +\&\f(CW\*(C`data\*(C'\fR member and is free for you to use. +.Sp +The prototype of the \f(CW\*(C`function\*(C'\fR must be \f(CW\*(C`void (*)(ev::TYPE &w, int)\*(C'\fR. +.Sp +See the method\-\f(CW\*(C`set\*(C'\fR above for more details. +.Sp +Example: Use a plain function as callback. +.Sp +.Vb 2 +\& static void io_cb (ev::io &w, int revents) { } +\& iow.set (); +.Ve +.IP "w\->set (loop)" 4 +.IX Item "w->set (loop)" +Associates a different \f(CW\*(C`struct ev_loop\*(C'\fR with this watcher. You can only +do this when the watcher is inactive (and not pending either). +.IP "w\->set ([arguments])" 4 +.IX Item "w->set ([arguments])" +Basically the same as \f(CW\*(C`ev_TYPE_set\*(C'\fR (except for \f(CW\*(C`ev::embed\*(C'\fR watchers>), +with the same arguments. Either this method or a suitable start method +must be called at least once. Unlike the C counterpart, an active watcher +gets automatically stopped and restarted when reconfiguring it with this +method. +.Sp +For \f(CW\*(C`ev::embed\*(C'\fR watchers this method is called \f(CW\*(C`set_embed\*(C'\fR, to avoid +clashing with the \f(CW\*(C`set (loop)\*(C'\fR method. +.IP "w\->start ()" 4 +.IX Item "w->start ()" +Starts the watcher. Note that there is no \f(CW\*(C`loop\*(C'\fR argument, as the +constructor already stores the event loop. +.IP "w\->start ([arguments])" 4 +.IX Item "w->start ([arguments])" +Instead of calling \f(CW\*(C`set\*(C'\fR and \f(CW\*(C`start\*(C'\fR methods separately, it is often +convenient to wrap them in one call. Uses the same type of arguments as +the configure \f(CW\*(C`set\*(C'\fR method of the watcher. +.IP "w\->stop ()" 4 +.IX Item "w->stop ()" +Stops the watcher if it is active. Again, no \f(CW\*(C`loop\*(C'\fR argument. +.ie n .IP "w\->again () (""ev::timer"", ""ev::periodic"" only)" 4 +.el .IP "w\->again () (\f(CWev::timer\fR, \f(CWev::periodic\fR only)" 4 +.IX Item "w->again () (ev::timer, ev::periodic only)" +For \f(CW\*(C`ev::timer\*(C'\fR and \f(CW\*(C`ev::periodic\*(C'\fR, this invokes the corresponding +\&\f(CW\*(C`ev_TYPE_again\*(C'\fR function. +.ie n .IP "w\->sweep () (""ev::embed"" only)" 4 +.el .IP "w\->sweep () (\f(CWev::embed\fR only)" 4 +.IX Item "w->sweep () (ev::embed only)" +Invokes \f(CW\*(C`ev_embed_sweep\*(C'\fR. +.ie n .IP "w\->update () (""ev::stat"" only)" 4 +.el .IP "w\->update () (\f(CWev::stat\fR only)" 4 +.IX Item "w->update () (ev::stat only)" +Invokes \f(CW\*(C`ev_stat_stat\*(C'\fR. +.RE +.RS 4 +.RE +.PP +Example: Define a class with two I/O and idle watchers, start the I/O +watchers in the constructor. +.PP +.Vb 5 +\& class myclass +\& { +\& ev::io io ; void io_cb (ev::io &w, int revents); +\& ev::io io2 ; void io2_cb (ev::io &w, int revents); +\& ev::idle idle; void idle_cb (ev::idle &w, int revents); +\& +\& myclass (int fd) +\& { +\& io .set (this); +\& io2 .set (this); +\& idle.set (this); +\& +\& io.set (fd, ev::WRITE); // configure the watcher +\& io.start (); // start it whenever convenient +\& +\& io2.start (fd, ev::READ); // set + start in one call +\& } +\& }; +.Ve +.SH "OTHER LANGUAGE BINDINGS" +.IX Header "OTHER LANGUAGE BINDINGS" +Libev does not offer other language bindings itself, but bindings for a +number of languages exist in the form of third-party packages. If you know +any interesting language binding in addition to the ones listed here, drop +me a note. +.IP "Perl" 4 +.IX Item "Perl" +The \s-1EV\s0 module implements the full libev \s-1API\s0 and is actually used to test +libev. \s-1EV\s0 is developed together with libev. Apart from the \s-1EV\s0 core module, +there are additional modules that implement libev-compatible interfaces +to \f(CW\*(C`libadns\*(C'\fR (\f(CW\*(C`EV::ADNS\*(C'\fR, but \f(CW\*(C`AnyEvent::DNS\*(C'\fR is preferred nowadays), +\&\f(CW\*(C`Net::SNMP\*(C'\fR (\f(CW\*(C`Net::SNMP::EV\*(C'\fR) and the \f(CW\*(C`libglib\*(C'\fR event core (\f(CW\*(C`Glib::EV\*(C'\fR +and \f(CW\*(C`EV::Glib\*(C'\fR). +.Sp +It can be found and installed via \s-1CPAN,\s0 its homepage is at +. +.IP "Python" 4 +.IX Item "Python" +Python bindings can be found at . It +seems to be quite complete and well-documented. +.IP "Ruby" 4 +.IX Item "Ruby" +Tony Arcieri has written a ruby extension that offers access to a subset +of the libev \s-1API\s0 and adds file handle abstractions, asynchronous \s-1DNS\s0 and +more on top of it. It can be found via gem servers. Its homepage is at +. +.Sp +Roger Pack reports that using the link order \f(CW\*(C`\-lws2_32 \-lmsvcrt\-ruby\-190\*(C'\fR +makes rev work even on mingw. +.IP "Haskell" 4 +.IX Item "Haskell" +A haskell binding to libev is available at +. +.IP "D" 4 +.IX Item "D" +Leandro Lucarella has written a D language binding (\fIev.d\fR) for libev, to +be found at . +.IP "Ocaml" 4 +.IX Item "Ocaml" +Erkki Seppala has written Ocaml bindings for libev, to be found at +. +.IP "Lua" 4 +.IX Item "Lua" +Brian Maher has written a partial interface to libev for lua (at the +time of this writing, only \f(CW\*(C`ev_io\*(C'\fR and \f(CW\*(C`ev_timer\*(C'\fR), to be found at +. +.IP "Javascript" 4 +.IX Item "Javascript" +Node.js () uses libev as the underlying event library. +.IP "Others" 4 +.IX Item "Others" +There are others, and I stopped counting. +.SH "MACRO MAGIC" +.IX Header "MACRO MAGIC" +Libev can be compiled with a variety of options, the most fundamental +of which is \f(CW\*(C`EV_MULTIPLICITY\*(C'\fR. This option determines whether (most) +functions and callbacks have an initial \f(CW\*(C`struct ev_loop *\*(C'\fR argument. +.PP +To make it easier to write programs that cope with either variant, the +following macros are defined: +.ie n .IP """EV_A"", ""EV_A_""" 4 +.el .IP "\f(CWEV_A\fR, \f(CWEV_A_\fR" 4 +.IX Item "EV_A, EV_A_" +This provides the loop \fIargument\fR for functions, if one is required (\*(L"ev +loop argument\*(R"). The \f(CW\*(C`EV_A\*(C'\fR form is used when this is the sole argument, +\&\f(CW\*(C`EV_A_\*(C'\fR is used when other arguments are following. Example: +.Sp +.Vb 3 +\& ev_unref (EV_A); +\& ev_timer_add (EV_A_ watcher); +\& ev_run (EV_A_ 0); +.Ve +.Sp +It assumes the variable \f(CW\*(C`loop\*(C'\fR of type \f(CW\*(C`struct ev_loop *\*(C'\fR is in scope, +which is often provided by the following macro. +.ie n .IP """EV_P"", ""EV_P_""" 4 +.el .IP "\f(CWEV_P\fR, \f(CWEV_P_\fR" 4 +.IX Item "EV_P, EV_P_" +This provides the loop \fIparameter\fR for functions, if one is required (\*(L"ev +loop parameter\*(R"). The \f(CW\*(C`EV_P\*(C'\fR form is used when this is the sole parameter, +\&\f(CW\*(C`EV_P_\*(C'\fR is used when other parameters are following. Example: +.Sp +.Vb 2 +\& // this is how ev_unref is being declared +\& static void ev_unref (EV_P); +\& +\& // this is how you can declare your typical callback +\& static void cb (EV_P_ ev_timer *w, int revents) +.Ve +.Sp +It declares a parameter \f(CW\*(C`loop\*(C'\fR of type \f(CW\*(C`struct ev_loop *\*(C'\fR, quite +suitable for use with \f(CW\*(C`EV_A\*(C'\fR. +.ie n .IP """EV_DEFAULT"", ""EV_DEFAULT_""" 4 +.el .IP "\f(CWEV_DEFAULT\fR, \f(CWEV_DEFAULT_\fR" 4 +.IX Item "EV_DEFAULT, EV_DEFAULT_" +Similar to the other two macros, this gives you the value of the default +loop, if multiple loops are supported (\*(L"ev loop default\*(R"). The default loop +will be initialised if it isn't already initialised. +.Sp +For non-multiplicity builds, these macros do nothing, so you always have +to initialise the loop somewhere. +.ie n .IP """EV_DEFAULT_UC"", ""EV_DEFAULT_UC_""" 4 +.el .IP "\f(CWEV_DEFAULT_UC\fR, \f(CWEV_DEFAULT_UC_\fR" 4 +.IX Item "EV_DEFAULT_UC, EV_DEFAULT_UC_" +Usage identical to \f(CW\*(C`EV_DEFAULT\*(C'\fR and \f(CW\*(C`EV_DEFAULT_\*(C'\fR, but requires that the +default loop has been initialised (\f(CW\*(C`UC\*(C'\fR == unchecked). Their behaviour +is undefined when the default loop has not been initialised by a previous +execution of \f(CW\*(C`EV_DEFAULT\*(C'\fR, \f(CW\*(C`EV_DEFAULT_\*(C'\fR or \f(CW\*(C`ev_default_init (...)\*(C'\fR. +.Sp +It is often prudent to use \f(CW\*(C`EV_DEFAULT\*(C'\fR when initialising the first +watcher in a function but use \f(CW\*(C`EV_DEFAULT_UC\*(C'\fR afterwards. +.PP +Example: Declare and initialise a check watcher, utilising the above +macros so it will work regardless of whether multiple loops are supported +or not. +.PP +.Vb 5 +\& static void +\& check_cb (EV_P_ ev_timer *w, int revents) +\& { +\& ev_check_stop (EV_A_ w); +\& } +\& +\& ev_check check; +\& ev_check_init (&check, check_cb); +\& ev_check_start (EV_DEFAULT_ &check); +\& ev_run (EV_DEFAULT_ 0); +.Ve +.SH "EMBEDDING" +.IX Header "EMBEDDING" +Libev can (and often is) directly embedded into host +applications. Examples of applications that embed it include the Deliantra +Game Server, the \s-1EV\s0 perl module, the \s-1GNU\s0 Virtual Private Ethernet (gvpe) +and rxvt-unicode. +.PP +The goal is to enable you to just copy the necessary files into your +source directory without having to change even a single line in them, so +you can easily upgrade by simply copying (or having a checked-out copy of +libev somewhere in your source tree). +.SS "\s-1FILESETS\s0" +.IX Subsection "FILESETS" +Depending on what features you need you need to include one or more sets of files +in your application. +.PP +\fI\s-1CORE EVENT LOOP\s0\fR +.IX Subsection "CORE EVENT LOOP" +.PP +To include only the libev core (all the \f(CW\*(C`ev_*\*(C'\fR functions), with manual +configuration (no autoconf): +.PP +.Vb 2 +\& #define EV_STANDALONE 1 +\& #include "ev.c" +.Ve +.PP +This will automatically include \fIev.h\fR, too, and should be done in a +single C source file only to provide the function implementations. To use +it, do the same for \fIev.h\fR in all files wishing to use this \s-1API \s0(best +done by writing a wrapper around \fIev.h\fR that you can include instead and +where you can put other configuration options): +.PP +.Vb 2 +\& #define EV_STANDALONE 1 +\& #include "ev.h" +.Ve +.PP +Both header files and implementation files can be compiled with a \*(C+ +compiler (at least, that's a stated goal, and breakage will be treated +as a bug). +.PP +You need the following files in your source tree, or in a directory +in your include path (e.g. in libev/ when using \-Ilibev): +.PP +.Vb 4 +\& ev.h +\& ev.c +\& ev_vars.h +\& ev_wrap.h +\& +\& ev_win32.c required on win32 platforms only +\& +\& ev_select.c only when select backend is enabled (which is enabled by default) +\& ev_poll.c only when poll backend is enabled (disabled by default) +\& ev_epoll.c only when the epoll backend is enabled (disabled by default) +\& ev_kqueue.c only when the kqueue backend is enabled (disabled by default) +\& ev_port.c only when the solaris port backend is enabled (disabled by default) +.Ve +.PP +\&\fIev.c\fR includes the backend files directly when enabled, so you only need +to compile this single file. +.PP +\fI\s-1LIBEVENT COMPATIBILITY API\s0\fR +.IX Subsection "LIBEVENT COMPATIBILITY API" +.PP +To include the libevent compatibility \s-1API,\s0 also include: +.PP +.Vb 1 +\& #include "event.c" +.Ve +.PP +in the file including \fIev.c\fR, and: +.PP +.Vb 1 +\& #include "event.h" +.Ve +.PP +in the files that want to use the libevent \s-1API.\s0 This also includes \fIev.h\fR. +.PP +You need the following additional files for this: +.PP +.Vb 2 +\& event.h +\& event.c +.Ve +.PP +\fI\s-1AUTOCONF SUPPORT\s0\fR +.IX Subsection "AUTOCONF SUPPORT" +.PP +Instead of using \f(CW\*(C`EV_STANDALONE=1\*(C'\fR and providing your configuration in +whatever way you want, you can also \f(CW\*(C`m4_include([libev.m4])\*(C'\fR in your +\&\fIconfigure.ac\fR and leave \f(CW\*(C`EV_STANDALONE\*(C'\fR undefined. \fIev.c\fR will then +include \fIconfig.h\fR and configure itself accordingly. +.PP +For this of course you need the m4 file: +.PP +.Vb 1 +\& libev.m4 +.Ve +.SS "\s-1PREPROCESSOR SYMBOLS/MACROS\s0" +.IX Subsection "PREPROCESSOR SYMBOLS/MACROS" +Libev can be configured via a variety of preprocessor symbols you have to +define before including (or compiling) any of its files. The default in +the absence of autoconf is documented for every option. +.PP +Symbols marked with \*(L"(h)\*(R" do not change the \s-1ABI,\s0 and can have different +values when compiling libev vs. including \fIev.h\fR, so it is permissible +to redefine them before including \fIev.h\fR without breaking compatibility +to a compiled library. All other symbols change the \s-1ABI,\s0 which means all +users of libev and the libev code itself must be compiled with compatible +settings. +.IP "\s-1EV_COMPAT3 \s0(h)" 4 +.IX Item "EV_COMPAT3 (h)" +Backwards compatibility is a major concern for libev. This is why this +release of libev comes with wrappers for the functions and symbols that +have been renamed between libev version 3 and 4. +.Sp +You can disable these wrappers (to test compatibility with future +versions) by defining \f(CW\*(C`EV_COMPAT3\*(C'\fR to \f(CW0\fR when compiling your +sources. This has the additional advantage that you can drop the \f(CW\*(C`struct\*(C'\fR +from \f(CW\*(C`struct ev_loop\*(C'\fR declarations, as libev will provide an \f(CW\*(C`ev_loop\*(C'\fR +typedef in that case. +.Sp +In some future version, the default for \f(CW\*(C`EV_COMPAT3\*(C'\fR will become \f(CW0\fR, +and in some even more future version the compatibility code will be +removed completely. +.IP "\s-1EV_STANDALONE \s0(h)" 4 +.IX Item "EV_STANDALONE (h)" +Must always be \f(CW1\fR if you do not use autoconf configuration, which +keeps libev from including \fIconfig.h\fR, and it also defines dummy +implementations for some libevent functions (such as logging, which is not +supported). It will also not define any of the structs usually found in +\&\fIevent.h\fR that are not directly supported by the libev core alone. +.Sp +In standalone mode, libev will still try to automatically deduce the +configuration, but has to be more conservative. +.IP "\s-1EV_USE_FLOOR\s0" 4 +.IX Item "EV_USE_FLOOR" +If defined to be \f(CW1\fR, libev will use the \f(CW\*(C`floor ()\*(C'\fR function for its +periodic reschedule calculations, otherwise libev will fall back on a +portable (slower) implementation. If you enable this, you usually have to +link against libm or something equivalent. Enabling this when the \f(CW\*(C`floor\*(C'\fR +function is not available will fail, so the safe default is to not enable +this. +.IP "\s-1EV_USE_MONOTONIC\s0" 4 +.IX Item "EV_USE_MONOTONIC" +If defined to be \f(CW1\fR, libev will try to detect the availability of the +monotonic clock option at both compile time and runtime. Otherwise no +use of the monotonic clock option will be attempted. If you enable this, +you usually have to link against librt or something similar. Enabling it +when the functionality isn't available is safe, though, although you have +to make sure you link against any libraries where the \f(CW\*(C`clock_gettime\*(C'\fR +function is hiding in (often \fI\-lrt\fR). See also \f(CW\*(C`EV_USE_CLOCK_SYSCALL\*(C'\fR. +.IP "\s-1EV_USE_REALTIME\s0" 4 +.IX Item "EV_USE_REALTIME" +If defined to be \f(CW1\fR, libev will try to detect the availability of the +real-time clock option at compile time (and assume its availability +at runtime if successful). Otherwise no use of the real-time clock +option will be attempted. This effectively replaces \f(CW\*(C`gettimeofday\*(C'\fR +by \f(CW\*(C`clock_get (CLOCK_REALTIME, ...)\*(C'\fR and will not normally affect +correctness. See the note about libraries in the description of +\&\f(CW\*(C`EV_USE_MONOTONIC\*(C'\fR, though. Defaults to the opposite value of +\&\f(CW\*(C`EV_USE_CLOCK_SYSCALL\*(C'\fR. +.IP "\s-1EV_USE_CLOCK_SYSCALL\s0" 4 +.IX Item "EV_USE_CLOCK_SYSCALL" +If defined to be \f(CW1\fR, libev will try to use a direct syscall instead +of calling the system-provided \f(CW\*(C`clock_gettime\*(C'\fR function. This option +exists because on GNU/Linux, \f(CW\*(C`clock_gettime\*(C'\fR is in \f(CW\*(C`librt\*(C'\fR, but \f(CW\*(C`librt\*(C'\fR +unconditionally pulls in \f(CW\*(C`libpthread\*(C'\fR, slowing down single-threaded +programs needlessly. Using a direct syscall is slightly slower (in +theory), because no optimised vdso implementation can be used, but avoids +the pthread dependency. Defaults to \f(CW1\fR on GNU/Linux with glibc 2.x or +higher, as it simplifies linking (no need for \f(CW\*(C`\-lrt\*(C'\fR). +.IP "\s-1EV_USE_NANOSLEEP\s0" 4 +.IX Item "EV_USE_NANOSLEEP" +If defined to be \f(CW1\fR, libev will assume that \f(CW\*(C`nanosleep ()\*(C'\fR is available +and will use it for delays. Otherwise it will use \f(CW\*(C`select ()\*(C'\fR. +.IP "\s-1EV_USE_EVENTFD\s0" 4 +.IX Item "EV_USE_EVENTFD" +If defined to be \f(CW1\fR, then libev will assume that \f(CW\*(C`eventfd ()\*(C'\fR is +available and will probe for kernel support at runtime. This will improve +\&\f(CW\*(C`ev_signal\*(C'\fR and \f(CW\*(C`ev_async\*(C'\fR performance and reduce resource consumption. +If undefined, it will be enabled if the headers indicate GNU/Linux + Glibc +2.7 or newer, otherwise disabled. +.IP "\s-1EV_USE_SELECT\s0" 4 +.IX Item "EV_USE_SELECT" +If undefined or defined to be \f(CW1\fR, libev will compile in support for the +\&\f(CW\*(C`select\*(C'\fR(2) backend. No attempt at auto-detection will be done: if no +other method takes over, select will be it. Otherwise the select backend +will not be compiled in. +.IP "\s-1EV_SELECT_USE_FD_SET\s0" 4 +.IX Item "EV_SELECT_USE_FD_SET" +If defined to \f(CW1\fR, then the select backend will use the system \f(CW\*(C`fd_set\*(C'\fR +structure. This is useful if libev doesn't compile due to a missing +\&\f(CW\*(C`NFDBITS\*(C'\fR or \f(CW\*(C`fd_mask\*(C'\fR definition or it mis-guesses the bitset layout +on exotic systems. This usually limits the range of file descriptors to +some low limit such as 1024 or might have other limitations (winsocket +only allows 64 sockets). The \f(CW\*(C`FD_SETSIZE\*(C'\fR macro, set before compilation, +configures the maximum size of the \f(CW\*(C`fd_set\*(C'\fR. +.IP "\s-1EV_SELECT_IS_WINSOCKET\s0" 4 +.IX Item "EV_SELECT_IS_WINSOCKET" +When defined to \f(CW1\fR, the select backend will assume that +select/socket/connect etc. don't understand file descriptors but +wants osf handles on win32 (this is the case when the select to +be used is the winsock select). This means that it will call +\&\f(CW\*(C`_get_osfhandle\*(C'\fR on the fd to convert it to an \s-1OS\s0 handle. Otherwise, +it is assumed that all these functions actually work on fds, even +on win32. Should not be defined on non\-win32 platforms. +.IP "\s-1EV_FD_TO_WIN32_HANDLE\s0(fd)" 4 +.IX Item "EV_FD_TO_WIN32_HANDLE(fd)" +If \f(CW\*(C`EV_SELECT_IS_WINSOCKET\*(C'\fR is enabled, then libev needs a way to map +file descriptors to socket handles. When not defining this symbol (the +default), then libev will call \f(CW\*(C`_get_osfhandle\*(C'\fR, which is usually +correct. In some cases, programs use their own file descriptor management, +in which case they can provide this function to map fds to socket handles. +.IP "\s-1EV_WIN32_HANDLE_TO_FD\s0(handle)" 4 +.IX Item "EV_WIN32_HANDLE_TO_FD(handle)" +If \f(CW\*(C`EV_SELECT_IS_WINSOCKET\*(C'\fR then libev maps handles to file descriptors +using the standard \f(CW\*(C`_open_osfhandle\*(C'\fR function. For programs implementing +their own fd to handle mapping, overwriting this function makes it easier +to do so. This can be done by defining this macro to an appropriate value. +.IP "\s-1EV_WIN32_CLOSE_FD\s0(fd)" 4 +.IX Item "EV_WIN32_CLOSE_FD(fd)" +If programs implement their own fd to handle mapping on win32, then this +macro can be used to override the \f(CW\*(C`close\*(C'\fR function, useful to unregister +file descriptors again. Note that the replacement function has to close +the underlying \s-1OS\s0 handle. +.IP "\s-1EV_USE_WSASOCKET\s0" 4 +.IX Item "EV_USE_WSASOCKET" +If defined to be \f(CW1\fR, libev will use \f(CW\*(C`WSASocket\*(C'\fR to create its internal +communication socket, which works better in some environments. Otherwise, +the normal \f(CW\*(C`socket\*(C'\fR function will be used, which works better in other +environments. +.IP "\s-1EV_USE_POLL\s0" 4 +.IX Item "EV_USE_POLL" +If defined to be \f(CW1\fR, libev will compile in support for the \f(CW\*(C`poll\*(C'\fR(2) +backend. Otherwise it will be enabled on non\-win32 platforms. It +takes precedence over select. +.IP "\s-1EV_USE_EPOLL\s0" 4 +.IX Item "EV_USE_EPOLL" +If defined to be \f(CW1\fR, libev will compile in support for the Linux +\&\f(CW\*(C`epoll\*(C'\fR(7) backend. Its availability will be detected at runtime, +otherwise another method will be used as fallback. This is the preferred +backend for GNU/Linux systems. If undefined, it will be enabled if the +headers indicate GNU/Linux + Glibc 2.4 or newer, otherwise disabled. +.IP "\s-1EV_USE_KQUEUE\s0" 4 +.IX Item "EV_USE_KQUEUE" +If defined to be \f(CW1\fR, libev will compile in support for the \s-1BSD\s0 style +\&\f(CW\*(C`kqueue\*(C'\fR(2) backend. Its actual availability will be detected at runtime, +otherwise another method will be used as fallback. This is the preferred +backend for \s-1BSD\s0 and BSD-like systems, although on most BSDs kqueue only +supports some types of fds correctly (the only platform we found that +supports ptys for example was NetBSD), so kqueue might be compiled in, but +not be used unless explicitly requested. The best way to use it is to find +out whether kqueue supports your type of fd properly and use an embedded +kqueue loop. +.IP "\s-1EV_USE_PORT\s0" 4 +.IX Item "EV_USE_PORT" +If defined to be \f(CW1\fR, libev will compile in support for the Solaris +10 port style backend. Its availability will be detected at runtime, +otherwise another method will be used as fallback. This is the preferred +backend for Solaris 10 systems. +.IP "\s-1EV_USE_DEVPOLL\s0" 4 +.IX Item "EV_USE_DEVPOLL" +Reserved for future expansion, works like the \s-1USE\s0 symbols above. +.IP "\s-1EV_USE_INOTIFY\s0" 4 +.IX Item "EV_USE_INOTIFY" +If defined to be \f(CW1\fR, libev will compile in support for the Linux inotify +interface to speed up \f(CW\*(C`ev_stat\*(C'\fR watchers. Its actual availability will +be detected at runtime. If undefined, it will be enabled if the headers +indicate GNU/Linux + Glibc 2.4 or newer, otherwise disabled. +.IP "\s-1EV_NO_SMP\s0" 4 +.IX Item "EV_NO_SMP" +If defined to be \f(CW1\fR, libev will assume that memory is always coherent +between threads, that is, threads can be used, but threads never run on +different cpus (or different cpu cores). This reduces dependencies +and makes libev faster. +.IP "\s-1EV_NO_THREADS\s0" 4 +.IX Item "EV_NO_THREADS" +If defined to be \f(CW1\fR, libev will assume that it will never be called from +different threads (that includes signal handlers), which is a stronger +assumption than \f(CW\*(C`EV_NO_SMP\*(C'\fR, above. This reduces dependencies and makes +libev faster. +.IP "\s-1EV_ATOMIC_T\s0" 4 +.IX Item "EV_ATOMIC_T" +Libev requires an integer type (suitable for storing \f(CW0\fR or \f(CW1\fR) whose +access is atomic with respect to other threads or signal contexts. No +such type is easily found in the C language, so you can provide your own +type that you know is safe for your purposes. It is used both for signal +handler \*(L"locking\*(R" as well as for signal and thread safety in \f(CW\*(C`ev_async\*(C'\fR +watchers. +.Sp +In the absence of this define, libev will use \f(CW\*(C`sig_atomic_t volatile\*(C'\fR +(from \fIsignal.h\fR), which is usually good enough on most platforms. +.IP "\s-1EV_H \s0(h)" 4 +.IX Item "EV_H (h)" +The name of the \fIev.h\fR header file used to include it. The default if +undefined is \f(CW"ev.h"\fR in \fIevent.h\fR, \fIev.c\fR and \fIev++.h\fR. This can be +used to virtually rename the \fIev.h\fR header file in case of conflicts. +.IP "\s-1EV_CONFIG_H \s0(h)" 4 +.IX Item "EV_CONFIG_H (h)" +If \f(CW\*(C`EV_STANDALONE\*(C'\fR isn't \f(CW1\fR, this variable can be used to override +\&\fIev.c\fR's idea of where to find the \fIconfig.h\fR file, similarly to +\&\f(CW\*(C`EV_H\*(C'\fR, above. +.IP "\s-1EV_EVENT_H \s0(h)" 4 +.IX Item "EV_EVENT_H (h)" +Similarly to \f(CW\*(C`EV_H\*(C'\fR, this macro can be used to override \fIevent.c\fR's idea +of how the \fIevent.h\fR header can be found, the default is \f(CW"event.h"\fR. +.IP "\s-1EV_PROTOTYPES \s0(h)" 4 +.IX Item "EV_PROTOTYPES (h)" +If defined to be \f(CW0\fR, then \fIev.h\fR will not define any function +prototypes, but still define all the structs and other symbols. This is +occasionally useful if you want to provide your own wrapper functions +around libev functions. +.IP "\s-1EV_MULTIPLICITY\s0" 4 +.IX Item "EV_MULTIPLICITY" +If undefined or defined to \f(CW1\fR, then all event-loop-specific functions +will have the \f(CW\*(C`struct ev_loop *\*(C'\fR as first argument, and you can create +additional independent event loops. Otherwise there will be no support +for multiple event loops and there is no first event loop pointer +argument. Instead, all functions act on the single default loop. +.Sp +Note that \f(CW\*(C`EV_DEFAULT\*(C'\fR and \f(CW\*(C`EV_DEFAULT_\*(C'\fR will no longer provide a +default loop when multiplicity is switched off \- you always have to +initialise the loop manually in this case. +.IP "\s-1EV_MINPRI\s0" 4 +.IX Item "EV_MINPRI" +.PD 0 +.IP "\s-1EV_MAXPRI\s0" 4 +.IX Item "EV_MAXPRI" +.PD +The range of allowed priorities. \f(CW\*(C`EV_MINPRI\*(C'\fR must be smaller or equal to +\&\f(CW\*(C`EV_MAXPRI\*(C'\fR, but otherwise there are no non-obvious limitations. You can +provide for more priorities by overriding those symbols (usually defined +to be \f(CW\*(C`\-2\*(C'\fR and \f(CW2\fR, respectively). +.Sp +When doing priority-based operations, libev usually has to linearly search +all the priorities, so having many of them (hundreds) uses a lot of space +and time, so using the defaults of five priorities (\-2 .. +2) is usually +fine. +.Sp +If your embedding application does not need any priorities, defining these +both to \f(CW0\fR will save some memory and \s-1CPU.\s0 +.IP "\s-1EV_PERIODIC_ENABLE, EV_IDLE_ENABLE, EV_EMBED_ENABLE, EV_STAT_ENABLE, EV_PREPARE_ENABLE, EV_CHECK_ENABLE, EV_FORK_ENABLE, EV_SIGNAL_ENABLE, EV_ASYNC_ENABLE, EV_CHILD_ENABLE.\s0" 4 +.IX Item "EV_PERIODIC_ENABLE, EV_IDLE_ENABLE, EV_EMBED_ENABLE, EV_STAT_ENABLE, EV_PREPARE_ENABLE, EV_CHECK_ENABLE, EV_FORK_ENABLE, EV_SIGNAL_ENABLE, EV_ASYNC_ENABLE, EV_CHILD_ENABLE." +If undefined or defined to be \f(CW1\fR (and the platform supports it), then +the respective watcher type is supported. If defined to be \f(CW0\fR, then it +is not. Disabling watcher types mainly saves code size. +.IP "\s-1EV_FEATURES\s0" 4 +.IX Item "EV_FEATURES" +If you need to shave off some kilobytes of code at the expense of some +speed (but with the full \s-1API\s0), you can define this symbol to request +certain subsets of functionality. The default is to enable all features +that can be enabled on the platform. +.Sp +A typical way to use this symbol is to define it to \f(CW0\fR (or to a bitset +with some broad features you want) and then selectively re-enable +additional parts you want, for example if you want everything minimal, +but multiple event loop support, async and child watchers and the poll +backend, use this: +.Sp +.Vb 5 +\& #define EV_FEATURES 0 +\& #define EV_MULTIPLICITY 1 +\& #define EV_USE_POLL 1 +\& #define EV_CHILD_ENABLE 1 +\& #define EV_ASYNC_ENABLE 1 +.Ve +.Sp +The actual value is a bitset, it can be a combination of the following +values (by default, all of these are enabled): +.RS 4 +.ie n .IP "1 \- faster/larger code" 4 +.el .IP "\f(CW1\fR \- faster/larger code" 4 +.IX Item "1 - faster/larger code" +Use larger code to speed up some operations. +.Sp +Currently this is used to override some inlining decisions (enlarging the +code size by roughly 30% on amd64). +.Sp +When optimising for size, use of compiler flags such as \f(CW\*(C`\-Os\*(C'\fR with +gcc is recommended, as well as \f(CW\*(C`\-DNDEBUG\*(C'\fR, as libev contains a number of +assertions. +.Sp +The default is off when \f(CW\*(C`_\|_OPTIMIZE_SIZE_\|_\*(C'\fR is defined by your compiler +(e.g. gcc with \f(CW\*(C`\-Os\*(C'\fR). +.ie n .IP "2 \- faster/larger data structures" 4 +.el .IP "\f(CW2\fR \- faster/larger data structures" 4 +.IX Item "2 - faster/larger data structures" +Replaces the small 2\-heap for timer management by a faster 4\-heap, larger +hash table sizes and so on. This will usually further increase code size +and can additionally have an effect on the size of data structures at +runtime. +.Sp +The default is off when \f(CW\*(C`_\|_OPTIMIZE_SIZE_\|_\*(C'\fR is defined by your compiler +(e.g. gcc with \f(CW\*(C`\-Os\*(C'\fR). +.ie n .IP "4 \- full \s-1API\s0 configuration" 4 +.el .IP "\f(CW4\fR \- full \s-1API\s0 configuration" 4 +.IX Item "4 - full API configuration" +This enables priorities (sets \f(CW\*(C`EV_MAXPRI\*(C'\fR=2 and \f(CW\*(C`EV_MINPRI\*(C'\fR=\-2), and +enables multiplicity (\f(CW\*(C`EV_MULTIPLICITY\*(C'\fR=1). +.ie n .IP "8 \- full \s-1API\s0" 4 +.el .IP "\f(CW8\fR \- full \s-1API\s0" 4 +.IX Item "8 - full API" +This enables a lot of the \*(L"lesser used\*(R" \s-1API\s0 functions. See \f(CW\*(C`ev.h\*(C'\fR for +details on which parts of the \s-1API\s0 are still available without this +feature, and do not complain if this subset changes over time. +.ie n .IP "16 \- enable all optional watcher types" 4 +.el .IP "\f(CW16\fR \- enable all optional watcher types" 4 +.IX Item "16 - enable all optional watcher types" +Enables all optional watcher types. If you want to selectively enable +only some watcher types other than I/O and timers (e.g. prepare, +embed, async, child...) you can enable them manually by defining +\&\f(CW\*(C`EV_watchertype_ENABLE\*(C'\fR to \f(CW1\fR instead. +.ie n .IP "32 \- enable all backends" 4 +.el .IP "\f(CW32\fR \- enable all backends" 4 +.IX Item "32 - enable all backends" +This enables all backends \- without this feature, you need to enable at +least one backend manually (\f(CW\*(C`EV_USE_SELECT\*(C'\fR is a good choice). +.ie n .IP "64 \- enable OS-specific ""helper"" APIs" 4 +.el .IP "\f(CW64\fR \- enable OS-specific ``helper'' APIs" 4 +.IX Item "64 - enable OS-specific helper APIs" +Enable inotify, eventfd, signalfd and similar OS-specific helper APIs by +default. +.RE +.RS 4 +.Sp +Compiling with \f(CW\*(C`gcc \-Os \-DEV_STANDALONE \-DEV_USE_EPOLL=1 \-DEV_FEATURES=0\*(C'\fR +reduces the compiled size of libev from 24.7Kb code/2.8Kb data to 6.5Kb +code/0.3Kb data on my GNU/Linux amd64 system, while still giving you I/O +watchers, timers and monotonic clock support. +.Sp +With an intelligent-enough linker (gcc+binutils are intelligent enough +when you use \f(CW\*(C`\-Wl,\-\-gc\-sections \-ffunction\-sections\*(C'\fR) functions unused by +your program might be left out as well \- a binary starting a timer and an +I/O watcher then might come out at only 5Kb. +.RE +.IP "\s-1EV_API_STATIC\s0" 4 +.IX Item "EV_API_STATIC" +If this symbol is defined (by default it is not), then all identifiers +will have static linkage. This means that libev will not export any +identifiers, and you cannot link against libev anymore. This can be useful +when you embed libev, only want to use libev functions in a single file, +and do not want its identifiers to be visible. +.Sp +To use this, define \f(CW\*(C`EV_API_STATIC\*(C'\fR and include \fIev.c\fR in the file that +wants to use libev. +.Sp +This option only works when libev is compiled with a C compiler, as \*(C+ +doesn't support the required declaration syntax. +.IP "\s-1EV_AVOID_STDIO\s0" 4 +.IX Item "EV_AVOID_STDIO" +If this is set to \f(CW1\fR at compiletime, then libev will avoid using stdio +functions (printf, scanf, perror etc.). This will increase the code size +somewhat, but if your program doesn't otherwise depend on stdio and your +libc allows it, this avoids linking in the stdio library which is quite +big. +.Sp +Note that error messages might become less precise when this option is +enabled. +.IP "\s-1EV_NSIG\s0" 4 +.IX Item "EV_NSIG" +The highest supported signal number, +1 (or, the number of +signals): Normally, libev tries to deduce the maximum number of signals +automatically, but sometimes this fails, in which case it can be +specified. Also, using a lower number than detected (\f(CW32\fR should be +good for about any system in existence) can save some memory, as libev +statically allocates some 12\-24 bytes per signal number. +.IP "\s-1EV_PID_HASHSIZE\s0" 4 +.IX Item "EV_PID_HASHSIZE" +\&\f(CW\*(C`ev_child\*(C'\fR watchers use a small hash table to distribute workload by +pid. The default size is \f(CW16\fR (or \f(CW1\fR with \f(CW\*(C`EV_FEATURES\*(C'\fR disabled), +usually more than enough. If you need to manage thousands of children you +might want to increase this value (\fImust\fR be a power of two). +.IP "\s-1EV_INOTIFY_HASHSIZE\s0" 4 +.IX Item "EV_INOTIFY_HASHSIZE" +\&\f(CW\*(C`ev_stat\*(C'\fR watchers use a small hash table to distribute workload by +inotify watch id. The default size is \f(CW16\fR (or \f(CW1\fR with \f(CW\*(C`EV_FEATURES\*(C'\fR +disabled), usually more than enough. If you need to manage thousands of +\&\f(CW\*(C`ev_stat\*(C'\fR watchers you might want to increase this value (\fImust\fR be a +power of two). +.IP "\s-1EV_USE_4HEAP\s0" 4 +.IX Item "EV_USE_4HEAP" +Heaps are not very cache-efficient. To improve the cache-efficiency of the +timer and periodics heaps, libev uses a 4\-heap when this symbol is defined +to \f(CW1\fR. The 4\-heap uses more complicated (longer) code but has noticeably +faster performance with many (thousands) of watchers. +.Sp +The default is \f(CW1\fR, unless \f(CW\*(C`EV_FEATURES\*(C'\fR overrides it, in which case it +will be \f(CW0\fR. +.IP "\s-1EV_HEAP_CACHE_AT\s0" 4 +.IX Item "EV_HEAP_CACHE_AT" +Heaps are not very cache-efficient. To improve the cache-efficiency of the +timer and periodics heaps, libev can cache the timestamp (\fIat\fR) within +the heap structure (selected by defining \f(CW\*(C`EV_HEAP_CACHE_AT\*(C'\fR to \f(CW1\fR), +which uses 8\-12 bytes more per watcher and a few hundred bytes more code, +but avoids random read accesses on heap changes. This improves performance +noticeably with many (hundreds) of watchers. +.Sp +The default is \f(CW1\fR, unless \f(CW\*(C`EV_FEATURES\*(C'\fR overrides it, in which case it +will be \f(CW0\fR. +.IP "\s-1EV_VERIFY\s0" 4 +.IX Item "EV_VERIFY" +Controls how much internal verification (see \f(CW\*(C`ev_verify ()\*(C'\fR) will +be done: If set to \f(CW0\fR, no internal verification code will be compiled +in. If set to \f(CW1\fR, then verification code will be compiled in, but not +called. If set to \f(CW2\fR, then the internal verification code will be +called once per loop, which can slow down libev. If set to \f(CW3\fR, then the +verification code will be called very frequently, which will slow down +libev considerably. +.Sp +The default is \f(CW1\fR, unless \f(CW\*(C`EV_FEATURES\*(C'\fR overrides it, in which case it +will be \f(CW0\fR. +.IP "\s-1EV_COMMON\s0" 4 +.IX Item "EV_COMMON" +By default, all watchers have a \f(CW\*(C`void *data\*(C'\fR member. By redefining +this macro to something else you can include more and other types of +members. You have to define it each time you include one of the files, +though, and it must be identical each time. +.Sp +For example, the perl \s-1EV\s0 module uses something like this: +.Sp +.Vb 3 +\& #define EV_COMMON \e +\& SV *self; /* contains this struct */ \e +\& SV *cb_sv, *fh /* note no trailing ";" */ +.Ve +.IP "\s-1EV_CB_DECLARE \s0(type)" 4 +.IX Item "EV_CB_DECLARE (type)" +.PD 0 +.IP "\s-1EV_CB_INVOKE \s0(watcher, revents)" 4 +.IX Item "EV_CB_INVOKE (watcher, revents)" +.IP "ev_set_cb (ev, cb)" 4 +.IX Item "ev_set_cb (ev, cb)" +.PD +Can be used to change the callback member declaration in each watcher, +and the way callbacks are invoked and set. Must expand to a struct member +definition and a statement, respectively. See the \fIev.h\fR header file for +their default definitions. One possible use for overriding these is to +avoid the \f(CW\*(C`struct ev_loop *\*(C'\fR as first argument in all cases, or to use +method calls instead of plain function calls in \*(C+. +.SS "\s-1EXPORTED API SYMBOLS\s0" +.IX Subsection "EXPORTED API SYMBOLS" +If you need to re-export the \s-1API \s0(e.g. via a \s-1DLL\s0) and you need a list of +exported symbols, you can use the provided \fISymbol.*\fR files which list +all public symbols, one per line: +.PP +.Vb 2 +\& Symbols.ev for libev proper +\& Symbols.event for the libevent emulation +.Ve +.PP +This can also be used to rename all public symbols to avoid clashes with +multiple versions of libev linked together (which is obviously bad in +itself, but sometimes it is inconvenient to avoid this). +.PP +A sed command like this will create wrapper \f(CW\*(C`#define\*(C'\fR's that you need to +include before including \fIev.h\fR: +.PP +.Vb 1 +\& wrap.h +.Ve +.PP +This would create a file \fIwrap.h\fR which essentially looks like this: +.PP +.Vb 4 +\& #define ev_backend myprefix_ev_backend +\& #define ev_check_start myprefix_ev_check_start +\& #define ev_check_stop myprefix_ev_check_stop +\& ... +.Ve +.SS "\s-1EXAMPLES\s0" +.IX Subsection "EXAMPLES" +For a real-world example of a program the includes libev +verbatim, you can have a look at the \s-1EV\s0 perl module +(). It has the libev files in +the \fIlibev/\fR subdirectory and includes them in the \fI\s-1EV/EVAPI\s0.h\fR (public +interface) and \fI\s-1EV\s0.xs\fR (implementation) files. Only the \fI\s-1EV\s0.xs\fR file +will be compiled. It is pretty complex because it provides its own header +file. +.PP +The usage in rxvt-unicode is simpler. It has a \fIev_cpp.h\fR header file +that everybody includes and which overrides some configure choices: +.PP +.Vb 8 +\& #define EV_FEATURES 8 +\& #define EV_USE_SELECT 1 +\& #define EV_PREPARE_ENABLE 1 +\& #define EV_IDLE_ENABLE 1 +\& #define EV_SIGNAL_ENABLE 1 +\& #define EV_CHILD_ENABLE 1 +\& #define EV_USE_STDEXCEPT 0 +\& #define EV_CONFIG_H +\& +\& #include "ev++.h" +.Ve +.PP +And a \fIev_cpp.C\fR implementation file that contains libev proper and is compiled: +.PP +.Vb 2 +\& #include "ev_cpp.h" +\& #include "ev.c" +.Ve +.SH "INTERACTION WITH OTHER PROGRAMS, LIBRARIES OR THE ENVIRONMENT" +.IX Header "INTERACTION WITH OTHER PROGRAMS, LIBRARIES OR THE ENVIRONMENT" +.SS "\s-1THREADS AND COROUTINES\s0" +.IX Subsection "THREADS AND COROUTINES" +\fI\s-1THREADS\s0\fR +.IX Subsection "THREADS" +.PP +All libev functions are reentrant and thread-safe unless explicitly +documented otherwise, but libev implements no locking itself. This means +that you can use as many loops as you want in parallel, as long as there +are no concurrent calls into any libev function with the same loop +parameter (\f(CW\*(C`ev_default_*\*(C'\fR calls have an implicit default loop parameter, +of course): libev guarantees that different event loops share no data +structures that need any locking. +.PP +Or to put it differently: calls with different loop parameters can be done +concurrently from multiple threads, calls with the same loop parameter +must be done serially (but can be done from different threads, as long as +only one thread ever is inside a call at any point in time, e.g. by using +a mutex per loop). +.PP +Specifically to support threads (and signal handlers), libev implements +so-called \f(CW\*(C`ev_async\*(C'\fR watchers, which allow some limited form of +concurrency on the same event loop, namely waking it up \*(L"from the +outside\*(R". +.PP +If you want to know which design (one loop, locking, or multiple loops +without or something else still) is best for your problem, then I cannot +help you, but here is some generic advice: +.IP "\(bu" 4 +most applications have a main thread: use the default libev loop +in that thread, or create a separate thread running only the default loop. +.Sp +This helps integrating other libraries or software modules that use libev +themselves and don't care/know about threading. +.IP "\(bu" 4 +one loop per thread is usually a good model. +.Sp +Doing this is almost never wrong, sometimes a better-performance model +exists, but it is always a good start. +.IP "\(bu" 4 +other models exist, such as the leader/follower pattern, where one +loop is handed through multiple threads in a kind of round-robin fashion. +.Sp +Choosing a model is hard \- look around, learn, know that usually you can do +better than you currently do :\-) +.IP "\(bu" 4 +often you need to talk to some other thread which blocks in the +event loop. +.Sp +\&\f(CW\*(C`ev_async\*(C'\fR watchers can be used to wake them up from other threads safely +(or from signal contexts...). +.Sp +An example use would be to communicate signals or other events that only +work in the default loop by registering the signal watcher with the +default loop and triggering an \f(CW\*(C`ev_async\*(C'\fR watcher from the default loop +watcher callback into the event loop interested in the signal. +.PP +See also \*(L"\s-1THREAD LOCKING EXAMPLE\*(R"\s0. +.PP +\fI\s-1COROUTINES\s0\fR +.IX Subsection "COROUTINES" +.PP +Libev is very accommodating to coroutines (\*(L"cooperative threads\*(R"): +libev fully supports nesting calls to its functions from different +coroutines (e.g. you can call \f(CW\*(C`ev_run\*(C'\fR on the same loop from two +different coroutines, and switch freely between both coroutines running +the loop, as long as you don't confuse yourself). The only exception is +that you must not do this from \f(CW\*(C`ev_periodic\*(C'\fR reschedule callbacks. +.PP +Care has been taken to ensure that libev does not keep local state inside +\&\f(CW\*(C`ev_run\*(C'\fR, and other calls do not usually allow for coroutine switches as +they do not call any callbacks. +.SS "\s-1COMPILER WARNINGS\s0" +.IX Subsection "COMPILER WARNINGS" +Depending on your compiler and compiler settings, you might get no or a +lot of warnings when compiling libev code. Some people are apparently +scared by this. +.PP +However, these are unavoidable for many reasons. For one, each compiler +has different warnings, and each user has different tastes regarding +warning options. \*(L"Warn-free\*(R" code therefore cannot be a goal except when +targeting a specific compiler and compiler-version. +.PP +Another reason is that some compiler warnings require elaborate +workarounds, or other changes to the code that make it less clear and less +maintainable. +.PP +And of course, some compiler warnings are just plain stupid, or simply +wrong (because they don't actually warn about the condition their message +seems to warn about). For example, certain older gcc versions had some +warnings that resulted in an extreme number of false positives. These have +been fixed, but some people still insist on making code warn-free with +such buggy versions. +.PP +While libev is written to generate as few warnings as possible, +\&\*(L"warn-free\*(R" code is not a goal, and it is recommended not to build libev +with any compiler warnings enabled unless you are prepared to cope with +them (e.g. by ignoring them). Remember that warnings are just that: +warnings, not errors, or proof of bugs. +.SS "\s-1VALGRIND\s0" +.IX Subsection "VALGRIND" +Valgrind has a special section here because it is a popular tool that is +highly useful. Unfortunately, valgrind reports are very hard to interpret. +.PP +If you think you found a bug (memory leak, uninitialised data access etc.) +in libev, then check twice: If valgrind reports something like: +.PP +.Vb 3 +\& ==2274== definitely lost: 0 bytes in 0 blocks. +\& ==2274== possibly lost: 0 bytes in 0 blocks. +\& ==2274== still reachable: 256 bytes in 1 blocks. +.Ve +.PP +Then there is no memory leak, just as memory accounted to global variables +is not a memleak \- the memory is still being referenced, and didn't leak. +.PP +Similarly, under some circumstances, valgrind might report kernel bugs +as if it were a bug in libev (e.g. in realloc or in the poll backend, +although an acceptable workaround has been found here), or it might be +confused. +.PP +Keep in mind that valgrind is a very good tool, but only a tool. Don't +make it into some kind of religion. +.PP +If you are unsure about something, feel free to contact the mailing list +with the full valgrind report and an explanation on why you think this +is a bug in libev (best check the archives, too :). However, don't be +annoyed when you get a brisk \*(L"this is no bug\*(R" answer and take the chance +of learning how to interpret valgrind properly. +.PP +If you need, for some reason, empty reports from valgrind for your project +I suggest using suppression lists. +.SH "PORTABILITY NOTES" +.IX Header "PORTABILITY NOTES" +.SS "\s-1GNU/LINUX 32 BIT LIMITATIONS\s0" +.IX Subsection "GNU/LINUX 32 BIT LIMITATIONS" +GNU/Linux is the only common platform that supports 64 bit file/large file +interfaces but \fIdisables\fR them by default. +.PP +That means that libev compiled in the default environment doesn't support +files larger than 2GiB or so, which mainly affects \f(CW\*(C`ev_stat\*(C'\fR watchers. +.PP +Unfortunately, many programs try to work around this GNU/Linux issue +by enabling the large file \s-1API,\s0 which makes them incompatible with the +standard libev compiled for their system. +.PP +Likewise, libev cannot enable the large file \s-1API\s0 itself as this would +suddenly make it incompatible to the default compile time environment, +i.e. all programs not using special compile switches. +.SS "\s-1OS/X AND DARWIN BUGS\s0" +.IX Subsection "OS/X AND DARWIN BUGS" +The whole thing is a bug if you ask me \- basically any system interface +you touch is broken, whether it is locales, poll, kqueue or even the +OpenGL drivers. +.PP +\fI\f(CI\*(C`kqueue\*(C'\fI is buggy\fR +.IX Subsection "kqueue is buggy" +.PP +The kqueue syscall is broken in all known versions \- most versions support +only sockets, many support pipes. +.PP +Libev tries to work around this by not using \f(CW\*(C`kqueue\*(C'\fR by default on this +rotten platform, but of course you can still ask for it when creating a +loop \- embedding a socket-only kqueue loop into a select-based one is +probably going to work well. +.PP +\fI\f(CI\*(C`poll\*(C'\fI is buggy\fR +.IX Subsection "poll is buggy" +.PP +Instead of fixing \f(CW\*(C`kqueue\*(C'\fR, Apple replaced their (working) \f(CW\*(C`poll\*(C'\fR +implementation by something calling \f(CW\*(C`kqueue\*(C'\fR internally around the 10.5.6 +release, so now \f(CW\*(C`kqueue\*(C'\fR \fIand\fR \f(CW\*(C`poll\*(C'\fR are broken. +.PP +Libev tries to work around this by not using \f(CW\*(C`poll\*(C'\fR by default on +this rotten platform, but of course you can still ask for it when creating +a loop. +.PP +\fI\f(CI\*(C`select\*(C'\fI is buggy\fR +.IX Subsection "select is buggy" +.PP +All that's left is \f(CW\*(C`select\*(C'\fR, and of course Apple found a way to fuck this +one up as well: On \s-1OS/X, \s0\f(CW\*(C`select\*(C'\fR actively limits the number of file +descriptors you can pass in to 1024 \- your program suddenly crashes when +you use more. +.PP +There is an undocumented \*(L"workaround\*(R" for this \- defining +\&\f(CW\*(C`_DARWIN_UNLIMITED_SELECT\*(C'\fR, which libev tries to use, so select \fIshould\fR +work on \s-1OS/X.\s0 +.SS "\s-1SOLARIS PROBLEMS AND WORKAROUNDS\s0" +.IX Subsection "SOLARIS PROBLEMS AND WORKAROUNDS" +\fI\f(CI\*(C`errno\*(C'\fI reentrancy\fR +.IX Subsection "errno reentrancy" +.PP +The default compile environment on Solaris is unfortunately so +thread-unsafe that you can't even use components/libraries compiled +without \f(CW\*(C`\-D_REENTRANT\*(C'\fR in a threaded program, which, of course, isn't +defined by default. A valid, if stupid, implementation choice. +.PP +If you want to use libev in threaded environments you have to make sure +it's compiled with \f(CW\*(C`_REENTRANT\*(C'\fR defined. +.PP +\fIEvent port backend\fR +.IX Subsection "Event port backend" +.PP +The scalable event interface for Solaris is called \*(L"event +ports\*(R". Unfortunately, this mechanism is very buggy in all major +releases. If you run into high \s-1CPU\s0 usage, your program freezes or you get +a large number of spurious wakeups, make sure you have all the relevant +and latest kernel patches applied. No, I don't know which ones, but there +are multiple ones to apply, and afterwards, event ports actually work +great. +.PP +If you can't get it to work, you can try running the program by setting +the environment variable \f(CW\*(C`LIBEV_FLAGS=3\*(C'\fR to only allow \f(CW\*(C`poll\*(C'\fR and +\&\f(CW\*(C`select\*(C'\fR backends. +.SS "\s-1AIX POLL BUG\s0" +.IX Subsection "AIX POLL BUG" +\&\s-1AIX\s0 unfortunately has a broken \f(CW\*(C`poll.h\*(C'\fR header. Libev works around +this by trying to avoid the poll backend altogether (i.e. it's not even +compiled in), which normally isn't a big problem as \f(CW\*(C`select\*(C'\fR works fine +with large bitsets on \s-1AIX,\s0 and \s-1AIX\s0 is dead anyway. +.SS "\s-1WIN32 PLATFORM LIMITATIONS AND WORKAROUNDS\s0" +.IX Subsection "WIN32 PLATFORM LIMITATIONS AND WORKAROUNDS" +\fIGeneral issues\fR +.IX Subsection "General issues" +.PP +Win32 doesn't support any of the standards (e.g. \s-1POSIX\s0) that libev +requires, and its I/O model is fundamentally incompatible with the \s-1POSIX\s0 +model. Libev still offers limited functionality on this platform in +the form of the \f(CW\*(C`EVBACKEND_SELECT\*(C'\fR backend, and only supports socket +descriptors. This only applies when using Win32 natively, not when using +e.g. cygwin. Actually, it only applies to the microsofts own compilers, +as every compiler comes with a slightly differently broken/incompatible +environment. +.PP +Lifting these limitations would basically require the full +re-implementation of the I/O system. If you are into this kind of thing, +then note that glib does exactly that for you in a very portable way (note +also that glib is the slowest event library known to man). +.PP +There is no supported compilation method available on windows except +embedding it into other applications. +.PP +Sensible signal handling is officially unsupported by Microsoft \- libev +tries its best, but under most conditions, signals will simply not work. +.PP +Not a libev limitation but worth mentioning: windows apparently doesn't +accept large writes: instead of resulting in a partial write, windows will +either accept everything or return \f(CW\*(C`ENOBUFS\*(C'\fR if the buffer is too large, +so make sure you only write small amounts into your sockets (less than a +megabyte seems safe, but this apparently depends on the amount of memory +available). +.PP +Due to the many, low, and arbitrary limits on the win32 platform and +the abysmal performance of winsockets, using a large number of sockets +is not recommended (and not reasonable). If your program needs to use +more than a hundred or so sockets, then likely it needs to use a totally +different implementation for windows, as libev offers the \s-1POSIX\s0 readiness +notification model, which cannot be implemented efficiently on windows +(due to Microsoft monopoly games). +.PP +A typical way to use libev under windows is to embed it (see the embedding +section for details) and use the following \fIevwrap.h\fR header file instead +of \fIev.h\fR: +.PP +.Vb 2 +\& #define EV_STANDALONE /* keeps ev from requiring config.h */ +\& #define EV_SELECT_IS_WINSOCKET 1 /* configure libev for windows select */ +\& +\& #include "ev.h" +.Ve +.PP +And compile the following \fIevwrap.c\fR file into your project (make sure +you do \fInot\fR compile the \fIev.c\fR or any other embedded source files!): +.PP +.Vb 2 +\& #include "evwrap.h" +\& #include "ev.c" +.Ve +.PP +\fIThe winsocket \f(CI\*(C`select\*(C'\fI function\fR +.IX Subsection "The winsocket select function" +.PP +The winsocket \f(CW\*(C`select\*(C'\fR function doesn't follow \s-1POSIX\s0 in that it +requires socket \fIhandles\fR and not socket \fIfile descriptors\fR (it is +also extremely buggy). This makes select very inefficient, and also +requires a mapping from file descriptors to socket handles (the Microsoft +C runtime provides the function \f(CW\*(C`_open_osfhandle\*(C'\fR for this). See the +discussion of the \f(CW\*(C`EV_SELECT_USE_FD_SET\*(C'\fR, \f(CW\*(C`EV_SELECT_IS_WINSOCKET\*(C'\fR and +\&\f(CW\*(C`EV_FD_TO_WIN32_HANDLE\*(C'\fR preprocessor symbols for more info. +.PP +The configuration for a \*(L"naked\*(R" win32 using the Microsoft runtime +libraries and raw winsocket select is: +.PP +.Vb 2 +\& #define EV_USE_SELECT 1 +\& #define EV_SELECT_IS_WINSOCKET 1 /* forces EV_SELECT_USE_FD_SET, too */ +.Ve +.PP +Note that winsockets handling of fd sets is O(n), so you can easily get a +complexity in the O(nX) range when using win32. +.PP +\fILimited number of file descriptors\fR +.IX Subsection "Limited number of file descriptors" +.PP +Windows has numerous arbitrary (and low) limits on things. +.PP +Early versions of winsocket's select only supported waiting for a maximum +of \f(CW64\fR handles (probably owning to the fact that all windows kernels +can only wait for \f(CW64\fR things at the same time internally; Microsoft +recommends spawning a chain of threads and wait for 63 handles and the +previous thread in each. Sounds great!). +.PP +Newer versions support more handles, but you need to define \f(CW\*(C`FD_SETSIZE\*(C'\fR +to some high number (e.g. \f(CW2048\fR) before compiling the winsocket select +call (which might be in libev or elsewhere, for example, perl and many +other interpreters do their own select emulation on windows). +.PP +Another limit is the number of file descriptors in the Microsoft runtime +libraries, which by default is \f(CW64\fR (there must be a hidden \fI64\fR +fetish or something like this inside Microsoft). You can increase this +by calling \f(CW\*(C`_setmaxstdio\*(C'\fR, which can increase this limit to \f(CW2048\fR +(another arbitrary limit), but is broken in many versions of the Microsoft +runtime libraries. This might get you to about \f(CW512\fR or \f(CW2048\fR sockets +(depending on windows version and/or the phase of the moon). To get more, +you need to wrap all I/O functions and provide your own fd management, but +the cost of calling select (O(nX)) will likely make this unworkable. +.SS "\s-1PORTABILITY REQUIREMENTS\s0" +.IX Subsection "PORTABILITY REQUIREMENTS" +In addition to a working ISO-C implementation and of course the +backend-specific APIs, libev relies on a few additional extensions: +.ie n .IP """void (*)(ev_watcher_type *, int revents)"" must have compatible calling conventions regardless of ""ev_watcher_type *""." 4 +.el .IP "\f(CWvoid (*)(ev_watcher_type *, int revents)\fR must have compatible calling conventions regardless of \f(CWev_watcher_type *\fR." 4 +.IX Item "void (*)(ev_watcher_type *, int revents) must have compatible calling conventions regardless of ev_watcher_type *." +Libev assumes not only that all watcher pointers have the same internal +structure (guaranteed by \s-1POSIX\s0 but not by \s-1ISO C\s0 for example), but it also +assumes that the same (machine) code can be used to call any watcher +callback: The watcher callbacks have different type signatures, but libev +calls them using an \f(CW\*(C`ev_watcher *\*(C'\fR internally. +.IP "pointer accesses must be thread-atomic" 4 +.IX Item "pointer accesses must be thread-atomic" +Accessing a pointer value must be atomic, it must both be readable and +writable in one piece \- this is the case on all current architectures. +.ie n .IP """sig_atomic_t volatile"" must be thread-atomic as well" 4 +.el .IP "\f(CWsig_atomic_t volatile\fR must be thread-atomic as well" 4 +.IX Item "sig_atomic_t volatile must be thread-atomic as well" +The type \f(CW\*(C`sig_atomic_t volatile\*(C'\fR (or whatever is defined as +\&\f(CW\*(C`EV_ATOMIC_T\*(C'\fR) must be atomic with respect to accesses from different +threads. This is not part of the specification for \f(CW\*(C`sig_atomic_t\*(C'\fR, but is +believed to be sufficiently portable. +.ie n .IP """sigprocmask"" must work in a threaded environment" 4 +.el .IP "\f(CWsigprocmask\fR must work in a threaded environment" 4 +.IX Item "sigprocmask must work in a threaded environment" +Libev uses \f(CW\*(C`sigprocmask\*(C'\fR to temporarily block signals. This is not +allowed in a threaded program (\f(CW\*(C`pthread_sigmask\*(C'\fR has to be used). Typical +pthread implementations will either allow \f(CW\*(C`sigprocmask\*(C'\fR in the \*(L"main +thread\*(R" or will block signals process-wide, both behaviours would +be compatible with libev. Interaction between \f(CW\*(C`sigprocmask\*(C'\fR and +\&\f(CW\*(C`pthread_sigmask\*(C'\fR could complicate things, however. +.Sp +The most portable way to handle signals is to block signals in all threads +except the initial one, and run the signal handling loop in the initial +thread as well. +.ie n .IP """long"" must be large enough for common memory allocation sizes" 4 +.el .IP "\f(CWlong\fR must be large enough for common memory allocation sizes" 4 +.IX Item "long must be large enough for common memory allocation sizes" +To improve portability and simplify its \s-1API,\s0 libev uses \f(CW\*(C`long\*(C'\fR internally +instead of \f(CW\*(C`size_t\*(C'\fR when allocating its data structures. On non-POSIX +systems (Microsoft...) this might be unexpectedly low, but is still at +least 31 bits everywhere, which is enough for hundreds of millions of +watchers. +.ie n .IP """double"" must hold a time value in seconds with enough accuracy" 4 +.el .IP "\f(CWdouble\fR must hold a time value in seconds with enough accuracy" 4 +.IX Item "double must hold a time value in seconds with enough accuracy" +The type \f(CW\*(C`double\*(C'\fR is used to represent timestamps. It is required to +have at least 51 bits of mantissa (and 9 bits of exponent), which is +good enough for at least into the year 4000 with millisecond accuracy +(the design goal for libev). This requirement is overfulfilled by +implementations using \s-1IEEE 754,\s0 which is basically all existing ones. +.Sp +With \s-1IEEE 754\s0 doubles, you get microsecond accuracy until at least the +year 2255 (and millisecond accuracy till the year 287396 \- by then, libev +is either obsolete or somebody patched it to use \f(CW\*(C`long double\*(C'\fR or +something like that, just kidding). +.PP +If you know of other additional requirements drop me a note. +.SH "ALGORITHMIC COMPLEXITIES" +.IX Header "ALGORITHMIC COMPLEXITIES" +In this section the complexities of (many of) the algorithms used inside +libev will be documented. For complexity discussions about backends see +the documentation for \f(CW\*(C`ev_default_init\*(C'\fR. +.PP +All of the following are about amortised time: If an array needs to be +extended, libev needs to realloc and move the whole array, but this +happens asymptotically rarer with higher number of elements, so O(1) might +mean that libev does a lengthy realloc operation in rare cases, but on +average it is much faster and asymptotically approaches constant time. +.IP "Starting and stopping timer/periodic watchers: O(log skipped_other_timers)" 4 +.IX Item "Starting and stopping timer/periodic watchers: O(log skipped_other_timers)" +This means that, when you have a watcher that triggers in one hour and +there are 100 watchers that would trigger before that, then inserting will +have to skip roughly seven (\f(CW\*(C`ld 100\*(C'\fR) of these watchers. +.IP "Changing timer/periodic watchers (by autorepeat or calling again): O(log skipped_other_timers)" 4 +.IX Item "Changing timer/periodic watchers (by autorepeat or calling again): O(log skipped_other_timers)" +That means that changing a timer costs less than removing/adding them, +as only the relative motion in the event queue has to be paid for. +.IP "Starting io/check/prepare/idle/signal/child/fork/async watchers: O(1)" 4 +.IX Item "Starting io/check/prepare/idle/signal/child/fork/async watchers: O(1)" +These just add the watcher into an array or at the head of a list. +.IP "Stopping check/prepare/idle/fork/async watchers: O(1)" 4 +.IX Item "Stopping check/prepare/idle/fork/async watchers: O(1)" +.PD 0 +.IP "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % \s-1EV_PID_HASHSIZE\s0))" 4 +.IX Item "Stopping an io/signal/child watcher: O(number_of_watchers_for_this_(fd/signal/pid % EV_PID_HASHSIZE))" +.PD +These watchers are stored in lists, so they need to be walked to find the +correct watcher to remove. The lists are usually short (you don't usually +have many watchers waiting for the same fd or signal: one is typical, two +is rare). +.IP "Finding the next timer in each loop iteration: O(1)" 4 +.IX Item "Finding the next timer in each loop iteration: O(1)" +By virtue of using a binary or 4\-heap, the next timer is always found at a +fixed position in the storage array. +.IP "Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd)" 4 +.IX Item "Each change on a file descriptor per loop iteration: O(number_of_watchers_for_this_fd)" +A change means an I/O watcher gets started or stopped, which requires +libev to recalculate its status (and possibly tell the kernel, depending +on backend and whether \f(CW\*(C`ev_io_set\*(C'\fR was used). +.IP "Activating one watcher (putting it into the pending state): O(1)" 4 +.IX Item "Activating one watcher (putting it into the pending state): O(1)" +.PD 0 +.IP "Priority handling: O(number_of_priorities)" 4 +.IX Item "Priority handling: O(number_of_priorities)" +.PD +Priorities are implemented by allocating some space for each +priority. When doing priority-based operations, libev usually has to +linearly search all the priorities, but starting/stopping and activating +watchers becomes O(1) with respect to priority handling. +.IP "Sending an ev_async: O(1)" 4 +.IX Item "Sending an ev_async: O(1)" +.PD 0 +.IP "Processing ev_async_send: O(number_of_async_watchers)" 4 +.IX Item "Processing ev_async_send: O(number_of_async_watchers)" +.IP "Processing signals: O(max_signal_number)" 4 +.IX Item "Processing signals: O(max_signal_number)" +.PD +Sending involves a system call \fIiff\fR there were no other \f(CW\*(C`ev_async_send\*(C'\fR +calls in the current loop iteration and the loop is currently +blocked. Checking for async and signal events involves iterating over all +running async watchers or all signal numbers. +.SH "PORTING FROM LIBEV 3.X TO 4.X" +.IX Header "PORTING FROM LIBEV 3.X TO 4.X" +The major version 4 introduced some incompatible changes to the \s-1API.\s0 +.PP +At the moment, the \f(CW\*(C`ev.h\*(C'\fR header file provides compatibility definitions +for all changes, so most programs should still compile. The compatibility +layer might be removed in later versions of libev, so better update to the +new \s-1API\s0 early than late. +.ie n .IP """EV_COMPAT3"" backwards compatibility mechanism" 4 +.el .IP "\f(CWEV_COMPAT3\fR backwards compatibility mechanism" 4 +.IX Item "EV_COMPAT3 backwards compatibility mechanism" +The backward compatibility mechanism can be controlled by +\&\f(CW\*(C`EV_COMPAT3\*(C'\fR. See \*(L"\s-1PREPROCESSOR SYMBOLS/MACROS\*(R"\s0 in the \*(L"\s-1EMBEDDING\*(R"\s0 +section. +.ie n .IP """ev_default_destroy"" and ""ev_default_fork"" have been removed" 4 +.el .IP "\f(CWev_default_destroy\fR and \f(CWev_default_fork\fR have been removed" 4 +.IX Item "ev_default_destroy and ev_default_fork have been removed" +These calls can be replaced easily by their \f(CW\*(C`ev_loop_xxx\*(C'\fR counterparts: +.Sp +.Vb 2 +\& ev_loop_destroy (EV_DEFAULT_UC); +\& ev_loop_fork (EV_DEFAULT); +.Ve +.IP "function/symbol renames" 4 +.IX Item "function/symbol renames" +A number of functions and symbols have been renamed: +.Sp +.Vb 3 +\& ev_loop => ev_run +\& EVLOOP_NONBLOCK => EVRUN_NOWAIT +\& EVLOOP_ONESHOT => EVRUN_ONCE +\& +\& ev_unloop => ev_break +\& EVUNLOOP_CANCEL => EVBREAK_CANCEL +\& EVUNLOOP_ONE => EVBREAK_ONE +\& EVUNLOOP_ALL => EVBREAK_ALL +\& +\& EV_TIMEOUT => EV_TIMER +\& +\& ev_loop_count => ev_iteration +\& ev_loop_depth => ev_depth +\& ev_loop_verify => ev_verify +.Ve +.Sp +Most functions working on \f(CW\*(C`struct ev_loop\*(C'\fR objects don't have an +\&\f(CW\*(C`ev_loop_\*(C'\fR prefix, so it was removed; \f(CW\*(C`ev_loop\*(C'\fR, \f(CW\*(C`ev_unloop\*(C'\fR and +associated constants have been renamed to not collide with the \f(CW\*(C`struct +ev_loop\*(C'\fR anymore and \f(CW\*(C`EV_TIMER\*(C'\fR now follows the same naming scheme +as all other watcher types. Note that \f(CW\*(C`ev_loop_fork\*(C'\fR is still called +\&\f(CW\*(C`ev_loop_fork\*(C'\fR because it would otherwise clash with the \f(CW\*(C`ev_fork\*(C'\fR +typedef. +.ie n .IP """EV_MINIMAL"" mechanism replaced by ""EV_FEATURES""" 4 +.el .IP "\f(CWEV_MINIMAL\fR mechanism replaced by \f(CWEV_FEATURES\fR" 4 +.IX Item "EV_MINIMAL mechanism replaced by EV_FEATURES" +The preprocessor symbol \f(CW\*(C`EV_MINIMAL\*(C'\fR has been replaced by a different +mechanism, \f(CW\*(C`EV_FEATURES\*(C'\fR. Programs using \f(CW\*(C`EV_MINIMAL\*(C'\fR usually compile +and work, but the library code will of course be larger. +.SH "GLOSSARY" +.IX Header "GLOSSARY" +.IP "active" 4 +.IX Item "active" +A watcher is active as long as it has been started and not yet stopped. +See \*(L"\s-1WATCHER STATES\*(R"\s0 for details. +.IP "application" 4 +.IX Item "application" +In this document, an application is whatever is using libev. +.IP "backend" 4 +.IX Item "backend" +The part of the code dealing with the operating system interfaces. +.IP "callback" 4 +.IX Item "callback" +The address of a function that is called when some event has been +detected. Callbacks are being passed the event loop, the watcher that +received the event, and the actual event bitset. +.IP "callback/watcher invocation" 4 +.IX Item "callback/watcher invocation" +The act of calling the callback associated with a watcher. +.IP "event" 4 +.IX Item "event" +A change of state of some external event, such as data now being available +for reading on a file descriptor, time having passed or simply not having +any other events happening anymore. +.Sp +In libev, events are represented as single bits (such as \f(CW\*(C`EV_READ\*(C'\fR or +\&\f(CW\*(C`EV_TIMER\*(C'\fR). +.IP "event library" 4 +.IX Item "event library" +A software package implementing an event model and loop. +.IP "event loop" 4 +.IX Item "event loop" +An entity that handles and processes external events and converts them +into callback invocations. +.IP "event model" 4 +.IX Item "event model" +The model used to describe how an event loop handles and processes +watchers and events. +.IP "pending" 4 +.IX Item "pending" +A watcher is pending as soon as the corresponding event has been +detected. See \*(L"\s-1WATCHER STATES\*(R"\s0 for details. +.IP "real time" 4 +.IX Item "real time" +The physical time that is observed. It is apparently strictly monotonic :) +.IP "wall-clock time" 4 +.IX Item "wall-clock time" +The time and date as shown on clocks. Unlike real time, it can actually +be wrong and jump forwards and backwards, e.g. when you adjust your +clock. +.IP "watcher" 4 +.IX Item "watcher" +A data structure that describes interest in certain events. Watchers need +to be started (attached to an event loop) before they can receive events. +.SH "AUTHOR" +.IX Header "AUTHOR" +Marc Lehmann , with repeated corrections by Mikael +Magnusson and Emanuele Giaquinta, and minor corrections by many others. diff --git a/shadowsocksr-libev/src/libev/ev.c b/shadowsocksr-libev/src/libev/ev.c new file mode 100644 index 00000000000..8a3ae88a157 --- /dev/null +++ b/shadowsocksr-libev/src/libev/ev.c @@ -0,0 +1,5097 @@ +/* + * libev event processing core, watcher management + * + * Copyright (c) 2007,2008,2009,2010,2011,2012,2013 Marc Alexander Lehmann + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- + * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- + * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- + * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, the contents of this file may be used under the terms of + * the GNU General Public License ("GPL") version 2 or any later version, + * in which case the provisions of the GPL are applicable instead of + * the above. If you wish to allow the use of your version of this file + * only under the terms of the GPL and not to allow others to use your + * version of this file under the BSD license, indicate your decision + * by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL. If you do not delete the + * provisions above, a recipient may use your version of this file under + * either the BSD or the GPL. + */ + +/* this big block deduces configuration from config.h */ +#ifndef EV_STANDALONE +# ifdef EV_CONFIG_H +# include EV_CONFIG_H +# else +# include "config.h" +# endif + +# if HAVE_FLOOR +# ifndef EV_USE_FLOOR +# define EV_USE_FLOOR 1 +# endif +# endif + +# if HAVE_CLOCK_SYSCALL +# ifndef EV_USE_CLOCK_SYSCALL +# define EV_USE_CLOCK_SYSCALL 1 +# ifndef EV_USE_REALTIME +# define EV_USE_REALTIME 0 +# endif +# ifndef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 1 +# endif +# endif +# elif !defined EV_USE_CLOCK_SYSCALL +# define EV_USE_CLOCK_SYSCALL 0 +# endif + +# if HAVE_CLOCK_GETTIME +# ifndef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 1 +# endif +# ifndef EV_USE_REALTIME +# define EV_USE_REALTIME 0 +# endif +# else +# ifndef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 0 +# endif +# ifndef EV_USE_REALTIME +# define EV_USE_REALTIME 0 +# endif +# endif + +# if HAVE_NANOSLEEP +# ifndef EV_USE_NANOSLEEP +# define EV_USE_NANOSLEEP EV_FEATURE_OS +# endif +# else +# undef EV_USE_NANOSLEEP +# define EV_USE_NANOSLEEP 0 +# endif + +# if HAVE_SELECT //&& HAVE_SYS_SELECT_H +# ifndef EV_USE_SELECT +# define EV_USE_SELECT EV_FEATURE_BACKENDS +# endif +# else +# undef EV_USE_SELECT +# define EV_USE_SELECT 0 +# endif + +# if HAVE_POLL && HAVE_POLL_H +# ifndef EV_USE_POLL +# define EV_USE_POLL EV_FEATURE_BACKENDS +# endif +# else +# undef EV_USE_POLL +# define EV_USE_POLL 0 +# endif + +# if HAVE_EPOLL_CTL && HAVE_SYS_EPOLL_H +# ifndef EV_USE_EPOLL +# define EV_USE_EPOLL EV_FEATURE_BACKENDS +# endif +# else +# undef EV_USE_EPOLL +# define EV_USE_EPOLL 0 +# endif + +# if HAVE_KQUEUE && HAVE_SYS_EVENT_H +# ifndef EV_USE_KQUEUE +# define EV_USE_KQUEUE EV_FEATURE_BACKENDS +# endif +# else +# undef EV_USE_KQUEUE +# define EV_USE_KQUEUE 0 +# endif + +# if HAVE_PORT_H && HAVE_PORT_CREATE +# ifndef EV_USE_PORT +# define EV_USE_PORT EV_FEATURE_BACKENDS +# endif +# else +# undef EV_USE_PORT +# define EV_USE_PORT 0 +# endif + +# if HAVE_INOTIFY_INIT && HAVE_SYS_INOTIFY_H +# ifndef EV_USE_INOTIFY +# define EV_USE_INOTIFY EV_FEATURE_OS +# endif +# else +# undef EV_USE_INOTIFY +# define EV_USE_INOTIFY 0 +# endif + +# if HAVE_SIGNALFD && HAVE_SYS_SIGNALFD_H +# ifndef EV_USE_SIGNALFD +# define EV_USE_SIGNALFD EV_FEATURE_OS +# endif +# else +# undef EV_USE_SIGNALFD +# define EV_USE_SIGNALFD 0 +# endif + +# if HAVE_EVENTFD +# ifndef EV_USE_EVENTFD +# define EV_USE_EVENTFD EV_FEATURE_OS +# endif +# else +# undef EV_USE_EVENTFD +# define EV_USE_EVENTFD 0 +# endif + +#endif + +#include +#include +#include +#include + +#include + +#include +#include +#include +#include +#include + +#include + +#ifdef EV_H +# include EV_H +#else +# include "ev.h" +#endif + +#if EV_NO_THREADS +# undef EV_NO_SMP +# define EV_NO_SMP 1 +# undef ECB_NO_THREADS +# define ECB_NO_THREADS 1 +#endif +#if EV_NO_SMP +# undef EV_NO_SMP +# define ECB_NO_SMP 1 +#endif + +#ifndef _WIN32 +# include +# include +# include +#else +# include +# define WIN32_LEAN_AND_MEAN +# include +# include +# ifndef EV_SELECT_IS_WINSOCKET +# define EV_SELECT_IS_WINSOCKET 1 +# endif +# undef EV_AVOID_STDIO +#endif + +/* OS X, in its infinite idiocy, actually HARDCODES + * a limit of 1024 into their select. Where people have brains, + * OS X engineers apparently have a vacuum. Or maybe they were + * ordered to have a vacuum, or they do anything for money. + * This might help. Or not. + */ +#define _DARWIN_UNLIMITED_SELECT 1 + +/* this block tries to deduce configuration from header-defined symbols and defaults */ + +/* try to deduce the maximum number of signals on this platform */ +#if defined EV_NSIG +/* use what's provided */ +#elif defined NSIG +# define EV_NSIG (NSIG) +#elif defined _NSIG +# define EV_NSIG (_NSIG) +#elif defined SIGMAX +# define EV_NSIG (SIGMAX+1) +#elif defined SIG_MAX +# define EV_NSIG (SIG_MAX+1) +#elif defined _SIG_MAX +# define EV_NSIG (_SIG_MAX+1) +#elif defined MAXSIG +# define EV_NSIG (MAXSIG+1) +#elif defined MAX_SIG +# define EV_NSIG (MAX_SIG+1) +#elif defined SIGARRAYSIZE +# define EV_NSIG (SIGARRAYSIZE) /* Assume ary[SIGARRAYSIZE] */ +#elif defined _sys_nsig +# define EV_NSIG (_sys_nsig) /* Solaris 2.5 */ +#else +# define EV_NSIG (8 * sizeof (sigset_t) + 1) +#endif + +#ifndef EV_USE_FLOOR +# define EV_USE_FLOOR 0 +#endif + +#ifndef EV_USE_CLOCK_SYSCALL +# if __linux && __GLIBC__ == 2 && __GLIBC_MINOR__ < 17 +# define EV_USE_CLOCK_SYSCALL EV_FEATURE_OS +# else +# define EV_USE_CLOCK_SYSCALL 0 +# endif +#endif + +#if !(_POSIX_TIMERS > 0) +# ifndef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 0 +# endif +# ifndef EV_USE_REALTIME +# define EV_USE_REALTIME 0 +# endif +#endif + +#ifndef EV_USE_MONOTONIC +# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0 +# define EV_USE_MONOTONIC EV_FEATURE_OS +# else +# define EV_USE_MONOTONIC 0 +# endif +#endif + +#ifndef EV_USE_REALTIME +# define EV_USE_REALTIME !EV_USE_CLOCK_SYSCALL +#endif + +#ifndef EV_USE_NANOSLEEP +# if _POSIX_C_SOURCE >= 199309L +# define EV_USE_NANOSLEEP EV_FEATURE_OS +# else +# define EV_USE_NANOSLEEP 0 +# endif +#endif + +#ifndef EV_USE_SELECT +# define EV_USE_SELECT EV_FEATURE_BACKENDS +#endif + +#ifndef EV_USE_POLL +# ifdef _WIN32 +# define EV_USE_POLL 0 +# else +# define EV_USE_POLL EV_FEATURE_BACKENDS +# endif +#endif + +#ifndef EV_USE_EPOLL +# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 4)) +# define EV_USE_EPOLL EV_FEATURE_BACKENDS +# else +# define EV_USE_EPOLL 0 +# endif +#endif + +#ifndef EV_USE_KQUEUE +# define EV_USE_KQUEUE 0 +#endif + +#ifndef EV_USE_PORT +# define EV_USE_PORT 0 +#endif + +#ifndef EV_USE_INOTIFY +# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 4)) +# define EV_USE_INOTIFY EV_FEATURE_OS +# else +# define EV_USE_INOTIFY 0 +# endif +#endif + +#ifndef EV_PID_HASHSIZE +# define EV_PID_HASHSIZE EV_FEATURE_DATA ? 16 : 1 +#endif + +#ifndef EV_INOTIFY_HASHSIZE +# define EV_INOTIFY_HASHSIZE EV_FEATURE_DATA ? 16 : 1 +#endif + +#ifndef EV_USE_EVENTFD +# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) +# define EV_USE_EVENTFD EV_FEATURE_OS +# else +# define EV_USE_EVENTFD 0 +# endif +#endif + +#ifndef EV_USE_SIGNALFD +# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 7)) +# define EV_USE_SIGNALFD EV_FEATURE_OS +# else +# define EV_USE_SIGNALFD 0 +# endif +#endif + +#if 0 /* debugging */ +# define EV_VERIFY 3 +# define EV_USE_4HEAP 1 +# define EV_HEAP_CACHE_AT 1 +#endif + +#ifndef EV_VERIFY +# define EV_VERIFY (EV_FEATURE_API ? 1 : 0) +#endif + +#ifndef EV_USE_4HEAP +# define EV_USE_4HEAP EV_FEATURE_DATA +#endif + +#ifndef EV_HEAP_CACHE_AT +# define EV_HEAP_CACHE_AT EV_FEATURE_DATA +#endif + +#ifdef ANDROID +/* supposedly, android doesn't typedef fd_mask */ +# undef EV_USE_SELECT +# define EV_USE_SELECT 0 +/* supposedly, we need to include syscall.h, not sys/syscall.h, so just disable */ +# undef EV_USE_CLOCK_SYSCALL +# define EV_USE_CLOCK_SYSCALL 0 +#endif + +/* aix's poll.h seems to cause lots of trouble */ +#ifdef _AIX +/* AIX has a completely broken poll.h header */ +# undef EV_USE_POLL +# define EV_USE_POLL 0 +#endif + +/* on linux, we can use a (slow) syscall to avoid a dependency on pthread, */ +/* which makes programs even slower. might work on other unices, too. */ +#if EV_USE_CLOCK_SYSCALL +# include +# ifdef SYS_clock_gettime +# define clock_gettime(id, ts) syscall (SYS_clock_gettime, (id), (ts)) +# undef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 1 +# else +# undef EV_USE_CLOCK_SYSCALL +# define EV_USE_CLOCK_SYSCALL 0 +# endif +#endif + +/* this block fixes any misconfiguration where we know we run into trouble otherwise */ + +#ifndef CLOCK_MONOTONIC +# undef EV_USE_MONOTONIC +# define EV_USE_MONOTONIC 0 +#endif + +#ifndef CLOCK_REALTIME +# undef EV_USE_REALTIME +# define EV_USE_REALTIME 0 +#endif + +#if !EV_STAT_ENABLE +# undef EV_USE_INOTIFY +# define EV_USE_INOTIFY 0 +#endif + +#if !EV_USE_NANOSLEEP +/* hp-ux has it in sys/time.h, which we unconditionally include above */ +# if !defined _WIN32 && !defined __hpux +# include +# endif +#endif + +#if EV_USE_INOTIFY +# include +# include +/* some very old inotify.h headers don't have IN_DONT_FOLLOW */ +# ifndef IN_DONT_FOLLOW +# undef EV_USE_INOTIFY +# define EV_USE_INOTIFY 0 +# endif +#endif + +#if EV_USE_EVENTFD +/* our minimum requirement is glibc 2.7 which has the stub, but not the header */ +# include +# ifndef EFD_NONBLOCK +# define EFD_NONBLOCK O_NONBLOCK +# endif +# ifndef EFD_CLOEXEC +# ifdef O_CLOEXEC +# define EFD_CLOEXEC O_CLOEXEC +# else +# define EFD_CLOEXEC 02000000 +# endif +# endif +EV_CPP(extern "C") int (eventfd) (unsigned int initval, int flags); +#endif + +#if EV_USE_SIGNALFD +/* our minimum requirement is glibc 2.7 which has the stub, but not the header */ +# include +# ifndef SFD_NONBLOCK +# define SFD_NONBLOCK O_NONBLOCK +# endif +# ifndef SFD_CLOEXEC +# ifdef O_CLOEXEC +# define SFD_CLOEXEC O_CLOEXEC +# else +# define SFD_CLOEXEC 02000000 +# endif +# endif +EV_CPP (extern "C") int signalfd (int fd, const sigset_t *mask, int flags); + +struct signalfd_siginfo +{ + uint32_t ssi_signo; + char pad[128 - sizeof (uint32_t)]; +}; +#endif + +/**/ + +#if EV_VERIFY >= 3 +# define EV_FREQUENT_CHECK ev_verify (EV_A) +#else +# define EV_FREQUENT_CHECK do { } while (0) +#endif + +/* + * This is used to work around floating point rounding problems. + * This value is good at least till the year 4000. + */ +#define MIN_INTERVAL 0.0001220703125 /* 1/2**13, good till 4000 */ +/*#define MIN_INTERVAL 0.00000095367431640625 /* 1/2**20, good till 2200 */ + +#define MIN_TIMEJUMP 1. /* minimum timejump that gets detected (if monotonic clock available) */ +#define MAX_BLOCKTIME 59.743 /* never wait longer than this time (to detect time jumps) */ + +#define EV_TV_SET(tv,t) do { tv.tv_sec = (long)t; tv.tv_usec = (long)((t - tv.tv_sec) * 1e6); } while (0) +#define EV_TS_SET(ts,t) do { ts.tv_sec = (long)t; ts.tv_nsec = (long)((t - ts.tv_sec) * 1e9); } while (0) + +/* the following is ecb.h embedded into libev - use update_ev_c to update from an external copy */ +/* ECB.H BEGIN */ +/* + * libecb - http://software.schmorp.de/pkg/libecb + * + * Copyright (©) 2009-2015 Marc Alexander Lehmann + * Copyright (©) 2011 Emanuele Giaquinta + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- + * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- + * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- + * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, the contents of this file may be used under the terms of + * the GNU General Public License ("GPL") version 2 or any later version, + * in which case the provisions of the GPL are applicable instead of + * the above. If you wish to allow the use of your version of this file + * only under the terms of the GPL and not to allow others to use your + * version of this file under the BSD license, indicate your decision + * by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL. If you do not delete the + * provisions above, a recipient may use your version of this file under + * either the BSD or the GPL. + */ + +#ifndef ECB_H +#define ECB_H + +/* 16 bits major, 16 bits minor */ +#define ECB_VERSION 0x00010005 + +#ifdef _WIN32 + typedef signed char int8_t; + typedef unsigned char uint8_t; + typedef signed short int16_t; + typedef unsigned short uint16_t; + typedef signed int int32_t; + typedef unsigned int uint32_t; + #if __GNUC__ + typedef signed long long int64_t; + typedef unsigned long long uint64_t; + #else /* _MSC_VER || __BORLANDC__ */ + typedef signed __int64 int64_t; + typedef unsigned __int64 uint64_t; + #endif + #ifdef _WIN64 + #define ECB_PTRSIZE 8 + typedef uint64_t uintptr_t; + typedef int64_t intptr_t; + #else + #define ECB_PTRSIZE 4 + typedef uint32_t uintptr_t; + typedef int32_t intptr_t; + #endif +#else + #include + #if (defined INTPTR_MAX ? INTPTR_MAX : ULONG_MAX) > 0xffffffffU + #define ECB_PTRSIZE 8 + #else + #define ECB_PTRSIZE 4 + #endif +#endif + +#define ECB_GCC_AMD64 (__amd64 || __amd64__ || __x86_64 || __x86_64__) +#define ECB_MSVC_AMD64 (_M_AMD64 || _M_X64) + +/* work around x32 idiocy by defining proper macros */ +#if ECB_GCC_AMD64 || ECB_MSVC_AMD64 + #if _ILP32 + #define ECB_AMD64_X32 1 + #else + #define ECB_AMD64 1 + #endif +#endif + +/* many compilers define _GNUC_ to some versions but then only implement + * what their idiot authors think are the "more important" extensions, + * causing enormous grief in return for some better fake benchmark numbers. + * or so. + * we try to detect these and simply assume they are not gcc - if they have + * an issue with that they should have done it right in the first place. + */ +#if !defined __GNUC_MINOR__ || defined __INTEL_COMPILER || defined __SUNPRO_C || defined __SUNPRO_CC || defined __llvm__ || defined __clang__ + #define ECB_GCC_VERSION(major,minor) 0 +#else + #define ECB_GCC_VERSION(major,minor) (__GNUC__ > (major) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor))) +#endif + +#define ECB_CLANG_VERSION(major,minor) (__clang_major__ > (major) || (__clang_major__ == (major) && __clang_minor__ >= (minor))) + +#if __clang__ && defined __has_builtin + #define ECB_CLANG_BUILTIN(x) __has_builtin (x) +#else + #define ECB_CLANG_BUILTIN(x) 0 +#endif + +#if __clang__ && defined __has_extension + #define ECB_CLANG_EXTENSION(x) __has_extension (x) +#else + #define ECB_CLANG_EXTENSION(x) 0 +#endif + +#define ECB_CPP (__cplusplus+0) +#define ECB_CPP11 (__cplusplus >= 201103L) + +#if ECB_CPP + #define ECB_C 0 + #define ECB_STDC_VERSION 0 +#else + #define ECB_C 1 + #define ECB_STDC_VERSION __STDC_VERSION__ +#endif + +#define ECB_C99 (ECB_STDC_VERSION >= 199901L) +#define ECB_C11 (ECB_STDC_VERSION >= 201112L) + +#if ECB_CPP + #define ECB_EXTERN_C extern "C" + #define ECB_EXTERN_C_BEG ECB_EXTERN_C { + #define ECB_EXTERN_C_END } +#else + #define ECB_EXTERN_C extern + #define ECB_EXTERN_C_BEG + #define ECB_EXTERN_C_END +#endif + +/*****************************************************************************/ + +/* ECB_NO_THREADS - ecb is not used by multiple threads, ever */ +/* ECB_NO_SMP - ecb might be used in multiple threads, but only on a single cpu */ + +#if ECB_NO_THREADS + #define ECB_NO_SMP 1 +#endif + +#if ECB_NO_SMP + #define ECB_MEMORY_FENCE do { } while (0) +#endif + +/* http://www-01.ibm.com/support/knowledgecenter/SSGH3R_13.1.0/com.ibm.xlcpp131.aix.doc/compiler_ref/compiler_builtins.html */ +#if __xlC__ && ECB_CPP + #include +#endif + +#if 1400 <= _MSC_VER + #include /* fence functions _ReadBarrier, also bit search functions _BitScanReverse */ +#endif + +#ifndef ECB_MEMORY_FENCE + #if ECB_GCC_VERSION(2,5) || defined __INTEL_COMPILER || (__llvm__ && __GNUC__) || __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110 + #if __i386 || __i386__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("lock; orb $0, -1(%%esp)" : : : "memory") + #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") + #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") + #elif ECB_GCC_AMD64 + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mfence" : : : "memory") + #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") + #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") + #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory") + #elif defined __ARM_ARCH_2__ \ + || defined __ARM_ARCH_3__ || defined __ARM_ARCH_3M__ \ + || defined __ARM_ARCH_4__ || defined __ARM_ARCH_4T__ \ + || defined __ARM_ARCH_5__ || defined __ARM_ARCH_5E__ \ + || defined __ARM_ARCH_5T__ || defined __ARM_ARCH_5TE__ \ + || defined __ARM_ARCH_5TEJ__ + /* should not need any, unless running old code on newer cpu - arm doesn't support that */ + #elif defined __ARM_ARCH_6__ || defined __ARM_ARCH_6J__ \ + || defined __ARM_ARCH_6K__ || defined __ARM_ARCH_6ZK__ \ + || defined __ARM_ARCH_6T2__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mcr p15,0,%0,c7,c10,5" : : "r" (0) : "memory") + #elif defined __ARM_ARCH_7__ || defined __ARM_ARCH_7A__ \ + || defined __ARM_ARCH_7R__ || defined __ARM_ARCH_7M__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb" : : : "memory") + #elif __aarch64__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("dmb ish" : : : "memory") + #elif (__sparc || __sparc__) && !(__sparc_v8__ || defined __sparcv8) + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad | #StoreStore | #StoreLoad" : : : "memory") + #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("membar #LoadStore | #LoadLoad" : : : "memory") + #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("membar #LoadStore | #StoreStore") + #elif defined __s390__ || defined __s390x__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("bcr 15,0" : : : "memory") + #elif defined __mips__ + /* GNU/Linux emulates sync on mips1 architectures, so we force its use */ + /* anybody else who still uses mips1 is supposed to send in their version, with detection code. */ + #define ECB_MEMORY_FENCE __asm__ __volatile__ (".set mips2; sync; .set mips0" : : : "memory") + #elif defined __alpha__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mb" : : : "memory") + #elif defined __hppa__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") + #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") + #elif defined __ia64__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mf" : : : "memory") + #elif defined __m68k__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") + #elif defined __m88k__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("tb1 0,%%r0,128" : : : "memory") + #elif defined __sh__ + #define ECB_MEMORY_FENCE __asm__ __volatile__ ("" : : : "memory") + #endif + #endif +#endif + +#ifndef ECB_MEMORY_FENCE + #if ECB_GCC_VERSION(4,7) + /* see comment below (stdatomic.h) about the C11 memory model. */ + #define ECB_MEMORY_FENCE __atomic_thread_fence (__ATOMIC_SEQ_CST) + #define ECB_MEMORY_FENCE_ACQUIRE __atomic_thread_fence (__ATOMIC_ACQUIRE) + #define ECB_MEMORY_FENCE_RELEASE __atomic_thread_fence (__ATOMIC_RELEASE) + + #elif ECB_CLANG_EXTENSION(c_atomic) + /* see comment below (stdatomic.h) about the C11 memory model. */ + #define ECB_MEMORY_FENCE __c11_atomic_thread_fence (__ATOMIC_SEQ_CST) + #define ECB_MEMORY_FENCE_ACQUIRE __c11_atomic_thread_fence (__ATOMIC_ACQUIRE) + #define ECB_MEMORY_FENCE_RELEASE __c11_atomic_thread_fence (__ATOMIC_RELEASE) + + #elif ECB_GCC_VERSION(4,4) || defined __INTEL_COMPILER || defined __clang__ + #define ECB_MEMORY_FENCE __sync_synchronize () + #elif _MSC_VER >= 1500 /* VC++ 2008 */ + /* apparently, microsoft broke all the memory barrier stuff in Visual Studio 2008... */ + #pragma intrinsic(_ReadBarrier,_WriteBarrier,_ReadWriteBarrier) + #define ECB_MEMORY_FENCE _ReadWriteBarrier (); MemoryBarrier() + #define ECB_MEMORY_FENCE_ACQUIRE _ReadWriteBarrier (); MemoryBarrier() /* according to msdn, _ReadBarrier is not a load fence */ + #define ECB_MEMORY_FENCE_RELEASE _WriteBarrier (); MemoryBarrier() + #elif _MSC_VER >= 1400 /* VC++ 2005 */ + #pragma intrinsic(_ReadBarrier,_WriteBarrier,_ReadWriteBarrier) + #define ECB_MEMORY_FENCE _ReadWriteBarrier () + #define ECB_MEMORY_FENCE_ACQUIRE _ReadWriteBarrier () /* according to msdn, _ReadBarrier is not a load fence */ + #define ECB_MEMORY_FENCE_RELEASE _WriteBarrier () + #elif defined _WIN32 + #include + #define ECB_MEMORY_FENCE MemoryBarrier () /* actually just xchg on x86... scary */ + #elif __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110 + #include + #define ECB_MEMORY_FENCE __machine_rw_barrier () + #define ECB_MEMORY_FENCE_ACQUIRE __machine_r_barrier () + #define ECB_MEMORY_FENCE_RELEASE __machine_w_barrier () + #elif __xlC__ + #define ECB_MEMORY_FENCE __sync () + #endif +#endif + +#ifndef ECB_MEMORY_FENCE + #if ECB_C11 && !defined __STDC_NO_ATOMICS__ + /* we assume that these memory fences work on all variables/all memory accesses, */ + /* not just C11 atomics and atomic accesses */ + #include + /* Unfortunately, neither gcc 4.7 nor clang 3.1 generate any instructions for */ + /* any fence other than seq_cst, which isn't very efficient for us. */ + /* Why that is, we don't know - either the C11 memory model is quite useless */ + /* for most usages, or gcc and clang have a bug */ + /* I *currently* lean towards the latter, and inefficiently implement */ + /* all three of ecb's fences as a seq_cst fence */ + /* Update, gcc-4.8 generates mfence for all c++ fences, but nothing */ + /* for all __atomic_thread_fence's except seq_cst */ + #define ECB_MEMORY_FENCE atomic_thread_fence (memory_order_seq_cst) + #endif +#endif + +#ifndef ECB_MEMORY_FENCE + #if !ECB_AVOID_PTHREADS + /* + * if you get undefined symbol references to pthread_mutex_lock, + * or failure to find pthread.h, then you should implement + * the ECB_MEMORY_FENCE operations for your cpu/compiler + * OR provide pthread.h and link against the posix thread library + * of your system. + */ + #include + #define ECB_NEEDS_PTHREADS 1 + #define ECB_MEMORY_FENCE_NEEDS_PTHREADS 1 + + static pthread_mutex_t ecb_mf_lock = PTHREAD_MUTEX_INITIALIZER; + #define ECB_MEMORY_FENCE do { pthread_mutex_lock (&ecb_mf_lock); pthread_mutex_unlock (&ecb_mf_lock); } while (0) + #endif +#endif + +#if !defined ECB_MEMORY_FENCE_ACQUIRE && defined ECB_MEMORY_FENCE + #define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE +#endif + +#if !defined ECB_MEMORY_FENCE_RELEASE && defined ECB_MEMORY_FENCE + #define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE +#endif + +/*****************************************************************************/ + +#if ECB_CPP + #define ecb_inline static inline +#elif ECB_GCC_VERSION(2,5) + #define ecb_inline static __inline__ +#elif ECB_C99 + #define ecb_inline static inline +#else + #define ecb_inline static +#endif + +#if ECB_GCC_VERSION(3,3) + #define ecb_restrict __restrict__ +#elif ECB_C99 + #define ecb_restrict restrict +#else + #define ecb_restrict +#endif + +typedef int ecb_bool; + +#define ECB_CONCAT_(a, b) a ## b +#define ECB_CONCAT(a, b) ECB_CONCAT_(a, b) +#define ECB_STRINGIFY_(a) # a +#define ECB_STRINGIFY(a) ECB_STRINGIFY_(a) +#define ECB_STRINGIFY_EXPR(expr) ((expr), ECB_STRINGIFY_ (expr)) + +#define ecb_function_ ecb_inline + +#if ECB_GCC_VERSION(3,1) || ECB_CLANG_VERSION(2,8) + #define ecb_attribute(attrlist) __attribute__ (attrlist) +#else + #define ecb_attribute(attrlist) +#endif + +#if ECB_GCC_VERSION(3,1) || ECB_CLANG_BUILTIN(__builtin_constant_p) + #define ecb_is_constant(expr) __builtin_constant_p (expr) +#else + /* possible C11 impl for integral types + typedef struct ecb_is_constant_struct ecb_is_constant_struct; + #define ecb_is_constant(expr) _Generic ((1 ? (struct ecb_is_constant_struct *)0 : (void *)((expr) - (expr)), ecb_is_constant_struct *: 0, default: 1)) */ + + #define ecb_is_constant(expr) 0 +#endif + +#if ECB_GCC_VERSION(3,1) || ECB_CLANG_BUILTIN(__builtin_expect) + #define ecb_expect(expr,value) __builtin_expect ((expr),(value)) +#else + #define ecb_expect(expr,value) (expr) +#endif + +#if ECB_GCC_VERSION(3,1) || ECB_CLANG_BUILTIN(__builtin_prefetch) + #define ecb_prefetch(addr,rw,locality) __builtin_prefetch (addr, rw, locality) +#else + #define ecb_prefetch(addr,rw,locality) +#endif + +/* no emulation for ecb_decltype */ +#if ECB_CPP11 + // older implementations might have problems with decltype(x)::type, work around it + template struct ecb_decltype_t { typedef T type; }; + #define ecb_decltype(x) ecb_decltype_t::type +#elif ECB_GCC_VERSION(3,0) || ECB_CLANG_VERSION(2,8) + #define ecb_decltype(x) __typeof__ (x) +#endif + +#if _MSC_VER >= 1300 + #define ecb_deprecated __declspec (deprecated) +#else + #define ecb_deprecated ecb_attribute ((__deprecated__)) +#endif + +#if _MSC_VER >= 1500 + #define ecb_deprecated_message(msg) __declspec (deprecated (msg)) +#elif ECB_GCC_VERSION(4,5) + #define ecb_deprecated_message(msg) ecb_attribute ((__deprecated__ (msg)) +#else + #define ecb_deprecated_message(msg) ecb_deprecated +#endif + +#if _MSC_VER >= 1400 + #define ecb_noinline __declspec (noinline) +#else + #define ecb_noinline ecb_attribute ((__noinline__)) +#endif + +#define ecb_unused ecb_attribute ((__unused__)) +#define ecb_const ecb_attribute ((__const__)) +#define ecb_pure ecb_attribute ((__pure__)) + +#if ECB_C11 || __IBMC_NORETURN + /* http://www-01.ibm.com/support/knowledgecenter/SSGH3R_13.1.0/com.ibm.xlcpp131.aix.doc/language_ref/noreturn.html */ + #define ecb_noreturn _Noreturn +#elif ECB_CPP11 + #define ecb_noreturn [[noreturn]] +#elif _MSC_VER >= 1200 + /* http://msdn.microsoft.com/en-us/library/k6ktzx3s.aspx */ + #define ecb_noreturn __declspec (noreturn) +#else + #define ecb_noreturn ecb_attribute ((__noreturn__)) +#endif + +#if ECB_GCC_VERSION(4,3) + #define ecb_artificial ecb_attribute ((__artificial__)) + #define ecb_hot ecb_attribute ((__hot__)) + #define ecb_cold ecb_attribute ((__cold__)) +#else + #define ecb_artificial + #define ecb_hot + #define ecb_cold +#endif + +/* put around conditional expressions if you are very sure that the */ +/* expression is mostly true or mostly false. note that these return */ +/* booleans, not the expression. */ +#define ecb_expect_false(expr) ecb_expect (!!(expr), 0) +#define ecb_expect_true(expr) ecb_expect (!!(expr), 1) +/* for compatibility to the rest of the world */ +#define ecb_likely(expr) ecb_expect_true (expr) +#define ecb_unlikely(expr) ecb_expect_false (expr) + +/* count trailing zero bits and count # of one bits */ +#if ECB_GCC_VERSION(3,4) \ + || (ECB_CLANG_BUILTIN(__builtin_clz) && ECB_CLANG_BUILTIN(__builtin_clzll) \ + && ECB_CLANG_BUILTIN(__builtin_ctz) && ECB_CLANG_BUILTIN(__builtin_ctzll) \ + && ECB_CLANG_BUILTIN(__builtin_popcount)) + /* we assume int == 32 bit, long == 32 or 64 bit and long long == 64 bit */ + #define ecb_ld32(x) (__builtin_clz (x) ^ 31) + #define ecb_ld64(x) (__builtin_clzll (x) ^ 63) + #define ecb_ctz32(x) __builtin_ctz (x) + #define ecb_ctz64(x) __builtin_ctzll (x) + #define ecb_popcount32(x) __builtin_popcount (x) + /* no popcountll */ +#else + ecb_function_ ecb_const int ecb_ctz32 (uint32_t x); + ecb_function_ ecb_const int + ecb_ctz32 (uint32_t x) + { +#if 1400 <= _MSC_VER && (_M_IX86 || _M_X64 || _M_IA64 || _M_ARM) + unsigned long r; + _BitScanForward (&r, x); + return (int)r; +#else + int r = 0; + + x &= ~x + 1; /* this isolates the lowest bit */ + +#if ECB_branchless_on_i386 + r += !!(x & 0xaaaaaaaa) << 0; + r += !!(x & 0xcccccccc) << 1; + r += !!(x & 0xf0f0f0f0) << 2; + r += !!(x & 0xff00ff00) << 3; + r += !!(x & 0xffff0000) << 4; +#else + if (x & 0xaaaaaaaa) r += 1; + if (x & 0xcccccccc) r += 2; + if (x & 0xf0f0f0f0) r += 4; + if (x & 0xff00ff00) r += 8; + if (x & 0xffff0000) r += 16; +#endif + + return r; +#endif + } + + ecb_function_ ecb_const int ecb_ctz64 (uint64_t x); + ecb_function_ ecb_const int + ecb_ctz64 (uint64_t x) + { +#if 1400 <= _MSC_VER && (_M_X64 || _M_IA64 || _M_ARM) + unsigned long r; + _BitScanForward64 (&r, x); + return (int)r; +#else + int shift = x & 0xffffffff ? 0 : 32; + return ecb_ctz32 (x >> shift) + shift; +#endif + } + + ecb_function_ ecb_const int ecb_popcount32 (uint32_t x); + ecb_function_ ecb_const int + ecb_popcount32 (uint32_t x) + { + x -= (x >> 1) & 0x55555555; + x = ((x >> 2) & 0x33333333) + (x & 0x33333333); + x = ((x >> 4) + x) & 0x0f0f0f0f; + x *= 0x01010101; + + return x >> 24; + } + + ecb_function_ ecb_const int ecb_ld32 (uint32_t x); + ecb_function_ ecb_const int ecb_ld32 (uint32_t x) + { +#if 1400 <= _MSC_VER && (_M_IX86 || _M_X64 || _M_IA64 || _M_ARM) + unsigned long r; + _BitScanReverse (&r, x); + return (int)r; +#else + int r = 0; + + if (x >> 16) { x >>= 16; r += 16; } + if (x >> 8) { x >>= 8; r += 8; } + if (x >> 4) { x >>= 4; r += 4; } + if (x >> 2) { x >>= 2; r += 2; } + if (x >> 1) { r += 1; } + + return r; +#endif + } + + ecb_function_ ecb_const int ecb_ld64 (uint64_t x); + ecb_function_ ecb_const int ecb_ld64 (uint64_t x) + { +#if 1400 <= _MSC_VER && (_M_X64 || _M_IA64 || _M_ARM) + unsigned long r; + _BitScanReverse64 (&r, x); + return (int)r; +#else + int r = 0; + + if (x >> 32) { x >>= 32; r += 32; } + + return r + ecb_ld32 (x); +#endif + } +#endif + +ecb_function_ ecb_const ecb_bool ecb_is_pot32 (uint32_t x); +ecb_function_ ecb_const ecb_bool ecb_is_pot32 (uint32_t x) { return !(x & (x - 1)); } +ecb_function_ ecb_const ecb_bool ecb_is_pot64 (uint64_t x); +ecb_function_ ecb_const ecb_bool ecb_is_pot64 (uint64_t x) { return !(x & (x - 1)); } + +ecb_function_ ecb_const uint8_t ecb_bitrev8 (uint8_t x); +ecb_function_ ecb_const uint8_t ecb_bitrev8 (uint8_t x) +{ + return ( (x * 0x0802U & 0x22110U) + | (x * 0x8020U & 0x88440U)) * 0x10101U >> 16; +} + +ecb_function_ ecb_const uint16_t ecb_bitrev16 (uint16_t x); +ecb_function_ ecb_const uint16_t ecb_bitrev16 (uint16_t x) +{ + x = ((x >> 1) & 0x5555) | ((x & 0x5555) << 1); + x = ((x >> 2) & 0x3333) | ((x & 0x3333) << 2); + x = ((x >> 4) & 0x0f0f) | ((x & 0x0f0f) << 4); + x = ( x >> 8 ) | ( x << 8); + + return x; +} + +ecb_function_ ecb_const uint32_t ecb_bitrev32 (uint32_t x); +ecb_function_ ecb_const uint32_t ecb_bitrev32 (uint32_t x) +{ + x = ((x >> 1) & 0x55555555) | ((x & 0x55555555) << 1); + x = ((x >> 2) & 0x33333333) | ((x & 0x33333333) << 2); + x = ((x >> 4) & 0x0f0f0f0f) | ((x & 0x0f0f0f0f) << 4); + x = ((x >> 8) & 0x00ff00ff) | ((x & 0x00ff00ff) << 8); + x = ( x >> 16 ) | ( x << 16); + + return x; +} + +/* popcount64 is only available on 64 bit cpus as gcc builtin */ +/* so for this version we are lazy */ +ecb_function_ ecb_const int ecb_popcount64 (uint64_t x); +ecb_function_ ecb_const int +ecb_popcount64 (uint64_t x) +{ + return ecb_popcount32 (x) + ecb_popcount32 (x >> 32); +} + +ecb_inline ecb_const uint8_t ecb_rotl8 (uint8_t x, unsigned int count); +ecb_inline ecb_const uint8_t ecb_rotr8 (uint8_t x, unsigned int count); +ecb_inline ecb_const uint16_t ecb_rotl16 (uint16_t x, unsigned int count); +ecb_inline ecb_const uint16_t ecb_rotr16 (uint16_t x, unsigned int count); +ecb_inline ecb_const uint32_t ecb_rotl32 (uint32_t x, unsigned int count); +ecb_inline ecb_const uint32_t ecb_rotr32 (uint32_t x, unsigned int count); +ecb_inline ecb_const uint64_t ecb_rotl64 (uint64_t x, unsigned int count); +ecb_inline ecb_const uint64_t ecb_rotr64 (uint64_t x, unsigned int count); + +ecb_inline ecb_const uint8_t ecb_rotl8 (uint8_t x, unsigned int count) { return (x >> ( 8 - count)) | (x << count); } +ecb_inline ecb_const uint8_t ecb_rotr8 (uint8_t x, unsigned int count) { return (x << ( 8 - count)) | (x >> count); } +ecb_inline ecb_const uint16_t ecb_rotl16 (uint16_t x, unsigned int count) { return (x >> (16 - count)) | (x << count); } +ecb_inline ecb_const uint16_t ecb_rotr16 (uint16_t x, unsigned int count) { return (x << (16 - count)) | (x >> count); } +ecb_inline ecb_const uint32_t ecb_rotl32 (uint32_t x, unsigned int count) { return (x >> (32 - count)) | (x << count); } +ecb_inline ecb_const uint32_t ecb_rotr32 (uint32_t x, unsigned int count) { return (x << (32 - count)) | (x >> count); } +ecb_inline ecb_const uint64_t ecb_rotl64 (uint64_t x, unsigned int count) { return (x >> (64 - count)) | (x << count); } +ecb_inline ecb_const uint64_t ecb_rotr64 (uint64_t x, unsigned int count) { return (x << (64 - count)) | (x >> count); } + +#if ECB_GCC_VERSION(4,3) || (ECB_CLANG_BUILTIN(__builtin_bswap32) && ECB_CLANG_BUILTIN(__builtin_bswap64)) + #if ECB_GCC_VERSION(4,8) || ECB_CLANG_BUILTIN(__builtin_bswap16) + #define ecb_bswap16(x) __builtin_bswap16 (x) + #else + #define ecb_bswap16(x) (__builtin_bswap32 (x) >> 16) + #endif + #define ecb_bswap32(x) __builtin_bswap32 (x) + #define ecb_bswap64(x) __builtin_bswap64 (x) +#elif _MSC_VER + #include + #define ecb_bswap16(x) ((uint16_t)_byteswap_ushort ((uint16_t)(x))) + #define ecb_bswap32(x) ((uint32_t)_byteswap_ulong ((uint32_t)(x))) + #define ecb_bswap64(x) ((uint64_t)_byteswap_uint64 ((uint64_t)(x))) +#else + ecb_function_ ecb_const uint16_t ecb_bswap16 (uint16_t x); + ecb_function_ ecb_const uint16_t + ecb_bswap16 (uint16_t x) + { + return ecb_rotl16 (x, 8); + } + + ecb_function_ ecb_const uint32_t ecb_bswap32 (uint32_t x); + ecb_function_ ecb_const uint32_t + ecb_bswap32 (uint32_t x) + { + return (((uint32_t)ecb_bswap16 (x)) << 16) | ecb_bswap16 (x >> 16); + } + + ecb_function_ ecb_const uint64_t ecb_bswap64 (uint64_t x); + ecb_function_ ecb_const uint64_t + ecb_bswap64 (uint64_t x) + { + return (((uint64_t)ecb_bswap32 (x)) << 32) | ecb_bswap32 (x >> 32); + } +#endif + +#if ECB_GCC_VERSION(4,5) || ECB_CLANG_BUILTIN(__builtin_unreachable) + #define ecb_unreachable() __builtin_unreachable () +#else + /* this seems to work fine, but gcc always emits a warning for it :/ */ + ecb_inline ecb_noreturn void ecb_unreachable (void); + ecb_inline ecb_noreturn void ecb_unreachable (void) { } +#endif + +/* try to tell the compiler that some condition is definitely true */ +#define ecb_assume(cond) if (!(cond)) ecb_unreachable (); else 0 + +ecb_inline ecb_const uint32_t ecb_byteorder_helper (void); +ecb_inline ecb_const uint32_t +ecb_byteorder_helper (void) +{ + /* the union code still generates code under pressure in gcc, */ + /* but less than using pointers, and always seems to */ + /* successfully return a constant. */ + /* the reason why we have this horrible preprocessor mess */ + /* is to avoid it in all cases, at least on common architectures */ + /* or when using a recent enough gcc version (>= 4.6) */ +#if (defined __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \ + || ((__i386 || __i386__ || _M_IX86 || ECB_GCC_AMD64 || ECB_MSVC_AMD64) && !__VOS__) + #define ECB_LITTLE_ENDIAN 1 + return 0x44332211; +#elif (defined __BYTE_ORDER__ && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \ + || ((__AARCH64EB__ || __MIPSEB__ || __ARMEB__) && !__VOS__) + #define ECB_BIG_ENDIAN 1 + return 0x11223344; +#else + union + { + uint8_t c[4]; + uint32_t u; + } u = { 0x11, 0x22, 0x33, 0x44 }; + return u.u; +#endif +} + +ecb_inline ecb_const ecb_bool ecb_big_endian (void); +ecb_inline ecb_const ecb_bool ecb_big_endian (void) { return ecb_byteorder_helper () == 0x11223344; } +ecb_inline ecb_const ecb_bool ecb_little_endian (void); +ecb_inline ecb_const ecb_bool ecb_little_endian (void) { return ecb_byteorder_helper () == 0x44332211; } + +#if ECB_GCC_VERSION(3,0) || ECB_C99 + #define ecb_mod(m,n) ((m) % (n) + ((m) % (n) < 0 ? (n) : 0)) +#else + #define ecb_mod(m,n) ((m) < 0 ? ((n) - 1 - ((-1 - (m)) % (n))) : ((m) % (n))) +#endif + +#if ECB_CPP + template + static inline T ecb_div_rd (T val, T div) + { + return val < 0 ? - ((-val + div - 1) / div) : (val ) / div; + } + template + static inline T ecb_div_ru (T val, T div) + { + return val < 0 ? - ((-val ) / div) : (val + div - 1) / div; + } +#else + #define ecb_div_rd(val,div) ((val) < 0 ? - ((-(val) + (div) - 1) / (div)) : ((val) ) / (div)) + #define ecb_div_ru(val,div) ((val) < 0 ? - ((-(val) ) / (div)) : ((val) + (div) - 1) / (div)) +#endif + +#if ecb_cplusplus_does_not_suck + /* does not work for local types (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm) */ + template + static inline int ecb_array_length (const T (&arr)[N]) + { + return N; + } +#else + #define ecb_array_length(name) (sizeof (name) / sizeof (name [0])) +#endif + +ecb_function_ ecb_const uint32_t ecb_binary16_to_binary32 (uint32_t x); +ecb_function_ ecb_const uint32_t +ecb_binary16_to_binary32 (uint32_t x) +{ + unsigned int s = (x & 0x8000) << (31 - 15); + int e = (x >> 10) & 0x001f; + unsigned int m = x & 0x03ff; + + if (ecb_expect_false (e == 31)) + /* infinity or NaN */ + e = 255 - (127 - 15); + else if (ecb_expect_false (!e)) + { + if (ecb_expect_true (!m)) + /* zero, handled by code below by forcing e to 0 */ + e = 0 - (127 - 15); + else + { + /* subnormal, renormalise */ + unsigned int s = 10 - ecb_ld32 (m); + + m = (m << s) & 0x3ff; /* mask implicit bit */ + e -= s - 1; + } + } + + /* e and m now are normalised, or zero, (or inf or nan) */ + e += 127 - 15; + + return s | (e << 23) | (m << (23 - 10)); +} + +ecb_function_ ecb_const uint16_t ecb_binary32_to_binary16 (uint32_t x); +ecb_function_ ecb_const uint16_t +ecb_binary32_to_binary16 (uint32_t x) +{ + unsigned int s = (x >> 16) & 0x00008000; /* sign bit, the easy part */ + unsigned int e = ((x >> 23) & 0x000000ff) - (127 - 15); /* the desired exponent */ + unsigned int m = x & 0x007fffff; + + x &= 0x7fffffff; + + /* if it's within range of binary16 normals, use fast path */ + if (ecb_expect_true (0x38800000 <= x && x <= 0x477fefff)) + { + /* mantissa round-to-even */ + m += 0x00000fff + ((m >> (23 - 10)) & 1); + + /* handle overflow */ + if (ecb_expect_false (m >= 0x00800000)) + { + m >>= 1; + e += 1; + } + + return s | (e << 10) | (m >> (23 - 10)); + } + + /* handle large numbers and infinity */ + if (ecb_expect_true (0x477fefff < x && x <= 0x7f800000)) + return s | 0x7c00; + + /* handle zero, subnormals and small numbers */ + if (ecb_expect_true (x < 0x38800000)) + { + /* zero */ + if (ecb_expect_true (!x)) + return s; + + /* handle subnormals */ + + /* too small, will be zero */ + if (e < (14 - 24)) /* might not be sharp, but is good enough */ + return s; + + m |= 0x00800000; /* make implicit bit explicit */ + + /* very tricky - we need to round to the nearest e (+10) bit value */ + { + unsigned int bits = 14 - e; + unsigned int half = (1 << (bits - 1)) - 1; + unsigned int even = (m >> bits) & 1; + + /* if this overflows, we will end up with a normalised number */ + m = (m + half + even) >> bits; + } + + return s | m; + } + + /* handle NaNs, preserve leftmost nan bits, but make sure we don't turn them into infinities */ + m >>= 13; + + return s | 0x7c00 | m | !m; +} + +/*******************************************************************************/ +/* floating point stuff, can be disabled by defining ECB_NO_LIBM */ + +/* basically, everything uses "ieee pure-endian" floating point numbers */ +/* the only noteworthy exception is ancient armle, which uses order 43218765 */ +#if 0 \ + || __i386 || __i386__ \ + || ECB_GCC_AMD64 \ + || __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ \ + || defined __s390__ || defined __s390x__ \ + || defined __mips__ \ + || defined __alpha__ \ + || defined __hppa__ \ + || defined __ia64__ \ + || defined __m68k__ \ + || defined __m88k__ \ + || defined __sh__ \ + || defined _M_IX86 || defined ECB_MSVC_AMD64 || defined _M_IA64 \ + || (defined __arm__ && (defined __ARM_EABI__ || defined __EABI__ || defined __VFP_FP__ || defined _WIN32_WCE || defined __ANDROID__)) \ + || defined __aarch64__ + #define ECB_STDFP 1 + #include /* for memcpy */ +#else + #define ECB_STDFP 0 +#endif + +#ifndef ECB_NO_LIBM + + #include /* for frexp*, ldexp*, INFINITY, NAN */ + + /* only the oldest of old doesn't have this one. solaris. */ + #ifdef INFINITY + #define ECB_INFINITY INFINITY + #else + #define ECB_INFINITY HUGE_VAL + #endif + + #ifdef NAN + #define ECB_NAN NAN + #else + #define ECB_NAN ECB_INFINITY + #endif + + #if ECB_C99 || _XOPEN_VERSION >= 600 || _POSIX_VERSION >= 200112L + #define ecb_ldexpf(x,e) ldexpf ((x), (e)) + #define ecb_frexpf(x,e) frexpf ((x), (e)) + #else + #define ecb_ldexpf(x,e) (float) ldexp ((double) (x), (e)) + #define ecb_frexpf(x,e) (float) frexp ((double) (x), (e)) + #endif + + /* convert a float to ieee single/binary32 */ + ecb_function_ ecb_const uint32_t ecb_float_to_binary32 (float x); + ecb_function_ ecb_const uint32_t + ecb_float_to_binary32 (float x) + { + uint32_t r; + + #if ECB_STDFP + memcpy (&r, &x, 4); + #else + /* slow emulation, works for anything but -0 */ + uint32_t m; + int e; + + if (x == 0e0f ) return 0x00000000U; + if (x > +3.40282346638528860e+38f) return 0x7f800000U; + if (x < -3.40282346638528860e+38f) return 0xff800000U; + if (x != x ) return 0x7fbfffffU; + + m = ecb_frexpf (x, &e) * 0x1000000U; + + r = m & 0x80000000U; + + if (r) + m = -m; + + if (e <= -126) + { + m &= 0xffffffU; + m >>= (-125 - e); + e = -126; + } + + r |= (e + 126) << 23; + r |= m & 0x7fffffU; + #endif + + return r; + } + + /* converts an ieee single/binary32 to a float */ + ecb_function_ ecb_const float ecb_binary32_to_float (uint32_t x); + ecb_function_ ecb_const float + ecb_binary32_to_float (uint32_t x) + { + float r; + + #if ECB_STDFP + memcpy (&r, &x, 4); + #else + /* emulation, only works for normals and subnormals and +0 */ + int neg = x >> 31; + int e = (x >> 23) & 0xffU; + + x &= 0x7fffffU; + + if (e) + x |= 0x800000U; + else + e = 1; + + /* we distrust ldexpf a bit and do the 2**-24 scaling by an extra multiply */ + r = ecb_ldexpf (x * (0.5f / 0x800000U), e - 126); + + r = neg ? -r : r; + #endif + + return r; + } + + /* convert a double to ieee double/binary64 */ + ecb_function_ ecb_const uint64_t ecb_double_to_binary64 (double x); + ecb_function_ ecb_const uint64_t + ecb_double_to_binary64 (double x) + { + uint64_t r; + + #if ECB_STDFP + memcpy (&r, &x, 8); + #else + /* slow emulation, works for anything but -0 */ + uint64_t m; + int e; + + if (x == 0e0 ) return 0x0000000000000000U; + if (x > +1.79769313486231470e+308) return 0x7ff0000000000000U; + if (x < -1.79769313486231470e+308) return 0xfff0000000000000U; + if (x != x ) return 0X7ff7ffffffffffffU; + + m = frexp (x, &e) * 0x20000000000000U; + + r = m & 0x8000000000000000;; + + if (r) + m = -m; + + if (e <= -1022) + { + m &= 0x1fffffffffffffU; + m >>= (-1021 - e); + e = -1022; + } + + r |= ((uint64_t)(e + 1022)) << 52; + r |= m & 0xfffffffffffffU; + #endif + + return r; + } + + /* converts an ieee double/binary64 to a double */ + ecb_function_ ecb_const double ecb_binary64_to_double (uint64_t x); + ecb_function_ ecb_const double + ecb_binary64_to_double (uint64_t x) + { + double r; + + #if ECB_STDFP + memcpy (&r, &x, 8); + #else + /* emulation, only works for normals and subnormals and +0 */ + int neg = x >> 63; + int e = (x >> 52) & 0x7ffU; + + x &= 0xfffffffffffffU; + + if (e) + x |= 0x10000000000000U; + else + e = 1; + + /* we distrust ldexp a bit and do the 2**-53 scaling by an extra multiply */ + r = ldexp (x * (0.5 / 0x10000000000000U), e - 1022); + + r = neg ? -r : r; + #endif + + return r; + } + + /* convert a float to ieee half/binary16 */ + ecb_function_ ecb_const uint16_t ecb_float_to_binary16 (float x); + ecb_function_ ecb_const uint16_t + ecb_float_to_binary16 (float x) + { + return ecb_binary32_to_binary16 (ecb_float_to_binary32 (x)); + } + + /* convert an ieee half/binary16 to float */ + ecb_function_ ecb_const float ecb_binary16_to_float (uint16_t x); + ecb_function_ ecb_const float + ecb_binary16_to_float (uint16_t x) + { + return ecb_binary32_to_float (ecb_binary16_to_binary32 (x)); + } + +#endif + +#endif + +/* ECB.H END */ + +#if ECB_MEMORY_FENCE_NEEDS_PTHREADS +/* if your architecture doesn't need memory fences, e.g. because it is + * single-cpu/core, or if you use libev in a project that doesn't use libev + * from multiple threads, then you can define ECB_AVOID_PTHREADS when compiling + * libev, in which cases the memory fences become nops. + * alternatively, you can remove this #error and link against libpthread, + * which will then provide the memory fences. + */ +# error "memory fences not defined for your architecture, please report" +#endif + +#ifndef ECB_MEMORY_FENCE +# define ECB_MEMORY_FENCE do { } while (0) +# define ECB_MEMORY_FENCE_ACQUIRE ECB_MEMORY_FENCE +# define ECB_MEMORY_FENCE_RELEASE ECB_MEMORY_FENCE +#endif + +#define expect_false(cond) ecb_expect_false (cond) +#define expect_true(cond) ecb_expect_true (cond) +#define noinline ecb_noinline + +#define inline_size ecb_inline + +#if EV_FEATURE_CODE +# define inline_speed ecb_inline +#else +# define inline_speed static noinline +#endif + +#define NUMPRI (EV_MAXPRI - EV_MINPRI + 1) + +#if EV_MINPRI == EV_MAXPRI +# define ABSPRI(w) (((W)w), 0) +#else +# define ABSPRI(w) (((W)w)->priority - EV_MINPRI) +#endif + +#define EMPTY /* required for microsofts broken pseudo-c compiler */ +#define EMPTY2(a,b) /* used to suppress some warnings */ + +typedef ev_watcher *W; +typedef ev_watcher_list *WL; +typedef ev_watcher_time *WT; + +#define ev_active(w) ((W)(w))->active +#define ev_at(w) ((WT)(w))->at + +#if EV_USE_REALTIME +/* sig_atomic_t is used to avoid per-thread variables or locking but still */ +/* giving it a reasonably high chance of working on typical architectures */ +static EV_ATOMIC_T have_realtime; /* did clock_gettime (CLOCK_REALTIME) work? */ +#endif + +#if EV_USE_MONOTONIC +static EV_ATOMIC_T have_monotonic; /* did clock_gettime (CLOCK_MONOTONIC) work? */ +#endif + +#ifndef EV_FD_TO_WIN32_HANDLE +# define EV_FD_TO_WIN32_HANDLE(fd) _get_osfhandle (fd) +#endif +#ifndef EV_WIN32_HANDLE_TO_FD +# define EV_WIN32_HANDLE_TO_FD(handle) _open_osfhandle (handle, 0) +#endif +#ifndef EV_WIN32_CLOSE_FD +# define EV_WIN32_CLOSE_FD(fd) close (fd) +#endif + +#ifdef _WIN32 +# include "ev_win32.c" +#endif + +/*****************************************************************************/ + +/* define a suitable floor function (only used by periodics atm) */ + +#if EV_USE_FLOOR +# include +# define ev_floor(v) floor (v) +#else + +#include + +/* a floor() replacement function, should be independent of ev_tstamp type */ +static ev_tstamp noinline +ev_floor (ev_tstamp v) +{ + /* the choice of shift factor is not terribly important */ +#if FLT_RADIX != 2 /* assume FLT_RADIX == 10 */ + const ev_tstamp shift = sizeof (unsigned long) >= 8 ? 10000000000000000000. : 1000000000.; +#else + const ev_tstamp shift = sizeof (unsigned long) >= 8 ? 18446744073709551616. : 4294967296.; +#endif + + /* argument too large for an unsigned long? */ + if (expect_false (v >= shift)) + { + ev_tstamp f; + + if (v == v - 1.) + return v; /* very large number */ + + f = shift * ev_floor (v * (1. / shift)); + return f + ev_floor (v - f); + } + + /* special treatment for negative args? */ + if (expect_false (v < 0.)) + { + ev_tstamp f = -ev_floor (-v); + + return f - (f == v ? 0 : 1); + } + + /* fits into an unsigned long */ + return (unsigned long)v; +} + +#endif + +/*****************************************************************************/ + +#ifdef __linux +# include +#endif + +static unsigned int noinline ecb_cold +ev_linux_version (void) +{ +#ifdef __linux + unsigned int v = 0; + struct utsname buf; + int i; + char *p = buf.release; + + if (uname (&buf)) + return 0; + + for (i = 3+1; --i; ) + { + unsigned int c = 0; + + for (;;) + { + if (*p >= '0' && *p <= '9') + c = c * 10 + *p++ - '0'; + else + { + p += *p == '.'; + break; + } + } + + v = (v << 8) | c; + } + + return v; +#else + return 0; +#endif +} + +/*****************************************************************************/ + +#if EV_AVOID_STDIO +static void noinline ecb_cold +ev_printerr (const char *msg) +{ + write (STDERR_FILENO, msg, strlen (msg)); +} +#endif + +static void (*syserr_cb)(const char *msg) EV_THROW; + +void ecb_cold +ev_set_syserr_cb (void (*cb)(const char *msg) EV_THROW) EV_THROW +{ + syserr_cb = cb; +} + +static void noinline ecb_cold +ev_syserr (const char *msg) +{ + if (!msg) + msg = "(libev) system error"; + + if (syserr_cb) + syserr_cb (msg); + else + { +#if EV_AVOID_STDIO + ev_printerr (msg); + ev_printerr (": "); + ev_printerr (strerror (errno)); + ev_printerr ("\n"); +#else + perror (msg); +#endif + abort (); + } +} + +static void * +ev_realloc_emul (void *ptr, long size) EV_THROW +{ + /* some systems, notably openbsd and darwin, fail to properly + * implement realloc (x, 0) (as required by both ansi c-89 and + * the single unix specification, so work around them here. + * recently, also (at least) fedora and debian started breaking it, + * despite documenting it otherwise. + */ + + if (size) + return realloc (ptr, size); + + free (ptr); + return 0; +} + +static void *(*alloc)(void *ptr, long size) EV_THROW = ev_realloc_emul; + +void ecb_cold +ev_set_allocator (void *(*cb)(void *ptr, long size) EV_THROW) EV_THROW +{ + alloc = cb; +} + +inline_speed void * +ev_realloc (void *ptr, long size) +{ + ptr = alloc (ptr, size); + + if (!ptr && size) + { +#if EV_AVOID_STDIO + ev_printerr ("(libev) memory allocation failed, aborting.\n"); +#else + fprintf (stderr, "(libev) cannot allocate %ld bytes, aborting.", size); +#endif + abort (); + } + + return ptr; +} + +#define ev_malloc(size) ev_realloc (0, (size)) +#define ev_free(ptr) ev_realloc ((ptr), 0) + +/*****************************************************************************/ + +/* set in reify when reification needed */ +#define EV_ANFD_REIFY 1 + +/* file descriptor info structure */ +typedef struct +{ + WL head; + unsigned char events; /* the events watched for */ + unsigned char reify; /* flag set when this ANFD needs reification (EV_ANFD_REIFY, EV__IOFDSET) */ + unsigned char emask; /* the epoll backend stores the actual kernel mask in here */ + unsigned char unused; +#if EV_USE_EPOLL + unsigned int egen; /* generation counter to counter epoll bugs */ +#endif +#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP + SOCKET handle; +#endif +#if EV_USE_IOCP + OVERLAPPED or, ow; +#endif +} ANFD; + +/* stores the pending event set for a given watcher */ +typedef struct +{ + W w; + int events; /* the pending event set for the given watcher */ +} ANPENDING; + +#if EV_USE_INOTIFY +/* hash table entry per inotify-id */ +typedef struct +{ + WL head; +} ANFS; +#endif + +/* Heap Entry */ +#if EV_HEAP_CACHE_AT + /* a heap element */ + typedef struct { + ev_tstamp at; + WT w; + } ANHE; + + #define ANHE_w(he) (he).w /* access watcher, read-write */ + #define ANHE_at(he) (he).at /* access cached at, read-only */ + #define ANHE_at_cache(he) (he).at = (he).w->at /* update at from watcher */ +#else + /* a heap element */ + typedef WT ANHE; + + #define ANHE_w(he) (he) + #define ANHE_at(he) (he)->at + #define ANHE_at_cache(he) +#endif + +#if EV_MULTIPLICITY + + struct ev_loop + { + ev_tstamp ev_rt_now; + #define ev_rt_now ((loop)->ev_rt_now) + #define VAR(name,decl) decl; + #include "ev_vars.h" + #undef VAR + }; + #include "ev_wrap.h" + + static struct ev_loop default_loop_struct; + EV_API_DECL struct ev_loop *ev_default_loop_ptr = 0; /* needs to be initialised to make it a definition despite extern */ + +#else + + EV_API_DECL ev_tstamp ev_rt_now = 0; /* needs to be initialised to make it a definition despite extern */ + #define VAR(name,decl) static decl; + #include "ev_vars.h" + #undef VAR + + static int ev_default_loop_ptr; + +#endif + +#if EV_FEATURE_API +# define EV_RELEASE_CB if (expect_false (release_cb)) release_cb (EV_A) +# define EV_ACQUIRE_CB if (expect_false (acquire_cb)) acquire_cb (EV_A) +# define EV_INVOKE_PENDING invoke_cb (EV_A) +#else +# define EV_RELEASE_CB (void)0 +# define EV_ACQUIRE_CB (void)0 +# define EV_INVOKE_PENDING ev_invoke_pending (EV_A) +#endif + +#define EVBREAK_RECURSE 0x80 + +/*****************************************************************************/ + +#ifndef EV_HAVE_EV_TIME +ev_tstamp +ev_time (void) EV_THROW +{ +#if EV_USE_REALTIME + if (expect_true (have_realtime)) + { + struct timespec ts; + clock_gettime (CLOCK_REALTIME, &ts); + return ts.tv_sec + ts.tv_nsec * 1e-9; + } +#endif + + struct timeval tv; + gettimeofday (&tv, 0); + return tv.tv_sec + tv.tv_usec * 1e-6; +} +#endif + +inline_size ev_tstamp +get_clock (void) +{ +#if EV_USE_MONOTONIC + if (expect_true (have_monotonic)) + { + struct timespec ts; + clock_gettime (CLOCK_MONOTONIC, &ts); + return ts.tv_sec + ts.tv_nsec * 1e-9; + } +#endif + + return ev_time (); +} + +#if EV_MULTIPLICITY +ev_tstamp +ev_now (EV_P) EV_THROW +{ + return ev_rt_now; +} +#endif + +void +ev_sleep (ev_tstamp delay) EV_THROW +{ + if (delay > 0.) + { +#if EV_USE_NANOSLEEP + struct timespec ts; + + EV_TS_SET (ts, delay); + nanosleep (&ts, 0); +#elif defined _WIN32 + Sleep ((unsigned long)(delay * 1e3)); +#else + struct timeval tv; + + /* here we rely on sys/time.h + sys/types.h + unistd.h providing select */ + /* something not guaranteed by newer posix versions, but guaranteed */ + /* by older ones */ + EV_TV_SET (tv, delay); + select (0, 0, 0, 0, &tv); +#endif + } +} + +/*****************************************************************************/ + +#define MALLOC_ROUND 4096 /* prefer to allocate in chunks of this size, must be 2**n and >> 4 longs */ + +/* find a suitable new size for the given array, */ +/* hopefully by rounding to a nice-to-malloc size */ +inline_size int +array_nextsize (int elem, int cur, int cnt) +{ + int ncur = cur + 1; + + do + ncur <<= 1; + while (cnt > ncur); + + /* if size is large, round to MALLOC_ROUND - 4 * longs to accommodate malloc overhead */ + if (elem * ncur > MALLOC_ROUND - sizeof (void *) * 4) + { + ncur *= elem; + ncur = (ncur + elem + (MALLOC_ROUND - 1) + sizeof (void *) * 4) & ~(MALLOC_ROUND - 1); + ncur = ncur - sizeof (void *) * 4; + ncur /= elem; + } + + return ncur; +} + +static void * noinline ecb_cold +array_realloc (int elem, void *base, int *cur, int cnt) +{ + *cur = array_nextsize (elem, *cur, cnt); + return ev_realloc (base, elem * *cur); +} + +#define array_init_zero(base,count) \ + memset ((void *)(base), 0, sizeof (*(base)) * (count)) + +#define array_needsize(type,base,cur,cnt,init) \ + if (expect_false ((cnt) > (cur))) \ + { \ + int ecb_unused ocur_ = (cur); \ + (base) = (type *)array_realloc \ + (sizeof (type), (base), &(cur), (cnt)); \ + init ((base) + (ocur_), (cur) - ocur_); \ + } + +#if 0 +#define array_slim(type,stem) \ + if (stem ## max < array_roundsize (stem ## cnt >> 2)) \ + { \ + stem ## max = array_roundsize (stem ## cnt >> 1); \ + base = (type *)ev_realloc (base, sizeof (type) * (stem ## max));\ + fprintf (stderr, "slimmed down " # stem " to %d\n", stem ## max);/*D*/\ + } +#endif + +#define array_free(stem, idx) \ + ev_free (stem ## s idx); stem ## cnt idx = stem ## max idx = 0; stem ## s idx = 0 + +/*****************************************************************************/ + +/* dummy callback for pending events */ +static void noinline +pendingcb (EV_P_ ev_prepare *w, int revents) +{ +} + +void noinline +ev_feed_event (EV_P_ void *w, int revents) EV_THROW +{ + W w_ = (W)w; + int pri = ABSPRI (w_); + + if (expect_false (w_->pending)) + pendings [pri][w_->pending - 1].events |= revents; + else + { + w_->pending = ++pendingcnt [pri]; + array_needsize (ANPENDING, pendings [pri], pendingmax [pri], w_->pending, EMPTY2); + pendings [pri][w_->pending - 1].w = w_; + pendings [pri][w_->pending - 1].events = revents; + } + + pendingpri = NUMPRI - 1; +} + +inline_speed void +feed_reverse (EV_P_ W w) +{ + array_needsize (W, rfeeds, rfeedmax, rfeedcnt + 1, EMPTY2); + rfeeds [rfeedcnt++] = w; +} + +inline_size void +feed_reverse_done (EV_P_ int revents) +{ + do + ev_feed_event (EV_A_ rfeeds [--rfeedcnt], revents); + while (rfeedcnt); +} + +inline_speed void +queue_events (EV_P_ W *events, int eventcnt, int type) +{ + int i; + + for (i = 0; i < eventcnt; ++i) + ev_feed_event (EV_A_ events [i], type); +} + +/*****************************************************************************/ + +inline_speed void +fd_event_nocheck (EV_P_ int fd, int revents) +{ + ANFD *anfd = anfds + fd; + ev_io *w; + + for (w = (ev_io *)anfd->head; w; w = (ev_io *)((WL)w)->next) + { + int ev = w->events & revents; + + if (ev) + ev_feed_event (EV_A_ (W)w, ev); + } +} + +/* do not submit kernel events for fds that have reify set */ +/* because that means they changed while we were polling for new events */ +inline_speed void +fd_event (EV_P_ int fd, int revents) +{ + ANFD *anfd = anfds + fd; + + if (expect_true (!anfd->reify)) + fd_event_nocheck (EV_A_ fd, revents); +} + +void +ev_feed_fd_event (EV_P_ int fd, int revents) EV_THROW +{ + if (fd >= 0 && fd < anfdmax) + fd_event_nocheck (EV_A_ fd, revents); +} + +/* make sure the external fd watch events are in-sync */ +/* with the kernel/libev internal state */ +inline_size void +fd_reify (EV_P) +{ + int i; + +#if EV_SELECT_IS_WINSOCKET || EV_USE_IOCP + for (i = 0; i < fdchangecnt; ++i) + { + int fd = fdchanges [i]; + ANFD *anfd = anfds + fd; + + if (anfd->reify & EV__IOFDSET && anfd->head) + { + SOCKET handle = EV_FD_TO_WIN32_HANDLE (fd); + + if (handle != anfd->handle) + { + unsigned long arg; + + assert (("libev: only socket fds supported in this configuration", ioctlsocket (handle, FIONREAD, &arg) == 0)); + + /* handle changed, but fd didn't - we need to do it in two steps */ + backend_modify (EV_A_ fd, anfd->events, 0); + anfd->events = 0; + anfd->handle = handle; + } + } + } +#endif + + for (i = 0; i < fdchangecnt; ++i) + { + int fd = fdchanges [i]; + ANFD *anfd = anfds + fd; + ev_io *w; + + unsigned char o_events = anfd->events; + unsigned char o_reify = anfd->reify; + + anfd->reify = 0; + + /*if (expect_true (o_reify & EV_ANFD_REIFY)) probably a deoptimisation */ + { + anfd->events = 0; + + for (w = (ev_io *)anfd->head; w; w = (ev_io *)((WL)w)->next) + anfd->events |= (unsigned char)w->events; + + if (o_events != anfd->events) + o_reify = EV__IOFDSET; /* actually |= */ + } + + if (o_reify & EV__IOFDSET) + backend_modify (EV_A_ fd, o_events, anfd->events); + } + + fdchangecnt = 0; +} + +/* something about the given fd changed */ +inline_size void +fd_change (EV_P_ int fd, int flags) +{ + unsigned char reify = anfds [fd].reify; + anfds [fd].reify |= flags; + + if (expect_true (!reify)) + { + ++fdchangecnt; + array_needsize (int, fdchanges, fdchangemax, fdchangecnt, EMPTY2); + fdchanges [fdchangecnt - 1] = fd; + } +} + +/* the given fd is invalid/unusable, so make sure it doesn't hurt us anymore */ +inline_speed void ecb_cold +fd_kill (EV_P_ int fd) +{ + ev_io *w; + + while ((w = (ev_io *)anfds [fd].head)) + { + ev_io_stop (EV_A_ w); + ev_feed_event (EV_A_ (W)w, EV_ERROR | EV_READ | EV_WRITE); + } +} + +/* check whether the given fd is actually valid, for error recovery */ +inline_size int ecb_cold +fd_valid (int fd) +{ +#ifdef _WIN32 + return EV_FD_TO_WIN32_HANDLE (fd) != -1; +#else + return fcntl (fd, F_GETFD) != -1; +#endif +} + +/* called on EBADF to verify fds */ +static void noinline ecb_cold +fd_ebadf (EV_P) +{ + int fd; + + for (fd = 0; fd < anfdmax; ++fd) + if (anfds [fd].events) + if (!fd_valid (fd) && errno == EBADF) + fd_kill (EV_A_ fd); +} + +/* called on ENOMEM in select/poll to kill some fds and retry */ +static void noinline ecb_cold +fd_enomem (EV_P) +{ + int fd; + + for (fd = anfdmax; fd--; ) + if (anfds [fd].events) + { + fd_kill (EV_A_ fd); + break; + } +} + +/* usually called after fork if backend needs to re-arm all fds from scratch */ +static void noinline +fd_rearm_all (EV_P) +{ + int fd; + + for (fd = 0; fd < anfdmax; ++fd) + if (anfds [fd].events) + { + anfds [fd].events = 0; + anfds [fd].emask = 0; + fd_change (EV_A_ fd, EV__IOFDSET | EV_ANFD_REIFY); + } +} + +/* used to prepare libev internal fd's */ +/* this is not fork-safe */ +inline_speed void +fd_intern (int fd) +{ +#ifdef _WIN32 + unsigned long arg = 1; + ioctlsocket (EV_FD_TO_WIN32_HANDLE (fd), FIONBIO, &arg); +#else + fcntl (fd, F_SETFD, FD_CLOEXEC); + fcntl (fd, F_SETFL, O_NONBLOCK); +#endif +} + +/*****************************************************************************/ + +/* + * the heap functions want a real array index. array index 0 is guaranteed to not + * be in-use at any time. the first heap entry is at array [HEAP0]. DHEAP gives + * the branching factor of the d-tree. + */ + +/* + * at the moment we allow libev the luxury of two heaps, + * a small-code-size 2-heap one and a ~1.5kb larger 4-heap + * which is more cache-efficient. + * the difference is about 5% with 50000+ watchers. + */ +#if EV_USE_4HEAP + +#define DHEAP 4 +#define HEAP0 (DHEAP - 1) /* index of first element in heap */ +#define HPARENT(k) ((((k) - HEAP0 - 1) / DHEAP) + HEAP0) +#define UPHEAP_DONE(p,k) ((p) == (k)) + +/* away from the root */ +inline_speed void +downheap (ANHE *heap, int N, int k) +{ + ANHE he = heap [k]; + ANHE *E = heap + N + HEAP0; + + for (;;) + { + ev_tstamp minat; + ANHE *minpos; + ANHE *pos = heap + DHEAP * (k - HEAP0) + HEAP0 + 1; + + /* find minimum child */ + if (expect_true (pos + DHEAP - 1 < E)) + { + /* fast path */ (minpos = pos + 0), (minat = ANHE_at (*minpos)); + if ( ANHE_at (pos [1]) < minat) (minpos = pos + 1), (minat = ANHE_at (*minpos)); + if ( ANHE_at (pos [2]) < minat) (minpos = pos + 2), (minat = ANHE_at (*minpos)); + if ( ANHE_at (pos [3]) < minat) (minpos = pos + 3), (minat = ANHE_at (*minpos)); + } + else if (pos < E) + { + /* slow path */ (minpos = pos + 0), (minat = ANHE_at (*minpos)); + if (pos + 1 < E && ANHE_at (pos [1]) < minat) (minpos = pos + 1), (minat = ANHE_at (*minpos)); + if (pos + 2 < E && ANHE_at (pos [2]) < minat) (minpos = pos + 2), (minat = ANHE_at (*minpos)); + if (pos + 3 < E && ANHE_at (pos [3]) < minat) (minpos = pos + 3), (minat = ANHE_at (*minpos)); + } + else + break; + + if (ANHE_at (he) <= minat) + break; + + heap [k] = *minpos; + ev_active (ANHE_w (*minpos)) = k; + + k = minpos - heap; + } + + heap [k] = he; + ev_active (ANHE_w (he)) = k; +} + +#else /* 4HEAP */ + +#define HEAP0 1 +#define HPARENT(k) ((k) >> 1) +#define UPHEAP_DONE(p,k) (!(p)) + +/* away from the root */ +inline_speed void +downheap (ANHE *heap, int N, int k) +{ + ANHE he = heap [k]; + + for (;;) + { + int c = k << 1; + + if (c >= N + HEAP0) + break; + + c += c + 1 < N + HEAP0 && ANHE_at (heap [c]) > ANHE_at (heap [c + 1]) + ? 1 : 0; + + if (ANHE_at (he) <= ANHE_at (heap [c])) + break; + + heap [k] = heap [c]; + ev_active (ANHE_w (heap [k])) = k; + + k = c; + } + + heap [k] = he; + ev_active (ANHE_w (he)) = k; +} +#endif + +/* towards the root */ +inline_speed void +upheap (ANHE *heap, int k) +{ + ANHE he = heap [k]; + + for (;;) + { + int p = HPARENT (k); + + if (UPHEAP_DONE (p, k) || ANHE_at (heap [p]) <= ANHE_at (he)) + break; + + heap [k] = heap [p]; + ev_active (ANHE_w (heap [k])) = k; + k = p; + } + + heap [k] = he; + ev_active (ANHE_w (he)) = k; +} + +/* move an element suitably so it is in a correct place */ +inline_size void +adjustheap (ANHE *heap, int N, int k) +{ + if (k > HEAP0 && ANHE_at (heap [k]) <= ANHE_at (heap [HPARENT (k)])) + upheap (heap, k); + else + downheap (heap, N, k); +} + +/* rebuild the heap: this function is used only once and executed rarely */ +inline_size void +reheap (ANHE *heap, int N) +{ + int i; + + /* we don't use floyds algorithm, upheap is simpler and is more cache-efficient */ + /* also, this is easy to implement and correct for both 2-heaps and 4-heaps */ + for (i = 0; i < N; ++i) + upheap (heap, i + HEAP0); +} + +/*****************************************************************************/ + +/* associate signal watchers to a signal signal */ +typedef struct +{ + EV_ATOMIC_T pending; +#if EV_MULTIPLICITY + EV_P; +#endif + WL head; +} ANSIG; + +static ANSIG signals [EV_NSIG - 1]; + +/*****************************************************************************/ + +#if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE + +static void noinline ecb_cold +evpipe_init (EV_P) +{ + if (!ev_is_active (&pipe_w)) + { + int fds [2]; + +# if EV_USE_EVENTFD + fds [0] = -1; + fds [1] = eventfd (0, EFD_NONBLOCK | EFD_CLOEXEC); + if (fds [1] < 0 && errno == EINVAL) + fds [1] = eventfd (0, 0); + + if (fds [1] < 0) +# endif + { + while (pipe (fds)) + ev_syserr ("(libev) error creating signal/async pipe"); + + fd_intern (fds [0]); + } + + evpipe [0] = fds [0]; + + if (evpipe [1] < 0) + evpipe [1] = fds [1]; /* first call, set write fd */ + else + { + /* on subsequent calls, do not change evpipe [1] */ + /* so that evpipe_write can always rely on its value. */ + /* this branch does not do anything sensible on windows, */ + /* so must not be executed on windows */ + + dup2 (fds [1], evpipe [1]); + close (fds [1]); + } + + fd_intern (evpipe [1]); + + ev_io_set (&pipe_w, evpipe [0] < 0 ? evpipe [1] : evpipe [0], EV_READ); + ev_io_start (EV_A_ &pipe_w); + ev_unref (EV_A); /* watcher should not keep loop alive */ + } +} + +inline_speed void +evpipe_write (EV_P_ EV_ATOMIC_T *flag) +{ + ECB_MEMORY_FENCE; /* push out the write before this function was called, acquire flag */ + + if (expect_true (*flag)) + return; + + *flag = 1; + ECB_MEMORY_FENCE_RELEASE; /* make sure flag is visible before the wakeup */ + + pipe_write_skipped = 1; + + ECB_MEMORY_FENCE; /* make sure pipe_write_skipped is visible before we check pipe_write_wanted */ + + if (pipe_write_wanted) + { + int old_errno; + + pipe_write_skipped = 0; + ECB_MEMORY_FENCE_RELEASE; + + old_errno = errno; /* save errno because write will clobber it */ + +#if EV_USE_EVENTFD + if (evpipe [0] < 0) + { + uint64_t counter = 1; + write (evpipe [1], &counter, sizeof (uint64_t)); + } + else +#endif + { +#ifdef _WIN32 + WSABUF buf; + DWORD sent; + buf.buf = &buf; + buf.len = 1; + WSASend (EV_FD_TO_WIN32_HANDLE (evpipe [1]), &buf, 1, &sent, 0, 0, 0); +#else + write (evpipe [1], &(evpipe [1]), 1); +#endif + } + + errno = old_errno; + } +} + +/* called whenever the libev signal pipe */ +/* got some events (signal, async) */ +static void +pipecb (EV_P_ ev_io *iow, int revents) +{ + int i; + + if (revents & EV_READ) + { +#if EV_USE_EVENTFD + if (evpipe [0] < 0) + { + uint64_t counter; + read (evpipe [1], &counter, sizeof (uint64_t)); + } + else +#endif + { + char dummy[4]; +#ifdef _WIN32 + WSABUF buf; + DWORD recvd; + DWORD flags = 0; + buf.buf = dummy; + buf.len = sizeof (dummy); + WSARecv (EV_FD_TO_WIN32_HANDLE (evpipe [0]), &buf, 1, &recvd, &flags, 0, 0); +#else + read (evpipe [0], &dummy, sizeof (dummy)); +#endif + } + } + + pipe_write_skipped = 0; + + ECB_MEMORY_FENCE; /* push out skipped, acquire flags */ + +#if EV_SIGNAL_ENABLE + if (sig_pending) + { + sig_pending = 0; + + ECB_MEMORY_FENCE; + + for (i = EV_NSIG - 1; i--; ) + if (expect_false (signals [i].pending)) + ev_feed_signal_event (EV_A_ i + 1); + } +#endif + +#if EV_ASYNC_ENABLE + if (async_pending) + { + async_pending = 0; + + ECB_MEMORY_FENCE; + + for (i = asynccnt; i--; ) + if (asyncs [i]->sent) + { + asyncs [i]->sent = 0; + ECB_MEMORY_FENCE_RELEASE; + ev_feed_event (EV_A_ asyncs [i], EV_ASYNC); + } + } +#endif +} + +/*****************************************************************************/ + +void +ev_feed_signal (int signum) EV_THROW +{ +#if EV_MULTIPLICITY + EV_P; + ECB_MEMORY_FENCE_ACQUIRE; + EV_A = signals [signum - 1].loop; + + if (!EV_A) + return; +#endif + + signals [signum - 1].pending = 1; + evpipe_write (EV_A_ &sig_pending); +} + +static void +ev_sighandler (int signum) +{ +#ifdef _WIN32 + signal (signum, ev_sighandler); +#endif + + ev_feed_signal (signum); +} + +void noinline +ev_feed_signal_event (EV_P_ int signum) EV_THROW +{ + WL w; + + if (expect_false (signum <= 0 || signum >= EV_NSIG)) + return; + + --signum; + +#if EV_MULTIPLICITY + /* it is permissible to try to feed a signal to the wrong loop */ + /* or, likely more useful, feeding a signal nobody is waiting for */ + + if (expect_false (signals [signum].loop != EV_A)) + return; +#endif + + signals [signum].pending = 0; + ECB_MEMORY_FENCE_RELEASE; + + for (w = signals [signum].head; w; w = w->next) + ev_feed_event (EV_A_ (W)w, EV_SIGNAL); +} + +#if EV_USE_SIGNALFD +static void +sigfdcb (EV_P_ ev_io *iow, int revents) +{ + struct signalfd_siginfo si[2], *sip; /* these structs are big */ + + for (;;) + { + ssize_t res = read (sigfd, si, sizeof (si)); + + /* not ISO-C, as res might be -1, but works with SuS */ + for (sip = si; (char *)sip < (char *)si + res; ++sip) + ev_feed_signal_event (EV_A_ sip->ssi_signo); + + if (res < (ssize_t)sizeof (si)) + break; + } +} +#endif + +#endif + +/*****************************************************************************/ + +#if EV_CHILD_ENABLE +static WL childs [EV_PID_HASHSIZE]; + +static ev_signal childev; + +#ifndef WIFCONTINUED +# define WIFCONTINUED(status) 0 +#endif + +/* handle a single child status event */ +inline_speed void +child_reap (EV_P_ int chain, int pid, int status) +{ + ev_child *w; + int traced = WIFSTOPPED (status) || WIFCONTINUED (status); + + for (w = (ev_child *)childs [chain & ((EV_PID_HASHSIZE) - 1)]; w; w = (ev_child *)((WL)w)->next) + { + if ((w->pid == pid || !w->pid) + && (!traced || (w->flags & 1))) + { + ev_set_priority (w, EV_MAXPRI); /* need to do it *now*, this *must* be the same prio as the signal watcher itself */ + w->rpid = pid; + w->rstatus = status; + ev_feed_event (EV_A_ (W)w, EV_CHILD); + } + } +} + +#ifndef WCONTINUED +# define WCONTINUED 0 +#endif + +/* called on sigchld etc., calls waitpid */ +static void +childcb (EV_P_ ev_signal *sw, int revents) +{ + int pid, status; + + /* some systems define WCONTINUED but then fail to support it (linux 2.4) */ + if (0 >= (pid = waitpid (-1, &status, WNOHANG | WUNTRACED | WCONTINUED))) + if (!WCONTINUED + || errno != EINVAL + || 0 >= (pid = waitpid (-1, &status, WNOHANG | WUNTRACED))) + return; + + /* make sure we are called again until all children have been reaped */ + /* we need to do it this way so that the callback gets called before we continue */ + ev_feed_event (EV_A_ (W)sw, EV_SIGNAL); + + child_reap (EV_A_ pid, pid, status); + if ((EV_PID_HASHSIZE) > 1) + child_reap (EV_A_ 0, pid, status); /* this might trigger a watcher twice, but feed_event catches that */ +} + +#endif + +/*****************************************************************************/ + +#if EV_USE_IOCP +# include "ev_iocp.c" +#endif +#if EV_USE_PORT +# include "ev_port.c" +#endif +#if EV_USE_KQUEUE +# include "ev_kqueue.c" +#endif +#if EV_USE_EPOLL +# include "ev_epoll.c" +#endif +#if EV_USE_POLL +# include "ev_poll.c" +#endif +#if EV_USE_SELECT +# include "ev_select.c" +#endif + +int ecb_cold +ev_version_major (void) EV_THROW +{ + return EV_VERSION_MAJOR; +} + +int ecb_cold +ev_version_minor (void) EV_THROW +{ + return EV_VERSION_MINOR; +} + +/* return true if we are running with elevated privileges and should ignore env variables */ +int inline_size ecb_cold +enable_secure (void) +{ +#ifdef _WIN32 + return 0; +#else + return getuid () != geteuid () + || getgid () != getegid (); +#endif +} + +unsigned int ecb_cold +ev_supported_backends (void) EV_THROW +{ + unsigned int flags = 0; + + if (EV_USE_PORT ) flags |= EVBACKEND_PORT; + if (EV_USE_KQUEUE) flags |= EVBACKEND_KQUEUE; + if (EV_USE_EPOLL ) flags |= EVBACKEND_EPOLL; + if (EV_USE_POLL ) flags |= EVBACKEND_POLL; + if (EV_USE_SELECT) flags |= EVBACKEND_SELECT; + + return flags; +} + +unsigned int ecb_cold +ev_recommended_backends (void) EV_THROW +{ + unsigned int flags = ev_supported_backends (); + +#if !defined(__NetBSD__) && !defined(__FreeBSD__) + /* kqueue is borked on everything but netbsd apparently */ + /* it usually doesn't work correctly on anything but sockets and pipes */ + flags &= ~EVBACKEND_KQUEUE; +#endif +#ifdef __APPLE__ + /* only select works correctly on that "unix-certified" platform */ + flags &= ~EVBACKEND_KQUEUE; /* horribly broken, even for sockets */ + flags &= ~EVBACKEND_POLL; /* poll is based on kqueue from 10.5 onwards */ +#endif +#ifdef __FreeBSD__ + flags &= ~EVBACKEND_POLL; /* poll return value is unusable (http://forums.freebsd.org/archive/index.php/t-10270.html) */ +#endif + + return flags; +} + +unsigned int ecb_cold +ev_embeddable_backends (void) EV_THROW +{ + int flags = EVBACKEND_EPOLL | EVBACKEND_KQUEUE | EVBACKEND_PORT; + + /* epoll embeddability broken on all linux versions up to at least 2.6.23 */ + if (ev_linux_version () < 0x020620) /* disable it on linux < 2.6.32 */ + flags &= ~EVBACKEND_EPOLL; + + return flags; +} + +unsigned int +ev_backend (EV_P) EV_THROW +{ + return backend; +} + +#if EV_FEATURE_API +unsigned int +ev_iteration (EV_P) EV_THROW +{ + return loop_count; +} + +unsigned int +ev_depth (EV_P) EV_THROW +{ + return loop_depth; +} + +void +ev_set_io_collect_interval (EV_P_ ev_tstamp interval) EV_THROW +{ + io_blocktime = interval; +} + +void +ev_set_timeout_collect_interval (EV_P_ ev_tstamp interval) EV_THROW +{ + timeout_blocktime = interval; +} + +void +ev_set_userdata (EV_P_ void *data) EV_THROW +{ + userdata = data; +} + +void * +ev_userdata (EV_P) EV_THROW +{ + return userdata; +} + +void +ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_THROW +{ + invoke_cb = invoke_pending_cb; +} + +void +ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV_P) EV_THROW) EV_THROW +{ + release_cb = release; + acquire_cb = acquire; +} +#endif + +/* initialise a loop structure, must be zero-initialised */ +static void noinline ecb_cold +loop_init (EV_P_ unsigned int flags) EV_THROW +{ + if (!backend) + { + origflags = flags; + +#if EV_USE_REALTIME + if (!have_realtime) + { + struct timespec ts; + + if (!clock_gettime (CLOCK_REALTIME, &ts)) + have_realtime = 1; + } +#endif + +#if EV_USE_MONOTONIC + if (!have_monotonic) + { + struct timespec ts; + + if (!clock_gettime (CLOCK_MONOTONIC, &ts)) + have_monotonic = 1; + } +#endif + + /* pid check not overridable via env */ +#ifndef _WIN32 + if (flags & EVFLAG_FORKCHECK) + curpid = getpid (); +#endif + + if (!(flags & EVFLAG_NOENV) + && !enable_secure () + && getenv ("LIBEV_FLAGS")) + flags = atoi (getenv ("LIBEV_FLAGS")); + + ev_rt_now = ev_time (); + mn_now = get_clock (); + now_floor = mn_now; + rtmn_diff = ev_rt_now - mn_now; +#if EV_FEATURE_API + invoke_cb = ev_invoke_pending; +#endif + + io_blocktime = 0.; + timeout_blocktime = 0.; + backend = 0; + backend_fd = -1; + sig_pending = 0; +#if EV_ASYNC_ENABLE + async_pending = 0; +#endif + pipe_write_skipped = 0; + pipe_write_wanted = 0; + evpipe [0] = -1; + evpipe [1] = -1; +#if EV_USE_INOTIFY + fs_fd = flags & EVFLAG_NOINOTIFY ? -1 : -2; +#endif +#if EV_USE_SIGNALFD + sigfd = flags & EVFLAG_SIGNALFD ? -2 : -1; +#endif + + if (!(flags & EVBACKEND_MASK)) + flags |= ev_recommended_backends (); + +#if EV_USE_IOCP + if (!backend && (flags & EVBACKEND_IOCP )) backend = iocp_init (EV_A_ flags); +#endif +#if EV_USE_PORT + if (!backend && (flags & EVBACKEND_PORT )) backend = port_init (EV_A_ flags); +#endif +#if EV_USE_KQUEUE + if (!backend && (flags & EVBACKEND_KQUEUE)) backend = kqueue_init (EV_A_ flags); +#endif +#if EV_USE_EPOLL + if (!backend && (flags & EVBACKEND_EPOLL )) backend = epoll_init (EV_A_ flags); +#endif +#if EV_USE_POLL + if (!backend && (flags & EVBACKEND_POLL )) backend = poll_init (EV_A_ flags); +#endif +#if EV_USE_SELECT + if (!backend && (flags & EVBACKEND_SELECT)) backend = select_init (EV_A_ flags); +#endif + + ev_prepare_init (&pending_w, pendingcb); + +#if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE + ev_init (&pipe_w, pipecb); + ev_set_priority (&pipe_w, EV_MAXPRI); +#endif + } +} + +/* free up a loop structure */ +void ecb_cold +ev_loop_destroy (EV_P) +{ + int i; + +#if EV_MULTIPLICITY + /* mimic free (0) */ + if (!EV_A) + return; +#endif + +#if EV_CLEANUP_ENABLE + /* queue cleanup watchers (and execute them) */ + if (expect_false (cleanupcnt)) + { + queue_events (EV_A_ (W *)cleanups, cleanupcnt, EV_CLEANUP); + EV_INVOKE_PENDING; + } +#endif + +#if EV_CHILD_ENABLE + if (ev_is_default_loop (EV_A) && ev_is_active (&childev)) + { + ev_ref (EV_A); /* child watcher */ + ev_signal_stop (EV_A_ &childev); + } +#endif + + if (ev_is_active (&pipe_w)) + { + /*ev_ref (EV_A);*/ + /*ev_io_stop (EV_A_ &pipe_w);*/ + + if (evpipe [0] >= 0) EV_WIN32_CLOSE_FD (evpipe [0]); + if (evpipe [1] >= 0) EV_WIN32_CLOSE_FD (evpipe [1]); + } + +#if EV_USE_SIGNALFD + if (ev_is_active (&sigfd_w)) + close (sigfd); +#endif + +#if EV_USE_INOTIFY + if (fs_fd >= 0) + close (fs_fd); +#endif + + if (backend_fd >= 0) + close (backend_fd); + +#if EV_USE_IOCP + if (backend == EVBACKEND_IOCP ) iocp_destroy (EV_A); +#endif +#if EV_USE_PORT + if (backend == EVBACKEND_PORT ) port_destroy (EV_A); +#endif +#if EV_USE_KQUEUE + if (backend == EVBACKEND_KQUEUE) kqueue_destroy (EV_A); +#endif +#if EV_USE_EPOLL + if (backend == EVBACKEND_EPOLL ) epoll_destroy (EV_A); +#endif +#if EV_USE_POLL + if (backend == EVBACKEND_POLL ) poll_destroy (EV_A); +#endif +#if EV_USE_SELECT + if (backend == EVBACKEND_SELECT) select_destroy (EV_A); +#endif + + for (i = NUMPRI; i--; ) + { + array_free (pending, [i]); +#if EV_IDLE_ENABLE + array_free (idle, [i]); +#endif + } + + ev_free (anfds); anfds = 0; anfdmax = 0; + + /* have to use the microsoft-never-gets-it-right macro */ + array_free (rfeed, EMPTY); + array_free (fdchange, EMPTY); + array_free (timer, EMPTY); +#if EV_PERIODIC_ENABLE + array_free (periodic, EMPTY); +#endif +#if EV_FORK_ENABLE + array_free (fork, EMPTY); +#endif +#if EV_CLEANUP_ENABLE + array_free (cleanup, EMPTY); +#endif + array_free (prepare, EMPTY); + array_free (check, EMPTY); +#if EV_ASYNC_ENABLE + array_free (async, EMPTY); +#endif + + backend = 0; + +#if EV_MULTIPLICITY + if (ev_is_default_loop (EV_A)) +#endif + ev_default_loop_ptr = 0; +#if EV_MULTIPLICITY + else + ev_free (EV_A); +#endif +} + +#if EV_USE_INOTIFY +inline_size void infy_fork (EV_P); +#endif + +inline_size void +loop_fork (EV_P) +{ +#if EV_USE_PORT + if (backend == EVBACKEND_PORT ) port_fork (EV_A); +#endif +#if EV_USE_KQUEUE + if (backend == EVBACKEND_KQUEUE) kqueue_fork (EV_A); +#endif +#if EV_USE_EPOLL + if (backend == EVBACKEND_EPOLL ) epoll_fork (EV_A); +#endif +#if EV_USE_INOTIFY + infy_fork (EV_A); +#endif + +#if EV_SIGNAL_ENABLE || EV_ASYNC_ENABLE + if (ev_is_active (&pipe_w) && postfork != 2) + { + /* pipe_write_wanted must be false now, so modifying fd vars should be safe */ + + ev_ref (EV_A); + ev_io_stop (EV_A_ &pipe_w); + + if (evpipe [0] >= 0) + EV_WIN32_CLOSE_FD (evpipe [0]); + + evpipe_init (EV_A); + /* iterate over everything, in case we missed something before */ + ev_feed_event (EV_A_ &pipe_w, EV_CUSTOM); + } +#endif + + postfork = 0; +} + +#if EV_MULTIPLICITY + +struct ev_loop * ecb_cold +ev_loop_new (unsigned int flags) EV_THROW +{ + EV_P = (struct ev_loop *)ev_malloc (sizeof (struct ev_loop)); + + memset (EV_A, 0, sizeof (struct ev_loop)); + loop_init (EV_A_ flags); + + if (ev_backend (EV_A)) + return EV_A; + + ev_free (EV_A); + return 0; +} + +#endif /* multiplicity */ + +#if EV_VERIFY +static void noinline ecb_cold +verify_watcher (EV_P_ W w) +{ + assert (("libev: watcher has invalid priority", ABSPRI (w) >= 0 && ABSPRI (w) < NUMPRI)); + + if (w->pending) + assert (("libev: pending watcher not on pending queue", pendings [ABSPRI (w)][w->pending - 1].w == w)); +} + +static void noinline ecb_cold +verify_heap (EV_P_ ANHE *heap, int N) +{ + int i; + + for (i = HEAP0; i < N + HEAP0; ++i) + { + assert (("libev: active index mismatch in heap", ev_active (ANHE_w (heap [i])) == i)); + assert (("libev: heap condition violated", i == HEAP0 || ANHE_at (heap [HPARENT (i)]) <= ANHE_at (heap [i]))); + assert (("libev: heap at cache mismatch", ANHE_at (heap [i]) == ev_at (ANHE_w (heap [i])))); + + verify_watcher (EV_A_ (W)ANHE_w (heap [i])); + } +} + +static void noinline ecb_cold +array_verify (EV_P_ W *ws, int cnt) +{ + while (cnt--) + { + assert (("libev: active index mismatch", ev_active (ws [cnt]) == cnt + 1)); + verify_watcher (EV_A_ ws [cnt]); + } +} +#endif + +#if EV_FEATURE_API +void ecb_cold +ev_verify (EV_P) EV_THROW +{ +#if EV_VERIFY + int i; + WL w, w2; + + assert (activecnt >= -1); + + assert (fdchangemax >= fdchangecnt); + for (i = 0; i < fdchangecnt; ++i) + assert (("libev: negative fd in fdchanges", fdchanges [i] >= 0)); + + assert (anfdmax >= 0); + for (i = 0; i < anfdmax; ++i) + { + int j = 0; + + for (w = w2 = anfds [i].head; w; w = w->next) + { + verify_watcher (EV_A_ (W)w); + + if (j++ & 1) + { + assert (("libev: io watcher list contains a loop", w != w2)); + w2 = w2->next; + } + + assert (("libev: inactive fd watcher on anfd list", ev_active (w) == 1)); + assert (("libev: fd mismatch between watcher and anfd", ((ev_io *)w)->fd == i)); + } + } + + assert (timermax >= timercnt); + verify_heap (EV_A_ timers, timercnt); + +#if EV_PERIODIC_ENABLE + assert (periodicmax >= periodiccnt); + verify_heap (EV_A_ periodics, periodiccnt); +#endif + + for (i = NUMPRI; i--; ) + { + assert (pendingmax [i] >= pendingcnt [i]); +#if EV_IDLE_ENABLE + assert (idleall >= 0); + assert (idlemax [i] >= idlecnt [i]); + array_verify (EV_A_ (W *)idles [i], idlecnt [i]); +#endif + } + +#if EV_FORK_ENABLE + assert (forkmax >= forkcnt); + array_verify (EV_A_ (W *)forks, forkcnt); +#endif + +#if EV_CLEANUP_ENABLE + assert (cleanupmax >= cleanupcnt); + array_verify (EV_A_ (W *)cleanups, cleanupcnt); +#endif + +#if EV_ASYNC_ENABLE + assert (asyncmax >= asynccnt); + array_verify (EV_A_ (W *)asyncs, asynccnt); +#endif + +#if EV_PREPARE_ENABLE + assert (preparemax >= preparecnt); + array_verify (EV_A_ (W *)prepares, preparecnt); +#endif + +#if EV_CHECK_ENABLE + assert (checkmax >= checkcnt); + array_verify (EV_A_ (W *)checks, checkcnt); +#endif + +# if 0 +#if EV_CHILD_ENABLE + for (w = (ev_child *)childs [chain & ((EV_PID_HASHSIZE) - 1)]; w; w = (ev_child *)((WL)w)->next) + for (signum = EV_NSIG; signum--; ) if (signals [signum].pending) +#endif +# endif +#endif +} +#endif + +#if EV_MULTIPLICITY +struct ev_loop * ecb_cold +#else +int +#endif +ev_default_loop (unsigned int flags) EV_THROW +{ + if (!ev_default_loop_ptr) + { +#if EV_MULTIPLICITY + EV_P = ev_default_loop_ptr = &default_loop_struct; +#else + ev_default_loop_ptr = 1; +#endif + + loop_init (EV_A_ flags); + + if (ev_backend (EV_A)) + { +#if EV_CHILD_ENABLE + ev_signal_init (&childev, childcb, SIGCHLD); + ev_set_priority (&childev, EV_MAXPRI); + ev_signal_start (EV_A_ &childev); + ev_unref (EV_A); /* child watcher should not keep loop alive */ +#endif + } + else + ev_default_loop_ptr = 0; + } + + return ev_default_loop_ptr; +} + +void +ev_loop_fork (EV_P) EV_THROW +{ + postfork = 1; +} + +/*****************************************************************************/ + +void +ev_invoke (EV_P_ void *w, int revents) +{ + EV_CB_INVOKE ((W)w, revents); +} + +unsigned int +ev_pending_count (EV_P) EV_THROW +{ + int pri; + unsigned int count = 0; + + for (pri = NUMPRI; pri--; ) + count += pendingcnt [pri]; + + return count; +} + +void noinline +ev_invoke_pending (EV_P) +{ + pendingpri = NUMPRI; + + while (pendingpri) /* pendingpri possibly gets modified in the inner loop */ + { + --pendingpri; + + while (pendingcnt [pendingpri]) + { + ANPENDING *p = pendings [pendingpri] + --pendingcnt [pendingpri]; + + p->w->pending = 0; + EV_CB_INVOKE (p->w, p->events); + EV_FREQUENT_CHECK; + } + } +} + +#if EV_IDLE_ENABLE +/* make idle watchers pending. this handles the "call-idle */ +/* only when higher priorities are idle" logic */ +inline_size void +idle_reify (EV_P) +{ + if (expect_false (idleall)) + { + int pri; + + for (pri = NUMPRI; pri--; ) + { + if (pendingcnt [pri]) + break; + + if (idlecnt [pri]) + { + queue_events (EV_A_ (W *)idles [pri], idlecnt [pri], EV_IDLE); + break; + } + } + } +} +#endif + +/* make timers pending */ +inline_size void +timers_reify (EV_P) +{ + EV_FREQUENT_CHECK; + + if (timercnt && ANHE_at (timers [HEAP0]) < mn_now) + { + do + { + ev_timer *w = (ev_timer *)ANHE_w (timers [HEAP0]); + + /*assert (("libev: inactive timer on timer heap detected", ev_is_active (w)));*/ + + /* first reschedule or stop timer */ + if (w->repeat) + { + ev_at (w) += w->repeat; + if (ev_at (w) < mn_now) + ev_at (w) = mn_now; + + assert (("libev: negative ev_timer repeat value found while processing timers", w->repeat > 0.)); + + ANHE_at_cache (timers [HEAP0]); + downheap (timers, timercnt, HEAP0); + } + else + ev_timer_stop (EV_A_ w); /* nonrepeating: stop timer */ + + EV_FREQUENT_CHECK; + feed_reverse (EV_A_ (W)w); + } + while (timercnt && ANHE_at (timers [HEAP0]) < mn_now); + + feed_reverse_done (EV_A_ EV_TIMER); + } +} + +#if EV_PERIODIC_ENABLE + +static void noinline +periodic_recalc (EV_P_ ev_periodic *w) +{ + ev_tstamp interval = w->interval > MIN_INTERVAL ? w->interval : MIN_INTERVAL; + ev_tstamp at = w->offset + interval * ev_floor ((ev_rt_now - w->offset) / interval); + + /* the above almost always errs on the low side */ + while (at <= ev_rt_now) + { + ev_tstamp nat = at + w->interval; + + /* when resolution fails us, we use ev_rt_now */ + if (expect_false (nat == at)) + { + at = ev_rt_now; + break; + } + + at = nat; + } + + ev_at (w) = at; +} + +/* make periodics pending */ +inline_size void +periodics_reify (EV_P) +{ + EV_FREQUENT_CHECK; + + while (periodiccnt && ANHE_at (periodics [HEAP0]) < ev_rt_now) + { + do + { + ev_periodic *w = (ev_periodic *)ANHE_w (periodics [HEAP0]); + + /*assert (("libev: inactive timer on periodic heap detected", ev_is_active (w)));*/ + + /* first reschedule or stop timer */ + if (w->reschedule_cb) + { + ev_at (w) = w->reschedule_cb (w, ev_rt_now); + + assert (("libev: ev_periodic reschedule callback returned time in the past", ev_at (w) >= ev_rt_now)); + + ANHE_at_cache (periodics [HEAP0]); + downheap (periodics, periodiccnt, HEAP0); + } + else if (w->interval) + { + periodic_recalc (EV_A_ w); + ANHE_at_cache (periodics [HEAP0]); + downheap (periodics, periodiccnt, HEAP0); + } + else + ev_periodic_stop (EV_A_ w); /* nonrepeating: stop timer */ + + EV_FREQUENT_CHECK; + feed_reverse (EV_A_ (W)w); + } + while (periodiccnt && ANHE_at (periodics [HEAP0]) < ev_rt_now); + + feed_reverse_done (EV_A_ EV_PERIODIC); + } +} + +/* simply recalculate all periodics */ +/* TODO: maybe ensure that at least one event happens when jumping forward? */ +static void noinline ecb_cold +periodics_reschedule (EV_P) +{ + int i; + + /* adjust periodics after time jump */ + for (i = HEAP0; i < periodiccnt + HEAP0; ++i) + { + ev_periodic *w = (ev_periodic *)ANHE_w (periodics [i]); + + if (w->reschedule_cb) + ev_at (w) = w->reschedule_cb (w, ev_rt_now); + else if (w->interval) + periodic_recalc (EV_A_ w); + + ANHE_at_cache (periodics [i]); + } + + reheap (periodics, periodiccnt); +} +#endif + +/* adjust all timers by a given offset */ +static void noinline ecb_cold +timers_reschedule (EV_P_ ev_tstamp adjust) +{ + int i; + + for (i = 0; i < timercnt; ++i) + { + ANHE *he = timers + i + HEAP0; + ANHE_w (*he)->at += adjust; + ANHE_at_cache (*he); + } +} + +/* fetch new monotonic and realtime times from the kernel */ +/* also detect if there was a timejump, and act accordingly */ +inline_speed void +time_update (EV_P_ ev_tstamp max_block) +{ +#if EV_USE_MONOTONIC + if (expect_true (have_monotonic)) + { + int i; + ev_tstamp odiff = rtmn_diff; + + mn_now = get_clock (); + + /* only fetch the realtime clock every 0.5*MIN_TIMEJUMP seconds */ + /* interpolate in the meantime */ + if (expect_true (mn_now - now_floor < MIN_TIMEJUMP * .5)) + { + ev_rt_now = rtmn_diff + mn_now; + return; + } + + now_floor = mn_now; + ev_rt_now = ev_time (); + + /* loop a few times, before making important decisions. + * on the choice of "4": one iteration isn't enough, + * in case we get preempted during the calls to + * ev_time and get_clock. a second call is almost guaranteed + * to succeed in that case, though. and looping a few more times + * doesn't hurt either as we only do this on time-jumps or + * in the unlikely event of having been preempted here. + */ + for (i = 4; --i; ) + { + ev_tstamp diff; + rtmn_diff = ev_rt_now - mn_now; + + diff = odiff - rtmn_diff; + + if (expect_true ((diff < 0. ? -diff : diff) < MIN_TIMEJUMP)) + return; /* all is well */ + + ev_rt_now = ev_time (); + mn_now = get_clock (); + now_floor = mn_now; + } + + /* no timer adjustment, as the monotonic clock doesn't jump */ + /* timers_reschedule (EV_A_ rtmn_diff - odiff) */ +# if EV_PERIODIC_ENABLE + periodics_reschedule (EV_A); +# endif + } + else +#endif + { + ev_rt_now = ev_time (); + + if (expect_false (mn_now > ev_rt_now || ev_rt_now > mn_now + max_block + MIN_TIMEJUMP)) + { + /* adjust timers. this is easy, as the offset is the same for all of them */ + timers_reschedule (EV_A_ ev_rt_now - mn_now); +#if EV_PERIODIC_ENABLE + periodics_reschedule (EV_A); +#endif + } + + mn_now = ev_rt_now; + } +} + +int +ev_run (EV_P_ int flags) +{ +#if EV_FEATURE_API + ++loop_depth; +#endif + + assert (("libev: ev_loop recursion during release detected", loop_done != EVBREAK_RECURSE)); + + loop_done = EVBREAK_CANCEL; + + EV_INVOKE_PENDING; /* in case we recurse, ensure ordering stays nice and clean */ + + do + { +#if EV_VERIFY >= 2 + ev_verify (EV_A); +#endif + +#ifndef _WIN32 + if (expect_false (curpid)) /* penalise the forking check even more */ + if (expect_false (getpid () != curpid)) + { + curpid = getpid (); + postfork = 1; + } +#endif + +#if EV_FORK_ENABLE + /* we might have forked, so queue fork handlers */ + if (expect_false (postfork)) + if (forkcnt) + { + queue_events (EV_A_ (W *)forks, forkcnt, EV_FORK); + EV_INVOKE_PENDING; + } +#endif + +#if EV_PREPARE_ENABLE + /* queue prepare watchers (and execute them) */ + if (expect_false (preparecnt)) + { + queue_events (EV_A_ (W *)prepares, preparecnt, EV_PREPARE); + EV_INVOKE_PENDING; + } +#endif + + if (expect_false (loop_done)) + break; + + /* we might have forked, so reify kernel state if necessary */ + if (expect_false (postfork)) + loop_fork (EV_A); + + /* update fd-related kernel structures */ + fd_reify (EV_A); + + /* calculate blocking time */ + { + ev_tstamp waittime = 0.; + ev_tstamp sleeptime = 0.; + + /* remember old timestamp for io_blocktime calculation */ + ev_tstamp prev_mn_now = mn_now; + + /* update time to cancel out callback processing overhead */ + time_update (EV_A_ 1e100); + + /* from now on, we want a pipe-wake-up */ + pipe_write_wanted = 1; + + ECB_MEMORY_FENCE; /* make sure pipe_write_wanted is visible before we check for potential skips */ + + if (expect_true (!(flags & EVRUN_NOWAIT || idleall || !activecnt || pipe_write_skipped))) + { + waittime = MAX_BLOCKTIME; + + if (timercnt) + { + ev_tstamp to = ANHE_at (timers [HEAP0]) - mn_now; + if (waittime > to) waittime = to; + } + +#if EV_PERIODIC_ENABLE + if (periodiccnt) + { + ev_tstamp to = ANHE_at (periodics [HEAP0]) - ev_rt_now; + if (waittime > to) waittime = to; + } +#endif + + /* don't let timeouts decrease the waittime below timeout_blocktime */ + if (expect_false (waittime < timeout_blocktime)) + waittime = timeout_blocktime; + + /* at this point, we NEED to wait, so we have to ensure */ + /* to pass a minimum nonzero value to the backend */ + if (expect_false (waittime < backend_mintime)) + waittime = backend_mintime; + + /* extra check because io_blocktime is commonly 0 */ + if (expect_false (io_blocktime)) + { + sleeptime = io_blocktime - (mn_now - prev_mn_now); + + if (sleeptime > waittime - backend_mintime) + sleeptime = waittime - backend_mintime; + + if (expect_true (sleeptime > 0.)) + { + ev_sleep (sleeptime); + waittime -= sleeptime; + } + } + } + +#if EV_FEATURE_API + ++loop_count; +#endif + assert ((loop_done = EVBREAK_RECURSE, 1)); /* assert for side effect */ + backend_poll (EV_A_ waittime); + assert ((loop_done = EVBREAK_CANCEL, 1)); /* assert for side effect */ + + pipe_write_wanted = 0; /* just an optimisation, no fence needed */ + + ECB_MEMORY_FENCE_ACQUIRE; + if (pipe_write_skipped) + { + assert (("libev: pipe_w not active, but pipe not written", ev_is_active (&pipe_w))); + ev_feed_event (EV_A_ &pipe_w, EV_CUSTOM); + } + + + /* update ev_rt_now, do magic */ + time_update (EV_A_ waittime + sleeptime); + } + + /* queue pending timers and reschedule them */ + timers_reify (EV_A); /* relative timers called last */ +#if EV_PERIODIC_ENABLE + periodics_reify (EV_A); /* absolute timers called first */ +#endif + +#if EV_IDLE_ENABLE + /* queue idle watchers unless other events are pending */ + idle_reify (EV_A); +#endif + +#if EV_CHECK_ENABLE + /* queue check watchers, to be executed first */ + if (expect_false (checkcnt)) + queue_events (EV_A_ (W *)checks, checkcnt, EV_CHECK); +#endif + + EV_INVOKE_PENDING; + } + while (expect_true ( + activecnt + && !loop_done + && !(flags & (EVRUN_ONCE | EVRUN_NOWAIT)) + )); + + if (loop_done == EVBREAK_ONE) + loop_done = EVBREAK_CANCEL; + +#if EV_FEATURE_API + --loop_depth; +#endif + + return activecnt; +} + +void +ev_break (EV_P_ int how) EV_THROW +{ + loop_done = how; +} + +void +ev_ref (EV_P) EV_THROW +{ + ++activecnt; +} + +void +ev_unref (EV_P) EV_THROW +{ + --activecnt; +} + +void +ev_now_update (EV_P) EV_THROW +{ + time_update (EV_A_ 1e100); +} + +void +ev_suspend (EV_P) EV_THROW +{ + ev_now_update (EV_A); +} + +void +ev_resume (EV_P) EV_THROW +{ + ev_tstamp mn_prev = mn_now; + + ev_now_update (EV_A); + timers_reschedule (EV_A_ mn_now - mn_prev); +#if EV_PERIODIC_ENABLE + /* TODO: really do this? */ + periodics_reschedule (EV_A); +#endif +} + +/*****************************************************************************/ +/* singly-linked list management, used when the expected list length is short */ + +inline_size void +wlist_add (WL *head, WL elem) +{ + elem->next = *head; + *head = elem; +} + +inline_size void +wlist_del (WL *head, WL elem) +{ + while (*head) + { + if (expect_true (*head == elem)) + { + *head = elem->next; + break; + } + + head = &(*head)->next; + } +} + +/* internal, faster, version of ev_clear_pending */ +inline_speed void +clear_pending (EV_P_ W w) +{ + if (w->pending) + { + pendings [ABSPRI (w)][w->pending - 1].w = (W)&pending_w; + w->pending = 0; + } +} + +int +ev_clear_pending (EV_P_ void *w) EV_THROW +{ + W w_ = (W)w; + int pending = w_->pending; + + if (expect_true (pending)) + { + ANPENDING *p = pendings [ABSPRI (w_)] + pending - 1; + p->w = (W)&pending_w; + w_->pending = 0; + return p->events; + } + else + return 0; +} + +inline_size void +pri_adjust (EV_P_ W w) +{ + int pri = ev_priority (w); + pri = pri < EV_MINPRI ? EV_MINPRI : pri; + pri = pri > EV_MAXPRI ? EV_MAXPRI : pri; + ev_set_priority (w, pri); +} + +inline_speed void +ev_start (EV_P_ W w, int active) +{ + pri_adjust (EV_A_ w); + w->active = active; + ev_ref (EV_A); +} + +inline_size void +ev_stop (EV_P_ W w) +{ + ev_unref (EV_A); + w->active = 0; +} + +/*****************************************************************************/ + +void noinline +ev_io_start (EV_P_ ev_io *w) EV_THROW +{ + int fd = w->fd; + + if (expect_false (ev_is_active (w))) + return; + + assert (("libev: ev_io_start called with negative fd", fd >= 0)); + assert (("libev: ev_io_start called with illegal event mask", !(w->events & ~(EV__IOFDSET | EV_READ | EV_WRITE)))); + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, 1); + array_needsize (ANFD, anfds, anfdmax, fd + 1, array_init_zero); + wlist_add (&anfds[fd].head, (WL)w); + + /* common bug, apparently */ + assert (("libev: ev_io_start called with corrupted watcher", ((WL)w)->next != (WL)w)); + + fd_change (EV_A_ fd, w->events & EV__IOFDSET | EV_ANFD_REIFY); + w->events &= ~EV__IOFDSET; + + EV_FREQUENT_CHECK; +} + +void noinline +ev_io_stop (EV_P_ ev_io *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + assert (("libev: ev_io_stop called with illegal fd (must stay constant after start!)", w->fd >= 0 && w->fd < anfdmax)); + + EV_FREQUENT_CHECK; + + wlist_del (&anfds[w->fd].head, (WL)w); + ev_stop (EV_A_ (W)w); + + fd_change (EV_A_ w->fd, EV_ANFD_REIFY); + + EV_FREQUENT_CHECK; +} + +void noinline +ev_timer_start (EV_P_ ev_timer *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + ev_at (w) += mn_now; + + assert (("libev: ev_timer_start called with negative timer repeat value", w->repeat >= 0.)); + + EV_FREQUENT_CHECK; + + ++timercnt; + ev_start (EV_A_ (W)w, timercnt + HEAP0 - 1); + array_needsize (ANHE, timers, timermax, ev_active (w) + 1, EMPTY2); + ANHE_w (timers [ev_active (w)]) = (WT)w; + ANHE_at_cache (timers [ev_active (w)]); + upheap (timers, ev_active (w)); + + EV_FREQUENT_CHECK; + + /*assert (("libev: internal timer heap corruption", timers [ev_active (w)] == (WT)w));*/ +} + +void noinline +ev_timer_stop (EV_P_ ev_timer *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + assert (("libev: internal timer heap corruption", ANHE_w (timers [active]) == (WT)w)); + + --timercnt; + + if (expect_true (active < timercnt + HEAP0)) + { + timers [active] = timers [timercnt + HEAP0]; + adjustheap (timers, timercnt, active); + } + } + + ev_at (w) -= mn_now; + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} + +void noinline +ev_timer_again (EV_P_ ev_timer *w) EV_THROW +{ + EV_FREQUENT_CHECK; + + clear_pending (EV_A_ (W)w); + + if (ev_is_active (w)) + { + if (w->repeat) + { + ev_at (w) = mn_now + w->repeat; + ANHE_at_cache (timers [ev_active (w)]); + adjustheap (timers, timercnt, ev_active (w)); + } + else + ev_timer_stop (EV_A_ w); + } + else if (w->repeat) + { + ev_at (w) = w->repeat; + ev_timer_start (EV_A_ w); + } + + EV_FREQUENT_CHECK; +} + +ev_tstamp +ev_timer_remaining (EV_P_ ev_timer *w) EV_THROW +{ + return ev_at (w) - (ev_is_active (w) ? mn_now : 0.); +} + +#if EV_PERIODIC_ENABLE +void noinline +ev_periodic_start (EV_P_ ev_periodic *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + if (w->reschedule_cb) + ev_at (w) = w->reschedule_cb (w, ev_rt_now); + else if (w->interval) + { + assert (("libev: ev_periodic_start called with negative interval value", w->interval >= 0.)); + periodic_recalc (EV_A_ w); + } + else + ev_at (w) = w->offset; + + EV_FREQUENT_CHECK; + + ++periodiccnt; + ev_start (EV_A_ (W)w, periodiccnt + HEAP0 - 1); + array_needsize (ANHE, periodics, periodicmax, ev_active (w) + 1, EMPTY2); + ANHE_w (periodics [ev_active (w)]) = (WT)w; + ANHE_at_cache (periodics [ev_active (w)]); + upheap (periodics, ev_active (w)); + + EV_FREQUENT_CHECK; + + /*assert (("libev: internal periodic heap corruption", ANHE_w (periodics [ev_active (w)]) == (WT)w));*/ +} + +void noinline +ev_periodic_stop (EV_P_ ev_periodic *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + assert (("libev: internal periodic heap corruption", ANHE_w (periodics [active]) == (WT)w)); + + --periodiccnt; + + if (expect_true (active < periodiccnt + HEAP0)) + { + periodics [active] = periodics [periodiccnt + HEAP0]; + adjustheap (periodics, periodiccnt, active); + } + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} + +void noinline +ev_periodic_again (EV_P_ ev_periodic *w) EV_THROW +{ + /* TODO: use adjustheap and recalculation */ + ev_periodic_stop (EV_A_ w); + ev_periodic_start (EV_A_ w); +} +#endif + +#ifndef SA_RESTART +# define SA_RESTART 0 +#endif + +#if EV_SIGNAL_ENABLE + +void noinline +ev_signal_start (EV_P_ ev_signal *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG)); + +#if EV_MULTIPLICITY + assert (("libev: a signal must not be attached to two different loops", + !signals [w->signum - 1].loop || signals [w->signum - 1].loop == loop)); + + signals [w->signum - 1].loop = EV_A; + ECB_MEMORY_FENCE_RELEASE; +#endif + + EV_FREQUENT_CHECK; + +#if EV_USE_SIGNALFD + if (sigfd == -2) + { + sigfd = signalfd (-1, &sigfd_set, SFD_NONBLOCK | SFD_CLOEXEC); + if (sigfd < 0 && errno == EINVAL) + sigfd = signalfd (-1, &sigfd_set, 0); /* retry without flags */ + + if (sigfd >= 0) + { + fd_intern (sigfd); /* doing it twice will not hurt */ + + sigemptyset (&sigfd_set); + + ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ); + ev_set_priority (&sigfd_w, EV_MAXPRI); + ev_io_start (EV_A_ &sigfd_w); + ev_unref (EV_A); /* signalfd watcher should not keep loop alive */ + } + } + + if (sigfd >= 0) + { + /* TODO: check .head */ + sigaddset (&sigfd_set, w->signum); + sigprocmask (SIG_BLOCK, &sigfd_set, 0); + + signalfd (sigfd, &sigfd_set, 0); + } +#endif + + ev_start (EV_A_ (W)w, 1); + wlist_add (&signals [w->signum - 1].head, (WL)w); + + if (!((WL)w)->next) +# if EV_USE_SIGNALFD + if (sigfd < 0) /*TODO*/ +# endif + { +# ifdef _WIN32 + evpipe_init (EV_A); + + signal (w->signum, ev_sighandler); +# else + struct sigaction sa; + + evpipe_init (EV_A); + + sa.sa_handler = ev_sighandler; + sigfillset (&sa.sa_mask); + sa.sa_flags = SA_RESTART; /* if restarting works we save one iteration */ + sigaction (w->signum, &sa, 0); + + if (origflags & EVFLAG_NOSIGMASK) + { + sigemptyset (&sa.sa_mask); + sigaddset (&sa.sa_mask, w->signum); + sigprocmask (SIG_UNBLOCK, &sa.sa_mask, 0); + } +#endif + } + + EV_FREQUENT_CHECK; +} + +void noinline +ev_signal_stop (EV_P_ ev_signal *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + wlist_del (&signals [w->signum - 1].head, (WL)w); + ev_stop (EV_A_ (W)w); + + if (!signals [w->signum - 1].head) + { +#if EV_MULTIPLICITY + signals [w->signum - 1].loop = 0; /* unattach from signal */ +#endif +#if EV_USE_SIGNALFD + if (sigfd >= 0) + { + sigset_t ss; + + sigemptyset (&ss); + sigaddset (&ss, w->signum); + sigdelset (&sigfd_set, w->signum); + + signalfd (sigfd, &sigfd_set, 0); + sigprocmask (SIG_UNBLOCK, &ss, 0); + } + else +#endif + signal (w->signum, SIG_DFL); + } + + EV_FREQUENT_CHECK; +} + +#endif + +#if EV_CHILD_ENABLE + +void +ev_child_start (EV_P_ ev_child *w) EV_THROW +{ +#if EV_MULTIPLICITY + assert (("libev: child watchers are only supported in the default loop", loop == ev_default_loop_ptr)); +#endif + if (expect_false (ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, 1); + wlist_add (&childs [w->pid & ((EV_PID_HASHSIZE) - 1)], (WL)w); + + EV_FREQUENT_CHECK; +} + +void +ev_child_stop (EV_P_ ev_child *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + wlist_del (&childs [w->pid & ((EV_PID_HASHSIZE) - 1)], (WL)w); + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} + +#endif + +#if EV_STAT_ENABLE + +# ifdef _WIN32 +# undef lstat +# define lstat(a,b) _stati64 (a,b) +# endif + +#define DEF_STAT_INTERVAL 5.0074891 +#define NFS_STAT_INTERVAL 30.1074891 /* for filesystems potentially failing inotify */ +#define MIN_STAT_INTERVAL 0.1074891 + +static void noinline stat_timer_cb (EV_P_ ev_timer *w_, int revents); + +#if EV_USE_INOTIFY + +/* the * 2 is to allow for alignment padding, which for some reason is >> 8 */ +# define EV_INOTIFY_BUFSIZE (sizeof (struct inotify_event) * 2 + NAME_MAX) + +static void noinline +infy_add (EV_P_ ev_stat *w) +{ + w->wd = inotify_add_watch (fs_fd, w->path, + IN_ATTRIB | IN_DELETE_SELF | IN_MOVE_SELF | IN_MODIFY + | IN_CREATE | IN_DELETE | IN_MOVED_FROM | IN_MOVED_TO + | IN_DONT_FOLLOW | IN_MASK_ADD); + + if (w->wd >= 0) + { + struct statfs sfs; + + /* now local changes will be tracked by inotify, but remote changes won't */ + /* unless the filesystem is known to be local, we therefore still poll */ + /* also do poll on <2.6.25, but with normal frequency */ + + if (!fs_2625) + w->timer.repeat = w->interval ? w->interval : DEF_STAT_INTERVAL; + else if (!statfs (w->path, &sfs) + && (sfs.f_type == 0x1373 /* devfs */ + || sfs.f_type == 0x4006 /* fat */ + || sfs.f_type == 0x4d44 /* msdos */ + || sfs.f_type == 0xEF53 /* ext2/3 */ + || sfs.f_type == 0x72b6 /* jffs2 */ + || sfs.f_type == 0x858458f6 /* ramfs */ + || sfs.f_type == 0x5346544e /* ntfs */ + || sfs.f_type == 0x3153464a /* jfs */ + || sfs.f_type == 0x9123683e /* btrfs */ + || sfs.f_type == 0x52654973 /* reiser3 */ + || sfs.f_type == 0x01021994 /* tmpfs */ + || sfs.f_type == 0x58465342 /* xfs */)) + w->timer.repeat = 0.; /* filesystem is local, kernel new enough */ + else + w->timer.repeat = w->interval ? w->interval : NFS_STAT_INTERVAL; /* remote, use reduced frequency */ + } + else + { + /* can't use inotify, continue to stat */ + w->timer.repeat = w->interval ? w->interval : DEF_STAT_INTERVAL; + + /* if path is not there, monitor some parent directory for speedup hints */ + /* note that exceeding the hardcoded path limit is not a correctness issue, */ + /* but an efficiency issue only */ + if ((errno == ENOENT || errno == EACCES) && strlen (w->path) < 4096) + { + char path [4096]; + strcpy (path, w->path); + + do + { + int mask = IN_MASK_ADD | IN_DELETE_SELF | IN_MOVE_SELF + | (errno == EACCES ? IN_ATTRIB : IN_CREATE | IN_MOVED_TO); + + char *pend = strrchr (path, '/'); + + if (!pend || pend == path) + break; + + *pend = 0; + w->wd = inotify_add_watch (fs_fd, path, mask); + } + while (w->wd < 0 && (errno == ENOENT || errno == EACCES)); + } + } + + if (w->wd >= 0) + wlist_add (&fs_hash [w->wd & ((EV_INOTIFY_HASHSIZE) - 1)].head, (WL)w); + + /* now re-arm timer, if required */ + if (ev_is_active (&w->timer)) ev_ref (EV_A); + ev_timer_again (EV_A_ &w->timer); + if (ev_is_active (&w->timer)) ev_unref (EV_A); +} + +static void noinline +infy_del (EV_P_ ev_stat *w) +{ + int slot; + int wd = w->wd; + + if (wd < 0) + return; + + w->wd = -2; + slot = wd & ((EV_INOTIFY_HASHSIZE) - 1); + wlist_del (&fs_hash [slot].head, (WL)w); + + /* remove this watcher, if others are watching it, they will rearm */ + inotify_rm_watch (fs_fd, wd); +} + +static void noinline +infy_wd (EV_P_ int slot, int wd, struct inotify_event *ev) +{ + if (slot < 0) + /* overflow, need to check for all hash slots */ + for (slot = 0; slot < (EV_INOTIFY_HASHSIZE); ++slot) + infy_wd (EV_A_ slot, wd, ev); + else + { + WL w_; + + for (w_ = fs_hash [slot & ((EV_INOTIFY_HASHSIZE) - 1)].head; w_; ) + { + ev_stat *w = (ev_stat *)w_; + w_ = w_->next; /* lets us remove this watcher and all before it */ + + if (w->wd == wd || wd == -1) + { + if (ev->mask & (IN_IGNORED | IN_UNMOUNT | IN_DELETE_SELF)) + { + wlist_del (&fs_hash [slot & ((EV_INOTIFY_HASHSIZE) - 1)].head, (WL)w); + w->wd = -1; + infy_add (EV_A_ w); /* re-add, no matter what */ + } + + stat_timer_cb (EV_A_ &w->timer, 0); + } + } + } +} + +static void +infy_cb (EV_P_ ev_io *w, int revents) +{ + char buf [EV_INOTIFY_BUFSIZE]; + int ofs; + int len = read (fs_fd, buf, sizeof (buf)); + + for (ofs = 0; ofs < len; ) + { + struct inotify_event *ev = (struct inotify_event *)(buf + ofs); + infy_wd (EV_A_ ev->wd, ev->wd, ev); + ofs += sizeof (struct inotify_event) + ev->len; + } +} + +inline_size void ecb_cold +ev_check_2625 (EV_P) +{ + /* kernels < 2.6.25 are borked + * http://www.ussg.indiana.edu/hypermail/linux/kernel/0711.3/1208.html + */ + if (ev_linux_version () < 0x020619) + return; + + fs_2625 = 1; +} + +inline_size int +infy_newfd (void) +{ +#if defined IN_CLOEXEC && defined IN_NONBLOCK + int fd = inotify_init1 (IN_CLOEXEC | IN_NONBLOCK); + if (fd >= 0) + return fd; +#endif + return inotify_init (); +} + +inline_size void +infy_init (EV_P) +{ + if (fs_fd != -2) + return; + + fs_fd = -1; + + ev_check_2625 (EV_A); + + fs_fd = infy_newfd (); + + if (fs_fd >= 0) + { + fd_intern (fs_fd); + ev_io_init (&fs_w, infy_cb, fs_fd, EV_READ); + ev_set_priority (&fs_w, EV_MAXPRI); + ev_io_start (EV_A_ &fs_w); + ev_unref (EV_A); + } +} + +inline_size void +infy_fork (EV_P) +{ + int slot; + + if (fs_fd < 0) + return; + + ev_ref (EV_A); + ev_io_stop (EV_A_ &fs_w); + close (fs_fd); + fs_fd = infy_newfd (); + + if (fs_fd >= 0) + { + fd_intern (fs_fd); + ev_io_set (&fs_w, fs_fd, EV_READ); + ev_io_start (EV_A_ &fs_w); + ev_unref (EV_A); + } + + for (slot = 0; slot < (EV_INOTIFY_HASHSIZE); ++slot) + { + WL w_ = fs_hash [slot].head; + fs_hash [slot].head = 0; + + while (w_) + { + ev_stat *w = (ev_stat *)w_; + w_ = w_->next; /* lets us add this watcher */ + + w->wd = -1; + + if (fs_fd >= 0) + infy_add (EV_A_ w); /* re-add, no matter what */ + else + { + w->timer.repeat = w->interval ? w->interval : DEF_STAT_INTERVAL; + if (ev_is_active (&w->timer)) ev_ref (EV_A); + ev_timer_again (EV_A_ &w->timer); + if (ev_is_active (&w->timer)) ev_unref (EV_A); + } + } + } +} + +#endif + +#ifdef _WIN32 +# define EV_LSTAT(p,b) _stati64 (p, b) +#else +# define EV_LSTAT(p,b) lstat (p, b) +#endif + +void +ev_stat_stat (EV_P_ ev_stat *w) EV_THROW +{ + if (lstat (w->path, &w->attr) < 0) + w->attr.st_nlink = 0; + else if (!w->attr.st_nlink) + w->attr.st_nlink = 1; +} + +static void noinline +stat_timer_cb (EV_P_ ev_timer *w_, int revents) +{ + ev_stat *w = (ev_stat *)(((char *)w_) - offsetof (ev_stat, timer)); + + ev_statdata prev = w->attr; + ev_stat_stat (EV_A_ w); + + /* memcmp doesn't work on netbsd, they.... do stuff to their struct stat */ + if ( + prev.st_dev != w->attr.st_dev + || prev.st_ino != w->attr.st_ino + || prev.st_mode != w->attr.st_mode + || prev.st_nlink != w->attr.st_nlink + || prev.st_uid != w->attr.st_uid + || prev.st_gid != w->attr.st_gid + || prev.st_rdev != w->attr.st_rdev + || prev.st_size != w->attr.st_size + || prev.st_atime != w->attr.st_atime + || prev.st_mtime != w->attr.st_mtime + || prev.st_ctime != w->attr.st_ctime + ) { + /* we only update w->prev on actual differences */ + /* in case we test more often than invoke the callback, */ + /* to ensure that prev is always different to attr */ + w->prev = prev; + + #if EV_USE_INOTIFY + if (fs_fd >= 0) + { + infy_del (EV_A_ w); + infy_add (EV_A_ w); + ev_stat_stat (EV_A_ w); /* avoid race... */ + } + #endif + + ev_feed_event (EV_A_ w, EV_STAT); + } +} + +void +ev_stat_start (EV_P_ ev_stat *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + ev_stat_stat (EV_A_ w); + + if (w->interval < MIN_STAT_INTERVAL && w->interval) + w->interval = MIN_STAT_INTERVAL; + + ev_timer_init (&w->timer, stat_timer_cb, 0., w->interval ? w->interval : DEF_STAT_INTERVAL); + ev_set_priority (&w->timer, ev_priority (w)); + +#if EV_USE_INOTIFY + infy_init (EV_A); + + if (fs_fd >= 0) + infy_add (EV_A_ w); + else +#endif + { + ev_timer_again (EV_A_ &w->timer); + ev_unref (EV_A); + } + + ev_start (EV_A_ (W)w, 1); + + EV_FREQUENT_CHECK; +} + +void +ev_stat_stop (EV_P_ ev_stat *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + +#if EV_USE_INOTIFY + infy_del (EV_A_ w); +#endif + + if (ev_is_active (&w->timer)) + { + ev_ref (EV_A); + ev_timer_stop (EV_A_ &w->timer); + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_IDLE_ENABLE +void +ev_idle_start (EV_P_ ev_idle *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + pri_adjust (EV_A_ (W)w); + + EV_FREQUENT_CHECK; + + { + int active = ++idlecnt [ABSPRI (w)]; + + ++idleall; + ev_start (EV_A_ (W)w, active); + + array_needsize (ev_idle *, idles [ABSPRI (w)], idlemax [ABSPRI (w)], active, EMPTY2); + idles [ABSPRI (w)][active - 1] = w; + } + + EV_FREQUENT_CHECK; +} + +void +ev_idle_stop (EV_P_ ev_idle *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + idles [ABSPRI (w)][active - 1] = idles [ABSPRI (w)][--idlecnt [ABSPRI (w)]]; + ev_active (idles [ABSPRI (w)][active - 1]) = active; + + ev_stop (EV_A_ (W)w); + --idleall; + } + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_PREPARE_ENABLE +void +ev_prepare_start (EV_P_ ev_prepare *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, ++preparecnt); + array_needsize (ev_prepare *, prepares, preparemax, preparecnt, EMPTY2); + prepares [preparecnt - 1] = w; + + EV_FREQUENT_CHECK; +} + +void +ev_prepare_stop (EV_P_ ev_prepare *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + prepares [active - 1] = prepares [--preparecnt]; + ev_active (prepares [active - 1]) = active; + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_CHECK_ENABLE +void +ev_check_start (EV_P_ ev_check *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, ++checkcnt); + array_needsize (ev_check *, checks, checkmax, checkcnt, EMPTY2); + checks [checkcnt - 1] = w; + + EV_FREQUENT_CHECK; +} + +void +ev_check_stop (EV_P_ ev_check *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + checks [active - 1] = checks [--checkcnt]; + ev_active (checks [active - 1]) = active; + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_EMBED_ENABLE +void noinline +ev_embed_sweep (EV_P_ ev_embed *w) EV_THROW +{ + ev_run (w->other, EVRUN_NOWAIT); +} + +static void +embed_io_cb (EV_P_ ev_io *io, int revents) +{ + ev_embed *w = (ev_embed *)(((char *)io) - offsetof (ev_embed, io)); + + if (ev_cb (w)) + ev_feed_event (EV_A_ (W)w, EV_EMBED); + else + ev_run (w->other, EVRUN_NOWAIT); +} + +static void +embed_prepare_cb (EV_P_ ev_prepare *prepare, int revents) +{ + ev_embed *w = (ev_embed *)(((char *)prepare) - offsetof (ev_embed, prepare)); + + { + EV_P = w->other; + + while (fdchangecnt) + { + fd_reify (EV_A); + ev_run (EV_A_ EVRUN_NOWAIT); + } + } +} + +static void +embed_fork_cb (EV_P_ ev_fork *fork_w, int revents) +{ + ev_embed *w = (ev_embed *)(((char *)fork_w) - offsetof (ev_embed, fork)); + + ev_embed_stop (EV_A_ w); + + { + EV_P = w->other; + + ev_loop_fork (EV_A); + ev_run (EV_A_ EVRUN_NOWAIT); + } + + ev_embed_start (EV_A_ w); +} + +#if 0 +static void +embed_idle_cb (EV_P_ ev_idle *idle, int revents) +{ + ev_idle_stop (EV_A_ idle); +} +#endif + +void +ev_embed_start (EV_P_ ev_embed *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + { + EV_P = w->other; + assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ())); + ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); + } + + EV_FREQUENT_CHECK; + + ev_set_priority (&w->io, ev_priority (w)); + ev_io_start (EV_A_ &w->io); + + ev_prepare_init (&w->prepare, embed_prepare_cb); + ev_set_priority (&w->prepare, EV_MINPRI); + ev_prepare_start (EV_A_ &w->prepare); + + ev_fork_init (&w->fork, embed_fork_cb); + ev_fork_start (EV_A_ &w->fork); + + /*ev_idle_init (&w->idle, e,bed_idle_cb);*/ + + ev_start (EV_A_ (W)w, 1); + + EV_FREQUENT_CHECK; +} + +void +ev_embed_stop (EV_P_ ev_embed *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_io_stop (EV_A_ &w->io); + ev_prepare_stop (EV_A_ &w->prepare); + ev_fork_stop (EV_A_ &w->fork); + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_FORK_ENABLE +void +ev_fork_start (EV_P_ ev_fork *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, ++forkcnt); + array_needsize (ev_fork *, forks, forkmax, forkcnt, EMPTY2); + forks [forkcnt - 1] = w; + + EV_FREQUENT_CHECK; +} + +void +ev_fork_stop (EV_P_ ev_fork *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + forks [active - 1] = forks [--forkcnt]; + ev_active (forks [active - 1]) = active; + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_CLEANUP_ENABLE +void +ev_cleanup_start (EV_P_ ev_cleanup *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, ++cleanupcnt); + array_needsize (ev_cleanup *, cleanups, cleanupmax, cleanupcnt, EMPTY2); + cleanups [cleanupcnt - 1] = w; + + /* cleanup watchers should never keep a refcount on the loop */ + ev_unref (EV_A); + EV_FREQUENT_CHECK; +} + +void +ev_cleanup_stop (EV_P_ ev_cleanup *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + ev_ref (EV_A); + + { + int active = ev_active (w); + + cleanups [active - 1] = cleanups [--cleanupcnt]; + ev_active (cleanups [active - 1]) = active; + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} +#endif + +#if EV_ASYNC_ENABLE +void +ev_async_start (EV_P_ ev_async *w) EV_THROW +{ + if (expect_false (ev_is_active (w))) + return; + + w->sent = 0; + + evpipe_init (EV_A); + + EV_FREQUENT_CHECK; + + ev_start (EV_A_ (W)w, ++asynccnt); + array_needsize (ev_async *, asyncs, asyncmax, asynccnt, EMPTY2); + asyncs [asynccnt - 1] = w; + + EV_FREQUENT_CHECK; +} + +void +ev_async_stop (EV_P_ ev_async *w) EV_THROW +{ + clear_pending (EV_A_ (W)w); + if (expect_false (!ev_is_active (w))) + return; + + EV_FREQUENT_CHECK; + + { + int active = ev_active (w); + + asyncs [active - 1] = asyncs [--asynccnt]; + ev_active (asyncs [active - 1]) = active; + } + + ev_stop (EV_A_ (W)w); + + EV_FREQUENT_CHECK; +} + +void +ev_async_send (EV_P_ ev_async *w) EV_THROW +{ + w->sent = 1; + evpipe_write (EV_A_ &async_pending); +} +#endif + +/*****************************************************************************/ + +struct ev_once +{ + ev_io io; + ev_timer to; + void (*cb)(int revents, void *arg); + void *arg; +}; + +static void +once_cb (EV_P_ struct ev_once *once, int revents) +{ + void (*cb)(int revents, void *arg) = once->cb; + void *arg = once->arg; + + ev_io_stop (EV_A_ &once->io); + ev_timer_stop (EV_A_ &once->to); + ev_free (once); + + cb (revents, arg); +} + +static void +once_cb_io (EV_P_ ev_io *w, int revents) +{ + struct ev_once *once = (struct ev_once *)(((char *)w) - offsetof (struct ev_once, io)); + + once_cb (EV_A_ once, revents | ev_clear_pending (EV_A_ &once->to)); +} + +static void +once_cb_to (EV_P_ ev_timer *w, int revents) +{ + struct ev_once *once = (struct ev_once *)(((char *)w) - offsetof (struct ev_once, to)); + + once_cb (EV_A_ once, revents | ev_clear_pending (EV_A_ &once->io)); +} + +void +ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg) EV_THROW +{ + struct ev_once *once = (struct ev_once *)ev_malloc (sizeof (struct ev_once)); + + if (expect_false (!once)) + { + cb (EV_ERROR | EV_READ | EV_WRITE | EV_TIMER, arg); + return; + } + + once->cb = cb; + once->arg = arg; + + ev_init (&once->io, once_cb_io); + if (fd >= 0) + { + ev_io_set (&once->io, fd, events); + ev_io_start (EV_A_ &once->io); + } + + ev_init (&once->to, once_cb_to); + if (timeout >= 0.) + { + ev_timer_set (&once->to, timeout, 0.); + ev_timer_start (EV_A_ &once->to); + } +} + +/*****************************************************************************/ + +#if EV_WALK_ENABLE +void ecb_cold +ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w)) EV_THROW +{ + int i, j; + ev_watcher_list *wl, *wn; + + if (types & (EV_IO | EV_EMBED)) + for (i = 0; i < anfdmax; ++i) + for (wl = anfds [i].head; wl; ) + { + wn = wl->next; + +#if EV_EMBED_ENABLE + if (ev_cb ((ev_io *)wl) == embed_io_cb) + { + if (types & EV_EMBED) + cb (EV_A_ EV_EMBED, ((char *)wl) - offsetof (struct ev_embed, io)); + } + else +#endif +#if EV_USE_INOTIFY + if (ev_cb ((ev_io *)wl) == infy_cb) + ; + else +#endif + if ((ev_io *)wl != &pipe_w) + if (types & EV_IO) + cb (EV_A_ EV_IO, wl); + + wl = wn; + } + + if (types & (EV_TIMER | EV_STAT)) + for (i = timercnt + HEAP0; i-- > HEAP0; ) +#if EV_STAT_ENABLE + /*TODO: timer is not always active*/ + if (ev_cb ((ev_timer *)ANHE_w (timers [i])) == stat_timer_cb) + { + if (types & EV_STAT) + cb (EV_A_ EV_STAT, ((char *)ANHE_w (timers [i])) - offsetof (struct ev_stat, timer)); + } + else +#endif + if (types & EV_TIMER) + cb (EV_A_ EV_TIMER, ANHE_w (timers [i])); + +#if EV_PERIODIC_ENABLE + if (types & EV_PERIODIC) + for (i = periodiccnt + HEAP0; i-- > HEAP0; ) + cb (EV_A_ EV_PERIODIC, ANHE_w (periodics [i])); +#endif + +#if EV_IDLE_ENABLE + if (types & EV_IDLE) + for (j = NUMPRI; j--; ) + for (i = idlecnt [j]; i--; ) + cb (EV_A_ EV_IDLE, idles [j][i]); +#endif + +#if EV_FORK_ENABLE + if (types & EV_FORK) + for (i = forkcnt; i--; ) + if (ev_cb (forks [i]) != embed_fork_cb) + cb (EV_A_ EV_FORK, forks [i]); +#endif + +#if EV_ASYNC_ENABLE + if (types & EV_ASYNC) + for (i = asynccnt; i--; ) + cb (EV_A_ EV_ASYNC, asyncs [i]); +#endif + +#if EV_PREPARE_ENABLE + if (types & EV_PREPARE) + for (i = preparecnt; i--; ) +# if EV_EMBED_ENABLE + if (ev_cb (prepares [i]) != embed_prepare_cb) +# endif + cb (EV_A_ EV_PREPARE, prepares [i]); +#endif + +#if EV_CHECK_ENABLE + if (types & EV_CHECK) + for (i = checkcnt; i--; ) + cb (EV_A_ EV_CHECK, checks [i]); +#endif + +#if EV_SIGNAL_ENABLE + if (types & EV_SIGNAL) + for (i = 0; i < EV_NSIG - 1; ++i) + for (wl = signals [i].head; wl; ) + { + wn = wl->next; + cb (EV_A_ EV_SIGNAL, wl); + wl = wn; + } +#endif + +#if EV_CHILD_ENABLE + if (types & EV_CHILD) + for (i = (EV_PID_HASHSIZE); i--; ) + for (wl = childs [i]; wl; ) + { + wn = wl->next; + cb (EV_A_ EV_CHILD, wl); + wl = wn; + } +#endif +/* EV_STAT 0x00001000 /* stat data changed */ +/* EV_EMBED 0x00010000 /* embedded event loop needs sweep */ +} +#endif + +#if EV_MULTIPLICITY + #include "ev_wrap.h" +#endif + diff --git a/shadowsocksr-libev/src/libev/ev.h b/shadowsocksr-libev/src/libev/ev.h new file mode 100644 index 00000000000..38f62d82efe --- /dev/null +++ b/shadowsocksr-libev/src/libev/ev.h @@ -0,0 +1,854 @@ +/* + * libev native API header + * + * Copyright (c) 2007,2008,2009,2010,2011,2012,2015 Marc Alexander Lehmann + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modifica- + * tion, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER- + * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO + * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE- + * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; + * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTH- + * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Alternatively, the contents of this file may be used under the terms of + * the GNU General Public License ("GPL") version 2 or any later version, + * in which case the provisions of the GPL are applicable instead of + * the above. If you wish to allow the use of your version of this file + * only under the terms of the GPL and not to allow others to use your + * version of this file under the BSD license, indicate your decision + * by deleting the provisions above and replace them with the notice + * and other provisions required by the GPL. If you do not delete the + * provisions above, a recipient may use your version of this file under + * either the BSD or the GPL. + */ + +#ifndef EV_H_ +#define EV_H_ + +#ifdef __cplusplus +# define EV_CPP(x) x +# if __cplusplus >= 201103L +# define EV_THROW noexcept +# else +# define EV_THROW throw () +# endif +#else +# define EV_CPP(x) +# define EV_THROW +#endif + +EV_CPP(extern "C" {) + +/*****************************************************************************/ + +/* pre-4.0 compatibility */ +#ifndef EV_COMPAT3 +# define EV_COMPAT3 1 +#endif + +#ifndef EV_FEATURES +# if defined __OPTIMIZE_SIZE__ +# define EV_FEATURES 0x7c +# else +# define EV_FEATURES 0x7f +# endif +#endif + +#define EV_FEATURE_CODE ((EV_FEATURES) & 1) +#define EV_FEATURE_DATA ((EV_FEATURES) & 2) +#define EV_FEATURE_CONFIG ((EV_FEATURES) & 4) +#define EV_FEATURE_API ((EV_FEATURES) & 8) +#define EV_FEATURE_WATCHERS ((EV_FEATURES) & 16) +#define EV_FEATURE_BACKENDS ((EV_FEATURES) & 32) +#define EV_FEATURE_OS ((EV_FEATURES) & 64) + +/* these priorities are inclusive, higher priorities will be invoked earlier */ +#ifndef EV_MINPRI +# define EV_MINPRI (EV_FEATURE_CONFIG ? -2 : 0) +#endif +#ifndef EV_MAXPRI +# define EV_MAXPRI (EV_FEATURE_CONFIG ? +2 : 0) +#endif + +#ifndef EV_MULTIPLICITY +# define EV_MULTIPLICITY EV_FEATURE_CONFIG +#endif + +#ifndef EV_PERIODIC_ENABLE +# define EV_PERIODIC_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_STAT_ENABLE +# define EV_STAT_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_PREPARE_ENABLE +# define EV_PREPARE_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_CHECK_ENABLE +# define EV_CHECK_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_IDLE_ENABLE +# define EV_IDLE_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_FORK_ENABLE +# define EV_FORK_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_CLEANUP_ENABLE +# define EV_CLEANUP_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_SIGNAL_ENABLE +# define EV_SIGNAL_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_CHILD_ENABLE +# ifdef _WIN32 +# define EV_CHILD_ENABLE 0 +# else +# define EV_CHILD_ENABLE EV_FEATURE_WATCHERS +#endif +#endif + +#ifndef EV_ASYNC_ENABLE +# define EV_ASYNC_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_EMBED_ENABLE +# define EV_EMBED_ENABLE EV_FEATURE_WATCHERS +#endif + +#ifndef EV_WALK_ENABLE +# define EV_WALK_ENABLE 0 /* not yet */ +#endif + +/*****************************************************************************/ + +#if EV_CHILD_ENABLE && !EV_SIGNAL_ENABLE +# undef EV_SIGNAL_ENABLE +# define EV_SIGNAL_ENABLE 1 +#endif + +/*****************************************************************************/ + +typedef double ev_tstamp; + +#include /* for memmove */ + +#ifndef EV_ATOMIC_T +# include +# define EV_ATOMIC_T sig_atomic_t volatile +#endif + +#if EV_STAT_ENABLE +# ifdef _WIN32 +# include +# include +# endif +# include +#endif + +/* support multiple event loops? */ +#if EV_MULTIPLICITY +struct ev_loop; +# define EV_P struct ev_loop *loop /* a loop as sole parameter in a declaration */ +# define EV_P_ EV_P, /* a loop as first of multiple parameters */ +# define EV_A loop /* a loop as sole argument to a function call */ +# define EV_A_ EV_A, /* a loop as first of multiple arguments */ +# define EV_DEFAULT_UC ev_default_loop_uc_ () /* the default loop, if initialised, as sole arg */ +# define EV_DEFAULT_UC_ EV_DEFAULT_UC, /* the default loop as first of multiple arguments */ +# define EV_DEFAULT ev_default_loop (0) /* the default loop as sole arg */ +# define EV_DEFAULT_ EV_DEFAULT, /* the default loop as first of multiple arguments */ +#else +# define EV_P void +# define EV_P_ +# define EV_A +# define EV_A_ +# define EV_DEFAULT +# define EV_DEFAULT_ +# define EV_DEFAULT_UC +# define EV_DEFAULT_UC_ +# undef EV_EMBED_ENABLE +#endif + +/* EV_INLINE is used for functions in header files */ +#if __STDC_VERSION__ >= 199901L || __GNUC__ >= 3 +# define EV_INLINE static inline +#else +# define EV_INLINE static +#endif + +#ifdef EV_API_STATIC +# define EV_API_DECL static +#else +# define EV_API_DECL extern +#endif + +/* EV_PROTOTYPES can be used to switch of prototype declarations */ +#ifndef EV_PROTOTYPES +# define EV_PROTOTYPES 1 +#endif + +/*****************************************************************************/ + +#define EV_VERSION_MAJOR 4 +#define EV_VERSION_MINOR 22 + +/* eventmask, revents, events... */ +enum { + EV_UNDEF = (int)0xFFFFFFFF, /* guaranteed to be invalid */ + EV_NONE = 0x00, /* no events */ + EV_READ = 0x01, /* ev_io detected read will not block */ + EV_WRITE = 0x02, /* ev_io detected write will not block */ + EV__IOFDSET = 0x80, /* internal use only */ + EV_IO = EV_READ, /* alias for type-detection */ + EV_TIMER = 0x00000100, /* timer timed out */ +#if EV_COMPAT3 + EV_TIMEOUT = EV_TIMER, /* pre 4.0 API compatibility */ +#endif + EV_PERIODIC = 0x00000200, /* periodic timer timed out */ + EV_SIGNAL = 0x00000400, /* signal was received */ + EV_CHILD = 0x00000800, /* child/pid had status change */ + EV_STAT = 0x00001000, /* stat data changed */ + EV_IDLE = 0x00002000, /* event loop is idling */ + EV_PREPARE = 0x00004000, /* event loop about to poll */ + EV_CHECK = 0x00008000, /* event loop finished poll */ + EV_EMBED = 0x00010000, /* embedded event loop needs sweep */ + EV_FORK = 0x00020000, /* event loop resumed in child */ + EV_CLEANUP = 0x00040000, /* event loop resumed in child */ + EV_ASYNC = 0x00080000, /* async intra-loop signal */ + EV_CUSTOM = 0x01000000, /* for use by user code */ + EV_ERROR = (int)0x80000000 /* sent when an error occurs */ +}; + +/* can be used to add custom fields to all watchers, while losing binary compatibility */ +#ifndef EV_COMMON +# define EV_COMMON void *data; +#endif + +#ifndef EV_CB_DECLARE +# define EV_CB_DECLARE(type) void (*cb)(EV_P_ struct type *w, int revents); +#endif +#ifndef EV_CB_INVOKE +# define EV_CB_INVOKE(watcher,revents) (watcher)->cb (EV_A_ (watcher), (revents)) +#endif + +/* not official, do not use */ +#define EV_CB(type,name) void name (EV_P_ struct ev_ ## type *w, int revents) + +/* + * struct member types: + * private: you may look at them, but not change them, + * and they might not mean anything to you. + * ro: can be read anytime, but only changed when the watcher isn't active. + * rw: can be read and modified anytime, even when the watcher is active. + * + * some internal details that might be helpful for debugging: + * + * active is either 0, which means the watcher is not active, + * or the array index of the watcher (periodics, timers) + * or the array index + 1 (most other watchers) + * or simply 1 for watchers that aren't in some array. + * pending is either 0, in which case the watcher isn't, + * or the array index + 1 in the pendings array. + */ + +#if EV_MINPRI == EV_MAXPRI +# define EV_DECL_PRIORITY +#elif !defined (EV_DECL_PRIORITY) +# define EV_DECL_PRIORITY int priority; +#endif + +/* shared by all watchers */ +#define EV_WATCHER(type) \ + int active; /* private */ \ + int pending; /* private */ \ + EV_DECL_PRIORITY /* private */ \ + EV_COMMON /* rw */ \ + EV_CB_DECLARE (type) /* private */ + +#define EV_WATCHER_LIST(type) \ + EV_WATCHER (type) \ + struct ev_watcher_list *next; /* private */ + +#define EV_WATCHER_TIME(type) \ + EV_WATCHER (type) \ + ev_tstamp at; /* private */ + +/* base class, nothing to see here unless you subclass */ +typedef struct ev_watcher +{ + EV_WATCHER (ev_watcher) +} ev_watcher; + +/* base class, nothing to see here unless you subclass */ +typedef struct ev_watcher_list +{ + EV_WATCHER_LIST (ev_watcher_list) +} ev_watcher_list; + +/* base class, nothing to see here unless you subclass */ +typedef struct ev_watcher_time +{ + EV_WATCHER_TIME (ev_watcher_time) +} ev_watcher_time; + +/* invoked when fd is either EV_READable or EV_WRITEable */ +/* revent EV_READ, EV_WRITE */ +typedef struct ev_io +{ + EV_WATCHER_LIST (ev_io) + + int fd; /* ro */ + int events; /* ro */ +} ev_io; + +/* invoked after a specific time, repeatable (based on monotonic clock) */ +/* revent EV_TIMEOUT */ +typedef struct ev_timer +{ + EV_WATCHER_TIME (ev_timer) + + ev_tstamp repeat; /* rw */ +} ev_timer; + +/* invoked at some specific time, possibly repeating at regular intervals (based on UTC) */ +/* revent EV_PERIODIC */ +typedef struct ev_periodic +{ + EV_WATCHER_TIME (ev_periodic) + + ev_tstamp offset; /* rw */ + ev_tstamp interval; /* rw */ + ev_tstamp (*reschedule_cb)(struct ev_periodic *w, ev_tstamp now) EV_THROW; /* rw */ +} ev_periodic; + +/* invoked when the given signal has been received */ +/* revent EV_SIGNAL */ +typedef struct ev_signal +{ + EV_WATCHER_LIST (ev_signal) + + int signum; /* ro */ +} ev_signal; + +/* invoked when sigchld is received and waitpid indicates the given pid */ +/* revent EV_CHILD */ +/* does not support priorities */ +typedef struct ev_child +{ + EV_WATCHER_LIST (ev_child) + + int flags; /* private */ + int pid; /* ro */ + int rpid; /* rw, holds the received pid */ + int rstatus; /* rw, holds the exit status, use the macros from sys/wait.h */ +} ev_child; + +#if EV_STAT_ENABLE +/* st_nlink = 0 means missing file or other error */ +# ifdef _WIN32 +typedef struct _stati64 ev_statdata; +# else +typedef struct stat ev_statdata; +# endif + +/* invoked each time the stat data changes for a given path */ +/* revent EV_STAT */ +typedef struct ev_stat +{ + EV_WATCHER_LIST (ev_stat) + + ev_timer timer; /* private */ + ev_tstamp interval; /* ro */ + const char *path; /* ro */ + ev_statdata prev; /* ro */ + ev_statdata attr; /* ro */ + + int wd; /* wd for inotify, fd for kqueue */ +} ev_stat; +#endif + +#if EV_IDLE_ENABLE +/* invoked when the nothing else needs to be done, keeps the process from blocking */ +/* revent EV_IDLE */ +typedef struct ev_idle +{ + EV_WATCHER (ev_idle) +} ev_idle; +#endif + +/* invoked for each run of the mainloop, just before the blocking call */ +/* you can still change events in any way you like */ +/* revent EV_PREPARE */ +typedef struct ev_prepare +{ + EV_WATCHER (ev_prepare) +} ev_prepare; + +/* invoked for each run of the mainloop, just after the blocking call */ +/* revent EV_CHECK */ +typedef struct ev_check +{ + EV_WATCHER (ev_check) +} ev_check; + +#if EV_FORK_ENABLE +/* the callback gets invoked before check in the child process when a fork was detected */ +/* revent EV_FORK */ +typedef struct ev_fork +{ + EV_WATCHER (ev_fork) +} ev_fork; +#endif + +#if EV_CLEANUP_ENABLE +/* is invoked just before the loop gets destroyed */ +/* revent EV_CLEANUP */ +typedef struct ev_cleanup +{ + EV_WATCHER (ev_cleanup) +} ev_cleanup; +#endif + +#if EV_EMBED_ENABLE +/* used to embed an event loop inside another */ +/* the callback gets invoked when the event loop has handled events, and can be 0 */ +typedef struct ev_embed +{ + EV_WATCHER (ev_embed) + + struct ev_loop *other; /* ro */ + ev_io io; /* private */ + ev_prepare prepare; /* private */ + ev_check check; /* unused */ + ev_timer timer; /* unused */ + ev_periodic periodic; /* unused */ + ev_idle idle; /* unused */ + ev_fork fork; /* private */ +#if EV_CLEANUP_ENABLE + ev_cleanup cleanup; /* unused */ +#endif +} ev_embed; +#endif + +#if EV_ASYNC_ENABLE +/* invoked when somebody calls ev_async_send on the watcher */ +/* revent EV_ASYNC */ +typedef struct ev_async +{ + EV_WATCHER (ev_async) + + EV_ATOMIC_T sent; /* private */ +} ev_async; + +# define ev_async_pending(w) (+(w)->sent) +#endif + +/* the presence of this union forces similar struct layout */ +union ev_any_watcher +{ + struct ev_watcher w; + struct ev_watcher_list wl; + + struct ev_io io; + struct ev_timer timer; + struct ev_periodic periodic; + struct ev_signal signal; + struct ev_child child; +#if EV_STAT_ENABLE + struct ev_stat stat; +#endif +#if EV_IDLE_ENABLE + struct ev_idle idle; +#endif + struct ev_prepare prepare; + struct ev_check check; +#if EV_FORK_ENABLE + struct ev_fork fork; +#endif +#if EV_CLEANUP_ENABLE + struct ev_cleanup cleanup; +#endif +#if EV_EMBED_ENABLE + struct ev_embed embed; +#endif +#if EV_ASYNC_ENABLE + struct ev_async async; +#endif +}; + +/* flag bits for ev_default_loop and ev_loop_new */ +enum { + /* the default */ + EVFLAG_AUTO = 0x00000000U, /* not quite a mask */ + /* flag bits */ + EVFLAG_NOENV = 0x01000000U, /* do NOT consult environment */ + EVFLAG_FORKCHECK = 0x02000000U, /* check for a fork in each iteration */ + /* debugging/feature disable */ + EVFLAG_NOINOTIFY = 0x00100000U, /* do not attempt to use inotify */ +#if EV_COMPAT3 + EVFLAG_NOSIGFD = 0, /* compatibility to pre-3.9 */ +#endif + EVFLAG_SIGNALFD = 0x00200000U, /* attempt to use signalfd */ + EVFLAG_NOSIGMASK = 0x00400000U /* avoid modifying the signal mask */ +}; + +/* method bits to be ored together */ +enum { + EVBACKEND_SELECT = 0x00000001U, /* about anywhere */ + EVBACKEND_POLL = 0x00000002U, /* !win */ + EVBACKEND_EPOLL = 0x00000004U, /* linux */ + EVBACKEND_KQUEUE = 0x00000008U, /* bsd */ + EVBACKEND_DEVPOLL = 0x00000010U, /* solaris 8 */ /* NYI */ + EVBACKEND_PORT = 0x00000020U, /* solaris 10 */ + EVBACKEND_ALL = 0x0000003FU, /* all known backends */ + EVBACKEND_MASK = 0x0000FFFFU /* all future backends */ +}; + +#if EV_PROTOTYPES +EV_API_DECL int ev_version_major (void) EV_THROW; +EV_API_DECL int ev_version_minor (void) EV_THROW; + +EV_API_DECL unsigned int ev_supported_backends (void) EV_THROW; +EV_API_DECL unsigned int ev_recommended_backends (void) EV_THROW; +EV_API_DECL unsigned int ev_embeddable_backends (void) EV_THROW; + +EV_API_DECL ev_tstamp ev_time (void) EV_THROW; +EV_API_DECL void ev_sleep (ev_tstamp delay) EV_THROW; /* sleep for a while */ + +/* Sets the allocation function to use, works like realloc. + * It is used to allocate and free memory. + * If it returns zero when memory needs to be allocated, the library might abort + * or take some potentially destructive action. + * The default is your system realloc function. + */ +EV_API_DECL void ev_set_allocator (void *(*cb)(void *ptr, long size) EV_THROW) EV_THROW; + +/* set the callback function to call on a + * retryable syscall error + * (such as failed select, poll, epoll_wait) + */ +EV_API_DECL void ev_set_syserr_cb (void (*cb)(const char *msg) EV_THROW) EV_THROW; + +#if EV_MULTIPLICITY + +/* the default loop is the only one that handles signals and child watchers */ +/* you can call this as often as you like */ +EV_API_DECL struct ev_loop *ev_default_loop (unsigned int flags EV_CPP (= 0)) EV_THROW; + +#ifdef EV_API_STATIC +EV_API_DECL struct ev_loop *ev_default_loop_ptr; +#endif + +EV_INLINE struct ev_loop * +ev_default_loop_uc_ (void) EV_THROW +{ + extern struct ev_loop *ev_default_loop_ptr; + + return ev_default_loop_ptr; +} + +EV_INLINE int +ev_is_default_loop (EV_P) EV_THROW +{ + return EV_A == EV_DEFAULT_UC; +} + +/* create and destroy alternative loops that don't handle signals */ +EV_API_DECL struct ev_loop *ev_loop_new (unsigned int flags EV_CPP (= 0)) EV_THROW; + +EV_API_DECL ev_tstamp ev_now (EV_P) EV_THROW; /* time w.r.t. timers and the eventloop, updated after each poll */ + +#else + +EV_API_DECL int ev_default_loop (unsigned int flags EV_CPP (= 0)) EV_THROW; /* returns true when successful */ + +EV_API_DECL ev_tstamp ev_rt_now; + +EV_INLINE ev_tstamp +ev_now (void) EV_THROW +{ + return ev_rt_now; +} + +/* looks weird, but ev_is_default_loop (EV_A) still works if this exists */ +EV_INLINE int +ev_is_default_loop (void) EV_THROW +{ + return 1; +} + +#endif /* multiplicity */ + +/* destroy event loops, also works for the default loop */ +EV_API_DECL void ev_loop_destroy (EV_P); + +/* this needs to be called after fork, to duplicate the loop */ +/* when you want to re-use it in the child */ +/* you can call it in either the parent or the child */ +/* you can actually call it at any time, anywhere :) */ +EV_API_DECL void ev_loop_fork (EV_P) EV_THROW; + +EV_API_DECL unsigned int ev_backend (EV_P) EV_THROW; /* backend in use by loop */ + +EV_API_DECL void ev_now_update (EV_P) EV_THROW; /* update event loop time */ + +#if EV_WALK_ENABLE +/* walk (almost) all watchers in the loop of a given type, invoking the */ +/* callback on every such watcher. The callback might stop the watcher, */ +/* but do nothing else with the loop */ +EV_API_DECL void ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w)) EV_THROW; +#endif + +#endif /* prototypes */ + +/* ev_run flags values */ +enum { + EVRUN_NOWAIT = 1, /* do not block/wait */ + EVRUN_ONCE = 2 /* block *once* only */ +}; + +/* ev_break how values */ +enum { + EVBREAK_CANCEL = 0, /* undo unloop */ + EVBREAK_ONE = 1, /* unloop once */ + EVBREAK_ALL = 2 /* unloop all loops */ +}; + +#if EV_PROTOTYPES +EV_API_DECL int ev_run (EV_P_ int flags EV_CPP (= 0)); +EV_API_DECL void ev_break (EV_P_ int how EV_CPP (= EVBREAK_ONE)) EV_THROW; /* break out of the loop */ + +/* + * ref/unref can be used to add or remove a refcount on the mainloop. every watcher + * keeps one reference. if you have a long-running watcher you never unregister that + * should not keep ev_loop from running, unref() after starting, and ref() before stopping. + */ +EV_API_DECL void ev_ref (EV_P) EV_THROW; +EV_API_DECL void ev_unref (EV_P) EV_THROW; + +/* + * convenience function, wait for a single event, without registering an event watcher + * if timeout is < 0, do wait indefinitely + */ +EV_API_DECL void ev_once (EV_P_ int fd, int events, ev_tstamp timeout, void (*cb)(int revents, void *arg), void *arg) EV_THROW; + +# if EV_FEATURE_API +EV_API_DECL unsigned int ev_iteration (EV_P) EV_THROW; /* number of loop iterations */ +EV_API_DECL unsigned int ev_depth (EV_P) EV_THROW; /* #ev_loop enters - #ev_loop leaves */ +EV_API_DECL void ev_verify (EV_P) EV_THROW; /* abort if loop data corrupted */ + +EV_API_DECL void ev_set_io_collect_interval (EV_P_ ev_tstamp interval) EV_THROW; /* sleep at least this time, default 0 */ +EV_API_DECL void ev_set_timeout_collect_interval (EV_P_ ev_tstamp interval) EV_THROW; /* sleep at least this time, default 0 */ + +/* advanced stuff for threading etc. support, see docs */ +EV_API_DECL void ev_set_userdata (EV_P_ void *data) EV_THROW; +EV_API_DECL void *ev_userdata (EV_P) EV_THROW; +typedef void (*ev_loop_callback)(EV_P); +EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_THROW; +/* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out */ +EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV_P) EV_THROW) EV_THROW; + +EV_API_DECL unsigned int ev_pending_count (EV_P) EV_THROW; /* number of pending events, if any */ +EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */ + +/* + * stop/start the timer handling. + */ +EV_API_DECL void ev_suspend (EV_P) EV_THROW; +EV_API_DECL void ev_resume (EV_P) EV_THROW; +#endif + +#endif + +/* these may evaluate ev multiple times, and the other arguments at most once */ +/* either use ev_init + ev_TYPE_set, or the ev_TYPE_init macro, below, to first initialise a watcher */ +#define ev_init(ev,cb_) do { \ + ((ev_watcher *)(void *)(ev))->active = \ + ((ev_watcher *)(void *)(ev))->pending = 0; \ + ev_set_priority ((ev), 0); \ + ev_set_cb ((ev), cb_); \ +} while (0) + +#define ev_io_set(ev,fd_,events_) do { (ev)->fd = (fd_); (ev)->events = (events_) | EV__IOFDSET; } while (0) +#define ev_timer_set(ev,after_,repeat_) do { ((ev_watcher_time *)(ev))->at = (after_); (ev)->repeat = (repeat_); } while (0) +#define ev_periodic_set(ev,ofs_,ival_,rcb_) do { (ev)->offset = (ofs_); (ev)->interval = (ival_); (ev)->reschedule_cb = (rcb_); } while (0) +#define ev_signal_set(ev,signum_) do { (ev)->signum = (signum_); } while (0) +#define ev_child_set(ev,pid_,trace_) do { (ev)->pid = (pid_); (ev)->flags = !!(trace_); } while (0) +#define ev_stat_set(ev,path_,interval_) do { (ev)->path = (path_); (ev)->interval = (interval_); (ev)->wd = -2; } while (0) +#define ev_idle_set(ev) /* nop, yes, this is a serious in-joke */ +#define ev_prepare_set(ev) /* nop, yes, this is a serious in-joke */ +#define ev_check_set(ev) /* nop, yes, this is a serious in-joke */ +#define ev_embed_set(ev,other_) do { (ev)->other = (other_); } while (0) +#define ev_fork_set(ev) /* nop, yes, this is a serious in-joke */ +#define ev_cleanup_set(ev) /* nop, yes, this is a serious in-joke */ +#define ev_async_set(ev) /* nop, yes, this is a serious in-joke */ + +#define ev_io_init(ev,cb,fd,events) do { ev_init ((ev), (cb)); ev_io_set ((ev),(fd),(events)); } while (0) +#define ev_timer_init(ev,cb,after,repeat) do { ev_init ((ev), (cb)); ev_timer_set ((ev),(after),(repeat)); } while (0) +#define ev_periodic_init(ev,cb,ofs,ival,rcb) do { ev_init ((ev), (cb)); ev_periodic_set ((ev),(ofs),(ival),(rcb)); } while (0) +#define ev_signal_init(ev,cb,signum) do { ev_init ((ev), (cb)); ev_signal_set ((ev), (signum)); } while (0) +#define ev_child_init(ev,cb,pid,trace) do { ev_init ((ev), (cb)); ev_child_set ((ev),(pid),(trace)); } while (0) +#define ev_stat_init(ev,cb,path,interval) do { ev_init ((ev), (cb)); ev_stat_set ((ev),(path),(interval)); } while (0) +#define ev_idle_init(ev,cb) do { ev_init ((ev), (cb)); ev_idle_set ((ev)); } while (0) +#define ev_prepare_init(ev,cb) do { ev_init ((ev), (cb)); ev_prepare_set ((ev)); } while (0) +#define ev_check_init(ev,cb) do { ev_init ((ev), (cb)); ev_check_set ((ev)); } while (0) +#define ev_embed_init(ev,cb,other) do { ev_init ((ev), (cb)); ev_embed_set ((ev),(other)); } while (0) +#define ev_fork_init(ev,cb) do { ev_init ((ev), (cb)); ev_fork_set ((ev)); } while (0) +#define ev_cleanup_init(ev,cb) do { ev_init ((ev), (cb)); ev_cleanup_set ((ev)); } while (0) +#define ev_async_init(ev,cb) do { ev_init ((ev), (cb)); ev_async_set ((ev)); } while (0) + +#define ev_is_pending(ev) (0 + ((ev_watcher *)(void *)(ev))->pending) /* ro, true when watcher is waiting for callback invocation */ +#define ev_is_active(ev) (0 + ((ev_watcher *)(void *)(ev))->active) /* ro, true when the watcher has been started */ + +#define ev_cb_(ev) (ev)->cb /* rw */ +#define ev_cb(ev) (memmove (&ev_cb_ (ev), &((ev_watcher *)(ev))->cb, sizeof (ev_cb_ (ev))), (ev)->cb) + +#if EV_MINPRI == EV_MAXPRI +# define ev_priority(ev) ((ev), EV_MINPRI) +# define ev_set_priority(ev,pri) ((ev), (pri)) +#else +# define ev_priority(ev) (+(((ev_watcher *)(void *)(ev))->priority)) +# define ev_set_priority(ev,pri) ( (ev_watcher *)(void *)(ev))->priority = (pri) +#endif + +#define ev_periodic_at(ev) (+((ev_watcher_time *)(ev))->at) + +#ifndef ev_set_cb +# define ev_set_cb(ev,cb_) (ev_cb_ (ev) = (cb_), memmove (&((ev_watcher *)(ev))->cb, &ev_cb_ (ev), sizeof (ev_cb_ (ev)))) +#endif + +/* stopping (enabling, adding) a watcher does nothing if it is already running */ +/* stopping (disabling, deleting) a watcher does nothing unless it's already running */ +#if EV_PROTOTYPES + +/* feeds an event into a watcher as if the event actually occurred */ +/* accepts any ev_watcher type */ +EV_API_DECL void ev_feed_event (EV_P_ void *w, int revents) EV_THROW; +EV_API_DECL void ev_feed_fd_event (EV_P_ int fd, int revents) EV_THROW; +#if EV_SIGNAL_ENABLE +EV_API_DECL void ev_feed_signal (int signum) EV_THROW; +EV_API_DECL void ev_feed_signal_event (EV_P_ int signum) EV_THROW; +#endif +EV_API_DECL void ev_invoke (EV_P_ void *w, int revents); +EV_API_DECL int ev_clear_pending (EV_P_ void *w) EV_THROW; + +EV_API_DECL void ev_io_start (EV_P_ ev_io *w) EV_THROW; +EV_API_DECL void ev_io_stop (EV_P_ ev_io *w) EV_THROW; + +EV_API_DECL void ev_timer_start (EV_P_ ev_timer *w) EV_THROW; +EV_API_DECL void ev_timer_stop (EV_P_ ev_timer *w) EV_THROW; +/* stops if active and no repeat, restarts if active and repeating, starts if inactive and repeating */ +EV_API_DECL void ev_timer_again (EV_P_ ev_timer *w) EV_THROW; +/* return remaining time */ +EV_API_DECL ev_tstamp ev_timer_remaining (EV_P_ ev_timer *w) EV_THROW; + +#if EV_PERIODIC_ENABLE +EV_API_DECL void ev_periodic_start (EV_P_ ev_periodic *w) EV_THROW; +EV_API_DECL void ev_periodic_stop (EV_P_ ev_periodic *w) EV_THROW; +EV_API_DECL void ev_periodic_again (EV_P_ ev_periodic *w) EV_THROW; +#endif + +/* only supported in the default loop */ +#if EV_SIGNAL_ENABLE +EV_API_DECL void ev_signal_start (EV_P_ ev_signal *w) EV_THROW; +EV_API_DECL void ev_signal_stop (EV_P_ ev_signal *w) EV_THROW; +#endif + +/* only supported in the default loop */ +# if EV_CHILD_ENABLE +EV_API_DECL void ev_child_start (EV_P_ ev_child *w) EV_THROW; +EV_API_DECL void ev_child_stop (EV_P_ ev_child *w) EV_THROW; +# endif + +# if EV_STAT_ENABLE +EV_API_DECL void ev_stat_start (EV_P_ ev_stat *w) EV_THROW; +EV_API_DECL void ev_stat_stop (EV_P_ ev_stat *w) EV_THROW; +EV_API_DECL void ev_stat_stat (EV_P_ ev_stat *w) EV_THROW; +# endif + +# if EV_IDLE_ENABLE +EV_API_DECL void ev_idle_start (EV_P_ ev_idle *w) EV_THROW; +EV_API_DECL void ev_idle_stop (EV_P_ ev_idle *w) EV_THROW; +# endif + +#if EV_PREPARE_ENABLE +EV_API_DECL void ev_prepare_start (EV_P_ ev_prepare *w) EV_THROW; +EV_API_DECL void ev_prepare_stop (EV_P_ ev_prepare *w) EV_THROW; +#endif + +#if EV_CHECK_ENABLE +EV_API_DECL void ev_check_start (EV_P_ ev_check *w) EV_THROW; +EV_API_DECL void ev_check_stop (EV_P_ ev_check *w) EV_THROW; +#endif + +# if EV_FORK_ENABLE +EV_API_DECL void ev_fork_start (EV_P_ ev_fork *w) EV_THROW; +EV_API_DECL void ev_fork_stop (EV_P_ ev_fork *w) EV_THROW; +# endif + +# if EV_CLEANUP_ENABLE +EV_API_DECL void ev_cleanup_start (EV_P_ ev_cleanup *w) EV_THROW; +EV_API_DECL void ev_cleanup_stop (EV_P_ ev_cleanup *w) EV_THROW; +# endif + +# if EV_EMBED_ENABLE +/* only supported when loop to be embedded is in fact embeddable */ +EV_API_DECL void ev_embed_start (EV_P_ ev_embed *w) EV_THROW; +EV_API_DECL void ev_embed_stop (EV_P_ ev_embed *w) EV_THROW; +EV_API_DECL void ev_embed_sweep (EV_P_ ev_embed *w) EV_THROW; +# endif + +# if EV_ASYNC_ENABLE +EV_API_DECL void ev_async_start (EV_P_ ev_async *w) EV_THROW; +EV_API_DECL void ev_async_stop (EV_P_ ev_async *w) EV_THROW; +EV_API_DECL void ev_async_send (EV_P_ ev_async *w) EV_THROW; +# endif + +#if EV_COMPAT3 + #define EVLOOP_NONBLOCK EVRUN_NOWAIT + #define EVLOOP_ONESHOT EVRUN_ONCE + #define EVUNLOOP_CANCEL EVBREAK_CANCEL + #define EVUNLOOP_ONE EVBREAK_ONE + #define EVUNLOOP_ALL EVBREAK_ALL + #if EV_PROTOTYPES + EV_INLINE void ev_loop (EV_P_ int flags) { ev_run (EV_A_ flags); } + EV_INLINE void ev_unloop (EV_P_ int how ) { ev_break (EV_A_ how ); } + EV_INLINE void ev_default_destroy (void) { ev_loop_destroy (EV_DEFAULT); } + EV_INLINE void ev_default_fork (void) { ev_loop_fork (EV_DEFAULT); } + #if EV_FEATURE_API + EV_INLINE unsigned int ev_loop_count (EV_P) { return ev_iteration (EV_A); } + EV_INLINE unsigned int ev_loop_depth (EV_P) { return ev_depth (EV_A); } + EV_INLINE void ev_loop_verify (EV_P) { ev_verify (EV_A); } + #endif + #endif +#else + typedef struct ev_loop ev_loop; +#endif + +#endif + +EV_CPP(}) + +#endif + diff --git a/shadowsocksr-libev/src/libev/ev.pod b/shadowsocksr-libev/src/libev/ev.pod new file mode 100644 index 00000000000..e6473ca702e --- /dev/null +++ b/shadowsocksr-libev/src/libev/ev.pod @@ -0,0 +1,5564 @@ +=encoding utf-8 + +=head1 NAME + +libev - a high performance full-featured event loop written in C + +=head1 SYNOPSIS + + #include + +=head2 EXAMPLE PROGRAM + + // a single header file is required + #include + + #include // for puts + + // every watcher type has its own typedef'd struct + // with the name ev_TYPE + ev_io stdin_watcher; + ev_timer timeout_watcher; + + // all watcher callbacks have a similar signature + // this callback is called when data is readable on stdin + static void + stdin_cb (EV_P_ ev_io *w, int revents) + { + puts ("stdin ready"); + // for one-shot events, one must manually stop the watcher + // with its corresponding stop function. + ev_io_stop (EV_A_ w); + + // this causes all nested ev_run's to stop iterating + ev_break (EV_A_ EVBREAK_ALL); + } + + // another callback, this time for a time-out + static void + timeout_cb (EV_P_ ev_timer *w, int revents) + { + puts ("timeout"); + // this causes the innermost ev_run to stop iterating + ev_break (EV_A_ EVBREAK_ONE); + } + + int + main (void) + { + // use the default event loop unless you have special needs + struct ev_loop *loop = EV_DEFAULT; + + // initialise an io watcher, then start it + // this one will watch for stdin to become readable + ev_io_init (&stdin_watcher, stdin_cb, /*STDIN_FILENO*/ 0, EV_READ); + ev_io_start (loop, &stdin_watcher); + + // initialise a timer watcher, then start it + // simple non-repeating 5.5 second timeout + ev_timer_init (&timeout_watcher, timeout_cb, 5.5, 0.); + ev_timer_start (loop, &timeout_watcher); + + // now wait for events to arrive + ev_run (loop, 0); + + // break was called, so exit + return 0; + } + +=head1 ABOUT THIS DOCUMENT + +This document documents the libev software package. + +The newest version of this document is also available as an html-formatted +web page you might find easier to navigate when reading it for the first +time: L. + +While this document tries to be as complete as possible in documenting +libev, its usage and the rationale behind its design, it is not a tutorial +on event-based programming, nor will it introduce event-based programming +with libev. + +Familiarity with event based programming techniques in general is assumed +throughout this document. + +=head1 WHAT TO READ WHEN IN A HURRY + +This manual tries to be very detailed, but unfortunately, this also makes +it very long. If you just want to know the basics of libev, I suggest +reading L, then the L above and +look up the missing functions in L and the C and +C sections in L. + +=head1 ABOUT LIBEV + +Libev is an event loop: you register interest in certain events (such as a +file descriptor being readable or a timeout occurring), and it will manage +these event sources and provide your program with events. + +To do this, it must take more or less complete control over your process +(or thread) by executing the I handler, and will then +communicate events via a callback mechanism. + +You register interest in certain events by registering so-called I, which are relatively small C structures you initialise with the +details of the event, and then hand it over to libev by I the +watcher. + +=head2 FEATURES + +Libev supports C (files, many character devices...). + +Epoll is truly the train wreck among event poll mechanisms, a frankenpoll, +cobbled together in a hurry, no thought to design or interaction with +others. Oh, the pain, will it ever stop... + +While stopping, setting and starting an I/O watcher in the same iteration +will result in some caching, there is still a system call per such +incident (because the same I could point to a different +I now), so its best to avoid that. Also, C'ed +file descriptors might not work very well if you register events for both +file descriptors. + +Best performance from this backend is achieved by not unregistering all +watchers for a file descriptor until it has been closed, if possible, +i.e. keep at least one watcher active per fd at all times. Stopping and +starting a watcher (without re-setting it) also usually doesn't cause +extra overhead. A fork can both result in spurious notifications as well +as in libev having to destroy and recreate the epoll object, which can +take considerable time and thus should be avoided. + +All this means that, in practice, C can be as fast or +faster than epoll for maybe up to a hundred file descriptors, depending on +the usage. So sad. + +While nominally embeddable in other event loops, this feature is broken in +all kernel versions tested so far. + +This backend maps C and C in the same way as +C. + +=item C (value 8, most BSD clones) + +Kqueue deserves special mention, as at the time of this writing, it +was broken on all BSDs except NetBSD (usually it doesn't work reliably +with anything but sockets and pipes, except on Darwin, where of course +it's completely useless). Unlike epoll, however, whose brokenness +is by design, these kqueue bugs can (and eventually will) be fixed +without API changes to existing programs. For this reason it's not being +"auto-detected" unless you explicitly specify it in the flags (i.e. using +C) or libev was compiled on a known-to-be-good (-enough) +system like NetBSD. + +You still can embed kqueue into a normal poll or select backend and use it +only for sockets (after having made sure that sockets work with kqueue on +the target platform). See C watchers for more info. + +It scales in the same way as the epoll backend, but the interface to the +kernel is more efficient (which says nothing about its actual speed, of +course). While stopping, setting and starting an I/O watcher does never +cause an extra system call as with C, it still adds up to +two event changes per incident. Support for C is very bad (you +might have to leak fd's on fork, but it's more sane than epoll) and it +drops fds silently in similarly hard-to-detect cases. + +This backend usually performs well under most conditions. + +While nominally embeddable in other event loops, this doesn't work +everywhere, so you might need to test for this. And since it is broken +almost everywhere, you should only use it when you have a lot of sockets +(for which it usually works), by embedding it into another event loop +(e.g. C or C (but C is of course +also broken on OS X)) and, did I mention it, using it only for sockets. + +This backend maps C into an C kevent with +C, and C into an C kevent with +C. + +=item C (value 16, Solaris 8) + +This is not implemented yet (and might never be, unless you send me an +implementation). According to reports, C only supports sockets +and is not embeddable, which would limit the usefulness of this backend +immensely. + +=item C (value 32, Solaris 10) + +This uses the Solaris 10 event port mechanism. As with everything on Solaris, +it's really slow, but it still scales very well (O(active_fds)). + +While this backend scales well, it requires one system call per active +file descriptor per loop iteration. For small and medium numbers of file +descriptors a "slow" C or C backend +might perform better. + +On the positive side, this backend actually performed fully to +specification in all tests and is fully embeddable, which is a rare feat +among the OS-specific backends (I vastly prefer correctness over speed +hacks). + +On the negative side, the interface is I - so bizarre that +even sun itself gets it wrong in their code examples: The event polling +function sometimes returns events to the caller even though an error +occurred, but with no indication whether it has done so or not (yes, it's +even documented that way) - deadly for edge-triggered interfaces where you +absolutely have to know whether an event occurred or not because you have +to re-arm the watcher. + +Fortunately libev seems to be able to work around these idiocies. + +This backend maps C and C in the same way as +C. + +=item C + +Try all backends (even potentially broken ones that wouldn't be tried +with C). Since this is a mask, you can do stuff such as +C. + +It is definitely not recommended to use this flag, use whatever +C returns, or simply do not specify a backend +at all. + +=item C + +Not a backend at all, but a mask to select all backend bits from a +C value, in case you want to mask out any backends from a flags +value (e.g. when modifying the C environment variable). + +=back + +If one or more of the backend flags are or'ed into the flags value, +then only these backends will be tried (in the reverse order as listed +here). If none are specified, all backends in C will be tried. + +Example: Try to create a event loop that uses epoll and nothing else. + + struct ev_loop *epoller = ev_loop_new (EVBACKEND_EPOLL | EVFLAG_NOENV); + if (!epoller) + fatal ("no epoll found here, maybe it hides under your chair"); + +Example: Use whatever libev has to offer, but make sure that kqueue is +used if available. + + struct ev_loop *loop = ev_loop_new (ev_recommended_backends () | EVBACKEND_KQUEUE); + +=item ev_loop_destroy (loop) + +Destroys an event loop object (frees all memory and kernel state +etc.). None of the active event watchers will be stopped in the normal +sense, so e.g. C might still return true. It is your +responsibility to either stop all watchers cleanly yourself I +calling this function, or cope with the fact afterwards (which is usually +the easiest thing, you can just ignore the watchers and/or C them +for example). + +Note that certain global state, such as signal state (and installed signal +handlers), will not be freed by this function, and related watchers (such +as signal and child watchers) would need to be stopped manually. + +This function is normally used on loop objects allocated by +C, but it can also be used on the default loop returned by +C, in which case it is not thread-safe. + +Note that it is not advisable to call this function on the default loop +except in the rare occasion where you really need to free its resources. +If you need dynamically allocated loops it is better to use C +and C. + +=item ev_loop_fork (loop) + +This function sets a flag that causes subsequent C iterations +to reinitialise the kernel state for backends that have one. Despite +the name, you can call it anytime you are allowed to start or stop +watchers (except inside an C callback), but it makes most +sense after forking, in the child process. You I call it (or use +C) in the child before resuming or calling C. + +In addition, if you want to reuse a loop (via this function or +C), you I have to ignore C. + +Again, you I to call it on I loop that you want to re-use after +a fork, I. This is +because some kernel interfaces *cough* I *cough* do funny things +during fork. + +On the other hand, you only need to call this function in the child +process if and only if you want to use the event loop in the child. If +you just fork+exec or create a new loop in the child, you don't have to +call it at all (in fact, C is so badly broken that it makes a +difference, but libev will usually detect this case on its own and do a +costly reset of the backend). + +The function itself is quite fast and it's usually not a problem to call +it just in case after a fork. + +Example: Automate calling C on the default loop when +using pthreads. + + static void + post_fork_child (void) + { + ev_loop_fork (EV_DEFAULT); + } + + ... + pthread_atfork (0, 0, post_fork_child); + +=item int ev_is_default_loop (loop) + +Returns true when the given loop is, in fact, the default loop, and false +otherwise. + +=item unsigned int ev_iteration (loop) + +Returns the current iteration count for the event loop, which is identical +to the number of times libev did poll for new events. It starts at C<0> +and happily wraps around with enough iterations. + +This value can sometimes be useful as a generation counter of sorts (it +"ticks" the number of loop iterations), as it roughly corresponds with +C and C calls - and is incremented between the +prepare and check phases. + +=item unsigned int ev_depth (loop) + +Returns the number of times C was entered minus the number of +times C was exited normally, in other words, the recursion depth. + +Outside C, this number is zero. In a callback, this number is +C<1>, unless C was invoked recursively (or from another thread), +in which case it is higher. + +Leaving C abnormally (setjmp/longjmp, cancelling the thread, +throwing an exception etc.), doesn't count as "exit" - consider this +as a hint to avoid such ungentleman-like behaviour unless it's really +convenient, in which case it is fully supported. + +=item unsigned int ev_backend (loop) + +Returns one of the C flags indicating the event backend in +use. + +=item ev_tstamp ev_now (loop) + +Returns the current "event loop time", which is the time the event loop +received events and started processing them. This timestamp does not +change as long as callbacks are being processed, and this is also the base +time used for relative timers. You can treat it as the timestamp of the +event occurring (or more correctly, libev finding out about it). + +=item ev_now_update (loop) + +Establishes the current time by querying the kernel, updating the time +returned by C in the progress. This is a costly operation and +is usually done automatically within C. + +This function is rarely useful, but when some event callback runs for a +very long time without entering the event loop, updating libev's idea of +the current time is a good idea. + +See also L in the C section. + +=item ev_suspend (loop) + +=item ev_resume (loop) + +These two functions suspend and resume an event loop, for use when the +loop is not used for a while and timeouts should not be processed. + +A typical use case would be an interactive program such as a game: When +the user presses C<^Z> to suspend the game and resumes it an hour later it +would be best to handle timeouts as if no time had actually passed while +the program was suspended. This can be achieved by calling C +in your C handler, sending yourself a C and calling +C directly afterwards to resume timer processing. + +Effectively, all C watchers will be delayed by the time spend +between C and C, and all C watchers +will be rescheduled (that is, they will lose any events that would have +occurred while suspended). + +After calling C you B call I function on the +given loop other than C, and you B call C +without a previous call to C. + +Calling C/C has the side effect of updating the +event loop time (see C). + +=item bool ev_run (loop, int flags) + +Finally, this is it, the event handler. This function usually is called +after you have initialised all your watchers and you want to start +handling events. It will ask the operating system for any new events, call +the watcher callbacks, and then repeat the whole process indefinitely: This +is why event loops are called I. + +If the flags argument is specified as C<0>, it will keep handling events +until either no event watchers are active anymore or C was +called. + +The return value is false if there are no more active watchers (which +usually means "all jobs done" or "deadlock"), and true in all other cases +(which usually means " you should call C again"). + +Please note that an explicit C is usually better than +relying on all watchers to be stopped when deciding when a program has +finished (especially in interactive programs), but having a program +that automatically loops as long as it has to and no longer by virtue +of relying on its watchers stopping correctly, that is truly a thing of +beauty. + +This function is I exception-safe - you can break out of a +C call by calling C in a callback, throwing a C++ +exception and so on. This does not decrement the C value, nor +will it clear any outstanding C breaks. + +A flags value of C will look for new events, will handle +those events and any already outstanding ones, but will not wait and +block your process in case there are no events and will return after one +iteration of the loop. This is sometimes useful to poll and handle new +events while doing lengthy calculations, to keep the program responsive. + +A flags value of C will look for new events (waiting if +necessary) and will handle those and any already outstanding ones. It +will block your process until at least one new event arrives (which could +be an event internal to libev itself, so there is no guarantee that a +user-registered callback will be called), and will return after one +iteration of the loop. + +This is useful if you are waiting for some external event in conjunction +with something not expressible using other libev watchers (i.e. "roll your +own C"). However, a pair of C/C watchers is +usually a better approach for this kind of thing. + +Here are the gory details of what C does (this is for your +understanding, not a guarantee that things will work exactly like this in +future versions): + + - Increment loop depth. + - Reset the ev_break status. + - Before the first iteration, call any pending watchers. + LOOP: + - If EVFLAG_FORKCHECK was used, check for a fork. + - If a fork was detected (by any means), queue and call all fork watchers. + - Queue and call all prepare watchers. + - If ev_break was called, goto FINISH. + - If we have been forked, detach and recreate the kernel state + as to not disturb the other process. + - Update the kernel state with all outstanding changes. + - Update the "event loop time" (ev_now ()). + - Calculate for how long to sleep or block, if at all + (active idle watchers, EVRUN_NOWAIT or not having + any active watchers at all will result in not sleeping). + - Sleep if the I/O and timer collect interval say so. + - Increment loop iteration counter. + - Block the process, waiting for any events. + - Queue all outstanding I/O (fd) events. + - Update the "event loop time" (ev_now ()), and do time jump adjustments. + - Queue all expired timers. + - Queue all expired periodics. + - Queue all idle watchers with priority higher than that of pending events. + - Queue all check watchers. + - Call all queued watchers in reverse order (i.e. check watchers first). + Signals and child watchers are implemented as I/O watchers, and will + be handled here by queueing them when their watcher gets executed. + - If ev_break has been called, or EVRUN_ONCE or EVRUN_NOWAIT + were used, or there are no active watchers, goto FINISH, otherwise + continue with step LOOP. + FINISH: + - Reset the ev_break status iff it was EVBREAK_ONE. + - Decrement the loop depth. + - Return. + +Example: Queue some jobs and then loop until no events are outstanding +anymore. + + ... queue jobs here, make sure they register event watchers as long + ... as they still have work to do (even an idle watcher will do..) + ev_run (my_loop, 0); + ... jobs done or somebody called break. yeah! + +=item ev_break (loop, how) + +Can be used to make a call to C return early (but only after it +has processed all outstanding events). The C argument must be either +C, which will make the innermost C call return, or +C, which will make all nested C calls return. + +This "break state" will be cleared on the next call to C. + +It is safe to call C from outside any C calls, too, in +which case it will have no effect. + +=item ev_ref (loop) + +=item ev_unref (loop) + +Ref/unref can be used to add or remove a reference count on the event +loop: Every watcher keeps one reference, and as long as the reference +count is nonzero, C will not return on its own. + +This is useful when you have a watcher that you never intend to +unregister, but that nevertheless should not keep C from +returning. In such a case, call C after starting, and C +before stopping it. + +As an example, libev itself uses this for its internal signal pipe: It +is not visible to the libev user and should not keep C from +exiting if no event watchers registered by it are active. It is also an +excellent way to do this for generic recurring timers or from within +third-party libraries. Just remember to I and I (but only if the watcher wasn't active before, or was active +before, respectively. Note also that libev might stop watchers itself +(e.g. non-repeating timers) in which case you have to C +in the callback). + +Example: Create a signal watcher, but keep it from keeping C +running when nothing else is active. + + ev_signal exitsig; + ev_signal_init (&exitsig, sig_cb, SIGINT); + ev_signal_start (loop, &exitsig); + ev_unref (loop); + +Example: For some weird reason, unregister the above signal handler again. + + ev_ref (loop); + ev_signal_stop (loop, &exitsig); + +=item ev_set_io_collect_interval (loop, ev_tstamp interval) + +=item ev_set_timeout_collect_interval (loop, ev_tstamp interval) + +These advanced functions influence the time that libev will spend waiting +for events. Both time intervals are by default C<0>, meaning that libev +will try to invoke timer/periodic callbacks and I/O callbacks with minimum +latency. + +Setting these to a higher value (the C I be >= C<0>) +allows libev to delay invocation of I/O and timer/periodic callbacks +to increase efficiency of loop iterations (or to increase power-saving +opportunities). + +The idea is that sometimes your program runs just fast enough to handle +one (or very few) event(s) per loop iteration. While this makes the +program responsive, it also wastes a lot of CPU time to poll for new +events, especially with backends like C (or libev) on file descriptors +representing files, and expect it to become ready when their program +doesn't block on disk accesses (which can take a long time on their own). + +However, this cannot ever work in the "expected" way - you get a readiness +notification as soon as the kernel knows whether and how much data is +there, and in the case of open files, that's always the case, so you +always get a readiness notification instantly, and your read (or possibly +write) will still block on the disk I/O. + +Another way to view it is that in the case of sockets, pipes, character +devices and so on, there is another party (the sender) that delivers data +on its own, but in the case of files, there is no such thing: the disk +will not send data on its own, simply because it doesn't know what you +wish to read - you would first have to request some data. + +Since files are typically not-so-well supported by advanced notification +mechanism, libev tries hard to emulate POSIX behaviour with respect +to files, even though you should not use it. The reason for this is +convenience: sometimes you want to watch STDIN or STDOUT, which is +usually a tty, often a pipe, but also sometimes files or special devices +(for example, C on Linux works with F but not with +F), and even though the file might better be served with +asynchronous I/O instead of with non-blocking I/O, it is still useful when +it "just works" instead of freezing. + +So avoid file descriptors pointing to files when you know it (e.g. use +libeio), but use them when it is convenient, e.g. for STDIN/STDOUT, or +when you rarely read from a file instead of from a socket, and want to +reuse the same code path. + +=head3 The special problem of fork + +Some backends (epoll, kqueue) do not support C at all or exhibit +useless behaviour. Libev fully supports fork, but needs to be told about +it in the child if you want to continue to use it in the child. + +To support fork in your child processes, you have to call C after a fork in the child, enable C, or resort to +C or C. + +=head3 The special problem of SIGPIPE + +While not really specific to libev, it is easy to forget about C: +when writing to a pipe whose other end has been closed, your program gets +sent a SIGPIPE, which, by default, aborts your program. For most programs +this is sensible behaviour, for daemons, this is usually undesirable. + +So when you encounter spurious, unexplained daemon exits, make sure you +ignore SIGPIPE (and maybe make sure you log the exit status of your daemon +somewhere, as that would have given you a big clue). + +=head3 The special problem of accept()ing when you can't + +Many implementations of the POSIX C function (for example, +found in post-2004 Linux) have the peculiar behaviour of not removing a +connection from the pending queue in all error cases. + +For example, larger servers often run out of file descriptors (because +of resource limits), causing C to fail with C but not +rejecting the connection, leading to libev signalling readiness on +the next iteration again (the connection still exists after all), and +typically causing the program to loop at 100% CPU usage. + +Unfortunately, the set of errors that cause this issue differs between +operating systems, there is usually little the app can do to remedy the +situation, and no known thread-safe method of removing the connection to +cope with overload is known (to me). + +One of the easiest ways to handle this situation is to just ignore it +- when the program encounters an overload, it will just loop until the +situation is over. While this is a form of busy waiting, no OS offers an +event-based way to handle this situation, so it's the best one can do. + +A better way to handle the situation is to log any errors other than +C and C, making sure not to flood the log with such +messages, and continue as usual, which at least gives the user an idea of +what could be wrong ("raise the ulimit!"). For extra points one could stop +the C watcher on the listening fd "for a while", which reduces CPU +usage. + +If your program is single-threaded, then you could also keep a dummy file +descriptor for overload situations (e.g. by opening F), and +when you run into C or C, close it, run C, +close that fd, and create a new dummy fd. This will gracefully refuse +clients under typical overload conditions. + +The last way to handle it is to simply log the error and C, as +is often done with C failures, but this results in an easy +opportunity for a DoS attack. + +=head3 Watcher-Specific Functions + +=over 4 + +=item ev_io_init (ev_io *, callback, int fd, int events) + +=item ev_io_set (ev_io *, int fd, int events) + +Configures an C watcher. The C is the file descriptor to +receive events for and C is either C, C or +C, to express the desire to receive the given events. + +=item int fd [read-only] + +The file descriptor being watched. + +=item int events [read-only] + +The events being watched. + +=back + +=head3 Examples + +Example: Call C when STDIN_FILENO has become, well +readable, but only once. Since it is likely line-buffered, you could +attempt to read a whole line in the callback. + + static void + stdin_readable_cb (struct ev_loop *loop, ev_io *w, int revents) + { + ev_io_stop (loop, w); + .. read from stdin here (or from w->fd) and handle any I/O errors + } + + ... + struct ev_loop *loop = ev_default_init (0); + ev_io stdin_readable; + ev_io_init (&stdin_readable, stdin_readable_cb, STDIN_FILENO, EV_READ); + ev_io_start (loop, &stdin_readable); + ev_run (loop, 0); + + +=head2 C - relative and optionally repeating timeouts + +Timer watchers are simple relative timers that generate an event after a +given time, and optionally repeating in regular intervals after that. + +The timers are based on real time, that is, if you register an event that +times out after an hour and you reset your system clock to January last +year, it will still time out after (roughly) one hour. "Roughly" because +detecting time jumps is hard, and some inaccuracies are unavoidable (the +monotonic clock option helps a lot here). + +The callback is guaranteed to be invoked only I its timeout has +passed (not I, so on systems with very low-resolution clocks this +might introduce a small delay, see "the special problem of being too +early", below). If multiple timers become ready during the same loop +iteration then the ones with earlier time-out values are invoked before +ones of the same priority with later time-out values (but this is no +longer true when a callback calls C recursively). + +=head3 Be smart about timeouts + +Many real-world problems involve some kind of timeout, usually for error +recovery. A typical example is an HTTP request - if the other side hangs, +you want to raise some error after a while. + +What follows are some ways to handle this problem, from obvious and +inefficient to smart and efficient. + +In the following, a 60 second activity timeout is assumed - a timeout that +gets reset to 60 seconds each time there is activity (e.g. each time some +data or other life sign was received). + +=over 4 + +=item 1. Use a timer and stop, reinitialise and start it on activity. + +This is the most obvious, but not the most simple way: In the beginning, +start the watcher: + + ev_timer_init (timer, callback, 60., 0.); + ev_timer_start (loop, timer); + +Then, each time there is some activity, C it, initialise it +and start it again: + + ev_timer_stop (loop, timer); + ev_timer_set (timer, 60., 0.); + ev_timer_start (loop, timer); + +This is relatively simple to implement, but means that each time there is +some activity, libev will first have to remove the timer from its internal +data structure and then add it again. Libev tries to be fast, but it's +still not a constant-time operation. + +=item 2. Use a timer and re-start it with C inactivity. + +This is the easiest way, and involves using C instead of +C. + +To implement this, configure an C with a C value +of C<60> and then call C at start and each time you +successfully read or write some data. If you go into an idle state where +you do not expect data to travel on the socket, you can C +the timer, and C will automatically restart it if need be. + +That means you can ignore both the C function and the +C argument to C, and only ever use the C +member and C. + +At start: + + ev_init (timer, callback); + timer->repeat = 60.; + ev_timer_again (loop, timer); + +Each time there is some activity: + + ev_timer_again (loop, timer); + +It is even possible to change the time-out on the fly, regardless of +whether the watcher is active or not: + + timer->repeat = 30.; + ev_timer_again (loop, timer); + +This is slightly more efficient then stopping/starting the timer each time +you want to modify its timeout value, as libev does not have to completely +remove and re-insert the timer from/into its internal data structure. + +It is, however, even simpler than the "obvious" way to do it. + +=item 3. Let the timer time out, but then re-arm it as required. + +This method is more tricky, but usually most efficient: Most timeouts are +relatively long compared to the intervals between other activity - in +our example, within 60 seconds, there are usually many I/O events with +associated activity resets. + +In this case, it would be more efficient to leave the C alone, +but remember the time of last activity, and check for a real timeout only +within the callback: + + ev_tstamp timeout = 60.; + ev_tstamp last_activity; // time of last activity + ev_timer timer; + + static void + callback (EV_P_ ev_timer *w, int revents) + { + // calculate when the timeout would happen + ev_tstamp after = last_activity - ev_now (EV_A) + timeout; + + // if negative, it means we the timeout already occurred + if (after < 0.) + { + // timeout occurred, take action + } + else + { + // callback was invoked, but there was some recent + // activity. simply restart the timer to time out + // after "after" seconds, which is the earliest time + // the timeout can occur. + ev_timer_set (w, after, 0.); + ev_timer_start (EV_A_ w); + } + } + +To summarise the callback: first calculate in how many seconds the +timeout will occur (by calculating the absolute time when it would occur, +C, and subtracting the current time, C from that). + +If this value is negative, then we are already past the timeout, i.e. we +timed out, and need to do whatever is needed in this case. + +Otherwise, we now the earliest time at which the timeout would trigger, +and simply start the timer with this timeout value. + +In other words, each time the callback is invoked it will check whether +the timeout occurred. If not, it will simply reschedule itself to check +again at the earliest time it could time out. Rinse. Repeat. + +This scheme causes more callback invocations (about one every 60 seconds +minus half the average time between activity), but virtually no calls to +libev to change the timeout. + +To start the machinery, simply initialise the watcher and set +C to the current time (meaning there was some activity just +now), then call the callback, which will "do the right thing" and start +the timer: + + last_activity = ev_now (EV_A); + ev_init (&timer, callback); + callback (EV_A_ &timer, 0); + +When there is some activity, simply store the current time in +C, no libev calls at all: + + if (activity detected) + last_activity = ev_now (EV_A); + +When your timeout value changes, then the timeout can be changed by simply +providing a new value, stopping the timer and calling the callback, which +will again do the right thing (for example, time out immediately :). + + timeout = new_value; + ev_timer_stop (EV_A_ &timer); + callback (EV_A_ &timer, 0); + +This technique is slightly more complex, but in most cases where the +time-out is unlikely to be triggered, much more efficient. + +=item 4. Wee, just use a double-linked list for your timeouts. + +If there is not one request, but many thousands (millions...), all +employing some kind of timeout with the same timeout value, then one can +do even better: + +When starting the timeout, calculate the timeout value and put the timeout +at the I of the list. + +Then use an C to fire when the timeout at the I of +the list is expected to fire (for example, using the technique #3). + +When there is some activity, remove the timer from the list, recalculate +the timeout, append it to the end of the list again, and make sure to +update the C if it was taken from the beginning of the list. + +This way, one can manage an unlimited number of timeouts in O(1) time for +starting, stopping and updating the timers, at the expense of a major +complication, and having to use a constant timeout. The constant timeout +ensures that the list stays sorted. + +=back + +So which method the best? + +Method #2 is a simple no-brain-required solution that is adequate in most +situations. Method #3 requires a bit more thinking, but handles many cases +better, and isn't very complicated either. In most case, choosing either +one is fine, with #3 being better in typical situations. + +Method #1 is almost always a bad idea, and buys you nothing. Method #4 is +rather complicated, but extremely efficient, something that really pays +off after the first million or so of active timers, i.e. it's usually +overkill :) + +=head3 The special problem of being too early + +If you ask a timer to call your callback after three seconds, then +you expect it to be invoked after three seconds - but of course, this +cannot be guaranteed to infinite precision. Less obviously, it cannot be +guaranteed to any precision by libev - imagine somebody suspending the +process with a STOP signal for a few hours for example. + +So, libev tries to invoke your callback as soon as possible I the +delay has occurred, but cannot guarantee this. + +A less obvious failure mode is calling your callback too early: many event +loops compare timestamps with a "elapsed delay >= requested delay", but +this can cause your callback to be invoked much earlier than you would +expect. + +To see why, imagine a system with a clock that only offers full second +resolution (think windows if you can't come up with a broken enough OS +yourself). If you schedule a one-second timer at the time 500.9, then the +event loop will schedule your timeout to elapse at a system time of 500 +(500.9 truncated to the resolution) + 1, or 501. + +If an event library looks at the timeout 0.1s later, it will see "501 >= +501" and invoke the callback 0.1s after it was started, even though a +one-second delay was requested - this is being "too early", despite best +intentions. + +This is the reason why libev will never invoke the callback if the elapsed +delay equals the requested delay, but only when the elapsed delay is +larger than the requested delay. In the example above, libev would only invoke +the callback at system time 502, or 1.1s after the timer was started. + +So, while libev cannot guarantee that your callback will be invoked +exactly when requested, it I and I guarantee that the requested +delay has actually elapsed, or in other words, it always errs on the "too +late" side of things. + +=head3 The special problem of time updates + +Establishing the current time is a costly operation (it usually takes +at least one system call): EV therefore updates its idea of the current +time only before and after C collects new events, which causes a +growing difference between C and C when handling +lots of events in one iteration. + +The relative timeouts are calculated relative to the C +time. This is usually the right thing as this timestamp refers to the time +of the event triggering whatever timeout you are modifying/starting. If +you suspect event processing to be delayed and you I to base the +timeout on the current time, use something like the following to adjust +for it: + + ev_timer_set (&timer, after + (ev_time () - ev_now ()), 0.); + +If the event loop is suspended for a long time, you can also force an +update of the time returned by C by calling C, although that will push the event time of all outstanding events +further into the future. + +=head3 The special problem of unsynchronised clocks + +Modern systems have a variety of clocks - libev itself uses the normal +"wall clock" clock and, if available, the monotonic clock (to avoid time +jumps). + +Neither of these clocks is synchronised with each other or any other clock +on the system, so C might return a considerably different time +than C or C